Skip to content

Commit

Permalink
wpewebkit: Bump to version 2.44.3
Browse files Browse the repository at this point in the history
Changes:

* Decrease input notifications for gamepad inputs.
* Disable the gst-libav AAC decoder.
* Fix accelerated images dissapearing after scrolling.
* Fix mouse location in WebDriver when output device scaling is in
  effect.
* Fix several crashes and rendering issues.
* Fix the build on 32-bit ARM with USE_LIBWEBRTC enabled.
* Fix the build with ENABLE_WEBAUDIO disabled.
* Fix touch input event propagation.
* Fix video flickering with DMA-BUF sink.
* Fix web process cache suspend/resume when sandbox is enabled.
* Make gamepads visible on axis movements, and not only on button
  presses.
* Make user scripts and style sheets visible in the Web Inspector.
* Undeprecate console message API and make it available in 2022 API.
* Use optimized assembler BoringSSL modules with USE_LIBWEBRTC enabled.
* Use the geolocation portal where available, with the existing Geoclue
  as fallback if the portal is not usable.

Release notes:

  https://wpewebkit.org/release/wpewebkit-2.44.3.html
  https://wpewebkit.org/release/wpewebkit-2.44.2.html

This also includes the two patches mentioned in this e-mail to the
mailing list as recommended over 2.44.3:

  https://lists.webkit.org/pipermail/webkit-gtk/2024-August/004002.html
  • Loading branch information
aperezdc committed Aug 27, 2024
1 parent 8540899 commit 3ec032e
Show file tree
Hide file tree
Showing 3 changed files with 147 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
From 9140ce712aa87091613874d802787ab476be0e39 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <[email protected]>
Date: Wed, 14 Aug 2024 14:58:05 -0500
Subject: [PATCH 4/5] Revert "Cherry-pick 272448.770@safari-7618-branch
(6d311cd7fefc). https://bugs.webkit.org/show_bug.cgi?id=271175"
https://bugs.webkit.org/show_bug.cgi?id=278113

This reverts commit 279c9d7963182cc35cf4e0bfebe87df2d83eaef8.

This broke wasm, and I don't know how to fix it.

Canonical link: https://commits.webkit.org/274313.373@webkitglib/2.44
---
.../stress/many-calls-results-on-stack.js | 39 -------------------
Source/JavaScriptCore/wasm/WasmBBQJIT.cpp | 19 ---------
2 files changed, 58 deletions(-)
delete mode 100644 JSTests/wasm/stress/many-calls-results-on-stack.js

diff --git a/JSTests/wasm/stress/many-calls-results-on-stack.js b/JSTests/wasm/stress/many-calls-results-on-stack.js
deleted file mode 100644
index edf10bad30b2..000000000000
--- a/JSTests/wasm/stress/many-calls-results-on-stack.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import { instantiate } from "../wabt-wrapper.js";
-import * as assert from "../assert.js";
-
-
-let wat = `
-(module
- (func $check (import "a" "check") (param i64))
-
- (func $foo (result ${"i64 ".repeat(20)})
- ${"(i64.const 42) ".repeat(20)}
- )
-
- (func $bar (result ${"i64 ".repeat(20)})
- ${"(i64.const 0) ".repeat(20)}
- )
-
- (func (export "test")
- call $foo
- call $bar
- ${"(drop) ".repeat(20)}
- call $check
- ${"(drop) ".repeat(19)}
- )
-)
-`;
-
-function check(value)
-{
- assert.eq(value, 42n);
-}
-
-async function test() {
- const instance = await instantiate(wat, { a: {check} }, {reference_types: true});
- const {test} = instance.exports;
- for (let i = 0; i < 1e5; ++i)
- test();
-}
-
-assert.asyncTest(test());
diff --git a/Source/JavaScriptCore/wasm/WasmBBQJIT.cpp b/Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
index 9049865e8ce7..3f142cf5e90f 100644
--- a/Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
+++ b/Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
@@ -3958,25 +3958,6 @@ void BBQJIT::returnValuesFromCall(Vector<Value, N>& results, const FunctionSigna
ASSERT(m_validFPRs.contains(returnLocation.asFPR(), Width::Width128));
m_fprSet.add(returnLocation.asFPR(), Width::Width128);
}
- } else {
- ASSERT(returnLocation.isStackArgument());
- // FIXME: Ideally, we would leave these values where they are but a subsequent call could clobber them before they are used.
- // That said, stack results are very rare so this isn't too painful.
- // Even if we did leave them where they are, we'd need to flush them to their canonical location at the next branch otherwise
- // we could have something like (assume no result regs for simplicity):
- // call (result i32 i32) $foo
- // if (result i32) // Stack: i32(StackArgument:8) i32(StackArgument:0)
- // // Stack: i32(StackArgument:8)
- // else
- // call (result i32 i32) $bar // Stack: i32(StackArgument:8) we have to flush the stack argument to make room for the result of bar
- // drop // Stack: i32(Stack:X) i32(StackArgument:8) i32(StackArgument:0)
- // drop // Stack: i32(Stack:X) i32(StackArgument:8)
- // end
- // return // Stack i32(*Conflicting locations*)
-
- Location canonicalLocation = canonicalSlot(result);
- emitMoveMemory(result.type(), returnLocation, canonicalLocation);
- returnLocation = canonicalLocation;
}
}
bind(result, returnLocation);
--
2.46.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
From 4854b944b345990e4100319662777856fe8ea4aa Mon Sep 17 00:00:00 2001
From: Adrian Perez de Castro <[email protected]>
Date: Thu, 15 Aug 2024 13:15:42 -0700
Subject: [PATCH 5/5] Cherry-pick 282306@main (96fb0b0c6c46).
https://bugs.webkit.org/show_bug.cgi?id=274780

[WPE][GTK] Crash in WebCore::TextDecorationPainter::paintBackgroundDecorations when compiled with Clang with LTO enabled
https://bugs.webkit.org/show_bug.cgi?id=274780

Reviewed by Michael Catanzaro.

Clang seem to have some issue when inlining assignment and move
operators in LTO builds, generating code that tries to perform OOB
access to Vector data. Replacing an assignmenmt with a Vector::swap(),
which is semantically equivalent in this case (the moved-from object
is not used again in the function) workarounds the compiler issue.

* Source/WebCore/rendering/TextDecorationPainter.cpp:
(WebCore::translateIntersectionPointsToSkipInkBoundaries):

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

Canonical link: https://commits.webkit.org/274313.374@webkitglib/2.44
---
Source/WebCore/rendering/TextDecorationPainter.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Source/WebCore/rendering/TextDecorationPainter.cpp b/Source/WebCore/rendering/TextDecorationPainter.cpp
index 229857f64ad4..a58bbd86f452 100644
--- a/Source/WebCore/rendering/TextDecorationPainter.cpp
+++ b/Source/WebCore/rendering/TextDecorationPainter.cpp
@@ -140,8 +140,10 @@ static DashArray translateIntersectionPointsToSkipInkBoundaries(const DashArray&
else
intermediateTuples.append(*i);
}
- } else
- intermediateTuples = tuples;
+ } else {
+ // XXX(274780): A plain assignment or move here makes Clang generate bad code in LTO builds.
+ intermediateTuples.swap(tuples);
+ }

// Step 3: Output the space between the ranges, but only if the space warrants an underline.
float previous = 0;
--
2.46.0

Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz;name=tarball \
file://0002-Activate-HAVE_MISSING_STD_FILESYSTEM_PATH_CONSTRUCTO.patch \
file://0004-Revert-Cherry-pick-272448.770-safari-7618-branch-6d3.patch \
file://0005-Cherry-pick-282306-main-96fb0b0c6c46-.-https-bugs.we.patch \
"

SRC_URI[tarball.sha256sum] = "2c9fbf4fcf8884d34102283e2b008ce0b0bc2cf07de78f564a8b34347e7bc19b"
SRC_URI[tarball.sha256sum] = "55c639879eaa5f070fb1c11fccb968cd85ca21680cc8cd0cd638135ca24433bb"

SRC_URI:class-devupstream = "git://github.com/WebKit/WebKit.git;protocol=https;branch=main"

Expand All @@ -19,7 +21,7 @@ PACKAGECONFIG[accessibility] = "-DUSE_ATK=ON,-DUSE_ATK=OFF,atk at-spi2-atk"
PACKAGECONFIG[libbacktrace] = "-DUSE_LIBBACKTRACE=ON,-DUSE_LIBBACKTRACE=OFF,libbacktrace"

# The WPE 2.44.X branch was forked from the main branch in this commit
SRCREV:class-devupstream = "39f0dc749a8d05eb34bbbcf497b5e44f4ff9e68d"
SRCREV:class-devupstream = "aee89255166e206da133e61fd57f4a158b6fdc80"

PACKAGECONFIG:append = " libbacktrace"

Expand Down

0 comments on commit 3ec032e

Please sign in to comment.