[webkit-changes] [294779] trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

2022-05-24 Thread svillar
Title: [294779] trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp








Revision 294779
Author svil...@igalia.com
Date 2022-05-24 17:06:14 -0700 (Tue, 24 May 2022)


Log Message
Remove floating objects during tree normalization after style changes
https://bugs.webkit.org/show_bug.cgi?id=240797

Reviewed by Darin Adler.

Float boxes define their own block formatting context and thus can't have other intruding
floats. That's why this scenario is not allowed in the code, except in the case when
a regular box with floatting descendants becomes float. In that case the tree might
be temporarily in a semi-correct state until we don't remove the intruding floats.

The current code deals with that by calling rebuildFloatingObjectSetFromIntrudingFloats()
in the subsequent layout. However it's possible that before that a style change kicks in and
mutates the render tree. In that case we could be manipulating stale objects. To prevent
that we can simply directly call removeFloatingObjects() when normalizing the tree after
a style change.

* Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): Call removeFloatingObjects().

Canonical link: https://commits.webkit.org/250941@main

Modified Paths

trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp




Diff

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (294778 => 294779)

--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2022-05-25 00:04:59 UTC (rev 294778)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2022-05-25 00:06:14 UTC (rev 294779)
@@ -673,6 +673,7 @@
 }
 };
 clearDescendantFloats();
+downcast(renderer).removeFloatingObjects();
 // Fresh floats need to be reparented if they actually belong to the previous anonymous block.
 // It copies the logic of RenderBlock::addChildIgnoringContinuation
 if (renderer.previousSibling() && renderer.previousSibling()->isAnonymousBlock())






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [291789] trunk

2022-03-24 Thread svillar
Title: [291789] trunk








Revision 291789
Author svil...@igalia.com
Date 2022-03-24 01:33:41 -0700 (Thu, 24 Mar 2022)


Log Message
Release assert in Document::updateLayout() via HTMLTextAreaElement::childrenChanged
https://bugs.webkit.org/show_bug.cgi?id=224471

Reviewed by Ryosuke Niwa.

Source/WebCore:

Executing some editing commands in a text area might force the recomputation of things
like caret or the visible selection position and extent. Under some circumstances (like
when the text area has no content and children) we might end up trying to update layout
when it is not safe as a side effect of updating the caret.

In order to fix that, we can switch to a model in which we update the selection asynchronously
in the case of having a non-user triggered change. That way we don't do it inside
a restricted layout scope.

The App Highlight restoration code had to be tuned as well (when restoring and scrolling to reveal
a Quick Note on iOS MacOS). It uses TemporarySelectionChange to select and scroll to reveal the highlight
range; the code assumed that this scrolling happens synchronously, since it reverts the selection to
the original range at the end of `AppHighlightStorage::attemptToRestoreHighlightAndScroll` when the
TemporarySelectionChange falls out of scope. That is however no longer the case. Actually no scrolling
happened after this patch because we end up only scheduling the appearance update timer before setting
the selection back to the original state with `SelectionRevealMode::DoNotReveal`. Since this only happens
when the user interacts in the Notes app, it seems sensible to consider it as a user triggered event.

* Modules/highlight/AppHighlightStorage.cpp:
(WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll): Consider the selection change
as user triggered so scrolling actually happens.
* editing/Editor.cpp:
(WebCore::TemporarySelectionChange::setSelection): Check the UserTriggered flags for default options.
* editing/Editor.h: Added a new UserTriggered flag.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection): Call scheduleAppearanceUpdateAfterStyleChange() for
!IsUserTriggered changes.
(WebCore::FrameSelection::updateSelectionAppearanceNow): Renamed from updateSelectionByUpdatingLayoutOrStyle.
It does not need the Document& attribute because it was always called with m_document.
(WebCore::FrameSelection::absoluteCaretBounds): Replaced updateSelectionByUpdatingLayoutOrStyle with
updateSelectionAppearanceNow().
(WebCore::FrameSelection::setCaretVisibility): Ditto.
(WebCore::FrameSelection::selectionBounds const): Ditto.
(WebCore::FrameSelection::revealSelection): Call updateSelectionAppearanceNow().
 (WebCore::FrameSelection::updateAppearanceIfRevealingSelectionIsNeeded): New method.
(WebCore::updateSelectionByUpdatingLayoutOrStyle): Deleted.
* editing/FrameSelection.h:
* page/EventHandler.cpp:
(WebCore::setSelectionIfNeeded): Set the UserTriggered flag for calling setSelection().
* page/Page.cpp:
(WebCore::Page::doAfterUpdateRendering): Call updateAppearanceAfterLayout().

LayoutTests:

Moved some tests out of the text-based-repaint.js model because selection is now updated
and revealed asynchronously in the case of non-user triggered changes. The problem is that
by the time the repaint rects are queried the update has not happened yet. That's why
the tests were modified so that we wait until the repaint happens.

Same situation for other tests that do not involve repaint rects but trigger accesibility
tree updates. We must ensure that we let the notification be thrown before checking whether or
not has been emited. As it's done asynchronously we must let the main thread run before checking.

Last but not least, some of the tests are using setTimeout() instead of requestAnimationFrame()
because the results with the latter were not as reliable under stress/debug conditions.

* accessibility/mac/selection-boundary-userinfo.html:
* accessibility/mac/selection-change-userinfo.html:
* accessibility/mac/selection-value-changes-for-aria-textbox.html:
* editing/selection-with-absolute-positioned-empty-content.html:
* fast/forms/textarea-scrolled-endline-caret.html:
* fast/repaint/selection-gap-absolute-child-expected.txt:
* fast/repaint/selection-gap-absolute-child.html:
* fast/repaint/selection-gap-flipped-absolute-child-expected.txt:
* fast/repaint/selection-gap-flipped-absolute-child.html:
* fast/repaint/selection-gap-transformed-absolute-child-expected.txt:
* fast/repaint/selection-gap-transformed-absolute-child.html:
* fast/repaint/selection-gap-transformed-fixed-child-expected.txt:
* fast/repaint/selection-gap-transformed-fixed-child.html:
* fast/repaint/selection-paint-invalidation-expected.txt:
* fast/repaint/selection-ruby-rl-expected.txt:
* fast/repaint/selection-ruby-rl.html:
* fast/repaint/text-selection-overflow-hidden-expected.txt:
* fast/repaint/text-selection-overflow-hidden.html:
* platform/gtk/TestExpectations:
* 

[webkit-changes] [289814] trunk/Source/WebCore

2022-02-15 Thread svillar
Title: [289814] trunk/Source/WebCore








Revision 289814
Author svil...@igalia.com
Date 2022-02-15 07:42:32 -0800 (Tue, 15 Feb 2022)


Log Message
Do not update the fragmented flow state while internally mutating the render tree
https://bugs.webkit.org/show_bug.cgi?id=230896

Reviewed by Darin Adler.

RenderTree mutations (like those happening when creating/destroying anonymous blocks)
should not affect the fragment state of any renderer. This means that we should not have
to deal with things like creating/restoring placeholders/spanners while doing that.

There is already a IsInternalMove flag that is being used for that. Expand its usage
to a couple more methods to improve correctness.

* rendering/LegacyRootInlineBox.cpp:
(WebCore::LegacyRootInlineBox::~LegacyRootInlineBox): Do not remove the inline box from
the ContainingFragmentMap if we're deleting the tree. It was causing ASSERTs trying to
retrieve the enclosing fragmented flow in some cases.
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal): Use the RenderTreeBuilder's
m_internalTreeBuilding instead of the argument.
(WebCore::RenderTreeBuilder::move): Replace passing the IsInternalMove argument by a
scope where we don't update the fragmented flow state.
(WebCore::RenderTreeBuilder::detachFromRenderElement): Use the RenderTreeBuilder's
m_internalMovesType instead of the argument.
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderInline.cpp:
(WebCore::RenderTreeBuilder::Inline::splitInlines): Wrap the method by a scope in which
fragmented flow state is not updated because we consider those operations internal arrangements
of the tree.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/LegacyRootInlineBox.cpp
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderInline.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (289813 => 289814)

--- trunk/Source/WebCore/ChangeLog	2022-02-15 15:22:01 UTC (rev 289813)
+++ trunk/Source/WebCore/ChangeLog	2022-02-15 15:42:32 UTC (rev 289814)
@@ -1,3 +1,34 @@
+2022-02-10  Sergio Villar Senin  
+
+Do not update the fragmented flow state while internally mutating the render tree
+https://bugs.webkit.org/show_bug.cgi?id=230896
+
+Reviewed by Darin Adler.
+
+RenderTree mutations (like those happening when creating/destroying anonymous blocks)
+should not affect the fragment state of any renderer. This means that we should not have
+to deal with things like creating/restoring placeholders/spanners while doing that.
+
+There is already a IsInternalMove flag that is being used for that. Expand its usage
+to a couple more methods to improve correctness.
+
+* rendering/LegacyRootInlineBox.cpp:
+(WebCore::LegacyRootInlineBox::~LegacyRootInlineBox): Do not remove the inline box from
+the ContainingFragmentMap if we're deleting the tree. It was causing ASSERTs trying to
+retrieve the enclosing fragmented flow in some cases.
+* rendering/updating/RenderTreeBuilder.cpp:
+(WebCore::RenderTreeBuilder::attachToRenderElementInternal): Use the RenderTreeBuilder's
+m_internalTreeBuilding instead of the argument.
+(WebCore::RenderTreeBuilder::move): Replace passing the IsInternalMove argument by a
+scope where we don't update the fragmented flow state.
+(WebCore::RenderTreeBuilder::detachFromRenderElement): Use the RenderTreeBuilder's
+m_internalMovesType instead of the argument.
+* rendering/updating/RenderTreeBuilder.h:
+* rendering/updating/RenderTreeBuilderInline.cpp:
+(WebCore::RenderTreeBuilder::Inline::splitInlines): Wrap the method by a scope in which
+fragmented flow state is not updated because we consider those operations internal arrangements
+of the tree.
+
 2022-02-15  Ziran Sun  
 
 [Forms] the select() method returns should be in line with specs


Modified: trunk/Source/WebCore/rendering/LegacyRootInlineBox.cpp (289813 => 289814)

--- trunk/Source/WebCore/rendering/LegacyRootInlineBox.cpp	2022-02-15 15:22:01 UTC (rev 289813)
+++ trunk/Source/WebCore/rendering/LegacyRootInlineBox.cpp	2022-02-15 15:42:32 UTC (rev 289814)
@@ -75,7 +75,7 @@
 {
 detachEllipsisBox();
 
-if (blockFlow().enclosingFragmentedFlow())
+if (!renderer().document().renderTreeBeingDestroyed() && blockFlow().enclosingFragmentedFlow())
 containingFragmentMap(blockFlow()).remove(this);
 }
 


Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (289813 => 289814)

--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2022-02-15 15:22:01 UTC (rev 289813)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2022-02-15 15:42:32 UTC (rev 289814)
@@ -74,6 

[webkit-changes] [289108] trunk

2022-02-04 Thread svillar
Title: [289108] trunk








Revision 289108
Author svil...@igalia.com
Date 2022-02-04 03:58:52 -0800 (Fri, 04 Feb 2022)


Log Message
HTMLMediaElement should dispatch the resize event asynchronously
https://bugs.webkit.org/show_bug.cgi?id=230895

Reviewed by Darin Adler.

Source/WebCore:

The HTMLMediaElement is currently queueing a task to dispatch the resize event in the post layout phase.
There is no need to run it synchronously and we could move it to another queue were it will be run
asynchronously as it was done for other similar tasks in the past.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::layoutSizeChanged):

LayoutTests:

* media/modern-media-controls/media-controller/media-controller-resize.html: Remove the event
listener to avoid an extra notification.
* platform/mac/TestExpectations: Unskipped tests that pass now.
* platform/wincairo/TestExpectations: Ditto.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html
trunk/LayoutTests/platform/mac/TestExpectations
trunk/LayoutTests/platform/wincairo/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLMediaElement.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (289107 => 289108)

--- trunk/LayoutTests/ChangeLog	2022-02-04 08:14:08 UTC (rev 289107)
+++ trunk/LayoutTests/ChangeLog	2022-02-04 11:58:52 UTC (rev 289108)
@@ -1,3 +1,15 @@
+2022-02-04  Sergio Villar Senin  
+
+HTMLMediaElement should dispatch the resize event asynchronously
+https://bugs.webkit.org/show_bug.cgi?id=230895
+
+Reviewed by Darin Adler.
+
+* media/modern-media-controls/media-controller/media-controller-resize.html: Remove the event
+listener to avoid an extra notification.
+* platform/mac/TestExpectations: Unskipped tests that pass now.
+* platform/wincairo/TestExpectations: Ditto.
+
 2022-02-03  Myles C. Maxfield  
 
 Two bopomofo tone marks are not moved to the correct place in vertical text with a particular bopomofo font


Modified: trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html (289107 => 289108)

--- trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html	2022-02-04 08:14:08 UTC (rev 289107)
+++ trunk/LayoutTests/media/modern-media-controls/media-controller/media-controller-resize.html	2022-02-04 11:58:52 UTC (rev 289108)
@@ -16,16 +16,19 @@
 shouldBeEqualToString("mediaControls.style.width", "320px");
 shouldBeEqualToString("mediaControls.style.height", "240px");
 
-shadowRoot.addEventListener("resize", () => {
+function testResize() {
 shouldBeEqualToString("mediaControls.style.width", "400px");
 shouldBeEqualToString("mediaControls.style.height", "300px");
+shadowRoot.removeEventListener("resize", testResize);
 setTimeout(() => {
 debug("");
 media.remove();
 finishJSTest();
 });
-});
+}
 
+shadowRoot.addEventListener("resize", testResize);
+
 debug("");
 debug("Resizing to 400x300");
 media.style.width = "400px";


Modified: trunk/LayoutTests/platform/mac/TestExpectations (289107 => 289108)

--- trunk/LayoutTests/platform/mac/TestExpectations	2022-02-04 08:14:08 UTC (rev 289107)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2022-02-04 11:58:52 UTC (rev 289108)
@@ -2082,8 +2082,6 @@
 # @counter-style WPT failures specific to Mac platforms
 [ Mojave Catalina ] imported/w3c/web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-112.html [ ImageOnlyFailure ]
 
-webkit.org/b/222185 media/media-extension-with-fragment.html [ Crash ]
-
 webkit.org/b/05 css3/calc/transforms-translate.html [ Pass ImageOnlyFailure ]
 
 webkit.org/b/222422 imported/w3c/web-platform-tests/media-source/mediasource-duration.html [ Pass Failure Slow ]


Modified: trunk/LayoutTests/platform/wincairo/TestExpectations (289107 => 289108)

--- trunk/LayoutTests/platform/wincairo/TestExpectations	2022-02-04 08:14:08 UTC (rev 289107)
+++ trunk/LayoutTests/platform/wincairo/TestExpectations	2022-02-04 11:58:52 UTC (rev 289108)
@@ -241,7 +241,6 @@
 media/track/in-band/track-in-band-srt-mkv-language.html [ Skip ]
 media/track/in-band/track-in-band-srt-mkv-track-order.html [ Skip ]
 media/invalid-media-url-crash.html [ Skip ]
-media/media-extension-with-fragment.html [ Skip ]
 
 # VIDEO_PRESENTATION_MODE is disabled
 media/media-fullscreen-not-in-document.html [ Skip ]


Modified: trunk/Source/WebCore/ChangeLog (289107 => 289108)

--- trunk/Source/WebCore/ChangeLog	2022-02-04 08:14:08 UTC (rev 289107)
+++ trunk/Source/WebCore/ChangeLog	2022-02-04 11:58:52 UTC (rev 289108)
@@ -1,3 +1,17 @@
+2022-02-04  Sergio Villar Senin  
+
+HTMLMediaElement should dispatch the resize event asynchronously
+https://bugs.webkit.org/show_bug.cgi?id=230895
+
+Reviewed by Darin Adler.
+
+The HTMLMediaElement is currently queueing a task to dispatch the 

[webkit-changes] [288184] trunk

2022-01-19 Thread svillar
Title: [288184] trunk








Revision 288184
Author svil...@igalia.com
Date 2022-01-19 01:28:38 -0800 (Wed, 19 Jan 2022)


Log Message
[css-flexbox] Add support for intrinsic sizes to the flex shorthand
https://bugs.webkit.org/show_bug.cgi?id=235314

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt: Replaced FAIL by PASS expectations.

Source/WebCore:

In r288113 we added support for intrinsic sizes in the flex-basis property. However the flex-basis property
can be also set via the flex shorthand. The flex shorthand was still not accepting the intrinsic sizes as
valid values. That's why the code that was checking idents in flex-basis was refactored so we do perform
now the very same test when parsing flex-basis and flex.

This allows WebKit to pass 8 additional WPT subtests.

* css/parser/CSSPropertyParser.cpp:
(WebCore::isFlexBasisIdent): Refactored from consumeFlexBasis. Checks whether a given ident is a valid keyword
for the flex-basis property.
(WebCore::consumeFlexBasis): Use isFlexBasisIdent.
(WebCore::CSSPropertyParser::consumeFlex): Ditto.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (288183 => 288184)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-01-19 08:37:08 UTC (rev 288183)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-01-19 09:28:38 UTC (rev 288184)
@@ -1,3 +1,12 @@
+2022-01-18  Sergio Villar Senin  
+
+[css-flexbox] Add support for intrinsic sizes to the flex shorthand
+https://bugs.webkit.org/show_bug.cgi?id=235314
+
+Reviewed by Darin Adler.
+
+* web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt: Replaced FAIL by PASS expectations.
+
 2022-01-18  Chris Dumez  
 
 When inserting a selected  in a  element, its selected state should remain


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt (288183 => 288184)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt	2022-01-19 08:37:08 UTC (rev 288183)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt	2022-01-19 09:28:38 UTC (rev 288184)
@@ -27,12 +27,12 @@
 PASS e.style['flex'] = "content" should set flex-grow
 PASS e.style['flex'] = "content" should set flex-shrink
 PASS e.style['flex'] = "content" should not set unrelated longhands
-FAIL e.style['flex'] = "0 fit-content" should set flex-basis assert_equals: flex-basis should be canonical expected "fit-content" but got ""
-FAIL e.style['flex'] = "0 fit-content" should set flex-grow assert_equals: flex-grow should be canonical expected "0" but got ""
-FAIL e.style['flex'] = "0 fit-content" should set flex-shrink assert_equals: flex-shrink should be canonical expected "1" but got ""
-FAIL e.style['flex'] = "0 fit-content" should not set unrelated longhands assert_true: expected true got false
-FAIL e.style['flex'] = "1 0 max-content" should set flex-basis assert_equals: flex-basis should be canonical expected "max-content" but got ""
-FAIL e.style['flex'] = "1 0 max-content" should set flex-grow assert_equals: flex-grow should be canonical expected "1" but got ""
-FAIL e.style['flex'] = "1 0 max-content" should set flex-shrink assert_equals: flex-shrink should be canonical expected "0" but got ""
-FAIL e.style['flex'] = "1 0 max-content" should not set unrelated longhands assert_true: expected true got false
+PASS e.style['flex'] = "0 fit-content" should set flex-basis
+PASS e.style['flex'] = "0 fit-content" should set flex-grow
+PASS e.style['flex'] = "0 fit-content" should set flex-shrink
+PASS e.style['flex'] = "0 fit-content" should not set unrelated longhands
+PASS e.style['flex'] = "1 0 max-content" should set flex-basis
+PASS e.style['flex'] = "1 0 max-content" should set flex-grow
+PASS e.style['flex'] = "1 0 max-content" should set flex-shrink
+PASS e.style['flex'] = "1 0 max-content" should not set unrelated longhands
 


Modified: trunk/Source/WebCore/ChangeLog (288183 => 288184)

--- trunk/Source/WebCore/ChangeLog	2022-01-19 08:37:08 UTC (rev 288183)
+++ trunk/Source/WebCore/ChangeLog	2022-01-19 09:28:38 UTC (rev 288184)
@@ -1,3 +1,23 @@
+2022-01-18  Sergio Villar Senin  
+
+[css-flexbox] Add support for intrinsic sizes to the flex shorthand
+https://bugs.webkit.org/show_bug.cgi?id=235314
+
+Reviewed by Darin Adler.
+
+In r288113 we added support for intrinsic sizes in the flex-basis property. However the flex-basis property
+can be also set via the flex shorthand. The flex shorthand was still not accepting the intrinsic sizes as
+valid values. That's why the code 

[webkit-changes] [288113] trunk

2022-01-18 Thread svillar
Title: [288113] trunk








Revision 288113
Author svil...@igalia.com
Date 2022-01-18 03:02:49 -0800 (Tue, 18 Jan 2022)


Log Message
[css-flexbox] Add support for intrinsic sizes in flex-basis
https://bugs.webkit.org/show_bug.cgi?id=235291

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt: Replaced FAIL by PASS expectations.
* web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt: Ditto.

Source/WebCore:

The flex-basis property should allow the same values as <'width'>. However we were only allowing 'auto', 'content'
and any Length. That did not include intrinsic sizes like 'min-content', 'fit-content' etc. Added the proper parsing
machinery in order to fix that.

Apart from that, a change in the flexbox code was needed. In particular the code was incorrectly assuming that a
flex-basis with intrinsic size in a column flexbox was always an indefinite size. That's true as long as the flexbox
has an horizontal writing mode (in that case the main axis would be the block axis). However that's totally wrong for
a flexbox with vertical writing mode (as in that case the main axis would be the inline axis).

The flexbox fix + the parsing additions allow us to pass 12 more WPT subtests.

* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFlexBasis): Additionally check for any validWidthOrHeightKeyword().
(WebCore::CSSPropertyParser::parseSingleValue): Pass the context instead of the mode.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite): Replaced isColumnFlow() by !mainAxisIsChildInlineAxis().

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (288112 => 288113)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-01-18 08:30:06 UTC (rev 288112)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-01-18 11:02:49 UTC (rev 288113)
@@ -1,3 +1,14 @@
+2022-01-17  Sergio Villar Senin  
+
+[css-flexbox] Add support for intrinsic sizes in flex-basis
+https://bugs.webkit.org/show_bug.cgi?id=235291
+
+Reviewed by Darin Adler.
+
+* web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt: Replaced FAIL by PASS expectations.
+* web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt: Ditto.
+* web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt: Ditto.
+
 2022-01-17  Antti Koivisto  
 
 [:has() pseudo-class] Disallow nested :has()


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt (288112 => 288113)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt	2022-01-18 08:30:06 UTC (rev 288112)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt	2022-01-18 11:02:49 UTC (rev 288113)
@@ -1,38 +1,14 @@
 
-FAIL .flex-item 1 assert_equals:
-
-
-  
-width expected 50 but got 100
-FAIL .flex-item 2 assert_equals:
-
-
-  
-width expected 100 but got 300
-FAIL .flex-item 3 assert_equals:
-
-
-  
-width expected 75 but got 100
+PASS .flex-item 1
+PASS .flex-item 2
+PASS .flex-item 3
 PASS .flex-item 4
 PASS .flex-item 5
 PASS .flex-item 6
 PASS .flex-item 7
-FAIL .flex-item 8 assert_equals:
-
-
-  
-width expected 100 but got 300
+PASS .flex-item 8
 PASS .flex-item 9
-FAIL .flex-item 10 assert_equals:
-
-
-  
-height expected 50 but got 100
+PASS .flex-item 10
 PASS .flex-item 11
-FAIL .flex-item 12 assert_equals:
-
-
-  
-height expected 75 but got 100
+PASS .flex-item 12
 


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt (288112 => 288113)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt	2022-01-18 08:30:06 UTC (rev 288112)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt	2022-01-18 11:02:49 UTC (rev 288113)
@@ -3,9 +3,9 @@
 PASS Property flex-basis value '400%'
 PASS Property flex-basis value 'auto'
 PASS Property flex-basis value 'content'
-FAIL Property flex-basis value 'fit-content' assert_true: 'fit-content' is a supported value for flex-basis. expected true got false
-FAIL Property flex-basis value 

[webkit-changes] [287976] trunk

2022-01-13 Thread svillar
Title: [287976] trunk








Revision 287976
Author svil...@igalia.com
Date 2022-01-13 05:04:00 -0800 (Thu, 13 Jan 2022)


Log Message
[css-flexbox] Incorrect height of flex items with aspect-ratio whenever the cross axis intrinsic size is larger than the viewport
https://bugs.webkit.org/show_bug.cgi?id=234564


Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Automatic preferred sizes were considered always indefinite. However whenever they correspond to
the (physical) width we could consider them as definite. This allows us to use that size instead of
the flex item intrinsic size when computing the transferred size contribution. This way, flex items
with aspect ratio and large intrinsic size are not abnormally stretched due to the min-size:auto
computation.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Use availableLogical{Width|Height}
to compute the cross size when then automatic preferred size is the physical width.
(WebCore::RenderFlexibleBox::childCrossAxisIsPhysicalWidth const):
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): Handle the cases of
automatic preferred widths.
* rendering/RenderFlexibleBox.h:

LayoutTests:

Adjusted the canvas-css-size-after-height-change-with-display-flex.html test case and expectations so it behaves as other engines.

* TestExpectations: Unskipped a test that is passing now.
* fast/canvas/canvas-css-size-after-height-change-with-display-flex-expected.html:
* fast/canvas/canvas-css-size-after-height-change-with-display-flex.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/fast/canvas/canvas-css-size-after-height-change-with-display-flex-expected.html
trunk/LayoutTests/fast/canvas/canvas-css-size-after-height-change-with-display-flex.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/LayoutTests/ChangeLog (287975 => 287976)

--- trunk/LayoutTests/ChangeLog	2022-01-13 09:42:56 UTC (rev 287975)
+++ trunk/LayoutTests/ChangeLog	2022-01-13 13:04:00 UTC (rev 287976)
@@ -1,3 +1,17 @@
+2022-01-10  Sergio Villar Senin  
+
+[css-flexbox] Incorrect height of flex items with aspect-ratio whenever the cross axis intrinsic size is larger than the viewport
+https://bugs.webkit.org/show_bug.cgi?id=234564
+
+
+Reviewed by Manuel Rego Casasnovas.
+
+Adjusted the canvas-css-size-after-height-change-with-display-flex.html test case and expectations so it behaves as other engines.
+
+* TestExpectations: Unskipped a test that is passing now.
+* fast/canvas/canvas-css-size-after-height-change-with-display-flex-expected.html:
+* fast/canvas/canvas-css-size-after-height-change-with-display-flex.html:
+
 2022-01-13  Youenn Fablet  
 
 imported/w3c/web-platform-tests/web-locks/clientids.tentative.https.html is consistently passing on bots


Modified: trunk/LayoutTests/TestExpectations (287975 => 287976)

--- trunk/LayoutTests/TestExpectations	2022-01-13 09:42:56 UTC (rev 287975)
+++ trunk/LayoutTests/TestExpectations	2022-01-13 13:04:00 UTC (rev 287976)
@@ -1355,7 +1355,6 @@
 webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-order.html [ ImageOnlyFailure ]
 webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-wrap-reverse.html [ ImageOnlyFailure ]
 webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-wrap.html [ ImageOnlyFailure ]
-webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/canvas-dynamic-change-001.html [ Failure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015.html [ ImageOnlyFailure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001.html [ ImageOnlyFailure ]
 webkit.org/b/210243 imported/w3c/web-platform-tests/css/css-flexbox/percentage-size-quirks-002.html [ Failure ]
@@ -4202,7 +4201,6 @@
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-005.html [ ImageOnlyFailure ]
-webkit.org/b/234564 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-007.html [ ImageOnlyFailure ]
 
 webkit.org/b/145176 imported/w3c/web-platform-tests/css/css-flexbox/flexbox_align-items-stretch-3.html [ ImageOnlyFailure ]
 webkit.org/b/210093 imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-001.html [ ImageOnlyFailure ]


Modified: trunk/LayoutTests/fast/canvas/canvas-css-size-after-height-change-with-display-flex-expected.html (287975 => 287976)

--- 

[webkit-changes] [287355] trunk

2021-12-22 Thread svillar
Title: [287355] trunk








Revision 287355
Author svil...@igalia.com
Date 2021-12-22 07:27:57 -0800 (Wed, 22 Dec 2021)


Log Message
[REGRESSION][[css-flexbox] child elements are shrunk to fit into container after r286206
https://bugs.webkit.org/show_bug.cgi?id=234361

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001-expected.html: Added.
* web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001.html: Added.
* web-platform-tests/css/css-flexbox/w3c-import.log:

Source/WebCore:

The patch from r286206 fixed the sizing of flex items with intrinsic aspect ratios but no intrinsic sizes
as happens with many SVG images. That fix was however way too general as it was targeted at any replaced
element. The problem of generalizing it is that replaced elements as iframes do not have intrinsic aspect
ratios although they have a default size (300x150px). Constraining the new code to SVG images fixes the
regression.

Replacing is(child) with is(child) wouldn't be enough as we need to consider
the newly added LegacySVGRoot that was added as part of the SVG layout refactoring.

Test: imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001.html

* rendering/RenderFlexibleBox.cpp:
(WebCore::isSVGRootWithIntrinsicAspectRatio):
(WebCore::childHasAspectRatio):
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
(WebCore::RenderFlexibleBox::childHasComputableAspectRatio const):
(WebCore::isRenderReplacedWithIntrinsicAspectRatio): Deleted.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001.html




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (287354 => 287355)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-22 12:31:35 UTC (rev 287354)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-22 15:27:57 UTC (rev 287355)
@@ -1,3 +1,14 @@
+2021-12-21  Sergio Villar Senin  
+
+[REGRESSION][[css-flexbox] child elements are shrunk to fit into container after r286206
+https://bugs.webkit.org/show_bug.cgi?id=234361
+
+Reviewed by Manuel Rego Casasnovas.
+
+* web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001-expected.html: Added.
+* web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001.html: Added.
+* web-platform-tests/css/css-flexbox/w3c-import.log:
+
 2021-12-21  Tim Nguyen  
 
  should generate implied end tags


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001-expected.html (0 => 287355)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001-expected.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001-expected.html	2021-12-22 15:27:57 UTC (rev 287355)
@@ -0,0 +1,19 @@
+
+
+div {
+height: 400px;
+border: 0;
+}
+div > div {
+width: 50%;
+float: left;
+}
+
+
+This test PASS if you see two equally sized blue and green boxes.
+
+
+
+
+
+
Property changes on: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001-expected.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001.html (0 => 287355)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001.html	2021-12-22 15:27:57 UTC (rev 287355)
@@ -0,0 +1,24 @@
+
+
+
+
+
+div {
+display: flex;
+height: 400px;
+}
+
+iframe {
+flex: 1 1 auto;
+border: 0;
+}
+
+This test PASS if you see two equally sized blue and green boxes.
+
+
+
+
+
+
Property changes on: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-iframe-intrinsic-size-001.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log (287354 => 287355)

--- 

[webkit-changes] [287263] trunk

2021-12-20 Thread svillar
Title: [287263] trunk








Revision 287263
Author svil...@igalia.com
Date 2021-12-20 08:56:35 -0800 (Mon, 20 Dec 2021)


Log Message
[css-flexbox] Pre-layout orthogonal children to compute the preferred logical width
https://bugs.webkit.org/show_bug.cgi?id=234300

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/intrinsic-width-orthogonal-writing-mode-expected.txt: Replaced
FAIL by PASS expectations for 2 subtests that are passing now.

Source/WebCore:

In order to properly compute the flex container intrinsic width we must layout the orthogonal
children so that we could use the children's block sizes (which are in the flex container
inline axis).

The very same solution was adopted long time ago by the RenderGrid code.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths const): prelayout orthogonal children.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/intrinsic-width-orthogonal-writing-mode-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (287262 => 287263)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-20 16:23:17 UTC (rev 287262)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-20 16:56:35 UTC (rev 287263)
@@ -1,3 +1,13 @@
+2021-12-14  Sergio Villar Senin  
+
+[css-flexbox] Pre-layout orthogonal children to compute the preferred logical width
+https://bugs.webkit.org/show_bug.cgi?id=234300
+
+Reviewed by Javier Fernandez.
+
+* web-platform-tests/css/css-flexbox/intrinsic-width-orthogonal-writing-mode-expected.txt: Replaced
+FAIL by PASS expectations for 2 subtests that are passing now.
+
 2021-12-16  Vitaly Dyachkov  
 
 Flexbox ignores margins of absolute positioned children when `align-items: flex-end` or `justify-content: flex-end`


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/intrinsic-width-orthogonal-writing-mode-expected.txt (287262 => 287263)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/intrinsic-width-orthogonal-writing-mode-expected.txt	2021-12-20 16:23:17 UTC (rev 287262)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/intrinsic-width-orthogonal-writing-mode-expected.txt	2021-12-20 16:56:35 UTC (rev 287263)
@@ -1,15 +1,7 @@
 
 PASS .inline-flexbox 1
-FAIL .inline-flexbox 2 assert_equals:
-
-Some text
-
-width expected 20 but got 0
-FAIL .inline-flexbox 3 assert_equals:
-
-Some text
-
-width expected 20 but got 0
+PASS .inline-flexbox 2
+PASS .inline-flexbox 3
 
 Some text
 


Modified: trunk/Source/WebCore/ChangeLog (287262 => 287263)

--- trunk/Source/WebCore/ChangeLog	2021-12-20 16:23:17 UTC (rev 287262)
+++ trunk/Source/WebCore/ChangeLog	2021-12-20 16:56:35 UTC (rev 287263)
@@ -1,3 +1,19 @@
+2021-12-14  Sergio Villar Senin  
+
+[css-flexbox] Pre-layout orthogonal children to compute the preferred logical width
+https://bugs.webkit.org/show_bug.cgi?id=234300
+
+Reviewed by Javier Fernandez.
+
+In order to properly compute the flex container intrinsic width we must layout the orthogonal
+children so that we could use the children's block sizes (which are in the flex container
+inline axis).
+
+The very same solution was adopted long time ago by the RenderGrid code.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths const): prelayout orthogonal children.
+
 2021-12-20  Karl Dubost  
 
 Fixes dead code in compareIcons()


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (287262 => 287263)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-12-20 16:23:17 UTC (rev 287262)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-12-20 16:56:35 UTC (rev 287263)
@@ -113,6 +113,10 @@
 continue;
 ++numItemsWithNormalLayout;
 
+// Pre-layout orthogonal children in order to get a valid value for the preferred width.
+if (style().isHorizontalWritingMode() != child->style().isHorizontalWritingMode())
+child->layoutIfNeeded();
+
 LayoutUnit margin = marginIntrinsicLogicalWidthForChild(*child);
 
 LayoutUnit minPreferredLogicalWidth;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [287064] trunk

2021-12-15 Thread svillar
Title: [287064] trunk








Revision 287064
Author svil...@igalia.com
Date 2021-12-15 01:03:52 -0800 (Wed, 15 Dec 2021)


Log Message
[css-flexbox] Absolutely positioned children should be aligned using the margin box
https://bugs.webkit.org/show_bug.cgi?id=234244

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt: Replaced FAIL
by PASS expectations.

Source/WebCore:

When aligning absolutely positioned children we must use the child's margin box. We were
using the border box instead, and thus ignoring margins when aligning absolutely positioned
flexbox children.

This fixes position-absolute-014.html from the WPT suite.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::availableAlignmentSpaceForChild): Removed the !isOutOfFlowPositioned()
ASSERT. It's true that in the past it was called only from code dealing with flex items but the code
implementing the function does not really have that restriction at all.
(WebCore::RenderFlexibleBox::staticCrossAxisPositionForPositionedChild): Directly call
availableAlignmentSpaceForChild() as it already uses the margin box.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (287063 => 287064)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-15 06:53:53 UTC (rev 287063)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-15 09:03:52 UTC (rev 287064)
@@ -1,3 +1,13 @@
+2021-12-13  Sergio Villar Senin  
+
+[css-flexbox] Absolutely positioned children should be aligned using the margin box
+https://bugs.webkit.org/show_bug.cgi?id=234244
+
+Reviewed by Darin Adler.
+
+* web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt: Replaced FAIL
+by PASS expectations.
+
 2021-12-14  Joonghun Park  
 
 Fix that height is calculated incorrectly when using display:table, box-sizing:border-box and padding.


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt (287063 => 287064)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt	2021-12-15 06:53:53 UTC (rev 287063)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt	2021-12-15 09:03:52 UTC (rev 287064)
@@ -1,4 +1,4 @@
 aaa bbb aaa bbb aaa bbb
 
-FAIL The bottom of each pair of boxes should be the same assert_equals: expected 166 but got 106
+PASS The bottom of each pair of boxes should be the same
 


Modified: trunk/Source/WebCore/ChangeLog (287063 => 287064)

--- trunk/Source/WebCore/ChangeLog	2021-12-15 06:53:53 UTC (rev 287063)
+++ trunk/Source/WebCore/ChangeLog	2021-12-15 09:03:52 UTC (rev 287064)
@@ -1,3 +1,23 @@
+2021-12-13  Sergio Villar Senin  
+
+[css-flexbox] Absolutely positioned children should be aligned using the margin box
+https://bugs.webkit.org/show_bug.cgi?id=234244
+
+Reviewed by Darin Adler.
+
+When aligning absolutely positioned children we must use the child's margin box. We were
+using the border box instead, and thus ignoring margins when aligning absolutely positioned
+flexbox children.
+
+This fixes position-absolute-014.html from the WPT suite.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::availableAlignmentSpaceForChild): Removed the !isOutOfFlowPositioned()
+ASSERT. It's true that in the past it was called only from code dealing with flex items but the code
+implementing the function does not really have that restriction at all.
+(WebCore::RenderFlexibleBox::staticCrossAxisPositionForPositionedChild): Directly call
+availableAlignmentSpaceForChild() as it already uses the margin box.
+
 2021-12-14  Joonghun Park  
 
 Fix that height is calculated incorrectly when using display:table, box-sizing:border-box and padding.


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (287063 => 287064)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-12-15 06:53:53 UTC (rev 287063)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-12-15 09:03:52 UTC (rev 287064)
@@ -1224,7 +1224,6 @@
 
 LayoutUnit RenderFlexibleBox::availableAlignmentSpaceForChild(LayoutUnit lineCrossAxisExtent, const RenderBox& child)
 {
-ASSERT(!child.isOutOfFlowPositioned());
 LayoutUnit childCrossExtent = crossAxisMarginExtentForChild(child) + crossAxisExtentForChild(child);
 return lineCrossAxisExtent - childCrossExtent;
 }
@@ -1684,7 +1683,7 @@
 
 LayoutUnit RenderFlexibleBox::staticCrossAxisPositionForPositionedChild(const RenderBox& child)
 {
-

[webkit-changes] [286952] trunk

2021-12-13 Thread svillar
Title: [286952] trunk








Revision 286952
Author svil...@igalia.com
Date 2021-12-13 09:19:12 -0800 (Mon, 13 Dec 2021)


Log Message
[css-writing-modes] Use the correct margins in computeInlinePreferredLogicalWidths in orthogonal flows
https://bugs.webkit.org/show_bug.cgi?id=233562


Reviewed by Rob Buis.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins-expected.html: Added.
* web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins.html: Added.

Source/WebCore:

In order to compute the preferred logical width of an inline element we must compute the preferred widths of
its children. More precisely we should compute the intrinsic size of the children in the inline direction of the
inline element. For parallel flows this means indeed computing the preferred logical width. Translated to
the margins, we should compute the margin-start and margin-end of each child.

However for orthogonal writing modes we should not use the margin-start & margin-end but margin-after and
margin-before. That's why in order to support orthogonal flows we should replace marginStart() usage by
marginStartUsing(parentStyle) (same for marginEnd).

Test: imported/w3c/web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

LayoutTests:

* TestExpectations: Unksipped a flexbox test that is now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBlockFlow.cpp


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins.html




Diff

Modified: trunk/LayoutTests/ChangeLog (286951 => 286952)

--- trunk/LayoutTests/ChangeLog	2021-12-13 17:04:02 UTC (rev 286951)
+++ trunk/LayoutTests/ChangeLog	2021-12-13 17:19:12 UTC (rev 286952)
@@ -1,3 +1,13 @@
+2021-12-13  Sergio Villar Senin  
+
+[css-writing-modes] Use the correct margins in computeInlinePreferredLogicalWidths in orthogonal flows
+https://bugs.webkit.org/show_bug.cgi?id=233562
+
+
+Reviewed by Rob Buis.
+
+* TestExpectations: Unksipped a flexbox test that is now passing.
+
 2021-12-13  Antti Koivisto  
 
 [CSS Cascade Layers] Unflake and fix web-platform-tests/css/css-cascade/layer-statement-before-import.html


Modified: trunk/LayoutTests/TestExpectations (286951 => 286952)

--- trunk/LayoutTests/TestExpectations	2021-12-13 17:04:02 UTC (rev 286951)
+++ trunk/LayoutTests/TestExpectations	2021-12-13 17:19:12 UTC (rev 286952)
@@ -4247,9 +4247,6 @@
 # SVGs as flex items.
 webkit.org/b/221474 imported/w3c/web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002.html [ ImageOnlyFailure ]
 
-# The test works fine but the expected result fails due to a missing layout.
-webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002.xhtml [ ImageOnlyFailure ]
-
 # align baseline in flexbox.
 webkit.org/b/221478 imported/w3c/web-platform-tests/css/css-flexbox/baseline-synthesis-001.html [ ImageOnlyFailure ]
 webkit.org/b/221478 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a.xhtml [ ImageOnlyFailure ]


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (286951 => 286952)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-13 17:04:02 UTC (rev 286951)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-13 17:19:12 UTC (rev 286952)
@@ -1,3 +1,14 @@
+2021-12-13  Sergio Villar Senin  
+
+[css-writing-modes] Use the correct margins in computeInlinePreferredLogicalWidths in orthogonal flows
+https://bugs.webkit.org/show_bug.cgi?id=233562
+
+
+Reviewed by Rob Buis.
+
+* web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins-expected.html: Added.
+* web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins.html: Added.
+
 2021-12-13  Antti Koivisto  
 
 [CSS Cascade Layers] Unflake and fix web-platform-tests/css/css-cascade/layer-statement-before-import.html


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins-expected.html (0 => 286952)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins-expected.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins-expected.html	2021-12-13 17:19:12 UTC (rev 286952)
@@ -0,0 +1,28 @@
+
+
+
+.container {
+  border: 1px dashed blue;
+  height: 200px;
+ 

[webkit-changes] [286593] trunk

2021-12-07 Thread svillar
Title: [286593] trunk








Revision 286593
Author svil...@igalia.com
Date 2021-12-07 02:20:24 -0800 (Tue, 07 Dec 2021)


Log Message
[css-flexbox] Account for captions when flexing tables with specified sizes
https://bugs.webkit.org/show_bug.cgi?id=233814

Reviewed by Darin Adler.

Source/WebCore:

Flexing tables is complex because of the specifics of the table layout algorithms. There are
two interrelated issues that were causing some failures in flexbox WPT tests.

The first one is that tables interpret overriding sizes (flexed sizes) as the sizes of rows + captions.
However the specified height of a table only accounts for the heights of the rows, not the captions. That's
why when setting the flexed height of a table we must add up the specified height of the table and the height
of the captions. The table algorithm will properly substract the captions' size in order to compute the
available height for rows.

The second issue is that the table layout algorithm adds the size of the bottom border at the very end
of its execution after performing all the computations and it does it unconditionally. The thing is that
the flexbox code already takes into account the borders and paddings so we basically have to substract that
border when setting the height of the table, because the table layout will add it later.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::computeCaptionsLogicalHeight const): New method refactored from current code.
(WebCore::RenderTable::layout):
* rendering/RenderTable.h: Expose computeCaptionsLogicalHeight.

LayoutTests:

* TestExpectations: Unskipped two tests that are now passing

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderTable.cpp
trunk/Source/WebCore/rendering/RenderTable.h




Diff

Modified: trunk/LayoutTests/ChangeLog (286592 => 286593)

--- trunk/LayoutTests/ChangeLog	2021-12-07 10:01:22 UTC (rev 286592)
+++ trunk/LayoutTests/ChangeLog	2021-12-07 10:20:24 UTC (rev 286593)
@@ -1,3 +1,12 @@
+2021-12-03  Sergio Villar Senin  
+
+[css-flexbox] Account for captions when flexing tables with specified sizes
+https://bugs.webkit.org/show_bug.cgi?id=233814
+
+Reviewed by Darin Adler.
+
+* TestExpectations: Unskipped two tests that are now passing
+
 2021-12-07  Martin Robinson  
 
 perspective() <= 1px should be clamped to 1px


Modified: trunk/LayoutTests/TestExpectations (286592 => 286593)

--- trunk/LayoutTests/TestExpectations	2021-12-07 10:01:22 UTC (rev 286592)
+++ trunk/LayoutTests/TestExpectations	2021-12-07 10:20:24 UTC (rev 286593)
@@ -4224,8 +4224,6 @@
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002.html [ ImageOnlyFailure ]
 
 # Tables as flex items.
-webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-1.html [ ImageOnlyFailure ]
-webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html [ ImageOnlyFailure ]
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-min-height-1.html [ ImageOnlyFailure ]
 
 # SVGs as flex items.


Modified: trunk/Source/WebCore/ChangeLog (286592 => 286593)

--- trunk/Source/WebCore/ChangeLog	2021-12-07 10:01:22 UTC (rev 286592)
+++ trunk/Source/WebCore/ChangeLog	2021-12-07 10:20:24 UTC (rev 286593)
@@ -1,3 +1,31 @@
+2021-12-03  Sergio Villar Senin  
+
+[css-flexbox] Account for captions when flexing tables with specified sizes
+https://bugs.webkit.org/show_bug.cgi?id=233814
+
+Reviewed by Darin Adler.
+
+Flexing tables is complex because of the specifics of the table layout algorithms. There are
+two interrelated issues that were causing some failures in flexbox WPT tests.
+
+The first one is that tables interpret overriding sizes (flexed sizes) as the sizes of rows + captions.
+However the specified height of a table only accounts for the heights of the rows, not the captions. That's
+why when setting the flexed height of a table we must add up the specified height of the table and the height
+of the captions. The table algorithm will properly substract the captions' size in order to compute the
+available height for rows.
+
+The second issue is that the table layout algorithm adds the size of the bottom border at the very end
+of its execution after performing all the computations and it does it unconditionally. The thing is that
+the flexbox code already takes into account the borders and paddings so we basically have to substract that
+border when setting the height of the table, because the table layout will add it later.
+
+* 

[webkit-changes] [286490] trunk/LayoutTests

2021-12-03 Thread svillar
Title: [286490] trunk/LayoutTests








Revision 286490
Author svil...@igalia.com
Date 2021-12-03 07:30:33 -0800 (Fri, 03 Dec 2021)


Log Message
[css-flexbox] WPT import. December 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=233810

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

* resources/resource-files.json:
* web-platform-tests/css/css-flexbox/negative-available-size-crash-expected.txt: Added.
* web-platform-tests/css/css-flexbox/negative-available-size-crash.html: Added.
* web-platform-tests/css/css-flexbox/scrollbars-auto-expected.html:
* web-platform-tests/css/css-flexbox/scrollbars-expected.html:
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html:
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html:
* web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

* TestExpectations: Unskipped a test that works fine after the changes in the import.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/resources/resource-files.json
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/scrollbars-auto-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/scrollbars-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/negative-available-size-crash-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/negative-available-size-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (286489 => 286490)

--- trunk/LayoutTests/ChangeLog	2021-12-03 14:12:08 UTC (rev 286489)
+++ trunk/LayoutTests/ChangeLog	2021-12-03 15:30:33 UTC (rev 286490)
@@ -1,3 +1,12 @@
+2021-12-03  Sergio Villar Senin  
+
+[css-flexbox] WPT import. December 2021 edition
+https://bugs.webkit.org/show_bug.cgi?id=233810
+
+Reviewed by Rob Buis.
+
+* TestExpectations: Unskipped a test that works fine after the changes in the import.
+
 2021-12-03  Youenn Fablet  
 
 Persist NavigationPreloadState in service worker registration database


Modified: trunk/LayoutTests/TestExpectations (286489 => 286490)

--- trunk/LayoutTests/TestExpectations	2021-12-03 14:12:08 UTC (rev 286489)
+++ trunk/LayoutTests/TestExpectations	2021-12-03 15:30:33 UTC (rev 286490)
@@ -4230,7 +4230,6 @@
 # Tables as flex items.
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-1.html [ ImageOnlyFailure ]
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html [ ImageOnlyFailure ]
-webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html [ ImageOnlyFailure ]
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-min-height-1.html [ ImageOnlyFailure ]
 
 # SVGs as flex items.


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (286489 => 286490)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-03 14:12:08 UTC (rev 286489)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-03 15:30:33 UTC (rev 286490)
@@ -1,3 +1,19 @@
+2021-12-03  Sergio Villar Senin  
+
+[css-flexbox] WPT import. December 2021 edition
+https://bugs.webkit.org/show_bug.cgi?id=233810
+
+Reviewed by Rob Buis.
+
+* resources/resource-files.json:
+* web-platform-tests/css/css-flexbox/negative-available-size-crash-expected.txt: Added.
+* web-platform-tests/css/css-flexbox/negative-available-size-crash.html: Added.
+* web-platform-tests/css/css-flexbox/scrollbars-auto-expected.html:
+* web-platform-tests/css/css-flexbox/scrollbars-expected.html:
+* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html:
+* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html:
+* web-platform-tests/css/css-flexbox/w3c-import.log:
+
 2021-12-02  Chris Dumez  
 
 html/semantics/forms/constraints/form-validation-validity-valid.html WPT test is failing


Modified: trunk/LayoutTests/imported/w3c/resources/resource-files.json (286489 => 286490)

--- trunk/LayoutTests/imported/w3c/resources/resource-files.json	2021-12-03 14:12:08 UTC (rev 286489)
+++ trunk/LayoutTests/imported/w3c/resources/resource-files.json	2021-12-03 15:30:33 UTC (rev 286490)
@@ -42,6 +42,7 @@
 "css/css-flexbox/justify-content_flex-start.html",
 "css/css-flexbox/justify-content_space-around.html",
 "css/css-flexbox/justify-content_space-between-001.html",
+"css/css-flexbox/negative-available-size-crash.html",
   

[webkit-changes] [286421] trunk/Source/WebCore

2021-12-02 Thread svillar
Title: [286421] trunk/Source/WebCore








Revision 286421
Author svil...@igalia.com
Date 2021-12-02 04:51:10 -0800 (Thu, 02 Dec 2021)


Log Message
Reset height definiteness when constructing flex items
https://bugs.webkit.org/show_bug.cgi?id=233458

Reviewed by Alan Bujtas.

Flexbox renderer uses an attribute called m_hasDefiniteHeight in order to properly
consider as definite some sizes that are normally considered as indefinite. For example,
a percentage of an intrinsic size is normally indefinite unless the containing block has
an overriding size in which case can be considered as definite.

The value of m_hasDefiniteHeight is properly reset every time we construct a flex item or
just after finishing the layout. However we should do it as well just before computing
the flex basis if the flex item is also a flex container. In that case it might happen that
we try to compute the flex basis value with a value for m_hasDefiniteHeight which can
be potentially outdated.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Use resetHasDefiniteHeight().
(WebCore::RenderFlexibleBox::layoutFlexItems): Ditto.
(WebCore::RenderFlexibleBox::constructFlexItem): Call resetHasDefiniteHeight() if the
flex item is also a flex container.
* rendering/RenderFlexibleBox.h:
(WebCore::RenderFlexibleBox::resetHasDefiniteHeight): Added.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (286420 => 286421)

--- trunk/Source/WebCore/ChangeLog	2021-12-02 09:02:26 UTC (rev 286420)
+++ trunk/Source/WebCore/ChangeLog	2021-12-02 12:51:10 UTC (rev 286421)
@@ -1,3 +1,29 @@
+2021-11-25  Sergio Villar Senin  
+
+Reset height definiteness when constructing flex items
+https://bugs.webkit.org/show_bug.cgi?id=233458
+
+Reviewed by Alan Bujtas.
+
+Flexbox renderer uses an attribute called m_hasDefiniteHeight in order to properly
+consider as definite some sizes that are normally considered as indefinite. For example,
+a percentage of an intrinsic size is normally indefinite unless the containing block has
+an overriding size in which case can be considered as definite.
+
+The value of m_hasDefiniteHeight is properly reset every time we construct a flex item or
+just after finishing the layout. However we should do it as well just before computing
+the flex basis if the flex item is also a flex container. In that case it might happen that
+we try to compute the flex basis value with a value for m_hasDefiniteHeight which can
+be potentially outdated.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::layoutBlock): Use resetHasDefiniteHeight().
+(WebCore::RenderFlexibleBox::layoutFlexItems): Ditto.
+(WebCore::RenderFlexibleBox::constructFlexItem): Call resetHasDefiniteHeight() if the
+flex item is also a flex container.
+* rendering/RenderFlexibleBox.h:
+(WebCore::RenderFlexibleBox::resetHasDefiniteHeight): Added.
+
 2021-12-02  Youenn Fablet  
 
 Add support for NavigationPreloadManager


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (286420 => 286421)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-12-02 09:02:26 UTC (rev 286420)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-12-02 12:51:10 UTC (rev 286421)
@@ -399,7 +399,7 @@
 // We have to reset this, because changes to our ancestors' style can affect
 // this value. Also, this needs to be before we call updateAfterLayout, as
 // that function may re-enter this one.
-m_hasDefiniteHeight = SizeDefiniteness::Unknown;
+resetHasDefiniteHeight();
 
 // Update our scroll information if we're overflow:auto/scroll/hidden now that we know if we overflow or not.
 updateScrollInfoAfterLayout();
@@ -1101,7 +1101,7 @@
 }
 allItems.append(constructFlexItem(*child, relayoutChildren));
 // constructFlexItem() might set the override containing block height so any value cached for definiteness might be incorrect.
-m_hasDefiniteHeight = SizeDefiniteness::Unknown;
+resetHasDefiniteHeight();
 }
 
 const LayoutUnit lineBreakLength = mainAxisContentExtent(LayoutUnit::max());
@@ -1450,6 +1450,8 @@
 {
 auto childHadLayout = child.everHadLayout();
 child.clearOverridingContentSize();
+if (is(child))
+downcast(child).resetHasDefiniteHeight();
 
 LayoutUnit borderAndPadding = isHorizontalFlow() ? child.horizontalBorderAndPaddingExtent() : child.verticalBorderAndPaddingExtent();
 LayoutUnit childInnerFlexBaseSize = computeFlexBaseSizeForChild(child, borderAndPadding, relayoutChildren);


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.h (286420 => 286421)

--- 

[webkit-changes] [286207] trunk

2021-11-29 Thread svillar
Title: [286207] trunk








Revision 286207
Author svil...@igalia.com
Date 2021-11-29 02:29:38 -0800 (Mon, 29 Nov 2021)


Log Message
[css-flexbox] Do not shrink tables bellow their intrinsic sizes
https://bugs.webkit.org/show_bug.cgi?id=232383

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Flex layout algorithm uses the flex items min|max sizes to compute the hypothetical main size which
will be used to clamp the size of the items when flexed. In the case of tables as flex items, we were
using the min-size straight away whenever that was definite. However we cannot do that because tables
must not shrink bellow their intrinsic sizes. That's why we should select the maximum of the intrinsic
size and the min-size.

This fixes a WPT test covering this case.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes): Do not select a min-size smaller than the
table intrinsic size in the main axis.

LayoutTests:

* TestExpectations: Unskip table-as-item-fixed-min-width-3.html which works fine now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (286206 => 286207)

--- trunk/LayoutTests/ChangeLog	2021-11-29 10:00:51 UTC (rev 286206)
+++ trunk/LayoutTests/ChangeLog	2021-11-29 10:29:38 UTC (rev 286207)
@@ -1,5 +1,14 @@
 2021-10-27  Sergio Villar Senin  
 
+[css-flexbox] Do not shrink tables bellow their intrinsic sizes
+https://bugs.webkit.org/show_bug.cgi?id=232383
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: Unskip table-as-item-fixed-min-width-3.html which works fine now.
+
+2021-10-27  Sergio Villar Senin  
+
 [css-flexbox] Add support for replaced elements with intrinsic ratio and no intrinsic size
 https://bugs.webkit.org/show_bug.cgi?id=231952
 


Modified: trunk/LayoutTests/TestExpectations (286206 => 286207)

--- trunk/LayoutTests/TestExpectations	2021-11-29 10:00:51 UTC (rev 286206)
+++ trunk/LayoutTests/TestExpectations	2021-11-29 10:29:38 UTC (rev 286207)
@@ -4234,7 +4234,6 @@
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002.html [ ImageOnlyFailure ]
 
 # Tables as flex items.
-webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-3.html [ ImageOnlyFailure ]
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-1.html [ ImageOnlyFailure ]
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html [ ImageOnlyFailure ]
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (286206 => 286207)

--- trunk/Source/WebCore/ChangeLog	2021-11-29 10:00:51 UTC (rev 286206)
+++ trunk/Source/WebCore/ChangeLog	2021-11-29 10:29:38 UTC (rev 286207)
@@ -1,5 +1,24 @@
 2021-10-27  Sergio Villar Senin  
 
+[css-flexbox] Do not shrink tables bellow their intrinsic sizes
+https://bugs.webkit.org/show_bug.cgi?id=232383
+
+Reviewed by Manuel Rego Casasnovas.
+
+Flex layout algorithm uses the flex items min|max sizes to compute the hypothetical main size which
+will be used to clamp the size of the items when flexed. In the case of tables as flex items, we were
+using the min-size straight away whenever that was definite. However we cannot do that because tables
+must not shrink bellow their intrinsic sizes. That's why we should select the maximum of the intrinsic
+size and the min-size.
+
+This fixes a WPT test covering this case.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes): Do not select a min-size smaller than the
+table intrinsic size in the main axis.
+
+2021-10-27  Sergio Villar Senin  
+
 [css-flexbox] Add support for replaced elements with intrinsic ratio and no intrinsic size
 https://bugs.webkit.org/show_bug.cgi?id=231952
 


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (286206 => 286207)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-11-29 10:00:51 UTC (rev 286206)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-11-29 10:29:38 UTC (rev 286207)
@@ -1323,8 +1323,13 @@
 
 Length min = mainSizeLengthForChild(MinSize, child);
 // Intrinsic sizes in child's block axis are handled by the min-size:auto code path.
-if (min.isSpecified() || (min.isIntrinsic() && mainAxisIsChildInlineAxis(child)))
-return { computeMainAxisExtentForChild(child, MinSize, min).value_or(0_lu), maxExtent.value_or(LayoutUnit::max()) };
+if (min.isSpecified() || (min.isIntrinsic() && mainAxisIsChildInlineAxis(child))) {

[webkit-changes] [286206] trunk

2021-11-29 Thread svillar
Title: [286206] trunk








Revision 286206
Author svil...@igalia.com
Date 2021-11-29 02:00:51 -0800 (Mon, 29 Nov 2021)


Log Message
[css-flexbox] Add support for replaced elements with intrinsic ratio and no intrinsic size
https://bugs.webkit.org/show_bug.cgi?id=231952


Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

It might be the case that replaced elements have intrinsic aspect ratio but no
intrinsic dimensions. Actually that's quite common for SVGs for example. We're
incorrectly assuming that flex items with no intrinsic dimensions didn't have
intrinsic aspect ratios which is wrong.

Added new checks that are able to detect those cases were we have an intrinsic
aspect ratio even though there are no intrinsic dimensions.

* rendering/RenderFlexibleBox.cpp:
(WebCore::isRenderReplacedWithIntrinsicAspectRatio):
(WebCore::childHasAspectRatio):
Consider replaced elements with intrinsic ratios and no intrinsic dimensions.
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
Let replaced elements compute the aspect ratio by themselves.
(WebCore::RenderFlexibleBox::childHasComputableAspectRatio const):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeIntrinsicAspectRatio const): New method that
computes the aspect ratio for replaced elements.
* rendering/RenderReplaced.h:

LayoutTests:

* TestExpectations: Unskipped a test case that is now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderReplaced.cpp
trunk/Source/WebCore/rendering/RenderReplaced.h




Diff

Modified: trunk/LayoutTests/ChangeLog (286205 => 286206)

--- trunk/LayoutTests/ChangeLog	2021-11-29 09:41:17 UTC (rev 286205)
+++ trunk/LayoutTests/ChangeLog	2021-11-29 10:00:51 UTC (rev 286206)
@@ -1,3 +1,13 @@
+2021-10-27  Sergio Villar Senin  
+
+[css-flexbox] Add support for replaced elements with intrinsic ratio and no intrinsic size
+https://bugs.webkit.org/show_bug.cgi?id=231952
+
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: Unskipped a test case that is now passing.
+
 2021-11-28  Matt Woodrow  
 
 Serialize computed style of background shorthand with multiple layers correctly.


Modified: trunk/LayoutTests/TestExpectations (286205 => 286206)

--- trunk/LayoutTests/TestExpectations	2021-11-29 09:41:17 UTC (rev 286205)
+++ trunk/LayoutTests/TestExpectations	2021-11-29 10:00:51 UTC (rev 286206)
@@ -4242,7 +4242,6 @@
 
 # SVGs as flex items.
 webkit.org/b/221474 imported/w3c/web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002.html [ ImageOnlyFailure ]
-webkit.org/b/221474 imported/w3c/web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003.html [ ImageOnlyFailure ]
 
 # The test works fine but the expected result fails due to a missing layout.
 webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002.xhtml [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (286205 => 286206)

--- trunk/Source/WebCore/ChangeLog	2021-11-29 09:41:17 UTC (rev 286205)
+++ trunk/Source/WebCore/ChangeLog	2021-11-29 10:00:51 UTC (rev 286206)
@@ -1,3 +1,31 @@
+2021-10-27  Sergio Villar Senin  
+
+[css-flexbox] Add support for replaced elements with intrinsic ratio and no intrinsic size
+https://bugs.webkit.org/show_bug.cgi?id=231952
+
+
+Reviewed by Manuel Rego Casasnovas.
+
+It might be the case that replaced elements have intrinsic aspect ratio but no
+intrinsic dimensions. Actually that's quite common for SVGs for example. We're
+incorrectly assuming that flex items with no intrinsic dimensions didn't have
+intrinsic aspect ratios which is wrong.
+
+Added new checks that are able to detect those cases were we have an intrinsic
+aspect ratio even though there are no intrinsic dimensions.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::isRenderReplacedWithIntrinsicAspectRatio):
+(WebCore::childHasAspectRatio):
+Consider replaced elements with intrinsic ratios and no intrinsic dimensions.
+(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
+Let replaced elements compute the aspect ratio by themselves.
+(WebCore::RenderFlexibleBox::childHasComputableAspectRatio const):
+* rendering/RenderReplaced.cpp:
+(WebCore::RenderReplaced::computeIntrinsicAspectRatio const): New method that
+computes the aspect ratio for replaced elements.
+* rendering/RenderReplaced.h:
+
 2021-11-29  Kimmo Kinnunen  
 
 GraphicsContextGLANGLE.cpp has platform specific code


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (286205 => 286206)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-11-29 09:41:17 UTC (rev 286205)
+++ 

[webkit-changes] [285989] trunk/LayoutTests

2021-11-18 Thread svillar
Title: [285989] trunk/LayoutTests








Revision 285989
Author svil...@igalia.com
Date 2021-11-18 01:41:56 -0800 (Thu, 18 Nov 2021)


Log Message
[css-flexbox] Import WPT tests. November 2021 edition.
https://bugs.webkit.org/show_bug.cgi?id=233197

Reviewed by Martin Robinson.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/baseline-synthesis-001-expected.xht: Added.
* web-platform-tests/css/css-flexbox/baseline-synthesis-001.html: Added.
* web-platform-tests/css/css-flexbox/baseline-synthesis-002-expected.xht: Added.
* web-platform-tests/css/css-flexbox/baseline-synthesis-002.html: Added.
* web-platform-tests/css/css-flexbox/column-intrinsic-size-aspect-ratio-crash.html: Added.
* web-platform-tests/css/css-flexbox/column-intrinsic-size-aspect-ratio-crash-expected.txt: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt:
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011.html:
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-016-expected.xht: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-016.html: Added.
* web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-023.html:
* web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html:
* web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001-expected.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001-expected.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001.xhtml:
* web-platform-tests/css/css-flexbox/percentage-heights-016-expected.xht: Added.
* web-platform-tests/css/css-flexbox/percentage-heights-016.html: Added.
* web-platform-tests/css/css-flexbox/percentage-heights-017-expected.xht: Added.
* web-platform-tests/css/css-flexbox/percentage-heights-017.html: Added.
* web-platform-tests/css/css-flexbox/percentage-heights-018-expected.xht: Added.
* web-platform-tests/css/css-flexbox/percentage-heights-018.html: Added.
* web-platform-tests/css/css-flexbox/percentage-heights-019-expected.xht: Added.
* web-platform-tests/css/css-flexbox/percentage-heights-019.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-large-intrinsic-size-expected.xht: Added.
* web-platform-tests/css/css-flexbox/table-as-item-large-intrinsic-size.html: Added.
* web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

* TestExpectations: Added tests that fail since the import.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-023.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001-expected.xhtml
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001.xhtml
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001-expected.xhtml
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001.xhtml
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/baseline-synthesis-001-expected.xht
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/baseline-synthesis-001.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/baseline-synthesis-002-expected.xht
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/baseline-synthesis-002.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/column-intrinsic-size-aspect-ratio-crash-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/column-intrinsic-size-aspect-ratio-crash.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-016-expected.xht
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-016.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-016-expected.xht
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-016.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-017-expected.xht
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-017.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-018-expected.xht

[webkit-changes] [285709] trunk

2021-11-12 Thread svillar
Title: [285709] trunk








Revision 285709
Author svil...@igalia.com
Date 2021-11-12 02:17:21 -0800 (Fri, 12 Nov 2021)


Log Message
[css-flexbox] Add flex-basis: content support
https://bugs.webkit.org/show_bug.cgi?id=221479

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt: Replaced FAIL
by PASS expectations.
* web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt: Ditto.

Source/WebCore:

Add support for the content keyword as a valid value for the flex-basis property.
It indicates an automated size based on the contents of the flex item. It's typically
equivalent to the max-content size but it has some adjustments for aspect ratios,
orthogonal flows and intrinsic sizing constraints.

Apart from adding the parsing support, it required very little adjustments in the
flexbox code after the refactoring in r284359.

This makes WebKit pass all of the flex-basis:content tests in WPT. We're talking
about 6 tests testing the feature and 6 subtests related to parsing.

* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle Content in switch.
(WebCore::CSSPrimitiveValue::init): Initialization for content CSS value.
* css/CSSProperties.json:
* css/LengthFunctions.cpp: Replaced LengthOrAuto by LengthSizing.
(WebCore::valueForLength): Handle Content in switch.
(WebCore::floatValueForLength): Ditto.
* css/LengthFunctions.h:
(WebCore::minimumValueForLength): Ditto.
* css/calc/CSSCalcValue.cpp:
(WebCore::createCSS): Ditto.
* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFlexBasis): Consume CSSValueContent.
(WebCore::CSSPropertyParser::consumeFlex): Ditto.
* platform/Length.cpp:
(WebCore::operator<<): Added printing support for content.
* platform/Length.h:
(WebCore::Length::initialize): Added enum for content.
(WebCore::Length::isContent const): New method.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing const): Handle content in switch.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite): Treat content as indefinite lenght.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Compute flex-basis using max-content
if flex-basis:content is specified.
* style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertLengthSizing): Handle content in switch.

Source/WebKit:

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder::encode): Handle content in switch.
(IPC::ArgumentCoder::decode): Ditto.

LayoutTests:

* TestExpectations: Unskipped all the flexbox-flex-basis-content tests that work fine now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/css/CSSPrimitiveValue.cpp
trunk/Source/WebCore/css/CSSProperties.json
trunk/Source/WebCore/css/LengthFunctions.cpp
trunk/Source/WebCore/css/LengthFunctions.h
trunk/Source/WebCore/css/calc/CSSCalcValue.cpp
trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp
trunk/Source/WebCore/platform/Length.cpp
trunk/Source/WebCore/platform/Length.h
trunk/Source/WebCore/rendering/RenderBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/style/StyleBuilderConverter.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (285708 => 285709)

--- trunk/LayoutTests/ChangeLog	2021-11-12 08:59:44 UTC (rev 285708)
+++ trunk/LayoutTests/ChangeLog	2021-11-12 10:17:21 UTC (rev 285709)
@@ -1,3 +1,12 @@
+2021-11-11  Sergio Villar Senin  
+
+[css-flexbox] Add flex-basis: content support
+https://bugs.webkit.org/show_bug.cgi?id=221479
+
+Reviewed by Javier Fernandez.
+
+* TestExpectations: Unskipped all the flexbox-flex-basis-content tests that work fine now.
+
 2021-11-12  Arcady Goldmints-Orlov  
 
 [GLIB] Update test expectations and baselines. Unreviewed test gardening.


Modified: trunk/LayoutTests/TestExpectations (285708 => 285709)

--- trunk/LayoutTests/TestExpectations	2021-11-12 08:59:44 UTC (rev 285708)
+++ trunk/LayoutTests/TestExpectations	2021-11-12 10:17:21 UTC (rev 285709)
@@ -4261,14 +4261,6 @@
 webkit.org/b/221478 imported/w3c/web-platform-tests/css/css-flexbox/dynamic-baseline-change.html [ ImageOnlyFailure ]
 webkit.org/b/221478 imported/w3c/web-platform-tests/css/css-flexbox/synthesize-vrl-baseline.html [ ImageOnlyFailure ]
 
-# flex-basis:content.
-webkit.org/b/221479 

[webkit-changes] [285623] trunk

2021-11-11 Thread svillar
Title: [285623] trunk








Revision 285623
Author svil...@igalia.com
Date 2021-11-11 01:42:13 -0800 (Thu, 11 Nov 2021)


Log Message
[css-flexbox] Improve & simplify the flex-basis computation
https://bugs.webkit.org/show_bug.cgi?id=230755

Reviewed by Alan Bujtas.

PerformanceTests:

New test case to catch performance regressions with lots of nested (specially column) flexboxes.

* Layout/nested-flexbox.html: Added.

Source/WebCore:

The flex basis computation has some special cases that require us to size the flex items "as if" they had the
length specified by flex-basis property as their main size (either width or height depending on the flex direction).
In order to do that a mechanism similar to the overriding sizes was implemented, but in this case, we're doing
an overriding of the style. That overriding style is used during both layout and preferred width computations if
present.

A new RAII class called ScopedFlexBasisAsChildMainSize sets the overriding before computing the flex base size and
clears it just after the calculations. This is done in the computeFlexBaseSizeForChild() method that was renamed
from computeInnerFlexBaseSizeForChild() as it fits better with the terminology used in the specs.

Flex basis computation is already covered by the WPT test suite, there is no need for extra tests. This patch
fixes the only flex-basis-* test case that was not passing apart from another one.

The original patch was causing severe regressions in sites doing heavy usage of nested flexboxes like twitter.com or
gmail.com because it was removing some caching that is needed in order not to do way too many layouts. The new one does
not have this issue. A new perf test was added in order to detect those eventual regressions. In my laptop the test
achieves 13.5k runs/s while with the original patch is only capable of doing 6k runs/s.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computePreferredLogicalWidths): Use the overriding style if present.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::overridingLogicalHeightLength const): Added.
(WebCore::RenderBox::setOverridingLogicalHeightLength): Added.
(WebCore::RenderBox::hasOverridingLogicalHeightLength const): Added.
(WebCore::RenderBox::clearOverridingLogicalHeightLength): Added.
(WebCore::RenderBox::overridingLogicalWidthLength const): Added.
(WebCore::RenderBox::setOverridingLogicalWidthLength): Added.
(WebCore::RenderBox::hasOverridingLogicalWidthLength const): Added.
(WebCore::RenderBox::clearOverridingLogicalWidthLength): Added.
(WebCore::RenderBox::computeLogicalWidthInFragment const): Use the overriding style if present.
(WebCore::RenderBox::computeLogicalHeight const): Use the overriding style if present.
* rendering/RenderBox.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::ScopedFlexBasisAsChildMainSize::ScopedFlexBasisAsChildMainSize): Sets the overriding style.
(WebCore::ScopedFlexBasisAsChildMainSize::~ScopedFlexBasisAsChildMainSize): Clears the overriding style.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Renamed from computeInnerFlexBaseSizeForChild().
(WebCore::RenderFlexibleBox::maybeCacheChildMainIntrinsicSize): Refactored from code from
computeInnerFlexBaseSizeForChild().
(WebCore::RenderFlexibleBox::constructFlexItem): Moved code to maybeCacheChildMainIntrinsicSize().
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Deleted.
* rendering/RenderFlexibleBox.h:

LayoutTests:

* TestExpectations: Unskipped a couple of tests that work fine now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/PerformanceTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBlock.cpp
trunk/Source/WebCore/rendering/RenderBox.cpp
trunk/Source/WebCore/rendering/RenderBox.h
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h


Added Paths

trunk/PerformanceTests/Layout/nested-flexbox.html




Diff

Modified: trunk/LayoutTests/ChangeLog (285622 => 285623)

--- trunk/LayoutTests/ChangeLog	2021-11-11 08:21:51 UTC (rev 285622)
+++ trunk/LayoutTests/ChangeLog	2021-11-11 09:42:13 UTC (rev 285623)
@@ -1,3 +1,12 @@
+2021-11-10  Sergio Villar Senin  
+
+[css-flexbox] Improve & simplify the flex-basis computation
+https://bugs.webkit.org/show_bug.cgi?id=230755
+
+Reviewed by Alan Bujtas.
+
+* TestExpectations: Unskipped a couple of tests that work fine now.
+
 2021-11-11  Antoine Quint  
 
 Default computed value for "content" should be "none" for ::before and ::after


Modified: trunk/LayoutTests/TestExpectations (285622 => 285623)

--- trunk/LayoutTests/TestExpectations	2021-11-11 08:21:51 UTC (rev 285622)
+++ trunk/LayoutTests/TestExpectations	2021-11-11 09:42:13 UTC (rev 285623)
@@ -4276,9 +4276,6 @@
 webkit.org/b/221479 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a.html [ ImageOnlyFailure ]
 webkit.org/b/221479 

[webkit-changes] [284441] trunk

2021-10-19 Thread svillar
Title: [284441] trunk








Revision 284441
Author svil...@igalia.com
Date 2021-10-19 03:21:36 -0700 (Tue, 19 Oct 2021)


Log Message
Add my github username to contributors.json

Unreviewed.

* metadata/contributors.json:

Modified Paths

trunk/ChangeLog
trunk/metadata/contributors.json




Diff

Modified: trunk/ChangeLog (284440 => 284441)

--- trunk/ChangeLog	2021-10-19 10:14:40 UTC (rev 284440)
+++ trunk/ChangeLog	2021-10-19 10:21:36 UTC (rev 284441)
@@ -1,3 +1,11 @@
+2021-10-19  Sergio Villar Senin  
+
+Add my github username to contributors.json
+
+Unreviewed.
+
+* metadata/contributors.json:
+
 2021-10-18  Ms2ger  
 
 Add my github username to contributors.json


Modified: trunk/metadata/contributors.json (284440 => 284441)

--- trunk/metadata/contributors.json	2021-10-19 10:14:40 UTC (rev 284440)
+++ trunk/metadata/contributors.json	2021-10-19 10:21:36 UTC (rev 284441)
@@ -5825,7 +5825,8 @@
  "svil...@igalia.com",
  "ser...@webkit.org"
   ],
-  "expertise" : "WebKitGTK port, WebKit2, CSS Grid Layout, libsoup",
+  "expertise" : "WebKitGTK port, CSS Grid Layout, Flexbox",
+  "github": "svillar",
   "name" : "Sergio Villar Senin",
   "nicks" : [
  "svillar"






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [284440] trunk

2021-10-19 Thread svillar
Title: [284440] trunk








Revision 284440
Author svil...@igalia.com
Date 2021-10-19 03:14:40 -0700 (Tue, 19 Oct 2021)


Log Message
[css-flexbox] Add flex-basis: content support
https://bugs.webkit.org/show_bug.cgi?id=221479
LayoutTests/imported/w3c:

Reviewed by Javier Fernandez.

Fixed 6 subtest expectations. All of them working fine now.

* web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt:
* web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt:
* web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt:

Source/WebCore:

Reviewed by Javier Fernandez.

Add support for the content keyword as a valid value for the flex-basis property.
It indicates an automated size based on the contents of the flex item. It's typically
equivalent to the max-content size but it has some adjustments for aspect ratios,
orthogonal flows and intrinsic sizing constraints.

Apart from adding the parsing support, it required very little adjustments in the
flexbox code after the refactoring in r284359.

This makes WebKit pass all of the flex-basis:content tests in WPT. We're talking
about 6 tests testing the feature and 6 subtests related to parsing.

* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle Content in switch.
(WebCore::CSSPrimitiveValue::init): Initialization for content CSS value.
* css/CSSProperties.json:
* css/LengthFunctions.cpp: Replaced LengthOrAuto by LengthSizing.
(WebCore::valueForLength): Handle Content in switch.
(WebCore::floatValueForLength): Ditto.
* css/LengthFunctions.h:
(WebCore::minimumValueForLength): Ditto.
* css/calc/CSSCalcValue.cpp:
(WebCore::createCSS): Ditto.
* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFlexBasis): Consume CSSValueContent.
(WebCore::CSSPropertyParser::consumeFlex): Ditto.
* platform/Length.cpp:
(WebCore::operator<<): Added printing support for content.
* platform/Length.h:
(WebCore::Length::initialize): Added enum for content.
(WebCore::Length::isContent const): New method.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing const): Handle content in switch.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite): Treat content as indefinite lenght.
(WebCore::RenderFlexibleBox::childHasComputableAspectRatioAndCrossSizeIsConsideredDefinite):
Flex basis must be either auto or content.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Compute flex-basis using max-content
if flex-basis:content is specified.
* style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertLengthSizing): Handle content in switch.

Source/WebKit:



Reviewed by Javier Fernandez.

Handle LengthType::Content in encode/decode functions.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder::encode):
(IPC::ArgumentCoder::decode):

LayoutTests:

Reviewed by Javier Fernandez.

* TestExpectations: Unskipped 6 tests that are now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/css/CSSPrimitiveValue.cpp
trunk/Source/WebCore/css/CSSProperties.json
trunk/Source/WebCore/css/LengthFunctions.cpp
trunk/Source/WebCore/css/LengthFunctions.h
trunk/Source/WebCore/css/calc/CSSCalcValue.cpp
trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp
trunk/Source/WebCore/platform/Length.cpp
trunk/Source/WebCore/platform/Length.h
trunk/Source/WebCore/rendering/RenderBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/style/StyleBuilderConverter.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (284439 => 284440)

--- trunk/LayoutTests/ChangeLog	2021-10-19 08:35:40 UTC (rev 284439)
+++ trunk/LayoutTests/ChangeLog	2021-10-19 10:14:40 UTC (rev 284440)
@@ -1,3 +1,12 @@
+2021-10-18  Sergio Villar Senin  
+
+[css-flexbox] Add flex-basis: content support
+https://bugs.webkit.org/show_bug.cgi?id=221479
+
+Reviewed by Javier Fernandez.
+
+* TestExpectations: Unskipped 6 tests that are now passing.
+
 2021-10-19  Cameron McCormack  
 
 Ensure CanvasRenderingContext2D.drawImage(video) uses the right color space


Modified: trunk/LayoutTests/TestExpectations (284439 => 284440)

--- trunk/LayoutTests/TestExpectations	2021-10-19 08:35:40 UTC (rev 284439)
+++ trunk/LayoutTests/TestExpectations	2021-10-19 10:14:40 UTC (rev 284440)
@@ -4210,14 +4210,6 @@
 webkit.org/b/221478 imported/w3c/web-platform-tests/css/css-flexbox/dynamic-baseline-change.html [ ImageOnlyFailure ]
 

[webkit-changes] [284397] trunk

2021-10-18 Thread svillar
Title: [284397] trunk








Revision 284397
Author svil...@igalia.com
Date 2021-10-18 13:50:56 -0700 (Mon, 18 Oct 2021)


Log Message
[css-flexbox] Do not clamp flex base size with {min|max}-{height|width}
https://bugs.webkit.org/show_bug.cgi?id=225590


Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

When computing flex base size we should not clamp it with neither min-{height|width}
nor max-{height|width}. That would be done later and will be called the hypothetical
main size.

For most of the cases we were already doing it, however there are some particular cases
in which we have to call the generic layout code which does clamp the sizes using min
and max sizes. In order to make those code paths work, we reset the min|max values to
their initial ones (so they effectively become inactive) and then we set the original
values back after computing the base size.

This is a reland of r279271 which was pretty similar but caused a visual regression in
GMail. After r284359 this is no longer a problem of this patch.

This fixes 3 WPT flexbox tests.

* rendering/RenderFlexibleBox.cpp:
(WebCore::ScopedUnboundedBoxWithFlexBasisAsChildMainSize::ScopedUnboundedBoxWithFlexBasisAsChildMainSize):
renamed from ScopedFlexBasisAsChildMainSize. Resets min|max-size to their initial values.
(WebCore::ScopedUnboundedBoxWithFlexBasisAsChildMainSize::~ScopedUnboundedBoxWithFlexBasisAsChildMainSize):
ditto. Restores min|max-size original values.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild):
(WebCore::ScopedFlexBasisAsChildMainSize::ScopedFlexBasisAsChildMainSize): Deleted.
(WebCore::ScopedFlexBasisAsChildMainSize::~ScopedFlexBasisAsChildMainSize): Deleted.

LayoutTests:

* TestExpectations: Unskipped 3 tests that are now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (284396 => 284397)

--- trunk/LayoutTests/ChangeLog	2021-10-18 20:41:50 UTC (rev 284396)
+++ trunk/LayoutTests/ChangeLog	2021-10-18 20:50:56 UTC (rev 284397)
@@ -1,3 +1,13 @@
+2021-10-15  Sergio Villar Senin  
+
+[css-flexbox] Do not clamp flex base size with {min|max}-{height|width}
+https://bugs.webkit.org/show_bug.cgi?id=225590
+
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: Unskipped 3 tests that are now passing.
+
 2021-10-18  Tyler Wilcock  
 
 AX: Return AXEmptyGroup subrole for groups with no accessible content


Modified: trunk/LayoutTests/TestExpectations (284396 => 284397)

--- trunk/LayoutTests/TestExpectations	2021-10-18 20:41:50 UTC (rev 284396)
+++ trunk/LayoutTests/TestExpectations	2021-10-18 20:50:56 UTC (rev 284397)
@@ -4162,9 +4162,7 @@
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/vertical-alignment-srl-034.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/vertical-alignment-srl-040.xht [ ImageOnlyFailure ]
 
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-005.html [ ImageOnlyFailure ]
 
@@ -4190,7 +4188,6 @@
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-1.html [ ImageOnlyFailure ]
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html [ ImageOnlyFailure ]
 webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html [ ImageOnlyFailure ]
-webkit.org/b/221473 imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-min-height-1.html [ ImageOnlyFailure ]
 
 # SVGs as flex items.
 webkit.org/b/221474 imported/w3c/web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002.html [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (284396 => 284397)

--- trunk/Source/WebCore/ChangeLog	2021-10-18 20:41:50 UTC (rev 284396)
+++ trunk/Source/WebCore/ChangeLog	2021-10-18 20:50:56 UTC (rev 284397)
@@ -1,3 +1,35 @@
+2021-10-15  Sergio Villar Senin  
+
+[css-flexbox] Do not clamp flex base size with {min|max}-{height|width}
+https://bugs.webkit.org/show_bug.cgi?id=225590
+
+
+Reviewed by Manuel Rego Casasnovas.
+
+When computing flex base size we should not clamp it with neither min-{height|width}
+nor max-{height|width}. That would be done later and will be 

[webkit-changes] [284359] trunk

2021-10-18 Thread svillar
Title: [284359] trunk








Revision 284359
Author svil...@igalia.com
Date 2021-10-18 03:07:52 -0700 (Mon, 18 Oct 2021)


Log Message
[css-flexbox] Improve & simplify the flex-basis computation
https://bugs.webkit.org/show_bug.cgi?id=230755

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

The flex-basis computation code was a bit convoluted. It had some pre-computations for items
with intrinsic main size that were causing several issues due to reentrancy. Actually those
computations where not needed at all for the flex basis computation but for a later stage, the
computation of the hyphotetical main size in which we need to compute 'min-{width|height}: auto'.

That's why the code that was executed before the flex-basis computation is now part of
computeFlexItemMinMaxSizes(). As we are no longer doing a layout before computing the flex-basis,
a layout has to be added to those cases in which the main size is the block size of the child. Apart
from that the flex-basis computation uses a newly defined RAII class to set the main size of the item
to the value specified by flex-basis which is what the specs mandate.

Last but not least, the computeInnerFlexBaseSizeForChild() method was renamed to computeFlexBaseSizeForChild()
which fits better with the terminology used in the specs.

Flex basis computation is already covered by the WPT test suite, there is no need for extra tests. This patch
fixes the only flex-basis-* test case that was not passing.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild): Removed obsolete comment. Added
a layoutIfNeeded() as we cannot be sure that the item was already laid out any more.
(WebCore::ScopedFlexBasisAsMainSize::ScopedFlexBasisAsChildMainSize): New RAII class.
(WebCore::ScopedFlexBasisAsMainSize::~ScopedFlexBasisAsChildMainSize):
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Renamed from computeInnerFlexBaseSizeForChild.
(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes): Added relayoutChildren parameter.
(WebCore::RenderFlexibleBox::constructFlexItem): Moved code to computeFlexItemMinMaxSizes().
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Deleted.
* rendering/RenderFlexibleBox.h:

LayoutTests:

* TestExpectations: Unskipped flex-basis-011.html which is now working fine.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/LayoutTests/ChangeLog (284358 => 284359)

--- trunk/LayoutTests/ChangeLog	2021-10-18 09:39:43 UTC (rev 284358)
+++ trunk/LayoutTests/ChangeLog	2021-10-18 10:07:52 UTC (rev 284359)
@@ -1,3 +1,12 @@
+2021-09-24  Sergio Villar Senin  
+
+[css-flexbox] Improve & simplify the flex-basis computation
+https://bugs.webkit.org/show_bug.cgi?id=230755
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: Unskipped flex-basis-011.html which is now working fine.
+
 2021-10-17  Dean Jackson  
 
 [WebXR] Stubs for WebXR Hand Input Module


Modified: trunk/LayoutTests/TestExpectations (284358 => 284359)

--- trunk/LayoutTests/TestExpectations	2021-10-18 09:39:43 UTC (rev 284358)
+++ trunk/LayoutTests/TestExpectations	2021-10-18 10:07:52 UTC (rev 284359)
@@ -4219,9 +4219,6 @@
 webkit.org/b/221479 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a.html [ ImageOnlyFailure ]
 webkit.org/b/221479 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a.html [ ImageOnlyFailure ]
 
-# flex-basis with %.
-webkit.org/b/ imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-011.html [ ImageOnlyFailure ]
-
 # Flex item's min|max content contributions
 webkit.org/b/230747 imported/w3c/web-platform-tests/css/css-flexbox/flex-container-max-content-001.html [ ImageOnlyFailure ]
 webkit.org/b/230747 imported/w3c/web-platform-tests/css/css-flexbox/flex-container-min-content-001.html [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (284358 => 284359)

--- trunk/Source/WebCore/ChangeLog	2021-10-18 09:39:43 UTC (rev 284358)
+++ trunk/Source/WebCore/ChangeLog	2021-10-18 10:07:52 UTC (rev 284359)
@@ -1,3 +1,39 @@
+2021-09-24  Sergio Villar Senin  
+
+[css-flexbox] Improve & simplify the flex-basis computation
+https://bugs.webkit.org/show_bug.cgi?id=230755
+
+Reviewed by Manuel Rego Casasnovas.
+
+The flex-basis computation code was a bit convoluted. It had some pre-computations for items
+with intrinsic main size that were causing several issues due to reentrancy. Actually those
+computations where not needed at all for the flex basis computation but for a later stage, the
+computation of the hyphotetical main size in which we need to compute 'min-{width|height}: auto'.
+
+That's 

[webkit-changes] [283800] trunk/LayoutTests

2021-10-08 Thread svillar
Title: [283800] trunk/LayoutTests








Revision 283800
Author svil...@igalia.com
Date 2021-10-08 07:44:40 -0700 (Fri, 08 Oct 2021)


Log Message
[GTK] web-platform-tests/css/css-flexbox/text-as-flexitem-size-001.html is failing
https://bugs.webkit.org/show_bug.cgi?id=231429

Unreviewed gardening. Adding GTK expectations for a test that has been failing since it was imported.

* platform/gtk/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt: Added.

Modified Paths

trunk/LayoutTests/ChangeLog


Added Paths

trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (283799 => 283800)

--- trunk/LayoutTests/ChangeLog	2021-10-08 14:34:29 UTC (rev 283799)
+++ trunk/LayoutTests/ChangeLog	2021-10-08 14:44:40 UTC (rev 283800)
@@ -1,3 +1,12 @@
+2021-10-08  Sergio Villar Senin  
+
+[GTK] web-platform-tests/css/css-flexbox/text-as-flexitem-size-001.html is failing
+https://bugs.webkit.org/show_bug.cgi?id=231429
+
+Unreviewed gardening. Adding GTK expectations for a test that has been failing since it was imported.
+
+* platform/gtk/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt: Added.
+
 2021-10-08  Tyler Wilcock  
 
 AX: Expose the URL attribute of  elements


Added: trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt (0 => 283800)

--- trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt	(rev 0)
+++ trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt	2021-10-08 14:44:40 UTC (rev 283800)
@@ -0,0 +1,122 @@
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+xx xxx
+
+xx
+
+
+FAIL .flexbox > div 1 assert_equals:
+
+xx xxx
+xx
+  
+width expected 70 but got 46
+FAIL .flexbox > div 2 assert_equals:
+
+xx xxx
+xx
+  
+width expected 50 but got 46
+PASS .flexbox > div 3
+PASS .flexbox > div 4
+FAIL .flexbox > div 5 assert_equals:
+
+xx xxx
+xx
+  
+width expected 70 but got 46
+PASS .flexbox > div 6
+PASS .flexbox > div 7
+FAIL .flexbox > div 8 assert_equals:
+
+xx xxx
+xx
+  
+width expected 70 but got 46
+PASS .flexbox > div 9
+PASS .flexbox > div 10
+FAIL .flexbox > div 11 assert_equals:
+
+xx xxx
+xx
+  
+width expected 70 but got 46
+PASS .flexbox > div 12
+PASS .flexbox > div 13
+PASS .flexbox > div 14
+PASS .flexbox > div 15
+PASS .flexbox > div 16
+PASS .flexbox > div 17
+PASS .flexbox > div 18
+
Property changes on: trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt
___


Added: svn:eol-style
+LF
\ No newline at end of property




___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [283494] trunk/LayoutTests/imported/w3c

2021-10-04 Thread svillar
Title: [283494] trunk/LayoutTests/imported/w3c








Revision 283494
Author svil...@igalia.com
Date 2021-10-04 06:57:48 -0700 (Mon, 04 Oct 2021)


Log Message
[css-flexbox] Resync WPT tests
https://bugs.webkit.org/show_bug.cgi?id=231164

Reviewed by Rob Buis.

Imported some tests after being fixed upstream. Also fetched new ones.

* web-platform-tests/css/css-flexbox/parsing/flex-grow-computed-expected.txt:
* web-platform-tests/css/css-flexbox/parsing/flex-grow-computed.html:
* web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed-expected.txt:
* web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed.html:
* web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt: Added.
* web-platform-tests/css/css-flexbox/text-as-flexitem-size-001.html: Added.
* web-platform-tests/css/css-flexbox/w3c-import.log:

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-grow-computed-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-grow-computed.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/text-as-flexitem-size-001.html




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (283493 => 283494)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-10-04 13:16:56 UTC (rev 283493)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-10-04 13:57:48 UTC (rev 283494)
@@ -1,3 +1,20 @@
+2021-10-04  Sergio Villar Senin  
+
+[css-flexbox] Resync WPT tests
+https://bugs.webkit.org/show_bug.cgi?id=231164
+
+Reviewed by Rob Buis.
+
+Imported some tests after being fixed upstream. Also fetched new ones.
+
+* web-platform-tests/css/css-flexbox/parsing/flex-grow-computed-expected.txt:
+* web-platform-tests/css/css-flexbox/parsing/flex-grow-computed.html:
+* web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed-expected.txt:
+* web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed.html:
+* web-platform-tests/css/css-flexbox/text-as-flexitem-size-001-expected.txt: Added.
+* web-platform-tests/css/css-flexbox/text-as-flexitem-size-001.html: Added.
+* web-platform-tests/css/css-flexbox/w3c-import.log:
+
 2021-10-04  Ziran Sun  
 
 [css-grid] Resync web-platform-tests/css/css-grid tests from upstream


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-grow-computed-expected.txt (283493 => 283494)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-grow-computed-expected.txt	2021-10-04 13:16:56 UTC (rev 283493)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-grow-computed-expected.txt	2021-10-04 13:57:48 UTC (rev 283494)
@@ -1,6 +1,6 @@
 
 PASS Property flex-grow value '1'
-FAIL Property flex-grow value '2.34e+06' assert_equals: expected "2.34e+06" but got "234"
-FAIL Property flex-grow value '6.78e+08' assert_equals: expected "6.78e+08" but got "67800"
+PASS Property flex-grow value '2.34e+06'
+PASS Property flex-grow value '6.78e+08'
 PASS Property flex-grow value '0'
 


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-grow-computed.html (283493 => 283494)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-grow-computed.html	2021-10-04 13:16:56 UTC (rev 283493)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-grow-computed.html	2021-10-04 13:57:48 UTC (rev 283494)
@@ -13,8 +13,8 @@
 
 
 test_computed_value("flex-grow", "1");
-test_computed_value("flex-grow", "2.34e+06");
-test_computed_value("flex-grow", "6.78e+08");
+test_computed_value("flex-grow", "2.34e+06", ["2.34e+06", "234"]);
+test_computed_value("flex-grow", "6.78e+08", ["6.78e+08", "67800"]);
 test_computed_value("flex-grow", "0");
 
 


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed-expected.txt (283493 => 283494)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed-expected.txt	2021-10-04 13:16:56 UTC (rev 283493)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-shrink-computed-expected.txt	2021-10-04 13:57:48 UTC (rev 283494)
@@ -1,6 +1,6 @@
 
 PASS Property flex-shrink value '1'
-FAIL Property flex-shrink value '2.34e+06' 

[webkit-changes] [283360] trunk/Source/WebCore

2021-10-01 Thread svillar
Title: [283360] trunk/Source/WebCore








Revision 283360
Author svil...@igalia.com
Date 2021-10-01 02:10:30 -0700 (Fri, 01 Oct 2021)


Log Message
Clamp negative offset values
https://bugs.webkit.org/show_bug.cgi?id=230707

Reviewed by Simon Fraser.

ScrollOffsets are the values used by scrollbars and thus should be always positive. Under some circumstances
the value returned by maximumScrollOffset()|minimumScrollOffset() could be negative. For those cases we should
just clamp them to zero.

* page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::updateSnapOffsetsForScrollableArea):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (283359 => 283360)

--- trunk/Source/WebCore/ChangeLog	2021-10-01 07:58:12 UTC (rev 283359)
+++ trunk/Source/WebCore/ChangeLog	2021-10-01 09:10:30 UTC (rev 283360)
@@ -1,3 +1,17 @@
+2021-09-30  Sergio Villar Senin  
+
+Clamp negative offset values
+https://bugs.webkit.org/show_bug.cgi?id=230707
+
+Reviewed by Simon Fraser.
+
+ScrollOffsets are the values used by scrollbars and thus should be always positive. Under some circumstances
+the value returned by maximumScrollOffset()|minimumScrollOffset() could be negative. For those cases we should
+just clamp them to zero.
+
+* page/scrolling/ScrollSnapOffsetsInfo.cpp:
+(WebCore::updateSnapOffsetsForScrollableArea):
+
 2021-10-01  Kevin Turner  
 
 Add support for pow(), sqrt() and hypot()


Modified: trunk/Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp (283359 => 283360)

--- trunk/Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp	2021-10-01 07:58:12 UTC (rev 283359)
+++ trunk/Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp	2021-10-01 09:10:30 UTC (rev 283360)
@@ -305,6 +305,7 @@
 Vector snapAreas;
 
 auto maxScrollOffset = scrollableArea.maximumScrollOffset();
+maxScrollOffset.clampNegativeToZero();
 auto scrollPosition = LayoutPoint { scrollableArea.scrollPosition() };
 
 auto [scrollerXAxisFlipped, scrollerYAxisFlipped] = axesFlippedForWritingModeAndDirection(writingMode, textDirection);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [282953] trunk/Tools

2021-09-23 Thread svillar
Title: [282953] trunk/Tools








Revision 282953
Author svil...@igalia.com
Date 2021-09-23 01:19:24 -0700 (Thu, 23 Sep 2021)


Log Message
[Flatpak] Use NUMBER_OF_PROCESSORS if already defined
https://bugs.webkit.org/show_bug.cgi?id=230638

Reviewed by Martin Robinson.

The environment variable NUMBER_OF_PROCESSORS can be defined to instruct the build system
to spawn as many concurrent build commands as specified. By default flatpak was using 3x the number
of processors in the local system. However we might prefer to provide a more convenient number
by using the environment variable. Note that this approach is better than passing -j as
--makeargs because cmake would have to be reconfigured everytime the number passed to -j changes.

* flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox): Use NUMBER_OF_PROCESSORS if already defined. Otherwise fallback
to 3x the number of processors.

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/flatpak/flatpakutils.py




Diff

Modified: trunk/Tools/ChangeLog (282952 => 282953)

--- trunk/Tools/ChangeLog	2021-09-23 08:18:45 UTC (rev 282952)
+++ trunk/Tools/ChangeLog	2021-09-23 08:19:24 UTC (rev 282953)
@@ -1,3 +1,20 @@
+2021-09-23  Sergio Villar Senin  
+
+[Flatpak] Use NUMBER_OF_PROCESSORS if already defined
+https://bugs.webkit.org/show_bug.cgi?id=230638
+
+Reviewed by Martin Robinson.
+
+The environment variable NUMBER_OF_PROCESSORS can be defined to instruct the build system
+to spawn as many concurrent build commands as specified. By default flatpak was using 3x the number
+of processors in the local system. However we might prefer to provide a more convenient number
+by using the environment variable. Note that this approach is better than passing -j as
+--makeargs because cmake would have to be reconfigured everytime the number passed to -j changes.
+
+* flatpak/flatpakutils.py:
+(WebkitFlatpak.run_in_sandbox): Use NUMBER_OF_PROCESSORS if already defined. Otherwise fallback
+to 3x the number of processors.
+
 2021-09-23  Chris Lord  
 
 [GTK] Allow sending precise mouse wheel events in LayoutTests


Modified: trunk/Tools/flatpak/flatpakutils.py (282952 => 282953)

--- trunk/Tools/flatpak/flatpakutils.py	2021-09-23 08:18:45 UTC (rev 282952)
+++ trunk/Tools/flatpak/flatpakutils.py	2021-09-23 08:19:24 UTC (rev 282953)
@@ -882,8 +882,11 @@
 _log.debug('Enabling the icecream compiler')
 flatpak_command.extend([share_network_option, "--filesystem=home"])
 
-n_cores = multiprocessing.cpu_count() * 3
-_log.debug('Following icecream recommendation for the number of cores to use: %d' % n_cores)
+try:
+n_cores = os.environ["NUMBER_OF_PROCESSORS"]
+except KeyError:
+n_cores = multiprocessing.cpu_count() * 3
+_log.debug('Following icecream recommendation for the number of cores to use: %d' % n_cores)
 toolchain_name = os.environ.get("CC", "gcc")
 try:
 toolchain_path = os.environ.get("ICECC_VERSION_OVERRIDE", self.icc_version[toolchain_name])






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [282951] trunk/Source/WebCore

2021-09-23 Thread svillar
Title: [282951] trunk/Source/WebCore








Revision 282951
Author svil...@igalia.com
Date 2021-09-23 01:16:36 -0700 (Thu, 23 Sep 2021)


Log Message
Improve the handling of CompositeEditCommand::splitTreeToNode() return values
https://bugs.webkit.org/show_bug.cgi?id=229470

Reviewed by Darin Adler.

splitTreeToNode() might return nullptr because, among other things, it might insert/remove nodes in
the DOM tree. It's well known that by doing so we're allowing the execution of arbitrary scripts
(see didFinishInsertingNode() for example). This means that there is a possibility that the node
that it's being splitted is no longer part of the DOM tree by the time splitTreeToNode() returns.
That's why we should bail out in those cases.

* editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::formatRange):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/editing/FormatBlockCommand.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (282950 => 282951)

--- trunk/Source/WebCore/ChangeLog	2021-09-23 06:58:52 UTC (rev 282950)
+++ trunk/Source/WebCore/ChangeLog	2021-09-23 08:16:36 UTC (rev 282951)
@@ -1,3 +1,19 @@
+2021-09-09  Sergio Villar Senin  
+
+Improve the handling of CompositeEditCommand::splitTreeToNode() return values
+https://bugs.webkit.org/show_bug.cgi?id=229470
+
+Reviewed by Darin Adler.
+
+splitTreeToNode() might return nullptr because, among other things, it might insert/remove nodes in
+the DOM tree. It's well known that by doing so we're allowing the execution of arbitrary scripts
+(see didFinishInsertingNode() for example). This means that there is a possibility that the node
+that it's being splitted is no longer part of the DOM tree by the time splitTreeToNode() returns.
+That's why we should bail out in those cases.
+
+* editing/FormatBlockCommand.cpp:
+(WebCore::FormatBlockCommand::formatRange):
+
 2021-09-22  Jean-Yves Avenard  
 
 Make SharedBuffer inherit from ThreadSafeRefCounted


Modified: trunk/Source/WebCore/editing/FormatBlockCommand.cpp (282950 => 282951)

--- trunk/Source/WebCore/editing/FormatBlockCommand.cpp	2021-09-23 06:58:52 UTC (rev 282950)
+++ trunk/Source/WebCore/editing/FormatBlockCommand.cpp	2021-09-23 08:16:36 UTC (rev 282951)
@@ -66,6 +66,9 @@
 Node* nodeToSplitTo = enclosingBlockToSplitTreeTo(start.deprecatedNode());
 ASSERT(nodeToSplitTo);
 RefPtr outerBlock = (start.deprecatedNode() == nodeToSplitTo) ? start.deprecatedNode() : splitTreeToNode(*start.deprecatedNode(), *nodeToSplitTo);
+if (!outerBlock)
+return;
+
 RefPtr nodeAfterInsertionPosition = outerBlock;
 
 auto range = makeSimpleRange(start, endOfSelection);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [282267] trunk

2021-09-10 Thread svillar
Title: [282267] trunk








Revision 282267
Author svil...@igalia.com
Date 2021-09-10 07:26:56 -0700 (Fri, 10 Sep 2021)


Log Message
[css-flexbox] Add support for self-start & self-end css-align-3 positional alignment properties
https://bugs.webkit.org/show_bug.cgi?id=229996

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Added support for SelfStart and SelfEnd positional alignment properties from
https://drafts.csswg.org/css-align-3/#positional-values. These two properties
align the alignment subject (flex item) to be flush with the edge of the alignment container (flex line)
corresponding to the alignment subject's start side in the appropriate axis. This allows authors to align
the flex items based on their writing modes instead of the writing mode of the container.

* rendering/RenderFlexibleBox.cpp:
(WebCore::alignmentOffset):
(WebCore::RenderFlexibleBox::alignmentForChild const):

LayoutTests:

* TestExpectations: Removed a couple of tests that are now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (282266 => 282267)

--- trunk/LayoutTests/ChangeLog	2021-09-10 13:41:43 UTC (rev 282266)
+++ trunk/LayoutTests/ChangeLog	2021-09-10 14:26:56 UTC (rev 282267)
@@ -1,3 +1,12 @@
+2021-09-07  Sergio Villar Senin  
+
+[css-flexbox] Add support for self-start & self-end css-align-3 positional alignment properties
+https://bugs.webkit.org/show_bug.cgi?id=229996
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: Removed a couple of tests that are now passing.
+
 2021-09-10  Alan Bujtas  
 
 changing border size on rows with border-collapse not redrawing


Modified: trunk/LayoutTests/TestExpectations (282266 => 282267)

--- trunk/LayoutTests/TestExpectations	2021-09-10 13:41:43 UTC (rev 282266)
+++ trunk/LayoutTests/TestExpectations	2021-09-10 14:26:56 UTC (rev 282267)
@@ -4167,9 +4167,8 @@
 webkit.org/b/221474 imported/w3c/web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002.html [ ImageOnlyFailure ]
 webkit.org/b/221474 imported/w3c/web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003.html [ ImageOnlyFailure ]
 
+# The test works fine but the expected result fails due to a missing layout.
 webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002.xhtml [ ImageOnlyFailure ]
-webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002.xhtml [ ImageOnlyFailure ]
-webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-005.xhtml [ ImageOnlyFailure ]
 
 # align baseline in flexbox.
 webkit.org/b/221478 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a.xhtml [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (282266 => 282267)

--- trunk/Source/WebCore/ChangeLog	2021-09-10 13:41:43 UTC (rev 282266)
+++ trunk/Source/WebCore/ChangeLog	2021-09-10 14:26:56 UTC (rev 282267)
@@ -1,3 +1,20 @@
+2021-09-07  Sergio Villar Senin  
+
+[css-flexbox] Add support for self-start & self-end css-align-3 positional alignment properties
+https://bugs.webkit.org/show_bug.cgi?id=229996
+
+Reviewed by Manuel Rego Casasnovas.
+
+Added support for SelfStart and SelfEnd positional alignment properties from
+https://drafts.csswg.org/css-align-3/#positional-values. These two properties
+align the alignment subject (flex item) to be flush with the edge of the alignment container (flex line)
+corresponding to the alignment subject's start side in the appropriate axis. This allows authors to align
+the flex items based on their writing modes instead of the writing mode of the container.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::alignmentOffset):
+(WebCore::RenderFlexibleBox::alignmentForChild const):
+
 2021-09-10  Alan Bujtas  
 
 changing border size on rows with border-collapse not redrawing


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (282266 => 282267)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-09-10 13:41:43 UTC (rev 282266)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-09-10 14:26:56 UTC (rev 282267)
@@ -39,6 +39,7 @@
 #include "RenderLayoutState.h"
 #include "RenderStyleConstants.h"
 #include "RenderView.h"
+#include "WritingMode.h"
 #include 
 #include 
 #include 
@@ -1570,6 +1571,8 @@
 break;
 case ItemPosition::Start:
 case ItemPosition::End:
+case ItemPosition::SelfStart:
+case ItemPosition::SelfEnd:
 case ItemPosition::Left:
 case ItemPosition::Right:
 ASSERT_NOT_REACHED("%u alignmentForChild should have transformed this position value to something we handle below.", static_cast(position));
@@ -1596,8 +1599,6 @@
 // 

[webkit-changes] [282085] trunk

2021-09-07 Thread svillar
Title: [282085] trunk








Revision 282085
Author svil...@igalia.com
Date 2021-09-07 08:00:21 -0700 (Tue, 07 Sep 2021)


Log Message
Interoperability issue in margin collapsing with overflow:hidden elements
https://bugs.webkit.org/show_bug.cgi?id=224185

Reviewed by Alan Bujtas.

Source/WebCore:

Margins should not self collapse for those elements that create new formatting contexts
like when using overflow:hidden.

Test: fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::isSelfCollapsingBlock const): Boxes that create new formatting context should
not self collapse.

LayoutTests:

* TestExpectations: Unskipped 3 flexbox tests that are working fine now.
* fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html: Added.
* fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBlock.cpp


Added Paths

trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html
trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html




Diff

Modified: trunk/LayoutTests/ChangeLog (282084 => 282085)

--- trunk/LayoutTests/ChangeLog	2021-09-07 14:32:47 UTC (rev 282084)
+++ trunk/LayoutTests/ChangeLog	2021-09-07 15:00:21 UTC (rev 282085)
@@ -1,3 +1,14 @@
+2021-08-26  Sergio Villar Senin  
+
+Interoperability issue in margin collapsing with overflow:hidden elements
+https://bugs.webkit.org/show_bug.cgi?id=224185
+
+Reviewed by Alan Bujtas.
+
+* TestExpectations: Unskipped 3 flexbox tests that are working fine now.
+* fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html: Added.
+* fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html: Added.
+
 2021-09-01  Sergio Villar Senin  
 
 [css-flexbox] Add support for left & right css-align-3 positional alignment properties


Modified: trunk/LayoutTests/TestExpectations (282084 => 282085)

--- trunk/LayoutTests/TestExpectations	2021-09-07 14:32:47 UTC (rev 282084)
+++ trunk/LayoutTests/TestExpectations	2021-09-07 15:00:21 UTC (rev 282085)
@@ -4160,11 +4160,6 @@
 webkit.org/b/221474 imported/w3c/web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002.html [ ImageOnlyFailure ]
 webkit.org/b/221474 imported/w3c/web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003.html [ ImageOnlyFailure ]
 
-# Writing modes in flexbox.
-webkit.org/b/221475 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-writing-mode-013.html [ ImageOnlyFailure ]
-webkit.org/b/221475 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-writing-mode-014.html [ ImageOnlyFailure ]
-webkit.org/b/221475 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-writing-mode-015.html [ ImageOnlyFailure ]
-
 webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002.xhtml [ ImageOnlyFailure ]
 webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002.xhtml [ ImageOnlyFailure ]
 webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-005.xhtml [ ImageOnlyFailure ]


Added: trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html (0 => 282085)

--- trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html	(rev 0)
+++ trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html	2021-09-07 15:00:21 UTC (rev 282085)
@@ -0,0 +1,21 @@
+
+
+.margin-top { margin-top: 10px; }
+.margin-bottom { margin-bottom: 20px; }
+
+.grayblock {
+  background: lightgrey;
+  height: 20px;
+  width: 150px;
+}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Property changes on: trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Added: trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html (0 => 282085)

--- trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html	(rev 0)
+++ trunk/LayoutTests/fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html	2021-09-07 15:00:21 UTC (rev 282085)
@@ -0,0 +1,35 @@
+
+
+.container {
+  width: 150px;
+  background: lightblue;
+}
+
+.container > div {
+  display: block;
+  background: lightgrey;
+  margin: 10px 0 20px 0;
+  height: 20px;
+}
+
+nocollapse {
+  display: block;
+  overflow: hidden;
+}
+
+
+
+  
+  
+
+
+
+  

[webkit-changes] [282083] trunk/Source/WebCore

2021-09-07 Thread svillar
Title: [282083] trunk/Source/WebCore








Revision 282083
Author svil...@igalia.com
Date 2021-09-07 07:14:15 -0700 (Tue, 07 Sep 2021)


Log Message
Do not let RenderFragmentContainers create new formatting contexts
https://bugs.webkit.org/show_bug.cgi?id=229759

Reviewed by Alan Bujtas.

The isRenderFragmentContainer() condition was added in r176957 when the createsNewFormattingContext() function
was introduced. Back then it was actually isRenderRegion() which was later renamed. However that was wrongly added
to the method because it should have remained in the caller RenderBlockFlow::addOverhangingFloats().

Instead of removing it (as the patch does) I thought about moving it back to the addOverhangingFloats() method
where it was added as part of r167602. That revision is actually two fixes and the one that required this code
was an import of a Blink patch. However moving it to its original location does not seem to regress anything and
what's more Blink has also removed it from there some time ago. That's why I decided just to remove it.

Does not directly fix any test at the moment but it's a precondition for wkb.ug/224185 which will fix 3 tests.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::createsNewFormattingContext const):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBox.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (282082 => 282083)

--- trunk/Source/WebCore/ChangeLog	2021-09-07 14:13:50 UTC (rev 282082)
+++ trunk/Source/WebCore/ChangeLog	2021-09-07 14:14:15 UTC (rev 282083)
@@ -1,3 +1,24 @@
+2021-09-01  Sergio Villar Senin  
+
+Do not let RenderFragmentContainers create new formatting contexts
+https://bugs.webkit.org/show_bug.cgi?id=229759
+
+Reviewed by Alan Bujtas.
+
+The isRenderFragmentContainer() condition was added in r176957 when the createsNewFormattingContext() function
+was introduced. Back then it was actually isRenderRegion() which was later renamed. However that was wrongly added
+to the method because it should have remained in the caller RenderBlockFlow::addOverhangingFloats().
+
+Instead of removing it (as the patch does) I thought about moving it back to the addOverhangingFloats() method
+where it was added as part of r167602. That revision is actually two fixes and the one that required this code
+was an import of a Blink patch. However moving it to its original location does not seem to regress anything and
+what's more Blink has also removed it from there some time ago. That's why I decided just to remove it.
+
+Does not directly fix any test at the moment but it's a precondition for wkb.ug/224185 which will fix 3 tests.
+
+* rendering/RenderBox.cpp:
+(WebCore::RenderBox::createsNewFormattingContext const):
+
 2021-09-07  Adrian Perez de Castro  
 
 Non-unified build fixes, early September 2021 edition


Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (282082 => 282083)

--- trunk/Source/WebCore/rendering/RenderBox.cpp	2021-09-07 14:13:50 UTC (rev 282082)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2021-09-07 14:14:15 UTC (rev 282083)
@@ -4838,7 +4838,7 @@
 bool RenderBox::createsNewFormattingContext() const
 {
 return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasPotentiallyScrollableOverflow() || isFlexItemIncludingDeprecated()
-|| isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElementRenderer() || isRenderFragmentedFlow() || isRenderFragmentContainer()
+|| isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElementRenderer() || isRenderFragmentedFlow()
 || style().containsLayout() || isGridItem() || style().specifiesColumns() || style().columnSpan() == ColumnSpan::All || style().display() == DisplayType::FlowRoot;
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [282078] trunk

2021-09-07 Thread svillar
Title: [282078] trunk








Revision 282078
Author svil...@igalia.com
Date 2021-09-07 04:11:18 -0700 (Tue, 07 Sep 2021)


Log Message
[css-flexbox] Add support for left & right css-align-3 positional alignment properties
https://bugs.webkit.org/show_bug.cgi?id=229756

Reviewed by Javier Fernandez.

Source/WebCore:

Added support for Left and Right positional alignment properties from
https://drafts.csswg.org/css-align-3/#positional-values. These two properties
align the flex item to be flush with the alignment container's (the flex line)
line-left|right or physical left|right whichever is in the appropriate axis. Note that
contrary to start/end which change according to the text direction, left always refer
to where ltr text would start and right always refer to where rtl text would start.

The only caveat is that specs mention that in the case of having orthogonal start<->end and
left<->right axis (only happens in column flexboxes) then both left|right behave as start.

* rendering/RenderFlexibleBox.cpp:
(WebCore::initialJustifyContentOffset):
(WebCore::alignmentOffset):
(WebCore::RenderFlexibleBox::staticMainAxisPositionForPositionedChild):
(WebCore::RenderFlexibleBox::alignmentForChild const):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):

LayoutTests:

* TestExpectations: Removed 13 WPT tests that are now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (282077 => 282078)

--- trunk/LayoutTests/ChangeLog	2021-09-07 10:31:09 UTC (rev 282077)
+++ trunk/LayoutTests/ChangeLog	2021-09-07 11:11:18 UTC (rev 282078)
@@ -1,3 +1,12 @@
+2021-09-01  Sergio Villar Senin  
+
+[css-flexbox] Add support for left & right css-align-3 positional alignment properties
+https://bugs.webkit.org/show_bug.cgi?id=229756
+
+Reviewed by Javier Fernandez.
+
+* TestExpectations: Removed 13 WPT tests that are now passing.
+
 2021-09-07  Rob Buis  
 
 Nullptr crash in DeleteSelectionCommand::removeNodeUpdatingStates


Modified: trunk/LayoutTests/TestExpectations (282077 => 282078)

--- trunk/LayoutTests/TestExpectations	2021-09-07 10:31:09 UTC (rev 282077)
+++ trunk/LayoutTests/TestExpectations	2021-09-07 11:11:18 UTC (rev 282078)
@@ -4139,7 +4139,6 @@
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-003.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-004.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-align-content-001.html [ ImageOnlyFailure ]
-webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-001.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004.html [ ImageOnlyFailure ]
@@ -4146,7 +4145,6 @@
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008.html [ ImageOnlyFailure ]
-webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-001.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-002.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002.html [ ImageOnlyFailure ]
@@ -4167,19 +4165,6 @@
 webkit.org/b/221475 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-writing-mode-014.html [ ImageOnlyFailure ]
 webkit.org/b/221475 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-writing-mode-015.html [ ImageOnlyFailure ]
 
-# justify-content in flexbox.
-webkit.org/b/221477 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001a.xhtml [ ImageOnlyFailure ]
-webkit.org/b/221477 

[webkit-changes] [281840] trunk

2021-09-01 Thread svillar
Title: [281840] trunk








Revision 281840
Author svil...@igalia.com
Date 2021-09-01 01:35:53 -0700 (Wed, 01 Sep 2021)


Log Message
[css-flexbox] Add initial support for css-align-3 positional alignment properties
https://bugs.webkit.org/show_bug.cgi?id=229074

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Fixed expectations for 56 subtests that should PASS now instead of FAIL.

* web-platform-tests/css/css-flexbox/align-content-horiz-001a-expected.txt: Mark 8 subtests as PASS.
* web-platform-tests/css/css-flexbox/align-content-horiz-001b-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/align-content-horiz-002-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/align-content-vert-001a-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/align-content-vert-001b-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/align-content-vert-002-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/align-content-wmvert-001-expected.txt: Ditto.

Source/WebCore:

Added initial support for Start and End positional alignment properties from
https://drafts.csswg.org/css-align-3/#positional-values. These two properties
align the flex item to be flush with the alignment container's (the flex container)
start and end edges in the appropriate axis.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::isColumnOrRowReverse const): New method.
(WebCore::initialJustifyContentOffset): Handle Start and End.
(WebCore::alignmentOffset): Ditto.
(WebCore::RenderFlexibleBox::staticMainAxisPositionForPositionedChild):
(WebCore::RenderFlexibleBox::alignmentForChild const):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::initialAlignContentOffset): Handle Start and End.
(WebCore::RenderFlexibleBox::alignFlexLines):
* rendering/RenderFlexibleBox.h:

LayoutTests:

* TestExpectations: Unskipped 4 WPT tests that are passing now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content-horiz-001a-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content-horiz-001b-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content-horiz-002-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content-vert-001a-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content-vert-001b-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content-vert-002-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content-wmvert-001-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/LayoutTests/ChangeLog (281839 => 281840)

--- trunk/LayoutTests/ChangeLog	2021-09-01 07:55:39 UTC (rev 281839)
+++ trunk/LayoutTests/ChangeLog	2021-09-01 08:35:53 UTC (rev 281840)
@@ -1,3 +1,12 @@
+2021-08-13  Sergio Villar Senin  
+
+[css-flexbox] Add initial support for css-align-3 positional alignment properties
+https://bugs.webkit.org/show_bug.cgi?id=229074
+
+Reviewed by Simon Fraser.
+
+* TestExpectations: Unskipped 4 WPT tests that are passing now.
+
 2021-08-31  Myles C. Maxfield  
 
 Import web-platform-tests/css/css-font-loading


Modified: trunk/LayoutTests/TestExpectations (281839 => 281840)

--- trunk/LayoutTests/TestExpectations	2021-09-01 07:55:39 UTC (rev 281839)
+++ trunk/LayoutTests/TestExpectations	2021-09-01 08:35:53 UTC (rev 281840)
@@ -4186,12 +4186,10 @@
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004.html [ ImageOnlyFailure ]
-webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-005.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008.html [ ImageOnlyFailure ]
 webkit.org/b/221472 imported/w3c/web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001.html [ ImageOnlyFailure ]
-webkit.org/b/221472 

[webkit-changes] [281011] trunk/Source/WebCore

2021-08-13 Thread svillar
Title: [281011] trunk/Source/WebCore








Revision 281011
Author svil...@igalia.com
Date 2021-08-13 02:38:55 -0700 (Fri, 13 Aug 2021)


Log Message
Crash in MockMediaSourcePrivate
https://bugs.webkit.org/show_bug.cgi?id=226795

Reviewed by Darin Adler.

The MockMediaPlayerMediaSource uses callOnMainThread() to execute advanceCurrentTime(). It might
happen that the object is destructed before the callback is executed as it isn't a ref counted
object. That leads to a crash on ASAN builds.

Made the object capable of creating weak ptrs so that we could check whether the _this_ object
has been freed in the meantime or not. For the former case we just bail out.

* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::play): Create a WeakPtr.
(WebCore::MockMediaPlayerMediaSource::seekWithTolerance): Ditto.
(WebCore::MockMediaPlayerMediaSource::seekCompleted): Ditto.
* platform/mock/mediasource/MockMediaPlayerMediaSource.h: inherit from CanMakeWeakPtr.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp
trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (281010 => 281011)

--- trunk/Source/WebCore/ChangeLog	2021-08-13 08:40:04 UTC (rev 281010)
+++ trunk/Source/WebCore/ChangeLog	2021-08-13 09:38:55 UTC (rev 281011)
@@ -1,3 +1,23 @@
+2021-08-13  Sergio Villar Senin  
+
+Crash in MockMediaSourcePrivate
+https://bugs.webkit.org/show_bug.cgi?id=226795
+
+Reviewed by Darin Adler.
+
+The MockMediaPlayerMediaSource uses callOnMainThread() to execute advanceCurrentTime(). It might
+happen that the object is destructed before the callback is executed as it isn't a ref counted
+object. That leads to a crash on ASAN builds.
+
+Made the object capable of creating weak ptrs so that we could check whether the _this_ object
+has been freed in the meantime or not. For the former case we just bail out.
+
+* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
+(WebCore::MockMediaPlayerMediaSource::play): Create a WeakPtr.
+(WebCore::MockMediaPlayerMediaSource::seekWithTolerance): Ditto.
+(WebCore::MockMediaPlayerMediaSource::seekCompleted): Ditto.
+* platform/mock/mediasource/MockMediaPlayerMediaSource.h: inherit from CanMakeWeakPtr.
+
 2021-08-12  Alex Christensen  
 
 Unprefix -webkit-backface-visibility


Modified: trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp (281010 => 281011)

--- trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp	2021-08-13 08:40:04 UTC (rev 281010)
+++ trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp	2021-08-13 09:38:55 UTC (rev 281011)
@@ -123,7 +123,9 @@
 void MockMediaPlayerMediaSource::play()
 {
 m_playing = 1;
-callOnMainThread([this] {
+callOnMainThread([this, weakThis = makeWeakPtr(this)] {
+if (!weakThis)
+return;
 advanceCurrentTime();
 });
 }
@@ -220,7 +222,9 @@
 m_player->timeChanged();
 
 if (m_playing)
-callOnMainThread([this] {
+callOnMainThread([this, weakThis = makeWeakPtr(this)] {
+if (!weakThis)
+return;
 advanceCurrentTime();
 });
 }
@@ -282,7 +286,9 @@
 m_player->timeChanged();
 
 if (m_playing)
-callOnMainThread([this] {
+callOnMainThread([this, weakThis = makeWeakPtr(this)] {
+if (!weakThis)
+return;
 advanceCurrentTime();
 });
 }


Modified: trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h (281010 => 281011)

--- trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h	2021-08-13 08:40:04 UTC (rev 281010)
+++ trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h	2021-08-13 09:38:55 UTC (rev 281011)
@@ -31,6 +31,7 @@
 #include "MediaPlayerPrivate.h"
 #include 
 #include 
+#include 
 
 namespace WebCore {
 
@@ -37,7 +38,7 @@
 class MediaSource;
 class MockMediaSourcePrivate;
 
-class MockMediaPlayerMediaSource : public MediaPlayerPrivateInterface {
+class MockMediaPlayerMediaSource : public MediaPlayerPrivateInterface, public CanMakeWeakPtr {
 public:
 explicit MockMediaPlayerMediaSource(MediaPlayer*);
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [280130] trunk/Source/WebCore

2021-07-21 Thread svillar
Title: [280130] trunk/Source/WebCore








Revision 280130
Author svil...@igalia.com
Date 2021-07-21 06:40:16 -0700 (Wed, 21 Jul 2021)


Log Message
Missing layouts when using simplified layout with OOF positioned elements
https://bugs.webkit.org/show_bug.cgi?id=226008

Reviewed by Alan Bujtas.

There are some situations that allow us to do simplified layouts like when there is a positioned child
that needs to be laid out and neither the parent nor any other normal children needs it. In those cases
we just pick the list of positioned objects and invoke layoutPositionedObjects(). However that list
might not be properly updated since it's only done during the layout in RenderBlock::layoutBlockChildren().

This is causing that we miss layouts in cases where a renderer has the posChildNeedsLayout() bit set
(due to some style change for example) but no descendants in the positionedDescendantsMap() because
it has not been laid out yet. In those cases we simply bail out the simplified layout and proceed as in
the normal layout process.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::simplifiedLayout):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBlock.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (280129 => 280130)

--- trunk/Source/WebCore/ChangeLog	2021-07-21 12:57:20 UTC (rev 280129)
+++ trunk/Source/WebCore/ChangeLog	2021-07-21 13:40:16 UTC (rev 280130)
@@ -1,3 +1,23 @@
+2021-07-01  Sergio Villar Senin  
+
+Missing layouts when using simplified layout with OOF positioned elements
+https://bugs.webkit.org/show_bug.cgi?id=226008
+
+Reviewed by Alan Bujtas.
+
+There are some situations that allow us to do simplified layouts like when there is a positioned child
+that needs to be laid out and neither the parent nor any other normal children needs it. In those cases
+we just pick the list of positioned objects and invoke layoutPositionedObjects(). However that list
+might not be properly updated since it's only done during the layout in RenderBlock::layoutBlockChildren().
+
+This is causing that we miss layouts in cases where a renderer has the posChildNeedsLayout() bit set
+(due to some style change for example) but no descendants in the positionedDescendantsMap() because
+it has not been laid out yet. In those cases we simply bail out the simplified layout and proceed as in
+the normal layout process.
+
+* rendering/RenderBlock.cpp:
+(WebCore::RenderBlock::simplifiedLayout):
+
 2021-07-21  David Kilzer  
 
 GetIdentifierStringForPreferredVoiceInListWithLocale() is deprecated in Monterey


Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (280129 => 280130)

--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2021-07-21 12:57:20 UTC (rev 280129)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2021-07-21 13:40:16 UTC (rev 280130)
@@ -940,8 +940,12 @@
 // relative positioned container. So if we can have fixed pos objects in our positioned objects list check if any of them
 // are statically positioned and thus need to move with their absolute ancestors.
 bool canContainFixedPosObjects = canContainFixedPositionObjects();
-if (posChildNeedsLayout() || canContainFixedPosObjects)
+if (posChildNeedsLayout() || canContainFixedPosObjects) {
+// FIXME: Remove this early return once https://webkit.org/b/228125 is fixed.
+if (!hasPositionedObjects())
+return false;
 layoutPositionedObjects(false, !posChildNeedsLayout() && canContainFixedPosObjects);
+}
 
 // Recompute our overflow information.
 // FIXME: We could do better here by computing a temporary overflow object from layoutPositionedObjects and only






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [279286] trunk

2021-06-25 Thread svillar
Title: [279286] trunk








Revision 279286
Author svil...@igalia.com
Date 2021-06-25 08:42:07 -0700 (Fri, 25 Jun 2021)


Log Message
[css-flexbox] Improve computation of intrinsic sizes of flex items with aspect ratio
https://bugs.webkit.org/show_bug.cgi?id=227395

Reviewed by Rob Buis.

Source/WebCore:

Before computing the intrinsic sizes of flex items we first clear the overriding sizes of the item
that might have been set before in order to get the proper intrinsic size. However there is one
situation in which having an overriding size is desirable and it's when the cross size should
be set to the flex container's definite cross size. That's one of the exceptions for definite/indefinite
sizes mentioned in the specs (see https://drafts.csswg.org/css-flexbox/#definite-sizes).

In the aforementioned case we should temporarily set that overriding size in the cross axis so that
the intrinsic size could be computed with that constrain.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeChildIntrinsicLogicalWidths const): Set the overriding size
in the cross axis to compute the intrinsic size.
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): Added a missing check,
the cross size of the child must be auto, otherwise the rule does not apply.
(WebCore::RenderFlexibleBox::computeCrossSizeForChildUsingContainerCrossSize const): Refactored from
computeMainSizeFromAspectRatioUsing() as it's now used in two different places.
* rendering/RenderFlexibleBox.h:

LayoutTests:

* TestExpectations: Unskipped 3 tests that are now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/LayoutTests/ChangeLog (279285 => 279286)

--- trunk/LayoutTests/ChangeLog	2021-06-25 15:39:12 UTC (rev 279285)
+++ trunk/LayoutTests/ChangeLog	2021-06-25 15:42:07 UTC (rev 279286)
@@ -1,3 +1,12 @@
+2021-06-25  Sergio Villar Senin  
+
+[css-flexbox] Improve computation of intrinsic sizes of flex items with aspect ratio
+https://bugs.webkit.org/show_bug.cgi?id=227395
+
+Reviewed by Rob Buis.
+
+* TestExpectations: Unskipped 3 tests that are now passing.
+
 2021-06-17  Sergio Villar Senin  
 
 Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization


Modified: trunk/LayoutTests/TestExpectations (279285 => 279286)

--- trunk/LayoutTests/TestExpectations	2021-06-25 15:39:12 UTC (rev 279285)
+++ trunk/LayoutTests/TestExpectations	2021-06-25 15:42:07 UTC (rev 279286)
@@ -3952,12 +3952,9 @@
 
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-001.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-002.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-003.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-004.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-005.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-006.html [ ImageOnlyFailure ]
 
 webkit.org/b/145176 imported/w3c/web-platform-tests/css/css-flexbox/flexbox_align-items-stretch-3.html [ ImageOnlyFailure ]
 webkit.org/b/210093 imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-001.html [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (279285 => 279286)

--- trunk/Source/WebCore/ChangeLog	2021-06-25 15:39:12 UTC (rev 279285)
+++ trunk/Source/WebCore/ChangeLog	2021-06-25 15:42:07 UTC (rev 279286)
@@ -1,3 +1,29 @@
+2021-06-25  Sergio Villar Senin  
+
+[css-flexbox] Improve computation of intrinsic sizes of flex items with aspect ratio
+https://bugs.webkit.org/show_bug.cgi?id=227395
+
+Reviewed by Rob Buis.
+
+Before computing the intrinsic sizes of flex items we first clear the overriding sizes of the item
+that might have been set before in order to get the proper intrinsic size. However there is one
+situation in which having an overriding size is desirable and it's when the cross size should
+be set to the flex container's definite cross size. That's one of the exceptions for definite/indefinite
+sizes mentioned in the specs (see 

[webkit-changes] [279284] trunk

2021-06-25 Thread svillar
Title: [279284] trunk








Revision 279284
Author svil...@igalia.com
Date 2021-06-25 08:28:43 -0700 (Fri, 25 Jun 2021)


Log Message
Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=226821

Reviewed by Ryosuke Niwa.

Source/WebCore:

r276394 fixed an issue in serialization when transversing the nodes. It added a new condition
to the ASSERT that was checking that its OK not to have a next pointer when there is a valid
pastEnd in the case of pastEnd being a descendant of the pointer traversing the node tree.

However that descendant check was not including the shadow DOM. This is precisely the case
detected by the test case this patch is adding.

Test: editing/selection/setSelection-shadow-dom-crash.html

* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

LayoutTests:

* editing/selection/setSelection-shadow-dom-crash-expected.txt: Added.
* editing/selection/setSelection-shadow-dom-crash.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/editing/markup.cpp


Added Paths

trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash-expected.txt
trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (279283 => 279284)

--- trunk/LayoutTests/ChangeLog	2021-06-25 15:12:29 UTC (rev 279283)
+++ trunk/LayoutTests/ChangeLog	2021-06-25 15:28:43 UTC (rev 279284)
@@ -1,3 +1,13 @@
+2021-06-17  Sergio Villar Senin  
+
+Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
+https://bugs.webkit.org/show_bug.cgi?id=226821
+
+Reviewed by Ryosuke Niwa.
+
+* editing/selection/setSelection-shadow-dom-crash-expected.txt: Added.
+* editing/selection/setSelection-shadow-dom-crash.html: Added.
+
 2021-06-25  Philippe Normand  
 
 Unreviewed, GStreamer gardening


Added: trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash-expected.txt (0 => 279284)

--- trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash-expected.txt	(rev 0)
+++ trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash-expected.txt	2021-06-25 15:28:43 UTC (rev 279284)
@@ -0,0 +1,2 @@
+
+This test PASS if it does not crash.
Property changes on: trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash-expected.txt
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash.html (0 => 279284)

--- trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash.html	(rev 0)
+++ trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash.html	2021-06-25 15:28:43 UTC (rev 279284)
@@ -0,0 +1,25 @@
+
+
+
+if (window.testRunner)
+testRunner.dumpAsText();
+
+const image = document.createElement('img');
+document.body.appendChild(image);
+const selection = window.getSelection();
+const image2 = document.createElement('img');
+const div = document.createElement('div');
+document.body.appendChild(div);
+const shadow = div.attachShadow({
+mode: "open",
+});
+shadow.appendChild(image2);
+if (window.internals) {
+internals.setSelectionWithoutValidation(shadow, 0, image, 2);
+document.execCommand("copy");
+
+const p = document.createElement('p');
+p.innerHTML = "This test PASS if it does not crash."
+document.body.appendChild(p);
+}
+
Property changes on: trunk/LayoutTests/editing/selection/setSelection-shadow-dom-crash.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Modified: trunk/Source/WebCore/ChangeLog (279283 => 279284)

--- trunk/Source/WebCore/ChangeLog	2021-06-25 15:12:29 UTC (rev 279283)
+++ trunk/Source/WebCore/ChangeLog	2021-06-25 15:28:43 UTC (rev 279284)
@@ -1,3 +1,22 @@
+2021-06-17  Sergio Villar Senin  
+
+Nullptr crash in StyledMarkupAccumulator::traverseNodesForSerialization
+https://bugs.webkit.org/show_bug.cgi?id=226821
+
+Reviewed by Ryosuke Niwa.
+
+r276394 fixed an issue in serialization when transversing the nodes. It added a new condition
+to the ASSERT that was checking that its OK not to have a next pointer when there is a valid
+pastEnd in the case of pastEnd being a descendant of the pointer traversing the node tree.
+
+However that descendant check was not including the shadow DOM. This is precisely the case
+detected by the test case this patch is adding.
+
+Test: editing/selection/setSelection-shadow-dom-crash.html
+
+* editing/markup.cpp:
+(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
+
 2021-06-25  Philippe Normand  
 
 

[webkit-changes] [279274] trunk/Source/WebCore

2021-06-25 Thread svillar
Title: [279274] trunk/Source/WebCore








Revision 279274
Author svil...@igalia.com
Date 2021-06-25 04:22:59 -0700 (Fri, 25 Jun 2021)


Log Message
[css-flexbox] Cleanup OverridingSizesScope RAII class
https://bugs.webkit.org/show_bug.cgi?id=227394

Reviewed by Rob Buis.

In r279268 we added a new RAII class which adds an overriding sizes free scope to perform
layout computations. That class heavily uses the different set/get/clear methods for overriding
sizes. We can use a macro with subsitutions there to reduce the amount of required code.

Also moving the computeChildIntrinsicLogicalWidths() method to the private section as it does
not require protected visibility.

No new tests as it's just a code refactoring that does not modify the functionality.

* rendering/RenderFlexibleBox.cpp:
(WebCore::OverridingSizesScope::OverridingSizesScope):
(WebCore::OverridingSizesScope::~OverridingSizesScope):
(WebCore::OverridingSizesScope::setOrClearOverridingSize): Deleted.
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (279273 => 279274)

--- trunk/Source/WebCore/ChangeLog	2021-06-25 09:55:57 UTC (rev 279273)
+++ trunk/Source/WebCore/ChangeLog	2021-06-25 11:22:59 UTC (rev 279274)
@@ -1,3 +1,25 @@
+2021-06-25  Sergio Villar Senin  
+
+[css-flexbox] Cleanup OverridingSizesScope RAII class
+https://bugs.webkit.org/show_bug.cgi?id=227394
+
+Reviewed by Rob Buis.
+
+In r279268 we added a new RAII class which adds an overriding sizes free scope to perform
+layout computations. That class heavily uses the different set/get/clear methods for overriding
+sizes. We can use a macro with subsitutions there to reduce the amount of required code.
+
+Also moving the computeChildIntrinsicLogicalWidths() method to the private section as it does
+not require protected visibility.
+
+No new tests as it's just a code refactoring that does not modify the functionality.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::OverridingSizesScope::OverridingSizesScope):
+(WebCore::OverridingSizesScope::~OverridingSizesScope):
+(WebCore::OverridingSizesScope::setOrClearOverridingSize): Deleted.
+* rendering/RenderFlexibleBox.h:
+
 2021-06-25  Martin Robinson  
 
 [css-scroll-snap] Simplify snap point selection helpers


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (279273 => 279274)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-06-25 09:55:57 UTC (rev 279273)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-06-25 11:22:59 UTC (rev 279274)
@@ -153,6 +153,14 @@
 addScrollbarWidth();
 }
 
+#define SET_OR_CLEAR_OVERRIDING_SIZE(box, SizeType, size)   \
+{   \
+if (size)   \
+box.setOverridingLogical##SizeType(*size);  \
+else\
+box.clearOverridingLogical##SizeType(); \
+}
+
 // RAII class which defines a scope in which overriding sizes of a box are either:
 //   1) replaced by other size in one axis if size is specified
 //   2) cleared in both axis if size == std::nullopt
@@ -175,40 +183,24 @@
 if (axis == Axis::Both || axis == Axis::Inline) {
 if (box.hasOverridingLogicalWidth())
 m_overridingWidth = box.overridingLogicalWidth();
-setOrClearOverridingSize(size, Axis::Inline);
+SET_OR_CLEAR_OVERRIDING_SIZE(m_box, Width, size);
 }
 if (axis == Axis::Both || axis == Axis::Block) {
 if (box.hasOverridingLogicalHeight())
 m_overridingHeight = box.overridingLogicalHeight();
-setOrClearOverridingSize(size, Axis::Block);
+SET_OR_CLEAR_OVERRIDING_SIZE(m_box, Height, size);
 }
 }
 ~OverridingSizesScope()
 {
-if (m_axis == Axis::Both || m_axis == Axis::Inline)
-setOrClearOverridingSize(m_overridingWidth, Axis::Inline);
+if (m_axis == Axis::Inline || m_axis == Axis::Both)
+SET_OR_CLEAR_OVERRIDING_SIZE(m_box, Width, m_overridingWidth);
 
-if (m_axis == Axis::Both || m_axis == Axis::Block)
-setOrClearOverridingSize(m_overridingHeight, Axis::Block);
+if (m_axis == Axis::Block || m_axis == Axis::Both)
+SET_OR_CLEAR_OVERRIDING_SIZE(m_box, Height, m_overridingHeight);
 }
 
 private:
-void setOrClearOverridingSize(std::optional size, Axis axis)
-{
-ASSERT(axis != Axis::Both);
-if (size) {
-if (axis == Axis::Inline)
-m_box.setOverridingLogicalWidth(*size);
-else
-m_box.setOverridingLogicalHeight(*size);
- 

[webkit-changes] [279271] trunk

2021-06-25 Thread svillar
Title: [279271] trunk








Revision 279271
Author svil...@igalia.com
Date 2021-06-25 01:59:13 -0700 (Fri, 25 Jun 2021)


Log Message
[css-flexbox] Do not clamp flex base size with {min|max}-{height|width}
https://bugs.webkit.org/show_bug.cgi?id=225590

Reviewed by Alan Bujtas.

Source/WebCore:

When computing flex base size we should not clamp it with neither min-{height|width}
nor max-{height|width}. That would be done later and will be called the hypothetical
main size.

For most of the cases we were already doing it, however there are some particular cases
in which we have to call the generic layout code which does clamp the sizes using min
and max sizes. In order to make those code paths work, we reset the min|max values to
their initial ones (so they effectively become inactive) and then we set the original
values back after computing the base size.

* rendering/RenderFlexibleBox.cpp:
(WebCore::ScopedUnboundedBox::ScopedUnboundedBox): New scoped class that sets min|max sizes
to their initial values on instantiation and restores the original values on destruction.
(WebCore::ScopedUnboundedBox::~ScopedUnboundedBox):
(WebCore::RenderFlexibleBox::constructFlexItems): Wrap the base size computation with a
ScopedUnboundedBox.

LayoutTests:

The patch allows us to pass 3 new tests. We're adding percentage-max-height-003.html to
the list of expected failures because these changes make it fail. This is not really a
regression however because although the size of the deepest flex item was correct (and thus
allowed us to pass the test) the other sizes were completely wrong. So it's more an issue
of the test not being complete enough and passing artificially than anything else.

* TestExpectations: Unskipped 3 tests & skipped 1.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (279270 => 279271)

--- trunk/LayoutTests/ChangeLog	2021-06-25 08:43:33 UTC (rev 279270)
+++ trunk/LayoutTests/ChangeLog	2021-06-25 08:59:13 UTC (rev 279271)
@@ -1,3 +1,18 @@
+2021-06-14  Sergio Villar Senin  
+
+[css-flexbox] Do not clamp flex base size with {min|max}-{height|width}
+https://bugs.webkit.org/show_bug.cgi?id=225590
+
+Reviewed by Alan Bujtas.
+
+The patch allows us to pass 3 new tests. We're adding percentage-max-height-003.html to
+the list of expected failures because these changes make it fail. This is not really a
+regression however because although the size of the deepest flex item was correct (and thus
+allowed us to pass the test) the other sizes were completely wrong. So it's more an issue
+of the test not being complete enough and passing artificially than anything else.
+
+* TestExpectations: Unskipped 3 tests & skipped 1.
+
 2021-06-25  Arcady Goldmints-Orlov  
 
 [GTK] Unreviewed test gardening, mark more WebXR tests as unsupported


Modified: trunk/LayoutTests/TestExpectations (279270 => 279271)

--- trunk/LayoutTests/TestExpectations	2021-06-25 08:43:33 UTC (rev 279270)
+++ trunk/LayoutTests/TestExpectations	2021-06-25 08:59:13 UTC (rev 279271)
@@ -1217,6 +1217,7 @@
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015.html [ ImageOnlyFailure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001.html [ ImageOnlyFailure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/percentage-max-height-002.html [ ImageOnlyFailure ]
+webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/percentage-max-height-003.html [ ImageOnlyFailure ]
 webkit.org/b/210243 imported/w3c/web-platform-tests/css/css-flexbox/percentage-size-quirks-002.html [ Failure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/scrollbars-no-margin.html [ ImageOnlyFailure ]
 
@@ -3949,9 +3950,7 @@
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/vertical-alignment-srl-034.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/vertical-alignment-srl-040.xht [ ImageOnlyFailure ]
 
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-001.html [ ImageOnlyFailure ]
 webkit.org/b/219343 

[webkit-changes] [279268] trunk/Source/WebCore

2021-06-25 Thread svillar
Title: [279268] trunk/Source/WebCore








Revision 279268
Author svil...@igalia.com
Date 2021-06-25 01:09:22 -0700 (Fri, 25 Jun 2021)


Log Message
[css-flexbox] Move flex item preferred width computation specifics to RenderFlexibleBox class
https://bugs.webkit.org/show_bug.cgi?id=226822

Reviewed by Alan Bujtas.

RenderBlock had some specific code for flex items that cleared the overriding sizes before
computing the {min|max}PreferredWidths and then restored them afterwards. That is done to
properly compute flex items intrinsic sizes. That code is flexbox specific so we better move
it to RenderFlexibleBox. In order to do that a new virtual method was added to RenderBlock which
just calls minPreferredLogicalWidth() and maxPreferredLogicalWidth() for every block except
flexbox containers.

In the case of flexbox containers, it wraps those calls with a RAII class that properly
clears the overriding sizes on instantiation and clears them on destruction. Now that the RAII
class is available we use it also for another existing code path that requires to
temporarily set an overriding size in a given scope.

No need for new tests as there is no change in behaviour.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeChildIntrinsicLogicalWidths const): New virtual method.
(WebCore::RenderBlock::computeChildPreferredLogicalWidths const): Call computeChildIntrinsicLogicalWidths().
* rendering/RenderBlock.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::OverridingSizesScope::OverridingSizesScope): New RAII class to set/clear overriding sizes in a scope.
(WebCore::OverridingSizesScope::~OverridingSizesScope):
(WebCore::OverridingSizesScope::setOrClearOverridingSize):
(WebCore::RenderFlexibleBox::computeChildIntrinsicLogicalWidths const): Redefinition for flexbox containers.
(WebCore::RenderFlexibleBox::childIntrinsicLogicalHeight const): Removed constness from attribute.
(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth): Ditto.
(WebCore::RenderFlexibleBox::crossAxisIntrinsicExtentForChild): Ditto.
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBlock.cpp
trunk/Source/WebCore/rendering/RenderBlock.h
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (279267 => 279268)

--- trunk/Source/WebCore/ChangeLog	2021-06-25 07:13:59 UTC (rev 279267)
+++ trunk/Source/WebCore/ChangeLog	2021-06-25 08:09:22 UTC (rev 279268)
@@ -1,3 +1,38 @@
+2021-06-09  Sergio Villar Senin  
+
+[css-flexbox] Move flex item preferred width computation specifics to RenderFlexibleBox class
+https://bugs.webkit.org/show_bug.cgi?id=226822
+
+Reviewed by Alan Bujtas.
+
+RenderBlock had some specific code for flex items that cleared the overriding sizes before
+computing the {min|max}PreferredWidths and then restored them afterwards. That is done to
+properly compute flex items intrinsic sizes. That code is flexbox specific so we better move
+it to RenderFlexibleBox. In order to do that a new virtual method was added to RenderBlock which
+just calls minPreferredLogicalWidth() and maxPreferredLogicalWidth() for every block except
+flexbox containers.
+
+In the case of flexbox containers, it wraps those calls with a RAII class that properly
+clears the overriding sizes on instantiation and clears them on destruction. Now that the RAII
+class is available we use it also for another existing code path that requires to
+temporarily set an overriding size in a given scope.
+
+No need for new tests as there is no change in behaviour.
+
+* rendering/RenderBlock.cpp:
+(WebCore::RenderBlock::computeChildIntrinsicLogicalWidths const): New virtual method.
+(WebCore::RenderBlock::computeChildPreferredLogicalWidths const): Call computeChildIntrinsicLogicalWidths().
+* rendering/RenderBlock.h:
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::OverridingSizesScope::OverridingSizesScope): New RAII class to set/clear overriding sizes in a scope.
+(WebCore::OverridingSizesScope::~OverridingSizesScope):
+(WebCore::OverridingSizesScope::setOrClearOverridingSize):
+(WebCore::RenderFlexibleBox::computeChildIntrinsicLogicalWidths const): Redefinition for flexbox containers.
+(WebCore::RenderFlexibleBox::childIntrinsicLogicalHeight const): Removed constness from attribute.
+(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth): Ditto.
+(WebCore::RenderFlexibleBox::crossAxisIntrinsicExtentForChild): Ditto.
+* rendering/RenderFlexibleBox.h:
+
 2021-06-24  Antoine Quint  
 
 [Model] Create a sandbox extension for a temporary directory to store model resources


Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (279267 => 279268)

--- 

[webkit-changes] [279035] trunk

2021-06-18 Thread svillar
Title: [279035] trunk








Revision 279035
Author svil...@igalia.com
Date 2021-06-18 03:58:18 -0700 (Fri, 18 Jun 2021)


Log Message
Ignore clangd's directory with index files
https://bugs.webkit.org/show_bug.cgi?id=227162

Reviewed by Žan Doberšek.

clangd stores its indexes in a .cache directory. Let git ignore it.

* .gitignore:

Modified Paths

trunk/.gitignore
trunk/ChangeLog




Diff

Modified: trunk/.gitignore (279034 => 279035)

--- trunk/.gitignore	2021-06-18 10:35:40 UTC (rev 279034)
+++ trunk/.gitignore	2021-06-18 10:58:18 UTC (rev 279035)
@@ -31,6 +31,7 @@
 tags
 *~
 .*.sw[a-p]
+.cache
 .clangd
 compile_commands.json
 


Modified: trunk/ChangeLog (279034 => 279035)

--- trunk/ChangeLog	2021-06-18 10:35:40 UTC (rev 279034)
+++ trunk/ChangeLog	2021-06-18 10:58:18 UTC (rev 279035)
@@ -1,3 +1,14 @@
+2021-06-18  Sergio Villar Senin  
+
+Ignore clangd's directory with index files
+https://bugs.webkit.org/show_bug.cgi?id=227162
+
+Reviewed by Žan Doberšek.
+
+clangd stores its indexes in a .cache directory. Let git ignore it.
+
+* .gitignore:
+
 2021-06-11  Adrian Perez de Castro  
 
 Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.33.2 release






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [278865] trunk/Source/WebCore

2021-06-15 Thread svillar
Title: [278865] trunk/Source/WebCore








Revision 278865
Author svil...@igalia.com
Date 2021-06-15 02:19:23 -0700 (Tue, 15 Jun 2021)


Log Message
[css-flexbox] Do not compute the min-max sizes of flex items twice
https://bugs.webkit.org/show_bug.cgi?id=226463

Reviewed by Simon Fraser.

When determining the flex base size, the item’s min and max main sizes are ignored (no clamping occurs).
Those limits are used to compute the item's hypothetical main size and also later when the flexible
lengths are resolved. The thing is that we were running the code that clamps the flex item size twice instead
of computing those limits once and apply them twice.

>From now one, we just compute them once and store the limits in a std::pair in the FlexItem class. This means
that the FlexItem is able to compute the hypothetical main size on its own and does not need it to be passed
as an argument.

No new tests as this is already being tested by dozens of tests.

* rendering/FlexibleBoxAlgorithm.cpp:
(WebCore::FlexItem::FlexItem):
(WebCore::FlexItem::constrainSizeByMinMax const): Clamp the passed in size by the stored min & max sizes.
* rendering/FlexibleBoxAlgorithm.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes): Renamed from adjustChildSizeForMinAndMax and
without the childSize argument which is no longer needed.
(WebCore::RenderFlexibleBox::constructFlexItem): Use constrainSizeByMinMax.
(WebCore::RenderFlexibleBox::resolveFlexibleLengths): Ditto.
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Deleted.
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/FlexibleBoxAlgorithm.cpp
trunk/Source/WebCore/rendering/FlexibleBoxAlgorithm.h
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (278864 => 278865)

--- trunk/Source/WebCore/ChangeLog	2021-06-15 08:32:33 UTC (rev 278864)
+++ trunk/Source/WebCore/ChangeLog	2021-06-15 09:19:23 UTC (rev 278865)
@@ -1,3 +1,33 @@
+2021-05-31  Sergio Villar Senin  
+
+[css-flexbox] Do not compute the min-max sizes of flex items twice
+https://bugs.webkit.org/show_bug.cgi?id=226463
+
+Reviewed by Simon Fraser.
+
+When determining the flex base size, the item’s min and max main sizes are ignored (no clamping occurs).
+Those limits are used to compute the item's hypothetical main size and also later when the flexible
+lengths are resolved. The thing is that we were running the code that clamps the flex item size twice instead
+of computing those limits once and apply them twice.
+
+From now one, we just compute them once and store the limits in a std::pair in the FlexItem class. This means
+that the FlexItem is able to compute the hypothetical main size on its own and does not need it to be passed
+as an argument.
+
+No new tests as this is already being tested by dozens of tests.
+
+* rendering/FlexibleBoxAlgorithm.cpp:
+(WebCore::FlexItem::FlexItem):
+(WebCore::FlexItem::constrainSizeByMinMax const): Clamp the passed in size by the stored min & max sizes.
+* rendering/FlexibleBoxAlgorithm.h:
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes): Renamed from adjustChildSizeForMinAndMax and
+without the childSize argument which is no longer needed.
+(WebCore::RenderFlexibleBox::constructFlexItem): Use constrainSizeByMinMax.
+(WebCore::RenderFlexibleBox::resolveFlexibleLengths): Ditto.
+(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Deleted.
+* rendering/RenderFlexibleBox.h:
+
 2021-06-11  Sergio Villar Senin  
 
 logged in GitHub issue pages have bad layout for "Notifications Customize" link


Modified: trunk/Source/WebCore/rendering/FlexibleBoxAlgorithm.cpp (278864 => 278865)

--- trunk/Source/WebCore/rendering/FlexibleBoxAlgorithm.cpp	2021-06-15 08:32:33 UTC (rev 278864)
+++ trunk/Source/WebCore/rendering/FlexibleBoxAlgorithm.cpp	2021-06-15 09:19:23 UTC (rev 278865)
@@ -35,12 +35,14 @@
 
 namespace WebCore {
 
-FlexItem::FlexItem(RenderBox& box, LayoutUnit flexBaseContentSize, LayoutUnit hypotheticalMainContentSize, LayoutUnit mainAxisBorderAndPadding, LayoutUnit mainAxisMargin, bool everHadLayout)
+FlexItem::FlexItem(RenderBox& box, LayoutUnit flexBaseContentSize, LayoutUnit mainAxisBorderAndPadding, LayoutUnit mainAxisMargin, std::pair minMaxSizes, bool everHadLayout)
 : box(box)
 , flexBaseContentSize(flexBaseContentSize)
-, hypotheticalMainContentSize(hypotheticalMainContentSize)
 , mainAxisBorderAndPadding(mainAxisBorderAndPadding)
 , mainAxisMargin(mainAxisMargin)
+, minMaxSizes(minMaxSizes)
+, hypotheticalMainContentSize(constrainSizeByMinMax(flexBaseContentSize))
+, frozen(false)
 , 

[webkit-changes] [278864] trunk

2021-06-15 Thread svillar
Title: [278864] trunk








Revision 278864
Author svil...@igalia.com
Date 2021-06-15 01:32:33 -0700 (Tue, 15 Jun 2021)


Log Message
logged in GitHub issue pages have bad layout for "Notifications Customize" link
https://bugs.webkit.org/show_bug.cgi?id=226859

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

* web-platform-tests/html/rendering/the-details-element/summary-display-list-item-002-expected.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-list-item-002.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-002.html

In r278280 we made display:list-item on  elements to fallback to display:flexbox in order not to
show two markers. However there is no reason why it should be a flexible box instead of a block container,
actually is causing issues in some sites. We better fallback to block instead of flexbox renderer.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor): create a RenderBlockFlow when OnlyCreateBlockAndFlexboxRenderers is
specified (right now only by summary elements).

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/w3c-import.log
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderElement.cpp


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-002-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-002.html


Removed Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item.html




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (278863 => 278864)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-06-15 07:40:42 UTC (rev 278863)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-06-15 08:32:33 UTC (rev 278864)
@@ -1,3 +1,13 @@
+2021-06-11  Sergio Villar Senin  
+
+logged in GitHub issue pages have bad layout for "Notifications Customize" link
+https://bugs.webkit.org/show_bug.cgi?id=226859
+
+Reviewed by Alan Bujtas.
+
+* web-platform-tests/html/rendering/the-details-element/summary-display-list-item-002-expected.html: Added.
+* web-platform-tests/html/rendering/the-details-element/summary-display-list-item-002.html: Added.
+
 2021-06-14  Youenn Fablet  
 
 Import WPT webrtc-extensions


Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001-expected.html (from rev 278863, trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-expected.html) (0 => 278864)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001-expected.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001-expected.html	2021-06-15 08:32:33 UTC (rev 278864)
@@ -0,0 +1,28 @@
+
+
+CSS Reference: summary with 'display: list-item'
+
+details {
+  margin-left: 50px;
+}
+.inside {
+  list-style-position: inside;
+}
+
+
+  summary
+  content
+
+
+  summary
+  content
+
+
+  summary
+  content
+
+
+  summary
+  content
+


Property changes: trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001-expected.html



Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001.html (from rev 278863, trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item.html) (0 => 278864)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-001.html	2021-06-15 08:32:33 UTC (rev 278864)
@@ -0,0 +1,34 @@
+
+
+CSS Test: summary with 'display: list-item'
+
+
+summary {
+  display: list-item;
+}
+details {
+  margin-left: 50px;
+}
+.inside {
+  list-style-position: inside;
+}
+
+
+  summary
+  content
+
+
+  summary
+  content
+
+
+  summary
+  content
+
+
+  summary
+  content
+


Property 

[webkit-changes] [278693] trunk/Tools

2021-06-09 Thread svillar
Title: [278693] trunk/Tools








Revision 278693
Author svil...@igalia.com
Date 2021-06-09 21:59:13 -0700 (Wed, 09 Jun 2021)


Log Message
Add email address for Igalia's WebKit layout team to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=226829

Reviewed by Simon Fraser.

* Scripts/webkitpy/common/config/contributors.json:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/common/config/contributors.json




Diff

Modified: trunk/Tools/ChangeLog (278692 => 278693)

--- trunk/Tools/ChangeLog	2021-06-10 04:52:56 UTC (rev 278692)
+++ trunk/Tools/ChangeLog	2021-06-10 04:59:13 UTC (rev 278693)
@@ -1,3 +1,12 @@
+2021-06-09  Sergio Villar Senin  
+
+Add email address for Igalia's WebKit layout team to contributors.json
+https://bugs.webkit.org/show_bug.cgi?id=226829
+
+Reviewed by Simon Fraser.
+
+* Scripts/webkitpy/common/config/contributors.json:
+
 2021-06-09  Chris Gambrell  
 
 Add personal email to Tools/Scripts/webkitpy/common/config/contributors.json


Modified: trunk/Tools/Scripts/webkitpy/common/config/contributors.json (278692 => 278693)

--- trunk/Tools/Scripts/webkitpy/common/config/contributors.json	2021-06-10 04:52:56 UTC (rev 278692)
+++ trunk/Tools/Scripts/webkitpy/common/config/contributors.json	2021-06-10 04:59:13 UTC (rev 278693)
@@ -2552,6 +2552,12 @@
  "vollick"
   ]
},
+   "Igalia Layout Team" : {
+  "emails" : [
+ "webkit-layout-nore...@igalia.com"
+  ],
+  "expertise" : "Flexbox, CSS Grid Layout, CSS Scroll Snap, CSS Containment"
+   },
"Igor Trindade Oliveira" : {
   "emails" : [
  "igor.olive...@webkit.org",






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [278450] trunk/Source/WebCore

2021-06-04 Thread svillar
Title: [278450] trunk/Source/WebCore








Revision 278450
Author svil...@igalia.com
Date 2021-06-04 01:03:35 -0700 (Fri, 04 Jun 2021)


Log Message
[css-flexbox] Sanitize the aspect ratio handling code
https://bugs.webkit.org/show_bug.cgi?id=226324

Reviewed by Javier Fernandez.

Sanitized the code that detects whether aspect ratio should be used to compute sizes. The
useChildAspectRatio() method was removed as it was very misleading, the name was a bad choice
and it was very confusing. A new method childHasComputableAspectRatio() was added. It verifies
whether the item has an aspect ratio (of any type) and whether we could compute it.

Also two calls to detect whether the cross size was definite (or considered definite) were
unified in a single method.

No new tests as there is no change in behaviour.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childHasComputableAspectRatio const): New method which takes the
checks from useChildAspectRatio.
(WebCore::RenderFlexibleBox::childHasComputableAspectRatioAndCrossSizeIsConsideredDefinite):
New method doing 3 different checks.
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): Removed the aspect
ratio checks which make no sense there.
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Use the new method.
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Ditto.
(WebCore::RenderFlexibleBox::useChildAspectRatio): Deleted.
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (278449 => 278450)

--- trunk/Source/WebCore/ChangeLog	2021-06-04 06:35:37 UTC (rev 278449)
+++ trunk/Source/WebCore/ChangeLog	2021-06-04 08:03:35 UTC (rev 278450)
@@ -1,3 +1,32 @@
+2021-05-27  Sergio Villar Senin  
+
+[css-flexbox] Sanitize the aspect ratio handling code
+https://bugs.webkit.org/show_bug.cgi?id=226324
+
+Reviewed by Javier Fernandez.
+
+Sanitized the code that detects whether aspect ratio should be used to compute sizes. The
+useChildAspectRatio() method was removed as it was very misleading, the name was a bad choice
+and it was very confusing. A new method childHasComputableAspectRatio() was added. It verifies
+whether the item has an aspect ratio (of any type) and whether we could compute it.
+
+Also two calls to detect whether the cross size was definite (or considered definite) were
+unified in a single method.
+
+No new tests as there is no change in behaviour.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::childHasComputableAspectRatio const): New method which takes the
+checks from useChildAspectRatio.
+(WebCore::RenderFlexibleBox::childHasComputableAspectRatioAndCrossSizeIsConsideredDefinite):
+New method doing 3 different checks.
+(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): Removed the aspect
+ratio checks which make no sense there.
+(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Use the new method.
+(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Ditto.
+(WebCore::RenderFlexibleBox::useChildAspectRatio): Deleted.
+* rendering/RenderFlexibleBox.h:
+
 2021-06-03  Jean-Yves Avenard  
 
 fast/dom/Window/property-access-on-cached-window-after-frame-removed.html (layout-test) may crash


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (278449 => 278450)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-06-04 06:35:37 UTC (rev 278449)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-06-04 08:03:35 UTC (rev 278450)
@@ -791,17 +791,6 @@
 return { };
 }
 
-bool RenderFlexibleBox::useChildAspectRatio(const RenderBox& child)
-{
-if (!childHasAspectRatio(child))
-return false;
-if (!child.intrinsicSize().height() && !child.style().hasAspectRatio()) {
-// We can't compute a ratio in this case.
-return false;
-}
-return childCrossSizeIsDefinite(child, crossSizeLengthForChild(MainOrPreferredSize, child));
-}
-
 // FIXME: computeMainSizeFromAspectRatioUsing may need to return an std::optional in the future
 // rather than returning indefinite sizes as 0/-1.
 LayoutUnit RenderFlexibleBox::computeMainSizeFromAspectRatioUsing(const RenderBox& child, Length crossSizeLength) const
@@ -882,15 +871,21 @@
 return true;
 }
 
-bool RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize(const RenderBox& child) const
+bool RenderFlexibleBox::childHasComputableAspectRatio(const RenderBox& child) const
 {
 if (!childHasAspectRatio(child))
 return false;
-if (!child.intrinsicSize().height() && !child.style().hasAspectRatio()) {
-// We can't compute a ratio in this case.
- 

[webkit-changes] [278300] trunk/Source/WebCore

2021-06-01 Thread svillar
Title: [278300] trunk/Source/WebCore








Revision 278300
Author svil...@igalia.com
Date 2021-06-01 03:52:26 -0700 (Tue, 01 Jun 2021)


Log Message
Improve if condition in RenderReplaced::computeReplacedLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=226325

Reviewed by Darin Adler.

Removed the check for intrinsicRatio as we're already inside a block in which intrinsicRatio
is true. Also switched the position of the two conditions in the OR clause as it allows us
to remove the check for computedHeightIsAuto. Last but not least, used a ternary operator
to initialize the value of boxSizing instead of the if clause.

No new tests as there is no change in functionality.

* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidth const):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderReplaced.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (278299 => 278300)

--- trunk/Source/WebCore/ChangeLog	2021-06-01 08:42:48 UTC (rev 278299)
+++ trunk/Source/WebCore/ChangeLog	2021-06-01 10:52:26 UTC (rev 278300)
@@ -1,3 +1,20 @@
+2021-05-27  Sergio Villar Senin  
+
+Improve if condition in RenderReplaced::computeReplacedLogicalWidth
+https://bugs.webkit.org/show_bug.cgi?id=226325
+
+Reviewed by Darin Adler.
+
+Removed the check for intrinsicRatio as we're already inside a block in which intrinsicRatio
+is true. Also switched the position of the two conditions in the OR clause as it allows us
+to remove the check for computedHeightIsAuto. Last but not least, used a ternary operator
+to initialize the value of boxSizing instead of the if clause.
+
+No new tests as there is no change in functionality.
+
+* rendering/RenderReplaced.cpp:
+(WebCore::RenderReplaced::computeReplacedLogicalWidth const):
+
 2021-05-31  Dean Jackson  
 
 [WebXR] Attach IOSurface to WebXROpaqueFramebuffer


Modified: trunk/Source/WebCore/rendering/RenderReplaced.cpp (278299 => 278300)

--- trunk/Source/WebCore/rendering/RenderReplaced.cpp	2021-06-01 08:42:48 UTC (rev 278299)
+++ trunk/Source/WebCore/rendering/RenderReplaced.cpp	2021-06-01 10:52:26 UTC (rev 278300)
@@ -561,16 +561,13 @@
 // If 'height' and 'width' both have computed values of 'auto' and the element has no intrinsic width, but does have an intrinsic height and intrinsic ratio;
 // or if 'width' has a computed value of 'auto', 'height' has some other computed value, and the element does have an intrinsic ratio; then the used value
 // of 'width' is: (used height) * (intrinsic ratio)
-if (intrinsicRatio && ((computedHeightIsAuto && !hasIntrinsicWidth && hasIntrinsicHeight) || !computedHeightIsAuto)) {
+if (!computedHeightIsAuto || (!hasIntrinsicWidth && hasIntrinsicHeight)) {
 LayoutUnit estimatedUsedWidth = hasIntrinsicWidth ? LayoutUnit(constrainedSize.width()) : computeConstrainedLogicalWidth(shouldComputePreferred);
 LayoutUnit logicalHeight = computeReplacedLogicalHeight(std::optional(estimatedUsedWidth));
-BoxSizing boxSizing = BoxSizing::ContentBox;
-if (style().hasAspectRatio())
-boxSizing = style().boxSizingForAspectRatio();
+BoxSizing boxSizing = style().hasAspectRatio() ? style().boxSizingForAspectRatio() : BoxSizing::ContentBox;
 return computeReplacedLogicalWidthRespectingMinMaxWidth(resolveWidthForRatio(borderAndPaddingLogicalHeight(), borderAndPaddingLogicalWidth(), logicalHeight, intrinsicRatio, boxSizing), shouldComputePreferred);
 }
 
-
 // If 'height' and 'width' both have computed values of 'auto' and the
 // element has an intrinsic ratio but no intrinsic height or width, then
 // the used value of 'width' is undefined in CSS 2.1. However, it is






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [278280] trunk

2021-05-31 Thread svillar
Title: [278280] trunk








Revision 278280
Author svil...@igalia.com
Date 2021-05-31 09:18:03 -0700 (Mon, 31 May 2021)


Log Message
Enable  to be a flex container
https://bugs.webkit.org/show_bug.cgi?id=190065

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Imported several WPT tests adding coverage for  as grid/flex.

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/html/rendering/the-details-element/details-blockification-expected.txt: Added.
* web-platform-tests/html/rendering/the-details-element/details-blockification.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-flex-expected.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-flex.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-grid-expected.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-grid.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-inline-flex-expected.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-inline-flex.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-inline-grid-expected.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-display-inline-grid.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-in-ol-expected.html: Added.
* web-platform-tests/html/rendering/the-details-element/summary-in-ol.html: Added.
* web-platform-tests/html/rendering/the-details-element/w3c-import.log:

Source/WebCore:

Create grid or flex renderers for  elements whenever display: {inline}-{grid|flex}
is specified. All vendors but WebKit allowed it so it should be good for interoperability.

* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::createElementRenderer): create the renderer specifying
RenderElement::OnlyCreateBlockAndFlexboxRenderers.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor): do not create a RenderListItem for  if display:list-item
is used because they're already list items. Let it fallthrough to RenderBlockFlow creation.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/resources/resource-files.json
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/w3c-import.log
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLSummaryElement.cpp
trunk/Source/WebCore/rendering/RenderElement.cpp


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/details-blockification-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/details-blockification.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-flex-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-flex.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-grid-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-grid.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-inline-flex-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-inline-flex.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-inline-grid-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-display-inline-grid.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-in-ol-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/rendering/the-details-element/summary-in-ol.html




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (278279 => 278280)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-05-31 15:47:28 UTC (rev 278279)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-05-31 16:18:03 UTC (rev 278280)
@@ -1,3 +1,28 @@
+2021-04-29  Sergio Villar Senin  
+
+Enable  to be a flex container
+https://bugs.webkit.org/show_bug.cgi?id=190065
+
+Reviewed by Antti Koivisto.
+
+Imported several WPT tests adding coverage for  as grid/flex.
+
+* resources/import-expectations.json:
+* resources/resource-files.json:
+* web-platform-tests/html/rendering/the-details-element/details-blockification-expected.txt: Added.
+* web-platform-tests/html/rendering/the-details-element/details-blockification.html: Added.
+* web-platform-tests/html/rendering/the-details-element/summary-display-flex-expected.html: Added.
+* web-platform-tests/html/rendering/the-details-element/summary-display-flex.html: Added.
+* 

[webkit-changes] [277378] trunk

2021-05-12 Thread svillar
Title: [277378] trunk








Revision 277378
Author svil...@igalia.com
Date 2021-05-12 10:58:17 -0700 (Wed, 12 May 2021)


Log Message
ASSERTION FAILED: m_clients.contains() in CSSFontFace::removeClient via CSSSegmentedFontFace::~CSSSegmentedFontFace()
https://bugs.webkit.org/show_bug.cgi?id=223790

Reviewed by Ryosuke Niwa.

Source/WebCore:

CSSFontFace does not support adding the same client twice as it uses a HashSet to track them. This means that
it's a mistake to call removeClient() more than once. This could happen when specifying the same font
family more than once in a  element inside a svg container.

Test: fast/css/svg-font-face-duplicate-crash.html

* css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::fontFace): Skip duplicate CSSFontFace's when before calling appendFontFace().

LayoutTests:

* fast/css/svg-font-face-duplicate-crash-expected.txt: Added.
* fast/css/svg-font-face-duplicate-crash.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/css/CSSFontFaceSet.cpp


Added Paths

trunk/LayoutTests/fast/css/svg-font-face-duplicate-crash-expected.txt
trunk/LayoutTests/fast/css/svg-font-face-duplicate-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (277377 => 277378)

--- trunk/LayoutTests/ChangeLog	2021-05-12 17:54:07 UTC (rev 277377)
+++ trunk/LayoutTests/ChangeLog	2021-05-12 17:58:17 UTC (rev 277378)
@@ -1,3 +1,13 @@
+2021-05-12  Sergio Villar Senin  
+
+ASSERTION FAILED: m_clients.contains() in CSSFontFace::removeClient via CSSSegmentedFontFace::~CSSSegmentedFontFace()
+https://bugs.webkit.org/show_bug.cgi?id=223790
+
+Reviewed by Ryosuke Niwa.
+
+* fast/css/svg-font-face-duplicate-crash-expected.txt: Added.
+* fast/css/svg-font-face-duplicate-crash.html: Added.
+
 2021-05-12  Ryosuke Niwa  
 
 REGRESSION: Release assert in SlotAssignment::assignedNodesForSlot via ComposedTreeIterator::traverseNextInShadowTree in Element::insertedIntoAncestor


Added: trunk/LayoutTests/fast/css/svg-font-face-duplicate-crash-expected.txt (0 => 277378)

--- trunk/LayoutTests/fast/css/svg-font-face-duplicate-crash-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/css/svg-font-face-duplicate-crash-expected.txt	2021-05-12 17:58:17 UTC (rev 277378)
@@ -0,0 +1 @@
+Test PASS if it does not ASSERT in Debug.


Added: trunk/LayoutTests/fast/css/svg-font-face-duplicate-crash.html (0 => 277378)

--- trunk/LayoutTests/fast/css/svg-font-face-duplicate-crash.html	(rev 0)
+++ trunk/LayoutTests/fast/css/svg-font-face-duplicate-crash.html	2021-05-12 17:58:17 UTC (rev 277378)
@@ -0,0 +1,18 @@
+
+
+body {
+overflow: hidden -webkit-paged-x;
+}
+
+
+if (window.testRunner)
+testRunner.dumpAsText();
+
+
+
+
+	
+
+
+Test PASS if it does not ASSERT in Debug.
+


Modified: trunk/Source/WebCore/ChangeLog (277377 => 277378)

--- trunk/Source/WebCore/ChangeLog	2021-05-12 17:54:07 UTC (rev 277377)
+++ trunk/Source/WebCore/ChangeLog	2021-05-12 17:58:17 UTC (rev 277378)
@@ -1,3 +1,19 @@
+2021-05-12  Sergio Villar Senin  
+
+ASSERTION FAILED: m_clients.contains() in CSSFontFace::removeClient via CSSSegmentedFontFace::~CSSSegmentedFontFace()
+https://bugs.webkit.org/show_bug.cgi?id=223790
+
+Reviewed by Ryosuke Niwa.
+
+CSSFontFace does not support adding the same client twice as it uses a HashSet to track them. This means that
+it's a mistake to call removeClient() more than once. This could happen when specifying the same font
+family more than once in a  element inside a svg container.
+
+Test: fast/css/svg-font-face-duplicate-crash.html
+
+* css/CSSFontFaceSet.cpp:
+(WebCore::CSSFontFaceSet::fontFace): Skip duplicate CSSFontFace's when before calling appendFontFace().
+
 2021-05-12  Chris Dumez  
 
 Queue notification permission requests for the same origin on WebKit side


Modified: trunk/Source/WebCore/css/CSSFontFaceSet.cpp (277377 => 277378)

--- trunk/Source/WebCore/css/CSSFontFaceSet.cpp	2021-05-12 17:54:07 UTC (rev 277377)
+++ trunk/Source/WebCore/css/CSSFontFaceSet.cpp	2021-05-12 17:58:17 UTC (rev 277378)
@@ -510,8 +510,13 @@
 return true;
 return false;
 });
-for (auto& candidate : candidateFontFaces)
+CSSFontFace* previousCandidate = nullptr;
+for (auto& candidate : candidateFontFaces) {
+if (() == previousCandidate)
+continue;
+previousCandidate = ();
 face->appendFontFace(candidate.get());
+}
 }
 
 return face.get();






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [277371] trunk

2021-05-12 Thread svillar
Title: [277371] trunk








Revision 277371
Author svil...@igalia.com
Date 2021-05-12 08:59:48 -0700 (Wed, 12 May 2021)


Log Message
[css-flexbox] Do not use margins when computing aspect ratio cross sizes
https://bugs.webkit.org/show_bug.cgi?id=221210
LayoutTests/imported/w3c:



Reviewed by Javier Fernandez.

* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt:
 Replaced FAIL by PASS expectations + new expectations.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html: Imported
latest changes from upstream WPT.

Source/WebCore:

Reviewed by Javier Fernandez.

In r270578 we implemented section 9.8.1 of the flexbox specs which allowed us to compute child's
indefinite cross sizes as definite when the flexbox container had a definite cross size and a couple
of other conditions. However we did not take into account that the child might have some margins in
in the cross direction. Aspect ratio computations must use the content box and thus, we need to
substract the margin extent before trying to compute a cross size based on an aspect ratio.

Note that when computeMainSizeFromAspectRatioUsing() is called the child might not have been ever
laid out. This means that the margins wouldn't have been computed and thus marginXXX() would always
return 0. That's why crossAxisMarginExtentForChild() was also modified so that it actually computes
the margins in case the child needs to be laid out.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::crossAxisMarginExtentForChild const):
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):

LayoutTests:

Reviewed by Javier Fernandez.

* TestExpectations: Unskipped flex-aspect-ratio-img-row-013.html which is now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (277370 => 277371)

--- trunk/LayoutTests/ChangeLog	2021-05-12 15:48:26 UTC (rev 277370)
+++ trunk/LayoutTests/ChangeLog	2021-05-12 15:59:48 UTC (rev 277371)
@@ -1,3 +1,12 @@
+2021-05-12  Sergio Villar Senin  
+
+[css-flexbox] Do not use margins when computing aspect ratio cross sizes
+https://bugs.webkit.org/show_bug.cgi?id=221210
+
+Reviewed by Javier Fernandez.
+
+* TestExpectations: Unskipped flex-aspect-ratio-img-row-013.html which is now passing.
+
 2021-05-12  Diego Pino Garcia  
 
 [GLIB] Unreviewed test gardening. media/track/in-band/track-in-band-srt-mkv-kind.html is a flaky crash.


Modified: trunk/LayoutTests/TestExpectations (277370 => 277371)

--- trunk/LayoutTests/TestExpectations	2021-05-12 15:48:26 UTC (rev 277370)
+++ trunk/LayoutTests/TestExpectations	2021-05-12 15:59:48 UTC (rev 277371)
@@ -3869,7 +3869,6 @@
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-001.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-002.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-003.html [ ImageOnlyFailure ]


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (277370 => 277371)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-05-12 15:48:26 UTC (rev 277370)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-05-12 15:59:48 UTC (rev 277371)
@@ -1,3 +1,16 @@
+2021-05-12  Sergio Villar Senin  
+
+[css-flexbox] Do not use margins when computing aspect ratio cross sizes
+https://bugs.webkit.org/show_bug.cgi?id=221210
+
+
+Reviewed by Javier Fernandez.
+
+* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt:
+ Replaced FAIL by PASS expectations + new expectations.
+* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html: Imported
+latest changes from upstream WPT.
+
 2021-05-11  Cathie Chen  
 
 [CSS contain] Support contain:size


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt (277370 => 277371)

--- 

[webkit-changes] [276971] trunk

2021-05-04 Thread svillar
Title: [276971] trunk








Revision 276971
Author svil...@igalia.com
Date 2021-05-04 11:19:43 -0700 (Tue, 04 May 2021)


Log Message
ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
https://bugs.webkit.org/show_bug.cgi?id=222711


Reviewed by Alan Bujtas.

Source/WebCore:

Flexbox code was computing negative content sizes for FrameSet children because RenderFrameSet lacked
a implementation of computePreferredLogicalWidths(). Added basic preferred width computation
to RenderBox so that FrameSet and any other potential new RenderBox child could benefit from it.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePreferredLogicalWidths): Added a basic implementation that calls
computePreferredLogicalWidths(minWidth,maxWidth,borderAndPadding) and clears the flag.
* rendering/RenderBox.h:
(WebCore::RenderBox::computePreferredLogicalWidths): Deleted default implementation.

LayoutTests:

* TestExpectations: Unskipped a test that is passing now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBox.cpp
trunk/Source/WebCore/rendering/RenderBox.h




Diff

Modified: trunk/LayoutTests/ChangeLog (276970 => 276971)

--- trunk/LayoutTests/ChangeLog	2021-05-04 18:14:48 UTC (rev 276970)
+++ trunk/LayoutTests/ChangeLog	2021-05-04 18:19:43 UTC (rev 276971)
@@ -1,3 +1,13 @@
+2021-05-04  Sergio Villar Senin  
+
+ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
+https://bugs.webkit.org/show_bug.cgi?id=222711
+
+
+Reviewed by Alan Bujtas.
+
+* TestExpectations: Unskipped a test that is passing now.
+
 2021-05-04  Antoine Quint  
 
 REGRESSION (r260360): animation-wide timing function does not apply to 2-keyframe transform Web Animation


Modified: trunk/LayoutTests/TestExpectations (276970 => 276971)

--- trunk/LayoutTests/TestExpectations	2021-05-04 18:14:48 UTC (rev 276970)
+++ trunk/LayoutTests/TestExpectations	2021-05-04 18:19:43 UTC (rev 276971)
@@ -3946,9 +3946,6 @@
 # Painting order in flexbox
 webkit.org/b/221482 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002.xhtml [ ImageOnlyFailure ]
 
-# Test ASSERTing in Debug.
-webkit.org/b/222711 [ Debug ] imported/w3c/web-platform-tests/css/css-flexbox/frameset-crash.html [ Skip ]
-
 # Newly imported Canvas WPT tests that are failing.
 imported/w3c/web-platform-tests/html/canvas/element/building-paths/canvas_complexshapes_arcto_001.htm [ ImageOnlyFailure Pass ]
 imported/w3c/web-platform-tests/html/canvas/element/drawing-images-to-the-canvas/2d.drawImage.broken.html [ Failure Pass ]


Modified: trunk/Source/WebCore/ChangeLog (276970 => 276971)

--- trunk/Source/WebCore/ChangeLog	2021-05-04 18:14:48 UTC (rev 276970)
+++ trunk/Source/WebCore/ChangeLog	2021-05-04 18:19:43 UTC (rev 276971)
@@ -1,3 +1,21 @@
+2021-05-04  Sergio Villar Senin  
+
+ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
+https://bugs.webkit.org/show_bug.cgi?id=222711
+
+
+Reviewed by Alan Bujtas.
+
+Flexbox code was computing negative content sizes for FrameSet children because RenderFrameSet lacked
+a implementation of computePreferredLogicalWidths(). Added basic preferred width computation
+to RenderBox so that FrameSet and any other potential new RenderBox child could benefit from it.
+
+* rendering/RenderBox.cpp:
+(WebCore::RenderBox::computePreferredLogicalWidths): Added a basic implementation that calls
+computePreferredLogicalWidths(minWidth,maxWidth,borderAndPadding) and clears the flag.
+* rendering/RenderBox.h:
+(WebCore::RenderBox::computePreferredLogicalWidths): Deleted default implementation.
+
 2021-05-04  Antoine Quint  
 
 REGRESSION (r260360): animation-wide timing function does not apply to 2-keyframe transform Web Animation


Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (276970 => 276971)

--- trunk/Source/WebCore/rendering/RenderBox.cpp	2021-05-04 18:14:48 UTC (rev 276970)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2021-05-04 18:19:43 UTC (rev 276971)
@@ -3223,6 +3223,14 @@
 #endif
 }
 
+void RenderBox::computePreferredLogicalWidths()
+{
+ASSERT(preferredLogicalWidthsDirty());
+
+computePreferredLogicalWidths(style().logicalMinWidth(), style().logicalMaxWidth(), borderAndPaddingLogicalWidth());
+setPreferredLogicalWidthsDirty(false);
+}
+
 void RenderBox::computePreferredLogicalWidths(const Length& minWidth, const Length& maxWidth, LayoutUnit borderAndPadding)
 {
 if (shouldComputeLogicalHeightFromAspectRatio()) {


Modified: trunk/Source/WebCore/rendering/RenderBox.h (276970 => 276971)

--- trunk/Source/WebCore/rendering/RenderBox.h	2021-05-04 18:14:48 UTC (rev 276970)
+++ trunk/Source/WebCore/rendering/RenderBox.h	2021-05-04 18:19:43 UTC (rev 

[webkit-changes] [276957] trunk/LayoutTests

2021-05-04 Thread svillar
Title: [276957] trunk/LayoutTests








Revision 276957
Author svil...@igalia.com
Date 2021-05-04 08:02:03 -0700 (Tue, 04 May 2021)


Log Message
Unreviewed, unskipped a test which works fine.

* TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (276956 => 276957)

--- trunk/LayoutTests/ChangeLog	2021-05-04 14:26:57 UTC (rev 276956)
+++ trunk/LayoutTests/ChangeLog	2021-05-04 15:02:03 UTC (rev 276957)
@@ -1,3 +1,9 @@
+2021-05-04  Sergio Villar Senin  
+
+Unreviewed, unskipped a test which works fine.
+
+* TestExpectations:
+
 2021-05-04  Philippe Normand  
 
 Unreviewed, fix-up bug URL after r276955


Modified: trunk/LayoutTests/TestExpectations (276956 => 276957)

--- trunk/LayoutTests/TestExpectations	2021-05-04 14:26:57 UTC (rev 276956)
+++ trunk/LayoutTests/TestExpectations	2021-05-04 15:02:03 UTC (rev 276957)
@@ -3816,7 +3816,6 @@
 
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html [ Failure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html [ ImageOnlyFailure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [276835] trunk

2021-04-30 Thread svillar
Title: [276835] trunk








Revision 276835
Author svil...@igalia.com
Date 2021-04-30 04:46:09 -0700 (Fri, 30 Apr 2021)


Log Message
Nullopt in RenderFlexibleBox::layoutFlexItems in RenderFlexibleBox::layoutBlock via RenderMultiColumnFlow::layout
https://bugs.webkit.org/show_bug.cgi?id=223369

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

Imported a test from WPT covering this issue.

* web-platform-tests/css/css-flexbox/percentage-padding-002-expected.html: Added.
* web-platform-tests/css/css-flexbox/percentage-padding-002.html: Added.
* web-platform-tests/css/css-flexbox/w3c-import.log:

Source/WebCore:

When computing the main axis extent of a flex item being the main axis also the child's inline axis and the
inline size of the child is auto, we can directly use the min/maxPreferredLogicalWidths instead of having
to call computeLogicalWidthInFragmentUsing(). However we cannot use it straigth away without checking
needsPreferredWidthsRecalculation() first, otherwise the cached preferred width might be no longer valid.
The cached preferred width includes both border and padding. If any of those are percentages, and thus
depend on the size of the containing block, we could end up using obsolete values.

This was making us hit an assertion because the content size suggestion was negative. That's because in order
to compute the content size we were substracting the current borderAndPadding() to the value returned by
minPreferredLogicalWidth(). But the current borderAndPadding() might be larger than the one used to compute the
preferred width before (they must be the same to properly extract the content size) so the content size ended
up being negative.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Constness adjustments.
(WebCore::RenderFlexibleBox::resolveFlexibleLengths): Ditto.
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002.html




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (276834 => 276835)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-04-30 07:18:28 UTC (rev 276834)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-04-30 11:46:09 UTC (rev 276835)
@@ -1,3 +1,16 @@
+2021-04-30  Sergio Villar Senin  
+
+Nullopt in RenderFlexibleBox::layoutFlexItems in RenderFlexibleBox::layoutBlock via RenderMultiColumnFlow::layout
+https://bugs.webkit.org/show_bug.cgi?id=223369
+
+Reviewed by Alan Bujtas.
+
+Imported a test from WPT covering this issue.
+
+* web-platform-tests/css/css-flexbox/percentage-padding-002-expected.html: Added.
+* web-platform-tests/css/css-flexbox/percentage-padding-002.html: Added.
+* web-platform-tests/css/css-flexbox/w3c-import.log:
+
 2021-04-29  Sam Weinig  
 
 Add support for CanvasRenderingContext2DSettings


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002-expected.html (0 => 276835)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002-expected.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002-expected.html	2021-04-30 11:46:09 UTC (rev 276835)
@@ -0,0 +1,18 @@
+
+
+div {
+width: 50px;
+height: 50px;
+}
+span {
+display: block;
+border: 5px solid black;
+}
+
+Test passes if there is a white square inside a 10x30 white box.
+
+
+	
+
+
Property changes on: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002-expected.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002.html (0 => 276835)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-padding-002.html	2021-04-30 11:46:09 UTC (rev 276835)
@@ -0,0 +1,21 @@
+
+This test checks that percentage paddings do not lead to flex items with negative sizes.
+
+
+div {
+width: 50px;
+height: 50px;
+}
+span {
+display: inline-flex;
+border: 5px solid black;
+}
+
+Test passes if there is a white square inside a 10x30 white box.
+
+
+	
+
+

[webkit-changes] [276690] trunk/LayoutTests

2021-04-27 Thread svillar
Title: [276690] trunk/LayoutTests








Revision 276690
Author svil...@igalia.com
Date 2021-04-27 21:50:39 -0700 (Tue, 27 Apr 2021)


Log Message
[css-flexbox] Fix expectations of a WPT test that works fine
https://bugs.webkit.org/show_bug.cgi?id=225097

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html:
Fixed the paths of some images that were not properly converted during import.

LayoutTests:

* TestExpectations: Unskipped a test that works fine now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html




Diff

Modified: trunk/LayoutTests/ChangeLog (276689 => 276690)

--- trunk/LayoutTests/ChangeLog	2021-04-28 04:43:38 UTC (rev 276689)
+++ trunk/LayoutTests/ChangeLog	2021-04-28 04:50:39 UTC (rev 276690)
@@ -1,3 +1,12 @@
+2021-04-27  Sergio Villar Senin  
+
+[css-flexbox] Fix expectations of a WPT test that works fine
+https://bugs.webkit.org/show_bug.cgi?id=225097
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: Unskipped a test that works fine now.
+
 2021-04-27  Chris Dumez  
 
 Improve local storage size estimation for quota limitation


Modified: trunk/LayoutTests/TestExpectations (276689 => 276690)

--- trunk/LayoutTests/TestExpectations	2021-04-28 04:43:38 UTC (rev 276689)
+++ trunk/LayoutTests/TestExpectations	2021-04-28 04:50:39 UTC (rev 276690)
@@ -1196,7 +1196,6 @@
 webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-wrap-reverse.html [ ImageOnlyFailure ]
 webkit.org/b/136754 css3/flexbox/csswg/ttwf-reftest-flex-wrap.html [ ImageOnlyFailure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/canvas-dynamic-change-001.html [ Failure ]
-webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly.html [ ImageOnlyFailure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015.html [ ImageOnlyFailure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001.html [ ImageOnlyFailure ]
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/percentage-max-height-002.html [ ImageOnlyFailure ]


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (276689 => 276690)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-04-28 04:43:38 UTC (rev 276689)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-04-28 04:50:39 UTC (rev 276690)
@@ -1,3 +1,13 @@
+2021-04-27  Sergio Villar Senin  
+
+[css-flexbox] Fix expectations of a WPT test that works fine
+https://bugs.webkit.org/show_bug.cgi?id=225097
+
+Reviewed by Manuel Rego Casasnovas.
+
+* web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html:
+Fixed the paths of some images that were not properly converted during import.
+
 2021-04-27  Cameron McCormack  
 
 Associate a picture element with an img only if the img is a direct child.


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html (276689 => 276690)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html	2021-04-28 04:43:38 UTC (rev 276689)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html	2021-04-28 04:50:39 UTC (rev 276690)
@@ -28,7 +28,7 @@
 
-
+
 
 
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [276634] trunk

2021-04-27 Thread svillar
Title: [276634] trunk








Revision 276634
Author svil...@igalia.com
Date 2021-04-27 03:15:02 -0700 (Tue, 27 Apr 2021)


Log Message
[css-flexbox] percent children don't resolve against the flex basis on a fully inflexible item with fixed flex-basis
https://bugs.webkit.org/show_bug.cgi?id=210478

Reviewed by Darin Adler.

Source/WebCore:

Flexbox spec defines some additional cases where sizes could be considered definite despite they are
actually indefinite. One of those cases is whenever we have a fully inflexible item with a definite
flex-basis. In that case we should allow desdendants of flex item to resolve against the post-flexing
size of the flex item which is basically the value of the definite flex-basis. Note that in the majority
of cases those percentages are resolved before flexing the item and not recomputed after that.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::useChildOverridingMainSizeForPercentageResolution): let descendants of
fully inflexible flex items with definite flex-basis to resolve against the post-flexing size. Also added
some documentation because that part of the code is far from obvious for the casual reader.

LayoutTests:

* TestExpectations: Unskipped a couple of tests that are passing now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (276633 => 276634)

--- trunk/LayoutTests/ChangeLog	2021-04-27 10:04:18 UTC (rev 276633)
+++ trunk/LayoutTests/ChangeLog	2021-04-27 10:15:02 UTC (rev 276634)
@@ -1,3 +1,12 @@
+2021-04-21  Sergio Villar Senin  
+
+[css-flexbox] percent children don't resolve against the flex basis on a fully inflexible item with fixed flex-basis
+https://bugs.webkit.org/show_bug.cgi?id=210478
+
+Reviewed by Darin Adler.
+
+* TestExpectations: Unskipped a couple of tests that are passing now.
+
 2021-04-27  Rob Buis  
 
 Check globalObject for null


Modified: trunk/LayoutTests/TestExpectations (276633 => 276634)

--- trunk/LayoutTests/TestExpectations	2021-04-27 10:04:18 UTC (rev 276633)
+++ trunk/LayoutTests/TestExpectations	2021-04-27 10:15:02 UTC (rev 276634)
@@ -3909,11 +3909,9 @@
 webkit.org/b/145176 imported/w3c/web-platform-tests/css/css-flexbox/flexbox_align-items-stretch-3.html [ ImageOnlyFailure ]
 webkit.org/b/210093 imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-002.html [ ImageOnlyFailure ]
 webkit.org/b/210144 imported/w3c/web-platform-tests/css/css-flexbox/anonymous-flex-item-005.html [ ImageOnlyFailure ]
-webkit.org/b/210478 imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-006.html [ ImageOnlyFailure ]
 webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/overflow-area-001.html [ ImageOnlyFailure ]
 webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/overflow-area-002.html [ ImageOnlyFailure ]
 webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/overflow-auto-005.html [ ImageOnlyFailure ]
-webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-007.html [ ImageOnlyFailure ]
 webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-014.html [ ImageOnlyFailure ]
 webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/scrollbars-auto.html [ ImageOnlyFailure ]
 webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/scrollbars.html [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (276633 => 276634)

--- trunk/Source/WebCore/ChangeLog	2021-04-27 10:04:18 UTC (rev 276633)
+++ trunk/Source/WebCore/ChangeLog	2021-04-27 10:15:02 UTC (rev 276634)
@@ -1,3 +1,21 @@
+2021-04-21  Sergio Villar Senin  
+
+[css-flexbox] percent children don't resolve against the flex basis on a fully inflexible item with fixed flex-basis
+https://bugs.webkit.org/show_bug.cgi?id=210478
+
+Reviewed by Darin Adler.
+
+Flexbox spec defines some additional cases where sizes could be considered definite despite they are
+actually indefinite. One of those cases is whenever we have a fully inflexible item with a definite
+flex-basis. In that case we should allow desdendants of flex item to resolve against the post-flexing
+size of the flex item which is basically the value of the definite flex-basis. Note that in the majority
+of cases those percentages are resolved before flexing the item and not recomputed after that.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::useChildOverridingMainSizeForPercentageResolution): let descendants of
+fully inflexible flex items with definite flex-basis to resolve against the post-flexing size. Also added
+some documentation because that part of the code is far from obvious for the casual reader.
+
 2021-04-27  Youenn 

[webkit-changes] [276492] trunk/Source/WebCore

2021-04-23 Thread svillar
Title: [276492] trunk/Source/WebCore








Revision 276492
Author svil...@igalia.com
Date 2021-04-23 02:43:09 -0700 (Fri, 23 Apr 2021)


Log Message
Do not set synchronous scrolling for layers without relevant scrolling scopes
https://bugs.webkit.org/show_bug.cgi?id=221383

Reviewed by Simon Fraser.

Fixed backgrounds could force the layer compositor to set synchronous scrolling because they're slow
to repaint. However that cannot be done if the layer's boxScrollingScope hasn't been previously updated
in RenderLayer::updateLayerPosition.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes): Do not call
setSynchronousScrollingReasons() if there is no scrollingScope.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (276491 => 276492)

--- trunk/Source/WebCore/ChangeLog	2021-04-23 09:23:04 UTC (rev 276491)
+++ trunk/Source/WebCore/ChangeLog	2021-04-23 09:43:09 UTC (rev 276492)
@@ -1,3 +1,18 @@
+2021-04-22  Sergio Villar Senin  
+
+Do not set synchronous scrolling for layers without relevant scrolling scopes
+https://bugs.webkit.org/show_bug.cgi?id=221383
+
+Reviewed by Simon Fraser.
+
+Fixed backgrounds could force the layer compositor to set synchronous scrolling because they're slow
+to repaint. However that cannot be done if the layer's boxScrollingScope hasn't been previously updated
+in RenderLayer::updateLayerPosition.
+
+* rendering/RenderLayerCompositor.cpp:
+(WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes): Do not call
+setSynchronousScrollingReasons() if there is no scrollingScope.
+
 2021-04-23  Philippe Normand  
 
 [LibWebRTC][WPE][GTK] Enable vp9 and NO_MAIN_THREAD_WRAPPING


Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (276491 => 276492)

--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2021-04-23 09:23:04 UTC (rev 276491)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2021-04-23 09:43:09 UTC (rev 276492)
@@ -4948,8 +4948,7 @@
 if (!layer)
 continue;
 
-auto scrollingScope = relevantScrollingScope(renderer, *layer);
-if (scrollingScope != rootScrollingScope) {
+if (auto scrollingScope = relevantScrollingScope(renderer, *layer); scrollingScope && scrollingScope != rootScrollingScope) {
 auto enclosingScrollingNodeID = asyncScrollableContainerNodeID(renderer);
 ASSERT(enclosingScrollingNodeID);
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [276110] trunk/Source/WebCore

2021-04-15 Thread svillar
Title: [276110] trunk/Source/WebCore








Revision 276110
Author svil...@igalia.com
Date 2021-04-15 20:46:46 -0700 (Thu, 15 Apr 2021)


Log Message
Assertion failure in SVGAnimationElement::currentValuesForValuesAnimation
https://bugs.webkit.org/show_bug.cgi?id=222715

Reviewed by Ryosuke Niwa.

Replaced ASSERT_WITH_SECURITY_IMPLICATION by ASSERT. It was added by mistake as part of
r157341 long time ago. There is no security implication because just after the assert
there would be a division by 0 followed by a crash.

* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/svg/SVGAnimationElement.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (276109 => 276110)

--- trunk/Source/WebCore/ChangeLog	2021-04-16 02:46:59 UTC (rev 276109)
+++ trunk/Source/WebCore/ChangeLog	2021-04-16 03:46:46 UTC (rev 276110)
@@ -1,3 +1,17 @@
+2021-04-15  Sergio Villar Senin  
+
+Assertion failure in SVGAnimationElement::currentValuesForValuesAnimation
+https://bugs.webkit.org/show_bug.cgi?id=222715
+
+Reviewed by Ryosuke Niwa.
+
+Replaced ASSERT_WITH_SECURITY_IMPLICATION by ASSERT. It was added by mistake as part of
+r157341 long time ago. There is no security implication because just after the assert
+there would be a division by 0 followed by a crash.
+
+* svg/SVGAnimationElement.cpp:
+(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
+
 2021-04-15  Peng Liu  
 
 [GPUP] WebContent process should not create AVOutputContext instances when media in GPU Process is enabled


Modified: trunk/Source/WebCore/svg/SVGAnimationElement.cpp (276109 => 276110)

--- trunk/Source/WebCore/svg/SVGAnimationElement.cpp	2021-04-16 02:46:59 UTC (rev 276109)
+++ trunk/Source/WebCore/svg/SVGAnimationElement.cpp	2021-04-16 03:46:46 UTC (rev 276110)
@@ -505,7 +505,7 @@
 --index;
 from = m_values[index];
 to = m_values[index + 1];
-ASSERT_WITH_SECURITY_IMPLICATION(toPercent > fromPercent);
+ASSERT(toPercent > fromPercent);
 effectivePercent = (percent - fromPercent) / (toPercent - fromPercent);
 
 if (calcMode == CalcMode::Spline) {






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [276015] trunk/Source/WebCore

2021-04-15 Thread svillar
Title: [276015] trunk/Source/WebCore








Revision 276015
Author svil...@igalia.com
Date 2021-04-15 03:59:18 -0700 (Thu, 15 Apr 2021)


Log Message
Empty value is added in codePointsFromString in CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts
https://bugs.webkit.org/show_bug.cgi?id=223857

Reviewed by Darin Adler.

Use UnsignedWithZeroKeyHashTraits in codePointsFromString() to avoid it.

* css/CSSFontFaceSet.cpp:
(WebCore::codePointsFromString):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/css/CSSFontFaceSet.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (276014 => 276015)

--- trunk/Source/WebCore/ChangeLog	2021-04-15 10:07:42 UTC (rev 276014)
+++ trunk/Source/WebCore/ChangeLog	2021-04-15 10:59:18 UTC (rev 276015)
@@ -1,3 +1,15 @@
+2021-04-09  Sergio Villar Senin  
+
+Empty value is added in codePointsFromString in CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts
+https://bugs.webkit.org/show_bug.cgi?id=223857
+
+Reviewed by Darin Adler.
+
+Use UnsignedWithZeroKeyHashTraits in codePointsFromString() to avoid it.
+
+* css/CSSFontFaceSet.cpp:
+(WebCore::codePointsFromString):
+
 2021-04-15  Zalan Bujtas  
 
 [RenderTreeBuilder] Cleanup the inline tree when moving subtrees


Modified: trunk/Source/WebCore/css/CSSFontFaceSet.cpp (276014 => 276015)

--- trunk/Source/WebCore/css/CSSFontFaceSet.cpp	2021-04-15 10:07:42 UTC (rev 276014)
+++ trunk/Source/WebCore/css/CSSFontFaceSet.cpp	2021-04-15 10:59:18 UTC (rev 276015)
@@ -330,9 +330,10 @@
 return {{ weightSelectionValue, stretchSelectionValue, styleSelectionValue }};
 }
 
-static HashSet codePointsFromString(StringView stringView)
+using CodePointsMap = HashSet, WTF::UnsignedWithZeroKeyHashTraits>;
+static CodePointsMap codePointsFromString(StringView stringView)
 {
-HashSet result;
+CodePointsMap result;
 auto graphemeClusters = stringView.graphemeClusters();
 for (auto cluster : graphemeClusters) {
 ASSERT(cluster.length() > 0);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [275873] trunk

2021-04-13 Thread svillar
Title: [275873] trunk








Revision 275873
Author svil...@igalia.com
Date 2021-04-13 02:14:23 -0700 (Tue, 13 Apr 2021)


Log Message
[css-flexbox] CDC COVID Vaccine Tracker: Safari garbles data table
https://bugs.webkit.org/show_bug.cgi?id=222581

Reviewed by Zalan Bujtas.

PerformanceTests:

* Layout/nested-flexboxes-percentage-flex-basis.html: Added.

Source/WebCore:

With nested flexboxes in which the flex-basis is a percentage the current code that stretches the item forces a relayout
of the children because it thinks it has percentage height descendants. That happens because we call
computePercentageLogicalHeights() with a mock percentage length to check whether a size is definite and that call performs
the addPercentageHeightDescendants() call. We should avoid calling the latter in those cases as we're just trying to
figure out whether we can compute the flex-basis used value or not.

Adding a new parameter to the aforementioned method so that the percentage height descendants map could be left untouched
in those cases where we just want to test size definiteness.

Apart from making the implementation more correct this brings some performance improvements for the cases described in the
first paragraph as it can be seen in the provided performance test (24.5% of improvement).

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight const):
* rendering/RenderBox.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::canComputePercentageFlexBasis const):
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite const):
(WebCore::RenderFlexibleBox::useChildOverridingMainSizeForPercentageResolution):
* rendering/RenderFlexibleBox.h:

LayoutTests:

* TestExpectations: Unskipped a WPT test which is now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/PerformanceTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBox.cpp
trunk/Source/WebCore/rendering/RenderBox.h
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h


Added Paths

trunk/PerformanceTests/Layout/nested-flexboxes-percentage-flex-basis.html




Diff

Modified: trunk/LayoutTests/ChangeLog (275872 => 275873)

--- trunk/LayoutTests/ChangeLog	2021-04-13 09:05:44 UTC (rev 275872)
+++ trunk/LayoutTests/ChangeLog	2021-04-13 09:14:23 UTC (rev 275873)
@@ -1,3 +1,12 @@
+2021-04-12  Sergio Villar Senin  
+
+[css-flexbox] CDC COVID Vaccine Tracker: Safari garbles data table
+https://bugs.webkit.org/show_bug.cgi?id=222581
+
+Reviewed by Zalan Bujtas.
+
+* TestExpectations: Unskipped a WPT test which is now passing.
+
 2021-04-13  Antoine Quint  
 
 calc() simplification for a multiplication should apply the multiplication to each value of an addition


Modified: trunk/LayoutTests/TestExpectations (275872 => 275873)

--- trunk/LayoutTests/TestExpectations	2021-04-13 09:05:44 UTC (rev 275872)
+++ trunk/LayoutTests/TestExpectations	2021-04-13 09:14:23 UTC (rev 275873)
@@ -4018,9 +4018,6 @@
 webkit.org/b/221479 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a.html [ ImageOnlyFailure ]
 webkit.org/b/221479 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a.html [ ImageOnlyFailure ]
 
-# Percentages in flex-basis in nested flexboxes.
-webkit.org/b/222581 imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-011.html [ ImageOnlyFailure ]
-
 # break request in flexbox.
 webkit.org/b/221480 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001a.html [ ImageOnlyFailure ]
 webkit.org/b/221480 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001b.html [ ImageOnlyFailure ]


Modified: trunk/PerformanceTests/ChangeLog (275872 => 275873)

--- trunk/PerformanceTests/ChangeLog	2021-04-13 09:05:44 UTC (rev 275872)
+++ trunk/PerformanceTests/ChangeLog	2021-04-13 09:14:23 UTC (rev 275873)
@@ -1,3 +1,12 @@
+2021-04-12  Sergio Villar Senin  
+
+[css-flexbox] CDC COVID Vaccine Tracker: Safari garbles data table
+https://bugs.webkit.org/show_bug.cgi?id=222581
+
+Reviewed by Zalan Bujtas.
+
+* Layout/nested-flexboxes-percentage-flex-basis.html: Added.
+
 2021-03-17  Myles C. Maxfield  
 
 Laying out complex text in columns is O(n^2)


Added: trunk/PerformanceTests/Layout/nested-flexboxes-percentage-flex-basis.html (0 => 275873)

--- trunk/PerformanceTests/Layout/nested-flexboxes-percentage-flex-basis.html	(rev 0)
+++ trunk/PerformanceTests/Layout/nested-flexboxes-percentage-flex-basis.html	2021-04-13 09:14:23 UTC (rev 275873)
@@ -0,0 +1,46 @@
+
+
+
+.flex {
+display: flex;
+flex: 1 0 100%;
+}
+.col { flex-direction: column; }
+.row { flex-direction: row; }
+
+
+function startTest() {
+document.body.offsetHeight;
+
+var index = 0;
+PerfTestRunner.measureRunsPerSecond({run: function() {
+ 

[webkit-changes] [275495] trunk/Source/WebCore

2021-04-06 Thread svillar
Title: [275495] trunk/Source/WebCore








Revision 275495
Author svil...@igalia.com
Date 2021-04-06 01:39:45 -0700 (Tue, 06 Apr 2021)


Log Message
[css-grid] Initialize auto-repeat data in RenderStyle in applyInitialGridTemplate{Columns|Rows}
https://bugs.webkit.org/show_bug.cgi?id=222852

Reviewed by Antti Koivisto.

We should initialize the auto repeat data (like auto repeat tracks or the insertion point) whenever
applyInitialGridTemplateXXX is called. That method is normally called using different RenderStyle's
but under some circumstances it might be the same. For those cases we wouldn't like to end up with
obsolete data from a previous style resolution.

The same applies also to the applyInheritGridTemplateXXX calls. We're also removing a duplicate call
to setGridAutoRepeat{Row|Column}sInsertionPoint() that is not needed at all.

In order to have a single place with all the style properties affecting columns and rows, all the set
calls were moved to a macro that is used by all the apply{Initial|Inherit}GridTemplate{Columns|Rows}
methods. This would allow us to prevent eventual out-of-sync issues like this one.

* style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateRows):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/style/StyleBuilderCustom.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (275494 => 275495)

--- trunk/Source/WebCore/ChangeLog	2021-04-06 08:37:33 UTC (rev 275494)
+++ trunk/Source/WebCore/ChangeLog	2021-04-06 08:39:45 UTC (rev 275495)
@@ -1,3 +1,28 @@
+2021-03-24  Sergio Villar Senin  
+
+[css-grid] Initialize auto-repeat data in RenderStyle in applyInitialGridTemplate{Columns|Rows}
+https://bugs.webkit.org/show_bug.cgi?id=222852
+
+Reviewed by Antti Koivisto.
+
+We should initialize the auto repeat data (like auto repeat tracks or the insertion point) whenever
+applyInitialGridTemplateXXX is called. That method is normally called using different RenderStyle's
+but under some circumstances it might be the same. For those cases we wouldn't like to end up with
+obsolete data from a previous style resolution.
+
+The same applies also to the applyInheritGridTemplateXXX calls. We're also removing a duplicate call
+to setGridAutoRepeat{Row|Column}sInsertionPoint() that is not needed at all.
+
+In order to have a single place with all the style properties affecting columns and rows, all the set
+calls were moved to a macro that is used by all the apply{Initial|Inherit}GridTemplate{Columns|Rows}
+methods. This would allow us to prevent eventual out-of-sync issues like this one.
+
+* style/StyleBuilderCustom.h:
+(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
+(WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns):
+(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
+(WebCore::Style::BuilderCustom::applyInheritGridTemplateRows):
+
 2021-04-06  Rob Buis  
 
 Move synthesizedBaselineFromBorderBox to RenderBox


Modified: trunk/Source/WebCore/style/StyleBuilderCustom.h (275494 => 275495)

--- trunk/Source/WebCore/style/StyleBuilderCustom.h	2021-04-06 08:37:33 UTC (rev 275494)
+++ trunk/Source/WebCore/style/StyleBuilderCustom.h	2021-04-06 08:39:45 UTC (rev 275495)
@@ -1894,31 +1894,38 @@
 builderState.style().setNamedGridAreaColumnCount(gridTemplateAreasValue.columnCount());
 }
 
+#define SET_TRACKS_DATA_INTERNAL(tracksData, style, parentStyle, TrackType) \
+ASSERT(tracksData || parentStyle); \
+style.setGrid##TrackType##s(tracksData ? tracksData->m_trackSizes : parentStyle->grid##TrackType##s()); \
+style.setNamedGrid##TrackType##Lines(tracksData ? tracksData->m_namedGridLines : parentStyle->namedGrid##TrackType##Lines()); \
+style.setOrderedNamedGrid##TrackType##Lines(tracksData ? tracksData->m_orderedNamedGridLines : parentStyle->orderedNamedGrid##TrackType##Lines()); \
+style.setGridAutoRepeat##TrackType##s(tracksData ? tracksData->m_autoRepeatTrackSizes : parentStyle->gridAutoRepeat##TrackType##s()); \
+style.setGridAutoRepeat##TrackType##sInsertionPoint(tracksData ? tracksData->m_autoRepeatInsertionPoint : parentStyle->gridAutoRepeat##TrackType##sInsertionPoint()); \
+style.setAutoRepeatNamedGrid##TrackType##Lines(tracksData ? tracksData->m_autoRepeatNamedGridLines : parentStyle->autoRepeatNamedGrid##TrackType##Lines()); \
+style.setAutoRepeatOrderedNamedGrid##TrackType##Lines(tracksData ? tracksData->m_autoRepeatOrderedNamedGridLines : parentStyle->autoRepeatOrderedNamedGrid##TrackType##Lines()); \
+style.setGridAutoRepeat##TrackType##sType(tracksData ? tracksData->m_autoRepeatType : 

[webkit-changes] [275416] trunk/LayoutTests

2021-04-02 Thread svillar
Title: [275416] trunk/LayoutTests








Revision 275416
Author svil...@igalia.com
Date 2021-04-02 03:59:39 -0700 (Fri, 02 Apr 2021)


Log Message
[css-flexbox] align-content issues
https://bugs.webkit.org/show_bug.cgi?id=221468

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/align-content_center-expected.html: Fixed stylesheet link.
* web-platform-tests/css/css-flexbox/align-content_flex-end-expected.html: Ditto.
* web-platform-tests/css/css-flexbox/align-content_space-around-expected.html: Ditto.
* web-platform-tests/css/css-flexbox/align-content_stretch-expected.html: Ditto.

LayoutTests:

Fix the relative path to a stylesheet in 4 expected results. The tests were working as expected
but the expected results were wrong without those CSS rules.

* TestExpectations: Unskip 4 tests that should be passing now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content_center-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content_flex-end-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content_space-around-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content_stretch-expected.html




Diff

Modified: trunk/LayoutTests/ChangeLog (275415 => 275416)

--- trunk/LayoutTests/ChangeLog	2021-04-02 10:44:16 UTC (rev 275415)
+++ trunk/LayoutTests/ChangeLog	2021-04-02 10:59:39 UTC (rev 275416)
@@ -1,3 +1,15 @@
+2021-04-02  Sergio Villar Senin  
+
+[css-flexbox] align-content issues
+https://bugs.webkit.org/show_bug.cgi?id=221468
+
+Reviewed by Ryosuke Niwa.
+
+Fix the relative path to a stylesheet in 4 expected results. The tests were working as expected
+but the expected results were wrong without those CSS rules.
+
+* TestExpectations: Unskip 4 tests that should be passing now.
+
 2021-04-02  Philippe Normand  
 
 REGRESSION(r268176): [GStreamer] media/video-orientation-canvas.html fails


Modified: trunk/LayoutTests/TestExpectations (275415 => 275416)

--- trunk/LayoutTests/TestExpectations	2021-04-02 10:44:16 UTC (rev 275415)
+++ trunk/LayoutTests/TestExpectations	2021-04-02 10:59:39 UTC (rev 275416)
@@ -4003,11 +4003,6 @@
 webkit.org/b/221477 imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-start.html [ ImageOnlyFailure ]
 webkit.org/b/221477 imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-start-rtl.html [ ImageOnlyFailure ]
 
-# align-content in flexbox.
-webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/align-content_center.html [ ImageOnlyFailure ]
-webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/align-content_flex-end.html [ ImageOnlyFailure ]
-webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/align-content_space-around.html [ ImageOnlyFailure ]
-webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/align-content_stretch.html [ ImageOnlyFailure ]
 
 webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002.xhtml [ ImageOnlyFailure ]
 webkit.org/b/221468 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002.xhtml [ ImageOnlyFailure ]


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (275415 => 275416)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-04-02 10:44:16 UTC (rev 275415)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-04-02 10:59:39 UTC (rev 275416)
@@ -1,3 +1,15 @@
+2021-04-02  Sergio Villar Senin  
+
+[css-flexbox] align-content issues
+https://bugs.webkit.org/show_bug.cgi?id=221468
+
+Reviewed by Ryosuke Niwa.
+
+* web-platform-tests/css/css-flexbox/align-content_center-expected.html: Fixed stylesheet link.
+* web-platform-tests/css/css-flexbox/align-content_flex-end-expected.html: Ditto.
+* web-platform-tests/css/css-flexbox/align-content_space-around-expected.html: Ditto.
+* web-platform-tests/css/css-flexbox/align-content_stretch-expected.html: Ditto.
+
 2021-04-01  Rob Buis  
 
 aspect-ratio not recomputed on hover


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content_center-expected.html (275415 => 275416)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content_center-expected.html	2021-04-02 10:44:16 UTC (rev 275415)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/align-content_center-expected.html	2021-04-02 10:59:39 UTC (rev 275416)
@@ -2,7 +2,7 @@
 
 
 CSS Flexible Box Test: align-content_center
-+ 

[webkit-changes] [274721] trunk/LayoutTests

2021-03-19 Thread svillar
Title: [274721] trunk/LayoutTests








Revision 274721
Author svil...@igalia.com
Date 2021-03-19 08:41:02 -0700 (Fri, 19 Mar 2021)


Log Message
[css-flexbox] Another WPT import
https://bugs.webkit.org/show_bug.cgi?id=223438

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/flex-basis-011-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-basis-011.html: Added.
* web-platform-tests/css/css-flexbox/flexbox_justifycontent-end-expected.html: Added.
* web-platform-tests/css/css-flexbox/flexbox_justifycontent-end-rtl-expected.html: Added.
* web-platform-tests/css/css-flexbox/flexbox_justifycontent-end-rtl.html: Added.
* web-platform-tests/css/css-flexbox/flexbox_justifycontent-end.html: Added.
* web-platform-tests/css/css-flexbox/flexbox_justifycontent-start-expected.html: Added.
* web-platform-tests/css/css-flexbox/flexbox_justifycontent-start-rtl-expected.html: Added.
* web-platform-tests/css/css-flexbox/flexbox_justifycontent-start-rtl.html: Added.
* web-platform-tests/css/css-flexbox/flexbox_justifycontent-start.html: Added.
* web-platform-tests/css/css-flexbox/select-element-zero-height-001-expected.html:
* web-platform-tests/css/css-flexbox/select-element-zero-height-001.html:
* web-platform-tests/css/css-flexbox/select-element-zero-height-002-expected.html:
* web-platform-tests/css/css-flexbox/select-element-zero-height-002.html:
* web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

Import latests WPT's css-flexbox tests.

Apart from that we're removing an invalid pixel expectations for GTK.

* TestExpectations: Skipped some of the imported tests as they're failing right now. Also unskipped the
select-element-zero-height-001.html test which should be working now.
* platform/gtk/css3/flexbox/flex-order-expected.png: Removed.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-001-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-001.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-002-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-002.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-011-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-basis-011.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-end-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-end-rtl-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-end-rtl.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-end.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-start-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-start-rtl-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-start-rtl.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_justifycontent-start.html


Removed Paths

trunk/LayoutTests/platform/gtk/css3/flexbox/flex-order-expected.png




Diff

Modified: trunk/LayoutTests/ChangeLog (274720 => 274721)

--- trunk/LayoutTests/ChangeLog	2021-03-19 15:23:38 UTC (rev 274720)
+++ trunk/LayoutTests/ChangeLog	2021-03-19 15:41:02 UTC (rev 274721)
@@ -1,3 +1,18 @@
+2021-03-19  Sergio Villar Senin  
+
+[css-flexbox] Another WPT import
+https://bugs.webkit.org/show_bug.cgi?id=223438
+
+Reviewed by Manuel Rego Casasnovas.
+
+Import latests WPT's css-flexbox tests.
+
+Apart from that we're removing an invalid pixel expectations for GTK.
+
+* TestExpectations: Skipped some of the imported tests as they're failing right now. Also unskipped the
+select-element-zero-height-001.html test which should be working now.
+* platform/gtk/css3/flexbox/flex-order-expected.png: Removed.
+
 2021-03-19  Kimmo Kinnunen  
 
 Add WebGL 2.0.1 test drivers and test expectations to the repository


Modified: trunk/LayoutTests/TestExpectations (274720 => 274721)

--- trunk/LayoutTests/TestExpectations	2021-03-19 15:23:38 UTC (rev 274720)
+++ trunk/LayoutTests/TestExpectations	2021-03-19 15:41:02 UTC (rev 274721)
@@ -3931,7 +3931,6 @@
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html [ ImageOnlyFailure ]
 
 webkit.org/b/145176 imported/w3c/web-platform-tests/css/css-flexbox/flexbox_align-items-stretch-3.html [ ImageOnlyFailure ]

[webkit-changes] [274708] trunk/Source/WebCore

2021-03-19 Thread svillar
Title: [274708] trunk/Source/WebCore








Revision 274708
Author svil...@igalia.com
Date 2021-03-19 02:14:52 -0700 (Fri, 19 Mar 2021)


Log Message
[css-flex] Make {main|cross}SizeForPercentageResolution() return booleans instead of actual sizes
https://bugs.webkit.org/show_bug.cgi?id=223377

Reviewed by Manuel Rego Casasnovas.

These two methods were only called by childLogicalHeightForPercentageResolution() and they either returned
WTF::nullopt or the overridingContentLogicalHeight(). We could simplify a bit the code by returning a boolean
which means whether the overriding content logical height should be used to resolve a percentage or not. Apart
from changing the return value we're also improving the naming so it becomes obvious that we are dealing with
flex items and not the flex container.

We're also removing some comments in those methods that were not really accurate.

No new tests as there is no change in functionality.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::useChildOverridingCrossSizeForPercentageResolution): Renamed from crossSizeForPercentageResolution.
(WebCore::RenderFlexibleBox::useChildOverridingMainSizeForPercentageResolution): Renamed from mainSizeForPercentageResolution.
(WebCore::RenderFlexibleBox::useChildOverridingLogicalHeightForPercentageResolution): Renamed from childLogicalHeightForPercentageResolution.
(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution): Deleted.
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution): Deleted.
(WebCore::RenderFlexibleBox::childLogicalHeightForPercentageResolution): Deleted.
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBlock.cpp
trunk/Source/WebCore/rendering/RenderBox.cpp
trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (274707 => 274708)

--- trunk/Source/WebCore/ChangeLog	2021-03-19 09:06:52 UTC (rev 274707)
+++ trunk/Source/WebCore/ChangeLog	2021-03-19 09:14:52 UTC (rev 274708)
@@ -1,3 +1,36 @@
+2021-03-17  Sergio Villar Senin  
+
+[css-flex] Make {main|cross}SizeForPercentageResolution() return booleans instead of actual sizes
+https://bugs.webkit.org/show_bug.cgi?id=223377
+
+Reviewed by Manuel Rego Casasnovas.
+
+These two methods were only called by childLogicalHeightForPercentageResolution() and they either returned
+WTF::nullopt or the overridingContentLogicalHeight(). We could simplify a bit the code by returning a boolean
+which means whether the overriding content logical height should be used to resolve a percentage or not. Apart
+from changing the return value we're also improving the naming so it becomes obvious that we are dealing with
+flex items and not the flex container.
+
+We're also removing some comments in those methods that were not really accurate.
+
+No new tests as there is no change in functionality.
+
+* rendering/RenderBlock.cpp:
+(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
+* rendering/RenderBox.cpp:
+(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):
+(WebCore::RenderBox::availableLogicalHeightUsing const):
+* rendering/RenderBoxModelObject.cpp:
+(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::useChildOverridingCrossSizeForPercentageResolution): Renamed from crossSizeForPercentageResolution.
+(WebCore::RenderFlexibleBox::useChildOverridingMainSizeForPercentageResolution): Renamed from mainSizeForPercentageResolution.
+(WebCore::RenderFlexibleBox::useChildOverridingLogicalHeightForPercentageResolution): Renamed from childLogicalHeightForPercentageResolution.
+(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution): Deleted.
+(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution): Deleted.
+(WebCore::RenderFlexibleBox::childLogicalHeightForPercentageResolution): Deleted.
+* rendering/RenderFlexibleBox.h:
+
 2021-03-19  Diego Pino Garcia  
 
 Unreviewed, fix WPE debug build after r274695


Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (274707 => 274708)

--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2021-03-19 09:06:52 UTC (rev 274707)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	

[webkit-changes] [274630] trunk/Source/WebCore

2021-03-18 Thread svillar
Title: [274630] trunk/Source/WebCore








Revision 274630
Author svil...@igalia.com
Date 2021-03-18 03:10:14 -0700 (Thu, 18 Mar 2021)


Log Message
Invalidate RenderTreePosition's next sibling with display:contents
https://bugs.webkit.org/show_bug.cgi?id=218578

Reviewed by Antti Koivisto.

When inserting elements in the tree from JS it might happen that the renderTreePosition() in the RenderTreeUpdater
caches a nextSibling() value which is only temporarily correct because we sequentially process the descendants of a
given root node in RenderTreeUpdater::updateRenderTree(). One of those potentially incorrect scenarios is when
using display:contents. We can detect those cases because we would leave a parent element in RenderTreeUpdater::popParent()
without changing renderingParent() and so without changing renderTreePosition(). Once we are in that situation we
must invalidate the cached position so the next sibling is recomputed.

* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::popParent): Invalidate the render tree position's next sibling if the parent element is not
the renderingParent().

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (274629 => 274630)

--- trunk/Source/WebCore/ChangeLog	2021-03-18 09:49:36 UTC (rev 274629)
+++ trunk/Source/WebCore/ChangeLog	2021-03-18 10:10:14 UTC (rev 274630)
@@ -1,3 +1,21 @@
+2021-02-26  Sergio Villar Senin  
+
+Invalidate RenderTreePosition's next sibling with display:contents
+https://bugs.webkit.org/show_bug.cgi?id=218578
+
+Reviewed by Antti Koivisto.
+
+When inserting elements in the tree from JS it might happen that the renderTreePosition() in the RenderTreeUpdater
+caches a nextSibling() value which is only temporarily correct because we sequentially process the descendants of a
+given root node in RenderTreeUpdater::updateRenderTree(). One of those potentially incorrect scenarios is when
+using display:contents. We can detect those cases because we would leave a parent element in RenderTreeUpdater::popParent()
+without changing renderingParent() and so without changing renderTreePosition(). Once we are in that situation we
+must invalidate the cached position so the next sibling is recomputed.
+
+* rendering/updating/RenderTreeUpdater.cpp:
+(WebCore::RenderTreeUpdater::popParent): Invalidate the render tree position's next sibling if the parent element is not
+the renderingParent().
+
 2021-03-18  Carlos Garcia Campos  
 
 Pagination mode: Increase the amount of recursions allowed by RenderTable::layout()


Modified: trunk/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp (274629 => 274630)

--- trunk/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp	2021-03-18 09:49:36 UTC (rev 274629)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp	2021-03-18 10:10:14 UTC (rev 274630)
@@ -237,6 +237,9 @@
 if (parent.element)
 updateAfterDescendants(*parent.element, parent.updates);
 
+if ( != ())
+renderTreePosition().invalidateNextSibling();
+
 m_parentStack.removeLast();
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [274411] trunk

2021-03-15 Thread svillar
Title: [274411] trunk








Revision 274411
Author svil...@igalia.com
Date 2021-03-15 04:27:16 -0700 (Mon, 15 Mar 2021)


Log Message
Do not shrink radio buttons bellow its size
https://bugs.webkit.org/show_bug.cgi?id=215575

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt: Replaced FAIL by PASS expectations.

Source/WebCore:

A radio button used as a flex item would be invisible by default because it'll compute is
min-size to 0. That's why we should not let them shrink below their size (width/height).

* platform/Theme.cpp:
(WebCore::Theme::minimumControlSize const): Do not let Radio buttons shrink bellow their size.
* platform/Theme.h: make minimumControlSize() protected. Add a new non-virtual method with the same parameter
plus another one (the minimum size under which we cannot shrink) which calls the virtual method.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle): Pass the {style.width(),style.height()} as the minimum size under which
we should not shrink the control.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/Theme.cpp
trunk/Source/WebCore/platform/Theme.h
trunk/Source/WebCore/rendering/RenderTheme.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (274410 => 274411)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-03-15 11:15:39 UTC (rev 274410)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-03-15 11:27:16 UTC (rev 274411)
@@ -1,3 +1,12 @@
+2021-03-10  Sergio Villar Senin  
+
+Do not shrink radio buttons bellow its size
+https://bugs.webkit.org/show_bug.cgi?id=215575
+
+Reviewed by Darin Adler.
+
+* web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt: Replaced FAIL by PASS expectations.
+
 2021-03-14  Sam Weinig  
 
 Match other browsers by interpolating colors in floating point space rather than uint8_t space


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt (274410 => 274411)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt	2021-03-15 11:15:39 UTC (rev 274410)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt	2021-03-15 11:27:16 UTC (rev 274411)
@@ -4,5 +4,5 @@
 Text
 Text
 
-FAIL two radio button widths are identical assert_equals: width should be equal expected 0 but got 12
+PASS two radio button widths are identical
 


Modified: trunk/Source/WebCore/ChangeLog (274410 => 274411)

--- trunk/Source/WebCore/ChangeLog	2021-03-15 11:15:39 UTC (rev 274410)
+++ trunk/Source/WebCore/ChangeLog	2021-03-15 11:27:16 UTC (rev 274411)
@@ -1,3 +1,21 @@
+2021-03-10  Sergio Villar Senin  
+
+Do not shrink radio buttons bellow its size
+https://bugs.webkit.org/show_bug.cgi?id=215575
+
+Reviewed by Darin Adler.
+
+A radio button used as a flex item would be invisible by default because it'll compute is
+min-size to 0. That's why we should not let them shrink below their size (width/height).
+
+* platform/Theme.cpp:
+(WebCore::Theme::minimumControlSize const): Do not let Radio buttons shrink bellow their size.
+* platform/Theme.h: make minimumControlSize() protected. Add a new non-virtual method with the same parameter
+plus another one (the minimum size under which we cannot shrink) which calls the virtual method.
+* rendering/RenderTheme.cpp:
+(WebCore::RenderTheme::adjustStyle): Pass the {style.width(),style.height()} as the minimum size under which
+we should not shrink the control.
+
 2021-03-15  Kimmo Kinnunen  
 
 REGRESSION(r270185) [GTK] Some webgl failures after multivalue setter refactor


Modified: trunk/Source/WebCore/platform/Theme.cpp (274410 => 274411)

--- trunk/Source/WebCore/platform/Theme.cpp	2021-03-15 11:15:39 UTC (rev 274410)
+++ trunk/Source/WebCore/platform/Theme.cpp	2021-03-15 11:27:16 UTC (rev 274411)
@@ -48,6 +48,18 @@
 return zoomedSize;
 }
 
+LengthSize Theme::minimumControlSize(ControlPart part, const FontCascade& fontCascade, const LengthSize& zoomedSize, const LengthSize& nonShrinkableZoomedSize, float zoom) const
+{
+auto minSize = minimumControlSize(part, fontCascade, zoomedSize, zoom);
+if (part == ControlPart::RadioPart) {
+if (zoomedSize.width.isIntrinsicOrAuto())
+minSize.width = nonShrinkableZoomedSize.width;
+if (zoomedSize.height.isIntrinsicOrAuto())
+minSize.height = nonShrinkableZoomedSize.height;
+}
+return minSize;
+}
+
 LengthSize Theme::minimumControlSize(ControlPart, const FontCascade&, const LengthSize&, float) const
 {
 return { { 0, LengthType::Fixed }, { 0, LengthType::Fixed } };



[webkit-changes] [273958] trunk

2021-03-05 Thread svillar
Title: [273958] trunk








Revision 273958
Author svil...@igalia.com
Date 2021-03-05 02:54:42 -0800 (Fri, 05 Mar 2021)


Log Message
[css-flexbox] Fix mainAxisLengthIsDefinite for orthogonal items with percentage sizes
https://bugs.webkit.org/show_bug.cgi?id=222684

Reviewed by Javier Fernandez.

Source/WebCore:

r260055 fixed a crash in flexbox code by not caching the definiteness of the logical height of the flexbox
container in case of having orthogonal items because in that case, the logical heights of the flex container
and the flex item are not in the same axis. That made a lot of sense, however we should still let the method
return whether or not the child main axis is definite instead of unconditionally return false.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite const):

LayoutTests:

* TestExpectations: Unskipped flexbox-basic-canvas-vert-001v.xhtml which is now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (273957 => 273958)

--- trunk/LayoutTests/ChangeLog	2021-03-05 10:50:10 UTC (rev 273957)
+++ trunk/LayoutTests/ChangeLog	2021-03-05 10:54:42 UTC (rev 273958)
@@ -1,3 +1,12 @@
+2021-03-03  Sergio Villar Senin  
+
+[css-flexbox] Fix mainAxisLengthIsDefinite for orthogonal items with percentage sizes
+https://bugs.webkit.org/show_bug.cgi?id=222684
+
+Reviewed by Javier Fernandez.
+
+* TestExpectations: Unskipped flexbox-basic-canvas-vert-001v.xhtml which is now passing.
+
 2021-03-05  Imanol Fernandez  
 
 Implement WebXRBoundedReferenceSpace bounds geometry


Modified: trunk/LayoutTests/TestExpectations (273957 => 273958)

--- trunk/LayoutTests/TestExpectations	2021-03-05 10:50:10 UTC (rev 273957)
+++ trunk/LayoutTests/TestExpectations	2021-03-05 10:54:42 UTC (rev 273958)
@@ -4063,9 +4063,6 @@
 # Painting order in flexbox
 webkit.org/b/221482 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002.xhtml [ ImageOnlyFailure ]
 
-# Misc elements as flex items.
-webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml [ ImageOnlyFailure ]
-
 # Test ASSERTing in Debug.
 webkit.org/b/222711 [ Debug ] imported/w3c/web-platform-tests/css/css-flexbox/frameset-crash.html [ Skip ]
 


Modified: trunk/Source/WebCore/ChangeLog (273957 => 273958)

--- trunk/Source/WebCore/ChangeLog	2021-03-05 10:50:10 UTC (rev 273957)
+++ trunk/Source/WebCore/ChangeLog	2021-03-05 10:54:42 UTC (rev 273958)
@@ -1,3 +1,18 @@
+2021-03-03  Sergio Villar Senin  
+
+[css-flexbox] Fix mainAxisLengthIsDefinite for orthogonal items with percentage sizes
+https://bugs.webkit.org/show_bug.cgi?id=222684
+
+Reviewed by Javier Fernandez.
+
+r260055 fixed a crash in flexbox code by not caching the definiteness of the logical height of the flexbox
+container in case of having orthogonal items because in that case, the logical heights of the flex container
+and the flex item are not in the same axis. That made a lot of sense, however we should still let the method
+return whether or not the child main axis is definite instead of unconditionally return false.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::childMainSizeIsDefinite const):
+
 2021-03-05  Imanol Fernandez  
 
 Implement WebXRBoundedReferenceSpace bounds geometry


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (273957 => 273958)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-03-05 10:50:10 UTC (rev 273957)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-03-05 10:54:42 UTC (rev 273958)
@@ -849,16 +849,13 @@
 return true;
 if (m_hasDefiniteHeight == SizeDefiniteness::Indefinite)
 return false;
-// Do not cache the definite height state when the child is perpendicular.
-// The height of a perpendicular child is resolved against the containing block's width which is not the main axis.
-if (child.isHorizontalWritingMode() != isHorizontalWritingMode())
-return false;
-bool definite = child.computePercentageLogicalHeight(flexBasis) != WTF::nullopt;
-if (m_inLayout) {
-// We can reach this code even while we're not laying ourselves out, such
-// as from mainSizeForPercentageResolution.
+bool definite = child.computePercentageLogicalHeight(flexBasis).hasValue();
+// Do not cache the definite height state with orthogonal children as in that case the logical height
+// of the child is not in the same axis as the logical height of the flex container. Also do not cache it
+// outside the layout process (we can reach this code as from mainSizeForPercentageResolution()).
+if 

[webkit-changes] [273955] trunk

2021-03-05 Thread svillar
Title: [273955] trunk








Revision 273955
Author svil...@igalia.com
Date 2021-03-05 02:14:57 -0800 (Fri, 05 Mar 2021)


Log Message
WPT test css/css-flexbox/flex-minimum-height-flex-items-023.html fails
https://bugs.webkit.org/show_bug.cgi?id=214292

Reviewed by Javier Fernandez.

Source/WebCore:

CSS flex specs define how to compute the main axis automatic minimum size of a flex item in order to
provide a more reasonable minimum size (as grid does). So far we've considered "automatic minimum size"
as either min-{width|height}:auto. However the css-sizing-3 specs mention that for the block size
either min-content, max-content or fit-content are (unless otherwise specified) equivalent to the
automatic size (see https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content).

This means that we need to expand our check to consider those intrinsic sizes as automatic whenever the
block axis of the flex item is the flexbible box main size.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::shouldApplyMinSizeAutoForChild const): Consider intrinsic sizes as automatic
in case the child block axis is the flex container main axis.
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Let intrinsic sizes be handled by the code
that computes min-size:auto.

LayoutTests:

* TestExpectations: Unskipped the test that passes now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (273954 => 273955)

--- trunk/LayoutTests/ChangeLog	2021-03-05 10:07:07 UTC (rev 273954)
+++ trunk/LayoutTests/ChangeLog	2021-03-05 10:14:57 UTC (rev 273955)
@@ -1,3 +1,12 @@
+2021-03-01  Sergio Villar Senin  
+
+WPT test css/css-flexbox/flex-minimum-height-flex-items-023.html fails
+https://bugs.webkit.org/show_bug.cgi?id=214292
+
+Reviewed by Javier Fernandez.
+
+* TestExpectations: Unskipped the test that passes now.
+
 2021-03-05  Rob Buis  
 
 Fix flex-aspect-ratio-009.html


Modified: trunk/LayoutTests/TestExpectations (273954 => 273955)

--- trunk/LayoutTests/TestExpectations	2021-03-05 10:07:07 UTC (rev 273954)
+++ trunk/LayoutTests/TestExpectations	2021-03-05 10:14:57 UTC (rev 273955)
@@ -4126,8 +4126,6 @@
 # Artificial web socket delays are only supported on wk2. 
 http/tests/websocket/tests/hybi/closed-port-delay.html [ Skip ]
 
-webkit.org/b/214292 imported/w3c/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-023.html [ ImageOnlyFailure ]
-
 webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/abs-pos-with-replaced-child.html [ ImageOnlyFailure ]
 webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/available-size-004.html [ ImageOnlyFailure ]
 webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/available-size-018.html [ ImageOnlyFailure ]


Modified: trunk/Source/WebCore/ChangeLog (273954 => 273955)

--- trunk/Source/WebCore/ChangeLog	2021-03-05 10:07:07 UTC (rev 273954)
+++ trunk/Source/WebCore/ChangeLog	2021-03-05 10:14:57 UTC (rev 273955)
@@ -1,3 +1,25 @@
+2021-03-01  Sergio Villar Senin  
+
+WPT test css/css-flexbox/flex-minimum-height-flex-items-023.html fails
+https://bugs.webkit.org/show_bug.cgi?id=214292
+
+Reviewed by Javier Fernandez.
+
+CSS flex specs define how to compute the main axis automatic minimum size of a flex item in order to
+provide a more reasonable minimum size (as grid does). So far we've considered "automatic minimum size"
+as either min-{width|height}:auto. However the css-sizing-3 specs mention that for the block size
+either min-content, max-content or fit-content are (unless otherwise specified) equivalent to the
+automatic size (see https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content).
+
+This means that we need to expand our check to consider those intrinsic sizes as automatic whenever the
+block axis of the flex item is the flexbible box main size.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::shouldApplyMinSizeAutoForChild const): Consider intrinsic sizes as automatic
+in case the child block axis is the flex container main axis.
+(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Let intrinsic sizes be handled by the code
+that computes min-size:auto.
+
 2021-03-05  Philippe Normand  
 
 Unreviewed, WPE/GTK build fix after r273953


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (273954 => 273955)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-03-05 10:07:07 UTC (rev 273954)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-03-05 10:14:57 UTC (rev 273955)
@@ -424,11 +424,14 @@
 return style().flexWrap() != FlexWrap::NoWrap;
 }
 
+// 

[webkit-changes] [273876] trunk/LayoutTests

2021-03-04 Thread svillar
Title: [273876] trunk/LayoutTests








Revision 273876
Author svil...@igalia.com
Date 2021-03-04 00:48:49 -0800 (Thu, 04 Mar 2021)


Log Message
ASSERTION FAILED: contentSize >= 0 in WefbCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
https://bugs.webkit.org/show_bug.cgi?id=222711

Unreviewed test gardening.

* TestExpectations: Adding a test that is ASSERTing in Debug builds since it was imported.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (273875 => 273876)

--- trunk/LayoutTests/ChangeLog	2021-03-04 07:22:33 UTC (rev 273875)
+++ trunk/LayoutTests/ChangeLog	2021-03-04 08:48:49 UTC (rev 273876)
@@ -1,3 +1,12 @@
+2021-03-04  Sergio Villar Senin  
+
+ASSERTION FAILED: contentSize >= 0 in WefbCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
+https://bugs.webkit.org/show_bug.cgi?id=222711
+
+Unreviewed test gardening.
+
+* TestExpectations: Adding a test that is ASSERTing in Debug builds since it was imported.
+
 2021-03-03  Ryan Haddad  
 
 [ Catalina wk1 ews ] media/remote-control-command-seek.html is a flaky timeout


Modified: trunk/LayoutTests/TestExpectations (273875 => 273876)

--- trunk/LayoutTests/TestExpectations	2021-03-04 07:22:33 UTC (rev 273875)
+++ trunk/LayoutTests/TestExpectations	2021-03-04 08:48:49 UTC (rev 273876)
@@ -4066,6 +4066,9 @@
 # Misc elements as flex items.
 webkit.org/b/136754 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml [ ImageOnlyFailure ]
 
+# Test ASSERTing in Debug.
+webkit.org/b/222711 [ Debug ] imported/w3c/web-platform-tests/css/css-flexbox/frameset-crash.html [ Skip ]
+
 # Newly imported Canvas WPT tests that are failing.
 imported/w3c/web-platform-tests/html/canvas/element/building-paths/canvas_complexshapes_arcto_001.htm [ ImageOnlyFailure Pass ]
 imported/w3c/web-platform-tests/html/canvas/element/drawing-images-to-the-canvas/2d.drawImage.broken.html [ Failure Pass ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [273825] trunk/LayoutTests

2021-03-03 Thread svillar
Title: [273825] trunk/LayoutTests








Revision 273825
Author svil...@igalia.com
Date 2021-03-03 10:47:07 -0800 (Wed, 03 Mar 2021)


Log Message
[css-flexbox] Import latest WPT tests
https://bugs.webkit.org/show_bug.cgi?id=222651

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

Synced flex tests to 5b5efcee.

* resources/resource-files.json:
* web-platform-tests/css/css-flexbox/canvas-contain-size-expected.html: Added.
* web-platform-tests/css/css-flexbox/canvas-contain-size.html: Added.
* web-platform-tests/css/css-flexbox/css-flexbox-column-expected.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-expected.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-wrap-expected.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-wrap-reverse-expected.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-wrap-reverse.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-reverse-wrap.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-reverse.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-wrap-expected.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-wrap-reverse-expected.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-wrap-reverse.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column-wrap.html: Removed.
* web-platform-tests/css/css-flexbox/css-flexbox-column.html: Removed.
* web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001-expected.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v-expected.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001-expected.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001-expected.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001-expected.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001-expected.xhtml:
* web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001.xhtml:
* web-platform-tests/css/css-flexbox/frameset-crash.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-1-expected.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-1.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2-expected.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-1-expected.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-1.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2-expected.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-narrow-content-2-expected.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-narrow-content-2.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-specified-height-expected.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-specified-height.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-specified-width.html:
* web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-2-expected.xht: Added.
* web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-2.html: Added.
* web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-3-expected.xht: Added.
* web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-3.html: Added.
* web-platform-tests/css/css-flexbox/table-item-flex-percentage-min-width-expected.html: Added.
* web-platform-tests/css/css-flexbox/table-item-flex-percentage-min-width.html: Added.
* web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

Imported latest changes in the test suite.

* TestExpectations:
* imported/w3c/web-platform-tests/css/css-flexbox/frameset-crash-expected.txt: Added.
* platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/frameset-crash-expected.txt: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/resources/resource-files.json
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001-expected.xhtml
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml

[webkit-changes] [273380] trunk

2021-02-24 Thread svillar
Title: [273380] trunk








Revision 273380
Author svil...@igalia.com
Date 2021-02-24 04:53:56 -0800 (Wed, 24 Feb 2021)


Log Message
Nullptr crash in ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=221393

Reviewed by Ryosuke Niwa.

Source/WebCore:

Applying a font style change over a range of nodes might change the node tree because in some cases
a span element needs to be created to wrap nodes so they could be styled. Apart from that consecutive
identical span nodes could be merged together. This means that the loop that iterates over a range
of nodes might actually surpass the end node if that end node was merged into some other.

Test: editing/execCommand/font-size-delta-crash.html

* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Exit the loop if the iterator becomes a
child of the beyondEnd node because the latter was merged into the node that wraps the iterator.

LayoutTests:

* editing/execCommand/font-size-delta-crash-expected.txt: Added.
* editing/execCommand/font-size-delta-crash.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/editing/ApplyStyleCommand.cpp


Added Paths

trunk/LayoutTests/editing/execCommand/font-size-delta-crash-expected.txt
trunk/LayoutTests/editing/execCommand/font-size-delta-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (273379 => 273380)

--- trunk/LayoutTests/ChangeLog	2021-02-24 11:43:22 UTC (rev 273379)
+++ trunk/LayoutTests/ChangeLog	2021-02-24 12:53:56 UTC (rev 273380)
@@ -1,3 +1,13 @@
+2021-02-17  Sergio Villar Senin  
+
+Nullptr crash in ApplyStyleCommand::applyRelativeFontStyleChange
+https://bugs.webkit.org/show_bug.cgi?id=221393
+
+Reviewed by Ryosuke Niwa.
+
+* editing/execCommand/font-size-delta-crash-expected.txt: Added.
+* editing/execCommand/font-size-delta-crash.html: Added.
+
 2021-02-24  Frederic Wang  
 
 Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply


Added: trunk/LayoutTests/editing/execCommand/font-size-delta-crash-expected.txt (0 => 273380)

--- trunk/LayoutTests/editing/execCommand/font-size-delta-crash-expected.txt	(rev 0)
+++ trunk/LayoutTests/editing/execCommand/font-size-delta-crash-expected.txt	2021-02-24 12:53:56 UTC (rev 273380)
@@ -0,0 +1,2 @@
+// <-- magic whitespace _onload_ = () => { document.querySelector('script').appendChild(document.createElement('span')); document.execCommand('FindString', false, 'a'); document.execCommand('FontSizeDelta', false, '1'); }; if (window.testRunner) testRunner.dumpAsText();
+The test PASS if it does not CRASH.
Property changes on: trunk/LayoutTests/editing/execCommand/font-size-delta-crash-expected.txt
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: trunk/LayoutTests/editing/execCommand/font-size-delta-crash.html (0 => 273380)

--- trunk/LayoutTests/editing/execCommand/font-size-delta-crash.html	(rev 0)
+++ trunk/LayoutTests/editing/execCommand/font-size-delta-crash.html	2021-02-24 12:53:56 UTC (rev 273380)
@@ -0,0 +1,23 @@
+
+head, script, span {
+display: block;
+}
+head {
+-webkit-user-modify: read-write-plaintext-only;
+}
+script::first-letter {
+--font-size-ch: 0;
+}
+
+
+// <-- magic whitespace
+_onload_ = () => {
+  document.querySelector('script').appendChild(document.createElement('span'));
+  document.execCommand('FindString', false, 'a');
+  document.execCommand('FontSizeDelta', false, '1');
+};
+if (window.testRunner)
+testRunner.dumpAsText();
+
+The test PASS if it does not CRASH.
+
Property changes on: trunk/LayoutTests/editing/execCommand/font-size-delta-crash.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Modified: trunk/Source/WebCore/ChangeLog (273379 => 273380)

--- trunk/Source/WebCore/ChangeLog	2021-02-24 11:43:22 UTC (rev 273379)
+++ trunk/Source/WebCore/ChangeLog	2021-02-24 12:53:56 UTC (rev 273380)
@@ -1,3 +1,21 @@
+2021-02-17  Sergio Villar Senin  
+
+Nullptr crash in ApplyStyleCommand::applyRelativeFontStyleChange
+https://bugs.webkit.org/show_bug.cgi?id=221393
+
+Reviewed by Ryosuke Niwa.
+
+Applying a font style change over a range of nodes might change the node tree because in some cases
+a span element needs to be created to wrap nodes so they could be styled. Apart from that consecutive
+identical span nodes could be merged together. This means that the loop that iterates over a range
+of nodes might actually surpass the end node if that end node was merged into some other.
+
+Test: editing/execCommand/font-size-delta-crash.html
+
+* 

[webkit-changes] [273264] trunk

2021-02-22 Thread svillar
Title: [273264] trunk








Revision 273264
Author svil...@igalia.com
Date 2021-02-22 11:12:03 -0800 (Mon, 22 Feb 2021)


Log Message
REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
https://bugs.webkit.org/show_bug.cgi?id=02


Reviewed by Simon Fraser.

PerformanceTests:

New performance test for nested column flexboxes with percentage heights.

* Layout/nested-column-flexboxes-relative-height.html: Added.

Source/WebCore:

The problem was that we were doing the initial layout for the children of the flex container twice in those cases where
the child inline axis was not the main axis (for example with column flex containers in horizontal writing modes).
Refactored the code (specially the way we clear overriding sizes) so that we only do it once. This saves tons of layouts
in pages with nested column flexboxes with relative heights.

No new tests as there is no change in functionality, we're removing duplicate extra layouts. We're however adding a new
performance test for column flexboxes with percentage heights. With this patch we go from 3.5 layout/s to 145 layout/s
which is ~4000% better.

Inspired by Blink's crrev.com/c/1614058 by .

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not unconditionally clear overriding sizes. Also removed
relayoutChildren which is now unused. Do not layout the item, that should have been done in
computeInnerFlexBaseSizeForChild() before. Added ASSERTs to verify that child's intrinsic main size was cached as
a consequence of the previous layout.
(WebCore::RenderFlexibleBox::constructFlexItem): Do not pass relayoutChildren to computeInnerFlexBaseSizeForChild. Also no
need to update it after laying out the child.
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/LayoutTests/TestExpectations
trunk/PerformanceTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h


Added Paths

trunk/PerformanceTests/Layout/nested-column-flexboxes-relative-height.html




Diff

Modified: trunk/LayoutTests/TestExpectations (273263 => 273264)

--- trunk/LayoutTests/TestExpectations	2021-02-22 18:56:13 UTC (rev 273263)
+++ trunk/LayoutTests/TestExpectations	2021-02-22 19:12:03 UTC (rev 273264)
@@ -3915,7 +3915,7 @@
 
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html [ ImageOnlyFailure ]
+webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html [ Failure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html [ ImageOnlyFailure ]


Modified: trunk/PerformanceTests/ChangeLog (273263 => 273264)

--- trunk/PerformanceTests/ChangeLog	2021-02-22 18:56:13 UTC (rev 273263)
+++ trunk/PerformanceTests/ChangeLog	2021-02-22 19:12:03 UTC (rev 273264)
@@ -1,3 +1,15 @@
+2021-02-22  Sergio Villar Senin  
+
+REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
+https://bugs.webkit.org/show_bug.cgi?id=02
+
+
+Reviewed by Simon Fraser.
+
+New performance test for nested column flexboxes with percentage heights.
+
+* Layout/nested-column-flexboxes-relative-height.html: Added.
+
 2021-02-18  Myles C. Maxfield  
 
 MotionMark scores are super sensitive to a single long frame


Added: trunk/PerformanceTests/Layout/nested-column-flexboxes-relative-height.html (0 => 273264)

--- trunk/PerformanceTests/Layout/nested-column-flexboxes-relative-height.html	(rev 0)
+++ trunk/PerformanceTests/Layout/nested-column-flexboxes-relative-height.html	2021-02-22 19:12:03 UTC (rev 273264)
@@ -0,0 +1,45 @@
+
+
+
+.flex {
+display: flex;
+flex-direction: column;
+height: 100%;
+}
+
+
+function startTest() {
+document.body.offsetHeight;
+
+var index = 0;
+PerfTestRunner.measureRunsPerSecond({run: function() {
+document.body.style.width = ++index % 2 ? "99%" : "98%";
+document.body.offsetHeight;
+}});
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

[webkit-changes] [273242] trunk/Source/WebCore

2021-02-22 Thread svillar
Title: [273242] trunk/Source/WebCore








Revision 273242
Author svil...@igalia.com
Date 2021-02-22 09:13:59 -0800 (Mon, 22 Feb 2021)


Log Message
[css-flex] Refactoring of code retrieving main/cross size lengths from children
https://bugs.webkit.org/show_bug.cgi?id=222175

Reviewed by Darin Adler.

Added a couple of new private methods which retrieve the main and cross size lengths of children
as it's used everywhere.

No new tests as there is no change in functionality, just a code refactoring.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::shouldApplyMinSizeAutoForChild const):
(WebCore::RenderFlexibleBox::flexBasisForChild const):
(WebCore::RenderFlexibleBox::crossSizeLengthForChild const): New method.
(WebCore::RenderFlexibleBox::mainSizeLengthForChild const): Ditto.
(WebCore::RenderFlexibleBox::useChildAspectRatio const):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
(WebCore::RenderFlexibleBox::childHasIntrinsicMainAxisSize const):
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (273241 => 273242)

--- trunk/Source/WebCore/ChangeLog	2021-02-22 15:30:26 UTC (rev 273241)
+++ trunk/Source/WebCore/ChangeLog	2021-02-22 17:13:59 UTC (rev 273242)
@@ -1,3 +1,27 @@
+2021-02-19  Sergio Villar Senin  
+
+[css-flex] Refactoring of code retrieving main/cross size lengths from children
+https://bugs.webkit.org/show_bug.cgi?id=222175
+
+Reviewed by Darin Adler.
+
+Added a couple of new private methods which retrieve the main and cross size lengths of children
+as it's used everywhere.
+
+No new tests as there is no change in functionality, just a code refactoring.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::shouldApplyMinSizeAutoForChild const):
+(WebCore::RenderFlexibleBox::flexBasisForChild const):
+(WebCore::RenderFlexibleBox::crossSizeLengthForChild const): New method.
+(WebCore::RenderFlexibleBox::mainSizeLengthForChild const): Ditto.
+(WebCore::RenderFlexibleBox::useChildAspectRatio const):
+(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
+(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
+(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
+(WebCore::RenderFlexibleBox::childHasIntrinsicMainAxisSize const):
+* rendering/RenderFlexibleBox.h:
+
 2021-02-22  Antti Koivisto  
 
 [LFC][Integration] Switch out if large trees are being invalidated


Modified: trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp (273241 => 273242)

--- trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-02-22 15:30:26 UTC (rev 273241)
+++ trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp	2021-02-22 17:13:59 UTC (rev 273242)
@@ -427,7 +427,7 @@
 bool RenderFlexibleBox::shouldApplyMinSizeAutoForChild(const RenderBox& child) const
 {
 // css-flexbox section 4.5
-auto minSize = isHorizontalFlow() ? child.style().minWidth() : child.style().minHeight();
+auto minSize = mainSizeLengthForChild(MinSize, child);
 return minSize.isAuto() && mainAxisOverflowForChild(child) == Overflow::Visible;
 }
 
@@ -435,7 +435,7 @@
 {
 Length flexLength = child.style().flexBasis();
 if (flexLength.isAuto())
-flexLength = isHorizontalFlow() ? child.style().width() : child.style().height();
+flexLength = mainSizeLengthForChild(MainOrPreferredSize, child);
 return flexLength;
 }
 
@@ -743,6 +743,34 @@
 return isHorizontalFlow() ? child.location() : child.location().transposedPoint();
 }
 
+Length RenderFlexibleBox::crossSizeLengthForChild(SizeType sizeType, const RenderBox& child) const
+{
+switch (sizeType) {
+case MinSize:
+return isHorizontalFlow() ? child.style().minHeight() : child.style().minWidth();
+case MainOrPreferredSize:
+return isHorizontalFlow() ? child.style().height() : child.style().width();
+case MaxSize:
+return isHorizontalFlow() ? child.style().maxHeight() : child.style().maxWidth();
+}
+ASSERT_NOT_REACHED();
+return { };
+}
+
+Length RenderFlexibleBox::mainSizeLengthForChild(SizeType sizeType, const RenderBox& child) const
+{
+switch (sizeType) {
+case MinSize:
+return isHorizontalFlow() ? child.style().minWidth() : child.style().minHeight();
+case MainOrPreferredSize:
+return isHorizontalFlow() ? child.style().width() : child.style().height();
+case MaxSize:
+return isHorizontalFlow() ? child.style().maxWidth() : child.style().maxHeight();
+}
+ASSERT_NOT_REACHED();
+return { };
+}
+
 bool 

[webkit-changes] [273132] trunk

2021-02-19 Thread svillar
Title: [273132] trunk








Revision 273132
Author svil...@igalia.com
Date 2021-02-19 01:07:11 -0800 (Fri, 19 Feb 2021)


Log Message
Implement WebXR getViewerPose and getPose
https://bugs.webkit.org/show_bug.cgi?id=221225


Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Mark pose and reference space WebXR tests as passing.

* web-platform-tests/webxr/xrFrame_getPose.https-expected.txt: Added.
* web-platform-tests/webxr/xrFrame_getViewerPose_getPose.https-expected.txt: Added.
* web-platform-tests/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt: Added.
* web-platform-tests/webxr/xrReferenceSpace_relationships.https-expected.txt: Added.
* web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt: Added.
* web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt: Added.
* web-platform-tests/webxr/xrSession_viewer_referenceSpace.https-expected.txt: Added.
* web-platform-tests/webxr/xrView_eyes.https-expected.txt: Added.
* web-platform-tests/webxr/xrView_match.https-expected.txt: Added.
* web-platform-tests/webxr/xrView_oneframeupdate.https-expected.txt: Added.

Source/WebCore:

- Improve PlatformXR::FrameData struct.
- Implement WebXRFrame getViewerPose and getPose.
- Implement WebXRReferenceSpace offset, origin and effective tranforms.
- Implement WebXRBoundedReferenceSpace nativeOrigin.
- Apply frame updates in WebXRSession.
- Implement views for OpenXR and DummyInlineDevice inline sessions.
- Query and complete all the new FrameData in the OpenXR port.
- Complete the WebFakeXRDevice implementation for WebXR WPT tests.

Tested by the WebXR WPT tests

* Modules/webxr/WebXRBoundedReferenceSpace.cpp: Implement nativeOrigina and getOffsetReferenceSpace.
(WebCore::WebXRBoundedReferenceSpace::create):
(WebCore::WebXRBoundedReferenceSpace::WebXRBoundedReferenceSpace):
(WebCore::WebXRBoundedReferenceSpace::nativeOrigin const):
(WebCore::WebXRBoundedReferenceSpace::boundsGeometry const):
(WebCore::WebXRBoundedReferenceSpace::getOffsetReferenceSpace):
* Modules/webxr/WebXRBoundedReferenceSpace.h:

* Modules/webxr/WebXRFrame.cpp: Implement WebXR getViewerPose and getPose.
(WebCore::WebXRFrame::create):
(WebCore::WebXRFrame::WebXRFrame):
(WebCore::WebXRFrame::mustPosesBeLimited):
(WebCore::WebXRFrame::populatePose):
(WebCore::WebXRFrame::getViewerPose):
(WebCore::WebXRFrame::getPose):
(WebCore::WebXRFrame::matrixFromPose): add helper function.
* Modules/webxr/WebXRFrame.h:
(WebCore::WebXRFrame::setFrameData):
* Modules/webxr/WebXRFrame.idl: add MayThrowException.

* Modules/webxr/WebXRPose.cpp: Add WebXRRigidTransform constructor parameter. Add specialize type traits.
(WebCore::WebXRPose::create):
(WebCore::WebXRPose::WebXRPose):
* Modules/webxr/WebXRPose.h:
(WebCore::WebXRPose::isViewerPose const):
* Modules/webxr/WebXRPose.idl: Remove ImplementationLacksVTable

* Modules/webxr/WebXRReferenceSpace.cpp: Implement offset, origin and effective tranforms.
(WebCore::WebXRReferenceSpace::create):
(WebCore::WebXRReferenceSpace::WebXRReferenceSpace):
(WebCore::WebXRReferenceSpace::nativeOrigin const):
(WebCore::WebXRReferenceSpace::getOffsetReferenceSpace):
(WebCore::WebXRReferenceSpace::floorOriginTransform const):
(WebCore:: const):
* Modules/webxr/WebXRReferenceSpace.h:
(WebCore::WebXRReferenceSpace::type const):
* Modules/webxr/WebXRReferenceSpace.idl: Add SkipVTableValidation.

* Modules/webxr/WebXRSession.cpp: Apply frame updates for frame. Add active views data.
(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::requestReferenceSpace): Use WeakPtr instead Ref for WebXRSession.
(WebCore::WebXRSession::onFrame):
(WebCore::WebXRSession::posesCanBeReported const): add
* Modules/webxr/WebXRSession.h:

* Modules/webxr/WebXRSpace.cpp: Add nativeOrigin and effectiveOrigin member functions. Add specialize type traits.
(WebCore::WebXRSpace::WebXRSpace):
(WebCore::WebXRSpace::effectiveOrigin const):
* Modules/webxr/WebXRSpace.h:
(WebCore::WebXRSpace::session const):
(WebCore::WebXRSpace::isReferenceSpace const):
(WebCore::WebXRSpace::isBoundedReferenceSpace const):

* Modules/webxr/WebXRSystem.cpp: Implement views for DummyInlineDevice.
(WebCore::WebXRSystem::DummyInlineDevice::requestFrame):
(WebCore::WebXRSystem::DummyInlineDevice::views const):
* Modules/webxr/WebXRSystem.h:

* Modules/webxr/WebXRView.cpp: Pass WebXRRigidTransform in the constructor.
(WebCore::WebXRView::create):
(WebCore::WebXRView::WebXRView):
(WebCore::WebXRView::setProjectionMatrix): Use std::array to match device data.
* Modules/webxr/WebXRView.h:
(WebCore::WebXRView::projectionMatrix const):
(WebCore::WebXRView::transform const):

* Modules/webxr/WebXRViewerPose.cpp: Add views setter. Add specialize type traits.
(WebCore::WebXRViewerPose::create):
(WebCore::WebXRViewerPose::WebXRViewerPose):
(WebCore::WebXRViewerPose::setViews):
* Modules/webxr/WebXRViewerPose.h:
* Modules/webxr/WebXRViewerPose.idl: Remove ImplementationLacksVTable. Add 

[webkit-changes] [273072] trunk

2021-02-18 Thread svillar
Title: [273072] trunk








Revision 273072
Author svil...@igalia.com
Date 2021-02-18 01:58:39 -0800 (Thu, 18 Feb 2021)


Log Message
[css-flex] Implement section 9.8 Definite and Indefinite Sizes case 1
https://bugs.webkit.org/show_bug.cgi?id=219538


Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt: Replaced FAIL by PASS expectations.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt: Ditto.
* web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html: Updated expectation. Still failing.

Source/WebCore:

If a single-line flex container has a definite cross size, the automatic preferred outer cross size
of any stretched flex items is the flex container's inner cross size (clamped to the flex item's
min and max cross size) and is considered definite. Before that we were considering all automatic
sizes as indefinite (see https://drafts.csswg.org/css-flexbox/#definite-sizes).

This patch does not consider all the cases where the container cross size is definite but just when
that size is fixed. Support for additional cases should be added in followup patches.

This change unveiled an implementation mistake when computing content sizes for the min-size:auto case.
In those cases we were always calling computeMainAxisExtentForChild() but that does not take into
account the aspect ratio, that's why we added an additional code path which computes the content
size using computeMainSizeFromAspectRatioUsing() instead.

This fixes 8 full tests plus 24 subtests in some other flexbox aspect ratio tests from the WPT suite.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::useChildAspectRatio const): Use ternary operator to simplify code.
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Resolve child size to container's
size if childCrossSizeShouldUseContainerCrossSize().
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): New method implementing
section 9.8.1 of the specs.
(WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Use aspect ratio to compute cross size
also if childCrossSizeShouldUseContainerCrossSize().
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Use aspect ratio specific code to compute
content size if aspect ratio should be used for child.
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
* rendering/RenderFlexibleBox.h:

LayoutTests:

* TestExpectations: Unskipped 8 tests that are passing now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/LayoutTests/ChangeLog (273071 => 273072)

--- trunk/LayoutTests/ChangeLog	2021-02-18 08:53:05 UTC (rev 273071)
+++ trunk/LayoutTests/ChangeLog	2021-02-18 09:58:39 UTC (rev 273072)
@@ -1,3 +1,13 @@
+2021-02-15  Sergio Villar Senin  
+
+[css-flex] Implement section 9.8 Definite and Indefinite Sizes case 1
+https://bugs.webkit.org/show_bug.cgi?id=219538
+
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: Unskipped 8 tests that are passing now.
+
 2021-02-18  Youenn Fablet  
 
 [GPUP] Test webrtc/audio-video-element-playing.html fails when media in GPU Process is enabled


Modified: trunk/LayoutTests/TestExpectations (273071 => 273072)

--- trunk/LayoutTests/TestExpectations	2021-02-18 08:53:05 UTC (rev 273071)
+++ trunk/LayoutTests/TestExpectations	2021-02-18 09:58:39 UTC (rev 273072)
@@ -3918,7 +3918,6 @@
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
 webkit.org/b/219343 

[webkit-changes] [272843] trunk/Source/WebCore

2021-02-15 Thread svillar
Title: [272843] trunk/Source/WebCore








Revision 272843
Author svil...@igalia.com
Date 2021-02-15 01:04:34 -0800 (Mon, 15 Feb 2021)


Log Message
Don't update form control elements validity status if they are detached from the document.
https://bugs.webkit.org/show_bug.cgi?id=220390

Reviewed by Ryosuke Niwa.

When a radio button input element is removed from a form (either because it's moved or because the form
is deleted) then it's also removed from its current RadioButtonGroup. The latter removal might require the
update of the input validity status. In case of validity status changes, then we have to walk up
the ancestor chain in order to update the style for pseudo classes such as :valid :invalid. That node traversal
should not be done in case of being detached from the main document because our ancestors might have been
deleted before.

Apart from that we're replacing the HashSet of raw pointers to descendants in HTMLFieldSetElement by a WeakHashSet
which is safer.

* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::matchesValidPseudoClass const):
(WebCore::HTMLFieldSetElement::matchesInvalidPseudoClass const):
(WebCore::HTMLFieldSetElement::addInvalidDescendant):
(WebCore::HTMLFieldSetElement::removeInvalidDescendant):
* html/HTMLFieldSetElement.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::updateValidity(): Early return in case of isConnected().

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLFieldSetElement.cpp
trunk/Source/WebCore/html/HTMLFieldSetElement.h
trunk/Source/WebCore/html/HTMLFormControlElement.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (272842 => 272843)

--- trunk/Source/WebCore/ChangeLog	2021-02-15 02:08:49 UTC (rev 272842)
+++ trunk/Source/WebCore/ChangeLog	2021-02-15 09:04:34 UTC (rev 272843)
@@ -1,3 +1,29 @@
+2021-02-12  Sergio Villar Senin  
+
+Don't update form control elements validity status if they are detached from the document.
+https://bugs.webkit.org/show_bug.cgi?id=220390
+
+Reviewed by Ryosuke Niwa.
+
+When a radio button input element is removed from a form (either because it's moved or because the form
+is deleted) then it's also removed from its current RadioButtonGroup. The latter removal might require the
+update of the input validity status. In case of validity status changes, then we have to walk up
+the ancestor chain in order to update the style for pseudo classes such as :valid :invalid. That node traversal
+should not be done in case of being detached from the main document because our ancestors might have been
+deleted before.
+
+Apart from that we're replacing the HashSet of raw pointers to descendants in HTMLFieldSetElement by a WeakHashSet
+which is safer.
+
+* html/HTMLFieldSetElement.cpp:
+(WebCore::HTMLFieldSetElement::matchesValidPseudoClass const):
+(WebCore::HTMLFieldSetElement::matchesInvalidPseudoClass const):
+(WebCore::HTMLFieldSetElement::addInvalidDescendant):
+(WebCore::HTMLFieldSetElement::removeInvalidDescendant):
+* html/HTMLFieldSetElement.h:
+* html/HTMLFormControlElement.cpp:
+(WebCore::HTMLFormControlElement::updateValidity(): Early return in case of isConnected().
+
 2021-02-14  Jean-Yves Avenard  
 
 [iOS] MobileSafari crashes at WebCore: WebCore::VideoFullscreenInterfaceAVKit::doEnterFullscreen


Modified: trunk/Source/WebCore/html/HTMLFieldSetElement.cpp (272842 => 272843)

--- trunk/Source/WebCore/html/HTMLFieldSetElement.cpp	2021-02-15 02:08:49 UTC (rev 272842)
+++ trunk/Source/WebCore/html/HTMLFieldSetElement.cpp	2021-02-15 09:04:34 UTC (rev 272843)
@@ -139,12 +139,12 @@
 
 bool HTMLFieldSetElement::matchesValidPseudoClass() const
 {
-return m_invalidDescendants.isEmpty();
+return m_invalidDescendants.computesEmpty();
 }
 
 bool HTMLFieldSetElement::matchesInvalidPseudoClass() const
 {
-return !m_invalidDescendants.isEmpty();
+return !m_invalidDescendants.computesEmpty();
 }
 
 bool HTMLFieldSetElement::supportsFocus() const
@@ -177,20 +177,20 @@
 {
 ASSERT_WITH_MESSAGE(!is(invalidFormControlElement), "FieldSet are never candidates for constraint validation.");
 ASSERT(static_cast(invalidFormControlElement).matchesInvalidPseudoClass());
-ASSERT_WITH_MESSAGE(!m_invalidDescendants.contains(), "Updating the fieldset on validity change is not an efficient operation, it should only be done when necessary.");
+ASSERT_WITH_MESSAGE(!m_invalidDescendants.contains(invalidFormControlElement), "Updating the fieldset on validity change is not an efficient operation, it should only be done when necessary.");
 
-if (m_invalidDescendants.isEmpty())
+if (m_invalidDescendants.computesEmpty())
 invalidateStyleForSubtree();
-m_invalidDescendants.add();
+m_invalidDescendants.add(invalidFormControlElement);
 }
 
 void 

[webkit-changes] [272795] trunk/LayoutTests

2021-02-12 Thread svillar
Title: [272795] trunk/LayoutTests








Revision 272795
Author svil...@igalia.com
Date 2021-02-12 11:10:59 -0800 (Fri, 12 Feb 2021)


Log Message
[css-flexbox] Another WPT test import
https://bugs.webkit.org/show_bug.cgi?id=221813

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/flexbox-min-width-auto-005-expected.html: Added.
* web-platform-tests/css/css-flexbox/flexbox-min-width-auto-005.html: Added.
* web-platform-tests/css/css-flexbox/flexbox-min-width-auto-006-expected.html: Added.
* web-platform-tests/css/css-flexbox/flexbox-min-width-auto-006.html: Added.
* web-platform-tests/css/css-flexbox/percentage-descendant-of-anonymous-flex-item-expected.html: Added.
* web-platform-tests/css/css-flexbox/percentage-descendant-of-anonymous-flex-item.html: Added.
* web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt: Updated expectations.
* web-platform-tests/css/css-flexbox/radiobutton-min-size.html: Updated.
* web-platform-tests/css/css-flexbox/support/40x20-green.png: Added.
* web-platform-tests/css/css-flexbox/support/w3c-import.log:
* web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

Imported the most recent changes in flexbox WPT tests. This implies deleting a local test that
was upstreamed to WPT, so it does not make sense to have a duplicate.

* TestExpectations: Removed a test that is currently passing. Adding a new expected failure.
* css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html: Removed.
* css3/flexbox/percentage-descendants-of-skipped-flex-item.html: Removed.
* platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt:
Updated expectations.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/support/w3c-import.log
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log
trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-min-width-auto-005-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-min-width-auto-005.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-min-width-auto-006-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-min-width-auto-006.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-descendant-of-anonymous-flex-item-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/percentage-descendant-of-anonymous-flex-item.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/support/40x20-green.png


Removed Paths

trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html
trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item.html




Diff

Modified: trunk/LayoutTests/ChangeLog (272794 => 272795)

--- trunk/LayoutTests/ChangeLog	2021-02-12 19:08:28 UTC (rev 272794)
+++ trunk/LayoutTests/ChangeLog	2021-02-12 19:10:59 UTC (rev 272795)
@@ -1,3 +1,19 @@
+2021-02-12  Sergio Villar Senin  
+
+[css-flexbox] Another WPT test import
+https://bugs.webkit.org/show_bug.cgi?id=221813
+
+Reviewed by Youenn Fablet.
+
+Imported the most recent changes in flexbox WPT tests. This implies deleting a local test that
+was upstreamed to WPT, so it does not make sense to have a duplicate.
+
+* TestExpectations: Removed a test that is currently passing. Adding a new expected failure.
+* css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html: Removed.
+* css3/flexbox/percentage-descendants-of-skipped-flex-item.html: Removed.
+* platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt:
+Updated expectations.
+
 2021-02-12  Julian Gonzalez  
 
 Crash in WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart() from large scale


Modified: trunk/LayoutTests/TestExpectations (272794 => 272795)

--- trunk/LayoutTests/TestExpectations	2021-02-12 19:08:28 UTC (rev 272794)
+++ trunk/LayoutTests/TestExpectations	2021-02-12 19:10:59 UTC (rev 272795)
@@ -3928,7 +3928,6 @@
 webkit.org/b/210093 imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-002.html [ ImageOnlyFailure ]
 webkit.org/b/210144 imported/w3c/web-platform-tests/css/css-flexbox/anonymous-flex-item-005.html [ ImageOnlyFailure ]
 webkit.org/b/210478 imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-006.html [ 

[webkit-changes] [272779] trunk

2021-02-12 Thread svillar
Title: [272779] trunk








Revision 272779
Author svil...@igalia.com
Date 2021-02-12 03:29:32 -0800 (Fri, 12 Feb 2021)


Log Message
Crash in InsertTextCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=213514

Reviewed by Ryosuke Niwa.

Source/WebCore:

The InsertTextCommand might delete the current selection before inserting the text. In that case and when
the selection was ending inside an empty row of a table the code was calling CompositeEditCommand::removeNode()
directly to delete the empty row. That method however does not properly update the m_endingPosition of
the CompositeEditCommand leaving the current selection in an inconsistent state. Replaced that call by
removeNodeUpdatingStates() which ends up calling removeNode() but only after updating the selection state.

Test: editing/deleting/insert-in-orphaned-selection-crash.html

* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows): Replaced
CompositeEditCommand::removeNode() by removeNodeUpdatingStates().

LayoutTests:

* editing/deleting/insert-in-orphaned-selection-crash-expected.txt: Added.
* editing/deleting/insert-in-orphaned-selection-crash.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp


Added Paths

trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash-expected.txt
trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (272778 => 272779)

--- trunk/LayoutTests/ChangeLog	2021-02-12 10:54:32 UTC (rev 272778)
+++ trunk/LayoutTests/ChangeLog	2021-02-12 11:29:32 UTC (rev 272779)
@@ -1,3 +1,13 @@
+2021-02-10  Sergio Villar Senin  
+
+Crash in InsertTextCommand::doApply
+https://bugs.webkit.org/show_bug.cgi?id=213514
+
+Reviewed by Ryosuke Niwa.
+
+* editing/deleting/insert-in-orphaned-selection-crash-expected.txt: Added.
+* editing/deleting/insert-in-orphaned-selection-crash.html: Added.
+
 2021-02-12  Youenn Fablet  
 
 Make RemoteRealtimeVideoSource a RealtimeVideoCaptureSource


Added: trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash-expected.txt (0 => 272779)

--- trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash-expected.txt	(rev 0)
+++ trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash-expected.txt	2021-02-12 11:29:32 UTC (rev 272779)
@@ -0,0 +1,3 @@
+CONSOLE MESSAGE: The test PASS if it does not CRASH.
+CONSOLE MESSAGE: NotFoundError: The object can not be found here.
+
Property changes on: trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash-expected.txt
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash.html (0 => 272779)

--- trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash.html	(rev 0)
+++ trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash.html	2021-02-12 11:29:32 UTC (rev 272779)
@@ -0,0 +1,24 @@
+
+ * { -webkit-appearance:default-button; }
+
+
+if (window.testRunner)
+testRunner.dumpAsText();
+document.addEventListener("DOMNodeRemoved",  function () {
+document.designMode = document.designMode == "on" ? "off" : "on";
+document.execCommand("SelectAll");
+});
+document.addEventListener("DOMFocusIn",  function () {
+document.execCommand('InsertText');
+console.log("The test PASS if it does not CRASH.");
+});
+window._onload_ = function() {
+document.getElementsByTagName("div")[0].remove();
+};
+
+
+
+
+
+
+
Property changes on: trunk/LayoutTests/editing/deleting/insert-in-orphaned-selection-crash.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Modified: trunk/Source/WebCore/ChangeLog (272778 => 272779)

--- trunk/Source/WebCore/ChangeLog	2021-02-12 10:54:32 UTC (rev 272778)
+++ trunk/Source/WebCore/ChangeLog	2021-02-12 11:29:32 UTC (rev 272779)
@@ -1,3 +1,22 @@
+2021-02-10  Sergio Villar Senin  
+
+Crash in InsertTextCommand::doApply
+https://bugs.webkit.org/show_bug.cgi?id=213514
+
+Reviewed by Ryosuke Niwa.
+
+The InsertTextCommand might delete the current selection before inserting the text. In that case and when
+the selection was ending inside an empty row of a table the code was calling CompositeEditCommand::removeNode()
+directly to delete the empty row. That method however does not properly update the m_endingPosition of
+the CompositeEditCommand leaving the current selection in an inconsistent state. Replaced that call by
+removeNodeUpdatingStates() which ends up calling 

[webkit-changes] [272721] trunk/Source

2021-02-11 Thread svillar
Title: [272721] trunk/Source








Revision 272721
Author svil...@igalia.com
Date 2021-02-11 06:18:29 -0800 (Thu, 11 Feb 2021)


Log Message
Non unified build fixes for mid February 2021
https://bugs.webkit.org/show_bug.cgi?id=221749

Reviewed by Youenn Fablet.

Source/WebCore:

* CMakeLists.txt:
* Modules/mediastream/SFrameUtils.cpp:
* Modules/mediastream/STUNMessageParsing.h:
* bindings/js/WebCoreBuiltinNames.h:
* dom/EventTargetFactory.in:
* inspector/InspectorFrontendAPIDispatcher.cpp:
(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
* workers/DedicatedWorkerGlobalScope.cpp:
* workers/Worker.cpp:

Source/WebKit:

* GPUProcess/graphics/RemoteRenderingBackend.cpp:
* GPUProcess/media/RemoteCDMInstanceProxy.cpp:

Modified Paths

trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediastream/SFrameUtils.cpp
trunk/Source/WebCore/Modules/mediastream/STUNMessageParsing.h
trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h
trunk/Source/WebCore/dom/EventTargetFactory.in
trunk/Source/WebCore/inspector/InspectorFrontendAPIDispatcher.cpp
trunk/Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp
trunk/Source/WebCore/workers/Worker.cpp
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
trunk/Source/WebKit/GPUProcess/media/RemoteCDMInstanceProxy.cpp




Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (272720 => 272721)

--- trunk/Source/WebCore/CMakeLists.txt	2021-02-11 13:42:42 UTC (rev 272720)
+++ trunk/Source/WebCore/CMakeLists.txt	2021-02-11 14:18:29 UTC (rev 272721)
@@ -1792,8 +1792,16 @@
 )
 
 list(APPEND WebCoreTestSupport_SOURCES
+dom/AbstractRange.cpp
+
+inspector/InspectorFrontendClientLocal.cpp
+
+platform/graphics/HEVCUtilities.cpp
+platform/graphics/VP9Utilities.cpp
+
+platform/mediarecorder/MediaRecorderPrivateMock.cpp
+
 platform/mock/PlatformSpeechSynthesizerMock.cpp
-
 platform/mock/mediasource/MockBox.cpp
 platform/mock/mediasource/MockMediaPlayerMediaSource.cpp
 platform/mock/mediasource/MockMediaSourcePrivate.cpp


Modified: trunk/Source/WebCore/ChangeLog (272720 => 272721)

--- trunk/Source/WebCore/ChangeLog	2021-02-11 13:42:42 UTC (rev 272720)
+++ trunk/Source/WebCore/ChangeLog	2021-02-11 14:18:29 UTC (rev 272721)
@@ -1,3 +1,20 @@
+2021-02-11  Sergio Villar Senin  
+
+Non unified build fixes for mid February 2021
+https://bugs.webkit.org/show_bug.cgi?id=221749
+
+Reviewed by Youenn Fablet.
+
+* CMakeLists.txt:
+* Modules/mediastream/SFrameUtils.cpp:
+* Modules/mediastream/STUNMessageParsing.h:
+* bindings/js/WebCoreBuiltinNames.h:
+* dom/EventTargetFactory.in:
+* inspector/InspectorFrontendAPIDispatcher.cpp:
+(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
+* workers/DedicatedWorkerGlobalScope.cpp:
+* workers/Worker.cpp:
+
 2021-02-11  Rob Buis  
 
 Handle min-width/min-height:auto for aspect-ratio


Modified: trunk/Source/WebCore/Modules/mediastream/SFrameUtils.cpp (272720 => 272721)

--- trunk/Source/WebCore/Modules/mediastream/SFrameUtils.cpp	2021-02-11 13:42:42 UTC (rev 272720)
+++ trunk/Source/WebCore/Modules/mediastream/SFrameUtils.cpp	2021-02-11 14:18:29 UTC (rev 272721)
@@ -28,6 +28,8 @@
 
 #if ENABLE(WEB_RTC)
 
+#include 
+
 namespace WebCore {
 
 static inline bool isSliceNALU(uint8_t data)


Modified: trunk/Source/WebCore/Modules/mediastream/STUNMessageParsing.h (272720 => 272721)

--- trunk/Source/WebCore/Modules/mediastream/STUNMessageParsing.h	2021-02-11 13:42:42 UTC (rev 272720)
+++ trunk/Source/WebCore/Modules/mediastream/STUNMessageParsing.h	2021-02-11 14:18:29 UTC (rev 272721)
@@ -26,6 +26,7 @@
 #pragma once
 
 #include 
+#include 
 #include 
 
 #if ENABLE(WEB_RTC)


Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (272720 => 272721)

--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h	2021-02-11 13:42:42 UTC (rev 272720)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h	2021-02-11 14:18:29 UTC (rev 272721)
@@ -263,6 +263,7 @@
 macro(TextEncoderStream) \
 macro(TextEncoderStreamEncoder) \
 macro(TextTrackCue) \
+macro(TextTrackCueGeneric) \
 macro(TransformStream) \
 macro(TransformStreamDefaultController) \
 macro(UndoItem) \


Modified: trunk/Source/WebCore/dom/EventTargetFactory.in (272720 => 272721)

--- trunk/Source/WebCore/dom/EventTargetFactory.in	2021-02-11 13:42:42 UTC (rev 272720)
+++ trunk/Source/WebCore/dom/EventTargetFactory.in	2021-02-11 14:18:29 UTC (rev 272721)
@@ -49,6 +49,7 @@
 SpeechSynthesisUtterance conditional=SPEECH_SYNTHESIS
 TextTrack conditional=VIDEO
 TextTrackCue conditional=VIDEO
+TextTrackCueGeneric conditional=VIDEO
 TextTrackList conditional=VIDEO
 VideoTrackList conditional=VIDEO
 VisualViewport


Modified: trunk/Source/WebCore/inspector/InspectorFrontendAPIDispatcher.cpp (272720 => 272721)

--- 

[webkit-changes] [272720] trunk/LayoutTests

2021-02-11 Thread svillar
Title: [272720] trunk/LayoutTests








Revision 272720
Author svil...@igalia.com
Date 2021-02-11 05:42:42 -0800 (Thu, 11 Feb 2021)


Log Message
Unreviewed test gardening.

* platform/ios/TestExpectations: Replaced Failure by ImageOnlyFailure for a couple of tests I imported yesterday.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (272719 => 272720)

--- trunk/LayoutTests/ChangeLog	2021-02-11 11:08:23 UTC (rev 272719)
+++ trunk/LayoutTests/ChangeLog	2021-02-11 13:42:42 UTC (rev 272720)
@@ -1,3 +1,9 @@
+2021-02-11  Sergio Villar Senin  
+
+Unreviewed test gardening.
+
+* platform/ios/TestExpectations: Replaced Failure by ImageOnlyFailure for a couple of tests I imported yesterday.
+
 2021-02-11  Rob Buis  
 
 Handle min-width/min-height:auto for aspect-ratio


Modified: trunk/LayoutTests/platform/ios/TestExpectations (272719 => 272720)

--- trunk/LayoutTests/platform/ios/TestExpectations	2021-02-11 11:08:23 UTC (rev 272719)
+++ trunk/LayoutTests/platform/ios/TestExpectations	2021-02-11 13:42:42 UTC (rev 272720)
@@ -2613,8 +2613,8 @@
 webkit.org/b/211891 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-002.xhtml [ ImageOnlyFailure ]
 
 # min-width: auto issues.
-webkit.org/b/221600 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-min-width-auto-003.html [ Failure ]
-webkit.org/b/221600 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-min-width-auto-004.html [ Failure ]
+webkit.org/b/221600 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-min-width-auto-003.html [ ImageOnlyFailure ]
+webkit.org/b/221600 imported/w3c/web-platform-tests/css/css-flexbox/flexbox-min-width-auto-004.html [ ImageOnlyFailure ]
 
 # Skip test because checkboxes/radio buttons don't behave the same on iOS
 fast/replaced/table-percent-height.html [ Skip ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [272054] trunk

2021-01-29 Thread svillar
Title: [272054] trunk








Revision 272054
Author svil...@igalia.com
Date 2021-01-29 02:01:27 -0800 (Fri, 29 Jan 2021)


Log Message
[css-flexbox] REGRESSION(r266695): content inside a `` inside a flex container has a height of `0` without a declared `min-height`
https://bugs.webkit.org/show_bug.cgi?id=220946

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: css3/flexbox/percentage-descendants-of-skipped-flex-item.html

r252620 added an optimization which saves layouts for flexbox containers' descendants with percentage heights.
That optimization relies on a hash map of percentage height descendants that is filled in with calls to
addPercentHeightDescendant().

FlexibleBoxImpl's like RenderButton might wrap their children in anonymous blocks. Those anonymous blocks are
skipped for percentage height calculations in RenderBox::computePercentageLogicalHeight() and thus
addPercentHeightDescendant() is never called for them. This means that hasPercentageHeightDescendants() would
always wrongly return false for a child of a  with a percentage height.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childHasPercentHeightDescendants const): Renamed from hasPercentHeightDescendants in
order not to clash with RenderBlock method. It now also checks whether flex items skipped from percentage
height calculations are the containing blocks of any percentage height descendant of the flex container
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::hasPercentHeightDescendants const): Deleted.
* rendering/RenderFlexibleBox.h:

LayoutTests:

* css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html: Added.
* css3/flexbox/percentage-descendants-of-skipped-flex-item.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h


Added Paths

trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html
trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item.html




Diff

Modified: trunk/LayoutTests/ChangeLog (272053 => 272054)

--- trunk/LayoutTests/ChangeLog	2021-01-29 09:01:22 UTC (rev 272053)
+++ trunk/LayoutTests/ChangeLog	2021-01-29 10:01:27 UTC (rev 272054)
@@ -1,3 +1,13 @@
+2021-01-28  Sergio Villar Senin  
+
+[css-flexbox] REGRESSION(r266695): content inside a `` inside a flex container has a height of `0` without a declared `min-height`
+https://bugs.webkit.org/show_bug.cgi?id=220946
+
+Reviewed by Zalan Bujtas.
+
+* css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html: Added.
+* css3/flexbox/percentage-descendants-of-skipped-flex-item.html: Added.
+
 2021-01-29  Youenn Fablet  
 
 [MacOS] Enable WebKitTestRunner audio and video capture in GPUProcess


Added: trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html (0 => 272054)

--- trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html	(rev 0)
+++ trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html	2021-01-29 10:01:27 UTC (rev 272054)
@@ -0,0 +1,4 @@
+
+
+
+
Property changes on: trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Added: trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item.html (0 => 272054)

--- trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item.html	(rev 0)
+++ trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item.html	2021-01-29 10:01:27 UTC (rev 272054)
@@ -0,0 +1,15 @@
+
+
+
+.flexbox {
+width: 200px;
+height: 200px;
+}
+
+
+
+
+
+
+
+
Property changes on: trunk/LayoutTests/css3/flexbox/percentage-descendants-of-skipped-flex-item.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Modified: trunk/Source/WebCore/ChangeLog (272053 => 272054)

--- trunk/Source/WebCore/ChangeLog	2021-01-29 09:01:22 UTC (rev 272053)
+++ trunk/Source/WebCore/ChangeLog	2021-01-29 10:01:27 UTC (rev 272054)
@@ -1,3 +1,29 @@
+2021-01-28  Sergio Villar Senin  
+
+[css-flexbox] REGRESSION(r266695): content inside a `` inside a flex container has a height of `0` without a declared `min-height`
+https://bugs.webkit.org/show_bug.cgi?id=220946
+
+Reviewed by Zalan Bujtas.
+
+Test: css3/flexbox/percentage-descendants-of-skipped-flex-item.html
+
+r252620 added an optimization which saves layouts for 

[webkit-changes] [271644] trunk

2021-01-20 Thread svillar
Title: [271644] trunk








Revision 271644
Author svil...@igalia.com
Date 2021-01-20 02:59:39 -0800 (Wed, 20 Jan 2021)


Log Message
[css-multicol] OOM with 1px height columns
https://bugs.webkit.org/show_bug.cgi?id=220490

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: fast/multicol/newmulticol/zero-height-columns-oom-crash.html

Multicol sometimes computes <= 0 heights for the columns. For all those cases the code was adjusting them to 1px
values apparently to avoid creating an "infinite" amount of columns. However that adjustment was precisely causing
OOM situations in those cases where there was a relatively large amount of free space. In those cases the code was
creating dozens of thousands of 1px height columns (with all their associated structures) until we run out of memory.

Using zero heights in those cases seem sane because it's already being properly handled in the current code.

* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset const): cap negative heights to 0.

LayoutTests:

* fast/multicol/newmulticol/zero-height-columns-oom-crash-expected.txt: Added.
* fast/multicol/newmulticol/zero-height-columns-oom-crash.html: Added.
* imported/blink/fast/pagination/first-letter-inherit-all-crash-expected.txt: Updated expectations.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/imported/blink/fast/pagination/first-letter-inherit-all-crash-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp


Added Paths

trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash-expected.txt
trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (271643 => 271644)

--- trunk/LayoutTests/ChangeLog	2021-01-20 10:43:59 UTC (rev 271643)
+++ trunk/LayoutTests/ChangeLog	2021-01-20 10:59:39 UTC (rev 271644)
@@ -1,3 +1,14 @@
+2021-01-18  Sergio Villar Senin  
+
+[css-multicol] OOM with 1px height columns
+https://bugs.webkit.org/show_bug.cgi?id=220490
+
+Reviewed by Ryosuke Niwa.
+
+* fast/multicol/newmulticol/zero-height-columns-oom-crash-expected.txt: Added.
+* fast/multicol/newmulticol/zero-height-columns-oom-crash.html: Added.
+* imported/blink/fast/pagination/first-letter-inherit-all-crash-expected.txt: Updated expectations.
+
 2021-01-19  Megan Gardner  
 
 Elements in a table are incorrectly selected in _javascript_.


Added: trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash-expected.txt (0 => 271644)

--- trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash-expected.txt	2021-01-20 10:59:39 UTC (rev 271644)
@@ -0,0 +1,3 @@
+* { display: block; writing-mode: vertical-lr; -webkit-column-axis: horizontal; } *::first-letter {}
+if (window.testRunner) testRunner.dumpAsText();
+The test PASS if it does not crash.
Property changes on: trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash-expected.txt
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash.html (0 => 271644)

--- trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash.html	(rev 0)
+++ trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash.html	2021-01-20 10:59:39 UTC (rev 271644)
@@ -0,0 +1,14 @@
+
+
+* {
+display: block;
+writing-mode: vertical-lr;
+-webkit-column-axis: horizontal;
+}
+*::first-letter {}
+
+
+if (window.testRunner)
+testRunner.dumpAsText();
+
+The test PASS if it does not crash.
Property changes on: trunk/LayoutTests/fast/multicol/newmulticol/zero-height-columns-oom-crash.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Modified: trunk/LayoutTests/imported/blink/fast/pagination/first-letter-inherit-all-crash-expected.txt (271643 => 271644)

--- trunk/LayoutTests/imported/blink/fast/pagination/first-letter-inherit-all-crash-expected.txt	2021-01-20 10:43:59 UTC (rev 271643)
+++ trunk/LayoutTests/imported/blink/fast/pagination/first-letter-inherit-all-crash-expected.txt	2021-01-20 10:59:39 UTC (rev 271644)
@@ -2,4 +2,4 @@
 
 PASS if no crash or assertion failure.
 
-x
+


Modified: trunk/Source/WebCore/ChangeLog (271643 => 271644)

--- trunk/Source/WebCore/ChangeLog	2021-01-20 10:43:59 UTC (rev 271643)
+++ trunk/Source/WebCore/ChangeLog	2021-01-20 10:59:39 UTC (rev 271644)
@@ -1,3 +1,22 @@
+2021-01-18  Sergio Villar Senin  
+
+[css-multicol] OOM with 1px height columns
+https://bugs.webkit.org/show_bug.cgi?id=220490
+
+ 

[webkit-changes] [271618] trunk

2021-01-19 Thread svillar
Title: [271618] trunk








Revision 271618
Author svil...@igalia.com
Date 2021-01-19 14:15:10 -0800 (Tue, 19 Jan 2021)


Log Message
REGRESSION(r266695) Range control with custom track width sized incorrectly
https://bugs.webkit.org/show_bug.cgi?id=220608

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/forms/range/input-range-sizing-fixed-size.html

In r266695 we modified the way min-{width|height}: auto was computed for flexbox elements. That broke the sizing
of input range controls that were working under the assumption that min-{width|height} was 0. We have to force it
in the UA CSS in order to keep the same behaviour.

* css/html.css:
(input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): force
min-width: 0.

LayoutTests:

New test case to verify that input range controls are sized correctly with specified widths.

* fast/forms/range/input-range-sizing-fixed-size-expected.html: Added.
* fast/forms/range/input-range-sizing-fixed-size.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/css/html.css


Added Paths

trunk/LayoutTests/fast/forms/range/input-range-sizing-fixed-size-expected.html
trunk/LayoutTests/fast/forms/range/input-range-sizing-fixed-size.html




Diff

Modified: trunk/LayoutTests/ChangeLog (271617 => 271618)

--- trunk/LayoutTests/ChangeLog	2021-01-19 22:11:09 UTC (rev 271617)
+++ trunk/LayoutTests/ChangeLog	2021-01-19 22:15:10 UTC (rev 271618)
@@ -1,3 +1,15 @@
+2021-01-19  Sergio Villar Senin  
+
+REGRESSION(r266695) Range control with custom track width sized incorrectly
+https://bugs.webkit.org/show_bug.cgi?id=220608
+
+Reviewed by Zalan Bujtas.
+
+New test case to verify that input range controls are sized correctly with specified widths.
+
+* fast/forms/range/input-range-sizing-fixed-size-expected.html: Added.
+* fast/forms/range/input-range-sizing-fixed-size.html: Added.
+
 2021-01-19  Devin Rousso  
 
 Payment Request API - PaymentDetailsUpdate requires "total"


Added: trunk/LayoutTests/fast/forms/range/input-range-sizing-fixed-size-expected.html (0 => 271618)

--- trunk/LayoutTests/fast/forms/range/input-range-sizing-fixed-size-expected.html	(rev 0)
+++ trunk/LayoutTests/fast/forms/range/input-range-sizing-fixed-size-expected.html	2021-01-19 22:15:10 UTC (rev 271618)
@@ -0,0 +1,2 @@
+
+


Added: trunk/LayoutTests/fast/forms/range/input-range-sizing-fixed-size.html (0 => 271618)

--- trunk/LayoutTests/fast/forms/range/input-range-sizing-fixed-size.html	(rev 0)
+++ trunk/LayoutTests/fast/forms/range/input-range-sizing-fixed-size.html	2021-01-19 22:15:10 UTC (rev 271618)
@@ -0,0 +1,7 @@
+
+
+input[type=range]::-webkit-slider-runnable-track {
+width: 800px;
+}
+
+


Modified: trunk/Source/WebCore/ChangeLog (271617 => 271618)

--- trunk/Source/WebCore/ChangeLog	2021-01-19 22:11:09 UTC (rev 271617)
+++ trunk/Source/WebCore/ChangeLog	2021-01-19 22:15:10 UTC (rev 271618)
@@ -1,3 +1,20 @@
+2021-01-19  Sergio Villar Senin  
+
+REGRESSION(r266695) Range control with custom track width sized incorrectly
+https://bugs.webkit.org/show_bug.cgi?id=220608
+
+Reviewed by Zalan Bujtas.
+
+Test: fast/forms/range/input-range-sizing-fixed-size.html
+
+In r266695 we modified the way min-{width|height}: auto was computed for flexbox elements. That broke the sizing
+of input range controls that were working under the assumption that min-{width|height} was 0. We have to force it
+in the UA CSS in order to keep the same behaviour.
+
+* css/html.css:
+(input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): force
+min-width: 0.
+
 2021-01-19  Zalan Bujtas  
 
 [LFC][RenderTreeDump] Match empty RenderInline geometry


Modified: trunk/Source/WebCore/css/html.css (271617 => 271618)

--- trunk/Source/WebCore/css/html.css	2021-01-19 22:11:09 UTC (rev 271617)
+++ trunk/Source/WebCore/css/html.css	2021-01-19 22:15:10 UTC (rev 271618)
@@ -834,6 +834,7 @@
 box-sizing: border-box;
 display: flex;
 align-contents: center;
+min-width: 0;
 }
 
 input[type="range"]::-webkit-slider-runnable-track {






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [271436] trunk

2021-01-13 Thread svillar
Title: [271436] trunk








Revision 271436
Author svil...@igalia.com
Date 2021-01-13 03:54:00 -0800 (Wed, 13 Jan 2021)


Log Message
REGRESSION(r268666) Incorrect vertical position inside grid items with padding
https://bugs.webkit.org/show_bug.cgi?id=220524

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

In r268666 we sanitized and renamed the old overrideLogicalXXX sizes so that they store what they say.
There was a mistake in one of those renames, in availableLogicalHeightForPercentageComputation() we were
returning the border box size for the case of grid items. That's clearly wrong as we should return the
content box size. That's why adding a padding to a grid item was causing their children to wrongly
evaluate the available logical height.

This fixes a WPT that was marked as failure.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const): Return the
overridingContentLogicalHeight instead of the overridingLogicalHeight.

LayoutTests:

* TestExpectations: remove web-platform-tests/css/css-grid/grid-items/percentage-size-subitems-001.html
from the list of image failures.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBlock.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (271435 => 271436)

--- trunk/LayoutTests/ChangeLog	2021-01-13 10:11:25 UTC (rev 271435)
+++ trunk/LayoutTests/ChangeLog	2021-01-13 11:54:00 UTC (rev 271436)
@@ -1,3 +1,13 @@
+2021-01-13  Sergio Villar Senin  
+
+REGRESSION(r268666) Incorrect vertical position inside grid items with padding
+https://bugs.webkit.org/show_bug.cgi?id=220524
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: remove web-platform-tests/css/css-grid/grid-items/percentage-size-subitems-001.html
+from the list of image failures.
+
 2021-01-12  Antoine Quint  
 
 REGRESSION (r267571): black line appears upon navigating back from apple.com shopping bag


Modified: trunk/LayoutTests/TestExpectations (271435 => 271436)

--- trunk/LayoutTests/TestExpectations	2021-01-13 10:11:25 UTC (rev 271435)
+++ trunk/LayoutTests/TestExpectations	2021-01-13 11:54:00 UTC (rev 271436)
@@ -1206,7 +1206,6 @@
 webkit.org/b/216145 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-8.html [ ImageOnlyFailure ]
 webkit.org/b/216145 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-9.html [ ImageOnlyFailure ]
 webkit.org/b/216145 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-item-no-aspect-ratio-stretch-10.html [ ImageOnlyFailure ]
-webkit.org/b/191461 imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-subitems-001.html [ ImageOnlyFailure ]
 webkit.org/b/191463 imported/w3c/web-platform-tests/css/css-grid/grid-items/explicitly-sized-grid-item-as-table.html [ ImageOnlyFailure ]
 webkit.org/b/191627 imported/w3c/web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html [ Failure ]
 webkit.org/b/149890 fast/css-grid-layout/grid-shorthands-style-format.html [ Failure ]


Modified: trunk/Source/WebCore/ChangeLog (271435 => 271436)

--- trunk/Source/WebCore/ChangeLog	2021-01-13 10:11:25 UTC (rev 271435)
+++ trunk/Source/WebCore/ChangeLog	2021-01-13 11:54:00 UTC (rev 271436)
@@ -1,3 +1,22 @@
+2021-01-13  Sergio Villar Senin  
+
+REGRESSION(r268666) Incorrect vertical position inside grid items with padding
+https://bugs.webkit.org/show_bug.cgi?id=220524
+
+Reviewed by Manuel Rego Casasnovas.
+
+In r268666 we sanitized and renamed the old overrideLogicalXXX sizes so that they store what they say.
+There was a mistake in one of those renames, in availableLogicalHeightForPercentageComputation() we were
+returning the border box size for the case of grid items. That's clearly wrong as we should return the
+content box size. That's why adding a padding to a grid item was causing their children to wrongly
+evaluate the available logical height.
+
+This fixes a WPT that was marked as failure.
+
+* rendering/RenderBlock.cpp:
+(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const): Return the
+overridingContentLogicalHeight instead of the overridingLogicalHeight.
+
 2021-01-12  Antoine Quint  
 
 REGRESSION (r267571): black line appears upon navigating back from apple.com shopping bag


Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (271435 => 271436)

--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2021-01-13 10:11:25 UTC (rev 271435)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2021-01-13 11:54:00 UTC (rev 271436)
@@ -3203,7 +3203,7 @@
 if (stretchedFlexHeight)
 availableHeight = stretchedFlexHeight;
 else if (isGridItem() && hasOverridingLogicalHeight())
-  

[webkit-changes] [271357] trunk/Source/WebCore

2021-01-11 Thread svillar
Title: [271357] trunk/Source/WebCore








Revision 271357
Author svil...@igalia.com
Date 2021-01-11 03:44:41 -0800 (Mon, 11 Jan 2021)


Log Message
[css-multicol] Restore placeholders on multicolumn children position changes.
https://bugs.webkit.org/show_bug.cgi?id=218501

Reviewed by Zalan Bujtas.

Whenever there is a placeholder in a multicolumn flow ("column-span: all") it must be ensured that the spanner
associated to that placeholder is properly restored as a child of the multicolumn flow when the element with
"column-span:all" is moved out of the multicolumn flow (for example by removing it, by making it out-of-flow
or because an ancestor becomes another multicolumn flow).

This was smoothly handled by the current code for the in-flow -> out-of-flow transition but not the other way
around, i.e in the case of making the placeholder (or an ancestor) an absolutely positioned element.

* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): restore column spanners then the element becomes
out-of-flow as it's removed from the multicolumn flow.
* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow): Call the newly created method
restoreColumnSpannersForContainer().
(WebCore::RenderTreeBuilder::MultiColumn::restoreColumnSpannersForContainer): Refactored from createFragmentedFlow()
as it's now used by normalizeTreeAfterStyleChange().
* rendering/updating/RenderTreeBuilderMultiColumn.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (271356 => 271357)

--- trunk/Source/WebCore/ChangeLog	2021-01-11 11:15:28 UTC (rev 271356)
+++ trunk/Source/WebCore/ChangeLog	2021-01-11 11:44:41 UTC (rev 271357)
@@ -1,3 +1,28 @@
+2021-01-07  Sergio Villar Senin  
+
+[css-multicol] Restore placeholders on multicolumn children position changes.
+https://bugs.webkit.org/show_bug.cgi?id=218501
+
+Reviewed by Zalan Bujtas.
+
+Whenever there is a placeholder in a multicolumn flow ("column-span: all") it must be ensured that the spanner
+associated to that placeholder is properly restored as a child of the multicolumn flow when the element with
+"column-span:all" is moved out of the multicolumn flow (for example by removing it, by making it out-of-flow
+or because an ancestor becomes another multicolumn flow).
+
+This was smoothly handled by the current code for the in-flow -> out-of-flow transition but not the other way
+around, i.e in the case of making the placeholder (or an ancestor) an absolutely positioned element.
+
+* rendering/updating/RenderTreeBuilder.cpp:
+(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): restore column spanners then the element becomes
+out-of-flow as it's removed from the multicolumn flow.
+* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
+(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow): Call the newly created method
+restoreColumnSpannersForContainer().
+(WebCore::RenderTreeBuilder::MultiColumn::restoreColumnSpannersForContainer): Refactored from createFragmentedFlow()
+as it's now used by normalizeTreeAfterStyleChange().
+* rendering/updating/RenderTreeBuilderMultiColumn.h:
+
 2020-12-04  Sergio Villar Senin  
 
 [css-multicol] Update fragment flow state on element insertion when element position changes


Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (271356 => 271357)

--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2021-01-11 11:15:28 UTC (rev 271356)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2021-01-11 11:44:41 UTC (rev 271357)
@@ -598,9 +598,18 @@
 
 // Out of flow children of RenderMultiColumnFlow are not really part of the multicolumn flow. We need to ensure that changes in positioning like this
 // trigger insertions into the multicolumn flow.
-if (auto* enclosingFragmentedFlow = parent.enclosingFragmentedFlow(); is(enclosingFragmentedFlow) && wasOutOfFlowPositioned && !isOutOfFlowPositioned) {
-multiColumnBuilder().multiColumnDescendantInserted(downcast(*enclosingFragmentedFlow), renderer);
-renderer.initializeFragmentedFlowStateOnInsertion();
+if (auto* enclosingFragmentedFlow = parent.enclosingFragmentedFlow(); is(enclosingFragmentedFlow)) {
+auto movingIntoMulticolumn = wasOutOfFlowPositioned && !isOutOfFlowPositioned;
+if (movingIntoMulticolumn) {
+multiColumnBuilder().multiColumnDescendantInserted(downcast(*enclosingFragmentedFlow), renderer);
+renderer.initializeFragmentedFlowStateOnInsertion();
+ 

[webkit-changes] [271356] trunk/Source/WebCore

2021-01-11 Thread svillar
Title: [271356] trunk/Source/WebCore








Revision 271356
Author svil...@igalia.com
Date 2021-01-11 03:15:28 -0800 (Mon, 11 Jan 2021)


Log Message
[css-multicol] Update fragment flow state on element insertion when element position changes
https://bugs.webkit.org/show_bug.cgi?id=202805

Reviewed by Zalan Bujtas.

Let's imagine the following scenario:


  


The generated render tree is more or less the following:

DIV
|__RenderMultiColumnFlow
   |__DIV
  |__RenderMultiColumnFlow
  |  |__RenderMultiColumnSpannerPlaceholder
  |__DIV
  |__RenderMultiColumnSet

both  and  generate RenderMultiColumnFlows because they're multicolumn containers while the  becomes a spanner and leaves
a placeholder in the place where it's supposed to be as it's a "column-span:all". Note that  is absolutely positioned so it isn't really
part of the column flow of  (there is no RenderMultiColumnSet for ). Now if the  becomes a statically positioned container
(i.e. style="position:static") then it should be inserted (actually its whole subtree) in the  multicolumn flow.

That insertion implies doing 2 things, first notify the RenderMultiColumnFlow of  that a new child was inserted and secondly update the
flow state of the subtree which starts in  so they acknowledge  as their enclosing fragment flow. The former was properly done.
However the latter was not done at all, meaning that they would be treated as not belonging to any multicolumn flow when they actually did.

* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock): call initializeFragmentedFlowStateOnInsertion().

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (271355 => 271356)

--- trunk/Source/WebCore/ChangeLog	2021-01-11 10:31:00 UTC (rev 271355)
+++ trunk/Source/WebCore/ChangeLog	2021-01-11 11:15:28 UTC (rev 271356)
@@ -1,3 +1,38 @@
+2020-12-04  Sergio Villar Senin  
+
+[css-multicol] Update fragment flow state on element insertion when element position changes
+https://bugs.webkit.org/show_bug.cgi?id=202805
+
+Reviewed by Zalan Bujtas.
+
+Let's imagine the following scenario:
+
+
+  
+
+
+The generated render tree is more or less the following:
+
+DIV
+|__RenderMultiColumnFlow
+   |__DIV
+  |__RenderMultiColumnFlow
+  |  |__RenderMultiColumnSpannerPlaceholder
+  |__DIV
+  |__RenderMultiColumnSet
+
+both  and  generate RenderMultiColumnFlows because they're multicolumn containers while the  becomes a spanner and leaves
+a placeholder in the place where it's supposed to be as it's a "column-span:all". Note that  is absolutely positioned so it isn't really
+part of the column flow of  (there is no RenderMultiColumnSet for ). Now if the  becomes a statically positioned container
+(i.e. style="position:static") then it should be inserted (actually its whole subtree) in the  multicolumn flow.
+
+That insertion implies doing 2 things, first notify the RenderMultiColumnFlow of  that a new child was inserted and secondly update the
+flow state of the subtree which starts in  so they acknowledge  as their enclosing fragment flow. The former was properly done.
+However the latter was not done at all, meaning that they would be treated as not belonging to any multicolumn flow when they actually did.
+
+* rendering/updating/RenderTreeBuilder.cpp:
+(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock): call initializeFragmentedFlowStateOnInsertion().
+
 2021-01-11  Xabier Rodriguez Calvar  
 
 [GStreamer] Add support to build with native audio and video


Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (271355 => 271356)

--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2021-01-11 10:31:00 UTC (rev 271355)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2021-01-11 11:15:28 UTC (rev 271356)
@@ -705,6 +705,7 @@
 if (auto* newEnclosingFragmentedFlow = newParent->enclosingFragmentedFlow(); is(newEnclosingFragmentedFlow) && currentEnclosingFragment != newEnclosingFragmentedFlow) {
 // Let the fragmented flow know that it has a new in-flow descendant.
 multiColumnBuilder().multiColumnDescendantInserted(downcast(*newEnclosingFragmentedFlow), child);
+child.initializeFragmentedFlowStateOnInsertion();
 }
 }
 } else {






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [271288] trunk/Source/WebCore

2021-01-08 Thread svillar
Title: [271288] trunk/Source/WebCore








Revision 271288
Author svil...@igalia.com
Date 2021-01-08 01:59:25 -0800 (Fri, 08 Jan 2021)


Log Message
[WebXR] Initial implemention of device initialization/shutdown with OpenXR
https://bugs.webkit.org/show_bug.cgi?id=216925

Reviewed by Darin Adler.

Added a very basic initialization and shutdown processes of XR devices using OpenXR. So far we're just creating and destroying
the XR session. Follow up patches will add the required machinery to get frame data from OpenXR.

* Modules/webxr/WebXRSession.cpp:
(WebCore::WebXRSession::WebXRSession): Call initializeTrackingAndRendering().
(WebCore::WebXRSession::~WebXRSession): Call shutdownTrackingAndRendering().
(WebCore::WebXRSession::shutdown): Ditto.
* Modules/webxr/WebXRSystem.h:
* platform/xr/PlatformXR.h: New virtual methods to initialize/shutdown devices.
* platform/xr/openxr/PlatformXROpenXR.cpp:
(PlatformXR::OpenXRDevice::OpenXRDevice): Initialize m_session.
(PlatformXR::OpenXRDevice::~OpenXRDevice): Call shutdownTrackingAndRendering().
(PlatformXR::toXrViewConfigurationType): New method. Translates from SessionMode to XrViewConfigurationType.
(PlatformXR::OpenXRDevice::initializeTrackingAndRendering): New method. Creates a session with a given mode.
(PlatformXR::OpenXRDevice::resetSession): Destroys session.
(PlatformXR::OpenXRDevice::shutdownTrackingAndRendering):
* platform/xr/openxr/PlatformXROpenXR.h:
* testing/WebFakeXRDevice.h: Added empty implementations for the new virtual methods.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/webxr/WebXRSession.cpp
trunk/Source/WebCore/Modules/webxr/WebXRSystem.h
trunk/Source/WebCore/platform/xr/PlatformXR.h
trunk/Source/WebCore/platform/xr/openxr/PlatformXROpenXR.cpp
trunk/Source/WebCore/platform/xr/openxr/PlatformXROpenXR.h
trunk/Source/WebCore/testing/WebFakeXRDevice.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (271287 => 271288)

--- trunk/Source/WebCore/ChangeLog	2021-01-08 07:34:45 UTC (rev 271287)
+++ trunk/Source/WebCore/ChangeLog	2021-01-08 09:59:25 UTC (rev 271288)
@@ -1,3 +1,29 @@
+2020-09-24  Sergio Villar Senin  
+
+[WebXR] Initial implemention of device initialization/shutdown with OpenXR
+https://bugs.webkit.org/show_bug.cgi?id=216925
+
+Reviewed by Darin Adler.
+
+Added a very basic initialization and shutdown processes of XR devices using OpenXR. So far we're just creating and destroying
+the XR session. Follow up patches will add the required machinery to get frame data from OpenXR.
+
+* Modules/webxr/WebXRSession.cpp:
+(WebCore::WebXRSession::WebXRSession): Call initializeTrackingAndRendering().
+(WebCore::WebXRSession::~WebXRSession): Call shutdownTrackingAndRendering().
+(WebCore::WebXRSession::shutdown): Ditto.
+* Modules/webxr/WebXRSystem.h:
+* platform/xr/PlatformXR.h: New virtual methods to initialize/shutdown devices.
+* platform/xr/openxr/PlatformXROpenXR.cpp:
+(PlatformXR::OpenXRDevice::OpenXRDevice): Initialize m_session.
+(PlatformXR::OpenXRDevice::~OpenXRDevice): Call shutdownTrackingAndRendering().
+(PlatformXR::toXrViewConfigurationType): New method. Translates from SessionMode to XrViewConfigurationType.
+(PlatformXR::OpenXRDevice::initializeTrackingAndRendering): New method. Creates a session with a given mode.
+(PlatformXR::OpenXRDevice::resetSession): Destroys session.
+(PlatformXR::OpenXRDevice::shutdownTrackingAndRendering):
+* platform/xr/openxr/PlatformXROpenXR.h:
+* testing/WebFakeXRDevice.h: Added empty implementations for the new virtual methods.
+
 2021-01-07  Zalan Bujtas  
 
 paypal.com: text at the bottom of the page is not aligned properly


Modified: trunk/Source/WebCore/Modules/webxr/WebXRSession.cpp (271287 => 271288)

--- trunk/Source/WebCore/Modules/webxr/WebXRSession.cpp	2021-01-08 07:34:45 UTC (rev 271287)
+++ trunk/Source/WebCore/Modules/webxr/WebXRSession.cpp	2021-01-08 09:59:25 UTC (rev 271288)
@@ -57,12 +57,16 @@
 , m_activeRenderState(WebXRRenderState::create(mode))
 , m_animationTimer(*this, ::animationTimerFired)
 {
-// FIXME: If no other features of the user agent have done so already, perform the necessary platform-specific steps to
-// initialize the device's tracking and rendering capabilities, including showing any necessary instructions to the user.
+m_device->initializeTrackingAndRendering(mode);
+
 suspendIfNeeded();
 }
 
-WebXRSession::~WebXRSession() = default;
+WebXRSession::~WebXRSession()
+{
+if (!m_ended && m_device)
+m_device->shutDownTrackingAndRendering();
+}
 
 XREnvironmentBlendMode WebXRSession::environmentBlendMode() const
 {
@@ -329,6 +333,9 @@
 //  6.1. Releasing exclusive access to the XR device if session is an immersive session.
 //  6.2. Deallocating any graphics resources acquired by session for presentation to the XR device.

[webkit-changes] [271130] trunk/Source/WebCore

2021-01-04 Thread svillar
Title: [271130] trunk/Source/WebCore








Revision 271130
Author svil...@igalia.com
Date 2021-01-04 04:56:42 -0800 (Mon, 04 Jan 2021)


Log Message
[css-multicol] Do not attach  to  multicolumn containers
https://bugs.webkit.org/show_bug.cgi?id=218500

Reviewed by Zalan Bujtas.

Whenever a  is a multicolumn container, any  child must be directly attached
to the  renderer instead of the RenderMultiColumnFlow created by the latter. That was
not happening when the renderer of the DOM node for the  was deleted and then recreated.

The problem was that in those situations the parent and beforeChild arguments for
RenderTreeBuilder::Block::attachIgnoringContinuation() call were not properly selected. This
lead to a scenario were that method was wrongly using the special code path for tables.

* rendering/updating/RenderTreeBuilderBlockFlow.cpp:
(WebCore::RenderTreeBuilder::BlockFlow::attach): Add a special case for attaching a  to
a .

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlockFlow.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (271129 => 271130)

--- trunk/Source/WebCore/ChangeLog	2021-01-04 11:27:44 UTC (rev 271129)
+++ trunk/Source/WebCore/ChangeLog	2021-01-04 12:56:42 UTC (rev 271130)
@@ -1,3 +1,22 @@
+2020-12-14  Sergio Villar Senin  
+
+[css-multicol] Do not attach  to  multicolumn containers
+https://bugs.webkit.org/show_bug.cgi?id=218500
+
+Reviewed by Zalan Bujtas.
+
+Whenever a  is a multicolumn container, any  child must be directly attached
+to the  renderer instead of the RenderMultiColumnFlow created by the latter. That was
+not happening when the renderer of the DOM node for the  was deleted and then recreated.
+
+The problem was that in those situations the parent and beforeChild arguments for
+RenderTreeBuilder::Block::attachIgnoringContinuation() call were not properly selected. This
+lead to a scenario were that method was wrongly using the special code path for tables.
+
+* rendering/updating/RenderTreeBuilderBlockFlow.cpp:
+(WebCore::RenderTreeBuilder::BlockFlow::attach): Add a special case for attaching a  to
+a .
+
 2020-12-17  Sergio Villar Senin  
 
 Intrinsic size not correctly stored for SVG images


Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlockFlow.cpp (271129 => 271130)

--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlockFlow.cpp	2021-01-04 11:27:44 UTC (rev 271129)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlockFlow.cpp	2021-01-04 12:56:42 UTC (rev 271130)
@@ -39,8 +39,13 @@
 
 void RenderTreeBuilder::BlockFlow::attach(RenderBlockFlow& parent, RenderPtr child, RenderObject* beforeChild)
 {
-if (parent.multiColumnFlow() && (!parent.isFieldset() || !child->isLegend())) {
-if (parent.isFieldset() && beforeChild && beforeChild->isLegend())
+if (parent.multiColumnFlow()) {
+auto legendAvoidsMulticolumn = parent.isFieldset() && child->isLegend();
+if (legendAvoidsMulticolumn)
+return m_builder.blockBuilder().attach(parent, WTFMove(child), nullptr);
+
+auto legendBeforeChildIsIncorrect = parent.isFieldset() && beforeChild && beforeChild->isLegend();
+if (legendBeforeChildIsIncorrect)
 return m_builder.blockBuilder().attach(*parent.multiColumnFlow(), WTFMove(child), nullptr);
 
 return m_builder.attach(*parent.multiColumnFlow(), WTFMove(child), beforeChild);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [271129] trunk

2021-01-04 Thread svillar
Title: [271129] trunk








Revision 271129
Author svil...@igalia.com
Date 2021-01-04 03:27:44 -0800 (Mon, 04 Jan 2021)


Log Message
Intrinsic size not correctly stored for SVG images
https://bugs.webkit.org/show_bug.cgi?id=219981

Reviewed by Darin Adler.

Source/WebCore:

Intrinsic sizes were only stored in case the replaced element had an intrinsic size for both height and width.
However it's pretty common for SVG images to only specify one of them and an aspect ratio. We should store it
in those cases too as it'd be useful for some layout systems like flexbox.

* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox const): Replace isEmpty() by isZero() calls to allow
incomplete intrinsic sizes to be stored.

LayoutTests:

* TestExpectations: Removed two flexbox aspect ratio tests that are now passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderReplaced.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (271128 => 271129)

--- trunk/LayoutTests/ChangeLog	2021-01-04 10:34:26 UTC (rev 271128)
+++ trunk/LayoutTests/ChangeLog	2021-01-04 11:27:44 UTC (rev 271129)
@@ -1,3 +1,12 @@
+2020-12-17  Sergio Villar Senin  
+
+Intrinsic size not correctly stored for SVG images
+https://bugs.webkit.org/show_bug.cgi?id=219981
+
+Reviewed by Darin Adler.
+
+* TestExpectations: Removed two flexbox aspect ratio tests that are now passing.
+
 2021-01-03  Rob Buis  
 
 Use UTF-8 encoding for empty main resource loads


Modified: trunk/LayoutTests/TestExpectations (271128 => 271129)

--- trunk/LayoutTests/TestExpectations	2021-01-04 10:34:26 UTC (rev 271128)
+++ trunk/LayoutTests/TestExpectations	2021-01-04 11:27:44 UTC (rev 271129)
@@ -3918,11 +3918,9 @@
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/vertical-alignment-srl-040.xht [ ImageOnlyFailure ]
 
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html [ ImageOnlyFailure ]
 


Modified: trunk/Source/WebCore/ChangeLog (271128 => 271129)

--- trunk/Source/WebCore/ChangeLog	2021-01-04 10:34:26 UTC (rev 271128)
+++ trunk/Source/WebCore/ChangeLog	2021-01-04 11:27:44 UTC (rev 271129)
@@ -1,3 +1,18 @@
+2020-12-17  Sergio Villar Senin  
+
+Intrinsic size not correctly stored for SVG images
+https://bugs.webkit.org/show_bug.cgi?id=219981
+
+Reviewed by Darin Adler.
+
+Intrinsic sizes were only stored in case the replaced element had an intrinsic size for both height and width.
+However it's pretty common for SVG images to only specify one of them and an aspect ratio. We should store it
+in those cases too as it'd be useful for some layout systems like flexbox.
+
+* rendering/RenderReplaced.cpp:
+(WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox const): Replace isEmpty() by isZero() calls to allow
+incomplete intrinsic sizes to be stored.
+
 2021-01-04  Alicia Boya García  
 
 [GStreamer] More robust video size handling


Modified: trunk/Source/WebCore/rendering/RenderReplaced.cpp (271128 => 271129)

--- trunk/Source/WebCore/rendering/RenderReplaced.cpp	2021-01-04 10:34:26 UTC (rev 271128)
+++ trunk/Source/WebCore/rendering/RenderReplaced.cpp	2021-01-04 11:27:44 UTC (rev 271129)
@@ -404,7 +404,7 @@
 // Update our intrinsic size to match what the content renderer has computed, so that when we
 // constrain the size below, the correct intrinsic size will be obtained for comparison against
 // min and max widths.
-if (intrinsicRatio && !intrinsicSize.isEmpty())
+if (intrinsicRatio && !intrinsicSize.isZero())
 m_intrinsicSize = LayoutSize(intrinsicSize);
 
 if (!isHorizontalWritingMode()) {
@@ -414,7 +414,7 @@
 }
 } else {
 computeIntrinsicRatioInformation(intrinsicSize, intrinsicRatio);
-if (intrinsicRatio && !intrinsicSize.isEmpty())
+if (intrinsicRatio 

[webkit-changes] [270617] trunk

2020-12-10 Thread svillar
Title: [270617] trunk








Revision 270617
Author svil...@igalia.com
Date 2020-12-10 01:21:48 -0800 (Thu, 10 Dec 2020)


Log Message
[css-flex] RenderFlexibleBox::computeMainSizeFromAspectRatioUsing() must obbey box-sizing
https://bugs.webkit.org/show_bug.cgi?id=219690

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-005-expected.txt: Replaced one FAIL by PASS expectation.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt: Ditto.

Source/WebCore:

The method was not handling the cases in which box-sizing was border-box and thus it was incorrectly using
border and padding to compute sizes based on aspect ratios (the aspect ratio must be applied to content box).

This fixes 3 subtests from the WPT test suite.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Use a lambda to substract border and
padding extent when box-sizing is border-box.
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not substract border and padding because
computeMainSizeFromAspectRatioUsing now always returns the content box size.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-005-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (270616 => 270617)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-12-10 08:41:43 UTC (rev 270616)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-12-10 09:21:48 UTC (rev 270617)
@@ -1,3 +1,14 @@
+2020-12-09  Sergio Villar Senin  
+
+[css-flex] RenderFlexibleBox::computeMainSizeFromAspectRatioUsing() must obbey box-sizing
+https://bugs.webkit.org/show_bug.cgi?id=219690
+
+Reviewed by Darin Adler.
+
+* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-005-expected.txt: Replaced one FAIL by PASS expectation.
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt: Ditto.
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt: Ditto.
+
 2020-12-09  Cathie Chen  
 
 Support overscroll-behavior parsing


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-005-expected.txt (270616 => 270617)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-005-expected.txt	2020-12-10 08:41:43 UTC (rev 270616)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-005-expected.txt	2020-12-10 09:21:48 UTC (rev 270617)
@@ -10,9 +10,7 @@
 
 
 PASS img 1
-FAIL img 2 assert_equals:
-
-clientWidth expected 100 but got 150
+PASS img 2
 PASS img 3
 PASS img 4
 


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt (270616 => 270617)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt	2020-12-10 08:41:43 UTC (rev 270616)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt	2020-12-10 09:21:48 UTC (rev 270617)
@@ -7,9 +7,7 @@
 
 PASS .flexbox > img 1
 PASS .flexbox > img 2
-FAIL .flexbox > img 3 assert_equals:
-
-width expected 32 but got 30
+PASS .flexbox > img 3
 PASS .flexbox > img 4
 PASS .flexbox > img 5
 PASS .flexbox > img 6


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt (270616 => 270617)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt	2020-12-10 08:41:43 UTC (rev 270616)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt	2020-12-10 09:21:48 UTC (rev 270617)
@@ -7,9 +7,7 @@
 
 PASS .flexbox > img 1
 PASS .flexbox > img 2
-FAIL .flexbox > img 3 assert_equals:
-
-width expected 32 but got 30
+PASS .flexbox > img 3
 PASS .flexbox > img 4
 PASS .flexbox > img 5
 PASS .flexbox > img 6


Modified: trunk/Source/WebCore/ChangeLog (270616 => 270617)

--- trunk/Source/WebCore/ChangeLog	2020-12-10 08:41:43 UTC (rev 270616)
+++ trunk/Source/WebCore/ChangeLog	2020-12-10 09:21:48 UTC (rev 270617)
@@ -1,3 +1,21 @@
+2020-12-09  Sergio Villar Senin  
+
+[css-flex] RenderFlexibleBox::computeMainSizeFromAspectRatioUsing() must obbey box-sizing
+https://bugs.webkit.org/show_bug.cgi?id=219690
+
+Reviewed by Darin Adler.
+
+The 

[webkit-changes] [270580] trunk/Source/WebCore

2020-12-09 Thread svillar
Title: [270580] trunk/Source/WebCore








Revision 270580
Author svil...@igalia.com
Date 2020-12-09 08:15:48 -0800 (Wed, 09 Dec 2020)


Log Message
Multicolumn children becoming in-flow elements should be inserted into the multicolumn flow
https://bugs.webkit.org/show_bug.cgi?id=218503

Reviewed by Zalan Bujtas.

Out of flow children of a multicolumn container are not really part of the multicolumn flow. Making them in-flow (i.e. setting "position: static;")
should trigger the code that inserts them into the MultiColumnFlowThread object of the multicolumn container. RenderTreeBuilder was handling this
in-flow <-> out-of-flow changes just for the cases in which the inline status of an element was affecting the parent.

* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::normalizeTreeAfterStyleChange): Insert renderer in the multicolumn flow thread whenever it becames in flow.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (270579 => 270580)

--- trunk/Source/WebCore/ChangeLog	2020-12-09 16:05:07 UTC (rev 270579)
+++ trunk/Source/WebCore/ChangeLog	2020-12-09 16:15:48 UTC (rev 270580)
@@ -1,3 +1,17 @@
+2020-12-02  Sergio Villar Senin  
+
+Multicolumn children becoming in-flow elements should be inserted into the multicolumn flow
+https://bugs.webkit.org/show_bug.cgi?id=218503
+
+Reviewed by Zalan Bujtas.
+
+Out of flow children of a multicolumn container are not really part of the multicolumn flow. Making them in-flow (i.e. setting "position: static;")
+should trigger the code that inserts them into the MultiColumnFlowThread object of the multicolumn container. RenderTreeBuilder was handling this
+in-flow <-> out-of-flow changes just for the cases in which the inline status of an element was affecting the parent.
+
+* rendering/RenderMultiColumnFlow.cpp:
+(WebCore::RenderMultiColumnFlow::normalizeTreeAfterStyleChange): Insert renderer in the multicolumn flow thread whenever it becames in flow.
+
 2020-12-04  Sergio Villar Senin  
 
 [css-flex] Implement 9.8.1 Definite and Indefinite Sizes


Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (270579 => 270580)

--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2020-12-09 16:05:07 UTC (rev 270579)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2020-12-09 16:15:48 UTC (rev 270580)
@@ -559,7 +559,7 @@
 auto& parent = *renderer.parent();
 
 bool wasFloating = oldStyle.isFloating();
-bool wasOufOfFlowPositioned = oldStyle.hasOutOfFlowPosition();
+bool wasOutOfFlowPositioned = oldStyle.hasOutOfFlowPosition();
 bool isFloating = renderer.style().isFloating();
 bool isOutOfFlowPositioned = renderer.style().hasOutOfFlowPosition();
 bool startsAffectingParent = false;
@@ -566,10 +566,10 @@
 bool noLongerAffectsParent = false;
 
 if (is(parent))
-noLongerAffectsParent = (!wasFloating && isFloating) || (!wasOufOfFlowPositioned && isOutOfFlowPositioned);
+noLongerAffectsParent = (!wasFloating && isFloating) || (!wasOutOfFlowPositioned && isOutOfFlowPositioned);
 
 if (is(parent) || is(parent)) {
-startsAffectingParent = (wasFloating || wasOufOfFlowPositioned) && !isFloating && !isOutOfFlowPositioned;
+startsAffectingParent = (wasFloating || wasOutOfFlowPositioned) && !isFloating && !isOutOfFlowPositioned;
 ASSERT(!startsAffectingParent || !noLongerAffectsParent);
 }
 
@@ -595,6 +595,13 @@
 move(downcast(parent), downcast(*renderer.previousSibling()), renderer, RenderTreeBuilder::NormalizeAfterInsertion::No);
 }
 }
+
+// Out of flow children of RenderMultiColumnFlow are not really part of the multicolumn flow. We need to ensure that changes in positioning like this
+// trigger insertions into the multicolumn flow.
+if (auto* enclosingFragmentedFlow = parent.enclosingFragmentedFlow(); is(enclosingFragmentedFlow) && wasOutOfFlowPositioned && !isOutOfFlowPositioned) {
+multiColumnBuilder().multiColumnDescendantInserted(downcast(*enclosingFragmentedFlow), renderer);
+renderer.initializeFragmentedFlowStateOnInsertion();
+}
 }
 
 void RenderTreeBuilder::makeChildrenNonInline(RenderBlock& parent, RenderObject* insertionPoint)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [270578] trunk

2020-12-09 Thread svillar
Title: [270578] trunk








Revision 270578
Author svil...@igalia.com
Date 2020-12-09 07:40:17 -0800 (Wed, 09 Dec 2020)


Log Message
[css-flex] Implement 9.8.1 Definite and Indefinite Sizes
https://bugs.webkit.org/show_bug.cgi?id=219538

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt: Replaced FAIL by PASS expectations.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt: Ditto.
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt: Ditto.
* web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html: Updated expectation. Still failing.

Source/WebCore:

If a single-line flex container has a definite cross size, the automatic preferred outer cross size
of any stretched flex items is the flex container's inner cross size (clamped to the flex item's
min and max cross size) and is considered definite. Before that we were considering all automatic
sizes as indefinite.

This patch does not consider all the cases where the container cross size is definite but just when
that size is fixed. Support for additional cases should be added in followup patches.

This fixes 3 full tests plus 24 subtests in some other flexbox aspect ratio tests from the WPT suite.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Use the container's cross size
as the item's cross size.
(WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const): Consider automatic cross size inside a
single line container with definite cross size as definite.

LayoutTests:

* TestExpectations: Unskipped 3 tests that are passing now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (270577 => 270578)

--- trunk/LayoutTests/ChangeLog	2020-12-09 13:47:34 UTC (rev 270577)
+++ trunk/LayoutTests/ChangeLog	2020-12-09 15:40:17 UTC (rev 270578)
@@ -1,3 +1,12 @@
+2020-12-04  Sergio Villar Senin  
+
+[css-flex] Implement 9.8.1 Definite and Indefinite Sizes
+https://bugs.webkit.org/show_bug.cgi?id=219538
+
+Reviewed by Manuel Rego Casasnovas.
+
+* TestExpectations: Unskipped 3 tests that are passing now.
+
 2020-12-09  Sihui Liu  
 
 Implement audio capture for SpeechRecognition on iOS


Modified: trunk/LayoutTests/TestExpectations (270577 => 270578)

--- trunk/LayoutTests/TestExpectations	2020-12-09 13:47:34 UTC (rev 270577)
+++ trunk/LayoutTests/TestExpectations	2020-12-09 15:40:17 UTC (rev 270578)
@@ -3912,7 +3912,6 @@
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-006.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
@@ -3923,8 +3922,6 @@
 webkit.org/b/210093 imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-002.html [ ImageOnlyFailure ]
 webkit.org/b/210144 imported/w3c/web-platform-tests/css/css-flexbox/anonymous-flex-item-005.html [ ImageOnlyFailure ]
 webkit.org/b/210478 imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-006.html [ ImageOnlyFailure ]
-webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-005.xht [ ImageOnlyFailure ]
-webkit.org/b/212046 

[webkit-changes] [270288] trunk

2020-12-01 Thread svillar
Title: [270288] trunk








Revision 270288
Author svil...@igalia.com
Date 2020-12-01 01:21:49 -0800 (Tue, 01 Dec 2020)


Log Message
[css-flexbox] WebKit doesn't preserve aspect ratio when computing cross size of flexed images in auto-height flex container
https://bugs.webkit.org/show_bug.cgi?id=209983


Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-flexbox/flexitem-stretch-image-expected.txt: Replace FAIL by PASS expectations.

Source/WebCore:

Aspect ratio was not preserved in the cross axis because WebKit was stretching the items (as they're auto sized) without considering
the aspect ratio. Instead of letting flexbox code deal with that we basically don't stretch them and let RenderReplaced compute the
cross size based on the aspect ratio as it does with other elements that are not flex items.

This allows us to pass 3 tests from the WPT test suite.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::needToStretchChildLogicalHeight const): Return false for replaced elements with aspect ratio.

LayoutTests:

* TestExpectations: Unskipped 2 tests that are working fine now
* css3/flexbox/flexitem.html: Updated expectations. Aspect ratio must be preserved.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/css3/flexbox/flexitem.html
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexitem-stretch-image-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (270287 => 270288)

--- trunk/LayoutTests/ChangeLog	2020-12-01 08:42:50 UTC (rev 270287)
+++ trunk/LayoutTests/ChangeLog	2020-12-01 09:21:49 UTC (rev 270288)
@@ -1,3 +1,14 @@
+2020-12-01  Sergio Villar Senin  
+
+[css-flexbox] WebKit doesn't preserve aspect ratio when computing cross size of flexed images in auto-height flex container
+https://bugs.webkit.org/show_bug.cgi?id=209983
+
+
+Reviewed by Darin Adler.
+
+* TestExpectations: Unskipped 2 tests that are working fine now
+* css3/flexbox/flexitem.html: Updated expectations. Aspect ratio must be preserved.
+
 2020-12-01  Diego Pino Garcia  
 
 [WPE] Unreviewed test gardening. Update WPE baselines of baselines updated r238731.


Modified: trunk/LayoutTests/TestExpectations (270287 => 270288)

--- trunk/LayoutTests/TestExpectations	2020-12-01 08:42:50 UTC (rev 270287)
+++ trunk/LayoutTests/TestExpectations	2020-12-01 09:21:49 UTC (rev 270288)
@@ -3912,11 +3912,9 @@
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-006.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-008.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html [ ImageOnlyFailure ]
 webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html [ ImageOnlyFailure ]
-webkit.org/b/219343 imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-014.html [ ImageOnlyFailure ]
 
 webkit.org/b/145176 imported/w3c/web-platform-tests/css/css-flexbox/flexbox_align-items-stretch-3.html [ ImageOnlyFailure ]
 webkit.org/b/210093 imported/w3c/web-platform-tests/css/css-flexbox/select-element-zero-height-001.html [ ImageOnlyFailure ]


Modified: trunk/LayoutTests/css3/flexbox/flexitem.html (270287 => 270288)

--- trunk/LayoutTests/css3/flexbox/flexitem.html	2020-12-01 08:42:50 UTC (rev 270287)
+++ trunk/LayoutTests/css3/flexbox/flexitem.html	2020-12-01 09:21:49 UTC (rev 270288)
@@ -47,8 +47,8 @@
 
 
   -  
+  
 
 
 


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (270287 => 270288)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-12-01 08:42:50 UTC (rev 270287)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-12-01 09:21:49 UTC (rev 270288)
@@ -1,3 +1,13 @@
+2020-12-01  Sergio Villar Senin  
+
+[css-flexbox] WebKit doesn't preserve aspect ratio when computing cross size of flexed images in auto-height flex container
+https://bugs.webkit.org/show_bug.cgi?id=209983
+
+
+Reviewed by Darin Adler.
+
+* web-platform-tests/css/css-flexbox/flexitem-stretch-image-expected.txt: Replace FAIL by PASS expectations.
+
 2020-11-30  Alex Christensen  
 
 Allow blob URLs with fragments


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexitem-stretch-image-expected.txt 

[webkit-changes] [270237] trunk/LayoutTests

2020-11-30 Thread svillar
Title: [270237] trunk/LayoutTests








Revision 270237
Author svil...@igalia.com
Date 2020-11-30 04:49:33 -0800 (Mon, 30 Nov 2020)


Log Message
[css-flex] Import flex-aspect-ratio-img-* tests
https://bugs.webkit.org/show_bug.cgi?id=219344

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt: Updated.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011.html: Ditto.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-014-expected.xht: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-014.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015-expected.xht: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-016-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-016.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017-expected.txt: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-017.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-006-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-006.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-007.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-008-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-008.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009-expected.xht: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-009.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010-expected.xht: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-010.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-011-expected.xht: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-011.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-012-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-012.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-014-expected.html: Added.
* web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-014.html: Added.
* web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

As part of the work to fix the images with aspect ratio handling when they're flex items, we're importing the latest
additions to the WPT test suite related to that. A few of them work as expected but others require fixes. Note that
one of the tests also updated their expectations and it's now failing now 2 subtests.

* TestExpectations: Added tests that are not working as expected.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/resources/import-expectations.json
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-011.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/w3c-import.log


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-012.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-013.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-014-expected.xht
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-014.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015-expected.xht
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-015.html

[webkit-changes] [270116] trunk

2020-11-20 Thread svillar
Title: [270116] trunk








Revision 270116
Author svil...@igalia.com
Date 2020-11-20 08:09:32 -0800 (Fri, 20 Nov 2020)


Log Message
[css-flex] Images as flex items should use the overridingLogicalWidth when defined to compute the logical height
https://bugs.webkit.org/show_bug.cgi?id=219195

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Replaced 15 FAIL by PASS expectations.

* web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt:
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt:
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-005-expected.txt:
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-006v-expected.txt:
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt:

Source/WebCore:

This is the same fix than the one we did in r270073 but for the other axis. RenderReplaced should use the overridingLogicalWidth
whenever defined instead of the specified logical width to compute the logical height using an intrinsic aspect ratio.
The overriding width is set by flex containers that need to stretch/shrink their items. The current code was not considering
this case and thus, the intrinsic (non-stretched) logical height was used to compute the logical width,
meaning that the stretching set by the flexbox container was ignored.

This patch allows WebKit to pass 15 subtests in already existing aspect ratio flexbox tests from WPT.

* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalHeight const): Use the overriding logical width if defined in presence of a valid aspect ratio.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-005-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-006v-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderReplaced.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (270115 => 270116)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-11-20 15:45:47 UTC (rev 270115)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-11-20 16:09:32 UTC (rev 270116)
@@ -1,3 +1,18 @@
+2020-11-20  Sergio Villar Senin  
+
+[css-flex] Images as flex items should use the overridingLogicalWidth when defined to compute the logical height
+https://bugs.webkit.org/show_bug.cgi?id=219195
+
+Reviewed by Manuel Rego Casasnovas.
+
+Replaced 15 FAIL by PASS expectations.
+
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt:
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt:
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-005-expected.txt:
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-006v-expected.txt:
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt:
+
 2020-11-20  Chris Lord  
 
 Enable font functions on OffscreenCanvas for main-thread


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt (270115 => 270116)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt	2020-11-20 15:45:47 UTC (rev 270115)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt	2020-11-20 16:09:32 UTC (rev 270116)
@@ -8,9 +8,7 @@
 PASS .flexbox > img 1
 PASS .flexbox > img 2
 PASS .flexbox > img 3
-FAIL .flexbox > img 4 assert_equals:
-
-height expected 30 but got 16
+PASS .flexbox > img 4
 PASS .flexbox > img 5
 PASS .flexbox > img 6
 PASS .flexbox > img 7


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt (270115 => 270116)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt	2020-11-20 15:45:47 UTC (rev 270115)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt	2020-11-20 16:09:32 UTC (rev 270116)
@@ -8,9 +8,7 @@
 PASS .flexbox > img 1
 PASS .flexbox > img 2
 PASS .flexbox > img 3
-FAIL .flexbox > img 4 assert_equals:
-
-width expected 30 but got 16
+PASS .flexbox > img 4
 PASS .flexbox > img 5
 PASS .flexbox > img 6
 PASS .flexbox > img 7


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-005-expected.txt (270115 => 270116)

--- 

[webkit-changes] [270073] trunk

2020-11-20 Thread svillar
Title: [270073] trunk








Revision 270073
Author svil...@igalia.com
Date 2020-11-20 01:33:25 -0800 (Fri, 20 Nov 2020)


Log Message
[css-flex] Images as flex items should use the overridingLogicalHeight when defined to compute the logical width
https://bugs.webkit.org/show_bug.cgi?id=218975

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Replaced 19 FAIL by PASS expectations.

* web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt:
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt:
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-005v-expected.txt:
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-006-expected.txt:
* web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt:

Source/WebCore:

RenderReplaced should use the overridingLogicalHeight whenever defined instead of the specified logical height to compute the logical
width using an intrinsic aspect ratio. The overriding height is set by flex containers that need to stretch/shrink their items.
The current code was not considering this case and thus, the intrinsic (non-stretched) logical height was used to compute the logical width,
meaning that the stretching set by the flexbox container was ignored.

Note that it isn't enough to check that there is an overriding height, we must also check that the replaced element has an intrinsic size.
Replaced elements with intrinsic ratios but without intrinsic sizes are handled in a separate code path (it's actually undefined behaviour).
That's why it isn't enough to verify that the element has an aspect ratio, because most SVG graphics actually have defined intrinsic ratios
but not intrinsic sizes.

This allows us to pass an additional 19 subtests in 5 flexbox WPT tests.

* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidth const): Use the overriding logical height if defined in presence of a valid aspect ratio.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-005v-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-006-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderReplaced.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (270072 => 270073)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-11-20 07:33:31 UTC (rev 270072)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-11-20 09:33:25 UTC (rev 270073)
@@ -1,3 +1,18 @@
+2020-11-16  Sergio Villar Senin  
+
+[css-flex] Images as flex items should use the overridingLogicalHeight when defined to compute the logical width
+https://bugs.webkit.org/show_bug.cgi?id=218975
+
+Reviewed by Manuel Rego Casasnovas.
+
+Replaced 19 FAIL by PASS expectations.
+
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt:
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt:
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-005v-expected.txt:
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-006-expected.txt:
+* web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt:
+
 2020-11-19  Chris Dumez  
 
 Regression(r267865) Geolocation API's error callback should be nullable


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt (270072 => 270073)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt	2020-11-20 07:33:31 UTC (rev 270072)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt	2020-11-20 09:33:25 UTC (rev 270073)
@@ -8,9 +8,7 @@
 PASS .flexbox > img 1
 PASS .flexbox > img 2
 PASS .flexbox > img 3
-FAIL .flexbox > img 4 assert_equals:
-
-height expected 30 but got 16
+PASS .flexbox > img 4
 PASS .flexbox > img 5
 PASS .flexbox > img 6
 PASS .flexbox > img 7


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt (270072 => 270073)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt	2020-11-20 07:33:31 UTC (rev 270072)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt	2020-11-20 09:33:25 UTC (rev 270073)
@@ -8,9 +8,7 @@
 PASS .flexbox > img 1
 PASS .flexbox > img 2
 PASS .flexbox > img 3
-FAIL .flexbox > 

[webkit-changes] [270018] trunk

2020-11-19 Thread svillar
Title: [270018] trunk








Revision 270018
Author svil...@igalia.com
Date 2020-11-19 00:40:50 -0800 (Thu, 19 Nov 2020)


Log Message
Nullptr crash in RenderObject::parent
https://bugs.webkit.org/show_bug.cgi?id=218484


Reviewed by Ryosuke Niwa.

Source/WebCore:

Let's imagine the following scenario:

BODY
  LI contenteditable=true
DIV

If the current visible selection is on DIV and we try to execute document.execCommand("InsertOrderedList") then
the current code will first try to fix the orphaned LI before inserting a new list. Fixing the orphaned
LI means that a new list tag must be created between BODY and LI. There is one caveat though, and is that the
InsertNodeBeforeCommand requires that the parent of the new node (in this case the BODY) must be richly editable
(something that is not happening in the example above). That's why we need to ensure that this precondition is met
before trying to fix the orphaned list item.

Test: fast/editing/insert-list-in-orphaned-list-item-crash.html

* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::fixOrphanedListChild): Early return if the parent is not richly editable.
(WebCore::InsertListCommand::doApplyForSingleParagraph): Fixed a typo.

LayoutTests:

Added new test case.

* fast/editing/insert-list-in-orphaned-list-item-crash-expected.txt: Added.
* fast/editing/insert-list-in-orphaned-list-item-crash.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/editing/InsertListCommand.cpp


Added Paths

trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash-expected.txt
trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (270017 => 270018)

--- trunk/LayoutTests/ChangeLog	2020-11-19 08:16:18 UTC (rev 270017)
+++ trunk/LayoutTests/ChangeLog	2020-11-19 08:40:50 UTC (rev 270018)
@@ -1,3 +1,16 @@
+2020-11-17  Sergio Villar Senin  
+
+Nullptr crash in RenderObject::parent
+https://bugs.webkit.org/show_bug.cgi?id=218484
+
+
+Reviewed by Ryosuke Niwa.
+
+Added new test case.
+
+* fast/editing/insert-list-in-orphaned-list-item-crash-expected.txt: Added.
+* fast/editing/insert-list-in-orphaned-list-item-crash.html: Added.
+
 2020-11-19  Diego Pino Garcia  
 
 [GLIB] Unreviewed test gardening. Move common GTK and WPE failures to GLIB.


Added: trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash-expected.txt (0 => 270018)

--- trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash-expected.txt	2020-11-19 08:40:50 UTC (rev 270018)
@@ -0,0 +1 @@
+The test PASS if it does not crash.
Property changes on: trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash-expected.txt
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash.html (0 => 270018)

--- trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash.html	(rev 0)
+++ trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash.html	2020-11-19 08:40:50 UTC (rev 270018)
@@ -0,0 +1,15 @@
+
+
+if (window.testRunner)
+testRunner.dumpAsText();
+function test() {
+document.getSelection().collapse(target);;
+document.execCommand("insertOrderedList");
+}
+
+
+
+
+
+The test PASS if it does not crash.
+
Property changes on: trunk/LayoutTests/fast/editing/insert-list-in-orphaned-list-item-crash.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Modified: trunk/Source/WebCore/ChangeLog (270017 => 270018)

--- trunk/Source/WebCore/ChangeLog	2020-11-19 08:16:18 UTC (rev 270017)
+++ trunk/Source/WebCore/ChangeLog	2020-11-19 08:40:50 UTC (rev 270018)
@@ -1,3 +1,30 @@
+2020-11-17  Sergio Villar Senin  
+
+Nullptr crash in RenderObject::parent
+https://bugs.webkit.org/show_bug.cgi?id=218484
+
+
+Reviewed by Ryosuke Niwa.
+
+Let's imagine the following scenario:
+
+BODY
+  LI contenteditable=true
+DIV
+
+If the current visible selection is on DIV and we try to execute document.execCommand("InsertOrderedList") then
+the current code will first try to fix the orphaned LI before inserting a new list. Fixing the orphaned
+LI means that a new list tag must be created between BODY and LI. There is one caveat though, and is that the
+InsertNodeBeforeCommand requires that the parent of the new node (in this case the BODY) must be richly editable
+(something that is not happening in the example above). 

[webkit-changes] [269954] trunk/Source/WebCore

2020-11-18 Thread svillar
Title: [269954] trunk/Source/WebCore








Revision 269954
Author svil...@igalia.com
Date 2020-11-18 07:03:19 -0800 (Wed, 18 Nov 2020)


Log Message
RenderTreeBuilderBlock using an incorrect anonymous parent to attach a new renderer
https://bugs.webkit.org/show_bug.cgi?id=218505

Reviewed by Antti Koivisto.

Let's consider the following simplified render tree:

PARENT
|___beforeChildAnonymousContainer
|___hierarchy of anonymous blocks
|___beforeChild

When RenderTreeBuilderBlock is attaching a new renderer given PARENT and beforeChild, it first tries to attach it to the PARENT
if beforeChild is a direct child of PARENT. Otherwise it assumes that beforeChild is the direct child of an anonymous block which is
in between PARENT and beforeChild. However in some cases, as the one presented above, beforeChild might have a whole hierarchy of
anonymous blocks in between. That's why we cannot assume that beforeChild->parent() is a direct child of PARENT. Instead we should use
beforeChildAnonymousContainer as the parent of the new renderer.

* rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation): Use beforeChildAnonymousContainer instead of beforeChild->parent().

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (269953 => 269954)

--- trunk/Source/WebCore/ChangeLog	2020-11-18 15:01:03 UTC (rev 269953)
+++ trunk/Source/WebCore/ChangeLog	2020-11-18 15:03:19 UTC (rev 269954)
@@ -1,3 +1,26 @@
+2020-11-17  Sergio Villar Senin  
+
+RenderTreeBuilderBlock using an incorrect anonymous parent to attach a new renderer
+https://bugs.webkit.org/show_bug.cgi?id=218505
+
+Reviewed by Antti Koivisto.
+
+Let's consider the following simplified render tree:
+
+PARENT
+|___beforeChildAnonymousContainer
+|___hierarchy of anonymous blocks
+|___beforeChild
+
+When RenderTreeBuilderBlock is attaching a new renderer given PARENT and beforeChild, it first tries to attach it to the PARENT
+if beforeChild is a direct child of PARENT. Otherwise it assumes that beforeChild is the direct child of an anonymous block which is
+in between PARENT and beforeChild. However in some cases, as the one presented above, beforeChild might have a whole hierarchy of
+anonymous blocks in between. That's why we cannot assume that beforeChild->parent() is a direct child of PARENT. Instead we should use
+beforeChildAnonymousContainer as the parent of the new renderer.
+
+* rendering/updating/RenderTreeBuilderBlock.cpp:
+(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation): Use beforeChildAnonymousContainer instead of beforeChild->parent().
+
 2020-11-18  Sam Weinig  
 
 Address additional feedback from https://bugs.webkit.org/show_bug.cgi?id=218960


Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp (269953 => 269954)

--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp	2020-11-18 15:01:03 UTC (rev 269953)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp	2020-11-18 15:03:19 UTC (rev 269954)
@@ -186,8 +186,8 @@
 #endif
 ) {
 // Insert the child into the anonymous block box instead of here.
-if (child->isInline() || beforeChild->parent()->firstChild() != beforeChild)
-m_builder.attach(*beforeChild->parent(), WTFMove(child), beforeChild);
+if (child->isInline() || beforeChildAnonymousContainer->firstChild() != beforeChild)
+m_builder.attach(*beforeChildAnonymousContainer, WTFMove(child), beforeChild);
 else
 m_builder.attach(parent, WTFMove(child), beforeChild->parent());
 return;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [269840] trunk/Source/WebCore

2020-11-16 Thread svillar
Title: [269840] trunk/Source/WebCore








Revision 269840
Author svil...@igalia.com
Date 2020-11-16 01:50:48 -0800 (Mon, 16 Nov 2020)


Log Message
[css-flex] Better naming from some methods
https://bugs.webkit.org/show_bug.cgi?id=218745

Reviewed by Javier Fernandez.

This patch improves the naming of several confusing methods.
* hasOrthogonalFlow(): was too generic. It was basically checking that the flexbox container main size was not the child's inline size. So we renamed
it to mainAxisIsChildInlineAxis() reverting the output. For most of the cases it was enough to negate the output of the method to have the same
check, but in other cases we decided to swap the if-else blocks as it was more convenient.
* {main|cross}AxisLengthIsDefinite(): the name was misleading because you don't know whether the method is evaluating the child's length
or the container's (the flexbox). Replaced by child{Main|Cross}SizeIsDefinite().
* setOverrideMainAxisContentSizeForChild(): this had 2 problems. First it should use overriding instead of override. Second the size which is
overriden is not the content size, it used to be but not anymore.

No new tests as there is no change in functionality.

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::firstLineBaseline const):
(WebCore::RenderFlexibleBox::mainAxisIsChildInlineAxis const): Renamed from hasOrthogonalFlow(). Also the behaviour
is now reversed from the original function.
(WebCore::RenderFlexibleBox::childIntrinsicLogicalHeight const):
(WebCore::RenderFlexibleBox::childIntrinsicLogicalWidth const):
(WebCore::RenderFlexibleBox::crossAxisIntrinsicExtentForChild const):
(WebCore::RenderFlexibleBox::mainAxisContentExtent): Early return instead of if-else block.
(WebCore::RenderFlexibleBox::useChildAspectRatio const):
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Use a single line for division operators.
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite const): Renamed from mainAxisLengthIsDefinite.
(WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const): Renamed from crossAxisLengthIsDefinite.
(WebCore::RenderFlexibleBox::cacheChildMainSize):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution):
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):
(WebCore::RenderFlexibleBox::childLogicalHeightForPercentageResolution):
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
(WebCore::RenderFlexibleBox::setOverridingMainSizeForChild): Renamed from setOverrideMainAxisContentSizeForChild.
(WebCore::RenderFlexibleBox::alignmentForChild const):
(WebCore::RenderFlexibleBox::childHasIntrinsicMainAxisSize const):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
(WebCore::RenderFlexibleBox::hasOrthogonalFlow const): Deleted.
(WebCore::RenderFlexibleBox::mainAxisLengthIsDefinite const): Deleted.
(WebCore::RenderFlexibleBox::crossAxisLengthIsDefinite const): Deleted.
(WebCore::RenderFlexibleBox::setOverrideMainAxisContentSizeForChild): Deleted.
* rendering/RenderFlexibleBox.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
trunk/Source/WebCore/rendering/RenderFlexibleBox.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (269839 => 269840)

--- trunk/Source/WebCore/ChangeLog	2020-11-16 09:27:23 UTC (rev 269839)
+++ trunk/Source/WebCore/ChangeLog	2020-11-16 09:50:48 UTC (rev 269840)
@@ -1,3 +1,51 @@
+2020-11-10  Sergio Villar Senin  
+
+[css-flex] Better naming from some methods
+https://bugs.webkit.org/show_bug.cgi?id=218745
+
+Reviewed by Javier Fernandez.
+
+This patch improves the naming of several confusing methods.
+* hasOrthogonalFlow(): was too generic. It was basically checking that the flexbox container main size was not the child's inline size. So we renamed
+it to mainAxisIsChildInlineAxis() reverting the output. For most of the cases it was enough to negate the output of the method to have the same
+check, but in other cases we decided to swap the if-else blocks as it was more convenient.
+* {main|cross}AxisLengthIsDefinite(): the name was misleading because you don't know whether the method is evaluating the child's length
+or the container's (the flexbox). Replaced by child{Main|Cross}SizeIsDefinite().
+* setOverrideMainAxisContentSizeForChild(): this had 2 problems. First it should use overriding instead of override. Second the size which is
+overriden is not the content size, it used to be but not anymore.
+
+No new tests as there is no change in functionality.
+
+* rendering/RenderFlexibleBox.cpp:
+(WebCore::RenderFlexibleBox::firstLineBaseline const):
+(WebCore::RenderFlexibleBox::mainAxisIsChildInlineAxis const): 

[webkit-changes] [269728] trunk

2020-11-12 Thread svillar
Title: [269728] trunk








Revision 269728
Author svil...@igalia.com
Date 2020-11-12 03:25:22 -0800 (Thu, 12 Nov 2020)


Log Message
Crash in RenderBox::overrideContainingBlockContentHeight()
https://bugs.webkit.org/show_bug.cgi?id=218504


Reviewed by Zalan Bujtas.

Source/WebCore:

It should check the overriding widths map for vertical writing modes because it deals with logical sizes. Instead it was always checking the
overriding heights map and thus giving incorrect results.

Test: fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::hasOverridingContainingBlockContentHeight const): Check gOverridingContainingBlockContentLogicalWidthMap
for vertical writing modes.

LayoutTests:

* fast/flexbox/flex-column-vertical-rl-dynamic-child-crash-expected.txt: Added.
* fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBox.cpp


Added Paths

trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash-expected.txt
trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (269727 => 269728)

--- trunk/LayoutTests/ChangeLog	2020-11-12 11:10:39 UTC (rev 269727)
+++ trunk/LayoutTests/ChangeLog	2020-11-12 11:25:22 UTC (rev 269728)
@@ -1,3 +1,14 @@
+2020-11-12  Sergio Villar Senin  
+
+Crash in RenderBox::overrideContainingBlockContentHeight()
+https://bugs.webkit.org/show_bug.cgi?id=218504
+
+
+Reviewed by Zalan Bujtas.
+
+* fast/flexbox/flex-column-vertical-rl-dynamic-child-crash-expected.txt: Added.
+* fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html: Added.
+
 2020-11-12  Zalan Bujtas  
 
 Show legacy line layout visual coverage instead of "simple line" layout.


Added: trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash-expected.txt (0 => 269728)

--- trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash-expected.txt	2020-11-12 11:25:22 UTC (rev 269728)
@@ -0,0 +1,3 @@
+This test PASS if it does not crash or assert.
+
+XXX
Property changes on: trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash-expected.txt
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html (0 => 269728)

--- trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html	(rev 0)
+++ trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html	2020-11-12 11:25:22 UTC (rev 269728)
@@ -0,0 +1,27 @@
+
+
+#relative {
+	position: relative;
+	bottom: 15%;
+	column-width: 1em;
+}
+#flex {
+background: url();
+	display: flex;
+	flex-flow: column;
+	writing-mode: vertical-rl;
+ }
+
+
+if (window.testRunner)
+testRunner.dumpAsText();
+function appendHeadToFlex() {
+document.getElementById("flex").appendChild(document.head);
+}
+
+
+This test PASS if it does not crash or assert.
+
+	XXX
+
+
\ No newline at end of file
Property changes on: trunk/LayoutTests/fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html
___


Added: svn:eol-style
+LF
\ No newline at end of property

Added: svn:mime-type
+text/html
\ No newline at end of property

Modified: trunk/Source/WebCore/ChangeLog (269727 => 269728)

--- trunk/Source/WebCore/ChangeLog	2020-11-12 11:10:39 UTC (rev 269727)
+++ trunk/Source/WebCore/ChangeLog	2020-11-12 11:25:22 UTC (rev 269728)
@@ -1,3 +1,20 @@
+2020-11-12  Sergio Villar Senin  
+
+Crash in RenderBox::overrideContainingBlockContentHeight()
+https://bugs.webkit.org/show_bug.cgi?id=218504
+
+
+Reviewed by Zalan Bujtas.
+
+It should check the overriding widths map for vertical writing modes because it deals with logical sizes. Instead it was always checking the
+overriding heights map and thus giving incorrect results.
+
+Test: fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html
+
+* rendering/RenderBox.cpp:
+(WebCore::RenderBox::hasOverridingContainingBlockContentHeight const): Check gOverridingContainingBlockContentLogicalWidthMap
+for vertical writing modes.
+
 2020-11-12  Zalan Bujtas  
 
 Show legacy line layout visual coverage instead of "simple line" layout.


Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (269727 => 269728)

--- trunk/Source/WebCore/rendering/RenderBox.cpp	2020-11-12 11:10:39 UTC (rev 269727)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2020-11-12 11:25:22 UTC (rev 269728)
@@ -1178,7 

[webkit-changes] [269032] trunk/Source/WebCore

2020-10-27 Thread svillar
Title: [269032] trunk/Source/WebCore








Revision 269032
Author svil...@igalia.com
Date 2020-10-27 05:30:53 -0700 (Tue, 27 Oct 2020)


Log Message
[WebXR] Move OpenXR calls off the main thread
https://bugs.webkit.org/show_bug.cgi?id=217752

Reviewed by Youenn Fablet.

The OpenXR API is synchronous. Many of the calls involve dealing with external hardware devices
meaning that they have to potential to block the main thread. They should be moved to a different
thread in order to avoid that.

The PlatformXR::Instance creates a WorkQueue which is going to be used by the OpenXR devices to
issue OpenXR calls and also serialize them to ensure that they are executed sequentially. The
OpenXRDevice's are created in the main thread anyway because we need to get weak pointers from
them in the main thread.

* Modules/webxr/WebXRSystem.cpp:
(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected): Use a scoped exit to call callback. Also
the Vector of immersive devices is now a pointer which might be null, meaning no available devices.
* platform/xr/PlatformXR.h: Added a "using" for the Vector of devices.
* platform/xr/openxr/PlatformXROpenXR.cpp:
(PlatformXR::Instance::Impl::queue const): New getter returning the WorkQueue.
(PlatformXR::Instance::Impl::enumerateApiLayerProperties const): Added an ASSERT.
(PlatformXR::Instance::Impl::checkInstanceExtensionProperties const): Ditto.
(PlatformXR::Instance::Impl::Impl): Create the OpenXR WorkQueue and dispatch a task to perform the
OpenXR system initialization in the queue.
(PlatformXR::Instance::Impl::~Impl): Delete the instance in the WorkQueue
(PlatformXR::Instance::enumerateImmersiveXRDevices): Moved the code to a task in the WorkQueue.
(PlatformXR::OpenXRDevice::OpenXRDevice): Ditto. Also added a completion handler to notify the caller
about the end of the device initialization process.
(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Added an ASSERT.
(PlatformXR::OpenXRDevice::collectConfigurationViews): Ditto.
* platform/xr/openxr/PlatformXROpenXR.h: Added WorkQueue attribute and parameter to device constructor.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/webxr/WebXRSystem.cpp
trunk/Source/WebCore/platform/xr/PlatformXR.h
trunk/Source/WebCore/platform/xr/openxr/PlatformXROpenXR.cpp
trunk/Source/WebCore/platform/xr/openxr/PlatformXROpenXR.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (269031 => 269032)

--- trunk/Source/WebCore/ChangeLog	2020-10-27 11:40:56 UTC (rev 269031)
+++ trunk/Source/WebCore/ChangeLog	2020-10-27 12:30:53 UTC (rev 269032)
@@ -1,3 +1,37 @@
+2020-10-15  Sergio Villar Senin  
+
+[WebXR] Move OpenXR calls off the main thread
+https://bugs.webkit.org/show_bug.cgi?id=217752
+
+Reviewed by Youenn Fablet.
+
+The OpenXR API is synchronous. Many of the calls involve dealing with external hardware devices
+meaning that they have to potential to block the main thread. They should be moved to a different
+thread in order to avoid that.
+
+The PlatformXR::Instance creates a WorkQueue which is going to be used by the OpenXR devices to
+issue OpenXR calls and also serialize them to ensure that they are executed sequentially. The
+OpenXRDevice's are created in the main thread anyway because we need to get weak pointers from
+them in the main thread.
+
+* Modules/webxr/WebXRSystem.cpp:
+(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected): Use a scoped exit to call callback. Also
+the Vector of immersive devices is now a pointer which might be null, meaning no available devices.
+* platform/xr/PlatformXR.h: Added a "using" for the Vector of devices.
+* platform/xr/openxr/PlatformXROpenXR.cpp:
+(PlatformXR::Instance::Impl::queue const): New getter returning the WorkQueue.
+(PlatformXR::Instance::Impl::enumerateApiLayerProperties const): Added an ASSERT.
+(PlatformXR::Instance::Impl::checkInstanceExtensionProperties const): Ditto.
+(PlatformXR::Instance::Impl::Impl): Create the OpenXR WorkQueue and dispatch a task to perform the
+OpenXR system initialization in the queue.
+(PlatformXR::Instance::Impl::~Impl): Delete the instance in the WorkQueue
+(PlatformXR::Instance::enumerateImmersiveXRDevices): Moved the code to a task in the WorkQueue.
+(PlatformXR::OpenXRDevice::OpenXRDevice): Ditto. Also added a completion handler to notify the caller
+about the end of the device initialization process.
+(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Added an ASSERT.
+(PlatformXR::OpenXRDevice::collectConfigurationViews): Ditto.
+* platform/xr/openxr/PlatformXROpenXR.h: Added WorkQueue attribute and parameter to device constructor.
+
 2020-10-27  Xabier Rodriguez Calvar  
 
 [EME][GStreamer] Fix logging in utilities


Modified: trunk/Source/WebCore/Modules/webxr/WebXRSystem.cpp (269031 

[webkit-changes] [268919] trunk/Source/WebCore

2020-10-23 Thread svillar
Title: [268919] trunk/Source/WebCore








Revision 268919
Author svil...@igalia.com
Date 2020-10-23 02:55:25 -0700 (Fri, 23 Oct 2020)


Log Message
Rename override sizes to overriding sizes
https://bugs.webkit.org/show_bug.cgi?id=217898

Reviewed by Darin Adler.

We've been traditionally using the word "override" to refer to those sizes that were explicitly set by
layout systems like tables, flex or grid. However that's a grammatical mistake. override is a verb which
does not work well as a noun. It'd be more correct to refer to them as "overriding" sizes.

No new tests required as this is just a renaming.

* WebCore.order:
* rendering/ComplexLineLayout.cpp:
(WebCore::ComplexLineLayout::updateRubyForJustifiedText):
* rendering/GridLayoutFunctions.cpp:
(WebCore::GridLayoutFunctions::hasOverridingContainingBlockContentSizeForChild):
(WebCore::GridLayoutFunctions::overridingContainingBlockContentSizeForChild):
(WebCore::GridLayoutFunctions::hasOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::GridLayoutFunctions::overrideContainingBlockContentSizeForChild): Deleted.
* rendering/GridLayoutFunctions.h:
* rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::shouldClearOverridingContainingBlockContentSizeForChild):
(WebCore::setOverridingContainingBlockContentSizeForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minContentForChild const):
(WebCore::shouldClearOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::setOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverrideContainingBlockContentSizeForChild const): Deleted.
* rendering/GridTrackSizingAlgorithm.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::computeChildPreferredLogicalWidths const):
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::hasOverridingLogicalHeight const):
(WebCore::RenderBox::hasOverridingLogicalWidth const):
(WebCore::RenderBox::setOverridingLogicalHeight):
(WebCore::RenderBox::setOverridingLogicalWidth):
(WebCore::RenderBox::clearOverridingLogicalHeight):
(WebCore::RenderBox::clearOverridingLogicalWidth):
(WebCore::RenderBox::clearOverridingContentSize):
(WebCore::RenderBox::overridingLogicalWidth const):
(WebCore::RenderBox::overridingLogicalHeight const):
(WebCore::RenderBox::overridingContainingBlockContentWidth const):
(WebCore::RenderBox::overridingContainingBlockContentHeight const):
(WebCore::RenderBox::hasOverridingContainingBlockContentWidth const):
(WebCore::RenderBox::hasOverridingContainingBlockContentHeight const):
(WebCore::RenderBox::overridingContainingBlockContentLogicalWidth const):
(WebCore::RenderBox::overridingContainingBlockContentLogicalHeight const):
(WebCore::RenderBox::hasOverridingContainingBlockContentLogicalWidth const):
(WebCore::RenderBox::hasOverridingContainingBlockContentLogicalHeight const):
(WebCore::RenderBox::setOverridingContainingBlockContentLogicalWidth):
(WebCore::RenderBox::setOverridingContainingBlockContentLogicalHeight):
(WebCore::RenderBox::clearOverridingContainingBlockContentSize):
(WebCore::RenderBox::clearOverridingContainingBlockContentLogicalHeight):
(WebCore::RenderBox::containingBlockLogicalWidthForContent const):
(WebCore::RenderBox::containingBlockLogicalHeightForContent const):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight const):
(WebCore::RenderBox::computeLogicalWidthInFragment const):
(WebCore::RenderBox::cacheIntrinsicContentLogicalHeightForFlexItem const):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::computePercentageLogicalHeight const):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned const):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned const):
(WebCore::RenderBox::hasOverrideLogicalHeight const): Deleted.
(WebCore::RenderBox::hasOverrideLogicalWidth const): Deleted.
(WebCore::RenderBox::setOverrideLogicalHeight): Deleted.
(WebCore::RenderBox::setOverrideLogicalWidth): Deleted.
(WebCore::RenderBox::clearOverrideLogicalHeight): Deleted.
(WebCore::RenderBox::clearOverrideLogicalWidth): Deleted.
(WebCore::RenderBox::clearOverrideContentSize): Deleted.

  1   2   3   >