commit | 6b7727d6aa692cf35687b7d7277c6b321380dc65 | [log] [tgz] |
---|---|---|
author | Dmitry Gozman <[email protected]> | Mon May 06 18:30:24 2019 |
committer | Commit Bot <[email protected]> | Mon May 06 18:30:24 2019 |
tree | 9b236da69a78aa52f42937f022e5bb9d84110a34 | |
parent | 22ec7a111842a65e8f5a818f65453206d4ab5ca0 [diff] |
Replace placeholder document loader with a struct Placeholder document loader is set while navigation is happening in the browser process (through CreatePlaceholderDocumentLoader). It does not ever load the document, and just sits around to: - act as a flag that navigation is ongoing; - fire DidFailProvisionalLoad callback when detaching; - be used mistakenly by some calls to GetProvisionalDocumentLoader(). This patch replaces placeholder document loader with FrameLoader::client_navigation_ struct, and clears/cancels it next to provisional_document_loader_. Some GetProvisionalDocumentLoader callsites are updated to use |browser_side_navigation_pending_| instead, because these are interested in "whether navigation is ongoing", and we don't have placeholder DL to be returned from GetProvisionalDocumentLoader anymore. Somehow this change exposes flakiness in external/wpt/resource-timing/nested-context-navigations-iframe.html, which relies on racy should_send_resource_timing_info_to_parent flag being sent across processes. See DocumentLoader::ShouldReportTimingInfoToParent for more details. This corresponds to step 12 from the doc linked to the bug. Bug: 855189, 957181 Change-Id: I5a10b283012f2000aa36a5748bbd412a31362347 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1573813 Reviewed-by: Daniel Cheng <[email protected]> Commit-Queue: Dmitry Gozman <[email protected]> Cr-Commit-Position: refs/heads/master@{#656879}
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 .