[webkit-changes] [WebKit/WebKit] e692cb: Cherry-pick 263276 at main (1e12a811a71b). https://bu...
Adrian Perez
noreply at github.com
Tue Apr 25 08:03:36 PDT 2023
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.olmstead at sony.com>
Date: 2023-04-25 (Tue, 25 Apr 2023)
Changed paths:
M Source/WebCore/contentextensions/DFANode.h
Log Message:
-----------
Cherry-pick 263276 at 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_shah at 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 at 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 <sam at gentoo.org>
Date: 2023-04-25 (Tue, 25 Apr 2023)
Changed paths:
M Source/JavaScriptCore/CMakeLists.txt
Log Message:
-----------
Cherry-pick 262719 at 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.gill at 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 at main (d4ec309d5e67). https://bugs.webkit.org/show_bug.cgi?id=254603
REGRESSION (259663 at 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 <joncarlo at apple.com>
Date: 2023-04-25 (Tue, 25 Apr 2023)
Changed paths:
M Source/WebCore/dom/ComposedTreeAncestorIterator.h
Log Message:
-----------
Cherry-pick 262298 at 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 <aboya at 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 at 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 at 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 <aperez at 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 at 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 at 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
More information about the webkit-changes
mailing list