OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 cr.define('settings', function() { | 5 cr.define('settings', function() { |
6 /** | 6 /** |
7 * Class for navigable routes. May only be instantiated within this file. | 7 * Class for navigable routes. May only be instantiated within this file. |
8 * @constructor | 8 * @constructor |
9 * @param {string} path | 9 * @param {string} path |
10 * @private | 10 * @private |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
89 return !!this.parent && !!this.section && | 89 return !!this.parent && !!this.section && |
90 this.parent.section == this.section; | 90 this.parent.section == this.section; |
91 }, | 91 }, |
92 }; | 92 }; |
93 | 93 |
94 // Abbreviated variable for easier definitions. | 94 // Abbreviated variable for easier definitions. |
95 var r = Route; | 95 var r = Route; |
96 | 96 |
97 // Root pages. | 97 // Root pages. |
98 r.BASIC = new Route('/'); | 98 r.BASIC = new Route('/'); |
99 r.ADVANCED = new Route('/advanced'); | |
100 r.ABOUT = new Route('/help'); | 99 r.ABOUT = new Route('/help'); |
101 | 100 |
102 // Navigable dialogs. These are the only non-section children of root pages. | 101 // Navigable dialogs. These are the only non-section children of root pages. |
103 // These are disfavored. If we add anymore, we should add explicit support. | 102 // These are disfavored. If we add anymore, we should add explicit support. |
104 r.IMPORT_DATA = r.BASIC.createChild('/importData'); | 103 r.IMPORT_DATA = r.BASIC.createChild('/importData'); |
105 r.IMPORT_DATA.isNavigableDialog = true; | 104 r.IMPORT_DATA.isNavigableDialog = true; |
106 r.SIGN_OUT = r.BASIC.createChild('/signOut'); | 105 r.SIGN_OUT = r.BASIC.createChild('/signOut'); |
107 r.SIGN_OUT.isNavigableDialog = true; | 106 r.SIGN_OUT.isNavigableDialog = true; |
108 r.CLEAR_BROWSER_DATA = r.ADVANCED.createChild('/clearBrowserData'); | |
109 r.CLEAR_BROWSER_DATA.isNavigableDialog = true; | |
110 r.RESET_DIALOG = r.ADVANCED.createChild('/resetProfileSettings'); | |
111 r.RESET_DIALOG.isNavigableDialog = true; | |
112 r.TRIGGERED_RESET_DIALOG = | |
113 r.ADVANCED.createChild('/triggeredResetProfileSettings'); | |
114 r.TRIGGERED_RESET_DIALOG.isNavigableDialog = true; | |
115 | 107 |
116 // <if expr="chromeos"> | 108 // <if expr="chromeos"> |
117 r.INTERNET = r.BASIC.createSection('/internet', 'internet'); | 109 r.INTERNET = r.BASIC.createSection('/internet', 'internet'); |
118 r.INTERNET_NETWORKS = r.INTERNET.createChild('/networks'); | 110 r.INTERNET_NETWORKS = r.INTERNET.createChild('/networks'); |
119 r.NETWORK_CONFIG = r.INTERNET.createChild('/networkConfig'); | 111 r.NETWORK_CONFIG = r.INTERNET.createChild('/networkConfig'); |
120 r.NETWORK_DETAIL = r.INTERNET.createChild('/networkDetail'); | 112 r.NETWORK_DETAIL = r.INTERNET.createChild('/networkDetail'); |
121 r.KNOWN_NETWORKS = r.INTERNET.createChild('/knownNetworks'); | 113 r.KNOWN_NETWORKS = r.INTERNET.createChild('/knownNetworks'); |
122 r.BLUETOOTH = r.BASIC.createSection('/bluetooth', 'bluetooth'); | 114 r.BLUETOOTH = r.BASIC.createSection('/bluetooth', 'bluetooth'); |
123 r.BLUETOOTH_DEVICES = r.BLUETOOTH.createChild('/bluetoothDevices'); | 115 r.BLUETOOTH_DEVICES = r.BLUETOOTH.createChild('/bluetoothDevices'); |
124 // </if> | 116 // </if> |
125 | 117 |
126 r.APPEARANCE = r.BASIC.createSection('/appearance', 'appearance'); | 118 if (settings.pageVisibility.appearance !== false) { |
dpapad
2017/06/29 00:57:32
Can we add some tests at https://cs.chromium.org/c
scottchen
2017/07/06 01:02:24
Done.
| |
127 r.FONTS = r.APPEARANCE.createChild('/fonts'); | 119 r.APPEARANCE = r.BASIC.createSection('/appearance', 'appearance'); |
120 r.FONTS = r.APPEARANCE.createChild('/fonts'); | |
121 } | |
128 | 122 |
129 r.DEFAULT_BROWSER = | 123 if (settings.pageVisibility.defaultBrowser !== false) { |
130 r.BASIC.createSection('/defaultBrowser', 'defaultBrowser'); | 124 r.DEFAULT_BROWSER = |
125 r.BASIC.createSection('/defaultBrowser', 'defaultBrowser'); | |
126 } | |
131 | 127 |
132 r.SEARCH = r.BASIC.createSection('/search', 'search'); | 128 r.SEARCH = r.BASIC.createSection('/search', 'search'); |
133 r.SEARCH_ENGINES = r.SEARCH.createChild('/searchEngines'); | 129 r.SEARCH_ENGINES = r.SEARCH.createChild('/searchEngines'); |
134 | 130 |
135 // <if expr="chromeos"> | 131 // <if expr="chromeos"> |
136 r.ANDROID_APPS = r.BASIC.createSection('/androidApps', 'androidApps'); | 132 r.ANDROID_APPS = r.BASIC.createSection('/androidApps', 'androidApps'); |
137 r.ANDROID_APPS_DETAILS = r.ANDROID_APPS.createChild('/androidApps/details'); | 133 r.ANDROID_APPS_DETAILS = r.ANDROID_APPS.createChild('/androidApps/details'); |
138 // </if> | 134 // </if> |
139 | 135 |
140 r.ON_STARTUP = r.BASIC.createSection('/onStartup', 'onStartup'); | 136 if (settings.pageVisibility.onStartup !== false) { |
137 r.ON_STARTUP = r.BASIC.createSection('/onStartup', 'onStartup'); | |
138 } | |
141 | 139 |
142 r.PEOPLE = r.BASIC.createSection('/people', 'people'); | 140 if (settings.pageVisibility.people !== false) { |
143 r.SYNC = r.PEOPLE.createChild('/syncSetup'); | 141 r.PEOPLE = r.BASIC.createSection('/people', 'people'); |
144 // <if expr="not chromeos"> | 142 r.SYNC = r.PEOPLE.createChild('/syncSetup'); |
145 r.MANAGE_PROFILE = r.PEOPLE.createChild('/manageProfile'); | 143 // <if expr="not chromeos"> |
146 // </if> | 144 r.MANAGE_PROFILE = r.PEOPLE.createChild('/manageProfile'); |
145 // </if> | |
146 // <if expr="chromeos"> | |
147 r.CHANGE_PICTURE = r.PEOPLE.createChild('/changePicture'); | |
148 r.ACCOUNTS = r.PEOPLE.createChild('/accounts'); | |
149 r.LOCK_SCREEN = r.PEOPLE.createChild('/lockScreen'); | |
150 r.FINGERPRINT = r.LOCK_SCREEN.createChild('/lockScreen/fingerprint'); | |
151 // </if> | |
152 } | |
153 | |
147 // <if expr="chromeos"> | 154 // <if expr="chromeos"> |
148 r.CHANGE_PICTURE = r.PEOPLE.createChild('/changePicture'); | |
149 r.ACCOUNTS = r.PEOPLE.createChild('/accounts'); | |
150 r.LOCK_SCREEN = r.PEOPLE.createChild('/lockScreen'); | |
151 r.FINGERPRINT = r.LOCK_SCREEN.createChild('/lockScreen/fingerprint'); | |
152 | |
153 r.DEVICE = r.BASIC.createSection('/device', 'device'); | 155 r.DEVICE = r.BASIC.createSection('/device', 'device'); |
154 r.POINTERS = r.DEVICE.createChild('/pointer-overlay'); | 156 r.POINTERS = r.DEVICE.createChild('/pointer-overlay'); |
155 r.KEYBOARD = r.DEVICE.createChild('/keyboard-overlay'); | 157 r.KEYBOARD = r.DEVICE.createChild('/keyboard-overlay'); |
156 r.STYLUS = r.DEVICE.createChild('/stylus'); | 158 r.STYLUS = r.DEVICE.createChild('/stylus'); |
157 r.DISPLAY = r.DEVICE.createChild('/display'); | 159 r.DISPLAY = r.DEVICE.createChild('/display'); |
158 r.STORAGE = r.DEVICE.createChild('/storage'); | 160 r.STORAGE = r.DEVICE.createChild('/storage'); |
159 r.POWER = r.DEVICE.createChild('/power'); | 161 r.POWER = r.DEVICE.createChild('/power'); |
160 // </if> | 162 // </if> |
161 | 163 |
162 r.PRIVACY = r.ADVANCED.createSection('/privacy', 'privacy'); | 164 // Advacned Routes |
163 r.CERTIFICATES = r.PRIVACY.createChild('/certificates'); | 165 if (settings.pageVisibility.advancedSettings !== false) { |
166 r.ADVANCED = new Route('/advanced'); | |
164 | 167 |
165 r.SITE_SETTINGS = r.PRIVACY.createChild('/content'); | 168 r.CLEAR_BROWSER_DATA = r.ADVANCED.createChild('/clearBrowserData'); |
169 r.CLEAR_BROWSER_DATA.isNavigableDialog = true; | |
166 | 170 |
167 if (loadTimeData.getBoolean('enableSiteSettings')) { | 171 if (settings.pageVisibility.privacy !== false) { |
168 r.SITE_SETTINGS_ALL = r.SITE_SETTINGS.createChild('all'); | 172 r.PRIVACY = r.ADVANCED.createSection('/privacy', 'privacy'); |
169 r.SITE_SETTINGS_SITE_DETAILS = | 173 r.CERTIFICATES = r.PRIVACY.createChild('/certificates'); |
170 r.SITE_SETTINGS_ALL.createChild('/content/siteDetails'); | 174 r.SITE_SETTINGS = r.PRIVACY.createChild('/content'); |
171 } else if (loadTimeData.getBoolean('enableSiteDetails')) { | 175 } |
172 // When there is no "All Sites", pressing 'back' from "Site Details" should | 176 |
173 // return to "Content Settings". This should only occur when |kSiteSettings| | 177 if (loadTimeData.getBoolean('enableSiteSettings')) { |
174 // is off and |kSiteDetails| is on. | 178 r.SITE_SETTINGS_ALL = r.SITE_SETTINGS.createChild('all'); |
175 r.SITE_SETTINGS_SITE_DETAILS = | 179 r.SITE_SETTINGS_SITE_DETAILS = |
176 r.SITE_SETTINGS.createChild('/content/siteDetails'); | 180 r.SITE_SETTINGS_ALL.createChild('/content/siteDetails'); |
181 } else if (loadTimeData.getBoolean('enableSiteDetails')) { | |
182 // When there is no "All Sites", pressing 'back' from "Site Details" | |
183 // should return to "Content Settings". This should only occur when | |
184 // |kSiteSettings| is off and |kSiteDetails| is on. | |
185 r.SITE_SETTINGS_SITE_DETAILS = | |
186 r.SITE_SETTINGS.createChild('/content/siteDetails'); | |
187 } | |
188 | |
189 r.SITE_SETTINGS_HANDLERS = r.SITE_SETTINGS.createChild('/handlers'); | |
190 | |
191 // TODO(tommycli): Find a way to refactor these repetitive category routes. | |
192 r.SITE_SETTINGS_ADS = r.SITE_SETTINGS.createChild('ads'); | |
193 r.SITE_SETTINGS_AUTOMATIC_DOWNLOADS = | |
194 r.SITE_SETTINGS.createChild('automaticDownloads'); | |
195 r.SITE_SETTINGS_BACKGROUND_SYNC = | |
196 r.SITE_SETTINGS.createChild('backgroundSync'); | |
197 r.SITE_SETTINGS_CAMERA = r.SITE_SETTINGS.createChild('camera'); | |
198 r.SITE_SETTINGS_COOKIES = r.SITE_SETTINGS.createChild('cookies'); | |
199 r.SITE_SETTINGS_DATA_DETAILS = | |
200 r.SITE_SETTINGS_COOKIES.createChild('/cookies/detail'); | |
201 r.SITE_SETTINGS_IMAGES = r.SITE_SETTINGS.createChild('images'); | |
202 r.SITE_SETTINGS_JAVASCRIPT = r.SITE_SETTINGS.createChild('javascript'); | |
203 r.SITE_SETTINGS_LOCATION = r.SITE_SETTINGS.createChild('location'); | |
204 r.SITE_SETTINGS_MICROPHONE = r.SITE_SETTINGS.createChild('microphone'); | |
205 r.SITE_SETTINGS_NOTIFICATIONS = | |
206 r.SITE_SETTINGS.createChild('notifications'); | |
207 r.SITE_SETTINGS_FLASH = r.SITE_SETTINGS.createChild('flash'); | |
208 r.SITE_SETTINGS_POPUPS = r.SITE_SETTINGS.createChild('popups'); | |
209 r.SITE_SETTINGS_UNSANDBOXED_PLUGINS = | |
210 r.SITE_SETTINGS.createChild('unsandboxedPlugins'); | |
211 r.SITE_SETTINGS_MIDI_DEVICES = r.SITE_SETTINGS.createChild('midiDevices'); | |
212 r.SITE_SETTINGS_USB_DEVICES = r.SITE_SETTINGS.createChild('usbDevices'); | |
213 r.SITE_SETTINGS_ZOOM_LEVELS = r.SITE_SETTINGS.createChild('zoomLevels'); | |
214 r.SITE_SETTINGS_PDF_DOCUMENTS = r.SITE_SETTINGS.createChild('pdfDocuments'); | |
215 r.SITE_SETTINGS_PROTECTED_CONTENT = | |
216 r.SITE_SETTINGS.createChild('protectedContent'); | |
217 | |
218 // <if expr="chromeos"> | |
219 if (settings.pageVisibility.dateTime !== false) { | |
220 r.DATETIME = r.ADVANCED.createSection('/dateTime', 'dateTime'); | |
221 } | |
222 // </if> | |
223 | |
224 if (settings.pageVisibility.passwordsAndForms !== false) { | |
225 r.PASSWORDS = | |
226 r.ADVANCED.createSection('/passwordsAndForms', 'passwordsAndForms'); | |
227 r.AUTOFILL = r.PASSWORDS.createChild('/autofill'); | |
228 r.MANAGE_PASSWORDS = r.PASSWORDS.createChild('/passwords'); | |
229 } | |
230 | |
231 r.LANGUAGES = r.ADVANCED.createSection('/languages', 'languages'); | |
232 // <if expr="chromeos"> | |
233 r.INPUT_METHODS = r.LANGUAGES.createChild('/inputMethods'); | |
234 // </if> | |
235 // <if expr="not is_macosx"> | |
236 r.EDIT_DICTIONARY = r.LANGUAGES.createChild('/editDictionary'); | |
237 // </if> | |
238 | |
239 if (settings.pageVisibility.downloads !== false) { | |
240 r.DOWNLOADS = r.ADVANCED.createSection('/downloads', 'downloads'); | |
241 } | |
242 | |
243 r.PRINTING = r.ADVANCED.createSection('/printing', 'printing'); | |
244 r.CLOUD_PRINTERS = r.PRINTING.createChild('/cloudPrinters'); | |
245 // <if expr="chromeos"> | |
246 r.CUPS_PRINTERS = r.PRINTING.createChild('/cupsPrinters'); | |
247 r.CUPS_PRINTER_DETAIL = r.CUPS_PRINTERS.createChild('/cupsPrinterDetails'); | |
248 // </if> | |
249 | |
250 r.ACCESSIBILITY = r.ADVANCED.createSection('/accessibility', 'a11y'); | |
251 // <if expr="chromeos"> | |
252 r.MANAGE_ACCESSIBILITY = | |
253 r.ACCESSIBILITY.createChild('/manageAccessibility'); | |
254 // </if> | |
255 | |
256 r.SYSTEM = r.ADVANCED.createSection('/system', 'system'); | |
257 | |
258 if (settings.pageVisibility.reset !== false) { | |
259 r.RESET = r.ADVANCED.createSection('/reset', 'reset'); | |
260 r.RESET_DIALOG = r.ADVANCED.createChild('/resetProfileSettings'); | |
261 r.RESET_DIALOG.isNavigableDialog = true; | |
262 r.TRIGGERED_RESET_DIALOG = | |
263 r.ADVANCED.createChild('/triggeredResetProfileSettings'); | |
264 r.TRIGGERED_RESET_DIALOG.isNavigableDialog = true; | |
265 } | |
177 } | 266 } |
178 | 267 |
179 r.SITE_SETTINGS_HANDLERS = r.SITE_SETTINGS.createChild('/handlers'); | |
180 | |
181 // TODO(tommycli): Find a way to refactor these repetitive category routes. | |
182 r.SITE_SETTINGS_ADS = r.SITE_SETTINGS.createChild('ads'); | |
183 r.SITE_SETTINGS_AUTOMATIC_DOWNLOADS = | |
184 r.SITE_SETTINGS.createChild('automaticDownloads'); | |
185 r.SITE_SETTINGS_BACKGROUND_SYNC = | |
186 r.SITE_SETTINGS.createChild('backgroundSync'); | |
187 r.SITE_SETTINGS_CAMERA = r.SITE_SETTINGS.createChild('camera'); | |
188 r.SITE_SETTINGS_COOKIES = r.SITE_SETTINGS.createChild('cookies'); | |
189 r.SITE_SETTINGS_DATA_DETAILS = | |
190 r.SITE_SETTINGS_COOKIES.createChild('/cookies/detail'); | |
191 r.SITE_SETTINGS_IMAGES = r.SITE_SETTINGS.createChild('images'); | |
192 r.SITE_SETTINGS_JAVASCRIPT = r.SITE_SETTINGS.createChild('javascript'); | |
193 r.SITE_SETTINGS_LOCATION = r.SITE_SETTINGS.createChild('location'); | |
194 r.SITE_SETTINGS_MICROPHONE = r.SITE_SETTINGS.createChild('microphone'); | |
195 r.SITE_SETTINGS_NOTIFICATIONS = r.SITE_SETTINGS.createChild('notifications'); | |
196 r.SITE_SETTINGS_FLASH = r.SITE_SETTINGS.createChild('flash'); | |
197 r.SITE_SETTINGS_POPUPS = r.SITE_SETTINGS.createChild('popups'); | |
198 r.SITE_SETTINGS_UNSANDBOXED_PLUGINS = | |
199 r.SITE_SETTINGS.createChild('unsandboxedPlugins'); | |
200 r.SITE_SETTINGS_MIDI_DEVICES = r.SITE_SETTINGS.createChild('midiDevices'); | |
201 r.SITE_SETTINGS_USB_DEVICES = r.SITE_SETTINGS.createChild('usbDevices'); | |
202 r.SITE_SETTINGS_ZOOM_LEVELS = r.SITE_SETTINGS.createChild('zoomLevels'); | |
203 r.SITE_SETTINGS_PDF_DOCUMENTS = r.SITE_SETTINGS.createChild('pdfDocuments'); | |
204 r.SITE_SETTINGS_PROTECTED_CONTENT = | |
205 r.SITE_SETTINGS.createChild('protectedContent'); | |
206 | |
207 // <if expr="chromeos"> | |
208 r.DATETIME = r.ADVANCED.createSection('/dateTime', 'dateTime'); | |
209 // </if> | |
210 | |
211 r.PASSWORDS = | |
212 r.ADVANCED.createSection('/passwordsAndForms', 'passwordsAndForms'); | |
213 r.AUTOFILL = r.PASSWORDS.createChild('/autofill'); | |
214 r.MANAGE_PASSWORDS = r.PASSWORDS.createChild('/passwords'); | |
215 | |
216 r.LANGUAGES = r.ADVANCED.createSection('/languages', 'languages'); | |
217 // <if expr="chromeos"> | |
218 r.INPUT_METHODS = r.LANGUAGES.createChild('/inputMethods'); | |
219 // </if> | |
220 // <if expr="not is_macosx"> | |
221 r.EDIT_DICTIONARY = r.LANGUAGES.createChild('/editDictionary'); | |
222 // </if> | |
223 | |
224 r.DOWNLOADS = r.ADVANCED.createSection('/downloads', 'downloads'); | |
225 | |
226 r.PRINTING = r.ADVANCED.createSection('/printing', 'printing'); | |
227 r.CLOUD_PRINTERS = r.PRINTING.createChild('/cloudPrinters'); | |
228 // <if expr="chromeos"> | |
229 r.CUPS_PRINTERS = r.PRINTING.createChild('/cupsPrinters'); | |
230 r.CUPS_PRINTER_DETAIL = r.CUPS_PRINTERS.createChild('/cupsPrinterDetails'); | |
231 // </if> | |
232 | |
233 r.ACCESSIBILITY = r.ADVANCED.createSection('/accessibility', 'a11y'); | |
234 // <if expr="chromeos"> | |
235 r.MANAGE_ACCESSIBILITY = r.ACCESSIBILITY.createChild('/manageAccessibility'); | |
236 // </if> | |
237 | |
238 r.SYSTEM = r.ADVANCED.createSection('/system', 'system'); | |
239 r.RESET = r.ADVANCED.createSection('/reset', 'reset'); | |
240 | |
241 // <if expr="chromeos"> | 268 // <if expr="chromeos"> |
242 // "About" is the only section in About, but we still need to create the route | 269 // "About" is the only section in About, but we still need to create the route |
243 // in order to show the subpage on Chrome OS. | 270 // in order to show the subpage on Chrome OS. |
244 r.ABOUT_ABOUT = r.ABOUT.createSection('/help/about', 'about'); | 271 r.ABOUT_ABOUT = r.ABOUT.createSection('/help/about', 'about'); |
245 r.DETAILED_BUILD_INFO = r.ABOUT_ABOUT.createChild('/help/details'); | 272 r.DETAILED_BUILD_INFO = r.ABOUT_ABOUT.createChild('/help/details'); |
246 // </if> | 273 // </if> |
247 | 274 |
248 var routeObservers = new Set(); | 275 var routeObservers = new Set(); |
249 | 276 |
250 /** @polymerBehavior */ | 277 /** @polymerBehavior */ |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
434 getRouteForPath: getRouteForPath, | 461 getRouteForPath: getRouteForPath, |
435 initializeRouteFromUrl: initializeRouteFromUrl, | 462 initializeRouteFromUrl: initializeRouteFromUrl, |
436 resetRouteForTesting: resetRouteForTesting, | 463 resetRouteForTesting: resetRouteForTesting, |
437 getCurrentRoute: getCurrentRoute, | 464 getCurrentRoute: getCurrentRoute, |
438 getQueryParameters: getQueryParameters, | 465 getQueryParameters: getQueryParameters, |
439 lastRouteChangeWasPopstate: lastRouteChangeWasPopstate, | 466 lastRouteChangeWasPopstate: lastRouteChangeWasPopstate, |
440 navigateTo: navigateTo, | 467 navigateTo: navigateTo, |
441 navigateToPreviousRoute: navigateToPreviousRoute, | 468 navigateToPreviousRoute: navigateToPreviousRoute, |
442 }; | 469 }; |
443 }); | 470 }); |
OLD | NEW |