New issue
Advanced search Search tips

Issue 729953 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Task

Blocked on:
issue 735410

Blocking:
issue 723233



Sign in to add a comment

platform/loader impl for Loading Dispatcher v0

Project Member Reported by toyoshim@chromium.org, Jun 6 2017

Issue description

Implement platform/loader functionalities that we proposed in the design doc: https://docs.google.com/a/chromium.org/document/d/1mf3pMcl4mvi8ew0h0KVAMVATQipNV3ERSp9WrtlPGrU/edit?usp=sharing
 
 
Labels: M-61
Blockedon: 735410
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 22 2017

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

commit da14fb28cd3ccd701355b1e163e3d1d84ef2a73a
Author: Takashi Toyoshima <toyoshim@chromium.org>
Date: Thu Jun 22 11:44:52 2017

Comment cleanup to follow the method renaming

Because this patch was split from another CL of
https://chromium-review.googlesource.com/c/525354/,
this does not covers so many files, but just four;
 - FontResourceTest.cpp
 - Resource.h
 - ResourceFetcherTest.cpp
 - ResourceLoader.cpp

BUG= 729953 

Change-Id: I049941201ef2bcee7a32fda470f3d5d171632814
Reviewed-on: https://chromium-review.googlesource.com/544403
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481508}
[modify] https://crrev.com/da14fb28cd3ccd701355b1e163e3d1d84ef2a73a/third_party/WebKit/Source/core/loader/resource/FontResourceTest.cpp
[modify] https://crrev.com/da14fb28cd3ccd701355b1e163e3d1d84ef2a73a/third_party/WebKit/Source/platform/loader/fetch/Resource.h
[modify] https://crrev.com/da14fb28cd3ccd701355b1e163e3d1d84ef2a73a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp
[modify] https://crrev.com/da14fb28cd3ccd701355b1e163e3d1d84ef2a73a/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 23 2017

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

commit cde1b24dea0e95b2da254954f86a079c7522a80a
Author: Takashi Toyoshima <toyoshim@chromium.org>
Date: Fri Jun 23 05:08:57 2017

Loading Dispatcher: Implement WebFrameScheduler::Observer interface

This patch adds an Observer interface to WebFrameScheduler so that
platform/loader can implement Blink scheduler backed throttling scheme.

Observer will be notified when scheduler's throttling state is changed.
Internally, this means the page visibility is changed to which the frame
belongs.

BUG= 729953 

Change-Id: I851b153fef2e0c6ada748bee997bc1e69292e08d
Reviewed-on: https://chromium-review.googlesource.com/525198
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org>
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481808}
[modify] https://crrev.com/cde1b24dea0e95b2da254954f86a079c7522a80a/third_party/WebKit/Source/core/loader/EmptyClients.cpp
[modify] https://crrev.com/cde1b24dea0e95b2da254954f86a079c7522a80a/third_party/WebKit/Source/platform/WebFrameScheduler.h
[modify] https://crrev.com/cde1b24dea0e95b2da254954f86a079c7522a80a/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc
[modify] https://crrev.com/cde1b24dea0e95b2da254954f86a079c7522a80a/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h
[modify] https://crrev.com/cde1b24dea0e95b2da254954f86a079c7522a80a/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 29 2017

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

commit 11bf2c457dacb04bcfbd93569eb3972a6dfc868e
Author: Takashi Toyoshima <toyoshim@chromium.org>
Date: Thu Jun 29 12:37:32 2017

Loading Dispatcher: Implement ResourceLoadScheduler

This patch introduces ResourceLoadScheduler and implements basic
functionalities to enqueue all incoming requests, and schedule
them when the loader has an available budget.

Now the ResourceLoadScheduler intercepts all incoming requests, but
it still does not change any actual behaviors.

BUG= 729953 

Change-Id: Id7eea1606dd3c7f9a6e1c3020b9f921e4c733b3e
Reviewed-on: https://chromium-review.googlesource.com/525354
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org>
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483336}
[modify] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/core/frame/SubresourceIntegrityTest.cpp
[modify] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/BUILD.gn
[modify] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
[modify] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h
[add] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.cpp
[add] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.h
[add] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp
[modify] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp
[modify] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.h
[modify] https://crrev.com/11bf2c457dacb04bcfbd93569eb3972a6dfc868e/third_party/WebKit/Source/platform/loader/fetch/ResourceLoaderTest.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 7 2017

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

commit 512b8458fc305dac983fcbf1f1a55b4bda74ed69
Author: Takashi Toyoshima <toyoshim@chromium.org>
Date: Fri Jul 07 08:12:54 2017

Loading Dispatcher: Enable behind the experimental-webplatform-features flag

This patch plumb WebFrameScheduler to ResourceLoadScheduler so that
it can limit running request numbers when the frame is in a throttled state.

With this patch, Loading Dispatcher can work behind the
experimental-webplatform-features flag.

Bug:  729953 
Change-Id: I44cf8028b9b14cb7bdbac37baf004854ef6e2739
Reviewed-on: https://chromium-review.googlesource.com/555190
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org>
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484856}
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/core/loader/FrameFetchContext.h
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/platform/loader/fetch/FetchContext.h
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.cpp
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.h
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp
[modify] https://crrev.com/512b8458fc305dac983fcbf1f1a55b4bda74ed69/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 11 2017

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

commit 8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1
Author: Takashi Toyoshima <toyoshim@chromium.org>
Date: Tue Jul 11 08:22:29 2017

Loading Dispatcher: plumb field trial parameters

This patch introduces a field trial for the ResourceLoadScheduler
and makes the feature configurable through chrome://flags and
field trial parameters.

Bug:  729953 
Change-Id: Id8619ad8979669748e94a9988c0a46ef6a318726
Reviewed-on: https://chromium-review.googlesource.com/558902
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485552}
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/chrome/browser/about_flags.cc
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/content/child/runtime_features.cc
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/content/public/common/content_features.cc
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/content/public/common/content_features.h
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/third_party/WebKit/Source/platform/exported/WebRuntimeFeatures.cpp
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/third_party/WebKit/Source/platform/loader/DEPS
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.cpp
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.h
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/third_party/WebKit/public/platform/WebRuntimeFeatures.h
[modify] https://crrev.com/8a7fd954d2b1576a75ec917c9fd9e7e9360ef4e1/tools/metrics/histograms/enums.xml

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 12 2017

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

commit 50255df198a424b455e391a401ace88bc4f36486
Author: Takashi Toyoshima <toyoshim@chromium.org>
Date: Wed Jul 12 07:46:01 2017

MockFetchContext: provide a mocked WebFrameScheduler

Now that ResourceLoadScheduler depends on WebFrameScheduler, and it is
useful to enable ResourceLoadScheduler even on platform unit tests,
let's introduce a simple mocked WebFrameScheduler that allows
calling MockFetchContext::GetFrameScheduler(), and use it to call
{Add|Remove}ThrottlingObserver() for testing.

This also makes it possible to remove the test-only purposed
GetTaskRunner() method from the MockFetchContext, and makes
FetchTestingPlatformSupport consistent in terms of Blink scheduler.

Bug:  729953 
Change-Id: Ib5ab2ad1c5b6ce2b4267667ad0b0cacbb1cc8f17
Reviewed-on: https://chromium-review.googlesource.com/563216
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485891}
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/core/frame/SubresourceIntegrityTest.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/core/loader/modulescript/ModuleScriptLoaderTest.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/core/loader/resource/FontResourceTest.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/core/loader/resource/ImageResourceTest.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/fetch/MemoryCacheCorrectnessTest.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadScheduler.h
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/fetch/ResourceLoadSchedulerTest.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/fetch/ResourceLoaderTest.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/testing/FetchTestingPlatformSupport.cpp
[modify] https://crrev.com/50255df198a424b455e391a401ace88bc4f36486/third_party/WebKit/Source/platform/loader/testing/MockFetchContext.h

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 13 2017

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

commit 3728f6a4b86dd9932200820daa0a897d8f8dc958
Author: Takashi Toyoshima <toyoshim@chromium.org>
Date: Thu Jul 13 08:27:45 2017

Loading Dispatcher: defers loading supports on throttled requests

Current implementation does not support defers loading correctly
when the defers flag is updated when the request is in the
pending queue due to a throttling.

Bug:  729953 
Change-Id: I177b8b341c7f74f699c83502db6963eaa0a6be41
Reviewed-on: https://chromium-review.googlesource.com/558533
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486319}
[modify] https://crrev.com/3728f6a4b86dd9932200820daa0a897d8f8dc958/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
[modify] https://crrev.com/3728f6a4b86dd9932200820daa0a897d8f8dc958/third_party/WebKit/Source/platform/loader/fetch/ResourceLoader.cpp

Status: Fixed (was: Started)

Sign in to add a comment