diff options
-rw-r--r-- | webkit/glue/plugins/plugin_host.cc | 11 | ||||
-rw-r--r-- | webkit/glue/plugins/webplugin_delegate_impl_mac.mm | 15 |
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() { |