Index: content/browser/plugin_service_impl.cc |
diff --git a/content/browser/plugin_service_impl.cc b/content/browser/plugin_service_impl.cc |
index 42ac63be05ae224bfce0351bfc77bbe9bc26ddc0..e43109552f0071b84cc088cab02f74e1a2d8c711 100644 |
--- a/content/browser/plugin_service_impl.cc |
+++ b/content/browser/plugin_service_impl.cc |
@@ -190,15 +190,6 @@ void PluginServiceImpl::Init() { |
if (command_line->HasSwitch(switches::kDisablePluginsDiscovery)) |
PluginList::Singleton()->DisablePluginsDiscovery(); |
-#if defined(OS_WIN) || defined(OS_MACOSX) |
- npapi_plugins_enabled_ = command_line->HasSwitch(switches::kEnableNpapi); |
- NPAPIPluginStatus status = |
- npapi_plugins_enabled_ ? NPAPI_STATUS_ENABLED : NPAPI_STATUS_DISABLED; |
-#else |
- NPAPIPluginStatus status = NPAPI_STATUS_UNSUPPORTED; |
-#endif |
- UMA_HISTOGRAM_ENUMERATION("Plugin.NPAPIStatus", status, |
- NPAPI_STATUS_ENUM_COUNT); |
} |
void PluginServiceImpl::StartWatchingPlugins() { |
@@ -779,8 +770,9 @@ void PluginServiceImpl::AddExtraPluginDir(const base::FilePath& path) { |
void PluginServiceImpl::RegisterInternalPlugin( |
const WebPluginInfo& info, |
bool add_at_beginning) { |
- if (!NPAPIPluginsSupported() && |
- info.type == WebPluginInfo::PLUGIN_TYPE_NPAPI) { |
+ // Internal plugins should never be NPAPI. |
+ CHECK_NE(info.type, WebPluginInfo::PLUGIN_TYPE_NPAPI); |
+ if (info.type == WebPluginInfo::PLUGIN_TYPE_NPAPI) { |
DVLOG(0) << "Don't register NPAPI plugins when they're not supported"; |
return; |
} |
@@ -797,6 +789,22 @@ void PluginServiceImpl::GetInternalPlugins( |
} |
bool PluginServiceImpl::NPAPIPluginsSupported() { |
+ static bool command_line_checked = false; |
+ |
+ if (!command_line_checked) { |
+#if defined(OS_WIN) || defined(OS_MACOSX) |
+ const base::CommandLine* command_line = |
+ base::CommandLine::ForCurrentProcess(); |
+ npapi_plugins_enabled_ = command_line->HasSwitch(switches::kEnableNpapi); |
+ NPAPIPluginStatus status = |
+ npapi_plugins_enabled_ ? NPAPI_STATUS_ENABLED : NPAPI_STATUS_DISABLED; |
+#else |
+ NPAPIPluginStatus status = NPAPI_STATUS_UNSUPPORTED; |
+#endif |
+ UMA_HISTOGRAM_ENUMERATION("Plugin.NPAPIStatus", status, |
+ NPAPI_STATUS_ENUM_COUNT); |
+ } |
+ |
return npapi_plugins_enabled_; |
} |