| Index: Source/WebKit/chromium/src/WebViewImpl.cpp | 
| =================================================================== | 
| --- Source/WebKit/chromium/src/WebViewImpl.cpp	(revision 143772) | 
| +++ Source/WebKit/chromium/src/WebViewImpl.cpp	(working copy) | 
| @@ -755,12 +755,19 @@ | 
| // Don't trigger a disambiguation popup on sites designed for mobile devices. | 
| // Instead, assume that the page has been designed with big enough buttons and links. | 
| if (event.data.tap.width > 0 && !shouldDisableDesktopWorkarounds()) { | 
| -            IntRect boundingBox(event.x - event.data.tap.width / 2, event.y - event.data.tap.height / 2, event.data.tap.width, event.data.tap.height); | 
| +            // FIXME: didTapMultipleTargets should just take a rect instead of | 
| +            // an event. | 
| +            WebGestureEvent scaledEvent; | 
| +            scaledEvent.x = event.x / pageScaleFactor(); | 
| +            scaledEvent.y = event.y / pageScaleFactor(); | 
| +            scaledEvent.data.tap.width = event.data.tap.width / pageScaleFactor(); | 
| +            scaledEvent.data.tap.height = event.data.tap.height / pageScaleFactor(); | 
| +            IntRect boundingBox(scaledEvent.x - scaledEvent.data.tap.width / 2, scaledEvent.y - scaledEvent.data.tap.height / 2, scaledEvent.data.tap.width, scaledEvent.data.tap.height); | 
| Vector<IntRect> goodTargets; | 
| findGoodTouchTargets(boundingBox, mainFrameImpl()->frame(), goodTargets); | 
| // FIXME: replace touch adjustment code when numberOfGoodTargets == 1? | 
| // Single candidate case is currently handled by: https://bugs.webkit.org/show_bug.cgi?id=85101 | 
| -            if (goodTargets.size() >= 2 && m_client && m_client->didTapMultipleTargets(event, goodTargets)) { | 
| +            if (goodTargets.size() >= 2 && m_client && m_client->didTapMultipleTargets(scaledEvent, goodTargets)) { | 
| eventSwallowed = true; | 
| eventCancelled = true; | 
| break; | 
| @@ -1354,6 +1361,7 @@ | 
|  | 
| bool WebViewImpl::hasTouchEventHandlersAt(const WebPoint& point) | 
| { | 
| +    // FIXME: Implement this. Note that the point must be divided by pageScaleFactor. | 
| return true; | 
| } | 
|  | 
| @@ -2083,26 +2091,7 @@ | 
| return true; | 
| } | 
|  | 
| -    const WebInputEvent* inputEventTransformed = &inputEvent; | 
| -    if (m_page->settings()->applyPageScaleFactorInCompositor()) { | 
| -        WebMouseEvent mouseEvent; | 
| -        WebGestureEvent gestureEvent; | 
| -        if (WebInputEvent::isMouseEventType(inputEvent.type)) { | 
| -            mouseEvent = *static_cast<const WebMouseEvent*>(&inputEvent); | 
| -            mouseEvent.x = mouseEvent.x / pageScaleFactor(); | 
| -            mouseEvent.y = mouseEvent.y / pageScaleFactor(); | 
| -            inputEventTransformed = static_cast<const WebInputEvent*>(&mouseEvent); | 
| -        } else if (WebInputEvent::isGestureEventType(inputEvent.type)) { | 
| -            gestureEvent = *static_cast<const WebGestureEvent*>(&inputEvent); | 
| -            gestureEvent.x = gestureEvent.x / pageScaleFactor(); | 
| -            gestureEvent.y = gestureEvent.y / pageScaleFactor(); | 
| -            gestureEvent.data.tap.width /= pageScaleFactor(); | 
| -            gestureEvent.data.tap.height /= pageScaleFactor(); | 
| -            inputEventTransformed = static_cast<const WebInputEvent*>(&gestureEvent); | 
| -        } | 
| -    } | 
| - | 
| -    return PageWidgetDelegate::handleInputEvent(m_page.get(), *this, *inputEventTransformed); | 
| +    return PageWidgetDelegate::handleInputEvent(m_page.get(), *this, inputEvent); | 
| } | 
|  | 
| void WebViewImpl::mouseCaptureLost() | 
|  |