diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp b/chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp index 1e176343a7a..92519c1520b 100644 --- a/chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp +++ b/chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp @@ -29,15 +29,16 @@ */ #include "config.h" -#include "LocalFileSystemClient.h" +#include "web/LocalFileSystemClient.h" -#include "WebFrameImpl.h" -#include "WebViewImpl.h" -#include "WorkerPermissionClient.h" #include "core/dom/Document.h" #include "core/workers/WorkerGlobalScope.h" +#include "platform/PermissionCallbacks.h" #include "platform/weborigin/SecurityOrigin.h" +#include "public/platform/WebPermissionCallbacks.h" #include "public/web/WebPermissionClient.h" +#include "web/WebLocalFrameImpl.h" +#include "web/WorkerPermissionClient.h" #include "wtf/text/WTFString.h" using namespace WebCore; @@ -53,18 +54,33 @@ LocalFileSystemClient::~LocalFileSystemClient() { } -bool LocalFileSystemClient::allowFileSystem(ExecutionContext* context) +bool LocalFileSystemClient::requestFileSystemAccessSync(ExecutionContext* context) { + ASSERT(context); if (context->isDocument()) { - Document* document = toDocument(context); - WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame()); - if (webFrame->permissionClient()) - return webFrame->permissionClient()->allowFileSystem(webFrame); - blink::WebViewImpl* webView = webFrame->viewImpl(); - return !webView->permissionClient() || webView->permissionClient()->allowFileSystem(webFrame); + ASSERT_NOT_REACHED(); + return false; } + ASSERT(context->isWorkerGlobalScope()); - return WorkerPermissionClient::from(toWorkerGlobalScope(context))->allowFileSystem(); + return WorkerPermissionClient::from(*toWorkerGlobalScope(context))->requestFileSystemAccessSync(); +} + +void LocalFileSystemClient::requestFileSystemAccessAsync(ExecutionContext* context, PassOwnPtr<WebCore::PermissionCallbacks> callbacks) +{ + ASSERT(context); + if (!context->isDocument()) { + ASSERT_NOT_REACHED(); + return; + } + + Document* document = toDocument(context); + WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(document->frame()); + if (!webFrame->permissionClient()) { + callbacks->onAllowed(); + return; + } + webFrame->permissionClient()->requestFileSystemAccessAsync(callbacks); } LocalFileSystemClient::LocalFileSystemClient() |