Title: [171730] branches/safari-600.1-branch/Source/WebCore
Revision
171730
Author
lforsch...@apple.com
Date
2014-07-29 01:32:17 -0700 (Tue, 29 Jul 2014)

Log Message

Merged r171702.  <rdar://problem/16828238>

Modified Paths

Diff

Modified: branches/safari-600.1-branch/Source/WebCore/ChangeLog (171729 => 171730)


--- branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-07-29 08:29:08 UTC (rev 171729)
+++ branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-07-29 08:32:17 UTC (rev 171730)
@@ -1,5 +1,28 @@
 2014-07-29  Lucas Forschler  <lforsch...@apple.com>
 
+        Merge r171702
+
+    2014-07-28  Antti Koivisto  <an...@apple.com>
+
+            <embed> videos flashes constantly while playing inline on iPad, making it unwatchable
+            https://bugs.webkit.org/show_bug.cgi?id=135356
+            <rdar://problem/16828238>
+
+            Reviewed by Simon Fraser.
+
+            The shadow tree for media controls is scheduling style recalc. The general silliness of
+            HTMLPlugInImageElement::willRecalcStyle/willDetachRenderers is turning those into render
+            tree reconstructions causing flicker.
+
+            * html/HTMLPlugInImageElement.cpp:
+            (WebCore::HTMLPlugInImageElement::willRecalcStyle):
+
+                Don't do the forced renderer reconstruction if there is no style change for the element
+                or its ancestors. This way recalcs scheduled by the shadow tree don't trigger the widget
+                update code path.
+
+2014-07-29  Lucas Forschler  <lforsch...@apple.com>
+
         Merge r171700
 
     2014-07-27  Brent Fulgham  <bfulg...@apple.com>

Modified: branches/safari-600.1-branch/Source/WebCore/html/HTMLPlugInImageElement.cpp (171729 => 171730)


--- branches/safari-600.1-branch/Source/WebCore/html/HTMLPlugInImageElement.cpp	2014-07-29 08:29:08 UTC (rev 171729)
+++ branches/safari-600.1-branch/Source/WebCore/html/HTMLPlugInImageElement.cpp	2014-07-29 08:32:17 UTC (rev 171730)
@@ -223,8 +223,12 @@
     return HTMLPlugInElement::createElementRenderer(WTF::move(style));
 }
 
-bool HTMLPlugInImageElement::willRecalcStyle(Style::Change)
+bool HTMLPlugInImageElement::willRecalcStyle(Style::Change change)
 {
+    // Make sure style recalcs scheduled by a child shadow tree don't trigger reconstruction and cause flicker.
+    if (change == Style::NoChange && styleChangeType() == NoStyleChange)
+        return true;
+
     // FIXME: There shoudn't be need to force render tree reconstruction here.
     // It is only done because loading and load event dispatching is tied to render tree construction.
     if (!useFallbackContent() && needsWidgetUpdate() && renderer() && !isImageType() && (displayState() != DisplayingSnapshot))
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to