| Index: Source/core/loader/NavigationScheduler.cpp
|
| diff --git a/Source/core/loader/NavigationScheduler.cpp b/Source/core/loader/NavigationScheduler.cpp
|
| index bd3f2e8c223fbdf07050626f98390dee7434fdcf..2ac74b8ed38c84b0d4aca49c8d1f9eb81f40c468 100644
|
| --- a/Source/core/loader/NavigationScheduler.cpp
|
| +++ b/Source/core/loader/NavigationScheduler.cpp
|
| @@ -292,6 +292,14 @@
|
| if (!UserGestureIndicator::processingUserGesture() && !targetFrame->document()->loadEventFinished())
|
| return true;
|
|
|
| + // From the HTML5 spec for location.assign():
|
| + // "If the browsing context's session history contains only one Document,
|
| + // and that was the about:blank Document created when the browsing context
|
| + // was created, then the navigation must be done with replacement enabled."
|
| + if (!targetFrame->loader().stateMachine()->committedMultipleRealLoads()
|
| + && equalIgnoringCase(targetFrame->document()->url(), blankURL()))
|
| + return true;
|
| +
|
| // Navigation of a subframe during loading of an ancestor frame does not create a new back/forward item.
|
| // The definition of "during load" is any time before all handlers for the load event have been run.
|
| // See https://bugs.webkit.org/show_bug.cgi?id=14957 for the original motivation for this.
|
|
|