Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / WorkerPermissionClient.cpp
index d6ff42a..60efa9a 100644 (file)
  */
 
 #include "config.h"
-#include "WorkerPermissionClient.h"
+#include "web/WorkerPermissionClient.h"
 
 #include "core/workers/WorkerGlobalScope.h"
+#include "public/platform/WebPermissionCallbacks.h"
 #include "public/platform/WebString.h"
 #include "public/web/WebWorkerPermissionClientProxy.h"
 #include "wtf/PassOwnPtr.h"
 
 using namespace WebCore;
 
-namespace WebKit {
+namespace blink {
 
-PassOwnPtr<WorkerPermissionClient> WorkerPermissionClient::create(PassOwnPtr<WebWorkerPermissionClientProxy> proxy)
+PassOwnPtrWillBeRawPtr<WorkerPermissionClient> WorkerPermissionClient::create(PassOwnPtr<WebWorkerPermissionClientProxy> proxy)
 {
-    return adoptPtr(new WorkerPermissionClient(proxy));
+    return adoptPtrWillBeNoop(new WorkerPermissionClient(proxy));
 }
 
 WorkerPermissionClient::~WorkerPermissionClient()
@@ -52,21 +53,31 @@ WorkerPermissionClient::~WorkerPermissionClient()
 bool WorkerPermissionClient::allowDatabase(const WebString& name, const WebString& displayName, unsigned long estimatedSize)
 {
     if (!m_proxy)
-        return false;
+        return true;
     return m_proxy->allowDatabase(name, displayName, estimatedSize);
 }
 
 bool WorkerPermissionClient::allowFileSystem()
 {
     if (!m_proxy)
-        return false;
+        return true;
     return m_proxy->allowFileSystem();
 }
 
+void WorkerPermissionClient::requestFileSystemAccess(const WebPermissionCallbacks& callbacks)
+{
+    if (!m_proxy) {
+        WebPermissionCallbacks permissionCallbacks(callbacks);
+        permissionCallbacks.doAllow();
+        return;
+    }
+    m_proxy->requestFileSystemAccess(callbacks);
+}
+
 bool WorkerPermissionClient::allowIndexedDB(const WebString& name)
 {
     if (!m_proxy)
-        return false;
+        return true;
     return m_proxy->allowIndexedDB(name);
 }
 
@@ -75,9 +86,11 @@ const char* WorkerPermissionClient::supplementName()
     return "WorkerPermissionClient";
 }
 
-WorkerPermissionClient* WorkerPermissionClient::from(ExecutionContext* context)
+WorkerPermissionClient* WorkerPermissionClient::from(ExecutionContext& context)
 {
-    return static_cast<WorkerPermissionClient*>(Supplement<WorkerClients>::from(toWorkerGlobalScope(context)->clients(), supplementName()));
+    WorkerClients* clients = toWorkerGlobalScope(context).clients();
+    ASSERT(clients);
+    return static_cast<WorkerPermissionClient*>(WillBeHeapSupplement<WorkerClients>::from(*clients, supplementName()));
 }
 
 WorkerPermissionClient::WorkerPermissionClient(PassOwnPtr<WebWorkerPermissionClientProxy> proxy)
@@ -87,7 +100,8 @@ WorkerPermissionClient::WorkerPermissionClient(PassOwnPtr<WebWorkerPermissionCli
 
 void providePermissionClientToWorker(WorkerClients* clients, PassOwnPtr<WebWorkerPermissionClientProxy> proxy)
 {
-    WorkerPermissionClient::provideTo(clients, WorkerPermissionClient::supplementName(), WorkerPermissionClient::create(proxy));
+    ASSERT(clients);
+    WorkerPermissionClient::provideTo(*clients, WorkerPermissionClient::supplementName(), WorkerPermissionClient::create(proxy));
 }
 
-} // namespace WebKit
+} // namespace blink