Reporting changes
- Report PolyGerrit page (without any PII) to Google Analytics.
- Ramp up sample rate to 100%.
- Disable built-in page tracking since it's not tracking PolyGerrit.
Change-Id: I88dab62d440ae04ca68726915c7dc28cda6ca6a2
diff --git a/background.js b/background.js
index 7941bb0..7f038a8 100644
--- a/background.js
+++ b/background.js
@@ -14,7 +14,7 @@
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-73551813-1']);
-_gaq.push(['_trackPageview']);
+_gaq.push(['_setSiteSpeedSampleRate', 100]);
(function() {
var ga = document.createElement('script');
@@ -26,17 +26,25 @@
})();
var RequestType = {
- NAV: 'nav',
+ NAV: 'nav-report',
TIMING: 'timing-report',
};
-chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
- if (request.type === RequestType.TIMING) {
- var detail = request.detail;
- _gaq.push(['_trackTiming', detail.category, detail.name, detail.value]);
- } else if (request.type === RequestType.NAV) {
- _gaq.push(['_trackPageview', request.url]);
+chrome.runtime.onMessage.addListener(function(request) {
+ var detail = request.detail;
+ if (detail.host) {
+ _gaq.push(['_setDomainName', detail.host]);
}
+
+ switch (request.type) {
+ case RequestType.TIMING:
+ var time = Math.round(detail.value);
+ _gaq.push(['_trackTiming', detail.category, detail.name, time]);
+ break;
+ case RequestType.NAV:
+ _gaq.push(['_trackPageview', detail.value]);
+ break;
+ };
});
function loadImage(path, width, height) {
diff --git a/content.js b/content.js
index d96f0ae..55a2804 100644
--- a/content.js
+++ b/content.js
@@ -12,16 +12,24 @@
// See the License for the specific language governing permissions and
// limitations under the License.
(function() {
- // TODO(andybons): Integrate with the Gerrit JS API. Since this is loaded
- // before the Gerrit object is in scope, this type of integration may require
- // an event to be fired to indicate that the Gerrit object is available.
var appEl = document.querySelector('gr-app');
var isPolyGerrit = !!appEl;
+
if (isPolyGerrit) {
- // TODO(andybons): Track actions and integrate with the Gerrit JS API.
- // PageJS isn't in scope and is a pain to latch on to for navigation events.
- document.addEventListener('timing-report', function(e) {
- chrome.runtime.sendMessage({type: 'timing-report', detail: e.detail});
+ var reportToBackground = function(e) {
+ e.detail.host = location.host;
+ chrome.runtime.sendMessage({type: e.type, detail: e.detail});
+ };
+ document.addEventListener('timing-report', reportToBackground);
+ document.addEventListener('nav-report', reportToBackground);
+ } else {
+ chrome.runtime.sendMessage({
+ type: 'nav-report',
+ detail: {
+ value: '/#/', // Report GWT UI as dashboards landing url.
+ host: location.host,
+ },
});
}
+
})();
diff --git a/manifest.json b/manifest.json
index 9fca4ae..39a68fb 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "Gerrit UI Switcher",
"description": "Easily switch between the current Gerrit UI and the new PolyGerrit UI",
- "version": "0.5.1",
+ "version": "0.5.2",
"background": {
"scripts": [
"background.js"