| Index: components/nacl/browser/nacl_host_impl.h
|
| diff --git a/components/nacl/browser/nacl_host_message_filter.h b/components/nacl/browser/nacl_host_impl.h
|
| similarity index 24%
|
| rename from components/nacl/browser/nacl_host_message_filter.h
|
| rename to components/nacl/browser/nacl_host_impl.h
|
| index 561922934b62106c4c1fc6325fa0d56fd1162054..01c1d7b487a9bdaaac717a1f281d481231fd0807 100644
|
| --- a/components/nacl/browser/nacl_host_message_filter.h
|
| +++ b/components/nacl/browser/nacl_host_impl.h
|
| @@ -2,8 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef COMPONENTS_NACL_BROWSER_NACL_HOST_MESSAGE_FILTER_H_
|
| -#define COMPONENTS_NACL_BROWSER_NACL_HOST_MESSAGE_FILTER_H_
|
| +#ifndef COMPONENTS_NACL_BROWSER_NACL_HOST_IMPL_H_
|
| +#define COMPONENTS_NACL_BROWSER_NACL_HOST_IMPL_H_
|
|
|
| #include <vector>
|
|
|
| @@ -11,95 +11,86 @@
|
| #include "base/files/file_path.h"
|
| #include "base/macros.h"
|
| #include "base/memory/weak_ptr.h"
|
| +#include "components/nacl/common/nacl.mojom.h"
|
| #include "content/public/browser/browser_message_filter.h"
|
| +#include "mojo/public/cpp/bindings/binding.h"
|
| #include "ppapi/shared_impl/ppapi_permissions.h"
|
|
|
| class GURL;
|
|
|
| namespace nacl {
|
| -struct NaClLaunchParams;
|
| struct NaClResourcePrefetchResult;
|
| struct PnaclCacheInfo;
|
| -}
|
|
|
| -namespace net {
|
| -class HostResolver;
|
| -class URLRequestContextGetter;
|
| -}
|
| -
|
| -namespace nacl {
|
| -
|
| -// This class filters out incoming Chrome-specific IPC messages for the renderer
|
| -// process on the IPC thread.
|
| -class NaClHostMessageFilter : public content::BrowserMessageFilter {
|
| +// This class implements the NaClHost mojo interface on the IO thread.
|
| +class NaClHostImpl : public mojom::NaClHost,
|
| + public base::RefCountedThreadSafe<NaClHostImpl> {
|
| public:
|
| - NaClHostMessageFilter(int render_process_id,
|
| - bool is_off_the_record,
|
| - const base::FilePath& profile_directory,
|
| - net::URLRequestContextGetter* request_context);
|
| + NaClHostImpl(int render_process_id,
|
| + bool is_off_the_record,
|
| + const base::FilePath& profile_directory,
|
| + mojom::NaClHostRequest request);
|
|
|
| - // content::BrowserMessageFilter methods:
|
| - bool OnMessageReceived(const IPC::Message& message) override;
|
| - void OnChannelClosing() override;
|
| -
|
| - int render_process_id() { return render_process_id_; }
|
| - bool off_the_record() { return off_the_record_; }
|
| - const base::FilePath& profile_directory() const { return profile_directory_; }
|
| - net::HostResolver* GetHostResolver();
|
| + static void Create(int render_process_id,
|
| + bool is_off_the_record,
|
| + const base::FilePath& profile_directory,
|
| + mojom::NaClHostRequest request);
|
|
|
| private:
|
| - friend class content::BrowserThread;
|
| - friend class base::DeleteHelper<NaClHostMessageFilter>;
|
| + friend class base::RefCountedThreadSafe<NaClHostImpl>;
|
| +
|
| + ~NaClHostImpl() override;
|
|
|
| - ~NaClHostMessageFilter() override;
|
| + void OnConnectionError();
|
|
|
| - void OnLaunchNaCl(const NaClLaunchParams& launch_params,
|
| - IPC::Message* reply_msg);
|
| - void BatchOpenResourceFiles(const nacl::NaClLaunchParams& launch_params,
|
| - IPC::Message* reply_msg,
|
| + void LaunchNaCl(mojom::NaClLaunchParamsPtr launch_params,
|
| + const LaunchNaClCallback& callback) override;
|
| + void BatchOpenResourceFiles(mojom::NaClLaunchParamsPtr launch_params,
|
| + const LaunchNaClCallback& callback,
|
| ppapi::PpapiPermissions permissions);
|
| - void LaunchNaClContinuation(
|
| - const nacl::NaClLaunchParams& launch_params,
|
| - IPC::Message* reply_msg);
|
| + void LaunchNaClContinuation(mojom::NaClLaunchParamsPtr launch_params,
|
| + const LaunchNaClCallback& callback);
|
| void LaunchNaClContinuationOnIOThread(
|
| - const nacl::NaClLaunchParams& launch_params,
|
| - IPC::Message* reply_msg,
|
| + mojom::NaClLaunchParamsPtr launch_params,
|
| + const LaunchNaClCallback& callback,
|
| const std::vector<NaClResourcePrefetchResult>& prefetched_resource_files,
|
| ppapi::PpapiPermissions permissions);
|
| - void OnGetReadonlyPnaclFd(const std::string& filename,
|
| - bool is_executable,
|
| - IPC::Message* reply_msg);
|
| - void OnNaClCreateTemporaryFile(IPC::Message* reply_msg);
|
| - void OnNaClGetNumProcessors(int* num_processors);
|
| - void OnGetNexeFd(int render_view_id,
|
| - int pp_instance,
|
| - const PnaclCacheInfo& cache_info);
|
| - void OnTranslationFinished(int instance, bool success);
|
| - void OnMissingArchError(int render_view_id);
|
| - void OnOpenNaClExecutable(int render_view_id,
|
| - const GURL& file_url,
|
| - bool enable_validation_caching,
|
| - IPC::Message* reply_msg);
|
| - void SyncReturnTemporaryFile(IPC::Message* reply_msg,
|
| - base::File file);
|
| - void AsyncReturnTemporaryFile(int pp_instance,
|
| - const base::File& file,
|
| - bool is_hit);
|
| - void OnNaClDebugEnabledForURL(const GURL& nmf_url, bool* should_debug);
|
| -
|
| - int render_process_id_;
|
| + void GetReadonlyPnaclFd(const std::string& filename,
|
| + bool is_executable,
|
| + const GetReadonlyPnaclFdCallback& callback) override;
|
| + void NaClCreateTemporaryFile(
|
| + const NaClCreateTemporaryFileCallback& callback) override;
|
| + void NaClGetNumProcessors(
|
| + const NaClGetNumProcessorsCallback& callback) override;
|
| + void NexeTempFileRequest(
|
| + int render_view_id,
|
| + int pp_instance,
|
| + const PnaclCacheInfo& cache_info,
|
| + const NexeTempFileRequestCallback& callback) override;
|
| + void ReportTranslationFinished(int instance, bool success) override;
|
| + void MissingArchError(int render_view_id) override;
|
| + void OpenNaClExecutable(int render_view_id,
|
| + const GURL& file_url,
|
| + bool enable_validation_caching,
|
| + const OpenNaClExecutableCallback& callback) override;
|
| + void NaClDebugEnabledForURL(
|
| + const GURL& nmf_url,
|
| + const NaClDebugEnabledForURLCallback& callback) override;
|
| +
|
| + const int render_process_id_;
|
|
|
| // off_the_record_ is copied from the profile partly so that it can be
|
| // read on the IO thread.
|
| - bool off_the_record_;
|
| + const bool off_the_record_;
|
| base::FilePath profile_directory_;
|
| - scoped_refptr<net::URLRequestContextGetter> request_context_;
|
| + scoped_refptr<NaClHostImpl> self_;
|
| + mojo::Binding<mojom::NaClHost> binding_;
|
|
|
| - base::WeakPtrFactory<NaClHostMessageFilter> weak_ptr_factory_;
|
| + base::WeakPtrFactory<NaClHostImpl> weak_ptr_factory_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(NaClHostMessageFilter);
|
| + DISALLOW_COPY_AND_ASSIGN(NaClHostImpl);
|
| };
|
|
|
| } // namespace nacl
|
|
|
| -#endif // COMPONENTS_NACL_BROWSER_NACL_HOST_MESSAGE_FILTER_H_
|
| +#endif // COMPONENTS_NACL_BROWSER_NACL_HOST_IMPL_H_
|
|
|