| OLD | NEW | 
|   1 // Copyright 2014 The Chromium Authors. All rights reserved. |   1 // Copyright 2014 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_MOJO_MOJO_RENDER_PROCESS_OBSERVER_H_ |   5 #ifndef CONTENT_RENDERER_MOJO_MOJO_RENDER_PROCESS_OBSERVER_H_ | 
|   6 #define CONTENT_RENDERER_MOJO_MOJO_RENDER_PROCESS_OBSERVER_H_ |   6 #define CONTENT_RENDERER_MOJO_MOJO_RENDER_PROCESS_OBSERVER_H_ | 
|   7  |   7  | 
|   8 #include "base/memory/scoped_ptr.h" |   8 #include "base/memory/scoped_ptr.h" | 
 |   9 #include "content/common/mojo/render_process.mojom.h" | 
|   9 #include "content/public/renderer/render_process_observer.h" |  10 #include "content/public/renderer/render_process_observer.h" | 
|  10 #include "ipc/ipc_platform_file.h" |  11 #include "ipc/ipc_platform_file.h" | 
 |  12 #include "mojo/public/bindings/remote_ptr.h" | 
|  11  |  13  | 
|  12 namespace mojo { |  14 namespace mojo { | 
|  13 namespace embedder{ |  15 namespace embedder{ | 
|  14 struct ChannelInfo; |  16 struct ChannelInfo; | 
|  15 } |  17 } | 
|  16 } |  18 } | 
|  17  |  19  | 
|  18 namespace content { |  20 namespace content { | 
|  19  |  21  | 
|  20 class MojoChannelInit; |  22 class MojoChannelInit; | 
|  21 class RenderThread; |  23 class RenderThread; | 
|  22  |  24  | 
|  23 // RenderProcessObserver implementation that initializes the mojo channel when |  25 // RenderProcessObserver implementation that initializes the mojo channel when | 
|  24 // the right IPC is seen. |  26 // the right IPC is seen. | 
|  25 // MojoRenderProcessObserver deletes itself when the RenderProcess is shutdown. |  27 // MojoRenderProcessObserver deletes itself when the RenderProcess is shutdown. | 
|  26 class MojoRenderProcessObserver : public content::RenderProcessObserver { |  28 class MojoRenderProcessObserver | 
 |  29     : public content::RenderProcessObserver, | 
 |  30       public RenderProcessMojo { | 
|  27  public: |  31  public: | 
|  28   MojoRenderProcessObserver(RenderThread* render_thread); |  32   MojoRenderProcessObserver(RenderThread* render_thread); | 
|  29  |  33  | 
|  30   // RenderProcessObserver overrides: |  34   // RenderProcessObserver overrides: | 
|  31   virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE; |  35   virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE; | 
|  32   virtual void OnRenderProcessShutdown() OVERRIDE; |  36   virtual void OnRenderProcessShutdown() OVERRIDE; | 
|  33  |  37  | 
|  34  private: |  38  private: | 
|  35   virtual ~MojoRenderProcessObserver(); |  39   virtual ~MojoRenderProcessObserver(); | 
|  36  |  40  | 
|  37   void OnChannelCreated(const IPC::PlatformFileForTransit& file); |  41   void OnChannelCreated(const IPC::PlatformFileForTransit& file); | 
|  38  |  42  | 
 |  43   // RenderProcessMojo overrides: | 
 |  44   virtual void SetWebUIHandle( | 
 |  45       int32 view_routing_id, | 
 |  46       mojo::ScopedMessagePipeHandle web_ui_handle) OVERRIDE; | 
 |  47  | 
|  39   content::RenderThread* render_thread_; |  48   content::RenderThread* render_thread_; | 
|  40  |  49  | 
|  41   scoped_ptr<MojoChannelInit> channel_init_; |  50   scoped_ptr<MojoChannelInit> channel_init_; | 
|  42  |  51  | 
 |  52   mojo::RemotePtr<content::RenderProcessHostMojo> render_process_host_mojo_; | 
 |  53  | 
|  43   DISALLOW_COPY_AND_ASSIGN(MojoRenderProcessObserver); |  54   DISALLOW_COPY_AND_ASSIGN(MojoRenderProcessObserver); | 
|  44 }; |  55 }; | 
|  45  |  56  | 
|  46 }  // namespace content |  57 }  // namespace content | 
|  47  |  58  | 
|  48 #endif  // CONTENT_RENDERER_MOJO_MOJO_RENDER_PROCESS_OBSERVER_H_ |  59 #endif  // CONTENT_RENDERER_MOJO_MOJO_RENDER_PROCESS_OBSERVER_H_ | 
| OLD | NEW |