commit | 431726fb53650adb2558caf7073419097c822da0 | [log] [tgz] |
---|---|---|
author | Dmitry Gozman <dgozman@chromium.org> | Tue Nov 06 20:06:09 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Nov 06 20:06:09 2018 |
tree | 6d7f20449e6c77e68cb351518b2a5c7b332e8915 | |
parent | 7bd6b9949215df00a5a7d3e37fe994639d82abf6 [diff] |
FrameLoader: explicit CreatePlaceholderDocumentLoader This patch replaces kNavigationPolicyHandledByClient with an explicit call CreatePlaceholderDocumentLoader. This technique removes inversion of control between WebLocalFrame and it's client, and gives the client all the power for driving navigations. For example: - RenderFrameImpl::PendingNavigationInfo is gone, since RenderFrameImpl controls the process and doesn't have to store information between WebLocalFrameClient callbacks. - We don't issue DidStartProvisionalLoad for placeholders anymore for the similar reason. A couple of small changes required: - WebNavigationParams::source_location is now optional. This is needed for preserving source location when creating a placeholder (and for synchronous commits in the future). - Plumbed WebFrameLoadType instead of replaces_current_item to not lose information. Next step will do the same for kNavigationPolicyCurrentTab and let the client drive navigation all the time. After that we'll get rid of multiple WebLocalFrameClient callbacks. Bug: 855189 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng Change-Id: I5f1d1b5269f99227e3998fba2333c0f3661f7e9e Reviewed-on: https://chromium-review.googlesource.com/c/1263052 Commit-Queue: Dmitry Gozman <dgozman@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#605796}
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 .