commit | 3a4ca9f52450a1f27422978e044d9cc3aa5fd1d7 | [log] [tgz] |
---|---|---|
author | arthursonzogni <[email protected]> | Thu Dec 07 17:58:34 2017 |
committer | Commit Bot <[email protected]> | Thu Dec 07 17:58:34 2017 |
tree | aa306b4d6cbc935f5853e2891b95cb14fdf6ca54 | |
parent | eb83e8cfdaa957369e2bc1151e7b0a26d0b4a3fb [diff] |
Transfer the URLLoaderClient on navigation commit This CL has effect on the code only when the NetworkService or the NavigationMojoResponse features is enabled. During a navigation, after the headers are received, this CL unbinds the browser-side URLLoaderClient implementation. It passes the pair of URLLoaderPtr/URLLoaderClientRequest to the renderer. Then it binds it to the renderer-side URLLoaderClient implementation that will be used to continue the navigation (it will receive OnStartLoadingResponseBody() and OnComplete()). As a side effect, several additionnal things had to be done: 1) When the navigation is intercepted by the download manager, the same kind of thing as above must be done. Instead of the renderer, the download manager should get the URLLoaderPtr/URLLoaderClientRequest pair and continue the loading. 2) When the load is handled by the URLFileLoader, there was a deadlock, the URLLoader and the URLLoaderClient were waiting for each other to closing their datapipe endpoints. This is solved by closing the URLFileLoader's one first when it has written its last byte. 3) Same as in 2), but with the URLFileDirectoryLoader. See the others CLs in this series: [1/3] https://chromium-review.googlesource.com/c/739502 [2/3] https://chromium-review.googlesource.com/c/741237 [3/3] this CL. This is part 3 of the implementation plan. Design doc: https://goo.gl/Rrrc7n Bug: 705744 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo;master.tryserver.chromium.linux:linux_site_isolation Change-Id: I9df447e28afe119dc678adac943a000de6787bf4 Reviewed-on: https://chromium-review.googlesource.com/753738 Commit-Queue: Arthur Sonzogni <[email protected]> Reviewed-by: Nasko Oskov <[email protected]> Reviewed-by: Camille Lamy <[email protected]> Reviewed-by: Daniel Cheng <[email protected]> Reviewed-by: Kinuko Yasuda <[email protected]> Reviewed-by: Min Qin(OOO 12/7-1/10) <[email protected]> Reviewed-by: Yutaka Hirano <[email protected]> Cr-Commit-Position: refs/heads/master@{#522470}
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 .