Bug 1354738 - Don't force Sync initialization on context menu open. r=markh

MozReview-Commit-ID: JBwGTW9nLSl

--HG--
extra : rebase_source : 159adab098b4f21a7128ae78a4e25ac6876479e6
This commit is contained in:
Edouard Oger 2017-04-17 16:52:35 -04:00
Родитель f075e911e0
Коммит a743c966f7
3 изменённых файлов: 29 добавлений и 6 удалений

Просмотреть файл

@ -65,10 +65,7 @@ var gFxAccounts = {
get loginFailed() {
// Referencing Weave.Service will implicitly initialize sync, and we don't
// want to force that - so first check if it is ready.
let service = Cc["@mozilla.org/weave/service;1"]
.getService(Components.interfaces.nsISupports)
.wrappedJSObject;
if (!service.ready) {
if (!this.weaveService.ready) {
return false;
}
// LOGIN_FAILED_LOGIN_REJECTED explicitly means "you must log back in".
@ -376,7 +373,8 @@ var gFxAccounts = {
},
updateTabContextMenu(aPopupMenu, aTargetTab) {
if (!this.sendTabToDeviceEnabled) {
if (!this.sendTabToDeviceEnabled ||
!this.weaveService.ready) {
return;
}
@ -388,7 +386,8 @@ var gFxAccounts = {
},
initPageContextMenu(contextMenu) {
if (!this.sendTabToDeviceEnabled) {
if (!this.sendTabToDeviceEnabled ||
!this.weaveService.ready) {
return;
}
@ -422,3 +421,10 @@ XPCOMUtils.defineLazyGetter(gFxAccounts, "FxAccountsCommon", function() {
XPCOMUtils.defineLazyModuleGetter(this, "EnsureFxAccountsWebChannel",
"resource://gre/modules/FxAccountsWebChannel.jsm");
XPCOMUtils.defineLazyGetter(gFxAccounts, "weaveService", function() {
return Components.classes["@mozilla.org/weave/service;1"]
.getService(Components.interfaces.nsISupports)
.wrappedJSObject;
});

Просмотреть файл

@ -896,6 +896,7 @@ add_task(function* test_plaintext_sendpagetodevice() {
if (!gFxAccounts.sendTabToDeviceEnabled) {
return;
}
yield ensureSyncReady();
const oldGetter = setupRemoteClientsFixture(remoteClientsFixture);
let plainTextItemsWithSendPage =
@ -933,6 +934,7 @@ add_task(function* test_link_sendlinktodevice() {
if (!gFxAccounts.sendTabToDeviceEnabled) {
return;
}
yield ensureSyncReady();
const oldGetter = setupRemoteClientsFixture(remoteClientsFixture);
yield test_contextmenu("#test-link",
@ -990,3 +992,10 @@ function* selectText(selector) {
win.getSelection().addRange(div);
});
}
function ensureSyncReady() {
let service = Cc["@mozilla.org/weave/service;1"]
.getService(Components.interfaces.nsISupports)
.wrappedJSObject;
return service.whenLoaded();
}

Просмотреть файл

@ -21,6 +21,7 @@ add_task(function* test() {
const origIsSendableURI = gFxAccounts.isSendableURI;
gFxAccounts.isSendableURI = () => true;
// Check the send tab to device menu item
yield ensureSyncReady();
const oldGetter = setupRemoteClientsFixture(remoteClientsFixture);
yield updateTabContextMenu(origTab, function* () {
yield openMenuItemSubmenu("context_sendTabToDevice");
@ -76,3 +77,10 @@ add_task(function* test() {
gBrowser.removeTab(pinned);
});
function ensureSyncReady() {
let service = Cc["@mozilla.org/weave/service;1"]
.getService(Components.interfaces.nsISupports)
.wrappedJSObject;
return service.whenLoaded();
}