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

Unified Diff: chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc

Issue 15521002: Flag and whitelist to allow crxfs api in NaCl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 7 months 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: chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc
diff --git a/chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc b/chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc
index e59a09190da950a7fbcefadbaf2edef3b0a70ca8..34d5289f0cc6e5af25d0b2573ccedf6407ac9e4e 100644
--- a/chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc
+++ b/chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc
@@ -70,14 +70,6 @@ scoped_ptr<ResourceHost> ChromeBrowserPepperHostFactory::CreateResourceHost(
host_->GetPpapiHost(), instance, params.pp_resource(),
broker_filter));
}
- case PpapiHostMsg_Ext_CrxFileSystem_Create::ID: {
- PepperCrxFileSystemMessageFilter* crxfs_filter =
- PepperCrxFileSystemMessageFilter::Create(instance, host_);
- if (!crxfs_filter)
- return scoped_ptr<ResourceHost>();
- return scoped_ptr<ResourceHost>(new MessageFilterHost(
- host, instance, params.pp_resource(), crxfs_filter));
- }
case PpapiHostMsg_Talk_Create::ID:
return scoped_ptr<ResourceHost>(new PepperTalkHost(
host_, instance, params.pp_resource()));
@@ -103,6 +95,22 @@ scoped_ptr<ResourceHost> ChromeBrowserPepperHostFactory::CreateResourceHost(
host_, instance, params.pp_resource()));
}
}
+
+ // Permissions for the following interfaces will be checked at the
+ // time of the corresponding instance's methods calls (because
+ // permission check can be performed only on the UI
+ // thread). Currently these interfaces are available only for
+ // whitelisted apps which may not have access to the other private
+ // interfaces.
+ if (message.type() == PpapiHostMsg_Ext_CrxFileSystem_Create::ID) {
+ PepperCrxFileSystemMessageFilter* crxfs_filter =
+ PepperCrxFileSystemMessageFilter::Create(instance, host_);
+ if (!crxfs_filter)
+ return scoped_ptr<ResourceHost>();
+ return scoped_ptr<ResourceHost>(new MessageFilterHost(
+ host, instance, params.pp_resource(), crxfs_filter));
+ }
+
return scoped_ptr<ResourceHost>();
}

Powered by Google App Engine
This is Rietveld 408576698