[webkit-changes] [WebKit/WebKit] 229945: Cherry-pick 283996 at main (9e7f7fec1b29). https://bu...

Razvan Caliman - Apple noreply at github.com
Wed Sep 25 04:37:58 PDT 2024


  Branch: refs/heads/webkitglib/2.46
  Home:   https://github.com/WebKit/WebKit
  Commit: 2299457d0a029dc05f052e0482648e0293bc2ec5
      https://github.com/WebKit/WebKit/commit/2299457d0a029dc05f052e0482648e0293bc2ec5
  Author: Vitaly Dyachkov <vitaly at igalia.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

  Changed paths:
    M Source/WebCore/dom/ViewTransition.cpp

  Log Message:
  -----------
  Cherry-pick 283996 at main (9e7f7fec1b29). https://bugs.webkit.org/show_bug.cgi?id=279589

    [Debug] ASSERTION FAILED: !isSuspended() on `fast/css/view-transitions-zoom.html`
    https://bugs.webkit.org/show_bug.cgi?id=279589

    Reviewed by Tim Nguyen.

    Make sure that the script execution context is not stopped before
    evaluating the status of the promise when it's settled.

    * Source/WebCore/dom/ViewTransition.cpp:
    (WebCore::ViewTransition::skipViewTransition):

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

Canonical link: https://commits.webkit.org/282416.155@webkitglib/2.46


  Commit: 1f1b0adac8ffec8fab9c8833812aaa8d5e65b264
      https://github.com/WebKit/WebKit/commit/1f1b0adac8ffec8fab9c8833812aaa8d5e65b264
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

  Changed paths:
    A LayoutTests/compositing/visibility/omitted-nested-hidden-layers-crash-expected.txt
    A LayoutTests/compositing/visibility/omitted-nested-hidden-layers-crash.html
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayer.h

  Log Message:
  -----------
  Cherry-pick 282879 at main (fcd3d0ef9ce6). https://bugs.webkit.org/show_bug.cgi?id=278556

    REGRESSION: WebContent process terminates due to invalid RemoteLayerTreeDrawingAreaProxy_CommitLayerTree message.
    https://bugs.webkit.org/show_bug.cgi?id=278556
    <rdar://134572916>

    Reviewed by Simon Fraser.

    281636 at main fixed the case where omitting a visibility:hidden layer from the RenderLayer z-order lists caused
    a crash, because the compositor wasn't informed of the removal.

    This is a second variant of the same issue, where the omitting happens by not
    recursing into a hidden subtree instead of omitting a leaf.

    The fix is to stop doing that type of omission, since it's hard to reason about.
    It's possible that this is slightly slower in some cases (though only back to
    how the code ran before the original optimization, not a true regression). The
    real performance win comes from hiding these layers from the compositor, so it
    shouldn't be noticeable.

    The fix also clarifies some of the code around notifying the compositor, so that
    it works in the same way as collectLayers. This prevents a visible decendant of
    a non-stacking hidden layer from being removed from the compositor, only to be
    added again by collectLayers.

    * LayoutTests/compositing/visibility/omitted-nested-hidden-layers-crash-expected.txt: Added.
    * LayoutTests/compositing/visibility/omitted-nested-hidden-layers-crash.html: Added.
    * Source/WebCore/rendering/RenderLayer.cpp:
    (WebCore::RenderLayer::removeSelfFromCompositor):
    (WebCore::RenderLayer::removeDescendantsFromCompositor):
    (WebCore::RenderLayer::setWasOmittedFromZOrderTree):
    (WebCore::RenderLayer::collectLayers):
    (WebCore::RenderLayer::removeSelfAndDescendantsFromCompositor): Deleted.
    * Source/WebCore/rendering/RenderLayer.h:

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

Canonical link: https://commits.webkit.org/282416.156@webkitglib/2.46


  Commit: 0d58338d8467d08fe4af19427f0d3b2e62e58171
      https://github.com/WebKit/WebKit/commit/0d58338d8467d08fe4af19427f0d3b2e62e58171
  Author: Alexey Shvayka <ashvayka at apple.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

  Changed paths:
    A JSTests/stress/regress-279863.js
    M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp

  Log Message:
  -----------
  Cherry-pick 283922 at main (c4e162760b3e). https://bugs.webkit.org/show_bug.cgi?id=279863

    ASSERTION FAILED: !reg.isConstant() caused by destructuring assignment
    https://bugs.webkit.org/show_bug.cgi?id=279863
    <rdar://136233004>

    Reviewed by Yusuke Suzuki and Mark Lam.

    RETURN macro of CommonSlowPaths.cpp accesses destination register via GET macro,
    which asserts it to be non-constant. This change fixes the failing isConstant()
    assertion for OpToPropertyKeyOrNumber emitted in ObjectPatternNode::bindValue()
    by using temporary register if rest element is absent, while carefully preserving
    existing logic in case of m_containsRestElement.

    * JSTests/stress/regress-279863.js: Added.
    * Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:
    (JSC::ObjectPatternNode::bindValue const):

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

Canonical link: https://commits.webkit.org/282416.157@webkitglib/2.46


  Commit: 405a9f5045161038e36db36eea6b97d79dfc596c
      https://github.com/WebKit/WebKit/commit/405a9f5045161038e36db36eea6b97d79dfc596c
  Author: Carlos Bentzen <cadubentzen at igalia.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

  Changed paths:
    M Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp

  Log Message:
  -----------
  Cherry-pick 283495 at main (0b20935dbde7). https://bugs.webkit.org/show_bug.cgi?id=279507

    [GStreamer][WebRTC] Crash when rtpbin is missing
    https://bugs.webkit.org/show_bug.cgi?id=279507

    Reviewed by Philippe Normand.

    Add early return and error log when rtpbin is not found in webrtcbin.

    * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
    (WebCore::GStreamerMediaEndpoint::initializePipeline):

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

Canonical link: https://commits.webkit.org/282416.158@webkitglib/2.46


  Commit: f5c8449d059f1dd8b3b3773b8a5251f0520bf98f
      https://github.com/WebKit/WebKit/commit/f5c8449d059f1dd8b3b3773b8a5251f0520bf98f
  Author: Philippe Normand <philn at igalia.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

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

  Log Message:
  -----------
  Cherry-pick 283476 at main (19abc8c887de). https://bugs.webkit.org/show_bug.cgi?id=279499

    [GStreamer] Fix potential clash between std::span and WTF's span
    https://bugs.webkit.org/show_bug.cgi?id=279499

    Reviewed by Xabier Rodriguez-Calvar.

    Using "using" declarations of any kind to import names in the standard template library
    is not allowed by our code style guidelines.

    * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

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

Canonical link: https://commits.webkit.org/282416.159@webkitglib/2.46


  Commit: 4dabf1e3171a40fdf0462e937b7c232defb9305b
      https://github.com/WebKit/WebKit/commit/4dabf1e3171a40fdf0462e937b7c232defb9305b
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

  Changed paths:
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp

  Log Message:
  -----------
  Cherry-pick 283477 at main (82eeb087cdbf). https://bugs.webkit.org/show_bug.cgi?id=279487

    Crash in NetworkManager::onGatheredNetworks() under std::sort
    https://bugs.webkit.org/show_bug.cgi?id=279487
    rdar://133707018

    Reviewed by Youenn Fablet and Darin Adler.

    The `compare` function passed to std::sort() needs to satisfy the strict weak ordering
    rule:
    - https://en.wikipedia.org/wiki/Weak_ordering#Strict_weak_orderings

    ```
    Input:                      Test:     Result
    a is equivalent to b:       a < b     false
    a is equivalent to b        b < a     false

    a is less than b            a < b     true
    a is less than b            b < a     false

    b is less than a            a < b     false
    b is less than a            b < a     true
    ```

    If the function doesn't satisfy this rule, the behavior is undefined and he can lead
    to crashes.

    The function we are passing to std::sort() is `sortNetworks()`. The first issue is that
    it returns an `int` instead of a `bool`, which means that std::sort() will implicitly
    convert the return value to a bool internally.

    Then the implementation would rely on codePointCompare() internally which would return:
    -1 if a < b, 0 if a == b, and 1 if a > b.

    For both `a < b` and `b < a`, the result value (-1 and 1) would get implicitly converted
    to `true` and thus the sortNetworks() did NOT obey the strict weak ordering rule.

    * Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
    (WebKit::sortNetworks):

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

Canonical link: https://commits.webkit.org/282416.160@webkitglib/2.46


  Commit: 64a064b9ece8b7152f043cdc821c39f2e2cb6e05
      https://github.com/WebKit/WebKit/commit/64a064b9ece8b7152f043cdc821c39f2e2cb6e05
  Author: Razvan Caliman <rcaliman at apple.com>
  Date:   2024-09-25 (Wed, 25 Sep 2024)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Views/ConsoleDrawer.js
    M Source/WebInspectorUI/UserInterface/Views/Main.css
    M Source/WebInspectorUI/UserInterface/Views/QuickConsole.css
    M Source/WebInspectorUI/UserInterface/Views/QuickConsole.js
    M Source/WebInspectorUI/UserInterface/Views/Variables.css

  Log Message:
  -----------
  Cherry-pick 283412 at main (0da0eedeaa3f). https://bugs.webkit.org/show_bug.cgi?id=276530

    Web Inspector: Multiline REPL editor is broken
    https://bugs.webkit.org/show_bug.cgi?id=276530
    rdar://131756916

    Reviewed by BJ Burg and Devin Rousso.

    The content area of the console prompt is controlled by CodeMirror
    which sets the dimensions of a multi-line input as you type.
    It lives in a second level flex container and is intended to be capped at 33vh.

    At the first level flex container, the space available to be distributed to flex items
    is influenced by the size of the Console Drawer and the min-width of #tab-browser.

    Due to alignment within the flex layout and insufficient space,
    the multi-line console prompt nested within the second level flex container
    was allowed to grow within the second-level container without causing overflow.
    This masks some keyboard input and focus.

    This patch ensures the maximum height of the Console Drawer takes into account the
    space used by the console prompt. It also moves the 33vh max-height limit
    to the first level flex container to enforce the limit and ensure a scroll container
    as soon as its contents overflow.

    * Source/WebInspectorUI/UserInterface/Views/ConsoleDrawer.js:
    (WI.ConsoleDrawer.prototype._updateDrawerHeight):
    * Source/WebInspectorUI/UserInterface/Views/Main.css:
    (#content):
    * Source/WebInspectorUI/UserInterface/Views/QuickConsole.css:
    (.quick-console):
    (.quick-console > .console-prompt):

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

Canonical link: https://commits.webkit.org/282416.161@webkitglib/2.46


Compare: https://github.com/WebKit/WebKit/compare/7c24b6e0b6e6...64a064b9ece8

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