Bug 1437242 - don't drag browser-sync.js into places.xul. r?tcsc
MozReview-Commit-ID: FZTdHOUMMOK
--- a/browser/base/content/browser-sync.js
+++ b/browser/base/content/browser-sync.js
@@ -109,31 +109,36 @@ var gSync = {
}
},
init() {
if (this._initialized) {
return;
}
+ // initial label for the sync buttons.
+ let statusBroadcaster = document.getElementById("sync-status");
+ if (!statusBroadcaster) {
+ // We are in a window without our elements - just abort now, without
+ // setting this._initialized, so we don't attempt to remove observers.
+ return;
+ }
+ statusBroadcaster.setAttribute("label", this.syncStrings.GetStringFromName("syncnow.label"));
+ // We start with every broadcasters hidden, so that we don't need to init
+ // the sync UI on windows like pageInfo.xul (see bug 1384856).
+ let setupBroadcaster = document.getElementById("sync-setup-state");
+ setupBroadcaster.hidden = false;
+
for (let topic of this._obs) {
Services.obs.addObserver(this, topic, true);
}
this._generateNodeGetters();
this._definePrefGetters();
- // initial label for the sync buttons.
- let statusBroadcaster = document.getElementById("sync-status");
- statusBroadcaster.setAttribute("label", this.syncStrings.GetStringFromName("syncnow.label"));
- // We start with every broadcasters hidden, so that we don't need to init
- // the sync UI on windows like pageInfo.xul (see bug 1384856).
- let setupBroadcaster = document.getElementById("sync-setup-state");
- setupBroadcaster.hidden = false;
-
this._maybeUpdateUIState();
EnsureFxAccountsWebChannel();
this._initialized = true;
},
uninit() {
@@ -175,21 +180,16 @@ var gSync = {
updateAllUI(state) {
this.updatePanelPopup(state);
this.updateStateBroadcasters(state);
this.updateSyncButtonsTooltip(state);
this.updateSyncStatus(state);
},
updatePanelPopup(state) {
- // Some windows (e.g. places.xul) won't contain the panel UI, so we can
- // abort immediately for those (bug 1384856).
- if (!this.appMenuContainer) {
- return;
- }
let defaultLabel = this.appMenuStatus.getAttribute("defaultlabel");
// The localization string is for the signed in text, but it's the default text as well
let defaultTooltiptext = this.appMenuStatus.getAttribute("signedinTooltiptext");
const status = state.status;
// Reset the status bar to its original state.
this.appMenuLabel.setAttribute("label", defaultLabel);
this.appMenuStatus.setAttribute("tooltiptext", defaultTooltiptext);
--- a/browser/components/places/content/places.js
+++ b/browser/components/places/content/places.js
@@ -1,17 +1,16 @@
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* 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/. */
/* import-globals-from editBookmarkOverlay.js */
// Via downloadsViewOverlay.xul -> allDownloadsViewOverlay.xul
/* import-globals-from ../../../../toolkit/content/contentAreaUtils.js */
-/* import-globals-from ../../../base/content/browser-sync.js */
ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
ChromeUtils.import("resource://gre/modules/TelemetryStopwatch.jsm");
ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(this, "MigrationUtils",
"resource:///modules/MigrationUtils.jsm");
ChromeUtils.defineModuleGetter(this, "BookmarkJSONUtils",
@@ -172,17 +171,16 @@ var PlacesOrganizer = {
}
}
// remove the "Properties" context-menu item, we've our own details pane
document.getElementById("placesContext")
.removeChild(document.getElementById("placesContext_show:info"));
ContentArea.focus();
- gSync.init();
},
QueryInterface: function PO_QueryInterface(aIID) {
if (aIID.equals(Components.interfaces.nsIDOMEventListener) ||
aIID.equals(Components.interfaces.nsISupports))
return this;
throw Components.results.NS_NOINTERFACE;
--- a/browser/components/places/content/places.xul
+++ b/browser/components/places/content/places.xul
@@ -43,18 +43,16 @@
persist="width height screenX screenY sizemode">
<script type="application/javascript"
src="chrome://browser/content/places/places.js"/>
#ifndef XP_MACOSX
<!-- On Mac, these are included via macBrowserOverlay.xul -> browser.js -> defineLazyScriptGetter -->
<script type="application/javascript"
src="chrome://browser/content/places/editBookmarkOverlay.js"/>
- <script type="application/javascript"
- src="chrome://browser/content/browser-sync.js"/>
#endif
<stringbundleset id="placesStringSet">
<stringbundle id="brandStrings" src="chrome://branding/locale/brand.properties"/>
</stringbundleset>
#ifdef XP_MACOSX