[webkit-changes] [294752] trunk

2022-05-24 Thread mrobinson
Title: [294752] trunk








Revision 294752
Author mrobin...@webkit.org
Date 2022-05-24 09:57:53 -0700 (Tue, 24 May 2022)


Log Message
REGRESSION (r289032): rotate animation doesn't interpolate between 0 and 1turn without forced 50% https://bugs.webkit.org/show_bug.cgi?id=239906

Reviewed by Simon Fraser.

When using CoreAnimation non-matrix animations to animate rotations,
CoreAnimation will use the shortest direction between two rotation
angles. This means that a rotation from 0 to 360 will not rotate at all.
This is different from how CSS works, where it expects the animation to
do a full turn. In order to avoid problems with this difference, when an
animation includes larger angles (> 180 degrees), fall back to software
animation.

No new tests. It is difficult to make a test for this because
when pausing animations the software path is used.

* LayoutTests/animations/3d/full-rotation-animation-expected.html: Added.
* LayoutTests/animations/3d/full-rotation-animation.html: Added.
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::transformationAnimationValueAt):
(WebCore::hasBigRotationAngle):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
* Source/WebCore/platform/graphics/transforms/TransformOperations.h:
(WebCore::SharedPrimitivesPrefix::primitives const):
(WebCore::SharedPrimitivesPrefix::primitives): Deleted.

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

Modified Paths

trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
trunk/Source/WebCore/platform/graphics/transforms/TransformOperations.h


Added Paths

trunk/LayoutTests/animations/3d/full-rotation-animation-expected.html
trunk/LayoutTests/animations/3d/full-rotation-animation.html




Diff

Added: trunk/LayoutTests/animations/3d/full-rotation-animation-expected.html (0 => 294752)

--- trunk/LayoutTests/animations/3d/full-rotation-animation-expected.html	(rev 0)
+++ trunk/LayoutTests/animations/3d/full-rotation-animation-expected.html	2022-05-24 16:57:53 UTC (rev 294752)
@@ -0,0 +1,20 @@
+
+
+
+
+  
+.test {
+  height: 80px;
+  width: 80px;
+  perspective: 250px;
+  border: 1px solid black;
+  background: green;
+}
+  
+
+
+
+
+
+
+


Added: trunk/LayoutTests/animations/3d/full-rotation-animation.html (0 => 294752)

--- trunk/LayoutTests/animations/3d/full-rotation-animation.html	(rev 0)
+++ trunk/LayoutTests/animations/3d/full-rotation-animation.html	2022-05-24 16:57:53 UTC (rev 294752)
@@ -0,0 +1,39 @@
+
+
+
+
+  
+.box {
+  height: 80px;
+  width: 80px;
+  background-color: red;
+
+  animation-name: animation;
+  animation-duration: 10s;
+  animation-delay: -25000s;
+  animation-timing-function: linear;
+}
+
+.test {
+  height: 80px;
+  width: 80px;
+  perspective: 250px;
+  border: 1px solid black;
+  background: green;
+}
+
+ @keyframes animation {
+ 0% { transform: rotateY(0); }
+ 100% { transform: rotateY(-1turn); }
+}
+
+
+
+
+
+  
+  
+
+
+
+


Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (294751 => 294752)

--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2022-05-24 16:39:51 UTC (rev 294751)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2022-05-24 16:57:53 UTC (rev 294752)
@@ -3463,6 +3463,37 @@
 return true;
 }
 
+static const TransformOperations& transformationAnimationValueAt(const KeyframeValueList& valueList, unsigned i)
+{
+return static_cast(valueList.at(i)).value();
+}
+
+static bool hasBigRotationAngle(const KeyframeValueList& valueList, const SharedPrimitivesPrefix& prefix)
+{
+// Hardware non-matrix animations are used for every function in the shared primitives prefix.
+// These kind of animations have issues with large rotation angles, so for every function that
+// will be represented as a hardware non-matrix animation, check that for each of those functions
+// the animation that's created for it will not have two consecutive keyframes that have a large
+// rotation angle between them.
+const auto& primitives = prefix.primitives();
+for (unsigned animationIndex = 0; animationIndex < primitives.size(); ++animationIndex) {
+auto type = primitives[animationIndex];
+if (type != TransformOperation::ROTATE && type != TransformOperation::ROTATE_3D)
+continue;
+for (size_t i = 1; i < valueList.size(); ++i) {
+// Since the shared primitive at this index is a rotation, both of these transform
+// functions should be RotateTransformOperations.
+auto prevOperation = downcast(transformationAnimationValueAt(valueList, i - 1).at(animationIndex));
+auto operation = downcast(transformationAnimationValueAt(valueList, i).at(animationIndex));
+auto 

[webkit-changes] [294224] trunk

2022-05-16 Thread mrobinson
Title: [294224] trunk








Revision 294224
Author mrobin...@webkit.org
Date 2022-05-16 01:14:46 -0700 (Mon, 16 May 2022)


Log Message
Do not allow unitless values for CSS unprefixed perspective property
https://bugs.webkit.org/show_bug.cgi?id=104805


Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

* web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* web-platform-tests/quirks/unitless-length/excluded-properties-001-expected.txt:

Source/WebCore:

No new tests. This is tested by an existing WPT test:
web-platform-tests/quirks/unitless-length/excluded-properties-001.html

* animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
* css/CSSProperties.json:
* css/parser/CSSPropertyParser.cpp:
(WebCore::consumePerspective):
(WebCore::CSSPropertyParser::consumePrefixedPerspective):
(WebCore::CSSPropertyParser::parseShorthand):
* css/parser/CSSPropertyParser.h:
* rendering/style/WillChangeData.cpp:
(WebCore::WillChangeData::propertyCreatesStackingContext):

LayoutTests:

* platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/quirks/unitless-length/excluded-properties-001-expected.txt
trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
trunk/Source/WebCore/css/CSSProperties.json
trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp
trunk/Source/WebCore/css/parser/CSSPropertyParser.h
trunk/Source/WebCore/rendering/style/WillChangeData.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (294223 => 294224)

--- trunk/LayoutTests/ChangeLog	2022-05-16 07:26:25 UTC (rev 294223)
+++ trunk/LayoutTests/ChangeLog	2022-05-16 08:14:46 UTC (rev 294224)
@@ -1,3 +1,17 @@
+2022-05-16  Martin Robinson  
+
+Do not allow unitless values for CSS unprefixed perspective property
+https://bugs.webkit.org/show_bug.cgi?id=104805
+
+
+Reviewed by Tim Nguyen.
+
+* platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
+* platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+* platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+* platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
+* platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+
 2022-05-15  Fujii Hironori  
 
 [WinCairo] Unreviewed test gardening


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (294223 => 294224)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-05-16 07:26:25 UTC (rev 294223)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-05-16 08:14:46 UTC (rev 294224)
@@ -1,3 +1,14 @@
+2022-05-16  Martin Robinson  
+
+Do not allow unitless values for CSS unprefixed perspective property
+https://bugs.webkit.org/show_bug.cgi?id=104805
+
+
+Reviewed by Tim Nguyen.
+
+* web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+* web-platform-tests/quirks/unitless-length/excluded-properties-001-expected.txt:
+
 2022-05-13  Tim Nguyen  
 
 [css-ui] Unexpose appearance property values already handled by appearance: auto


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt (294223 => 294224)

--- 

[webkit-changes] [293010] trunk/Source/JavaScriptCore

2022-04-19 Thread mrobinson
Title: [293010] trunk/Source/_javascript_Core








Revision 293010
Author mrobin...@webkit.org
Date 2022-04-19 01:48:16 -0700 (Tue, 19 Apr 2022)


Log Message
Fix the address sanitizer build when building with gcc
https://bugs.webkit.org/show_bug.cgi?id=238869

Reviewed by Philippe Normand.

* runtime/ConfigFile.cpp:
(JSC::ConfigFile::ConfigFile):

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/runtime/ConfigFile.cpp




Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (293009 => 293010)

--- trunk/Source/_javascript_Core/ChangeLog	2022-04-19 08:06:44 UTC (rev 293009)
+++ trunk/Source/_javascript_Core/ChangeLog	2022-04-19 08:48:16 UTC (rev 293010)
@@ -1,3 +1,13 @@
+2022-04-19  Martin Robinson  
+
+Fix the address sanitizer build when building with gcc
+https://bugs.webkit.org/show_bug.cgi?id=238869
+
+Reviewed by Philippe Normand.
+
+* runtime/ConfigFile.cpp:
+(JSC::ConfigFile::ConfigFile):
+
 2022-04-18  Yusuke Suzuki  
 
 [JSC] Use constants buffer in DFG


Modified: trunk/Source/_javascript_Core/runtime/ConfigFile.cpp (293009 => 293010)

--- trunk/Source/_javascript_Core/runtime/ConfigFile.cpp	2022-04-19 08:06:44 UTC (rev 293009)
+++ trunk/Source/_javascript_Core/runtime/ConfigFile.cpp	2022-04-19 08:48:16 UTC (rev 293010)
@@ -243,7 +243,9 @@
 if (!filename)
 m_filename[0] = '\0';
 else {
+IGNORE_GCC_WARNINGS_BEGIN("stringop-truncation")
 strncpy(m_filename, filename, s_maxPathLength);
+IGNORE_GCC_WARNINGS_END
 m_filename[s_maxPathLength] = '\0';
 }
 






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


[webkit-changes] [292953] trunk/LayoutTests

2022-04-18 Thread mrobinson
Title: [292953] trunk/LayoutTests








Revision 292953
Author mrobin...@webkit.org
Date 2022-04-18 05:35:13 -0700 (Mon, 18 Apr 2022)


Log Message
TestRunner testdriver does not properly focus elements before sending keys to them
https://bugs.webkit.org/show_bug.cgi?id=237589

Reviewed by Carlos Garcia Campos.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-scroll-snap/input/keyboard-expected.txt:
* web-platform-tests/css/css-scroll-snap/input/keyboard.html:
* web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary-expected.txt:
* web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary.html:
* web-platform-tests/html/semantics/forms/input-change-event-properties-expected.txt:
* web-platform-tests/html/semantics/forms/textfieldselection/selection-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/defaultValue-clobbering-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/email-set-value-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/maxlength-number-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/radio-double-activate-pseudo-expected.txt:
* web-platform-tests/html/semantics/selectors/pseudo-classes/invalid-after-clone-expected.txt:
* web-platform-tests/resources/testdriver-vendor.js: When sending keys, first focus the element
in question.

LayoutTests:

* platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/input-change-event-properties-expected.txt: Added.
* platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/invalid-after-clone-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/invalid-after-clone-expected.txt.
* platform/ios/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/input-change-event-properties-expected.txt: Added.
* platform/mac/imported/w3c/web-platform-tests/css/css-scroll-snap/input/keyboard-expected.txt: Added.
* platform/mac/imported/w3c/web-platform-tests/css/selectors/focus-visible-008-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/keyboard-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/keyboard.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary.html
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/input-change-event-properties-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/defaultValue-clobbering-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/email-set-value-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/maxlength-number-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/radio-double-activate-pseudo-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/invalid-after-clone-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js
trunk/LayoutTests/platform/ios/TestExpectations
trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/css/selectors/focus-visible-008-expected.txt
trunk/LayoutTests/platform/mac-wk1/TestExpectations


Added Paths

trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/input-change-event-properties-expected.txt
trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/
trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/
trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/selectors/
trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/
trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/invalid-after-clone-expected.txt
trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/css/css-scroll-snap/
trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/css/css-scroll-snap/input/
trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/css/css-scroll-snap/input/keyboard-expected.txt
trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/input-change-event-properties-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (292952 => 292953)

--- trunk/LayoutTests/ChangeLog	2022-04-18 11:47:39 UTC (rev 292952)
+++ trunk/LayoutTests/ChangeLog	2022-04-18 12:35:13 UTC (rev 292953)

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

2022-04-15 Thread mrobinson
Title: [292901] trunk/Source/WebCore








Revision 292901
Author mrobin...@webkit.org
Date 2022-04-14 23:08:27 -0700 (Thu, 14 Apr 2022)


Log Message
[GTK] AddressSanitizer: heap-buffer-overflow in WebCore::Length::ref()
https://bugs.webkit.org/show_bug.cgi?id=237389

Reviewed by Žan Doberšek.

* platform/graphics/nicosia/NicosiaAnimation.cpp:
(Nicosia::createThreadsafeKeyFrames): Convert Length members of transform functions to
the fixed variety before they are moved to separate threads.
(Nicosia::Animation::Animation): Use the new helper.
* platform/graphics/transforms/TranslateTransformOperation.h: Added setters.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/nicosia/NicosiaAnimation.cpp
trunk/Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (292900 => 292901)

--- trunk/Source/WebCore/ChangeLog	2022-04-15 05:54:49 UTC (rev 292900)
+++ trunk/Source/WebCore/ChangeLog	2022-04-15 06:08:27 UTC (rev 292901)
@@ -1,3 +1,16 @@
+2022-04-14  Martin Robinson  
+
+[GTK] AddressSanitizer: heap-buffer-overflow in WebCore::Length::ref()
+https://bugs.webkit.org/show_bug.cgi?id=237389
+
+Reviewed by Žan Doberšek.
+
+* platform/graphics/nicosia/NicosiaAnimation.cpp:
+(Nicosia::createThreadsafeKeyFrames): Convert Length members of transform functions to
+the fixed variety before they are moved to separate threads.
+(Nicosia::Animation::Animation): Use the new helper.
+* platform/graphics/transforms/TranslateTransformOperation.h: Added setters.
+
 2022-04-14  Zan Dobersek  
 
 Unreviewed build fix for GTK and WPE.


Modified: trunk/Source/WebCore/platform/graphics/nicosia/NicosiaAnimation.cpp (292900 => 292901)

--- trunk/Source/WebCore/platform/graphics/nicosia/NicosiaAnimation.cpp	2022-04-15 05:54:49 UTC (rev 292900)
+++ trunk/Source/WebCore/platform/graphics/nicosia/NicosiaAnimation.cpp	2022-04-15 06:08:27 UTC (rev 292901)
@@ -21,6 +21,7 @@
 #include "NicosiaAnimation.h"
 
 #include "LayoutSize.h"
+#include "TranslateTransformOperation.h"
 
 namespace Nicosia {
 
@@ -138,9 +139,35 @@
 return CubicBezierTimingFunction::defaultTimingFunction();
 }
 
+static KeyframeValueList createThreadsafeKeyFrames(const KeyframeValueList& originalKeyframes, const FloatSize& boxSize)
+{
+if (originalKeyframes.property() != AnimatedPropertyTransform)
+return originalKeyframes;
+
+// Currently translation operations are the only transform operations that store a non-fixed
+// Length. Some Lengths, in particular those for calc() operations, are not thread-safe or
+// multiprocess safe, because they maintain indices into a shared HashMap of CalculationValues.
+// This code converts all possible unsafe Length parameters to fixed Lengths, which are safe to
+// use in other threads and across IPC channels.
+KeyframeValueList keyframes = originalKeyframes;
+for (unsigned i = 0; i < keyframes.size(); i++) {
+const auto& transformValue = static_cast(keyframes.at(i));
+for (auto& operation : transformValue.value().operations()) {
+if (is(operation)) {
+TranslateTransformOperation* translation = static_cast(operation.get());
+translation->setX(Length(translation->xAsFloat(boxSize), LengthType::Fixed));
+translation->setY(Length(translation->yAsFloat(boxSize), LengthType::Fixed));
+translation->setZ(Length(translation->zAsFloat(), LengthType::Fixed));
+}
+}
+}
+
+return keyframes;
+}
+
 Animation::Animation(const String& name, const KeyframeValueList& keyframes, const FloatSize& boxSize, const WebCore::Animation& animation, MonotonicTime startTime, Seconds pauseTime, AnimationState state)
 : m_name(name.isSafeToSendToAnotherThread() ? name : name.isolatedCopy())
-, m_keyframes(keyframes)
+, m_keyframes(createThreadsafeKeyFrames(keyframes, boxSize))
 , m_boxSize(boxSize)
 , m_timingFunction(animation.timingFunction()->clone())
 , m_iterationCount(animation.iterationCount())


Modified: trunk/Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h (292900 => 292901)

--- trunk/Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h	2022-04-15 05:54:49 UTC (rev 292900)
+++ trunk/Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h	2022-04-15 06:08:27 UTC (rev 292901)
@@ -58,6 +58,10 @@
 Length y() const { return m_y; }
 Length z() const { return m_z; }
 
+void setX(Length newX) { m_x = newX; }
+void setY(Length newY) { m_y = newY; }
+void setZ(Length newZ) { m_z = newZ; }
+
 OperationType primitiveType() const final { return isRepresentableIn2D() ? TRANSLATE : TRANSLATE_3D; }
 
 bool apply(TransformationMatrix& transform, const FloatSize& borderBoxSize) const final







[webkit-changes] [292528] trunk

2022-04-07 Thread mrobinson
Title: [292528] trunk








Revision 292528
Author mrobin...@webkit.org
Date 2022-04-07 03:57:36 -0700 (Thu, 07 Apr 2022)


Log Message
[GTK] Turning on the address sanitizer should disable GIR and documentation
https://bugs.webkit.org/show_bug.cgi?id=238868

Reviewed by Adrian Perez de Castro.

* Source/cmake/OptionsGTK.cmake: Disable documentation when the address
sanitizer is on. Documentation depends on GIR. Also fix the adjustment
of the documentation setting when building on Mac. This also has to
happen before the call to find_package(GI).

Modified Paths

trunk/ChangeLog
trunk/Source/cmake/OptionsGTK.cmake




Diff

Modified: trunk/ChangeLog (292527 => 292528)

--- trunk/ChangeLog	2022-04-07 10:15:35 UTC (rev 292527)
+++ trunk/ChangeLog	2022-04-07 10:57:36 UTC (rev 292528)
@@ -1,3 +1,15 @@
+2022-04-07  Martin Robinson  
+
+[GTK] Turning on the address sanitizer should disable GIR and documentation
+https://bugs.webkit.org/show_bug.cgi?id=238868
+
+Reviewed by Adrian Perez de Castro.
+
+* Source/cmake/OptionsGTK.cmake: Disable documentation when the address
+sanitizer is on. Documentation depends on GIR. Also fix the adjustment
+of the documentation setting when building on Mac. This also has to
+happen before the call to find_package(GI).
+
 2022-04-04  Stephan Szabo  
 
 [PlayStation] Re-disable WebDriver


Modified: trunk/Source/cmake/OptionsGTK.cmake (292527 => 292528)

--- trunk/Source/cmake/OptionsGTK.cmake	2022-04-07 10:15:35 UTC (rev 292527)
+++ trunk/Source/cmake/OptionsGTK.cmake	2022-04-07 10:57:36 UTC (rev 292528)
@@ -276,6 +276,12 @@
 SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_UNIX_PRINTING ${GTK_UNIX_PRINT_FOUND})
 SET_AND_EXPOSE_TO_BUILD(HAVE_OS_DARK_MODE_SUPPORT 1)
 
+# https://bugs.webkit.org/show_bug.cgi?id=182247
+if (ENABLED_COMPILER_SANITIZERS)
+set(ENABLE_INTROSPECTION OFF)
+set(ENABLE_DOCUMENTATION OFF)
+endif ()
+
 # GUri is available in GLib since version 2.66, but we only want to use it if version is >= 2.67.1.
 if (PC_GLIB_VERSION VERSION_GREATER "2.67.1" OR PC_GLIB_VERSION STREQUAL "2.67.1")
 SET_AND_EXPOSE_TO_BUILD(HAVE_GURI 1)
@@ -494,11 +500,6 @@
 endif ()
 endif ()
 
-# https://bugs.webkit.org/show_bug.cgi?id=182247
-if (ENABLED_COMPILER_SANITIZERS)
-set(ENABLE_INTROSPECTION OFF)
-endif ()
-
 # Override the cached variable, gtk-doc does not really work when building on Mac.
 if (APPLE)
 set(ENABLE_GTKDOC OFF)






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


[webkit-changes] [290667] trunk

2022-03-01 Thread mrobinson
Title: [290667] trunk








Revision 290667
Author mrobin...@webkit.org
Date 2022-03-01 12:01:25 -0800 (Tue, 01 Mar 2022)


Log Message
When interpolating between transform lists partial prefix matches should not use matrix interpolation
https://bugs.webkit.org/show_bug.cgi?id=235757


Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt: Mark subtests as passing.
* web-platform-tests/css/css-transforms/animation/transform-composition-expected.txt: Ditto.
* web-platform-tests/css/css-transforms/animation/transform-interpolation-004-expected.txt: Ditto.

Source/WebCore:

No new tests. This is covered by existing WPT tests.

When interpolation between keyframes in transform animations, interpolate prefixes of
compatible transform functions directly. For instance if there are three keyframes:

1. transform: rotateX(...) translateY(...) skew(...)
2. transform: rotateY(...) translateY(...)
3. transform: rotateZ(...) translateZ(...) matrix3d(...)

There will be a directly interpolated rotation animation, a directly interpolated
translation animation, and finally a matrix animation for the remaining functions.
This is important for preserving transforms (such as full rotations) that are lost
during matrix decompose and recompose operations.

This change adds a new helper class SharedPrimitivesPrefix which is used to calculate
the prefix of shared primitives that are shared between keyframes.

Currently, the Core Animation backend only supports animation transformation primitives
across the entire animation, so shared primitive prefixes must span the entire animation
if an animation is accelerated. In the case that an animation is rendered in software,
this prefix can simply be between the current next and previous keyframes.

TransformOperations::blend is extended to blend any two TransformationOperations, which
makes it the only blend function necessary for software animations, computed CSS values,
and for the Nicosia backend, simplifying the interpolation code path.

* animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
* animation/CSSPropertyBlendingClient.h:
* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists):
(WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
* animation/KeyframeEffect.h:
* platform/graphics/GraphicsLayer.cpp:
(WebCore::operationsAt): Deleted.
(WebCore::GraphicsLayer::getSharedPrimitivesForTransformKeyframes): Deleted.
* platform/graphics/GraphicsLayer.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/nicosia/NicosiaAnimation.cpp:
(Nicosia::applyTransformAnimation):
(Nicosia::Animation::Animation):
(Nicosia::Animation::operator=):
(Nicosia::Animation::applyInternal):
* platform/graphics/nicosia/NicosiaAnimation.h:
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::addAnimation):
* platform/graphics/transforms/TransformOperations.cpp:
(WebCore::SharedPrimitivesPrefix::update):
(WebCore::TransformOperations::blend const):
(WebCore::TransformOperations::createBlendedMatrixOperationFromOperationsSuffix const):
(WebCore::TransformOperations::operationsMatch const): Deleted.
(WebCore::TransformOperations::updateSharedPrimitives const): Deleted.
(WebCore::TransformOperations::blendByMatchingOperations const): Deleted.
(WebCore::TransformOperations::blendByUsingMatrixInterpolation const): Deleted.
* platform/graphics/transforms/TransformOperations.h:
(WebCore::TransformOperations::apply const):
(WebCore::SharedPrimitivesPrefix::hadIncompatibleTransformFunctions):
(WebCore::SharedPrimitivesPrefix::primitives):

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-composition-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-004-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp
trunk/Source/WebCore/animation/CSSPropertyBlendingClient.h
trunk/Source/WebCore/animation/KeyframeEffect.cpp
trunk/Source/WebCore/animation/KeyframeEffect.h
trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp
trunk/Source/WebCore/platform/graphics/GraphicsLayer.h
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
trunk/Source/WebCore/platform/graphics/nicosia/NicosiaAnimation.cpp

[webkit-changes] [290422] trunk

2022-02-24 Thread mrobinson
Title: [290422] trunk








Revision 290422
Author mrobin...@webkit.org
Date 2022-02-24 03:57:47 -0800 (Thu, 24 Feb 2022)


Log Message
Implement logical properties for CSS overscroll-behavior
https://bugs.webkit.org/show_bug.cgi?id=237080

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt: Update expectations for passing tests.
* web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical-expected.txt: Ditto.
* web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed-expected.txt: Ditto.
* web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid-expected.txt: Ditto.

Source/WebCore:

No new tests. This is covered by existing WPT tests.

Add support for overscroll-behavior-block and overscroll-behavior-inline, the logical versions
of the overscroll behavior properties.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
* css/CSSProperties.json:
* css/parser/CSSParserContext.cpp:
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):
* css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
trunk/Source/WebCore/css/CSSProperties.json
trunk/Source/WebCore/css/parser/CSSParserContext.cpp
trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp
trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (290421 => 290422)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-24 11:13:46 UTC (rev 290421)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-24 11:57:47 UTC (rev 290422)
@@ -1,3 +1,15 @@
+2022-02-24  Martin Robinson  
+
+Implement logical properties for CSS overscroll-behavior
+https://bugs.webkit.org/show_bug.cgi?id=237080
+
+Reviewed by Simon Fraser.
+
+* web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt: Update expectations for passing tests.
+* web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical-expected.txt: Ditto.
+* web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-computed-expected.txt: Ditto.
+* web-platform-tests/css/css-overscroll-behavior/parsing/overscroll-behavior-valid-expected.txt: Ditto.
+
 2022-02-23  Antti Koivisto  
 
 [CSS Container Queries] offsetWidth/Height and similar should update layout for container queries


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt (290421 => 290422)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt	2022-02-24 11:13:46 UTC (rev 290421)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt	2022-02-24 11:57:47 UTC (rev 290422)
@@ -1,8 +1,8 @@
 
-FAIL Property overscroll-behavior-block has initial value auto assert_true: overscroll-behavior-block doesn't seem to be supported in the computed style expected true got false
-FAIL Property overscroll-behavior-block does not inherit assert_true: expected true got false
-FAIL Property overscroll-behavior-inline has initial value auto assert_true: overscroll-behavior-inline doesn't seem to be supported in the computed style expected true got false
-FAIL Property overscroll-behavior-inline does not inherit assert_true: expected true got false
+PASS Property overscroll-behavior-block has initial value auto
+PASS Property overscroll-behavior-block does not inherit
+PASS Property overscroll-behavior-inline has initial value auto
+PASS Property overscroll-behavior-inline does not inherit
 PASS Property overscroll-behavior-x has initial value auto
 PASS Property overscroll-behavior-x does not inherit
 PASS Property overscroll-behavior-y has initial value auto


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical-expected.txt (290421 => 290422)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/overscroll-behavior-logical-expected.txt	2022-02-24 11:13:46 UTC (rev 290421)
+++ 

[webkit-changes] [289903] trunk

2022-02-16 Thread mrobinson
Title: [289903] trunk








Revision 289903
Author mrobin...@webkit.org
Date 2022-02-16 10:08:58 -0800 (Wed, 16 Feb 2022)


Log Message
transform: perspective(0) should not be considered an identity operation
https://bugs.webkit.org/show_bug.cgi?id=236644

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt: Update expectations.
* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

No new tests. This is covered by existing WPT tests.

* platform/graphics/transforms/PerspectiveTransformOperation.h: When the value of a perspective operation
is zero, it isn't an identity operation, because it will be rounded to 1px.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/transforms/PerspectiveTransformOperation.h




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (289902 => 289903)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-16 18:04:21 UTC (rev 289902)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-16 18:08:58 UTC (rev 289903)
@@ -1,3 +1,13 @@
+2022-02-16  Martin Robinson  
+
+transform: perspective(0) should not be considered an identity operation
+https://bugs.webkit.org/show_bug.cgi?id=236644
+
+Reviewed by Antoine Quint.
+
+* web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt: Update expectations.
+* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
+
 2022-02-16  Ziran Sun  
 
 [InputElement] Remove extra form data made by image submit button when "value" attribute is present.


Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt (289902 => 289903)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt	2022-02-16 18:04:21 UTC (rev 289902)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt	2022-02-16 18:08:58 UTC (rev 289903)
@@ -161,12 +161,12 @@
 PASS Web Animations: property  from [perspective(0.1px) translateZ(0.25px)] to [perspective(0.1px) translateZ(0.25px)] at (0.5) should be [perspective(1px) translateZ(0.25px)]
 PASS CSS Transitions: property  from [perspective(0px) translateZ(0.25px)] to [perspective(0px) translateZ(0.25px)] at (0.5) should be [perspective(1px) translateZ(0.25px)]
 PASS CSS Transitions with transition: all: property  from [perspective(0px) translateZ(0.25px)] to [perspective(0px) translateZ(0.25px)] at (0.5) should be [perspective(1px) translateZ(0.25px)]
-FAIL CSS Animations: property  from [perspective(0px) translateZ(0.25px)] to [perspective(0px) translateZ(0.25px)] at (0.5) should be [perspective(1px) translateZ(0.25px)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , - 1 , 0 , 0 , 0.25 , 0.75 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0.25 , 1 ) "
-FAIL Web Animations: property  from [perspective(0px) translateZ(0.25px)] to [perspective(0px) translateZ(0.25px)] at (0.5) should be [perspective(1px) translateZ(0.25px)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , - 1 , 0 , 0 , 0.25 , 0.75 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0.25 , 1 ) "
-FAIL CSS Transitions: property  from [perspective(0px) translateZ(0.5px)] to [perspective(3px) translateZ(0.5px)] at (0.5) should be [perspective(1.5px) translateZ(0.5px)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , - 0.67 , 0 , 0 , 0.5 , 0.67 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , - 0.17 , 0 , 0 , 0.5 , 0.92 ) "
-FAIL CSS Transitions with transition: all: property  from [perspective(0px) translateZ(0.5px)] to [perspective(3px) translateZ(0.5px)] at (0.5) should be [perspective(1.5px) translateZ(0.5px)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , - 0.67 , 0 , 0 , 0.5 , 0.67 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , - 0.17 , 0 , 0 , 0.5 , 0.92 ) "
-FAIL CSS Animations: property  from [perspective(0px) translateZ(0.5px)] to [perspective(3px) translateZ(0.5px)] at (0.5) should be [perspective(1.5px) translateZ(0.5px)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , - 0.67 , 0 , 0 , 0.5 , 

[webkit-changes] [289810] trunk

2022-02-15 Thread mrobinson
Title: [289810] trunk








Revision 289810
Author mrobin...@webkit.org
Date 2022-02-15 06:53:00 -0800 (Tue, 15 Feb 2022)


Log Message
Scrolling while focusing an element should take into account scroll margin
https://bugs.webkit.org/show_bug.cgi?id=235432

Reviewed by Simon Fraser.

Source/WebCore:

No new tests. This is covered by existing WPT tests.

* page/FrameView.cpp:
(WebCore::FrameView::scrollToFocusedElementInternal): Respect the scroll margin
when focusing an element.

LayoutTests:

* TestExpectations: Mark two tests as passing.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/FrameView.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (289809 => 289810)

--- trunk/LayoutTests/ChangeLog	2022-02-15 14:44:59 UTC (rev 289809)
+++ trunk/LayoutTests/ChangeLog	2022-02-15 14:53:00 UTC (rev 289810)
@@ -1,3 +1,12 @@
+2022-02-15  Martin Robinson  
+
+Scrolling while focusing an element should take into account scroll margin
+https://bugs.webkit.org/show_bug.cgi?id=235432
+
+Reviewed by Simon Fraser.
+
+* TestExpectations: Mark two tests as passing.
+
 2022-02-15  Gabriel Nava Marino  
 
 null ptr deref in WebCore::HTMLModelElement::enterFullscreen()


Modified: trunk/LayoutTests/TestExpectations (289809 => 289810)

--- trunk/LayoutTests/TestExpectations	2022-02-15 14:44:59 UTC (rev 289809)
+++ trunk/LayoutTests/TestExpectations	2022-02-15 14:53:00 UTC (rev 289810)
@@ -4605,11 +4605,9 @@
 imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-root-003.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-001.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-002.html [ ImageOnlyFailure ]
-imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-003.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-snap-001.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-snap-002.html [ ImageOnlyFailure ]
 webkit.org/b/218325 imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-001.html [ Pass ImageOnlyFailure ]
-webkit.org/b/218325 imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-003.html [ Pass ImageOnlyFailure ]
 
 # Cocoa-only
 http/tests/media/hls/hls-hdr-switch.html [ Skip ]


Modified: trunk/Source/WebCore/ChangeLog (289809 => 289810)

--- trunk/Source/WebCore/ChangeLog	2022-02-15 14:44:59 UTC (rev 289809)
+++ trunk/Source/WebCore/ChangeLog	2022-02-15 14:53:00 UTC (rev 289810)
@@ -1,3 +1,16 @@
+2022-02-15  Martin Robinson  
+
+Scrolling while focusing an element should take into account scroll margin
+https://bugs.webkit.org/show_bug.cgi?id=235432
+
+Reviewed by Simon Fraser.
+
+No new tests. This is covered by existing WPT tests.
+
+* page/FrameView.cpp:
+(WebCore::FrameView::scrollToFocusedElementInternal): Respect the scroll margin
+when focusing an element.
+
 2022-02-15  Antoine Quint  
 
 REGRESSION(r289216): Crash in DocumentTimeline::animationCanBeRemoved


Modified: trunk/Source/WebCore/page/FrameView.cpp (289809 => 289810)

--- trunk/Source/WebCore/page/FrameView.cpp	2022-02-15 14:44:59 UTC (rev 289809)
+++ trunk/Source/WebCore/page/FrameView.cpp	2022-02-15 14:53:00 UTC (rev 289810)
@@ -2440,7 +2440,7 @@
 return;
 
 bool insideFixed;
-LayoutRect absoluteBounds = renderer->absoluteAnchorRect();
+LayoutRect absoluteBounds = renderer->absoluteAnchorRectWithScrollMargin();
 renderer->scrollRectToVisible(absoluteBounds, insideFixed, { m_selectionRevealModeForFocusedElement, ScrollAlignment::alignCenterIfNeeded, ScrollAlignment::alignCenterIfNeeded, ShouldAllowCrossOriginScrolling::No });
 }
 






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


[webkit-changes] [289732] trunk

2022-02-14 Thread mrobinson
Title: [289732] trunk








Revision 289732
Author mrobin...@webkit.org
Date 2022-02-14 06:03:06 -0800 (Mon, 14 Feb 2022)


Log Message
Animation from "scale()" to "scale() translate()" does not yield the expected result
https://bugs.webkit.org/show_bug.cgi?id=222595


Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt: Mark tests as passing.
* web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
* web-platform-tests/css/css-transforms/animation/transform-interpolation-003-expected.txt:

Source/WebCore:

No new tests. This is covered by existing WPT tests.

When blending two transform lists, where one list is longer than the other, extending the
shorter list with identity transform functions. This is the behavior specified in the
CSS Transforms Module Level 2 specification.

* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists): Instead of checking each frame
against the first keyframe, collect a list of shared transform primitives and check that each
list has the same number of compatible primitives or a prefix of compatible primitives and is
shorter.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::getSharedPrimitivesForTransformKeyframes): When the transform operation
lists have different sizes, don't always return false. Instead check that the parts that do exist
have matching primitives.
* platform/graphics/transforms/TransformOperations.cpp:
(WebCore::TransformOperations::operationsMatch const):  Only check the transformations in
the shared list size.
(WebCore::TransformOperations::blendByMatchingOperations const): Properly handle when one of the
two operations is null instead of just the toOperation.

LayoutTests:

* compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt:
* compositing/layer-creation/translate-scale-animation-overlap-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt
trunk/LayoutTests/compositing/layer-creation/translate-scale-animation-overlap-expected.txt
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-003-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/animation/KeyframeEffect.cpp
trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp
trunk/Source/WebCore/platform/graphics/transforms/TransformOperations.cpp
trunk/Source/WebCore/platform/graphics/transforms/TransformOperations.h




Diff

Modified: trunk/LayoutTests/ChangeLog (289731 => 289732)

--- trunk/LayoutTests/ChangeLog	2022-02-14 13:04:06 UTC (rev 289731)
+++ trunk/LayoutTests/ChangeLog	2022-02-14 14:03:06 UTC (rev 289732)
@@ -1,3 +1,14 @@
+2022-02-14  Martin Robinson  
+
+Animation from "scale()" to "scale() translate()" does not yield the expected result
+https://bugs.webkit.org/show_bug.cgi?id=222595
+
+
+Reviewed by Simon Fraser.
+
+* compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt:
+* compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
+
 2022-02-13  Fujii Hironori  
 
 Delete fast/animation/request-animation-frame-disabled.html after RequestAnimationFrameEnabled setting is deleted


Modified: trunk/LayoutTests/compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt (289731 => 289732)

--- trunk/LayoutTests/compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt	2022-02-14 13:04:06 UTC (rev 289731)
+++ trunk/LayoutTests/compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt	2022-02-14 14:03:06 UTC (rev 289732)
@@ -5,7 +5,7 @@
 (GraphicsLayer
   (bounds 800.00 600.00)
   (contentsOpaque 1)
-  (children 783
+  (children 800
 (GraphicsLayer
   (offsetFromRenderer width=-14 height=-14)
   (position 34.00 66.00)
@@ -14,11 +14,6 @@
   (drawsContent 1)
 )
 (GraphicsLayer
-  (position 20.00 30.00)
-  (bounds 4.00 4.00)
-  (contentsOpaque 1)
-)
-(GraphicsLayer
   (position 30.00 30.00)
   (bounds 4.00 4.00)
   (contentsOpaque 1)
@@ -244,11 +239,16 @@
   (contentsOpaque 1)
 )
 (GraphicsLayer
-  (position 20.00 40.00)
+  (position 480.00 30.00)
   (bounds 4.00 4.00)
   (contentsOpaque 1)

[webkit-changes] [289523] trunk/LayoutTests

2022-02-10 Thread mrobinson
Title: [289523] trunk/LayoutTests








Revision 289523
Author mrobin...@webkit.org
Date 2022-02-10 01:07:04 -0800 (Thu, 10 Feb 2022)


Log Message
[macOS arm64] imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235084


Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update pixel tolerances for some tests from the WPT transforms suite,
fixing them on Mac and on Glib-based ports.

* web-platform-tests/css/css-transforms/2d-rotate-001.html:
* web-platform-tests/css/css-transforms/group/svg-transform-nested-009.html:
* web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html:
* web-platform-tests/css/css-transforms/preserve3d-and-filter-with-perspective.html:
* web-platform-tests/css/css-transforms/skew-test1.html:
* web-platform-tests/css/css-transforms/transform-background-001.html:
* web-platform-tests/css/css-transforms/transform-background-002.html:
* web-platform-tests/css/css-transforms/transform-table-009.html:
* web-platform-tests/css/css-transforms/transform-table-010.html:
* web-platform-tests/css/css-transforms/transform-table-011.html:
* web-platform-tests/css/css-transforms/transforms-skewX.html:

LayoutTests:

* platform/glib/TestExpectations: Unskip newly passing tests.
* platform/mac/TestExpectations: Ditto.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/2d-rotate-001.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/group/svg-transform-nested-009.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/preserve3d-and-filter-with-perspective.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/skew-test1.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-background-001.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-background-002.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-table-009.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-table-010.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transform-table-011.html
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/transforms-skewX.html
trunk/LayoutTests/platform/glib/TestExpectations
trunk/LayoutTests/platform/mac/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (289522 => 289523)

--- trunk/LayoutTests/ChangeLog	2022-02-10 08:17:01 UTC (rev 289522)
+++ trunk/LayoutTests/ChangeLog	2022-02-10 09:07:04 UTC (rev 289523)
@@ -1,3 +1,14 @@
+2022-02-10  Martin Robinson  
+
+[macOS arm64] imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html is consistently failing
+https://bugs.webkit.org/show_bug.cgi?id=235084
+
+
+Reviewed by Simon Fraser.
+
+* platform/glib/TestExpectations: Unskip newly passing tests.
+* platform/mac/TestExpectations: Ditto.
+
 2022-02-09  Diego Pino Garcia  
 
 [WPE] Mark several WPT SVG import filter tests as failure


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (289522 => 289523)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-10 08:17:01 UTC (rev 289522)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-10 09:07:04 UTC (rev 289523)
@@ -1,3 +1,26 @@
+2022-02-10  Martin Robinson  
+
+[macOS arm64] imported/w3c/web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html is consistently failing
+https://bugs.webkit.org/show_bug.cgi?id=235084
+
+
+Reviewed by Simon Fraser.
+
+Update pixel tolerances for some tests from the WPT transforms suite,
+fixing them on Mac and on Glib-based ports.
+
+* web-platform-tests/css/css-transforms/2d-rotate-001.html:
+* web-platform-tests/css/css-transforms/group/svg-transform-nested-009.html:
+* web-platform-tests/css/css-transforms/perspective-transforms-equivalence.html:
+* web-platform-tests/css/css-transforms/preserve3d-and-filter-with-perspective.html:
+* web-platform-tests/css/css-transforms/skew-test1.html:
+* web-platform-tests/css/css-transforms/transform-background-001.html:
+* web-platform-tests/css/css-transforms/transform-background-002.html:
+* web-platform-tests/css/css-transforms/transform-table-009.html:
+* web-platform-tests/css/css-transforms/transform-table-010.html:
+* web-platform-tests/css/css-transforms/transform-table-011.html:
+* web-platform-tests/css/css-transforms/transforms-skewX.html:
+
 2022-02-10  Manuel Rego Casasnovas  
 
 :focus-visible with click on radio/checkbox labels is broken



[webkit-changes] [289470] trunk/Tools

2022-02-09 Thread mrobinson
Title: [289470] trunk/Tools








Revision 289470
Author mrobin...@webkit.org
Date 2022-02-09 07:58:58 -0800 (Wed, 09 Feb 2022)


Log Message
[Flatpak SDK] Add a wrapper for clangd
https://bugs.webkit.org/show_bug.cgi?id=236240

Reviewed by Philippe Normand.

* flatpak/flatpakutils.py: Refactor this file so that the build constants can be
reused in the new script.
(convert_webkit_source_path_to_sandbox_path):
(convert_sandbox_path_to_webkit_source_path):
(get_build_dir):
(WebkitFlatpak.__init__):
(WebkitFlatpak.clean_args):
(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.is_build_jsc):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.main):
(WebkitFlatpak.check_toolchains_generated):
(WebkitFlatpak.pack_toolchain):
(WebkitFlatpak.host_path_to_sandbox_path): Deleted.
(WebkitFlatpak.sandbox_path_to_host_path): Deleted.
* flatpak/webkit-clangd: Added.

Modified Paths

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


Added Paths

trunk/Tools/flatpak/webkit-clangd




Diff

Modified: trunk/Tools/ChangeLog (289469 => 289470)

--- trunk/Tools/ChangeLog	2022-02-09 15:13:24 UTC (rev 289469)
+++ trunk/Tools/ChangeLog	2022-02-09 15:58:58 UTC (rev 289470)
@@ -1,3 +1,27 @@
+2022-02-09  Martin Robinson  
+
+[Flatpak SDK] Add a wrapper for clangd
+https://bugs.webkit.org/show_bug.cgi?id=236240
+
+Reviewed by Philippe Normand.
+
+* flatpak/flatpakutils.py: Refactor this file so that the build constants can be
+reused in the new script.
+(convert_webkit_source_path_to_sandbox_path):
+(convert_sandbox_path_to_webkit_source_path):
+(get_build_dir):
+(WebkitFlatpak.__init__):
+(WebkitFlatpak.clean_args):
+(WebkitFlatpak.setup_gstbuild):
+(WebkitFlatpak.is_build_jsc):
+(WebkitFlatpak.run_in_sandbox):
+(WebkitFlatpak.main):
+(WebkitFlatpak.check_toolchains_generated):
+(WebkitFlatpak.pack_toolchain):
+(WebkitFlatpak.host_path_to_sandbox_path): Deleted.
+(WebkitFlatpak.sandbox_path_to_host_path): Deleted.
+* flatpak/webkit-clangd: Added.
+
 2022-02-09  Angelos Oikonomopoulos  
 
 Allow hanging run-_javascript_core-tests to print backtrace


Modified: trunk/Tools/flatpak/flatpakutils.py (289469 => 289470)

--- trunk/Tools/flatpak/flatpakutils.py	2022-02-09 15:13:24 UTC (rev 289469)
+++ trunk/Tools/flatpak/flatpakutils.py	2022-02-09 15:58:58 UTC (rev 289470)
@@ -35,6 +35,9 @@
 import re
 import platform
 
+SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
+WEBKIT_SOURCE_DIR = os.path.normpath(os.path.abspath(os.path.join(SCRIPT_DIR, "..", "..")))
+sys.path.insert(0, os.path.join(WEBKIT_SOURCE_DIR, "Tools", "Scripts"))
 from webkitpy.common.system.logutils import configure_logging
 from webkitcorepy import string_utils
 import toml
@@ -59,12 +62,21 @@
 
 FLATPAK_REQUIRED_VERSION = "1.4.4"
 
-scriptdir = os.path.abspath(os.path.dirname(__file__))
 _log = logging.getLogger(__name__)
 
-FLATPAK_USER_DIR_PATH = os.path.realpath(os.path.join(scriptdir, "../../WebKitBuild", "UserFlatpak"))
+BUILD_ROOT_DIR_NAME = 'WebKitBuild'
+
+# This path doesn't take $WEBKIT_OUTPUTDIR in account because the standalone toolchains
+# paths depend on it and those are also hard-coded in the generated sccache config.
+DEFAULT_BUILD_ROOT = os.path.join(WEBKIT_SOURCE_DIR, BUILD_ROOT_DIR_NAME)
+BUILD_ROOT = os.path.join(os.environ.get("WEBKIT_OUTPUTDIR", WEBKIT_SOURCE_DIR), BUILD_ROOT_DIR_NAME)
+FLATPAK_USER_DIR_PATH = os.path.realpath(os.path.join(DEFAULT_BUILD_ROOT, "UserFlatpak"))
+
 DEFAULT_SCCACHE_SCHEDULER='https://sccache.igalia.com'
 
+# Where the source folder is mounted inside the sandbox.
+SANDBOX_SOURCE_ROOT = "/app/webkit"
+
 # Our SDK branch matches with the FDO SDK branch. When updating the FDO SDK release branch
 # in our SDK build definitions please don't forget to update the version here as well.
 SDK_BRANCH = "21.08"
@@ -198,6 +210,20 @@
 return current_version
 
 
+def convert_webkit_source_path_to_sandbox_path(source_path):
+'''Convert a path in the WebKit source directory to the same path in the
+   sandboxed source diretory. '''
+return source_path.replace(WEBKIT_SOURCE_DIR, SANDBOX_SOURCE_ROOT)
+
+
+def convert_sandbox_path_to_webkit_source_path(sandbox_path):
+# For now this supports only files in the /app/webkit path
+return sandbox_path.replace(SANDBOX_SOURCE_ROOT, WEBKIT_SOURCE_DIR)
+
+
+def get_build_dir(platform, build_type):
+return os.path.join(BUILD_ROOT, platform, build_type)
+
 class FlatpakObject:
 
 def __init__(self, user):
@@ -523,12 +549,7 @@
 
 self.release = False
 self.debug = False
-self.source_root = os.path.normpath(os.path.abspath(os.path.join(scriptdir, '../../')))
-# Where the source folder is mounted inside the sandbox.
-self.sandbox_source_root = "/app/webkit"
 
-self.base_build_dir = 'WebKitBuild'
-
 self.build_gst = False
 
 self.platform 

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

2022-02-07 Thread mrobinson
Title: [289219] trunk/Source/WebCore








Revision 289219
Author mrobin...@webkit.org
Date 2022-02-07 07:30:26 -0800 (Mon, 07 Feb 2022)


Log Message
Fix some compilation warnings coming from unhandled execution paths for unexpected enum values
https://bugs.webkit.org/show_bug.cgi?id=236228

Reviewed by Darin Adler.

No new tests. This should not change behavior.

* animation/CompositeOperationOrAuto.h:
(WebCore::toCompositeOperationOrAuto):
* bindings/js/JSCSSStyleValueCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSCSSTransformComponentCustom.cpp:
(WebCore::toJSNewlyCreated):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForAnimationComposition):
* css/CSSUnits.cpp:
(WebCore::unitCategory):
(WebCore::canonicalUnitTypeForCategory):
* platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::receiverCapabilities):
(WebCore::LibWebRTCProvider::senderCapabilities):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/animation/CompositeOperationOrAuto.h
trunk/Source/WebCore/bindings/js/JSCSSStyleValueCustom.cpp
trunk/Source/WebCore/bindings/js/JSCSSTransformComponentCustom.cpp
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
trunk/Source/WebCore/css/CSSUnits.cpp
trunk/Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (289218 => 289219)

--- trunk/Source/WebCore/ChangeLog	2022-02-07 15:27:16 UTC (rev 289218)
+++ trunk/Source/WebCore/ChangeLog	2022-02-07 15:30:26 UTC (rev 289219)
@@ -1,3 +1,27 @@
+2022-02-07  Martin Robinson  
+
+Fix some compilation warnings coming from unhandled execution paths for unexpected enum values
+https://bugs.webkit.org/show_bug.cgi?id=236228
+
+Reviewed by Darin Adler.
+
+No new tests. This should not change behavior.
+
+* animation/CompositeOperationOrAuto.h:
+(WebCore::toCompositeOperationOrAuto):
+* bindings/js/JSCSSStyleValueCustom.cpp:
+(WebCore::toJSNewlyCreated):
+* bindings/js/JSCSSTransformComponentCustom.cpp:
+(WebCore::toJSNewlyCreated):
+* css/CSSComputedStyleDeclaration.cpp:
+(WebCore::valueForAnimationComposition):
+* css/CSSUnits.cpp:
+(WebCore::unitCategory):
+(WebCore::canonicalUnitTypeForCategory):
+* platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
+(WebCore::LibWebRTCProvider::receiverCapabilities):
+(WebCore::LibWebRTCProvider::senderCapabilities):
+
 2022-02-07  Antoine Quint  
 
 [css-logical] [web-animations] Add support for logical properties in JS-originated animations


Modified: trunk/Source/WebCore/animation/CompositeOperationOrAuto.h (289218 => 289219)

--- trunk/Source/WebCore/animation/CompositeOperationOrAuto.h	2022-02-07 15:27:16 UTC (rev 289218)
+++ trunk/Source/WebCore/animation/CompositeOperationOrAuto.h	2022-02-07 15:30:26 UTC (rev 289219)
@@ -41,6 +41,8 @@
 case CompositeOperation::Accumulate:
 return CompositeOperationOrAuto::Accumulate;
 }
+ASSERT_NOT_REACHED();
+return CompositeOperationOrAuto::Auto;
 }
 
 } // namespace WebCore


Modified: trunk/Source/WebCore/bindings/js/JSCSSStyleValueCustom.cpp (289218 => 289219)

--- trunk/Source/WebCore/bindings/js/JSCSSStyleValueCustom.cpp	2022-02-07 15:27:16 UTC (rev 289218)
+++ trunk/Source/WebCore/bindings/js/JSCSSStyleValueCustom.cpp	2022-02-07 15:30:26 UTC (rev 289219)
@@ -58,6 +58,9 @@
 case CSSStyleValueType::CSSStyleValue:
 return createWrapper(globalObject, WTFMove(value));
 }
+
+ASSERT_NOT_REACHED();
+return createWrapper(globalObject, WTFMove(value));
 }
 
 JSValue toJS(JSGlobalObject* lexicalGlobalObject, JSDOMGlobalObject* globalObject, CSSStyleValue& object)


Modified: trunk/Source/WebCore/bindings/js/JSCSSTransformComponentCustom.cpp (289218 => 289219)

--- trunk/Source/WebCore/bindings/js/JSCSSTransformComponentCustom.cpp	2022-02-07 15:27:16 UTC (rev 289218)
+++ trunk/Source/WebCore/bindings/js/JSCSSTransformComponentCustom.cpp	2022-02-07 15:30:26 UTC (rev 289219)
@@ -63,6 +63,8 @@
 case CSSTransformType::Translate:
 return createWrapper(globalObject, WTFMove(value));
 }
+ASSERT_NOT_REACHED();
+return createWrapper(globalObject, WTFMove(value));
 }
 
 JSValue toJS(JSGlobalObject* lexicalGlobalObject, JSDOMGlobalObject* globalObject, CSSTransformComponent& object)


Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (289218 => 289219)

--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2022-02-07 15:27:16 UTC (rev 289218)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2022-02-07 15:30:26 UTC (rev 289219)
@@ -1388,6 +1388,7 @@
 case CompositeOperation::Replace:
 return CSSValuePool::singleton().createIdentifierValue(CSSValueReplace);
 }
+RELEASE_ASSERT_NOT_REACHED();
 }
 
 static Ref valueForAnimationPlayState(AnimationPlayState playState)


Modified: 

[webkit-changes] [289032] trunk

2022-02-03 Thread mrobinson
Title: [289032] trunk








Revision 289032
Author mrobin...@webkit.org
Date 2022-02-03 00:35:59 -0800 (Thu, 03 Feb 2022)


Log Message
Transform interpolation should blend between shared transform function primitives
https://bugs.webkit.org/show_bug.cgi?id=235311


Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Mark some tests as newly passing.

* web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt:
* web-platform-tests/css/css-transforms/animation/matrix-interpolation-expected.txt:
* web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
* web-platform-tests/css/css-transforms/animation/transform-interpolation-002-expected.txt:
* web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
* web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt:
* web-platform-tests/css/css-transforms/animation/transform-translate-composition-expected.txt:

Source/WebCore:

No new tests. This is covered by existing WPT tests.

Allow direct interpolation between mismatching transform functions that share a primitive.
This fixes many tests expecting a certain computed transformation matrix in WPT, but also
allows using hardware animations more often for the CoreAnimation backend.

Rotation, scale, and translate are the only functions that have shared primitives, so they
are the only ones in this change to allow for this new behavior.

When determining if a list of keyframes has shared compatible lists of transforms, return
the vector of primitives that can represent them. In addition code for calculating big
rotations has been removed, because it was unused.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::gSharedPrimitivesForTransformKeyframe): Added.
(WebCore::GraphicsLayer::getSharedPrimitivesForTransformKeyframes): Added.
* platform/graphics/GraphicsLayer.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Modified to take a vector of shared
primitive types instead of a pointer to an array of operations.
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation): Use new method.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::addAnimation): Ditto.
* platform/graphics/transforms/Matrix3DTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::blend): Use the new sharedPrimitiveType method
to determine if the two operations can blend.
* platform/graphics/transforms/MatrixTransformOperation.cpp:
(WebCore::MatrixTransformOperation::blend): Ditto.
* platform/graphics/transforms/PerspectiveTransformOperation.cpp:
(WebCore::PerspectiveTransformOperation::blend): Ditto.
* platform/graphics/transforms/RotateTransformOperation.cpp:
(WebCore::RotateTransformOperation::blend): Ditto.
* platform/graphics/transforms/RotateTransformOperation.h:
* platform/graphics/transforms/ScaleTransformOperation.cpp:
(WebCore::ScaleTransformOperation::blend): Ditto.
* platform/graphics/transforms/ScaleTransformOperation.h:
* platform/graphics/transforms/SkewTransformOperation.cpp:
(WebCore::SkewTransformOperation::blend): Ditto.
* platform/graphics/transforms/TransformOperation.cpp:
(WebCore::TransformOperation::sharedPrimitiveType const):
* platform/graphics/transforms/TransformOperation.h:
(WebCore::TransformOperation::primitiveType const): Added this virtual function which
return the type for the base class. Rotation, scale, and translate specialize this to
return a compatible primitive type.
* platform/graphics/transforms/TransformOperations.cpp:
(WebCore::TransformOperations::operationsMatch const): Modified to check whether operations
share primitives.
* platform/graphics/transforms/TranslateTransformOperation.cpp:
(WebCore::TranslateTransformOperation::blend): Use the new sharedPrimitiveType method.
* platform/graphics/transforms/TranslateTransformOperation.h:

LayoutTests:

Remove a duplicated baseline.

* platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt: Removed.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/matrix-interpolation-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-002-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt

[webkit-changes] [288947] trunk

2022-02-02 Thread mrobinson
Title: [288947] trunk








Revision 288947
Author mrobin...@webkit.org
Date 2022-02-02 01:12:57 -0800 (Wed, 02 Feb 2022)


Log Message
scroll-margin-top doesn't work on inline elements
https://bugs.webkit.org/show_bug.cgi?id=235933


Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-scroll-snap/scroll-target-margin-006-expected.txt: Added.
* web-platform-tests/css/css-scroll-snap/scroll-target-margin-006.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005.html

Move the implementation of absoluteAnchorRectWithScrollMargin which actually processes
the CSS scroll-margin property to RenderElement. This allows it to be used for inline
as well as block elements. The specification says it should apply to both. The box
sizes passed in here do not matter too much, because the Length should never be a
percentage.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::absoluteAnchorRectWithScrollMargin const): Deleted.
* rendering/RenderBox.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::absoluteAnchorRectWithScrollMargin const):
* rendering/RenderElement.h:

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderBox.cpp
trunk/Source/WebCore/rendering/RenderBox.h
trunk/Source/WebCore/rendering/RenderElement.cpp
trunk/Source/WebCore/rendering/RenderElement.h


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-006-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-006.html




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (288946 => 288947)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-02 08:40:41 UTC (rev 288946)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2022-02-02 09:12:57 UTC (rev 288947)
@@ -1,3 +1,14 @@
+2022-02-02  Martin Robinson  
+
+scroll-margin-top doesn't work on inline elements
+https://bugs.webkit.org/show_bug.cgi?id=235933
+
+
+Reviewed by Simon Fraser.
+
+* web-platform-tests/css/css-scroll-snap/scroll-target-margin-006-expected.txt: Added.
+* web-platform-tests/css/css-scroll-snap/scroll-target-margin-006.html: Added.
+
 2022-02-01  Antti Koivisto  
 
 [CSS Container Queries] Ensure query containers have valid layout before resolving the subtree


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-006-expected.txt (0 => 288947)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-006-expected.txt	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-006-expected.txt	2022-02-02 09:12:57 UTC (rev 288947)
@@ -0,0 +1,4 @@
+ TARGETTARGETTARGETTARGET 
+
+PASS scroll-margin is taken into account when scrolling an inline element into view
+


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-006.html (0 => 288947)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-006.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-006.html	2022-02-02 09:12:57 UTC (rev 288947)
@@ -0,0 +1,57 @@
+
+
+scrollIntoView() and scroll-margin applied to an inline element
+
+
+
+  .container {
+border: solid black 1px;
+height: 40px;
+width: 40px;
+overflow: auto;
+  }
+
+
+
+
+
+ +TARGETTARGETTARGETTARGET + +
+
+
+ +