summaryrefslogtreecommitdiffstats
path: root/content/renderer/renderer_webkitclient_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/renderer_webkitclient_impl.h')
-rw-r--r--content/renderer/renderer_webkitclient_impl.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/content/renderer/renderer_webkitclient_impl.h b/content/renderer/renderer_webkitclient_impl.h
new file mode 100644
index 0000000..41ea45e
--- /dev/null
+++ b/content/renderer/renderer_webkitclient_impl.h
@@ -0,0 +1,117 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_
+#define CONTENT_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_
+#pragma once
+
+#include "base/platform_file.h"
+#include "base/scoped_ptr.h"
+#include "webkit/glue/webkitclient_impl.h"
+
+class WebSharedWorkerRepositoryImpl;
+class WebFileSystemImpl;
+
+namespace IPC {
+class SyncMessage;
+}
+
+namespace webkit_glue {
+class WebClipboardImpl;
+}
+
+class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl {
+ public:
+ RendererWebKitClientImpl();
+ virtual ~RendererWebKitClientImpl();
+
+ // WebKitClient methods:
+ virtual WebKit::WebClipboard* clipboard();
+ virtual WebKit::WebMimeRegistry* mimeRegistry();
+ virtual WebKit::WebFileUtilities* fileUtilities();
+ virtual WebKit::WebSandboxSupport* sandboxSupport();
+ virtual WebKit::WebCookieJar* cookieJar();
+ virtual bool sandboxEnabled();
+ virtual unsigned long long visitedLinkHash(
+ const char* canonicalURL, size_t length);
+ virtual bool isLinkVisited(unsigned long long linkHash);
+ virtual WebKit::WebMessagePortChannel* createMessagePortChannel();
+ virtual void prefetchHostName(const WebKit::WebString&);
+ virtual void cacheMetadata(
+ const WebKit::WebURL&, double, const char*, size_t);
+ virtual WebKit::WebString defaultLocale();
+ virtual void suddenTerminationChanged(bool enabled);
+ virtual WebKit::WebStorageNamespace* createLocalStorageNamespace(
+ const WebKit::WebString& path, unsigned quota);
+ virtual void dispatchStorageEvent(
+ const WebKit::WebString& key, const WebKit::WebString& old_value,
+ const WebKit::WebString& new_value, const WebKit::WebString& origin,
+ const WebKit::WebURL& url, bool is_local_storage);
+
+ virtual WebKit::WebKitClient::FileHandle databaseOpenFile(
+ const WebKit::WebString& vfs_file_name, int desired_flags);
+ virtual int databaseDeleteFile(const WebKit::WebString& vfs_file_name,
+ bool sync_dir);
+ virtual long databaseGetFileAttributes(
+ const WebKit::WebString& vfs_file_name);
+ virtual long long databaseGetFileSize(
+ const WebKit::WebString& vfs_file_name);
+ virtual WebKit::WebString signedPublicKeyAndChallengeString(
+ unsigned key_size_index,
+ const WebKit::WebString& challenge,
+ const WebKit::WebURL& url);
+ virtual WebKit::WebIDBFactory* idbFactory();
+ virtual void createIDBKeysFromSerializedValuesAndKeyPath(
+ const WebKit::WebVector<WebKit::WebSerializedScriptValue>& values,
+ const WebKit::WebString& keyPath,
+ WebKit::WebVector<WebKit::WebIDBKey>& keys);
+ virtual WebKit::WebSerializedScriptValue injectIDBKeyIntoSerializedValue(
+ const WebKit::WebIDBKey& key,
+ const WebKit::WebSerializedScriptValue& value,
+ const WebKit::WebString& keyPath);
+ virtual WebKit::WebFileSystem* fileSystem();
+
+ virtual WebKit::WebSharedWorkerRepository* sharedWorkerRepository();
+ virtual WebKit::WebGraphicsContext3D* createGraphicsContext3D();
+ virtual WebKit::WebAudioDevice* createAudioDevice(
+ size_t buffer_size, unsigned channels, double sample_rate,
+ WebKit::WebAudioDevice::RenderCallback* callback);
+
+ virtual WebKit::WebBlobRegistry* blobRegistry();
+
+ private:
+ bool CheckPreparsedJsCachingEnabled() const;
+
+ // Helper function to send synchronous message from any thread.
+ static bool SendSyncMessageFromAnyThread(IPC::SyncMessage* msg);
+
+ scoped_ptr<webkit_glue::WebClipboardImpl> clipboard_;
+
+ class FileUtilities;
+ scoped_ptr<FileUtilities> file_utilities_;
+
+ class MimeRegistry;
+ scoped_ptr<MimeRegistry> mime_registry_;
+
+ class SandboxSupport;
+ scoped_ptr<SandboxSupport> sandbox_support_;
+
+ // This counter keeps track of the number of times sudden termination is
+ // enabled or disabled. It starts at 0 (enabled) and for every disable
+ // increments by 1, for every enable decrements by 1. When it reaches 0,
+ // we tell the browser to enable fast termination.
+ int sudden_termination_disables_;
+
+ // Implementation of the WebSharedWorkerRepository APIs (provides an interface
+ // to WorkerService on the browser thread.
+ scoped_ptr<WebSharedWorkerRepositoryImpl> shared_worker_repository_;
+
+ scoped_ptr<WebKit::WebIDBFactory> web_idb_factory_;
+
+ scoped_ptr<WebFileSystemImpl> web_file_system_;
+
+ scoped_ptr<WebKit::WebBlobRegistry> blob_registry_;
+};
+
+#endif // CONTENT_RENDERER_RENDERER_WEBKITCLIENT_IMPL_H_