summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
Diffstat (limited to 'webkit')
-rw-r--r--webkit/glue/plugins/test/npapi_test_plugin.vcproj16
-rw-r--r--webkit/glue/plugins/test/plugin_client.cc15
-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);