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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 var AddLanguageOverlay = options.AddLanguageOverlay;
6 var AdvancedOptions = options.AdvancedOptions;
7 var AlertOverlay = options.AlertOverlay;
8 var AutofillEditAddressOverlay = options.AutofillEditAddressOverlay;
9 var AutofillEditCreditCardOverlay = options.AutofillEditCreditCardOverlay;
10 var AutofillOptions = options.AutofillOptions;
11 var BrowserOptions = options.BrowserOptions;
12 var ClearBrowserDataOverlay = options.ClearBrowserDataOverlay;
13 var ContentSettings = options.ContentSettings;
14 var ContentSettingsExceptionsArea =
15 options.contentSettings.ContentSettingsExceptionsArea;
16 var CookiesView = options.CookiesView;
17 var ExtensionSettings = options.ExtensionSettings;
18 var FontSettings = options.FontSettings;
19 var HandlerOptions = options.HandlerOptions;
20 var ImportDataOverlay = options.ImportDataOverlay;
21 var IntentsView = options.IntentsView;
22 var InstantConfirmOverlay = options.InstantConfirmOverlay;
23 var LanguageOptions = options.LanguageOptions;
24 var OptionsPage = options.OptionsPage;
25 var PackExtensionOverlay = options.PackExtensionOverlay;
26 var PasswordManager = options.PasswordManager;
27 var PersonalOptions = options.PersonalOptions;
28 var Preferences = options.Preferences;
29 var ManageProfileOverlay = options.ManageProfileOverlay;
30 var ProxyOptions = options.ProxyOptions;
31 var SearchEngineManager = options.SearchEngineManager;
32 var SearchPage = options.SearchPage;
33 var SyncSetupOverlay = options.SyncSetupOverlay;
34 var VirtualKeyboardManager = options.VirtualKeyboardManager;
35
36 /**
37 * DOMContentLoaded handler, sets up the page.
38 */
39 function load() {
40 // Decorate the existing elements in the document.
41 cr.ui.decorate('input[pref][type=checkbox]', options.PrefCheckbox);
42 cr.ui.decorate('input[pref][type=number]', options.PrefNumber);
43 cr.ui.decorate('input[pref][type=radio]', options.PrefRadio);
44 cr.ui.decorate('input[pref][type=range]', options.PrefRange);
45 cr.ui.decorate('select[pref]', options.PrefSelect);
46 cr.ui.decorate('input[pref][type=text]', options.PrefTextField);
47 cr.ui.decorate('input[pref][type=url]', options.PrefTextField);
48 cr.ui.decorate('button[pref]', options.PrefButton);
49 cr.ui.decorate('#content-settings-page input[type=radio]:not(.handler-radio)',
50 options.ContentSettingsRadio);
51 cr.ui.decorate('#content-settings-page input[type=radio].handler-radio',
52 options.HandlersEnabledRadio);
53 cr.ui.decorate('span.controlled-setting-indicator',
54 options.ControlledSettingIndicator);
55
56 var menuOffPattern = /(^\?|&)menu=off($|&)/;
57 var menuDisabled = menuOffPattern.test(window.location.search);
58 // document.documentElement.setAttribute('hide-menu', menuDisabled);
59 // We can't use an attribute on the html element because of webkit bug
60 // 12519. Instead, we add a class.
61 if (menuDisabled)
62 document.documentElement.classList.add('hide-menu');
63
64 localStrings = new LocalStrings();
65
66 OptionsPage.register(SearchPage.getInstance());
67
68 OptionsPage.register(BrowserOptions.getInstance());
69 OptionsPage.registerSubPage(SearchEngineManager.getInstance(),
70 BrowserOptions.getInstance(),
71 [$('defaultSearchManageEnginesButton')]);
72 OptionsPage.register(PersonalOptions.getInstance());
73 OptionsPage.registerSubPage(AutofillOptions.getInstance(),
74 PersonalOptions.getInstance(),
75 [$('autofill-settings')]);
76 OptionsPage.registerSubPage(PasswordManager.getInstance(),
77 PersonalOptions.getInstance(),
78 [$('manage-passwords')]);
79 if (cr.isChromeOS) {
80 OptionsPage.register(SystemOptions.getInstance());
81 OptionsPage.registerSubPage(AboutPage.getInstance(),
82 SystemOptions.getInstance());
83 OptionsPage.registerSubPage(LanguageOptions.getInstance(),
84 SystemOptions.getInstance(),
85 [$('language-button')]);
86 OptionsPage.registerSubPage(
87 new OptionsPage('languageChewing',
88 templateData.languageChewingPageTabTitle,
89 'languageChewingPage'),
90 LanguageOptions.getInstance());
91 OptionsPage.registerSubPage(
92 new OptionsPage('languageHangul',
93 templateData.languageHangulPageTabTitle,
94 'languageHangulPage'),
95 LanguageOptions.getInstance());
96 OptionsPage.registerSubPage(
97 new OptionsPage('languageMozc',
98 templateData.languageMozcPageTabTitle,
99 'languageMozcPage'),
100 LanguageOptions.getInstance());
101 OptionsPage.registerSubPage(
102 new OptionsPage('languagePinyin',
103 templateData.languagePinyinPageTabTitle,
104 'languagePinyinPage'),
105 LanguageOptions.getInstance());
106 // Only use the VirtualKeyboardManager if the keyboard DOM elements (which
107 // it will assume exists) are present (i.e. if we were built with
108 // USE_VIRTUAL_KEYBOARD).
109 if ($('language-options-virtual-keyboard')) {
110 OptionsPage.registerSubPage(VirtualKeyboardManager.getInstance(),
111 LanguageOptions.getInstance());
112 }
113 OptionsPage.register(InternetOptions.getInstance());
114 }
115 OptionsPage.register(AdvancedOptions.getInstance());
116 OptionsPage.registerSubPage(ContentSettings.getInstance(),
117 AdvancedOptions.getInstance(),
118 [$('privacyContentSettingsButton')]);
119 OptionsPage.registerSubPage(ContentSettingsExceptionsArea.getInstance(),
120 ContentSettings.getInstance());
121 OptionsPage.registerSubPage(CookiesView.getInstance(),
122 ContentSettings.getInstance(),
123 [$('privacyContentSettingsButton'),
124 $('show-cookies-button')]);
125 // If HandlerOptions is null it means it got compiled out.
126 if (HandlerOptions) {
127 OptionsPage.registerSubPage(HandlerOptions.getInstance(),
128 ContentSettings.getInstance(),
129 [$('manage-handlers-button')]);
130 }
131 if (IntentsView && $('manage-intents-button')) {
132 OptionsPage.registerSubPage(IntentsView.getInstance(),
133 ContentSettings.getInstance(),
134 [$('manage-intents-button')]);
135 }
136 OptionsPage.registerSubPage(FontSettings.getInstance(),
137 AdvancedOptions.getInstance(),
138 [$('fontSettingsCustomizeFontsButton')]);
139 if (!cr.isChromeOS) {
140 OptionsPage.registerSubPage(LanguageOptions.getInstance(),
141 AdvancedOptions.getInstance(),
142 [$('language-button')]);
143 }
144 if (!cr.isWindows && !cr.isMac) {
145 OptionsPage.registerSubPage(CertificateManager.getInstance(),
146 AdvancedOptions.getInstance(),
147 [$('certificatesManageButton')]);
148 OptionsPage.registerOverlay(CertificateRestoreOverlay.getInstance(),
149 CertificateManager.getInstance());
150 OptionsPage.registerOverlay(CertificateBackupOverlay.getInstance(),
151 CertificateManager.getInstance());
152 OptionsPage.registerOverlay(CertificateEditCaTrustOverlay.getInstance(),
153 CertificateManager.getInstance());
154 OptionsPage.registerOverlay(CertificateImportErrorOverlay.getInstance(),
155 CertificateManager.getInstance());
156 }
157 OptionsPage.registerOverlay(AddLanguageOverlay.getInstance(),
158 LanguageOptions.getInstance());
159 OptionsPage.registerOverlay(AlertOverlay.getInstance());
160 OptionsPage.registerOverlay(AutofillEditAddressOverlay.getInstance(),
161 AutofillOptions.getInstance());
162 OptionsPage.registerOverlay(AutofillEditCreditCardOverlay.getInstance(),
163 AutofillOptions.getInstance());
164 OptionsPage.registerOverlay(ClearBrowserDataOverlay.getInstance(),
165 AdvancedOptions.getInstance(),
166 [$('privacyClearDataButton')]);
167 OptionsPage.registerOverlay(ImportDataOverlay.getInstance(),
168 PersonalOptions.getInstance());
169 OptionsPage.registerOverlay(InstantConfirmOverlay.getInstance(),
170 BrowserOptions.getInstance());
171 OptionsPage.registerOverlay(SyncSetupOverlay.getInstance(),
172 PersonalOptions.getInstance());
173 OptionsPage.registerOverlay(ManageProfileOverlay.getInstance(),
174 PersonalOptions.getInstance());
175
176 OptionsPage.register(ExtensionSettings.getInstance());
177 OptionsPage.registerOverlay(PackExtensionOverlay.getInstance(),
178 ExtensionSettings.getInstance());
179
180 if (cr.isChromeOS) {
181 OptionsPage.register(AccountsOptions.getInstance());
182 OptionsPage.registerSubPage(ProxyOptions.getInstance(),
183 InternetOptions.getInstance());
184 OptionsPage.registerSubPage(ChangePictureOptions.getInstance(),
185 PersonalOptions.getInstance(),
186 [$('change-picture-button')]);
187 OptionsPage.registerOverlay(DetailsInternetPage.getInstance(),
188 InternetOptions.getInstance());
189
190 var languageModifierKeysOverlay = new OptionsPage(
191 'languageCustomizeModifierKeysOverlay',
192 localStrings.getString('languageCustomizeModifierKeysOverlay'),
193 'languageCustomizeModifierKeysOverlay')
194 $('languageCustomizeModifierKeysOverleyDismissButton').onclick =
195 function() {
196 OptionsPage.closeOverlay();
197 };
198 OptionsPage.registerOverlay(languageModifierKeysOverlay,
199 SystemOptions.getInstance(),
200 [$('modifier-keys-button')]);
201 }
202
203 Preferences.getInstance().initialize();
204 OptionsPage.initialize();
205
206 var path = document.location.pathname;
207
208 if (path.length > 1) {
209 // Skip starting slash and remove trailing slash (if any).
210 var pageName = path.slice(1).replace(/\/$/, '');
211 // Proxy page is now per network and only reachable from internet details.
212 if (pageName != 'proxy') {
213 // Show page, but don't update history (there's already an entry for it).
214 OptionsPage.showPageByName(pageName, false);
215 }
216 } else {
217 OptionsPage.showDefaultPage();
218 }
219
220 var subpagesNavTabs = document.querySelectorAll('.subpages-nav-tabs');
221 for(var i = 0; i < subpagesNavTabs.length; i++) {
222 subpagesNavTabs[i].onclick = function(event) {
223 OptionsPage.showTab(event.srcElement);
224 }
225 }
226
227 // Allow platform specific CSS rules.
228 cr.enablePlatformSpecificCSSRules();
229
230 if (navigator.plugins['Shockwave Flash'])
231 document.documentElement.setAttribute('hasFlashPlugin', '');
232
233 // Clicking on the Settings title brings up the 'Basics' page.
234 $('navbar-content-title').onclick = function() {
235 OptionsPage.navigateToPage(BrowserOptions.getInstance().name);
236 };
237 }
238
239 document.addEventListener('DOMContentLoaded', load);
240
241 window.onpopstate = function(e) {
242 options.OptionsPage.setState(e.state);
243 };
244
245 window.onbeforeunload = function() {
246 options.OptionsPage.willClose();
247 };
OLDNEW
« 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