Index: webkit/tools/test_shell/test_shell_webkit_init.cc |
=================================================================== |
--- webkit/tools/test_shell/test_shell_webkit_init.cc (revision 48989) |
+++ webkit/tools/test_shell/test_shell_webkit_init.cc (working copy) |
@@ -2,251 +2,106 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_WEBKIT_INIT_H_ |
-#define WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_WEBKIT_INIT_H_ |
+#include "webkit/tools/test_shell/test_shell_webkit_init.h" |
-#include "base/file_util.h" |
#include "base/path_service.h" |
-#include "base/platform_file.h" |
-#include "base/scoped_temp_dir.h" |
#include "base/stats_counters.h" |
-#include "base/string_util.h" |
#include "media/base/media.h" |
-#include "net/base/file_stream.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebData.h" |
#include "third_party/WebKit/WebKit/chromium/public/WebDatabase.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebGeolocationServiceMock.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebGraphicsContext3D.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebIndexedDatabase.h" |
#include "third_party/WebKit/WebKit/chromium/public/WebKit.h" |
#include "third_party/WebKit/WebKit/chromium/public/WebRuntimeFeatures.h" |
#include "third_party/WebKit/WebKit/chromium/public/WebScriptController.h" |
#include "third_party/WebKit/WebKit/chromium/public/WebSecurityPolicy.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebStorageArea.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebStorageEventDispatcher.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebStorageNamespace.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebString.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebThemeEngine.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebURL.h" |
-#include "webkit/database/vfs_backend.h" |
#include "webkit/extensions/v8/gears_extension.h" |
#include "webkit/extensions/v8/interval_extension.h" |
-#include "webkit/glue/webclipboard_impl.h" |
-#include "webkit/glue/webfilesystem_impl.h" |
-#include "webkit/glue/webkit_glue.h" |
-#include "webkit/glue/webkitclient_impl.h" |
-#include "webkit/tools/test_shell/mock_webclipboard_impl.h" |
-#include "webkit/tools/test_shell/simple_appcache_system.h" |
-#include "webkit/tools/test_shell/simple_database_system.h" |
-#include "webkit/tools/test_shell/simple_resource_loader_bridge.h" |
-#include "webkit/tools/test_shell/simple_webcookiejar_impl.h" |
-#include "webkit/tools/test_shell/test_shell_webmimeregistry_impl.h" |
-#include "v8/include/v8.h" |
+#include "webkit/tools/test_shell/test_shell.h" |
#if defined(OS_WIN) |
#include "webkit/tools/test_shell/test_shell_webthemeengine.h" |
#endif |
-class TestShellWebKitInit : public webkit_glue::WebKitClientImpl { |
- public: |
- explicit TestShellWebKitInit(bool layout_test_mode) { |
- v8::V8::SetCounterFunction(StatsTable::FindLocation); |
+TestShellWebKitInit::TestShellWebKitInit(bool layout_test_mode) { |
+ v8::V8::SetCounterFunction(StatsTable::FindLocation); |
- WebKit::initialize(this); |
- WebKit::setLayoutTestMode(layout_test_mode); |
- WebKit::WebSecurityPolicy::registerURLSchemeAsLocal( |
- WebKit::WebString::fromUTF8("test-shell-resource")); |
- WebKit::WebSecurityPolicy::registerURLSchemeAsNoAccess( |
- WebKit::WebString::fromUTF8("test-shell-resource")); |
- WebKit::WebScriptController::enableV8SingleThreadMode(); |
- WebKit::WebScriptController::registerExtension( |
- extensions_v8::GearsExtension::Get()); |
- WebKit::WebScriptController::registerExtension( |
- extensions_v8::IntervalExtension::Get()); |
- WebKit::WebRuntimeFeatures::enableSockets(true); |
- WebKit::WebRuntimeFeatures::enableApplicationCache(true); |
- WebKit::WebRuntimeFeatures::enableDatabase(true); |
- WebKit::WebRuntimeFeatures::enableWebGL(true); |
- WebKit::WebRuntimeFeatures::enablePushState(true); |
- WebKit::WebRuntimeFeatures::enableNotifications(true); |
- WebKit::WebRuntimeFeatures::enableTouch(true); |
- WebKit::WebRuntimeFeatures::enableIndexedDatabase(true); |
+ WebKit::initialize(this); |
+ WebKit::setLayoutTestMode(layout_test_mode); |
+ WebKit::WebSecurityPolicy::registerURLSchemeAsLocal( |
+ WebKit::WebString::fromUTF8("test-shell-resource")); |
+ WebKit::WebSecurityPolicy::registerURLSchemeAsNoAccess( |
+ WebKit::WebString::fromUTF8("test-shell-resource")); |
+ WebKit::WebScriptController::enableV8SingleThreadMode(); |
+ WebKit::WebScriptController::registerExtension( |
+ extensions_v8::GearsExtension::Get()); |
+ WebKit::WebScriptController::registerExtension( |
+ extensions_v8::IntervalExtension::Get()); |
+ WebKit::WebRuntimeFeatures::enableSockets(true); |
+ WebKit::WebRuntimeFeatures::enableApplicationCache(true); |
+ WebKit::WebRuntimeFeatures::enableDatabase(true); |
+ WebKit::WebRuntimeFeatures::enableWebGL(true); |
+ WebKit::WebRuntimeFeatures::enablePushState(true); |
+ WebKit::WebRuntimeFeatures::enableNotifications(true); |
+ WebKit::WebRuntimeFeatures::enableTouch(true); |
+ WebKit::WebRuntimeFeatures::enableIndexedDatabase(true); |
- // Load libraries for media and enable the media player. |
- FilePath module_path; |
- WebKit::WebRuntimeFeatures::enableMediaPlayer( |
- PathService::Get(base::DIR_MODULE, &module_path) && |
- media::InitializeMediaLibrary(module_path)); |
+ // Load libraries for media and enable the media player. |
+ FilePath module_path; |
+ WebKit::WebRuntimeFeatures::enableMediaPlayer( |
+ PathService::Get(base::DIR_MODULE, &module_path) && |
+ media::InitializeMediaLibrary(module_path)); |
- WebKit::WebRuntimeFeatures::enableGeolocation(true); |
+ WebKit::WebRuntimeFeatures::enableGeolocation(true); |
- // Construct and initialize an appcache system for this scope. |
- // A new empty temp directory is created to house any cached |
- // content during the run. Upon exit that directory is deleted. |
- // If we can't create a tempdir, we'll use in-memory storage. |
- if (!appcache_dir_.CreateUniqueTempDir()) { |
- LOG(WARNING) << "Failed to create a temp dir for the appcache, " |
- "using in-memory storage."; |
- DCHECK(appcache_dir_.path().empty()); |
- } |
- SimpleAppCacheSystem::InitializeOnUIThread(appcache_dir_.path()); |
- |
- WebKit::WebDatabase::setObserver(&database_system_); |
- |
- file_system_.set_sandbox_enabled(false); |
- |
-#if defined(OS_WIN) |
- // Ensure we pick up the default theme engine. |
- SetThemeEngine(NULL); |
-#endif |
+ // Construct and initialize an appcache system for this scope. |
+ // A new empty temp directory is created to house any cached |
+ // content during the run. Upon exit that directory is deleted. |
+ // If we can't create a tempdir, we'll use in-memory storage. |
+ if (!appcache_dir_.CreateUniqueTempDir()) { |
+ LOG(WARNING) << "Failed to create a temp dir for the appcache, " |
+ "using in-memory storage."; |
+ DCHECK(appcache_dir_.path().empty()); |
} |
+ SimpleAppCacheSystem::InitializeOnUIThread(appcache_dir_.path()); |
- ~TestShellWebKitInit() { |
- WebKit::shutdown(); |
- } |
+ WebKit::WebDatabase::setObserver(&database_system_); |
- virtual WebKit::WebMimeRegistry* mimeRegistry() { |
- return &mime_registry_; |
- } |
+ file_system_.set_sandbox_enabled(false); |
- WebKit::WebClipboard* clipboard() { |
- // Mock out clipboard calls in layout test mode so that tests don't mess |
- // with each other's copies/pastes when running in parallel. |
- if (TestShell::layout_test_mode()) { |
- return &mock_clipboard_; |
- } else { |
- return &real_clipboard_; |
- } |
- } |
- |
- virtual WebKit::WebFileSystem* fileSystem() { |
- return &file_system_; |
- } |
- |
- virtual WebKit::WebSandboxSupport* sandboxSupport() { |
- return NULL; |
- } |
- |
- virtual WebKit::WebCookieJar* cookieJar() { |
- return &cookie_jar_; |
- } |
- |
- virtual bool sandboxEnabled() { |
- return true; |
- } |
- |
- virtual WebKit::WebKitClient::FileHandle databaseOpenFile( |
- const WebKit::WebString& vfs_file_name, int desired_flags) { |
- return SimpleDatabaseSystem::GetInstance()->OpenFile( |
- vfs_file_name, desired_flags); |
- } |
- |
- virtual int databaseDeleteFile(const WebKit::WebString& vfs_file_name, |
- bool sync_dir) { |
- return SimpleDatabaseSystem::GetInstance()->DeleteFile( |
- vfs_file_name, sync_dir); |
- } |
- |
- virtual long databaseGetFileAttributes( |
- const WebKit::WebString& vfs_file_name) { |
- return SimpleDatabaseSystem::GetInstance()->GetFileAttributes( |
- vfs_file_name); |
- } |
- |
- virtual long long databaseGetFileSize( |
- const WebKit::WebString& vfs_file_name) { |
- return SimpleDatabaseSystem::GetInstance()->GetFileSize(vfs_file_name); |
- } |
- |
- virtual unsigned long long visitedLinkHash(const char* canonicalURL, |
- size_t length) { |
- return 0; |
- } |
- |
- virtual bool isLinkVisited(unsigned long long linkHash) { |
- return false; |
- } |
- |
- virtual WebKit::WebMessagePortChannel* createMessagePortChannel() { |
- return NULL; |
- } |
- |
- virtual void prefetchHostName(const WebKit::WebString&) { |
- } |
- |
- virtual WebKit::WebData loadResource(const char* name) { |
- if (!strcmp(name, "deleteButton")) { |
- // Create a red 30x30 square. |
- const char red_square[] = |
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52" |
- "\x00\x00\x00\x1e\x00\x00\x00\x1e\x04\x03\x00\x00\x00\xc9\x1e\xb3" |
- "\x91\x00\x00\x00\x30\x50\x4c\x54\x45\x00\x00\x00\x80\x00\x00\x00" |
- "\x80\x00\x80\x80\x00\x00\x00\x80\x80\x00\x80\x00\x80\x80\x80\x80" |
- "\x80\xc0\xc0\xc0\xff\x00\x00\x00\xff\x00\xff\xff\x00\x00\x00\xff" |
- "\xff\x00\xff\x00\xff\xff\xff\xff\xff\x7b\x1f\xb1\xc4\x00\x00\x00" |
- "\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\x00\x9a" |
- "\x9c\x18\x00\x00\x00\x17\x49\x44\x41\x54\x78\x01\x63\x98\x89\x0a" |
- "\x18\x50\xb9\x33\x47\xf9\xa8\x01\x32\xd4\xc2\x03\x00\x33\x84\x0d" |
- "\x02\x3a\x91\xeb\xa5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60" |
- "\x82"; |
- return WebKit::WebData(red_square, arraysize(red_square)); |
- } |
- return webkit_glue::WebKitClientImpl::loadResource(name); |
- } |
- |
- virtual WebKit::WebString defaultLocale() { |
- return ASCIIToUTF16("en-US"); |
- } |
- |
- virtual WebKit::WebStorageNamespace* createLocalStorageNamespace( |
- const WebKit::WebString& path, unsigned quota) { |
- // Enforce quota here, ignoring the value from the renderer as in Chrome. |
- return WebKit::WebStorageNamespace::createLocalStorageNamespace(path, |
- WebKit::WebStorageNamespace::m_localStorageQuota); |
- } |
- |
- 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) { |
- // The event is dispatched by the proxy. |
- } |
- |
- virtual WebKit::WebIndexedDatabase* indexedDatabase() { |
- return WebKit::WebIndexedDatabase::create(); |
- } |
- |
#if defined(OS_WIN) |
- void SetThemeEngine(WebKit::WebThemeEngine* engine) { |
- active_theme_engine_ = engine ? engine : WebKitClientImpl::themeEngine(); |
- } |
- |
- virtual WebKit::WebThemeEngine *themeEngine() { |
- return active_theme_engine_; |
- } |
+ // Ensure we pick up the default theme engine. |
+ SetThemeEngine(NULL); |
#endif |
+} |
- virtual WebKit::WebSharedWorkerRepository* sharedWorkerRepository() { |
- return NULL; |
- } |
+TestShellWebKitInit::~TestShellWebKitInit() { |
+ WebKit::shutdown(); |
+} |
- virtual WebKit::WebGraphicsContext3D* createGraphicsContext3D() { |
- return WebKit::WebGraphicsContext3D::createDefault(); |
+WebKit::WebClipboard* TestShellWebKitInit::clipboard() { |
+ // Mock out clipboard calls in layout test mode so that tests don't mess |
+ // with each other's copies/pastes when running in parallel. |
+ if (TestShell::layout_test_mode()) { |
+ return &mock_clipboard_; |
+ } else { |
+ return &real_clipboard_; |
} |
+} |
- private: |
- TestShellWebMimeRegistryImpl mime_registry_; |
- MockWebClipboardImpl mock_clipboard_; |
- webkit_glue::WebClipboardImpl real_clipboard_; |
- webkit_glue::WebFileSystemImpl file_system_; |
- ScopedTempDir appcache_dir_; |
- SimpleAppCacheSystem appcache_system_; |
- SimpleDatabaseSystem database_system_; |
- SimpleWebCookieJarImpl cookie_jar_; |
- |
-#if defined(OS_WIN) |
- WebKit::WebThemeEngine* active_theme_engine_; |
-#endif |
-}; |
- |
-#endif // WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_WEBKIT_INIT_H_ |
+WebKit::WebData TestShellWebKitInit::loadResource(const char* name) { |
+ if (!strcmp(name, "deleteButton")) { |
+ // Create a red 30x30 square. |
+ const char red_square[] = |
+ "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52" |
+ "\x00\x00\x00\x1e\x00\x00\x00\x1e\x04\x03\x00\x00\x00\xc9\x1e\xb3" |
+ "\x91\x00\x00\x00\x30\x50\x4c\x54\x45\x00\x00\x00\x80\x00\x00\x00" |
+ "\x80\x00\x80\x80\x00\x00\x00\x80\x80\x00\x80\x00\x80\x80\x80\x80" |
+ "\x80\xc0\xc0\xc0\xff\x00\x00\x00\xff\x00\xff\xff\x00\x00\x00\xff" |
+ "\xff\x00\xff\x00\xff\xff\xff\xff\xff\x7b\x1f\xb1\xc4\x00\x00\x00" |
+ "\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\x00\x9a" |
+ "\x9c\x18\x00\x00\x00\x17\x49\x44\x41\x54\x78\x01\x63\x98\x89\x0a" |
+ "\x18\x50\xb9\x33\x47\xf9\xa8\x01\x32\xd4\xc2\x03\x00\x33\x84\x0d" |
+ "\x02\x3a\x91\xeb\xa5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60" |
+ "\x82"; |
+ return WebKit::WebData(red_square, arraysize(red_square)); |
+ } |
+ return webkit_glue::WebKitClientImpl::loadResource(name); |
+} |