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

Unified Diff: chrome/browser/resources/settings/settings_main/settings_main.js

Issue 2230753002: MD Settings: methods to get root pages and sections (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/settings/settings_main/settings_main.js
diff --git a/chrome/browser/resources/settings/settings_main/settings_main.js b/chrome/browser/resources/settings/settings_main/settings_main.js
index 676429b994c7533a5426cb7ced6b98673c6cadf0..b3376ebecebc698a90b62f26fb1292fcb7fac330 100644
--- a/chrome/browser/resources/settings/settings_main/settings_main.js
+++ b/chrome/browser/resources/settings/settings_main/settings_main.js
@@ -165,11 +165,8 @@ Polymer({
if (route.subpage.length != 0 || this.showPages_.about)
return 0;
- var query = 'settings-section[section="' + route.section + '"]';
- var topSection = this.$$('settings-basic-page').$$(query);
- if (!topSection && this.showPages_.advanced)
- topSection = this.$$('settings-advanced-page').$$(query);
-
+ var page = this.getPage_(route);
+ var topSection = page && page.getSection(route.section);
if (!topSection || !topSection.offsetParent)
return 0;
@@ -186,6 +183,28 @@ Polymer({
},
/**
+ * Returns the root page (if it exists) for a route.
+ * @param {!settings.Route} route
+ * @return {(?SettingsAboutPageElement|?SettingsAdvancedPageElement|
+ * ?SettingsBasicPageElement)}
+ */
+ getPage_: function(route) {
dschuyler 2016/08/10 17:16:17 I'd like to hear more about why this function help
michaelpg 2016/08/15 18:08:11 No, it only queries the page for the current route
+ if (settings.Route.ABOUT.contains(route)) {
+ return /** @type {?SettingsAboutPageElement} */(
+ this.$$('settings-about-page'));
+ }
+ if (settings.Route.ADVANCED.contains(route)) {
+ return /** @type {?SettingsAdvancedPageElement} */(
+ this.$$('settings-advanced-page'));
+ }
+ if (settings.Route.BASIC.contains(route)) {
+ return /** @type {?SettingsBasicPageElement} */(
+ this.$$('settings-basic-page'));
+ }
+ assertNotReached();
+ },
+
+ /**
* Navigates to the default search page (if necessary).
* @private
*/
@@ -207,11 +226,11 @@ Polymer({
return new Promise(function(resolve, reject) {
setTimeout(function() {
var whenSearchDone = settings.getSearchManager().search(
- query, assert(this.$$('settings-basic-page')));
+ query, assert(this.getPage_(settings.Route.BASIC)));
assert(
whenSearchDone ===
settings.getSearchManager().search(
- query, assert(this.$$('settings-advanced-page'))));
+ query, assert(this.getPage_(settings.Route.ADVANCED))));
whenSearchDone.then(function(request) {
resolve();

Powered by Google App Engine
This is Rietveld 408576698