diff options
author | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-28 23:29:15 +0000 |
---|---|---|
committer | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-28 23:29:15 +0000 |
commit | dd49900aefff27c2fbbec1f0f0464a5c57bbad0f (patch) | |
tree | 9867a5f31d651f37b89ce92e1f3454e53a128a17 | |
parent | 469bc0332a0b291960e394f3413ea5adaae71a05 (diff) | |
download | chromium_src-dd49900aefff27c2fbbec1f0f0464a5c57bbad0f.zip chromium_src-dd49900aefff27c2fbbec1f0f0464a5c57bbad0f.tar.gz chromium_src-dd49900aefff27c2fbbec1f0f0464a5c57bbad0f.tar.bz2 |
Revert r4094; ui_tests failures in SelfDeletePluginInvokeInSynchronousMouseMove.
Review URL: http://codereview.chromium.org/8861
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4107 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/test/data/npapi/execute_script_delete_in_mouse_move.html | 39 | ||||
-rw-r--r-- | chrome/test/ui/npapi_uitest.cpp | 38 | ||||
-rw-r--r-- | webkit/glue/plugins/test/plugin_client.cc | 7 | ||||
-rw-r--r-- | webkit/glue/plugins/test/plugin_execute_script_delete_test.cc | 52 | ||||
-rw-r--r-- | webkit/glue/plugins/test/plugin_execute_script_delete_test.h | 6 | ||||
-rw-r--r-- | webkit/glue/webplugin_impl.cc | 10 |
6 files changed, 21 insertions, 131 deletions
diff --git a/chrome/test/data/npapi/execute_script_delete_in_mouse_move.html b/chrome/test/data/npapi/execute_script_delete_in_mouse_move.html deleted file mode 100644 index a82cde7..0000000 --- a/chrome/test/data/npapi/execute_script_delete_in_mouse_move.html +++ /dev/null @@ -1,39 +0,0 @@ -<html> - -<head> -<script src="npapi.js"></script> - -<script> -function DeletePluginWithinScript() { - var plugin_div = document.getElementById("PluginDiv"); - plugin_div.innerHTML = "Object Deleted"; - onSuccess("execute_script_delete_in_mouse_move", 1); -} -</script> -</head> - -<body> -<div id="statusPanel" style="border: 1px solid red; width: 100%"> -Test running.... -</div> - - -NPObject Proxy Test<p> - -Tests the case where a plugin instance is deleted in the context -of a synchronous mouse event. - -<DIV ID=PluginDiv> -<embed type="application/vnd.npapi-test" - src="foo" - name="execute_script_delete_in_mouse_move" - id="1" - mode="np_embed" -> -</DIV> -<script> - var height = document.body.offsetHeight; -</script> - -</body> -</html> diff --git a/chrome/test/ui/npapi_uitest.cpp b/chrome/test/ui/npapi_uitest.cpp index 58c6574..bce1497 100644 --- a/chrome/test/ui/npapi_uitest.cpp +++ b/chrome/test/ui/npapi_uitest.cpp @@ -279,40 +279,4 @@ TEST_F(NPAPIVisiblePluginTester, OpenPopupWindowWithPlugin) { WaitForFinish("plugin_popup_with_plugin_target", "1", url, kTestCompleteCookie, kTestCompleteSuccess, kShortWaitTimeout); -} - -// Tests if a plugin executing a self deleting script in the context of -// a synchronous mousemove works correctly -TEST_F(NPAPIVisiblePluginTester, SelfDeletePluginInvokeInSynchronousMouseMove) { - if (!UITest::in_process_plugins() && !UITest::in_process_renderer()) { - scoped_ptr<TabProxy> tab_proxy(GetActiveTab()); - HWND tab_window = NULL; - tab_proxy->GetHWND(&tab_window); - - EXPECT_TRUE(IsWindow(tab_window)); - - show_window_ = true; - std::wstring test_case = L"execute_script_delete_in_mouse_move.html"; - GURL url = GetTestUrl(L"npapi", test_case); - NavigateToURL(url); - - POINT cursor_position = {130, 130}; - ClientToScreen(tab_window, &cursor_position); - - double screen_width = ::GetSystemMetrics( SM_CXSCREEN ) - 1; - double screen_height = ::GetSystemMetrics( SM_CYSCREEN ) - 1; - double location_x = cursor_position.x * (65535.0f / screen_width); - double location_y = cursor_position.y * (65535.0f / screen_height); - - INPUT input_info = {0}; - input_info.type = INPUT_MOUSE; - input_info.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE; - input_info.mi.dx = static_cast<long>(location_x); - input_info.mi.dy = static_cast<long>(location_y); - ::SendInput(1, &input_info, sizeof(INPUT)); - - WaitForFinish("execute_script_delete_in_mouse_move", "1", url, - kTestCompleteCookie, kTestCompleteSuccess, - kShortWaitTimeout); - } -} +}
\ No newline at end of file diff --git a/webkit/glue/plugins/test/plugin_client.cc b/webkit/glue/plugins/test/plugin_client.cc index b0e7e91..868810e 100644 --- a/webkit/glue/plugins/test/plugin_client.cc +++ b/webkit/glue/plugins/test/plugin_client.cc @@ -102,7 +102,7 @@ NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, } else if (base::strcasecmp(argv[name_index], "execute_script_delete_in_paint") == 0) { new_test = new NPAPIClient::ExecuteScriptDeleteTest(instance, - NPAPIClient::PluginClient::HostFunctions(), argv[name_index]); + NPAPIClient::PluginClient::HostFunctions()); windowless_plugin = true; } else if (base::strcasecmp(argv[name_index], "getjavascripturl") == 0) { new_test = new NPAPIClient::ExecuteGetJavascriptUrlTest(instance, @@ -137,11 +137,6 @@ NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, "plugin_popup_with_plugin_target") == 0) { new_test = new NPAPIClient::ExecuteJavascriptPopupWindowTargetPluginTest( instance, NPAPIClient::PluginClient::HostFunctions()); - } else if (base::strcasecmp(argv[name_index], - "execute_script_delete_in_mouse_move") == 0) { - new_test = new NPAPIClient::ExecuteScriptDeleteTest(instance, - NPAPIClient::PluginClient::HostFunctions(), argv[name_index]); - windowless_plugin = true; } else { // If we don't have a test case for this, create a // generic one which basically never fails. diff --git a/webkit/glue/plugins/test/plugin_execute_script_delete_test.cc b/webkit/glue/plugins/test/plugin_execute_script_delete_test.cc index 3f1d0e1..7137ceb 100644 --- a/webkit/glue/plugins/test/plugin_execute_script_delete_test.cc +++ b/webkit/glue/plugins/test/plugin_execute_script_delete_test.cc @@ -8,47 +8,25 @@ namespace NPAPIClient { -ExecuteScriptDeleteTest::ExecuteScriptDeleteTest( - NPP id, NPNetscapeFuncs *host_functions, const std::string& test_name) - : PluginTest(id, host_functions), - test_name_(test_name) { +ExecuteScriptDeleteTest::ExecuteScriptDeleteTest(NPP id, NPNetscapeFuncs *host_functions) + : PluginTest(id, host_functions) { } int16 ExecuteScriptDeleteTest::HandleEvent(void* event) { - - NPNetscapeFuncs* browser = NPAPIClient::PluginClient::HostFunctions(); - - NPBool supports_windowless = 0; - NPError result = browser->getvalue(id(), NPNVSupportsWindowless, - &supports_windowless); - if ((result != NPERR_NO_ERROR) || (supports_windowless != TRUE)) { - SetError("Failed to read NPNVSupportsWindowless value"); - SignalTestCompleted(); - return PluginTest::HandleEvent(event); - } - NPEvent* np_event = reinterpret_cast<NPEvent*>(event); - if (WM_PAINT == np_event->event && - base::strcasecmp(test_name_.c_str(), - "execute_script_delete_in_paint") == 0) { - NPUTF8* urlString = "javascript:DeletePluginWithinScript()"; - NPUTF8* targetString = NULL; - browser->geturl(id(), urlString, targetString); - SignalTestCompleted(); - } else if (WM_MOUSEMOVE == np_event->event && - base::strcasecmp(test_name_.c_str(), - "execute_script_delete_in_mouse_move") == 0) { - std::string script = "javascript:DeletePluginWithinScript()"; - NPString script_string; - script_string.UTF8Characters = script.c_str(); - script_string.UTF8Length = - static_cast<unsigned int>(script.length()); - - NPObject *window_obj = NULL; - browser->getvalue(id(), NPNVWindowNPObject, &window_obj); - NPVariant result_var; - NPError result = browser->evaluate(id(), window_obj, - &script_string, &result_var); + if (WM_PAINT == np_event->event ) { + NPNetscapeFuncs* browser = NPAPIClient::PluginClient::HostFunctions(); + + NPBool supports_windowless = 0; + NPError result = browser->getvalue(id(), NPNVSupportsWindowless, + &supports_windowless); + if ((result != NPERR_NO_ERROR) || (supports_windowless != TRUE)) { + SetError("Failed to read NPNVSupportsWindowless value"); + } else { + NPUTF8* urlString = "javascript:DeletePluginWithinScript()"; + NPUTF8* targetString = NULL; + browser->geturl(id(), urlString, targetString); + } SignalTestCompleted(); } // If this test failed, then we'd have crashed by now. diff --git a/webkit/glue/plugins/test/plugin_execute_script_delete_test.h b/webkit/glue/plugins/test/plugin_execute_script_delete_test.h index 92a1d04..5266d6d 100644 --- a/webkit/glue/plugins/test/plugin_execute_script_delete_test.h +++ b/webkit/glue/plugins/test/plugin_execute_script_delete_test.h @@ -14,13 +14,9 @@ namespace NPAPIClient { class ExecuteScriptDeleteTest : public PluginTest { public: // Constructor. - ExecuteScriptDeleteTest(NPP id, NPNetscapeFuncs *host_functions, - const std::string& test_name); + ExecuteScriptDeleteTest(NPP id, NPNetscapeFuncs *host_functions); // NPAPI HandleEvent handler virtual int16 HandleEvent(void* event); - - private: - std::string test_name_; }; } // namespace NPAPIClient diff --git a/webkit/glue/webplugin_impl.cc b/webkit/glue/webplugin_impl.cc index 36d7fc6..496de7f 100644 --- a/webkit/glue/webplugin_impl.cc +++ b/webkit/glue/webplugin_impl.cc @@ -786,13 +786,9 @@ void WebPluginImpl::handleEvent(WebCore::Event* event) { void WebPluginImpl::handleMouseEvent(WebCore::MouseEvent* event) { #if defined(OS_WIN) DCHECK(parent()->isFrameView()); - // We cache the parent FrameView here as the plugin widget could be deleted - // in the call to HandleEvent. See http://b/issue?id=1362948 - WebCore::FrameView* parent_view = static_cast<WebCore::FrameView*>(parent()); - WebCore::IntPoint p = - parent_view->contentsToWindow(WebCore::IntPoint(event->pageX(), - event->pageY())); + static_cast<WebCore::FrameView*>(parent())->contentsToWindow( + WebCore::IntPoint(event->pageX(), event->pageY())); NPEvent np_event; np_event.lParam = static_cast<uint32>(MAKELPARAM(p.x(), p.y())); np_event.wParam = 0; @@ -871,7 +867,7 @@ void WebPluginImpl::handleMouseEvent(WebCore::MouseEvent* event) { // A windowless plugin can change the cursor in response to the WM_MOUSEMOVE // event. We need to reflect the changed cursor in the frame view as the // the mouse is moved in the boundaries of the windowless plugin. - parent_view->setCursor(WebCore::PlatformCursor(current_web_cursor)); + parent()->setCursor(WebCore::PlatformCursor(current_web_cursor)); #else NOTIMPLEMENTED(); #endif |