Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: ppapi/native_client/src/trusted/plugin/plugin.cc

Issue 8974020: Change pnacl to read all resources from the extension. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/native_client/src/trusted/plugin/plugin.cc
===================================================================
--- ppapi/native_client/src/trusted/plugin/plugin.cc (revision 115141)
+++ ppapi/native_client/src/trusted/plugin/plugin.cc (working copy)
@@ -866,7 +866,10 @@
const char* const Plugin::kNaClMIMEType = "application/x-nacl";
-bool Plugin::IsForeignMIMEType() const {
+bool Plugin::NexeIsContentHandler() const {
+ // Tests if the MIME type is not a NaCl MIME type.
+ // If the MIME type is foreign, then this NEXE is being used as a content
+ // type handler rather than directly by an HTML document.
return
!mime_type().empty() &&
mime_type() != kNaClMIMEType;
@@ -936,10 +939,14 @@
}
const char* manifest_url = LookupArgument(kSrcManifestAttribute);
- // If the MIME type is foreign, then 'src' will be the URL for the content
- // and 'nacl' will be the URL for the manifest.
- if (IsForeignMIMEType()) {
+ if (NexeIsContentHandler()) {
+ // For content handlers 'src' will be the URL for the content
+ // and 'nacl' will be the URL for the manifest.
manifest_url = LookupArgument(kNaClManifestAttribute);
+ // For content handlers the NEXE runs in the security context of the
+ // content it is rendering and the NEXE itself appears to be a
+ // cross-origin resource stored in a Chrome extension. We request
+ // universal access during the NEXE load so that we can read the NEXE.
}
// Use the document URL as the base for resolving relative URLs to find the
// manifest. This takes into account the setting of <base> tags that
@@ -1636,6 +1643,7 @@
CHECK(
nexe_downloader_.Open(program_url,
DOWNLOAD_TO_FILE,
+ NexeIsContentHandler(),
open_callback,
&UpdateDownloadProgress));
return;
@@ -1677,6 +1685,7 @@
// Will always call the callback on success or failure.
CHECK(nexe_downloader_.Open(nmf_resolved_url.AsString(),
DOWNLOAD_TO_BUFFER,
+ NexeIsContentHandler(),
open_callback,
NULL));
} else {
@@ -1685,6 +1694,7 @@
// Will always call the callback on success or failure.
CHECK(nexe_downloader_.Open(nmf_resolved_url.AsString(),
DOWNLOAD_TO_FILE,
+ NexeIsContentHandler(),
open_callback,
NULL));
}
@@ -1755,8 +1765,10 @@
bool Plugin::StreamAsFile(const nacl::string& url,
+ bool permits_extension_urls,
PP_CompletionCallback callback) {
- PLUGIN_PRINTF(("Plugin::StreamAsFile (url='%s')\n", url.c_str()));
+ PLUGIN_PRINTF(("Plugin::StreamAsFile (url='%s', permits_extension_urls=%d)\n",
+ url.c_str(), permits_extension_urls));
FileDownloader* downloader = new FileDownloader();
downloader->Initialize(this);
url_downloaders_.insert(downloader);
@@ -1777,6 +1789,7 @@
// If true, will always call the callback on success or failure.
return downloader->Open(url,
DOWNLOAD_TO_FILE,
+ permits_extension_urls || NexeIsContentHandler(),
open_callback,
&UpdateDownloadProgress);
}
« no previous file with comments | « ppapi/native_client/src/trusted/plugin/plugin.h ('k') | ppapi/native_client/src/trusted/plugin/pnacl_coordinator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698