[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