2014-01-25 07:19:07 -08:00
|
|
|
# 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/.
|
|
|
|
|
|
|
|
XPCOMUtils.defineLazyGetter(this, "FxAccountsCommon", function () {
|
|
|
|
return Cu.import("resource://gre/modules/FxAccountsCommon.js", {});
|
|
|
|
});
|
|
|
|
|
|
|
|
let gFxAccounts = {
|
|
|
|
|
2014-01-25 13:02:18 -08:00
|
|
|
_initialized: false,
|
|
|
|
|
2014-01-25 07:19:07 -08:00
|
|
|
get topics() {
|
|
|
|
delete this.topics;
|
|
|
|
return this.topics = [
|
|
|
|
FxAccountsCommon.ONVERIFIED_NOTIFICATION
|
|
|
|
];
|
|
|
|
},
|
|
|
|
|
|
|
|
init: function () {
|
2014-01-25 13:02:18 -08:00
|
|
|
if (this._initialized) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2014-01-25 07:19:07 -08:00
|
|
|
for (let topic of this.topics) {
|
|
|
|
Services.obs.addObserver(this, topic, false);
|
|
|
|
}
|
2014-01-25 13:02:18 -08:00
|
|
|
|
|
|
|
this._initialized = true;
|
2014-01-25 07:19:07 -08:00
|
|
|
},
|
|
|
|
|
|
|
|
uninit: function () {
|
2014-01-25 13:02:18 -08:00
|
|
|
if (!this._initialized) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2014-01-25 07:19:07 -08:00
|
|
|
for (let topic of this.topics) {
|
|
|
|
Services.obs.removeObserver(this, topic);
|
|
|
|
}
|
2014-01-25 13:02:18 -08:00
|
|
|
|
|
|
|
this._initialized = false;
|
2014-01-25 07:19:07 -08:00
|
|
|
},
|
|
|
|
|
|
|
|
observe: function (subject, topic) {
|
|
|
|
this.showDoorhanger();
|
|
|
|
},
|
|
|
|
|
|
|
|
showDoorhanger: function () {
|
|
|
|
let panel = document.getElementById("sync-popup");
|
|
|
|
let anchor = document.getElementById("PanelUI-menu-button");
|
|
|
|
|
|
|
|
let iconAnchor =
|
|
|
|
document.getAnonymousElementByAttribute(anchor, "class",
|
|
|
|
"toolbarbutton-icon");
|
|
|
|
|
|
|
|
panel.hidden = false;
|
|
|
|
panel.openPopup(iconAnchor || anchor, "bottomcenter topright");
|
|
|
|
}
|
|
|
|
};
|