| OLD | NEW |
| 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_ |
| OLD | NEW |