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

Side by Side Diff: content/public/renderer/render_frame_observer.h

Issue 100363002: Introduce RenderFrameObserver. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_H_ 5 #ifndef CONTENT_PUBLIC_RENDERER_RENDER_FRAME_OBSERVER_H_
6 #define CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_H_ 6 #define CONTENT_PUBLIC_RENDERER_RENDER_FRAME_OBSERVER_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "content/common/content_export.h" 10 #include "content/common/content_export.h"
11 #include "ipc/ipc_listener.h" 11 #include "ipc/ipc_listener.h"
12 #include "ipc/ipc_sender.h" 12 #include "ipc/ipc_sender.h"
13 #include "third_party/WebKit/public/platform/WebVector.h"
14 #include "third_party/WebKit/public/web/WebIconURL.h"
15
16 class GURL;
17
18 namespace ppapi {
19 namespace host {
20 class PpapiHost;
21 }
22 }
23
24 namespace blink {
25 class WebDataSource;
26 class WebFrame;
27 class WebFormElement;
28 class WebGestureEvent;
29 class WebMediaPlayerClient;
30 class WebMouseEvent;
31 class WebNode;
32 class WebTouchEvent;
33 class WebURL;
34 struct WebContextMenuData;
35 struct WebURLError;
36 }
37 13
38 namespace content { 14 namespace content {
39 15
40 class RendererPpapiHost; 16 class RenderFrame;
41 class RenderView; 17 class RenderFrameImpl;
42 class RenderViewImpl;
43 18
44 // Base class for objects that want to filter incoming IPCs, and also get 19 // Base class for objects that want to filter incoming IPCs, and also get
45 // notified of changes to the frame. 20 // notified of changes to the frame.
46 class CONTENT_EXPORT RenderViewObserver : public IPC::Listener, 21 class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener,
47 public IPC::Sender { 22 public IPC::Sender {
48 public: 23 public:
49 // By default, observers will be deleted when the RenderView goes away. If 24 // By default, observers will be deleted when the RenderFrame goes away. If
50 // they want to outlive it, they can override this function. 25 // they want to outlive it, they can override this function.
51 virtual void OnDestruct(); 26 virtual void OnDestruct();
52 27
53 // These match the WebKit API notifications
54 virtual void DidStartLoading() {}
55 virtual void DidStopLoading() {}
56 virtual void DidFinishDocumentLoad(blink::WebFrame* frame) {}
57 virtual void DidFailLoad(blink::WebFrame* frame,
58 const blink::WebURLError& error) {}
59 virtual void DidFinishLoad(blink::WebFrame* frame) {}
60 virtual void DidStartProvisionalLoad(blink::WebFrame* frame) {}
61 virtual void DidFailProvisionalLoad(blink::WebFrame* frame,
62 const blink::WebURLError& error) {}
63 virtual void DidCommitProvisionalLoad(blink::WebFrame* frame,
64 bool is_new_navigation) {}
65 virtual void DidClearWindowObject(blink::WebFrame* frame) {}
66 virtual void DidCreateDocumentElement(blink::WebFrame* frame) {}
67 virtual void FrameCreated(blink::WebFrame* parent,
68 blink::WebFrame* frame) {}
69 virtual void FrameDetached(blink::WebFrame* frame) {}
70 virtual void FrameWillClose(blink::WebFrame* frame) {}
71 virtual void DidMatchCSS(
72 blink::WebFrame* frame,
73 const blink::WebVector<blink::WebString>& newly_matching_selectors,
74 const blink::WebVector<blink::WebString>& stopped_matching_selectors) {}
75 virtual void WillSendSubmitEvent(blink::WebFrame* frame,
76 const blink::WebFormElement& form) {}
77 virtual void WillSubmitForm(blink::WebFrame* frame,
78 const blink::WebFormElement& form) {}
79 virtual void DidCreateDataSource(blink::WebFrame* frame,
80 blink::WebDataSource* ds) {}
81 virtual void PrintPage(blink::WebFrame* frame, bool user_initiated) {}
82 virtual void FocusedNodeChanged(const blink::WebNode& node) {}
83 virtual void WillCreateMediaPlayer(blink::WebFrame* frame,
84 blink::WebMediaPlayerClient* client) {}
85 virtual void ZoomLevelChanged() {};
86 virtual void DidChangeScrollOffset(blink::WebFrame* frame) {}
87 virtual void DraggableRegionsChanged(blink::WebFrame* frame) {}
88 virtual void DidRequestShowContextMenu(
89 blink::WebFrame* frame,
90 const blink::WebContextMenuData& data) {}
91 virtual void DidCommitCompositorFrame() {}
92 virtual void DidUpdateLayout() {}
93
94 // These match the RenderView methods.
95 virtual void DidHandleMouseEvent(const blink::WebMouseEvent& event) {}
96 virtual void DidHandleTouchEvent(const blink::WebTouchEvent& event) {}
97 virtual void DidCreatePepperPlugin(RendererPpapiHost* host) {}
98
99 // Called when we receive a console message from WebKit for which we requested
100 // extra details (like the stack trace). |message| is the error message,
101 // |source| is the WebKit-reported source of the error (either external or
102 // internal), and |stack_trace| is the stack trace of the error in a
103 // human-readable format (each frame is formatted as
104 // "\n at function_name (source:line_number:column_number)").
105 virtual void DetailedConsoleMessageAdded(const base::string16& message,
106 const base::string16& source,
107 const base::string16& stack_trace,
108 int32 line_number,
109 int32 severity_level) {}
110
111 // These match incoming IPCs.
112 virtual void Navigate(const GURL& url) {}
113 virtual void ClosePage() {}
114 virtual void OrientationChangeEvent(int orientation) {}
115
116 // IPC::Listener implementation. 28 // IPC::Listener implementation.
117 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 29 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
118 30
119 // IPC::Sender implementation. 31 // IPC::Sender implementation.
120 virtual bool Send(IPC::Message* message) OVERRIDE; 32 virtual bool Send(IPC::Message* message) OVERRIDE;
121 33
122 RenderView* render_view() const; 34 RenderFrame* render_frame() const;
123 int routing_id() const { return routing_id_; } 35 int routing_id() const { return routing_id_; }
124 36
125 protected: 37 protected:
126 explicit RenderViewObserver(RenderView* render_view); 38 explicit RenderFrameObserver(RenderFrame* render_frame);
127 virtual ~RenderViewObserver(); 39 virtual ~RenderFrameObserver();
128 40
129 private: 41 private:
130 friend class RenderViewImpl; 42 friend class RenderFrameImpl;
131 43
132 // This is called by the RenderView when it's going away so that this object 44 // This is called by the RenderFrame when it's going away so that this object
133 // can null out its pointer. 45 // can null out its pointer.
134 void RenderViewGone(); 46 void RenderFrameGone();
135 47
136 RenderView* render_view_; 48 RenderFrame* render_frame_;
137 // The routing ID of the associated RenderView. 49 // The routing ID of the associated RenderFrame.
138 int routing_id_; 50 int routing_id_;
139 51
140 DISALLOW_COPY_AND_ASSIGN(RenderViewObserver); 52 DISALLOW_COPY_AND_ASSIGN(RenderFrameObserver);
141 }; 53 };
142 54
143 } // namespace content 55 } // namespace content
144 56
145 #endif // CONTENT_PUBLIC_RENDERER_RENDER_VIEW_OBSERVER_H_ 57 #endif // CONTENT_PUBLIC_RENDERER_RENDER_FRAME_OBSERVER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698