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

Issue 754918 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug
Proj-Servicification

Blocked on:
issue 785770

Blocking:
issue 598073



Sign in to add a comment

Port ResourceScheduler to work with the network service

Project Member Reported by jam@chromium.org, Aug 12 2017

Issue description

Specifically, content/browser/loader/resource_scheduler.*
 

Comment 1 by dougt@chromium.org, Oct 20 2017

Components: Internals>Network>Service
Owner: cmumford@chromium.org

Comment 3 by jam@chromium.org, Oct 20 2017

Cc: kinuko@chromium.org toyoshim@chromium.org kouhei@chromium.org
btw Kouhei mentioned today that Takashi's work on Loading Dispatcher (see  bug 729953 ) might mean we don't need all the logic in content/browser/loader anymore. I'm not very familiar, so CCing a bunch of folks. Thanks!
Cc: jkarlin@chromium.org tbansal@chromium.org
Merging this code into Loading Dispatcher was one of the goal under the GRC, but as far as I know, recently Josh and Tarun are running field studies here to have better resource scheduling that uses network layer information, such as underlying protocol versions, H1 vs H2 or QUIC.

It would be great if we can implement everything in the render side as a part of Loading Dispatcher, but I'd hear Josh and Tarun's opinions and plans.
The field study I'm running doesn't use any more information than ResourceScheduler already had (e.g., is it H1 vs H2 vs QUIC). The ResourceScheduler has always skipped throttling for H2&QUIC requests. My study disabled the skipping part.

Comment 6 by jam@chromium.org, Oct 24 2017

@jkarlin: I'm not sure I understand your reply. Are you saying you're ok with removing ResourceScheduler in favor of the renderer side Loading Dispatcher? FTR I'm also in favor of that approach, as it would simplify the browser and make this work with network service effort.
I'm responding to the first part of #4 by saying that my experiments aren't using any network layer information than ResourceScheduler already had. So if you want to move it to GRC you'll still need that information. I'm not sure what network information Tarun's work needs.

I'm not sure that I've formed an opinion on where ResourceScheduler should live. 

Comment 8 by kinuko@chromium.org, Oct 24 2017

Cc: rdsmith@chromium.org
My understanding is that not all ResourceScheduler's doing cannot be replaced with renderer-side thing, and there're things that are better moved into the network layer. (So ideally we should have network-layer thing that handles requests with global knowledge and renderer-side thing that does what need to be done with Web-side context)

+rdsmith@
My experiments definitely need the network layer information. Also, part of the resource scheduler has to be outside of renderer where the global information (e.g., information of all the in-flight and pending requests) is available.
Cc: pmeenan@chromium.org
I think my design @ https://docs.google.com/document/d/1p-XGz-BFFehs5j2olbkDkjrXzxzT3n45PVcLSZzOV3c/edit#heading=h.5scdxk3ekn4e is still relevant here, with appropriate abstraction.  IMO, there are a couple of issues to engage with:

* ResourceScheduler, as currently written, is a hack; it's a collection of ad-hoc rules that have evolved over time that seem to work reasonably well.  This both means that those rules aren't sacred if we feel a need to change them, and that there's a reasonably good chance that performance will regress if we change them blindly.  (+pmeenan for commentary on this point.)

* If we just porting the functionality of ResourceScheduler as it currently is, the major blocker here is that several aspects of ResourceScheduler are per-tab, and OOPIF means we're moving away from having per-tab information pretty much anywhere.  I could imagine architectures that would allow for per-tab information, but I've gotten push back in the past on those architectures from both jam@ and the OOPIF folks, and (pace' a holistic attack on priorities that includes use cases like deprioritizing background tabs) I don't really see a need.

* I do think that long-term we should try to move throttling mostly down into the network stack, as it has the most information as to what network and other resource usage conditions are.  But I think that's separable from servicification.  

* My belief is that we're planning to make network condition information available to the renderer, and that there aren't any *global* based throttles in ResourceScheduler, so I'd think that Tarun's experiments could be pulled back into the render.  

Given all this, my recommendation would be that someone take on the task of tweaking the current ResourceScheduler so it does well enough (i.e. no performance regressions) without per-tab information, then pull it all into the renderer (presuming the information Tarun needs can be made available there).  

And I'll continue to hope that at some point in the future we pick back up the global priority management problem :-}.

There are a couple of different pieces to what the scheduler does that make sense to split between the renderer and net stack.

1 - Holding back low priority requests until render-blocking resources have loaded.  This part of the logic really belongs in the renderer and would clean up a lot of the state tracking that the net stack shouldn't have to care about.

2 - Throttling requests to no more than 10 concurrent low-priority requests at a time.  This part belongs deep in the network stack and the higher levels shouldn't care.  The net stack should be responsible for determining available bdp and making decisions on how best to fill the pipe with pending requests.

There are some side-effects with throttling right now that happen to help downstream but those should probably be scheduled explicitly.  Specifically, the resource scheduler's throttling of requests helps keep the cache from contending low and high priority work and it reduces the amount of work the renderer has to do in processing cached low-priority resources early in the loading.

We also need to figure out a plan for the h2 bypass we have in place right now (which is what @jkarlin's experiment tried turning off).  The resource holdback logic should be the same for #1 for h1 and h2 and if not it needs to be tuned.

Optimally we'd also be able to do conditional loads from the net stack.  Something like "load this if available in the cache, otherwise pause it before sending it to the network" with the ability to resume them explicitly.  Then the renderer holdback logic could load all of the cached resources when in holdback (and let service worker not be throttled) and only apply the actual holdback before hitting the wire.  There will be regrressions unless we teach the rest of the renderer how to prioritize processing of responses though so cached low-priority JS parsing doesn't content with critical resources.
Since the perf numbers will be changing a lot anyway with the new arch I feel we probably anyway need to start with something different from what we currently have, which doesn't really fit super well with the new architecture (e.g. for the per-tab things Randy mentioned).  Also there're a several interesting ideas like conditional loading we wanted to experiment, but in the first phase I'd like to focus on architectural issues first (i.e. which logic should live where).

Utilizing what Patrick summarized:

1. The first one, i.e. holding back low-prio one while render-blocking, could be and should be probably implemented in the renderer side.  I think this one's a good candidate of what renderer side's ResourceLoadScheduler can do.  (The implementation needs more than what we know at the platform layer, but that's more about impl details...)

2. It looks the second one could probably implemented in the Network Service side, maybe below the url_loader_impl.cc. I'd like to make this one relatively simple throttling mechanism without doing any context-dependent things (which should be done in the renderer side).

I think these two items can be possibly worked in parallel, and the first one can be possibly enabled without waiting for the full launch of Network Service- wdyt?

(I assume this isn't really blocking things yet)

Comment 13 by jam@chromium.org, Nov 1 2017

FWIW the proposal in comment 12 sounds great to me.

c#12 SGTM as well.  I'll note that there are a lot of options as to what layer #2 could be implemented at, and the lower it is in the network stack, the less it depends on progress on servicification.

I have some possibly relevant work in this space that I'm in the middle of reverting to fix a low frequency crasher, so whoever works on it should ping me and I'll give them a dump about it.
Another +1 for c#12

For #1 I initially thought we might have to do something special with frames and have them get notified of the parent document state but since they won't exist before a body exists the only possibility for render-blocking contention is with css that is still pending when the frame is created and the css would already be in-flight so I'm fairly certain it is safe to ignore and just treat frames and documents the same.

There is already logic in the renderer that tracks the state of pending render-blocking resources for the work to not block painting for in-body css so the throttling logic just needs to attach it's logic to that.

I'd love to see that be the first step because that would let us remove the notifications to net about the body being inserted and all of the logic to track layout-blocking resources.


For #2, the only thing that really needs to be implemented somewhere in net is the number of in-flight delayable requests to allow at one time across all connections.  It was always kind of a hack that that was tracked on a per-tab basis and the scheduling of those could (and should) be smarter and global.
One issue that came up in the work I did is hanging gets.  If the delayable request limit is per-tab, it's much less likely that a lot of hanging gets will fill it up, whereas with a global limit it's a worry.  The way I dealt with that was not to throttle requests that had been alive for 5x the median lifetime of the the population (obviously with some time based decay). 

TL;DR: There's some trickiness beyond the obvious to doing this in the net stack.

#15 "I'd love to see that be the first step because that would let us remove the notifications to net about the body being inserted"

Yeah removing that part is one of the things I'm expecting to see too.

#16: "One issue that came up in the work I did is hanging gets."

Is that some gets (almost) never hit the network when it gets many? Yeah sounds like we would need some starvation avoidance logic like you did before.
Cc: yhirano@chromium.org
By the way Tokyo folks are interested in taking on the renderer-side work if no one else wants.  I'm also willing to help fleshing out the design for the latter one, i.e. global throttling too, while it also should get a lot of help from rdsmith@ / pmeenan@.
c#17: I'm not sure I understand the question, but it's not that a lot of gets result in some gets never hitting the network, it's that sometimes pages use gets for bidirectional communication (client opens a connection, server sends information when it feels the urge) and such connections are long-lived but don't use a lot of bandwidth.  Including them in a global outstanding request limit could fill up all slots for that limit without allowing any bandwidth to actually be used.
#19- I see, thanks for more explanation, that helps. I simply didn't know what hanging gets mean! It surely sounds something we need to consider.
I am curious how does the logic for changing the priority of pending requests fit in this new architecture? 

Also, a related question: What are the benefits of holding back the requests in two different places: the renderer and then later in the net? Is it possible to let the net do all the throttling work while renderer dynamically changes the priority of the requests based on its own knowledge (body tag found or first paint happened etc.)?

I can see one benefit of holding back requests only in the //net: If the device has super fast network, and lot of available memory/cpu, then there is probably no benefit in throttling low priority requests even if the renderer is in layout blocking phase.

Re #16: I think net stack is probably in a better place to decide if a request is hanging or not based on its estimates of RTT, bandwidth and congestion. So, I am not too worried about that.

In the //net, it is also possible to throttle requests based on packet loss or RTT based sophisticated congestion signals, instead of using request-count based congestion model. This would also help us get around the problem of hanging GETs.
I don't see a reason why this plan would affect reprioritization; can you share the issue you see in that space?

WRT your other point, throttling in //net requires clear communication of prioritization from all higher levels to //net.  Finding a way to cleanly represent that prioritization over the space of all possible usage models is ... I guess I'll just go with "hard"; at least, I failed to manage it with quite a bit of trying.  So my conclusion was that it made more sense to solve small, well defined subproblems in the priority space, with clear success criteria and see if it was possible to build up from those subproblems to the larger goal.  In the context of network servicification, solving the general priority representation problem also counts as a little bit of a yak shave :-}.  So I'm personally inclined to go with the limited approach sketched out above.

Having said all that, I want to be clear that I agree with all the points you raise and I'd love to see work done to push all throttling into //net.  I just don't think that's a simple task.  Also, any request that makes it to //net takes up resources that compete with other network activity, which need to be managed so that one renderer doesn't (accidentally or on purpose) interfere inappropriately with other network activity.  Currently the amount of resources taken is sadly fairly high.

> I don't see a reason why this plan would affect reprioritization; can you share the issue you see in that space?

Ooh, I guess I was just not sure if it would affect or not. If it does not, then that's good.

> Currently the amount of resources taken is sadly fairly high.
I can totally see how throttling in the renderer helps with reducing the resource usage (memory etc.). For that reason, throttling first in the renderer and then later in the //net makes sense even though it sort of duplicates the logic at two different places.
Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.
Blockedon: 785770
Project Member

Comment 26 by bugdroid1@chromium.org, Jan 23 2018

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

commit da4fac3a551e53eff8ef1a087626d0fd2a6bb890
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Tue Jan 23 10:16:43 2018

Move ResourceScheduler to content/network

...to share the throttling logic between the existing path and the
network service.

The BrowserTest file is not moved because they use components
unavailable from content/network.

Bug:  754918 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I065f6789fc52e06b34c554590e3290f57ccff04b
Reviewed-on: https://chromium-review.googlesource.com/856536
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Randy Smith <rdsmith@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531195}
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/browser/BUILD.gn
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/browser/loader/mojo_async_resource_handler.cc
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/browser/loader/mojo_async_resource_handler_unittest.cc
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/browser/loader/resource_dispatcher_host_impl.cc
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/browser/loader/resource_dispatcher_host_impl.h
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/browser/loader/resource_scheduler_filter.cc
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/network/BUILD.gn
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/network/DEPS
[rename] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/network/resource_scheduler.cc
[rename] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/network/resource_scheduler.h
[rename] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/network/resource_scheduler_unittest.cc
[modify] https://crrev.com/da4fac3a551e53eff8ef1a087626d0fd2a6bb890/content/test/BUILD.gn

Project Member

Comment 27 by bugdroid1@chromium.org, Jan 24 2018

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

commit 7d8cb4fe96f3ed5457987e1096a4926f2f9e555c
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Wed Jan 24 07:30:35 2018

Mark some ResourceScheduler functions as deprecated

This change adds "Deprecated" prefix to functions that will not be used
with the network service.

Bug:  754918 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I1f4e1933ae86f6a49784dc7099238aeb43f7ca84
Reviewed-on: https://chromium-review.googlesource.com/866285
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Randy Smith <rdsmith@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531473}
[modify] https://crrev.com/7d8cb4fe96f3ed5457987e1096a4926f2f9e555c/content/browser/loader/resource_dispatcher_host_impl.cc
[modify] https://crrev.com/7d8cb4fe96f3ed5457987e1096a4926f2f9e555c/content/browser/loader/resource_scheduler_filter.cc
[modify] https://crrev.com/7d8cb4fe96f3ed5457987e1096a4926f2f9e555c/content/network/resource_scheduler.cc
[modify] https://crrev.com/7d8cb4fe96f3ed5457987e1096a4926f2f9e555c/content/network/resource_scheduler.h
[modify] https://crrev.com/7d8cb4fe96f3ed5457987e1096a4926f2f9e555c/content/network/resource_scheduler_unittest.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Jan 25 2018

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

commit 1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Thu Jan 25 06:32:00 2018

Introduce services/network/public/cpp/features.h

Some features defined in content/public/common/content_features.h
prevented us moving files from content/network to services/network. This
CL unblocks that by defining such features in services/network.

Bug:  754918 ,  804769 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I378bef8d314003530019c9e4aab01bdb2f91a2b7
Reviewed-on: https://chromium-review.googlesource.com/874980
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531829}
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/android_webview/DEPS
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/android_webview/browser/aw_content_browser_client.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/android_webview/renderer/DEPS
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/android_webview/renderer/aw_content_renderer_client.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/android_webview/renderer/aw_url_loader_throttle_provider.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/about_flags.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/chrome_network_service_restart_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/io_thread.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/net/dns_probe_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/net/errorpage_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/net/network_connection_tracker_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/net/network_context_configuration_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/net/profile_network_context_service.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/net/profile_network_context_service_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/net/system_network_context_manager.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/policy/policy_network_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/prerender/prerender_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/profiles/profile_io_data.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/sessions/better_session_restore_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/ssl/cert_verifier_browser_test.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/browser/ssl/ssl_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/chrome/renderer/url_loader_throttle_provider_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/appcache/appcache_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/appcache/appcache_host.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/appcache/appcache_request_handler.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/appcache/appcache_request_handler_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/appcache/appcache_update_job_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/appcache/appcache_update_request_base.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/browser_side_navigation_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/devtools/render_frame_devtools_agent_host.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/download/download_file_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/download/download_manager_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/download/download_worker.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/frame_host/render_frame_host_impl_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/frame_host/render_frame_message_filter.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/loader/navigation_url_loader.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/loader/navigation_url_loader_network_service_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/loader/resource_message_filter.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/network_service_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/network_service_instance.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/network_service_restart_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/service_worker/service_worker_url_loader_job_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/browser/storage_partition_impl_browsertest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/child/DEPS
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/child/blink_platform_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/child/runtime_features.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/common/service_worker/service_worker_utils.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/network/DEPS
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/network/cors/cors_url_loader_factory.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/network/cors/cors_url_loader_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/network/resource_scheduler.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/public/common/content_features.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/public/common/content_features.h
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/public/test/browser_test_base.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/public/test/network_service_test_helper.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/public/test/url_loader_interceptor.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/loader/child_url_loader_factory_getter_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/loader/resource_dispatcher.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/loader/web_url_request_util.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/service_worker/service_worker_context_client_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/service_worker/service_worker_provider_context_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/service_worker/service_worker_subresource_loader_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/service_worker/service_worker_timeout_timer.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/renderer/service_worker/service_worker_timeout_timer_unittest.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/test/url_loader_interceptor_test.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/utility/DEPS
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/content/utility/utility_service_factory.cc
[modify] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/services/network/public/cpp/BUILD.gn
[add] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/services/network/public/cpp/features.cc
[add] https://crrev.com/1f1519bdfca7f94eca5a579ebdf8a2eabe7c7025/services/network/public/cpp/features.h

Project Member

Comment 29 by bugdroid1@chromium.org, Jan 30 2018

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

commit d8789f93d0fbf066373dab38212139eb72a9fdaa
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Tue Jan 30 09:59:51 2018

Move some content features to /services/network

This is a reland of [1] which got reverted because of some link errors.

This change moves some features defined in
/content/public/common/content_features.h to
/services/network/public/cpp/features. They need to be defined in
/services/network in order to move /content/network files to
/services/network.

1: https://chromium-review.googlesource.com/c/chromium/src/+/874980

Bug:  754918 ,  804769 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Id2aec8ec1e000eb2542a89d1788d46adab476087
Reviewed-on: https://chromium-review.googlesource.com/890898
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532827}
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/android_webview/DEPS
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/android_webview/browser/aw_content_browser_client.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/android_webview/renderer/DEPS
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/android_webview/renderer/aw_content_renderer_client.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/android_webview/renderer/aw_url_loader_throttle_provider.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/about_flags.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/chrome_network_service_restart_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/io_thread.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/net/dns_probe_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/net/errorpage_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/net/network_connection_tracker_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/net/network_context_configuration_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/net/profile_network_context_service.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/net/profile_network_context_service_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/net/system_network_context_manager.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/policy/policy_network_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/prerender/prerender_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/profiles/profile_io_data.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/sessions/better_session_restore_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/ssl/cert_verifier_browser_test.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/browser/ssl/ssl_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/chrome/renderer/url_loader_throttle_provider_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/appcache/appcache_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/appcache/appcache_host.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/appcache/appcache_request_handler.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/appcache/appcache_request_handler_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/appcache/appcache_update_job_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/appcache/appcache_update_request_base.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/browser_side_navigation_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/devtools/render_frame_devtools_agent_host.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/download/download_file_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/download/download_manager_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/download/download_worker.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/frame_host/render_frame_host_impl_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/frame_host/render_frame_message_filter.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/loader/navigation_url_loader.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/loader/navigation_url_loader_network_service_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/loader/resource_message_filter.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/loader/web_package_loader.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/network_service_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/network_service_instance.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/network_service_restart_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/service_worker/service_worker_url_loader_job_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/browser/storage_partition_impl_browsertest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/child/DEPS
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/child/blink_platform_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/child/runtime_features.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/common/service_worker/service_worker_utils.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/network/DEPS
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/network/cors/cors_url_loader_factory.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/network/cors/cors_url_loader_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/network/resource_scheduler.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/public/common/content_features.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/public/common/content_features.h
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/public/test/browser_test_base.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/public/test/network_service_test_helper.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/public/test/url_loader_interceptor.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/loader/resource_dispatcher.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/loader/web_url_request_util.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/service_worker/service_worker_context_client_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/service_worker/service_worker_provider_context_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/service_worker/service_worker_subresource_loader_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/service_worker/service_worker_timeout_timer.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/renderer/service_worker/service_worker_timeout_timer_unittest.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/test/url_loader_interceptor_test.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/content/utility/utility_service_factory.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/services/network/public/cpp/BUILD.gn
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/services/network/public/cpp/features.cc
[modify] https://crrev.com/d8789f93d0fbf066373dab38212139eb72a9fdaa/services/network/public/cpp/features.h

Project Member

Comment 30 by bugdroid1@chromium.org, Feb 1 2018

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

commit 4cd4e305eccb7bd08615664a3629cc3fc16c7deb
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Thu Feb 01 17:38:00 2018

Move ResourceScheduler to /services/network

Bug:  753658 ,  754918 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Id9206b68b1b85b0db20919763e45aede88d565cc
Reviewed-on: https://chromium-review.googlesource.com/892938
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533718}
[modify] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/content/browser/loader/mojo_async_resource_handler.cc
[modify] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/content/browser/loader/mojo_async_resource_handler_unittest.cc
[modify] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/content/browser/loader/resource_dispatcher_host_impl.cc
[modify] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/content/browser/loader/resource_dispatcher_host_impl.h
[modify] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/content/browser/loader/resource_scheduler_filter.cc
[modify] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/content/network/BUILD.gn
[modify] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/content/test/BUILD.gn
[modify] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/services/network/BUILD.gn
[rename] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/services/network/resource_scheduler.cc
[rename] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/services/network/resource_scheduler.h
[rename] https://crrev.com/4cd4e305eccb7bd08615664a3629cc3fc16c7deb/services/network/resource_scheduler_unittest.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Feb 13 2018

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

commit c9f631add3cbe4c285f81c298b0c571ceabfc148
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Tue Feb 13 08:56:27 2018

Have URLLoader use ResourceScheduler

With this CL, content::URLLoader consults ResourceScheduler when it
starts loading.

ResourceScheduler with URLLoader works as similar to that with
ResourceDispatcherHost, but there are some differences.

 - A ResourceScheduler::Client is created for a
   NetworkURLLoaderFactory in contrast to a RenderView in the existing
   path.
 - We don't provide "deperecated" signals. Part of them are moved to
   the renderer (RendererSideResourceScheduler), and others are not
   used.

Bug:  754918 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I9b8b4448682b05cf57874dfcf68b1c3fbee9c386
Reviewed-on: https://chromium-review.googlesource.com/867816
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Reviewed-by: Kurt Horimoto <kkhorimoto@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Randy Smith <rdsmith@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536298}
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/content/browser/loader/navigation_url_loader_network_service_unittest.cc
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/content/child/blink_platform_impl.cc
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/ios/web/browser_state.mm
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/BUILD.gn
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/network_context.cc
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/network_context.h
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/resource_scheduler.cc
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/resource_scheduler.h
[add] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/resource_scheduler_client.cc
[add] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/resource_scheduler_client.h
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/resource_scheduler_unittest.cc
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/url_loader.cc
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/url_loader.h
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/url_loader_factory.cc
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/url_loader_factory.h
[modify] https://crrev.com/c9f631add3cbe4c285f81c298b0c571ceabfc148/services/network/url_loader_unittest.cc

Cc: -rdsmith@chromium.org
Owner: yhirano@chromium.org
Status: Assigned (was: Available)
Cc: -kinuko@chromium.org cmumford@chromium.org
Cc: kinuko@chromium.org

Comment 36 by dxie@chromium.org, May 22 2018

yhirano@, can you mark the bug as fixed if it's done?
RendererSideResourceScheduler is now enabled. I will keep this open until I remove some code from services/network/resource_scheduler*.
Project Member

Comment 38 by bugdroid1@chromium.org, May 29 2018

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

commit b251517fe2acba6c849f5e95f7c926ba504289b1
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Tue May 29 12:26:18 2018

Make ResourceSchedulerParamsManager mutable

ResourceSchedulerParamsManager is currently immutable, which results in
an unnecessary std::unique_ptr indirection in ResourceScheduler. This
CL fixes that.

Bug:  754918 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I292e5078d55c700e69847e0d180ea751b319905d
Reviewed-on: https://chromium-review.googlesource.com/1075846
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562391}
[modify] https://crrev.com/b251517fe2acba6c849f5e95f7c926ba504289b1/services/network/resource_scheduler.cc
[modify] https://crrev.com/b251517fe2acba6c849f5e95f7c926ba504289b1/services/network/resource_scheduler.h
[modify] https://crrev.com/b251517fe2acba6c849f5e95f7c926ba504289b1/services/network/resource_scheduler_params_manager.h
[modify] https://crrev.com/b251517fe2acba6c849f5e95f7c926ba504289b1/services/network/resource_scheduler_unittest.cc

Comment 39 by dxie@chromium.org, May 29 2018

Labels: Proj-Servicification-Canary
Update: We've found a problem:  issue 847890 . I fixed it on ToT and Beta but failed to merge the fix to stable. Since the issue is expected to be small the feature is still enabled.

Comment 41 by dxie@chromium.org, Jun 8 2018

Labels: OS-Chrome OS-Windows OS-Mac OS-Linux
Project Member

Comment 42 by bugdroid1@chromium.org, Jun 14 2018

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

commit 0f9ea91ea461cb3d432a250ede3b9e3ddf6b522f
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Thu Jun 14 05:46:46 2018

Enable RendererSideResourceScheduler

It has been enabled on the finch config. This CL enables the switch by
default on the chromium src.

resource_scheduler_unittests.cc is largely affected by the change. This
CL removes some cases and modifies some cases to keep it green.

Bug: 794073,  754918 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Ie49e5f0261a70f581ca766c3eeeae8a8f0e4e66b
Reviewed-on: https://chromium-review.googlesource.com/1075916
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567159}
[modify] https://crrev.com/0f9ea91ea461cb3d432a250ede3b9e3ddf6b522f/content/browser/loader/resource_dispatcher_host_unittest.cc
[modify] https://crrev.com/0f9ea91ea461cb3d432a250ede3b9e3ddf6b522f/services/network/public/cpp/features.cc
[modify] https://crrev.com/0f9ea91ea461cb3d432a250ede3b9e3ddf6b522f/services/network/resource_scheduler.cc
[modify] https://crrev.com/0f9ea91ea461cb3d432a250ede3b9e3ddf6b522f/services/network/resource_scheduler_unittest.cc
[modify] https://crrev.com/0f9ea91ea461cb3d432a250ede3b9e3ddf6b522f/testing/variations/fieldtrial_testing_config.json
[modify] https://crrev.com/0f9ea91ea461cb3d432a250ede3b9e3ddf6b522f/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc
[modify] https://crrev.com/0f9ea91ea461cb3d432a250ede3b9e3ddf6b522f/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.h

Project Member

Comment 43 by bugdroid1@chromium.org, Jun 15 2018

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

commit 8eee3a363357656b645438dd3e98b2d309b0f37e
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Fri Jun 15 01:47:13 2018

Remove RendererSideResourceScheduler feature

As the feature is enabled by default, this CL removes unused code.

Bug: 794073,  754918 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I9064494c83ec189443a0f6493987a4a8d2c5a035
Reviewed-on: https://chromium-review.googlesource.com/1100717
Reviewed-by: Ryan Sturm <ryansturm@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567510}
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/chrome/browser/about_flags.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/chrome/browser/data_use_measurement/page_load_capping/page_load_capping_browsertest.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/content/browser/loader/resource_scheduler_filter.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/content/browser/loader/resource_scheduler_filter.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/content/child/blink_platform_impl.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/content/child/blink_platform_impl.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/content/common/frame_messages.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/content/renderer/render_frame_impl.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/services/network/public/cpp/features.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/services/network/public/cpp/features.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/services/network/resource_scheduler.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/services/network/resource_scheduler.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/services/network/resource_scheduler_unittest.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/services/network/url_loader_unittest.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/public/platform/platform.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/public/web/web_local_frame_client.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/renderer/core/dom/document.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/renderer/core/exported/local_frame_client_impl.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/renderer/core/exported/local_frame_client_impl.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/renderer/core/exported/web_frame_test.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/renderer/core/frame/local_frame_client.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.cc
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.h
[modify] https://crrev.com/8eee3a363357656b645438dd3e98b2d309b0f37e/third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler_test.cc

Status: Fixed (was: Assigned)

Sign in to add a comment