Browse Source

Bug 1492154 and wip pathces added.

Frank-Rainer Grahl 6 years ago
parent
commit
c53f739c5f

+ 47 - 0
comm-esr52/patches/1492154-sessionstore-249.patch

@@ -0,0 +1,47 @@
+# HG changeset patch
+# User Frank-Rainer Grahl <frgrahl@gmx.net>
+# Parent  433b6567d3f7ce8829436010ad73333f11676dc8
+Bug 1492154 - Account for invalid origin in principal and fix misspelled principal uri and url in sessionstore.
+
+diff --git a/suite/common/src/nsSessionStore.js b/suite/common/src/nsSessionStore.js
+--- a/suite/common/src/nsSessionStore.js
++++ b/suite/common/src/nsSessionStore.js
+@@ -1688,28 +1688,35 @@ SessionStoreService.prototype = {
+       }
+       catch (ex) {
+         // Chances are that this is getEntryAtIndex throwing, as seen in bug 669196.
+         // We've already asserted in _collectTabData, so we won't show that again.
+         continue;
+       }
+ 
+       // sessionStorage is saved per principal (cf. nsGlobalWindow::GetSessionStorage)
+-      let origin = principal.origin;
++      let origin;
++      try {
++        origin = principal.origin;
++      }
++      catch (ex) {
++        origin = principal.URI.spec;
++      }
++
+       if (storageData[origin])
+         continue;
+ 
+-      let isHTTPS = principal.uri && principal.url.schemeIs("https");
++      let isHTTPS = principal.URI && principal.URI.schemeIs("https");
+       if (!(aFullData || this._checkPrivacyLevel(isHTTPS, aIsPinned)))
+         continue;
+ 
+       let storage, storageItemCount = 0;
+ 
+       let window = aDocShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
+-                                              .getInterface(Components.interfaces.nsIDOMWindow);
++                            .getInterface(Components.interfaces.nsIDOMWindow);
+       try {
+         let storageManager = aDocShell.QueryInterface(Components.interfaces.nsIDOMStorageManager);
+         storage = storageManager.getStorage(window, principal);
+ 
+         // See Bug 1232955 - storage.length can throw, catch that failure here inside the try.
+         if (storage)
+           storageItemCount = storage.length;
+       }

+ 2911 - 0
comm-esr52/patches/frg-249-5.patch

@@ -0,0 +1,2911 @@
+# HG changeset patch
+# User Frank-Rainer Grahl <frgrahl@gmx.net>
+# Parent  658ea051efa3834f4adccc138d4722cf47d3bf0d
+frg 2.49.5 private changes
+
+diff --git a/client.py b/client.py
+--- a/client.py
++++ b/client.py
+@@ -13,22 +13,22 @@
+ #  "COMM", "MOZILLA", "CHATZILLA", "INSPECTOR"
+ DEFAULTS = {
+     # Global Default Revision
+     'REV': "default",
+ 
+     # URL of the default hg repository to clone for ChatZilla.
+     'CHATZILLA_REPO': 'https://hg.mozilla.org/chatzilla/',
+     # The stable revision to use
+-      'CHATZILLA_REV':  'SEA2_48_RELBRANCH',
++      'CHATZILLA_REV':  'default',
+ 
+     # URL of the default hg repository to clone for DOM Inspector.
+     'INSPECTOR_REPO': 'https://hg.mozilla.org/dom-inspector/',
+     # The stable revision to use
+-      'INSPECTOR_REV':  'DOMI_2_0_17',
++      'INSPECTOR_REV':  'default',
+ 
+     # URL of the default hg repository to clone for Mozilla.
+     'MOZILLA_REPO': 'https://hg.mozilla.org/releases/mozilla-esr52/',
+ }
+ 
+ REPO_SHORT_NAMES = {
+     'mozilla-central':  'moz',
+     'dom-inspector':    'dom',
+diff --git a/ldap/c-sdk/include/portable.h b/ldap/c-sdk/include/portable.h
+--- a/ldap/c-sdk/include/portable.h
++++ b/ldap/c-sdk/include/portable.h
+@@ -418,20 +418,16 @@ int select(int, fd_set *, fd_set *, fd_s
+ 
+ #define strcasecmp strcmpi
+ #define strncasecmp _strnicmp
+ #define bzero(a, b) memset( a, 0, b )
+ #define getpid _getpid
+ #define ioctl ioctlsocket
+ #define sleep(a) Sleep( a*1000 )
+ 
+-#define EMSGSIZE WSAEMSGSIZE
+-#define EWOULDBLOCK WSAEWOULDBLOCK
+-#define EHOSTUNREACH WSAEHOSTUNREACH
+-
+ #ifndef MAXPATHLEN
+ #define MAXPATHLEN _MAX_PATH
+ #endif
+ 
+ /* We'd like this number to be prime for the hash
+  * into the Connection table */
+ #define DS_MAX_NT_SOCKET_CONNECTIONS 2003
+ 
+diff --git a/mailnews/base/src/nsMsgAccountManager.cpp b/mailnews/base/src/nsMsgAccountManager.cpp
+--- a/mailnews/base/src/nsMsgAccountManager.cpp
++++ b/mailnews/base/src/nsMsgAccountManager.cpp
+@@ -369,16 +369,46 @@ nsMsgAccountManager::GetUniqueServerKey(
+       aResult.AssignLiteral(SERVER_PREFIX);
+       aResult.AppendInt(i++);
+       m_incomingServers.Get(aResult, getter_AddRefs(server));
+     } while (server);
+     return;
+   }
+ }
+ 
++void
++nsMsgAccountManager::CleanServerValidState()
++{
++  nsresult rv;
++  nsCOMPtr<nsIPrefService> prefService(do_GetService(NS_PREFSERVICE_CONTRACTID,
++                                       &rv));
++  if (NS_FAILED(rv))
++    return;
++
++  nsCOMPtr<nsIPrefBranch> prefServer;
++  if (prefService)
++  {
++    rv = prefService->GetBranch(PREF_MAIL_SERVER_PREFIX, getter_AddRefs(prefServer));
++    if (NS_FAILED(rv))
++      return;
++  }
++
++  nsAutoCString serverKey;
++
++  // Loop over first 99 mail.server.server* entried and delete .valid entries.
++  for (uint32_t lastKey = 1; lastKey < 100; lastKey++)
++  {
++    serverKey.AssignLiteral(SERVER_PREFIX);
++    serverKey.AppendInt(lastKey);
++    serverKey.AppendLiteral(".valid");
++    // Just delete the 'valid' pref. Don't check if it exists.
++    prefServer->ClearUserPref(serverKey.get());
++  }
++}
++
+ nsresult
+ nsMsgAccountManager::CreateIdentity(nsIMsgIdentity **_retval)
+ {
+   NS_ENSURE_ARG_POINTER(_retval);
+   nsresult rv;
+   nsAutoCString key;
+   nsCOMPtr<nsIMsgIdentity> identity;
+   int32_t i = 1;
+@@ -1154,16 +1184,19 @@ nsMsgAccountManager::LoadAccounts()
+       rv = prefBranch->SetIntPref(APPEND_ACCOUNTS_VERSION_PREF_NAME, appendAccountsCurrentVersion + 1);
+     }
+   }
+ 
+   // It is ok to return null accounts like when we create new profile.
+   m_accountsLoaded = true;
+   m_haveShutdown = false;
+ 
++  // Clean up servers. Necessary for later account creation see bug 511861.
++  CleanServerValidState();
++
+   if (accountList.IsEmpty())
+       return NS_OK;
+ 
+   /* parse accountList and run loadAccount on each string, comma-separated */
+   nsCOMPtr<nsIMsgAccount> account;
+   // Tokenize the data and add each account
+   // in the user's current mailnews account list
+   nsTArray<nsCString> accountsArray;
+diff --git a/mailnews/base/src/nsMsgAccountManager.h b/mailnews/base/src/nsMsgAccountManager.h
+--- a/mailnews/base/src/nsMsgAccountManager.h
++++ b/mailnews/base/src/nsMsgAccountManager.h
+@@ -188,16 +188,19 @@ private:
+   nsresult RemoveVFListenerForVF(nsIMsgFolder *virtualFolder,
+                                  nsIMsgFolder *folder);
+ 
+   void getUniqueAccountKey(nsCString& aResult);
+ 
+   // Scan the preferences to find a unique server key
+   void GetUniqueServerKey(nsACString& aResult);
+ 
++  // Delete Server valid preference.
++  void CleanServerValidState();
++
+   nsresult RemoveFolderFromSmartFolder(nsIMsgFolder *aFolder,
+                                        uint32_t flagsChanged);
+ 
+   nsresult SetSendLaterUriPref(nsIMsgIncomingServer *server);
+ 
+   nsCOMPtr<nsIPrefBranch> m_prefs;
+ 
+   //
+diff --git a/suite/browser/browser-prefs.js b/suite/browser/browser-prefs.js
+--- a/suite/browser/browser-prefs.js
++++ b/suite/browser/browser-prefs.js
+@@ -946,16 +946,22 @@ pref("services.sync.prefs.sync.security.
+ pref("services.sync.prefs.sync.security.warn_viewing_mixed", true);
+ pref("services.sync.prefs.sync.signon.rememberSignons", true);
+ pref("services.sync.prefs.sync.spellchecker.dictionary", true);
+ pref("services.sync.prefs.sync.xpinstall.whitelist.required", true);
+ 
+ // Enable the DOM fullscreen API.
+ pref("full-screen-api.enabled", true);
+ 
++// frg private
++pref("data_manager.debug",true);
++pref("browser.safebrowsing.debug",true);
++pref("network.IDN_show_punycode",true);
++pref("browser.toolbars.grippyhidden",true);
++
+ // Most DevTools prefs are set from the shared file
+ // devtools/client/preferences/devtools.js, but this one is currently set
+ // per-app or per-channel.
+ // Number of usages of the web console or scratchpad. If this is less than 5,
+ // then pasting code into the web console or scratchpad is disabled
+ pref("devtools.selfxss.count", 5);
+ 
+ // Enable general plugin loading.
+diff --git a/suite/browser/tabbrowser.xml b/suite/browser/tabbrowser.xml
+--- a/suite/browser/tabbrowser.xml
++++ b/suite/browser/tabbrowser.xml
+@@ -294,24 +294,24 @@
+         ]]>
+         </body>
+       </method>
+ 
+       <!-- XXXcst This should not be needed, but it seems that the tooltip
+            sizing is happening too early when we want to stop showing the
+            preview.  This clears the label's width early (i.e. when the
+            previous preview disappears) so that when the next tooltip appears,
+-           it doesn't start with a bad size.  For now, I blame Gecko. -->
++           it doesn't start with a bad size. For now, I blame Gecko. -->
+       <method name="resetPreview">
+         <parameter name="aPopup"/>
+         <body>
+         <![CDATA[
+           var label = aPopup.firstChild;
+-          // if this function is removed, these two lines need to be restored
+-          // to the non-preview codepath above
++          // If this function is removed, these two lines need to be restored
++          // to the non-preview codepath above.
+           label.removeAttribute("width");
+           aPopup.removeAttribute("tabpreview");
+         ]]>
+         </body>
+       </method>
+ 
+       <method name="previewTab">
+         <parameter name="aTab"/>
+@@ -443,18 +443,16 @@
+             mTab: aTab,
+             mBrowser: aBrowser,
+             mBlank: aStartsBlank,
+             mFeeds: [],
+             mRequest: null,
+             mStateFlags: 0,
+             mStatus: 0,
+             mMessage: "",
+-            mCurProgress: 0,
+-            mMaxProgress: 0,
+ 
+             // cache flags for correct status UI update after tab switching
+             mTotalProgress: 0,
+ 
+             // count of open requests (should always be 0 or 1)
+             mRequestCount: 0,
+ 
+             _callProgressListeners: function () {
+@@ -474,29 +472,28 @@
+                 return false;
+ 
+               return true;
+             },
+ 
+             onProgressChange: function (aWebProgress, aRequest,
+                                         aCurSelfProgress, aMaxSelfProgress,
+                                         aCurTotalProgress, aMaxTotalProgress) {
+-              if (aMaxTotalProgress > 0)
+-                this.mTab.setAttribute("progress", Math.floor(aCurTotalProgress * 9.9 / aMaxTotalProgress));
+-
+-              if (this.mBlank)
++              this.mTotalProgress = aMaxTotalProgress ? aCurTotalProgress / aMaxTotalProgress : 0;
++
++              if (!this._shouldShowProgress(aRequest))
+                 return;
+ 
+-              this.mCurProgress = aCurTotalProgress;
+-              this.mMaxProgress = aMaxTotalProgress;
+-
+-              this.mTabBrowser._callProgressListeners(this.mBrowser, "onProgressChange",
+-                                                      [aWebProgress, aRequest,
+-                                                      aCurSelfProgress, aMaxSelfProgress,
+-                                                      aCurTotalProgress, aMaxTotalProgress]);
++              if (this.mTotalProgress)
++                this.mTab.setAttribute("progress", "true");
++
++              this._callProgressListeners("onProgressChange",
++                                          [aWebProgress, aRequest,
++                                           aCurSelfProgress, aMaxSelfProgress,
++                                           aCurTotalProgress, aMaxTotalProgress]);
+             },
+ 
+             onProgressChange64: function (aWebProgress, aRequest,
+                                           aCurSelfProgress, aMaxSelfProgress,
+                                           aCurTotalProgress, aMaxTotalProgress) {
+               return this.onProgressChange(aWebProgress, aRequest,
+                 aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress,
+                 aMaxTotalProgress);
+@@ -1178,33 +1175,22 @@
+ 
+             this._callProgressListeners(null, "onStatusChange",
+                                         [this.mCurrentBrowser.webProgress,
+                                          tabListener.mRequest,
+                                          tabListener.mStatus,
+                                          tabListener.mMessage],
+                                         true, false);
+ 
+-            this._callProgressListeners(null, "onProgressChange",
+-                                        [this.mCurrentBrowser.webProgress,
+-                                         tabListener.mRequest,
+-                                         tabListener.mCurProgress,
+-                                         tabListener.mMaxProgress,
+-                                         tabListener.mCurProgress,
+-                                         tabListener.mMaxProgress],
+-                                        true, false);
+-
+             // Also send the onUpdateCurrentBrowser event for compatibility
+-            var progress = tabListener.mMaxProgress > 0 ?
+-                tabListener.mCurProgress / tabListener.mMaxProgress : 0;
+             this._callProgressListeners(null, "onUpdateCurrentBrowser",
+                                         [tabListener.mStateFlags,
+                                          tabListener.mStatus,
+                                          tabListener.mMessage,
+-                                         progress],
++                                         tabListener.mTotalProgress],
+                                         true, false);
+ 
+             if (this.mAeroPeek)
+               return;
+ 
+             // we only want to return to the parent tab if no other
+             // tabs have been opened and the user hasn't switched tabs
+             this.mPreviousTab = null;
+@@ -2197,16 +2183,25 @@
+               if (browser.outerWindowID == aID)
+                 return browser;
+ 
+             return null;
+           ]]>
+         </body>
+       </method>
+ 
++      <method name="getBrowserContainer">
++        <parameter name="aBrowser"/>
++        <body>
++          <![CDATA[
++            return (aBrowser || this.mCurrentBrowser).parentNode.parentNode;
++          ]]>
++        </body>
++      </method>
++
+       <method name="getTabIndex">
+         <parameter name="aTab"/>
+         <body>
+           <![CDATA[
+             for (var i = 0; i < this.tabs.length; ++i)
+               if (this.tabs[i] == aTab)
+                 return i;
+ 
+diff --git a/suite/common/permissions/permissionsManager.js b/suite/common/permissions/permissionsManager.js
+--- a/suite/common/permissions/permissionsManager.js
++++ b/suite/common/permissions/permissionsManager.js
+@@ -48,29 +48,36 @@ function Startup() {
+                                 .getService(nsIPermissionManager);
+ 
+   permissionsTree = document.getElementById("permissionsTree");
+ 
+   permissionsBundle = document.getElementById("permissionsBundle");
+ 
+   sortAscending = (permissionsTree.getAttribute("sortAscending") == "true");
+   sortColumn = permissionsTree.getAttribute("sortColumn");
++  
++  var params = { blockVisible   : true,
++                 sessionVisible : true,
++                 allowVisible   : true,
++                 manageCapability : true
++               };
+ 
+   if (window.arguments && window.arguments[0]) {
+-    var params = window.arguments[0];
+-    document.getElementById("btnBlock").hidden = !params.blockVisible;
+-    document.getElementById("btnSession").hidden = !params.sessionVisible;
+-    document.getElementById("btnAllow").hidden = !params.allowVisible;
++    params = window.arguments[0];
+     setHost(params.prefilledHost);
+     permissionType = params.permissionType;
+     gManageCapability = params.manageCapability;
+     introText = params.introText;
+     windowTitle = params.windowTitle;
+   }
+ 
++  document.getElementById("btnBlock").hidden = !params.blockVisible;
++  document.getElementById("btnSession").hidden = !params.sessionVisible;
++  document.getElementById("btnAllow").hidden = !params.allowVisible;
++
+   document.getElementById("permissionsText").textContent = introText ||
+       permissionsBundle.getString(permissionType + "permissionstext");
+ 
+   document.title = windowTitle ||
+       permissionsBundle.getString(permissionType + "permissionstitle");
+ 
+   var dialogElement = document.getElementById("permissionsManager");
+   dialogElement.setAttribute("windowtype", "permissions-" + permissionType);
+@@ -94,18 +101,19 @@ function onAccept() {
+ 
+   return true;
+ }
+ 
+ function setHost(aHost) {
+   document.getElementById("url").value = aHost;
+ }
+ 
+-function Permission(id, host, rawHost, type, capability, perm) {
++function Permission(id, principal, host, rawHost, type, capability, perm) {
+   this.id = id;
++  this.principal = principal;
+   this.host = host;
+   this.rawHost = rawHost;
+   this.type = type;
+   this.capability = capability;
+   this.perm = perm;
+ }
+ 
+ function handleHostInput(aSiteField) {
+@@ -131,17 +139,17 @@ function loadPermissions() {
+   var count = 0;
+   var permission;
+ 
+   try {
+     while (enumerator.hasMoreElements()) {
+       permission = enumerator.getNext().QueryInterface(Components.interfaces.nsIPermission);
+       if (permission.type == permissionType &&
+           (!gManageCapability || permission.capability == gManageCapability))
+-        permissionPush(count++, permission.host, permission.type,
++        permissionPush(count++, permission.principal, permission.principal.URI.host, permission.type,
+                        capabilityString(permission.capability), permission.capability);
+     }
+   } catch(ex) {
+   }
+ 
+   permissionsTreeView.rowCount = additions.length;
+ 
+   // sort and display the table
+@@ -166,19 +174,19 @@ function capabilityString(aCapability) {
+       capability = "canSession";
+       break;
+     default:
+       break;
+   }
+   return permissionsBundle.getString(capability);
+ }
+ 
+-function permissionPush(aId, aHost, aType, aString, aCapability) {
+-  var rawHost = (aHost.charAt(0) == ".") ? aHost.substring(1, aHost.length) : aHost;
+-  var p = new Permission(aId, aHost, rawHost, aType, aString, aCapability);
++function permissionPush(aId, aPrincipal, aHost, aType, aString, aCapability) {
++  var rawHost = aHost.replace(/^\./, "");
++  var p = new Permission(aId, aPrincipal, aHost, rawHost, aType, aString, aCapability);
+   additions.push(p);
+ }
+ 
+ function permissionColumnSort(aColumn, aUpdateSelection) {
+   sortAscending =
+     SortTree(permissionsTree, permissionsTreeView, additions,
+              aColumn, sortColumn, sortAscending, aUpdateSelection);
+   sortColumn = aColumn;
+@@ -202,19 +210,21 @@ function deleteAllPermissions() {
+ }
+ 
+ function finalizeChanges() {
+   var ioService = Components.classes["@mozilla.org/network/io-service;1"]
+                             .getService(Components.interfaces.nsIIOService);
+   var i, p;
+ 
+   for (i in removals) {
+-    p = removals[i];
+     try {
+-      permissionManager.remove(p.host, p.type);
++      // principal is not null so not a permission we just added in this session
++      if (removals[i].principal) {
++        permissionManager.removeFromPrincipal(removals[i].principal, removals[i].type);
++      }
+     } catch(ex) {
+     }
+   }
+ 
+   for (i in additions) {
+     p = additions[i];
+     try {
+       var uri = ioService.newURI("http://" + p.host, null, null);
+@@ -262,17 +272,17 @@ function addPermission(aPermission) {
+       // the same. Otherwise allow the call to the permissions manager to
+       // update the listbox for us.
+       exists = additions[i].perm == aPermission;
+       break;
+     }
+   }
+ 
+   if (!exists) {
+-    permissionPush(additions.length, host, permissionType, stringCapability, aPermission);
++    permissionPush(additions.length, null, host, permissionType, stringCapability, aPermission);
+ 
+     permissionsTreeView.rowCount = additions.length;
+     permissionsTree.treeBoxObject.rowCountChanged(additions.length - 1, 1);
+     permissionsTree.treeBoxObject.ensureRowIsVisible(additions.length - 1);
+   }
+   textbox.value = "";
+   textbox.focus();
+ 
+diff --git a/suite/common/places/tests/chrome/test_bug549192.xul b/suite/common/places/tests/chrome/test_bug549192.xul
+--- a/suite/common/places/tests/chrome/test_bug549192.xul
++++ b/suite/common/places/tests/chrome/test_bug549192.xul
+@@ -13,18 +13,16 @@
+ <?xml-stylesheet href="chrome://communicator/skin/places/places.css"?>
+ <?xul-overlay href="chrome://communicator/content/bookmarks/placesOverlay.xul"?>
+ 
+ <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+         title="549192:  History view not updated after deleting entry"
+         onload="runTest();">
+ 
+   <script type="application/javascript"
+-          src="chrome://mochikit/content/MochiKit/packed.js" />
+-  <script type="application/javascript"
+           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
+   <script type="application/javascript" src="head.js" />
+ 
+   <body xmlns="http://www.w3.org/1999/xhtml" />
+ 
+   <tree id="tree"
+         type="places"
+         flatList="true"
+@@ -32,91 +30,84 @@
+     <treecols>
+       <treecol label="Title" id="title" anonid="title" primary="true" ordinal="1" flex="1"/>
+     </treecols>
+     <treechildren flex="1"/>
+   </tree>
+ 
+   <script type="application/javascript"><![CDATA[
+     /**
++     * Bug 874407
++     * Ensures that history views are updated properly after visits.
+      * Bug 549192
+-     * https://bugzilla.mozilla.org/show_bug.cgi?id=549192
+-     *
+      * Ensures that history views are updated after deleting entries.
+      */
+-      Components.utils.import("resource://gre/modules/Services.jsm");
+-      const Cc = Components.classes;
+-      const Ci = Components.interfaces;
+-
+-    SimpleTest.waitForExplicitFinish();
+ 
+     function runTest() {
+-      // The mochitest page is added to history.
+-      waitForClearHistory(continue_test);
+-    }
++      SimpleTest.waitForExplicitFinish();
++
++      Task.spawn(function* () {
++        yield PlacesTestUtils.clearHistory();
+ 
+-    function continue_test() {
+-
+-      // Add some visits.
+-      let vtime = Date.now() * 1000;
+-      const ttype = PlacesUtils.history.TRANSITION_TYPED;
++        // Add some visits.
++        let vtime = Date.now() * 1000;
++        const ttype = PlacesUtils.history.TRANSITION_TYPED;
++        let places =
++          [{ uri: Services.io.newURI("http://example.tld/", null, null),
++             visitDate: ++vtime, transition: ttype },
++           { uri: Services.io.newURI("http://example2.tld/", null, null),
++             visitDate: ++vtime, transition: ttype },
++           { uri: Services.io.newURI("http://example3.tld/", null, null),
++             visitDate: ++vtime, transition: ttype }];
+ 
+-      addVisits(
+-        [{ uri: Services.io.newURI("http://example.tld/", null, null),
+-           visitDate: vtime, transition: ttype },
+-         { uri: Services.io.newURI("http://example2.tld/", null, null),
+-           visitDate: vtime++, transition: ttype },
+-         { uri: Services.io.newURI("http://example3.tld/", null, null),
+-           visitDate: vtime++, transition: ttype }],
+-         function() {
+-           // Make a history query.
+-           let query = PlacesUtils.history.getNewQuery();
+-           let opts = PlacesUtils.history.getNewQueryOptions();
+-           let queryURI = PlacesUtils.history.queriesToQueryString([query], 1, opts);
++        yield PlacesTestUtils.addVisits(places);
++
++        // Make a history query.
++        let query = PlacesUtils.history.getNewQuery();
++        let opts = PlacesUtils.history.getNewQueryOptions();
++        opts.sortingMode = opts.SORT_BY_DATE_DESCENDING;
++        let queryURI = PlacesUtils.history.queriesToQueryString([query], 1, opts);
+ 
+-           // Setup the places tree contents.
+-           var tree = document.getElementById("tree");
+-           tree.place = queryURI;
++        // Setup the places tree contents.
++        var tree = document.getElementById("tree");
++        tree.place = queryURI;
++
++        // loop through the rows and check them.
++        let treeView = tree.view;
++        let selection = treeView.selection;
++        let rc = treeView.rowCount;
+ 
+-          // loop through the rows and check formatting
+-          let treeView = tree.view;
+-          for (let i = 0; i < rc; i++) {
+-            selection.select(rc);
+-            let node = tree.selectedNode;
+-            ok(true, "found " + node.title);
+-          }
+-          let rc = treeView.rowCount;
+-          is(rc, 3, "Rows found.");
+-          let selection = treeView.selection;
+-          for (let i = 0; i < rc; i++) {
+-            selection.select(0);
+-            let node = tree.selectedNode;
+-            tree.controller.remove("Removing page");
+-            ok(treeView.treeIndexForNode(node) == Ci.nsINavHistoryResultTreeViewer.INDEX_INVISIBLE,
+-              node.uri + " removed.");
+-            ok(treeView.rowCount == rc - i - 1, "Rows count decreased");
+-          }
++        for (let i = 0; i < rc; i++) {
++          selection.select(i);
++          let node = tree.selectedNode;
++          is(node.uri, places[rc - i - 1].uri.spec,
++             "Found expected node at position " + i + ".");
++        }
++
++        is(rc, 3, "Found expected number of rows.");
++
++        // First check live-update of the view when adding visits.
++        places.forEach(place => place.visitDate = ++vtime);
++        yield PlacesTestUtils.addVisits(places);
+ 
+-          // Cleanup.
+-          waitForClearHistory(SimpleTest.finish);
++        for (let i = 0; i < rc; i++) {
++          selection.select(i);
++          let node = tree.selectedNode;
++          is(node.uri, places[rc - i - 1].uri.spec,
++             "Found expected node at position " + i + ".");
+         }
+-      );
+-    }
+ 
+-    /**
+-     * Clears history invoking callback when done.
+-     */
+-    function waitForClearHistory(aCallback) {
+-      const TOPIC_EXPIRATION_FINISHED = "places-expiration-finished";
+-      let observer = {
+-        observe: function(aSubject, aTopic, aData) {
+-          Services.obs.removeObserver(this, TOPIC_EXPIRATION_FINISHED);
+-          aCallback();
++        // Now remove the pages and verify live-update again.
++        for (let i = 0; i < rc; i++) {
++          selection.select(0);
++          let node = tree.selectedNode;
++          tree.controller.remove("Removing page");
++          ok(treeView.treeIndexForNode(node) == Ci.nsINavHistoryResultTreeViewer.INDEX_INVISIBLE,
++            node.uri + " removed.");
++          ok(treeView.rowCount == rc - i - 1, "Rows count decreased");
+         }
+-      };
+-      Services.obs.addObserver(observer, TOPIC_EXPIRATION_FINISHED, false);
+-      let hs = Cc["@mozilla.org/browser/nav-history-service;1"].
+-               getService(Ci.nsINavHistoryService);
+-      hs.QueryInterface(Ci.nsIBrowserHistory).removeAllPages();
+-   }
+ 
++        // Cleanup.
++        yield PlacesTestUtils.clearHistory();
++      }).then(() => SimpleTest.finish());
++    }
+   ]]></script>
+ </window>
+diff --git a/suite/common/places/tests/chrome/test_bug549491.xul b/suite/common/places/tests/chrome/test_bug549491.xul
+--- a/suite/common/places/tests/chrome/test_bug549491.xul
++++ b/suite/common/places/tests/chrome/test_bug549491.xul
+@@ -13,18 +13,16 @@
+ <?xml-stylesheet href="chrome://communicator/skin/places/places.css"?>
+ <?xul-overlay href="chrome://communicator/content/bookmarks/placesOverlay.xul"?>
+ 
+ <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+         title="549491: 'The root node is never visible' exception when details of the root node are modified "
+         onload="runTest();">
+ 
+   <script type="application/javascript"
+-          src="chrome://mochikit/content/MochiKit/packed.js" />
+-  <script type="application/javascript"
+           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
+   <script type="application/javascript" src="head.js" />
+ 
+   <body xmlns="http://www.w3.org/1999/xhtml" />
+ 
+   <tree id="tree"
+         type="places"
+         flatList="true"
+@@ -40,64 +38,41 @@
+   <script type="application/javascript"><![CDATA[
+     /**
+      * Bug 549491
+      * https://bugzilla.mozilla.org/show_bug.cgi?id=549491
+      *
+      * Ensures that changing the details of places tree's root-node doesn't
+      * throw.
+      */
+-      Components.utils.import("resource://gre/modules/Services.jsm");
+-      const Cc = Components.classes;
+-      const Ci = Components.interfaces;
+-
+-    SimpleTest.waitForExplicitFinish();
+ 
+     function runTest() {
+-      // The mochitest page is added to history.
+-      waitForClearHistory(continue_test);
+-    }
++      SimpleTest.waitForExplicitFinish();
++
++      Task.spawn(function* () {
++        yield PlacesTestUtils.clearHistory();
+ 
+-    function continue_test() {
+-      addVisits(
+-        {uri: Services.io.newURI("http://example.tld/", null, null),
+-         visitDate: Date.now() * 1000,
+-         transition: PlacesUtils.history.TRANSITION_TYPED},
+-        function() {
+-          // Make a history query.
+-          let query = PlacesUtils.history.getNewQuery();
+-          let opts = PlacesUtils.history.getNewQueryOptions();
+-          let queryURI = PlacesUtils.history.queriesToQueryString([query], 1, opts);
++        yield PlacesTestUtils.addVisits({
++          uri: Services.io.newURI("http://example.tld/", null, null),
++          transition: PlacesUtils.history.TRANSITION_TYPED
++        });
+ 
+-          // Setup the places tree contents.
+-          let tree = document.getElementById("tree");
+-          tree.place = queryURI;
++        // Make a history query.
++        let query = PlacesUtils.history.getNewQuery();
++        let opts = PlacesUtils.history.getNewQueryOptions();
++        let queryURI = PlacesUtils.history.queriesToQueryString([query], 1, opts);
+ 
+-          let rootNode = tree.result.root;
+-          let obs = tree.view.QueryInterface(Ci.nsINavHistoryResultObserver);
+-          obs.nodeHistoryDetailsChanged(rootNode, rootNode.time, rootNode.accessCount);
+-          obs.nodeTitleChanged(rootNode, rootNode.title);
+-          ok(true, "No exceptions thrown");
+-
+-          // Cleanup.
+-          waitForClearHistory(SimpleTest.finish);
+-        });
+-    }
++        // Setup the places tree contents.
++        let tree = document.getElementById("tree");
++        tree.place = queryURI;
+ 
+-    /**
+-     * Clears history invoking callback when done.
+-     */
+-    function waitForClearHistory(aCallback) {
+-      const TOPIC_EXPIRATION_FINISHED = "places-expiration-finished";
+-      let observer = {
+-        observe: function(aSubject, aTopic, aData) {
+-          Services.obs.removeObserver(this, TOPIC_EXPIRATION_FINISHED);
+-          aCallback();
+-        }
+-      };
+-      Services.obs.addObserver(observer, TOPIC_EXPIRATION_FINISHED, false);
+-      let hs = Cc["@mozilla.org/browser/nav-history-service;1"].
+-               getService(Ci.nsINavHistoryService);
+-      hs.QueryInterface(Ci.nsIBrowserHistory).removeAllPages();
+-   }
++        let rootNode = tree.result.root;
++        let obs = tree.view.QueryInterface(Ci.nsINavHistoryResultObserver);
++        obs.nodeHistoryDetailsChanged(rootNode, rootNode.time, rootNode.accessCount);
++        obs.nodeTitleChanged(rootNode, rootNode.title);
++        ok(true, "No exceptions thrown");
+ 
++        // Cleanup.
++        yield PlacesTestUtils.clearHistory();
++      }).then(SimpleTest.finish);
++    }
+   ]]></script>
+ </window>
+diff --git a/suite/common/places/tests/chrome/test_treeview_date.xul b/suite/common/places/tests/chrome/test_treeview_date.xul
+--- a/suite/common/places/tests/chrome/test_treeview_date.xul
++++ b/suite/common/places/tests/chrome/test_treeview_date.xul
+@@ -12,18 +12,16 @@
+ <?xml-stylesheet href="chrome://communicator/skin/places/places.css"?>
+ <?xul-overlay href="chrome://communicator/content/bookmarks/placesOverlay.xul"?>
+ 
+ <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+         title="435322: Places tree view's formatting"
+         onload="runTest();">
+ 
+   <script type="application/javascript"
+-          src="chrome://mochikit/content/MochiKit/packed.js" />
+-  <script type="application/javascript"
+           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
+   <script type="application/javascript" src="head.js" />
+ 
+   <body xmlns="http://www.w3.org/1999/xhtml" />
+ 
+   <tree id="tree"
+         type="places"
+         flatList="true"
+@@ -46,149 +44,121 @@
+   <![CDATA[
+ 
+     /**
+      * Bug 435322
+      * https://bugzilla.mozilla.org/show_bug.cgi?id=435322
+      *
+      * Ensures that date in places treeviews is correctly formatted.
+      */
+-      Components.utils.import("resource://gre/modules/Services.jsm");
+-      const Cc = Components.classes;
+-      const Ci = Components.interfaces;
+-
+-    SimpleTest.waitForExplicitFinish();
+ 
+     function runTest() {
+-      // The mochitest page is added to history.
+-      waitForClearHistory(continue_test);
+-    }
+-
+-    function continue_test() {
++      SimpleTest.waitForExplicitFinish();
+ 
+-      var hs = Cc["@mozilla.org/browser/nav-history-service;1"].
+-               getService(Ci.nsINavHistoryService);
+-      var bh = hs.QueryInterface(Ci.nsIBrowserHistory);
+-      var bs = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].
+-               getService(Ci.nsINavBookmarksService);
+-      var ds = Cc["@mozilla.org/intl/scriptabledateformat;1"].
++      let ds = Cc["@mozilla.org/intl/scriptabledateformat;1"].
+                getService(Ci.nsIScriptableDateFormat);
+ 
+-      var iosvc = Cc["@mozilla.org/network/io-service;1"].
+-                  getService(Ci.nsIIOService);
+       function uri(spec) {
+-        return iosvc.newURI(spec, null, null);
++        return Services.io.newURI(spec, null, null);
+       }
+ 
+-      var midnight = new Date();
+-      midnight.setHours(0);
+-      midnight.setMinutes(0);
+-      midnight.setSeconds(0);
+-      midnight.setMilliseconds(0);
++      Task.spawn(function* () {
++        yield PlacesTestUtils.clearHistory();
++
++        let midnight = new Date();
++        midnight.setHours(0);
++        midnight.setMinutes(0);
++        midnight.setSeconds(0);
++        midnight.setMilliseconds(0);
+ 
+-      function addVisitsCallback() {
++        // Add a visit 1ms before midnight, a visit at midnight, and
++        // a visit 1ms after midnight.
++        yield PlacesTestUtils.addVisits([
++          {uri: uri("http://before.midnight.com/"),
++           visitDate: (midnight.getTime() - 1) * 1000,
++           transition: PlacesUtils.history.TRANSITION_TYPED},
++          {uri: uri("http://at.midnight.com/"),
++           visitDate: (midnight.getTime()) * 1000,
++           transition: PlacesUtils.history.TRANSITION_TYPED},
++          {uri: uri("http://after.midnight.com/"),
++           visitDate: (midnight.getTime() + 1) * 1000,
++           transition: PlacesUtils.history.TRANSITION_TYPED}
++        ]);
++
+         // add a bookmark to the midnight visit
+-        var itemId = bs.insertBookmark(bs.toolbarFolder,
+-                                       uri("http://at.midnight.com/"),
+-                                       bs.DEFAULT_INDEX,
+-                                       "A bookmark at midnight");
++        let bm = yield PlacesUtils.bookmarks.insert({
++          parentGuid: PlacesUtils.bookmarks.toolbarGuid,
++          index: PlacesUtils.bookmarks.DEFAULT_INDEX,
++          url: "http://at.midnight.com/",
++          title: "A bookmark at midnight",
++          type: PlacesUtils.bookmarks.TYPE_BOOKMARK
++        });
++
+         // Make a history query.
+-        var query = hs.getNewQuery();
+-        var opts = hs.getNewQueryOptions();
+-        var queryURI = hs.queriesToQueryString([query], 1, opts);
++        let query = PlacesUtils.history.getNewQuery();
++        let opts = PlacesUtils.history.getNewQueryOptions();
++        let queryURI = PlacesUtils.history.queriesToQueryString([query], 1, opts);
+ 
+         // Setup the places tree contents.
+-        var tree = document.getElementById("tree");
++        let tree = document.getElementById("tree");
+         tree.place = queryURI;
+ 
+         // loop through the rows and check formatting
+-        var treeView = tree.view;
+-        var rc = treeView.rowCount;
++        let treeView = tree.view;
++        let rc = treeView.rowCount;
+         ok(rc >= 3, "Rows found");
+-        var columns = tree.columns;
++        let columns = tree.columns;
+         ok(columns.count > 0, "Columns found");
+-        for (var r = 0; r < rc; r++) {
+-          var node = treeView.nodeForTreeIndex(r);
++        for (let r = 0; r < rc; r++) {
++          let node = treeView.nodeForTreeIndex(r);
+           ok(node, "Places node found");
+-          for (var ci = 0; ci < columns.count; ci++) {
+-            var c = columns.getColumnAt(ci);
+-            var text = treeView.getCellText(r, c);
++          for (let ci = 0; ci < columns.count; ci++) {
++            let c = columns.getColumnAt(ci);
++            let text = treeView.getCellText(r, c);
+             switch (c.element.getAttribute("anonid")) {
+               case "title":
+                 // The title can differ, we did not set any title so we would
+                 // expect null, but in such a case the view will generate a title
+                 // through PlacesUIUtils.getBestTitle.
+                 if (node.title)
+                   is(text, node.title, "Title is correct");
+                 break;
+               case "url":
+                 is(text, node.uri, "Uri is correct");
+                 break;
+               case "date":
+-                var timeObj = new Date(node.time / 1000);
++                let timeObj = new Date(node.time / 1000);
+                 // Default is short date format.
+-                var dateFormat = Ci.nsIScriptableDateFormat.dateFormatShort;
++                let dateFormat = Ci.nsIScriptableDateFormat.dateFormatShort;
+                 // For today's visits we don't show date portion.
+                 if (node.uri == "http://at.midnight.com/" ||
+                     node.uri == "http://after.midnight.com/")
+                   dateFormat = Ci.nsIScriptableDateFormat.dateFormatNone;
+                 else if (node.uri == "http://before.midnight.com/")
+                   dateFormat = Ci.nsIScriptableDateFormat.dateFormatShort;
+                 else {
+                   // Avoid to test spurious uris, due to how the test works
+                   // a redirecting uri could be put in the tree while we test.
+                   break;
+                 }
+-                var timeStr = ds.FormatDateTime("", dateFormat,
++                let timeStr = ds.FormatDateTime("", dateFormat,
+                       Ci.nsIScriptableDateFormat.timeFormatNoSeconds,
+                       timeObj.getFullYear(), timeObj.getMonth() + 1,
+                       timeObj.getDate(), timeObj.getHours(),
+                       timeObj.getMinutes(), timeObj.getSeconds())
+ 
+                 is(text, timeStr, "Date format is correct");
+                 break;
+               case "visitCount":
+                 is(text, 1, "Visit count is correct");
+                 break;
+             }
+           }
+         }
++
+         // Cleanup.
+-        bs.removeItem(itemId);
+-        waitForClearHistory(SimpleTest.finish);
+-      }
+-
+-      // Add a visit 1ms before midnight, a visit at midnight, and a visit 1ms
+-      // after midnight.
+-      addVisits(
+-        [{uri: uri("http://before.midnight.com/"),
+-          visitDate: (midnight.getTime() - 1) * 1000,
+-          transition: hs.TRANSITION_TYPED},
+-         {uri: uri("http://at.midnight.com/"),
+-          visitDate: (midnight.getTime()) * 1000,
+-          transition: hs.TRANSITION_TYPED},
+-         {uri: uri("http://after.midnight.com/"),
+-          visitDate: (midnight.getTime() + 1) * 1000,
+-          transition: hs.TRANSITION_TYPED}],
+-       addVisitsCallback);
+-
++        yield PlacesUtils.bookmarks.remove(bm.guid);
++        yield PlacesTestUtils.clearHistory();
++      }).then(SimpleTest.finish);
+     }
+-
+-    /**
+-     * Clears history invoking callback when done.
+-     */
+-    function waitForClearHistory(aCallback) {
+-      const TOPIC_EXPIRATION_FINISHED = "places-expiration-finished";
+-      let observer = {
+-        observe: function(aSubject, aTopic, aData) {
+-          Services.obs.removeObserver(this, TOPIC_EXPIRATION_FINISHED);
+-          aCallback();
+-        }
+-      };
+-      Services.obs.addObserver(observer, TOPIC_EXPIRATION_FINISHED, false);
+-      let hs = Cc["@mozilla.org/browser/nav-history-service;1"].
+-               getService(Ci.nsINavHistoryService);
+-      hs.QueryInterface(Ci.nsIBrowserHistory).removeAllPages();
+-   }
+-
+   ]]>
+   </script>
+ </window>
+diff --git a/suite/common/src/nsSuiteGlue.js b/suite/common/src/nsSuiteGlue.js
+--- a/suite/common/src/nsSuiteGlue.js
++++ b/suite/common/src/nsSuiteGlue.js
+@@ -33,16 +33,19 @@ XPCOMUtils.defineLazyModuleGetter(this, 
+                                   "resource://gre/modules/BookmarkHTMLUtils.jsm");
+ 
+ XPCOMUtils.defineLazyModuleGetter(this, "BookmarkJSONUtils",
+                                   "resource://gre/modules/BookmarkJSONUtils.jsm");
+ 
+ XPCOMUtils.defineLazyModuleGetter(this, "Task",
+                                   "resource://gre/modules/Task.jsm");
+ 
++XPCOMUtils.defineLazyModuleGetter(this, "RecentWindow",
++                                  "resource:///modules/RecentWindow.jsm");
++
+ XPCOMUtils.defineLazyGetter(this, "DebuggerServer", () => {
+   var tmp = {};
+   Components.utils.import("resource://devtools/shared/Loader.jsm", tmp);
+   return tmp.require("devtools/server/main").DebuggerServer;
+ });
+ 
+ // We try to backup bookmarks at idle times, to avoid doing that at shutdown.
+ // Number of idle seconds before trying to backup bookmarks.  15 minutes.
+diff --git a/suite/confvars.sh b/suite/confvars.sh
+--- a/suite/confvars.sh
++++ b/suite/confvars.sh
+@@ -43,8 +43,10 @@ MOZ_SEPARATE_MANIFEST_FOR_THEME_OVERRIDE
+ 
+ if test "$OS_ARCH" = "WINNT" -o \
+         "$OS_ARCH" = "Linux"; then
+   MOZ_BUNDLED_FONTS=1
+ fi
+ 
+ # Include the DevTools client, not just the server (which is the default)
+ MOZ_DEVTOOLS=all
++# Include Lightning
++MOZ_CALENDAR=1
+diff --git a/suite/installer/package-manifest.in b/suite/installer/package-manifest.in
+--- a/suite/installer/package-manifest.in
++++ b/suite/installer/package-manifest.in
+@@ -369,16 +369,18 @@
+ @RESPATH@/components/addonManager.js
+ @RESPATH@/components/amContentHandler.js
+ @RESPATH@/components/amInstallTrigger.js
+ @RESPATH@/components/amWebInstallListener.js
+ @RESPATH@/components/AppsService.js
+ @RESPATH@/components/AppsService.manifest
+ @RESPATH@/components/BrowserElementParent.js
+ @RESPATH@/components/BrowserElementParent.manifest
++@RESPATH@/components/BrowserElementProxy.manifest
++@RESPATH@/components/BrowserElementProxy.js
+ @RESPATH@/components/captivedetect.js
+ @RESPATH@/components/CaptivePortalDetectComponents.manifest
+ @RESPATH@/components/ColorAnalyzer.js
+ @RESPATH@/components/ConsoleAPIStorage.js
+ @RESPATH@/components/ConsoleAPI.manifest
+ @RESPATH@/components/contentAreaDropListener.js
+ @RESPATH@/components/contentAreaDropListener.manifest
+ @RESPATH@/components/crypto-SDR.js
+@@ -896,17 +898,17 @@ bin/libfreebl_32int64_3.so
+ ; Address Sanitizer
+ #if defined(CLANG_CXX)
+ #if defined(MOZ_ASAN) || defined(MOZ_TSAN)
+ @BINPATH@/llvm-symbolizer
+ #endif
+ #endif
+ 
+ #if defined(MOZ_ASAN) && defined(CLANG_CL)
+-@BINPATH@/clang_rt.asan_dynamic-i386.dll
++@BINPATH@/clang_rt.asan_dynamic-*.dll
+ #endif
+ 
+ [chatzilla]
+ #ifdef MOZ_OMNIJAR
+ @RESPATH@/distribution/extensions/{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}.xpi
+ #else
+ @RESPATH@/extensions/{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}/chrome/chatzilla@JAREXT@
+ #ifdef MOZ_GTK
+diff --git a/suite/modules/RecentWindow.jsm b/suite/modules/RecentWindow.jsm
+new file mode 100644
+--- /dev/null
++++ b/suite/modules/RecentWindow.jsm
+@@ -0,0 +1,66 @@
++/* 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 = ["RecentWindow"];
++
++Components.utils.import("resource://gre/modules/AppConstants.jsm");
++Components.utils.import("resource://gre/modules/Services.jsm");
++Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
++
++this.RecentWindow = {
++  /*
++   * Get the most recent browser window.
++   *
++   * @param aOptions an object accepting the arguments for the search.
++   *        * private: true to restrict the search to private windows
++   *            only, false to restrict the search to non-private only.
++   *            Omit the property to search in both groups.
++   *        * allowPopups: true if popup windows are permissable.
++   */
++  getMostRecentBrowserWindow: function RW_getMostRecentBrowserWindow(aOptions) {
++    let checkPrivacy = typeof aOptions == "object" &&
++                       "private" in aOptions;
++
++    let allowPopups = typeof aOptions == "object" && !!aOptions.allowPopups;
++
++    function isSuitableBrowserWindow(win) {
++      return (!win.closed &&
++              (allowPopups || win.toolbar.visible) &&
++              (!checkPrivacy ||
++               PrivateBrowsingUtils.permanentPrivateBrowsing ||
++               PrivateBrowsingUtils.isWindowPrivate(win) == aOptions.private));
++    }
++
++    let broken_wm_z_order =
++      AppConstants.platform != "macosx" && AppConstants.platform != "win";
++
++    if (broken_wm_z_order) {
++      let win = Services.wm.getMostRecentWindow("navigator:browser");
++
++      // if we're lucky, this isn't a popup, and we can just return this
++      if (win && !isSuitableBrowserWindow(win)) {
++        win = null;
++        let windowList = Services.wm.getEnumerator("navigator:browser");
++        // this is oldest to newest, so this gets a bit ugly
++        while (windowList.hasMoreElements()) {
++          let nextWin = windowList.getNext();
++          if (isSuitableBrowserWindow(nextWin))
++            win = nextWin;
++        }
++      }
++      return win;
++    } else {
++      let windowList = Services.wm.getZOrderDOMWindowEnumerator("navigator:browser", true);
++      while (windowList.hasMoreElements()) {
++        let win = windowList.getNext();
++        if (isSuitableBrowserWindow(win))
++          return win;
++      }
++      return null;
++    }
++  }
++};
++
+diff --git a/suite/modules/moz.build b/suite/modules/moz.build
+--- a/suite/modules/moz.build
++++ b/suite/modules/moz.build
+@@ -2,15 +2,16 @@
+ # 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/.
+ 
+ XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
+ 
+ EXTRA_JS_MODULES += [
+     'PlacesUIUtils.jsm',
++    'RecentWindow.jsm',
+     'Sanitizer.jsm',
+     'WindowsPreviewPerTab.jsm',
+ ]
+ 
+ if CONFIG['OS_ARCH'] == 'WINNT':
+     EXTRA_JS_MODULES += ['WindowsJumpLists.jsm']
+ 
+diff --git a/suite/themes/classic/communicator/icons/connecting.png b/suite/themes/classic/communicator/icons/connecting.png
+new file mode 100644
+index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3614dd529915f5524a540a008dc6c15025736f94
+GIT binary patch
+literal 15439
+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
+AZ~y=R
+
+diff --git a/suite/themes/classic/communicator/icons/connecting@2x.png b/suite/themes/classic/communicator/icons/connecting@2x.png
+new file mode 100644
+index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f998f4661eb5548023cd0a545de1f9a6b116f4a8
+GIT binary patch
+literal 27884
+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
+
+diff --git a/suite/themes/classic/jar.mn b/suite/themes/classic/jar.mn
+--- a/suite/themes/classic/jar.mn
++++ b/suite/themes/classic/jar.mn
+@@ -145,16 +145,17 @@ classic.jar:
+   skin/classic/communicator/sidebar/sbtab-twisty.gif                    (communicator/sidebar/sbtab-twisty.gif)
+   skin/classic/communicator/sidebar/sbtab-twisty-open.gif               (communicator/sidebar/sbtab-twisty-open.gif)
+   skin/classic/communicator/sidebar/customize.css                       (communicator/sidebar/customize.css)
+   skin/classic/communicator/sidebar/preview.css                         (communicator/sidebar/preview.css)
+   skin/classic/communicator/sidebar/sidebarBindings.xml                 (communicator/sidebar/sidebarBindings.xml)
+   skin/classic/communicator/sidebar/sidebarListView.css                 (communicator/sidebar/sidebarListView.css)
+   skin/classic/communicator/xpinstall/xpinstall.css                     (communicator/xpinstall/xpinstall.css)
+   skin/classic/communicator/icons/audioFeedIcon.png                     (communicator/icons/feedIcon.png)
++  skin/classic/communicator/icons/connecting.png                        (communicator/icons/connecting.png)
+   skin/classic/communicator/icons/closeFullScreenVideo.png              (communicator/icons/closeFullScreenVideo.png)
+   skin/classic/communicator/icons/close-button.gif                      (communicator/icons/close-button.gif)
+   skin/classic/communicator/icons/offline.png                           (communicator/icons/offline.png)
+   skin/classic/communicator/icons/online.png                            (communicator/icons/online.png)
+   skin/classic/communicator/icons/search.png                            (communicator/icons/search.png)
+   skin/classic/communicator/icons/identity.png                          (communicator/icons/identity.png)
+   skin/classic/communicator/icons/lock-broken.png                       (communicator/icons/lock-broken.png)
+   skin/classic/communicator/icons/lock-broken-16.png                    (communicator/icons/lock-broken-16.png)
+diff --git a/suite/themes/classic/navigator/tabbrowser.css b/suite/themes/classic/navigator/tabbrowser.css
+--- a/suite/themes/classic/navigator/tabbrowser.css
++++ b/suite/themes/classic/navigator/tabbrowser.css
+@@ -38,17 +38,21 @@ tabpanels {
+ .tabbrowser-tab {
+   list-style-image: url("chrome://communicator/skin/bookmarks/bookmark-item.png");
+   padding: 0px 2px 2px;
+   margin-bottom: 1px;
+   border-bottom: none;
+ }
+ 
+ .tabbrowser-tab[busy] {
+-  list-style-image: url("chrome://communicator/skin/icons/loading.gif");
++  list-style-image: url("chrome://communicator/skin/icons/connecting.png");
++}
++
++.tabbrowser-tab[progress] {
++  list-style-image: url("chrome://global/skin/icons/loading.png");
+ }
+ 
+ .tabbrowser-tab[selected="true"] {
+   margin-bottom: 0px;
+   padding-top: 2px; /* compensates the top margin of background tabs */
+   padding-bottom: 3px; /* compensates the bottom margin of background tabs */
+   background-color: -moz-dialog;
+   -moz-border-top-colors: unset;
+diff --git a/suite/themes/modern/communicator/icons/connecting.png b/suite/themes/modern/communicator/icons/connecting.png
+new file mode 100644
+index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3614dd529915f5524a540a008dc6c15025736f94
+GIT binary patch
+literal 15439
+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
+AZ~y=R
+
+diff --git a/suite/themes/modern/communicator/icons/connecting@2x.png b/suite/themes/modern/communicator/icons/connecting@2x.png
+new file mode 100644
+index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f998f4661eb5548023cd0a545de1f9a6b116f4a8
+GIT binary patch
+literal 27884
+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
+
+diff --git a/suite/themes/modern/jar.mn b/suite/themes/modern/jar.mn
+--- a/suite/themes/modern/jar.mn
++++ b/suite/themes/modern/jar.mn
+@@ -74,23 +74,25 @@ modern.jar:
+   skin/modern/communicator/history/calendar.png                    (communicator/history/calendar.png)
+   skin/modern/communicator/icons/alwaysAsk.png                     (communicator/icons/alwaysAsk.png)
+   skin/modern/communicator/icons/application.png                   (communicator/icons/application.png)
+   skin/modern/communicator/icons/audioFeedIcon.png                 (communicator/icons/feedIcon.png)
+   skin/modern/communicator/icons/closeFullScreenVideo.png          (communicator/icons/closeFullScreenVideo.png)
+   skin/modern/communicator/icons/btn1.gif                          (communicator/icons/btn1.gif)
+   skin/modern/communicator/icons/common.png                        (communicator/icons/common.png)
+   skin/modern/communicator/icons/common-small.png                  (communicator/icons/common-small.png)
++  skin/modern/communicator/icons/connecting.png                    (communicator/icons/connecting.png)
+   skin/modern/communicator/icons/feedIcon.png                      (communicator/icons/feedIcon.png)
+   skin/modern/communicator/icons/feedIcon16.png                    (communicator/icons/feedIcon16.png)
+   skin/modern/communicator/icons/geo.png                           (communicator/icons/geo.png)
+   skin/modern/communicator/icons/geolocation-16.png                (communicator/icons/geolocation-16.png)
+   skin/modern/communicator/icons/geolocation-64.png                (communicator/icons/geolocation-64.png)
+   skin/modern/communicator/icons/identity.png                      (communicator/icons/identity.png)
+   skin/modern/communicator/icons/loading.gif                       (communicator/icons/loading.gif)
++  skin/modern/communicator/icons/loading.png                       (/mozilla/toolkit/themes/shared/icons/loading.png)
+   skin/modern/communicator/icons/lock-broken.png                   (communicator/icons/lock-broken.png)
+   skin/modern/communicator/icons/lock-broken-16.png                (communicator/icons/lock-broken-16.png)
+   skin/modern/communicator/icons/lock-insecure.png                 (communicator/icons/lock-insecure.png)
+   skin/modern/communicator/icons/lock-insecure-16.png              (communicator/icons/lock-insecure-16.png)
+   skin/modern/communicator/icons/lock-secure.png                   (communicator/icons/lock-secure.png)
+   skin/modern/communicator/icons/lock-secure-16.png                (communicator/icons/lock-secure-16.png)
+   skin/modern/communicator/icons/notification-16.png               (communicator/icons/notification-16.png)
+   skin/modern/communicator/icons/notification-64.png               (communicator/icons/notification-64.png)
+diff --git a/suite/themes/modern/navigator/tabbrowser.css b/suite/themes/modern/navigator/tabbrowser.css
+--- a/suite/themes/modern/navigator/tabbrowser.css
++++ b/suite/themes/modern/navigator/tabbrowser.css
+@@ -21,17 +21,21 @@
+ }
+ 
+ tab {
+   padding: 0px 3px;
+   list-style-image: url("chrome://communicator/skin/bookmarks/bookmark-item.gif");
+ }
+ 
+ tab[busy] {
+-  list-style-image: url("chrome://communicator/skin/icons/loading.gif");
++  list-style-image: url("chrome://communicator/skin/icons/connecting.png");
++}
++
++tab[progress] {
++  list-style-image: url("chrome://communicator/skin/icons/loading.png");
+ }
+ 
+ .tab-icon {
+   margin-inline-end: 3px;
+   width: 16px;
+   height: 16px;
+ }
+ 

+ 2 - 1
comm-esr52/patches/series

@@ -1 +1,2 @@
- 
+frg-249-5.patch
+1492154-sessionstore-249.patch