Index: Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.h |
diff --git a/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.h b/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.h |
index edb3e13bf48dcf8061462303d06060bb3c858c14..27d608f8baac59532d8bf55d20dd2f2688628637 100644 |
--- a/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.h |
+++ b/Source/core/xmlhttprequest/XMLHttpRequestProgressEventThrottle.h |
@@ -49,18 +49,20 @@ class EventTarget; |
// - "progress" event means an event named "progress" |
// - ProgressEvent means an event using the ProgressEvent interface defined in |
// the spec. |
-class XMLHttpRequestProgressEventThrottle final : public TimerBase { |
- DISALLOW_ALLOCATION(); |
+class XMLHttpRequestProgressEventThrottle final : public NoBaseWillBeGarbageCollectedFinalized<XMLHttpRequestProgressEventThrottle>, public TimerBase { |
public: |
+ static PassOwnPtrWillBeRawPtr<XMLHttpRequestProgressEventThrottle> create(EventTarget* eventTarget) |
+ { |
+ return adoptPtrWillBeNoop(new XMLHttpRequestProgressEventThrottle(eventTarget)); |
+ } |
+ virtual ~XMLHttpRequestProgressEventThrottle(); |
+ |
enum DeferredEventAction { |
Ignore, |
Clear, |
Flush, |
}; |
- explicit XMLHttpRequestProgressEventThrottle(EventTarget*); |
- virtual ~XMLHttpRequestProgressEventThrottle(); |
- |
// Dispatches a ProgressEvent. |
// |
// Special treatment for events named "progress" is implemented to dispatch |
@@ -77,9 +79,13 @@ public: |
void suspend(); |
void resume(); |
+ // Need to promptly stop this timer when it is deemed finalizable. |
+ EAGERLY_FINALIZE(); |
DECLARE_TRACE(); |
private: |
+ explicit XMLHttpRequestProgressEventThrottle(EventTarget*); |
+ |
// The main purpose of this class is to throttle the "progress" |
// ProgressEvent dispatching. This class represents such a deferred |
// "progress" ProgressEvent. |