diff options
author | jnd@chromium.org <jnd@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-09 16:08:01 +0000 |
---|---|---|
committer | jnd@chromium.org <jnd@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-09 16:08:01 +0000 |
commit | 2233a372c11e86d3268a3bbcdd8f7f1d305243eb (patch) | |
tree | c79fcc5ad550557c7c4b2e7a3556a5c51636f29c /webkit | |
parent | 9aa5f3b97f4b388310e6edd4ca1a1db012dfd6b1 (diff) | |
download | chromium_src-2233a372c11e86d3268a3bbcdd8f7f1d305243eb.zip chromium_src-2233a372c11e86d3268a3bbcdd8f7f1d305243eb.tar.gz chromium_src-2233a372c11e86d3268a3bbcdd8f7f1d305243eb.tar.bz2 |
Implement new test logic in Chromium's TestNetscape Plugin to pass plugins/plugin-initiate-popup-window.html
BUG=48033
TEST=plugins/plugin-initiate-popup-window.html
Review URL: http://codereview.chromium.org/2815041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51966 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/tools/npapi_layout_test_plugin/PluginObject.cpp | 3 | ||||
-rw-r--r-- | webkit/tools/npapi_layout_test_plugin/PluginObject.h | 2 | ||||
-rw-r--r-- | webkit/tools/npapi_layout_test_plugin/main.cpp | 32 |
3 files changed, 36 insertions, 1 deletions
diff --git a/webkit/tools/npapi_layout_test_plugin/PluginObject.cpp b/webkit/tools/npapi_layout_test_plugin/PluginObject.cpp index 884a918..83a4fc4 100644 --- a/webkit/tools/npapi_layout_test_plugin/PluginObject.cpp +++ b/webkit/tools/npapi_layout_test_plugin/PluginObject.cpp @@ -988,6 +988,9 @@ static NPObject *pluginAllocate(NPP npp, NPClass *theClass) newInstance->testWindowOpen = false; newInstance->testKeyboardFocusForPlugins = false; + newInstance->evaluateScriptOnMouseDownOrKeyDown = NULL; + newInstance->mouseDownForEvaluateScript = false; + return (NPObject*)newInstance; } diff --git a/webkit/tools/npapi_layout_test_plugin/PluginObject.h b/webkit/tools/npapi_layout_test_plugin/PluginObject.h index 8cd63ef..ec684bd 100644 --- a/webkit/tools/npapi_layout_test_plugin/PluginObject.h +++ b/webkit/tools/npapi_layout_test_plugin/PluginObject.h @@ -39,6 +39,7 @@ typedef struct { NPBool testWindowOpen; NPBool testDocumentOpenInDestroyStream; NPBool testKeyboardFocusForPlugins; + NPBool mouseDownForEvaluateScript; char* onStreamLoad; char* onStreamDestroy; char* onURLNotify; @@ -46,6 +47,7 @@ typedef struct { char* firstHeaders; char* lastUrl; char* lastHeaders; + char* evaluateScriptOnMouseDownOrKeyDown; } PluginObject; extern NPClass *getPluginClass(void); diff --git a/webkit/tools/npapi_layout_test_plugin/main.cpp b/webkit/tools/npapi_layout_test_plugin/main.cpp index c061adb..3ebdada 100644 --- a/webkit/tools/npapi_layout_test_plugin/main.cpp +++ b/webkit/tools/npapi_layout_test_plugin/main.cpp @@ -141,8 +141,20 @@ NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc obj->testDocumentOpenInDestroyStream = true; } else if (strcasecmp(argn[i], "testwindowopen") == 0) { obj->testWindowOpen = true; - } else if (strcasecmp(argn[i], "src") == 0 && strstr(argv[i], "plugin-document-has-focus.pl")) + } else if (strcasecmp(argn[i], "src") == 0 && strstr(argv[i], "plugin-document-has-focus.pl")) { obj->testKeyboardFocusForPlugins = true; + } else if (strcasecmp(argn[i], "evaluatescript") == 0) { + char* script = argv[i]; + if (script == strstr(script, "mouse::")) { + obj->mouseDownForEvaluateScript = true; + obj->evaluateScriptOnMouseDownOrKeyDown = strdup(script + sizeof("mouse::") - 1); + } else if (script == strstr(script, "key::")) { + obj->evaluateScriptOnMouseDownOrKeyDown = strdup(script + sizeof("key::") - 1); + } + // When testing evaluate script on mouse-down or key-down, allow event logging. + if (obj->evaluateScriptOnMouseDownOrKeyDown) + obj->eventLogging = true; + } } instance->pdata = obj; @@ -288,6 +300,9 @@ int16_t NPP_HandleEvent(NPP instance, void *event) case WM_MBUTTONDOWN: case WM_RBUTTONDOWN: log(instance, "mouseDown at (%d, %d)", x, y); + if (obj->evaluateScriptOnMouseDownOrKeyDown && + obj->mouseDownForEvaluateScript) + executeScript(obj, obj->evaluateScriptOnMouseDownOrKeyDown); break; case WM_LBUTTONUP: case WM_MBUTTONUP: @@ -312,6 +327,9 @@ int16_t NPP_HandleEvent(NPP instance, void *event) break; case WM_KEYDOWN: log(instance, "keyDown '%c'", MapVirtualKey(evt->wParam, MAPVK_VK_TO_CHAR)); + if (obj->evaluateScriptOnMouseDownOrKeyDown && + !obj->mouseDownForEvaluateScript) + executeScript(obj, obj->evaluateScriptOnMouseDownOrKeyDown); break; case WM_SETCURSOR: break; @@ -334,6 +352,9 @@ int16_t NPP_HandleEvent(NPP instance, void *event) switch (evt->type) { case ButtonPress: log(instance, "mouseDown at (%d, %d)", bpress_evt->x, bpress_evt->y); + if (obj->evaluateScriptOnMouseDownOrKeyDown && + obj->mouseDownForEvaluateScript) + executeScript(obj, obj->evaluateScriptOnMouseDownOrKeyDown); break; case ButtonRelease: log(instance, "mouseUp at (%d, %d)", brelease_evt->x, brelease_evt->y); @@ -341,6 +362,9 @@ int16_t NPP_HandleEvent(NPP instance, void *event) case KeyPress: // TODO: extract key code log(instance, "NOTIMPLEMENTED: keyDown '%c'", ' '); + if (obj->evaluateScriptOnMouseDownOrKeyDown && + !obj->mouseDownForEvaluateScript) + executeScript(obj, obj->evaluateScriptOnMouseDownOrKeyDown); break; case KeyRelease: // TODO: extract key code @@ -382,6 +406,9 @@ int16_t NPP_HandleEvent(NPP instance, void *event) case mouseDown: GlobalToLocal(&pt); log(instance, "mouseDown at (%d, %d)", pt.h, pt.v); + if (obj->evaluateScriptOnMouseDownOrKeyDown && + obj->mouseDownForEvaluateScript) + executeScript(obj, obj->evaluateScriptOnMouseDownOrKeyDown); break; case mouseUp: GlobalToLocal(&pt); @@ -389,6 +416,9 @@ int16_t NPP_HandleEvent(NPP instance, void *event) break; case keyDown: log(instance, "keyDown '%c'", (char)(evt->message & 0xFF)); + if (obj->evaluateScriptOnMouseDownOrKeyDown && + !obj->mouseDownForEvaluateScript) + executeScript(obj, obj->evaluateScriptOnMouseDownOrKeyDown); break; case keyUp: log(instance, "keyUp '%c'", (char)(evt->message & 0xFF)); |