New issue
Advanced search Search tips

Issue 597348 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 597347



Sign in to add a comment

MD Settings: Lazy-load sub-pages

Project Member Reported by michae...@chromium.org, Mar 23 2016

Issue description

Don't load all sub-pages when loading the initial page. This should save a huge chunk of load time.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 31 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cecbc0485f9aa102a0f299978f81d47bffc6536f

commit cecbc0485f9aa102a0f299978f81d47bffc6536f
Author: michaelpg <michaelpg@chromium.org>
Date: Thu Mar 31 11:31:15 2016

MD Settings: Lazy-load sub-pages.

chrome://md-settings consists of two Pages: Basic and Advanced. Each Page
is composed of Sections (appearance, language, users, etc.).

Some Sections have additional Subpages "behind" them; these Subpages
can be opened by expanding the Section to fill the Page and presenting
the Subpage in place of the main Section contents.

This CL prevents these Subpages from being created until they are displayed.

* Rename settings-subheader to settings-subpage, make it
  NeonAnimatable, and use it to wrap the actual page.

* Place these sub-pages inside <template is="dom-if">s.

* Rework settings-animated-pages to manage the "if" setting
  of these templates.

TL;DR: instead of

    <neon-animatable name="some-page">
      <settings-subheader></settings-subheader>
      <some-page></some-page>
    </neon-animatable>

do

    <template is="dom-if" name="some-page">
      <settings-subpage>
        <some-page></some-page>
      </settings-subpage>
    </template>

Load time in milliseconds (on my Goobuntu Z840):

		Linux			Chrome OS
		Basic	Advanced	Basic	Advanced
Before (ToT)	2013	3310		3825	3651
After (this)	1649	1726		2317	2156

BUG= 597348 

Review URL: https://codereview.chromium.org/1826683002

Cr-Commit-Position: refs/heads/master@{#384245}

[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/appearance_page/appearance_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/device_page/device_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/device_page/keyboard.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/internet_page/compiled_resources2.gyp
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/internet_page/internet_detail_page.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/internet_page/internet_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/internet_page/internet_page.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/languages_page/compiled_resources2.gyp
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/languages_page/languages_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/languages_page/languages_page.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/on_startup_page/on_startup_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/passwords_and_forms_page/passwords_and_forms_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/people_page/people_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/privacy_page/privacy_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/privacy_page/privacy_page.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/search_page/search_page.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/search_page/search_page.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/settings_page/compiled_resources2.gyp
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/settings_page/settings_animated_pages.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/settings_page/settings_animated_pages.js
[delete] https://crrev.com/b8aff0a361c91dd6d979dde45d4aaa1062a4dff8/chrome/browser/resources/settings/settings_page/settings_subheader.js
[rename] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/settings_page/settings_subpage.html
[add] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/settings_page/settings_subpage.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/settings_resources.grd
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/site_settings/site_settings_category.html
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/browser/resources/settings/site_settings/site_settings_category.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/test/data/webui/settings/advanced_page_browsertest.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/test/data/webui/settings/basic_page_browsertest.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/test/data/webui/settings/device_page_tests.js
[modify] https://crrev.com/cecbc0485f9aa102a0f299978f81d47bffc6536f/chrome/test/data/webui/settings/settings_page_browsertest.js

Status: Fixed (was: Started)
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ba6071511cd380c8315d77c6dac28c8e52643616

commit ba6071511cd380c8315d77c6dac28c8e52643616
Author: michaelpg <michaelpg@chromium.org>
Date: Fri Apr 15 14:59:32 2016

MD Settings: allow subpages not wrapped in templates

BUG= 597348 

Review URL: https://codereview.chromium.org/1878653002

Cr-Commit-Position: refs/heads/master@{#387599}

[modify] https://crrev.com/ba6071511cd380c8315d77c6dac28c8e52643616/chrome/browser/resources/settings/settings_page/settings_animated_pages.js

Sign in to add a comment