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_PUBLIC_BROWSER_RENDER_PROCESS_HOST_H_ | 5 #ifndef CONTENT_PUBLIC_BROWSER_RENDER_PROCESS_HOST_H_ |
6 #define CONTENT_PUBLIC_BROWSER_RENDER_PROCESS_HOST_H_ | 6 #define CONTENT_PUBLIC_BROWSER_RENDER_PROCESS_HOST_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
11 #include <list> | 11 #include <list> |
12 | 12 |
13 #include "base/id_map.h" | 13 #include "base/id_map.h" |
14 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" |
15 #include "base/process/kill.h" | 15 #include "base/process/kill.h" |
16 #include "base/process/process_handle.h" | 16 #include "base/process/process_handle.h" |
17 #include "base/supports_user_data.h" | 17 #include "base/supports_user_data.h" |
18 #include "content/common/content_export.h" | 18 #include "content/common/content_export.h" |
| 19 #include "content/public/common/bind_interface_helpers.h" |
19 #include "ipc/ipc_channel_proxy.h" | 20 #include "ipc/ipc_channel_proxy.h" |
20 #include "ipc/ipc_sender.h" | 21 #include "ipc/ipc_sender.h" |
21 #include "media/media_features.h" | 22 #include "media/media_features.h" |
22 #include "ui/gfx/native_widget_types.h" | 23 #include "ui/gfx/native_widget_types.h" |
23 | 24 |
24 class GURL; | 25 class GURL; |
25 | 26 |
26 namespace base { | 27 namespace base { |
27 class SharedPersistentMemoryAllocator; | 28 class SharedPersistentMemoryAllocator; |
28 class TimeDelta; | 29 class TimeDelta; |
29 } | 30 } |
30 | 31 |
31 namespace media { | 32 namespace media { |
32 class AudioOutputController; | 33 class AudioOutputController; |
33 } | 34 } |
34 | 35 |
35 namespace service_manager { | |
36 class InterfaceProvider; | |
37 } | |
38 | |
39 namespace content { | 36 namespace content { |
40 class BrowserContext; | 37 class BrowserContext; |
41 class BrowserMessageFilter; | 38 class BrowserMessageFilter; |
42 class RenderProcessHostObserver; | 39 class RenderProcessHostObserver; |
43 class RenderWidgetHost; | 40 class RenderWidgetHost; |
44 class StoragePartition; | 41 class StoragePartition; |
45 struct GlobalRequestID; | 42 struct GlobalRequestID; |
46 | 43 |
47 namespace mojom { | 44 namespace mojom { |
48 class Renderer; | 45 class Renderer; |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 virtual WebRtcStopRtpDumpCallback StartRtpDump( | 266 virtual WebRtcStopRtpDumpCallback StartRtpDump( |
270 bool incoming, | 267 bool incoming, |
271 bool outgoing, | 268 bool outgoing, |
272 const WebRtcRtpPacketCallback& packet_callback) = 0; | 269 const WebRtcRtpPacketCallback& packet_callback) = 0; |
273 #endif | 270 #endif |
274 | 271 |
275 // Tells the ResourceDispatcherHost to resume a deferred navigation without | 272 // Tells the ResourceDispatcherHost to resume a deferred navigation without |
276 // transferring it to a new renderer process. | 273 // transferring it to a new renderer process. |
277 virtual void ResumeDeferredNavigation(const GlobalRequestID& request_id) = 0; | 274 virtual void ResumeDeferredNavigation(const GlobalRequestID& request_id) = 0; |
278 | 275 |
279 // Returns the service_manager::InterfaceProvider the browser process can use | 276 // Binds interfaces exposed to the browser process from the renderer. |
280 // to bind | 277 virtual void BindInterface(const std::string& interface_name, |
281 // interfaces exposed to it from the renderer. | 278 mojo::ScopedMessagePipeHandle interface_pipe) = 0; |
282 virtual service_manager::InterfaceProvider* GetRemoteInterfaces() = 0; | |
283 | 279 |
284 // Extracts any persistent-memory-allocator used for renderer metrics. | 280 // Extracts any persistent-memory-allocator used for renderer metrics. |
285 // Ownership is passed to the caller. To support sharing of histogram data | 281 // Ownership is passed to the caller. To support sharing of histogram data |
286 // between the Renderer and the Browser, the allocator is created when the | 282 // between the Renderer and the Browser, the allocator is created when the |
287 // process is created and later retrieved by the SubprocessMetricsProvider | 283 // process is created and later retrieved by the SubprocessMetricsProvider |
288 // for management. | 284 // for management. |
289 virtual std::unique_ptr<base::SharedPersistentMemoryAllocator> | 285 virtual std::unique_ptr<base::SharedPersistentMemoryAllocator> |
290 TakeMetricsAllocator() = 0; | 286 TakeMetricsAllocator() = 0; |
291 | 287 |
292 // PlzNavigate | 288 // PlzNavigate |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 static void SetMaxRendererProcessCount(size_t count); | 409 static void SetMaxRendererProcessCount(size_t count); |
414 | 410 |
415 // Returns the current maximum number of renderer process hosts kept by the | 411 // Returns the current maximum number of renderer process hosts kept by the |
416 // content module. | 412 // content module. |
417 static size_t GetMaxRendererProcessCount(); | 413 static size_t GetMaxRendererProcessCount(); |
418 }; | 414 }; |
419 | 415 |
420 } // namespace content. | 416 } // namespace content. |
421 | 417 |
422 #endif // CONTENT_PUBLIC_BROWSER_RENDER_PROCESS_HOST_H_ | 418 #endif // CONTENT_PUBLIC_BROWSER_RENDER_PROCESS_HOST_H_ |
OLD | NEW |