summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h')
-rw-r--r--chromium/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h24
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;
};