Chromium Code Reviews| Index: third_party/WebKit/Source/core/loader/NavigationScheduler.cpp |
| diff --git a/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp b/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp |
| index ccb0ab41139fe53b31ea4c5cfdef5c7c3d488b1e..fc33be20a265afe052061b68a86ff360dcb074e8 100644 |
| --- a/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp |
| +++ b/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp |
| @@ -34,6 +34,7 @@ |
| #include "bindings/core/v8/ScriptController.h" |
| #include "core/events/Event.h" |
| #include "core/fetch/ResourceLoaderOptions.h" |
| +#include "core/frame/Deprecation.h" |
| #include "core/frame/LocalFrame.h" |
| #include "core/frame/csp/ContentSecurityPolicy.h" |
| #include "core/html/HTMLFormElement.h" |
| @@ -56,6 +57,7 @@ |
| namespace blink { |
| unsigned NavigationDisablerForBeforeUnload::s_navigationDisableCount = 0; |
| +unsigned NavigationCounterForUnload::s_inUnloadHandler = 0; |
| class ScheduledNavigation : public GarbageCollectedFinalized<ScheduledNavigation> { |
| WTF_MAKE_NONCOPYABLE(ScheduledNavigation); |
| @@ -347,6 +349,9 @@ void NavigationScheduler::scheduleLocationChange(Document* originDocument, const |
| if (originDocument->getSecurityOrigin()->canAccess(m_frame->document()->getSecurityOrigin())) { |
| KURL parsedURL(ParsedURLString, url); |
| if (parsedURL.hasFragmentIdentifier() && equalIgnoringFragmentIdentifier(m_frame->document()->url(), parsedURL)) { |
| + if (NavigationCounterForUnload::inUnloadHandler()) |
| + Deprecation::countDeprecation(m_frame, UseCounter::UnloadHandler_Navigation); |
|
Nate Chapin
2016/05/13 21:56:10
This will only catch same-document navigations (i.
lfg
2016/05/14 01:23:28
Right, the other navigations are already blocked (
Nate Chapin
2016/05/16 21:00:31
I agree that it's permitted by the spec, but it wa
lfg
2016/05/16 23:46:54
Right, this one is working as intended :)
|
| + |
| FrameLoadRequest request(originDocument, m_frame->document()->completeURL(url), "_self"); |
| request.setReplacesCurrentItem(replacesCurrentItem); |
| if (replacesCurrentItem) |