Index: Source/core/loader/NavigationScheduler.cpp |
diff --git a/Source/core/loader/NavigationScheduler.cpp b/Source/core/loader/NavigationScheduler.cpp |
index fb383ba36357f39070c5ddb80384382b3addf2c4..2841a7980c71c1b8148245126de3899c5819f461 100644 |
--- a/Source/core/loader/NavigationScheduler.cpp |
+++ b/Source/core/loader/NavigationScheduler.cpp |
@@ -48,7 +48,6 @@ |
#include "core/page/Page.h" |
#include "platform/SharedBuffer.h" |
#include "platform/UserGestureIndicator.h" |
-#include "public/platform/Platform.h" |
#include "wtf/CurrentTime.h" |
namespace blink { |
@@ -267,7 +266,7 @@ |
NavigationScheduler::NavigationScheduler(LocalFrame* frame) |
: m_frame(frame) |
- , m_navigateTaskFactory(WTF::bind(&NavigationScheduler::navigateTask, this)) |
+ , m_timer(this, &NavigationScheduler::timerFired) |
, m_navigationDisableCount(0) |
{ |
} |
@@ -372,7 +371,7 @@ |
schedule(ScheduledReload::create()); |
} |
-void NavigationScheduler::navigateTask() |
+void NavigationScheduler::timerFired(Timer<NavigationScheduler>*) |
{ |
if (!m_frame->page()) |
return; |
@@ -414,22 +413,20 @@ |
return; |
ASSERT(m_frame->page()); |
- if (m_navigateTaskFactory.isPending()) |
+ if (m_timer.isActive()) |
return; |
if (!m_redirect->shouldStartTimer(m_frame)) |
return; |
- Platform::current()->currentThread()->scheduler()->loadingTaskRunner()->postDelayedTask( |
- FROM_HERE, m_navigateTaskFactory.cancelAndCreate(), m_redirect->delay()); |
- |
+ m_timer.startOneShot(m_redirect->delay(), FROM_HERE); |
InspectorInstrumentation::frameScheduledNavigation(m_frame, m_redirect->delay()); |
} |
void NavigationScheduler::cancel() |
{ |
- if (m_navigateTaskFactory.isPending()) |
+ if (m_timer.isActive()) |
InspectorInstrumentation::frameClearedScheduledNavigation(m_frame); |
- m_navigateTaskFactory.cancel(); |
+ m_timer.stop(); |
m_redirect.clear(); |
} |