diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-18 17:15:00 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-18 17:15:00 +0000 |
commit | cebc3dc5b2649fba2dd4e5c38197f367cbe296ad (patch) | |
tree | 5fdabab303791a373f741fed1caf15b4b967012f /chrome/browser/extensions/extension_service.h | |
parent | 197d77b84fe78fd08bdfc72553b297111142a9f2 (diff) | |
download | chromium_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.h | 26 |
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, |