Index: Source/bindings/core/v8/ScriptStreamer.h |
diff --git a/Source/bindings/core/v8/ScriptStreamer.h b/Source/bindings/core/v8/ScriptStreamer.h |
index b052376517a497e97303aaedcb7ade6da3e3fbd6..08d3644ae44058e64578658494a47247359188e9 100644 |
--- a/Source/bindings/core/v8/ScriptStreamer.h |
+++ b/Source/bindings/core/v8/ScriptStreamer.h |
@@ -7,6 +7,7 @@ |
#include "bindings/core/v8/ScriptStreamingMode.h" |
#include "core/dom/PendingScript.h" |
+#include "platform/heap/Handle.h" |
#include "wtf/RefCounted.h" |
#include <v8.h> |
@@ -28,9 +29,17 @@ class SourceStream; |
// streaming. It is possible, though, that Document and the PendingScript are |
// destroyed while the streaming is in progress, and ScriptStreamer handles it |
// gracefully. |
-class ScriptStreamer : public RefCounted<ScriptStreamer> { |
+class ScriptStreamer final : public RefCountedWillBeRefCountedGarbageCollected<ScriptStreamer> { |
WTF_MAKE_NONCOPYABLE(ScriptStreamer); |
public: |
+ static PassRefPtrWillBeRawPtr<ScriptStreamer> create(ScriptResource* resource, PendingScript::Type scriptType, ScriptStreamingMode mode, ScriptState* scriptState, v8::ScriptCompiler::CompileOptions compileOptions) |
+ { |
+ return adoptRefWillBeNoop(new ScriptStreamer(resource, scriptType, mode, scriptState, compileOptions)); |
+ } |
+ |
+ ~ScriptStreamer(); |
+ void trace(Visitor*); |
+ |
// Launches a task (on a background thread) which will stream the given |
// PendingScript into V8 as it loads. It's also possible that V8 cannot |
// stream the given script; in that case this function returns |
@@ -122,7 +131,7 @@ private: |
// This pointer is weak. If PendingScript and its Resource are deleted |
// before ScriptStreamer, PendingScript will notify ScriptStreamer of its |
// deletion by calling cancel(). |
- ScriptResource* m_resource; |
+ RawPtrWillBeMember<ScriptResource> m_resource; |
// Whether ScriptStreamer is detached from the Resource. In those cases, the |
// script data is not needed any more, and the client won't get notified |
// when the loading and streaming are done. |