Branch: refs/heads/webkitglib/2.40 Home: https://github.com/WebKit/WebKit Commit: e692cba8c592936c45b81251e6ebfc094f9812a1 https://github.com/WebKit/WebKit/commit/e692cba8c592936c45b81251e6ebfc094f9812a1 Author: Don Olmstead <don.olmst...@sony.com> Date: 2023-04-25 (Tue, 25 Apr 2023)
Changed paths: M Source/WebCore/contentextensions/DFANode.h Log Message: ----------- Cherry-pick 263276@main (1e12a811a71b). https://bugs.webkit.org/show_bug.cgi?id=255818 Fix compilation of DFANode https://bugs.webkit.org/show_bug.cgi?id=255818 Reviewed by Yusuke Suzuki. Declare `IsKilled` statically to prevent a compilation error. * Source/WebCore/contentextensions/DFANode.h: Canonical link: https://commits.webkit.org/263276@main Commit: 0f326ee760e0f5f877323b480478cfc384ac2e44 https://github.com/WebKit/WebKit/commit/0f326ee760e0f5f877323b480478cfc384ac2e44 Author: Chirag M Shah <chirag_m_s...@apple.com> Date: 2023-04-25 (Tue, 25 Apr 2023) Changed paths: A LayoutTests/fast/editing/replace-selection-command-crash-expected.txt A LayoutTests/fast/editing/replace-selection-command-crash.html M Source/WebCore/editing/ReplaceSelectionCommand.cpp Log Message: ----------- Cherry-pick 263051@main (62a3751abfbc). https://bugs.webkit.org/show_bug.cgi?id=255510 Fix SEGV in ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder https://bugs.webkit.org/show_bug.cgi?id=255510 rdar://107979390 Reviewed by Ryosuke Niwa. This change fixes a crash which is caused because we end up in state where m_lastNodeInserted is NULL after a call to ReplaceSelectionCommand::InsertedNodes::willRemoveNode, which means that when makeInsertedContentRoundTrippableWithHTMLTreeBuilder calls pastLastLeaf() we trip over an assertion. * LayoutTests/fast/editing/replace-selection-command-crash-expected.txt: Added. * LayoutTests/fast/editing/replace-selection-command-crash.html: Added. * Source/WebCore/editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode): Canonical link: https://commits.webkit.org/263051@main Commit: 3c5c6c17bf29a4585edfd136d96a06d2806a3fc8 https://github.com/WebKit/WebKit/commit/3c5c6c17bf29a4585edfd136d96a06d2806a3fc8 Author: Sam James <s...@gentoo.org> Date: 2023-04-25 (Tue, 25 Apr 2023) Changed paths: M Source/JavaScriptCore/CMakeLists.txt Log Message: ----------- Cherry-pick 262719@main (546b7119c8b7). https://bugs.webkit.org/show_bug.cgi?id=254965 postprocess-asm rule doesn't respect RUBY_EXECUTABLE https://bugs.webkit.org/show_bug.cgi?id=254965 Reviewed by Yusuke Suzuki. postprocess-asm is a Ruby script with #/!/usr/bin/env ruby as its shebang which looks up Ruby in PATH. webkit, however, has RUBY_EXECUTABLE as a CMake option. It's possible for the Ruby used by CMake (and the other rules during the build) to be different to the first Ruby found in PATH. This makes the usage for postprocess-asm consistent with other uses in webkit. * Source/JavaScriptCore/CMakeLists.txt Canonical link: https://commits.webkit.org/262719@main Commit: 2b76d741ada361462da3892da4822c2709084171 https://github.com/WebKit/WebKit/commit/2b76d741ada361462da3892da4822c2709084171 Author: Sammy Gill <sammy.g...@apple.com> Date: 2023-04-25 (Tue, 25 Apr 2023) Changed paths: A LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/grid-item-image-percentage-min-height-computes-as-0-expected.html A LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/grid-item-image-percentage-min-height-computes-as-0.html A LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/nested-flexbox-image-percentage-max-height-computes-as-none-expected.html A LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/nested-flexbox-image-percentage-max-height-computes-as-none.html M Source/WebCore/rendering/RenderBox.cpp Log Message: ----------- Cherry-pick 262342@main (d4ec309d5e67). https://bugs.webkit.org/show_bug.cgi?id=254603 REGRESSION (259663@main): lowes.com: Product image is blank https://bugs.webkit.org/show_bug.cgi?id=254603 rdar://106926883 Reviewed by Alan Baradlay. The product image on Lowes had a structure that is very similar to the following that results in the product image not rendering correctly (having a width and height of 0). I made some slight modifications to make it easier to digest, but the following is indicative of the issue that is causing the image to show up as blank. body { height: 50px; } img { position: relative; max-width: 100%; max-height: 100%; } .outer-flexbox { display: flex; width: 100%; height: 100%; } .outer-flexbox-item { position: relative; min-width: 100%; } .inner-flexbox { position: absolute; display: flex; inset: 0px; } </style> <div class="outer-flexbox"> <div class="outer-flexbox-item"> <div class="inner-flexbox"> <div> <img src="/css/support/60x60-green.png"> </div> </div> </div> </div> The problem arises when we layout the outer-flexbox and eventually recurse into the image to compute its preferred width. During this process, we attempt to compute the max-height by resolving the percentage value, but we end up incorrectly computing a max-height of 0. This max-height computation is done when we reach RenderBox::computeLogicalHeightUsing and end up calling RenderBox::computeReplacedLogicalHeightUsing with a heightType of MaxSize. computeReplacedLogicalHeightUsing will calculate this height differently depending on the LengthType of the passed in height and in the case of this scenario we fall into the LengthType::Percent case for max-height. Since this code is unable to resolve this height (due to the fact its containing block depends on the size of its content), it returns a value of 0. This 0 value ends up affecting not only the size of the image in both the width and height dimensions, but also affects the flex item of the inner flexbox and the size of the inner flexbox as part of a flex item for the outer flexbox. The solution here is to modify computeLogicalHeightUsing to check if the min/max height would compute to 0/none depending on the heightType. Ideally, the caller should not have to do this (like how it is done in RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight), and this would be done handled in computeReplacedLogicalHeightUsing, but a couple of call sites make this type of change tricky. It is particularly when computeReplacedLogicalHeightUsing with a heightType of MainOrPreferredSize since these call sites expect the function to return a definite value, so it is not clear what would be the correct logic if it instead returned an empty optional. To accomplish this, we can use the existing helper function replacedMinMaxLogicalHeightComputesAsNone, which returns true in this example to indicate that the used value of max-height should be treated as none. This was actually already being used in the other call site: computeReplacedLogicalHeightRespectingMinMaxHeight. To make it more difficult to call this function when replacedMinMaxLogicalHeightComputesAsNone returns false, I added an assert to trigger in that problematic scenario. * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/grid-item-image-percentage-min-height-computes-as-0-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/grid-item-image-percentage-min-height-computes-as-0.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/nested-flexbox-image-percentage-max-height-computes-as-none-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/nested-flexbox-image-percentage-max-height-computes-as-none.html: Added. * Source/WebCore/rendering/RenderBox.cpp: (WebCore::RenderBox::computeLogicalHeightUsing const): (WebCore::RenderBox::computeReplacedLogicalHeightUsing const): Canonical link: https://commits.webkit.org/262342@main Commit: 2c468b5a74480f42700264a00772d8f852104db4 https://github.com/WebKit/WebKit/commit/2c468b5a74480f42700264a00772d8f852104db4 Author: JC Alvarado <jonca...@apple.com> Date: 2023-04-25 (Tue, 25 Apr 2023) Changed paths: M Source/WebCore/dom/ComposedTreeAncestorIterator.h Log Message: ----------- Cherry-pick 262298@main (15d4f3483d44). https://bugs.webkit.org/show_bug.cgi?id=254274 Use Ref for m_node in ComposedTreeAncestorIterator https://bugs.webkit.org/show_bug.cgi?id=254274 rdar://107061402 Reviewed by Chris Dumez. * Source/WebCore/dom/ComposedTreeAncestorIterator.h: (WebCore::ComposedTreeAncestorAdapter::ComposedTreeAncestorAdapter): (WebCore::ComposedTreeAncestorAdapter::begin): Canonical link: https://commits.webkit.org/262298@main Commit: fd339b4f30b5ed7a8c9fb3c6325c0016574b2e6f https://github.com/WebKit/WebKit/commit/fd339b4f30b5ed7a8c9fb3c6325c0016574b2e6f Author: Alicia Boya Garcia <ab...@igalia.com> Date: 2023-04-25 (Tue, 25 Apr 2023) Changed paths: M Source/WTF/wtf/FileSystem.cpp M Source/WTF/wtf/FileSystem.h M Source/WTF/wtf/glib/FileSystemGlib.cpp M Source/WTF/wtf/posix/FileSystemPOSIX.cpp M Source/WebKit/NetworkProcess/cache/NetworkCacheDataGLib.cpp M Tools/TestWebKitAPI/Tests/WTF/FileSystem.cpp Log Message: ----------- Cherry-pick 263367@main (78d2561b2bf7). https://bugs.webkit.org/show_bug.cgi?id=254813 [WTF][GLib] Rework FileSystem::openFile() https://bugs.webkit.org/show_bug.cgi?id=254813 Reviewed by Michael Catanzaro and Adrian Perez de Castro. Fixes REGRESSION(259689@main). The previous implementation failed when asked to create a file in ReadWrite mode. This patch also increases the test coverage for FileSystem::openFile(). Previously, few argument combinations where tested, which caused the regression to go unnoticed. Read requests no longer create a read-write stream. To accomodate that, PlatformFileHandle in GLib is now the generic GSeekable* rather than GFileIOStream* (which implies a read-write file handle). This patch also introduces WTF::FileSystem::posixFileDescriptor() for non-Windows platforms, which allows decoupling of the GIO API in a few places in WebKit. * Source/WTF/wtf/FileSystem.cpp: (WTF::FileSystemImpl::MappedFileData::mapFileHandle): * Source/WTF/wtf/FileSystem.h: * Source/WTF/wtf/glib/FileSystemGlib.cpp: (WTF::FileSystemImpl::genericGIOFileClose): (WTF::FileSystemImpl::genericGIOFileQueryInfo): (WTF::FileSystemImpl::genericGIOGetInputStream): (WTF::FileSystemImpl::genericGIOGetOutputStream): (WTF::FileSystemImpl::genericGIOGetFileDescriptorBased): (WTF::FileSystemImpl::posixFileDescriptor): (WTF::FileSystemImpl::fileSize): (WTF::FileSystemImpl::fileID): (WTF::FileSystemImpl::openTemporaryFile): (WTF::FileSystemImpl::openFile): (WTF::FileSystemImpl::closeFile): (WTF::FileSystemImpl::seekFile): (WTF::FileSystemImpl::truncateFile): (WTF::FileSystemImpl::flushFile): (WTF::FileSystemImpl::writeToFile): (WTF::FileSystemImpl::readFromFile): (WTF::FileSystemImpl::lockFile): (WTF::FileSystemImpl::unlockFile): * Source/WTF/wtf/posix/FileSystemPOSIX.cpp: (WTF::FileSystemImpl::posixFileDescriptor): * Source/WebKit/NetworkProcess/cache/NetworkCacheDataGLib.cpp: (WebKit::NetworkCache::Data::tryCreateSharedMemory const): * Tools/TestWebKitAPI/Tests/WTF/FileSystem.cpp: (TestWebKitAPI::TEST_F): Canonical link: https://commits.webkit.org/263367@main Commit: ef62197ab1bbf37ea95cab55d5464dbdba943890 https://github.com/WebKit/WebKit/commit/ef62197ab1bbf37ea95cab55d5464dbdba943890 Author: Adrian Perez de Castro <ape...@igalia.com> Date: 2023-04-25 (Tue, 25 Apr 2023) Changed paths: M Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngine.cpp M Tools/Scripts/webkitpy/port/gtk.py M Tools/Scripts/webkitpy/port/wpe.py Log Message: ----------- Cherry-pick 263365@main (88ee43d6411f). https://bugs.webkit.org/show_bug.cgi?id=253953 [WPE] Enable threaded rendering by default using one paint thread https://bugs.webkit.org/show_bug.cgi?id=253953 Reviewed by Carlos Garcia Campos. Enable threaded rendering, following suit after GTK4 which enabled it in 260059@main after some back and forth which involved landing fixes to propertly synchronize access to global resources. * Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngine.cpp: (Nicosia::PaintingEngine::create): Use one paint thread also for WPE by default and remove the developer mode guard, which was already being ignored for GTK4. * Tools/Scripts/webkitpy/port/gtk.py: (GtkPort.setup_environ_for_server): Disable threaded rendering when running layout tests. * Tools/Scripts/webkitpy/port/wpe.py: (WPEPort.setup_environ_for_server): Ditto. Canonical link: https://commits.webkit.org/263365@main Compare: https://github.com/WebKit/WebKit/compare/e535e62130c2...ef62197ab1bb _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes