[webkit-changes] [276562] trunk
Title: [276562] trunk Revision 276562 Author timothy_hor...@apple.com Date 2021-04-24 19:12:07 -0700 (Sat, 24 Apr 2021) Log Message Changing the source of a model element with clipping applied does not update the model https://bugs.webkit.org/show_bug.cgi?id=224917 Reviewed by Simon Fraser. Source/WebCore: Tests: model-element/model-element-contents-layer-updates-with-clipping.html model-element/model-element-contents-layer-updates.html Previously, a with a contents clipping layer (e.g. border-radius) would not reparent its contents layer in the right place when setContentsToModel was called again (because the source changed), leaving the old model contents layer in place. * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateSublayerList): Ensure that updateSublayerList always parents contentsLayer in one of its two homes: under contentsClippingLayer, if it exists; otherwise, directly under the primary layer. (WebCore::GraphicsLayerCA::setContentsToModel): Drive-by fix a bug revealed by the tests for this patch: when swapping out the contents layer in setContentsToModel, we also need to mark ContentsRectsChanged, or the new contents layer will not get its bounds set during the subsequent flush. (WebCore::GraphicsLayerCA::setContentsToPlatformLayer): Remove special-case code that was added to fix this bug just for setContentsToPlatformLayer; this case is now correctly handled for all contents layers by updateSublayerList. (WebCore::GraphicsLayerCA::dumpInnerLayer const): * platform/graphics/GraphicsLayerClient.h: * platform/graphics/ca/PlatformCALayer.cpp: (WebCore::PlatformCALayer::dumpAdditionalProperties): * platform/graphics/ca/PlatformCALayer.h: * testing/Internals.cpp: (WebCore::toPlatformLayerTreeFlags): * testing/Internals.h: * testing/Internals.idl: Add a bit to platformLayerTreeAsText() that makes PlatformCALayerRemoteModelHosting dump the size of the model that it is hosting, which is used in the test for this bug. Remove the IncludeOpacity bit since we can just always log opacity if it's not the default. Source/WebKit: * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.h: * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.mm: (WebKit::PlatformCALayerRemoteModelHosting::dumpAdditionalProperties): Add a bit to platformLayerTreeAsText() that makes PlatformCALayerRemoteModelHosting dump the size of the model that it is hosting, which is used in the test for this bug. LayoutTests: * model-element/model-element-contents-layer-updates-expected.txt: Added. * model-element/model-element-contents-layer-updates-with-clipping-expected.txt: Added. * model-element/model-element-contents-layer-updates-with-clipping.html: Added. * model-element/model-element-contents-layer-updates.html: Added. * model-element/resources/cube.usdz: Added. * platform/ios-wk2/TestExpectations: * platform/mac/TestExpectations: Add tests that ensure that adding a with one source, then changing it to another, correctly updates the content layer. Test this both with and without clipping (the without-clipping case passed before this change, with-clipping failed). These tests only work on Cocoa ports with UI-side compositing enabled because they depend on the PlatformCALayer subclass holding on to the model data (and logging its size) in order to distinguish between the two models. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/model-element/model-element-graphics-layers-opacity.html trunk/LayoutTests/platform/ios-wk2/TestExpectations trunk/LayoutTests/platform/mac/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/GraphicsLayerClient.h trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.cpp trunk/Source/WebCore/platform/graphics/ca/PlatformCALayer.h trunk/Source/WebCore/testing/Internals.cpp trunk/Source/WebCore/testing/Internals.h trunk/Source/WebCore/testing/Internals.idl trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.h trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.mm Added Paths trunk/LayoutTests/model-element/model-element-contents-layer-updates-expected.txt trunk/LayoutTests/model-element/model-element-contents-layer-updates-with-clipping-expected.txt trunk/LayoutTests/model-element/model-element-contents-layer-updates-with-clipping.html trunk/LayoutTests/model-element/model-element-contents-layer-updates.html trunk/LayoutTests/model-element/resources/cube.usdz Diff Modified: trunk/LayoutTests/ChangeLog (276561 => 276562) --- trunk/LayoutTests/ChangeLog 2021-04-25 00:50:32 UTC (rev 276561) +++ trunk/LayoutTests/ChangeLog 2021-04-25 02:12:07 UTC (rev 276562) @@ -1,3 +1,26 @@ +2021-04-24 Tim Horton + +Changing the source of a model element with clipping applied does not update the model
[webkit-changes] [276561] trunk/Tools
Title: [276561] trunk/Tools Revision 276561 Author aakash_j...@apple.com Date 2021-04-24 17:50:32 -0700 (Sat, 24 Apr 2021) Log Message Rename slave to worker in webkitpy - part 2 https://bugs.webkit.org/show_bug.cgi?id=224988 Reviewed by Jonathan Bedard. * Scripts/webkitpy/common/system/crashlogs_unittest.py: Modified Paths trunk/Tools/ChangeLog trunk/Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py Diff Modified: trunk/Tools/ChangeLog (276560 => 276561) --- trunk/Tools/ChangeLog 2021-04-25 00:47:41 UTC (rev 276560) +++ trunk/Tools/ChangeLog 2021-04-25 00:50:32 UTC (rev 276561) @@ -1,3 +1,12 @@ +2021-04-24 Aakash Jain + +Rename slave to worker in webkitpy - part 2 +https://bugs.webkit.org/show_bug.cgi?id=224988 + +Reviewed by Jonathan Bedard. + +* Scripts/webkitpy/common/system/crashlogs_unittest.py: + 2021-04-24 Ryosuke Niwa Add an option to not enable all experimental features in WebKitTestRunner Modified: trunk/Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py (276560 => 276561) --- trunk/Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py 2021-04-25 00:47:41 UTC (rev 276560) +++ trunk/Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py 2021-04-25 00:50:32 UTC (rev 276561) @@ -57,7 +57,7 @@ Crashed Thread: 0 Dyld Error Message: - Library not loaded: /Volumes/Data/WebKit-BuildSlave/snowleopard-intel-release/build/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore + Library not loaded: /Volumes/Data/WebKit-Worker/snowleopard-intel-release/build/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore Referenced from: /Volumes/Data/worker/snowleopard-intel-release/build/WebKitBuild/Release/WebKit.framework/Versions/A/WebKit Reason: image not found ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [276560] tags/Safari-611.2.5/
Title: [276560] tags/Safari-611.2.5/ Revision 276560 Author repst...@apple.com Date 2021-04-24 17:47:41 -0700 (Sat, 24 Apr 2021) Log Message Tag Safari-611.2.5. Added Paths tags/Safari-611.2.5/ Diff ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [276559] trunk/Tools
Title: [276559] trunk/Tools Revision 276559 Author rn...@webkit.org Date 2021-04-24 17:39:43 -0700 (Sat, 24 Apr 2021) Log Message Add an option to not enable all experimental features in WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=224958 Reviewed by Tim Horton. Added --no-enable-all-experimental-features to run-webkit-tests and WebKitTestRunner. It causes a crash in DumpRenderTree for now. We should rectify this in the future when we align the behaviors of WebKitTestRunner and DumpRenderTree. * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): Added --no-enable-all-experimental-features. * Scripts/webkitpy/port/driver.py: (Driver.cmd_line): Pass along the option to WebKitTestRunner. * WebKitTestRunner/Options.cpp: (WTR::handleOptionNoEnableAllExperimentalFeatures): Added. (WTR::OptionsHandler::OptionsHandler): Added --no-enable-all-experimental-features. * WebKitTestRunner/Options.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::initialize): (WTR::TestController::resetPreferencesToConsistentValues): * WebKitTestRunner/TestController.h: Modified Paths trunk/Tools/ChangeLog trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py trunk/Tools/Scripts/webkitpy/port/driver.py trunk/Tools/Scripts/webkitpy/port/driver_unittest.py trunk/Tools/WebKitTestRunner/Options.cpp trunk/Tools/WebKitTestRunner/Options.h trunk/Tools/WebKitTestRunner/TestController.cpp trunk/Tools/WebKitTestRunner/TestController.h Diff Modified: trunk/Tools/ChangeLog (276558 => 276559) --- trunk/Tools/ChangeLog 2021-04-24 22:31:57 UTC (rev 276558) +++ trunk/Tools/ChangeLog 2021-04-25 00:39:43 UTC (rev 276559) @@ -1,3 +1,28 @@ +2021-04-24 Ryosuke Niwa + +Add an option to not enable all experimental features in WebKitTestRunner +https://bugs.webkit.org/show_bug.cgi?id=224958 + +Reviewed by Tim Horton. + +Added --no-enable-all-experimental-features to run-webkit-tests and WebKitTestRunner. + +It causes a crash in DumpRenderTree for now. We should rectify this in the future +when we align the behaviors of WebKitTestRunner and DumpRenderTree. + +* Scripts/webkitpy/layout_tests/run_webkit_tests.py: +(parse_args): Added --no-enable-all-experimental-features. +* Scripts/webkitpy/port/driver.py: +(Driver.cmd_line): Pass along the option to WebKitTestRunner. +* WebKitTestRunner/Options.cpp: +(WTR::handleOptionNoEnableAllExperimentalFeatures): Added. +(WTR::OptionsHandler::OptionsHandler): Added --no-enable-all-experimental-features. +* WebKitTestRunner/Options.h: +* WebKitTestRunner/TestController.cpp: +(WTR::TestController::initialize): +(WTR::TestController::resetPreferencesToConsistentValues): +* WebKitTestRunner/TestController.h: + 2021-04-24 Tyler Wilcock Refactor ValueRange from enum to enum class Modified: trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py (276558 => 276559) --- trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py 2021-04-24 22:31:57 UTC (rev 276558) +++ trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py 2021-04-25 00:39:43 UTC (rev 276559) @@ -126,6 +126,8 @@ help="Enable (disable) an internal feature (--internal-feature FeatureName[=true|false])"), optparse.make_option("--experimental-feature", type="string", action="" default=[], help="Enable (disable) an experimental feature (--experimental-feature FeatureName[=true|false])"), +optparse.make_option("--no-enable-all-experimental-features", action="" default=True, dest="enable_all_experimental_features", +help="Enables all experimental features in WebKitTestRunner"), ])) option_group_definitions.append(("WebKit Options", [ Modified: trunk/Tools/Scripts/webkitpy/port/driver.py (276558 => 276559) --- trunk/Tools/Scripts/webkitpy/port/driver.py 2021-04-24 22:31:57 UTC (rev 276558) +++ trunk/Tools/Scripts/webkitpy/port/driver.py 2021-04-25 00:39:43 UTC (rev 276559) @@ -534,6 +534,9 @@ cmd.append('--internal-feature') cmd.append(feature) +if not self._port.get_option('enable_all_experimental_features'): +cmd.append('--no-enable-all-experimental-features') + for feature in self._port.experimental_feature(): cmd.append('--experimental-feature') cmd.append(feature) Modified: trunk/Tools/Scripts/webkitpy/port/driver_unittest.py (276558 => 276559) --- trunk/Tools/Scripts/webkitpy/port/driver_unittest.py 2021-04-24 22:31:57 UTC (rev 276558) +++ trunk/Tools/Scripts/webkitpy/port/driver_unittest.py 2021-04-25 00:39:43 UTC (rev 276559) @@ -27,6 +27,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import unittest +import optparse from webkitpy.common.system.systemhost_mock import MockSystemHost @@ -205,7 +206,7 @@
[webkit-changes] [276558] trunk
Title: [276558] trunk Revision 276558 Author commit-qu...@webkit.org Date 2021-04-24 15:31:57 -0700 (Sat, 24 Apr 2021) Log Message Crash in BreakBlockquoteCommand::doApply() https://bugs.webkit.org/show_bug.cgi?id=224941 Patch by Julian Gonzalez on 2021-04-24 Reviewed by Ryosuke Niwa. Source/WebCore: Despite assertions to the contrary, it is possible for there not to be any node to move into the new blockquote in BreakBlockquoteCommand::doApply() as a result of layout updates, so remove the assertions and handle this case. Test: editing/pasteboard/paste-as-quotation-then-paste-crash.html * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply): LayoutTests: Add test for this crash, running only on Release for now. Thanks to Tuomas Karkkainen for its basic structure. * TestExpectations: * editing/pasteboard/paste-as-quotation-then-paste-crash-expected.txt: Added. * editing/pasteboard/paste-as-quotation-then-paste-crash.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/editing/BreakBlockquoteCommand.cpp Added Paths trunk/LayoutTests/editing/pasteboard/paste-as-quotation-then-paste-crash-expected.txt trunk/LayoutTests/editing/pasteboard/paste-as-quotation-then-paste-crash.html Diff Modified: trunk/LayoutTests/ChangeLog (276557 => 276558) --- trunk/LayoutTests/ChangeLog 2021-04-24 21:29:21 UTC (rev 276557) +++ trunk/LayoutTests/ChangeLog 2021-04-24 22:31:57 UTC (rev 276558) @@ -1,3 +1,17 @@ +2021-04-24 Julian Gonzalez + +Crash in BreakBlockquoteCommand::doApply() +https://bugs.webkit.org/show_bug.cgi?id=224941 + +Reviewed by Ryosuke Niwa. + +Add test for this crash, running only on Release for now. +Thanks to Tuomas Karkkainen for its basic structure. + +* TestExpectations: +* editing/pasteboard/paste-as-quotation-then-paste-crash-expected.txt: Added. +* editing/pasteboard/paste-as-quotation-then-paste-crash.html: Added. + 2021-04-24 Zalan Bujtas [RenderTreeBuilder] Subtree moving should clear the floats on all the descendants Modified: trunk/LayoutTests/TestExpectations (276557 => 276558) --- trunk/LayoutTests/TestExpectations 2021-04-24 21:29:21 UTC (rev 276557) +++ trunk/LayoutTests/TestExpectations 2021-04-24 22:31:57 UTC (rev 276558) @@ -1745,6 +1745,8 @@ webkit.org/b/139634 [ Debug ] fast/selectors/nth-child-of-register-requirement.html [ Slow ] webkit.org/b/139634 [ Debug ] fast/selectors/not-backtracking.html [ Slow ] +webkit.org/b/224941 [ Debug ] editing/pasteboard/paste-as-quotation-then-paste-crash.html [ WontFix ] + webkit.org/b/61932 [ Debug ] jquery/manipulation.html [ Slow ] [ Debug ] jquery/core.html [ Slow ] [ Debug ] jquery/event.html [ Slow ] Added: trunk/LayoutTests/editing/pasteboard/paste-as-quotation-then-paste-crash-expected.txt (0 => 276558) --- trunk/LayoutTests/editing/pasteboard/paste-as-quotation-then-paste-crash-expected.txt (rev 0) +++ trunk/LayoutTests/editing/pasteboard/paste-as-quotation-then-paste-crash-expected.txt 2021-04-24 22:31:57 UTC (rev 276558) @@ -0,0 +1 @@ +This test passes if WebKit does not crash. PASS Added: trunk/LayoutTests/editing/pasteboard/paste-as-quotation-then-paste-crash.html (0 => 276558) --- trunk/LayoutTests/editing/pasteboard/paste-as-quotation-then-paste-crash.html (rev 0) +++ trunk/LayoutTests/editing/pasteboard/paste-as-quotation-then-paste-crash.html 2021-04-24 22:31:57 UTC (rev 276558) @@ -0,0 +1,31 @@ + + + + +:last-child { +all: initial; +} + + +if (window.testRunner) +testRunner.dumpAsText(); + +_onload_ = () => { +let n0 = document.createElement('div'); +document.documentElement.appendChild(n0); +n0.appendChild(document.createElement('input')); +let n1 = document.createElement('input'); +document.documentElement.appendChild(n1); +getSelection().selectAllChildren(n0); +document.execCommand('Copy'); +document.designMode = 'on'; +document.execCommand('PasteAsQuotation'); +getSelection().extend(n1); +document.execCommand('Paste'); +}; + + + +This test passes if WebKit does not crash. PASS + + \ No newline at end of file Modified: trunk/Source/WebCore/ChangeLog (276557 => 276558) --- trunk/Source/WebCore/ChangeLog 2021-04-24 21:29:21 UTC (rev 276557) +++ trunk/Source/WebCore/ChangeLog 2021-04-24 22:31:57 UTC (rev 276558) @@ -1,3 +1,19 @@ +2021-04-24 Julian Gonzalez + +Crash in BreakBlockquoteCommand::doApply() +https://bugs.webkit.org/show_bug.cgi?id=224941 + +Reviewed by Ryosuke Niwa. + +Despite assertions to the contrary, it is possible for there not to be any node +to move into the new blockquote in BreakBlockquoteCommand::doApply() as a result +of layout updates, so remove the assertions and handle this case. + +Test:
[webkit-changes] [276557] branches/safari-611-branch/Source
Title: [276557] branches/safari-611-branch/Source Revision 276557 Author repst...@apple.com Date 2021-04-24 14:29:21 -0700 (Sat, 24 Apr 2021) Log Message Versioning. WebKit-7611.2.5 Modified Paths branches/safari-611-branch/Source/_javascript_Core/Configurations/Version.xcconfig branches/safari-611-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig branches/safari-611-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig branches/safari-611-branch/Source/WebCore/Configurations/Version.xcconfig branches/safari-611-branch/Source/WebCore/PAL/Configurations/Version.xcconfig branches/safari-611-branch/Source/WebInspectorUI/Configurations/Version.xcconfig branches/safari-611-branch/Source/WebKit/Configurations/Version.xcconfig branches/safari-611-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig Diff Modified: branches/safari-611-branch/Source/_javascript_Core/Configurations/Version.xcconfig (276556 => 276557) --- branches/safari-611-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2021-04-24 21:21:24 UTC (rev 276556) +++ branches/safari-611-branch/Source/_javascript_Core/Configurations/Version.xcconfig 2021-04-24 21:29:21 UTC (rev 276557) @@ -23,7 +23,7 @@ MAJOR_VERSION = 611; MINOR_VERSION = 2; -TINY_VERSION = 4; +TINY_VERSION = 5; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-611-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig (276556 => 276557) --- branches/safari-611-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2021-04-24 21:21:24 UTC (rev 276556) +++ branches/safari-611-branch/Source/ThirdParty/ANGLE/Configurations/Version.xcconfig 2021-04-24 21:29:21 UTC (rev 276557) @@ -23,7 +23,7 @@ MAJOR_VERSION = 611; MINOR_VERSION = 2; -TINY_VERSION = 4; +TINY_VERSION = 5; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-611-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (276556 => 276557) --- branches/safari-611-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2021-04-24 21:21:24 UTC (rev 276556) +++ branches/safari-611-branch/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig 2021-04-24 21:29:21 UTC (rev 276557) @@ -23,7 +23,7 @@ MAJOR_VERSION = 611; MINOR_VERSION = 2; -TINY_VERSION = 4; +TINY_VERSION = 5; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-611-branch/Source/WebCore/Configurations/Version.xcconfig (276556 => 276557) --- branches/safari-611-branch/Source/WebCore/Configurations/Version.xcconfig 2021-04-24 21:21:24 UTC (rev 276556) +++ branches/safari-611-branch/Source/WebCore/Configurations/Version.xcconfig 2021-04-24 21:29:21 UTC (rev 276557) @@ -23,7 +23,7 @@ MAJOR_VERSION = 611; MINOR_VERSION = 2; -TINY_VERSION = 4; +TINY_VERSION = 5; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-611-branch/Source/WebCore/PAL/Configurations/Version.xcconfig (276556 => 276557) --- branches/safari-611-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2021-04-24 21:21:24 UTC (rev 276556) +++ branches/safari-611-branch/Source/WebCore/PAL/Configurations/Version.xcconfig 2021-04-24 21:29:21 UTC (rev 276557) @@ -23,7 +23,7 @@ MAJOR_VERSION = 611; MINOR_VERSION = 2; -TINY_VERSION = 4; +TINY_VERSION = 5; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-611-branch/Source/WebInspectorUI/Configurations/Version.xcconfig (276556 => 276557) --- branches/safari-611-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2021-04-24 21:21:24 UTC (rev 276556) +++ branches/safari-611-branch/Source/WebInspectorUI/Configurations/Version.xcconfig 2021-04-24 21:29:21 UTC (rev 276557) @@ -1,6 +1,6 @@ MAJOR_VERSION = 611; MINOR_VERSION = 2; -TINY_VERSION = 4; +TINY_VERSION = 5; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-611-branch/Source/WebKit/Configurations/Version.xcconfig (276556 => 276557) --- branches/safari-611-branch/Source/WebKit/Configurations/Version.xcconfig 2021-04-24 21:21:24 UTC (rev 276556) +++ branches/safari-611-branch/Source/WebKit/Configurations/Version.xcconfig 2021-04-24 21:29:21 UTC (rev 276557) @@ -23,7 +23,7 @@ MAJOR_VERSION = 611; MINOR_VERSION = 2; -TINY_VERSION = 4; +TINY_VERSION = 5; MICRO_VERSION = 0; NANO_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION); Modified: branches/safari-611-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig (276556 => 276557) --- branches/safari-611-branch/Source/WebKitLegacy/mac/Configurations/Version.xcconfig 2021-04-24 21:21:24 UTC
[webkit-changes] [276556] branches/safari-611-branch/Source/WebKit
Title: [276556] branches/safari-611-branch/Source/WebKit Revision 276556 Author repst...@apple.com Date 2021-04-24 14:21:24 -0700 (Sat, 24 Apr 2021) Log Message Reland r275846 with Unreviewed crash fix. rdar://77106929 Corrects crash due to bad merge. Modified Paths branches/safari-611-branch/Source/WebKit/ChangeLog branches/safari-611-branch/Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp branches/safari-611-branch/Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.h branches/safari-611-branch/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp branches/safari-611-branch/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h branches/safari-611-branch/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in branches/safari-611-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp branches/safari-611-branch/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp Diff Modified: branches/safari-611-branch/Source/WebKit/ChangeLog (276555 => 276556) --- branches/safari-611-branch/Source/WebKit/ChangeLog 2021-04-24 21:14:23 UTC (rev 276555) +++ branches/safari-611-branch/Source/WebKit/ChangeLog 2021-04-24 21:21:24 UTC (rev 276556) @@ -497,6 +497,110 @@ 2021-04-15 Russell Epstein +Cherry-pick r275846. rdar://problem/76727548 + +Create WebIDBServer only when it is needed +https://bugs.webkit.org/show_bug.cgi?id=224305 +rdar://71962196 + +Reviewed by Alex Christensen. + +Currently each WebIDBServer has a separate thread, so we don't want to create or keep WebIDBServer if it's not +in use. There are two cases where network process needs a WebIDBServer: +1. handle requests from UI process to collect or remove data +2. handle requests from Web process to perform IDB operations + +Previously, we created a WebIDBServer when network process connects to a web process, but that does not mean web +process will perform IDB operations and we may create a thread that's not used. To avoid this, add a new message +AddIDBConnection for web process to ensure network process has WebIDBServer when it's about to perform operation. + +Also, previously network process removes a WebIDBServer when session is removed and WebIDBServer is not binded +with any web process connection. Now we remove WebIDBServer when it's done handling requests, that is count of +pending requests from UI process is 0 and WebIDBServer is not binded with web process connection. We also remove +WebIDBServer at when network process is about to be destroyed (NetworkProcess::didClose) so we can break the +reference cycle of NetworkProcess-WebIDBServer-IDBServer, and make sure thread exits. + +* NetworkProcess/IndexedDB/WebIDBServer.cpp: +(WebKit::WebIDBServer::create): +(WebKit::WebIDBServer::WebIDBServer): +(WebKit::m_closeCallback): +(WebKit::WebIDBServer::~WebIDBServer): +(WebKit::WebIDBServer::getOrigins): +(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince): +(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins): +(WebKit::WebIDBServer::renameOrigin): +(WebKit::WebIDBServer::removeConnection): +(WebKit::WebIDBServer::close): +(WebKit::WebIDBServer::tryClose): +* NetworkProcess/IndexedDB/WebIDBServer.h: +* NetworkProcess/NetworkConnectionToWebProcess.cpp: +(WebKit::NetworkConnectionToWebProcess::addIDBConnection): +* NetworkProcess/NetworkConnectionToWebProcess.h: +* NetworkProcess/NetworkConnectionToWebProcess.messages.in: +* NetworkProcess/NetworkProcess.cpp: +(WebKit::NetworkProcess::didClose): +(WebKit::NetworkProcess::createNetworkConnectionToWebProcess): +(WebKit::NetworkProcess::destroySession): +(WebKit::NetworkProcess::createWebIDBServer): +(WebKit::NetworkProcess::connectionToWebProcessClosed): +(WebKit::NetworkProcess::removeWebIDBServerIfPossible): Deleted. Move the removal code to WebIDBServer. +* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: +(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): + +git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275846 268f45cc-cd09-0410-ab3c-d52691b4dbfc + +2021-04-12 Sihui Liu + +Create WebIDBServer only when it is needed +https://bugs.webkit.org/show_bug.cgi?id=224305 +rdar://71962196 + +Reviewed by Alex Christensen. + +Currently each WebIDBServer has a separate thread, so we don't want to create or keep WebIDBServer if it's not +in use. There are two cases where network process needs a WebIDBServer: +1. handle requests from UI process to collect or remove data +2. handle requests from Web process to perform IDB operations + +Previously, we created a WebIDBServer when network process connects to a web process, but that does not mean web +process will
[webkit-changes] [276555] branches/safari-611-branch/Source/WebKit
Title: [276555] branches/safari-611-branch/Source/WebKit Revision 276555 Author repst...@apple.com Date 2021-04-24 14:14:23 -0700 (Sat, 24 Apr 2021) Log Message Revert "Re-land Cherry-pick r275846. rdar://problem/76727548" This reverts commit r276398. Modified Paths branches/safari-611-branch/Source/WebKit/ChangeLog branches/safari-611-branch/Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.cpp branches/safari-611-branch/Source/WebKit/NetworkProcess/IndexedDB/WebIDBServer.h branches/safari-611-branch/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp branches/safari-611-branch/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h branches/safari-611-branch/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in branches/safari-611-branch/Source/WebKit/NetworkProcess/NetworkProcess.cpp branches/safari-611-branch/Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp Diff Modified: branches/safari-611-branch/Source/WebKit/ChangeLog (276554 => 276555) --- branches/safari-611-branch/Source/WebKit/ChangeLog 2021-04-24 19:36:27 UTC (rev 276554) +++ branches/safari-611-branch/Source/WebKit/ChangeLog 2021-04-24 21:14:23 UTC (rev 276555) @@ -497,110 +497,6 @@ 2021-04-15 Russell Epstein -Cherry-pick r275846. rdar://problem/76727548 - -Create WebIDBServer only when it is needed -https://bugs.webkit.org/show_bug.cgi?id=224305 -rdar://71962196 - -Reviewed by Alex Christensen. - -Currently each WebIDBServer has a separate thread, so we don't want to create or keep WebIDBServer if it's not -in use. There are two cases where network process needs a WebIDBServer: -1. handle requests from UI process to collect or remove data -2. handle requests from Web process to perform IDB operations - -Previously, we created a WebIDBServer when network process connects to a web process, but that does not mean web -process will perform IDB operations and we may create a thread that's not used. To avoid this, add a new message -AddIDBConnection for web process to ensure network process has WebIDBServer when it's about to perform operation. - -Also, previously network process removes a WebIDBServer when session is removed and WebIDBServer is not binded -with any web process connection. Now we remove WebIDBServer when it's done handling requests, that is count of -pending requests from UI process is 0 and WebIDBServer is not binded with web process connection. We also remove -WebIDBServer at when network process is about to be destroyed (NetworkProcess::didClose) so we can break the -reference cycle of NetworkProcess-WebIDBServer-IDBServer, and make sure thread exits. - -* NetworkProcess/IndexedDB/WebIDBServer.cpp: -(WebKit::WebIDBServer::create): -(WebKit::WebIDBServer::WebIDBServer): -(WebKit::m_closeCallback): -(WebKit::WebIDBServer::~WebIDBServer): -(WebKit::WebIDBServer::getOrigins): -(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince): -(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins): -(WebKit::WebIDBServer::renameOrigin): -(WebKit::WebIDBServer::removeConnection): -(WebKit::WebIDBServer::close): -(WebKit::WebIDBServer::tryClose): -* NetworkProcess/IndexedDB/WebIDBServer.h: -* NetworkProcess/NetworkConnectionToWebProcess.cpp: -(WebKit::NetworkConnectionToWebProcess::addIDBConnection): -* NetworkProcess/NetworkConnectionToWebProcess.h: -* NetworkProcess/NetworkConnectionToWebProcess.messages.in: -* NetworkProcess/NetworkProcess.cpp: -(WebKit::NetworkProcess::didClose): -(WebKit::NetworkProcess::createNetworkConnectionToWebProcess): -(WebKit::NetworkProcess::destroySession): -(WebKit::NetworkProcess::createWebIDBServer): -(WebKit::NetworkProcess::connectionToWebProcessClosed): -(WebKit::NetworkProcess::removeWebIDBServerIfPossible): Deleted. Move the removal code to WebIDBServer. -* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: -(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): - -git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275846 268f45cc-cd09-0410-ab3c-d52691b4dbfc - -2021-04-12 Sihui Liu - -Create WebIDBServer only when it is needed -https://bugs.webkit.org/show_bug.cgi?id=224305 -rdar://71962196 - -Reviewed by Alex Christensen. - -Currently each WebIDBServer has a separate thread, so we don't want to create or keep WebIDBServer if it's not -in use. There are two cases where network process needs a WebIDBServer: -1. handle requests from UI process to collect or remove data -2. handle requests from Web process to perform IDB operations - -Previously, we created a WebIDBServer when network process connects to a web process, but that does not mean web -process will
[webkit-changes] [276554] trunk
Title: [276554] trunk Revision 276554 Author grao...@webkit.org Date 2021-04-24 12:36:27 -0700 (Sat, 24 Apr 2021) Log Message Improve parsing and computed style of the rotate CSS property https://bugs.webkit.org/show_bug.cgi?id=225019 Reviewed by Dean Jackson. LayoutTests/imported/w3c: Mark 2 WPT progressions and add some new parsing WPT tests for rotate. * web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt: We don't support additive interpolation, the FAIL result is most likely a test that passed without proper support for the feature which now fails due to lack of support for this feature. * web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid-expected.txt: * web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid.html: * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: Source/WebCore: There were a few issues with how we parsed the rotate CSS property and how we dealt with it when resolving the computed style. When parsing, we required individual vector coordinates to be 1 when others were 0 for a vector to be considered parallel with the x, y or z axis. We now support any positive value. Then, as we create the TransformOperation from the CSSValue, we must set the type to ROTATE_3D instead of ROTATE_Z if the z axis was specified through the CSS value. Indeed, ROTATE_Z is equivalent to ROTATE and without setting this type to ROTATE_3D, TransformOperation::is3DOperation() would return false. This is important because when figuring out the computed style, we should only return an angle without a rotation vector if TransformOperation::is3DOperation() is false. For the case where the operation was specified in 3D, we now use the same rule used when parsing to determine whether the rotation vector is parallel with the x, y or z axis to use the matching keywords. * css/CSSComputedStyleDeclaration.cpp: (WebCore::computedRotate): * css/TransformFunctions.cpp: (WebCore::rotateForValue): * css/parser/CSSPropertyParser.cpp: (WebCore::consumeRotate): Modified Paths trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid.html trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-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/css/CSSComputedStyleDeclaration.cpp trunk/Source/WebCore/css/TransformFunctions.cpp trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp Diff Modified: trunk/LayoutTests/imported/w3c/ChangeLog (276553 => 276554) --- trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-24 19:35:08 UTC (rev 276553) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-24 19:36:27 UTC (rev 276554) @@ -1,5 +1,23 @@ 2021-04-24 Antoine Quint +Improve parsing and computed style of the rotate CSS property +https://bugs.webkit.org/show_bug.cgi?id=225019 + +Reviewed by Dean Jackson. + +Mark 2 WPT progressions and add some new parsing WPT tests for rotate. + +* web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt: We don't support additive interpolation, +the FAIL result is most likely a test that passed without proper support for the feature which now fails due to lack of +support for this feature. +* web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid-expected.txt: +* web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid.html: +* web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt: +* web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt: +* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: + +2021-04-24 Antoine Quint + Support interpolation of the background-repeat shorthand https://bugs.webkit.org/show_bug.cgi?id=225016 Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt (276553 => 276554) ---
[webkit-changes] [276553] trunk
Title: [276553] trunk Revision 276553 Author grao...@webkit.org Date 2021-04-24 12:35:08 -0700 (Sat, 24 Apr 2021) Log Message Support interpolation of the background-repeat shorthand https://bugs.webkit.org/show_bug.cgi?id=225016 Reviewed by Dean Jackson. LayoutTests/imported/w3c: Mark 10 WPT progressions. * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt: Source/WebCore: * animation/CSSPropertyAnimation.cpp: (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Modified Paths trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp Diff Modified: trunk/LayoutTests/imported/w3c/ChangeLog (276552 => 276553) --- trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-24 19:33:21 UTC (rev 276552) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-24 19:35:08 UTC (rev 276553) @@ -1,5 +1,18 @@ 2021-04-24 Antoine Quint +Support interpolation of the background-repeat shorthand +https://bugs.webkit.org/show_bug.cgi?id=225016 + +Reviewed by Dean Jackson. + +Mark 10 WPT progressions. + +* web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt: +* web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt: +* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt: + +2021-04-24 Antoine Quint + Fix interpolation of the clip CSS property https://bugs.webkit.org/show_bug.cgi?id=225017 Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt (276552 => 276553) --- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt 2021-04-24 19:33:21 UTC (rev 276552) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt 2021-04-24 19:35:08 UTC (rev 276553) @@ -28,6 +28,9 @@ PASS background-origin (type: discrete) has testAccumulation function PASS background-origin: "content-box" onto "padding-box" PASS background-origin: "padding-box" onto "content-box" +PASS background-repeat (type: discrete) has testAccumulation function +PASS background-repeat: "round" onto "space" +PASS background-repeat: "space" onto "round" PASS border-bottom-color (type: color) has testAccumulation function FAIL border-bottom-color supports animating as color of rgb() with overflowed from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)" FAIL border-bottom-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)" Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt (276552 => 276553) --- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt 2021-04-24 19:33:21 UTC (rev 276552) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt 2021-04-24 19:35:08 UTC (rev 276553) @@ -28,6 +28,9 @@ PASS background-origin (type: discrete) has testAddition function PASS background-origin: "content-box" onto "padding-box" PASS background-origin: "padding-box" onto "content-box" +PASS background-repeat (type: discrete) has testAddition function +PASS background-repeat: "round" onto "space" +PASS background-repeat: "space" onto "round" PASS border-bottom-color (type: color) has testAddition function FAIL border-bottom-color supports animating as color of rgb() with overflowed from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)" FAIL border-bottom-color supports animating as color of #RGB assert_equals: The value should be rgb(255, 128, 128) at 0ms
[webkit-changes] [276551] trunk
Title: [276551] trunk Revision 276551 Author grao...@webkit.org Date 2021-04-24 12:32:35 -0700 (Sat, 24 Apr 2021) Log Message Computed style for the translate CSS property should use px for the z value https://bugs.webkit.org/show_bug.cgi?id=225018 Reviewed by Dean Jackson. LayoutTests/imported/w3c: Mark a single WPT progression. * web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: Source/WebCore: * css/CSSComputedStyleDeclaration.cpp: (WebCore::computedTranslate): Modified Paths trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-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/css/CSSComputedStyleDeclaration.cpp Diff Modified: trunk/LayoutTests/imported/w3c/ChangeLog (276550 => 276551) --- trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-24 16:02:06 UTC (rev 276550) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-24 19:32:35 UTC (rev 276551) @@ -1,3 +1,15 @@ +2021-04-24 Antoine Quint + +Computed style for the translate CSS property should use px for the z value +https://bugs.webkit.org/show_bug.cgi?id=225018 + +Reviewed by Dean Jackson. + +Mark a single WPT progression. + +* web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt: +* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: + 2021-04-23 Cathie Chen Not computing image aspect ratios from width and height attributes for lazy loaded images Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt (276550 => 276551) --- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt 2021-04-24 16:02:06 UTC (rev 276550) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt 2021-04-24 19:32:35 UTC (rev 276551) @@ -1,22 +1,22 @@ -FAIL Compositing: property underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (-1) should be [-100% calc(200px + 100%) 300px] assert_equals: expected "0px 200px 300 " but got "- 100px " -FAIL Compositing: property underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0) should be [calc(50px + 0%) calc(200px + 50%) 300px] assert_equals: expected "50px 200px 300 " but got "- 50px " -FAIL Compositing: property underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0.25) should be [calc(62.5px + 25%) calc(200px + 37.5%) 300px] assert_equals: expected "62.5px 200px 300 " but got "- 37.5px " -FAIL Compositing: property underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0.75) should be [calc(87.5px + 75%) calc(200px + 12.5%) 300px] assert_equals: expected "87.5px 200px 300 " but got "- 12.5px " -FAIL Compositing: property underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (1) should be [calc(100px + 100%) calc(200px + 0%) 300px] assert_equals: expected "100px 200px 300 " but got "0px " -FAIL Compositing: property underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (2) should be [calc(150px + 200%) calc(200px - 50%) 300px] assert_equals: expected "150px 200px 300 " but got "50px " -FAIL Compositing: property underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (-1) should be [100% calc(600px - 50%) 500px] assert_equals: expected "0px 600px 500 " but got "- 200px 200px - 100 " -FAIL Compositing: property underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0) should be [calc(100px + 50%) calc(300px + 0%) 300px] assert_equals: expected "100px 300px 300 " but got "0px 100px " -FAIL Compositing: property underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0.25) should be [calc(125px + 37.5%) calc(225px + 12.5%) 250px] assert_equals: expected "125px 225px 250 " but got "50px 75px 25 " -FAIL Compositing: property underlying [100px 200px 300px] from add [50% 100px] to replace [200px 50% 100px] at (0.75) should be [calc(175px + 12.5%) calc(75px + 37.5%) 150px] assert_equals: expected "175px 75px 150 " but got "150px 25px 75 " +FAIL Compositing: property underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (-1) should be [-100% calc(200px + 100%) 300px] assert_equals: expected "0px 200px 300px " but got "- 100px " +FAIL Compositing: property underlying [100px 200px 300px] from add [-50px 50%] to add [100%] at (0) should be [calc(50px + 0%) calc(200px + 50%) 300px]
[webkit-changes] [276552] trunk
Title: [276552] trunk Revision 276552 Author grao...@webkit.org Date 2021-04-24 12:33:21 -0700 (Sat, 24 Apr 2021) Log Message Fix interpolation of the clip CSS property https://bugs.webkit.org/show_bug.cgi?id=225017 Reviewed by Dean Jackson. LayoutTests/imported/w3c: Mark 13 WPT progressions. * web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt: * web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt: * web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt: Source/WebCore: While we interpolated the clip value correctly, we wouldn't set the RenderStyle bit that indicates that there is a non-auto value in the first place. With a new dedicated wrapper, we can ensure we set the bit correctly as we blend, and that we use discrete interpolation if both the from and to values aren't auto. * animation/CSSPropertyAnimation.cpp: (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Modified Paths trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/animation/CSSPropertyAnimation.cpp Diff Modified: trunk/LayoutTests/imported/w3c/ChangeLog (276551 => 276552) --- trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-24 19:32:35 UTC (rev 276551) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-04-24 19:33:21 UTC (rev 276552) @@ -1,5 +1,19 @@ 2021-04-24 Antoine Quint +Fix interpolation of the clip CSS property +https://bugs.webkit.org/show_bug.cgi?id=225017 + +Reviewed by Dean Jackson. + +Mark 13 WPT progressions. + +* web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt: +* web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt: +* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt: +* web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt: + +2021-04-24 Antoine Quint + Computed style for the translate CSS property should use px for the z value https://bugs.webkit.org/show_bug.cgi?id=225018 Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt (276551 => 276552) --- trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt 2021-04-24 19:32:35 UTC (rev 276551) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt 2021-04-24 19:33:21 UTC (rev 276552) @@ -114,9 +114,9 @@ FAIL clip: rect assert_equals: The value should be rect(110px, 110px, 110px, 110px) at 0ms expected "rect(110px, 110px, 110px, 110px)" but got "rect(10px, 10px, 10px, 10px)" PASS clip (type: discrete) has testAccumulation function PASS clip: "auto" onto "rect(10px, 10px, 10px, 10px)" -FAIL clip: "rect(10px, 10px, 10px, 10px)" onto "auto" assert_equals: The value should be rect(10px, 10px, 10px, 10px) at 0ms expected "rect(10px, 10px, 10px, 10px)" but got "auto" -FAIL clip: "rect(10px, 10px, 10px, auto)" onto "rect(10px, 10px, 10px, 10px)" assert_equals: The value should be rect(10px, 10px, 10px, auto) at 0ms expected "rect(10px, 10px, 10px, auto)" but got "auto" -FAIL clip: "rect(10px, 10px, 10px, 10px)" onto "rect(10px, 10px, 10px, auto)" assert_equals: The value should be rect(10px, 10px, 10px, 10px) at 0ms expected "rect(10px, 10px, 10px, 10px)" but got "auto" +PASS clip: "rect(10px, 10px, 10px, 10px)" onto "auto" +PASS clip: "rect(10px, 10px, 10px, auto)" onto "rect(10px, 10px, 10px, 10px)" +PASS clip: "rect(10px, 10px, 10px, 10px)" onto "rect(10px, 10px, 10px, auto)" PASS color (type: color) has testAccumulation function FAIL color supports animating as color of rgb() with overflowed from and to values assert_equals: The value should be rgb(255, 128, 128) at 0ms expected "rgb(255, 128, 128)" but got "rgb(255, 0, 0)" FAIL color
[webkit-changes] [276550] trunk
Title: [276550] trunk Revision 276550 Author commit-qu...@webkit.org Date 2021-04-24 09:02:06 -0700 (Sat, 24 Apr 2021) Log Message Refactor ValueRange from enum to enum class https://bugs.webkit.org/show_bug.cgi?id=224981 Patch by Tyler Wilcock on 2021-04-24 Reviewed by Sam Weinig. Source/WebCore: Refactor ValueRange from: enum ValueRange { ValueRangeAll, ValueRangeNonNegative } to: enum ValueRange : uint8_t { All, NonNegative } making it smaller (one byte versus four) and harder to misuse (no auto-coercion to number types). * animation/CSSPropertyAnimation.cpp: (WebCore::blendFunc): Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All and ValueRange::NonNegative. * css/CSSCalculationValue.cpp: (WebCore::CSSCalcValue::create): Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All and ValueRange::NonNegative. * css/CSSCalculationValue.h: (WebCore::CSSCalcValue::createCalculationValue const): (WebCore::CSSCalcValue::setPermittedValueRange): Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All and ValueRange::NonNegative. * css/MediaQueryExpression.cpp: (WebCore::consumeFirstValue): Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All and ValueRange::NonNegative. * css/parser/CSSPropertyParser.cpp: (WebCore::CSSPropertyParser::consumeTransformOrigin): (WebCore::consumeLetterSpacing): (WebCore::consumeWordSpacing): (WebCore::consumeTabSize): (WebCore::consumeTextSizeAdjust): (WebCore::consumeFontSize): (WebCore::consumeLineHeight): (WebCore::consumeSize): (WebCore::consumeTextIndent): (WebCore::consumeScrollPadding): (WebCore::consumeMaxWidthOrHeight): (WebCore::consumeWidthOrHeight): (WebCore::consumeMarginOrOffset): (WebCore::consumeClipComponent): (WebCore::consumeLineClamp): (WebCore::consumeHyphenateLimit): (WebCore::consumeColumnWidth): (WebCore::consumeGapLength): (WebCore::consumeZoom): (WebCore::consumeAnimationIterationCount): (WebCore::consumeAnimationValue): (WebCore::consumeLineWidth): (WebCore::consumeTranslate3d): (WebCore::consumeNumbers): (WebCore::consumePerspective): (WebCore::consumeTransformValue): (WebCore::consumeTranslate): (WebCore::consumeScale): (WebCore::consumeRotate): (WebCore::consumePositionLonghand): (WebCore::consumeFlexBasis): (WebCore::consumeKerning): (WebCore::consumeStrokeDasharray): (WebCore::consumeBaselineShift): (WebCore::consumeRxOrRy): (WebCore::consumeBorderRadiusCorner): (WebCore::consumeTextUnderlineOffset): (WebCore::consumeTextDecorationThickness): (WebCore::consumeVerticalAlign): (WebCore::consumeShapeRadius): (WebCore::consumeBasicShapePolygon): (WebCore::consumeRadii): (WebCore::consumeBasicShapeInset): (WebCore::consumeBorderImageSlice): (WebCore::consumeBorderImageOutset): (WebCore::consumeBorderImageWidth): (WebCore::consumeReflect): (WebCore::consumeBackgroundSize): (WebCore::consumeFitContent): (WebCore::consumeGridBreadth): (WebCore::consumeInitialLetter): (WebCore::consumeWebkitMarqueeIncrement): (WebCore::consumeWebkitMarqueeRepetition): (WebCore::consumeWebkitMarqueeSpeed): (WebCore::consumeAspectRatio): (WebCore::CSSPropertyParser::parseSingleValue): (WebCore::CSSPropertyParser::consumeBorderSpacing): (WebCore::CSSPropertyParser::consumeFlex): Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All and ValueRange::NonNegative. * css/parser/CSSPropertyParserHelpers.cpp: (WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentDividedBy100Raw): (WebCore::CSSPropertyParserHelpers::CalcParser::CalcParser): (WebCore::CSSPropertyParserHelpers::consumeNumberRaw): (WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw): (WebCore::CSSPropertyParserHelpers::consumeLengthRaw): (WebCore::CSSPropertyParserHelpers::consumePercentRaw): (WebCore::CSSPropertyParserHelpers::consumeAngleRaw): (WebCore::CSSPropertyParserHelpers::consumeAngleWorkerSafe): (WebCore::CSSPropertyParserHelpers::consumeTime): (WebCore::CSSPropertyParserHelpers::consumePositionComponent): (WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientPoint): (WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient): (WebCore::CSSPropertyParserHelpers::consumeGradientColorStops): (WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient): (WebCore::CSSPropertyParserHelpers::consumeRadialGradient): (WebCore::CSSPropertyParserHelpers::consumeFilterFunction): (WebCore::CSSPropertyParserHelpers::consumeSingleShadow): (WebCore::CSSPropertyParserHelpers::consumeFontSizeRaw): (WebCore::CSSPropertyParserHelpers::consumeLineHeightRaw): Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All and ValueRange::NonNegative. * css/parser/CSSPropertyParserHelpers.h: Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All and ValueRange::NonNegative. * css/parser/CSSPropertyParserWorkerSafe.cpp: (WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStretch): (WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStretchRange): Refactor
[webkit-changes] [276549] trunk
Title: [276549] trunk Revision 276549 Author za...@apple.com Date 2021-04-24 06:42:04 -0700 (Sat, 24 Apr 2021) Log Message [RenderTreeBuilder] Subtree moving should clear the floats on all the descendants https://bugs.webkit.org/show_bug.cgi?id=224996 Reviewed by Antti Koivisto. Source/WebCore: While moving a subtree, we invalidate the floating object list so that we don't end up with incorrectly placed floats (they'll get regenerated during the subsequent layout). A float can be "assigned" to more than one RenderBlockFlow (e.g intruding floats). It's very common that a set of descendant RenderBlockFlow renderers "see" the same set of floats (each RenderBlockFlow has its own list of floating objects). Now the invalidation is based on ancestor-to-descendant direction starting with finding the outer most containing block for a particular float (see outermostBlockContainingFloatingObject) The invalidation logic also expects no gaps in the ancestor chain e.g. RenderBlockFlow (A) -> float X RenderBlockFlow (B) -> float X RenderBlockFlow (C) -> float X if float X is assigned to both A and C, then it must be assigned to B as well. RenderBlockFlow::removeFloatingObjects() simply removes the float from the renderer. It does not invalidate the ancestor/descendant chain. e.g. calling B.removeFloatingObjects() would just remove float X from RenderBlockFlow (B) RenderBlockFlow (A) -> float X RenderBlockFlow (B) RenderBlockFlow (C) -> float X and any subsequent invalidation attempt would fail to clear up A or C (depending on whether it is initiated on A or C). Test: fast/multicol/floating-boxes-moved-under-multi-column.html * rendering/updating/RenderTreeBuilder.cpp: (WebCore::RenderTreeBuilder::moveChildren): LayoutTests: * fast/multicol/floating-boxes-moved-under-multi-column-expected.txt: Added. * fast/multicol/floating-boxes-moved-under-multi-column.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp Added Paths trunk/LayoutTests/fast/multicol/floating-boxes-moved-under-multi-column-expected.txt trunk/LayoutTests/fast/multicol/floating-boxes-moved-under-multi-column.html Diff Modified: trunk/LayoutTests/ChangeLog (276548 => 276549) --- trunk/LayoutTests/ChangeLog 2021-04-24 13:10:44 UTC (rev 276548) +++ trunk/LayoutTests/ChangeLog 2021-04-24 13:42:04 UTC (rev 276549) @@ -1,3 +1,14 @@ +2021-04-24 Zalan Bujtas + +[RenderTreeBuilder] Subtree moving should clear the floats on all the descendants +https://bugs.webkit.org/show_bug.cgi?id=224996 + + +Reviewed by Antti Koivisto. + +* fast/multicol/floating-boxes-moved-under-multi-column-expected.txt: Added. +* fast/multicol/floating-boxes-moved-under-multi-column.html: Added. + 2021-04-24 Rob Buis Move selectedOptions cache invalidation timing Added: trunk/LayoutTests/fast/multicol/floating-boxes-moved-under-multi-column-expected.txt (0 => 276549) --- trunk/LayoutTests/fast/multicol/floating-boxes-moved-under-multi-column-expected.txt (rev 0) +++ trunk/LayoutTests/fast/multicol/floating-boxes-moved-under-multi-column-expected.txt 2021-04-24 13:42:04 UTC (rev 276549) @@ -0,0 +1 @@ + Added: trunk/LayoutTests/fast/multicol/floating-boxes-moved-under-multi-column.html (0 => 276549) --- trunk/LayoutTests/fast/multicol/floating-boxes-moved-under-multi-column.html (rev 0) +++ trunk/LayoutTests/fast/multicol/floating-boxes-moved-under-multi-column.html 2021-04-24 13:42:04 UTC (rev 276549) @@ -0,0 +1,29 @@ + + + :focus-within { +column-width: 1px; +width: 0; + } + :nth-last-child(3) { +margin-block-end: 1px; +float: right; + } + :nth-last-child(3)::first-letter { +background: grey; + } + + + if (window.testRunner) +testRunner.dumpAsText(); + + _onload_ = () => { +document.body.appendChild(document.createElement('span')); +document.body.appendChild(document.createElement('div')); +document.body.appendChild(document.createElement('span')); +document.designMode = 'on'; +document.execCommand('SelectAll'); +document.body.appendChild(document.createElement('div')); + }; + + + Modified: trunk/Source/WebCore/ChangeLog (276548 => 276549) --- trunk/Source/WebCore/ChangeLog 2021-04-24 13:10:44 UTC (rev 276548) +++ trunk/Source/WebCore/ChangeLog 2021-04-24 13:42:04 UTC (rev 276549) @@ -1,5 +1,38 @@ 2021-04-24 Zalan Bujtas +[RenderTreeBuilder] Subtree moving should clear the floats on all the descendants +https://bugs.webkit.org/show_bug.cgi?id=224996 + + +Reviewed by Antti Koivisto. + +While moving a subtree, we invalidate the floating object list so that we don't end up with incorrectly placed floats (they'll get regenerated during the subsequent layout). +A float can be "assigned" to more than one
[webkit-changes] [276548] trunk/Source/WebCore
Title: [276548] trunk/Source/WebCore Revision 276548 Author za...@apple.com Date 2021-04-24 06:10:44 -0700 (Sat, 24 Apr 2021) Log Message [LFC] Ignore content height and width when 'contain: size' is present https://bugs.webkit.org/show_bug.cgi?id=225013 Reviewed by Antti Koivisto. Enable size containment for "shrink to fit width" and for "height: auto" formatting context roots. https://www.w3.org/TR/css-contain-2/#size-containment. * layout/FormattingContextGeometry.cpp: (WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const): (WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/layout/FormattingContextGeometry.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (276547 => 276548) --- trunk/Source/WebCore/ChangeLog 2021-04-24 07:41:54 UTC (rev 276547) +++ trunk/Source/WebCore/ChangeLog 2021-04-24 13:10:44 UTC (rev 276548) @@ -1,3 +1,17 @@ +2021-04-24 Zalan Bujtas + +[LFC] Ignore content height and width when 'contain: size' is present +https://bugs.webkit.org/show_bug.cgi?id=225013 + +Reviewed by Antti Koivisto. + +Enable size containment for "shrink to fit width" and for "height: auto" formatting context roots. +https://www.w3.org/TR/css-contain-2/#size-containment. + +* layout/FormattingContextGeometry.cpp: +(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const): +(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth): + 2021-04-24 Rob Buis Move selectedOptions cache invalidation timing Modified: trunk/Source/WebCore/layout/FormattingContextGeometry.cpp (276547 => 276548) --- trunk/Source/WebCore/layout/FormattingContextGeometry.cpp 2021-04-24 07:41:54 UTC (rev 276547) +++ trunk/Source/WebCore/layout/FormattingContextGeometry.cpp 2021-04-24 13:10:44 UTC (rev 276548) @@ -175,9 +175,13 @@ { ASSERT(formattingContextRoot.establishesFormattingContext()); ASSERT(isHeightAuto(formattingContextRoot) || formattingContextRoot.establishesTableFormattingContext() || formattingContextRoot.isTableCell()); -if (!formattingContextRoot.hasInFlowOrFloatingChild()) -return { }; -return LayoutContext::createFormattingContext(formattingContextRoot, const_cast(layoutState()))->usedContentHeight(); +auto usedContentHeight = LayoutUnit { }; +auto hasContent = formattingContextRoot.hasInFlowOrFloatingChild(); +// The used height of the containment box is determined as if performing a normal layout of the box, except that it is treated as having no content. +auto shouldIgnoreContent = formattingContextRoot.isSizeContainmentBox(); +if (hasContent && !shouldIgnoreContent) +usedContentHeight = LayoutContext::createFormattingContext(formattingContextRoot, const_cast(layoutState()))->usedContentHeight(); +return usedContentHeight; } Optional FormattingContext::Geometry::computedValue(const Length& geometryProperty, LayoutUnit containingBlockWidth) const @@ -278,10 +282,10 @@ return left - horizontalConstraints.logicalLeft; } -LayoutUnit FormattingContext::Geometry::shrinkToFitWidth(const Box& formattingRoot, LayoutUnit availableWidth) +LayoutUnit FormattingContext::Geometry::shrinkToFitWidth(const Box& formattingContextRoot, LayoutUnit availableWidth) { -LOG_WITH_STREAM(FormattingContextLayout, stream << "[Width] -> shrink to fit -> unsupported -> width(" << LayoutUnit { } << "px) layoutBox: " << << ")"); -ASSERT(formattingRoot.establishesFormattingContext()); +LOG_WITH_STREAM(FormattingContextLayout, stream << "[Width] -> shrink to fit -> unsupported -> width(" << LayoutUnit { } << "px) layoutBox: " << << ")"); +ASSERT(formattingContextRoot.establishesFormattingContext()); // Calculation of the shrink-to-fit width is similar to calculating the width of a table cell using the automatic table layout algorithm. // Roughly: calculate the preferred width by formatting the content without breaking lines other than where explicit line breaks occur, @@ -291,8 +295,11 @@ // Then the shrink-to-fit width is: min(max(preferred minimum width, available width), preferred width). auto intrinsicWidthConstraints = IntrinsicWidthConstraints { }; -if (is(formattingRoot) && downcast(formattingRoot).hasInFlowOrFloatingChild()) { -auto& root = downcast(formattingRoot); +auto hasContent = is(formattingContextRoot) && downcast(formattingContextRoot).hasInFlowOrFloatingChild(); +// The used width of the containment box is determined as if performing a normal layout of the box, except that it is treated as having no content. +auto shouldIgnoreContent = formattingContextRoot.isSizeContainmentBox(); +if (hasContent && !shouldIgnoreContent) { +auto& root = downcast(formattingContextRoot); auto& formattingStateForRoot =
[webkit-changes] [276547] trunk
Title: [276547] trunk Revision 276547 Author commit-qu...@webkit.org Date 2021-04-24 00:41:54 -0700 (Sat, 24 Apr 2021) Log Message Move selectedOptions cache invalidation timing https://bugs.webkit.org/show_bug.cgi?id=224894 Patch by Rob Buis on 2021-04-24 Reviewed by Ryosuke Niwa. Source/WebCore: Move selectedOptions cache invalidation timing out of setSelectedState, having it in setSelectedState can cause selectedOptions cache invalidation while determining the cache. Test: fast/dom/HTMLSelectElement/selected-options-item-crash.html * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::setSelectedState): * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListBoxSelection): (WebCore::HTMLSelectElement::selectOption): (WebCore::HTMLSelectElement::deselectItemsWithoutValidation): (WebCore::HTMLSelectElement::restoreFormControlState): (WebCore::HTMLSelectElement::reset): (WebCore::HTMLSelectElement::updateSelectedState): LayoutTests: Add test for this. * fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt: Added. * fast/dom/HTMLSelectElement/selected-options-item-crash.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/html/HTMLOptionElement.cpp trunk/Source/WebCore/html/HTMLSelectElement.cpp Added Paths trunk/LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt trunk/LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash.html Diff Modified: trunk/LayoutTests/ChangeLog (276546 => 276547) --- trunk/LayoutTests/ChangeLog 2021-04-24 06:11:00 UTC (rev 276546) +++ trunk/LayoutTests/ChangeLog 2021-04-24 07:41:54 UTC (rev 276547) @@ -1,3 +1,15 @@ +2021-04-24 Rob Buis + +Move selectedOptions cache invalidation timing +https://bugs.webkit.org/show_bug.cgi?id=224894 + +Reviewed by Ryosuke Niwa. + +Add test for this. + +* fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt: Added. +* fast/dom/HTMLSelectElement/selected-options-item-crash.html: Added. + 2021-04-23 Chris Dumez http/tests/security/referrer-policy-header.html is slow Added: trunk/LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt (0 => 276547) --- trunk/LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt (rev 0) +++ trunk/LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt 2021-04-24 07:41:54 UTC (rev 276547) @@ -0,0 +1,10 @@ +This tests accesses a particular index in selectedOptions via HTMLSelectElement's item. WebKit should not crash. + +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". + + +PASS select.selectedOptions.item(2) is null +PASS successfullyParsed is true + +TEST COMPLETE + Added: trunk/LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash.html (0 => 276547) --- trunk/LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash.html (rev 0) +++ trunk/LayoutTests/fast/dom/HTMLSelectElement/selected-options-item-crash.html 2021-04-24 07:41:54 UTC (rev 276547) @@ -0,0 +1,22 @@ + + + + + +description('This tests accesses a particular index in selectedOptions via HTMLSelectElement\'s item. WebKit should not crash.'); + +let select = document.createElement('select'); +document.body.appendChild(select); +let div = document.createElement('div'); +select.appendChild(div); +select.appendChild(document.createElement('option')); +let select2 = document.createElement('select'); +select2.appendChild(document.createElement('option')); +div.appendChild(select2); + +shouldBe('select.selectedOptions.item(2)', 'null'); + + + + Modified: trunk/Source/WebCore/ChangeLog (276546 => 276547) --- trunk/Source/WebCore/ChangeLog 2021-04-24 06:11:00 UTC (rev 276546) +++ trunk/Source/WebCore/ChangeLog 2021-04-24 07:41:54 UTC (rev 276547) @@ -1,3 +1,27 @@ +2021-04-24 Rob Buis + +Move selectedOptions cache invalidation timing +https://bugs.webkit.org/show_bug.cgi?id=224894 + +Reviewed by Ryosuke Niwa. + +Move selectedOptions cache invalidation timing out +of setSelectedState, having it in setSelectedState +can cause selectedOptions cache invalidation while +determining the cache. + +Test: fast/dom/HTMLSelectElement/selected-options-item-crash.html + +* html/HTMLOptionElement.cpp: +(WebCore::HTMLOptionElement::setSelectedState): +* html/HTMLSelectElement.cpp: +(WebCore::HTMLSelectElement::updateListBoxSelection): +(WebCore::HTMLSelectElement::selectOption): +(WebCore::HTMLSelectElement::deselectItemsWithoutValidation): +(WebCore::HTMLSelectElement::restoreFormControlState): +(WebCore::HTMLSelectElement::reset): +(WebCore::HTMLSelectElement::updateSelectedState): + 2021-04-23 Ian Gilbert Crash
[webkit-changes] [276546] trunk/Source/WebCore
Title: [276546] trunk/Source/WebCore Revision 276546 Author commit-qu...@webkit.org Date 2021-04-23 23:11:00 -0700 (Fri, 23 Apr 2021) Log Message Crash in IndentOutdentCommand::outdentParagraph attempting to move a paragraph https://bugs.webkit.org/show_bug.cgi?id=224909 Patch by Ian Gilbert on 2021-04-23 Reviewed by Ryosuke Niwa. Added check inside IndentOutdentCommand::outdentParagraph to ensure that inserting a HTMLBRElement was successful before attempting to move a paragraph to that node. * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::outdentParagraph): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/editing/IndentOutdentCommand.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (276545 => 276546) --- trunk/Source/WebCore/ChangeLog 2021-04-24 00:47:50 UTC (rev 276545) +++ trunk/Source/WebCore/ChangeLog 2021-04-24 06:11:00 UTC (rev 276546) @@ -1,3 +1,16 @@ +2021-04-23 Ian Gilbert + +Crash in IndentOutdentCommand::outdentParagraph attempting to move a paragraph +https://bugs.webkit.org/show_bug.cgi?id=224909 + +Reviewed by Ryosuke Niwa. + +Added check inside IndentOutdentCommand::outdentParagraph to ensure that inserting a +HTMLBRElement was successful before attempting to move a paragraph to that node. + +* editing/IndentOutdentCommand.cpp: +(WebCore::IndentOutdentCommand::outdentParagraph): + 2021-04-23 Ryosuke Niwa Crash in constructCustomElementSynchronously Modified: trunk/Source/WebCore/editing/IndentOutdentCommand.cpp (276545 => 276546) --- trunk/Source/WebCore/editing/IndentOutdentCommand.cpp 2021-04-24 00:47:50 UTC (rev 276545) +++ trunk/Source/WebCore/editing/IndentOutdentCommand.cpp 2021-04-24 06:11:00 UTC (rev 276546) @@ -191,9 +191,9 @@ splitElement(*enclosingNode, highestInlineNode ? *highestInlineNode : *visibleStartOfParagraph.deepEquivalent().deprecatedNode()); } auto placeholder = HTMLBRElement::create(document()); -auto* placeholderPtr = placeholder.ptr(); -insertNodeBefore(WTFMove(placeholder), *splitBlockquoteNode); -moveParagraph(startOfParagraph(visibleStartOfParagraph), endOfParagraph(visibleEndOfParagraph), positionBeforeNode(placeholderPtr), true); +insertNodeBefore(placeholder, *splitBlockquoteNode); +if (placeholder->isConnected()) +moveParagraph(startOfParagraph(visibleStartOfParagraph), endOfParagraph(visibleEndOfParagraph), positionBeforeNode(placeholder.ptr()), true); } // FIXME: We should merge this function with ApplyBlockElementCommand::formatSelection ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes