summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/page_click_tracker.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/page_click_tracker.h')
-rw-r--r--chrome/renderer/page_click_tracker.h33
1 files changed, 11 insertions, 22 deletions
diff --git a/chrome/renderer/page_click_tracker.h b/chrome/renderer/page_click_tracker.h
index 492237c..d765310 100644
--- a/chrome/renderer/page_click_tracker.h
+++ b/chrome/renderer/page_click_tracker.h
@@ -9,17 +9,12 @@
#include "base/basictypes.h"
#include "base/observer_list.h"
+#include "chrome/renderer/render_view_observer.h"
#include "third_party/WebKit/WebKit/chromium/public/WebDOMEventListener.h"
#include "third_party/WebKit/WebKit/chromium/public/WebNode.h"
class PageClickListener;
-class RenderView;
-namespace WebKit {
-class WebFrame;
-class WebDOMEvent;
-class WebMouseEvent;
-}
// This class is responsible for tracking clicks on elements in web pages and
// notifiying the associated listener when a node is clicked.
@@ -33,23 +28,12 @@ class WebMouseEvent;
// could easily be changed to report click on any type of WebNode.
//
// There is one PageClickTracker per RenderView.
-
-class PageClickTracker : public WebKit::WebDOMEventListener {
+class PageClickTracker : public RenderViewObserver,
+ public WebKit::WebDOMEventListener {
public:
explicit PageClickTracker(RenderView* render_view);
virtual ~PageClickTracker();
- // Starts reporting node clicks for |frame| on the listener previously
- // specified with SetListener().
- void StartTrackingFrame(WebKit::WebFrame* frame);
-
- // Stops reporting node clicks for |frame|. |frame_detached| should be true
- // if the frame has already been detached.
- void StopTrackingFrame(WebKit::WebFrame* frame, bool frame_detached);
-
- // Called after the mouse event |event| has been processed by WebKit.
- void DidHandleMouseEvent(const WebKit::WebMouseEvent& event);
-
// Adds/removes a listener for getting notification when an element is
// clicked. Note that the order of insertion is important as a listener when
// notified can decide to stop the propagation of the event (so that listeners
@@ -58,9 +42,17 @@ class PageClickTracker : public WebKit::WebDOMEventListener {
void RemoveListener(PageClickListener* listener);
private:
+ // RenderView::Observer implementation.
+ virtual bool OnMessageReceived(const IPC::Message& message);
+ virtual void DidFinishDocumentLoad(WebKit::WebFrame* frame);
+ virtual void FrameDetached(WebKit::WebFrame* frame);
+
// WebKit::WebDOMEventListener implementation.
virtual void handleEvent(const WebKit::WebDOMEvent& event);
+ // Called after the mouse event |event| has been processed by WebKit.
+ void DidHandleMouseEvent(const WebKit::WebMouseEvent& event);
+
// Returns the currently focused node in the associated render view.
// That node may be null.
WebKit::WebNode GetFocusedNode();
@@ -68,9 +60,6 @@ class PageClickTracker : public WebKit::WebDOMEventListener {
// The last node that was clicked and had focus.
WebKit::WebNode last_node_clicked_;
- // The render view we are associated with.
- RenderView* render_view_;
-
// Whether the last clicked node had focused before it was clicked.
bool was_focused_;