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_RENDER_PROCESS_HOST_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_ |
6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_ | 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
11 #include <map> | 11 #include <map> |
12 #include <memory> | 12 #include <memory> |
13 #include <queue> | 13 #include <queue> |
14 #include <string> | 14 #include <string> |
15 | 15 |
16 #include "base/macros.h" | 16 #include "base/macros.h" |
17 #include "base/memory/ref_counted.h" | 17 #include "base/memory/ref_counted.h" |
18 #include "base/observer_list.h" | 18 #include "base/observer_list.h" |
19 #include "base/process/process.h" | 19 #include "base/process/process.h" |
20 #include "base/single_thread_task_runner.h" | 20 #include "base/single_thread_task_runner.h" |
21 #include "base/synchronization/waitable_event.h" | 21 #include "base/synchronization/waitable_event.h" |
22 #include "build/build_config.h" | 22 #include "build/build_config.h" |
| 23 #include "content/browser/android/synchronous_compositor_observer.h" |
23 #include "content/browser/child_process_launcher.h" | 24 #include "content/browser/child_process_launcher.h" |
24 #include "content/browser/dom_storage/session_storage_namespace_impl.h" | 25 #include "content/browser/dom_storage/session_storage_namespace_impl.h" |
25 #include "content/browser/power_monitor_message_broadcaster.h" | 26 #include "content/browser/power_monitor_message_broadcaster.h" |
26 #include "content/browser/webrtc/webrtc_eventlog_host.h" | 27 #include "content/browser/webrtc/webrtc_eventlog_host.h" |
27 #include "content/common/associated_interfaces.mojom.h" | 28 #include "content/common/associated_interfaces.mojom.h" |
28 #include "content/common/content_export.h" | 29 #include "content/common/content_export.h" |
29 #include "content/common/renderer.mojom.h" | 30 #include "content/common/renderer.mojom.h" |
30 #include "content/public/browser/render_process_host.h" | 31 #include "content/public/browser/render_process_host.h" |
31 #include "content/public/common/mojo_shell_connection.h" | 32 #include "content/public/common/mojo_shell_connection.h" |
32 #include "ipc/ipc_channel_proxy.h" | 33 #include "ipc/ipc_channel_proxy.h" |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 public ChildProcessLauncher::Client, | 107 public ChildProcessLauncher::Client, |
107 public ui::GpuSwitchingObserver, | 108 public ui::GpuSwitchingObserver, |
108 public NON_EXPORTED_BASE(mojom::RouteProvider), | 109 public NON_EXPORTED_BASE(mojom::RouteProvider), |
109 public NON_EXPORTED_BASE(mojom::AssociatedInterfaceProvider) { | 110 public NON_EXPORTED_BASE(mojom::AssociatedInterfaceProvider) { |
110 public: | 111 public: |
111 RenderProcessHostImpl(BrowserContext* browser_context, | 112 RenderProcessHostImpl(BrowserContext* browser_context, |
112 StoragePartitionImpl* storage_partition_impl, | 113 StoragePartitionImpl* storage_partition_impl, |
113 bool is_for_guests_only); | 114 bool is_for_guests_only); |
114 ~RenderProcessHostImpl() override; | 115 ~RenderProcessHostImpl() override; |
115 | 116 |
| 117 SynchronousCompositorObserver* GetFilter() override; |
| 118 |
116 // RenderProcessHost implementation (public portion). | 119 // RenderProcessHost implementation (public portion). |
117 void EnableSendQueue() override; | 120 void EnableSendQueue() override; |
118 bool Init() override; | 121 bool Init() override; |
119 int GetNextRoutingID() override; | 122 int GetNextRoutingID() override; |
120 void AddRoute(int32_t routing_id, IPC::Listener* listener) override; | 123 void AddRoute(int32_t routing_id, IPC::Listener* listener) override; |
121 void RemoveRoute(int32_t routing_id) override; | 124 void RemoveRoute(int32_t routing_id) override; |
122 void AddObserver(RenderProcessHostObserver* observer) override; | 125 void AddObserver(RenderProcessHostObserver* observer) override; |
123 void RemoveObserver(RenderProcessHostObserver* observer) override; | 126 void RemoveObserver(RenderProcessHostObserver* observer) override; |
124 void ShutdownForBadMessage() override; | 127 void ShutdownForBadMessage() override; |
125 void WidgetRestored() override; | 128 void WidgetRestored() override; |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 // Whether this process currently has backgrounded priority. Tracked so that | 452 // Whether this process currently has backgrounded priority. Tracked so that |
450 // UpdateProcessPriority() can avoid redundantly setting the priority. | 453 // UpdateProcessPriority() can avoid redundantly setting the priority. |
451 bool is_process_backgrounded_; | 454 bool is_process_backgrounded_; |
452 | 455 |
453 // Used to allow a RenderWidgetHost to intercept various messages on the | 456 // Used to allow a RenderWidgetHost to intercept various messages on the |
454 // IO thread. | 457 // IO thread. |
455 scoped_refptr<RenderWidgetHelper> widget_helper_; | 458 scoped_refptr<RenderWidgetHelper> widget_helper_; |
456 | 459 |
457 scoped_refptr<RenderFrameMessageFilter> render_frame_message_filter_; | 460 scoped_refptr<RenderFrameMessageFilter> render_frame_message_filter_; |
458 | 461 |
| 462 SynchronousCompositorObserver* filter_; |
| 463 |
459 // The filter for MessagePort messages coming from the renderer. | 464 // The filter for MessagePort messages coming from the renderer. |
460 scoped_refptr<MessagePortMessageFilter> message_port_message_filter_; | 465 scoped_refptr<MessagePortMessageFilter> message_port_message_filter_; |
461 | 466 |
462 // The filter for Web Notification messages coming from the renderer. Holds a | 467 // The filter for Web Notification messages coming from the renderer. Holds a |
463 // closure per notification that must be freed when the notification closes. | 468 // closure per notification that must be freed when the notification closes. |
464 scoped_refptr<NotificationMessageFilter> notification_message_filter_; | 469 scoped_refptr<NotificationMessageFilter> notification_message_filter_; |
465 | 470 |
466 // Used in single-process mode. | 471 // Used in single-process mode. |
467 std::unique_ptr<base::Thread> in_process_renderer_; | 472 std::unique_ptr<base::Thread> in_process_renderer_; |
468 | 473 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 instance_weak_factory_; | 594 instance_weak_factory_; |
590 | 595 |
591 base::WeakPtrFactory<RenderProcessHostImpl> weak_factory_; | 596 base::WeakPtrFactory<RenderProcessHostImpl> weak_factory_; |
592 | 597 |
593 DISALLOW_COPY_AND_ASSIGN(RenderProcessHostImpl); | 598 DISALLOW_COPY_AND_ASSIGN(RenderProcessHostImpl); |
594 }; | 599 }; |
595 | 600 |
596 } // namespace content | 601 } // namespace content |
597 | 602 |
598 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_ | 603 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_ |
OLD | NEW |