Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1903)

Unified Diff: components/autofill/content/renderer/page_click_tracker.cc

Issue 715733002: [Android] Show autofill popup after animation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Hide popup when resizing the viewport resulted in movement of the focused element. Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698