Por exemplo, o Google Analytics usa document.location.protocol no padrão para rastreamento:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
ao invés de
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = '//www.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
O ssl. subdomínio é um argumento mudo, pois https://www.google-analytics.com/ga.js funciona perfeitamente bem.
Conhecer o Google com maior probabilidade não é um descuido. Existe algum problema com certos navegadores que não suportam o protocolo // que honra a taquigrafia ou há algo mais que estou faltando?
EDIT: isso não se aplica apenas ao Google Analytics (exemplo de subdomínio diferente). O mesmo aparece na página da API do carregador de fontes :
wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';