| Index: components/nacl/renderer/manifest_service_channel.h
|
| diff --git a/components/nacl/renderer/manifest_service_channel.h b/components/nacl/renderer/manifest_service_channel.h
|
| index 6dc394fe7f4dd53571781d417844cc3007134a99..e9bc67a76358390e7c0ea75722a8ca14f1824cda 100644
|
| --- a/components/nacl/renderer/manifest_service_channel.h
|
| +++ b/components/nacl/renderer/manifest_service_channel.h
|
| @@ -8,6 +8,10 @@
|
| #include "base/callback.h"
|
| #include "base/macros.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "base/platform_file.h"
|
| +#include "base/process/process.h"
|
| +#include "base/synchronization/lock.h"
|
| #include "ipc/ipc_listener.h"
|
|
|
| namespace base {
|
| @@ -24,6 +28,9 @@ namespace nacl {
|
|
|
| class ManifestServiceChannel : public IPC::Listener {
|
| public:
|
| + typedef base::Callback<void(int32_t, const base::PlatformFile&)>
|
| + OpenResourceCallback;
|
| +
|
| class Delegate {
|
| public:
|
| virtual ~Delegate() {}
|
| @@ -31,7 +38,11 @@ class ManifestServiceChannel : public IPC::Listener {
|
| // Called when PPAPI initialization in the NaCl plugin is finished.
|
| virtual void StartupInitializationComplete() = 0;
|
|
|
| - // TODO(hidehiko): Add OpenResource() here.
|
| + // Called when irt_open_resource() is invoked in the NaCl plugin.
|
| + // Upon completion, callback is invoked with the platform file.
|
| + virtual void OpenResource(
|
| + const std::string& key,
|
| + const OpenResourceCallback& callback) = 0;
|
| };
|
|
|
| ManifestServiceChannel(
|
| @@ -41,6 +52,8 @@ class ManifestServiceChannel : public IPC::Listener {
|
| base::WaitableEvent* waitable_event);
|
| virtual ~ManifestServiceChannel();
|
|
|
| + void Send(IPC::Message* message);
|
| +
|
| // Listener implementation.
|
| virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
|
| virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
|
| @@ -48,11 +61,21 @@ class ManifestServiceChannel : public IPC::Listener {
|
|
|
| private:
|
| void OnStartupInitializationComplete();
|
| + void OnOpenResource(const std::string& key, IPC::Message* reply);
|
| + void DidOpenResource(IPC::Message* reply, int32_t pp_error,
|
| + const base::PlatformFile& platform_file);
|
| + base::ProcessHandle PeerHandle();
|
|
|
| base::Callback<void(int32_t)> connected_callback_;
|
| scoped_ptr<Delegate> delegate_;
|
| scoped_ptr<IPC::SyncChannel> channel_;
|
|
|
| + base::ProcessHandle peer_handle_;
|
| +
|
| + // Note: This should remain the last member so it'll be destroyed and
|
| + // invalidate the weak pointers before any other members are destroyed.
|
| + base::WeakPtrFactory<ManifestServiceChannel> weak_ptr_factory_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(ManifestServiceChannel);
|
| };
|
|
|
|
|