Merge fx-team to m-c. a=merge
authorRyan VanderMeulen <ryanvm@gmail.com>
Thu, 09 Apr 2015 11:41:22 -0400
changeset 238349 dd32e3ff37179e1213f7c8e0dd0a6bf0a826e6b2
parent 238328 24c2b795d0bd4e6796388a0e3c41f213e9b4db56 (current diff)
parent 238348 87f15ce8266d074b687a6164099c03b45770b610 (diff)
child 238369 85e061cdfd50ecc8144e54338331b1ab6f074924
child 238403 07839dbde05cebef84f067640015d7c055ddb6c4
child 238462 7dc1acf6f01e8b760b442ff281b9fdfb5fd63f92
push id28562
push userryanvm@gmail.com
push dateThu, 09 Apr 2015 15:53:25 +0000
treeherdermozilla-central@dd32e3ff3717 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone40.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge fx-team to m-c. a=merge
browser/app/profile/firefox.js
browser/modules/TabCrashReporter.jsm
mobile/android/base/resources/drawable/firstrun_button_background.xml
mobile/android/base/resources/drawable/firstrun_button_enabled.xml
mobile/android/base/resources/drawable/firstrun_button_pressed.xml
toolkit/modules/Dict.jsm
toolkit/modules/tests/xpcshell/test_dict.js
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -882,24 +882,16 @@ html|*#gcli-output-frame,
 .browserStack[responsivemode][notransition] {
   transition: none;
 }
 
 toolbarbutton[type="socialmark"] {
   -moz-binding: url("chrome://browser/content/socialmarks.xml#toolbarbutton-marks");
 }
 
-toolbarbutton.badged-button > .toolbarbutton-badge-container > .toolbarbutton-icon,
-toolbarbutton[type="socialmark"] > .toolbarbutton-icon {
-  max-width: 18px;
-}
-toolbarpaletteitem[place="palette"] > toolbarbutton.badged-button > .toolbarbutton-badge-container > .toolbarbutton-icon {
-  max-width: 32px;
-}
-
 panelview > .social-panel-frame {
   width: auto;
   height: auto;
 }
 
 /* Translation */
 notification[value="translation"] {
   -moz-binding: url("chrome://browser/content/translation-infobar.xml#translationbar");
--- a/browser/base/content/socialchat.xml
+++ b/browser/base/content/socialchat.xml
@@ -165,17 +165,17 @@
         <parameter name="aTarget"/>
         <body><![CDATA[
           aTarget.setAttribute("label", this.contentDocument.title);
           if (this.getAttribute("dark") == "true")
             aTarget.setAttribute("dark", "true");
           aTarget.src = this.src;
           aTarget.content.setAttribute("origin", this.content.getAttribute("origin"));
           aTarget.content.popupnotificationanchor.className = this.content.popupnotificationanchor.className;
-          this.content.swapDocShells(aTarget.content);
+          aTarget.content.swapDocShells(this.content);
         ]]></body>
       </method>
 
       <method name="onTitlebarClick">
         <parameter name="aEvent"/>
         <body><![CDATA[
           if (!this.chatbar)
             return;
--- a/browser/components/loop/MozLoopAPI.jsm
+++ b/browser/components/loop/MozLoopAPI.jsm
@@ -20,16 +20,18 @@ XPCOMUtils.defineLazyModuleGetter(this, 
 XPCOMUtils.defineLazyModuleGetter(this, "LoopStorage",
                                         "resource:///modules/loop/LoopStorage.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "hookWindowCloseForPanelClose",
                                         "resource://gre/modules/MozSocialAPI.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "PageMetadata",
                                         "resource://gre/modules/PageMetadata.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "PluralForm",
                                         "resource://gre/modules/PluralForm.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "UpdateChannel",
+                                        "resource://gre/modules/UpdateChannel.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "UITour",
                                         "resource:///modules/UITour.jsm");
 XPCOMUtils.defineLazyGetter(this, "appInfo", function() {
   return Cc["@mozilla.org/xre/app-info;1"]
            .getService(Ci.nsIXULAppInfo)
            .QueryInterface(Ci.nsIXULRuntime);
 });
 XPCOMUtils.defineLazyServiceGetter(this, "clipboardHelper",
@@ -719,23 +721,21 @@ function injectLoopAPI(targetWindow) {
      *   - channel: The update channel the application is on
      *   - version: The application version
      *   - OS: The operating system the application is running on
      */
     appVersionInfo: {
       enumerable: true,
       get: function() {
         if (!appVersionInfo) {
-          let defaults = Services.prefs.getDefaultBranch(null);
-
           // If the lazy getter explodes, we're probably loaded in xpcshell,
           // which doesn't have what we need, so log an error.
           try {
             appVersionInfo = Cu.cloneInto({
-              channel: defaults.getCharPref("app.update.channel"),
+              channel: UpdateChannel.get(),
               version: appInfo.version,
               OS: appInfo.OS
             }, targetWindow);
           } catch (ex) {
             // only log outside of xpcshell to avoid extra message noise
             if (typeof targetWindow !== 'undefined' && "console" in targetWindow) {
               MozLoopService.log.error("Failed to construct appVersionInfo; if this isn't " +
                                        "an xpcshell unit test, something is wrong", ex);
--- a/browser/components/loop/standalone/Makefile
+++ b/browser/components/loop/standalone/Makefile
@@ -4,17 +4,17 @@
 
 # Note that this Makefile is not invoked by the Mozilla build
 # system, which is why it can have dependencies on things the
 # build system at-large doesn't yet support.
 
 LOOP_SERVER_URL := $(shell echo $${LOOP_SERVER_URL-http://localhost:5000/v0})
 LOOP_FEEDBACK_API_URL := $(shell echo $${LOOP_FEEDBACK_API_URL-"https://input.allizom.org/api/v1/feedback"})
 LOOP_FEEDBACK_PRODUCT_NAME := $(shell echo $${LOOP_FEEDBACK_PRODUCT_NAME-Loop})
-LOOP_BRAND_WEBSITE_URL := $(shell echo $${LOOP_BRAND_WEBSITE_URL-"https://www.mozilla.org/firefox/"})
+LOOP_DOWNLOAD_FIREFOX_URL := $(shell echo $${LOOP_DOWNLOAD_FIREFOX_URL-"https://www.mozilla.org/firefox/new/?scene=2&utm_source=hello.firefox.com&utm_medium=referral&utm_campaign=non-webrtc-browser\#download-fx"})
 LOOP_PRIVACY_WEBSITE_URL := $(shell echo $${LOOP_PRIVACY_WEBSITE_URL-"https://www.mozilla.org/privacy/firefox-hello/"})
 LOOP_LEGAL_WEBSITE_URL := $(shell echo $${LOOP_LEGAL_WEBSITE_URL-"https://www.mozilla.org/about/legal/terms/firefox-hello/"})
 LOOP_PRODUCT_HOMEPAGE_URL := $(shell echo $${LOOP_PRODUCT_HOMEPAGE_URL-"https://www.firefox.com/hello/"})
 
 NODE_LOCAL_BIN=./node_modules/.bin
 
 install: npm_install
 
@@ -59,17 +59,17 @@ remove_old_config:
 # working with that deployment.
 .PHONY: config
 config:
 	@echo "var loop = loop || {};" > content/config.js
 	@echo "loop.config = loop.config || {};" >> content/config.js
 	@echo "loop.config.serverUrl = '`echo $(LOOP_SERVER_URL)`';" >> content/config.js
 	@echo "loop.config.feedbackApiUrl = '`echo $(LOOP_FEEDBACK_API_URL)`';" >> content/config.js
 	@echo "loop.config.feedbackProductName = '`echo $(LOOP_FEEDBACK_PRODUCT_NAME)`';" >> content/config.js
-	@echo "loop.config.brandWebsiteUrl = '`echo $(LOOP_BRAND_WEBSITE_URL)`';" >> content/config.js
+	@echo "loop.config.downloadFirefoxUrl = '`echo $(LOOP_DOWNLOAD_FIREFOX_URL)`';" >> content/config.js
 	@echo "loop.config.privacyWebsiteUrl = '`echo $(LOOP_PRIVACY_WEBSITE_URL)`';" >> content/config.js
 	@echo "loop.config.legalWebsiteUrl = '`echo $(LOOP_LEGAL_WEBSITE_URL)`';" >> content/config.js
 	@echo "loop.config.learnMoreUrl = '`echo $(LOOP_PRODUCT_HOMEPAGE_URL)`';" >> content/config.js
 	@echo "loop.config.fxosApp = loop.config.fxosApp || {};" >> content/config.js
 	@echo "loop.config.fxosApp.name = 'Loop';" >> content/config.js
 	@echo "loop.config.fxosApp.rooms = true;" >> content/config.js
 	@echo "loop.config.fxosApp.manifestUrl = 'http://fake-market.herokuapp.com/apps/packagedApp/manifest.webapp';" >> content/config.js
 	@echo "loop.config.roomsSupportUrl = 'https://support.mozilla.org/kb/group-conversations-firefox-hello-webrtc';" >> content/config.js
--- a/browser/components/loop/standalone/content/js/standaloneRoomViews.js
+++ b/browser/components/loop/standalone/content/js/standaloneRoomViews.js
@@ -40,17 +40,17 @@ loop.standaloneRoomViews = (function(moz
           React.createElement("a", {href: loop.config.learnMoreUrl, className: "btn btn-info"}, 
             mozL10n.get("rooms_room_full_call_to_action_label", {
               clientShortname: mozL10n.get("clientShortname2")
             })
           )
         );
       }
       return (
-        React.createElement("a", {href: loop.config.brandWebsiteUrl, className: "btn btn-info"}, 
+        React.createElement("a", {href: loop.config.downloadFirefoxUrl, className: "btn btn-info"}, 
           mozL10n.get("rooms_room_full_call_to_action_nonFx_label", {
             brandShortname: mozL10n.get("brandShortname")
           })
         )
       );
     },
 
     /**
--- a/browser/components/loop/standalone/content/js/standaloneRoomViews.jsx
+++ b/browser/components/loop/standalone/content/js/standaloneRoomViews.jsx
@@ -40,17 +40,17 @@ loop.standaloneRoomViews = (function(moz
           <a href={loop.config.learnMoreUrl} className="btn btn-info">
             {mozL10n.get("rooms_room_full_call_to_action_label", {
               clientShortname: mozL10n.get("clientShortname2")
             })}
           </a>
         );
       }
       return (
-        <a href={loop.config.brandWebsiteUrl} className="btn btn-info">
+        <a href={loop.config.downloadFirefoxUrl} className="btn btn-info">
           {mozL10n.get("rooms_room_full_call_to_action_nonFx_label", {
             brandShortname: mozL10n.get("brandShortname")
           })}
         </a>
       );
     },
 
     /**
--- a/browser/components/loop/standalone/content/js/webapp.js
+++ b/browser/components/loop/standalone/content/js/webapp.js
@@ -100,17 +100,17 @@ loop.webapp = (function($, _, OT, mozL10
       if (this.props.isFirefox) {
         return React.createElement("div", null);
       }
       return (
         React.createElement("div", {className: "promote-firefox"}, 
           React.createElement("h3", null, mozL10n.get("promote_firefox_hello_heading", {brandShortname: mozL10n.get("brandShortname")})), 
           React.createElement("p", null, 
             React.createElement("a", {className: "btn btn-large btn-accept", 
-               href: loop.config.brandWebsiteUrl}, 
+               href: loop.config.downloadFirefoxUrl}, 
               mozL10n.get("get_firefox_button", {
                 brandShortname: mozL10n.get("brandShortname")
               })
             )
           )
         )
       );
     }
--- a/browser/components/loop/standalone/content/js/webapp.jsx
+++ b/browser/components/loop/standalone/content/js/webapp.jsx
@@ -100,17 +100,17 @@ loop.webapp = (function($, _, OT, mozL10
       if (this.props.isFirefox) {
         return <div />;
       }
       return (
         <div className="promote-firefox">
           <h3>{mozL10n.get("promote_firefox_hello_heading", {brandShortname: mozL10n.get("brandShortname")})}</h3>
           <p>
             <a className="btn btn-large btn-accept"
-               href={loop.config.brandWebsiteUrl}>
+               href={loop.config.downloadFirefoxUrl}>
               {mozL10n.get("get_firefox_button", {
                 brandShortname: mozL10n.get("brandShortname")
               })}
             </a>
           </p>
         </div>
       );
     }
--- a/browser/components/loop/standalone/server.js
+++ b/browser/components/loop/standalone/server.js
@@ -26,17 +26,17 @@ function getConfigFile(req, res) {
     "var loop = loop || {};",
     "loop.config = loop.config || {};",
     "loop.config.serverUrl = 'http://localhost:" + loopServerPort + "/v0';",
     "loop.config.feedbackApiUrl = '" + feedbackApiUrl + "';",
     "loop.config.feedbackProductName = '" + feedbackProductName + "';",
     // XXX Update with the real marketplace url once the FxOS Loop app is
     //     uploaded to the marketplace bug 1053424
     "loop.config.marketplaceUrl = 'http://fake-market.herokuapp.com/iframe-install.html'",
-    "loop.config.brandWebsiteUrl = 'https://www.mozilla.org/firefox/';",
+    "loop.config.downloadFirefoxUrl = 'https://www.mozilla.org/firefox/new/?scene=2&utm_source=hello.firefox.com&utm_medium=referral&utm_campaign=non-webrtc-browser#download-fx';",
     "loop.config.privacyWebsiteUrl = 'https://www.mozilla.org/privacy/firefox-hello/';",
     "loop.config.learnMoreUrl = 'https://www.mozilla.org/hello/';",
     "loop.config.legalWebsiteUrl = 'https://www.mozilla.org/about/legal/terms/firefox-hello/';",
     "loop.config.fxosApp = loop.config.fxosApp || {};",
     "loop.config.fxosApp.name = 'Loop';",
     "loop.config.fxosApp.rooms = true;",
     "loop.config.fxosApp.manifestUrl = 'http://fake-market.herokuapp.com/apps/packagedApp/manifest.webapp';",
     "loop.config.roomsSupportUrl = 'https://support.mozilla.org/kb/group-conversations-firefox-hello-webrtc';",
--- a/browser/components/migration/MigrationUtils.jsm
+++ b/browser/components/migration/MigrationUtils.jsm
@@ -11,33 +11,31 @@ const Ci = Components.interfaces;
 const Cc = Components.classes;
 
 const TOPIC_WILL_IMPORT_BOOKMARKS = "initial-migration-will-import-default-bookmarks";
 const TOPIC_DID_IMPORT_BOOKMARKS = "initial-migration-did-import-default-bookmarks";
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyModuleGetter(this, "Dict",
-                                  "resource://gre/modules/Dict.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
                                   "resource://gre/modules/PlacesUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
                                   "resource://gre/modules/NetUtil.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "BookmarkHTMLUtils",
                                   "resource://gre/modules/BookmarkHTMLUtils.jsm");
 
 let gMigrators = null;
 let gProfileStartup = null;
 let gMigrationBundle = null;
 
 function getMigrationBundle() {
   if (!gMigrationBundle) {
     gMigrationBundle = Services.strings.createBundle(
-     "chrome://browser/locale/migration/migration.properties"); 
+     "chrome://browser/locale/migration/migration.properties");
   }
   return gMigrationBundle;
 }
 
 /**
  * Figure out what is the default browser, and if there is a migrator
  * for it, return that migrator's internal name.
  * For the time being, the "internal name" of a migraotr is its contract-id
@@ -193,68 +191,70 @@ this.MigratorPrototype = {
 
     if (aItems != Ci.nsIBrowserProfileMigrator.ALL)
       resources = [r for each (r in resources) if (aItems & r.type)];
 
     // Called either directly or through the bookmarks import callback.
     function doMigrate() {
       // TODO: use Map (for the items) and Set (for the resources)
       // once they are iterable.
-      let resourcesGroupedByItems = new Dict();
+      let resourcesGroupedByItems = new Map();
       resources.forEach(function(resource) {
         if (resourcesGroupedByItems.has(resource.type))
           resourcesGroupedByItems.get(resource.type).push(resource);
         else
           resourcesGroupedByItems.set(resource.type, [resource]);
       });
 
-      if (resourcesGroupedByItems.count == 0)
+      if (resourcesGroupedByItems.size == 0)
         throw new Error("No items to import");
 
       let notify = function(aMsg, aItemType) {
         Services.obs.notifyObservers(null, aMsg, aItemType);
       }
 
       notify("Migration:Started");
-      resourcesGroupedByItems.listkeys().forEach(function(migrationType) {
-        let migrationTypeA = migrationType;
-        let itemResources = resourcesGroupedByItems.get(migrationType);
+      for (let [key, value] of resourcesGroupedByItems) {
+      	// TODO: (bug 449811).
+      	let migrationType = key, itemResources = value;
+
         notify("Migration:ItemBeforeMigrate", migrationType);
 
         let itemSuccess = false;
-        itemResources.forEach(function(resource) {
+        for (let res of itemResources) {
+          let resource = res;
           let resourceDone = function(aSuccess) {
             let resourceIndex = itemResources.indexOf(resource);
             if (resourceIndex != -1) {
               itemResources.splice(resourceIndex, 1);
               itemSuccess |= aSuccess;
               if (itemResources.length == 0) {
-                resourcesGroupedByItems.del(migrationType);
+                resourcesGroupedByItems.delete(migrationType);
                 notify(itemSuccess ?
                        "Migration:ItemAfterMigrate" : "Migration:ItemError",
                        migrationType);
-                if (resourcesGroupedByItems.count == 0)
+                if (resourcesGroupedByItems.size == 0)
                   notify("Migration:Ended");
               }
             }
-          };
+          }
 
           Services.tm.mainThread.dispatch(function() {
             // If migrate throws, an error occurred, and the callback
             // (itemMayBeDone) might haven't been called.
             try {
               resource.migrate(resourceDone);
             }
             catch(ex) {
               Cu.reportError(ex);
               resourceDone(false);
             }
           }, Ci.nsIThread.DISPATCH_NORMAL);
-        });
-      });
+        }
+      }
     }
 
     if (MigrationUtils.isStartupMigration && !this.startupOnlyMigrator) {
       MigrationUtils.profileStartup.doStartup();
 
       // If we're about to migrate bookmarks, first import the default bookmarks.
       // Note We do not need to do so for the Firefox migrator
       // (=startupOnlyMigrator), as it just copies over the places database
@@ -435,17 +435,19 @@ this.MigrationUtils = Object.freeze({
   createImportedBookmarksFolder:
   function MU_createImportedBookmarksFolder(aSourceNameStr, aParentId) {
     let source = this.getLocalizedString("sourceName" + aSourceNameStr);
     let label = this.getLocalizedString("importedBookmarksFolder", [source]);
     return PlacesUtils.bookmarks.createFolder(
       aParentId, label, PlacesUtils.bookmarks.DEFAULT_INDEX);
   },
 
-  get _migrators() gMigrators ? gMigrators : gMigrators = new Dict(),
+  get _migrators() {
+    return gMigrators ? gMigrators : gMigrators = new Map();
+  },
 
   /*
    * Returns the migrator for the given source, if any data is available
    * for this source, or null otherwise.
    *
    * @param aKey internal name of the migration source.
    *             Supported values: ie (windows),
    *                               safari (mac/windows),
@@ -558,17 +560,16 @@ this.MigrationUtils = Object.freeze({
    * @param [optional] aMigratorKey
    *        If set, the migration wizard will import from the corresponding
    *        migrator, bypassing the source-selection page.  Otherwise, the
    *        source-selection page will be displayed, either with the default
    *        browser selected, if it could be detected and if there is a
    *        migrator for it, or with the first option selected as a fallback
    *        (The first option is hardcoded to be the most common browser for
    *         the OS we run on.  See migration.xul).
-   *          
    * @throws if aMigratorKey is invalid or if it points to a non-existent
    *         source.
    */
   startupMigration:
   function MU_startupMigrator(aProfileStartup, aMigratorKey) {
     if (!aProfileStartup) {
       throw new Error("an profile-startup instance is required for startup-migration");
     }
--- a/browser/themes/osx/browser.css
+++ b/browser/themes/osx/browser.css
@@ -701,18 +701,19 @@ toolbar .toolbarbutton-1 > .toolbarbutto
   margin-top: 0;
   margin-bottom: 0;
   padding-top: 1px;
   padding-bottom: 1px;
   -moz-margin-start: 9px;
   -moz-margin-end: 7px;
 }
 
-@media not all and (min-resolution: 2dppx) {
 %include ../shared/toolbarbuttons.inc.css
+
+@media not all and (min-resolution: 1.1dppx) {
 %include ../shared/menupanel.inc.css
 
   #back-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(18px, 36px, 36px, 18px);
   }
 
   #forward-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(18px, 72px, 36px, 54px);
@@ -753,17 +754,17 @@ toolbar .toolbarbutton-1 > .toolbarbutto
   #open-file-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 234px, 36px, 216px);
   }
 
   #save-page-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 252px, 36px, 234px);
   }
 
-  #sync-button@toolbarButtonPressed@ {
+  #sync-button@toolbarButtonPressed@:not([status="active"]) {
     -moz-image-region: rect(18px, 270px, 36px, 252px);
   }
 
   #feed-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 288px, 36px, 270px);
   }
 
   #social-share-button@toolbarButtonPressed@ {
@@ -797,430 +798,254 @@ toolbar .toolbarbutton-1 > .toolbarbutto
   #find-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 396px, 36px, 378px);
   }
 
   #print-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 414px, 36px, 396px);
   }
 
-  #restore-button@toolbarButtonPressed@,
+  #restore-button:hover:active:not([disabled="true"]),
   #fullscreen-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 432px, 36px, 414px);
   }
 
   #developer-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 450px, 36px, 432px);
   }
 
   #preferences-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 468px, 36px, 450px);
   }
 
   #PanelUI-menu-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 486px, 36px, 468px);
   }
 
-  #cut-button@toolbarButtonPressed@ {
+  #edit-controls[cui-areatype="toolbar"] > #cut-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(18px, 504px, 36px, 486px);
   }
 
-  #copy-button@toolbarButtonPressed@ {
+  #edit-controls[cui-areatype="toolbar"] > #copy-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(18px, 522px, 36px, 504px);
   }
 
-  #paste-button@toolbarButtonPressed@ {
+  #edit-controls[cui-areatype="toolbar"] > #paste-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(18px, 540px, 36px, 522px);
   }
 
-  #zoom-out-button@toolbarButtonPressed@ {
+  #zoom-controls[cui-areatype="toolbar"] > #zoom-out-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(18px, 558px, 36px, 540px);
   }
 
-  #zoom-in-button@toolbarButtonPressed@ {
+  #zoom-controls[cui-areatype="toolbar"] > #zoom-in-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(18px, 576px, 36px, 558px);
   }
 
-  #nav-bar-overflow-button@toolbarButtonPressed@ {
+  #nav-bar-overflow-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(18px, 612px, 36px, 594px);
   }
 
   #tabview-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 648px, 36px, 630px);
   }
 
   #email-link-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 666px, 36px, 648px);
   }
 
   #sidebar-button@toolbarButtonPressed@ {
     -moz-image-region: rect(18px, 684px, 36px, 666px);
   }
 
+  #panic-button@toolbarButtonPressed@ {
+    -moz-image-region: rect(18px, 702px, 36px, 684px);
+  }
+
+  #web-apps-button@toolbarButtonPressed@ {
+    -moz-image-region: rect(18px, 720px, 36px, 702px);
+  }
+
   /**
    * OSX has a unique set of icons when fullscreen is in the checked state.
    */
 
   #fullscreen-button[checked="true"]:not([cui-areatype="menu-panel"]) {
     -moz-image-region: rect(36px, 432px, 54px, 414px);
   }
 
   #fullscreen-button[checked="true"]@toolbarButtonPressed@ {
     -moz-image-region: rect(54px, 432px, 72px, 414px);
   }
 }
 
-@media (min-resolution: 2dppx) {
-  /* Whitelist built-in buttons, instead of .toolbarbutton-1,
-     to avoid potentially breaking add-on toolbar buttons. */
-
-  :-moz-any(@primaryToolbarButtons@),
-  #bookmarks-menu-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
-    list-style-image: url("chrome://browser/skin/Toolbar@2x.png");
-  }
-
-  toolbar[brighttext] :-moz-any(@primaryToolbarButtons@),
-  toolbar[brighttext] #bookmarks-menu-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
-    list-style-image: url("chrome://browser/skin/Toolbar-inverted@2x.png");
-  }
-
-  #back-button {
-    -moz-image-region: rect(0, 72px, 36px, 36px);
-  }
-
+@media (min-resolution: 1.1dppx) {
   #back-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 72px, 72px, 36px);
   }
 
-  #forward-button {
-    -moz-image-region: rect(0, 144px, 36px, 108px);
-  }
-
   #forward-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 144px, 72px, 108px);
   }
 
-  #home-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 252px, 36px, 216px);
-  }
-
-  #home-button[cui-areatype="toolbar"]:hover:active {
+  #home-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 252px, 72px, 216px);
   }
 
-  #bookmarks-menu-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 288px, 36px, 252px);
-  }
-
-  #bookmarks-menu-button[cui-areatype="toolbar"][buttonover]:hover:active:not([disabled="true"]) {
+  #bookmarks-menu-button@toolbarButtonPressed@[buttonover] {
     -moz-image-region: rect(36px, 288px, 72px, 252px);
   }
 
-  #bookmarks-menu-button[cui-areatype="toolbar"][starred] {
-    -moz-image-region: rect(0, 324px, 36px, 288px);
-  }
-
-  #bookmarks-menu-button[cui-areatype="toolbar"][starred][buttonover]:hover:active:not([disabled="true"]) {
+  #bookmarks-menu-button@toolbarButtonPressed@[starred][buttonover] {
     -moz-image-region: rect(36px, 324px, 72px, 288px);
   }
 
-  #bookmarks-menu-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
-    -moz-image-region: rect(0px, 1260px, 36px, 1224px);
-  }
-
   #bookmarks-menu-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker:hover:active:not([disabled="true"]) > .dropmarker-icon {
     -moz-image-region: rect(36px, 1260px, 72px, 1224px);
   }
 
-  #history-panelmenu[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 360px, 36px, 324px);
-  }
-
-  #history-panelmenu[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #history-panelmenu@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 360px, 72px, 324px);
   }
 
-  #downloads-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 396px, 36px, 360px);
-  }
-
-  #downloads-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #downloads-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 396px, 72px, 360px);
   }
 
-  #add-ons-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 432px, 36px, 396px);
-  }
-
-  #add-ons-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #add-ons-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 432px, 72px, 396px);
   }
 
-  #open-file-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 468px, 36px, 432px);
-  }
-
-  #open-file-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #open-file-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 468px, 72px, 432px);
   }
 
-  #save-page-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 504px, 36px, 468px);
-  }
-
-  #save-page-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #save-page-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 504px, 72px, 468px);
   }
 
-  #sync-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 540px, 36px, 504px);
-  }
-
-  #sync-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #sync-button@toolbarButtonPressed@:not([status="active"]) {
     -moz-image-region: rect(36px, 540px, 72px, 504px);
   }
 
-  #sync-button[cui-areatype="toolbar"][status="active"],
-  #sync-button[cui-areatype="toolbar"][status="active"]:hover:active:not([disabled="true"]) {
-    list-style-image: url("chrome://browser/skin/syncProgress-toolbar@2x.png");
-    -moz-image-region: rect(0, 36px, 36px, 0px);
-  }
-
-  toolbar[brighttext] #sync-button[cui-areatype="toolbar"][status="active"],
-  toolbar[brighttext] #sync-button[cui-areatype="toolbar"][status="active"]:hover:active:not([disabled="true"]) {
-    list-style-image: url("chrome://browser/skin/syncProgress-toolbar-inverted@2x.png");
-  }
-
-  #feed-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 576px, 36px, 540px);
-  }
-
-  #feed-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #feed-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 576px, 72px, 540px);
   }
 
-  #social-share-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 612px, 36px, 576px);
-  }
-
-  #social-share-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #social-share-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 612px, 72px, 576px);
   }
 
-  #characterencoding-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 648px, 36px, 612px);
-  }
-
-  #characterencoding-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #characterencoding-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 648px, 72px, 612px);
   }
 
-  #new-window-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 684px, 36px, 648px);
-  }
-
-  #new-window-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #new-window-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 684px, 72px, 648px);
   }
 
-  #e10s-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 684px, 36px, 648px);
-  }
-
-  #e10s-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #e10s-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 684px, 72px, 648px);
   }
 
   #e10s-button > .toolbarbutton-icon {
     transform: scaleY(-1);
   }
 
-  #webide-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 1476px, 36px, 1440px);
-  }
-
-  #webide-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #webide-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 1476px, 72px, 1440px);
   }
 
-  #new-tab-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 720px, 36px, 684px);
-  }
-
-  #new-tab-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #new-tab-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 720px, 72px, 684px);
   }
 
-  #privatebrowsing-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 756px, 36px, 720px);
-  }
-
-  #privatebrowsing-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #privatebrowsing-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 756px, 72px, 720px);
   }
 
-  #find-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 792px, 36px, 756px);
-  }
-
-  #find-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #find-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 792px, 72px, 756px);
   }
 
-  #print-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 828px, 36px, 792px);
-  }
-
-  #print-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #print-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 828px, 72px, 792px);
   }
 
-  #restore-button,
-  #fullscreen-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 864px, 36px, 828px);
-  }
-
   #restore-button:hover:active:not([disabled="true"]),
-  #fullscreen-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #fullscreen-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 864px, 72px, 828px);
   }
 
   #fullscreen-button[cui-areatype="toolbar"][checked="true"] {
     -moz-image-region: rect(72px, 864px, 108px, 828px);
   }
 
-  #fullscreen-button[cui-areatype="toolbar"][checked="true"]:hover:active:not([disabled="true"]) {
+  #fullscreen-button@toolbarButtonPressed@[checked="true"] {
     -moz-image-region: rect(108px, 864px, 144px, 828px);
   }
 
-  #developer-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 900px, 36px, 864px);
-  }
-
-  #developer-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #developer-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 900px, 72px, 864px);
   }
 
-  #preferences-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 936px, 36px, 900px);
-  }
-
-  #preferences-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #preferences-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 936px, 72px, 900px);
   }
 
-  #PanelUI-menu-button {
-    -moz-image-region: rect(0, 972px, 36px, 936px);
-  }
-
   #PanelUI-menu-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 972px, 72px, 936px);
   }
 
-  #edit-controls[cui-areatype="toolbar"] > #cut-button {
-    -moz-image-region: rect(0, 1008px, 36px, 972px);
-  }
-
   #edit-controls[cui-areatype="toolbar"] > #cut-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 1008px, 72px, 972px);
   }
 
-  #edit-controls[cui-areatype="toolbar"] > #copy-button {
-    -moz-image-region: rect(0, 1044px, 36px, 1008px);
-  }
-
   #edit-controls[cui-areatype="toolbar"] > #copy-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 1044px, 72px, 1008px);
   }
 
-  #edit-controls[cui-areatype="toolbar"] > #paste-button {
-    -moz-image-region: rect(0, 1080px, 36px, 1044px);
-  }
-
   #edit-controls[cui-areatype="toolbar"] > #paste-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 1080px, 72px, 1044px);
   }
 
-  #zoom-controls[cui-areatype="toolbar"] > #zoom-out-button {
-    -moz-image-region: rect(0, 1116px, 36px, 1080px);
-  }
-
   #zoom-controls[cui-areatype="toolbar"] > #zoom-out-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 1116px, 72px, 1080px);
   }
 
-  #zoom-controls[cui-areatype="toolbar"] > #zoom-in-button {
-    -moz-image-region: rect(0, 1152px, 36px, 1116px);
-  }
-
   #zoom-controls[cui-areatype="toolbar"] > #zoom-in-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 1152px, 72px, 1116px);
   }
 
-  #nav-bar-overflow-button {
-    -moz-image-region: rect(0, 1224px, 36px, 1188px);
-  }
-
   #nav-bar-overflow-button:hover:active:not([disabled="true"]) {
     -moz-image-region: rect(36px, 1224px, 72px, 1188px);
   }
 
-  #nav-bar-overflow-button:-moz-locale-dir(rtl) > .toolbarbutton-icon {
-    transform: scaleX(-1);
-  }
-
-  #tabview-button {
-    -moz-image-region: rect(0, 1296px, 36px, 1260px);
-  }
-
   #tabview-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 1296px, 72px, 1260px);
   }
 
-  #email-link-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 1332px, 36px, 1296px);
-  }
-
-  #email-link-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #email-link-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 1332px, 72px, 1296px);
   }
 
-  #sidebar-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 1368px, 36px, 1332px);
-  }
-
-  #sidebar-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #sidebar-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 1368px, 72px, 1332px);
   }
 
-  #panic-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 1404px, 36px, 1368px);
-  }
-
-  #panic-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #panic-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 1404px, 72px, 1368px);
   }
 
-  #panic-button[cui-areatype="toolbar"][open] {
-    -moz-image-region: rect(72px, 1404px, 108px, 1368px);
-  }
-
-  #panic-button:-moz-locale-dir(rtl) > .toolbarbutton-icon {
-    transform: scaleX(-1);
-  }
-
-  #web-apps-button[cui-areatype="toolbar"] {
-    -moz-image-region: rect(0, 1440px, 36px, 1404px);
-  }
-
-  #web-apps-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
+  #web-apps-button@toolbarButtonPressed@ {
     -moz-image-region: rect(36px, 1440px, 72px, 1404px);
   }
 
   :-moz-any(@primaryToolbarButtons@) > .toolbarbutton-icon,
+  :-moz-any(@primaryToolbarButtons@) > .toolbarbutton-badge-container > .toolbarbutton-icon,
   :-moz-any(@primaryToolbarButtons@) > .toolbarbutton-menubutton-button > .toolbarbutton-icon {
     width: 18px;
   }
 
   /* Menu panel and palette styles */
 
   toolbaritem[sdkstylewidget="true"] > toolbarbutton,
   :-moz-any(@primaryToolbarButtons@)[cui-areatype="menu-panel"],
--- a/browser/themes/shared/readinglist/icons.svg
+++ b/browser/themes/shared/readinglist/icons.svg
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 <svg xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink"
-     viewBox="0 0 16 16"
+     viewBox="0 0 14 14"
      xml:space="preserve">
 
   <defs>
     <style type="text/css">
       use:not(:target) {
         display: none;
       }
 
@@ -21,31 +21,31 @@
       }
       #addpage-active, #alreadyadded-active {
         fill: #0095DD;
       }
     </style>
 
     <mask id="plus-mask">
       <rect width="100%" height="100%" fill="white"/>
-      <rect x="4" y="7.5" width="8" height="1"/>
-      <rect x="7.5" y="4" width="1" height="8"/>
+      <rect x="3" y="6" width="8" height="2"/>
+      <rect x="6" y="3" width="2" height="8"/>
     </mask>
 
     <mask id="minus-mask">
       <rect width="100%" height="100%" fill="white"/>
-      <rect x="4" y="7.5" width="8" height="1"/>
+      <rect x="3" y="6" width="8" height="2"/>
     </mask>
 
     <g id="addpage-shape">
-      <circle cx="8" cy="8" r="7" mask="url(#plus-mask)"/>
+      <circle cx="7" cy="7" r="6" mask="url(#plus-mask)"/>
     </g>
 
     <g id="removepage-shape">
-      <circle cx="8" cy="8" r="7" mask="url(#minus-mask)"/>
+      <circle cx="7" cy="7" r="6" mask="url(#minus-mask)"/>
     </g>
 
   </defs>
 
   <use id="addpage"                 xlink:href="#addpage-shape"/>
   <use id="addpage-hover"           xlink:href="#addpage-shape"/>
   <use id="addpage-active"          xlink:href="#addpage-shape"/>
 
--- a/browser/themes/shared/toolbarbuttons.inc.css
+++ b/browser/themes/shared/toolbarbuttons.inc.css
@@ -1,10 +1,8 @@
-/* Note that this file isn't used for HiDPI on OS X. */
-
 :-moz-any(@primaryToolbarButtons@),
 #bookmarks-menu-button > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
   list-style-image: url("chrome://browser/skin/Toolbar.png");
 }
 
 toolbar[brighttext] :-moz-any(@primaryToolbarButtons@),
 toolbar[brighttext] #bookmarks-menu-button > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
   list-style-image: url(chrome://browser/skin/Toolbar-inverted.png);
@@ -53,24 +51,22 @@ toolbar[brighttext] #bookmarks-menu-butt
 #save-page-button[cui-areatype="toolbar"] {
   -moz-image-region: rect(0, 252px, 18px, 234px);
 }
 
 #sync-button[cui-areatype="toolbar"] {
   -moz-image-region: rect(0, 270px, 18px, 252px);
 }
 
-#sync-button[cui-areatype="toolbar"][status="active"],
-#sync-button[cui-areatype="toolbar"][status="active"]:hover:active:not([disabled="true"]) {
+#sync-button[cui-areatype="toolbar"][status="active"] {
   list-style-image: url("chrome://browser/skin/syncProgress-toolbar.png");
   -moz-image-region: rect(0, 18px, 18px, 0px);
 }
 
-toolbar[brighttext] #sync-button[status="active"],
-toolbar[brighttext] #sync-button[status="active"]:hover:active:not([disabled="true"]) {
+toolbar[brighttext] #sync-button[status="active"] {
   list-style-image: url("chrome://browser/skin/syncProgress-toolbar-inverted.png");
 }
 
 #feed-button[cui-areatype="toolbar"] {
   -moz-image-region: rect(0, 288px, 18px, 270px);
 }
 
 #social-share-button[cui-areatype="toolbar"] {
@@ -167,44 +163,32 @@ toolbar[brighttext] #sync-button[status=
 #sidebar-button[cui-areatype="toolbar"] {
   -moz-image-region: rect(0, 684px, 18px, 666px);
 }
 
 #panic-button[cui-areatype="toolbar"] {
   -moz-image-region: rect(0, 702px, 18px, 684px);
 }
 
+#panic-button[cui-areatype="toolbar"][open] {
 %ifdef XP_MACOSX
-#panic-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
-  -moz-image-region: rect(18px, 702px, 36px, 684px);
-}
-
-#panic-button[cui-areatype="toolbar"][open] {
   -moz-image-region: rect(36px, 702px, 54px, 684px);
+%else
+  -moz-image-region: rect(18px, 702px, 36px, 684px);
+%endif
 }
-%else
-#panic-button[cui-areatype="toolbar"][open] {
-  -moz-image-region: rect(18px, 702px, 36px, 684px);
-}
-%endif
 
 #panic-button:-moz-locale-dir(rtl) > .toolbarbutton-icon {
   transform: scaleX(-1);
 }
 
 #web-apps-button[cui-areatype="toolbar"] {
   -moz-image-region: rect(0, 720px, 18px, 702px);
 }
 
-%ifdef XP_MACOSX
-#web-apps-button[cui-areatype="toolbar"]:hover:active:not([disabled="true"]) {
-  -moz-image-region: rect(18px, 720px, 36px, 702px);
-}
-%endif
-
 #loop-button > .toolbarbutton-badge-container {
   list-style-image: url(chrome://browser/skin/loop/toolbar.png);
   -moz-image-region: rect(0, 18px, 18px, 0);
 }
 
 toolbar[brighttext] #loop-button > .toolbarbutton-badge-container {
   list-style-image: url(chrome://browser/skin/loop/toolbar-inverted.png);
 }
@@ -232,8 +216,194 @@ toolbar[brighttext] #loop-button > .tool
 
 #loop-button:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
   -moz-image-region: rect(0, 126px, 18px, 108px);
 }
 
 #webide-button[cui-areatype="toolbar"] {
   -moz-image-region: rect(0, 738px, 18px, 720px);
 }
+
+%if defined(XP_WIN) || defined(XP_MACOSX)
+@media (min-resolution: 1.1dppx) {
+  :-moz-any(@primaryToolbarButtons@),
+  #bookmarks-menu-button > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
+    list-style-image: url("chrome://browser/skin/Toolbar@2x.png");
+  }
+
+  toolbar[brighttext] :-moz-any(@primaryToolbarButtons@),
+  toolbar[brighttext] #bookmarks-menu-button > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
+    list-style-image: url("chrome://browser/skin/Toolbar-inverted@2x.png");
+  }
+
+  #back-button {
+    -moz-image-region: rect(0, 72px, 36px, 36px);
+  }
+
+  #forward-button {
+    -moz-image-region: rect(0, 144px, 36px, 108px);
+  }
+
+  #home-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 252px, 36px, 216px);
+  }
+
+  #bookmarks-menu-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 288px, 36px, 252px);
+  }
+
+  #bookmarks-menu-button[cui-areatype="toolbar"][starred] {
+    -moz-image-region: rect(0, 324px, 36px, 288px);
+  }
+
+  #bookmarks-menu-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
+    -moz-image-region: rect(0px, 1260px, 36px, 1224px);
+  }
+
+  #history-panelmenu[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 360px, 36px, 324px);
+  }
+
+  #downloads-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 396px, 36px, 360px);
+  }
+
+  #add-ons-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 432px, 36px, 396px);
+  }
+
+  #open-file-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 468px, 36px, 432px);
+  }
+
+  #save-page-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 504px, 36px, 468px);
+  }
+
+  #sync-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 540px, 36px, 504px);
+  }
+
+  #sync-button[cui-areatype="toolbar"][status="active"] {
+    list-style-image: url("chrome://browser/skin/syncProgress-toolbar@2x.png");
+    -moz-image-region: rect(0, 36px, 36px, 0px);
+  }
+
+  toolbar[brighttext] #sync-button[cui-areatype="toolbar"][status="active"] {
+    list-style-image: url("chrome://browser/skin/syncProgress-toolbar-inverted@2x.png");
+  }
+
+  #feed-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 576px, 36px, 540px);
+  }
+
+  #social-share-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 612px, 36px, 576px);
+  }
+
+  #characterencoding-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 648px, 36px, 612px);
+  }
+
+  #new-window-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 684px, 36px, 648px);
+  }
+
+  #e10s-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 684px, 36px, 648px);
+  }
+
+  #e10s-button > .toolbarbutton-icon {
+    transform: scaleY(-1);
+  }
+
+  #new-tab-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 720px, 36px, 684px);
+  }
+
+  #privatebrowsing-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 756px, 36px, 720px);
+  }
+
+  #find-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 792px, 36px, 756px);
+  }
+
+  #print-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 828px, 36px, 792px);
+  }
+
+%ifdef XP_MACOSX
+  #restore-button,
+%endif
+  #fullscreen-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 864px, 36px, 828px);
+  }
+
+  #developer-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 900px, 36px, 864px);
+  }
+
+  #preferences-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 936px, 36px, 900px);
+  }
+
+  #PanelUI-menu-button {
+    -moz-image-region: rect(0, 972px, 36px, 936px);
+  }
+
+  #edit-controls[cui-areatype="toolbar"] > #cut-button {
+    -moz-image-region: rect(0, 1008px, 36px, 972px);
+  }
+
+  #edit-controls[cui-areatype="toolbar"] > #copy-button {
+    -moz-image-region: rect(0, 1044px, 36px, 1008px);
+  }
+
+  #edit-controls[cui-areatype="toolbar"] > #paste-button {
+    -moz-image-region: rect(0, 1080px, 36px, 1044px);
+  }
+
+  #zoom-controls[cui-areatype="toolbar"] > #zoom-out-button {
+    -moz-image-region: rect(0, 1116px, 36px, 1080px);
+  }
+
+  #zoom-controls[cui-areatype="toolbar"] > #zoom-in-button {
+    -moz-image-region: rect(0, 1152px, 36px, 1116px);
+  }
+
+  #nav-bar-overflow-button {
+    -moz-image-region: rect(0, 1224px, 36px, 1188px);
+  }
+
+  #tabview-button {
+    -moz-image-region: rect(0, 1296px, 36px, 1260px);
+  }
+
+  #email-link-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 1332px, 36px, 1296px);
+  }
+
+  #sidebar-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 1368px, 36px, 1332px);
+  }
+
+  #panic-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 1404px, 36px, 1368px);
+  }
+
+  #panic-button[cui-areatype="toolbar"][open] {
+%ifdef XP_MACOSX
+    -moz-image-region: rect(72px, 1404px, 108px, 1368px);
+%else
+    -moz-image-region: rect(36px, 1404px, 72px, 1368px);
+%endif
+  }
+
+  #web-apps-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 1440px, 36px, 1404px);
+  }
+
+  #webide-button[cui-areatype="toolbar"] {
+    -moz-image-region: rect(0, 1476px, 36px, 1440px);
+  }
+}
+%endif
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6112bd6fc923596b05c172c7b7b63250ea2e7ef2
GIT binary patch
literal 43656
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
CM!b~(
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..89b01f5f64ed237c0c99d685457165f414b1b050
GIT binary patch
literal 27669
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5f2e53dd79a40be4daf5bb6f988e51afcdd254ca
GIT binary patch
literal 15831
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
VjLZEN8?ygywbk|2DpYKu{tx@v(=Px3
--- a/browser/themes/windows/browser.css
+++ b/browser/themes/windows/browser.css
@@ -663,16 +663,32 @@ toolbar[brighttext] .toolbarbutton-1 > .
 @conditionalForwardWithUrlbar@ > .toolbarbutton-1:-moz-any([disabled],:not([open]):not([disabled]):not(:active)) > .toolbarbutton-icon {
   padding: 2px 6px;
   border: 1px solid;
   border-color: transparent;
   transition-property: background-color, border-color;
   transition-duration: 150ms;
 }
 
+toolbarbutton[cui-areatype="toolbar"] > :-moz-any(@nestedButtons@) > .toolbarbutton-icon,
+:-moz-any(@primaryToolbarButtons@):-moz-any([cui-areatype="toolbar"],:not([cui-areatype])):not(:-moz-any(@nestedButtons@)) > .toolbarbutton-icon,
+:-moz-any(@primaryToolbarButtons@):-moz-any([cui-areatype="toolbar"],:not([cui-areatype])) > .toolbarbutton-badge-container > .toolbarbutton-icon,
+:-moz-any(@primaryToolbarButtons@):-moz-any([cui-areatype="toolbar"],:not([cui-areatype])) > .toolbarbutton-menubutton-button > .toolbarbutton-icon,
+#bookmarks-menu-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
+  width: 18px;
+}
+
+#nav-bar toolbarbutton[cui-areatype="toolbar"] > :-moz-any(@nestedButtons@) > .toolbarbutton-icon,
+#nav-bar :-moz-any(@primaryToolbarButtons@):-moz-any([cui-areatype="toolbar"],:not([cui-areatype])) > .toolbarbutton-icon,
+#nav-bar :-moz-any(@primaryToolbarButtons@):-moz-any([cui-areatype="toolbar"],:not([cui-areatype])) > .toolbarbutton-menubutton-button > .toolbarbutton-icon,
+#nav-bar #bookmarks-menu-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
+  /* horizontal padding + border + actual icon width */
+  width: 32px;
+}
+
 @media (-moz-os-version: windows-xp),
        (-moz-os-version: windows-vista),
        (-moz-os-version: windows-win7) {
   /* < Win8 */
   :root {
     --toolbarbutton-hover-background: linear-gradient(hsla(0,0%,100%,.6), hsla(0,0%,100%,.1));
     --toolbarbutton-hover-bordercolor: hsla(210,54%,20%,.15) hsla(210,54%,20%,.2) hsla(210,54%,20%,.25);
     --toolbarbutton-hover-boxshadow: 0 1px hsla(0,0%,100%,.3) inset,
@@ -734,18 +750,24 @@ toolbarbutton[sdk-button="true"][cui-are
 #nav-bar .toolbarbutton-1 > .toolbarbutton-menu-dropmarker {
   -moz-margin-start: -15px;
 }
 
 #nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-button > .toolbarbutton-icon {
   -moz-border-end: none transparent;
 }
 
+#nav-bar #bookmarks-menu-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-button > .toolbarbutton-icon {
+  /* horizontal padding + border + actual icon width */
+  width: 31px;
+}
+
 #nav-bar .toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
-  padding: 8px 5px 7px;
+  padding-top: 8px;
+  padding-bottom: 8px;
 }
 
 #nav-bar .toolbaritem-combined-buttons {
   margin-left: 2px;
   margin-right: 2px;
 }
 
 #nav-bar .toolbaritem-combined-buttons > .toolbarbutton-1 {
@@ -892,16 +914,17 @@ toolbarbutton[sdk-button="true"][cui-are
 }
 
 #forward-button > .toolbarbutton-icon {
   background-clip: padding-box !important;
   border-left-style: none !important;
   border-radius: 0 !important;
   padding-left: 9px !important;
   padding-right: 3px !important;
+  width: 31px !important; /* horizontal padding + border + actual icon width */
 }
 
 @conditionalForwardWithUrlbar@:not([switchingtabs]) > #forward-button {
   transition: margin-left @forwardTransitionLength@ ease-out;
 }
 
 @conditionalForwardWithUrlbar@ > #forward-button[disabled] {
   margin-left: -@conditionalForwardWithUrlbarWidth@px;
@@ -938,16 +961,17 @@ toolbarbutton[sdk-button="true"][cui-are
 }
 
 #back-button > .toolbarbutton-icon {
   border-radius: 10000px !important;
   background-clip: padding-box !important;
   background-color: hsla(210,25%,98%,.08) !important;
   padding: 6px !important;
   border-style: none !important;
+  width: 30px !important; /* horizontal padding + border + actual icon width */
   box-shadow: 0 1px 0 0 hsla(210,4%,10%,.25),
               0 0 0 1px hsla(210,4%,10%,.25);
   transition-property: background-color, box-shadow !important;
   transition-duration: 250ms !important;
 }
 
 #back-button:not([disabled="true"]):not([open="true"]):not(:active):hover > .toolbarbutton-icon {
   background-color: hsla(210,4%,10%,.08) !important;
--- a/browser/themes/windows/jar.mn
+++ b/browser/themes/windows/jar.mn
@@ -102,18 +102,21 @@ browser.jar:
         skin/classic/browser/search-indicator-badge-add.png          (../shared/search/search-indicator-badge-add.png)
         skin/classic/browser/search-history-icon.svg                 (../shared/search/history-icon.svg)
         skin/classic/browser/Secure24.png
         skin/classic/browser/Secure24-aero.png
         skin/classic/browser/setDesktopBackground.css
         skin/classic/browser/slowStartup-16.png
         skin/classic/browser/theme-switcher-icon.png                 (../shared/theme-switcher-icon.png)
         skin/classic/browser/Toolbar.png
+        skin/classic/browser/Toolbar@2x.png
         skin/classic/browser/Toolbar-aero.png
+        skin/classic/browser/Toolbar-aero@2x.png
         skin/classic/browser/Toolbar-inverted.png
+        skin/classic/browser/Toolbar-inverted@2x.png
         skin/classic/browser/Toolbar-lunaSilver.png
         skin/classic/browser/Toolbar-XP.png
         skin/classic/browser/toolbarbutton-dropdown-arrow.png
         skin/classic/browser/toolbarbutton-dropdown-arrow-XPVista7.png
         skin/classic/browser/toolbarbutton-dropdown-arrow-inverted.png
         skin/classic/browser/undoCloseTab.png                        (../shared/undoCloseTab.png)
         skin/classic/browser/undoCloseTab@2x.png                     (../shared/undoCloseTab@2x.png)
         skin/classic/browser/update-badge.svg                        (../shared/update-badge.svg)
@@ -490,18 +493,21 @@ browser.jar:
         skin/classic/browser/syncSetup.css
         skin/classic/browser/syncCommon.css
         skin/classic/browser/syncQuota.css
         skin/classic/browser/syncProgress.css
         skin/classic/browser/syncProgress-horizontalbar.png
         skin/classic/browser/syncProgress-horizontalbar-XPVista7.png
         skin/classic/browser/syncProgress-menuPanel.png
         skin/classic/browser/syncProgress-toolbar.png
+        skin/classic/browser/syncProgress-toolbar@2x.png
         skin/classic/browser/syncProgress-toolbar-inverted.png
+        skin/classic/browser/syncProgress-toolbar-inverted@2x.png
         skin/classic/browser/syncProgress-toolbar-XPVista7.png
+        skin/classic/browser/syncProgress-toolbar-XPVista7@2x.png
 #endif
         skin/classic/browser/devtools/tooltip/arrow-horizontal-dark.png   (../shared/devtools/tooltip/arrow-horizontal-dark.png)
         skin/classic/browser/devtools/tooltip/arrow-horizontal-dark@2x.png   (../shared/devtools/tooltip/arrow-horizontal-dark@2x.png)
         skin/classic/browser/devtools/tooltip/arrow-vertical-dark.png   (../shared/devtools/tooltip/arrow-vertical-dark.png)
         skin/classic/browser/devtools/tooltip/arrow-vertical-dark@2x.png   (../shared/devtools/tooltip/arrow-vertical-dark@2x.png)
         skin/classic/browser/devtools/tooltip/arrow-horizontal-light.png   (../shared/devtools/tooltip/arrow-horizontal-light.png)
         skin/classic/browser/devtools/tooltip/arrow-horizontal-light@2x.png   (../shared/devtools/tooltip/arrow-horizontal-light@2x.png)
         skin/classic/browser/devtools/tooltip/arrow-vertical-light.png   (../shared/devtools/tooltip/arrow-vertical-light.png)
@@ -552,24 +558,28 @@ browser.jar:
 % override chrome://browser/skin/preferences/application.png          chrome://browser/skin/preferences/application-aero.png            os=WINNT osversion>=6
 % override chrome://browser/skin/preferences/mail.png                 chrome://browser/skin/preferences/mail-aero.png                   os=WINNT osversion>=6
 % override chrome://browser/skin/preferences/Options.png              chrome://browser/skin/preferences/Options-aero.png                os=WINNT osversion>=6
 % override chrome://browser/skin/preferences/saveFile.png             chrome://browser/skin/preferences/saveFile-aero.png               os=WINNT osversion>=6
 % override chrome://browser/skin/tabbrowser/tab-separator.png         chrome://browser/skin/tabbrowser/tab-separator-aero.png           os=WINNT osversion>=6
 
 % override chrome://browser/skin/sync-horizontalbar.png               chrome://browser/skin/sync-horizontalbar-XPVista7.png             os=WINNT osversion<=6.1
 % override chrome://browser/skin/syncProgress-horizontalbar.png       chrome://browser/skin/syncProgress-horizontalbar-XPVista7.png     os=WINNT osversion<=6.1
+% override chrome://browser/skin/syncProgress-toolbar.png             chrome://browser/skin/syncProgress-toolbar-XPVista7.png           os=WINNT osversion<=6.1
+% override chrome://browser/skin/syncProgress-toolbar@2x.png          chrome://browser/skin/syncProgress-toolbar-XPVista7@2x.png        os=WINNT osversion<=6.1
 % override chrome://browser/skin/toolbarbutton-dropdown-arrow.png     chrome://browser/skin/toolbarbutton-dropdown-arrow-XPVista7.png   os=WINNT osversion<=6.1
 % override chrome://browser/skin/tabbrowser/newtab.png                chrome://browser/skin/tabbrowser/newtab-XPVista7.png              os=WINNT osversion<=6.1
 % override chrome://browser/skin/tabbrowser/tab-arrow-left.png        chrome://browser/skin/tabbrowser/tab-arrow-left-XPVista7.png      os=WINNT osversion<=6.1
 
 % override chrome://browser/skin/menuPanel.png                        chrome://browser/skin/menuPanel-aero.png                          os=WINNT osversion=6
 % override chrome://browser/skin/menuPanel.png                        chrome://browser/skin/menuPanel-aero.png                          os=WINNT osversion=6.1
 % override chrome://browser/skin/menuPanel-small.png                  chrome://browser/skin/menuPanel-small-aero.png                    os=WINNT osversion=6
 % override chrome://browser/skin/menuPanel-small.png                  chrome://browser/skin/menuPanel-small-aero.png                    os=WINNT osversion=6.1
+% override chrome://browser/skin/Toolbar@2x.png                       chrome://browser/skin/Toolbar-aero@2x.png                         os=WINNT osversion=6
+% override chrome://browser/skin/Toolbar@2x.png                       chrome://browser/skin/Toolbar-aero@2x.png                         os=WINNT osversion=6.1
 % override chrome://browser/skin/loop/menuPanel.png                   chrome://browser/skin/loop/menuPanel-aero.png                     os=WINNT osversion=6
 % override chrome://browser/skin/loop/menuPanel.png                   chrome://browser/skin/loop/menuPanel-aero.png                     os=WINNT osversion=6.1
 
 % override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-aero.png                            os=WINNT osversion=6
 % override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-aero.png                            os=WINNT osversion=6.1
 % override chrome://browser/skin/Toolbar.png                          chrome://browser/skin/Toolbar-XP.png                              os=WINNT osversion=5.2
 % override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-aero.png                       os=WINNT osversion=6
 % override chrome://browser/skin/loop/toolbar.png                     chrome://browser/skin/loop/toolbar-aero.png                       os=WINNT osversion=6.1
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fd203872564dc72b89b85431b205a7a3e2689b1f
GIT binary patch
literal 33662
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..eee4a5dd0e5eba60b8eafe522eedb0c91615135f
GIT binary patch
literal 32029
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4493d7c749e1594ca4d103574fa53808018342a2
GIT binary patch
literal 10387
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
Ri2ldyZOywHb!xT|{||Gy4@Cd~
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -251,16 +251,20 @@
         </activity-alias>
 
 #ifdef MOZ_ANDROID_TAB_QUEUE
         <!-- The main reason for the Tab Queue build flag is to not mess with the VIEW intent filter
              before the rest of the plumbing is in place -->
 
         <service android:name="org.mozilla.gecko.tabqueue.TabQueueService" />
 
+        <activity android:name="org.mozilla.gecko.tabqueue.TabQueuePrompt"
+                  android:launchMode="singleTop"
+                  android:theme="@style/OverlayActivity" />
+
         <activity android:name="org.mozilla.gecko.tabqueue.TabQueueDispatcher"
                   android:label="@MOZ_APP_DISPLAYNAME@"
                   android:launchMode="singleTask"
                   android:theme="@style/TabQueueActivity">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.BROWSABLE" />
@@ -423,17 +427,17 @@
 
 #ifdef MOZ_ANDROID_SHARE_OVERLAY
         <!-- Share overlay activity
 
              Setting launchMode="singleTop" ensures onNewIntent is called when the Activity is
              reused. Ideally we create a new instance but Android L breaks this (bug 1137928). -->
         <activity android:name="org.mozilla.gecko.overlays.ui.ShareDialog"
                   android:label="@string/overlay_share_label"
-                  android:theme="@style/ShareOverlayActivity"
+                  android:theme="@style/OverlayActivity"
                   android:configChanges="keyboard|keyboardHidden|mcc|mnc|locale|layoutDirection"
                   android:launchMode="singleTop"
                   android:windowSoftInputMode="stateAlwaysHidden|adjustResize">
 
             <intent-filter>
                 <action android:name="android.intent.action.SEND" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:mimeType="text/plain" />
--- a/mobile/android/base/BrowserApp.java
+++ b/mobile/android/base/BrowserApp.java
@@ -46,16 +46,17 @@ import org.mozilla.gecko.mozglue.Context
 import org.mozilla.gecko.mozglue.RobocopTarget;
 import org.mozilla.gecko.overlays.ui.ShareDialog;
 import org.mozilla.gecko.preferences.ClearOnShutdownPref;
 import org.mozilla.gecko.preferences.GeckoPreferences;
 import org.mozilla.gecko.prompts.Prompt;
 import org.mozilla.gecko.prompts.PromptListItem;
 import org.mozilla.gecko.sync.setup.SyncAccounts;
 import org.mozilla.gecko.tabqueue.TabQueueHelper;
+import org.mozilla.gecko.tabqueue.TabQueuePrompt;
 import org.mozilla.gecko.tabs.TabHistoryController;
 import org.mozilla.gecko.tabs.TabHistoryController.OnShowTabHistory;
 import org.mozilla.gecko.tabs.TabHistoryFragment;
 import org.mozilla.gecko.tabs.TabHistoryPage;
 import org.mozilla.gecko.tabs.TabsPanel;
 import org.mozilla.gecko.toolbar.AutocompleteHandler;
 import org.mozilla.gecko.toolbar.BrowserToolbar;
 import org.mozilla.gecko.toolbar.BrowserToolbar.TabEditingState;
@@ -162,16 +163,17 @@ public class BrowserApp extends GeckoApp
     public static final String GUEST_BROWSING_ARG = "--guest";
 
     private static final String STATE_ABOUT_HOME_TOP_PADDING = "abouthome_top_padding";
 
     private static final String BROWSER_SEARCH_TAG = "browser_search";
 
     // Request ID for startActivityForResult.
     private static final int ACTIVITY_REQUEST_PREFERENCES = 1001;
+    private static final int ACTIVITY_REQUEST_TAB_QUEUE = 2001;
 
     @RobocopTarget
     public static final String EXTRA_SKIP_STARTPANE = "skipstartpane";
 
     private BrowserSearch mBrowserSearch;
     private View mBrowserSearchContainer;
 
     public ViewGroup mBrowserChrome;
@@ -709,16 +711,18 @@ public class BrowserApp extends GeckoApp
         });
         mBrowserToolbar.setTabHistoryController(tabHistoryController);
 
         final String action = intent.getAction();
         if (Intent.ACTION_VIEW.equals(action)) {
             // Show the target URL immediately in the toolbar.
             mBrowserToolbar.setTitle(intent.getDataString());
 
+            showTabQueuePromptIfApplicable(intent);
+
             Telemetry.sendUIEvent(TelemetryContract.Event.LOAD_URL, TelemetryContract.Method.INTENT);
         } else if (GuestSession.NOTIFICATION_INTENT.equals(action)) {
             GuestSession.handleIntent(this, intent);
         }
 
         if (HardwareUtils.isTablet()) {
             mTabStrip = (Refreshable) (((ViewStub) findViewById(R.id.new_tablet_tab_strip)).inflate());
         }
@@ -2422,16 +2426,21 @@ public class BrowserApp extends GeckoApp
                         Log.d(LOGTAG, "Read persisted locale " + locale);
                         if (locale == null) {
                             return;
                         }
                         onLocaleChanged(Locales.getLanguageTag(locale));
                     }
                 });
                 break;
+
+            case ACTIVITY_REQUEST_TAB_QUEUE:
+                TabQueueHelper.processTabQueuePromptResponse(resultCode, this);
+                break;
+
             default:
                 super.onActivityResult(requestCode, resultCode, data);
         }
     }
 
     private void showFirstrunPager() {
         if (mFirstrunPane == null) {
             final ViewStub firstrunPagerStub = (ViewStub) findViewById(R.id.firstrun_pager_stub);
@@ -3413,16 +3422,18 @@ public class BrowserApp extends GeckoApp
             // GeckoApp.ACTION_HOMESCREEN_SHORTCUT means we're opening a bookmark that
             // was added to Android's homescreen.
             final TelemetryContract.Method method =
                 (isViewAction ? TelemetryContract.Method.INTENT : TelemetryContract.Method.HOMESCREEN);
 
             Telemetry.sendUIEvent(TelemetryContract.Event.LOAD_URL, method);
         }
 
+        showTabQueuePromptIfApplicable(intent);
+
         super.onNewIntent(intent);
 
         if (AppConstants.MOZ_ANDROID_BEAM && NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) {
             String uri = intent.getDataString();
             GeckoAppShell.sendEventToGecko(GeckoEvent.createURILoadEvent(uri));
         }
 
         // Only solicit feedback when the app has been launched from the icon shortcut.
@@ -3463,16 +3474,32 @@ public class BrowserApp extends GeckoApp
                     GeckoAppShell.sendEventToGecko(GeckoEvent.createBroadcastEvent("Feedback:Show", null));
                 }
             }
         } finally {
             StrictMode.setThreadPolicy(savedPolicy);
         }
     }
 
+    private void showTabQueuePromptIfApplicable(final Intent intent) {
+        ThreadUtils.postToBackgroundThread(new Runnable() {
+            @Override
+            public void run() {
+                // We only want to show the prompt if the browser has been opened from an external url
+                if (AppConstants.NIGHTLY_BUILD && AppConstants.MOZ_ANDROID_TAB_QUEUE
+                                               && mInitialized
+                                               && Intent.ACTION_VIEW.equals(intent.getAction())
+                                               && TabQueueHelper.shouldShowTabQueuePrompt(BrowserApp.this)) {
+                    Intent promptIntent = new Intent(BrowserApp.this, TabQueuePrompt.class);
+                    startActivityForResult(promptIntent, ACTIVITY_REQUEST_TAB_QUEUE);
+                }
+            }
+        });
+    }
+
     @Override
     protected NotificationClient makeNotificationClient() {
         // The service is local to Fennec, so we can use it to keep
         // Fennec alive during downloads.
         return new ServiceNotificationClient(getApplicationContext());
     }
 
     private void resetFeedbackLaunchCount() {
--- a/mobile/android/base/fxa/receivers/FxAccountDeletedService.java
+++ b/mobile/android/base/fxa/receivers/FxAccountDeletedService.java
@@ -4,16 +4,18 @@
 
 package org.mozilla.gecko.fxa.receivers;
 
 import org.mozilla.gecko.background.common.log.Logger;
 import org.mozilla.gecko.fxa.FxAccountConstants;
 import org.mozilla.gecko.fxa.sync.FxAccountNotificationManager;
 import org.mozilla.gecko.fxa.sync.FxAccountSyncAdapter;
 import org.mozilla.gecko.sync.config.AccountPickler;
+import org.mozilla.gecko.sync.repositories.android.AndroidBrowserHistoryDataExtender;
+import org.mozilla.gecko.sync.repositories.android.ClientsDatabase;
 import org.mozilla.gecko.sync.repositories.android.FennecTabsRepository;
 
 import android.app.IntentService;
 import android.content.Context;
 import android.content.Intent;
 
 /**
  * A background service to clean up after a Firefox Account is deleted.
@@ -58,19 +60,53 @@ public class FxAccountDeletedService ext
       return;
     }
 
     Logger.info(LOG_TAG, "Firefox account named " + accountName + " being removed; " +
         "deleting saved pickle file '" + FxAccountConstants.ACCOUNT_PICKLE_FILENAME + "'.");
     deletePickle(context);
 
     // Delete client database and non-local tabs.
-    Logger.info(LOG_TAG, "Deleting the entire clients database and non-local tabs");
+    Logger.info(LOG_TAG, "Deleting the entire Fennec clients database and non-local tabs");
     FennecTabsRepository.deleteNonLocalClientsAndTabs(context);
 
+
+    // Clear Firefox Sync client tables.
+    try {
+      Logger.info(LOG_TAG, "Deleting the Firefox Sync clients database.");
+      ClientsDatabase db = null;
+      try {
+        db = new ClientsDatabase(context);
+        db.wipeClientsTable();
+        db.wipeCommandsTable();
+      } finally {
+        if (db != null) {
+          db.close();
+        }
+      }
+    } catch (Exception e) {
+      Logger.warn(LOG_TAG, "Got exception deleting the Firefox Sync clients database; ignoring.", e);
+    }
+
+    // Clear Firefox Sync history data table.
+    try {
+      Logger.info(LOG_TAG, "Deleting the Firefox Sync extended history database.");
+      AndroidBrowserHistoryDataExtender historyDataExtender = null;
+      try {
+        historyDataExtender = new AndroidBrowserHistoryDataExtender(context);
+        historyDataExtender.wipe();
+      } finally {
+        if (historyDataExtender != null) {
+          historyDataExtender.close();
+        }
+      }
+    } catch (Exception e) {
+      Logger.warn(LOG_TAG, "Got exception deleting the Firefox Sync extended history database; ignoring.", e);
+    }
+
     // Remove any displayed notifications.
     new FxAccountNotificationManager(FxAccountSyncAdapter.NOTIFICATION_ID).clear(context);
 
     // Bug 1147275: Delete cached oauth tokens. There's no way to query all
     // oauth tokens from Android, so this is tricky to do comprehensively. We
     // can query, individually, for specific oauth tokens to delete, however.
   }
 
--- a/mobile/android/base/home/RemoteTabsBaseFragment.java
+++ b/mobile/android/base/home/RemoteTabsBaseFragment.java
@@ -4,16 +4,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.home;
 
 import android.accounts.Account;
 import android.content.Context;
 import android.database.Cursor;
 import android.os.Bundle;
+import android.os.Handler;
 import android.support.v4.content.Loader;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 
 import org.mozilla.gecko.GeckoProfile;
@@ -34,16 +35,19 @@ import java.util.List;
  * Fragment backed by <code>ExpandableListAdapter<code> to displays tabs from other devices.
  */
 public abstract class RemoteTabsBaseFragment extends HomeFragment implements RemoteClientsListener {
     // Logging tag name.
     private static final String LOGTAG = "GeckoRemoteTabsBaseFragment";
 
     private static final String[] STAGES_TO_SYNC_ON_REFRESH = new String[] { "clients", "tabs" };
 
+    // Update the "Last synced:" timestamps this frequently.
+    private static final long LAST_SYNCED_TIME_UPDATE_INTERVAL_IN_MILLISECONDS = 60 * 1000; // Once a minute.
+
     // Cursor loader ID.
     protected static final int LOADER_ID_REMOTE_TABS = 0;
 
     // Dialog fragment TAG.
     protected static final String DIALOG_TAG_REMOTE_TABS = "dialog_tag_remote_tabs";
 
     // Maintain group collapsed and hidden state.
     // Only accessed from the UI thread.
@@ -66,27 +70,36 @@ public abstract class RemoteTabsBaseFrag
     protected RemoteTabsSyncListener mSyncStatusListener;
 
     // Reference to the View to display when there are no results.
     protected View mEmptyView;
 
     // The footer view to display when there are hidden devices not shown.
     protected View mFooterView;
 
+    // Used to post update last synced time requests.  Should always execute on the main (UI) thread.
+    protected Handler mHandler;
+
+    // Runnable to update last synced time.
+    protected Runnable mLastSyncedTimeUpdateRunnable;
+
     @Override
     public void onViewCreated(View view, Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
         mRefreshLayout = (GeckoSwipeRefreshLayout) view.findViewById(R.id.remote_tabs_refresh_layout);
         mRefreshLayout.setColorScheme(
                 R.color.swipe_refresh_orange, R.color.swipe_refresh_white,
                 R.color.swipe_refresh_orange, R.color.swipe_refresh_white);
         mRefreshLayout.setOnRefreshListener(new RemoteTabsRefreshListener());
 
         mSyncStatusListener = new RemoteTabsSyncListener();
         FirefoxAccounts.addSyncStatusListener(mSyncStatusListener);
+
+        mHandler = new Handler(); // Attached to current (assumed to be UI) thread.
+        mLastSyncedTimeUpdateRunnable = new LastSyncTimeUpdateRunnable();
     }
 
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
 
         // This races when multiple Fragments are created. That's okay: one
         // will win, and thereafter, all will be okay. If we create and then
@@ -101,16 +114,22 @@ public abstract class RemoteTabsBaseFrag
     @Override
     public void onDestroyView() {
         super.onDestroyView();
 
         if (mSyncStatusListener != null) {
             FirefoxAccounts.removeSyncStatusListener(mSyncStatusListener);
             mSyncStatusListener = null;
         }
+
+        if (mLastSyncedTimeUpdateRunnable != null) {
+            mHandler.removeCallbacks(mLastSyncedTimeUpdateRunnable);
+            mLastSyncedTimeUpdateRunnable = null;
+            mHandler = null;
+        }
     }
 
     @Override
     public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
         if (!(menuInfo instanceof RemoteTabsClientContextMenuInfo)) {
             // Long pressed item was not a RemoteTabsGroup item. Superclass
             // can handle this.
             super.onCreateContextMenu(menu, view, menuInfo);
@@ -219,16 +238,17 @@ public abstract class RemoteTabsBaseFrag
                 if (sState.isClientHidden(client.guid)) {
                     it.remove();
                     mHiddenClients.add(client);
                 }
             }
 
             mAdapter.replaceClients(clients);
             updateUiFromClients(clients, mHiddenClients);
+            scheduleLastSyncedTime();
         }
 
         @Override
         public void onLoaderReset(Loader<Cursor> loader) {
             super.onLoaderReset(loader);
             mAdapter.replaceClients(null);
         }
     }
@@ -273,9 +293,30 @@ public abstract class RemoteTabsBaseFrag
     protected static class RemoteTabsClientContextMenuInfo extends HomeContextMenuInfo {
         protected final RemoteClient client;
 
         public RemoteTabsClientContextMenuInfo(View targetView, int position, long id, RemoteClient client) {
             super(targetView, position, id);
             this.client = client;
         }
     }
+
+    /**
+     * The Runnable that schedules a future update and updates the last synced time.
+     */
+    protected class LastSyncTimeUpdateRunnable implements Runnable  {
+        @Override
+        public void run() {
+            updateAndScheduleLastSyncedTime();
+        }
+    }
+
+    protected void scheduleLastSyncedTime() {
+        // Pushes back any existing schedule callback.
+        mHandler.postDelayed(mLastSyncedTimeUpdateRunnable, LAST_SYNCED_TIME_UPDATE_INTERVAL_IN_MILLISECONDS);
+    }
+
+    protected void updateAndScheduleLastSyncedTime() {
+        // This does not hit the database; it just makes consumers update their views.  Perfect!
+        mAdapter.notifyDataSetChanged();
+        scheduleLastSyncedTime();
+    }
 }
--- a/mobile/android/base/locales/en-US/android_strings.dtd
+++ b/mobile/android/base/locales/en-US/android_strings.dtd
@@ -189,16 +189,21 @@
 
 <!ENTITY pref_tracking_protection_title "Tracking protection">
 <!ENTITY pref_tracking_protection_summary "&brandShortName; will prevent sites from tracking you">
 <!ENTITY pref_donottrack_title "Do not track">
 <!ENTITY pref_donottrack_summary "&brandShortName; will tell sites that you do not want to be tracked">
 
 <!ENTITY tab_queue_toast_message "Open later">
 <!ENTITY tab_queue_toast_action "Open now">
+<!ENTITY tab_queue_prompt_title "Opening multiple links?">
+<!ENTITY tab_queue_prompt_text "Open them without switching to Firefox each time.">
+<!ENTITY tab_queue_prompt_tip_text "you can change this later in Settings">
+<!ENTITY tab_queue_prompt_positive_action_button "Enable">
+<!ENTITY tab_queue_prompt_negative_action_button "Not now">
 <!-- Localization note (tab_queue_notification_text_plural) : The
      formatD is replaced with the number of tabs queued.  The
      number of tabs queued is always more than one.  We can't use
      Android plural forms, sadly. See Bug #753859. -->
 <!ENTITY tab_queue_notification_text_plural "&formatD; tabs queued">
 <!-- Localization note (tab_queue_notification_title_plural) : This is the
      title of a notification; we expect more than one tab queued. -->
 <!ENTITY tab_queue_notification_title_plural "Tabs Queued">
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -418,16 +418,17 @@ gbjar.sources += [
     'sqlite/MatrixBlobCursor.java',
     'sqlite/SQLiteBridge.java',
     'sqlite/SQLiteBridgeException.java',
     'SuggestClient.java',
     'SurfaceBits.java',
     'Tab.java',
     'tabqueue/TabQueueDispatcher.java',
     'tabqueue/TabQueueHelper.java',
+    'tabqueue/TabQueuePrompt.java',
     'tabqueue/TabQueueService.java',
     'Tabs.java',
     'tabs/PrivateTabsPanel.java',
     'tabs/TabCurve.java',
     'tabs/TabHistoryController.java',
     'tabs/TabHistoryFragment.java',
     'tabs/TabHistoryItemRow.java',
     'tabs/TabHistoryPage.java',
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..df814faba2b7c2970645db530f6257a2d96ab729
GIT binary patch
literal 954
zc$@*c14aCaP)<h;3K|Lk000e1NJLTq002k;001@!1^@s6WX0e1000AlNkl<Zc-rlo
zU5HIl6vr2$6nRl1F9;7Jn#5ojbI)E|lCO-++<VrRk_bg4Ul9+UP*Nfv4{F@bS^LEc
zkGyy>FTP41@FFRUF~<1*Sn)8aIgNYHo;l~9`>*vj-FxouuDkYH|GftCq~@S;6fvG4
ztM3r&PQ&`q@3>M5mQIJf%UE1Yte+dJfBqZ9_>ov|hrEic=NZNxfe{rHs>8X2BN-9_
z=HG1E3wcp7RD}pQ5t)QLYMB!eWbub#)l$oxNJ#o^OIu-F4Ng?BJ`2?(Kfoqqb+>%D
zWCGi(sOIRUNy3pJ#;zKis9?MgSyw6a8lAwAV7yp^(|2^6a?_Ly7i6`>AslHIw`Cd*
zF@A6c$KsJpPv!35NZ_FwoIV5hXSg628eGDmQ17e3=_^9q16dUX-XiH}oxx$;71PJ9
zAGzV0nox~!e8!zI9uC(L<6Xn}<!=G&Ad6wqHcqStI2C))&B2TjWYy(}7k}?twb7|%
zVb#L8aH7pH+*%<V7$#ZL&-6ScfA0d0d<m}LP^h**g&IPPm;N(NZ#D<snB-0?T;LLp
z&w6v5ChT;DzvaiRtfr<Jj$!?s7&k$sB38R&cAy=l099Jy#HyKofRmE&aEbM|N{&qm
z3iU4Gm{1eMk=#uuY*SvSJ6|`vzi{M^+|e=qtrTJr;)+<`Oa9^Tc1v61*vQkW?9F!x
zC$W1iht1ftV&Kgja5xsf8ur#FX(6<`>sGOgLcI!l$!DDB5{@6L=7etq@Qfosy_>TG
zuHnc?<cHqc<gJ9O4dcn;Yk3o=!Fc_5ymJMo#JJkwV5rteVRH@1Q9=G}0<{uc%Y+K0
z;maBv3ULJtl&D;oCZj_}0DbaVEr)@Y44=m0ja0*7>?s9$84Q|^!cby;GOci=96%aG
zj7Cy9Jv9eE%H|lPNz(Ni)-O{4s9W}bAdM0qS~~7Q%$yIhr~qk}+-?wKc@W@q$&D&x
zMLy#}86O4;j@)iQ)+7U{JiKE-@5O0^tV*m5VtneTL++Hr0kSSJ#mM5Vg!`O#GWA2X
zNbFU^`dl)Au%lQm%!O){tgMM)6=$>E1Xu^vELq2`$XjB3L+s6gJgC)rlZo}i{=yNU
zt$~^idD6;D3rCBC*bg|bhzqkIml8+7>SKL2m5fg$+aT|f^|?PABlzOaG>#Aa5Rc10
c*g^*M3pS0r)Cy1iH2?qr07*qoM6N<$g6Yx5Z~y=R
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fe4a03dabda5caf5cbd656404dee41172a80f3f8
GIT binary patch
literal 675
zc$@*F0$lxxP)<h;3K|Lk000e1NJLTq001xm001Ni1^@s6&qcWk0007NNkl<Zc-qyN
zJ7^VA5I{%#p(29X2x1|2v5_=NP+rL186zfsS26GHTtyHGh@gU?_(6LS8%bf|2MxP3
ztrj+7VIdZRS}1C%2!aq16XW+*FNJw;Kkx15z_fGE9cJ&nvruMOybUb$&?<hhf^UKd
zFZ*H70;mF3ynU=VZI%Aa3|4wFe4}q^73G^D^mu5jcQKTaAToYae)e#!<%cl0g7VD>
zluklf;1Ku5mT$JwtIEo|V8O3YG!3CW$>p0TQf1{`aD;;eez4x|Eb@WS`2u_1?6QJC
z(pTP`tFru=0(%~JW|ODW5Qo~u+PvTvE-90|jqnt-!w+e>RlH-BzOmwO7JAtT(G*^J
zF(=wDa(nYCR(d<jd3y-}=0FNKq8%CKkGEgs=D-S9?beA%leU!&&2YA!$79fr!E5Ul
zTBWD45-L9D&|A}Od3Nm^;V8s`6)z-A{;95}4_Xii4zbWwTKPcCQHTpGy-vJ{lZ)t3
zH{`A25lDhnnn-`0<CU311xL6&Q{@#8LsD4rkxP(1@PQwC%d*H@p<jWTgOCQRxWy&N
zv<bm?S>$a*3|VjqtkR@Qm}juiPZraFPEa5BHd>*NxymbzKqskdZM9W=mXAE{hi>49
zn-*EcdtH-PoOXX7pxXq3XWh}(X?ZtBLSDFsn4A1NA@80QZkU0*3C3|f3%<|T^HZ)E
zP!tF5)>gU;FRi?LUO>_Gj`hyBLe~>+U@{Q14a$Uj=EnLRBKW-#(pD%VtklnnpIgb>
z$RL!N5%t!x;*0-mV4@zG0jL6Q#AKnXtn|ShxBue4mHr;ck-wamHbk)Gp)LRb002ov
JPDHLkV1nVmKMeo?
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b9c6f1ad5ffee5f487e213700bb7e7126872a8bc
GIT binary patch
literal 1289
zc$@(V1@`)hP)<h;3K|Lk000e1NJLTq003YB002k`1^@s631{$Q000EgNkl<Zc-rlp
zX^0#}6o8*63LYRHAl|ped%dDYXLq_^A)Y8ByEEOd5Ji6|f+(U!B)=4Y_+JqfBxHx`
zSBQcLq9B6)5Cl;Jikj%gTqe;qF&b}qvq-VRX55|buIcIe;IY4UXXcyQs;*b>6$A!g
z73`}yo+7JW)vPuXt6%4S;_Et7)H1Li1d1Us>NK+Wk+$mZ1%uVvj%l6)fqdz7o0pPR
z-;3nF!8n^_cqIh#ldmoQ;3W4CV)di^9s~v><@gdOe{muIF-ccl0D;owyI}QQSQD0j
zHaO<w4;ZXAw>dr?0_DqhfivmLcr*n1%Xd#ZIR~q^Ah0k=cj96vzo5usgh2W7UEpd6
z%!fF-sBrmifABQ~=F8WNJ48-Nu?GTv<V(owK>(m_;tNZa?{>%UL*4Nq-vvGjbw+YC
zWO2I}`HZtIqmBsjMTUnUj*}qYll+v`6Hr%(o974lUgfK8{^a9Is4E>4o##_NF+LLH
z`x^N+ez?~1<s{0VeDxsIm9&fJ`joF39|-dOEx7kXUC}(g%%^-}bsywSV^w4S)Zodz
ze7T8E7-sooajO^c7XP9wz6bK8ZKG4j#xMT&V44`e)tP#_WmX&&<j=|17Vm~UNiE(f
z1*d&ds@pnQ+yu`^y^ZIQe;4G5&hVi{%z1yvqEkotn$@2=Q+Gg~$iLDO4;Y>wdv5H2
zvgK=wTYSkUMh$tAW;iK-cz`$cZdvO>+KtZkDL=Jw3VA{q-k=$O%i#^KmmTP+%9klO
z$*==?l4MasGyale@@W@k>Sic_DaNy;#?qI3>59q!16j4Rpr?b!Mn=BH-!(_K7trT~
z9~V4o)-+yf98`7r39H*c$a~Q(=|g-lIUOIn^q#EoGkwXIburDNTMODf;wvSVVQiFE
zou$Ypt2X(PpD^A6MN#$#lZBqFYF9zNWC2pf8=*+#MZBbIGkg*N_JO@X-R2pd<V);H
zOmsaIjjt`dgfuv}OyiJ+<ja)hOFm_I9h3oCeA~USm#2$QB+U)rkRB>u@@0xlIZ|bI
z|K00HzKgj7bG*j4d}92WY!pG6w9N8@$*K*W<j;T9V_fNR+S%<bt)3d3a5<n_#%{7|
z9DE`h4S6GVlTVC4r6#_1c)CO^&eTZ$t|V)&fMH^4P4gIHe6I#yz)mvJ)i8{-%(4UJ
zAbynPSK<m8sqB*c_o#?>SI0zGKvj@#Zda00@nD=Kqb`FA;c_ypKC7~P8ANjB3{;ht
zi4NBm->9PeUgx{PF{nCn3m~z2ref314tczWQGyt?WDJLY<m2{{y(WxIb9tX5LhlJa
z=?Q~Trehn&X{$aQ!jZpK`U7CZaoJSH?hrlgY^mkNc-rFQQU~NyzD$WyF$Z-;ss|*&
z<!R2}BnS9VcX}<MjO$9Cb~egp5d!~aR2xT<#dk^?`5WXSZ3xUq`UJ@0vjva*8Qq;Y
z6#{!d^q0EI0uEEY=~Yt%`XlG9Ip0vSesa2T5(F06ZOQ7>97g`Sww*W;0*mLS7p^)~
zGrl%JV(qKRX*?bRgY_d2<5No*`Cmxt0|L3N3vH=H`=2}9wY}bgKp{6+ec9&=FrC$x
z9|nP9kk%#QIMEj0l)IGY>NC~nBHk6rjxPTI3T{LMp*|_M00000NkvXXu0mjfRy}dM
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..03ba871f61efbab70f5ffaf4662be3b96d989b0c
GIT binary patch
literal 1861
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
F{{t>Zcenrm
rename from mobile/android/base/resources/drawable/firstrun_button_background.xml
rename to mobile/android/base/resources/drawable/button_background_action_orange_round.xml
--- a/mobile/android/base/resources/drawable/firstrun_button_background.xml
+++ b/mobile/android/base/resources/drawable/button_background_action_orange_round.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/.  -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
-          android:drawable="@drawable/firstrun_button_pressed" />
+          android:drawable="@drawable/button_pressed_action_orange_round" />
     <item android:state_enabled="true"
-          android:drawable="@drawable/firstrun_button_enabled" />
+          android:drawable="@drawable/button_enabled_action_orange_round" />
 </selector>
rename from mobile/android/base/resources/drawable/firstrun_button_enabled.xml
rename to mobile/android/base/resources/drawable/button_enabled_action_orange_round.xml
rename from mobile/android/base/resources/drawable/firstrun_button_pressed.xml
rename to mobile/android/base/resources/drawable/button_pressed_action_orange_round.xml
copy from mobile/android/base/resources/drawable/firstrun_button_background.xml
copy to mobile/android/base/resources/drawable/tab_queue_dismiss_button_foreground.xml
--- a/mobile/android/base/resources/drawable/firstrun_button_background.xml
+++ b/mobile/android/base/resources/drawable/tab_queue_dismiss_button_foreground.xml
@@ -1,11 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
+
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/.  -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
+
     <item android:state_pressed="true"
-          android:drawable="@drawable/firstrun_button_pressed" />
-    <item android:state_enabled="true"
-          android:drawable="@drawable/firstrun_button_enabled" />
-</selector>
+          android:color="@color/tab_queue_dismiss_button_foreground_pressed" />
+
+    <item android:color="@color/tab_queue_dismiss_button_foreground"/>
+
+</selector>
\ No newline at end of file
--- a/mobile/android/base/resources/layout-mdpi/firstrun_welcome_fragment.xml
+++ b/mobile/android/base/resources/layout-mdpi/firstrun_welcome_fragment.xml
@@ -47,17 +47,17 @@
                       android:paddingTop="20dp"
                       android:paddingBottom="30dp"
                       android:gravity="center"
                       android:textAppearance="@style/TextAppearance.FirstrunRegular.Body"
                       android:text="@string/firstrun_welcome_subtext"/>
 
             <Button android:id="@+id/welcome_account"
                     style="@style/Widget.Firstrun.Button"
-                    android:background="@drawable/firstrun_button_background"
+                    android:background="@drawable/button_background_action_orange_round"
                     android:layout_gravity="center"
                     android:text="@string/firstrun_welcome_button_account"/>
 
             <TextView android:id="@+id/welcome_browse"
                       android:layout_width="@dimen/firstrun_content_width"
                       android:layout_height="wrap_content"
                       android:minHeight="92dp"
                       android:padding="20dp"
--- a/mobile/android/base/resources/layout/firstrun_welcome_fragment.xml
+++ b/mobile/android/base/resources/layout/firstrun_welcome_fragment.xml
@@ -47,17 +47,17 @@
                       android:paddingTop="20dp"
                       android:paddingBottom="30dp"
                       android:gravity="center"
                       android:textAppearance="@style/TextAppearance.FirstrunRegular.Body"
                       android:text="@string/firstrun_welcome_subtext"/>
 
             <Button android:id="@+id/welcome_account"
                     style="@style/Widget.Firstrun.Button"
-                    android:background="@drawable/firstrun_button_background"
+                    android:background="@drawable/button_background_action_orange_round"
                     android:layout_gravity="center"
                     android:text="@string/firstrun_welcome_button_account"/>
 
             <TextView android:id="@+id/welcome_browse"
                       android:layout_width="@dimen/firstrun_content_width"
                       android:layout_height="wrap_content"
                       android:padding="20dp"
                       android:gravity="center"
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/resources/layout/tab_queue_prompt.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/tab_queue_container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:clipChildren="false"
+    android:clipToPadding="false">
+
+    <LinearLayout
+        android:layout_width="@dimen/tab_queue_container_width"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|center"
+        android:background="@android:color/white"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/title"
+            android:layout_width="@dimen/tab_queue_content_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:fontFamily="sans-serif-light"
+            android:gravity="center_horizontal"
+            android:paddingTop="40dp"
+            android:text="@string/tab_queue_prompt_title"
+            android:textColor="@color/text_and_tabs_tray_grey"
+            android:textSize="20sp"
+
+            tools:text="Opening multiple links?" />
+
+        <TextView
+            android:id="@+id/text"
+            android:layout_width="@dimen/tab_queue_content_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:lineSpacingMultiplier="1.25"
+            android:paddingTop="20dp"
+            android:text="@string/tab_queue_prompt_text"
+            android:textColor="@color/placeholder_grey"
+            android:textSize="16sp"
+
+            tools:text="Open them without switching to Firefox each time." />
+
+        <TextView
+            android:id="@+id/tip_text"
+            android:layout_width="@dimen/tab_queue_content_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:paddingBottom="30dp"
+            android:paddingTop="20dp"
+            android:text="@string/tab_queue_prompt_tip_text"
+            android:textColor="@color/action_orange"
+            android:textSize="14sp"
+            android:textStyle="italic"
+
+            tools:text="you can change this later in Settings" />
+
+        <FrameLayout
+            android:id="@+id/bottom_container"
+            android:layout_width="match_parent"
+            android:layout_height="52dp"
+            android:layout_gravity="center"
+            android:layout_marginBottom="40dp">
+
+            <ImageView
+                android:id="@+id/enabled_confirmation"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center"
+                android:src="@drawable/img_check"
+                android:visibility="gone" />
+
+            <LinearLayout
+                android:id="@+id/button_container"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:gravity="center_horizontal"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:id="@+id/cancel_button"
+                    style="@style/Widget.BaseButton"
+                    android:layout_width="@dimen/tab_queue_button_width"
+                    android:layout_height="match_parent"
+                    android:layout_gravity="center"
+                    android:background="@color/android:white"
+                    android:text="@string/tab_queue_prompt_negative_action_button"
+                    android:textColor="@drawable/tab_queue_dismiss_button_foreground"
+                    android:textSize="16sp"
+
+                    tools:text="Not now" />
+
+                <Button
+                    android:id="@+id/ok_button"
+                    style="@style/Widget.BaseButton"
+                    android:layout_width="@dimen/tab_queue_button_width"
+                    android:layout_height="match_parent"
+                    android:layout_gravity="center"
+                    android:background="@drawable/button_background_action_orange_round"
+                    android:text="@string/tab_queue_prompt_positive_action_button"
+                    android:textColor="@android:color/white"
+                    android:textSize="16sp"
+
+                    tools:text="Enable" />
+
+            </LinearLayout>
+
+        </FrameLayout>
+
+    </LinearLayout>
+
+</FrameLayout>
\ No newline at end of file
--- a/mobile/android/base/resources/values-large-v11/dimens.xml
+++ b/mobile/android/base/resources/values-large-v11/dimens.xml
@@ -13,9 +13,11 @@
     <dimen name="browser_toolbar_favicon_size">16dp</dimen>
 
     <dimen name="tabs_counter_size">26sp</dimen>
     <dimen name="panel_grid_view_column_width">200dp</dimen>
 
     <dimen name="reading_list_row_height">96dp</dimen>
     <dimen name="reading_list_row_padding_right">15dp</dimen>
 
+    <dimen name="tab_queue_container_width">360dp</dimen>
+
 </resources>
--- a/mobile/android/base/resources/values/colors.xml
+++ b/mobile/android/base/resources/values/colors.xml
@@ -65,16 +65,21 @@
   <!-- highlight-focused on private nav button: 10% white over background_private -->
   <color name="highlight_nav_focused_pb">#FF3F423F</color>
 
   <!-- Firstrun tour-->
   <color name="firstrun_background">#99000000</color>
   <color name="firstrun_tabstrip">#1193CB</color>
   <color name="firstrun_pager_background">#16A3DF</color>
 
+  <!-- Tab Queue -->
+  <color name="tab_queue_dismiss_button_foreground">#16A3DF</color>
+  <color name="tab_queue_dismiss_button_foreground_pressed">#1193CB</color>
+  <color name="tab_queue_background">#16A3DF</color>
+
   <!--
       Application theme colors
   -->
   <!-- Default colors -->
   <color name="text_color_tertiary">#9198A1</color>
 
   <!-- Default inverse colors -->
   <color name="text_color_primary_inverse">#F5F5F5</color>
--- a/mobile/android/base/resources/values/dimens.xml
+++ b/mobile/android/base/resources/values/dimens.xml
@@ -60,16 +60,20 @@
          commonly-used size of favicon and, performance permitting, fetch the remainder from the
          database. The largest available size is always stored in the database, regardless of this
          value.-->
     <dimen name="favicon_largest_interesting_size">32dp</dimen>
 
     <dimen name="firstrun_content_width">300dp</dimen>
     <dimen name="firstrun_min_height">180dp</dimen>
 
+    <dimen name="tab_queue_content_width">260dp</dimen>
+    <dimen name="tab_queue_button_width">148dp</dimen>
+    <dimen name="tab_queue_container_width">@dimen/match_parent</dimen>
+
     <!-- Site security icon -->
     <!-- If one of these values changes, they all should. -->
     <dimen name="site_security_bottom_margin">.5dp</dimen>
     <dimen name="new_tablet_site_security_unknown_inset_top">1dp</dimen>
     <dimen name="new_tablet_site_security_unknown_inset_bottom">-1dp</dimen>
 
     <!-- Regular page row on about:home -->
     <dimen name="page_row_height">64dp</dimen>
@@ -202,9 +206,13 @@
     <dimen name="find_in_page_text_margin_left">5dip</dimen>
     <dimen name="find_in_page_text_margin_right">12dip</dimen>
     <dimen name="find_in_page_text_padding_left">10dip</dimen>
     <dimen name="find_in_page_text_padding_right">10dip</dimen>
     <dimen name="find_in_page_status_margin_right">10dip</dimen>
     <dimen name="find_in_page_matchcase_padding">10dip</dimen>
     <dimen name="find_in_page_control_margin_top">2dip</dimen>
 
+    <!-- http://blog.danlew.net/2015/01/06/handling-android-resources-with-non-standard-formats/ -->
+    <item name="match_parent" type="dimen">-1</item>
+    <item name="wrap_content" type="dimen">-2</item>
+
 </resources>
--- a/mobile/android/base/resources/values/themes.xml
+++ b/mobile/android/base/resources/values/themes.xml
@@ -101,18 +101,18 @@
     </style>
 
     <style name="Gecko.Preferences" parent="GeckoPreferencesBase">
         <item name="floatingHintEditTextStyle">@style/FloatingHintEditText</item>
     </style>
 
     <style name="GeckoStartPane" parent="GeckoBase"/>
 
-    <!-- Make the share overlay activity appear like an overlay. -->
-    <style name="ShareOverlayActivity">
+    <!-- Make an activity appear like an overlay. -->
+    <style name="OverlayActivity">
         <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:windowNoTitle">true</item>
         <item name="android:windowIsTranslucent">true</item>
         <item name="android:backgroundDimEnabled">true</item>
 
         <!-- Set the app's title bar color in the recent app switcher.
 
              Note: We'd prefer not to show up in the recent app switcher (bug 1137928). -->
--- a/mobile/android/base/strings.xml.in
+++ b/mobile/android/base/strings.xml.in
@@ -236,17 +236,21 @@
   <string name="pref_import_android_summary">&pref_import_android_summary;</string>
   <string name="pref_update_autodownload">&pref_update_autodownload2;</string>
   <string name="pref_update_autodownload_wifi">&pref_update_autodownload_wifi;</string>
   <string name="pref_update_autodownload_disabled">&pref_update_autodownload_never;</string>
   <string name="pref_update_autodownload_enabled">&pref_update_autodownload_always;</string>
 
   <string name="pref_tab_queue_title">&pref_tab_queue_title;</string>
   <string name="pref_tab_queue_summary">&pref_tab_queue_summary;</string>
-
+  <string name="tab_queue_prompt_title">&tab_queue_prompt_title;</string>
+  <string name="tab_queue_prompt_text">&tab_queue_prompt_text;</string>
+  <string name="tab_queue_prompt_tip_text">&tab_queue_prompt_tip_text;</string>
+  <string name="tab_queue_prompt_positive_action_button">&tab_queue_prompt_positive_action_button;</string>
+  <string name="tab_queue_prompt_negative_action_button">&tab_queue_prompt_negative_action_button;</string>
   <string name="tab_queue_toast_message">&tab_queue_toast_message;</string>
   <string name="tab_queue_toast_action">&tab_queue_toast_action;</string>
   <string name="tab_queue_notification_text_singular">&tab_queue_notification_text_singular;</string>
   <string name="tab_queue_notification_text_plural">&tab_queue_notification_text_plural;</string>
   <string name="tab_queue_notification_title_singular">&tab_queue_notification_title_singular;</string>
   <string name="tab_queue_notification_title_plural">&tab_queue_notification_title_plural;</string>
 
   <string name="pref_about_firefox">&pref_about_firefox;</string>
--- a/mobile/android/base/tabqueue/TabQueueHelper.java
+++ b/mobile/android/base/tabqueue/TabQueueHelper.java
@@ -29,16 +29,64 @@ import org.json.JSONObject;
 public class TabQueueHelper {
     private static final String LOGTAG = "Gecko" + TabQueueHelper.class.getSimpleName();
 
     public static final String FILE_NAME = "tab_queue_url_list.json";
     public static final String LOAD_URLS_ACTION = "TAB_QUEUE_LOAD_URLS_ACTION";
     public static final int TAB_QUEUE_NOTIFICATION_ID = R.id.tabQueueNotification;
 
     public static final String PREF_TAB_QUEUE_COUNT = "tab_queue_count";
+    public static final String PREF_TAB_QUEUE_LAUNCHES = "tab_queue_launches";
+    public static final String PREF_TAB_QUEUE_TIMES_PROMPT_SHOWN = "tab_queue_times_prompt_shown";
+
+    public static final int MAX_TIMES_TO_SHOW_PROMPT = 3;
+    public static final int EXTERNAL_LAUNCHES_BEFORE_SHOWING_PROMPT = 3;
+
+    // result codes for returning from the prompt
+    public static final int TAB_QUEUE_YES = 201;
+    public static final int TAB_QUEUE_NO = 202;
+
+    /**
+     * Check if we should show the tab queue prompt
+     *
+     * @param context
+     * @return true if we should display the prompt, false if not.
+     */
+    public static boolean shouldShowTabQueuePrompt(Context context) {
+        final SharedPreferences prefs = GeckoSharedPrefs.forApp(context);
+
+        boolean isTabQueueEnabled = prefs.getBoolean(GeckoPreferences.PREFS_TAB_QUEUE, false);
+        int numberOfTimesTabQueuePromptSeen = prefs.getInt(PREF_TAB_QUEUE_TIMES_PROMPT_SHOWN, 0);
+
+        // Exit early if the feature is already enabled or the user has seen the
+        // prompt more than MAX_TIMES_TO_SHOW_PROMPT times.
+        if (isTabQueueEnabled || numberOfTimesTabQueuePromptSeen >= MAX_TIMES_TO_SHOW_PROMPT) {
+            return false;
+        }
+
+        final int viewActionIntentLaunches = prefs.getInt(PREF_TAB_QUEUE_LAUNCHES, 0) + 1;
+        if (viewActionIntentLaunches < EXTERNAL_LAUNCHES_BEFORE_SHOWING_PROMPT) {
+            // Allow a few external links to open before we prompt the user.
+            prefs.edit().putInt(PREF_TAB_QUEUE_LAUNCHES, viewActionIntentLaunches).apply();
+        } else if (viewActionIntentLaunches == EXTERNAL_LAUNCHES_BEFORE_SHOWING_PROMPT) {
+            // Reset to avoid repeatedly showing the prompt if the user doesn't interact with it and
+            // we get more external VIEW action intents in.
+            final SharedPreferences.Editor editor = prefs.edit();
+            editor.remove(TabQueueHelper.PREF_TAB_QUEUE_LAUNCHES);
+
+            int timesPromptShown = prefs.getInt(TabQueueHelper.PREF_TAB_QUEUE_TIMES_PROMPT_SHOWN, 0) + 1;
+            editor.putInt(TabQueueHelper.PREF_TAB_QUEUE_TIMES_PROMPT_SHOWN, timesPromptShown);
+            editor.apply();
+
+            // Show the prompt
+            return true;
+        }
+
+        return false;
+    }
 
     /**
      * Reads file and converts any content to JSON, adds passed in URL to the data and writes back to the file,
      * creating the file if it doesn't already exist.  This should not be run on the UI thread.
      *
      * @param profile
      * @param url      URL to add
      * @param filename filename to add URL to
@@ -142,9 +190,42 @@ public class TabQueueHelper {
         } catch (IllegalArgumentException e) {
             Log.e(LOGTAG, "Error deleting Tab Queue data file.", e);
         }
 
         // TODO: Use profile shared prefs when bug 1147925 gets fixed.
         final SharedPreferences prefs = GeckoSharedPrefs.forApp(context);
         prefs.edit().remove(PREF_TAB_QUEUE_COUNT).apply();
     }
+
+    public static void processTabQueuePromptResponse(int resultCode, Context context) {
+        final SharedPreferences prefs = GeckoSharedPrefs.forApp(context);
+        final SharedPreferences.Editor editor = prefs.edit();
+
+        switch (resultCode) {
+            case TAB_QUEUE_YES:
+                editor.putBoolean(GeckoPreferences.PREFS_TAB_QUEUE, true);
+
+                // By making this one more than EXTERNAL_LAUNCHES_BEFORE_SHOWING_PROMPT we ensure the prompt
+                // will never show again without having to keep track of an extra pref.
+                editor.putInt(TabQueueHelper.PREF_TAB_QUEUE_LAUNCHES,
+                                     TabQueueHelper.EXTERNAL_LAUNCHES_BEFORE_SHOWING_PROMPT + 1);
+                break;
+
+            case TAB_QUEUE_NO:
+                // The user clicked the 'no' button, so let's make sure the user never sees the prompt again by
+                // maxing out the pref used to count the VIEW action intents received and times they've seen the prompt.
+
+                editor.putInt(TabQueueHelper.PREF_TAB_QUEUE_LAUNCHES,
+                                     TabQueueHelper.EXTERNAL_LAUNCHES_BEFORE_SHOWING_PROMPT + 1);
+
+                editor.putInt(TabQueueHelper.PREF_TAB_QUEUE_TIMES_PROMPT_SHOWN,
+                                     TabQueueHelper.MAX_TIMES_TO_SHOW_PROMPT + 1);
+                break;
+
+            default:
+                // We shouldn't ever get here.
+                Log.w(LOGTAG, "Unrecognized result code received from the tab queue prompt: " + resultCode);
+        }
+
+        editor.apply();
+    }
 }
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/tabqueue/TabQueuePrompt.java
@@ -0,0 +1,157 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.gecko.tabqueue;
+
+import org.mozilla.gecko.Locales;
+import org.mozilla.gecko.R;
+import org.mozilla.gecko.animation.TransitionsTracker;
+
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.MotionEvent;
+import android.view.View;
+import com.nineoldandroids.animation.Animator;
+import com.nineoldandroids.animation.AnimatorListenerAdapter;
+import com.nineoldandroids.animation.AnimatorSet;
+import com.nineoldandroids.animation.ObjectAnimator;
+import com.nineoldandroids.view.ViewHelper;
+
+public class TabQueuePrompt extends Locales.LocaleAwareActivity {
+    public static final String LOGTAG = "Gecko" + TabQueuePrompt.class.getSimpleName();
+
+    // Flag set during animation to prevent animation multiple-start.
+    private boolean isAnimating;
+
+    private View containerView;
+    private View buttonContainer;
+    private View enabledConfirmation;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        showTabQueueEnablePrompt();
+    }
+
+    private void showTabQueueEnablePrompt() {
+        setContentView(R.layout.tab_queue_prompt);
+
+        findViewById(R.id.ok_button).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                onConfirmButtonPressed();
+            }
+        });
+        findViewById(R.id.cancel_button).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                setResult(TabQueueHelper.TAB_QUEUE_NO);
+                finish();
+            }
+        });
+
+        containerView = findViewById(R.id.tab_queue_container);
+        buttonContainer = findViewById(R.id.button_container);
+        enabledConfirmation = findViewById(R.id.enabled_confirmation);
+
+        ViewHelper.setTranslationY(containerView, 500);
+        ViewHelper.setAlpha(containerView, 0);
+
+        final Animator translateAnimator = ObjectAnimator.ofFloat(containerView, "translationY", 0);
+        translateAnimator.setDuration(400);
+
+        final Animator alphaAnimator = ObjectAnimator.ofFloat(containerView, "alpha", 1);
+        alphaAnimator.setStartDelay(200);
+        alphaAnimator.setDuration(600);
+
+        final AnimatorSet set = new AnimatorSet();
+        set.playTogether(alphaAnimator, translateAnimator);
+        set.setStartDelay(400);
+        TransitionsTracker.track(set);
+
+        set.start();
+    }
+
+    @Override
+    public void finish() {
+        super.finish();
+
+        // Don't perform an activity-dismiss animation.
+        overridePendingTransition(0, 0);
+    }
+
+    private void onConfirmButtonPressed() {
+        enabledConfirmation.setVisibility(View.VISIBLE);
+        ViewHelper.setAlpha(enabledConfirmation, 0);
+
+        final Animator buttonsAlphaAnimator = ObjectAnimator.ofFloat(buttonContainer, "alpha", 0);
+        buttonsAlphaAnimator.setDuration(300);
+
+        final Animator messagesAlphaAnimator = ObjectAnimator.ofFloat(enabledConfirmation, "alpha", 1);
+        messagesAlphaAnimator.setDuration(300);
+        messagesAlphaAnimator.setStartDelay(200);
+
+        final AnimatorSet set = new AnimatorSet();
+        set.playTogether(buttonsAlphaAnimator, messagesAlphaAnimator);
+        TransitionsTracker.track(set);
+
+        set.addListener(new AnimatorListenerAdapter() {
+
+            @Override
+            public void onAnimationEnd(Animator animation) {
+
+                new Handler().postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        slideOut();
+                        setResult(TabQueueHelper.TAB_QUEUE_YES);
+                    }
+                }, 1000);
+            }
+        });
+
+        set.start();
+    }
+
+    /**
+     * Slide the overlay down off the screen and destroy it.
+     */
+    private void slideOut() {
+        if (isAnimating) {
+            return;
+        }
+
+        isAnimating = true;
+
+        ObjectAnimator animator = ObjectAnimator.ofFloat(containerView, "translationY", containerView.getHeight());
+        animator.addListener(new AnimatorListenerAdapter() {
+
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                finish();
+            }
+
+        });
+        animator.start();
+    }
+
+    /**
+     * Close the dialog if back is pressed.
+     */
+    @Override
+    public void onBackPressed() {
+        slideOut();
+    }
+
+    /**
+     * Close the dialog if the anything that isn't a button is tapped.
+     */
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        slideOut();
+        return true;
+    }
+}
\ No newline at end of file
--- a/toolkit/components/telemetry/TelemetryPing.jsm
+++ b/toolkit/components/telemetry/TelemetryPing.jsm
@@ -245,16 +245,25 @@ this.TelemetryPing = Object.freeze({
     options.addClientId = aOptions.addClientId || false;
     options.addEnvironment = aOptions.addEnvironment || false;
     options.overwrite = aOptions.overwrite || false;
 
     return Impl.savePing(aType, aPayload, options);
   },
 
   /**
+   * Send the persisted pings to the server.
+   *
+   * @return Promise A promise that is resolved when all pings finished sending or failed.
+   */
+  sendPersistedPings: function() {
+    return Impl.sendPersistedPings();
+  },
+
+  /**
    * The client id send with the telemetry ping.
    *
    * @return The client id as string, or null.
    */
    get clientID() {
     return Impl.clientID;
    },
 
--- a/toolkit/components/telemetry/TelemetrySession.jsm
+++ b/toolkit/components/telemetry/TelemetrySession.jsm
@@ -34,17 +34,16 @@ const IS_CONTENT_PROCESS = (function() {
 const PAYLOAD_VERSION = 4;
 const PING_TYPE_MAIN = "main";
 const PING_TYPE_SAVED_SESSION = "saved-session";
 const RETENTION_DAYS = 14;
 
 const REASON_ABORTED_SESSION = "aborted-session";
 const REASON_DAILY = "daily";
 const REASON_SAVED_SESSION = "saved-session";
-const REASON_IDLE_DAILY = "idle-daily";
 const REASON_GATHER_PAYLOAD = "gather-payload";
 const REASON_TEST_PING = "test-ping";
 const REASON_ENVIRONMENT_CHANGE = "environment-change";
 const REASON_SHUTDOWN = "shutdown";
 
 const ENVIRONMENT_CHANGE_LISTENER = "TelemetrySession::onEnvironmentChange";
 
 const MS_IN_ONE_HOUR  = 60 * 60 * 1000;
@@ -93,17 +92,17 @@ const SCHEDULER_RETRY_ATTEMPTS = 3;
 const SCHEDULER_MIDNIGHT_TOLERANCE_MS = 15 * 60 * 1000;
 
 // Coalesce the daily and aborted-session pings if they are both due within
 // two minutes from each other.
 const SCHEDULER_COALESCE_THRESHOLD_MS = 2 * 60 * 1000;
 
 // Seconds of idle time before pinging.
 // On idle-daily a gather-telemetry notification is fired, during it probes can
-// start asynchronous tasks to gather data.  On the next idle the data is sent.
+// start asynchronous tasks to gather data.
 const IDLE_TIMEOUT_SECONDS = 5 * 60;
 
 // The frequency at which we persist session data to the disk to prevent data loss
 // in case of aborted sessions (currently 5 minutes).
 const ABORTED_SESSION_UPDATE_INTERVAL_MS = 5 * 60 * 1000;
 
 var gLastMemoryPoll = null;
 
@@ -1458,20 +1457,16 @@ let Impl = {
     Services.obs.addObserver(this, "idle-daily", false);
   },
 
   detachObservers: function detachObservers() {
     if (!this._initialized)
       return;
     Services.obs.removeObserver(this, "idle-daily");
     Services.obs.removeObserver(this, "cycle-collector-begin");
-    if (this._isIdleObserver) {
-      idleService.removeIdleObserver(this, IDLE_TIMEOUT_SECONDS);
-      this._isIdleObserver = false;
-    }
   },
 
   /**
    * Perform telemetry initialization for either chrome or content process.
    */
   enableTelemetryRecording: function enableTelemetryRecording(testing) {
 
 #ifdef MOZILLA_OFFICIAL
@@ -1785,31 +1780,18 @@ let Impl = {
     this.gatherStartupHistograms();
     this._slowSQLStartup = Telemetry.slowSQL;
   },
 
   setAddOns: function setAddOns(aAddOns) {
     this._addons = aAddOns;
   },
 
-  sendIdlePing: function sendIdlePing(aTest) {
-    this._log.trace("sendIdlePing");
-    if (this._isIdleObserver) {
-      idleService.removeIdleObserver(this, IDLE_TIMEOUT_SECONDS);
-      this._isIdleObserver = false;
-    }
-    if (aTest) {
-      return this.send(REASON_TEST_PING);
-    } else if (Telemetry.isOfficialTelemetry) {
-      return this.send(REASON_IDLE_DAILY);
-    }
-  },
-
   testPing: function testPing() {
-    return this.sendIdlePing(true);
+    return this.send(REASON_TEST_PING);
   },
 
   /**
    * This observer drives telemetry.
    */
   observe: function (aSubject, aTopic, aData) {
     if (!this._log) {
       this._log = Log.repository.getLoggerWithMessagePrefix(LOGGER_NAME, LOGGER_PREFIX);
@@ -1853,29 +1835,28 @@ let Impl = {
     case "sessionstore-windows-restored":
       Services.obs.removeObserver(this, "sessionstore-windows-restored");
       this._hasWindowRestoredObserver = false;
       // Check whether debugger was attached during startup
       let debugService = Cc["@mozilla.org/xpcom/debug;1"].getService(Ci.nsIDebug2);
       gWasDebuggerAttached = debugService.isDebuggerAttached;
       this.gatherStartup();
       break;
-    case REASON_IDLE_DAILY:
+    case "idle-daily":
       // Enqueue to main-thread, otherwise components may be inited by the
       // idle-daily category and miss the gather-telemetry notification.
       Services.tm.mainThread.dispatch((function() {
-        // Notify that data should be gathered now, since ping will happen soon.
+        // Notify that data should be gathered now.
+        // TODO: We are keeping this behaviour for now but it will be removed as soon as
+        // bug 1127907 lands.
         Services.obs.notifyObservers(null, "gather-telemetry", null);
-        // The ping happens at the first idle of length IDLE_TIMEOUT_SECONDS.
-        idleService.addIdleObserver(this, IDLE_TIMEOUT_SECONDS);
-        this._isIdleObserver = true;
       }).bind(this), Ci.nsIThread.DISPATCH_NORMAL);
-      break;
-    case "idle":
-      this.sendIdlePing(false, this._server);
+      // TODO: This is just a fallback for now. Remove this when we have ping send
+      // scheduling properly factored out and driven independently of this module.
+      TelemetryPing.sendPersistedPings();
       break;
 
 #ifdef MOZ_WIDGET_ANDROID
     // On Android, we can get killed without warning once we are in the background,
     // but we may also submit data and/or come back into the foreground without getting
     // killed. To deal with this, we save the current session data to file when we are
     // put into the background. This handles the following post-backgrounding scenarios:
     // 1) We are killed immediately. In this case the current session data (which we
@@ -2057,17 +2038,16 @@ let Impl = {
       overrideEnvironment: oldEnvironment,
     };
     TelemetryPing.send(getPingType(payload), payload, options);
   },
 
   _isClassicReason: function(reason) {
     const classicReasons = [
       REASON_SAVED_SESSION,
-      REASON_IDLE_DAILY,
       REASON_GATHER_PAYLOAD,
       REASON_TEST_PING,
     ];
     return classicReasons.indexOf(reason) != -1;
   },
 
   /**
    * Get an object describing the current state of this module for AsyncShutdown diagnostics.
--- a/toolkit/components/telemetry/docs/main-ping.rst
+++ b/toolkit/components/telemetry/docs/main-ping.rst
@@ -10,16 +10,18 @@ This ping is triggered by different scen
 * ``aborted-session`` - this ping is regularly saved to disk (every 5 minutes), overwriting itself, and deleted at shutdown. If a previous aborted session ping is found at startup, it gets sent to the server. The first aborted-session ping is generated as soon as Telemetry starts
 * ``environment-change`` - the :doc:`environment` changed, so the session measurements got reset and a new subsession starts
 * ``shutdown`` - triggered when the browser session ends
 * ``daily`` - a session split triggered in 24h hour intervals at local midnight. If an ``environment-change`` ping is generated by the time it should be sent, the daily ping is rescheduled for the next midnight
 * ``saved-session`` - the *"classic"* Telemetry payload with measurements covering the whole browser session (only submitted for a transition period)
 
 Most reasons lead to a session split, initiating a new *subsession*. We reset important measurements for those subsessions.
 
+*Note:* ``saved-session`` is sent with a different ping type (``saved-session``, not ``main``), but otherwise has the same format as discussed here.
+
 Structure::
 
     {
       version: 4,
 
       info: {
         reason: <string>, // what triggered this ping: "saved-session", "environment-change", "shutdown", ...
         revision: <string>, // the Histograms.json revision
--- a/toolkit/components/telemetry/docs/pings.rst
+++ b/toolkit/components/telemetry/docs/pings.rst
@@ -24,12 +24,12 @@ The telemetry server team is working tow
 * `2XX` - success, don't resubmit
 * `4XX` - there was some problem with the request - the client should not try to resubmit as it would just receive the same response
 * `5XX` - there was a server-side error, the client should try to resubmit later
 
 Ping types
 ==========
 
 * :doc:`main <main-ping>` - contains the information collected by Telemetry (Histograms, hang stacks, ...)
-* :doc:`saved-session <main-ping>` - contains the *"classic"* Telemetry payload with measurements covering the whole browser session. Used to make storage of saved-session easier server-side.
+* :doc:`saved-session <main-ping>` - has the same format as a main ping, but it contains the *"classic"* Telemetry payload with measurements covering the whole browser session. This is only a separate type to make storage of saved-session easier server-side.
 * ``activation`` - *planned* - sent right after installation or profile creation
 * ``upgrade`` - *planned* - sent right after an upgrade
 * ``deletion`` - *planned* - on opt-out we may have to tell the server to delete user data
--- a/toolkit/components/telemetry/tests/unit/head.js
+++ b/toolkit/components/telemetry/tests/unit/head.js
@@ -13,16 +13,57 @@ const MILLISECONDS_PER_MINUTE = 60 * 100
 const MILLISECONDS_PER_HOUR = 60 * MILLISECONDS_PER_MINUTE;
 const MILLISECONDS_PER_DAY = 24 * MILLISECONDS_PER_HOUR;
 
 const HAS_DATAREPORTINGSERVICE = "@mozilla.org/datareporting/service;1" in Components.classes;
 
 let gOldAppInfo = null;
 let gGlobalScope = this;
 
+/**
+ * Decode the payload of an HTTP request into a ping.
+ * @param {Object} request The data representing an HTTP request (nsIHttpRequest).
+ * @return {Object} The decoded ping payload.
+ */
+function decodeRequestPayload(request) {
+  let s = request.bodyInputStream;
+  let payload = null;
+  let decoder = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON)
+
+  if (request.getHeader("content-encoding") == "gzip") {
+    let observer = {
+      buffer: "",
+      onStreamComplete: function(loader, context, status, length, result) {
+        this.buffer = String.fromCharCode.apply(this, result);
+      }
+    };
+
+    let scs = Cc["@mozilla.org/streamConverters;1"]
+              .getService(Ci.nsIStreamConverterService);
+    let listener = Cc["@mozilla.org/network/stream-loader;1"]
+                  .createInstance(Ci.nsIStreamLoader);
+    listener.init(observer);
+    let converter = scs.asyncConvertData("gzip", "uncompressed",
+                                         listener, null);
+    converter.onStartRequest(null, null);
+    converter.onDataAvailable(null, null, s, 0, s.available());
+    converter.onStopRequest(null, null, null);
+    let unicodeConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
+                    .createInstance(Ci.nsIScriptableUnicodeConverter);
+    unicodeConverter.charset = "UTF-8";
+    let utf8string = unicodeConverter.ConvertToUnicode(observer.buffer);
+    utf8string += unicodeConverter.Finish();
+    payload = decoder.decode(utf8string);
+  } else {
+    payload = decoder.decodeFromStream(s, s.available());
+  }
+
+  return payload;
+}
+
 function loadAddonManager(id, name, version, platformVersion) {
   let ns = {};
   Cu.import("resource://gre/modules/Services.jsm", ns);
   let head = "../../../../mozapps/extensions/test/xpcshell/head_addons.js";
   let file = do_get_file(head);
   let uri = ns.Services.io.newFileURI(file);
   ns.Services.scriptloader.loadSubScript(uri.spec, gGlobalScope);
   createAppInfo(id, name, version, platformVersion);
--- a/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js
+++ b/toolkit/components/telemetry/tests/unit/test_TelemetryPing.js
@@ -71,52 +71,16 @@ function wrapWithExceptionHandler(f) {
   return wrapper;
 }
 
 function registerPingHandler(handler) {
   gHttpServer.registerPrefixHandler("/submit/telemetry/",
 				   wrapWithExceptionHandler(handler));
 }
 
-function decodeRequestPayload(request) {
-  let s = request.bodyInputStream;
-  let payload = null;
-  let decoder = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON)
-
-  if (request.getHeader("content-encoding") == "gzip") {
-    let observer = {
-      buffer: "",
-      onStreamComplete: function(loader, context, status, length, result) {
-        this.buffer = String.fromCharCode.apply(this, result);
-      }
-    };
-
-    let scs = Cc["@mozilla.org/streamConverters;1"]
-              .getService(Ci.nsIStreamConverterService);
-    let listener = Cc["@mozilla.org/network/stream-loader;1"]
-                  .createInstance(Ci.nsIStreamLoader);
-    listener.init(observer);
-    let converter = scs.asyncConvertData("gzip", "uncompressed",
-                                         listener, null);
-    converter.onStartRequest(null, null);
-    converter.onDataAvailable(null, null, s, 0, s.available());
-    converter.onStopRequest(null, null, null);
-    let unicodeConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
-                    .createInstance(Ci.nsIScriptableUnicodeConverter);
-    unicodeConverter.charset = "UTF-8";
-    let utf8string = unicodeConverter.ConvertToUnicode(observer.buffer);
-    utf8string += unicodeConverter.Finish();
-    payload = decoder.decode(utf8string);
-  } else {
-    payload = decoder.decodeFromStream(s, s.available());
-  }
-
-  return payload;
-}
-
 function checkPingFormat(aPing, aType, aHasClientId, aHasEnvironment) {
   const MANDATORY_PING_FIELDS = [
     "type", "id", "creationDate", "version", "application", "payload"
   ];
 
   const APPLICATION_TEST_DATA = {
     buildId: "2007010101",
     name: APP_NAME,
--- a/toolkit/components/telemetry/tests/unit/test_TelemetryPing_idle.js
+++ b/toolkit/components/telemetry/tests/unit/test_TelemetryPing_idle.js
@@ -1,20 +1,72 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 // Check that TelemetrySession notifies correctly on idle-daily.
 
-const Cu = Components.utils;
+const { utils: Cu, interfaces: Ci, classes: Cc } = Components;
 
+Cu.import("resource://testing-common/httpd.js", this);
+Cu.import("resource://gre/modules/PromiseUtils.jsm", this);
 Cu.import("resource://gre/modules/Services.jsm", this);
+Cu.import("resource://gre/modules/Task.jsm", this);
+Cu.import("resource://gre/modules/TelemetryFile.jsm", this);
+Cu.import("resource://gre/modules/TelemetryPing.jsm", this);
 Cu.import("resource://gre/modules/TelemetrySession.jsm", this);
 
+const PREF_ENABLED = "toolkit.telemetry.enabled";
+const PREF_FHR_UPLOAD_ENABLED = "datareporting.healthreport.uploadEnabled";
+
+let gHttpServer = null;
+
 function run_test() {
   do_test_pending();
+  do_get_profile();
 
-  Services.obs.addObserver(function observeTelemetry() {
-    Services.obs.removeObserver(observeTelemetry, "gather-telemetry");
-    do_test_finished();
-  }, "gather-telemetry", false);
+  Services.prefs.setBoolPref(PREF_ENABLED, true);
+  Services.prefs.setBoolPref(PREF_FHR_UPLOAD_ENABLED, true);
+
+  // Start the webserver to check if the pending ping correctly arrives.
+  gHttpServer = new HttpServer();
+  gHttpServer.start(-1);
+
+  run_next_test();
+}
+
+add_task(function* testSendPendingOnIdleDaily() {
+  // Create a valid pending ping.
+  const PENDING_PING = {
+    id: "2133234d-4ea1-44f4-909e-ce8c6c41e0fc",
+    type: "test-ping",
+    version: 4,
+    application: {},
+    payload: {},
+  };
+  yield TelemetryFile.savePing(PENDING_PING, true);
 
+  // Telemetry will not send this ping at startup, because it's not overdue.
+  yield TelemetryPing.setup();
+  TelemetryPing.setServer("http://localhost:" + gHttpServer.identity.primaryPort);
+
+  let pendingPromise = new Promise(resolve =>
+    gHttpServer.registerPrefixHandler("/submit/telemetry/", request => resolve(request)));
+
+  let gatherPromise = PromiseUtils.defer();
+  Services.obs.addObserver(gatherPromise.resolve, "gather-telemetry", false);
+
+  // Check that we are correctly receiving the gather-telemetry notification.
   TelemetrySession.observe(null, "idle-daily", null);
-}
+  yield gatherPromise;
+  Assert.ok(true, "Received gather-telemetry notification.");
+
+  Services.obs.removeObserver(gatherPromise.resolve, "gather-telemetry");
+
+  // Check that the pending ping is correctly received.
+  let request = yield pendingPromise;
+  let ping = decodeRequestPayload(request);
+
+  // Validate the ping data.
+  Assert.equal(ping.id, PENDING_PING.id);
+  Assert.equal(ping.type, PENDING_PING.type);
+
+  gHttpServer.stop(do_test_finished);
+});
--- a/toolkit/components/telemetry/tests/unit/test_TelemetrySession.js
+++ b/toolkit/components/telemetry/tests/unit/test_TelemetrySession.js
@@ -168,52 +168,16 @@ function getSavedPingFile(basename) {
     try {
       pingFile.remove(true);
     } catch (e) {
     }
   });
   return pingFile;
 }
 
-function decodeRequestPayload(request) {
-  let s = request.bodyInputStream;
-  let payload = null;
-  let decoder = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON)
-
-  if (request.getHeader("content-encoding") == "gzip") {
-    let observer = {
-      buffer: "",
-      onStreamComplete: function(loader, context, status, length, result) {
-        this.buffer = String.fromCharCode.apply(this, result);
-      }
-    };
-
-    let scs = Cc["@mozilla.org/streamConverters;1"]
-              .getService(Ci.nsIStreamConverterService);
-    let listener = Cc["@mozilla.org/network/stream-loader;1"]
-                  .createInstance(Ci.nsIStreamLoader);
-    listener.init(observer);
-    let converter = scs.asyncConvertData("gzip", "uncompressed",
-                                         listener, null);
-    converter.onStartRequest(null, null);
-    converter.onDataAvailable(null, null, s, 0, s.available());
-    converter.onStopRequest(null, null, null);
-    let unicodeConverter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
-                    .createInstance(Ci.nsIScriptableUnicodeConverter);
-    unicodeConverter.charset = "UTF-8";
-    let utf8string = unicodeConverter.ConvertToUnicode(observer.buffer);
-    utf8string += unicodeConverter.Finish();
-    payload = decoder.decode(utf8string);
-  } else {
-    payload = decoder.decodeFromStream(s, s.available());
-  }
-
-  return payload;
-}
-
 function checkPingFormat(aPing, aType, aHasClientId, aHasEnvironment) {
   const MANDATORY_PING_FIELDS = [
     "type", "id", "creationDate", "version", "application", "payload"
   ];
 
   const APPLICATION_TEST_DATA = {
     buildId: "2007010101",
     name: APP_NAME,
deleted file mode 100644
--- a/toolkit/modules/Dict.jsm
+++ /dev/null
@@ -1,249 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict";
-
-this.EXPORTED_SYMBOLS = ["Dict"];
-
-/**
- * Transforms a given key into a property name guaranteed not to collide with
- * any built-ins.
- */
-function convert(aKey) {
-  return ":" + aKey;
-}
-
-/**
- * Transforms a property into a key suitable for providing to the outside world.
- */
-function unconvert(aProp) {
-  return aProp.substr(1);
-}
-
-/**
- * A dictionary of strings to arbitrary JS objects. This should be used whenever
- * the keys are potentially arbitrary, to avoid collisions with built-in
- * properties.
- *
- * @param aInitial An object containing the initial keys and values of this
- *                 dictionary. Only the "own" enumerable properties of the
- *                 object are considered.
- *                 If |aInitial| is a string, it is assumed to be JSON and parsed into an object.
- */
-this.Dict = function Dict(aInitial) {
-  if (aInitial === undefined)
-    aInitial = {};
-  if (typeof aInitial == "string")
-    aInitial = JSON.parse(aInitial);
-  var items = {}, count = 0;
-  // That we don't look up the prototype chain is guaranteed by Iterator.
-  for (var [key, val] in Iterator(aInitial)) {
-    items[convert(key)] = val;
-    count++;
-  }
-  this._state = {count: count, items: items};
-  return Object.freeze(this);
-}
-
-Dict.prototype = Object.freeze({
-  /**
-   * The number of items in the dictionary.
-   */
-  get count() {
-    return this._state.count;
-  },
-
-  /**
-   * Gets the value for a key from the dictionary. If the key is not a string,
-   * it will be converted to a string before the lookup happens.
-   *
-   * @param aKey The key to look up
-   * @param [aDefault] An optional default value to return if the key is not
-   *                   present. Defaults to |undefined|.
-   * @returns The item, or aDefault if it isn't found.
-   */
-  get: function Dict_get(aKey, aDefault) {
-    var prop = convert(aKey);
-    var items = this._state.items;
-    return items.hasOwnProperty(prop) ? items[prop] : aDefault;
-  },
-
-  /**
-   * Sets the value for a key in the dictionary. If the key is a not a string,
-   * it will be converted to a string before the set happens.
-   */
-  set: function Dict_set(aKey, aValue) {
-    var prop = convert(aKey);
-    var items = this._state.items;
-    if (!items.hasOwnProperty(prop))
-      this._state.count++;
-    items[prop] = aValue;
-  },
-
-  /**
-   * Sets a lazy getter function for a key's value. If the key is a not a string,
-   * it will be converted to a string before the set happens.
-   * @param aKey
-   *        The key to set
-   * @param aThunk
-   *        A getter function to be called the first time the value for aKey is
-   *        retrieved. It is guaranteed that aThunk wouldn't be called more
-   *        than once.  Note that the key value may be retrieved either
-   *        directly, by |get|, or indirectly, by |listvalues| or by iterating
-   *        |values|.  For the later, the value is only retrieved if and when
-   *        the iterator gets to the value in question.  Also note that calling
-   *        |has| for a lazy-key does not invoke aThunk.
-   *
-   * @note No context is provided for aThunk when it's invoked.
-   *       Use Function.bind if you wish to run it in a certain context.
-   */
-  setAsLazyGetter: function Dict_setAsLazyGetter(aKey, aThunk) {
-    let prop = convert(aKey);
-    let items = this._state.items;
-    if (!items.hasOwnProperty(prop))
-      this._state.count++;
-
-    Object.defineProperty(items, prop, {
-      get: function() {
-        delete items[prop];
-        return items[prop] = aThunk();
-      },
-      configurable: true,
-      enumerable: true     
-    });
-  },
-
-  /**
-   * Returns whether a key is set as a lazy getter.  This returns
-   * true only if the getter function was not called already.
-   * @param aKey
-   *        The key to look up.
-   * @returns whether aKey is set as a lazy getter.
-   */
-  isLazyGetter: function Dict_isLazyGetter(aKey) {
-    let descriptor = Object.getOwnPropertyDescriptor(this._state.items,
-                                                     convert(aKey));
-    return (descriptor && descriptor.get != null);
-  },
-
-  /**
-   * Returns whether a key is in the dictionary. If the key is a not a string,
-   * it will be converted to a string before the lookup happens.
-   */
-  has: function Dict_has(aKey) {
-    return (this._state.items.hasOwnProperty(convert(aKey)));
-  },
-
-  /**
-   * Deletes a key from the dictionary. If the key is a not a string, it will be
-   * converted to a string before the delete happens.
-   *
-   * @returns true if the key was found, false if it wasn't.
-   */
-  del: function Dict_del(aKey) {
-    var prop = convert(aKey);
-    if (this._state.items.hasOwnProperty(prop)) {
-      delete this._state.items[prop];
-      this._state.count--;
-      return true;
-    }
-    return false;
-  },
-
-  /**
-   * Returns a shallow copy of this dictionary.
-   */
-  copy: function Dict_copy() {
-    var newItems = {};
-    for (var [key, val] in this.items)
-      newItems[key] = val;
-    return new Dict(newItems);
-  },
-
-  /*
-   * List and iterator functions
-   *
-   * No guarantees whatsoever are made about the order of elements.
-   */
-
-  /**
-   * Returns a list of all the keys in the dictionary in an arbitrary order.
-   */
-  listkeys: function Dict_listkeys() {
-    return [unconvert(k) for (k in this._state.items)];
-  },
-
-  /**
-   * Returns a list of all the values in the dictionary in an arbitrary order.
-   */
-  listvalues: function Dict_listvalues() {
-    var items = this._state.items;
-    return [items[k] for (k in items)];
-  },
-
-  /**
-   * Returns a list of all the items in the dictionary as key-value pairs
-   * in an arbitrary order.
-   */
-  listitems: function Dict_listitems() {
-    var items = this._state.items;
-    return [[unconvert(k), items[k]] for (k in items)];
-  },
-
-  /**
-   * Returns an iterator over all the keys in the dictionary in an arbitrary
-   * order. No guarantees are made about what happens if the dictionary is
-   * mutated during iteration.
-   */
-  get keys() {
-    // If we don't capture this._state.items here then the this-binding will be
-    // incorrect when the generator is executed
-    var items = this._state.items;
-    return (unconvert(k) for (k in items));
-  },
-
-  /**
-   * Returns an iterator over all the values in the dictionary in an arbitrary
-   * order. No guarantees are made about what happens if the dictionary is
-   * mutated during iteration.
-   */
-  get values() {
-    // If we don't capture this._state.items here then the this-binding will be
-    // incorrect when the generator is executed
-    var items = this._state.items;
-    return (items[k] for (k in items));
-  },
-
-  /**
-   * Returns an iterator over all the items in the dictionary as key-value pairs
-   * in an arbitrary order. No guarantees are made about what happens if the
-   * dictionary is mutated during iteration.
-   */
-  get items() {
-    // If we don't capture this._state.items here then the this-binding will be
-    // incorrect when the generator is executed
-    var items = this._state.items;
-    return ([unconvert(k), items[k]] for (k in items));
-  },
-
-  /**
-   * Returns a String representation of this dictionary.
-   */
-  toString: function Dict_toString() {
-    return "{" +
-      [(key + ": " + val) for ([key, val] in this.items)].join(", ") +
-      "}";
-  },
-
-  /**
-   * Returns a JSON representation of this dictionary.
-   */
-  toJSON: function Dict_toJSON() {
-    let obj = {};
-    for (let [key, item] of Iterator(this._state.items)) {
-      obj[unconvert(key)] = item;
-    }
-    return JSON.stringify(obj);
-  },
-});
--- a/toolkit/modules/PropertyListUtils.jsm
+++ b/toolkit/modules/PropertyListUtils.jsm
@@ -19,32 +19,32 @@
  * <integer> / <real>  NSNumber       TYPE_PRIMITIVE    number
  *                                    TYPE_INT64        String [1]
  * Not Available       NSNull         TYPE_PRIMITIVE    null   [2]
  *                                    TYPE_PRIMITIVE    undefined [3]
  * <date/>             NSDate         TYPE_DATE         Date
  * <data/>             NSData         TYPE_UINT8_ARRAY  Uint8Array
  * <array/>            NSArray        TYPE_ARRAY        Array
  * Not Available       NSSet          TYPE_ARRAY        Array  [2][4]
- * <dict/>             NSDictionary   TYPE_DICTIONARY   Dict (from Dict.jsm)
+ * <dict/>             NSDictionary   TYPE_DICTIONARY   Map
  *
  * Use PropertyListUtils.getObjectType to detect the type of a Property list
  * object.
  *
  * -------------
  * 1) Property lists supports storing U/Int64 numbers, while JS can only handle
  *    numbers that are in this limits of float-64 (±2^53).  For numbers that
  *    do not outbound this limits, simple primitive number are always used.
  *    Otherwise, a String object.
  * 2) About NSNull and NSSet values: While the xml format has no support for
  *    representing null and set values, the documentation for the binary format
  *    states that it supports storing both types.  However, the Cocoa APIs for
  *    serializing property lists do not seem to support either types (test with
  *    NSPropertyListSerialization::propertyList:isValidForFormat). Furthermore,
- *    if an array or a dictioanry contains a NSNull or a NSSet value, they cannot
+ *    if an array or a dictionary (Map) contains a NSNull or a NSSet value, they cannot
  *    be serialized to a property list.
  *    As for usage within OS X, not surprisingly there's no known usage of
  *    storing either of these types in a property list.  It seems that, for now,
  *    Apple is keeping the features of binary and xml formats in sync, probably as
  *    long as the XML format is not officially deprecated.
  * 3) Not used anywhere.
  * 4) About NSSet representation: For the time being, we represent those
  *    theoretical NSSet objects the same way NSArray is represented.
@@ -59,18 +59,16 @@ this.EXPORTED_SYMBOLS = ["PropertyListUt
 
 const Cc = Components.classes;
 const Ci = Components.interfaces;
 const Cu = Components.utils;
 
 Cu.importGlobalProperties(['File']);
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
-XPCOMUtils.defineLazyModuleGetter(this, "Dict",
-                                  "resource://gre/modules/Dict.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "ctypes",
                                   "resource://gre/modules/ctypes.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Services",
                                   "resource://gre/modules/Services.jsm");
 
 this.PropertyListUtils = Object.freeze({
   /**
    * Asynchronously reads a file as a property list.
@@ -172,17 +170,17 @@ this.PropertyListUtils = Object.freeze({
       return this.TYPE_PRIMITIVE;
 
     // Given current usage, we could assume that aObject was created in the
     // scope of this module, but in future, this util may be used as part of
     // serializing js objects to a property list - in which case the object
     // would most likely be created in the caller's scope.
     let global = Cu.getGlobalForObject(aObject);
 
-    if (global.Dict && aObject instanceof global.Dict)
+    if (aObject instanceof global.Map)
       return this.TYPE_DICTIONARY;
     if (Array.isArray(aObject))
       return this.TYPE_ARRAY;
     if (aObject instanceof global.Date)
       return this.TYPE_DATE;
     if (aObject instanceof global.Uint8Array)
       return this.TYPE_UINT8_ARRAY;
     if (aObject instanceof global.String && "__INT_64_WRAPPER__" in aObject)
@@ -497,40 +495,40 @@ BinaryPropertyListReader.prototype = {
         configurable: true,
         enumerable: true
       });
     }, this);
     return array;
   },
 
   /**
-   * Reads dictionary from the buffer and wraps it as a Dict object (as defined
-   * in Dict.jsm).
+   * Reads dictionary from the buffer and wraps it as a Map object.
    * @param aObjectOffset
    *        the offset in the buffer at which the dictionary starts
    * @param aNumberOfObjects
    *        the number of keys in the dictionary
-   * @return Dict.jsm-style dictionary.
+   * @return Map-style dictionary.
    */
   _wrapDictionary: function(aObjectOffset, aNumberOfObjects) {
     // A dictionary in the binary format is stored as a list of references to
     // key-objects, followed by a list of references to the value-objects for
     // those keys. The size of each list is aNumberOfObjects * this._objectRefSize.
-    let dict = new Dict();
+    let dict = new Proxy(new Map(), LazyMapProxyHandler());
     if (aNumberOfObjects == 0)
       return dict;
 
     let keyObjsRefs = this._readUnsignedInts(aObjectOffset, this._objectRefSize,
                                              aNumberOfObjects);
     let valObjsRefs =
       this._readUnsignedInts(aObjectOffset + aNumberOfObjects * this._objectRefSize,
                              this._objectRefSize, aNumberOfObjects);
     for (let i = 0; i < aNumberOfObjects; i++) {
       let key = this._readObject(keyObjsRefs[i]);
       let readBound = this._readObject.bind(this, valObjsRefs[i]);
+
       dict.setAsLazyGetter(key, readBound);
     }
     return dict;
   },
 
   /**
    * Reads an object at the spcified index in the object table
    * @param aObjectIndex
@@ -718,26 +716,27 @@ XMLPropertyListReader.prototype = {
     // <dict>
     //   <key>my true bool</key>
     //   <true/>
     //   <key>my string key</key>
     //   <string>My String Key</string>
     // </dict>
     if (aDOMElt.children.length % 2 != 0)
       throw new Error("Invalid dictionary");
-    let dict = new Dict();
+    let dict = new Proxy(new Map(), LazyMapProxyHandler());
     for (let i = 0; i < aDOMElt.children.length; i += 2) {
       let keyElem = aDOMElt.children[i];
       let valElem = aDOMElt.children[i + 1];
 
       if (keyElem.localName != "key")
         throw new Error("Invalid dictionary");
 
       let keyName = this._readObject(keyElem);
       let readBound = this._readObject.bind(this, valElem);
+
       dict.setAsLazyGetter(keyName, readBound);
     }
     return dict;
   },
 
   _wrapArray: function XPLR__wrapArray(aDOMElt) {
     // <array>
     //   <string>...</string>
@@ -758,8 +757,59 @@ XMLPropertyListReader.prototype = {
         },
         configurable: true,
         enumerable: true
       });
     });
     return array;
   }
 };
+
+/**
+   * Simple handler method to proxy calls to dict/Map objects to implement the
+   * setAsLazyGetter API. With this, a value can be set as a function that will
+   * evaluate its value and only be called when it's first retrieved.
+   * @member _lazyGetters
+   *         Set() object to hold keys invoking LazyGetter.
+   * @method get
+   *         Trap for getting property values. Ensures that if a lazyGetter is present
+   *         as value for key, then the function is evaluated, the value is cached,
+   *         and its value will be returned.
+   * @param  target
+   *         Target object. (dict/Map)
+   * @param  name
+   *         Name of operation to be invoked on target.
+   * @param  key
+   *         Key to be set, retrieved or deleted. Keys are checked for laziness.
+   * @return Returns value of "name" property of target by default. Otherwise returns
+   *         updated target.
+   */
+function LazyMapProxyHandler () {
+  return {
+    _lazyGetters: new Set(),
+    get: function(target, name) {
+      switch (name) {
+        case "setAsLazyGetter":
+          return (key, value) => {
+            this._lazyGetters.add(key);
+            target.set(key, value);
+          };
+        case "get":
+          return key => {
+            if (this._lazyGetters.has(key)) {
+              target.set(key, target.get(key)());
+              this._lazyGetters.delete(key);
+            }
+            return target.get(key);
+          };
+        case "delete":
+          return key => {
+            if (this._lazyGetters.has(key)) {
+              this._lazyGetters.delete(key);
+            }
+            return target.delete(key);
+          };
+        default:
+          return target[name];
+      }
+    }
+  }
+}
--- a/toolkit/modules/moz.build
+++ b/toolkit/modules/moz.build
@@ -17,17 +17,16 @@ EXTRA_JS_MODULES += [
     'BinarySearch.jsm',
     'BrowserUtils.jsm',
     'CertUtils.jsm',
     'CharsetMenu.jsm',
     'ClientID.jsm',
     'debug.js',
     'DeferredTask.jsm',
     'Deprecated.jsm',
-    'Dict.jsm',
     'FileUtils.jsm',
     'Finder.jsm',
     'Geometry.jsm',
     'GMPInstallManager.jsm',
     'GMPUtils.jsm',
     'Http.jsm',
     'InlineSpellChecker.jsm',
     'InlineSpellCheckerContent.jsm',
deleted file mode 100644
--- a/toolkit/modules/tests/xpcshell/test_dict.js
+++ /dev/null
@@ -1,299 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-Components.utils.import("resource://gre/modules/Dict.jsm");
-
-/**
- * Test that a few basic get, set, has and del operations work.
- */
-function test_get_set_has_del() {
-  let dict = new Dict({foo: "bar"});
-  dict.set("baz", 200);
-  do_check_eq(dict.get("foo"), "bar");
-  do_check_eq(dict.get("baz"), 200);
-  do_check_true(dict.has("foo"));
-  do_check_true(dict.has("baz"));
-  // Now delete the entries
-  do_check_true(dict.del("foo"));
-  do_check_true(dict.del("baz"));
-  do_check_false(dict.has("foo"));
-  do_check_false(dict.has("baz"));
-  // and make sure del returns false
-  do_check_false(dict.del("foo"));
-  do_check_false(dict.del("baz"));
-}
-
-/**
- * Test that the second parameter of get (default value) works.
- */
-function test_get_default() {
-  let dict = new Dict();
-  do_check_true(dict.get("foo") === undefined);
-  do_check_eq(dict.get("foo", "bar"), "bar");
-}
-
-/**
- * Test that there are no collisions with builtins.
- */
-function test_collisions_with_builtins() {
-  let dict = new Dict();
-  // First check that a new dictionary doesn't already have builtins.
-  do_check_false(dict.has("toString"));
-  do_check_false(dict.has("watch"));
-  do_check_false(dict.has("__proto__"));
-
-  // Add elements in an attempt to collide with builtins.
-  dict.set("toString", "toString");
-  dict.set("watch", "watch");
-  // This is a little evil. We set __proto__ to an object to try to make it look
-  // up the prototype chain.
-  dict.set("__proto__", {prototest: "prototest"});
-
-  // Now check that the entries exist.
-  do_check_true(dict.has("toString"));
-  do_check_true(dict.has("watch"));
-  do_check_true(dict.has("__proto__"));
-  // ...and that we aren't looking up the prototype chain.
-  do_check_false(dict.has("prototest"));
-}
-
-/**
- * Test that the "count" property works as expected.
- */
-function test_count() {
-  let dict = new Dict({foo: "bar"});
-  do_check_eq(dict.count, 1);
-  dict.set("baz", "quux");
-  do_check_eq(dict.count, 2);
-  // This shouldn't change the count
-  dict.set("baz", "quux2");
-  do_check_eq(dict.count, 2);
-
-  do_check_true(dict.del("baz"));
-  do_check_eq(dict.count, 1);
-  // This shouldn't change the count either
-  do_check_false(dict.del("not"));
-  do_check_eq(dict.count, 1);
-  do_check_true(dict.del("foo"));
-  do_check_eq(dict.count, 0);
-}
-
-/**
- * Test that the copy function works as expected.
- */
-function test_copy() {
-  let obj = {};
-  let dict1 = new Dict({foo: "bar", baz: obj});
-  let dict2 = dict1.copy();
-  do_check_eq(dict2.get("foo"), "bar");
-  do_check_eq(dict2.get("baz"), obj);
-  // Make sure the two update independent of each other.
-  dict1.del("foo");
-  do_check_false(dict1.has("foo"));
-  do_check_true(dict2.has("foo"));
-  dict2.set("test", 400);
-  do_check_true(dict2.has("test"));
-  do_check_false(dict1.has("test"));
-
-  // Check that the copy is shallow and not deep.
-  dict1.get("baz").prop = "proptest";
-  do_check_eq(dict2.get("baz").prop, "proptest");
-}
-
-// This is used by both test_listers and test_iterators.
-function _check_lists(keys, values, items) {
-  do_check_eq(keys.length, 2);
-  do_check_true(keys.indexOf("x") != -1);
-  do_check_true(keys.indexOf("y") != -1);
-
-  do_check_eq(values.length, 2);
-  do_check_true(values.indexOf("a") != -1);
-  do_check_true(values.indexOf("b") != -1);
-
-  // This is a little more tricky -- we need to check that one of the two
-  // entries is ["x", "a"] and the other is ["y", "b"].
-  do_check_eq(items.length, 2);
-  do_check_eq(items[0].length, 2);
-  do_check_eq(items[1].length, 2);
-  let ix = (items[0][0] == "x") ? 0 : 1;
-  let iy = (ix == 0) ? 1 : 0;
-  do_check_eq(items[ix][0], "x");
-  do_check_eq(items[ix][1], "a");
-  do_check_eq(items[iy][0], "y");
-  do_check_eq(items[iy][1], "b");
-}
-
-/**
- * Test the list functions.
- */
-function test_listers() {
-  let dict = new Dict({"x": "a", "y": "b"});
-  let keys = dict.listkeys();
-  let values = dict.listvalues();
-  let items = dict.listitems();
-  _check_lists(keys, values, items);
-}
-
-/**
- * Test the iterator functions.
- */
-function test_iterators() {
-  let dict = new Dict({"x": "a", "y": "b"});
-  // Convert the generators to lists
-  let keys = [x for (x in dict.keys)];
-  let values = [x for (x in dict.values)];
-  let items = [x for (x in dict.items)];
-  _check_lists(keys, values, items);
-}
-
-/**
- * Test that setting a property throws an exception in strict mode.
- */
-function test_set_property_strict() {
-  "use strict";
-  var dict = new Dict();
-  var thrown = false;
-  try {
-    dict.foo = "bar";
-  }
-  catch (ex) {
-    thrown = true;
-  }
-  do_check_true(thrown);
-}
-
-/**
- * Test that setting a property has no effect in non-strict mode.
- */
-function test_set_property_non_strict() {
-  let dict = new Dict();
-  dict.foo = "bar";
-  do_check_false("foo" in dict);
-  let realget = dict.get;
-  dict.get = "baz";
-  do_check_eq(dict.get, realget);
-}
-
-/**
- * Tests setting a property by a lazy getter.
- */
-function test_set_property_lazy_getter() {
-  let thunkCalled = false;
-
-  let setThunk = function(dict) {
-    thunkCalled = false;
-    dict.setAsLazyGetter("foo", function() {
-      thunkCalled = true;
-      return "bar";
-    });
-  };
-
-  let dict = new Dict();
-  setThunk(dict);
-
-  // Test that checking for the key existence does not invoke
-  // the getter function.
-  do_check_true(dict.has("foo"));
-  do_check_false(thunkCalled);
-  do_check_true(dict.isLazyGetter("foo"));
-
-  // Calling get the first time should invoke the getter function
-  // and unmark the key as a lazy getter.
-  do_check_eq(dict.get("foo"), "bar");
-  do_check_true(thunkCalled);
-  do_check_false(dict.isLazyGetter("foo"));
-
-  // Calling get again should not invoke the getter function
-  thunkCalled = false;
-  do_check_eq(dict.get("foo"), "bar");
-  do_check_false(thunkCalled);
-  do_check_false(dict.isLazyGetter("foo"));
-
-  // Test that listvalues works for lazy keys.
-  dict = new Dict();
-  setThunk(dict);
-  do_check_true(dict.isLazyGetter("foo"));
-
-  let listvalues = dict.listvalues();
-  do_check_false(dict.isLazyGetter("foo"));
-  do_check_true(thunkCalled);
-  do_check_true(listvalues.length, 1);
-  do_check_eq(listvalues[0], "bar");
-
-  thunkCalled = false;
-
-  // Retrieving the list again shouldn't invoke our getter.
-  listvalues = dict.listvalues();
-  do_check_false(dict.isLazyGetter("foo"));
-  do_check_false(thunkCalled);
-  do_check_true(listvalues.length, 1);
-  do_check_eq(listvalues[0], "bar");
-
-  // Test that the values iterator also works as expected.
-  dict = new Dict();
-  setThunk(dict);
-  let values = dict.values;
-
-  // Our getter shouldn't be called before the iterator reaches it.
-  do_check_true(dict.isLazyGetter("foo"));
-  do_check_false(thunkCalled);
-  do_check_eq(values.next(), "bar");
-  do_check_true(thunkCalled);
-
-  thunkCalled = false;
-  do_check_false(dict.isLazyGetter("foo"));
-  do_check_eq(dict.get("foo"), "bar");
-  do_check_false(thunkCalled);
-}
-
-// This is used by both test_construct_dict_from_json_string and test_serialize_dict_to_json_string
-function _sort_comp_arr(arr1,arr2){
-  arr1.sort();
-  arr2.sort();
-  do_check_eq(arr1.toString(),arr2.toString());
-}
-
-/**
- * Tests constructing a dictionary from a JSON string.
- */
-function test_construct_dict_from_json_string() {
-  let d1 = new Dict({a:1, b:2, c:"foobar"});
-  let d2 = new Dict(JSON.stringify(({a:1, b:2, c:"foobar"})));
-  _sort_comp_arr(d1.listkeys(),d2.listkeys());
-  do_check_eq(d1.get("a"), d2.get("a"));
-  do_check_eq(d1.get("b"), d2.get("b"));
-  do_check_eq(d1.get("c"), d2.get("c"));
-}
-
-/**
- * Tests serializing a dictionary to a JSON string.
- */
-function test_serialize_dict_to_json_string() {
-  let d1 = new Dict({a:1, b:2, c:"foobar"});
-  let d2 = new Dict(d1.toJSON());
-  _sort_comp_arr(d1.listkeys(),d2.listkeys());
-  do_check_eq(d1.get("a"), d2.get("a"));
-  do_check_eq(d1.get("b"), d2.get("b"));
-  do_check_eq(d1.get("c"), d2.get("c"));
-}
-
-var tests = [
-  test_get_set_has_del,
-  test_get_default,
-  test_collisions_with_builtins,
-  test_count,
-  test_copy,
-  test_listers,
-  test_iterators,
-  test_set_property_strict,
-  test_set_property_non_strict,
-  test_set_property_lazy_getter,
-  test_construct_dict_from_json_string,
-  test_serialize_dict_to_json_string
-];
-
-function run_test() {
-  for (let [, test] in Iterator(tests))
-    test();
-}
--- a/toolkit/modules/tests/xpcshell/xpcshell.ini
+++ b/toolkit/modules/tests/xpcshell/xpcshell.ini
@@ -6,17 +6,16 @@ support-files =
   propertyLists/bug710259_propertyListBinary.plist
   propertyLists/bug710259_propertyListXML.plist
   chromeappsstore.sqlite
   zips/zen.zip
 
 [test_BinarySearch.js]
 [test_client_id.js]
 [test_DeferredTask.js]
-[test_dict.js]
 [test_FileUtils.js]
 [test_GMPInstallManager.js]
 [test_Http.js]
 [test_Log.js]
 [test_NewTabUtils.js]
 [test_ObjectUtils.js]
 [test_PermissionsUtils.js]
 [test_Preferences.js]