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

Unified Diff: content/browser/plugin_service_impl.cc

Issue 19844003: Remove webkit/plugins/npapi. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: remove GetDefaultWindowParent Created 7 years, 5 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: content/browser/plugin_service_impl.cc
===================================================================
--- content/browser/plugin_service_impl.cc (revision 212595)
+++ content/browser/plugin_service_impl.cc (working copy)
@@ -28,12 +28,12 @@
#include "content/public/browser/resource_context.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/process_type.h"
-#include "webkit/plugins/npapi/plugin_utils.h"
#include "webkit/plugins/plugin_constants.h"
#include "webkit/plugins/webplugininfo.h"
#if defined(OS_WIN)
#include "content/common/plugin_constants_win.h"
+#include "ui/base/win/hwnd_util.h"
#endif
#if defined(OS_POSIX)
@@ -72,7 +72,7 @@
if (RenderProcessHost::run_renderer_in_process())
return true;
- return !webkit::npapi::NPAPIPluginsSupported();
+ return !PluginService::GetInstance()->NPAPIPluginsSupported();
#endif
}
@@ -511,7 +511,8 @@
std::vector<std::string>* actual_mime_types) {
bool use_stale = false;
PluginList::Singleton()->GetPluginInfoArray(
- url, mime_type, allow_wildcard, &use_stale, plugins, actual_mime_types);
+ url, mime_type, allow_wildcard, &use_stale, NPAPIPluginsSupported(),
+ plugins, actual_mime_types);
return use_stale;
}
@@ -625,7 +626,7 @@
plugin_list_token_));
std::vector<webkit::WebPluginInfo> plugins;
- PluginList::Singleton()->GetPlugins(&plugins);
+ PluginList::Singleton()->GetPlugins(&plugins, NPAPIPluginsSupported());
target_loop->PostTask(FROM_HERE,
base::Bind(callback, plugins));
@@ -752,6 +753,12 @@
}
void PluginServiceImpl::AddExtraPluginPath(const base::FilePath& path) {
+ if (!NPAPIPluginsSupported()) {
+ // TODO(jam): remove and just have CHECK once we're sure this doesn't get
+ // triggered.
+ DLOG(INFO) << "NPAPI plugins not supported";
+ return;
+ }
PluginList::Singleton()->AddExtraPluginPath(path);
}
@@ -766,6 +773,11 @@
void PluginServiceImpl::RegisterInternalPlugin(
const webkit::WebPluginInfo& info,
bool add_at_beginning) {
+ if (!NPAPIPluginsSupported() &&
+ info.type == webkit::WebPluginInfo::PLUGIN_TYPE_NPAPI) {
+ DLOG(INFO) << "Don't register NPAPI plugins when they're not supported";
+ return;
+ }
PluginList::Singleton()->RegisterInternalPlugin(info, add_at_beginning);
}
@@ -778,6 +790,14 @@
PluginList::Singleton()->GetInternalPlugins(plugins);
}
+bool PluginServiceImpl::NPAPIPluginsSupported() {
+#if defined(OS_WIN) || defined(OS_MACOSX) || (defined(OS_LINUX) && !defined(USE_AURA))
+ return true;
+#else
+ return false;
+#endif
+}
+
void PluginServiceImpl::DisablePluginsDiscoveryForTesting() {
PluginList::Singleton()->DisablePluginsDiscovery();
}
@@ -787,6 +807,41 @@
BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
base::Bind(&NotifyPluginsOfActivation));
}
+#elif defined(OS_WIN)
+
+bool GetPluginPropertyFromWindow(
+ HWND window, const wchar_t* plugin_atom_property,
+ base::string16* plugin_property) {
+ ATOM plugin_atom = reinterpret_cast<ATOM>(
+ GetPropW(window, plugin_atom_property));
+ if (plugin_atom != 0) {
+ WCHAR plugin_property_local[MAX_PATH] = {0};
+ GlobalGetAtomNameW(plugin_atom,
+ plugin_property_local,
+ ARRAYSIZE(plugin_property_local));
+ *plugin_property = plugin_property_local;
+ return true;
+ }
+ return false;
+}
+
+bool PluginServiceImpl::GetPluginInfoFromWindow(
+ HWND window,
+ base::string16* plugin_name,
+ base::string16* plugin_version) {
+ if (!IsPluginWindow(window))
+ return false;
+
+ GetPluginPropertyFromWindow(
+ window, kPluginNameAtomProperty, plugin_name);
+ GetPluginPropertyFromWindow(
+ window, kPluginVersionAtomProperty, plugin_version);
+ return true;
+}
+
+bool PluginServiceImpl::IsPluginWindow(HWND window) {
+ return ui::GetClassName(window) == base::string16(kNativeWindowClassName);
+}
#endif
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698