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

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

Issue 866633002: partial PageClickTracker migration to RenderFrameObserver (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: make test happy 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.h
diff --git a/components/autofill/content/renderer/page_click_tracker.h b/components/autofill/content/renderer/page_click_tracker.h
index 9cb63535f64a64c36b1abb09595f3b393f75feca..08e19abb43fdb710d9061117de4b95b759e47404 100644
--- a/components/autofill/content/renderer/page_click_tracker.h
+++ b/components/autofill/content/renderer/page_click_tracker.h
@@ -9,6 +9,7 @@
#include "base/basictypes.h"
#include "base/memory/weak_ptr.h"
+#include "content/public/renderer/render_frame_observer.h"
#include "content/public/renderer/render_view_observer.h"
#include "third_party/WebKit/public/web/WebNode.h"
@@ -24,29 +25,46 @@ class PageClickListener;
// suggestion popup when a text input is clicked.
//
// There is one PageClickTracker per AutofillAgent.
-// TODO(estade): migrate to content::RenderFrameObserver.
-class PageClickTracker : public content::RenderViewObserver {
+class PageClickTracker : public content::RenderFrameObserver {
public:
// The |listener| will be notified when an element is clicked. It must
// outlive this class.
- PageClickTracker(content::RenderView* render_view,
+ PageClickTracker(content::RenderFrame* render_frame,
PageClickListener* listener);
~PageClickTracker() override;
private:
- // RenderView::Observer implementation.
- void OnDestruct() override;
- void DidHandleMouseEvent(const blink::WebMouseEvent& event) override;
- void DidHandleGestureEvent(const blink::WebGestureEvent& event) override;
+ // TODO(estade): migrate this stuff to content::RenderFrameObserver, and
+ // remove this class.
+ class Legacy : public content::RenderViewObserver {
+ public:
+ Legacy(PageClickTracker* tracker);
+
+ // RenderViewObserver implementation.
+ void OnDestruct() override;
+ void DidHandleMouseEvent(const blink::WebMouseEvent& event) override;
+ void DidHandleGestureEvent(const blink::WebGestureEvent& event) override;
+ void FocusChangeComplete() override;
+
+ private:
+ PageClickTracker* tracker_;
+ };
+ friend class Legacy;
+
+ // RenderFrameObserver implementation.
void FocusedNodeChanged(const blink::WebNode& node) override;
- void FocusChangeComplete() override;
+
+ // RenderViewObserver methods forwarded from Legacy. Should be
+ // merged into RenderFrameObserver.
+ void DidHandleMouseEvent(const blink::WebMouseEvent& event);
+ void DidHandleGestureEvent(const blink::WebGestureEvent& event);
+ void FocusChangeComplete();
// Called there is a tap or click at |x|, |y|.
void PotentialActivationAt(int x, int y);
- // The node that was clicked. Non-null only when the animations caused by
- // focus change are still ongoing.
- blink::WebNode clicked_node_;
+ // True when the last click was on the focused node.
+ bool focused_node_was_last_clicked_;
// This is set to false when the focus changes, then set back to true soon
// afterwards. This helps track whether an event happened after a node was
@@ -56,6 +74,8 @@ class PageClickTracker : public content::RenderViewObserver {
// The listener getting the actual notifications.
PageClickListener* listener_;
+ Legacy legacy_;
+
DISALLOW_COPY_AND_ASSIGN(PageClickTracker);
};
« no previous file with comments | « components/autofill/content/renderer/autofill_agent.cc ('k') | components/autofill/content/renderer/page_click_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698