1 // Copyright (c) 2012 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.
5 #ifndef CONTENT_WORKER_WORKER_WEBKITPLATFORMSUPPORT_IMPL_H_
6 #define CONTENT_WORKER_WORKER_WEBKITPLATFORMSUPPORT_IMPL_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "content/child/blink_platform_impl.h"
10 #include "third_party/WebKit/public/platform/WebIDBFactory.h"
11 #include "third_party/WebKit/public/platform/WebMimeRegistry.h"
14 class MessageLoopProxy
;
18 class SyncMessageFilter
;
22 class WebFileUtilities
;
26 class QuotaMessageFilter
;
27 class ThreadSafeSender
;
28 class WebDatabaseObserverImpl
;
29 class WebFileSystemImpl
;
31 class WorkerWebKitPlatformSupportImpl
: public BlinkPlatformImpl
,
32 public blink::WebMimeRegistry
{
34 WorkerWebKitPlatformSupportImpl(
35 ThreadSafeSender
* sender
,
36 IPC::SyncMessageFilter
* sync_message_filter
,
37 QuotaMessageFilter
* quota_message_filter
);
38 virtual ~WorkerWebKitPlatformSupportImpl();
40 // WebKitPlatformSupport methods:
41 virtual blink::WebClipboard
* clipboard();
42 virtual blink::WebMimeRegistry
* mimeRegistry();
43 virtual blink::WebFileSystem
* fileSystem();
44 virtual blink::WebFileUtilities
* fileUtilities();
45 virtual blink::WebSandboxSupport
* sandboxSupport();
46 virtual bool sandboxEnabled();
47 virtual unsigned long long visitedLinkHash(const char* canonicalURL
,
49 virtual bool isLinkVisited(unsigned long long linkHash
);
50 virtual void createMessageChannel(blink::WebMessagePortChannel
** channel1
,
51 blink::WebMessagePortChannel
** channel2
);
52 virtual void setCookies(const blink::WebURL
& url
,
53 const blink::WebURL
& first_party_for_cookies
,
54 const blink::WebString
& value
);
55 virtual blink::WebString
cookies(
56 const blink::WebURL
& url
,
57 const blink::WebURL
& first_party_for_cookies
);
58 virtual blink::WebString
defaultLocale();
59 virtual blink::WebStorageNamespace
* createLocalStorageNamespace();
60 virtual void dispatchStorageEvent(
61 const blink::WebString
& key
, const blink::WebString
& old_value
,
62 const blink::WebString
& new_value
, const blink::WebString
& origin
,
63 const blink::WebURL
& url
, bool is_local_storage
);
65 virtual blink::Platform::FileHandle
databaseOpenFile(
66 const blink::WebString
& vfs_file_name
, int desired_flags
);
67 virtual int databaseDeleteFile(const blink::WebString
& vfs_file_name
,
69 virtual long databaseGetFileAttributes(
70 const blink::WebString
& vfs_file_name
);
71 virtual long long databaseGetFileSize(
72 const blink::WebString
& vfs_file_name
);
73 virtual long long databaseGetSpaceAvailableForOrigin(
74 const blink::WebString
& origin_identifier
);
75 virtual blink::WebBlobRegistry
* blobRegistry();
76 virtual blink::WebIDBFactory
* idbFactory();
77 virtual blink::WebDatabaseObserver
* databaseObserver();
79 // WebMimeRegistry methods:
80 virtual blink::WebMimeRegistry::SupportsType
supportsMIMEType(
81 const blink::WebString
&);
82 virtual blink::WebMimeRegistry::SupportsType
supportsImageMIMEType(
83 const blink::WebString
&);
84 virtual blink::WebMimeRegistry::SupportsType
supportsJavaScriptMIMEType(
85 const blink::WebString
&);
86 virtual blink::WebMimeRegistry::SupportsType
supportsMediaMIMEType(
87 const blink::WebString
&,
88 const blink::WebString
&,
89 const blink::WebString
&);
90 virtual bool supportsMediaSourceMIMEType(
91 const blink::WebString
&,
92 const blink::WebString
&);
93 virtual bool supportsEncryptedMediaMIMEType(const blink::WebString
&,
94 const blink::WebString
&,
95 const blink::WebString
&);
96 virtual blink::WebMimeRegistry::SupportsType
supportsNonImageMIMEType(
97 const blink::WebString
&);
98 virtual blink::WebString
mimeTypeForExtension(const blink::WebString
&);
99 virtual blink::WebString
wellKnownMimeTypeForExtension(
100 const blink::WebString
&);
101 virtual blink::WebString
mimeTypeFromFile(const blink::WebString
&);
102 virtual void queryStorageUsageAndQuota(
103 const blink::WebURL
& storage_partition
,
104 blink::WebStorageQuotaType
,
105 blink::WebStorageQuotaCallbacks
) OVERRIDE
;
107 WebDatabaseObserverImpl
* web_database_observer_impl() {
108 return web_database_observer_impl_
.get();
114 scoped_ptr
<FileUtilities
> file_utilities_
;
115 scoped_ptr
<blink::WebBlobRegistry
> blob_registry_
;
116 scoped_ptr
<blink::WebIDBFactory
> web_idb_factory_
;
117 scoped_refptr
<ThreadSafeSender
> thread_safe_sender_
;
118 scoped_refptr
<base::MessageLoopProxy
> child_thread_loop_
;
119 scoped_refptr
<IPC::SyncMessageFilter
> sync_message_filter_
;
120 scoped_refptr
<QuotaMessageFilter
> quota_message_filter_
;
121 scoped_ptr
<WebDatabaseObserverImpl
> web_database_observer_impl_
;
123 DISALLOW_COPY_AND_ASSIGN(WorkerWebKitPlatformSupportImpl
);
126 } // namespace content
128 #endif // CONTENT_WORKER_WORKER_WEBKITPLATFORMSUPPORT_IMPL_H_