diff options
author | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-22 22:42:08 +0000 |
---|---|---|
committer | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-22 22:42:08 +0000 |
commit | 16499d49e7906aece538a9ac027a7805073f65e9 (patch) | |
tree | 9b095de4b33f1ab04be95bf9af7e76cc3afd749e /components | |
parent | e89f1bf59f0c768f2b02001a88e2a391f15bbd80 (diff) | |
download | chromium_src-16499d49e7906aece538a9ac027a7805073f65e9.zip chromium_src-16499d49e7906aece538a9ac027a7805073f65e9.tar.gz chromium_src-16499d49e7906aece538a9ac027a7805073f65e9.tar.bz2 |
Pepper: Move some manifest processing for refactor.
This moves some of the manifest processing logic outside the trusted plugin.
This reduces the number of things we need to expose in PPB_NaCl_Private.
BUG=239656
Review URL: https://codereview.chromium.org/243353002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@265394 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
-rw-r--r-- | components/nacl/renderer/nexe_load_manager.cc | 13 | ||||
-rw-r--r-- | components/nacl/renderer/nexe_load_manager.h | 2 | ||||
-rw-r--r-- | components/nacl/renderer/ppb_nacl_private_impl.cc | 25 |
3 files changed, 22 insertions, 18 deletions
diff --git a/components/nacl/renderer/nexe_load_manager.cc b/components/nacl/renderer/nexe_load_manager.cc index 8cbd1b3..942aea0 100644 --- a/components/nacl/renderer/nexe_load_manager.cc +++ b/components/nacl/renderer/nexe_load_manager.cc @@ -582,6 +582,19 @@ bool NexeLoadManager::RequestNaClManifest(const std::string& url, return false; } +void NexeLoadManager::ProcessNaClManifest(const std::string& program_url) { + GURL gurl(program_url); + DCHECK(gurl.is_valid()); + if (gurl.is_valid()) + is_installed_ = gurl.SchemeIs("chrome-extension"); + set_nacl_ready_state(PP_NACL_READY_STATE_LOADING); + ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( + FROM_HERE, + base::Bind(&NexeLoadManager::DispatchEvent, + weak_factory_.GetWeakPtr(), + ProgressEvent(PP_NACL_EVENT_PROGRESS))); +} + void NexeLoadManager::ReportDeadNexe() { if (nacl_ready_state_ == PP_NACL_READY_STATE_DONE && // After loadEnd !nexe_error_reported_) { diff --git a/components/nacl/renderer/nexe_load_manager.h b/components/nacl/renderer/nexe_load_manager.h index 4b0f3a1..a094f07 100644 --- a/components/nacl/renderer/nexe_load_manager.h +++ b/components/nacl/renderer/nexe_load_manager.h @@ -89,7 +89,6 @@ class NexeLoadManager { void LogToConsole(const std::string& message); bool is_installed() const { return is_installed_; } - void set_is_installed(bool installed) { is_installed_ = installed; } int32_t exit_status() const { return exit_status_; } void set_exit_status(int32_t exit_status); @@ -101,6 +100,7 @@ class NexeLoadManager { int64_t nexe_size() const { return nexe_size_; } bool RequestNaClManifest(const std::string& url, bool* is_data_uri); + void ProcessNaClManifest(const std::string& program_url); // URL resolution support. // plugin_base_url is the URL used for resolving relative URLs used in diff --git a/components/nacl/renderer/ppb_nacl_private_impl.cc b/components/nacl/renderer/ppb_nacl_private_impl.cc index 70d9bac..46ff30d 100644 --- a/components/nacl/renderer/ppb_nacl_private_impl.cc +++ b/components/nacl/renderer/ppb_nacl_private_impl.cc @@ -670,13 +670,6 @@ PP_NaClReadyState GetNaClReadyState(PP_Instance instance) { return PP_NACL_READY_STATE_UNSENT; } -void SetNaClReadyState(PP_Instance instance, PP_NaClReadyState ready_state) { - nacl::NexeLoadManager* load_manager = GetNexeLoadManager(instance); - DCHECK(load_manager); - if (load_manager) - load_manager->set_nacl_ready_state(ready_state); -} - PP_Bool GetIsInstalled(PP_Instance instance) { nacl::NexeLoadManager* load_manager = GetNexeLoadManager(instance); DCHECK(load_manager); @@ -685,13 +678,6 @@ PP_Bool GetIsInstalled(PP_Instance instance) { return PP_FALSE; } -void SetIsInstalled(PP_Instance instance, PP_Bool installed) { - nacl::NexeLoadManager* load_manager = GetNexeLoadManager(instance); - DCHECK(load_manager); - if (load_manager) - load_manager->set_is_installed(PP_ToBool(installed)); -} - int32_t GetExitStatus(PP_Instance instance) { nacl::NexeLoadManager* load_manager = GetNexeLoadManager(instance); DCHECK(load_manager); @@ -773,6 +759,12 @@ PP_Var ParseDataURL(const char* data_url) { return ppapi::StringVar::StringToPPVar(data); } +void ProcessNaClManifest(PP_Instance instance, const char* program_url) { + nacl::NexeLoadManager* load_manager = GetNexeLoadManager(instance); + if (load_manager) + load_manager->ProcessNaClManifest(program_url); +} + const PPB_NaCl_Private nacl_interface = { &LaunchSelLdr, &StartPpapiProxy, @@ -799,9 +791,7 @@ const PPB_NaCl_Private nacl_interface = { &GetUrlScheme, &LogToConsole, &GetNaClReadyState, - &SetNaClReadyState, &GetIsInstalled, - &SetIsInstalled, &GetExitStatus, &SetExitStatus, &Vlog, @@ -810,7 +800,8 @@ const PPB_NaCl_Private nacl_interface = { &RequestNaClManifest, &GetManifestBaseURL, &ResolvesRelativeToPluginBaseURL, - &ParseDataURL + &ParseDataURL, + &ProcessNaClManifest }; } // namespace |