Bug 1361855 - Add helper function getTabCount() in BrowserUsageTelemetry.jsm; r?Gijs draft
authorLie Ryan <lie.1296@gmail.com>
Thu, 06 Jul 2017 02:46:02 +0000
changeset 605947 64f9e55cf01162c609eb96e9a31b9904fd7a94b6
parent 605946 eb0df2109c338728b834c6984ebcbb3ff4384588
child 605948 c8d7b24870d16d368f36bfea78c6d11cdff42434
push id67560
push userbmo:lie.1296@gmail.com
push dateMon, 10 Jul 2017 04:19:56 +0000
reviewersGijs
bugs1361855
milestone55.0a1
Bug 1361855 - Add helper function getTabCount() in BrowserUsageTelemetry.jsm; r?Gijs MozReview-Commit-ID: tXu05Fzcwg
browser/modules/BrowserUsageTelemetry.jsm
--- a/browser/modules/BrowserUsageTelemetry.jsm
+++ b/browser/modules/BrowserUsageTelemetry.jsm
@@ -13,16 +13,18 @@ this.EXPORTED_SYMBOLS = [
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
                                   "resource://gre/modules/PrivateBrowsingUtils.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "SessionStore",
+                                  "resource:///modules/sessionstore/SessionStore.jsm");
 
 // The upper bound for the count of the visited unique domain names.
 const MAX_UNIQUE_VISITED_DOMAINS = 100;
 
 // Observed topic names.
 const WINDOWS_RESTORED_TOPIC = "sessionstore-windows-restored";
 const TAB_RESTORING_TOPIC = "SSTabRestoring";
 const TELEMETRY_SUBSESSIONSPLIT_TOPIC = "internal-telemetry-after-subsession-split";
@@ -94,16 +96,22 @@ function getOpenTabsAndWinsCounts() {
     let win = browserEnum.getNext();
     winCount++;
     tabCount += win.gBrowser.tabs.length;
   }
 
   return { tabCount, winCount };
 }
 
+function getTabCount() {
+  let {windows} = SessionStore.getCurrentState();
+  return windows.map(win => win.isPrivate ? 0 : win.tabs.length)
+                .reduce((tabcount, accumulator) => tabcount + accumulator, 0);
+}
+
 function getSearchEngineId(engine) {
   if (engine) {
     if (engine.identifier) {
       return engine.identifier;
     }
     // Due to bug 1222070, we can't directly check Services.telemetry.canRecordExtended
     // here.
     const extendedTelemetry = Services.prefs.getBoolPref("toolkit.telemetry.enabled");