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

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: defensive rebase 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 ec56d0fb985a341ba295bd9375bb104bfdebe885..cfcfbfd01560985c35800aba2aedb5b0363cc3ee 100644
--- a/chrome/browser/resources/settings/settings_main/settings_main.js
+++ b/chrome/browser/resources/settings/settings_main/settings_main.js
@@ -179,11 +179,8 @@ Polymer({
if (route.isSubpage() || 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;
@@ -200,6 +197,28 @@ Polymer({
},
/**
+ * Returns the root page (if it exists) for a route.
+ * @param {!settings.Route} route
+ * @return {(?SettingsAboutPageElement|?SettingsAdvancedPageElement|
+ * ?SettingsBasicPageElement)}
+ */
+ getPage_: function(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
*/
@@ -228,11 +247,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