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 11cd9dd684eebba61b2ff7ec7ffed466e63f3575..705d2014a87fd036d9c6eb7315d2a30207bb010f 100644 |
--- a/chrome/browser/resources/settings/settings_main/settings_main.js |
+++ b/chrome/browser/resources/settings/settings_main/settings_main.js |
@@ -2,6 +2,10 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+(function() { |
+ |
+var resolver = new PromiseResolver(); |
+ |
/** |
* @fileoverview |
* 'settings-main' displays the selected settings page. |
@@ -64,15 +68,25 @@ Polymer({ |
this.showAdvancedPage_ = e.detail; |
this.isAdvancedMenuOpen_ = e.detail; |
if (this.showAdvancedPage_) { |
- scrollWhenReady( |
+ doWhenReady( |
function() { |
- return this.$$('settings-advanced-page'); |
+ var advancedPage = this.$$('settings-advanced-page'); |
+ return !!advancedPage && advancedPage.scrollHeight > 0; |
}.bind(this), |
function() { |
- return this.$$('#toggleContainer'); |
+ this.$$('#toggleContainer').scrollIntoView(); |
}.bind(this)); |
} |
}.bind(this)); |
+ |
+ doWhenReady( |
+ function() { |
+ var basicPage = this.$$('settings-basic-page'); |
+ return !!basicPage && basicPage.scrollHeight > 0; |
+ }.bind(this), |
+ function() { |
+ resolver.resolve(); |
+ }); |
}, |
/** |
@@ -109,3 +123,9 @@ Polymer({ |
this.fire('toggle-advanced-page', !this.isAdvancedMenuOpen_); |
}, |
}); |
+ |
+cr.define('settings.main', function() { |
+ return {rendered: resolver.promise}; |
+}); |
+ |
+})(); |