Commit e17d58c8 authored by dpapad's avatar dpapad Committed by Commit Bot

Settings: Move more privacy subpages/dialogs to lazy_load.html.

Specifically moving
 - clear_browsing_data_dialog/clear_browsing_data_dialog.html
 - privacy_page/cookies_page.html
 - privacy_page/security_page.html
 - site_settings/all_sites.html

Which results in 15.4% less JS/HTML code loaded during Settings
startup (measured on Linux builds)

vulcanized.html: 342K -> 286K  (-16.4%)
crisper.js: 390K -> 333K (-14.6%)

lazy_load.vulcanized.html: 153K -> 209K (+27%)
lazy_load.crisper.js: 189K -> 246K (+30%)

Also fixing a bug that was revealed as a result of these changes
where <settings-ui> was not properly clearing some global state
when it was detached from the DOM, causing test failures.

Bug: 1026064,1032584
Change-Id: Ibf6ef69916ae7a656b9b2576947294bea87ef5c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2090840Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Commit-Queue: dpapad <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748417}
parent 5ed351e0
......@@ -18,7 +18,7 @@
// #import {Route, Router, RouteObserverBehavior} from './router.m.js';
cr.define('settings', function() {
const scrollTargetResolver = new PromiseResolver();
let scrollTargetResolver = new PromiseResolver();
/** @polymerBehavior */
const GlobalScrollTargetBehaviorImpl = {
......@@ -98,9 +98,13 @@ cr.define('settings', function() {
* This should only be called once.
* @param {HTMLElement} scrollTarget
*/
const setGlobalScrollTarget = function(scrollTarget) {
function setGlobalScrollTarget(scrollTarget) {
scrollTargetResolver.resolve(scrollTarget);
};
}
function resetGlobalScrollTargetForTesting() {
scrollTargetResolver = new PromiseResolver();
}
// This is done to make the closure compiler happy: it needs fully qualified
// names when specifying an array of behaviors.
......@@ -113,7 +117,7 @@ cr.define('settings', function() {
GlobalScrollTargetBehaviorImpl: GlobalScrollTargetBehaviorImpl,
GlobalScrollTargetBehavior: GlobalScrollTargetBehavior,
setGlobalScrollTarget: setGlobalScrollTarget,
resetGlobalScrollTargetForTesting: resetGlobalScrollTargetForTesting,
scrollTargetResolver: scrollTargetResolver,
};
});
......@@ -7,8 +7,12 @@
<link rel="import" href="autofill_page/password_check.html">
<link rel="import" href="autofill_page/passwords_section.html">
<link rel="import" href="autofill_page/payments_section.html">
<link rel="import" href="clear_browsing_data_dialog/clear_browsing_data_dialog.html">
<link rel="import" href="search_engines_page/search_engines_page.html">
<link rel="import" href="privacy_page/cookies_page.html">
<link rel="import" href="privacy_page/security_keys_subpage.html">
<link rel="import" href="privacy_page/security_page.html">
<link rel="import" href="site_settings/all_sites.html">
<link rel="import" href="site_settings/site_data_details_subpage.html">
<link rel="import" href="site_settings_page/site_settings_page.html">
<link rel="import" href="site_settings/category_default_setting.html">
......
......@@ -10,12 +10,9 @@
<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
<link rel="import" href="do_not_track_toggle.html">
<link rel="import" href="secure_dns.html">
<link rel="import" href="security_page.html">
<link rel="import" href="passwords_leak_detection_toggle.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-collapse/iron-collapse.html">
<link rel="import" href="../clear_browsing_data_dialog/clear_browsing_data_dialog.html">
<link rel="import" href="../controls/settings_toggle_button.html">
<link rel="import" href="cookies_page.html">
<link rel="import" href="../metrics_browser_proxy.html">
<link rel="import" href="../people_page/sync_browser_proxy.html">
<link rel="import" href="../prefs/prefs.html">
......@@ -25,7 +22,6 @@
<link rel="import" href="../settings_page/settings_animated_pages.html">
<link rel="import" href="../settings_page/settings_subpage.html">
<link rel="import" href="../settings_shared_css.html">
<link rel="import" href="../site_settings/all_sites.html">
<link rel="import" href="../site_settings/constants.html">
<link rel="import" href="privacy_page_browser_proxy.html">
......
......@@ -177,6 +177,7 @@ cr.define('settings', function() {
/** @override */
detached() {
settings.Router.getInstance().resetRouteForTesting();
settings.resetGlobalScrollTargetForTesting();
},
/** @param {!settings.Route} route */
......
......@@ -59,7 +59,10 @@ suite('AllSites', function() {
});
// Initialize a site-list before each test.
setup(function() {
setup(async function() {
PolymerTest.clearBody();
await settings.forceLazyLoaded();
prefsVarious = test_util.createSiteSettingsPrefs([], [
test_util.createContentSettingTypeToValuePair(
settings.ContentSettingsTypes.GEOLOCATION,
......@@ -87,7 +90,6 @@ suite('AllSites', function() {
localDataBrowserProxy = new TestLocalDataBrowserProxy();
settings.SiteSettingsPrefsBrowserProxyImpl.instance_ = browserProxy;
settings.LocalDataBrowserProxyImpl.instance_ = localDataBrowserProxy;
PolymerTest.clearBody();
testElement = document.createElement('all-sites');
assertTrue(!!testElement);
document.body.appendChild(testElement);
......
......@@ -143,12 +143,14 @@ cr.define('settings_privacy_page', function() {
});
});
setup(function() {
setup(async function() {
PolymerTest.clearBody();
await settings.forceLazyLoaded();
const testBrowserProxy = new TestPrivacyPageBrowserProxy();
settings.PrivacyPageBrowserProxyImpl.instance_ = testBrowserProxy;
const testSyncBrowserProxy = new TestSyncBrowserProxy();
settings.SyncBrowserProxyImpl.instance_ = testSyncBrowserProxy;
PolymerTest.clearBody();
page = document.createElement('settings-privacy-page');
page.prefs = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment