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_RENDERER_RENDER_THREAD_IMPL_H_ | 5 #ifndef CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ |
6 #define CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ | 6 #define CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 // | 128 // |
129 // Most of the communication occurs in the form of IPC messages. They are | 129 // Most of the communication occurs in the form of IPC messages. They are |
130 // routed to the RenderThread according to the routing IDs of the messages. | 130 // routed to the RenderThread according to the routing IDs of the messages. |
131 // The routing IDs correspond to RenderView instances. | 131 // The routing IDs correspond to RenderView instances. |
132 class CONTENT_EXPORT RenderThreadImpl | 132 class CONTENT_EXPORT RenderThreadImpl |
133 : public RenderThread, | 133 : public RenderThread, |
134 public ChildThreadImpl, | 134 public ChildThreadImpl, |
135 public GpuChannelHostFactory, | 135 public GpuChannelHostFactory, |
136 NON_EXPORTED_BASE(public CompositorDependencies) { | 136 NON_EXPORTED_BASE(public CompositorDependencies) { |
137 public: | 137 public: |
| 138 static RenderThreadImpl* Create(const InProcessChildThreadParams& params); |
| 139 static RenderThreadImpl* Create( |
| 140 scoped_ptr<base::MessageLoop> main_message_loop); |
138 static RenderThreadImpl* current(); | 141 static RenderThreadImpl* current(); |
139 | 142 |
140 explicit RenderThreadImpl(const InProcessChildThreadParams& params); | |
141 explicit RenderThreadImpl(scoped_ptr<base::MessageLoop> main_message_loop); | |
142 ~RenderThreadImpl() override; | 143 ~RenderThreadImpl() override; |
143 void Shutdown() override; | 144 void Shutdown() override; |
144 | 145 |
145 // When initializing WebKit, ensure that any schemes needed for the content | 146 // When initializing WebKit, ensure that any schemes needed for the content |
146 // module are registered properly. Static to allow sharing with tests. | 147 // module are registered properly. Static to allow sharing with tests. |
147 static void RegisterSchemes(); | 148 static void RegisterSchemes(); |
148 | 149 |
149 // Notify V8 that the date/time configuration of the system might have | 150 // Notify V8 that the date/time configuration of the system might have |
150 // changed. | 151 // changed. |
151 static void NotifyTimezoneChange(); | 152 static void NotifyTimezoneChange(); |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 | 414 |
414 void AddEmbeddedWorkerRoute(int32 routing_id, IPC::Listener* listener); | 415 void AddEmbeddedWorkerRoute(int32 routing_id, IPC::Listener* listener); |
415 void RemoveEmbeddedWorkerRoute(int32 routing_id); | 416 void RemoveEmbeddedWorkerRoute(int32 routing_id); |
416 | 417 |
417 void RegisterPendingRenderFrameConnect( | 418 void RegisterPendingRenderFrameConnect( |
418 int routing_id, | 419 int routing_id, |
419 mojo::InterfaceRequest<mojo::ServiceProvider> services, | 420 mojo::InterfaceRequest<mojo::ServiceProvider> services, |
420 mojo::ServiceProviderPtr exposed_services); | 421 mojo::ServiceProviderPtr exposed_services); |
421 | 422 |
422 protected: | 423 protected: |
| 424 RenderThreadImpl(const InProcessChildThreadParams& params, |
| 425 scoped_ptr<scheduler::RendererScheduler> scheduler); |
| 426 RenderThreadImpl(scoped_ptr<base::MessageLoop> main_message_loop, |
| 427 scoped_ptr<scheduler::RendererScheduler> scheduler); |
423 virtual void SetResourceDispatchTaskQueue( | 428 virtual void SetResourceDispatchTaskQueue( |
424 const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue); | 429 const scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue); |
425 | 430 |
426 private: | 431 private: |
427 // ChildThread | 432 // ChildThread |
428 bool OnControlMessageReceived(const IPC::Message& msg) override; | 433 bool OnControlMessageReceived(const IPC::Message& msg) override; |
429 | 434 |
430 // GpuChannelHostFactory implementation: | 435 // GpuChannelHostFactory implementation: |
431 bool IsMainThread() override; | 436 bool IsMainThread() override; |
432 scoped_refptr<base::SingleThreadTaskRunner> GetIOThreadTaskRunner() override; | 437 scoped_refptr<base::SingleThreadTaskRunner> GetIOThreadTaskRunner() override; |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
644 DISALLOW_COPY_AND_ASSIGN(RenderThreadImpl); | 649 DISALLOW_COPY_AND_ASSIGN(RenderThreadImpl); |
645 }; | 650 }; |
646 | 651 |
647 #if defined(COMPILER_MSVC) | 652 #if defined(COMPILER_MSVC) |
648 #pragma warning(pop) | 653 #pragma warning(pop) |
649 #endif | 654 #endif |
650 | 655 |
651 } // namespace content | 656 } // namespace content |
652 | 657 |
653 #endif // CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ | 658 #endif // CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ |
OLD | NEW |