diff options
Diffstat (limited to 'WebKit/mac/Plugins/WebNetscapePluginView.mm')
-rw-r--r-- | WebKit/mac/Plugins/WebNetscapePluginView.mm | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/WebKit/mac/Plugins/WebNetscapePluginView.mm b/WebKit/mac/Plugins/WebNetscapePluginView.mm index ebc3f85..9f5a6c2 100644 --- a/WebKit/mac/Plugins/WebNetscapePluginView.mm +++ b/WebKit/mac/Plugins/WebNetscapePluginView.mm @@ -61,6 +61,7 @@ #import <WebCore/Frame.h> #import <WebCore/FrameLoader.h> #import <WebCore/FrameTree.h> +#import <WebCore/FrameView.h> #import <WebCore/HTMLPlugInElement.h> #import <WebCore/Page.h> #import <WebCore/PluginMainThreadScheduler.h> @@ -1089,10 +1090,14 @@ static inline void getNPRect(const NSRect& nr, NPRect& npr) #if USE(ACCELERATED_COMPOSITING) accleratedCompositingEnabled = [[[self webView] preferences] acceleratedCompositingEnabled]; #endif - if (accleratedCompositingEnabled) + if (accleratedCompositingEnabled) { + // Eagerly enter compositing mode, since we know we'll need it. This avoids firing setNeedsStyleRecalc() + // for iframes that contain composited plugins at bad times. https://bugs.webkit.org/show_bug.cgi?id=39033 + core([self webFrame])->view()->enterCompositingMode(); [self element]->setNeedsStyleRecalc(SyntheticStyleChange); - else + } else [self setWantsLayer:YES]; + LOG(Plugins, "%@ is using Core Animation drawing model with layer %@", _pluginPackage.get(), _pluginLayer.get()); } |