OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "webkit/support/webkit_support.h" | 5 #include "webkit/support/webkit_support.h" |
6 | 6 |
7 #include "base/at_exit.h" | 7 #include "base/at_exit.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/debug_util.h" | 9 #include "base/debug_util.h" |
10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 at_exit_manager_.reset(new base::AtExitManager); | 52 at_exit_manager_.reset(new base::AtExitManager); |
53 main_message_loop_.reset(new MessageLoopForUI); | 53 main_message_loop_.reset(new MessageLoopForUI); |
54 // TestWebKitClient must be instantiated after the MessageLoopForUI. | 54 // TestWebKitClient must be instantiated after the MessageLoopForUI. |
55 webkit_client_.reset(new TestWebKitClient); | 55 webkit_client_.reset(new TestWebKitClient); |
56 } | 56 } |
57 | 57 |
58 ~TestEnvironment() { | 58 ~TestEnvironment() { |
59 SimpleResourceLoaderBridge::Shutdown(); | 59 SimpleResourceLoaderBridge::Shutdown(); |
60 } | 60 } |
61 | 61 |
62 WebKit::WebKitClient* webkit_client() { return webkit_client_.get(); } | 62 TestWebKitClient* webkit_client() { return webkit_client_.get(); } |
63 | 63 |
64 #if defined(OS_WIN) | 64 #if defined(OS_WIN) |
65 void set_theme_engine(WebKit::WebThemeEngine* engine) { | 65 void set_theme_engine(WebKit::WebThemeEngine* engine) { |
66 DCHECK(webkit_client_ != 0); | 66 DCHECK(webkit_client_ != 0); |
67 webkit_client_->SetThemeEngine(engine); | 67 webkit_client_->SetThemeEngine(engine); |
68 } | 68 } |
69 | 69 |
70 WebKit::WebThemeEngine* theme_engine() { | 70 WebKit::WebThemeEngine* theme_engine() { |
71 return webkit_client_->themeEngine(); | 71 return webkit_client_->themeEngine(); |
72 } | 72 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 return basePath.Append(FILE_PATH_LITERAL("../..")); | 105 return basePath.Append(FILE_PATH_LITERAL("../..")); |
106 } | 106 } |
107 } | 107 } |
108 | 108 |
109 } // namespace | 109 } // namespace |
110 | 110 |
111 namespace webkit_support { | 111 namespace webkit_support { |
112 | 112 |
113 static TestEnvironment* test_environment; | 113 static TestEnvironment* test_environment; |
114 | 114 |
115 void SetUpTestEnvironment() { | 115 static void SetUpTestEnvironmentImpl(bool unit_test_mode) { |
116 SetUpTestEnvironment(false); | |
117 } | |
118 | |
119 void SetUpTestEnvironment(bool unit_test_mode) { | |
120 base::EnableTerminationOnHeapCorruption(); | 116 base::EnableTerminationOnHeapCorruption(); |
121 | 117 |
122 // Initialize the singleton CommandLine with fixed values. Some code refer to | 118 // Initialize the singleton CommandLine with fixed values. Some code refer to |
123 // CommandLine::ForCurrentProcess(). We don't use the actual command-line | 119 // CommandLine::ForCurrentProcess(). We don't use the actual command-line |
124 // arguments of DRT to avoid unexpected behavior change. | 120 // arguments of DRT to avoid unexpected behavior change. |
125 // | 121 // |
126 // webkit/glue/webmediaplayer_impl.cc checks --enable-openmax. | 122 // webkit/glue/webmediaplayer_impl.cc checks --enable-openmax. |
127 // webkit/glue/plugin/plugin_list_posix.cc checks --debug-plugin-loading. | 123 // webkit/glue/plugin/plugin_list_posix.cc checks --debug-plugin-loading. |
128 // webkit/glue/plugin/plugin_list_win.cc checks --old-wmp. | 124 // webkit/glue/plugin/plugin_list_win.cc checks --old-wmp. |
129 // If DRT needs these flags, specify them in the following kFixedArguments. | 125 // If DRT needs these flags, specify them in the following kFixedArguments. |
130 const char* kFixedArguments[] = {"DumpRenderTree"}; | 126 const char* kFixedArguments[] = {"DumpRenderTree"}; |
131 CommandLine::Init(arraysize(kFixedArguments), kFixedArguments); | 127 CommandLine::Init(arraysize(kFixedArguments), kFixedArguments); |
132 | 128 |
133 BeforeInitialize(); | 129 webkit_support::BeforeInitialize(); |
134 test_environment = new TestEnvironment(unit_test_mode); | 130 webkit_support::test_environment = new TestEnvironment(unit_test_mode); |
135 AfterInitialize(); | 131 webkit_support::AfterInitialize(); |
136 if (!unit_test_mode) { | 132 if (!unit_test_mode) { |
137 // Load ICU data tables. This has to run after TestEnvironment is created | 133 // Load ICU data tables. This has to run after TestEnvironment is created |
138 // because on Linux, we need base::AtExitManager. | 134 // because on Linux, we need base::AtExitManager. |
139 icu_util::Initialize(); | 135 icu_util::Initialize(); |
140 } | 136 } |
141 } | 137 } |
142 | 138 |
| 139 void SetUpTestEnvironment(bool unit_test_mode) { |
| 140 SetUpTestEnvironment(); |
| 141 } |
| 142 |
| 143 void SetUpTestEnvironment() { |
| 144 SetUpTestEnvironmentImpl(false); |
| 145 } |
| 146 |
| 147 void SetUpTestEnvironmentForUnitTests() { |
| 148 SetUpTestEnvironmentImpl(true); |
| 149 } |
| 150 |
143 void TearDownTestEnvironment() { | 151 void TearDownTestEnvironment() { |
144 // Flush any remaining messages before we kill ourselves. | 152 // Flush any remaining messages before we kill ourselves. |
145 // http://code.google.com/p/chromium/issues/detail?id=9500 | 153 // http://code.google.com/p/chromium/issues/detail?id=9500 |
146 MessageLoop::current()->RunAllPending(); | 154 MessageLoop::current()->RunAllPending(); |
147 | 155 |
148 BeforeShutdown(); | 156 BeforeShutdown(); |
149 WebKit::shutdown(); | 157 WebKit::shutdown(); |
150 delete test_environment; | 158 delete test_environment; |
151 test_environment = NULL; | 159 test_environment = NULL; |
152 AfterShutdown(); | 160 AfterShutdown(); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 WebKit::WebApplicationCacheHost* CreateApplicationCacheHost( | 219 WebKit::WebApplicationCacheHost* CreateApplicationCacheHost( |
212 WebFrame*, WebKit::WebApplicationCacheHostClient* client) { | 220 WebFrame*, WebKit::WebApplicationCacheHostClient* client) { |
213 return SimpleAppCacheSystem::CreateApplicationCacheHost(client); | 221 return SimpleAppCacheSystem::CreateApplicationCacheHost(client); |
214 } | 222 } |
215 | 223 |
216 WebKit::WebString GetWebKitRootDir() { | 224 WebKit::WebString GetWebKitRootDir() { |
217 FilePath path = GetWebKitRootDirFilePath(); | 225 FilePath path = GetWebKitRootDirFilePath(); |
218 return WebKit::WebString::fromUTF8(WideToUTF8(path.ToWStringHack()).c_str()); | 226 return WebKit::WebString::fromUTF8(WideToUTF8(path.ToWStringHack()).c_str()); |
219 } | 227 } |
220 | 228 |
| 229 void RegisterMockedURL(const WebKit::WebURL& url, |
| 230 const WebKit::WebURLResponse& response, |
| 231 const WebKit::WebString& file_path) { |
| 232 test_environment->webkit_client()->url_loader_factory()-> |
| 233 RegisterURL(url, response, file_path); |
| 234 } |
| 235 |
| 236 void UnregisterMockedURL(const WebKit::WebURL& url) { |
| 237 test_environment->webkit_client()->url_loader_factory()->UnregisterURL(url); |
| 238 } |
| 239 |
| 240 void UnregisterAllMockedURLs() { |
| 241 test_environment->webkit_client()->url_loader_factory()->UnregisterAllURLs(); |
| 242 } |
| 243 |
| 244 void ServeAsynchronousMockedRequests() { |
| 245 test_environment->webkit_client()->url_loader_factory()-> |
| 246 ServeAsynchronousRequests(); |
| 247 } |
| 248 |
221 // Wrapper for debug_util | 249 // Wrapper for debug_util |
222 bool BeingDebugged() { | 250 bool BeingDebugged() { |
223 return DebugUtil::BeingDebugged(); | 251 return DebugUtil::BeingDebugged(); |
224 } | 252 } |
225 | 253 |
226 // Wrappers for MessageLoop | 254 // Wrappers for MessageLoop |
227 | 255 |
228 void RunMessageLoop() { | 256 void RunMessageLoop() { |
229 MessageLoop::current()->Run(); | 257 MessageLoop::current()->Run(); |
230 } | 258 } |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 } | 363 } |
336 | 364 |
337 WebKit::WebThemeEngine* GetThemeEngine() { | 365 WebKit::WebThemeEngine* GetThemeEngine() { |
338 DCHECK(test_environment); | 366 DCHECK(test_environment); |
339 return test_environment->theme_engine(); | 367 return test_environment->theme_engine(); |
340 } | 368 } |
341 | 369 |
342 #endif | 370 #endif |
343 | 371 |
344 } // namespace webkit_support | 372 } // namespace webkit_support |
OLD | NEW |