| 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.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 RenderView::Observer, | 
| +                         public WebKit::WebDOMEventListener { | 
| public: | 
| -  explicit PageClickTracker(RenderView* render_view); | 
| +  PageClickTracker(); | 
| 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_; | 
|  | 
|  |