[webkit-changes] [WebKit/WebKit] 05b932: Cherry-pick 262500 at main (08d1bd527b97). https://bu...

Michael Catanzaro noreply at github.com
Thu Apr 6 13:13:28 PDT 2023


  Branch: refs/heads/webkitglib/2.40
  Home:   https://github.com/WebKit/WebKit
  Commit: 05b9320a72ca404b5193f81f8394b81a2782d94c
      https://github.com/WebKit/WebKit/commit/05b9320a72ca404b5193f81f8394b81a2782d94c
  Author: Philippe Normand <philn at igalia.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp

  Log Message:
  -----------
  Cherry-pick 262500 at main (08d1bd527b97). https://bugs.webkit.org/show_bug.cgi?id=254892

    REGRESSION(259869 at main): [GStreamer][WebCodecs] 2 tests now crashing
    https://bugs.webkit.org/show_bug.cgi?id=254892

    Reviewed by Žan Doberšek.

    Ensure the Cairo surface wrapped in the GstBuffer remains alive as long as the buffer, otherwise we
    might attempt to unref/destroy a surface that was previously unreffed elsewhere.

    * Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp:
    (WebCore::VideoFrame::fromNativeImage):

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


  Commit: bbf35fce73dd9f17d72d5f438db5f3db32b2fcaa
      https://github.com/WebKit/WebKit/commit/bbf35fce73dd9f17d72d5f438db5f3db32b2fcaa
  Author: Myles C. Maxfield <mmaxfield at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    A LayoutTests/http/tests/text/primary-font-interstitial-expected.html
    A LayoutTests/http/tests/text/primary-font-interstitial.html
    A LayoutTests/http/tests/text/resources/Gulf-regular.ttf
    M Source/WebCore/platform/graphics/FontCascadeFonts.h
    M Source/WebCore/platform/graphics/FontRanges.h

  Log Message:
  -----------
  Cherry-pick 262464 at main (7ba7f4d9fb85). https://bugs.webkit.org/show_bug.cgi?id=244757

    unicode-range may cause us to use Times's font metrics erroneously
    https://bugs.webkit.org/show_bug.cgi?id=244757

    Reviewed by Darin Adler.

    When we lay out a line, we use the metrics of the primary font inside our computation to determine line height.
    If the content just says `font-family: a, b`; then it's clear that `a` is the primary font. However, `a` can
    actually be a composite font, as such:

    ```
    @font-face {
        font-family: a;
        src: url("MyFont.ttf");
        unicode-range: some range;
    }
    @font-face {
        font-family: a;
        src: url("MyOtherFont.ttf");
        unicode-range: a distinct range that doesn't intersect the other font's range;
    }
    ```

    In this situation, when laying out a line, should we use the metrics from MyFont.ttf or MyOtherFont.ttf?

    The spec isn't prescriptive here, so it's kind of up to us to determine what to do. What we actually do is
    from FontCascadeFonts::primaryFont():
    A) If one of the `unicode-range`s includes the space character, use that one (last one wins if there are
          multiple). If we need to download this font, do so.
    B) If none of the `unicode-range`s includes the space character, then use the last @font-face block, but
          set the flag to forbid downloads from occuring.

    When we ask for a font that hasn't finished loading yet, the font object we get back is an "interstitial"
    font, which just means it's a temporary invisible font to use until the real one finishes downloading. The
    interstitial font is hardcoded to always be Times. When we set the flag to forbid downloads from occurring,
    the font we get back is this "interstitial" font, but we'll never switch from the interstitial font to the
    real one - because the real one will never finish downloading because it never started downloading! So we
    just use the metrics from Times indefinitely, which is a surprising result!

    The solution here is just to allow downloads in both cases A) and B) above. By allowing downloads in case
    B), we start the font loading process which means we'll eventually switch off of using Times's metrics.

    Test: http/tests/text/primary-font-interstitial.html

    * LayoutTests/http/tests/text/primary-font-interstitial-expected.html: Added.
    * LayoutTests/http/tests/text/primary-font-interstitial.html: Added.
    * LayoutTests/http/tests/text/resources/Gulf-regular.ttf: Added.
    * Source/WebCore/platform/graphics/FontCascadeFonts.h:
    (WebCore::FontCascadeFonts::primaryFont):

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


  Commit: c522d2cda125612c6672d13ab0384476581efefe
      https://github.com/WebKit/WebKit/commit/c522d2cda125612c6672d13ab0384476581efefe
  Author: Diego Pino Garcia <dpino at igalia.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/WebProcess.h

  Log Message:
  -----------
  Cherry-pick 262405 at main (84f510837198). https://bugs.webkit.org/show_bug.cgi?id=252988

    [GTK] Unreviewed, build fix for Ubuntu 20.04 after 262210 at main
    https://bugs.webkit.org/show_bug.cgi?id=252988

    Variable 'm_displayForCompositing' was not declared for condition PLATFORM(GTK) && USE(EGL).

    * Source/WebKit/WebProcess/WebProcess.h:

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


  Commit: 0f48cc5d8f80c195c3f66d840341ab91e393902c
      https://github.com/WebKit/WebKit/commit/0f48cc5d8f80c195c3f66d840341ab91e393902c
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp
    M Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp
    M Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.cpp
    M Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h
    M Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp
    M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebBadgeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebPermissionController.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp
    M Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp
    M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPageOverlay.cpp
    M Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp
    M Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp

  Log Message:
  -----------
  Cherry-pick 262156 at main (e800fd7a7833). https://bugs.webkit.org/show_bug.cgi?id=254505

    Update WebPage::fromCorePage similarly to WebKitLegacy
    https://bugs.webkit.org/show_bug.cgi?id=254505
    rdar://problem/107259664

    Reviewed by Alex Christensen.

    Check that chorme client is not an empty client inside CorePage.
    Update call sites accordingly.

    * Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:
    (WebKit::RemoteWebInspectorUI::initialize):
    * Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:
    (WebKit::WebInspectorUI::establishConnection):
    * Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
    (WebKit::WebInspectorUIExtensionController::WebInspectorUIExtensionController):
    * Source/WebKit/WebProcess/Inspector/WebInspectorUIExtensionController.h:
    * Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:
    (WebKit::NetworkProcessConnection::broadcastConsoleMessage):
    * Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
    (WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
    (WebKit::WebLoaderStrategy::pageLoadCompleted):
    (WebKit::WebLoaderStrategy::browsingContextRemoved):
    (WebKit::WebLoaderStrategy::setResourceLoadSchedulingMode):
    * Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:
    (WebKit::WebSWClientConnection::focusServiceWorkerClient):
    * Source/WebKit/WebProcess/WebCoreSupport/WebBadgeClient.cpp:
    (WebKit::WebBadgeClient::setAppBadge):
    (WebKit::WebBadgeClient::setClientBadge):
    * Source/WebKit/WebProcess/WebCoreSupport/WebPermissionController.cpp:
    (WebKit::WebPermissionController::query):
    * Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
    (WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
    * Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp:
    (WebKit::VisitedLinkTableController::addVisitedLink):
    * Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
    (WebKit::WebFrame::page const):
    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::fromCorePage):
    * Source/WebKit/WebProcess/WebPage/WebPage.h:
    * Source/WebKit/WebProcess/WebPage/WebPageOverlay.cpp:
    (WebKit::WebPageOverlay::willMoveToPage):
    (WebKit::WebPageOverlay::didMoveToPage):
    * Source/WebKit/WebProcess/WebStorage/StorageNamespaceImpl.cpp:
    (WebKit::StorageNamespaceImpl::copy):
    * Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
    (WebKit::WebStorageNamespaceProvider::sessionStorageNamespace):
    (WebKit::WebStorageNamespaceProvider::copySessionStorageNamespace):
    * Source/WebKit/WebProcess/cocoa/LaunchServicesDatabaseManager.mm:
    (WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

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


  Commit: 80a2146f3a6f779309568b479b4556df1da3d670
      https://github.com/WebKit/WebKit/commit/80a2146f3a6f779309568b479b4556df1da3d670
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    A LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash-expected.txt
    A LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash.html
    M Source/WebCore/editing/InsertListCommand.cpp

  Log Message:
  -----------
  Cherry-pick 262051 at main (6e4c6ef4ca8a). https://bugs.webkit.org/show_bug.cgi?id=254375

    Assertion failure in CompositeEditCommand::moveParagraph via InsertListCommand::listifyParagraph
    https://bugs.webkit.org/show_bug.cgi?id=254375

    Reviewed by Wenson Hsieh.

    https://commits.webkit.org/70668@main made InsertListCommand::listifyParagraph to cross editing boundaries
    to look for the start & the end of the current paragraph so that we can include non-editable inline content.
    This, however, is inconsistent with CompositeEditCommand::moveParagraph's precondition that startOfParagraph
    is the start of paragraph without crossing editing boundaries.

    This patch addresses this precondition by calling startOfParagraph and endOfParagraph for the second time
    without specifying CanSkipOverEditingBoundary.

    * LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash-expected.txt: Added.
    * LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash.html: Added.
    * Source/WebCore/editing/InsertListCommand.cpp:
    (WebCore::InsertListCommand::listifyParagraph):

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


  Commit: 861e946097ddb9940e1870a0211f00488aed2238
      https://github.com/WebKit/WebKit/commit/861e946097ddb9940e1870a0211f00488aed2238
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  Cherry-pick 261336 at main (945b8f4da6d3). https://bugs.webkit.org/show_bug.cgi?id=253487

    WebPage::startTextManipulations returns without invoking completionHandler
    https://bugs.webkit.org/show_bug.cgi?id=253487
    rdar://106347676

    Reviewed by Ryosuke Niwa.

    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::startTextManipulations):

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


  Commit: 95ac0bd5e81f6cfba816525ec90e213da8c13f40
      https://github.com/WebKit/WebKit/commit/95ac0bd5e81f6cfba816525ec90e213da8c13f40
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    A LayoutTests/fast/scrolling/scroll-max-value-expected.txt
    A LayoutTests/fast/scrolling/scroll-max-value.html
    M Source/WebCore/rendering/RenderTextControlSingleLine.cpp

  Log Message:
  -----------
  Cherry-pick 261121 at main (393d4a1bb437). https://bugs.webkit.org/show_bug.cgi?id=250383

    Adjust text input scrollWidth and scrollHeight to include padding and any whitespace added by decorations

    https://bugs.webkit.org/show_bug.cgi?id=250383
    rdar://problem/104332108

    Reviewed by Alan Baradlay.

    This patch is to align WebKit with Blink / Chromium and Gecko / Firefox.

    Merge - https://src.chromium.org/viewvc/blink?view=revision&revision=186123

    This patch modifies "ScrollWidth" and "ScrollHeight" functions to ensure that
    scrollLeft (and similarly scrollTop) is always within range [0, scrollWidth - clientWidth]
    and padding and whitespaces added by decorations are accounted.

    * Source/WebCore/rendering/RenderTextControlSingleLine.cpp:
    (RenderTextConrolSingleLine::scrollWidth):
    (RenderTextConrolSingleLine::scrollHeight):
    * LayoutTests/fast/scrolling/scroll-max-value.html: Add Test Case
    * LayoutTests/fast/scrolling/scroll-max-value-expected.txt: Add Test Case Expectation

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


  Commit: d0ab3516a0787a31752dcdbb7331fedb9efd32fb
      https://github.com/WebKit/WebKit/commit/d0ab3516a0787a31752dcdbb7331fedb9efd32fb
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebCore/bindings/js/JSDOMWindowBase.cpp
    M Source/WebCore/bindings/js/JSDOMWindowBase.h

  Log Message:
  -----------
  Cherry-pick 261145 at main (34d9c5fdefdb). https://bugs.webkit.org/show_bug.cgi?id=253296

    Use tighter typing for value returned by JSDOMWindowBase::scriptExecutionContext()
    https://bugs.webkit.org/show_bug.cgi?id=253296

    Reviewed by Sihui Liu.

    * Source/WebCore/bindings/js/JSDOMWindowBase.cpp:
    (WebCore::JSDOMWindowBase::scriptExecutionContext const):
    * Source/WebCore/bindings/js/JSDOMWindowBase.h:

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


  Commit: 545e08cc5e92a3f43816bfc8af5c002a80de85e5
      https://github.com/WebKit/WebKit/commit/545e08cc5e92a3f43816bfc8af5c002a80de85e5
  Author: Antti Koivisto <antti at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebCore/style/AttributeChangeInvalidation.cpp

  Log Message:
  -----------
  Cherry-pick 261076 at main (2c5baee03fa2). https://bugs.webkit.org/show_bug.cgi?id=253067

    nullptr crash in WebCore::SelectorChecker::attributeSelectorMatches
    https://bugs.webkit.org/show_bug.cgi?id=253067
    rdar://105628059

    Reviewed by Geoffrey Garen and Alan Baradlay.

    Speculative fix.

    * Source/WebCore/style/AttributeChangeInvalidation.cpp:
    (WebCore::Style::AttributeChangeInvalidation::invalidateStyle):

    Check that we actually have an attribute selector.

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


  Commit: 6d8bb8ce13fb954eafd80f7912d71787ea8447ad
      https://github.com/WebKit/WebKit/commit/6d8bb8ce13fb954eafd80f7912d71787ea8447ad
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h

  Log Message:
  -----------
  Cherry-pick 261817 at main (52c77eeabac7). https://bugs.webkit.org/show_bug.cgi?id=254045

    Fix smart pointer usage when dealing with ScriptExecutionContext
    https://bugs.webkit.org/show_bug.cgi?id=254045
    rdar://106721110

    Reviewed by Ryosuke Niwa.

    This change fixes uses of ScriptExecutionContext so that it conforms
    with the smart pointer usage guidelines.

    * Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h:

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


  Commit: 79b2722fd578a4cfdf4cac09a1d0678e7089818d
      https://github.com/WebKit/WebKit/commit/79b2722fd578a4cfdf4cac09a1d0678e7089818d
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    A LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https-expected.txt
    A LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https.html
    A LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https.html.headers
    A LayoutTests/http/wpt/html/cross-origin-embedder-policy/resources/require-corp-cacheable-iframe.html
    A LayoutTests/http/wpt/html/cross-origin-embedder-policy/resources/require-corp-cacheable-iframe.html.headers
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

  Log Message:
  -----------
  Cherry-pick 261924 at main (38e9c1ce273d). https://bugs.webkit.org/show_bug.cgi?id=254065

    Cross-Origin-Embedder-Policy incorrectly blocks iframe on cache hit
    https://bugs.webkit.org/show_bug.cgi?id=254065

    Reviewed by Youenn Fablet.

    iframe loads served by the HTTP disk cache would fail Cross-Origin-Embedder-Policy
    (COEP) validation because shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions()
    was doing the checks using `m_response` instead of the `response` that is passed
    in argument. `m_response` has not yet been updated to be the same as `response`
    in the case where the response comes from the disk cache.

    * LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https-expected.txt: Added.
    * LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https.html: Added.
    * LayoutTests/http/wpt/html/cross-origin-embedder-policy/cached-iframe-require-corp.https.html.headers: Added.
    * LayoutTests/http/wpt/html/cross-origin-embedder-policy/resources/require-corp-cacheable-iframe.html: Added.
    * LayoutTests/http/wpt/html/cross-origin-embedder-policy/resources/require-corp-cacheable-iframe.html.headers: Added.
    * Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
    (WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions):

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


  Commit: e4b5fe0057c51f45a5c385e9a5d27c47e68b4f24
      https://github.com/WebKit/WebKit/commit/e4b5fe0057c51f45a5c385e9a5d27c47e68b4f24
  Author: Razvan Caliman <rcaliman at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js
    M Source/WebInspectorUI/UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js

  Log Message:
  -----------
  Cherry-pick 261883 at main (96c03ed0c66b). https://bugs.webkit.org/show_bug.cgi?id=253956

    Web Inspector: Styles Panel: Adding a new CSS rule doesn't work on first attempt
    https://bugs.webkit.org/show_bug.cgi?id=253956

    Reviewed by Patrick Angle.

    To add a new CSS rule, an inspector stylesheet is first created.
    This operation triggers a `DOMNodeStyles.refresh()`.

    The operation to add the new rule to this stylesheet also triggers a
    refresh. But if the promise for the first refresh is still pending,
    the second call is ignored. This means that the Styles panel ends up
    not showing any matching styles from the initially empty stylehseet.

    A subsequent call to add a new rule bypasses the need to create a new
    stylesheet. The `DOMNodeStyles.refresh()` it trigges brings the Styles
    panel in sync with the latest contents of the inspector-generated stylehseet.
    That's why two rules show up on the first successful attempt.

    The logic to mark the newly created rule's selector as editable is too lenient:
    it marks all CSS rules with a selector identical to the one of the newly created rule.
    This patch makes a stricter check by identifying the newly created rule by its `CSSStyle.styleId`.

    * Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js:
    (WI.DOMNodeStyles.prototype.addRule.completed):
    (WI.DOMNodeStyles.prototype.addRule.addedRule):
    * Source/WebInspectorUI/UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
    (WI.SpreadsheetRulesStyleDetailsPanel):
    (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionAddNewRule):
    (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
    (WI.SpreadsheetRulesStyleDetailsPanel.prototype._addNewRule):
    (WI.SpreadsheetRulesStyleDetailsPanel.prototype._addedNewRuleCallback):

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


  Commit: b23ec50b9c1a434ecc4d5de02f8bea0491b99c67
      https://github.com/WebKit/WebKit/commit/b23ec50b9c1a434ecc4d5de02f8bea0491b99c67
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M LayoutTests/css3/filters/effect-blur-hw.html
    M LayoutTests/css3/filters/effect-blur.html
    M LayoutTests/css3/filters/effect-combined.html
    A LayoutTests/css3/filters/svg-morphology-clipped-expected.html
    A LayoutTests/css3/filters/svg-morphology-clipped.html
    M LayoutTests/fast/filter-image/filter-image-blur-expected.html
    M LayoutTests/fast/filter-image/filter-image-blur.html
    M LayoutTests/fast/filter-image/resources/svg-blur.svg
    M LayoutTests/fast/filter-image/resources/svg-noblur.svg
    A LayoutTests/fast/hidpi/filters-drop-shadow-expected.html
    A LayoutTests/fast/hidpi/filters-drop-shadow.html
    M LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-region-transformed-child-001-expected.html
    M Source/WebCore/platform/graphics/filters/Filter.cpp
    M Source/WebCore/platform/graphics/filters/Filter.h
    M Source/WebCore/platform/graphics/filters/FilterEffect.cpp
    M Source/WebCore/rendering/CSSFilter.cpp
    M Source/WebCore/rendering/CSSFilter.h
    M Source/WebCore/rendering/RenderLayerFilters.cpp
    M Source/WebCore/rendering/style/StyleFilterImage.cpp
    M Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
    M Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
    M Source/WebCore/svg/SVGFEMorphologyElement.cpp
    M Source/WebCore/svg/SVGFEMorphologyElement.h
    M Source/WebCore/svg/graphics/filters/SVGFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.h
    M Source/WebCore/svg/graphics/filters/SVGFilterGraph.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.cpp

  Log Message:
  -----------
  Cherry-pick 261827 at main (7acdd2650a9b). https://bugs.webkit.org/show_bug.cgi?id=254062

    [Filters] Calculating the CSSFilter geometry and clipping sometimes is incorrect
    https://bugs.webkit.org/show_bug.cgi?id=254062
    rdar://106844401

    Reviewed by Simon Fraser.

    Like SVGFilter, CSSFilter should always intersect the FilterEffect imageRect with
    its primitiveSubregion. This will require:

    1. Filter::ClipOperation will be removed.
    2. Filter::clipToMaxEffectRect() will always clip the rectangle with maxEffectRect.
    3. FilterEffect::calculateImageRect() will return the maxEffectRect if number of
       input effects is zero. This was a bug which was covered by the union mode of
       Filter::clipToMaxEffectRect().
    4. RenderLayerFilters::beginFilterEffect() should set its targetBoundingBox the
       sourceImageRect of FilterTargetSwitcher.
    5. SVGFilterGraph::getNamedNodes() should not return an error if one of the inputs
       is builtin and there is no node for it. This happens when we build a graph of
       primitives and one of the inputs is SourceGraphic or SourceAlpha. In this case
       we just need to ignore this input since there is no built-in primitive for it.
       This fixes the calculation of the filter outsets which was covered by the union
       mode of Filter::clipToMaxEffectRect().
    6. SVGFEMorphologyElement::outsets() needs to implemented. This is a bug which was
       covered by the union mode of Filter::clipToMaxEffectRect().

    Note: This work is towards enabling the GraphicsContext filters. The clipping has
    to fixed first since no intermidate buffers are used to apply the CSSFilter.

    * LayoutTests/css3/filters/effect-blur-hw.html:
    * LayoutTests/css3/filters/effect-blur.html:
    * LayoutTests/css3/filters/effect-combined.html:
    * LayoutTests/css3/filters/svg-morphology-clipped-expected.html: Added.
    * LayoutTests/css3/filters/svg-morphology-clipped.html: Added.
    * LayoutTests/fast/filter-image/filter-image-blur-expected.html:
    * LayoutTests/fast/filter-image/filter-image-blur.html:
    * LayoutTests/fast/filter-image/resources/svg-blur.svg:
    * LayoutTests/fast/filter-image/resources/svg-noblur.svg:
    * LayoutTests/fast/hidpi/filters-drop-shadow-expected.html: Added.
    * LayoutTests/fast/hidpi/filters-drop-shadow.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-region-transformed-child-001-expected.html:
    * Source/WebCore/platform/graphics/filters/Filter.cpp:
    (WebCore::Filter::Filter):
    (WebCore::Filter::clipToMaxEffectRect const):
    * Source/WebCore/platform/graphics/filters/Filter.h:
    (WebCore::Filter::Filter):
    (WebCore::Filter::clipOperation const): Deleted.
    (WebCore::Filter::setClipOperation): Deleted.
    * Source/WebCore/platform/graphics/filters/FilterEffect.cpp:
    (WebCore::FilterEffect::calculateImageRect const):
    * Source/WebCore/rendering/CSSFilter.cpp:
    (WebCore::CSSFilter::create):
    (WebCore::CSSFilter::CSSFilter):
    (WebCore::createBlurEffect):
    (WebCore::createReferenceFilter):
    (WebCore::CSSFilter::buildFilterFunctions):
    * Source/WebCore/rendering/CSSFilter.h:
    * Source/WebCore/rendering/RenderLayerFilters.cpp:
    (WebCore::RenderLayerFilters::beginFilterEffect):
    * Source/WebCore/rendering/style/StyleFilterImage.cpp:
    (WebCore::StyleFilterImage::image const):
    * Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp:
    (WebCore::RenderSVGResourceFilter::applyResource):
    * Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:
    (WebCore::writeSVGResourceContainer):
    * Source/WebCore/svg/SVGFEMorphologyElement.cpp:
    (WebCore::SVGFEMorphologyElement::outsets const):
    * Source/WebCore/svg/SVGFEMorphologyElement.h:
    * Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
    (WebCore::SVGFilter::create):
    (WebCore::SVGFilter::SVGFilter):
    * Source/WebCore/svg/graphics/filters/SVGFilter.h:
    * Source/WebCore/svg/graphics/filters/SVGFilterGraph.h:
    (WebCore::SVGFilterGraph::SVGFilterGraph):
    (WebCore::SVGFilterGraph::sourceGraphic const):
    (WebCore::SVGFilterGraph::sourceAlpha const):
    (WebCore::SVGFilterGraph::addNamedNode):
    (WebCore::SVGFilterGraph::getNamedNode const):
    (WebCore::SVGFilterGraph::getNamedNodes const):
    (WebCore::SVGFilterGraph::isSourceName):
    * Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
    (IPC::ArgumentCoder<Filter>::encode):
    (IPC::ArgumentCoder<Filter>::decode):

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


  Commit: 903c9c543610efc983a0594a6ce03f25aa551d42
      https://github.com/WebKit/WebKit/commit/903c9c543610efc983a0594a6ce03f25aa551d42
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    A JSTests/stress/tdz-check-catch-read.js
    M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp

  Log Message:
  -----------
  Cherry-pick 261006 at main (e7b74be2715f). https://bugs.webkit.org/show_bug.cgi?id=253142

    [JSC] ResolveNode can't always skip the extra move
    https://bugs.webkit.org/show_bug.cgi?id=253142
    rdar://106076478

    Reviewed by Keith Miller.

    In http://commits.webkit.org/260555@main I landed an optimization avoid the extra
    move in ResolveNode. However, that's not valid when we actually need the TDZ check.
    If the check fails, we throw an exception, but we already wrote to the destination.
    As a compromise, we still avoid the move unless we actually need the TDZ check.

    * JSTests/stress/tdz-check-catch-read.js: Added.
    (f):
    * Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:
    (JSC::ResolveNode::emitBytecode):

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


  Commit: c9c32c15c20e727f8ca0134be5d78793298104a1
      https://github.com/WebKit/WebKit/commit/c9c32c15c20e727f8ca0134be5d78793298104a1
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html
    A LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-sameish-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-sameish.html
    M LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter.html
    M LayoutTests/imported/w3c/web-platform-tests/url/url-setters-stripping.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/url/url-setters-stripping.any.worker-expected.txt
    M Source/WTF/wtf/URLParser.cpp

  Log Message:
  -----------
  Cherry-pick 261017 at main (0c6de669a59b). https://bugs.webkit.org/show_bug.cgi?id=251087

    Strip tab and newline from Location/URL/<a>/<area>'s protocol setter
    https://bugs.webkit.org/show_bug.cgi?id=251087
    rdar://104599983

    Reviewed by Alex Christensen.

    Our URL parser was already skipping newlines and tabs in the scheme while
    parsing. However, URL::setProtocol() would call URLParser::maybeCanonicalizeScheme()
    before parsing and this function would fail if the protocol contains any
    newlines or tabs.

    * LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html:
    * LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-sameish-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-sameish.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter.html:
    Resync tests after https://github.com/web-platform-tests/wpt/pull/38032.

    * LayoutTests/imported/w3c/web-platform-tests/url/url-setters-stripping.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/url/url-setters-stripping.any.worker-expected.txt:
    Rebaseline tests that are now passing.

    * Source/WTF/wtf/URLParser.cpp:
    (WTF::URLParser::maybeCanonicalizeScheme):
    Update URLParser::maybeCanonicalizeScheme() to allow for newlines and tabs in
    the scheme since it is allowed by the specification and our URL parser actually
    handles them fine.

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


  Commit: 2804afc607007f016b639d5aa0ee4eaca6976bb2
      https://github.com/WebKit/WebKit/commit/2804afc607007f016b639d5aa0ee4eaca6976bb2
  Author: Michael Catanzaro <mcatanzaro at redhat.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
    M Source/JavaScriptCore/heap/AbstractSlotVisitorInlines.h
    M Source/WebCore/animation/DocumentTimeline.cpp
    M Source/WebCore/platform/animation/TimingFunction.h
    M Source/WebCore/platform/graphics/AudioTrackPrivate.h
    M Source/WebCore/platform/graphics/InbandTextTrackPrivate.h
    M Source/WebCore/platform/graphics/TrackPrivateBase.h
    M Source/WebCore/platform/graphics/VideoTrackPrivate.h
    M Source/WebCore/style/ElementRuleCollector.cpp
    M Source/WebCore/svg/SVGPathSeg.h
    M Source/bmalloc/libpas/src/libpas/pas_fast_megapage_table.c
    M Tools/TestWebKitAPI/Tests/WTF/BoxPtr.cpp
    M Tools/TestWebKitAPI/Tests/WTF/CompactRefPtr.cpp
    M Tools/TestWebKitAPI/Tests/WTF/NakedPtr.cpp
    M Tools/TestWebKitAPI/Tests/WTF/PackedRefPtr.cpp
    M Tools/TestWebKitAPI/Tests/WTF/RefPtr.cpp

  Log Message:
  -----------
  Cherry-pick 262664 at main (2b34340acfdb). https://bugs.webkit.org/show_bug.cgi?id=254758

    Fix build with GCC 13 -Werror
    https://bugs.webkit.org/show_bug.cgi?id=254758

    Reviewed by Adrian Perez de Castro.

    This allows building with GCC 13 in DEVELOPER_MODE (where warnings are
    now fatal).

    * Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:
    (JSC::BytecodeGenerator::BytecodeGenerator):
    * Source/JavaScriptCore/heap/AbstractSlotVisitorInlines.h:
    (JSC::AbstractSlotVisitor::ReferrerContext::ReferrerContext):
    * Source/WebCore/animation/DocumentTimeline.cpp:
    (WebCore::DocumentTimeline::animationCanBeRemoved):
    * Source/WebCore/platform/animation/TimingFunction.h:
    * Source/WebCore/platform/graphics/AudioTrackPrivate.h:
    (WebCore::AudioTrackPrivate::operator== const):
    * Source/WebCore/platform/graphics/InbandTextTrackPrivate.h:
    (WebCore::InbandTextTrackPrivate::operator== const):
    * Source/WebCore/platform/graphics/TrackPrivateBase.h:
    * Source/WebCore/platform/graphics/VideoTrackPrivate.h:
    (WebCore::VideoTrackPrivate::operator== const):
    * Source/WebCore/style/ElementRuleCollector.cpp:
    (WebCore::Style::leftToRightDeclaration):
    (WebCore::Style::rightToLeftDeclaration):
    * Source/WebCore/svg/SVGPathSeg.h:
    * Source/bmalloc/libpas/src/libpas/pas_fast_megapage_table.c:
    (pas_fast_megapage_table_set_by_index):
    * Tools/TestWebKitAPI/Tests/WTF/BoxPtr.cpp:
    (TestWebKitAPI::TEST):
    * Tools/TestWebKitAPI/Tests/WTF/CompactRefPtr.cpp:
    (TestWebKitAPI::TEST):
    * Tools/TestWebKitAPI/Tests/WTF/NakedPtr.cpp:
    (TestWebKitAPI::TEST):
    * Tools/TestWebKitAPI/Tests/WTF/PackedRefPtr.cpp:
    (TestWebKitAPI::TEST):
    * Tools/TestWebKitAPI/Tests/WTF/RefPtr.cpp:
    (TestWebKitAPI::TEST):

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


Compare: https://github.com/WebKit/WebKit/compare/768963a39cda...2804afc60700


More information about the webkit-changes mailing list