commit | cd352982e6003fb452afd4783e75f48cee8643ca | [log] [tgz] |
---|---|---|
author | Dmitry Gozman <dgozman@chromium.org> | Fri Jan 11 21:12:16 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Fri Jan 11 21:12:16 2019 |
tree | 4f3a6c92ec16acbfa0e41fb875fd3ffdc4740c77 | |
parent | 2d6270765968844988d3c031b0f3d0867a1f2eda [diff] |
Introduce WebNavigationBodyLoader WebNavigationBodyLoader interface (and two implementations) will be used for loading navigation response body, instead of going through WebURLLoader. This patch only contains the implementation, but does not include the usage just yet. WIP usage can be seen here: https://chromium-review.googlesource.com/c/chromium/src/+/1388212. The advantages of a separate code path for navigations: - Possible to commit navigations synchronously, instead of waiting for RawResourceClient callbacks from the loader. This is a primary motivation. - Makes it easier to Onion Soupify navigation code separately from loading code. - All navigation-related special cases can be handled directly in DocumentLoader now. - We don't need a "replay fake request" mode in loader anymore. - We stop abusing ResourceRequest/ResourceResponse for navigation information (e.g. RequestorOrigin, OriginPolicy and many more). Disadvantages: - Two URLLoaderClient and body pipe consumer implementations to maintain. - Future loading features might have to touch navigation body loader as well. Although most of the navigation-related features currently have to touch navigation url request in the browser, there is a small chance that NavigationBodyLoader will be affected as well. Larger cleanups possible after this: - Remove ResourceType::kMainResource and any code related to it. - Remove ResourceRequest::GetFrameType and any code related to it. Ideally, NavigationBodyLoader could be implemented directly in Blink, but there are some dependencies on resource load statistics in content. Also, Blink is not quite ready to talk to Network Service directly. This patch corresponds to step 6.g of the doc linked in the bug. Bug: 855189 Change-Id: I3ac7b33db60e7b50e583e2006dd194c4bf843921 Reviewed-on: https://chromium-review.googlesource.com/c/1399052 Commit-Queue: Dmitry Gozman <dgozman@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Arthur Sonzogni <arthursonzogni@chromium.org> Reviewed-by: Yutaka Hirano <yhirano@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#622147}
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 .