commit | c0327d09b6e4444caca64f3bd16ec0bd20034049 | [log] [tgz] |
---|---|---|
author | Arthur Sonzogni <arthursonzogni@chromium.org> | Mon Jun 25 10:40:27 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Mon Jun 25 10:40:27 2018 |
tree | e047b256d434b38afb230faca689323fcfe0a27c | |
parent | a956143e09b3083ea7bc0c142f8a11bc24493540 [diff] |
Call Document::CheckCompleted() after CancelParsing.. Document::CancelParsing() may cause Document::ShouldComplete() to return true. Document::CheckCompleted() needs to be called so that its DocumentLoader is marked to have finished its load. A lot of tests don't expect DidStopLoading() and DidStartLoading() to be fired when a new DocumentLoader starts and replaces the previous one. In FrameLoader::StartLoad(), Document::CancelParsing() is moved after the creation of the new provisional DocumentLoader so that the FrameLoader isn't temporarily without any non loading Document. If that happened, DidStopLoading() would be fired. There was also one small bug with site isolation. The condition |have_to_check_if_parent_is_completed| in HTMLFrameOwnerElement::DisconnectContentFrame() was too strict. The parent document may have completed its load, but not have sent DidStopLoading yet because its childs were still loading. Note: I am working on https://crbug.com/831155. Some tests that are relying on how things are scheduled in Blink are failing. This CL makes DownloadTest.TestMultipleDownloadsRequests to keep working. Here, while the current document is loading, a new navigation happens and cancels the parser of the current document without calling Document::CheckCompleted() on it. Then, it turns out the navigation is a download. The navigation is dropped. In the end the main frame doesn't know its iframe has finished loading and the test fails. Bug: 831155 Change-Id: Ib2de108e25991349b44ec4071fe61d57ca6e85a1 Reviewed-on: https://chromium-review.googlesource.com/1107808 Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Arthur Sonzogni <arthursonzogni@chromium.org> Cr-Commit-Position: refs/heads/master@{#570002}
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 .