Chromium Code Reviews| 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 |