commit | 7521deccbb7d3d4a7700e6e007e679a8706d8be0 | [log] [tgz] |
---|---|---|
author | Arthur Sonzogni <arthursonzogni@chromium.org> | Mon Jul 09 12:31:04 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Mon Jul 09 12:31:04 2018 |
tree | 7e5ddd69398439c4407028f74490f2efb91b14fc | |
parent | b1fed93e44779b5c870b94087ef09ad0e5a73bc5 [diff] |
Transmit the response's body datapipe in CommitNavigation(). # Summary of the current behavior: When a navigation occurs, the mojo::URLLoaderClient interface is first bound to the content::NavigationURLLoaderImpl in the browser process. When the browser knows in which renderer process the navigation will commit, the interface is bound to the content::URLLoaderClientImpl in the renderer process to continue the navigation. The switching from one to another happens when mojo::URLLoaderClient::OnReceiveResponse() is called. This is described here: https://goo.gl/Rrrc7n # What are we trying to do: After the mojo::URLLoaderClient interface is unbound in the browser process and bound again in the renderer process, it takes some amount of time to receive URLLoader::OnStartLoadingResponseBody(). It may be worth sending the data pipe with RenderFrameHostImpl::CommitNavigation() and give it to the renderer process immediatly instead of waiting for it. It would allow the Renderer process to get the main resource's data earlier, especially when the renderer process is busy. Note: It doesn't look like there are any strong reasons to make URLLoaderClient::OnReceiveResponse(response_head) and URLLoaderClient::OnStartLoadingResponseBody(response_body) separate messages, maybe at some point, they could be merged into: URLLoaderClient::OnReceiveResponse(response_head, response_body) # What this CL does: This CL makes the switch to happen in URLLoaderClient::OnStartLoadingResponseBody(). The data pipe is transmitted in CommitNavigation(). This is enabled/disabled using the NavigationImmediateResponse experiment The goal is to look for performance improvement or regressions on Canary. Bug: 831155 Change-Id: Id6cf667fdc1482baf27f41aab754e58d9a5a569b Reviewed-on: https://chromium-review.googlesource.com/1100830 Reviewed-by: Yutaka Hirano <yhirano@chromium.org> Reviewed-by: Peter Kasting <pkasting@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Commit-Queue: Arthur Sonzogni <arthursonzogni@chromium.org> Cr-Commit-Position: refs/heads/master@{#573276}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .