| 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 14ceda82fd5420864ff561f546dbe7aeb7f84229..cc8db9d27b4c04b19428867dc2812124b3a77f09 100644
|
| --- a/components/autofill/content/renderer/page_click_tracker.cc
|
| +++ b/components/autofill/content/renderer/page_click_tracker.cc
|
| @@ -85,7 +85,7 @@ void PageClickTracker::DidHandleMouseEvent(const WebMouseEvent& event) {
|
| return;
|
| }
|
|
|
| - PotentialActivationAt(event.x, event.y);
|
| + activated_node_ = render_view()->GetFocusedElement();
|
| }
|
|
|
| void PageClickTracker::DidHandleGestureEvent(
|
| @@ -93,45 +93,36 @@ void PageClickTracker::DidHandleGestureEvent(
|
| if (event.type != blink::WebGestureEvent::GestureTap)
|
| return;
|
|
|
| - PotentialActivationAt(event.x, event.y);
|
| + activated_node_ = render_view()->GetFocusedElement();
|
| }
|
|
|
| void PageClickTracker::FocusedNodeChanged(const blink::WebNode& node) {
|
| was_focused_before_now_ = false;
|
| - // If the focus change was a result of handling a click or tap, we'll soon get
|
| - // an associated event. Reset |was_focused_before_now_| to true only after the
|
| - // message loop unwinds.
|
| - base::MessageLoop::current()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&PageClickTracker::SetWasFocused,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| }
|
|
|
| -void PageClickTracker::PotentialActivationAt(int x, int y) {
|
| - blink::WebNode focused_node = render_view()->GetFocusedElement();
|
| - if (focused_node.isNull())
|
| +void PageClickTracker::FocusChangeComplete() {
|
| + if (activated_node_.isNull())
|
| return;
|
|
|
| - if (!render_view()->NodeContainsPoint(focused_node, gfx::Point(x, y)))
|
| - return;
|
| + NodeActivation(activated_node_);
|
| + activated_node_.reset();
|
| +}
|
|
|
| - const WebInputElement input_element = GetTextWebInputElement(focused_node);
|
| +void PageClickTracker::NodeActivation(const blink::WebNode& node) {
|
| + const WebInputElement input_element = GetTextWebInputElement(node);
|
| if (!input_element.isNull()) {
|
| listener_->FormControlElementClicked(input_element,
|
| was_focused_before_now_);
|
| + was_focused_before_now_ = true;
|
| return;
|
| }
|
|
|
| - const WebTextAreaElement textarea_element =
|
| - GetWebTextAreaElement(focused_node);
|
| + const WebTextAreaElement textarea_element = GetWebTextAreaElement(node);
|
| if (!textarea_element.isNull()) {
|
| listener_->FormControlElementClicked(textarea_element,
|
| was_focused_before_now_);
|
| + was_focused_before_now_ = true;
|
| }
|
| }
|
|
|
| -void PageClickTracker::SetWasFocused() {
|
| - was_focused_before_now_ = true;
|
| -}
|
| -
|
| } // namespace autofill
|
|
|