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

Issue 594159 link

Starred by 6 users

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Blocked on:
issue 575850
issue 602137



Sign in to add a comment

Improve performance of pages that load scripts using document.write

Project Member Reported by csharrison@chromium.org, Mar 11 2016

Issue description

This is a tracking issue for the project to improve the performance of sites that load parser blocking scripts using document.write.

These scripts are a major performance killer, especially on poor networks. Additionally, because they are parser blocking, they often postpone sending out requests for other dynamic content on the page. This causes under utilization of the network.

There are a number of small subprojects that are working on targeting specific wins regarding document.write.
 
Blockedon: 575850
Summary: Improve performance of pages that load scripts using document.write (was: Improve performance of sites using document.write)
Project Member

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

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

commit 4bdb3bffcb7a93451ce52d218b99ecc87c7b7348
Author: bmcquade <bmcquade@chromium.org>
Date: Fri Apr 01 17:32:38 2016

Add field trial for disallowing fetch of doc.written scripts.

BUG=594159

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

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

[modify] https://crrev.com/4bdb3bffcb7a93451ce52d218b99ecc87c7b7348/chrome/browser/chrome_content_browser_client.cc

Project Member

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

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

commit 93bafc396d0c61800ad30d8dc569539ca3de7bd9
Author: csharrison <csharrison@chromium.org>
Date: Tue Apr 05 18:00:32 2016

Track whether an element was inserted via document.write

This patch adds a member to ScriptLoader which tracks whether elements are created
via a call to document.write. These scripts are going to be parser blocking. The plan is to use this data for metrics tracking, as well as driving a prediction
service which will learn to preload these scripts when we load their initiator.

BUG=594159

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

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

[modify] https://crrev.com/93bafc396d0c61800ad30d8dc569539ca3de7bd9/third_party/WebKit/Source/core/dom/ScriptLoader.cpp
[modify] https://crrev.com/93bafc396d0c61800ad30d8dc569539ca3de7bd9/third_party/WebKit/Source/core/dom/ScriptLoader.h
[modify] https://crrev.com/93bafc396d0c61800ad30d8dc569539ca3de7bd9/third_party/WebKit/Source/core/dom/ScriptRunnerTest.cpp
[modify] https://crrev.com/93bafc396d0c61800ad30d8dc569539ca3de7bd9/third_party/WebKit/Source/core/html/HTMLScriptElement.cpp
[modify] https://crrev.com/93bafc396d0c61800ad30d8dc569539ca3de7bd9/third_party/WebKit/Source/core/html/HTMLScriptElement.h
[modify] https://crrev.com/93bafc396d0c61800ad30d8dc569539ca3de7bd9/third_party/WebKit/Source/core/html/parser/HTMLConstructionSite.cpp

Blockedon: 602137
Project Member

Comment 6 by bugdroid1@chromium.org, Apr 11 2016

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

commit ae811ab72369dbbbb5bb3694c1fc618672099353
Author: csharrison <csharrison@chromium.org>
Date: Mon Apr 11 11:32:25 2016

Propogate loading behavior data from Blink to content/

This patch adds an enum describing various loading metadata.
These bits are set when the Document hits various codepaths,
e.g. new loading features. The metadata is then propagated
into content/ for use by content consumers. The primary use
case for this new API is to aid in metrics collection.

This is part 1 of a 2 part patch set where the
page_load_metrics system will use the metadata to separate
separate histograms in the browser process.

The second patch can be found here:
https://codereview.chromium.org/1857443002/

BUG=594159

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

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

[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/content/public/renderer/render_frame_observer.h
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/content/renderer/render_frame_impl.h
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/Source/core/loader/DocumentLoader.h
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/Source/core/loader/FrameLoaderClient.h
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/Source/web/FrameLoaderClientImpl.h
[add] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h
[modify] https://crrev.com/ae811ab72369dbbbb5bb3694c1fc618672099353/third_party/WebKit/public/web/WebFrameClient.h

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 14 2016

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

commit b9a657db596e85b738c56f0ef896428ba5997227
Author: csharrison <csharrison@chromium.org>
Date: Thu Apr 14 00:41:40 2016

Plumb experiment flags through page_load_metrics and add a new observer

This patch is the second of two patches to plumb experimental flags into
the page_load_metrics system to separate histograms. This change adds
an int flag to the IPC message, which can then be used by various metrics
observers so they can log histograms only when the feature is triggered.

BUG=594159

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

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

[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/DEPS
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
[add] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc
[add] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.h
[add] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/chrome_browser.gypi
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/chrome_tests_unit.gypi
[add] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/test/data/page_load_metrics/document_write_external_script.html
[add] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/test/data/page_load_metrics/document_write_no_script.html
[add] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/chrome/test/data/page_load_metrics/empty.js
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/DEPS
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/browser/metrics_web_contents_observer.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/browser/metrics_web_contents_observer.h
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/browser/page_load_metrics_observer.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/browser/page_load_metrics_observer.h
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/common/page_load_metrics_messages.h
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/common/page_load_timing.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/common/page_load_timing.h
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/renderer/metrics_render_frame_observer.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/renderer/metrics_render_frame_observer.h
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/renderer/page_timing_metrics_sender.h
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
[modify] https://crrev.com/b9a657db596e85b738c56f0ef896428ba5997227/tools/metrics/histograms/histograms.xml

Project Member

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

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

commit e13e2c046df9fa919184985e332a9bc5988858ff
Author: Charles Harrison <csharrison@chromium.org>
Date: Fri Apr 15 14:39:34 2016

Propogate loading behavior data from Blink to content/

This patch adds an enum describing various loading metadata.
These bits are set when the Document hits various codepaths,
e.g. new loading features. The metadata is then propagated
into content/ for use by content consumers. The primary use
case for this new API is to aid in metrics collection.

This is part 1 of a 2 part patch set where the
page_load_metrics system will use the metadata to separate
separate histograms in the browser process.

The second patch can be found here:
https://codereview.chromium.org/1857443002/

BUG=594159

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

(cherry picked from commit ae811ab72369dbbbb5bb3694c1fc618672099353)

Cr-Original-Commit-Position: refs/heads/master@{#386365}
Cr-Commit-Position: refs/branch-heads/2704@{#73}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/content/public/renderer/render_frame_observer.h
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/content/renderer/render_frame_impl.h
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/Source/core/html/parser/HTMLPreloadScanner.cpp
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/Source/core/loader/DocumentLoader.h
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/Source/core/loader/FrameLoaderClient.h
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/Source/web/FrameLoaderClientImpl.cpp
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/Source/web/FrameLoaderClientImpl.h
[add] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h
[modify] https://crrev.com/e13e2c046df9fa919184985e332a9bc5988858ff/third_party/WebKit/public/web/WebFrameClient.h

Project Member

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

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

commit 60c614c48b08d9d2173077156d9ebf5da8bdd945
Author: Charles Harrison <csharrison@chromium.org>
Date: Fri Apr 15 15:07:46 2016

Add null check for page_load_metrics timing sender

BUG= 603526 

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

Cr-Commit-Position: refs/heads/master@{#387305}
(cherry picked from commit 1e2463244f2a1dd7a20c511b4b7b17f311129a5d)

Plumb experiment flags through page_load_metrics and add a new observer

This patch is the second of two patches to plumb experimental flags into
the page_load_metrics system to separate histograms. This change adds
an int flag to the IPC message, which can then be used by various metrics
observers so they can log histograms only when the feature is triggered.

BUG=594159

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

(cherry picked from commit b9a657db596e85b738c56f0ef896428ba5997227)

Cr-Original-Commit-Position: refs/heads/master@{#387175}
Cr-Commit-Position: refs/branch-heads/2704@{#74}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/DEPS
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
[add] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc
[add] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.h
[add] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/chrome_browser.gypi
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/chrome_tests_unit.gypi
[add] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/test/data/page_load_metrics/document_write_external_script.html
[add] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/test/data/page_load_metrics/document_write_no_script.html
[add] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/chrome/test/data/page_load_metrics/empty.js
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/DEPS
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/browser/metrics_web_contents_observer.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/browser/metrics_web_contents_observer.h
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/browser/page_load_metrics_observer.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/browser/page_load_metrics_observer.h
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/common/page_load_metrics_messages.h
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/common/page_load_timing.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/common/page_load_timing.h
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/renderer/metrics_render_frame_observer.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/renderer/metrics_render_frame_observer.h
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/renderer/page_timing_metrics_sender.h
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
[modify] https://crrev.com/60c614c48b08d9d2173077156d9ebf5da8bdd945/tools/metrics/histograms/histograms.xml

Sign in to add a comment