diff options
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/plugins/test/npapi_test_plugin.vcproj | 16 | ||||
-rw-r--r-- | webkit/glue/plugins/test/plugin_client.cc | 15 | ||||
-rw-r--r-- | webkit/glue/plugins/test/plugin_windowless_test.cc (renamed from webkit/glue/plugins/test/plugin_execute_script_delete_test.cc) | 23 | ||||
-rw-r--r-- | webkit/glue/plugins/test/plugin_windowless_test.h (renamed from webkit/glue/plugins/test/plugin_execute_script_delete_test.h) | 10 |
4 files changed, 39 insertions, 25 deletions
diff --git a/webkit/glue/plugins/test/npapi_test_plugin.vcproj b/webkit/glue/plugins/test/npapi_test_plugin.vcproj index 426885d..5c5d95a 100644 --- a/webkit/glue/plugins/test/npapi_test_plugin.vcproj +++ b/webkit/glue/plugins/test/npapi_test_plugin.vcproj @@ -183,14 +183,6 @@ > </File> <File - RelativePath=".\plugin_execute_script_delete_test.cc" - > - </File> - <File - RelativePath=".\plugin_execute_script_delete_test.h" - > - </File> - <File RelativePath=".\plugin_get_javascript_url_test.cc" > </File> @@ -263,6 +255,14 @@ > </File> <File + RelativePath=".\plugin_windowless_test.cc" + > + </File> + <File + RelativePath=".\plugin_windowless_test.h" + > + </File> + <File RelativePath=".\resource.h" > </File> diff --git a/webkit/glue/plugins/test/plugin_client.cc b/webkit/glue/plugins/test/plugin_client.cc index 7b00e7c..b515779 100644 --- a/webkit/glue/plugins/test/plugin_client.cc +++ b/webkit/glue/plugins/test/plugin_client.cc @@ -6,7 +6,6 @@ #include "webkit/glue/plugins/test/plugin_client.h" #include "webkit/glue/plugins/test/plugin_arguments_test.h" #include "webkit/glue/plugins/test/plugin_delete_plugin_in_stream_test.h" -#include "webkit/glue/plugins/test/plugin_execute_script_delete_test.h" #include "webkit/glue/plugins/test/plugin_get_javascript_url_test.h" #include "webkit/glue/plugins/test/plugin_geturl_test.h" #include "webkit/glue/plugins/test/plugin_javascript_open_popup.h" @@ -15,6 +14,7 @@ #include "webkit/glue/plugins/test/plugin_npobject_lifetime_test.h" #include "webkit/glue/plugins/test/plugin_npobject_proxy_test.h" #include "webkit/glue/plugins/test/plugin_window_size_test.h" +#include "webkit/glue/plugins/test/plugin_windowless_test.h" #include "third_party/npapi/bindings/npapi.h" #include "third_party/npapi/bindings/npruntime.h" @@ -100,9 +100,11 @@ NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, } else if (base::strcasecmp(argv[name_index], "npobject_proxy") == 0) { new_test = new NPAPIClient::NPObjectProxyTest(instance, NPAPIClient::PluginClient::HostFunctions()); - } else if (base::strcasecmp(argv[name_index], - "execute_script_delete_in_paint") == 0) { - new_test = new NPAPIClient::ExecuteScriptDeleteTest(instance, + } else if ((base::strcasecmp(argv[name_index], + "execute_script_delete_in_paint") == 0) || + (base::strcasecmp(argv[name_index], + "execute_script_delete_in_mouse_move") == 0)) { + new_test = new NPAPIClient::WindowlessPluginTest(instance, NPAPIClient::PluginClient::HostFunctions(), argv[name_index]); windowless_plugin = true; } else if (base::strcasecmp(argv[name_index], "getjavascripturl") == 0) { @@ -138,11 +140,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 (base::strcasecmp(argv[name_index], "private") == 0) { new_test = new NPAPIClient::PrivateTest(instance, NPAPIClient::PluginClient::HostFunctions()); diff --git a/webkit/glue/plugins/test/plugin_execute_script_delete_test.cc b/webkit/glue/plugins/test/plugin_windowless_test.cc index 1087fc3..131102c 100644 --- a/webkit/glue/plugins/test/plugin_execute_script_delete_test.cc +++ b/webkit/glue/plugins/test/plugin_windowless_test.cc @@ -3,18 +3,18 @@ // found in the LICENSE file. #define STRSAFE_NO_DEPRECATE -#include "webkit/glue/plugins/test/plugin_execute_script_delete_test.h" +#include "webkit/glue/plugins/test/plugin_windowless_test.h" #include "webkit/glue/plugins/test/plugin_client.h" namespace NPAPIClient { -ExecuteScriptDeleteTest::ExecuteScriptDeleteTest( +WindowlessPluginTest::WindowlessPluginTest( NPP id, NPNetscapeFuncs *host_functions, const std::string& test_name) : PluginTest(id, host_functions), test_name_(test_name) { } -int16 ExecuteScriptDeleteTest::HandleEvent(void* event) { +int16 WindowlessPluginTest::HandleEvent(void* event) { NPNetscapeFuncs* browser = NPAPIClient::PluginClient::HostFunctions(); @@ -31,6 +31,23 @@ int16 ExecuteScriptDeleteTest::HandleEvent(void* event) { if (WM_PAINT == np_event->event && base::strcasecmp(test_name_.c_str(), "execute_script_delete_in_paint") == 0) { + HDC paint_dc = reinterpret_cast<HDC>(np_event->wParam); + if (paint_dc == NULL) { + SetError("Invalid Window DC passed to HandleEvent for WM_PAINT"); + SignalTestCompleted(); + return NPERR_GENERIC_ERROR; + } + + HRGN clipping_region = CreateRectRgn(0, 0, 0, 0); + if (!GetClipRgn(paint_dc, clipping_region)) { + SetError("No clipping region set in window DC"); + DeleteObject(clipping_region); + SignalTestCompleted(); + return NPERR_GENERIC_ERROR; + } + + DeleteObject(clipping_region); + NPUTF8* urlString = "javascript:DeletePluginWithinScript()"; NPUTF8* targetString = NULL; browser->geturl(id(), urlString, targetString); diff --git a/webkit/glue/plugins/test/plugin_execute_script_delete_test.h b/webkit/glue/plugins/test/plugin_windowless_test.h index 2830fa1..93f7cfc 100644 --- a/webkit/glue/plugins/test/plugin_execute_script_delete_test.h +++ b/webkit/glue/plugins/test/plugin_windowless_test.h @@ -9,13 +9,13 @@ namespace NPAPIClient { -// This class tests the case where a plugin instance is deleted by invoking -// a javascript function in the context of a paint event. -class ExecuteScriptDeleteTest : public PluginTest { +// This class contains a list of windowless plugin tests. Please add additional +// tests to this class. +class WindowlessPluginTest : public PluginTest { public: // Constructor. - ExecuteScriptDeleteTest(NPP id, NPNetscapeFuncs *host_functions, - const std::string& test_name); + WindowlessPluginTest(NPP id, NPNetscapeFuncs *host_functions, + const std::string& test_name); // NPAPI HandleEvent handler virtual int16 HandleEvent(void* event); |