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

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

Issue 884583002: [autofill] Show autofill popup when focusing a field by tapping near its edge. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bounds-change
Patch Set: Add a test Created 5 years, 11 months 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 4e54f9e638668a2b09a994b45e0a31e4fb37fc8c..17cefcbb7478b37ab5d0781fe8b639daf4f900dd 100644
--- a/components/autofill/content/renderer/page_click_tracker.cc
+++ b/components/autofill/content/renderer/page_click_tracker.cc
@@ -13,6 +13,7 @@
#include "third_party/WebKit/public/web/WebLocalFrame.h"
#include "third_party/WebKit/public/web/WebTextAreaElement.h"
#include "third_party/WebKit/public/web/WebView.h"
+#include "ui/gfx/geometry/rect_f.h"
using blink::WebElement;
using blink::WebGestureEvent;
@@ -74,14 +75,17 @@ void PageClickTracker::DidHandleMouseEvent(const WebMouseEvent& event) {
return;
}
- PotentialActivationAt(event.x, event.y);
+ PotentialActivationAt(gfx::RectF(event.x, event.y, 1, 1));
}
void PageClickTracker::DidHandleGestureEvent(const WebGestureEvent& event) {
if (event.type != WebGestureEvent::GestureTap)
return;
- PotentialActivationAt(event.x, event.y);
+ PotentialActivationAt(gfx::RectF(event.x - event.data.tap.width / 2.0,
+ event.y - event.data.tap.height / 2.0,
+ event.data.tap.width,
+ event.data.tap.height));
}
void PageClickTracker::FocusedNodeChanged(const WebNode& node) {
@@ -108,13 +112,13 @@ void PageClickTracker::FocusChangeComplete() {
was_focused_before_now_ = true;
}
-void PageClickTracker::PotentialActivationAt(int x, int y) {
+void PageClickTracker::PotentialActivationAt(const gfx::RectF& region) {
WebElement focused_element = render_view()->GetFocusedElement();
if (focused_element.isNull())
return;
if (!GetScaledBoundingBox(render_view()->GetWebView()->pageScaleFactor(),
- &focused_element).Contains(x, y)) {
+ &focused_element).Intersects(region)) {
return;
}

Powered by Google App Engine
This is Rietveld 408576698