Index: chrome/common/pepper_plugin_registry.h |
diff --git a/chrome/common/pepper_plugin_registry.h b/chrome/common/pepper_plugin_registry.h |
index 90d0d98b28295e14cf11f7a765f83d48b909d1d1..4c212e56ea54ed21aa9be386f0e89956ef6f3790 100644 |
--- a/chrome/common/pepper_plugin_registry.h |
+++ b/chrome/common/pepper_plugin_registry.h |
@@ -13,7 +13,10 @@ |
#include "webkit/glue/plugins/pepper_plugin_module.h" |
struct PepperPluginInfo { |
- FilePath path; // Internal plugins are of the form "internal-[name]". |
+ PepperPluginInfo(); // Needed to initialize |is_internal|. |
+ |
+ bool is_internal; // Defaults to false (see constructor). |
+ FilePath path; // Internal plugins have "internal-[name]" as path. |
std::vector<std::string> mime_types; |
std::string name; |
std::string description; |
@@ -31,6 +34,11 @@ class PepperPluginRegistry { |
// pepper plugin modules. |
static void GetList(std::vector<PepperPluginInfo>* plugins); |
+ // Loads the (native) libraries but does not initialize them (i.e., does not |
+ // call PPP_InitializeModule). This is needed by the zygote on Linux to get |
+ // access to the plugins before entering the sandbox. |
+ static void PreloadModules(); |
+ |
pepper::PluginModule* GetModule(const FilePath& path) const; |
private: |
@@ -38,6 +46,7 @@ class PepperPluginRegistry { |
static void GetExtraPlugins(std::vector<PepperPluginInfo>* plugins); |
struct InternalPluginInfo : public PepperPluginInfo { |
+ InternalPluginInfo(); // Sets |is_internal|. |
pepper::PluginModule::EntryPoints entry_points; |
}; |
typedef std::vector<InternalPluginInfo> InternalPluginInfoList; |