[content shell] implement testRunner.overridePreference
[chromium-blink-merge.git] / content / worker / worker_webkitplatformsupport_impl.h
blob8124a2558cc74360f6e7448c948a3d2470225643
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"
12 namespace WebKit {
13 class WebFileUtilities;
16 namespace content {
17 class WebFileSystemImpl;
19 class WorkerWebKitPlatformSupportImpl : public WebKitPlatformSupportImpl,
20 public WebKit::WebMimeRegistry {
21 public:
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,
33 size_t length);
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,
54 bool sync_dir);
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&);
89 private:
91 class FileUtilities;
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_