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 CHROME_RENDERER_WORKER_PERMISSION_CLIENT_PROXY_H_ 6#define CHROME_RENDERER_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 13namespace IPC { 14class SyncMessageFilter; 15} 16 17namespace content { 18class RenderView; 19} 20 21namespace blink { 22class WebFrame; 23} 24 25// This proxy is created on the main renderer thread then passed onto 26// the blink's worker thread. 27class WorkerPermissionClientProxy 28 : public blink::WebWorkerPermissionClientProxy { 29 public: 30 WorkerPermissionClientProxy(content::RenderView* render_view, 31 blink::WebFrame* frame); 32 virtual ~WorkerPermissionClientProxy(); 33 34 // WebWorkerPermissionClientProxy overrides. 35 virtual bool allowDatabase(const blink::WebString& name, 36 const blink::WebString& display_name, 37 unsigned long estimated_size); 38 virtual bool allowFileSystem(); 39 virtual bool allowIndexedDB(const blink::WebString& name); 40 41 private: 42 // Loading document context for this worker. 43 const int routing_id_; 44 bool is_unique_origin_; 45 GURL document_origin_url_; 46 GURL top_frame_origin_url_; 47 scoped_refptr<IPC::SyncMessageFilter> sync_message_filter_; 48 49 DISALLOW_COPY_AND_ASSIGN(WorkerPermissionClientProxy); 50}; 51 52#endif // CHROME_RENDERER_WORKER_PERMISSION_CLIENT_PROXY_H_ 53