OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * 'settings-privacy-page' is the settings page containing privacy and | 7 * 'settings-privacy-page' is the settings page containing privacy and |
8 * security settings. | 8 * security settings. |
9 */ | 9 */ |
10 (function() { | 10 (function() { |
11 | 11 |
12 /** | 12 /** |
13 * Must be kept in sync with the C++ enum of the same name. | 13 * Must be kept in sync with the C++ enum of the same name. |
14 * @enum {number} | 14 * @enum {number} |
15 */ | 15 */ |
16 var NetworkPredictionOptions = { | 16 var NetworkPredictionOptions = {ALWAYS: 0, WIFI_ONLY: 1, NEVER: 2, DEFAULT: 1}; |
17 ALWAYS: 0, | |
18 WIFI_ONLY: 1, | |
19 NEVER: 2, | |
20 DEFAULT: 1 | |
21 }; | |
22 | 17 |
23 Polymer({ | 18 Polymer({ |
24 is: 'settings-privacy-page', | 19 is: 'settings-privacy-page', |
25 | 20 |
26 behaviors: [ | 21 behaviors: [ |
27 settings.RouteObserverBehavior, | 22 settings.RouteObserverBehavior, |
28 I18nBehavior, | 23 I18nBehavior, |
29 WebUIListenerBehavior, | 24 WebUIListenerBehavior, |
30 ], | 25 ], |
31 | 26 |
(...skipping 13 matching lines...) Expand all Loading... |
45 pageVisibility: Object, | 40 pageVisibility: Object, |
46 | 41 |
47 /** @private */ | 42 /** @private */ |
48 isGuest_: { | 43 isGuest_: { |
49 type: Boolean, | 44 type: Boolean, |
50 value: function() { | 45 value: function() { |
51 return loadTimeData.getBoolean('isGuest'); | 46 return loadTimeData.getBoolean('isGuest'); |
52 } | 47 } |
53 }, | 48 }, |
54 | 49 |
55 // <if expr="_google_chrome and not chromeos"> | 50 // <if expr="_google_chrome and not chromeos"> |
56 // TODO(dbeam): make a virtual.* pref namespace and set/get this normally | 51 // TODO(dbeam): make a virtual.* pref namespace and set/get this normally |
57 // (but handled differently in C++). | 52 // (but handled differently in C++). |
58 /** @private {chrome.settingsPrivate.PrefObject} */ | 53 /** @private {chrome.settingsPrivate.PrefObject} */ |
59 metricsReportingPref_: { | 54 metricsReportingPref_: { |
60 type: Object, | 55 type: Object, |
61 value: function() { | 56 value: function() { |
62 // TODO(dbeam): this is basically only to appease PrefControlBehavior. | 57 // TODO(dbeam): this is basically only to appease PrefControlBehavior. |
63 // Maybe add a no-validate attribute instead? This makes little sense. | 58 // Maybe add a no-validate attribute instead? This makes little sense. |
64 return /** @type {chrome.settingsPrivate.PrefObject} */({}); | 59 return /** @type {chrome.settingsPrivate.PrefObject} */ ({}); |
65 }, | 60 }, |
66 }, | 61 }, |
67 | 62 |
68 showRestart_: Boolean, | 63 showRestart_: Boolean, |
69 // </if> | 64 // </if> |
70 | 65 |
71 /** @private {chrome.settingsPrivate.PrefObject} */ | 66 /** @private {chrome.settingsPrivate.PrefObject} */ |
72 safeBrowsingExtendedReportingPref_: { | 67 safeBrowsingExtendedReportingPref_: { |
73 type: Object, | 68 type: Object, |
74 value: function() { | 69 value: function() { |
75 return /** @type {chrome.settingsPrivate.PrefObject} */({}); | 70 return /** @type {chrome.settingsPrivate.PrefObject} */ ({}); |
76 }, | 71 }, |
77 }, | 72 }, |
78 | 73 |
79 /** @private */ | 74 /** @private */ |
80 showClearBrowsingDataDialog_: Boolean, | 75 showClearBrowsingDataDialog_: Boolean, |
81 | 76 |
82 /** @private */ | 77 /** @private */ |
83 showDoNotTrackDialog_: { | 78 showDoNotTrackDialog_: { |
84 type: Boolean, | 79 type: Boolean, |
85 value: false, | 80 value: false, |
(...skipping 16 matching lines...) Expand all Loading... |
102 value: function() { | 97 value: function() { |
103 return loadTimeData.getBoolean('enableSafeBrowsingSubresourceFilter'); | 98 return loadTimeData.getBoolean('enableSafeBrowsingSubresourceFilter'); |
104 } | 99 } |
105 }, | 100 }, |
106 | 101 |
107 /** @private {!Map<string, string>} */ | 102 /** @private {!Map<string, string>} */ |
108 focusConfig_: { | 103 focusConfig_: { |
109 type: Object, | 104 type: Object, |
110 value: function() { | 105 value: function() { |
111 var map = new Map(); | 106 var map = new Map(); |
112 // <if expr="use_nss_certs"> | 107 // <if expr="use_nss_certs"> |
113 map.set( | 108 map.set( |
114 settings.Route.CERTIFICATES.path, | 109 settings.Route.CERTIFICATES.path, |
115 '#manageCertificates .subpage-arrow'); | 110 '#manageCertificates .subpage-arrow'); |
116 // </if> | 111 // </if> |
117 map.set( | 112 map.set( |
118 settings.Route.SITE_SETTINGS.path, | 113 settings.Route.SITE_SETTINGS.path, |
119 '#site-settings-subpage-trigger .subpage-arrow'); | 114 '#site-settings-subpage-trigger .subpage-arrow'); |
120 return map; | 115 return map; |
121 }, | 116 }, |
122 }, | 117 }, |
123 }, | 118 }, |
124 | 119 |
125 listeners: { | 120 listeners: { |
126 'doNotTrackDialogIf.dom-change': 'onDoNotTrackDomChange_', | 121 'doNotTrackDialogIf.dom-change': 'onDoNotTrackDomChange_', |
127 }, | 122 }, |
128 | 123 |
129 /** @override */ | 124 /** @override */ |
130 ready: function() { | 125 ready: function() { |
131 this.ContentSettingsTypes = settings.ContentSettingsTypes; | 126 this.ContentSettingsTypes = settings.ContentSettingsTypes; |
132 | 127 |
133 this.browserProxy_ = settings.PrivacyPageBrowserProxyImpl.getInstance(); | 128 this.browserProxy_ = settings.PrivacyPageBrowserProxyImpl.getInstance(); |
134 | 129 |
135 // <if expr="_google_chrome and not chromeos"> | 130 // <if expr="_google_chrome and not chromeos"> |
136 var setMetricsReportingPref = this.setMetricsReportingPref_.bind(this); | 131 var setMetricsReportingPref = this.setMetricsReportingPref_.bind(this); |
137 this.addWebUIListener('metrics-reporting-change', setMetricsReportingPref); | 132 this.addWebUIListener('metrics-reporting-change', setMetricsReportingPref); |
138 this.browserProxy_.getMetricsReporting().then(setMetricsReportingPref); | 133 this.browserProxy_.getMetricsReporting().then(setMetricsReportingPref); |
139 // </if> | 134 // </if> |
140 | 135 |
141 var setSber = this.setSafeBrowsingExtendedReporting_.bind(this); | 136 var setSber = this.setSafeBrowsingExtendedReporting_.bind(this); |
142 this.addWebUIListener('safe-browsing-extended-reporting-change', setSber); | 137 this.addWebUIListener('safe-browsing-extended-reporting-change', setSber); |
143 this.browserProxy_.getSafeBrowsingExtendedReporting().then(setSber); | 138 this.browserProxy_.getSafeBrowsingExtendedReporting().then(setSber); |
144 }, | 139 }, |
145 | 140 |
146 /** @protected */ | 141 /** @protected */ |
147 currentRouteChanged: function() { | 142 currentRouteChanged: function() { |
148 this.showClearBrowsingDataDialog_ = | 143 this.showClearBrowsingDataDialog_ = |
149 settings.getCurrentRoute() == settings.Route.CLEAR_BROWSER_DATA; | 144 settings.getCurrentRoute() == settings.Route.CLEAR_BROWSER_DATA; |
150 }, | 145 }, |
151 | 146 |
152 /** | 147 /** |
153 * @param {Event} event | 148 * @param {Event} event |
154 * @private | 149 * @private |
155 */ | 150 */ |
156 onDoNotTrackDomChange_: function(event) { | 151 onDoNotTrackDomChange_: function(event) { |
157 if (this.showDoNotTrackDialog_) | 152 if (this.showDoNotTrackDialog_) |
158 this.maybeShowDoNotTrackDialog_(); | 153 this.maybeShowDoNotTrackDialog_(); |
159 }, | 154 }, |
160 | 155 |
161 /** | 156 /** |
162 * Handles the change event for the do-not-track toggle. Shows a | 157 * Handles the change event for the do-not-track toggle. Shows a |
163 * confirmation dialog when enabling the setting. | 158 * confirmation dialog when enabling the setting. |
164 * @param {Event} event | 159 * @param {Event} event |
165 * @private | 160 * @private |
166 */ | 161 */ |
167 onDoNotTrackChange_: function(event) { | 162 onDoNotTrackChange_: function(event) { |
168 var target = /** @type {!SettingsToggleButtonElement} */(event.target); | 163 var target = /** @type {!SettingsToggleButtonElement} */ (event.target); |
169 if (!target.checked) { | 164 if (!target.checked) { |
170 // Always allow disabling the pref. | 165 // Always allow disabling the pref. |
171 target.sendPrefChange(); | 166 target.sendPrefChange(); |
172 return; | 167 return; |
173 } | 168 } |
174 this.showDoNotTrackDialog_ = true; | 169 this.showDoNotTrackDialog_ = true; |
175 // If the dialog has already been stamped, show it. Otherwise it will be | 170 // If the dialog has already been stamped, show it. Otherwise it will be |
176 // shown in onDomChange_. | 171 // shown in onDomChange_. |
177 this.maybeShowDoNotTrackDialog_(); | 172 this.maybeShowDoNotTrackDialog_(); |
178 }, | 173 }, |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 * @private | 206 * @private |
212 */ | 207 */ |
213 onDoNotTrackDialogCancel_: function() { | 208 onDoNotTrackDialogCancel_: function() { |
214 /** @type {!SettingsToggleButtonElement} */ (this.$.doNotTrack) | 209 /** @type {!SettingsToggleButtonElement} */ (this.$.doNotTrack) |
215 .resetToPrefValue(); | 210 .resetToPrefValue(); |
216 this.closeDoNotTrackDialog_(); | 211 this.closeDoNotTrackDialog_(); |
217 }, | 212 }, |
218 | 213 |
219 /** @private */ | 214 /** @private */ |
220 onManageCertificatesTap_: function() { | 215 onManageCertificatesTap_: function() { |
221 // <if expr="use_nss_certs"> | 216 // <if expr="use_nss_certs"> |
222 settings.navigateTo(settings.Route.CERTIFICATES); | 217 settings.navigateTo(settings.Route.CERTIFICATES); |
223 // </if> | 218 // </if> |
224 // <if expr="is_win or is_macosx"> | 219 // <if expr="is_win or is_macosx"> |
225 this.browserProxy_.showManageSSLCertificates(); | 220 this.browserProxy_.showManageSSLCertificates(); |
226 // </if> | 221 // </if> |
227 }, | 222 }, |
228 | 223 |
229 /** | 224 /** |
230 * This is a workaround to connect the remove all button to the subpage. | 225 * This is a workaround to connect the remove all button to the subpage. |
231 * @private | 226 * @private |
232 */ | 227 */ |
233 onRemoveAllCookiesFromSite_: function() { | 228 onRemoveAllCookiesFromSite_: function() { |
234 var node = /** @type {?SiteDataDetailsSubpageElement} */(this.$$( | 229 var node = /** @type {?SiteDataDetailsSubpageElement} */ ( |
235 'site-data-details-subpage')); | 230 this.$$('site-data-details-subpage')); |
236 if (node) | 231 if (node) |
237 node.removeAll(); | 232 node.removeAll(); |
238 }, | 233 }, |
239 | 234 |
240 /** @private */ | 235 /** @private */ |
241 onSiteSettingsTap_: function() { | 236 onSiteSettingsTap_: function() { |
242 settings.navigateTo(settings.Route.SITE_SETTINGS); | 237 settings.navigateTo(settings.Route.SITE_SETTINGS); |
243 }, | 238 }, |
244 | 239 |
245 /** @private */ | 240 /** @private */ |
246 onClearBrowsingDataTap_: function() { | 241 onClearBrowsingDataTap_: function() { |
247 settings.navigateTo(settings.Route.CLEAR_BROWSER_DATA); | 242 settings.navigateTo(settings.Route.CLEAR_BROWSER_DATA); |
248 }, | 243 }, |
249 | 244 |
250 /** @private */ | 245 /** @private */ |
251 onDialogClosed_: function() { | 246 onDialogClosed_: function() { |
252 settings.navigateToPreviousRoute(); | 247 settings.navigateToPreviousRoute(); |
253 cr.ui.focusWithoutInk(assert(this.$.clearBrowsingDataTrigger)); | 248 cr.ui.focusWithoutInk(assert(this.$.clearBrowsingDataTrigger)); |
254 }, | 249 }, |
255 | 250 |
256 /** @private */ | 251 /** @private */ |
257 onSberChange_: function() { | 252 onSberChange_: function() { |
258 var enabled = this.$.safeBrowsingExtendedReportingControl.checked; | 253 var enabled = this.$.safeBrowsingExtendedReportingControl.checked; |
259 this.browserProxy_.setSafeBrowsingExtendedReportingEnabled(enabled); | 254 this.browserProxy_.setSafeBrowsingExtendedReportingEnabled(enabled); |
260 }, | 255 }, |
261 | 256 |
262 // <if expr="_google_chrome and not chromeos"> | 257 // <if expr="_google_chrome and not chromeos"> |
263 /** @private */ | 258 /** @private */ |
264 onMetricsReportingChange_: function() { | 259 onMetricsReportingChange_: function() { |
265 var enabled = this.$.metricsReportingControl.checked; | 260 var enabled = this.$.metricsReportingControl.checked; |
266 this.browserProxy_.setMetricsReportingEnabled(enabled); | 261 this.browserProxy_.setMetricsReportingEnabled(enabled); |
267 }, | 262 }, |
268 | 263 |
269 /** | 264 /** |
270 * @param {!MetricsReporting} metricsReporting | 265 * @param {!MetricsReporting} metricsReporting |
271 * @private | 266 * @private |
272 */ | 267 */ |
(...skipping 21 matching lines...) Expand all Loading... |
294 }, | 289 }, |
295 | 290 |
296 /** | 291 /** |
297 * @param {Event} e | 292 * @param {Event} e |
298 * @private | 293 * @private |
299 */ | 294 */ |
300 onRestartTap_: function(e) { | 295 onRestartTap_: function(e) { |
301 e.stopPropagation(); | 296 e.stopPropagation(); |
302 settings.LifetimeBrowserProxyImpl.getInstance().restart(); | 297 settings.LifetimeBrowserProxyImpl.getInstance().restart(); |
303 }, | 298 }, |
304 // </if> | 299 // </if> |
305 | 300 |
306 /** | 301 /** |
307 * @param {boolean} enabled Whether reporting is enabled or not. | 302 * @param {boolean} enabled Whether reporting is enabled or not. |
308 * @private | 303 * @private |
309 */ | 304 */ |
310 setSafeBrowsingExtendedReporting_: function(enabled) { | 305 setSafeBrowsingExtendedReporting_: function(enabled) { |
311 // Ignore the next change because it will happen when we set the pref. | 306 // Ignore the next change because it will happen when we set the pref. |
312 this.safeBrowsingExtendedReportingPref_ = { | 307 this.safeBrowsingExtendedReportingPref_ = { |
313 key: '', | 308 key: '', |
314 type: chrome.settingsPrivate.PrefType.BOOLEAN, | 309 type: chrome.settingsPrivate.PrefType.BOOLEAN, |
315 value: enabled, | 310 value: enabled, |
316 }; | 311 }; |
317 }, | 312 }, |
318 | 313 |
319 /** | 314 /** |
320 * The sub-page title for the site or content settings. | 315 * The sub-page title for the site or content settings. |
321 * @return {string} | 316 * @return {string} |
322 * @private | 317 * @private |
323 */ | 318 */ |
324 siteSettingsPageTitle_: function() { | 319 siteSettingsPageTitle_: function() { |
325 return loadTimeData.getBoolean('enableSiteSettings') ? | 320 return loadTimeData.getBoolean('enableSiteSettings') ? |
326 loadTimeData.getString('siteSettings') : | 321 loadTimeData.getString('siteSettings') : |
327 loadTimeData.getString('contentSettings'); | 322 loadTimeData.getString('contentSettings'); |
328 }, | 323 }, |
329 | 324 |
330 /** @private */ | 325 /** @private */ |
331 getProtectedContentLabel_: function(value) { | 326 getProtectedContentLabel_: function(value) { |
332 return value ? this.i18n('siteSettingsProtectedContentEnable') | 327 return value ? this.i18n('siteSettingsProtectedContentEnable') : |
333 : this.i18n('siteSettingsBlocked'); | 328 this.i18n('siteSettingsBlocked'); |
334 }, | 329 }, |
335 | 330 |
336 /** @private */ | 331 /** @private */ |
337 getProtectedContentIdentifiersLabel_: function(value) { | 332 getProtectedContentIdentifiersLabel_: function(value) { |
338 return value ? this.i18n('siteSettingsProtectedContentEnableIdentifiers') | 333 return value ? this.i18n('siteSettingsProtectedContentEnableIdentifiers') : |
339 : this.i18n('siteSettingsBlocked'); | 334 this.i18n('siteSettingsBlocked'); |
340 }, | 335 }, |
341 }); | 336 }); |
342 })(); | 337 })(); |
OLD | NEW |