summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/web/LocalFileSystemClient.cpp40
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()