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

Side by Side Diff: chrome/browser/resources/options/options.js

Issue 7003007: Apply content-security-policy to the HTML options page. This is a (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 months 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 FontSettings = options.FontSettings;
18 var ImportDataOverlay = options.ImportDataOverlay;
19 var InstantConfirmOverlay = options.InstantConfirmOverlay;
20 var LanguageOptions = options.LanguageOptions;
21 var OptionsPage = options.OptionsPage;
22 var PasswordManager = options.PasswordManager;
23 var PersonalOptions = options.PersonalOptions;
24 var Preferences = options.Preferences;
25 var ProxyOptions = options.ProxyOptions;
26 var SearchEngineManager = options.SearchEngineManager;
27 var SearchPage = options.SearchPage;
28 var SyncSetupOverlay = options.SyncSetupOverlay;
29
30 /**
31 * DOMContentLoaded handler, sets up the page.
32 */
33 function load() {
34 // Decorate the existing elements in the document.
35 cr.ui.decorate('input[pref][type=checkbox]', options.PrefCheckbox);
36 cr.ui.decorate('input[pref][type=number]', options.PrefNumber);
37 cr.ui.decorate('input[pref][type=radio]', options.PrefRadio);
38 cr.ui.decorate('input[pref][type=range]', options.PrefRange);
39 cr.ui.decorate('select[pref]', options.PrefSelect);
40 cr.ui.decorate('input[pref][type=text]', options.PrefTextField);
41 cr.ui.decorate('input[pref][type=url]', options.PrefTextField);
42 cr.ui.decorate('#content-settings-page input[type=radio]',
43 options.ContentSettingsRadio);
44
45 var menuOffPattern = /(^\?|&)menu=off($|&)/;
46 var menuDisabled = menuOffPattern.test(window.location.search);
47 // document.documentElement.setAttribute('hide-menu', menuDisabled);
48 // We can't use an attribute on the html element because of webkit bug
49 // 12519. Instead, we add a class.
50 if (menuDisabled)
51 document.documentElement.classList.add('hide-menu');
52
53 localStrings = new LocalStrings();
54
55 OptionsPage.register(SearchPage.getInstance());
56
57 OptionsPage.register(BrowserOptions.getInstance());
58 OptionsPage.registerSubPage(SearchEngineManager.getInstance(),
59 BrowserOptions.getInstance(),
60 [$('defaultSearchManageEnginesButton')]);
61 OptionsPage.register(PersonalOptions.getInstance());
62 OptionsPage.registerSubPage(AutofillOptions.getInstance(),
63 PersonalOptions.getInstance(),
64 [$('autofill-settings')]);
65 OptionsPage.registerSubPage(PasswordManager.getInstance(),
66 PersonalOptions.getInstance(),
67 [$('manage-passwords')]);
68 if (cr.isChromeOS) {
69 OptionsPage.register(SystemOptions.getInstance());
70 OptionsPage.registerSubPage(AboutPage.getInstance(),
71 SystemOptions.getInstance());
72 OptionsPage.registerSubPage(LanguageOptions.getInstance(),
73 SystemOptions.getInstance(),
74 [$('language-button')]);
75 OptionsPage.registerSubPage(
76 new OptionsPage('languageChewing',
77 templateData.languageChewingPageTabTitle,
78 'languageChewingPage'),
79 LanguageOptions.getInstance());
80 OptionsPage.registerSubPage(
81 new OptionsPage('languageHangul',
82 templateData.languageHangulPageTabTitle,
83 'languageHangulPage'),
84 LanguageOptions.getInstance());
85 OptionsPage.registerSubPage(
86 new OptionsPage('languageMozc',
87 templateData.languageMozcPageTabTitle,
88 'languageMozcPage'),
89 LanguageOptions.getInstance());
90 OptionsPage.registerSubPage(
91 new OptionsPage('languagePinyin',
92 templateData.languagePinyinPageTabTitle,
93 'languagePinyinPage'),
94 LanguageOptions.getInstance());
95 OptionsPage.register(InternetOptions.getInstance());
96 }
97 OptionsPage.register(AdvancedOptions.getInstance());
98 OptionsPage.registerSubPage(ContentSettings.getInstance(),
99 AdvancedOptions.getInstance(),
100 [$('privacyContentSettingsButton')]);
101 OptionsPage.registerSubPage(ContentSettingsExceptionsArea.getInstance(),
102 ContentSettings.getInstance());
103 OptionsPage.registerSubPage(CookiesView.getInstance(),
104 ContentSettings.getInstance(),
105 [$('privacyContentSettingsButton'),
106 $('show-cookies-button')]);
107 OptionsPage.registerSubPage(FontSettings.getInstance(),
108 AdvancedOptions.getInstance(),
109 [$('fontSettingsCustomizeFontsButton')]);
110 if (!cr.isChromeOS) {
111 OptionsPage.registerSubPage(LanguageOptions.getInstance(),
112 AdvancedOptions.getInstance(),
113 [$('language-button')]);
114 }
115 if (!cr.isWindows && !cr.isMac) {
116 OptionsPage.registerSubPage(CertificateManager.getInstance(),
117 AdvancedOptions.getInstance(),
118 [$('show-cookies-button')]);
119 OptionsPage.registerOverlay(CertificateRestoreOverlay.getInstance(),
120 CertificateManager.getInstance());
121 OptionsPage.registerOverlay(CertificateBackupOverlay.getInstance(),
122 CertificateManager.getInstance());
123 OptionsPage.registerOverlay(CertificateEditCaTrustOverlay.getInstance(),
124 CertificateManager.getInstance());
125 OptionsPage.registerOverlay(CertificateImportErrorOverlay.getInstance(),
126 CertificateManager.getInstance());
127 }
128 OptionsPage.registerOverlay(AddLanguageOverlay.getInstance(),
129 LanguageOptions.getInstance());
130 OptionsPage.registerOverlay(AlertOverlay.getInstance());
131 OptionsPage.registerOverlay(AutofillEditAddressOverlay.getInstance(),
132 AutofillOptions.getInstance());
133 OptionsPage.registerOverlay(AutofillEditCreditCardOverlay.getInstance(),
134 AutofillOptions.getInstance());
135 OptionsPage.registerOverlay(ClearBrowserDataOverlay.getInstance(),
136 AdvancedOptions.getInstance(),
137 [$('privacyClearDataButton')]);
138 OptionsPage.registerOverlay(ImportDataOverlay.getInstance(),
139 PersonalOptions.getInstance());
140 OptionsPage.registerOverlay(InstantConfirmOverlay.getInstance(),
141 BrowserOptions.getInstance());
142 OptionsPage.registerOverlay(SyncSetupOverlay.getInstance(),
143 PersonalOptions.getInstance());
144
145 if (cr.isChromeOS) {
146 OptionsPage.register(AccountsOptions.getInstance());
147 OptionsPage.registerSubPage(ProxyOptions.getInstance(),
148 AdvancedOptions.getInstance(),
149 [$('proxiesConfigureButton')]);
150 OptionsPage.registerSubPage(ChangePictureOptions.getInstance(),
151 PersonalOptions.getInstance(),
152 [$('change-picture-button')]);
153 OptionsPage.registerOverlay(new OptionsPage('detailsInternetPage',
154 'detailsInternetPage',
155 'detailsInternetPage'),
156 InternetOptions.getInstance());
157
158 var languageModifierKeysOverlay = new OptionsPage(
159 'languageCustomizeModifierKeysOverlay',
160 localStrings.getString('languageCustomizeModifierKeysOverlay'),
161 'languageCustomizeModifierKeysOverlay')
162 OptionsPage.registerOverlay(languageModifierKeysOverlay,
163 SystemOptions.getInstance(),
164 [$('modifier-keys-button')]);
165 }
166
167 Preferences.getInstance().initialize();
168 OptionsPage.initialize();
169
170 var path = document.location.pathname;
171
172 if (path.length > 1) {
173 var pageName = path.slice(1);
174 // Show page, but don't update history (there's already an entry for it).
175 OptionsPage.showPageByName(pageName, false);
176 } else {
177 OptionsPage.showDefaultPage();
178 }
179
180 var subpagesNavTabs = document.querySelectorAll('.subpages-nav-tabs');
181 for(var i = 0; i < subpagesNavTabs.length; i++) {
182 subpagesNavTabs[i].onclick = function(event) {
183 OptionsPage.showTab(event.srcElement);
184 }
185 }
186
187 // Allow platform specific CSS rules.
188 if (cr.isMac)
189 document.documentElement.setAttribute('os', 'mac');
190 if (cr.isWindows)
191 document.documentElement.setAttribute('os', 'windows');
192 if (cr.isChromeOS)
193 document.documentElement.setAttribute('os', 'chromeos');
194 if (cr.isLinux) {
195 document.documentElement.setAttribute('os', 'linux');
196 document.documentElement.setAttribute('toolkit', 'gtk');
197 }
198 if (cr.isViews)
199 document.documentElement.setAttribute('toolkit', 'views');
200 if (navigator.plugins['Shockwave Flash'])
201 document.documentElement.setAttribute('hasFlashPlugin', '');
202
203 // Clicking on the Settings title brings up the 'Basics' page.
204 $('settings-title').onclick = function() {
205 OptionsPage.navigateToPage(BrowserOptions.getInstance().name);
206 };
207 }
208
209 document.addEventListener('DOMContentLoaded', load);
210
211 window.onpopstate = function(e) {
212 options.OptionsPage.setState(e.state);
213 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698