summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/page_click_tracker.h
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-15 00:03:51 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-15 00:03:51 +0000
commit676126f7e4583705e6a381e1b35309ea8242c224 (patch)
treea690a9752c5864a2f44a5143a15b36894d14803e /chrome/renderer/page_click_tracker.h
parentec8ec84a6ad81b3cae8517098e9f22c7a30921ea (diff)
downloadchromium_src-676126f7e4583705e6a381e1b35309ea8242c224.zip
chromium_src-676126f7e4583705e6a381e1b35309ea8242c224.tar.gz
chromium_src-676126f7e4583705e6a381e1b35309ea8242c224.tar.bz2
Introduce RenderView::Observer interface so that RenderView doesn't have to know about the details of every feature. Observers get to filter and send IPC messages, and basic notifications of frame related events.I've moved over AutoFill related classes, and also made AutoFillManager implement the new WebAutoFillClient interface. For the rest of the classes, they implement the interface just for message filtering.
Review URL: http://codereview.chromium.org/6151011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71517 0039d316-1c4b-4281-b951-d872f2087c98
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_;