Chromium Code Reviews| Index: third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp |
| diff --git a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp |
| index 9bfb0444231bbee6dabf724534e563861e2038a0..b485a2fb89ae1416d6ff8ab98aeec7ce782599b4 100644 |
| --- a/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp |
| +++ b/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.cpp |
| @@ -27,6 +27,7 @@ |
| #include "core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.h" |
| #include "core/EventTypeNames.h" |
| +#include "core/dom/TaskRunnerHelper.h" |
| #include "core/events/ProgressEvent.h" |
| #include "core/inspector/InspectorInstrumentation.h" |
| #include "core/inspector/InspectorTraceEvents.h" |
| @@ -41,6 +42,12 @@ namespace blink { |
| static const double kMinimumProgressEventDispatchingIntervalInSeconds = .05; // 50 ms per specification. |
| +// static |
| +XMLHttpRequestProgressEventThrottle* XMLHttpRequestProgressEventThrottle::create(XMLHttpRequest* eventTarget) |
| +{ |
| + return new XMLHttpRequestProgressEventThrottle(eventTarget, TaskRunnerHelper::get(TaskType::Networking, eventTarget->getExecutionContext())->clone()); |
| +} |
| + |
| XMLHttpRequestProgressEventThrottle::DeferredEvent::DeferredEvent() |
| { |
| clear(); |
| @@ -73,8 +80,9 @@ Event* XMLHttpRequestProgressEventThrottle::DeferredEvent::take() |
| return event; |
| } |
| -XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle(XMLHttpRequest* target) |
| - : TimerBase(Platform::current()->currentThread()->scheduler()->timerTaskRunner()) |
| +XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle(XMLHttpRequest* target, std::unique_ptr<WebTaskRunner> taskRunner) |
| + : TimerBase(taskRunner.get()) |
| + , m_taskRunner(std::move(taskRunner)) |
|
dcheng
2016/08/24 23:30:34
I'm a bit confused why we need to clone() and keep
haraken
2016/08/24 23:51:58
It's normally a problem today. Currently we need t
|
| , m_target(target) |
| , m_hasDispatchedProgressProgressEvent(false) |
| { |