From d8d0594984b9b35a348173bc07600d588f72eb84 Mon Sep 17 00:00:00 2001 From: Jesse <jesse@orangecoding.com> Date: Fri, 4 Jul 2014 21:57:39 -0400 Subject: [PATCH] Changed JavaScript Tracking Code generation to use "//", instead of verifying whether the site is using "https", or not, and generating a corresponding URL. "//" has been part of the RFC for well over 18 years. It has been confirmed to work in all major browsers (Firefox, Chrome, IE, Opera). References: - RFC 1808 Section 4: http://www.ietf.org/rfc/rfc1808.txt - RFC 3986 Section 5.2: http://www.ietf.org/rfc/rfc3986.txt - Stack Overflow QA 1: http://stackoverflow.com/q/4659345/238722 - Stack Overflow QA 2: http://stackoverflow.com/q/6785442/238722 --- core/Piwik.php | 4 ++-- misc/others/tracker_simpleImageTracker.php | 6 +++--- misc/proxy-hide-piwik-url/README.md | 6 +++--- ...etReportMetadata_year__SitesManager.getJavascriptTag.xml | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/Piwik.php b/core/Piwik.php index 7e64d9021e..b043fe24ad 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -204,12 +204,12 @@ class Piwik self::postEvent('Piwik.getJavascriptCode', array(&$codeImpl, $parameters)); if (!empty($codeImpl['httpsPiwikUrl'])) { - $setTrackerUrl = 'var u=(("https:" == document.location.protocol) ? "https://{$httpsPiwikUrl}/" : ' + $setTrackerUrl = 'var u=((document.location.protocol === "https:") ? "https://{$httpsPiwikUrl}/" : ' . '"http://{$piwikUrl}/");'; $codeImpl['httpsPiwikUrl'] = rtrim($codeImpl['httpsPiwikUrl'], "/"); } else { - $setTrackerUrl = 'var u=(("https:" == document.location.protocol) ? "https" : "http") + "://{$piwikUrl}/";'; + $setTrackerUrl = 'var u="//{$piwikUrl}/";'; } $codeImpl = array('setTrackerUrl' => htmlentities($setTrackerUrl)) + $codeImpl; diff --git a/misc/others/tracker_simpleImageTracker.php b/misc/others/tracker_simpleImageTracker.php index 30f6c2b211..6bcaf21fd1 100644 --- a/misc/others/tracker_simpleImageTracker.php +++ b/misc/others/tracker_simpleImageTracker.php @@ -12,11 +12,11 @@ $trackingURL = Piwik_getUrlTrackPageView($idSite = 16, $customTitle = 'This titl <script type="text/javascript"> var _paq = _paq || []; (function() { - var u=(("https:" == document.location.protocol) ? "https" : "http") + "://localhost/piwik-master/"; + var u="//localhost/piwik-master/"; _paq.push(["setTrackerUrl", u+"piwik.php"]); _paq.push(["setSiteId", "16"]); - var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; - g.defer=true; g.async=true; g.src=u+"js/piwik.js"; s.parentNode.insertBefore(g,s); + var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; + g.type="text/javascript"; g.async=true; g.defer=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Piwik Code --> diff --git a/misc/proxy-hide-piwik-url/README.md b/misc/proxy-hide-piwik-url/README.md index 016bbe1536..fcdf168c6e 100644 --- a/misc/proxy-hide-piwik-url/README.md +++ b/misc/proxy-hide-piwik-url/README.md @@ -29,11 +29,11 @@ To run this properly you will need ``` [...] (function() { - var u=(("https:" == document.location.protocol) ? "https" : "http") + "://trackedsite.com/"; + var u="//trackedsite.com/"; _paq.push(["setTrackerUrl", u+"piwik.php"]); _paq.push(["setSiteId", "trackedsite-id"]); - var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript"; - g.defer=true; g.async=true; g.src=u+"piwik.php"; s.parentNode.insertBefore(g,s); + var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; + g.type="text/javascript"; g.async=true; g.defer=true; g.src=u+"piwik.php"; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Piwik Code --> diff --git a/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata_year__SitesManager.getJavascriptTag.xml b/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata_year__SitesManager.getJavascriptTag.xml index 3da4a2d812..9d3ec5fb2a 100644 --- a/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata_year__SitesManager.getJavascriptTag.xml +++ b/tests/PHPUnit/Integration/expected/test_apiGetReportMetadata_year__SitesManager.getJavascriptTag.xml @@ -5,11 +5,11 @@ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { - var u=(("https:" == document.location.protocol) ? "https" : "http") + "://example.org/piwik/"; + var u="//example.org/piwik/"; _paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setSiteId', 1]); - var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; - g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); })(); </script> <noscript><p><img src="http://example.org/piwik/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript> -- GitLab