Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Unified Diff: content/browser/frame_host/navigation_controller_impl.cc

Issue 1949213002: Don't update subframes on parent frame commits. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/frame_host/navigation_controller_impl.cc
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index 7446d5153b845270ae510ff358d4c2fb960cf9e4..b3f98f369e9f34cc73f034a0d98a7da40b1602a0 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -1878,6 +1878,19 @@ void NavigationControllerImpl::FindFramesToNavigate(
new_item->document_sequence_number() ==
old_item->document_sequence_number()) {
same_document_loads->push_back(std::make_pair(frame, new_item));
+ // This is a bug; we should not return here. Rather, we should continue on
Charlie Reis 2016/05/05 17:45:42 nit: Blank line before, and start with TODO(avi, c
Avi (use Gerrit) 2016/05/05 19:06:21 Done.
+ // and navigate all child frames which have also changed. This bug is the
+ // cause of <https://crbug.com/542299>.
+ //
+ // However, this bug masks a deeper and worse problem. Doing a pushState
+ // immediately after loading a subframe is a race, one that no web page
+ // author expects. If we fix this bug, many large websites break. For
+ // example, see <https://crbug.com/598043> and the spec discussion at
Charlie Reis 2016/05/05 17:45:42 Let's also mention 600534.
Avi (use Gerrit) 2016/05/05 19:06:21 That's a Google-only bug; do we want to mention it
Charlie Reis 2016/05/05 19:34:22 Ah. No, just listing it in the CL description sho
+ // <https://github.com/whatwg/html/issues/1191>.
+ //
+ // For now, we accept this bug, and hope to resolve the race in a
+ // different way that will one day allow us to fix this.
+ return;
} else {
different_document_loads->push_back(std::make_pair(frame, new_item));
// For a different document, the subframes will be destroyed, so there's

Powered by Google App Engine
This is Rietveld 408576698