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

Side by Side Diff: chrome/browser/resources/options/advanced_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 cr.define('options', function() {
6
7 var OptionsPage = options.OptionsPage;
8
9 //
10 // AdvancedOptions class
11 // Encapsulated handling of advanced options page.
12 //
13 function AdvancedOptions() {
14 OptionsPage.call(this, 'advanced', templateData.advancedPageTabTitle,
15 'advancedPage');
16 }
17
18 cr.addSingletonGetter(AdvancedOptions);
19
20 AdvancedOptions.prototype = {
21 // Inherit AdvancedOptions from OptionsPage.
22 __proto__: options.OptionsPage.prototype,
23
24 /**
25 * Initializes the page.
26 */
27 initializePage: function() {
28 // Call base class implementation to starts preference initialization.
29 OptionsPage.prototype.initializePage.call(this);
30
31 // Set up click handlers for buttons.
32 $('privacyContentSettingsButton').onclick = function(event) {
33 OptionsPage.navigateToPage('content');
34 OptionsPage.showTab($('cookies-nav-tab'));
35 chrome.send('coreOptionsUserMetricsAction',
36 ['Options_ContentSettings']);
37 };
38 $('privacyClearDataButton').onclick = function(event) {
39 OptionsPage.navigateToPage('clearBrowserData');
40 chrome.send('coreOptionsUserMetricsAction', ['Options_ClearData']);
41 };
42
43 // 'metricsReportingEnabled' element is only present on Chrome branded
44 // builds.
45 if ($('metricsReportingEnabled')) {
46 $('metricsReportingEnabled').onclick = function(event) {
47 chrome.send('metricsReportingCheckboxAction',
48 [String(event.target.checked)]);
49 };
50 }
51
52 if (!cr.isChromeOS) {
53 $('autoOpenFileTypesResetToDefault').onclick = function(event) {
54 chrome.send('autoOpenFileTypesAction');
55 };
56 }
57
58 $('fontSettingsCustomizeFontsButton').onclick = function(event) {
59 OptionsPage.navigateToPage('fonts');
60 chrome.send('coreOptionsUserMetricsAction', ['Options_FontSettings']);
61 };
62 $('defaultFontSize').onchange = function(event) {
63 chrome.send('defaultFontSizeAction',
64 [String(event.target.options[event.target.selectedIndex].value)]);
65 };
66 $('language-button').onclick = function(event) {
67 OptionsPage.navigateToPage('languages');
68 chrome.send('coreOptionsUserMetricsAction',
69 ['Options_LanuageAndSpellCheckSettings']);
70 };
71
72 if (cr.isWindows || cr.isMac) {
73 $('certificatesManageButton').onclick = function(event) {
74 chrome.send('showManageSSLCertificates');
75 };
76 } else {
77 $('certificatesManageButton').onclick = function(event) {
78 OptionsPage.navigateToPage('certificates');
79 OptionsPage.showTab($('personal-certs-nav-tab'));
80 chrome.send('coreOptionsUserMetricsAction',
81 ['Options_ManageSSLCertificates']);
82 };
83 }
84
85 if (!cr.isChromeOS) {
86 $('proxiesConfigureButton').onclick = function(event) {
87 chrome.send('showNetworkProxySettings');
88 };
89 $('downloadLocationChangeButton').onclick = function(event) {
90 chrome.send('selectDownloadLocation');
91 };
92 $('promptForDownload').onclick = function(event) {
93 chrome.send('promptForDownloadAction',
94 [String($('promptForDownload').checked)]);
95 };
96 } else {
97 $('proxiesConfigureButton').onclick = function(event) {
98 OptionsPage.navigateToPage('proxy');
99 chrome.send('coreOptionsUserMetricsAction',
100 ['Options_ShowProxySettings']);
101 };
102 }
103
104 $('sslCheckRevocation').onclick = function(event) {
105 chrome.send('checkRevocationCheckboxAction',
106 [String($('sslCheckRevocation').checked)]);
107 };
108 $('sslUseSSL3').onclick = function(event) {
109 chrome.send('useSSL3CheckboxAction',
110 [String($('sslUseSSL3').checked)]);
111 };
112 $('sslUseTLS1').onclick = function(event) {
113 chrome.send('useTLS1CheckboxAction',
114 [String($('sslUseTLS1').checked)]);
115 };
116
117 // 'cloudPrintProxyEnabled' is true for Chrome branded builds on
118 // certain platforms, or could be enabled by a lab.
119 if (!cr.isChromeOS) {
120 $('cloudPrintProxySetupButton').onclick = function(event) {
121 if ($('cloudPrintProxyManageButton').style.display == 'none') {
122 // Disable the button, set it's text to the intermediate state.
123 $('cloudPrintProxySetupButton').textContent =
124 localStrings.getString('cloudPrintProxyEnablingButton');
125 $('cloudPrintProxySetupButton').disabled = true;
126 chrome.send('showCloudPrintSetupDialog');
127 } else {
128 chrome.send('disableCloudPrintProxy');
129 }
130 };
131 $('cloudPrintProxyManageButton').onclick = function(event) {
132 chrome.send('showCloudPrintManagePage');
133 };
134 }
135
136 }
137 };
138
139 //
140 // Chrome callbacks
141 //
142
143 // Set the checked state of the metrics reporting checkbox.
144 AdvancedOptions.SetMetricsReportingCheckboxState = function(
145 checked, disabled) {
146 $('metricsReportingEnabled').checked = checked;
147 $('metricsReportingEnabled').disabled = disabled;
148 if (disabled)
149 $('metricsReportingEnabledText').className = 'disable-services-span';
150 }
151
152 AdvancedOptions.SetMetricsReportingSettingVisibility = function(visible) {
153 if (visible) {
154 $('metricsReportingSetting').style.display = 'block';
155 } else {
156 $('metricsReportingSetting').style.display = 'none';
157 }
158 }
159
160 // Set the font size selected item.
161 AdvancedOptions.SetFontSize = function(font_size_value) {
162 var selectCtl = $('defaultFontSize');
163 for (var i = 0; i < selectCtl.options.length; i++) {
164 if (selectCtl.options[i].value == font_size_value) {
165 selectCtl.selectedIndex = i;
166 if ($('Custom'))
167 selectCtl.remove($('Custom').index);
168 return;
169 }
170 }
171
172 // Add/Select Custom Option in the font size label list.
173 if (!$('Custom')) {
174 var option = new Option(localStrings.getString('fontSizeLabelCustom'),
175 -1, false, true);
176 option.setAttribute("id", "Custom");
177 selectCtl.add(option);
178 }
179 $('Custom').selected = true;
180 };
181
182 // Set the download path.
183 AdvancedOptions.SetDownloadLocationPath = function(path, disabled) {
184 if (!cr.isChromeOS) {
185 $('downloadLocationPath').value = path;
186 $('downloadLocationChangeButton').disabled = disabled;
187 }
188 };
189
190 // Set the prompt for download checkbox.
191 AdvancedOptions.SetPromptForDownload = function(checked, disabled) {
192 if (!cr.isChromeOS) {
193 $('promptForDownload').checked = checked;
194 $('promptForDownload').disabled = disabled;
195 if (disabled)
196 $('promptForDownloadLabel').className = 'informational-text';
197 else
198 $('promptForDownloadLabel').className = '';
199 }
200 };
201
202 // Set the enabled state for the autoOpenFileTypesResetToDefault button.
203 AdvancedOptions.SetAutoOpenFileTypesDisabledAttribute = function(disabled) {
204 if (!cr.isChromeOS) {
205 $('autoOpenFileTypesResetToDefault').disabled = disabled;
206
207 if (disabled)
208 $('auto-open-file-types-label').classList.add('disabled');
209 else
210 $('auto-open-file-types-label').classList.remove('disabled');
211 }
212 };
213
214 // Set the enabled state for the proxy settings button.
215 AdvancedOptions.SetupProxySettingsSection = function(disabled, label) {
216 $('proxiesConfigureButton').disabled = disabled;
217 $('proxiesLabel').textContent = label;
218 };
219
220 // Set the checked state for the sslCheckRevocation checkbox.
221 AdvancedOptions.SetCheckRevocationCheckboxState = function(
222 checked, disabled) {
223 $('sslCheckRevocation').checked = checked;
224 $('sslCheckRevocation').disabled = disabled;
225 };
226
227 // Set the checked state for the sslUseSSL3 checkbox.
228 AdvancedOptions.SetUseSSL3CheckboxState = function(checked, disabled) {
229 $('sslUseSSL3').checked = checked;
230 $('sslUseSSL3').disabled = disabled;
231 };
232
233 // Set the checked state for the sslUseTLS1 checkbox.
234 AdvancedOptions.SetUseTLS1CheckboxState = function(checked, disabled) {
235 $('sslUseTLS1').checked = checked;
236 $('sslUseTLS1').disabled = disabled;
237 };
238
239 // Set the Cloud Print proxy UI to enabled, disabled, or processing.
240 AdvancedOptions.SetupCloudPrintProxySection = function(
241 disabled, label, allowed) {
242 if (!cr.isChromeOS) {
243 $('cloudPrintProxyLabel').textContent = label;
244 if (disabled || !allowed) {
245 $('cloudPrintProxySetupButton').textContent =
246 localStrings.getString('cloudPrintProxyDisabledButton');
247 $('cloudPrintProxyManageButton').style.display = 'none';
248 } else {
249 $('cloudPrintProxySetupButton').textContent =
250 localStrings.getString('cloudPrintProxyEnabledButton');
251 $('cloudPrintProxyManageButton').style.display = 'inline';
252 }
253 $('cloudPrintProxySetupButton').disabled = !allowed;
254 }
255 };
256
257 AdvancedOptions.RemoveCloudPrintProxySection = function() {
258 if (!cr.isChromeOS) {
259 var proxySectionElm = $('cloud-print-proxy-section');
260 if (proxySectionElm)
261 proxySectionElm.parentNode.removeChild(proxySectionElm);
262 }
263 };
264
265 // Export
266 return {
267 AdvancedOptions: AdvancedOptions
268 };
269
270 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698