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