1643ca7872b450ea4efacab6188849e5aac2ba161Steve Block/* 2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2010 Google Inc. All rights reserved. 3643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * 4643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * Redistribution and use in source and binary forms, with or without 5643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * modification, are permitted provided that the following conditions are 6643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * met: 7643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * 8643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * * Redistributions of source code must retain the above copyright 9643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * notice, this list of conditions and the following disclaimer. 10643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * * Redistributions in binary form must reproduce the above 11643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * copyright notice, this list of conditions and the following disclaimer 12643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * in the documentation and/or other materials provided with the 13643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * distribution. 14643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * * Neither the name of Google Inc. nor the names of its 15643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * contributors may be used to endorse or promote products derived from 16643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * this software without specific prior written permission. 17643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * 18643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28643ca7872b450ea4efacab6188849e5aac2ba161Steve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29643ca7872b450ea4efacab6188849e5aac2ba161Steve Block */ 30643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 31643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#ifndef WebKitClient_h 32643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#define WebKitClient_h 33643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 344576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang#include "WebAudioBus.h" 35cad810f21b803229eb11403f9209855525a25d57Steve Block#include "WebAudioDevice.h" 36643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebCommon.h" 37643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebData.h" 38643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebLocalizedString.h" 3981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include "WebSerializedScriptValue.h" 40643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebString.h" 41e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#include "WebVector.h" 42643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "WebURL.h" 43643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 44643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include <time.h> 45643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 46643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#ifdef WIN32 47643ca7872b450ea4efacab6188849e5aac2ba161Steve Blocktypedef void *HANDLE; 48643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 49643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 50643ca7872b450ea4efacab6188849e5aac2ba161Steve Blocknamespace WebKit { 51643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 52643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebApplicationCacheHost; 53643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebApplicationCacheHostClient; 54e8b154fd68f9b33be40a3590e58347f353835f5cSteve Blockclass WebBlobRegistry; 55643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebClipboard; 56692e5dbf12901edacf14812a6fae25462920af42Steve Blockclass WebCookieJar; 57e8b154fd68f9b33be40a3590e58347f353835f5cSteve Blockclass WebFileSystem; 58f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrickclass WebFileUtilities; 59dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass WebGraphicsContext3D; 60db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockclass WebIDBFactory; 61e8b154fd68f9b33be40a3590e58347f353835f5cSteve Blockclass WebIDBKey; 62643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebMessagePortChannel; 63643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebMimeRegistry; 64643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebPluginListBuilder; 65643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebSandboxSupport; 66643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebSharedWorkerRepository; 67643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebSocketStreamHandle; 68643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebStorageNamespace; 69643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebThemeEngine; 70643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebURLLoader; 71643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 72643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockclass WebKitClient { 73643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockpublic: 74643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Must return non-null. 75643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebClipboard* clipboard() { return 0; } 76643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 77643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Must return non-null. 78643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebMimeRegistry* mimeRegistry() { return 0; } 79643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 8021939df44de1705786c545cd1bf519d47250322dBen Murdoch // Must return non-null. 81e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual WebFileUtilities* fileUtilities() { return 0; } 82f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick 83643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // May return null if sandbox support is not necessary 84643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebSandboxSupport* sandboxSupport() { return 0; } 85643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 86643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // May return null on some platforms. 87643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebThemeEngine* themeEngine() { return 0; } 88643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 89692e5dbf12901edacf14812a6fae25462920af42Steve Block // May return null. 90692e5dbf12901edacf14812a6fae25462920af42Steve Block virtual WebCookieJar* cookieJar() { return 0; } 91692e5dbf12901edacf14812a6fae25462920af42Steve Block 92e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // Blob ---------------------------------------------------------------- 93e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block 94e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // Must return non-null. 95e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual WebBlobRegistry* blobRegistry() { return 0; } 96e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block 97643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // DOM Storage -------------------------------------------------- 98643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 99643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Return a LocalStorage namespace that corresponds to the following path. 100643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebStorageNamespace* createLocalStorageNamespace(const WebString& path, unsigned quota) { return 0; } 101643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 102643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Called when storage events fire. 103643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void dispatchStorageEvent(const WebString& key, const WebString& oldValue, 104643ca7872b450ea4efacab6188849e5aac2ba161Steve Block const WebString& newValue, const WebString& origin, 105643ca7872b450ea4efacab6188849e5aac2ba161Steve Block const WebURL& url, bool isLocalStorage) { } 106643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 107643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 108643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // History ------------------------------------------------------------- 109643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 110643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns the hash for the given canonicalized URL for use in visited 111643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // link coloring. 112643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual unsigned long long visitedLinkHash( 113643ca7872b450ea4efacab6188849e5aac2ba161Steve Block const char* canonicalURL, size_t length) { return 0; } 114643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 115643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns whether the given link hash is in the user's history. The 116643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // hash must have been generated by calling VisitedLinkHash(). 117643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool isLinkVisited(unsigned long long linkHash) { return false; } 118643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 119643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 120dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // HTML5 Database ------------------------------------------------------ 121643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 122643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#ifdef WIN32 123643ca7872b450ea4efacab6188849e5aac2ba161Steve Block typedef HANDLE FileHandle; 124643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#else 125643ca7872b450ea4efacab6188849e5aac2ba161Steve Block typedef int FileHandle; 126643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 127643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 128643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Opens a database file; dirHandle should be 0 if the caller does not need 129643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // a handle to the directory containing this file 130643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual FileHandle databaseOpenFile( 1316c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen const WebString& vfsFileName, int desiredFlags) { return FileHandle(); } 132643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 133643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Deletes a database file and returns the error code 134643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual int databaseDeleteFile(const WebString& vfsFileName, bool syncDir) { return 0; } 135643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 136643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns the attributes of the given database file 137643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual long databaseGetFileAttributes(const WebString& vfsFileName) { return 0; } 138643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 139643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns the size of the given database file 140643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual long long databaseGetFileSize(const WebString& vfsFileName) { return 0; } 141643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 142643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 143dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Indexed Database ---------------------------------------------------- 144dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 145db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block virtual WebIDBFactory* idbFactory() { return 0; } 146e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual void createIDBKeysFromSerializedValuesAndKeyPath(const WebVector<WebSerializedScriptValue>& values, const WebString& keyPath, WebVector<WebIDBKey>& keys) { } 14781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual WebSerializedScriptValue injectIDBKeyIntoSerializedValue(const WebIDBKey& key, const WebSerializedScriptValue& value, const WebString& keyPath) { return WebSerializedScriptValue(); } 148dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 149dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 150643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Keygen -------------------------------------------------------------- 151643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 152643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Handle the <keygen> tag for generating client certificates 153643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns a base64 encoded signed copy of a public key from a newly 154643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // generated key pair and the supplied challenge string. keySizeindex 155643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // specifies the strength of the key. 156643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebString signedPublicKeyAndChallengeString(unsigned keySizeIndex, 157643ca7872b450ea4efacab6188849e5aac2ba161Steve Block const WebKit::WebString& challenge, 158643ca7872b450ea4efacab6188849e5aac2ba161Steve Block const WebKit::WebURL& url) { return WebString(); } 159643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 160643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 161643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 162643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Memory -------------------------------------------------------------- 163643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 164643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns the current space allocated for the pagefile, in MB. 165643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // That is committed size for Windows and virtual memory size for POSIX 166643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual size_t memoryUsageMB() { return 0; } 167643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 1685abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick // Same as above, but always returns actual value, without any caches. 1695abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick virtual size_t actualMemoryUsageMB() { return 0; } 1705abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick 171643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 172643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Message Ports ------------------------------------------------------- 173643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 174643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Creates a Message Port Channel. This can be called on any thread. 175643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // The returned object should only be used on the thread it was created on. 176643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebMessagePortChannel* createMessagePortChannel() { return 0; } 177643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 178643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 179643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Network ------------------------------------------------------------- 180643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 181643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // A suggestion to prefetch IP information for the given hostname. 182643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void prefetchHostName(const WebString&) { } 183643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 184643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns a new WebURLLoader instance. 185643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebURLLoader* createURLLoader() { return 0; } 186643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 187643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns a new WebSocketStreamHandle instance. 188643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebSocketStreamHandle* createSocketStreamHandle() { return 0; } 189643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 190643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns the User-Agent string that should be used for the given URL. 191643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebString userAgent(const WebURL&) { return WebString(); } 192643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 1936c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen // A suggestion to cache this metadata in association with this URL. 1946c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen virtual void cacheMetadata(const WebURL&, double responseTime, const char* data, size_t dataSize) { } 1956c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 196643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 197643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Plugins ------------------------------------------------------------- 198643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 199643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // If refresh is true, then cached information should not be used to 200643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // satisfy this call. 201d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual void getPluginList(bool refresh, WebPluginListBuilder*) { } 202643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 203643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 204643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Profiling ----------------------------------------------------------- 205643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 206d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual void decrementStatsCounter(const char* name) { } 207d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual void incrementStatsCounter(const char* name) { } 208643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 209643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // An event is identified by the pair (name, id). The extra parameter 210643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // specifies additional data to log with the event. 211d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual void traceEventBegin(const char* name, void* id, const char* extra) { } 212d0825bca7fe65beaee391d30da42e937db621564Steve Block virtual void traceEventEnd(const char* name, void* id, const char* extra) { } 213643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 2144a156157940f51b91eadd76f6c86f862ec0a1da0Ben Murdoch // Callbacks for reporting histogram data. 2154a156157940f51b91eadd76f6c86f862ec0a1da0Ben Murdoch // CustomCounts histogram has exponential bucket sizes, so that min=1, max=1000000, bucketCount=50 would do. 2164a156157940f51b91eadd76f6c86f862ec0a1da0Ben Murdoch virtual void histogramCustomCounts(const char* name, int sample, int min, int max, int bucketCount) { } 2174a156157940f51b91eadd76f6c86f862ec0a1da0Ben Murdoch // Enumeration histogram buckets are linear, boundaryValue should be larger than any possible sample value. 2184a156157940f51b91eadd76f6c86f862ec0a1da0Ben Murdoch virtual void histogramEnumeration(const char* name, int sample, int boundaryValue) { } 219643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 220643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 221643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Resources ----------------------------------------------------------- 222643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 223643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns a blob of data corresponding to the named resource. 224643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebData loadResource(const char* name) { return WebData(); } 225643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 2264576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang // Decodes the in-memory audio file data and returns the linear PCM audio data in the destinationBus. 2274576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang // A sample-rate conversion to sampleRate will occur if the file data is at a different sample-rate. 2284576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang // Returns true on success. 229f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual bool loadAudioResource(WebAudioBus* destinationBus, const char* audioFileData, size_t dataSize, double sampleRate) { return false; } 2304576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 231f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch // Returns a localized string resource (with substitution parameters). 232643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebString queryLocalizedString(WebLocalizedString::Name) { return WebString(); } 233f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual WebString queryLocalizedString(WebLocalizedString::Name, const WebString& parameter) { return WebString(); } 234f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual WebString queryLocalizedString(WebLocalizedString::Name, const WebString& parameter1, const WebString& parameter2) { return WebString(); } 235643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 236643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 237643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Sandbox ------------------------------------------------------------ 238643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 239643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // In some browsers, a "sandbox" restricts what operations a program 240643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // is allowed to preform. Such operations are typically abstracted out 241643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // via this API, but sometimes (like in HTML 5 database opening) WebKit 242643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // needs to behave differently based on whether it's restricted or not. 243643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // In these cases (and these cases only) you can call this function. 244643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // It's OK for this value to be conservitive (i.e. true even if the 245643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // sandbox isn't active). 246643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual bool sandboxEnabled() { return false; } 247643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 248643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 249643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Shared Workers ------------------------------------------------------ 250643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 251643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebSharedWorkerRepository* sharedWorkerRepository() { return 0; } 252643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 253643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Sudden Termination -------------------------------------------------- 254643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 255643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Disable/Enable sudden termination. 256643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void suddenTerminationChanged(bool enabled) { } 257643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 258643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 259643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // System -------------------------------------------------------------- 260643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 261643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Returns a value such as "en-US". 262643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual WebString defaultLocale() { return WebString(); } 263643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 264643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Wall clock time in seconds since the epoch. 265643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual double currentTime() { return 0; } 266643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 26781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) 26881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch { 26981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // WebKit clients must implement this funcion if they use cryptographic randomness. 27081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch WEBKIT_ASSERT_NOT_REACHED(); 27181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch } 27281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 273643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Delayed work is driven by a shared timer. 274643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void setSharedTimerFiredFunction(void (*func)()) { } 275643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void setSharedTimerFireTime(double fireTime) { } 276643ca7872b450ea4efacab6188849e5aac2ba161Steve Block virtual void stopSharedTimer() { } 277643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 278643ca7872b450ea4efacab6188849e5aac2ba161Steve Block // Callable from a background WebKit thread. 27921939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual void callOnMainThread(void (*func)(void*), void* context) { } 280643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 281dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // WebGL -------------------------------------------------------------- 282dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 283dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // May return null if WebGL is not supported. 284dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Returns newly allocated WebGraphicsContext3D instance. 285dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block virtual WebGraphicsContext3D* createGraphicsContext3D() { return 0; } 286dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 287cad810f21b803229eb11403f9209855525a25d57Steve Block // Audio -------------------------------------------------------------- 288cad810f21b803229eb11403f9209855525a25d57Steve Block 2892bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual double audioHardwareSampleRate() { return 0; } 290cad810f21b803229eb11403f9209855525a25d57Steve Block virtual WebAudioDevice* createAudioDevice(size_t bufferSize, unsigned numberOfChannels, double sampleRate, WebAudioDevice::RenderCallback*) { return 0; } 291cad810f21b803229eb11403f9209855525a25d57Steve Block 292e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // FileSystem ---------------------------------------------------------- 293e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block 294e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block // Must return non-null. 295e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block virtual WebFileSystem* fileSystem() { return 0; } 296e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block 297643ca7872b450ea4efacab6188849e5aac2ba161Steve Blockprotected: 298643ca7872b450ea4efacab6188849e5aac2ba161Steve Block ~WebKitClient() { } 299643ca7872b450ea4efacab6188849e5aac2ba161Steve Block}; 300643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 301643ca7872b450ea4efacab6188849e5aac2ba161Steve Block} // namespace WebKit 302643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 303643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#endif 304