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