Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: chrome/nacl/nacl_listener.h

Issue 10214007: Add an IPC channel between the NaCl loader process and the renderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 CHROME_NACL_NACL_LISTENER_H_ 5 #ifndef CHROME_NACL_NACL_LISTENER_H_
6 #define CHROME_NACL_NACL_LISTENER_H_ 6 #define CHROME_NACL_NACL_LISTENER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/synchronization/waitable_event.h" 12 #include "base/synchronization/waitable_event.h"
13 #include "base/threading/thread.h" 13 #include "base/threading/thread.h"
14 #include "chrome/common/nacl_types.h" 14 #include "chrome/common/nacl_types.h"
15 #include "ipc/ipc_channel.h" 15 #include "ipc/ipc_channel.h"
16 16
17 namespace IPC { 17 namespace IPC {
18 class SyncChannel; 18 class SyncChannel;
19 class SyncMessageFilter; 19 class SyncMessageFilter;
20 } 20 }
21 21
22 struct NaClDesc;
23
22 // The NaClListener is an IPC channel listener that waits for a 24 // The NaClListener is an IPC channel listener that waits for a
23 // request to start a NaCl module. 25 // request to start a NaCl module.
24 class NaClListener : public IPC::Channel::Listener { 26 class NaClListener : public IPC::Channel::Listener {
25 public: 27 public:
26 NaClListener(); 28 NaClListener();
27 virtual ~NaClListener(); 29 virtual ~NaClListener();
28 // Listen for a request to launch a NaCl module. 30 // Listen for a request to launch a NaCl module.
29 void Listen(); 31 void Listen();
30 void set_debug_enabled(bool value) {debug_enabled_ = value;} 32 void set_debug_enabled(bool value) {debug_enabled_ = value;}
31 33
32 bool Send(IPC::Message* msg); 34 bool Send(IPC::Message* msg);
33 35
34 private: 36 private:
35 void OnMsgStart(const nacl::NaClStartParams& params); 37 void OnMsgStart(const nacl::NaClStartParams& params);
36 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; 38 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
37 39
38 // A channel back to the browser. 40 // A channel back to the browser.
39 scoped_ptr<IPC::SyncChannel> channel_; 41 scoped_ptr<IPC::SyncChannel> channel_;
40 42
41 // A filter that allows other threads to use the channel. 43 // A filter that allows other threads to use the channel.
42 scoped_refptr<IPC::SyncMessageFilter> filter_; 44 scoped_refptr<IPC::SyncMessageFilter> filter_;
43 45
44 base::WaitableEvent shutdown_event_; 46 base::WaitableEvent shutdown_event_;
45 base::Thread io_thread_; 47 base::Thread io_thread_;
46 48
47 // Used to identify what thread we're on. 49 // Used to identify what thread we're on.
48 MessageLoop* main_loop_; 50 MessageLoop* main_loop_;
49 51
52 NaClDesc* nacl_ppapi_channel_;
53
50 bool debug_enabled_; 54 bool debug_enabled_;
51 55
52 DISALLOW_COPY_AND_ASSIGN(NaClListener); 56 DISALLOW_COPY_AND_ASSIGN(NaClListener);
53 }; 57 };
54 58
55 #endif // CHROME_NACL_NACL_LISTENER_H_ 59 #endif // CHROME_NACL_NACL_LISTENER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698