summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/plugins/plugin_list_posix.cc16
-rw-r--r--webkit/glue/plugins/webplugin_delegate_impl_gtk.cc3
2 files changed, 18 insertions, 1 deletions
diff --git a/webkit/glue/plugins/plugin_list_posix.cc b/webkit/glue/plugins/plugin_list_posix.cc
index 9c29998..fdfe7f5 100644
--- a/webkit/glue/plugins/plugin_list_posix.cc
+++ b/webkit/glue/plugins/plugin_list_posix.cc
@@ -43,6 +43,15 @@ bool IsUndesirablePlugin(const WebPluginInfo& info) {
filename.find("npwrapper") != std::string::npos); // nspluginwrapper
}
+// Return true if we shouldn't load a plugin at all.
+// This is an ugly hack to blacklist Adobe Acrobat due to not supporting
+// its Xt-based mainloop.
+// http://code.google.com/p/chromium/issues/detail?id=38229
+bool IsBlacklistedPlugin(const WebPluginInfo& info) {
+ std::string filename = info.path.BaseName().value();
+ return filename.find("nppdf.so") != std::string::npos;
+}
+
} // anonymous namespace
namespace NPAPI {
@@ -183,6 +192,13 @@ bool PluginList::ShouldLoadPlugin(const WebPluginInfo& info,
LOG(ERROR) << "Considering " << info.path.value()
<< " (" << info.name << ")";
}
+
+ if (IsBlacklistedPlugin(info)) {
+ if (DebugPluginLoading())
+ LOG(ERROR) << "Skipping blacklisted plugin " << info.path.value();
+ return false;
+ }
+
if (IsUndesirablePlugin(info)) {
if (DebugPluginLoading())
LOG(ERROR) << info.path.value() << " is undesirable.";
diff --git a/webkit/glue/plugins/webplugin_delegate_impl_gtk.cc b/webkit/glue/plugins/webplugin_delegate_impl_gtk.cc
index 081b54b..6c267e9 100644
--- a/webkit/glue/plugins/webplugin_delegate_impl_gtk.cc
+++ b/webkit/glue/plugins/webplugin_delegate_impl_gtk.cc
@@ -121,7 +121,8 @@ bool WebPluginDelegateImpl::WindowedCreatePlugin() {
int xembed = 0;
NPError err = instance_->NPP_GetValue(NPPVpluginNeedsXEmbed, &xembed);
if (err != NPERR_NO_ERROR || !xembed) {
- NOTIMPLEMENTED() << " windowed plugin but without xembed.";
+ NOTIMPLEMENTED() << " windowed plugin but without xembed. "
+ "See http://code.google.com/p/chromium/issues/detail?id=38229";
return false;
}