commit | 00fd5bbe7fb266480a80b54940ce072d2f20eda2 | [log] [tgz] |
---|---|---|
author | Dmitry Gozman <dgozman@chromium.org> | Fri Jan 25 20:25:33 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Fri Jan 25 20:25:33 2019 |
tree | 8bb4951cf85aee7f525e3f4e754e1848807b3fec | |
parent | 23b4f11cb22baa228000fb7361485c34d70ca07a [diff] |
Use WebNavigationBodyLoader instead of WebURLLoader for main resource Previously introduced WebNavigationBodyLoader is now used for loading the navigation request body, instead of faking the WebURLRequest. Brief list of changes in this patch: - WebNavigationParams take a bunch of request- and response-related fields instead of WebURLRequest. - RenderFrameImpl fills the params instead of constructing a fake WebURLRequest, and constructs NavigationBodyLoader. - DocumentLoader synchronously processes params, and then starts body loader to receive the main resource data. Multiple places in Blink are interested in main resource loading process, so DocumentLoader notifies them by calling DispatchXXX methods on FrameFetchContext. We should be able to clean this up later if needed. - webkit_unit_tests mimic production and create a body loader of their own. - Some unrelevant test cases are removed (e.g. checking main resource request priority). With this patch we are just two steps away from committing navigation synchronously: - Preload mhtml archives in advance to retrieve the mime type of the main document. - Move commit from "received first byte" to "handle response" step. Things which could be cleaned up: - Elegantly notify interested parties about main resource load. - Simplify the loading flow in DocumentLoader, making it linear. Currently, we keep the flow similar to original one, where we call StopLoading() from various places to minimize the CL and potential risk. This patch corresponds to step 6.g of the doc linked in the bug. TBR=mmenke@chromium.org Bug: 855189 Change-Id: I379172a94d2d59f694d0cbb99f22b147339a5090 Reviewed-on: https://chromium-review.googlesource.com/c/1401238 Commit-Queue: Dmitry Gozman <dgozman@chromium.org> Reviewed-by: Matt Menke <mmenke@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Yutaka Hirano <yhirano@chromium.org> Cr-Commit-Position: refs/heads/master@{#626179}
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 .