Merge from Chromium at DEPS revision 33.0.1750.126
This commit was generated by merge_to_master.py.
Change-Id: I3f1269d4aa42234d272841deafa94a3b0398f0dd
diff --git a/Source/core/page/CreateWindow.cpp b/Source/core/page/CreateWindow.cpp
index 4ed2842..6f588fa 100644
--- a/Source/core/page/CreateWindow.cpp
+++ b/Source/core/page/CreateWindow.cpp
@@ -32,6 +32,7 @@
#include "core/loader/FrameLoadRequest.h"
#include "core/page/Chrome.h"
#include "core/page/ChromeClient.h"
+#include "core/page/FocusController.h"
#include "core/page/Page.h"
#include "core/frame/Settings.h"
#include "core/page/WindowFeatures.h"
@@ -48,10 +49,8 @@
if (!request.frameName().isEmpty() && request.frameName() != "_blank" && policy == NavigationPolicyIgnore) {
if (Frame* frame = lookupFrame->loader().findFrameForNavigation(request.frameName(), openerFrame->document())) {
- if (request.frameName() != "_self") {
- if (Page* page = frame->page())
- page->chrome().focus();
- }
+ if (request.frameName() != "_self")
+ frame->page()->focusController().setFocusedFrame(frame);
created = false;
return frame;
}
diff --git a/Source/web/WebInputEventConversion.cpp b/Source/web/WebInputEventConversion.cpp
index e27ffea..755c16b 100644
--- a/Source/web/WebInputEventConversion.cpp
+++ b/Source/web/WebInputEventConversion.cpp
@@ -743,9 +743,7 @@
WebGestureEventBuilder::WebGestureEventBuilder(const Widget* widget, const WebCore::RenderObject* renderObject, const GestureEvent& event)
{
- if (event.type() == EventTypeNames::gesturetap)
- type = GestureTap;
- else if (event.type() == EventTypeNames::gestureshowpress)
+ if (event.type() == EventTypeNames::gestureshowpress)
type = GestureShowPress;
else if (event.type() == EventTypeNames::gesturetapdown)
type = GestureTapDown;
@@ -757,6 +755,9 @@
type = GestureScrollUpdate;
data.scrollUpdate.deltaX = event.deltaX();
data.scrollUpdate.deltaY = event.deltaY();
+ } else if (event.type() == EventTypeNames::gesturetap) {
+ type = GestureTap;
+ data.tap.tapCount = 1;
}
timeStampSeconds = event.timeStamp() / millisPerSecond;
diff --git a/Source/web/tests/WebInputEventConversionTest.cpp b/Source/web/tests/WebInputEventConversionTest.cpp
index fac6a83..4e8143b 100644
--- a/Source/web/tests/WebInputEventConversionTest.cpp
+++ b/Source/web/tests/WebInputEventConversionTest.cpp
@@ -438,4 +438,51 @@
}
}
+TEST(WebInputEventConversionTest, InputEventsConversions)
+{
+ const std::string baseURL("http://www.test3.com/");
+ const std::string fileName("fixed_layout.html");
+
+ URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(baseURL.c_str()), WebString::fromUTF8("fixed_layout.html"));
+ FrameTestHelpers::WebViewHelper webViewHelper;
+ WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(baseURL + fileName, true);
+ int pageWidth = 640;
+ int pageHeight = 480;
+ webViewImpl->resize(WebSize(pageWidth, pageHeight));
+ webViewImpl->layout();
+
+ FrameView* view = webViewImpl->page()->mainFrame()->view();
+ RefPtr<Document> document = webViewImpl->page()->mainFrame()->document();
+ DOMWindow* domWindow = webViewImpl->page()->mainFrame()->document()->domWindow();
+ RenderObject* docRenderer = webViewImpl->page()->mainFrame()->document()->renderer();
+
+ {
+ WebGestureEvent webGestureEvent;
+ webGestureEvent.type = WebInputEvent::GestureTap;
+ webGestureEvent.x = 10;
+ webGestureEvent.y = 10;
+ webGestureEvent.globalX = 10;
+ webGestureEvent.globalY = 10;
+ webGestureEvent.data.tap.tapCount = 1;
+ webGestureEvent.data.tap.width = 10;
+ webGestureEvent.data.tap.height = 10;
+
+ PlatformGestureEventBuilder platformGestureBuilder(view, webGestureEvent);
+ EXPECT_EQ(10, platformGestureBuilder.position().x());
+ EXPECT_EQ(10, platformGestureBuilder.position().y());
+ EXPECT_EQ(10, platformGestureBuilder.globalPosition().x());
+ EXPECT_EQ(10, platformGestureBuilder.globalPosition().y());
+ EXPECT_EQ(1, platformGestureBuilder.tapCount());
+
+ RefPtr<WebCore::GestureEvent> coreGestureEvent = WebCore::GestureEvent::create(domWindow, platformGestureBuilder);
+ WebGestureEventBuilder recreatedWebGestureEvent(view, docRenderer, *coreGestureEvent);
+ EXPECT_EQ(webGestureEvent.type, recreatedWebGestureEvent.type);
+ EXPECT_EQ(webGestureEvent.x, recreatedWebGestureEvent.x);
+ EXPECT_EQ(webGestureEvent.y, recreatedWebGestureEvent.y);
+ EXPECT_EQ(webGestureEvent.globalX, recreatedWebGestureEvent.globalX);
+ EXPECT_EQ(webGestureEvent.globalY, recreatedWebGestureEvent.globalY);
+ EXPECT_EQ(webGestureEvent.data.tap.tapCount, recreatedWebGestureEvent.data.tap.tapCount);
+ }
+}
+
} // anonymous namespace