Index: content/gpu/gpu_service_factory.h |
diff --git a/content/gpu/gpu_service_factory.h b/content/gpu/gpu_service_factory.h |
index 5d5d797fc1a083ac0a8111f3b44a2817195ae4f2..8edca6b93ad3bed95441fc86ccef3796540df49a 100644 |
--- a/content/gpu/gpu_service_factory.h |
+++ b/content/gpu/gpu_service_factory.h |
@@ -6,20 +6,37 @@ |
#define CONTENT_GPU_GPU_SERVICE_FACTORY_H_ |
#include "base/macros.h" |
+#include "base/memory/ref_counted.h" |
+#include "base/memory/weak_ptr.h" |
+#include "base/single_thread_task_runner.h" |
#include "content/child/service_factory.h" |
+namespace media { |
+class MediaGpuChannelManager; |
+} |
+ |
namespace content { |
// Customization of ServiceFactory for the GPU process. |
class GpuServiceFactory : public ServiceFactory { |
public: |
- GpuServiceFactory(); |
+ explicit GpuServiceFactory( |
+ base::WeakPtr<media::MediaGpuChannelManager> media_gpu_channel_manager); |
~GpuServiceFactory() override; |
// ServiceFactory overrides: |
void RegisterServices(ServiceMap* services) override; |
private: |
+#if defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) |
+ // Task runner we were constructed on, and that |media_gpu_channel_manager_| |
+ // must be accessed from (the GPU main thread task runner). We expect |
+ // RegisterServices() to be called on this task runner as well, but the |
+ // implementation doesn't care. |
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
+ base::WeakPtr<media::MediaGpuChannelManager> media_gpu_channel_manager_; |
+#endif |
+ |
DISALLOW_COPY_AND_ASSIGN(GpuServiceFactory); |
}; |