diff options
author | dcheng <dcheng@chromium.org> | 2015-12-02 18:46:41 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-03 02:47:19 +0000 |
commit | 0d93c1a79b3c4cc3b633e9f6e1fbae6cf1611f64 (patch) | |
tree | 6813cfb43077ef6801dbc9e68abb9d67a2703dd5 | |
parent | db38f0f9b20d50863d9520294065b7307aa633e7 (diff) | |
download | chromium_src-0d93c1a79b3c4cc3b633e9f6e1fbae6cf1611f64.zip chromium_src-0d93c1a79b3c4cc3b633e9f6e1fbae6cf1611f64.tar.gz chromium_src-0d93c1a79b3c4cc3b633e9f6e1fbae6cf1611f64.tar.bz2 |
Implement a basic PPAPI plugin for Blink layout tests.
The plugin is automatically registered in layout tests using the
MIME type application/x-blink-test-plugin. Several layout tests
have also been migrated to use the new plugin.
Implementing the plugin also revealed a bug in PPAPI and the
layout test runner:
- Retrieving the key code via PPAPI always returned KeyA on Mac.
- The layout test runner explicitly set DYLD_FRAMEWORK_PATH,
making it hard to load the plugin from the right location.
BUG=474535
Review URL: https://codereview.chromium.org/1480303002
Cr-Commit-Position: refs/heads/master@{#362872}
32 files changed, 391 insertions, 186 deletions
diff --git a/content/content_shell.gypi b/content/content_shell.gypi index 07769f4..9462cc4 100644 --- a/content/content_shell.gypi +++ b/content/content_shell.gypi @@ -62,6 +62,7 @@ '../media/media.gyp:media', '../net/net.gyp:net', '../net/net.gyp:net_resources', + '../ppapi/ppapi_internal.gyp:blink_test_plugin', '../skia/skia.gyp:skia', '../storage/storage_browser.gyp:storage', '../third_party/WebKit/public/blink.gyp:blink', @@ -735,6 +736,14 @@ ], 'copies': [ { + # PPAPI test plugins are loaded relative to DIR_MODULE. On OS X, + # that corresponds to Content Shell Framework.framework. + 'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)', + 'files': [ + '<(PRODUCT_DIR)/blink_test_plugin.plugin', + ], + }, + { 'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Resources', 'files': [ '<(PRODUCT_DIR)/crash_inspector', diff --git a/content/public/test/ppapi_test_utils.cc b/content/public/test/ppapi_test_utils.cc index 0c9e545..6078594 100644 --- a/content/public/test/ppapi_test_utils.cc +++ b/content/public/test/ppapi_test_utils.cc @@ -18,7 +18,8 @@ namespace { bool RegisterPlugin( base::CommandLine* command_line, const base::FilePath::StringType& library_name, - const base::FilePath::StringType& extra_registration_parameters) { + const base::FilePath::StringType& extra_registration_parameters, + const base::FilePath::StringType& mime_type) { base::FilePath plugin_dir; if (!PathService::Get(base::DIR_MODULE, &plugin_dir)) return false; @@ -30,12 +31,22 @@ bool RegisterPlugin( return false; base::FilePath::StringType pepper_plugin = plugin_path.value(); pepper_plugin.append(extra_registration_parameters); - pepper_plugin.append(FILE_PATH_LITERAL(";application/x-ppapi-tests")); + pepper_plugin.append(FILE_PATH_LITERAL(";")); + pepper_plugin.append(mime_type); command_line->AppendSwitchNative(switches::kRegisterPepperPlugins, pepper_plugin); return true; } +bool RegisterPluginWithDefaultMimeType( + base::CommandLine* command_line, + const base::FilePath::StringType& library_name, + const base::FilePath::StringType& extra_registration_parameters) { + return RegisterPlugin(command_line, library_name, + extra_registration_parameters, + FILE_PATH_LITERAL("application/x-ppapi-tests")); +} + } // namespace bool RegisterTestPlugin(base::CommandLine* command_line) { @@ -53,14 +64,32 @@ bool RegisterTestPluginWithExtraParameters( #elif defined(OS_POSIX) base::FilePath::StringType plugin_library = "libppapi_tests.so"; #endif - return RegisterPlugin(command_line, plugin_library, - extra_registration_parameters); + return RegisterPluginWithDefaultMimeType(command_line, plugin_library, + extra_registration_parameters); } bool RegisterPowerSaverTestPlugin(base::CommandLine* command_line) { base::FilePath::StringType library_name = base::FilePath::FromUTF8Unsafe(ppapi::kPowerSaverTestPluginName).value(); - return RegisterPlugin(command_line, library_name, FILE_PATH_LITERAL("")); + return RegisterPluginWithDefaultMimeType(command_line, library_name, + FILE_PATH_LITERAL("")); } +bool RegisterBlinkTestPlugin(base::CommandLine* command_line) { +#if defined(OS_WIN) + static const base::FilePath::CharType kPluginLibrary[] = + L"blink_test_plugin.dll"; +#elif defined(OS_MACOSX) + static const base::FilePath::CharType kPluginLibrary[] = + "blink_test_plugin.plugin"; +#elif defined(OS_POSIX) + static const base::FilePath::CharType kPluginLibrary[] = + "libblink_test_plugin.so"; +#endif + // #name#description#version + static const base::FilePath::CharType kExtraParameters[] = + FILE_PATH_LITERAL("#Blink Test Plugin#Interesting description.#0.8"); + return RegisterPlugin(command_line, kPluginLibrary, kExtraParameters, + FILE_PATH_LITERAL("application/x-blink-test-plugin")); +} } // namespace ppapi diff --git a/content/public/test/ppapi_test_utils.h b/content/public/test/ppapi_test_utils.h index 1341840..103e0e0 100644 --- a/content/public/test/ppapi_test_utils.h +++ b/content/public/test/ppapi_test_utils.h @@ -32,6 +32,10 @@ bool RegisterTestPluginWithExtraParameters( bool RegisterPowerSaverTestPlugin(base::CommandLine* command_line) WARN_UNUSED_RESULT; +// Registers the Blink test plugin to application/x-blink-test-plugin. +bool RegisterBlinkTestPlugin(base::CommandLine* command_line) + WARN_UNUSED_RESULT; + } // namespace ppapi #endif // CONTENT_PUBLIC_TEST_PPAPI_TEST_UTILS_H_ diff --git a/content/renderer/pepper/event_conversion.cc b/content/renderer/pepper/event_conversion.cc index cc65808..34c72c4 100644 --- a/content/renderer/pepper/event_conversion.cc +++ b/content/renderer/pepper/event_conversion.cc @@ -135,14 +135,8 @@ void AppendKeyEvent(const WebInputEvent& event, InputEventData result = GetEventWithCommonFieldsAndType(event); result.event_modifiers = key_event.modifiers; result.key_code = key_event.windowsKeyCode; -#if defined(OS_MACOSX) - // Workaround for |domCode| not being set on OS X. crbug.com/493833 - result.code = ui::KeycodeConverter::DomCodeToCodeString( - ui::KeycodeConverter::NativeKeycodeToDomCode(key_event.nativeKeyCode)); -#else result.code = ui::KeycodeConverter::DomCodeToCodeString( static_cast<ui::DomCode>(key_event.domCode)); -#endif result_events->push_back(result); } diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn index 58fa350..c07b215 100644 --- a/content/shell/BUILD.gn +++ b/content/shell/BUILD.gn @@ -237,7 +237,10 @@ static_library("content_shell_lib") { #'copy_test_netscape_plugin', TODO(GYP) ] if (enable_plugins) { - deps += [ "//content/ppapi_plugin" ] + deps += [ + "//content/ppapi_plugin", + "//ppapi:blink_test_plugin", + ] } if (is_win) { diff --git a/content/shell/app/shell_main_delegate.cc b/content/shell/app/shell_main_delegate.cc index bc1be22..fa6993b 100644 --- a/content/shell/app/shell_main_delegate.cc +++ b/content/shell/app/shell_main_delegate.cc @@ -20,6 +20,7 @@ #include "content/public/common/content_switches.h" #include "content/public/common/url_constants.h" #include "content/public/test/layouttest_support.h" +#include "content/public/test/ppapi_test_utils.h" #include "content/shell/app/shell_crash_reporter_client.h" #include "content/shell/browser/layout_test/layout_test_browser_main.h" #include "content/shell/browser/layout_test/layout_test_content_browser_client.h" @@ -120,6 +121,9 @@ ShellMainDelegate::~ShellMainDelegate() { bool ShellMainDelegate::BasicStartupComplete(int* exit_code) { base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); + int dummy; + if (!exit_code) + exit_code = &dummy; #if defined(OS_WIN) // Enable trace control and transport through event tracing for Windows. @@ -141,8 +145,7 @@ bool ShellMainDelegate::BasicStartupComplete(int* exit_code) { // continue and try to load the fonts in BlinkTestPlatformInitialize // below, and then try to bring up the rest of the content module. if (!test_runner::CheckLayoutSystemDeps()) { - if (exit_code) - *exit_code = 1; + *exit_code = 1; return true; } } @@ -150,6 +153,12 @@ bool ShellMainDelegate::BasicStartupComplete(int* exit_code) { if (command_line.HasSwitch(switches::kRunLayoutTest)) { EnableBrowserLayoutTestMode(); +#if defined(ENABLE_PLUGINS) + if (!ppapi::RegisterBlinkTestPlugin(&command_line)) { + *exit_code = 1; + return true; + } +#endif command_line.AppendSwitch(switches::kProcessPerTab); command_line.AppendSwitch(switches::kEnableLogging); command_line.AppendSwitch(switches::kAllowFileAccessFromFiles); @@ -198,8 +207,7 @@ bool ShellMainDelegate::BasicStartupComplete(int* exit_code) { #endif if (!test_runner::BlinkTestPlatformInitialize()) { - if (exit_code) - *exit_code = 1; + *exit_code = 1; return true; } } diff --git a/content/shell/browser/shell_plugin_service_filter.cc b/content/shell/browser/shell_plugin_service_filter.cc index f9cd7b9..204bb99 100644 --- a/content/shell/browser/shell_plugin_service_filter.cc +++ b/content/shell/browser/shell_plugin_service_filter.cc @@ -20,7 +20,8 @@ bool ShellPluginServiceFilter::IsPluginAvailable( const GURL& url, const GURL& policy_url, WebPluginInfo* plugin) { - return plugin->name == base::ASCIIToUTF16("WebKit Test PlugIn"); + return plugin->name == base::ASCIIToUTF16("Blink Test Plugin") || + plugin->name == base::ASCIIToUTF16("WebKit Test PlugIn"); } bool ShellPluginServiceFilter::CanLoadPlugin(int render_process_id, diff --git a/ppapi/BUILD.gn b/ppapi/BUILD.gn index dc76515..818736e 100644 --- a/ppapi/BUILD.gn +++ b/ppapi/BUILD.gn @@ -70,6 +70,18 @@ shared_library("power_saver_test_plugin") { ] } +shared_library("blink_test_plugin") { + sources = [ + "tests/blink_test_plugin.cc", + ] + + deps = [ + "//build/config/sanitizers:deps", + "//ppapi/cpp", + "//ppapi/shared_impl", + ] +} + test("ppapi_unittests") { sources = [ "host/resource_message_filter_unittest.cc", diff --git a/ppapi/ppapi_tests.gypi b/ppapi/ppapi_tests.gypi index 830933e..e0c21fb 100644 --- a/ppapi/ppapi_tests.gypi +++ b/ppapi/ppapi_tests.gypi @@ -101,6 +101,25 @@ ], }, { + # GN version: //ppapi:blink_test_plugin + 'target_name': 'blink_test_plugin', + 'type': 'loadable_module', + 'sources': [ + 'tests/blink_test_plugin.cc', + ], + 'dependencies': [ + 'ppapi.gyp:ppapi_cpp', + 'ppapi_internal.gyp:ppapi_shared', + ], + 'conditions': [ + ['OS=="mac"', { + 'mac_bundle': 1, + 'product_name': 'blink_test_plugin', + 'product_extension': 'plugin', + }], + ], + }, + { # GN version: //ppapi/proxy:test_support # //ppapi/shared_impl:test_support 'target_name': 'ppapi_unittest_shared', diff --git a/ppapi/tests/blink_test_plugin.cc b/ppapi/tests/blink_test_plugin.cc new file mode 100644 index 0000000..91de50b --- /dev/null +++ b/ppapi/tests/blink_test_plugin.cc @@ -0,0 +1,179 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <sstream> +#include <utility> + +#include "ppapi/cpp/completion_callback.h" +#include "ppapi/cpp/graphics_2d.h" +#include "ppapi/cpp/image_data.h" +#include "ppapi/cpp/input_event.h" +#include "ppapi/cpp/instance.h" +#include "ppapi/cpp/module.h" + +namespace { + +void DummyCompletionCallback(void*, int32_t) {} + +// This is a simple C++ Pepper plugin for Blink layout tests. +// +// Layout tests can instantiate this plugin by requesting the mime type +// application/x-blink-test-plugin. When possible, tests should use the +// startAfterLoadAndFinish() helper in resources/plugin.js to perform work +// after the plugin has loaded. +// +// The plugin also exposes several other features for testing convenience: +// - On first paint, the plugin posts a 'loaded' message to its owner element. +// - On subsequent paints, the plugin posts a 'painted' message instead. +// - Keyboard and mouse input events are logged to the console. +class BlinkTestInstance : public pp::Instance { + public: + explicit BlinkTestInstance(PP_Instance instance) + : pp::Instance(instance), first_paint_(true) {} + ~BlinkTestInstance() override {} + + bool Init(uint32_t argc, const char* argn[], const char* argv[]) { + return RequestFilteringInputEvents(PP_INPUTEVENT_CLASS_MOUSE | + PP_INPUTEVENT_CLASS_KEYBOARD) == PP_OK; + } + + void DidChangeView(const pp::View& view) override { + view_ = view; + device_context_ = pp::Graphics2D(this, view_.GetRect().size(), true); + if (!BindGraphics(device_context_)) + return; + + // Since we draw a static image, we only need to make a new frame when + // the device is initialized or the view size changes. + Paint(); + } + + void DidChangeFocus(bool has_focus) override { + LogMessage("DidChangeFocus(", has_focus, ")"); + } + + bool HandleInputEvent(const pp::InputEvent& event) override { + switch (event.GetType()) { + case PP_INPUTEVENT_TYPE_MOUSEDOWN: + LogMouseEvent("Down", event); + break; + case PP_INPUTEVENT_TYPE_MOUSEUP: + LogMouseEvent("Up", event); + break; + case PP_INPUTEVENT_TYPE_KEYDOWN: + LogKeyboardEvent("Down", event); + break; + case PP_INPUTEVENT_TYPE_KEYUP: + LogKeyboardEvent("Up", event); + break; + case PP_INPUTEVENT_TYPE_MOUSEMOVE: + case PP_INPUTEVENT_TYPE_MOUSEENTER: + case PP_INPUTEVENT_TYPE_MOUSELEAVE: + case PP_INPUTEVENT_TYPE_RAWKEYDOWN: + case PP_INPUTEVENT_TYPE_CHAR: + // Just swallow these events without any logging. + return true; + default: + LogMessage("Unexpected input event with type = ", event.GetType()); + return false; + } + return true; + } + + private: + void Paint() { + pp::ImageData image(this, PP_IMAGEDATAFORMAT_BGRA_PREMUL, + view_.GetRect().size(), true); + if (image.is_null()) + return; + + // Draw blue and green checkerboard pattern to show "interesting" keyframe. + const int kSquareSizePixels = 8; + for (int y = 0; y < view_.GetRect().size().height(); ++y) { + for (int x = 0; x < view_.GetRect().size().width(); ++x) { + int x_square = x / kSquareSizePixels; + int y_square = y / kSquareSizePixels; + uint32_t color = ((x_square + y_square) % 2) ? 0xFF0000FF : 0xFF00FF00; + *image.GetAddr32(pp::Point(x, y)) = color; + } + } + + device_context_.ReplaceContents(&image); + device_context_.Flush( + pp::CompletionCallback(&DummyCompletionCallback, nullptr)); + + // TODO(dcheng): In theory, this should wait for the flush to complete + // before claiming that it's painted. In practice, this is difficult: when + // running layout tests, a frame is typically only generated at the end of + // the layout test. Sending the completion message in the callback results + // in a deadlock: the test wants to wait for the plugin to paint, but the + // plugin won't paint until the test completes. This seems to be Good + // Enoughâ„¢ for now. + if (first_paint_) { + first_paint_ = false; + PostMessage(pp::Var("loaded")); + } else { + PostMessage(pp::Var("painted")); + } + } + + void LogMouseEvent(const std::string& type, const pp::InputEvent& event) { + pp::MouseInputEvent mouse_event(event); + pp::Point mouse_position = mouse_event.GetPosition(); + LogMessage("Mouse", type, " at (", mouse_position.x(), ",", + mouse_position.y(), ")"); + } + + void LogKeyboardEvent(const std::string& type, const pp::InputEvent& event) { + pp::KeyboardInputEvent keyboard_event(event); + LogMessage("Key", type, " '", keyboard_event.GetCode().AsString(), "'"); + } + + // Template magic to cover the lack of base::StringPrintf. + template <typename... Args> + void LogMessage(const Args&... args) { + std::ostringstream ss; + ss << std::boolalpha; + LogMessageHelper(&ss, args...); + } + + template <typename Arg, typename... Args> + void LogMessageHelper(std::ostringstream* os, + const Arg& arg, + const Args&... args) { + *os << arg; + LogMessageHelper(os, args...); + } + + template <typename Arg> + void LogMessageHelper(std::ostringstream* os, const Arg& arg) { + *os << arg; + LogToConsoleWithSource(PP_LOGLEVEL_LOG, pp::Var("Blink Test Plugin"), + pp::Var(os->str())); + } + + bool first_paint_; + pp::View view_; + pp::Graphics2D device_context_; +}; + +class BlinkTestModule : public pp::Module { + public: + BlinkTestModule() {} + virtual ~BlinkTestModule() {} + + virtual pp::Instance* CreateInstance(PP_Instance instance) { + return new BlinkTestInstance(instance); + } +}; + +} // namespace + +namespace pp { + +Module* CreateModule() { + return new BlinkTestModule(); +} + +} // namespace pp diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 0f72cea..c997728 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations @@ -1103,6 +1103,10 @@ crbug.com/509025 [ Mac10.10 ] fast/text/large-text-composed-char.html [ Failure crbug.com/509025 [ Mac10.10 ] http/tests/navigation/navigation-redirect-schedule-crash.html [ Failure ] crbug.com/509025 [ Mac10.10 ] http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked.html [ Failure ] +# Tests that need to be rebaselined after switching to the PPAPI test plugin. +crbug.com/474535 plugins/mouse-click-plugin-clears-selection.html [ NeedsRebaseline ] +crbug.com/474535 plugins/webview-plugin-type-change.html [ NeedsRebaseline ] + #crbug.com/509025 [ Mac10.10 ] fast/text/emphasis.html [ Failure ] crbug.com/545140 [ Mac10.10 ] fast/encoding/denormalised-voiced-japanese-chars.html [ Failure ] @@ -1123,7 +1127,6 @@ crbug.com/464736 http/tests/xmlhttprequest/ontimeout-event-override-after-failur crbug.com/532469 http/tests/security/cross-frame-access-custom.html [ NeedsManualRebaseline ] crbug.com/521730 [ Win10 ] compositing/plugins/invalidate_rect.html [ Crash ] -crbug.com/521730 [ Win10 ] plugins/mouse-click-plugin-clears-selection.html [ Crash ] crbug.com/521730 [ Win10 ] plugins/windowless_plugin_paint_test.html [ Crash ] crbug.com/521730 [ Win10 ] fast/text/shaping/same-script-different-lang.html [ Failure ] diff --git a/third_party/WebKit/LayoutTests/fast/replaced/invalid-object-with-fallback.html b/third_party/WebKit/LayoutTests/fast/replaced/invalid-object-with-fallback.html index b7c3c5c..ab1ab1c 100644 --- a/third_party/WebKit/LayoutTests/fast/replaced/invalid-object-with-fallback.html +++ b/third_party/WebKit/LayoutTests/fast/replaced/invalid-object-with-fallback.html @@ -1,8 +1,10 @@ <html> <head> <script> - if (window.testRunner) + if (window.testRunner) { testRunner.dumpAsText(); + testRunner.waitUntilDone(); + } function debug(str) { document.getElementById('console').innerHTML += str + "<br>"; @@ -12,17 +14,15 @@ <body> <object> <p>This test verifies that an <embed> tag is rendered along with other fallback content when an <object> fails to load. On success, you should see this text, followed by 'PASS'.</p> - <embed name="plugin" type="application/x-webkit-test-netscape"> + <embed name="plugin" type="application/x-blink-test-plugin"> </object> <div id="console"></div> <script> - if (window.internals) - internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(); - var plugin = document.plugin; - if (plugin && plugin.getURL) - debug("PASS"); - else - debug("FAIL"); + document.querySelector("embed").addEventListener("message", function (message) { + debug("PASS"); + if (window.testRunner) + testRunner.notifyDone(); + }); </script> </body> </html> diff --git a/third_party/WebKit/LayoutTests/platform/linux/plugins/keyboard-events-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/plugins/keyboard-events-expected.txt deleted file mode 100644 index bf544a8..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/plugins/keyboard-events-expected.txt +++ /dev/null @@ -1,11 +0,0 @@ -CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 18: PLUGIN: mouseDown at (12, 12) -CONSOLE MESSAGE: line 19: PLUGIN: mouseUp at (12, 12) -CONSOLE MESSAGE: line 22: PLUGIN: keyDown 'a' -CONSOLE MESSAGE: line 22: PLUGIN: keyUp 'a' -CONSOLE MESSAGE: line 23: PLUGIN: keyDown 'b' -CONSOLE MESSAGE: line 23: PLUGIN: keyUp 'b' -CONSOLE MESSAGE: line 24: PLUGIN: keyDown 'c' -CONSOLE MESSAGE: line 24: PLUGIN: keyUp 'c' - -This test checks if a plugin can receive keyboard events sent from eventSender. This is a test for Bug 34936. diff --git a/third_party/WebKit/LayoutTests/platform/linux/plugins/mouse-events-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/plugins/mouse-events-expected.txt deleted file mode 100644 index 72fd68c..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/plugins/mouse-events-expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 18: PLUGIN: mouseDown at (12, 12) -CONSOLE MESSAGE: line 19: PLUGIN: mouseUp at (12, 12) -CONSOLE MESSAGE: line 21: PLUGIN: mouseDown at (22, 22) -CONSOLE MESSAGE: line 23: PLUGIN: mouseUp at (32, 22) - -Test for bug 11517: Flash clicks/interactivity not working properly. diff --git a/third_party/WebKit/LayoutTests/platform/linux/plugins/mouse-events-fixedpos-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/plugins/mouse-events-fixedpos-expected.txt deleted file mode 100644 index a15aa1a..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/plugins/mouse-events-fixedpos-expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -CONSOLE MESSAGE: line 39: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 39: PLUGIN: mouseDown at (50, 50) -CONSOLE MESSAGE: line 40: PLUGIN: mouseUp at (50, 50) -CONSOLE MESSAGE: line 42: PLUGIN: mouseDown at (60, 60) -CONSOLE MESSAGE: line 44: PLUGIN: mouseUp at (70, 60) - -Tests for widget positions being correctly updated after scrolling. rdar://problem/7559069 diff --git a/third_party/WebKit/LayoutTests/platform/linux/plugins/webview-plugin-type-change-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/plugins/webview-plugin-type-change-expected.txt index 4c943d2..d7998f4 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/plugins/webview-plugin-type-change-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/plugins/webview-plugin-type-change-expected.txt @@ -4,5 +4,6 @@ layer at (0,0) size 800x173 LayoutBlockFlow {HTML} at (0,0) size 800x173 LayoutBlockFlow {BODY} at (8,8) size 784x157 LayoutText {#text} at (0,0) size 0x0 + LayoutText {#text} at (0,0) size 0x0 layer at (8,8) size 152x152 LayoutEmbeddedObject {EMBED} at (0,0) size 152x152 [border: (1px solid #000000)] diff --git a/third_party/WebKit/LayoutTests/platform/mac/plugins/keyboard-events-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/plugins/keyboard-events-expected.txt deleted file mode 100644 index bf544a8..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac/plugins/keyboard-events-expected.txt +++ /dev/null @@ -1,11 +0,0 @@ -CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 18: PLUGIN: mouseDown at (12, 12) -CONSOLE MESSAGE: line 19: PLUGIN: mouseUp at (12, 12) -CONSOLE MESSAGE: line 22: PLUGIN: keyDown 'a' -CONSOLE MESSAGE: line 22: PLUGIN: keyUp 'a' -CONSOLE MESSAGE: line 23: PLUGIN: keyDown 'b' -CONSOLE MESSAGE: line 23: PLUGIN: keyUp 'b' -CONSOLE MESSAGE: line 24: PLUGIN: keyDown 'c' -CONSOLE MESSAGE: line 24: PLUGIN: keyUp 'c' - -This test checks if a plugin can receive keyboard events sent from eventSender. This is a test for Bug 34936. diff --git a/third_party/WebKit/LayoutTests/platform/mac/plugins/mouse-events-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/plugins/mouse-events-expected.txt deleted file mode 100644 index 72fd68c..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac/plugins/mouse-events-expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 18: PLUGIN: mouseDown at (12, 12) -CONSOLE MESSAGE: line 19: PLUGIN: mouseUp at (12, 12) -CONSOLE MESSAGE: line 21: PLUGIN: mouseDown at (22, 22) -CONSOLE MESSAGE: line 23: PLUGIN: mouseUp at (32, 22) - -Test for bug 11517: Flash clicks/interactivity not working properly. diff --git a/third_party/WebKit/LayoutTests/platform/mac/plugins/mouse-events-fixedpos-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/plugins/mouse-events-fixedpos-expected.txt deleted file mode 100644 index a15aa1a..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac/plugins/mouse-events-fixedpos-expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -CONSOLE MESSAGE: line 39: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 39: PLUGIN: mouseDown at (50, 50) -CONSOLE MESSAGE: line 40: PLUGIN: mouseUp at (50, 50) -CONSOLE MESSAGE: line 42: PLUGIN: mouseDown at (60, 60) -CONSOLE MESSAGE: line 44: PLUGIN: mouseUp at (70, 60) - -Tests for widget positions being correctly updated after scrolling. rdar://problem/7559069 diff --git a/third_party/WebKit/LayoutTests/platform/win/plugins/keyboard-events-expected.txt b/third_party/WebKit/LayoutTests/platform/win/plugins/keyboard-events-expected.txt deleted file mode 100644 index ea26d0a..0000000 --- a/third_party/WebKit/LayoutTests/platform/win/plugins/keyboard-events-expected.txt +++ /dev/null @@ -1,11 +0,0 @@ -CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 18: PLUGIN: mouseDown at (20, 20) -CONSOLE MESSAGE: line 19: PLUGIN: mouseUp at (20, 20) -CONSOLE MESSAGE: line 22: PLUGIN: keyDown 'A' -CONSOLE MESSAGE: line 22: PLUGIN: keyUp 'A' -CONSOLE MESSAGE: line 23: PLUGIN: keyDown 'B' -CONSOLE MESSAGE: line 23: PLUGIN: keyUp 'B' -CONSOLE MESSAGE: line 24: PLUGIN: keyDown 'C' -CONSOLE MESSAGE: line 24: PLUGIN: keyUp 'C' - -This test checks if a plugin can receive keyboard events sent from eventSender. This is a test for Bug 34936. diff --git a/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-click-plugin-clears-selection-expected.txt b/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-click-plugin-clears-selection-expected.txt index 37adf19..2509b809 100644 --- a/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-click-plugin-clears-selection-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-click-plugin-clears-selection-expected.txt @@ -1,3 +1,6 @@ +CONSOLE MESSAGE: Blink Test Plugin: DidChangeFocus(true) +CONSOLE MESSAGE: Blink Test Plugin: MouseDown at (52,52) +CONSOLE MESSAGE: Blink Test Plugin: MouseUp at (52,52) layer at (0,0) size 800x600 LayoutView at (0,0) size 800x600 layer at (0,0) size 800x600 @@ -5,12 +8,12 @@ layer at (0,0) size 800x600 LayoutBlockFlow {BODY} at (8,8) size 784x584 LayoutBlockFlow (anonymous) at (0,0) size 784x122 LayoutBR {BR} at (100,100) size 0x0 - LayoutTextControl {INPUT} at (0,100) size 173x22 [bgcolor=#FFFFFF] [border: (2px inset #EEEEEE)] + LayoutTextControl {INPUT} at (0,100) size 154x22 [bgcolor=#FFFFFF] [border: (2px inset #EEEEEE)] LayoutText {#text} at (0,0) size 0x0 LayoutBlockFlow {DIV} at (0,122) size 784x0 layer at (8,8) size 100x100 LayoutEmbeddedObject {EMBED} at (0,0) size 100x100 -layer at (10,111) size 169x16 - LayoutBlockFlow {DIV} at (2,3) size 169x16 +layer at (10,111) size 150x16 + LayoutBlockFlow {DIV} at (2,3) size 150x16 LayoutText {#text} at (0,0) size 27x16 text run at (0,0) width 27: "hello" diff --git a/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-events-expected.txt b/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-events-expected.txt deleted file mode 100644 index daade43..0000000 --- a/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-events-expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -CONSOLE MESSAGE: line 18: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 18: PLUGIN: mouseDown at (20, 20) -CONSOLE MESSAGE: line 19: PLUGIN: mouseUp at (20, 20) -CONSOLE MESSAGE: line 21: PLUGIN: mouseDown at (30, 30) -CONSOLE MESSAGE: line 23: PLUGIN: mouseUp at (40, 30) - -Test for bug 11517: Flash clicks/interactivity not working properly. diff --git a/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-events-fixedpos-expected.txt b/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-events-fixedpos-expected.txt deleted file mode 100644 index a2b3855..0000000 --- a/third_party/WebKit/LayoutTests/platform/win/plugins/mouse-events-fixedpos-expected.txt +++ /dev/null @@ -1,7 +0,0 @@ -CONSOLE MESSAGE: line 39: PLUGIN: getFocusEvent -CONSOLE MESSAGE: line 39: PLUGIN: mouseDown at (90, 90) -CONSOLE MESSAGE: line 40: PLUGIN: mouseUp at (90, 90) -CONSOLE MESSAGE: line 42: PLUGIN: mouseDown at (100, 100) -CONSOLE MESSAGE: line 44: PLUGIN: mouseUp at (110, 100) - -Tests for widget positions being correctly updated after scrolling. rdar://problem/7559069 diff --git a/third_party/WebKit/LayoutTests/plugins/keyboard-events-expected.txt b/third_party/WebKit/LayoutTests/plugins/keyboard-events-expected.txt new file mode 100644 index 0000000..50d9acf --- /dev/null +++ b/third_party/WebKit/LayoutTests/plugins/keyboard-events-expected.txt @@ -0,0 +1,11 @@ +CONSOLE MESSAGE: Blink Test Plugin: DidChangeFocus(true) +CONSOLE MESSAGE: Blink Test Plugin: MouseDown at (12,12) +CONSOLE MESSAGE: Blink Test Plugin: MouseUp at (12,12) +CONSOLE MESSAGE: Blink Test Plugin: KeyDown 'KeyA' +CONSOLE MESSAGE: Blink Test Plugin: KeyUp 'KeyA' +CONSOLE MESSAGE: Blink Test Plugin: KeyDown 'KeyB' +CONSOLE MESSAGE: Blink Test Plugin: KeyUp 'KeyB' +CONSOLE MESSAGE: Blink Test Plugin: KeyDown 'KeyC' +CONSOLE MESSAGE: Blink Test Plugin: KeyUp 'KeyC' + +This test checks if a plugin can receive keyboard events sent from eventSender. This is a test for Bug 34936. diff --git a/third_party/WebKit/LayoutTests/plugins/keyboard-events.html b/third_party/WebKit/LayoutTests/plugins/keyboard-events.html index 51b773d..800a3bb 100644 --- a/third_party/WebKit/LayoutTests/plugins/keyboard-events.html +++ b/third_party/WebKit/LayoutTests/plugins/keyboard-events.html @@ -1,31 +1,31 @@ +<!DOCTYPE html> <html> -<body> -<embed name="plg" type="application/x-webkit-test-netscape" windowedPlugin="false" width=100 height=100></embed> -<p>This test checks if a plugin can receive keyboard events sent from eventSender. This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34936">Bug 34936</a>.</p> +<head> +<script src="../resources/plugin.js"></script> <script> - - plg.windowedPlugin = false; - plg.eventLoggingEnabled = true; - +startAfterLoadAndFinish(function () { if (!window.testRunner) { - document.write("This test does not work in manual mode."); - } else { - testRunner.dumpAsText(); - - // Send a mouse-click event to set the input focus to the test plugin. - eventSender.mouseMoveTo(0,0); - eventSender.mouseMoveTo(20,20); - eventSender.mouseDown(); - eventSender.mouseUp(); - - // Send keyboard events to the plugin. - eventSender.keyDown('a'); - eventSender.keyDown('b'); - eventSender.keyDown('c'); + document.body.appendChild(document.createTextNode("This test does not work in manual mode.")); + return; } - plg.eventLoggingEnabled = false; // stop logging so our output doesn't bleed into the next test + testRunner.dumpAsText(); + + // Send a mouse-click event to set the input focus to the test plugin. + eventSender.mouseMoveTo(0,0); + eventSender.mouseMoveTo(20,20); + eventSender.mouseDown(); + eventSender.mouseUp(); + // Send keyboard events to the plugin. + eventSender.keyDown('a'); + eventSender.keyDown('b'); + eventSender.keyDown('c'); +}); </script> +</head> +<body> +<embed type="application/x-blink-test-plugin" width=100 height=100></embed> +<p>This test checks if a plugin can receive keyboard events sent from eventSender. This is a test for <a href="https://bugs.webkit.org/show_bug.cgi?id=34936">Bug 34936</a>.</p> </body> </html> diff --git a/third_party/WebKit/LayoutTests/plugins/mouse-click-plugin-clears-selection.html b/third_party/WebKit/LayoutTests/plugins/mouse-click-plugin-clears-selection.html index 33f80d8..9b41982 100644 --- a/third_party/WebKit/LayoutTests/plugins/mouse-click-plugin-clears-selection.html +++ b/third_party/WebKit/LayoutTests/plugins/mouse-click-plugin-clears-selection.html @@ -18,7 +18,7 @@ startAfterLoadAndFinish(function() { </script> </head> <body> -<embed id="plg" type="application/x-webkit-test-netscape" width="100" height="100" windowedplugin="false"></embed><br> +<embed type="application/x-blink-test-plugin" width="100" height="100"></embed><br> <input id="frame" value="hello"/> <div id="output"></div> </body> diff --git a/third_party/WebKit/LayoutTests/plugins/mouse-events-expected.txt b/third_party/WebKit/LayoutTests/plugins/mouse-events-expected.txt new file mode 100644 index 0000000..3b793d0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/plugins/mouse-events-expected.txt @@ -0,0 +1,7 @@ +CONSOLE MESSAGE: Blink Test Plugin: DidChangeFocus(true) +CONSOLE MESSAGE: Blink Test Plugin: MouseDown at (12,12) +CONSOLE MESSAGE: Blink Test Plugin: MouseUp at (12,12) +CONSOLE MESSAGE: Blink Test Plugin: MouseDown at (22,22) +CONSOLE MESSAGE: Blink Test Plugin: MouseUp at (32,22) + +Test for bug 11517: Flash clicks/interactivity not working properly. diff --git a/third_party/WebKit/LayoutTests/plugins/mouse-events-fixedpos-expected.txt b/third_party/WebKit/LayoutTests/plugins/mouse-events-fixedpos-expected.txt new file mode 100644 index 0000000..ac331bf --- /dev/null +++ b/third_party/WebKit/LayoutTests/plugins/mouse-events-fixedpos-expected.txt @@ -0,0 +1,7 @@ +CONSOLE MESSAGE: Blink Test Plugin: DidChangeFocus(true) +CONSOLE MESSAGE: Blink Test Plugin: MouseDown at (50,50) +CONSOLE MESSAGE: Blink Test Plugin: MouseUp at (50,50) +CONSOLE MESSAGE: Blink Test Plugin: MouseDown at (60,60) +CONSOLE MESSAGE: Blink Test Plugin: MouseUp at (70,60) + +Tests for widget positions being correctly updated after scrolling. rdar://problem/7559069 diff --git a/third_party/WebKit/LayoutTests/plugins/mouse-events-fixedpos.html b/third_party/WebKit/LayoutTests/plugins/mouse-events-fixedpos.html index ecace9f..41010d4 100644 --- a/third_party/WebKit/LayoutTests/plugins/mouse-events-fixedpos.html +++ b/third_party/WebKit/LayoutTests/plugins/mouse-events-fixedpos.html @@ -1,27 +1,28 @@ +<!DOCTYPE html> <html> -<style type="text/css" media="screen"> - body { +<head> +<style> +body { height: 1000px; - } +} - .fixed { +.fixed { position: fixed; left: 20px; top: 20px; - } +} - p { +p { margin-top: 200px; - } +} - embed { +embed { margin: 20px; - } +} </style> +<script src="../resources/plugin.js"></script> <script> - - function runTest() - { +startAfterLoadAndFinish(function () { window.scrollBy(50, 50); if (!window.testRunner) { @@ -31,9 +32,6 @@ testRunner.dumpAsText(); - plg.windowedPlugin = false; - plg.eventLoggingEnabled = true; - eventSender.mouseMoveTo(70,70); eventSender.mouseMoveTo(90,90); eventSender.mouseDown(); @@ -43,17 +41,13 @@ eventSender.mouseMoveTo(110,100); eventSender.mouseUp(); eventSender.mouseMoveTo(20,20); - - plg.eventLoggingEnabled = false; // stop logging so our output doesn't bleed into the next test - } - - window.addEventListener('load', runTest, false); +}); </script> +</head> <body> - <div class="fixed"> - <embed name="plg" type="application/x-webkit-test-netscape" windowedPlugin="false" width=100 height=100></embed> - </div> - +<div class="fixed"> + <embed type="application/x-blink-test-plugin" width=100 height=100></embed> +</div> <p>Tests for widget positions being correctly updated after scrolling. <a href="rdar://problem/7559069">rdar://problem/7559069</a></p> </body> </html> diff --git a/third_party/WebKit/LayoutTests/plugins/mouse-events.html b/third_party/WebKit/LayoutTests/plugins/mouse-events.html index 60053fa..916724e 100644 --- a/third_party/WebKit/LayoutTests/plugins/mouse-events.html +++ b/third_party/WebKit/LayoutTests/plugins/mouse-events.html @@ -1,31 +1,31 @@ +<!DOCTYPE html> <html> -<body> -<embed name="plg" type="application/x-webkit-test-netscape" windowedPlugin="false" width=100 height=100></embed> -<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=11517">bug 11517</a>: -Flash clicks/interactivity not working properly.</p> +<head> +<script src="../resources/plugin.js"></script> <script> - - plg.windowedPlugin = false; - plg.eventLoggingEnabled = true; - +startAfterLoadAndFinish(function () { if (!window.testRunner) { - document.write("This test does not work in manual mode."); - } else { - testRunner.dumpAsText(); - - eventSender.mouseMoveTo(0,0); - eventSender.mouseMoveTo(20,20); - eventSender.mouseDown(); - eventSender.mouseUp(); - eventSender.mouseMoveTo(30,30); - eventSender.mouseDown(); - eventSender.mouseMoveTo(40,30); - eventSender.mouseUp(); - eventSender.mouseMoveTo(0,0); + document.body.appendChild(document.createTextNode("This test does not work in manual mode.")); + return; } - plg.eventLoggingEnabled = false; // stop logging so our output doesn't bleed into the next test + testRunner.dumpAsText(); + eventSender.mouseMoveTo(0,0); + eventSender.mouseMoveTo(20,20); + eventSender.mouseDown(); + eventSender.mouseUp(); + eventSender.mouseMoveTo(30,30); + eventSender.mouseDown(); + eventSender.mouseMoveTo(40,30); + eventSender.mouseUp(); + eventSender.mouseMoveTo(0,0); +}); </script> +</head> +<body> +<embed type="application/x-blink-test-plugin" width=100 height=100></embed> +<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=11517">bug 11517</a>: +Flash clicks/interactivity not working properly.</p> </body> </html> diff --git a/third_party/WebKit/LayoutTests/plugins/webview-plugin-type-change.html b/third_party/WebKit/LayoutTests/plugins/webview-plugin-type-change.html index 6441b55..34b05da 100644 --- a/third_party/WebKit/LayoutTests/plugins/webview-plugin-type-change.html +++ b/third_party/WebKit/LayoutTests/plugins/webview-plugin-type-change.html @@ -8,18 +8,15 @@ </style> <embed id="plugin"></embed> <script> +document.querySelector('embed').addEventListener('message', function(message) { + if (message.data == 'loaded') + if (window.testRunner) + window.testRunner.notifyDone(); +}); onload = function() { - document.getElementById("plugin").setAttribute('type', 'application/x-webkit-test-netscape'); + document.getElementById('plugin').setAttribute('type', 'application/x-blink-test-plugin'); - if (window.testRunner) { + if (window.testRunner) window.testRunner.waitUntilDone(); - // Need to paint two frames in order to allow the plugin to propery load. - // TODO(chrishtr): find out why and fix. - window.testRunner.layoutAndPaintAsyncThen(function() { - window.testRunner.layoutAndPaintAsyncThen(function() { - window.testRunner.notifyDone(); - }); - }); - } } -</script>
\ No newline at end of file +</script> diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py index 7024d07..2e4584b 100644 --- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py +++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/base.py @@ -1105,7 +1105,6 @@ class Port(object): clean_env['DISPLAY'] = self._value_or_default_from_environ('DISPLAY', ':1') if self.host.platform.is_mac(): clean_env['DYLD_LIBRARY_PATH'] = self._build_path() - clean_env['DYLD_FRAMEWORK_PATH'] = self._build_path() variables_to_copy += [ 'HOME', ] |