Index: chrome/renderer/page_click_tracker.h |
=================================================================== |
--- chrome/renderer/page_click_tracker.h (revision 71253) |
+++ chrome/renderer/page_click_tracker.h (working copy) |
@@ -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 @@ |
// 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 @@ |
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 @@ |
// 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_; |