| 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 52d1db4806643ad54bad11fe12dc1a5c583a2511..caadc1d5043c2f8fe07b0fff9c2b66f03b6c7b7f 100644
|
| --- a/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/NavigationScheduler.cpp
|
| @@ -96,8 +96,7 @@ void maybeLogScheduledNavigationClobber(ScheduledNavigationType type, LocalFrame
|
|
|
| } // namespace
|
|
|
| -unsigned NavigationDisablerForBeforeUnload::s_navigationDisableCount = 0;
|
| -unsigned NavigationCounterForUnload::s_inUnloadHandler = 0;
|
| +unsigned NavigationDisablerForUnload::s_navigationDisableCount = 0;
|
|
|
| class ScheduledNavigation : public GarbageCollectedFinalized<ScheduledNavigation> {
|
| WTF_MAKE_NONCOPYABLE(ScheduledNavigation);
|
| @@ -327,10 +326,12 @@ bool NavigationScheduler::isNavigationScheduledWithin(double interval) const
|
| // TODO(dcheng): There are really two different load blocking concepts at work
|
| // here and they have been incorrectly tangled together.
|
| //
|
| -// 1. NavigationDisablerForBeforeUnload is for blocking navigation scheduling
|
| -// during a beforeunload event. Scheduled navigations during beforeunload
|
| -// would make it possible to get trapped in an endless loop of beforeunload
|
| -// dialogs.
|
| +// 1. NavigationDisablerForUnload is for blocking navigation scheduling during
|
| +// a beforeunload or unload events. Scheduled navigations during
|
| +// beforeunload would make it possible to get trapped in an endless loop of
|
| +// beforeunload dialogs. Scheduled navigations during the unload handler
|
| +// makes is possible to cancel a navigation that was initiated right before
|
| +// it commits.
|
| //
|
| // Checking Frame::isNavigationAllowed() doesn't make sense in this context:
|
| // NavigationScheduler is always cleared when a new load commits, so it's
|
| @@ -343,12 +344,12 @@ bool NavigationScheduler::isNavigationScheduledWithin(double interval) const
|
| // to block /synchronous/ navigations during things lke Document::detachLayoutTree().
|
| inline bool NavigationScheduler::shouldScheduleReload() const
|
| {
|
| - return m_frame->page() && m_frame->isNavigationAllowed() && NavigationDisablerForBeforeUnload::isNavigationAllowed();
|
| + return m_frame->page() && m_frame->isNavigationAllowed() && NavigationDisablerForUnload::isNavigationAllowed();
|
| }
|
|
|
| inline bool NavigationScheduler::shouldScheduleNavigation(const String& url) const
|
| {
|
| - return m_frame->page() && m_frame->isNavigationAllowed() && (protocolIsJavaScript(url) || NavigationDisablerForBeforeUnload::isNavigationAllowed());
|
| + return m_frame->page() && m_frame->isNavigationAllowed() && (protocolIsJavaScript(url) || NavigationDisablerForUnload::isNavigationAllowed());
|
| }
|
|
|
| void NavigationScheduler::scheduleRedirect(double delay, const String& url)
|
| @@ -393,8 +394,6 @@ 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);
|
|
|
| FrameLoadRequest request(originDocument, m_frame->document()->completeURL(url), "_self");
|
| request.setReplacesCurrentItem(replacesCurrentItem);
|
|
|