gecko-dev/browser/components/preferences/in-content-new/containers.js
Timothy Guan-tin Chien f9eb2ed08a Bug 1363850 - Part I, Move new about:preferences from in-content/ to in-content-new/, r=jaws,mconley
MozReview-Commit-ID: ButUfsGP7lS

--HG--
rename : browser/components/preferences/in-content/advanced.js => browser/components/preferences/in-content-new/advanced.js
rename : browser/components/preferences/in-content/advanced.xul => browser/components/preferences/in-content-new/advanced.xul
rename : browser/components/preferences/in-content/applications.js => browser/components/preferences/in-content-new/applications.js
rename : browser/components/preferences/in-content/applications.xul => browser/components/preferences/in-content-new/applications.xul
rename : browser/components/preferences/in-content/containers.js => browser/components/preferences/in-content-new/containers.js
rename : browser/components/preferences/in-content/containers.xul => browser/components/preferences/in-content-new/containers.xul
rename : browser/components/preferences/in-content/findInPage.js => browser/components/preferences/in-content-new/findInPage.js
rename : browser/components/preferences/in-content/jar.mn => browser/components/preferences/in-content-new/jar.mn
rename : browser/components/preferences/in-content/main.js => browser/components/preferences/in-content-new/main.js
rename : browser/components/preferences/in-content/main.xul => browser/components/preferences/in-content-new/main.xul
rename : browser/components/preferences/in-content/moz.build => browser/components/preferences/in-content-new/moz.build
rename : browser/components/preferences/in-content/preferences.js => browser/components/preferences/in-content-new/preferences.js
rename : browser/components/preferences/in-content/preferences.xul => browser/components/preferences/in-content-new/preferences.xul
rename : browser/components/preferences/in-content/privacy.js => browser/components/preferences/in-content-new/privacy.js
rename : browser/components/preferences/in-content/privacy.xul => browser/components/preferences/in-content-new/privacy.xul
rename : browser/components/preferences/in-content/searchResults.xul => browser/components/preferences/in-content-new/searchResults.xul
rename : browser/components/preferences/in-content/subdialogs.js => browser/components/preferences/in-content-new/subdialogs.js
rename : browser/components/preferences/in-content/sync.js => browser/components/preferences/in-content-new/sync.js
rename : browser/components/preferences/in-content/sync.xul => browser/components/preferences/in-content-new/sync.xul
rename : browser/components/preferences/in-content/tests/.eslintrc.js => browser/components/preferences/in-content-new/tests/.eslintrc.js
rename : browser/components/preferences/in-content/tests/browser.ini => browser/components/preferences/in-content-new/tests/browser.ini
rename : browser/components/preferences/in-content/tests/browser_advanced_update.js => browser/components/preferences/in-content-new/tests/browser_advanced_update.js
rename : browser/components/preferences/in-content/tests/browser_applications_selection.js => browser/components/preferences/in-content-new/tests/browser_applications_selection.js
rename : browser/components/preferences/in-content/tests/browser_basic_rebuild_fonts_test.js => browser/components/preferences/in-content-new/tests/browser_basic_rebuild_fonts_test.js
rename : browser/components/preferences/in-content/tests/browser_bug1018066_resetScrollPosition.js => browser/components/preferences/in-content-new/tests/browser_bug1018066_resetScrollPosition.js
rename : browser/components/preferences/in-content/tests/browser_bug1020245_openPreferences_to_paneContent.js => browser/components/preferences/in-content-new/tests/browser_bug1020245_openPreferences_to_paneContent.js
rename : browser/components/preferences/in-content/tests/browser_bug1184989_prevent_scrolling_when_preferences_flipped.js => browser/components/preferences/in-content-new/tests/browser_bug1184989_prevent_scrolling_when_preferences_flipped.js
rename : browser/components/preferences/in-content/tests/browser_bug1184989_prevent_scrolling_when_preferences_flipped.xul => browser/components/preferences/in-content-new/tests/browser_bug1184989_prevent_scrolling_when_preferences_flipped.xul
rename : browser/components/preferences/in-content/tests/browser_bug410900.js => browser/components/preferences/in-content-new/tests/browser_bug410900.js
rename : browser/components/preferences/in-content/tests/browser_bug705422.js => browser/components/preferences/in-content-new/tests/browser_bug705422.js
rename : browser/components/preferences/in-content/tests/browser_bug731866.js => browser/components/preferences/in-content-new/tests/browser_bug731866.js
rename : browser/components/preferences/in-content/tests/browser_bug795764_cachedisabled.js => browser/components/preferences/in-content-new/tests/browser_bug795764_cachedisabled.js
rename : browser/components/preferences/in-content/tests/browser_change_app_handler.js => browser/components/preferences/in-content-new/tests/browser_change_app_handler.js
rename : browser/components/preferences/in-content/tests/browser_checkspelling.js => browser/components/preferences/in-content-new/tests/browser_checkspelling.js
rename : browser/components/preferences/in-content/tests/browser_connection.js => browser/components/preferences/in-content-new/tests/browser_connection.js
rename : browser/components/preferences/in-content/tests/browser_connection_bug388287.js => browser/components/preferences/in-content-new/tests/browser_connection_bug388287.js
rename : browser/components/preferences/in-content/tests/browser_cookies_exceptions.js => browser/components/preferences/in-content-new/tests/browser_cookies_exceptions.js
rename : browser/components/preferences/in-content/tests/browser_defaultbrowser_alwayscheck.js => browser/components/preferences/in-content-new/tests/browser_defaultbrowser_alwayscheck.js
rename : browser/components/preferences/in-content/tests/browser_engines.js => browser/components/preferences/in-content-new/tests/browser_engines.js
rename : browser/components/preferences/in-content/tests/browser_healthreport.js => browser/components/preferences/in-content-new/tests/browser_healthreport.js
rename : browser/components/preferences/in-content/tests/browser_homepages_filter_aboutpreferences.js => browser/components/preferences/in-content-new/tests/browser_homepages_filter_aboutpreferences.js
rename : browser/components/preferences/in-content/tests/browser_layersacceleration.js => browser/components/preferences/in-content-new/tests/browser_layersacceleration.js
rename : browser/components/preferences/in-content/tests/browser_masterpassword.js => browser/components/preferences/in-content-new/tests/browser_masterpassword.js
rename : browser/components/preferences/in-content/tests/browser_notifications_do_not_disturb.js => browser/components/preferences/in-content-new/tests/browser_notifications_do_not_disturb.js
rename : browser/components/preferences/in-content/tests/browser_performance.js => browser/components/preferences/in-content-new/tests/browser_performance.js
rename : browser/components/preferences/in-content/tests/browser_permissions_urlFieldHidden.js => browser/components/preferences/in-content-new/tests/browser_permissions_urlFieldHidden.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_1.js => browser/components/preferences/in-content-new/tests/browser_privacypane_1.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_3.js => browser/components/preferences/in-content-new/tests/browser_privacypane_3.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_4.js => browser/components/preferences/in-content-new/tests/browser_privacypane_4.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_5.js => browser/components/preferences/in-content-new/tests/browser_privacypane_5.js
rename : browser/components/preferences/in-content/tests/browser_privacypane_8.js => browser/components/preferences/in-content-new/tests/browser_privacypane_8.js
rename : browser/components/preferences/in-content/tests/browser_proxy_backup.js => browser/components/preferences/in-content-new/tests/browser_proxy_backup.js
rename : browser/components/preferences/in-content/tests/browser_sanitizeOnShutdown_prefLocked.js => browser/components/preferences/in-content-new/tests/browser_sanitizeOnShutdown_prefLocked.js
rename : browser/components/preferences/in-content/tests/browser_search_subdialogs_within_preferences_1.js => browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_1.js
rename : browser/components/preferences/in-content/tests/browser_search_subdialogs_within_preferences_2.js => browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_2.js
rename : browser/components/preferences/in-content/tests/browser_search_subdialogs_within_preferences_3.js => browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_3.js
rename : browser/components/preferences/in-content/tests/browser_search_subdialogs_within_preferences_4.js => browser/components/preferences/in-content-new/tests/browser_search_subdialogs_within_preferences_4.js
rename : browser/components/preferences/in-content/tests/browser_search_within_preferences.js => browser/components/preferences/in-content-new/tests/browser_search_within_preferences.js
rename : browser/components/preferences/in-content/tests/browser_searchsuggestions.js => browser/components/preferences/in-content-new/tests/browser_searchsuggestions.js
rename : browser/components/preferences/in-content/tests/browser_security.js => browser/components/preferences/in-content-new/tests/browser_security.js
rename : browser/components/preferences/in-content/tests/browser_siteData.js => browser/components/preferences/in-content-new/tests/browser_siteData.js
rename : browser/components/preferences/in-content/tests/browser_siteData2.js => browser/components/preferences/in-content-new/tests/browser_siteData2.js
rename : browser/components/preferences/in-content/tests/browser_subdialogs.js => browser/components/preferences/in-content-new/tests/browser_subdialogs.js
rename : browser/components/preferences/in-content/tests/browser_telemetry.js => browser/components/preferences/in-content-new/tests/browser_telemetry.js
rename : browser/components/preferences/in-content/tests/head.js => browser/components/preferences/in-content-new/tests/head.js
rename : browser/components/preferences/in-content/tests/offline/manifest.appcache => browser/components/preferences/in-content-new/tests/offline/manifest.appcache
rename : browser/components/preferences/in-content/tests/offline/offline.html => browser/components/preferences/in-content-new/tests/offline/offline.html
rename : browser/components/preferences/in-content/tests/privacypane_tests_perwindow.js => browser/components/preferences/in-content-new/tests/privacypane_tests_perwindow.js
rename : browser/components/preferences/in-content/tests/site_data_test.html => browser/components/preferences/in-content-new/tests/site_data_test.html
rename : browser/components/preferences/in-content/tests/subdialog.xul => browser/components/preferences/in-content-new/tests/subdialog.xul
rename : browser/components/preferences/in-content/tests/subdialog2.xul => browser/components/preferences/in-content-new/tests/subdialog2.xul
rename : browser/themes/linux/preferences/in-content/dialog.css => browser/themes/linux/preferences/in-content-new/dialog.css
rename : browser/themes/linux/preferences/in-content/preferences.css => browser/themes/linux/preferences/in-content-new/preferences.css
rename : browser/themes/osx/preferences/in-content/dialog.css => browser/themes/osx/preferences/in-content-new/dialog.css
rename : browser/themes/osx/preferences/in-content/preferences.css => browser/themes/osx/preferences/in-content-new/preferences.css
rename : browser/themes/windows/preferences/in-content/dialog.css => browser/themes/windows/preferences/in-content-new/dialog.css
rename : browser/themes/windows/preferences/in-content/preferences.css => browser/themes/windows/preferences/in-content-new/preferences.css
extra : rebase_source : a7accd26847f9b3d5ee0acc9442ef65edeadb5bf
2017-05-25 18:31:41 +08:00

99 lines
3.5 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/. */
/* import-globals-from preferences.js */
Components.utils.import("resource://gre/modules/AppConstants.jsm");
Components.utils.import("resource://gre/modules/ContextualIdentityService.jsm");
const containersBundle = Services.strings.createBundle("chrome://browser/locale/preferences/containers.properties");
const defaultContainerIcon = "fingerprint";
const defaultContainerColor = "blue";
let gContainersPane = {
init() {
this._list = document.getElementById("containersView");
document.getElementById("backContainersLink").addEventListener("click", function() {
gotoPref("privacy");
});
this._rebuildView();
},
_rebuildView() {
const containers = ContextualIdentityService.getPublicIdentities();
while (this._list.firstChild) {
this._list.firstChild.remove();
}
for (let container of containers) {
let item = document.createElement("richlistitem");
item.setAttribute("containerName", ContextualIdentityService.getUserContextLabel(container.userContextId));
item.setAttribute("containerIcon", container.icon);
item.setAttribute("containerColor", container.color);
item.setAttribute("userContextId", container.userContextId);
this._list.appendChild(item);
}
},
onRemoveClick(button) {
let userContextId = parseInt(button.getAttribute("value"), 10);
let count = ContextualIdentityService.countContainerTabs(userContextId);
if (count > 0) {
let bundlePreferences = document.getElementById("bundlePreferences");
let title = bundlePreferences.getString("removeContainerAlertTitle");
let message = PluralForm.get(count, bundlePreferences.getString("removeContainerMsg"))
.replace("#S", count)
let okButton = bundlePreferences.getString("removeContainerOkButton");
let cancelButton = bundlePreferences.getString("removeContainerButton2");
let buttonFlags = (Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_0) +
(Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_1);
let rv = Services.prompt.confirmEx(window, title, message, buttonFlags,
okButton, cancelButton, null, null, {});
if (rv != 0) {
return;
}
ContextualIdentityService.closeContainerTabs(userContextId);
}
ContextualIdentityService.remove(userContextId);
this._rebuildView();
},
onPreferenceClick(button) {
this.openPreferenceDialog(button.getAttribute("value"));
},
onAddButtonClick(button) {
this.openPreferenceDialog(null);
},
openPreferenceDialog(userContextId) {
let identity = {
name: "",
icon: defaultContainerIcon,
color: defaultContainerColor
};
let title;
if (userContextId) {
identity = ContextualIdentityService.getPublicIdentityFromId(userContextId);
// This is required to get the translation string from defaults
identity.name = ContextualIdentityService.getUserContextLabel(identity.userContextId);
title = containersBundle.formatStringFromName("containers.updateContainerTitle", [identity.name], 1);
}
const params = { userContextId, identity, windowTitle: title };
gSubDialog.open("chrome://browser/content/preferences/containers.xul",
null, params);
}
};