summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--webkit/glue/plugins/plugin_host.cc11
-rw-r--r--webkit/glue/plugins/webplugin_delegate_impl_mac.mm15
2 files changed, 11 insertions, 15 deletions
diff --git a/webkit/glue/plugins/plugin_host.cc b/webkit/glue/plugins/plugin_host.cc
index 5ceea68..b262188 100644
--- a/webkit/glue/plugins/plugin_host.cc
+++ b/webkit/glue/plugins/plugin_host.cc
@@ -794,16 +794,7 @@ NPError NPN_GetValue(NPP id, NPNVariable variable, void* value) {
case NPNVsupportsCoreAnimationBool: {
// We only support the Core Animation model on 10.6 and higher
NPBool* supports_model = reinterpret_cast<NPBool*>(value);
- // Our Core Animation support currently doesn't handle QuickTime correctly
- // (see <http://crbug.com/38336>), so for now we don't allow QuickTime to
- // negotiate that model.
- scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id);
- if (plugin &&
- plugin->plugin_lib()->plugin_info().name.find(L"QuickTime") !=
- std::wstring::npos)
- *supports_model = FALSE;
- else
- *supports_model = SupportsSharingAcceleratedSurfaces() ? TRUE : FALSE;
+ *supports_model = SupportsSharingAcceleratedSurfaces() ? TRUE : FALSE;
rv = NPERR_NO_ERROR;
break;
}
diff --git a/webkit/glue/plugins/webplugin_delegate_impl_mac.mm b/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
index d2445ed..a99c39e 100644
--- a/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
+++ b/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
@@ -341,11 +341,16 @@ void WebPluginDelegateImpl::PlatformInitialize() {
UpdateIdleEventRate();
#endif
- // QuickTime can crash if it gets other calls (e.g., NPP_Write) before it
- // gets a SetWindow call, so call SetWindow (with a 0x0 rect) immediately.
- const WebPluginInfo& plugin_info = instance_->plugin_lib()->plugin_info();
- if (plugin_info.name.find(L"QuickTime") != std::wstring::npos)
- WindowlessSetWindow(true);
+ // QuickTime (in QD mode only) can crash if it gets other calls (e.g.,
+ // NPP_Write) before it gets a SetWindow call, so call SetWindow (with a 0x0
+ // rect) immediately.
+#ifndef NP_NO_QUICKDRAW
+ if (instance()->drawing_model() == NPDrawingModelQuickDraw) {
+ const WebPluginInfo& plugin_info = instance_->plugin_lib()->plugin_info();
+ if (plugin_info.name.find(L"QuickTime") != std::wstring::npos)
+ WindowlessSetWindow(true);
+ }
+#endif
}
void WebPluginDelegateImpl::PlatformDestroyInstance() {