OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_BROWSER_RENDERER_HOST_BROWSER_RENDER_PROCESS_HOST_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_BROWSER_RENDER_PROCESS_HOST_IMPL_H_ |
6 #define CONTENT_BROWSER_RENDERER_HOST_BROWSER_RENDER_PROCESS_HOST_IMPL_H_ | 6 #define CONTENT_BROWSER_RENDERER_HOST_BROWSER_RENDER_PROCESS_HOST_IMPL_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <queue> | 9 #include <queue> |
10 #include <string> | 10 #include <string> |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 RenderProcessHostImpl(BrowserContext* browser_context, | 69 RenderProcessHostImpl(BrowserContext* browser_context, |
70 StoragePartitionImpl* storage_partition_impl, | 70 StoragePartitionImpl* storage_partition_impl, |
71 bool supports_browser_plugin, | 71 bool supports_browser_plugin, |
72 bool is_guest); | 72 bool is_guest); |
73 virtual ~RenderProcessHostImpl(); | 73 virtual ~RenderProcessHostImpl(); |
74 | 74 |
75 // RenderProcessHost implementation (public portion). | 75 // RenderProcessHost implementation (public portion). |
76 virtual void EnableSendQueue() OVERRIDE; | 76 virtual void EnableSendQueue() OVERRIDE; |
77 virtual bool Init() OVERRIDE; | 77 virtual bool Init() OVERRIDE; |
78 virtual int GetNextRoutingID() OVERRIDE; | 78 virtual int GetNextRoutingID() OVERRIDE; |
| 79 virtual void AddRoute(int32 routing_id, IPC::Listener* listener) OVERRIDE; |
| 80 virtual void RemoveRoute(int32 routing_id) OVERRIDE; |
79 virtual bool WaitForBackingStoreMsg(int render_widget_id, | 81 virtual bool WaitForBackingStoreMsg(int render_widget_id, |
80 const base::TimeDelta& max_delay, | 82 const base::TimeDelta& max_delay, |
81 IPC::Message* msg) OVERRIDE; | 83 IPC::Message* msg) OVERRIDE; |
82 virtual void ReceivedBadMessage() OVERRIDE; | 84 virtual void ReceivedBadMessage() OVERRIDE; |
83 virtual void WidgetRestored() OVERRIDE; | 85 virtual void WidgetRestored() OVERRIDE; |
84 virtual void WidgetHidden() OVERRIDE; | 86 virtual void WidgetHidden() OVERRIDE; |
85 virtual int VisibleWidgetCount() const OVERRIDE; | 87 virtual int VisibleWidgetCount() const OVERRIDE; |
86 virtual bool IsGuest() const OVERRIDE; | 88 virtual bool IsGuest() const OVERRIDE; |
87 virtual StoragePartition* GetStoragePartition() const OVERRIDE; | 89 virtual StoragePartition* GetStoragePartition() const OVERRIDE; |
88 virtual bool FastShutdownIfPossible() OVERRIDE; | 90 virtual bool FastShutdownIfPossible() OVERRIDE; |
89 virtual void DumpHandles() OVERRIDE; | 91 virtual void DumpHandles() OVERRIDE; |
90 virtual base::ProcessHandle GetHandle() const OVERRIDE; | 92 virtual base::ProcessHandle GetHandle() const OVERRIDE; |
91 virtual TransportDIB* GetTransportDIB(TransportDIB::Id dib_id) OVERRIDE; | 93 virtual TransportDIB* GetTransportDIB(TransportDIB::Id dib_id) OVERRIDE; |
92 virtual TransportDIB* MapTransportDIB(TransportDIB::Id dib_id) OVERRIDE; | 94 virtual TransportDIB* MapTransportDIB(TransportDIB::Id dib_id) OVERRIDE; |
93 virtual BrowserContext* GetBrowserContext() const OVERRIDE; | 95 virtual BrowserContext* GetBrowserContext() const OVERRIDE; |
94 virtual bool InSameStoragePartition( | 96 virtual bool InSameStoragePartition( |
95 StoragePartition* partition) const OVERRIDE; | 97 StoragePartition* partition) const OVERRIDE; |
96 virtual int GetID() const OVERRIDE; | 98 virtual int GetID() const OVERRIDE; |
97 virtual bool HasConnection() const OVERRIDE; | 99 virtual bool HasConnection() const OVERRIDE; |
98 virtual RenderWidgetHost* GetRenderWidgetHostByID(int routing_id) | |
99 OVERRIDE; | |
100 virtual void SetIgnoreInputEvents(bool ignore_input_events) OVERRIDE; | 100 virtual void SetIgnoreInputEvents(bool ignore_input_events) OVERRIDE; |
101 virtual bool IgnoreInputEvents() const OVERRIDE; | 101 virtual bool IgnoreInputEvents() const OVERRIDE; |
102 virtual void Attach(RenderWidgetHost* host, int routing_id) | |
103 OVERRIDE; | |
104 virtual void Release(int routing_id) OVERRIDE; | |
105 virtual void Cleanup() OVERRIDE; | 102 virtual void Cleanup() OVERRIDE; |
106 virtual void AddPendingView() OVERRIDE; | 103 virtual void AddPendingView() OVERRIDE; |
107 virtual void RemovePendingView() OVERRIDE; | 104 virtual void RemovePendingView() OVERRIDE; |
108 virtual void SetSuddenTerminationAllowed(bool enabled) OVERRIDE; | 105 virtual void SetSuddenTerminationAllowed(bool enabled) OVERRIDE; |
109 virtual bool SuddenTerminationAllowed() const OVERRIDE; | 106 virtual bool SuddenTerminationAllowed() const OVERRIDE; |
110 virtual IPC::ChannelProxy* GetChannel() OVERRIDE; | 107 virtual IPC::ChannelProxy* GetChannel() OVERRIDE; |
111 virtual RenderWidgetHostsIterator GetRenderWidgetHostsIterator() OVERRIDE; | |
112 virtual bool FastShutdownForPageCount(size_t count) OVERRIDE; | 108 virtual bool FastShutdownForPageCount(size_t count) OVERRIDE; |
113 virtual bool FastShutdownStarted() const OVERRIDE; | 109 virtual bool FastShutdownStarted() const OVERRIDE; |
114 virtual base::TimeDelta GetChildProcessIdleTime() const OVERRIDE; | 110 virtual base::TimeDelta GetChildProcessIdleTime() const OVERRIDE; |
115 virtual void SurfaceUpdated(int32 surface_id) OVERRIDE; | 111 virtual void SurfaceUpdated(int32 surface_id) OVERRIDE; |
116 virtual void ResumeRequestsForView(int route_id) OVERRIDE; | 112 virtual void ResumeRequestsForView(int route_id) OVERRIDE; |
117 | 113 |
118 // IPC::Sender via RenderProcessHost. | 114 // IPC::Sender via RenderProcessHost. |
119 virtual bool Send(IPC::Message* msg) OVERRIDE; | 115 virtual bool Send(IPC::Message* msg) OVERRIDE; |
120 | 116 |
121 // IPC::Listener via RenderProcessHost. | 117 // IPC::Listener via RenderProcessHost. |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 RenderProcessHost* process, | 174 RenderProcessHost* process, |
179 const GURL& url); | 175 const GURL& url); |
180 | 176 |
181 static base::MessageLoop* GetInProcessRendererThreadForTesting(); | 177 static base::MessageLoop* GetInProcessRendererThreadForTesting(); |
182 | 178 |
183 protected: | 179 protected: |
184 // A proxy for our IPC::Channel that lives on the IO thread (see | 180 // A proxy for our IPC::Channel that lives on the IO thread (see |
185 // browser_process.h) | 181 // browser_process.h) |
186 scoped_ptr<IPC::ChannelProxy> channel_; | 182 scoped_ptr<IPC::ChannelProxy> channel_; |
187 | 183 |
188 // The registered render widget hosts. When this list is empty or all NULL, | |
189 // we should delete ourselves | |
190 IDMap<RenderWidgetHost> render_widget_hosts_; | |
191 | |
192 // True if fast shutdown has been performed on this RPH. | 184 // True if fast shutdown has been performed on this RPH. |
193 bool fast_shutdown_started_; | 185 bool fast_shutdown_started_; |
194 | 186 |
195 // True if we've posted a DeleteTask and will be deleted soon. | 187 // True if we've posted a DeleteTask and will be deleted soon. |
196 bool deleting_soon_; | 188 bool deleting_soon_; |
197 | 189 |
198 // The count of currently swapped out but pending RenderViews. We have | 190 // The count of currently swapped out but pending RenderViews. We have |
199 // started to swap these in, so the renderer process should not exit if | 191 // started to swap these in, so the renderer process should not exit if |
200 // this count is non-zero. | 192 // this count is non-zero. |
201 int32 pending_views_; | 193 int32 pending_views_; |
(...skipping 26 matching lines...) Expand all Loading... |
228 CommandLine* renderer_cmd) const; | 220 CommandLine* renderer_cmd) const; |
229 | 221 |
230 // Callers can reduce the RenderProcess' priority. | 222 // Callers can reduce the RenderProcess' priority. |
231 void SetBackgrounded(bool backgrounded); | 223 void SetBackgrounded(bool backgrounded); |
232 | 224 |
233 // Handle termination of our process. | 225 // Handle termination of our process. |
234 void ProcessDied(bool already_dead); | 226 void ProcessDied(bool already_dead); |
235 | 227 |
236 virtual void OnGpuSwitching() OVERRIDE; | 228 virtual void OnGpuSwitching() OVERRIDE; |
237 | 229 |
| 230 // The registered IPC listener objects. When this list is empty, we should |
| 231 // delete ourselves. |
| 232 IDMap<IPC::Listener> listeners_; |
| 233 |
238 // The count of currently visible widgets. Since the host can be a container | 234 // The count of currently visible widgets. Since the host can be a container |
239 // for multiple widgets, it uses this count to determine when it should be | 235 // for multiple widgets, it uses this count to determine when it should be |
240 // backgrounded. | 236 // backgrounded. |
241 int32 visible_widgets_; | 237 int32 visible_widgets_; |
242 | 238 |
243 // Does this process have backgrounded priority. | 239 // Does this process have backgrounded priority. |
244 bool backgrounded_; | 240 bool backgrounded_; |
245 | 241 |
246 // Used to allow a RenderWidgetHost to intercept various messages on the | 242 // Used to allow a RenderWidgetHost to intercept various messages on the |
247 // IO thread. | 243 // IO thread. |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 // Prevents the class from being added as a GpuDataManagerImpl observer more | 317 // Prevents the class from being added as a GpuDataManagerImpl observer more |
322 // than once. | 318 // than once. |
323 bool gpu_observer_registered_; | 319 bool gpu_observer_registered_; |
324 | 320 |
325 DISALLOW_COPY_AND_ASSIGN(RenderProcessHostImpl); | 321 DISALLOW_COPY_AND_ASSIGN(RenderProcessHostImpl); |
326 }; | 322 }; |
327 | 323 |
328 } // namespace content | 324 } // namespace content |
329 | 325 |
330 #endif // CONTENT_BROWSER_RENDERER_HOST_BROWSER_RENDER_PROCESS_HOST_IMPL_H_ | 326 #endif // CONTENT_BROWSER_RENDERER_HOST_BROWSER_RENDER_PROCESS_HOST_IMPL_H_ |
OLD | NEW |