Title: [171803] branches/safari-600.1.4-branch/Source/WebCore
Revision
171803
Author
matthew_han...@apple.com
Date
2014-07-30 12:50:15 -0700 (Wed, 30 Jul 2014)

Log Message

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

Modified Paths

Diff

Modified: branches/safari-600.1.4-branch/Source/WebCore/ChangeLog (171802 => 171803)


--- branches/safari-600.1.4-branch/Source/WebCore/ChangeLog	2014-07-30 19:40:25 UTC (rev 171802)
+++ branches/safari-600.1.4-branch/Source/WebCore/ChangeLog	2014-07-30 19:50:15 UTC (rev 171803)
@@ -1,3 +1,26 @@
+2014-07-30  Matthew Hanson  <matthew_han...@apple.com>
+
+        Merge r171702. <rdar://problem/16828238>
+
+    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  Matthew Hanson  <matthew_han...@apple.com>
 
         Rollout r171675. <rdar://problem/17826572>

Modified: branches/safari-600.1.4-branch/Source/WebCore/html/HTMLPlugInImageElement.cpp (171802 => 171803)


--- branches/safari-600.1.4-branch/Source/WebCore/html/HTMLPlugInImageElement.cpp	2014-07-30 19:40:25 UTC (rev 171802)
+++ branches/safari-600.1.4-branch/Source/WebCore/html/HTMLPlugInImageElement.cpp	2014-07-30 19:50:15 UTC (rev 171803)
@@ -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