1// Copyright 2014 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_RENDERER_SHARED_WORKER_EMBEDDED_SHARED_WORKER_PERMISSION_CLIENT_PROXY_H_
6#define CONTENT_RENDERER_SHARED_WORKER_EMBEDDED_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
13namespace content {
14
15class ThreadSafeSender;
16
17// This proxy is created on the main renderer thread then passed onto
18// the blink's worker thread.
19class EmbeddedSharedWorkerPermissionClientProxy
20    : public blink::WebWorkerPermissionClientProxy {
21 public:
22  EmbeddedSharedWorkerPermissionClientProxy(
23      const GURL& origin_url,
24      bool is_unique_origin,
25      int routing_id,
26      ThreadSafeSender* thread_safe_sender);
27  virtual ~EmbeddedSharedWorkerPermissionClientProxy();
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(EmbeddedSharedWorkerPermissionClientProxy);
43};
44
45}  // namespace content
46
47#endif  // CONTENT_RENDERER_SHARED_WORKER_EMBEDDED_SHARED_WORKER_PERMISSION_CLIENT_PROXY_H_
48