1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_WORKER_SHARED_WORKER_PERMISSION_CLIENT_PROXY_H_ 6 #define CONTENT_WORKER_SHARED_WORKER_PERMISSION_CLIENT_PROXY_H_ 7 8 #include "base/basictypes.h" 9 #include "base/memory/ref_counted.h" 10 #include "third_party/WebKit/public/web/WebWorkerPermissionClientProxy.h" 11 #include "url/gurl.h" 12 13 namespace content { 14 15 class ThreadSafeSender; 16 17 // This proxy is created on the main renderer thread then passed onto 18 // the blink's worker thread. 19 class SharedWorkerPermissionClientProxy 20 : public blink::WebWorkerPermissionClientProxy { 21 public: 22 SharedWorkerPermissionClientProxy( 23 const GURL& origin_url, 24 bool is_unique_origin, 25 int routing_id, 26 ThreadSafeSender* thread_safe_sender); 27 virtual ~SharedWorkerPermissionClientProxy(); 28 29 // WebWorkerPermissionClientProxy overrides. 30 virtual bool allowDatabase(const blink::WebString& name, 31 const blink::WebString& display_name, 32 unsigned long estimated_size); 33 virtual bool requestFileSystemAccessSync(); 34 virtual bool allowIndexedDB(const blink::WebString& name); 35 36 private: 37 const GURL origin_url_; 38 const bool is_unique_origin_; 39 const int routing_id_; 40 scoped_refptr<ThreadSafeSender> thread_safe_sender_; 41 42 DISALLOW_COPY_AND_ASSIGN(SharedWorkerPermissionClientProxy); 43 }; 44 45 } // namespace content 46 47 #endif // CONTENT_WORKER_SHARED_WORKER_PERMISSION_CLIENT_PROXY_H_ 48