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

Side by Side Diff: chrome/browser/resources/settings/settings_page/settings_router.js

Issue 1815523002: [MD settings] remove breadcrumb code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
« no previous file with comments | « no previous file | chrome/browser/resources/settings/settings_resources.grd » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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-router' is a simple router for settings. Its responsibilities: 7 * 'settings-router' is a simple router for settings. Its responsibilities:
8 * - Update the URL when the routing state changes. 8 * - Update the URL when the routing state changes.
9 * - Initialize the routing state with the initial URL. 9 * - Initialize the routing state with the initial URL.
10 * - Process and validate all routing state changes. 10 * - Process and validate all routing state changes.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 } 51 }
52 52
53 // As a fallback return the default route. 53 // As a fallback return the default route.
54 return this.routes_[0]; 54 return this.routes_[0];
55 }, 55 },
56 }, 56 },
57 57
58 /** 58 /**
59 * Page titles for the currently active route. Updated by the currentRoute 59 * Page titles for the currently active route. Updated by the currentRoute
60 * property observer. 60 * property observer.
61 * @type {{pageTitle: string, subpageTitles: Array<string>}} 61 * @type {{pageTitle: string}}
62 */ 62 */
63 currentRouteTitles: { 63 currentRouteTitles: {
64 notify: true, 64 notify: true,
65 type: Object, 65 type: Object,
66 value: function() { 66 value: function() {
67 return { 67 return {
68 pageTitle: '', 68 pageTitle: '',
69 subpageTitles: [],
70 }; 69 };
71 }, 70 },
72 }, 71 },
73 }, 72 },
74 73
75 74
76 /** 75 /**
77 * @private 76 * @private
78 * The 'url' property is not accessible to other elements. 77 * The 'url' property is not accessible to other elements.
79 */ 78 */
80 routes_: [ 79 routes_: [
81 { 80 {
82 url: '/', 81 url: '/',
83 page: 'basic', 82 page: 'basic',
84 section: '', 83 section: '',
85 subpage: [], 84 subpage: [],
86 subpageTitles: [],
87 }, 85 },
88 { 86 {
89 url: '/advanced', 87 url: '/advanced',
90 page: 'advanced', 88 page: 'advanced',
91 section: '', 89 section: '',
92 subpage: [], 90 subpage: [],
93 subpageTitles: [],
94 }, 91 },
95 <if expr="chromeos"> 92 <if expr="chromeos">
96 { 93 {
97 url: '/networkDetail', 94 url: '/networkDetail',
98 page: 'basic', 95 page: 'basic',
99 section: 'internet', 96 section: 'internet',
100 subpage: ['network-detail'], 97 subpage: ['network-detail'],
101 subpageTitles: ['internetDetailPageTitle'],
102 }, 98 },
103 { 99 {
104 url: '/knownNetworks', 100 url: '/knownNetworks',
105 page: 'basic', 101 page: 'basic',
106 section: 'internet', 102 section: 'internet',
107 subpage: ['known-networks'], 103 subpage: ['known-networks'],
108 subpageTitles: ['internetKnownNetworksPageTitle'],
109 }, 104 },
110 </if> 105 </if>
111 { 106 {
112 url: '/fonts', 107 url: '/fonts',
113 page: 'basic', 108 page: 'basic',
114 section: 'appearance', 109 section: 'appearance',
115 subpage: ['appearance-fonts'], 110 subpage: ['appearance-fonts'],
116 subpageTitles: ['customizeFonts'],
117 }, 111 },
118 { 112 {
119 url: '/searchEngines', 113 url: '/searchEngines',
120 page: 'basic', 114 page: 'basic',
121 section: 'search', 115 section: 'search',
122 subpage: ['search-engines'], 116 subpage: ['search-engines'],
123 subpageTitles: ['searchEnginesPageTitle'],
124 }, 117 },
125 { 118 {
126 url: '/searchEngines/advanced', 119 url: '/searchEngines/advanced',
127 page: 'basic', 120 page: 'basic',
128 section: 'search', 121 section: 'search',
129 subpage: ['search-engines', 'search-engines-advanced'], 122 subpage: ['search-engines', 'search-engines-advanced'],
130 subpageTitles: ['searchEnginesPageTitle', 'advancedPageTitle'],
131 }, 123 },
132 <if expr="chromeos"> 124 <if expr="chromeos">
133 { 125 {
134 url: '/changePicture', 126 url: '/changePicture',
135 page: 'basic', 127 page: 'basic',
136 section: 'people', 128 section: 'people',
137 subpage: ['changePicture'], 129 subpage: ['changePicture'],
138 subpageTitles: ['changePictureTitle'],
139 }, 130 },
140 </if> 131 </if>
141 <if expr="not chromeos"> 132 <if expr="not chromeos">
142 { 133 {
143 url: '/manageProfile', 134 url: '/manageProfile',
144 page: 'basic', 135 page: 'basic',
145 section: 'people', 136 section: 'people',
146 subpage: ['manageProfile'], 137 subpage: ['manageProfile'],
147 subpageTitles: ['editPerson'],
148 }, 138 },
149 </if> 139 </if>
150 { 140 {
151 url: '/syncSetup', 141 url: '/syncSetup',
152 page: 'basic', 142 page: 'basic',
153 section: 'people', 143 section: 'people',
154 subpage: ['sync'], 144 subpage: ['sync'],
155 subpageTitles: ['syncPageTitle'],
156 }, 145 },
157 <if expr="chromeos"> 146 <if expr="chromeos">
158 { 147 {
159 url: '/accounts', 148 url: '/accounts',
160 page: 'basic', 149 page: 'basic',
161 section: 'people', 150 section: 'people',
162 subpage: ['users'], 151 subpage: ['users'],
163 subpageTitles: ['usersPageTitle'],
164 }, 152 },
165 </if> 153 </if>
166 { 154 {
167 url: '/certificates', 155 url: '/certificates',
168 page: 'advanced', 156 page: 'advanced',
169 section: 'privacy', 157 section: 'privacy',
170 subpage: ['manage-certificates'], 158 subpage: ['manage-certificates'],
171 subpageTitles: ['manageCertificates'],
172 }, 159 },
173 { 160 {
174 url: '/siteSettings', 161 url: '/siteSettings',
175 page: 'advanced', 162 page: 'advanced',
176 section: 'privacy', 163 section: 'privacy',
177 subpage: ['site-settings'], 164 subpage: ['site-settings'],
178 subpageTitles: ['siteSettings'],
179 }, 165 },
180 // Site Category routes. 166 // Site Category routes.
181 { 167 {
182 url: '/siteSettings/all', 168 url: '/siteSettings/all',
183 page: 'advanced', 169 page: 'advanced',
184 section: 'privacy', 170 section: 'privacy',
185 subpage: ['site-settings', 'all-sites'], 171 subpage: ['site-settings', 'all-sites'],
186 subpageTitles: ['siteSettings', 'siteSettingsCategoryAllSites'],
187 }, 172 },
188 { 173 {
189 url: '/siteSettings/camera', 174 url: '/siteSettings/camera',
190 page: 'advanced', 175 page: 'advanced',
191 section: 'privacy', 176 section: 'privacy',
192 subpage: ['site-settings', 'site-settings-category-camera'], 177 subpage: ['site-settings', 'site-settings-category-camera'],
193 subpageTitles: ['siteSettings', 'siteSettingsCategoryCamera'],
194 }, 178 },
195 { 179 {
196 url: '/siteSettings/cookies', 180 url: '/siteSettings/cookies',
197 page: 'advanced', 181 page: 'advanced',
198 section: 'privacy', 182 section: 'privacy',
199 subpage: ['site-settings', 'site-settings-category-cookies'], 183 subpage: ['site-settings', 'site-settings-category-cookies'],
200 subpageTitles: ['siteSettings', 'siteSettingsCategoryCookies'],
201 }, 184 },
202 { 185 {
203 url: '/siteSettings/fullscreen', 186 url: '/siteSettings/fullscreen',
204 page: 'advanced', 187 page: 'advanced',
205 section: 'privacy', 188 section: 'privacy',
206 subpage: ['site-settings', 'site-settings-category-fullscreen'], 189 subpage: ['site-settings', 'site-settings-category-fullscreen'],
207 subpageTitles: ['siteSettings', 'siteSettingsCategoryFullscreen'],
208 }, 190 },
209 { 191 {
210 url: '/siteSettings/images', 192 url: '/siteSettings/images',
211 page: 'advanced', 193 page: 'advanced',
212 section: 'privacy', 194 section: 'privacy',
213 subpage: ['site-settings', 'site-settings-category-images'], 195 subpage: ['site-settings', 'site-settings-category-images'],
214 subpageTitles: ['siteSettings', 'siteSettingsCategoryImages'],
215 }, 196 },
216 { 197 {
217 url: '/siteSettings/location', 198 url: '/siteSettings/location',
218 page: 'advanced', 199 page: 'advanced',
219 section: 'privacy', 200 section: 'privacy',
220 subpage: ['site-settings', 'site-settings-category-location'], 201 subpage: ['site-settings', 'site-settings-category-location'],
221 subpageTitles: ['siteSettings', 'siteSettingsCategoryLocation'],
222 }, 202 },
223 { 203 {
224 url: '/siteSettings/javascript', 204 url: '/siteSettings/javascript',
225 page: 'advanced', 205 page: 'advanced',
226 section: 'privacy', 206 section: 'privacy',
227 subpage: ['site-settings', 'site-settings-category-javascript'], 207 subpage: ['site-settings', 'site-settings-category-javascript'],
228 subpageTitles: ['siteSettings', 'siteSettingsCategoryJavascript'],
229 }, 208 },
230 { 209 {
231 url: '/siteSettings/microphone', 210 url: '/siteSettings/microphone',
232 page: 'advanced', 211 page: 'advanced',
233 section: 'privacy', 212 section: 'privacy',
234 subpage: ['site-settings', 'site-settings-category-microphone'], 213 subpage: ['site-settings', 'site-settings-category-microphone'],
235 subpageTitles: ['siteSettings', 'siteSettingsCategoryMicrophone'],
236 }, 214 },
237 { 215 {
238 url: '/siteSettings/notifications', 216 url: '/siteSettings/notifications',
239 page: 'advanced', 217 page: 'advanced',
240 section: 'privacy', 218 section: 'privacy',
241 subpage: ['site-settings', 'site-settings-category-notifications'], 219 subpage: ['site-settings', 'site-settings-category-notifications'],
242 subpageTitles: ['siteSettings', 'siteSettingsCategoryNotifications'],
243 }, 220 },
244 { 221 {
245 url: '/siteSettings/popups', 222 url: '/siteSettings/popups',
246 page: 'advanced', 223 page: 'advanced',
247 section: 'privacy', 224 section: 'privacy',
248 subpage: ['site-settings', 'site-settings-category-popups'], 225 subpage: ['site-settings', 'site-settings-category-popups'],
249 subpageTitles: ['siteSettings', 'siteSettingsCategoryPopups'],
250 }, 226 },
251 // Site details routes. 227 // Site details routes.
252 { 228 {
253 url: '/siteSettings/all/details', 229 url: '/siteSettings/all/details',
254 page: 'advanced', 230 page: 'advanced',
255 section: 'privacy', 231 section: 'privacy',
256 subpage: ['site-settings', 'all-sites', 'site-details'], 232 subpage: ['site-settings', 'all-sites', 'site-details'],
257 subpageTitles: ['siteSettings', 'siteSettingsCategoryAllSites',
258 'siteSettingsSiteDetailsPageTitle'],
259 }, 233 },
260 { 234 {
261 url: '/siteSettings/camera/details', 235 url: '/siteSettings/camera/details',
262 page: 'advanced', 236 page: 'advanced',
263 section: 'privacy', 237 section: 'privacy',
264 subpage: ['site-settings', 'site-settings-category-camera', 238 subpage: ['site-settings', 'site-settings-category-camera',
265 'site-details'], 239 'site-details'],
266 subpageTitles: ['siteSettings', 'siteSettingsCamera',
267 'siteSettingsSiteDetailsPageTitle'],
268 }, 240 },
269 { 241 {
270 url: '/siteSettings/cookies/details', 242 url: '/siteSettings/cookies/details',
271 page: 'advanced', 243 page: 'advanced',
272 section: 'privacy', 244 section: 'privacy',
273 subpage: ['site-settings', 'site-settings-category-cookies', 245 subpage: ['site-settings', 'site-settings-category-cookies',
274 'site-details'], 246 'site-details'],
275 subpageTitles: ['siteSettings', 'siteSettingsCategoryCookies',
276 'siteSettingsSiteDetailsPageTitle'],
277 }, 247 },
278 { 248 {
279 url: '/siteSettings/fullscreen/details', 249 url: '/siteSettings/fullscreen/details',
280 page: 'advanced', 250 page: 'advanced',
281 section: 'privacy', 251 section: 'privacy',
282 subpage: ['site-settings', 'site-settings-category-fullscreen', 252 subpage: ['site-settings', 'site-settings-category-fullscreen',
283 'site-details'], 253 'site-details'],
284 subpageTitles: ['siteSettings', 'siteSettingsCategoryFullscreen',
285 'siteSettingsSiteDetailsPageTitle'],
286 }, 254 },
287 { 255 {
288 url: '/siteSettings/images/details', 256 url: '/siteSettings/images/details',
289 page: 'advanced', 257 page: 'advanced',
290 section: 'privacy', 258 section: 'privacy',
291 subpage: ['site-settings', 'site-settings-category-images', 259 subpage: ['site-settings', 'site-settings-category-images',
292 'site-details'], 260 'site-details'],
293 subpageTitles: ['siteSettings', 'siteSettingsCategoryImages',
294 'siteSettingsSiteDetailsPageTitle'],
295 }, 261 },
296 { 262 {
297 url: '/siteSettings/location/details', 263 url: '/siteSettings/location/details',
298 page: 'advanced', 264 page: 'advanced',
299 section: 'privacy', 265 section: 'privacy',
300 subpage: ['site-settings', 'site-settings-category-location', 266 subpage: ['site-settings', 'site-settings-category-location',
301 'site-details'], 267 'site-details'],
302 subpageTitles: ['siteSettings', 'siteSettingsCategoryLocation',
303 'siteSettingsSiteDetailsPageTitle'],
304 }, 268 },
305 { 269 {
306 url: '/siteSettings/javascript/details', 270 url: '/siteSettings/javascript/details',
307 page: 'advanced', 271 page: 'advanced',
308 section: 'privacy', 272 section: 'privacy',
309 subpage: ['site-settings', 'site-settings-category-javascript', 273 subpage: ['site-settings', 'site-settings-category-javascript',
310 'site-details'], 274 'site-details'],
311 subpageTitles: ['siteSettings', 'siteSettingsCategoryJavascript',
312 'siteSettingsSiteDetailsPageTitle'],
313 }, 275 },
314 { 276 {
315 url: '/siteSettings/microphone/details', 277 url: '/siteSettings/microphone/details',
316 page: 'advanced', 278 page: 'advanced',
317 section: 'privacy', 279 section: 'privacy',
318 subpage: ['site-settings', 'site-settings-category-microphone', 280 subpage: ['site-settings', 'site-settings-category-microphone',
319 'site-details'], 281 'site-details'],
320 subpageTitles: ['siteSettings', 'siteSettingsCategoryMicrophone',
321 'siteSettingsSiteDetailsPageTitle'],
322 }, 282 },
323 { 283 {
324 url: '/siteSettings/notifications/details', 284 url: '/siteSettings/notifications/details',
325 page: 'advanced', 285 page: 'advanced',
326 section: 'privacy', 286 section: 'privacy',
327 subpage: ['site-settings', 'site-settings-category-notifications', 287 subpage: ['site-settings', 'site-settings-category-notifications',
328 'site-details'], 288 'site-details'],
329 subpageTitles: ['siteSettings', 'siteSettingsCategoryNotifications',
330 'siteSettingsSiteDetailsPageTitle'],
331 }, 289 },
332 { 290 {
333 url: '/siteSettings/popups/details', 291 url: '/siteSettings/popups/details',
334 page: 'advanced', 292 page: 'advanced',
335 section: 'privacy', 293 section: 'privacy',
336 subpage: ['site-settings', 'site-settings-category-popups', 294 subpage: ['site-settings', 'site-settings-category-popups',
337 'site-details'], 295 'site-details'],
338 subpageTitles: ['siteSettings', 'siteSettingsCategoryPopups',
339 'siteSettingsSiteDetailsPageTitle'],
340 }, 296 },
341 { 297 {
342 url: '/clearBrowserData', 298 url: '/clearBrowserData',
343 page: 'advanced', 299 page: 'advanced',
344 section: 'privacy', 300 section: 'privacy',
345 subpage: ['clear-browsing-data'], 301 subpage: ['clear-browsing-data'],
346 subpageTitles: ['clearBrowsingData'],
347 }, 302 },
348 <if expr="chromeos"> 303 <if expr="chromeos">
349 { 304 {
350 url: '/bluetoothAddDevice', 305 url: '/bluetoothAddDevice',
351 page: 'advanced', 306 page: 'advanced',
352 section: 'bluetooth', 307 section: 'bluetooth',
353 subpage: ['bluetooth-add-device'], 308 subpage: ['bluetooth-add-device'],
354 subpageTitles: ['bluetoothAddDevicePageTitle'],
355 }, 309 },
356 { 310 {
357 url: '/bluetoothAddDevice/bluetoothPairDevice', 311 url: '/bluetoothAddDevice/bluetoothPairDevice',
358 page: 'advanced', 312 page: 'advanced',
359 section: 'bluetooth', 313 section: 'bluetooth',
360 subpage: ['bluetooth-add-device', 'bluetooth-pair-device'], 314 subpage: ['bluetooth-add-device', 'bluetooth-pair-device'],
361 subpageTitles: ['bluetoothAddDevicePageTitle',
362 'bluetoothPairDevicePageTitle'],
363 }, 315 },
364 </if> 316 </if>
365 { 317 {
366 url: '/languages', 318 url: '/languages',
367 page: 'advanced', 319 page: 'advanced',
368 section: 'languages', 320 section: 'languages',
369 subpage: ['manage-languages'], 321 subpage: ['manage-languages'],
370 subpageTitles: ['manageLanguagesPageTitle'],
371 }, 322 },
372 { 323 {
373 url: '/languages/edit', 324 url: '/languages/edit',
374 page: 'advanced', 325 page: 'advanced',
375 section: 'languages', 326 section: 'languages',
376 subpage: ['language-detail'], 327 subpage: ['language-detail'],
377 subpageTitles: ['manageLanguagesPageTitle'],
378 }, 328 },
379 <if expr="not is_macosx"> 329 <if expr="not is_macosx">
380 { 330 {
381 url: '/editDictionary', 331 url: '/editDictionary',
382 page: 'advanced', 332 page: 'advanced',
383 section: 'languages', 333 section: 'languages',
384 subpage: ['edit-dictionary'], 334 subpage: ['edit-dictionary'],
385 subpageTitles: ['editDictionaryPageTitle'],
386 }, 335 },
387 </if> 336 </if>
388 <if expr="chromeos"> 337 <if expr="chromeos">
389 { 338 {
390 url: '/pointer-overlay', 339 url: '/pointer-overlay',
391 page: 'basic', 340 page: 'basic',
392 section: 'device', 341 section: 'device',
393 subpage: ['touchpad'], 342 subpage: ['touchpad'],
394 subpageTitles: ['touchpadTitle'],
395 }, 343 },
396 { 344 {
397 url: '/keyboard-overlay', 345 url: '/keyboard-overlay',
398 page: 'basic', 346 page: 'basic',
399 section: 'device', 347 section: 'device',
400 subpage: ['keyboard'], 348 subpage: ['keyboard'],
401 subpageTitles: ['keyboardTitle'],
402 }, 349 },
403 </if> 350 </if>
404 ], 351 ],
405 352
406 /** 353 /**
407 * Sets up a history popstate observer. 354 * Sets up a history popstate observer.
408 */ 355 */
409 created: function() { 356 created: function() {
410 window.addEventListener('popstate', function(event) { 357 window.addEventListener('popstate', function(event) {
411 if (event.state && event.state.page) 358 if (event.state && event.state.page)
(...skipping 12 matching lines...) Expand all
424 var route = this.routes_[i]; 371 var route = this.routes_[i];
425 if (route.page == newRoute.page && route.section == newRoute.section && 372 if (route.page == newRoute.page && route.section == newRoute.section &&
426 route.subpage.length == newRoute.subpage.length && 373 route.subpage.length == newRoute.subpage.length &&
427 newRoute.subpage.every(function(value, index) { 374 newRoute.subpage.every(function(value, index) {
428 return value == route.subpage[index]; 375 return value == route.subpage[index];
429 })) { 376 })) {
430 377
431 // Update the property containing the titles for the current route. 378 // Update the property containing the titles for the current route.
432 this.currentRouteTitles = { 379 this.currentRouteTitles = {
433 pageTitle: loadTimeData.getString(route.page + 'PageTitle'), 380 pageTitle: loadTimeData.getString(route.page + 'PageTitle'),
434 subpageTitles: route.subpageTitles.map(function(titleCode) {
435 return loadTimeData.getString(titleCode);
436 }),
437 }; 381 };
438 382
439 // If we are restoring a state from history, don't push it again. 383 // If we are restoring a state from history, don't push it again.
440 if (newRoute.inHistory) 384 if (newRoute.inHistory)
441 return; 385 return;
442 386
443 // Mark routes persisted in history as already stored in history. 387 // Mark routes persisted in history as already stored in history.
444 var historicState = { 388 var historicState = {
445 inHistory: true, 389 inHistory: true,
446 page: newRoute.page, 390 page: newRoute.page,
(...skipping 12 matching lines...) Expand all
459 window.history.replaceState(historicState, document.title); 403 window.history.replaceState(historicState, document.title);
460 } 404 }
461 405
462 return; 406 return;
463 } 407 }
464 } 408 }
465 409
466 assertNotReached('Route not found: ' + JSON.stringify(newRoute)); 410 assertNotReached('Route not found: ' + JSON.stringify(newRoute));
467 }, 411 },
468 }); 412 });
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/settings/settings_resources.grd » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698