New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 597347 link

Starred by 8 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug


Sign in to add a comment

MD Settings performance enhancements

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

Issue description

Lazy-load sub-pages. Investigate other things like:

* vulcanization
* strip-whitespace
* iron-list
 
Blockedon: 597348
Blockedon: 602896
Labels: Proj-MaterialDesign-WebUI
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 23 2016

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

commit 014be79bc324f0e91230db4ad18b253de0301b91
Author: michaelpg <michaelpg@chromium.org>
Date: Sat Apr 23 09:48:54 2016

Use lazy registration in Polymer UI.

Speed-up on the Basic and Advanced MD Settings pages
(no sub-pages) with N=10 on a Z840:

         Basic   Advanced
Linux    12.8%   18.9%
CrOS      7.5%   12.4%

BUG= 597347 

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

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

[modify] https://crrev.com/014be79bc324f0e91230db4ad18b253de0301b91/ui/webui/resources/js/polymer_config.js

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 25 2016

Labels: merge-merged-2716
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/014be79bc324f0e91230db4ad18b253de0301b91

commit 014be79bc324f0e91230db4ad18b253de0301b91
Author: michaelpg <michaelpg@chromium.org>
Date: Sat Apr 23 09:48:54 2016

Use lazy registration in Polymer UI.

Speed-up on the Basic and Advanced MD Settings pages
(no sub-pages) with N=10 on a Z840:

         Basic   Advanced
Linux    12.8%   18.9%
CrOS      7.5%   12.4%

BUG= 597347 

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

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

[modify] https://crrev.com/014be79bc324f0e91230db4ad18b253de0301b91/ui/webui/resources/js/polymer_config.js

Blockedon: 609002
Labels: Hotlist-MD-Settings-General
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 22 2016

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

commit 8aa79b075e1943601117dce455375b7c93c4a924
Author: michaelpg <michaelpg@chromium.org>
Date: Wed Jun 22 18:51:16 2016

Use native CSS variables in Polymer

Provides nominal load time savings.

BUG= 597347 
R=dbeam@chromium.org

CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2087173003
Cr-Commit-Position: refs/heads/master@{#401373}

[modify] https://crrev.com/8aa79b075e1943601117dce455375b7c93c4a924/ui/webui/resources/js/polymer_config.js

Comment 9 by dbeam@chromium.org, Aug 30 2016

 Issue 641800  has been merged into this issue.
Blockedon: 644549
 Issue 644747  has been merged into this issue.
Cc: michae...@chromium.org dpa...@chromium.org
Owner: dbeam@chromium.org
Status: Assigned (was: Started)
Status update: I have managed to create a proof of concept for integrating vulcanize into the GN/Ninja build, such that we don't need to check-in vulcanize's output into the repository. It works (see https://codereview.chromium.org/2535113003).

Remaining tasks:
 1) Modify vulcanize to provide a list of input files (necessary to know when to re-trigger vulcanization).
 2) Add all dependencies to the toolchain.
 3) Migrate MD Downloads and MD History first, to use the new vulcanize.gni rule (and delete checked-in copies of generated code.
 4) Vulcanize settings!
Cc: tsergeant@chromium.org
Blocking: 671375
Labels: -Pri-2 Pri-1
Blockedon: 673825

Comment 17 by dbeam@chromium.org, Jan 27 2017

Owner: dpa...@chromium.org

Comment 18 by dbeam@chromium.org, Jan 27 2017

Cc: -dpa...@chromium.org

Comment 19 by dbeam@chromium.org, Jan 27 2017

Status: Started (was: Assigned)
Project Member

Comment 22 by bugdroid1@chromium.org, Feb 28 2017

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

commit f049d39bddb99f0338f98342e2c79e11ace4574c
Author: dpapad <dpapad@chromium.org>
Date: Tue Feb 28 02:30:14 2017

WebUI: Roll Polymer 1.6.1-> 1.8.1

Latest version offers a "preserveStyleIncludes" option which will enable
further optimizations for WebUI pages.

BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2717403003
Cr-Commit-Position: refs/heads/master@{#453468}

[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/bower.json
[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/components-chromium/polymer/bower.json
[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/components-chromium/polymer/polymer-extracted.js
[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/components-chromium/polymer/polymer-micro-extracted.js
[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/components-chromium/polymer/polymer-mini-extracted.js
[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/components-chromium/polymer/polymer-mini.html
[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/components-chromium/polymer/polymer.html
[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/components_summary.txt
[modify] https://crrev.com/f049d39bddb99f0338f98342e2c79e11ace4574c/third_party/polymer/v1_0/reproduce.sh

Project Member

Comment 23 by bugdroid1@chromium.org, Feb 28 2017

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

commit b64500afce5b9342dba43f53f445c12a0ffc57e2
Author: dbeam <dbeam@chromium.org>
Date: Tue Feb 28 18:52:46 2017

Polymer: use polymer-css-build --no-inline-includes

Chromium updated polymer-css-build to 1.0.9 to use this feature:
https://codereview.chromium.org/2714833003

This also required rolling to Polymer 1.8.1 which happened here:
https://codereview.chromium.org/2717403003

And finally requires a change to Polymer's internal config via:

  Polymer.preserveStyleIncludes = true;

Given the example DOM:

  <dom-module id="css-module">
    <template>
      <style>
        /* module styles */
      </style>
    </template>
  </dom-module>

  <dom-module id="my-element">
    <template>
      <style include="css-module">
        /* template styles */
      </style>
    </template>
  </dom-module>

before this patch is combined both at compile time and at runtime into:

  <my-element>
    #shadow
      <style>
        /* module styles */
        /* template styles */
      </style>
  </my-element>

This defeats blink's CSS SheetContents caching and inlines many
duplicate styles into the output (settings ends up at like 1MB of
HTML/CSS combined before gzip).

With --no-inline-includes, the generated output is significantly smaller
(65% before compression, ~15% after compression) and include="" modules
are cloned dynamically at runtime via Node#cloneNode().

The end results (in the DOM) are basically:

  <my-element>
    #shadow
      <style>
        /* module styles */
      </style>
      <style>
        /* template style */
      </style>
  </my-element>

I also verified locally that many more <style> tags are bypassing
parsing and being used from the cache.

R=dpapad@chromium.org
BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2718243005
Cr-Commit-Position: refs/heads/master@{#453652}

[modify] https://crrev.com/b64500afce5b9342dba43f53f445c12a0ffc57e2/chrome/browser/resources/polymer_css_build_gn.py
[modify] https://crrev.com/b64500afce5b9342dba43f53f445c12a0ffc57e2/ui/webui/resources/js/polymer_config.js

Project Member

Comment 24 by bugdroid1@chromium.org, Mar 1 2017

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

commit 055e9b912a667a19f4d8420b755fec9c7190302b
Author: dbeam <dbeam@chromium.org>
Date: Wed Mar 01 04:18:56 2017

Revert of Polymer: use polymer-css-build --no-inline-includes (patchset #1 id:1 of https://codereview.chromium.org/2718243005/ )

Reason for revert:
Broke Linux ChromeOS version of MD Settings

Original issue's description:
> Polymer: use polymer-css-build --no-inline-includes
>
> Chromium updated polymer-css-build to 1.0.9 to use this feature:
> https://codereview.chromium.org/2714833003
>
> This also required rolling to Polymer 1.8.1 which happened here:
> https://codereview.chromium.org/2717403003
>
> And finally requires a change to Polymer's internal config via:
>
>   Polymer.preserveStyleIncludes = true;
>
>
> Given the example DOM:
>
>   <dom-module id="css-module">
>     <template>
>       <style>
>         /* module styles */
>       </style>
>     </template>
>   </dom-module>
>
>   <dom-module id="my-element">
>     <template>
>       <style include="css-module">
>         /* template styles */
>       </style>
>     </template>
>   </dom-module>
>
> before this patch is combined both at compile time and at runtime into:
>
>   <my-element>
>     #shadow
>       <style>
>         /* module styles */
>         /* template styles */
>       </style>
>   </my-element>
>
> This defeats blink's CSS SheetContents caching and inlines many
> duplicate styles into the output (settings ends up at like 1MB of
> HTML/CSS combined before gzip).
>
> With --no-inline-includes, the generated output is significantly smaller
> (65% before compression, ~15% after compression) and include="" modules
> are cloned dynamically at runtime via Node#cloneNode().
>
> The end results (in the DOM) are basically:
>
>   <my-element>
>     #shadow
>       <style>
>         /* module styles */
>       </style>
>       <style>
>         /* template style */
>       </style>
>   </my-element>
>
> I also verified locally that many more <style> tags are bypassing
> parsing and being used from the cache.
>
> R=dpapad@chromium.org
> BUG= 597347 
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation
>
> Review-Url: https://codereview.chromium.org/2718243005
> Cr-Commit-Position: refs/heads/master@{#453652}
> Committed: https://chromium.googlesource.com/chromium/src/+/b64500afce5b9342dba43f53f445c12a0ffc57e2

TBR=dpapad@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 597347 

Review-Url: https://codereview.chromium.org/2729483002
Cr-Commit-Position: refs/heads/master@{#453840}

[modify] https://crrev.com/055e9b912a667a19f4d8420b755fec9c7190302b/chrome/browser/resources/polymer_css_build_gn.py
[modify] https://crrev.com/055e9b912a667a19f4d8420b755fec9c7190302b/ui/webui/resources/js/polymer_config.js

Project Member

Comment 25 by bugdroid1@chromium.org, Mar 2 2017

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

commit f4e34a7ec3173920fd123c4d00692429bf5ab16e
Author: dbeam <dbeam@chromium.org>
Date: Thu Mar 02 00:26:53 2017

MD WebUI: change all <dom-module> to use id="" instead of name=""

polymer-css-build only looks for id="", even though name="" is also
respected by the runtime Polymer core library.

R=dpapad@chromium.org
BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2723873003
Cr-Commit-Position: refs/heads/master@{#454117}

[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/arc_terms_of_service.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/controller-pairing-screen.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/gaia_card.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/gaia_header.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/gaia_input.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/gaia_input_form.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/gaia_password_changed.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/host-pairing-screen.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/html-echo.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/notification_card.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/offline_gaia.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/oobe_a11y_option.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/oobe_dialog.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/oobe_eula.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/oobe_hid_detection.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/oobe_update.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/oobe_welcome.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/oobe_welcome_dialog.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/saml_confirm_password.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/saml_interstitial.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/throbber_notice.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/chromeos/login/unrecoverable_cryptohome_error_card.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/md_feedback/feedback_container.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/media_router/elements/issue_banner/issue_banner.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/settings/internet_page/network_property_list.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/chrome/browser/resources/settings/internet_page/network_summary_item.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/ui/webui/resources/cr_elements/cr_drawer/cr_drawer.html
[modify] https://crrev.com/f4e34a7ec3173920fd123c4d00692429bf5ab16e/ui/webui/resources/cr_elements/cr_slider/cr_slider.html

Project Member

Comment 26 by bugdroid1@chromium.org, Mar 2 2017

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

commit 600c6a41851b482f7ae4deb3502b5260e708163e
Author: dbeam <dbeam@chromium.org>
Date: Thu Mar 02 03:46:20 2017

Polymer: use polymer-css-build --no-inline-includes

Chromium updated polymer-css-build to 1.0.9 to use this feature:
https://codereview.chromium.org/2714833003

This also required rolling to Polymer 1.8.1 which happened here:
https://codereview.chromium.org/2717403003

And finally requires a change to Polymer's internal config via:

  Polymer.preserveStyleIncludes = true;

Given the example DOM:

  <dom-module id="css-module">
    <template>
      <style>
        /* module styles */
      </style>
    </template>
  </dom-module>

  <dom-module id="my-element">
    <template>
      <style include="css-module">
        /* template styles */
      </style>
    </template>
  </dom-module>

before this patch is combined both at compile time and at runtime into:

  <my-element>
    #shadow
      <style>
        /* module styles */
        /* template styles */
      </style>
  </my-element>

This defeats blink's CSS SheetContents caching and inlines many
duplicate styles into the output (settings ends up at like 1MB of
HTML/CSS combined before gzip).

With --no-inline-includes, the generated output is significantly smaller
(65% before compression, ~15% after compression) and include="" modules
are cloned dynamically at runtime via Node#cloneNode().

The end results (in the DOM) are basically:

  <my-element>
    #shadow
      <style>
        /* module styles */
      </style>
      <style>
        /* template style */
      </style>
  </my-element>

I also verified locally that many more <style> tags are bypassing
parsing and being used from the cache.

R=dpapad@chromium.org
BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2718243005
Cr-Original-Commit-Position: refs/heads/master@{#453652}
Committed: https://chromium.googlesource.com/chromium/src/+/b64500afce5b9342dba43f53f445c12a0ffc57e2
Review-Url: https://codereview.chromium.org/2718243005
Cr-Commit-Position: refs/heads/master@{#454170}

[modify] https://crrev.com/600c6a41851b482f7ae4deb3502b5260e708163e/chrome/browser/resources/polymer_css_build_gn.py
[modify] https://crrev.com/600c6a41851b482f7ae4deb3502b5260e708163e/ui/webui/resources/js/polymer_config.js

Status update regarding splitting MD Settings to a main module and a lazy loaded module:

I was able to build the two modules correctly (I think), which involves 

1) https://codereview.chromium.org/2726403003: Split unpack_pak functionality to its own GN rule
2) https://github.com/Polymer/polymer-bundler/pull/442: Fix vulcanize, to not attempt to load excluded JS scripts.
3) https://codereview.chromium.org/2714613002: Split MD settings to two modules.

The JS/HTML bundles looks as follows:

Before splitting
391K crisper.js
368K vulcanized.html

After splitting
262K app.crisper.js
246K app.vulcanized.html
129K lazy_load.crisper.js
123K lazy_load.vulcanized.html

This means that the code we initially load (unzipped) is reduced by
JS: -32%, HTML: -33%

I'll dig in to some more metrics (first meaningful paint shortly).
Having said all that, there is still work needed to make the "ensure lazy loaded module exists" work. Which I'll evaluate after I get some initial perf gain measurements.
Project Member

Comment 28 by bugdroid1@chromium.org, Mar 4 2017

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

commit b8d7bcaecf128d011d1db6c0464be754005db989
Author: dpapad <dpapad@chromium.org>
Date: Sat Mar 04 04:27:02 2017

MD Settings: Turn off runtime i18n processing, not necessary anymore.

BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2730233002
Cr-Commit-Position: refs/heads/master@{#454761}

[modify] https://crrev.com/b8d7bcaecf128d011d1db6c0464be754005db989/chrome/browser/resources/settings/settings.html

Project Member

Comment 29 by bugdroid1@chromium.org, Mar 4 2017

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

commit a53c8f8f7a4c7f0f73eaa321909aefee7639bb35
Author: dbeam <dbeam@chromium.org>
Date: Sat Mar 04 05:45:50 2017

MD Settings/Options: add equivalent logs for "time until interactive"

This is so we can test the speed of both pages in the wild

R=dpapad@chromium.org,asvitkine@chromium.org
BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2715933004
Cr-Commit-Position: refs/heads/master@{#454764}

[modify] https://crrev.com/a53c8f8f7a4c7f0f73eaa321909aefee7639bb35/chrome/browser/resources/options/options.js
[modify] https://crrev.com/a53c8f8f7a4c7f0f73eaa321909aefee7639bb35/chrome/browser/resources/settings/settings_ui/settings_ui.js
[modify] https://crrev.com/a53c8f8f7a4c7f0f73eaa321909aefee7639bb35/tools/metrics/histograms/histograms.xml

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 10 2017

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

commit 17018ae26c0cb9c21e76f9e6040d0583b78f6b93
Author: dpapad <dpapad@chromium.org>
Date: Fri Mar 10 02:54:36 2017

WebUI: Split unpack_pak functionality to its own GN action.

This is a preparatory step for splitting MD Settings to a main
and a lazy module.

BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2726403003
Cr-Commit-Position: refs/heads/master@{#455966}

[modify] https://crrev.com/17018ae26c0cb9c21e76f9e6040d0583b78f6b93/chrome/browser/resources/settings/BUILD.gn
[modify] https://crrev.com/17018ae26c0cb9c21e76f9e6040d0583b78f6b93/chrome/browser/resources/unpack_pak.py
[modify] https://crrev.com/17018ae26c0cb9c21e76f9e6040d0583b78f6b93/chrome/browser/resources/vulcanize.gni
[modify] https://crrev.com/17018ae26c0cb9c21e76f9e6040d0583b78f6b93/chrome/browser/resources/vulcanize_gn.py

Project Member

Comment 31 by bugdroid1@chromium.org, Mar 14 2017

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

commit 08266b3fca707804065a2cfd60331722ade41969
Author: dpapad <dpapad@chromium.org>
Date: Tue Mar 14 05:00:57 2017

MD Settings: Allow search within settings to track multiple requests separately.

Previously it was always assumed that two calls to SearchManager#search(), one
for the "basic" and one for the "advanced" page, would happen in the same turn
of the JS message loop. For this reason it was safe to use the same queue for
tracking all subtasks, as well as use the same promise to signify the completion
of both calls.

Making the "advanced" page lazy loaded (upcoming change), means that the 2nd
call to search() can't be made in the same turn of the message loop, and
therefore tracking the two calls requires different queues and different
promises.

BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2739323005
Cr-Commit-Position: refs/heads/master@{#456626}

[modify] https://crrev.com/08266b3fca707804065a2cfd60331722ade41969/chrome/browser/resources/settings/basic_page/basic_page.js
[modify] https://crrev.com/08266b3fca707804065a2cfd60331722ade41969/chrome/browser/resources/settings/search_settings.js
[modify] https://crrev.com/08266b3fca707804065a2cfd60331722ade41969/chrome/browser/resources/settings/settings_main/settings_main.js
[modify] https://crrev.com/08266b3fca707804065a2cfd60331722ade41969/chrome/test/data/webui/settings/basic_page_browsertest.js
[modify] https://crrev.com/08266b3fca707804065a2cfd60331722ade41969/chrome/test/data/webui/settings/search_settings_test.js

Project Member

Comment 34 by bugdroid1@chromium.org, Mar 16 2017

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

commit 06614e256a13dd528d165d33c30c158f225834d7
Author: dpapad <dpapad@chromium.org>
Date: Thu Mar 16 21:53:04 2017

MD Settings: Separate code to be loaded lazily to its own lazy_load.html

This CL does not change the way the advanced page is loaded. It is still loads
during startup as before. This is a preparatory step/trick, that allows landing
all the BUILD configuration changes first, before dealing with the lazy loading logic.

BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2746033005
Cr-Commit-Position: refs/heads/master@{#457574}

[modify] https://crrev.com/06614e256a13dd528d165d33c30c158f225834d7/chrome/browser/resources/settings/BUILD.gn
[modify] https://crrev.com/06614e256a13dd528d165d33c30c158f225834d7/chrome/browser/resources/settings/basic_page/basic_page.html
[add] https://crrev.com/06614e256a13dd528d165d33c30c158f225834d7/chrome/browser/resources/settings/lazy_load.html
[modify] https://crrev.com/06614e256a13dd528d165d33c30c158f225834d7/chrome/browser/resources/settings/settings_resources.grd
[modify] https://crrev.com/06614e256a13dd528d165d33c30c158f225834d7/chrome/browser/resources/settings/settings_resources_vulcanized.grd
[modify] https://crrev.com/06614e256a13dd528d165d33c30c158f225834d7/chrome/browser/resources/vulcanize_gn.py
[modify] https://crrev.com/06614e256a13dd528d165d33c30c158f225834d7/chrome/browser/ui/webui/settings/md_settings_ui.cc

Labels: M-59
Project Member

Comment 36 by bugdroid1@chromium.org, Mar 21 2017

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

commit f9e8f9e6d60d8cd26c4239a377419cbb37fe8724
Author: dpapad <dpapad@chromium.org>
Date: Tue Mar 21 20:10:38 2017

MD Settings: Lazy load the contents of the "advanced" settings.

BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2754563002
Cr-Commit-Position: refs/heads/master@{#458527}

[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/browser/resources/settings/basic_page/basic_page.html
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/browser/resources/settings/basic_page/basic_page.js
[add] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/browser/resources/settings/controls/settings_idle_load.html
[add] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/browser/resources/settings/controls/settings_idle_load.js
[delete] https://crrev.com/2f746c5c4260329c7ef5a850ce1b72d78da106a6/chrome/browser/resources/settings/controls/settings_idle_render.html
[delete] https://crrev.com/2f746c5c4260329c7ef5a850ce1b72d78da106a6/chrome/browser/resources/settings/controls/settings_idle_render.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/browser/resources/settings/route.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/browser/resources/settings/settings_main/settings_main.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/browser/resources/settings/settings_page/main_page_behavior.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/browser/resources/settings/settings_resources.grd
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/BUILD.gn
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/advanced_page_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/basic_page_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/cr_settings_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/easy_unlock_browsertest_chromeos.js
[add] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/ensure_lazy_loaded.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/help_page_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/languages_page_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/on_startup_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/passwords_and_forms_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/route_tests.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/settings_autofill_section_browsertest.js
[rename] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/settings_idle_load_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/settings_page_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/settings_passwords_section_browsertest.js
[modify] https://crrev.com/f9e8f9e6d60d8cd26c4239a377419cbb37fe8724/chrome/test/data/webui/settings/settings_subpage_browsertest.js

The CL that splits MD Settings to a basic and a lazy module has landed (and hopefully will stick). FYI, the remaining potential performance enhancements I have in mind:

1) Strip non-Chrome CSS prefixed rules from our copy of Polymer. https://codereview.chromium.org/1633603004. Saves about 6% size the vulcanized bundle.
2) Improve scrolling performance,  issue 699302 .
3) Replace usage of obsolete iron-flex-layout with iron-flex-layout-classes,  issue 635633 . A bit unclear whether it is related to performance, see @michaelpg's comment at https://bugs.chromium.org/p/chromium/issues/detail?id=635633#c2.
Project Member

Comment 38 by bugdroid1@chromium.org, Mar 23 2017

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

commit e310625929d561ce55c6ffc107c5a708912534e3
Author: dbeam <dbeam@chromium.org>
Date: Thu Mar 23 20:09:01 2017

MD Settings: push pixels to the screen faster

This CL simulates the future layout of the settings page
in simple HTML/CSS before the components load.

BUG= 597347 
R=dpapad@chromium.org
TBR=esprehn@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2773613002
Cr-Commit-Position: refs/heads/master@{#459192}

[modify] https://crrev.com/e310625929d561ce55c6ffc107c5a708912534e3/chrome/browser/resources/settings/settings.html

Project Member

Comment 40 by bugdroid1@chromium.org, Apr 5 2017

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

commit 7d8a6036276bc6de7800e441f1ffd04b560dbe61
Author: dpapad <dpapad@chromium.org>
Date: Wed Apr 05 17:49:21 2017

MD Settings: Stop rendering unnecessary iron-collapse instances in cert manager.

This reduces the time it takes to render the "Authorities" view of the
certificate manager by 40% (450ms -> 250ms).

BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2802513002
Cr-Commit-Position: refs/heads/master@{#462137}

[modify] https://crrev.com/7d8a6036276bc6de7800e441f1ffd04b560dbe61/chrome/browser/resources/settings/certificate_manager_page/certificate_entry.html

Project Member

Comment 42 by bugdroid1@chromium.org, Apr 7 2017

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

commit 99cc887ad000b29513c3d2613efa46f26199e504
Author: dpapad <dpapad@chromium.org>
Date: Fri Apr 07 00:19:21 2017

MD Settings: Move browserProxies outside of Polymer "properties".

BUG= 597347 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2799563003
Cr-Commit-Position: refs/heads/master@{#462703}

[modify] https://crrev.com/99cc887ad000b29513c3d2613efa46f26199e504/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.js
[modify] https://crrev.com/99cc887ad000b29513c3d2613efa46f26199e504/chrome/browser/resources/settings/certificate_manager_page/ca_trust_edit_dialog.js
[modify] https://crrev.com/99cc887ad000b29513c3d2613efa46f26199e504/chrome/browser/resources/settings/certificate_manager_page/certificate_delete_confirmation_dialog.js
[modify] https://crrev.com/99cc887ad000b29513c3d2613efa46f26199e504/chrome/browser/resources/settings/certificate_manager_page/certificate_password_decryption_dialog.js
[modify] https://crrev.com/99cc887ad000b29513c3d2613efa46f26199e504/chrome/browser/resources/settings/certificate_manager_page/certificate_password_encryption_dialog.js
[modify] https://crrev.com/99cc887ad000b29513c3d2613efa46f26199e504/chrome/browser/resources/settings/on_startup_page/startup_urls_page.js
[modify] https://crrev.com/99cc887ad000b29513c3d2613efa46f26199e504/chrome/browser/resources/settings/search_engines_page/omnibox_extension_entry.js
[modify] https://crrev.com/99cc887ad000b29513c3d2613efa46f26199e504/chrome/browser/resources/settings/site_settings/site_data_details_subpage.js

Status: Fixed (was: Started)
\o/

Sign in to add a comment