| Index: components/autofill/content/renderer/page_click_tracker.cc
|
| diff --git a/components/autofill/content/renderer/page_click_tracker.cc b/components/autofill/content/renderer/page_click_tracker.cc
|
| index 8177c17340c74cfe169a9bc5171c1a2e3ef88113..6297bc01989b31e98d8592ef5cb055ebf4c88846 100644
|
| --- a/components/autofill/content/renderer/page_click_tracker.cc
|
| +++ b/components/autofill/content/renderer/page_click_tracker.cc
|
| @@ -8,7 +8,10 @@
|
| #include "components/autofill/content/renderer/page_click_listener.h"
|
| #include "content/public/renderer/render_frame.h"
|
| #include "content/public/renderer/render_view.h"
|
| +#include "third_party/WebKit/public/platform/WebPoint.h"
|
| +#include "third_party/WebKit/public/platform/WebSize.h"
|
| #include "third_party/WebKit/public/web/WebDocument.h"
|
| +#include "third_party/WebKit/public/web/WebHitTestResult.h"
|
| #include "third_party/WebKit/public/web/WebInputElement.h"
|
| #include "third_party/WebKit/public/web/WebInputEvent.h"
|
| #include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| @@ -21,6 +24,8 @@ using blink::WebInputElement;
|
| using blink::WebInputEvent;
|
| using blink::WebMouseEvent;
|
| using blink::WebNode;
|
| +using blink::WebPoint;
|
| +using blink::WebSize;
|
| using blink::WebTextAreaElement;
|
|
|
| namespace {
|
| @@ -73,14 +78,22 @@ void PageClickTracker::DidHandleMouseEvent(const WebMouseEvent& event) {
|
| return;
|
| }
|
|
|
| - PotentialActivationAt(event.x, event.y);
|
| + WebNode clicked_node = render_frame()->GetRenderView()->GetWebView()
|
| + ->hitTestResultAt(WebPoint(event.x, event.y)).node();
|
| + focused_node_was_last_clicked_ = !clicked_node.isNull() &&
|
| + clicked_node.focused();
|
| }
|
|
|
| void PageClickTracker::DidHandleGestureEvent(const WebGestureEvent& event) {
|
| if (event.type != WebGestureEvent::GestureTap)
|
| return;
|
|
|
| - PotentialActivationAt(event.x, event.y);
|
| + WebNode tapped_node = render_frame()->GetRenderView()->GetWebView()
|
| + ->hitTestResultForTap(
|
| + WebPoint(event.x, event.y),
|
| + WebSize(event.data.tap.width, event.data.tap.height)).node();
|
| + focused_node_was_last_clicked_ = !tapped_node.isNull() &&
|
| + tapped_node.focused();
|
| }
|
|
|
| void PageClickTracker::FocusedNodeChanged(const WebNode& node) {
|
| @@ -88,7 +101,7 @@ void PageClickTracker::FocusedNodeChanged(const WebNode& node) {
|
| }
|
|
|
| void PageClickTracker::FocusChangeComplete() {
|
| - blink::WebNode focused_node = render_frame()->GetFocusedElement();
|
| + WebNode focused_node = render_frame()->GetFocusedElement();
|
| if (focused_node_was_last_clicked_ && !focused_node.isNull()) {
|
| const WebInputElement input_element = GetTextWebInputElement(focused_node);
|
| if (!input_element.isNull()) {
|
| @@ -108,20 +121,6 @@ void PageClickTracker::FocusChangeComplete() {
|
| focused_node_was_last_clicked_ = false;
|
| }
|
|
|
| -void PageClickTracker::PotentialActivationAt(int x, int y) {
|
| - blink::WebElement focused_element = render_frame()->GetFocusedElement();
|
| - if (focused_element.isNull())
|
| - return;
|
| -
|
| - if (!GetScaledBoundingBox(
|
| - render_frame()->GetRenderView()->GetWebView()->pageScaleFactor(),
|
| - &focused_element).Contains(x, y)) {
|
| - return;
|
| - }
|
| -
|
| - focused_node_was_last_clicked_ = true;
|
| -}
|
| -
|
| // PageClickTracker::Legacy ----------------------------------------------------
|
|
|
| PageClickTracker::Legacy::Legacy(PageClickTracker* tracker)
|
| @@ -133,13 +132,12 @@ void PageClickTracker::Legacy::OnDestruct() {
|
| // No-op. Don't delete |this|.
|
| }
|
|
|
| -void PageClickTracker::Legacy::DidHandleMouseEvent(
|
| - const blink::WebMouseEvent& event) {
|
| +void PageClickTracker::Legacy::DidHandleMouseEvent(const WebMouseEvent& event) {
|
| tracker_->DidHandleMouseEvent(event);
|
| }
|
|
|
| void PageClickTracker::Legacy::DidHandleGestureEvent(
|
| - const blink::WebGestureEvent& event) {
|
| + const WebGestureEvent& event) {
|
| tracker_->DidHandleGestureEvent(event);
|
| }
|
|
|
|
|