Index: Source/modules/filesystem/InspectorFileSystemAgent.cpp |
diff --git a/Source/modules/filesystem/InspectorFileSystemAgent.cpp b/Source/modules/filesystem/InspectorFileSystemAgent.cpp |
index 620c891e7569cc9b06673ffbc94a77d3f9c36c3e..bd2573263e90271126958bf6b0fb59c219ee8941 100644 |
--- a/Source/modules/filesystem/InspectorFileSystemAgent.cpp |
+++ b/Source/modules/filesystem/InspectorFileSystemAgent.cpp |
@@ -82,11 +82,11 @@ static const char fileSystemAgentEnabled[] = "fileSystemAgentEnabled"; |
namespace { |
template<typename BaseCallback, typename Handler, typename Argument> |
-class CallbackDispatcher final : public BaseCallback { |
+class GC_PLUGIN_IGNORE("crbug.com/513077") CallbackDispatcher final : public BaseCallback { |
public: |
typedef bool (Handler::*HandlingMethod)(Argument); |
- static CallbackDispatcher* create(PassRefPtr<Handler> handler, HandlingMethod handlingMethod) |
+ static CallbackDispatcher* create(PassRefPtrWillBeRawPtr<Handler> handler, HandlingMethod handlingMethod) |
{ |
return new CallbackDispatcher(handler, handlingMethod); |
} |
@@ -96,12 +96,18 @@ public: |
(m_handler.get()->*m_handlingMethod)(argument); |
} |
+ DEFINE_INLINE_TRACE() |
+ { |
+ visitor->trace(m_handler); |
+ BaseCallback::trace(visitor); |
+ } |
+ |
private: |
- CallbackDispatcher(PassRefPtr<Handler> handler, HandlingMethod handlingMethod) |
+ CallbackDispatcher(PassRefPtrWillBeRawPtr<Handler> handler, HandlingMethod handlingMethod) |
: m_handler(handler) |
, m_handlingMethod(handlingMethod) { } |
- RefPtr<Handler> m_handler; |
+ RefPtrWillBeMember<Handler> m_handler; |
HandlingMethod m_handlingMethod; |
}; |
@@ -111,20 +117,25 @@ public: |
template<typename Handler, typename Argument> |
static CallbackDispatcher<BaseCallback, Handler, Argument>* create(Handler* handler, bool (Handler::*handlingMethod)(Argument)) |
{ |
- return CallbackDispatcher<BaseCallback, Handler, Argument>::create(PassRefPtr<Handler>(handler), handlingMethod); |
+ return CallbackDispatcher<BaseCallback, Handler, Argument>::create(PassRefPtrWillBeRawPtr<Handler>(handler), handlingMethod); |
} |
}; |
-class FileSystemRootRequest : public RefCounted<FileSystemRootRequest> { |
+class FileSystemRootRequest final : public RefCountedWillBeGarbageCollectedFinalized<FileSystemRootRequest> { |
WTF_MAKE_NONCOPYABLE(FileSystemRootRequest); |
public: |
- static PassRefPtr<FileSystemRootRequest> create(PassRefPtrWillBeRawPtr<RequestFileSystemRootCallback> requestCallback, const String& type) |
+ static PassRefPtrWillBeRawPtr<FileSystemRootRequest> create(PassRefPtrWillBeRawPtr<RequestFileSystemRootCallback> requestCallback, const String& type) |
{ |
- return adoptRef(new FileSystemRootRequest(requestCallback, type)); |
+ return adoptRefWillBeNoop(new FileSystemRootRequest(requestCallback, type)); |
} |
void start(ExecutionContext*); |
+ DEFINE_INLINE_TRACE() |
+ { |
+ visitor->trace(m_requestCallback); |
+ } |
+ |
private: |
bool didHitError(FileError* error) |
{ |
@@ -143,7 +154,7 @@ private: |
: m_requestCallback(requestCallback) |
, m_type(type) { } |
- RefPtrWillBePersistent<RequestFileSystemRootCallback> m_requestCallback; |
+ RefPtrWillBeMember<RequestFileSystemRootCallback> m_requestCallback; |
String m_type; |
}; |
@@ -180,12 +191,12 @@ bool FileSystemRootRequest::didGetEntry(Entry* entry) |
return true; |
} |
-class DirectoryContentRequest final : public RefCounted<DirectoryContentRequest> { |
+class DirectoryContentRequest final : public RefCountedWillBeGarbageCollectedFinalized<DirectoryContentRequest> { |
WTF_MAKE_NONCOPYABLE(DirectoryContentRequest); |
public: |
- static PassRefPtr<DirectoryContentRequest> create(PassRefPtrWillBeRawPtr<RequestDirectoryContentCallback> requestCallback, const String& url) |
+ static PassRefPtrWillBeRawPtr<DirectoryContentRequest> create(PassRefPtrWillBeRawPtr<RequestDirectoryContentCallback> requestCallback, const String& url) |
{ |
- return adoptRef(new DirectoryContentRequest(requestCallback, url)); |
+ return adoptRefWillBeNoop(new DirectoryContentRequest(requestCallback, url)); |
} |
~DirectoryContentRequest() |
@@ -194,6 +205,12 @@ public: |
void start(ExecutionContext*); |
+ DEFINE_INLINE_VIRTUAL_TRACE() |
+ { |
+ visitor->trace(m_requestCallback); |
+ visitor->trace(m_directoryReader); |
+ } |
+ |
private: |
bool didHitError(FileError* error) |
{ |
@@ -215,10 +232,10 @@ private: |
void readDirectoryEntries(); |
- RefPtrWillBePersistent<RequestDirectoryContentCallback> m_requestCallback; |
+ RefPtrWillBeMember<RequestDirectoryContentCallback> m_requestCallback; |
KURL m_url; |
RefPtr<Array<TypeBuilder::FileSystem::Entry>> m_entries; |
- Persistent<DirectoryReader> m_directoryReader; |
+ PersistentWillBeMember<DirectoryReader> m_directoryReader; |
}; |
void DirectoryContentRequest::start(ExecutionContext* executionContext) |
@@ -300,12 +317,12 @@ bool DirectoryContentRequest::didReadDirectoryEntries(const EntryHeapVector& ent |
return true; |
} |
-class MetadataRequest final : public RefCounted<MetadataRequest> { |
+class MetadataRequest final : public RefCountedWillBeGarbageCollectedFinalized<MetadataRequest> { |
WTF_MAKE_NONCOPYABLE(MetadataRequest); |
public: |
- static PassRefPtr<MetadataRequest> create(PassRefPtrWillBeRawPtr<RequestMetadataCallback> requestCallback, const String& url) |
+ static PassRefPtrWillBeRawPtr<MetadataRequest> create(PassRefPtrWillBeRawPtr<RequestMetadataCallback> requestCallback, const String& url) |
{ |
- return adoptRef(new MetadataRequest(requestCallback, url)); |
+ return adoptRefWillBeNoop(new MetadataRequest(requestCallback, url)); |
} |
~MetadataRequest() |
@@ -314,6 +331,11 @@ public: |
void start(ExecutionContext*); |
+ DEFINE_INLINE_VIRTUAL_TRACE() |
+ { |
+ visitor->trace(m_requestCallback); |
+ } |
+ |
private: |
bool didHitError(FileError* error) |
{ |
@@ -333,7 +355,7 @@ private: |
: m_requestCallback(requestCallback) |
, m_url(ParsedURLString, url) { } |
- RefPtrWillBePersistent<RequestMetadataCallback> m_requestCallback; |
+ RefPtrWillBeMember<RequestMetadataCallback> m_requestCallback; |
KURL m_url; |
bool m_isDirectory; |
}; |
@@ -375,9 +397,9 @@ bool MetadataRequest::didGetMetadata(Metadata* metadata) |
class FileContentRequest final : public EventListener { |
WTF_MAKE_NONCOPYABLE(FileContentRequest); |
public: |
- static PassRefPtr<FileContentRequest> create(PassRefPtrWillBeRawPtr<RequestFileContentCallback> requestCallback, const String& url, bool readAsText, long long start, long long end, const String& charset) |
+ static PassRefPtrWillBeRawPtr<FileContentRequest> create(PassRefPtrWillBeRawPtr<RequestFileContentCallback> requestCallback, const String& url, bool readAsText, long long start, long long end, const String& charset) |
{ |
- return adoptRef(new FileContentRequest(requestCallback, url, readAsText, start, end, charset)); |
+ return adoptRefWillBeNoop(new FileContentRequest(requestCallback, url, readAsText, start, end, charset)); |
} |
~FileContentRequest() override |
@@ -399,6 +421,13 @@ public: |
didHitError(m_reader->error()); |
} |
+ DEFINE_INLINE_VIRTUAL_TRACE() |
+ { |
+ visitor->trace(m_requestCallback); |
+ visitor->trace(m_reader); |
+ EventListener::trace(visitor); |
+ } |
+ |
private: |
bool didHitError(FileError* error) |
{ |
@@ -424,7 +453,7 @@ private: |
, m_end(end) |
, m_charset(charset) { } |
- RefPtrWillBePersistent<RequestFileContentCallback> m_requestCallback; |
+ RefPtrWillBeMember<RequestFileContentCallback> m_requestCallback; |
KURL m_url; |
bool m_readAsText; |
int m_start; |
@@ -432,7 +461,7 @@ private: |
String m_mimeType; |
String m_charset; |
- Persistent<FileReader> m_reader; |
+ PersistentWillBeMember<FileReader> m_reader; |
}; |
void FileContentRequest::start(ExecutionContext* executionContext) |
@@ -497,11 +526,11 @@ void FileContentRequest::didRead() |
reportResult(static_cast<FileError::ErrorCode>(0), &result, &m_charset); |
} |
-class DeleteEntryRequest final : public RefCounted<DeleteEntryRequest> { |
+class DeleteEntryRequest final : public RefCountedWillBeGarbageCollectedFinalized<DeleteEntryRequest> { |
public: |
- static PassRefPtr<DeleteEntryRequest> create(PassRefPtrWillBeRawPtr<DeleteEntryCallback> requestCallback, const KURL& url) |
+ static PassRefPtrWillBeRawPtr<DeleteEntryRequest> create(PassRefPtrWillBeRawPtr<DeleteEntryCallback> requestCallback, const KURL& url) |
{ |
- return adoptRef(new DeleteEntryRequest(requestCallback, url)); |
+ return adoptRefWillBeNoop(new DeleteEntryRequest(requestCallback, url)); |
} |
~DeleteEntryRequest() |
@@ -510,11 +539,16 @@ public: |
void start(ExecutionContext*); |
+ DEFINE_INLINE_TRACE() |
+ { |
+ visitor->trace(m_requestCallback); |
+ } |
+ |
private: |
// CallbackDispatcherFactory doesn't handle 0-arg handleEvent methods |
class VoidCallbackImpl final : public VoidCallback { |
public: |
- explicit VoidCallbackImpl(PassRefPtr<DeleteEntryRequest> handler) |
+ explicit VoidCallbackImpl(PassRefPtrWillBeRawPtr<DeleteEntryRequest> handler) |
: m_handler(handler) |
{ |
} |
@@ -524,8 +558,14 @@ private: |
m_handler->didDeleteEntry(); |
} |
+ DEFINE_INLINE_VIRTUAL_TRACE() |
+ { |
+ visitor->trace(m_handler); |
+ VoidCallback::trace(visitor); |
+ } |
+ |
private: |
- RefPtr<DeleteEntryRequest> m_handler; |
+ RefPtrWillBeMember<DeleteEntryRequest> m_handler; |
}; |
bool didHitError(FileError* error) |
@@ -546,7 +586,7 @@ private: |
: m_requestCallback(requestCallback) |
, m_url(url) { } |
- RefPtrWillBePersistent<DeleteEntryCallback> m_requestCallback; |
+ RefPtrWillBeMember<DeleteEntryCallback> m_requestCallback; |
KURL m_url; |
}; |