diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h b/chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h index ecc11fa1a2f..93125da76de 100644 --- a/chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h +++ b/chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h @@ -31,21 +31,25 @@ #ifndef LocalFileSystem_h #define LocalFileSystem_h -#include "core/page/Page.h" #include "core/workers/WorkerClients.h" #include "platform/FileSystemType.h" #include "wtf/Forward.h" +#include "wtf/Functional.h" namespace WebCore { class AsyncFileSystemCallbacks; +class CallbackWrapper; class FileSystemClient; class ExecutionContext; +class KURL; +class LocalFrame; -class LocalFileSystem : public Supplement<Page>, public Supplement<WorkerClients> { +class LocalFileSystem FINAL : public NoBaseWillBeGarbageCollectedFinalized<LocalFileSystem>, public WillBeHeapSupplement<LocalFrame>, public WillBeHeapSupplement<WorkerClients> { + WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LocalFileSystem); WTF_MAKE_NONCOPYABLE(LocalFileSystem); public: - static PassOwnPtr<LocalFileSystem> create(PassOwnPtr<FileSystemClient>); + static PassOwnPtrWillBeRawPtr<LocalFileSystem> create(PassOwnPtr<FileSystemClient>); virtual ~LocalFileSystem(); void resolveURL(ExecutionContext*, const KURL&, PassOwnPtr<AsyncFileSystemCallbacks>); @@ -55,11 +59,23 @@ public: FileSystemClient* client() { return m_client.get(); } static const char* supplementName(); - static LocalFileSystem* from(ExecutionContext*); + static LocalFileSystem* from(ExecutionContext&); + + virtual void trace(Visitor* visitor) OVERRIDE + { + WillBeHeapSupplement<LocalFrame>::trace(visitor); + WillBeHeapSupplement<WorkerClients>::trace(visitor); + } protected: explicit LocalFileSystem(PassOwnPtr<FileSystemClient>); +private: + void requestFileSystemAccessInternal(ExecutionContext*, const Closure& allowed, const Closure& denied); + void fileSystemNotAllowedInternal(PassRefPtrWillBeRawPtr<ExecutionContext>, PassRefPtr<CallbackWrapper>); + void fileSystemAllowedInternal(PassRefPtrWillBeRawPtr<ExecutionContext>, FileSystemType, PassRefPtr<CallbackWrapper>); + void resolveURLInternal(const KURL&, PassRefPtr<CallbackWrapper>); + void deleteFileSystemInternal(PassRefPtrWillBeRawPtr<ExecutionContext>, FileSystemType, PassRefPtr<CallbackWrapper>); OwnPtr<FileSystemClient> m_client; }; |