Index: components/nacl/loader/nacl_ipc_adapter.h |
diff --git a/components/nacl/loader/nacl_ipc_adapter.h b/components/nacl/loader/nacl_ipc_adapter.h |
index d361995a8988da9ce4eb9529a8e2542941199da9..b2c0f3cec766bfd3315ffbf048c0e51bd05edf38 100644 |
--- a/components/nacl/loader/nacl_ipc_adapter.h |
+++ b/components/nacl/loader/nacl_ipc_adapter.h |
@@ -11,6 +11,7 @@ |
#include <vector> |
#include "base/basictypes.h" |
+#include "base/callback.h" |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/scoped_vector.h" |
@@ -20,6 +21,7 @@ |
#include "base/synchronization/lock.h" |
#include "base/task_runner.h" |
#include "ipc/ipc_listener.h" |
+#include "ipc/ipc_platform_file.h" |
#include "ppapi/c/pp_stdint.h" |
#include "ppapi/proxy/nacl_message_scanner.h" |
@@ -112,6 +114,22 @@ class NaClIPCAdapter : public base::RefCountedThreadSafe<NaClIPCAdapter>, |
virtual void OnChannelConnected(int32 peer_pid) OVERRIDE; |
virtual void OnChannelError() OVERRIDE; |
+ typedef base::Callback<void(IPC::PlatformFileForTransit, base::FilePath)> |
+ ResolveFileTokenReplyCallback; |
+ |
+ typedef base::Callback<void(uint64_t, // file_token_lo |
+ uint64_t, // file_token_hi |
+ ResolveFileTokenReplyCallback)> |
+ ResolveFileTokenCallback; |
+ |
+ // Sets a callback to be invoked for resolving file tokens received from the |
+ // renderer. When the file token is resolvded, the |
Mark Seaborn
2014/09/05 15:43:46
"resolved"
teravest
2014/09/06 02:25:15
Done.
|
+ // ResolveFileTokenReplyCallback passed inside the ResolveFileTokenCallback |
+ // will be invoked. |
+ void set_resolve_file_token_callback(ResolveFileTokenCallback cb) { |
+ resolve_file_token_cb_ = cb; |
+ } |
+ |
private: |
friend class base::RefCountedThreadSafe<NaClIPCAdapter>; |
@@ -158,6 +176,12 @@ class NaClIPCAdapter : public base::RefCountedThreadSafe<NaClIPCAdapter>, |
virtual ~NaClIPCAdapter(); |
+ void OnFileTokenResolved(const IPC::Message& orig_msg, |
+ IPC::PlatformFileForTransit ipc_fd, |
+ base::FilePath file_path); |
+ |
+ bool RewriteMessage(const IPC::Message& msg, uint32_t type); |
+ |
// Returns 0 if nothing is waiting. |
int LockedReceive(NaClImcTypedMsgHdr* msg); |
@@ -182,6 +206,9 @@ class NaClIPCAdapter : public base::RefCountedThreadSafe<NaClIPCAdapter>, |
base::ConditionVariable cond_var_; |
scoped_refptr<base::TaskRunner> task_runner_; |
+ scoped_refptr<base::TaskRunner> main_task_runner_; |
+ |
+ ResolveFileTokenCallback resolve_file_token_cb_; |
// To be accessed inside of lock_ only. |
LockedData locked_data_; |