Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2328)

Unified Diff: chrome/browser/resources/options2/options.js

Issue 8895023: Options2: Pull the trigger. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DIAF. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/options2/options.html ('k') | chrome/browser/resources/options2/options_bundle.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/options2/options.js
diff --git a/chrome/browser/resources/options2/options.js b/chrome/browser/resources/options2/options.js
new file mode 100644
index 0000000000000000000000000000000000000000..5a744f3e98e7aa9aabd313d9570734034d991263
--- /dev/null
+++ b/chrome/browser/resources/options2/options.js
@@ -0,0 +1,247 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var AddLanguageOverlay = options.AddLanguageOverlay;
+var AdvancedOptions = options.AdvancedOptions;
+var AlertOverlay = options.AlertOverlay;
+var AutofillEditAddressOverlay = options.AutofillEditAddressOverlay;
+var AutofillEditCreditCardOverlay = options.AutofillEditCreditCardOverlay;
+var AutofillOptions = options.AutofillOptions;
+var BrowserOptions = options.BrowserOptions;
+var ClearBrowserDataOverlay = options.ClearBrowserDataOverlay;
+var ContentSettings = options.ContentSettings;
+var ContentSettingsExceptionsArea =
+ options.contentSettings.ContentSettingsExceptionsArea;
+var CookiesView = options.CookiesView;
+var ExtensionSettings = options.ExtensionSettings;
+var FontSettings = options.FontSettings;
+var HandlerOptions = options.HandlerOptions;
+var ImportDataOverlay = options.ImportDataOverlay;
+var IntentsView = options.IntentsView;
+var InstantConfirmOverlay = options.InstantConfirmOverlay;
+var LanguageOptions = options.LanguageOptions;
+var OptionsPage = options.OptionsPage;
+var PackExtensionOverlay = options.PackExtensionOverlay;
+var PasswordManager = options.PasswordManager;
+var PersonalOptions = options.PersonalOptions;
+var Preferences = options.Preferences;
+var ManageProfileOverlay = options.ManageProfileOverlay;
+var ProxyOptions = options.ProxyOptions;
+var SearchEngineManager = options.SearchEngineManager;
+var SearchPage = options.SearchPage;
+var SyncSetupOverlay = options.SyncSetupOverlay;
+var VirtualKeyboardManager = options.VirtualKeyboardManager;
+
+/**
+ * DOMContentLoaded handler, sets up the page.
+ */
+function load() {
+ // Decorate the existing elements in the document.
+ cr.ui.decorate('input[pref][type=checkbox]', options.PrefCheckbox);
+ cr.ui.decorate('input[pref][type=number]', options.PrefNumber);
+ cr.ui.decorate('input[pref][type=radio]', options.PrefRadio);
+ cr.ui.decorate('input[pref][type=range]', options.PrefRange);
+ cr.ui.decorate('select[pref]', options.PrefSelect);
+ cr.ui.decorate('input[pref][type=text]', options.PrefTextField);
+ cr.ui.decorate('input[pref][type=url]', options.PrefTextField);
+ cr.ui.decorate('button[pref]', options.PrefButton);
+ cr.ui.decorate('#content-settings-page input[type=radio]:not(.handler-radio)',
+ options.ContentSettingsRadio);
+ cr.ui.decorate('#content-settings-page input[type=radio].handler-radio',
+ options.HandlersEnabledRadio);
+ cr.ui.decorate('span.controlled-setting-indicator',
+ options.ControlledSettingIndicator);
+
+ var menuOffPattern = /(^\?|&)menu=off($|&)/;
+ var menuDisabled = menuOffPattern.test(window.location.search);
+ // document.documentElement.setAttribute('hide-menu', menuDisabled);
+ // We can't use an attribute on the html element because of webkit bug
+ // 12519. Instead, we add a class.
+ if (menuDisabled)
+ document.documentElement.classList.add('hide-menu');
+
+ localStrings = new LocalStrings();
+
+ OptionsPage.register(SearchPage.getInstance());
+
+ OptionsPage.register(BrowserOptions.getInstance());
+ OptionsPage.registerSubPage(SearchEngineManager.getInstance(),
+ BrowserOptions.getInstance(),
+ [$('defaultSearchManageEnginesButton')]);
+ OptionsPage.register(PersonalOptions.getInstance());
+ OptionsPage.registerSubPage(AutofillOptions.getInstance(),
+ PersonalOptions.getInstance(),
+ [$('autofill-settings')]);
+ OptionsPage.registerSubPage(PasswordManager.getInstance(),
+ PersonalOptions.getInstance(),
+ [$('manage-passwords')]);
+ if (cr.isChromeOS) {
+ OptionsPage.register(SystemOptions.getInstance());
+ OptionsPage.registerSubPage(AboutPage.getInstance(),
+ SystemOptions.getInstance());
+ OptionsPage.registerSubPage(LanguageOptions.getInstance(),
+ SystemOptions.getInstance(),
+ [$('language-button')]);
+ OptionsPage.registerSubPage(
+ new OptionsPage('languageChewing',
+ templateData.languageChewingPageTabTitle,
+ 'languageChewingPage'),
+ LanguageOptions.getInstance());
+ OptionsPage.registerSubPage(
+ new OptionsPage('languageHangul',
+ templateData.languageHangulPageTabTitle,
+ 'languageHangulPage'),
+ LanguageOptions.getInstance());
+ OptionsPage.registerSubPage(
+ new OptionsPage('languageMozc',
+ templateData.languageMozcPageTabTitle,
+ 'languageMozcPage'),
+ LanguageOptions.getInstance());
+ OptionsPage.registerSubPage(
+ new OptionsPage('languagePinyin',
+ templateData.languagePinyinPageTabTitle,
+ 'languagePinyinPage'),
+ LanguageOptions.getInstance());
+ // Only use the VirtualKeyboardManager if the keyboard DOM elements (which
+ // it will assume exists) are present (i.e. if we were built with
+ // USE_VIRTUAL_KEYBOARD).
+ if ($('language-options-virtual-keyboard')) {
+ OptionsPage.registerSubPage(VirtualKeyboardManager.getInstance(),
+ LanguageOptions.getInstance());
+ }
+ OptionsPage.register(InternetOptions.getInstance());
+ }
+ OptionsPage.register(AdvancedOptions.getInstance());
+ OptionsPage.registerSubPage(ContentSettings.getInstance(),
+ AdvancedOptions.getInstance(),
+ [$('privacyContentSettingsButton')]);
+ OptionsPage.registerSubPage(ContentSettingsExceptionsArea.getInstance(),
+ ContentSettings.getInstance());
+ OptionsPage.registerSubPage(CookiesView.getInstance(),
+ ContentSettings.getInstance(),
+ [$('privacyContentSettingsButton'),
+ $('show-cookies-button')]);
+ // If HandlerOptions is null it means it got compiled out.
+ if (HandlerOptions) {
+ OptionsPage.registerSubPage(HandlerOptions.getInstance(),
+ ContentSettings.getInstance(),
+ [$('manage-handlers-button')]);
+ }
+ if (IntentsView && $('manage-intents-button')) {
+ OptionsPage.registerSubPage(IntentsView.getInstance(),
+ ContentSettings.getInstance(),
+ [$('manage-intents-button')]);
+ }
+ OptionsPage.registerSubPage(FontSettings.getInstance(),
+ AdvancedOptions.getInstance(),
+ [$('fontSettingsCustomizeFontsButton')]);
+ if (!cr.isChromeOS) {
+ OptionsPage.registerSubPage(LanguageOptions.getInstance(),
+ AdvancedOptions.getInstance(),
+ [$('language-button')]);
+ }
+ if (!cr.isWindows && !cr.isMac) {
+ OptionsPage.registerSubPage(CertificateManager.getInstance(),
+ AdvancedOptions.getInstance(),
+ [$('certificatesManageButton')]);
+ OptionsPage.registerOverlay(CertificateRestoreOverlay.getInstance(),
+ CertificateManager.getInstance());
+ OptionsPage.registerOverlay(CertificateBackupOverlay.getInstance(),
+ CertificateManager.getInstance());
+ OptionsPage.registerOverlay(CertificateEditCaTrustOverlay.getInstance(),
+ CertificateManager.getInstance());
+ OptionsPage.registerOverlay(CertificateImportErrorOverlay.getInstance(),
+ CertificateManager.getInstance());
+ }
+ OptionsPage.registerOverlay(AddLanguageOverlay.getInstance(),
+ LanguageOptions.getInstance());
+ OptionsPage.registerOverlay(AlertOverlay.getInstance());
+ OptionsPage.registerOverlay(AutofillEditAddressOverlay.getInstance(),
+ AutofillOptions.getInstance());
+ OptionsPage.registerOverlay(AutofillEditCreditCardOverlay.getInstance(),
+ AutofillOptions.getInstance());
+ OptionsPage.registerOverlay(ClearBrowserDataOverlay.getInstance(),
+ AdvancedOptions.getInstance(),
+ [$('privacyClearDataButton')]);
+ OptionsPage.registerOverlay(ImportDataOverlay.getInstance(),
+ PersonalOptions.getInstance());
+ OptionsPage.registerOverlay(InstantConfirmOverlay.getInstance(),
+ BrowserOptions.getInstance());
+ OptionsPage.registerOverlay(SyncSetupOverlay.getInstance(),
+ PersonalOptions.getInstance());
+ OptionsPage.registerOverlay(ManageProfileOverlay.getInstance(),
+ PersonalOptions.getInstance());
+
+ OptionsPage.register(ExtensionSettings.getInstance());
+ OptionsPage.registerOverlay(PackExtensionOverlay.getInstance(),
+ ExtensionSettings.getInstance());
+
+ if (cr.isChromeOS) {
+ OptionsPage.register(AccountsOptions.getInstance());
+ OptionsPage.registerSubPage(ProxyOptions.getInstance(),
+ InternetOptions.getInstance());
+ OptionsPage.registerSubPage(ChangePictureOptions.getInstance(),
+ PersonalOptions.getInstance(),
+ [$('change-picture-button')]);
+ OptionsPage.registerOverlay(DetailsInternetPage.getInstance(),
+ InternetOptions.getInstance());
+
+ var languageModifierKeysOverlay = new OptionsPage(
+ 'languageCustomizeModifierKeysOverlay',
+ localStrings.getString('languageCustomizeModifierKeysOverlay'),
+ 'languageCustomizeModifierKeysOverlay')
+ $('languageCustomizeModifierKeysOverleyDismissButton').onclick =
+ function() {
+ OptionsPage.closeOverlay();
+ };
+ OptionsPage.registerOverlay(languageModifierKeysOverlay,
+ SystemOptions.getInstance(),
+ [$('modifier-keys-button')]);
+ }
+
+ Preferences.getInstance().initialize();
+ OptionsPage.initialize();
+
+ var path = document.location.pathname;
+
+ if (path.length > 1) {
+ // Skip starting slash and remove trailing slash (if any).
+ var pageName = path.slice(1).replace(/\/$/, '');
+ // Proxy page is now per network and only reachable from internet details.
+ if (pageName != 'proxy') {
+ // Show page, but don't update history (there's already an entry for it).
+ OptionsPage.showPageByName(pageName, false);
+ }
+ } else {
+ OptionsPage.showDefaultPage();
+ }
+
+ var subpagesNavTabs = document.querySelectorAll('.subpages-nav-tabs');
+ for(var i = 0; i < subpagesNavTabs.length; i++) {
+ subpagesNavTabs[i].onclick = function(event) {
+ OptionsPage.showTab(event.srcElement);
+ }
+ }
+
+ // Allow platform specific CSS rules.
+ cr.enablePlatformSpecificCSSRules();
+
+ if (navigator.plugins['Shockwave Flash'])
+ document.documentElement.setAttribute('hasFlashPlugin', '');
+
+ // Clicking on the Settings title brings up the 'Basics' page.
+ $('navbar-content-title').onclick = function() {
+ OptionsPage.navigateToPage(BrowserOptions.getInstance().name);
+ };
+}
+
+document.addEventListener('DOMContentLoaded', load);
+
+window.onpopstate = function(e) {
+ options.OptionsPage.setState(e.state);
+};
+
+window.onbeforeunload = function() {
+ options.OptionsPage.willClose();
+};
« no previous file with comments | « chrome/browser/resources/options2/options.html ('k') | chrome/browser/resources/options2/options_bundle.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698