summaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-22 22:42:08 +0000
committerteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-22 22:42:08 +0000
commit16499d49e7906aece538a9ac027a7805073f65e9 (patch)
tree9b095de4b33f1ab04be95bf9af7e76cc3afd749e /components
parente89f1bf59f0c768f2b02001a88e2a391f15bbd80 (diff)
downloadchromium_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.cc13
-rw-r--r--components/nacl/renderer/nexe_load_manager.h2
-rw-r--r--components/nacl/renderer/ppb_nacl_private_impl.cc25
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