Artifacts seen sometimes with layer backed WebKit1 plug-in
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 10 Aug 2013 00:36:10 +0000 (00:36 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 10 Aug 2013 00:36:10 +0000 (00:36 +0000)
https://bugs.webkit.org/show_bug.cgi?id=119647
<rdar://problem/14002715>

Reviewed by Beth Dakin.

Don't try to paint layer backed views - they will be painted by Core Animation.

* platform/mac/WidgetMac.mm:
(WebCore::Widget::paint):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@153917 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/mac/WidgetMac.mm

index 7e84b00..834585b 100644 (file)
@@ -1,3 +1,16 @@
+2013-08-09  Anders Carlsson  <andersca@apple.com>
+
+        Artifacts seen sometimes with layer backed WebKit1 plug-in
+        https://bugs.webkit.org/show_bug.cgi?id=119647
+        <rdar://problem/14002715>
+
+        Reviewed by Beth Dakin.
+
+        Don't try to paint layer backed views - they will be painted by Core Animation.
+
+        * platform/mac/WidgetMac.mm:
+        (WebCore::Widget::paint):
+
 2013-08-09  Rob Buis  <rwlbuis@webkit.org>
 
         ASSERTION FAILED: stroke->opacity != other->stroke->opacity in WebCore::SVGRenderStyle::diff
index 5e3bb90..363c784 100644 (file)
@@ -204,6 +204,12 @@ void Widget::paint(GraphicsContext* p, const IntRect& r)
         return;
     NSView *view = getOuterView();
 
+    // We don't want to paint the view at all if it's layer backed, because then we'll end up
+    // with multiple copies of the view contents, one in the view's layer itself and one in the
+    // WebHTMLView's backing store (either a layer or the window backing store).
+    if (view.layer)
+        return;
+
     // Take a reference to this Widget, because sending messages to the views can invoke arbitrary
     // code, which can deref it.
     RefPtr<Widget> protectedThis(this);