fune/browser/components/preferences/in-content/syncDisconnect.js
Kris Maglione 2fe0de01dc Bug 1519596: Part 1 - Remove several unnecessary/unused ChromeUtils.import() calls. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16377

--HG--
extra : rebase_source : 6c4311387d25de425806aeb6c4691e12c9fcb855
2019-01-11 16:59:23 -08:00

57 lines
2.2 KiB
JavaScript

// 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/.
ChromeUtils.defineModuleGetter(this, "SyncDisconnect",
"resource://services-sync/SyncDisconnect.jsm");
let gSyncDisconnectDialog = {
init() {
if (SyncDisconnect.promiseDisconnectFinished) {
// There's a sanitization under way - just re-show our "waiting" state
// and close the dialog when it's complete.
this.waitForCompletion(SyncDisconnect.promiseDisconnectFinished);
}
},
// when either of the checkboxes are changed.
onDeleteOptionChange() {
let eitherChecked = document.getElementById("deleteRemoteSyncData").checked ||
document.getElementById("deleteRemoteOtherData").checked;
let newTitle = eitherChecked ? "sync-disconnect-confirm-disconnect-delete" :
"sync-disconnect-confirm-disconnect";
let butDisconnect = document.getElementById("butDisconnect");
document.l10n.setAttributes(butDisconnect, newTitle);
},
accept(event) {
let options = {
sanitizeSyncData: document.getElementById("deleteRemoteSyncData").checked,
sanitizeBrowserData: document.getElementById("deleteRemoteOtherData").checked,
};
// And do the santize.
this.waitForCompletion(SyncDisconnect.disconnect(options));
},
waitForCompletion(promiseComplete) {
// Change the dialog to show we are waiting for completion.
document.getElementById("deleteOptionsContent").hidden = true;
document.getElementById("deletingContent").hidden = false;
// And do the santize.
promiseComplete.catch(ex => {
console.error("Failed to sanitize", ex);
}).then(() => {
// We dispatch a custom event so the caller knows how we were closed
// (if we were a dialog we'd get this for free, but we'd also lose the
// ability to keep the dialog open while the sanitize was running)
let closingEvent = new CustomEvent("dialogclosing", {
bubbles: true,
detail: {button: "accept"},
});
document.documentElement.dispatchEvent(closingEvent);
close();
});
},
};