Title: [264913] releases/WebKitGTK/webkit-2.28/Source/WebCore
- Revision
- 264913
- Author
- carlo...@webkit.org
- Date
- 2020-07-27 03:48:09 -0700 (Mon, 27 Jul 2020)
Log Message
Merge r262594 - HTMLAppletElement::updateWidget should check for renderer after the overlapping test.
https://bugs.webkit.org/show_bug.cgi?id=212789
<rdar://problem/61854614>
Reviewed by Simon Fraser.
createJavaAppletWidget needs to check if the plugin(replacement) is obscured.
Since the overlapping test requires up-to-date geometry, it initiates a top level style recalc/layout.
We need to check if the apple element still has a renderer after the style recalc.
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::updateWidget):
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog (264912 => 264913)
--- releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog 2020-07-27 10:48:05 UTC (rev 264912)
+++ releases/WebKitGTK/webkit-2.28/Source/WebCore/ChangeLog 2020-07-27 10:48:09 UTC (rev 264913)
@@ -1,3 +1,18 @@
+2020-06-04 Zalan Bujtas <za...@apple.com>
+
+ HTMLAppletElement::updateWidget should check for renderer after the overlapping test.
+ https://bugs.webkit.org/show_bug.cgi?id=212789
+ <rdar://problem/61854614>
+
+ Reviewed by Simon Fraser.
+
+ createJavaAppletWidget needs to check if the plugin(replacement) is obscured.
+ Since the overlapping test requires up-to-date geometry, it initiates a top level style recalc/layout.
+ We need to check if the apple element still has a renderer after the style recalc.
+
+ * html/HTMLAppletElement.cpp:
+ (WebCore::HTMLAppletElement::updateWidget):
+
2020-05-05 Antoine Quint <grao...@apple.com>
Fix animation ordering to make imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative.html pass
Modified: releases/WebKitGTK/webkit-2.28/Source/WebCore/html/HTMLAppletElement.cpp (264912 => 264913)
--- releases/WebKitGTK/webkit-2.28/Source/WebCore/html/HTMLAppletElement.cpp 2020-07-27 10:48:05 UTC (rev 264912)
+++ releases/WebKitGTK/webkit-2.28/Source/WebCore/html/HTMLAppletElement.cpp 2020-07-27 10:48:09 UTC (rev 264913)
@@ -124,13 +124,6 @@
setNeedsWidgetUpdate(false);
- RenderEmbeddedObject* renderer = renderEmbeddedObject();
-
- LayoutUnit contentWidth = renderer->style().width().isFixed() ? LayoutUnit(renderer->style().width().value()) :
- renderer->width() - renderer->horizontalBorderAndPaddingExtent();
- LayoutUnit contentHeight = renderer->style().height().isFixed() ? LayoutUnit(renderer->style().height().value()) :
- renderer->height() - renderer->verticalBorderAndPaddingExtent();
-
Vector<String> paramNames;
Vector<String> paramValues;
@@ -175,7 +168,20 @@
RefPtr<Frame> frame = document().frame();
ASSERT(frame);
- renderer->setWidget(frame->loader().subframeLoader().createJavaAppletWidget(roundedIntSize(LayoutSize(contentWidth, contentHeight)), *this, paramNames, paramValues));
+ auto contentSize = LayoutSize { };
+ {
+ auto* renderer = renderEmbeddedObject();
+ auto& style = renderer->style();
+
+ contentSize = LayoutSize { style.width().isFixed() ? LayoutUnit(style.width().value()) : renderer->width() - renderer->horizontalBorderAndPaddingExtent(),
+ style.height().isFixed() ? LayoutUnit(style.height().value()) : renderer->height() - renderer->verticalBorderAndPaddingExtent() };
+ }
+
+ auto widget = frame->loader().subframeLoader().createJavaAppletWidget(roundedIntSize(contentSize), *this, paramNames, paramValues);
+ // createJavaAppletWidget needs to check if the plugin(replacement) is obscured. Since the overlapping test requires up-to-date geometry, it initiates a top level style recalc/layout.
+ // Let's see if this element still has a renderer after the style recalc.
+ if (auto* renderer = renderEmbeddedObject())
+ renderer->setWidget(WTFMove(widget));
#endif // !PLATFORM(IOS_FAMILY)
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes