Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Issue 1230133005: Fix Resource Priorities and Scheduling (Chrome Side) (Closed)

Created:
5 years, 5 months ago by Pat Meenan
Modified:
5 years, 4 months ago
Reviewers:
Bryan McQuade, mmenke
CC:
chromium-reviews, darin-cc_chromium.org, jam
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

This is a field trial for experimenting with several different resource scheduling changes (individually controllable): - Increasing the priority of fonts - Decreasing the priority of late-body scripts - Increasing the priority of Async JS - Reducing the contention during the initial load of head resources Doc that describes the rationale behind all of the changes is here: https://docs.google.com/document/d/1bCDuq9H1ih9iNjgzyAL0gpwNFiEP4TZS-YLRp_RuMlc/edit?usp=sharing Blink side of the change is here: https://codereview.chromium.org/1246493002/ BUG=317785, 517902, 517904 Committed: https://crrev.com/9ac66968b024f1d33427e4776bba672aab8ffa59 Cr-Commit-Position: refs/heads/master@{#343681}

Patch Set 1 #

Patch Set 2 : Fixed categorization of delayable resources #

Patch Set 3 : Updated Mode 2 to load lower priority resources in waves #

Patch Set 4 : Fixed member init order #

Total comments: 2

Patch Set 5 : Cleanup #

Patch Set 6 : Rebased #

Total comments: 6

Patch Set 7 : Individual toggles via finch trials/variations #

Patch Set 8 : Cleaned up variation parsing #

Patch Set 9 : Encoded the variations in the field trial group names #

Patch Set 10 : Removed leftover debugging #

Patch Set 11 : Moved blink options to use the field trial group name #

Patch Set 12 : Fixed holdback of low priority resources #

Total comments: 38

Patch Set 13 : Initial changes from review #

Patch Set 14 : Added unit test for blink settings #

Patch Set 15 : Added unit tests #

Total comments: 4

Patch Set 16 : Updated comment #

Total comments: 57

Patch Set 17 : Changes from review feedback #

Total comments: 13

Patch Set 18 : Rebased #

Patch Set 19 : Changes from review feedback #

Total comments: 4

Patch Set 20 : Switched the request classification to a bitfield of attributes #

Total comments: 14

Patch Set 21 : Fixed nits #

Patch Set 22 : Fixed DCHECK attribute counting #

Patch Set 23 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+684 lines, -113 lines) Patch
M chrome/browser/chrome_content_browser_client.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +36 lines, -1 line 0 comments Download
M chrome/browser/chrome_content_browser_client_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 9 chunks +72 lines, -13 lines 0 comments Download
M content/browser/loader/resource_scheduler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +40 lines, -8 lines 0 comments Download
M content/browser/loader/resource_scheduler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 20 chunks +193 lines, -86 lines 0 comments Download
M content/browser/loader/resource_scheduler_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 chunks +343 lines, -5 lines 0 comments Download

Messages

Total messages: 51 (11 generated)
Bryan McQuade
https://codereview.chromium.org/1230133005/diff/60001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/60001/content/browser/loader/resource_scheduler.cc#newcode323 content/browser/loader/resource_scheduler.cc:323: std::string fetch_mode_cmd = Could we make ResourceScheduler constructor the ...
5 years, 5 months ago (2015-07-22 17:46:49 UTC) #2
Pat Meenan
https://codereview.chromium.org/1230133005/diff/60001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/60001/content/browser/loader/resource_scheduler.cc#newcode323 content/browser/loader/resource_scheduler.cc:323: std::string fetch_mode_cmd = On 2015/07/22 17:46:48, Bryan McQuade wrote: ...
5 years, 4 months ago (2015-07-28 17:14:21 UTC) #3
Bryan McQuade
https://codereview.chromium.org/1230133005/diff/100001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/100001/content/browser/loader/resource_scheduler.cc#newcode823 content/browser/loader/resource_scheduler.cc:823: in_flight_requests_.size() >= 2) { it's hard for me to ...
5 years, 4 months ago (2015-07-29 17:53:47 UTC) #4
Pat Meenan
https://codereview.chromium.org/1230133005/diff/100001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/100001/content/browser/loader/resource_scheduler.cc#newcode823 content/browser/loader/resource_scheduler.cc:823: in_flight_requests_.size() >= 2) { On 2015/07/29 17:53:47, Bryan McQuade ...
5 years, 4 months ago (2015-08-07 15:53:53 UTC) #5
Pat Meenan
mmenke@chromium.org: PTAL when you get a chance. This is a field trial experiment for several ...
5 years, 4 months ago (2015-08-07 16:00:49 UTC) #7
mmenke
Not a full review https://codereview.chromium.org/1230133005/diff/220001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/1230133005/diff/220001/chrome/browser/chrome_content_browser_client.cc#newcode1252 chrome/browser/chrome_content_browser_client.cc:1252: } What about the others? ...
5 years, 4 months ago (2015-08-07 16:55:11 UTC) #8
Bryan McQuade
Just one comment re: the question about tests. https://codereview.chromium.org/1230133005/diff/220001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/1230133005/diff/220001/chrome/browser/chrome_content_browser_client.cc#newcode1252 chrome/browser/chrome_content_browser_client.cc:1252: } ...
5 years, 4 months ago (2015-08-07 17:35:53 UTC) #9
Bryan McQuade
https://codereview.chromium.org/1230133005/diff/220001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/1230133005/diff/220001/chrome/browser/chrome_content_browser_client.cc#newcode1243 chrome/browser/chrome_content_browser_client.cc:1243: if (split_group.size() == 5 && split_group[1].length() == 5) { ...
5 years, 4 months ago (2015-08-07 18:02:26 UTC) #10
Pat Meenan
Still need to figure out how to test the variations on the scheduling logic in ...
5 years, 4 months ago (2015-08-07 20:48:10 UTC) #11
mmenke
Unrelated to this CL, but we have all this throttling and coalescing logic here that ...
5 years, 4 months ago (2015-08-07 20:56:03 UTC) #12
Pat Meenan
I just added unit tests for the various permutations from the field trial code (which ...
5 years, 4 months ago (2015-08-10 15:48:25 UTC) #13
mmenke
On 2015/08/10 15:48:25, Pat Meenan wrote: > I just added unit tests for the various ...
5 years, 4 months ago (2015-08-10 20:21:20 UTC) #14
Bryan McQuade
Overall LGTM. https://codereview.chromium.org/1230133005/diff/280001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/1230133005/diff/280001/chrome/browser/chrome_content_browser_client.cc#newcode1262 chrome/browser/chrome_content_browser_client.cc:1262: // The field trial is configured to ...
5 years, 4 months ago (2015-08-11 13:25:07 UTC) #15
mmenke
https://codereview.chromium.org/1230133005/diff/280001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/280001/content/browser/loader/resource_scheduler.cc#newcode806 content/browser/loader/resource_scheduler.cc:806: in_flight_requests_.size() - in_flight_delayable_count_; On 2015/08/11 13:25:07, Bryan McQuade wrote: ...
5 years, 4 months ago (2015-08-11 13:35:34 UTC) #16
Pat Meenan
https://codereview.chromium.org/1230133005/diff/280001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/1230133005/diff/280001/chrome/browser/chrome_content_browser_client.cc#newcode1262 chrome/browser/chrome_content_browser_client.cc:1262: // The field trial is configured to force users ...
5 years, 4 months ago (2015-08-11 14:37:36 UTC) #17
mmenke
https://codereview.chromium.org/1230133005/diff/300001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/1230133005/diff/300001/chrome/browser/chrome_content_browser_client.cc#newcode1253 chrome/browser/chrome_content_browser_client.cc:1253: blink_settings.push_back("fetchIncreasePriorities=true"); Is the code to implement these landed yet? ...
5 years, 4 months ago (2015-08-11 17:57:23 UTC) #18
mmenke
https://codereview.chromium.org/1230133005/diff/300001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/300001/content/browser/loader/resource_scheduler.cc#newcode819 content/browser/loader/resource_scheduler.cc:819: max_num_delayable_while_layout_blocking_)) { max_num_delayable_while_layout_blocking_ is used with >=, while in_flight_layout_blocking_threshold_ ...
5 years, 4 months ago (2015-08-11 19:27:29 UTC) #19
Pat Meenan
https://codereview.chromium.org/1230133005/diff/300001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/1230133005/diff/300001/chrome/browser/chrome_content_browser_client.cc#newcode1253 chrome/browser/chrome_content_browser_client.cc:1253: blink_settings.push_back("fetchIncreasePriorities=true"); On 2015/08/11 17:57:23, mmenke wrote: > Is the ...
5 years, 4 months ago (2015-08-12 16:21:00 UTC) #20
mmenke
Quick response. Should have time for another pass today. really shouldn't land this until the ...
5 years, 4 months ago (2015-08-12 16:31:06 UTC) #21
mmenke
https://codereview.chromium.org/1230133005/diff/320001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/320001/content/browser/loader/resource_scheduler.cc#newcode635 content/browser/loader/resource_scheduler.cc:635: } nit: Remove braces, to be more consistent with ...
5 years, 4 months ago (2015-08-12 17:30:09 UTC) #22
mmenke
https://codereview.chromium.org/1230133005/diff/320001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/320001/content/browser/loader/resource_scheduler.cc#newcode808 content/browser/loader/resource_scheduler.cc:808: if (in_flight_requests_.size() > 0 && On 2015/08/12 17:30:08, mmenke ...
5 years, 4 months ago (2015-08-12 17:33:59 UTC) #23
Pat Meenan
FYI, the blink-side landed last night. Only thing I wasn't 100% clear on was the ...
5 years, 4 months ago (2015-08-13 12:11:03 UTC) #24
mmenke
https://codereview.chromium.org/1230133005/diff/360001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/360001/content/browser/loader/resource_scheduler.cc#newcode651 content/browser/loader/resource_scheduler.cc:651: } On 2015/08/13 12:11:03, Pat Meenan wrote: > On ...
5 years, 4 months ago (2015-08-13 15:16:08 UTC) #25
mmenke
Sorry I've been somewhat slow on this review - had a number of reviews that ...
5 years, 4 months ago (2015-08-13 15:16:41 UTC) #26
Pat Meenan
https://codereview.chromium.org/1230133005/diff/360001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/360001/content/browser/loader/resource_scheduler.cc#newcode651 content/browser/loader/resource_scheduler.cc:651: } On 2015/08/13 15:16:07, mmenke wrote: > On 2015/08/13 ...
5 years, 4 months ago (2015-08-13 20:56:42 UTC) #27
mmenke
LGTM, thanks for bearing with me! https://codereview.chromium.org/1230133005/diff/380001/content/browser/loader/resource_scheduler.cc File content/browser/loader/resource_scheduler.cc (right): https://codereview.chromium.org/1230133005/diff/380001/content/browser/loader/resource_scheduler.cc#newcode44 content/browser/loader/resource_scheduler.cc:44: typedef uint8_t RequestAttributes; ...
5 years, 4 months ago (2015-08-13 21:27:45 UTC) #28
Pat Meenan
Thanks for taking the time to really understand what is going on and push on ...
5 years, 4 months ago (2015-08-14 13:52:48 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1230133005/400001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1230133005/400001
5 years, 4 months ago (2015-08-14 13:53:08 UTC) #32
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/50231) mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, ...
5 years, 4 months ago (2015-08-14 14:18:08 UTC) #34
mmenke
Hrm...Rather glad we have those checks
5 years, 4 months ago (2015-08-14 15:05:52 UTC) #35
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1230133005/420001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1230133005/420001
5 years, 4 months ago (2015-08-16 20:08:13 UTC) #37
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios_dbg_simulator_ninja on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_dbg_simulator_ninja/builds/57179) ios_rel_device_ninja on ...
5 years, 4 months ago (2015-08-16 20:09:24 UTC) #39
Pat Meenan
On 2015/08/14 15:05:52, mmenke wrote: > Hrm...Rather glad we have those checks Running a dry-run ...
5 years, 4 months ago (2015-08-16 20:12:18 UTC) #40
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1230133005/440001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1230133005/440001
5 years, 4 months ago (2015-08-16 21:59:22 UTC) #42
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 4 months ago (2015-08-16 23:04:11 UTC) #44
Pat Meenan
mmenke@ couold you PTAL at the DCHECK counting fix when you get a chance: https://codereview.chromium.org/1230133005/diff2/400001:420001/content/browser/loader/resource_scheduler.cc ...
5 years, 4 months ago (2015-08-16 23:06:32 UTC) #45
mmenke
LGTM. Not lovely, but I don't see a simpler solution.
5 years, 4 months ago (2015-08-17 14:40:10 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1230133005/440001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1230133005/440001
5 years, 4 months ago (2015-08-17 14:52:47 UTC) #49
commit-bot: I haz the power
Committed patchset #23 (id:440001)
5 years, 4 months ago (2015-08-17 14:57:12 UTC) #50
commit-bot: I haz the power
5 years, 4 months ago (2015-08-17 14:57:54 UTC) #51
Message was sent while issue was closed.
Patchset 23 (id:??) landed as
https://crrev.com/9ac66968b024f1d33427e4776bba672aab8ffa59
Cr-Commit-Position: refs/heads/master@{#343681}

Powered by Google App Engine
This is Rietveld 408576698