Skip to content

Commit 03ff660

Browse files
authored
Merge branch 'develop' into feature/RDKEMW-16976_may_22_recipe
2 parents 1f54ba4 + 3dc0008 commit 03ff660

4 files changed

Lines changed: 176 additions & 6 deletions

File tree

recipes-extended/networkmgr-plugin/networkmanager-plugin_git.bb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ NETWORKMANAGER_STUN_PORT ?= "19302"
1414
NETWORKMANAGER_LOGLEVEL ?= "3"
1515

1616
PR = "r0"
17-
PV = "v2.2.0"
17+
PV = "v2.3.0"
1818
S = "${WORKDIR}/git"
1919

2020
SRC_URI = "git://github.com/rdkcentral/networkmanager.git;protocol=https;branch=main"
2121

22-
SRCREV = "cea0da05b03de770e4ce967f0446f28885fc6219"
22+
SRCREV = "3735bc68710f915317bf708aac9009eac9d70d66"
2323

2424
PACKAGE_ARCH = "${MIDDLEWARE_ARCH}"
2525
DEPENDS = " openssl rdk-logger zlib boost curl glib-2.0 wpeframework entservices-apis wpeframework-tools-native libsoup-2.4 gupnp gssdp telemetry iarmbus iarmmgrs ${@bb.utils.contains('DISTRO_FEATURES', 'ENABLE_NETWORKMANAGER', ' networkmanager ', '', d)} "

recipes-extended/wpe-framework/wpeframework-ocdm-widevine_git.bb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=19a2b3c39737289f92c7991b16599360"
55
include recipes-extended/wpe-framework/include/wpeframework-plugins.inc
66

77
PR = "r0"
8-
PV = "1.0.2"
8+
PV = "1.1.0"
99

1010
SRC_URI = "git://github.com/rdkcentral/widevine-rdk.git;${CMF_GITHUB_SRC_URI_SUFFIX}"
11-
# TAG version 1.0.2
12-
SRCREV = "2aa9f3adf9bc24e924e4ab1ee415e7eacee227c4"
11+
# TAG version 1.1.0
12+
SRCREV = "731e7c5908b512f5cc891805cc30e671b7ad0d7c"
1313

1414
# Platform configurations
1515
DEPENDS += " ${platform-widevine-depends}"
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
From 53edfff6e5a4e96ac617aee1530559be4c26958d Mon Sep 17 00:00:00 2001
2+
From: Andrzej Surdej <Andrzej_Surdej@comcast.com>
3+
Date: Thu, 21 May 2026 13:20:47 +0200
4+
Subject: [PATCH] [MediaCapabilities] Protect MediaCapabilities JS wrapper from
5+
GC
6+
7+
Add GenerateIsReachable=ReachableFromNavigator to prevent wrapper GC.
8+
The MediaCapabilities interface is annotated [SameObject] in the spec,
9+
meaning navigator.mediaCapabilities must return the same object on every
10+
access. Without GC protection, the JS wrapper can be collected when no
11+
JS reference holds it, causing a new wrapper to be created on next access.
12+
This breaks object identity and loses any user-set properties.
13+
---
14+
.../Modules/mediacapabilities/MediaCapabilities.cpp | 11 +++++++++++
15+
.../Modules/mediacapabilities/MediaCapabilities.h | 8 ++++++--
16+
.../Modules/mediacapabilities/MediaCapabilities.idl | 3 ++-
17+
.../mediacapabilities/NavigatorMediaCapabilities.cpp | 6 +++---
18+
.../mediacapabilities/NavigatorMediaCapabilities.h | 2 +-
19+
.../WorkerNavigatorMediaCapabilities.cpp | 6 +++---
20+
.../WorkerNavigatorMediaCapabilities.h | 2 +-
21+
7 files changed, 27 insertions(+), 11 deletions(-)
22+
23+
diff --git a/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp b/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp
24+
index 6eca6dd6b30f..a3cfa014b792 100644
25+
--- a/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp
26+
+++ b/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp
27+
@@ -42,11 +42,22 @@
28+
#include "Page.h"
29+
#include "Settings.h"
30+
#include "WebRTCProvider.h"
31+
+#include "NavigatorBase.h"
32+
#include <wtf/Logger.h>
33+
#include <wtf/SortedArrayMap.h>
34+
35+
namespace WebCore {
36+
37+
+MediaCapabilities::MediaCapabilities(NavigatorBase& navigator)
38+
+ : m_navigator(navigator)
39+
+{
40+
+}
41+
+
42+
+NavigatorBase* MediaCapabilities::navigator()
43+
+{
44+
+ return m_navigator.get();
45+
+}
46+
+
47+
static bool isValidMediaMIMEType(const ContentType& contentType)
48+
{
49+
// A "bucket" MIME types is one whose container type does not uniquely specify a codec.
50+
diff --git a/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.h b/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.h
51+
index b9579019c1a7..0ab7a7ad3c44 100644
52+
--- a/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.h
53+
+++ b/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.h
54+
@@ -33,18 +33,22 @@
55+
namespace WebCore {
56+
57+
class DeferredPromise;
58+
+class NavigatorBase;
59+
class ScriptExecutionContext;
60+
61+
class MediaCapabilities : public RefCounted<MediaCapabilities>, public CanMakeWeakPtr<MediaCapabilities> {
62+
public:
63+
- static Ref<MediaCapabilities> create() { return adoptRef(*new MediaCapabilities); }
64+
+ static Ref<MediaCapabilities> create(NavigatorBase& navigator) { return adoptRef(*new MediaCapabilities(navigator)); }
65+
+
66+
+ NavigatorBase* navigator();
67+
68+
void decodingInfo(ScriptExecutionContext&, MediaDecodingConfiguration&&, Ref<DeferredPromise>&&);
69+
void encodingInfo(ScriptExecutionContext&, MediaEncodingConfiguration&&, Ref<DeferredPromise>&&);
70+
71+
private:
72+
- MediaCapabilities() = default;
73+
+ explicit MediaCapabilities(NavigatorBase&);
74+
75+
+ WeakPtr<NavigatorBase> m_navigator;
76+
uint64_t m_nextTaskIdentifier { 0 };
77+
HashMap<uint64_t, MediaEngineConfigurationFactory::DecodingConfigurationCallback> m_decodingTasks;
78+
HashMap<uint64_t, MediaEngineConfigurationFactory::EncodingConfigurationCallback> m_encodingTasks;
79+
diff --git a/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.idl b/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.idl
80+
index 05fc7ea634a8..02c367959f19 100644
81+
--- a/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.idl
82+
+++ b/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.idl
83+
@@ -25,7 +25,8 @@
84+
85+
[
86+
EnabledBySetting=MediaCapabilitiesEnabled,
87+
- Exposed=(Window,DedicatedWorker)
88+
+ Exposed=(Window,DedicatedWorker),
89+
+ GenerateIsReachable=ReachableFromNavigator
90+
] interface MediaCapabilities {
91+
[CallWith=CurrentScriptExecutionContext] Promise<MediaCapabilitiesDecodingInfo> decodingInfo(MediaDecodingConfiguration configuration);
92+
[CallWith=CurrentScriptExecutionContext] Promise<MediaCapabilitiesEncodingInfo> encodingInfo(MediaEncodingConfiguration configuration);
93+
diff --git a/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.cpp b/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.cpp
94+
index fce51add8aa6..6608175e1094 100644
95+
--- a/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.cpp
96+
+++ b/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.cpp
97+
@@ -31,8 +31,8 @@
98+
99+
namespace WebCore {
100+
101+
-NavigatorMediaCapabilities::NavigatorMediaCapabilities()
102+
- : m_mediaCapabilities(MediaCapabilities::create())
103+
+NavigatorMediaCapabilities::NavigatorMediaCapabilities(Navigator& navigator)
104+
+ : m_mediaCapabilities(MediaCapabilities::create(navigator))
105+
{
106+
}
107+
108+
@@ -47,7 +47,7 @@ NavigatorMediaCapabilities& NavigatorMediaCapabilities::from(Navigator& navigato
109+
{
110+
NavigatorMediaCapabilities* supplement = static_cast<NavigatorMediaCapabilities*>(Supplement<Navigator>::from(&navigator, supplementName()));
111+
if (!supplement) {
112+
- auto newSupplement = makeUnique<NavigatorMediaCapabilities>();
113+
+ auto newSupplement = makeUnique<NavigatorMediaCapabilities>(navigator);
114+
supplement = newSupplement.get();
115+
provideTo(&navigator, supplementName(), WTFMove(newSupplement));
116+
}
117+
diff --git a/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.h b/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.h
118+
index 76d598e18af9..3b8baad4b592 100644
119+
--- a/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.h
120+
+++ b/Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.h
121+
@@ -35,7 +35,7 @@ class Navigator;
122+
class NavigatorMediaCapabilities final : public Supplement<Navigator> {
123+
WTF_MAKE_FAST_ALLOCATED;
124+
public:
125+
- NavigatorMediaCapabilities();
126+
+ explicit NavigatorMediaCapabilities(Navigator&);
127+
~NavigatorMediaCapabilities();
128+
129+
static MediaCapabilities& mediaCapabilities(Navigator&);
130+
diff --git a/Source/WebCore/Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.cpp b/Source/WebCore/Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.cpp
131+
index 7a617b33a87b..1c4606d27ba1 100644
132+
--- a/Source/WebCore/Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.cpp
133+
+++ b/Source/WebCore/Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.cpp
134+
@@ -31,8 +31,8 @@
135+
136+
namespace WebCore {
137+
138+
-WorkerNavigatorMediaCapabilities::WorkerNavigatorMediaCapabilities()
139+
- : m_mediaCapabilities(MediaCapabilities::create())
140+
+WorkerNavigatorMediaCapabilities::WorkerNavigatorMediaCapabilities(WorkerNavigator& navigator)
141+
+ : m_mediaCapabilities(MediaCapabilities::create(navigator))
142+
{
143+
}
144+
145+
@@ -47,7 +47,7 @@ WorkerNavigatorMediaCapabilities& WorkerNavigatorMediaCapabilities::from(WorkerN
146+
{
147+
auto* supplement = static_cast<WorkerNavigatorMediaCapabilities*>(Supplement<WorkerNavigator>::from(&navigator, supplementName()));
148+
if (!supplement) {
149+
- auto newSupplement = makeUnique<WorkerNavigatorMediaCapabilities>();
150+
+ auto newSupplement = makeUnique<WorkerNavigatorMediaCapabilities>(navigator);
151+
supplement = newSupplement.get();
152+
provideTo(&navigator, supplementName(), WTFMove(newSupplement));
153+
}
154+
diff --git a/Source/WebCore/Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.h b/Source/WebCore/Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.h
155+
index 98fffdb05096..f1d698e73cf9 100644
156+
--- a/Source/WebCore/Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.h
157+
+++ b/Source/WebCore/Modules/mediacapabilities/WorkerNavigatorMediaCapabilities.h
158+
@@ -35,7 +35,7 @@ class WorkerNavigator;
159+
class WorkerNavigatorMediaCapabilities final : public Supplement<WorkerNavigator> {
160+
WTF_MAKE_FAST_ALLOCATED;
161+
public:
162+
- WorkerNavigatorMediaCapabilities();
163+
+ explicit WorkerNavigatorMediaCapabilities(WorkerNavigator&);
164+
~WorkerNavigatorMediaCapabilities();
165+
166+
static MediaCapabilities& mediaCapabilities(WorkerNavigator&);
167+
--
168+
2.51.0
169+

recipes-extended/wpe-webkit/wpe-webkit_2.46.1.bb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ PATCHTOOL = "git"
77
require wpe-webkit.inc
88

99
# Advance with every change in the recipe. Must be a plain integer (no dots, letters, etc.)
10-
WPE_RECIPE_REVISION = "1"
10+
WPE_RECIPE_REVISION = "2"
1111

1212
PR = "r${WPE_RECIPE_REVISION}"
1313
# Micro version suffix - four digits XXYY (XX - PV.micro, YY - WPE_RECIPE_REVISION)
@@ -24,6 +24,7 @@ SRC_URI = "${BASE_URI}"
2424
# Drop after PR is accepted
2525
SRC_URI += "file://2.46/1629.patch"
2626
SRC_URI += "file://2.46.1/1654_USAC_gst_query.patch"
27+
SRC_URI += "file://2.46.1/1678_MediaCaps_GC_protection.patch"
2728

2829
# Drop after westeros change is approved and released
2930
SRC_URI += "file://2.46/comcast-RDK-58780-set-segment-position-field.patch"

0 commit comments

Comments
 (0)