summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_service.h
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-18 17:15:00 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-18 17:15:00 +0000
commitcebc3dc5b2649fba2dd4e5c38197f367cbe296ad (patch)
tree5fdabab303791a373f741fed1caf15b4b967012f /chrome/browser/extensions/extension_service.h
parent197d77b84fe78fd08bdfc72553b297111142a9f2 (diff)
downloadchromium_src-cebc3dc5b2649fba2dd4e5c38197f367cbe296ad.zip
chromium_src-cebc3dc5b2649fba2dd4e5c38197f367cbe296ad.tar.gz
chromium_src-cebc3dc5b2649fba2dd4e5c38197f367cbe296ad.tar.bz2
Move PepperPluginRegistry to content, while leaving the Chrome specific bits (NaCl, registration of Chrome plugins like pdf/remoting/flash) behind.
Review URL: http://codereview.chromium.org/6869051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81959 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_service.h')
-rw-r--r--chrome/browser/extensions/extension_service.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h
index c63ec78..600d12a 100644
--- a/chrome/browser/extensions/extension_service.h
+++ b/chrome/browser/extensions/extension_service.h
@@ -473,6 +473,15 @@ class ExtensionService
};
typedef std::map<std::string, ExtensionRuntimeData> ExtensionRuntimeDataMap;
+ struct NaClModuleInfo {
+ NaClModuleInfo();
+ ~NaClModuleInfo();
+
+ GURL url;
+ std::string mime_type;
+ };
+ typedef std::list<NaClModuleInfo> NaClModuleInfoList;
+
virtual ~ExtensionService();
// Clear all persistent data that may have been stored by the extension.
@@ -502,6 +511,21 @@ class ExtensionService
// Helper method. Loads extension from prefs.
void LoadInstalledExtension(const ExtensionInfo& info, bool write_to_prefs);
+ // We implement some Pepper plug-ins using NaCl to take advantage of NaCl's
+ // strong sandbox. Typically, these NaCl modules are stored in extensions
+ // and registered here. Not all NaCl modules need to register for a MIME
+ // type, just the ones that are responsible for rendering a particular MIME
+ // type, like application/pdf. Note: We only register NaCl modules in the
+ // browser process.
+ void RegisterNaClModule(const GURL& url, const std::string& mime_type);
+ void UnregisterNaClModule(const GURL& url);
+
+ // Call UpdatePluginListWithNaClModules() after registering or unregistering
+ // a NaCl module to see those changes reflected in the PluginList.
+ void UpdatePluginListWithNaClModules();
+
+ NaClModuleInfoList::iterator FindNaClModule(const GURL& url);
+
// The profile this ExtensionService is part of.
Profile* profile_;
@@ -603,6 +627,8 @@ class ExtensionService
// if an update check is needed to install pending extensions.
bool external_extension_url_added_;
+ NaClModuleInfoList nacl_module_list_;
+
FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
InstallAppsWithUnlimtedStorage);
FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,