Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "chrome/test/render_view_test.h" | 5 #include "chrome/test/render_view_test.h" |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/extension_function_dispatcher.h" | 7 #include "chrome/browser/extensions/extension_function_dispatcher.h" |
| 8 #include "chrome/common/extensions/extension.h" | 8 #include "chrome/common/extensions/extension.h" |
| 9 #include "chrome/common/native_web_keyboard_event.h" | 9 #include "chrome/common/native_web_keyboard_event.h" |
| 10 #include "chrome/common/render_messages.h" | 10 #include "chrome/common/render_messages.h" |
| 11 #include "chrome/common/renderer_preferences.h" | 11 #include "chrome/common/renderer_preferences.h" |
| 12 #include "chrome/renderer/extensions/event_bindings.h" | 12 #include "chrome/renderer/extensions/event_bindings.h" |
| 13 #include "chrome/renderer/extensions/extension_process_bindings.h" | 13 #include "chrome/renderer/extensions/extension_process_bindings.h" |
| 14 #include "chrome/renderer/extensions/js_only_v8_extensions.h" | 14 #include "chrome/renderer/extensions/js_only_v8_extensions.h" |
| 15 #include "chrome/renderer/extensions/renderer_extension_bindings.h" | 15 #include "chrome/renderer/extensions/renderer_extension_bindings.h" |
| 16 #include "chrome/renderer/renderer_main_platform_delegate.h" | 16 #include "chrome/renderer/renderer_main_platform_delegate.h" |
| 17 #include "webkit/api/public/WebFrame.h" | 17 #include "webkit/api/public/WebFrame.h" |
| 18 #include "webkit/api/public/WebInputEvent.h" | 18 #include "webkit/api/public/WebInputEvent.h" |
| 19 #include "webkit/api/public/WebKit.h" | 19 #include "webkit/api/public/WebKit.h" |
| 20 #include "webkit/api/public/WebScriptSource.h" | 20 #include "webkit/api/public/WebScriptSource.h" |
| 21 #include "webkit/api/public/WebURLRequest.h" | 21 #include "webkit/api/public/WebURLRequest.h" |
| 22 #include "webkit/glue/webview.h" | 22 #include "webkit/glue/webview.h" |
| 23 #include "webkit/glue/webkit_glue.h" | |
| 23 | 24 |
| 24 using WebKit::WebFrame; | 25 using WebKit::WebFrame; |
| 25 using WebKit::WebScriptSource; | 26 using WebKit::WebScriptSource; |
| 26 using WebKit::WebString; | 27 using WebKit::WebString; |
| 27 using WebKit::WebURLRequest; | 28 using WebKit::WebURLRequest; |
| 28 | 29 |
| 29 namespace { | 30 namespace { |
| 30 const int32 kRouteId = 5; | 31 const int32 kRouteId = 5; |
| 31 const int32 kOpenerId = 7; | 32 const int32 kOpenerId = 7; |
| 32 } // namespace | 33 } // namespace |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 61 #if defined(OS_WIN) | 62 #if defined(OS_WIN) |
| 62 command_line_.reset(new CommandLine(std::wstring())); | 63 command_line_.reset(new CommandLine(std::wstring())); |
| 63 #elif defined(OS_POSIX) | 64 #elif defined(OS_POSIX) |
| 64 command_line_.reset(new CommandLine(std::vector<std::string>())); | 65 command_line_.reset(new CommandLine(std::vector<std::string>())); |
| 65 #endif | 66 #endif |
| 66 params_.reset(new MainFunctionParams(*command_line_, *sandbox_init_wrapper_, | 67 params_.reset(new MainFunctionParams(*command_line_, *sandbox_init_wrapper_, |
| 67 NULL)); | 68 NULL)); |
| 68 platform_.reset(new RendererMainPlatformDelegate(*params_)); | 69 platform_.reset(new RendererMainPlatformDelegate(*params_)); |
| 69 platform_->PlatformInitialize(); | 70 platform_->PlatformInitialize(); |
| 70 | 71 |
| 72 // Setting flags and really doing anything with WebKit is fairly fragile and | |
| 73 // hacky, but this is the world we live in... | |
| 74 webkit_glue::SetJavaScriptFlags(L" --expose-gc"); | |
| 71 WebKit::initialize(&webkitclient_); | 75 WebKit::initialize(&webkitclient_); |
| 72 WebKit::registerExtension(BaseJsV8Extension::Get()); | 76 WebKit::registerExtension(BaseJsV8Extension::Get()); |
| 73 WebKit::registerExtension(JsonSchemaJsV8Extension::Get()); | 77 WebKit::registerExtension(JsonSchemaJsV8Extension::Get()); |
| 74 WebKit::registerExtension(EventBindings::Get()); | 78 WebKit::registerExtension(EventBindings::Get()); |
| 75 WebKit::registerExtension(ExtensionApiTestV8Extension::Get()); | 79 WebKit::registerExtension(ExtensionApiTestV8Extension::Get()); |
| 76 WebKit::registerExtension(ExtensionProcessBindings::Get()); | 80 WebKit::registerExtension(ExtensionProcessBindings::Get()); |
| 77 WebKit::registerExtension(RendererExtensionBindings::Get()); | 81 WebKit::registerExtension(RendererExtensionBindings::Get()); |
| 78 EventBindings::SetRenderThread(&render_thread_); | 82 EventBindings::SetRenderThread(&render_thread_); |
| 79 | 83 |
| 80 // TODO(aa): Should some of this go to some other inheriting class? | 84 // TODO(aa): Should some of this go to some other inheriting class? |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 93 | 97 |
| 94 // This needs to pass the mock render thread to the view. | 98 // This needs to pass the mock render thread to the view. |
| 95 view_ = RenderView::Create(&render_thread_, NULL, NULL, kOpenerId, | 99 view_ = RenderView::Create(&render_thread_, NULL, NULL, kOpenerId, |
| 96 RendererPreferences(), WebPreferences(), | 100 RendererPreferences(), WebPreferences(), |
| 97 new SharedRenderViewCounter(0), kRouteId); | 101 new SharedRenderViewCounter(0), kRouteId); |
| 98 | 102 |
| 99 // Attach a pseudo keyboard device to this object. | 103 // Attach a pseudo keyboard device to this object. |
| 100 mock_keyboard_.reset(new MockKeyboard()); | 104 mock_keyboard_.reset(new MockKeyboard()); |
| 101 } | 105 } |
| 102 void RenderViewTest::TearDown() { | 106 void RenderViewTest::TearDown() { |
| 107 // Try very hard to collect garbage before shutting down. | |
| 108 GetMainFrame()->collectGarbage(); | |
| 109 GetMainFrame()->collectGarbage(); | |
| 110 | |
| 103 render_thread_.SendCloseMessage(); | 111 render_thread_.SendCloseMessage(); |
| 104 | 112 |
| 105 // Run the loop so the release task from the renderwidget executes. | 113 // Run the loop so the release task from the renderwidget executes. |
| 106 ProcessPendingMessages(); | 114 ProcessPendingMessages(); |
|
darin (slow to review)
2009/09/25 19:43:33
i might be slightly better to call GC after this l
jorlow
2009/09/25 19:56:11
Not possible. GetMainThread() won't work at this
| |
| 107 | 115 |
| 108 EventBindings::SetRenderThread(NULL); | 116 EventBindings::SetRenderThread(NULL); |
| 109 | 117 |
| 110 view_ = NULL; | 118 view_ = NULL; |
| 111 | 119 |
| 112 mock_process_.reset(); | 120 mock_process_.reset(); |
| 113 | 121 |
| 114 // After resetting the view_ and mock_process_ we may get some new tasks | 122 // After resetting the view_ and mock_process_ we may get some new tasks |
| 115 // which need to be processed before shutting down WebKit | 123 // which need to be processed before shutting down WebKit |
| 116 // (http://crbug.com/21508). | 124 // (http://crbug.com/21508). |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 166 keyup_message->WriteData(reinterpret_cast<const char*>(&keyup_event), | 174 keyup_message->WriteData(reinterpret_cast<const char*>(&keyup_event), |
| 167 sizeof(WebKit::WebKeyboardEvent)); | 175 sizeof(WebKit::WebKeyboardEvent)); |
| 168 view_->OnHandleInputEvent(*keyup_message); | 176 view_->OnHandleInputEvent(*keyup_message); |
| 169 | 177 |
| 170 return length; | 178 return length; |
| 171 #else | 179 #else |
| 172 NOTIMPLEMENTED(); | 180 NOTIMPLEMENTED(); |
| 173 return L'\0'; | 181 return L'\0'; |
| 174 #endif | 182 #endif |
| 175 } | 183 } |
| OLD | NEW |