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/common/webkitplatformsupport_impl.h"
10 #include "third_party/WebKit/Source/Platform/chromium/public/WebMimeRegistry.h"
13 class WebFileUtilities
;
17 class WebFileSystemImpl
;
19 class WorkerWebKitPlatformSupportImpl
: public WebKitPlatformSupportImpl
,
20 public WebKit::WebMimeRegistry
{
22 WorkerWebKitPlatformSupportImpl();
23 virtual ~WorkerWebKitPlatformSupportImpl();
25 // WebKitPlatformSupport methods:
26 virtual WebKit::WebClipboard
* clipboard();
27 virtual WebKit::WebMimeRegistry
* mimeRegistry();
28 virtual WebKit::WebFileSystem
* fileSystem();
29 virtual WebKit::WebFileUtilities
* fileUtilities();
30 virtual WebKit::WebSandboxSupport
* sandboxSupport();
31 virtual bool sandboxEnabled();
32 virtual unsigned long long visitedLinkHash(const char* canonicalURL
,
34 virtual bool isLinkVisited(unsigned long long linkHash
);
35 virtual WebKit::WebMessagePortChannel
* createMessagePortChannel();
36 virtual void setCookies(const WebKit::WebURL
& url
,
37 const WebKit::WebURL
& first_party_for_cookies
,
38 const WebKit::WebString
& value
);
39 virtual WebKit::WebString
cookies(
40 const WebKit::WebURL
& url
,
41 const WebKit::WebURL
& first_party_for_cookies
);
42 virtual void prefetchHostName(const WebKit::WebString
&);
43 virtual WebKit::WebString
defaultLocale();
44 virtual WebKit::WebStorageNamespace
* createLocalStorageNamespace(
45 const WebKit::WebString
& path
, unsigned quota
);
46 virtual void dispatchStorageEvent(
47 const WebKit::WebString
& key
, const WebKit::WebString
& old_value
,
48 const WebKit::WebString
& new_value
, const WebKit::WebString
& origin
,
49 const WebKit::WebURL
& url
, bool is_local_storage
);
51 virtual WebKit::WebKitPlatformSupport::FileHandle
databaseOpenFile(
52 const WebKit::WebString
& vfs_file_name
, int desired_flags
);
53 virtual int databaseDeleteFile(const WebKit::WebString
& vfs_file_name
,
55 virtual long databaseGetFileAttributes(
56 const WebKit::WebString
& vfs_file_name
);
57 virtual long long databaseGetFileSize(
58 const WebKit::WebString
& vfs_file_name
);
59 virtual long long databaseGetSpaceAvailableForOrigin(
60 const WebKit::WebString
& origin_identifier
);
62 virtual WebKit::WebBlobRegistry
* blobRegistry();
64 virtual WebKit::WebIDBFactory
* idbFactory() OVERRIDE
;
66 // WebMimeRegistry methods:
67 virtual WebKit::WebMimeRegistry::SupportsType
supportsMIMEType(
68 const WebKit::WebString
&);
69 virtual WebKit::WebMimeRegistry::SupportsType
supportsImageMIMEType(
70 const WebKit::WebString
&);
71 virtual WebKit::WebMimeRegistry::SupportsType
supportsJavaScriptMIMEType(
72 const WebKit::WebString
&);
73 // TODO(ddorwin): Remove after http://webk.it/82983 lands.
74 virtual WebKit::WebMimeRegistry::SupportsType
supportsMediaMIMEType(
75 const WebKit::WebString
&, const WebKit::WebString
&);
76 virtual WebKit::WebMimeRegistry::SupportsType
supportsMediaMIMEType(
77 const WebKit::WebString
&,
78 const WebKit::WebString
&,
79 const WebKit::WebString
&);
80 virtual WebKit::WebMimeRegistry::SupportsType
supportsNonImageMIMEType(
81 const WebKit::WebString
&);
82 virtual WebKit::WebString
mimeTypeForExtension(const WebKit::WebString
&);
83 virtual WebKit::WebString
wellKnownMimeTypeForExtension(
84 const WebKit::WebString
&);
85 virtual WebKit::WebString
mimeTypeFromFile(const WebKit::WebString
&);
86 virtual WebKit::WebString
preferredExtensionForMIMEType(
87 const WebKit::WebString
&);
92 scoped_ptr
<FileUtilities
> file_utilities_
;
94 scoped_ptr
<WebKit::WebBlobRegistry
> blob_registry_
;
96 scoped_ptr
<WebFileSystemImpl
> web_file_system_
;
97 scoped_ptr
<WebKit::WebIDBFactory
> web_idb_factory_
;
100 } // namespace content
102 #endif // CONTENT_WORKER_WORKER_WEBKITPLATFORMSUPPORT_IMPL_H_