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#include "content/renderer/shared_worker/embedded_shared_worker_permission_client_proxy.h"
6
7#include "content/child/thread_safe_sender.h"
8#include "content/common/worker_messages.h"
9#include "third_party/WebKit/public/platform/WebString.h"
10#include "url/gurl.h"
11
12namespace content {
13
14EmbeddedSharedWorkerPermissionClientProxy::
15    EmbeddedSharedWorkerPermissionClientProxy(
16        const GURL& origin_url,
17        bool is_unique_origin,
18        int routing_id,
19        ThreadSafeSender* thread_safe_sender)
20    : origin_url_(origin_url),
21      is_unique_origin_(is_unique_origin),
22      routing_id_(routing_id),
23      thread_safe_sender_(thread_safe_sender) {
24}
25
26EmbeddedSharedWorkerPermissionClientProxy::
27    ~EmbeddedSharedWorkerPermissionClientProxy() {
28}
29
30bool EmbeddedSharedWorkerPermissionClientProxy::allowDatabase(
31    const blink::WebString& name,
32    const blink::WebString& display_name,
33    unsigned long estimated_size) {
34  if (is_unique_origin_)
35    return false;
36  bool result = false;
37  thread_safe_sender_->Send(new WorkerProcessHostMsg_AllowDatabase(
38      routing_id_, origin_url_, name, display_name, estimated_size, &result));
39  return result;
40}
41
42bool EmbeddedSharedWorkerPermissionClientProxy::requestFileSystemAccessSync() {
43  if (is_unique_origin_)
44    return false;
45  bool result = false;
46  thread_safe_sender_->Send(
47      new WorkerProcessHostMsg_RequestFileSystemAccessSync(
48          routing_id_, origin_url_, &result));
49  return result;
50}
51
52bool EmbeddedSharedWorkerPermissionClientProxy::allowIndexedDB(
53    const blink::WebString& name) {
54  if (is_unique_origin_)
55    return false;
56  bool result = false;
57  thread_safe_sender_->Send(new WorkerProcessHostMsg_AllowIndexedDB(
58      routing_id_, origin_url_, name, &result));
59  return result;
60}
61
62}  // namespace content
63