Title: [200827] releases/WebKitGTK/webkit-2.12/Source/WebCore
- Revision
- 200827
- Author
- [email protected]
- Date
- 2016-05-13 03:01:07 -0700 (Fri, 13 May 2016)
Log Message
Merge r199856 - RenderVideo should always update the intrinsic size before layout.
https://bugs.webkit.org/show_bug.cgi?id=156878
Reviewed by Simon Fraser.
In order to layout video element properly we need to know the correct intrinsic size.
This patch also asserts if we end up updating the intrinsic size right after finishing video renderer layout.
This issues was discovered as part of webkit.org/b/156245. (hence covered by existing tests)
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updateIntrinsicSize):
(WebCore::RenderVideo::layout):
(WebCore::RenderVideo::updatePlayer):
* rendering/RenderVideo.h:
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog (200826 => 200827)
--- releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog 2016-05-13 09:57:43 UTC (rev 200826)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog 2016-05-13 10:01:07 UTC (rev 200827)
@@ -1,3 +1,21 @@
+2016-04-21 Zalan Bujtas <[email protected]>
+
+ RenderVideo should always update the intrinsic size before layout.
+ https://bugs.webkit.org/show_bug.cgi?id=156878
+
+ Reviewed by Simon Fraser.
+
+ In order to layout video element properly we need to know the correct intrinsic size.
+ This patch also asserts if we end up updating the intrinsic size right after finishing video renderer layout.
+
+ This issues was discovered as part of webkit.org/b/156245. (hence covered by existing tests)
+
+ * rendering/RenderVideo.cpp:
+ (WebCore::RenderVideo::updateIntrinsicSize):
+ (WebCore::RenderVideo::layout):
+ (WebCore::RenderVideo::updatePlayer):
+ * rendering/RenderVideo.h:
+
2016-04-21 Anders Carlsson <[email protected]>
Fix crashes when loading SVG images.
Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderVideo.cpp (200826 => 200827)
--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderVideo.cpp 2016-05-13 09:57:43 UTC (rev 200826)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderVideo.cpp 2016-05-13 10:01:07 UTC (rev 200827)
@@ -76,21 +76,22 @@
updateIntrinsicSize();
}
-void RenderVideo::updateIntrinsicSize()
+bool RenderVideo::updateIntrinsicSize()
{
LayoutSize size = calculateIntrinsicSize();
size.scale(style().effectiveZoom());
// Never set the element size to zero when in a media document.
if (size.isEmpty() && document().isMediaDocument())
- return;
+ return false;
if (size == intrinsicSize())
- return;
+ return false;
setIntrinsicSize(size);
setPreferredLogicalWidthsDirty(true);
setNeedsLayout();
+ return true;
}
LayoutSize RenderVideo::calculateIntrinsicSize()
@@ -199,6 +200,7 @@
void RenderVideo::layout()
{
StackStats::LayoutCheckPoint layoutCheckPoint;
+ updateIntrinsicSize();
RenderMedia::layout();
updatePlayer();
}
@@ -219,7 +221,9 @@
if (documentBeingDestroyed())
return;
- updateIntrinsicSize();
+ bool intrinsicSizeChanged;
+ intrinsicSizeChanged = updateIntrinsicSize();
+ ASSERT_UNUSED(intrinsicSizeChanged, !intrinsicSizeChanged || !view().frameView().isInRenderTreeLayout());
MediaPlayer* mediaPlayer = videoElement().player();
if (!mediaPlayer)
Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderVideo.h (200826 => 200827)
--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderVideo.h 2016-05-13 09:57:43 UTC (rev 200826)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderVideo.h 2016-05-13 10:01:07 UTC (rev 200827)
@@ -59,7 +59,7 @@
virtual void intrinsicSizeChanged() override;
LayoutSize calculateIntrinsicSize();
- void updateIntrinsicSize();
+ bool updateIntrinsicSize();
virtual void imageChanged(WrappedImagePtr, const IntRect*) override;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes