[webkit-changes] [WebKit/WebKit] 919c7d: Cherry-pick 274757 at main (8411b7acd415). https://bu...

Przemyslaw Gorszkowski noreply at github.com
Mon Mar 11 01:51:44 PDT 2024


  Branch: refs/heads/webkitglib/2.44
  Home:   https://github.com/WebKit/WebKit
  Commit: 919c7d545cf354656efa112ec09a19eb2e340ca0
      https://github.com/WebKit/WebKit/commit/919c7d545cf354656efa112ec09a19eb2e340ca0
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-2-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-2.html
    M LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect.html
    M Source/WebCore/rendering/RenderLayerBacking.cpp

  Log Message:
  -----------
  Cherry-pick 274757 at main (8411b7acd415). https://bugs.webkit.org/show_bug.cgi?id=268278

    backdrop filters should be applied to the border area of the element with border-radius
    https://bugs.webkit.org/show_bug.cgi?id=268278

    Reviewed by Matt Woodrow.

    Backdrop filters should be applied to the inside of border edge of the
    element, not to the padding edge.

    * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-2-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-2.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/backdrop-filter-clip-rect.html: Added fuzzy meta tag.
    * Source/WebCore/rendering/RenderLayerBacking.cpp:
    (WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
    Use borderRoundedRect of renderBox instead of roundedBorderBoxRect.

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

Canonical link: https://commits.webkit.org/274313.36@webkitglib/2.44


  Commit: 4a36d357a2fcf68e3a7634d45eef188019de6bd0
      https://github.com/WebKit/WebKit/commit/4a36d357a2fcf68e3a7634d45eef188019de6bd0
  Author: Marcus Plutowski <marcus_plutowski at apple.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    A JSTests/wasm/stress/fsub-nan-copysign.js
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp

  Log Message:
  -----------
  Cherry-pick 274910 at main (5f1ac6454783). https://bugs.webkit.org/show_bug.cgi?id=269509

    Preserve sign of NaN operands in fsub{32,64}
    https://bugs.webkit.org/show_bug.cgi?id=269509
    rdar://120780768

    Reviewed by Justin Michaud and Yusuke Suzuki.

    Negating a NaN operand for fsub is incorrect, as IEEE defines the result
    of an arithmetic operation with a NaN parameter as the NaN itself
    (without modification). This is observable when a copysign operation is
    done on the result, as copysign itself is exempt from that restriction
    and can thus detect the improper negation.
    By checking whether the operand is a NaN before negating we avoid this
    issue.

    * JSTests/wasm/stress/fsub-nan-copysign.js: Added.
    * Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
    (JSC::Wasm::BBQJITImpl::BBQJIT::addF32Sub):
    (JSC::Wasm::BBQJITImpl::BBQJIT::addF64Sub):

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

Canonical link: https://commits.webkit.org/274313.37@webkitglib/2.44


  Commit: af15dd9a19898fca40d77cd03e1270c1d995b1e5
      https://github.com/WebKit/WebKit/commit/af15dd9a19898fca40d77cd03e1270c1d995b1e5
  Author: Anne van Kesteren <annevk at annevk.nl>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml_exclude=(file_javascript_mailto)-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml_include=file-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/a-element_exclude=(file_javascript_mailto)-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/a-element_include=file-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/failure.html
    M LayoutTests/imported/w3c/web-platform-tests/url/resources/urltestdata.json
    M LayoutTests/imported/w3c/web-platform-tests/url/url-constructor.any.worker_exclude=(file_javascript_mailto)-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/url-constructor.any.worker_include=file-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/url-constructor.any_exclude=(file_javascript_mailto)-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/url-constructor.any_include=file-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/url-origin.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/url-origin.any.worker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any.js
    M LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any.worker-expected.txt
    M Source/WTF/wtf/URLParser.cpp
    M Tools/TestWebKitAPI/Tests/WTF/URLParser.cpp

  Log Message:
  -----------
  Cherry-pick 274915 at main (953476de5074). https://bugs.webkit.org/show_bug.cgi?id=265484

    URLParser should parse URLs including authority and a backslash after the host
    https://bugs.webkit.org/show_bug.cgi?id=265484
    rdar://119219832

    Reviewed by Alex Christensen.

    Thanks to dave caruso for reporting and suggesting a fix.

    Tests are synchronized up to and including this PR:
    https://github.com/web-platform-tests/wpt/pull/44637

    * LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml_exclude=(file_javascript_mailto)-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml_include=file-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/a-element_exclude=(file_javascript_mailto)-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/a-element_include=file-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/failure.html:
    * LayoutTests/imported/w3c/web-platform-tests/url/resources/urltestdata.json:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-constructor.any.worker_exclude=(file_javascript_mailto)-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-constructor.any.worker_include=file-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-constructor.any_exclude=(file_javascript_mailto)-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-constructor.any_include=file-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-origin.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-origin.any.worker-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any.js:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-statics-canparse.any.worker-expected.txt:
    * Source/WTF/wtf/URLParser.cpp:
    (WTF::URLParser::parse):
    * Tools/TestWebKitAPI/Tests/WTF/URLParser.cpp:
    (TestWebKitAPI::TEST_F):

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

Canonical link: https://commits.webkit.org/274313.38@webkitglib/2.44


  Commit: 928e57daec216febe888baa9b53f3da6507ebe2e
      https://github.com/WebKit/WebKit/commit/928e57daec216febe888baa9b53f3da6507ebe2e
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    M Source/WebCore/platform/sql/SQLiteDatabase.h
    M Source/WebCore/platform/sql/SQLiteStatement.h
    M Source/WebCore/platform/sql/SQLiteTransaction.h
    M Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp

  Log Message:
  -----------
  Cherry-pick 274937 at main (f6305e2e3567). https://bugs.webkit.org/show_bug.cgi?id=269648

    Crash under SQLiteDatabase::~SQLiteDatabase
    https://bugs.webkit.org/show_bug.cgi?id=269648
    rdar://123160407

    Reviewed by David Kilzer.

    The crash was occurring because SQLiteStorageArea::handleDatabaseCorruptionIfNeeded()
    was destroying the SQLiteDatabase object (m_database) but was failing to destroy the
    potential transaction (m_transaction) and cached statements (m_cachedStatements), all
    of which have a CheckedRef pointing to the database.

    Update handleDatabaseCorruptionIfNeeded() to call close(), which clears m_cache,
    m_cacheSize, m_transaction, m_cachedStatements and m_database.

    Also update SQLiteStatement / SQLiteTransaction to keep a WeakRef to the database
    instead of a CheckedRef, as per our updated smart pointer guidelines. Using
    CheckedPtr/CheckedRef for database members is no longer recommended.

    * Source/WebCore/platform/sql/SQLiteDatabase.h:
    * Source/WebCore/platform/sql/SQLiteStatement.h:
    * Source/WebCore/platform/sql/SQLiteTransaction.h:
    * Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp:
    (WebKit::SQLiteStorageArea::handleDatabaseCorruptionIfNeeded):

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

Canonical link: https://commits.webkit.org/274313.39@webkitglib/2.44


  Commit: 86cf1558148c2c4267bda2cb001c9d63eff63b9b
      https://github.com/WebKit/WebKit/commit/86cf1558148c2c4267bda2cb001c9d63eff63b9b
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    A LayoutTests/fast/parser/badurl-base-preloader-crash-expected.txt
    A LayoutTests/fast/parser/badurl-base-preloader-crash.html
    A LayoutTests/http/tests/loading/preload-ignore-invalid-base-expected.txt
    A LayoutTests/http/tests/loading/preload-ignore-invalid-base.html
    A LayoutTests/http/tests/loading/resources/fail.js
    M Source/WebCore/html/parser/HTMLPreloadScanner.cpp

  Log Message:
  -----------
  Cherry-pick 274963 at main (393573035d7e). https://bugs.webkit.org/show_bug.cgi?id=269643

    HTMLPreloadScanner should only use valid `base` urls

    https://bugs.webkit.org/show_bug.cgi?id=269643

    Reviewed by Ryosuke Niwa.

    Partial Merge: https://chromium.googlesource.com/chromium/blink/+/754b22f62f6fa5f0b938a90c0e92502eb7f5a7c3

    Before this patch, HTMLPreloadScanner accepted invalid `base` urls and
    used it to resolve urls encountered later in the scan.
    This patch ensures that only valid urls specified in `base href` are
    actually used as base urls.

    * Source/WebCore/html/parser/HTMLPreloadScanner.cpp:
    (TokenPreloadScanner::updatePredictedBaseURL):
    * LayoutTests/fast/parser/badurl-base-preloader-crash.html: Add Test Case
    * LayoutTests/fast/parser/badurl-base-preloader-crash-expected.txt: Add Test Case Expectation
    * LayoutTests/http/tests/loading/preload-ignore-invalid-base.html: Add Test Case
    * LayoutTests/http/tests/loading/resources/fail.js: Add Test Case Helper Script
    * LayoutTests/http/tests/loading/preload-ignore-invalid-base-expected.txt: Add Test Expectation

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

Canonical link: https://commits.webkit.org/274313.40@webkitglib/2.44


  Commit: 717b4e0337fd84a5e0246782e146af8e0252770e
      https://github.com/WebKit/WebKit/commit/717b4e0337fd84a5e0246782e146af8e0252770e
  Author: Philippe Normand <philn at igalia.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp
    M Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp

  Log Message:
  -----------
  Cherry-pick 274980 at main (4278c2f09831). https://bugs.webkit.org/show_bug.cgi?id=269707

    [LibWebRTC] Build fails with clang on Linux
    https://bugs.webkit.org/show_bug.cgi?id=269707

    Reviewed by Youenn Fablet.

    Remove duplicate fromStdString() implementations.

    * Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:
    (WebCore::LibWebRTCCertificateGenerator::fromStdString): Deleted.
    * Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
    (WebCore::fromStdString): Deleted.

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

Canonical link: https://commits.webkit.org/274313.41@webkitglib/2.44


  Commit: 92508f184600ab6b604f22477b670afc629cc31c
      https://github.com/WebKit/WebKit/commit/92508f184600ab6b604f22477b670afc629cc31c
  Author: Marcus Plutowski <marcus_plutowski at apple.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    A JSTests/wasm/stress/unsigned-integer-division.js
    M Source/JavaScriptCore/wasm/WasmBBQJIT64.h

  Log Message:
  -----------
  Cherry-pick 275011 at main (3ee7e4fc30fd). https://bugs.webkit.org/show_bug.cgi?id=269729

    Emit logical right-shift for unsigned div in BBQ JIT
    https://bugs.webkit.org/show_bug.cgi?id=269729
    rdar://120840889

    Reviewed by Justin Michaud.

    Previously, the function BBQ::emitModOrDiv would unconditionally emit
    an arithmetic right-shift in cases where the lhs was a power of two.
    This produces the correct result when the sign bit is 0 (i.e. the lhs,
    interpreted as a signed 64-bit integer, is positive) but an incorrect
    one when the sign bit is 1: specifically, it would compute a signed
    division instead.
    By checking the sign of the division taking place and emitting a logical
    shift when the operation is unsigned, we get the correct result.

    * JSTests/wasm/stress/i64divu-sign-maintanance.js: Added.
    (async test):
    * Source/JavaScriptCore/wasm/WasmBBQJIT64.h:
    (JSC::Wasm::BBQJITImpl::BBQJIT::emitModOrDiv):

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

Canonical link: https://commits.webkit.org/274313.42@webkitglib/2.44


  Commit: e73c807b9749e7b27ee9572323093ea7bb3131fa
      https://github.com/WebKit/WebKit/commit/e73c807b9749e7b27ee9572323093ea7bb3131fa
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Cherry-pick 275019 at main (350492890293). https://bugs.webkit.org/show_bug.cgi?id=269754

    REGRESSION(274288 at main): Null pointer dereference in `WebPageProxy::activityStateDidChange()`
    https://bugs.webkit.org/show_bug.cgi?id=269754
    rdar://123032571

    Reviewed by Chris Dumez.

    `m_pageClient` is protected in `decidePolicyForNavigationAction()`, but not passed to the created
    lambdas. When `Transaction` is destructed, `activityStateDidChange()` tries to create a strong reference
    to `m_pageClient`, but it may already be destroyed. We should pass `protectedPageClient` into the
    lambdas where `Transaction` is used.

    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::decidePolicyForNavigationAction):

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

Canonical link: https://commits.webkit.org/274313.43@webkitglib/2.44


  Commit: 5eb5ab62f15afd0aeca4a782baa1157ed20813fe
      https://github.com/WebKit/WebKit/commit/5eb5ab62f15afd0aeca4a782baa1157ed20813fe
  Author: Przemyslaw Gorszkowski <pgorszkowski at igalia.com>
  Date:   2024-03-11 (Mon, 11 Mar 2024)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/fast/gradients/conic-gradient-extended-stops.html
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/svg/filters/feConvolveMatrix-clipped.svg
    M LayoutTests/svg/filters/feGaussianBlur-clipped.svg
    M Source/WTF/wtf/PlatformEnable.h
    M Source/WebCore/platform/graphics/ImageBuffer.cpp
    M Source/WebCore/platform/graphics/filters/FEDropShadow.h
    M Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.cpp
    M Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.h
    M Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.cpp
    M Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.h
    M Source/WebCore/platform/graphics/filters/FilterTargetSwitcher.h
    M Source/WebCore/rendering/RenderLayerFilters.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.cpp

  Log Message:
  -----------
  Cherry-pick 275091 at main (cfa8125ddf7c). https://bugs.webkit.org/show_bug.cgi?id=268537

    Regression(251234 at main): [Cairo][GTK][WPE] Darker output of SVG with filters fediffuselighting
    https://bugs.webkit.org/show_bug.cgi?id=268537

    Reviewed by Said Abou-Hallawa and Nikolas Zimmermann.

    Turn off the support for linearRGB color space in case of Cairo (251234 at main) causes, that SVG
    with filter, where linearRGB as inputs is demanded, generates darker output.

    The SVG spec says that SourceGraphic has to be in linearRGB color space:
    https://www.w3.org/TR/filter-effects-1/#attr-valuedef-in-sourcegraphic

    In case of Cairo (which operates in SRGB color space) the image source (SourceGraphic)
    should be created in SRGB and before passing it to filters, it should be transformed to
    linearRGB color space.

    * LayoutTests/TestExpectations:
    * LayoutTests/platform/glib/TestExpectations:
    Remove some tests which pass with this change

    * LayoutTests/svg/filters/feConvolveMatrix-clipped.svg:
    * LayoutTests/svg/filters/feGaussianBlur-clipped.svg:
    * LayoutTests/fast/gradients/conic-gradient-extended-stops.html:
    Add possible differences in outputs

    * Source/WebCore/platform/graphics/ImageBuffer.cpp:
    (WebCore::ImageBuffer::filteredNativeImage):
    Pass color space to endDrawSourceImage

    * Source/WebCore/platform/graphics/filters/FEDropShadow.h:
    Force to use SRGB as operating color space for DropShadow in case of Cairo.

    * Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.cpp:
    (WebCore::FilterImageTargetSwitcher::endClipAndDrawSourceImage):
    (WebCore::FilterImageTargetSwitcher::endDrawSourceImage):
    Before applying all filter, the source image has to be translated to requested
    color space (only valid for Cairo).

    * Source/WebCore/platform/graphics/filters/FilterTargetSwitcher.h:
    * Source/WebCore/platform/graphics/filters/FilterImageTargetSwitcher.h:
    * Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.h:
    Added color space as additional parameter.

    * Source/WebCore/platform/graphics/filters/FilterStyleTargetSwitcher.cpp:
    (WebCore::FilterStyleTargetSwitcher::endDrawSourceImage):
    WebCore::FilterStyleTargetSwitcher::endDrawSourceImage does not use color space so just ignore it

    * Source/WebCore/rendering/RenderLayerFilters.cpp:
    (WebCore::RenderLayerFilters::applyFilterEffect):
    Just pass DestinationColorSpace::SRGB() to endClipAndDrawSourceImage.

    * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceFilter.cpp:
    (WebCore::LegacyRenderSVGResourceFilter::applyResource):
    In case of Cairo, the sourceImage has to be created with sRGB color space, because
    Cairo operates in sRGB. The linearRGB color space will be passed to TargetSwitcher
    in WebCore::LegacyRenderSVGResourceFilter::postApplyResource and the sourceImage will
    be transformed to linearRGB before all filter applying.
    (WebCore::LegacyRenderSVGResourceFilter::postApplyResource):
    Before applying all filter, the source image has to be translated to requested
    color space.

    * Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
    (WebCore::buildFilterEffectsGraph):
    Create SourceGraphic and SourceAlpha with LinearRGB color space if
    color-interpolation_filter attribute of the Filter has LinearRGB value (only in case of Cairo).

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

Canonical link: https://commits.webkit.org/274313.44@webkitglib/2.44


Compare: https://github.com/WebKit/WebKit/compare/3ca1c7594402...5eb5ab62f15a

To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list