[chromium] Use widget.parent() for plugin WebMouseEvents
authoraelias@chromium.org <aelias@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Mar 2013 23:40:28 +0000 (23:40 +0000)
committeraelias@chromium.org <aelias@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 28 Mar 2013 23:40:28 +0000 (23:40 +0000)
https://bugs.webkit.org/show_bug.cgi?id=113543

Reviewed by James Robinson.

In r142571 I switches widget.parent() to widget.root() in the plugin
WebCore event -> WebMouseEvent creator, to make the converter the
inverse of the one going the other way and avoid null pointer crashes.
But the plugin code expects it to be parent() (see
http://crbug.com/223335).

* src/WebInputEventConversion.cpp:
(WebKit::updateWebMouseEventFromWebCoreMouseEvent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@147181 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/WebInputEventConversion.cpp

index 5c6e1ea..8787d63 100644 (file)
@@ -1,3 +1,19 @@
+2013-03-28  Alexandre Elias  <aelias@chromium.org>
+
+        [chromium] Use widget.parent() for plugin WebMouseEvents
+        https://bugs.webkit.org/show_bug.cgi?id=113543
+
+        Reviewed by James Robinson.
+
+        In r142571 I switches widget.parent() to widget.root() in the plugin
+        WebCore event -> WebMouseEvent creator, to make the converter the
+        inverse of the one going the other way and avoid null pointer crashes.
+        But the plugin code expects it to be parent() (see
+        http://crbug.com/223335).
+
+        * src/WebInputEventConversion.cpp:
+        (WebKit::updateWebMouseEventFromWebCoreMouseEvent):
+
 2013-03-28  Xianzhu Wang  <wangxianzhu@chromium.org>
 
         [Chromium] Don't create SolidColorLayer for full transparent background
index 2e33050..4938aea 100644 (file)
@@ -437,8 +437,10 @@ static void updateWebMouseEventFromWebCoreMouseEvent(const MouseRelatedEvent& ev
     webEvent.timeStampSeconds = event.timeStamp() / millisPerSecond;
     webEvent.modifiers = getWebInputModifiers(event);
 
-    ScrollView* view = widget.root();
-    IntPoint windowPoint = view->contentsToWindow(IntPoint(event.absoluteLocation().x(), event.absoluteLocation().y()));
+    ScrollView* view = widget.parent();
+    IntPoint windowPoint = IntPoint(event.absoluteLocation().x(), event.absoluteLocation().y());
+    if (view)
+        windowPoint = view->contentsToWindow(windowPoint);
     webEvent.globalX = event.screenX();
     webEvent.globalY = event.screenY();
     webEvent.windowX = windowPoint.x();