gh-13131: Sync upstream Firefox to version 149.0.2 (gh-13129)

This commit is contained in:
mr. m
2026-04-07 19:43:49 +02:00
committed by GitHub
parent f8efd2c22a
commit 8d646b3e41
12 changed files with 17 additions and 89 deletions

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
index e77dfebdf3a15033182eeae6eccd44a63aae3740..4e25b3e1abaeeaec3e83e0e1b53bf578eba5587b 100644
index a5f2e4258942010ee61ed7a86497f51793366fcd..f01524a09512ec6cd1972a9fdb173ff427a0d753 100644
--- a/browser/components/preferences/main.js
+++ b/browser/components/preferences/main.js
@@ -2652,6 +2652,11 @@ SettingGroupManager.registerGroups({

View File

@@ -1,5 +1,5 @@
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
index b837e66d4fd5b6a96ad3d9c35f8e50e911cd168b..c35a395da59fc30d70b1e05b94db41b7136db0de 100644
index 2876a539b21c038340d318d8f0d29da88c518686..1f6bbf828b86dc509f63c7c3d0032f1d4d551d9c 100644
--- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp
@@ -464,6 +464,7 @@

View File

@@ -1,5 +1,5 @@
diff --git a/dom/chrome-webidl/MediaController.webidl b/dom/chrome-webidl/MediaController.webidl
index 20f416d1c3b41798e0f90bbac5db40ed2a4ab000..1c5d893f9166a3aa7bc7802bb0d1207d169033ee 100644
index 2df28da9620f8564edb3e77184c674a95941e022..4e2a126766999543422d3a90c66c629f46b58bda 100644
--- a/dom/chrome-webidl/MediaController.webidl
+++ b/dom/chrome-webidl/MediaController.webidl
@@ -20,6 +20,12 @@ enum MediaControlKey {
@@ -15,9 +15,9 @@ index 20f416d1c3b41798e0f90bbac5db40ed2a4ab000..1c5d893f9166a3aa7bc7802bb0d1207d
/**
* MediaController is used to control media playback for a tab, and each tab
* would only have one media controller, which can be accessed from the
@@ -32,10 +38,14 @@ interface MediaController : EventTarget {
readonly attribute boolean isAudible;
@@ -33,10 +39,14 @@ interface MediaController : EventTarget {
readonly attribute boolean isPlaying;
readonly attribute boolean isAnyMediaBeingControlled;
readonly attribute MediaSessionPlaybackState playbackState;
+ readonly attribute boolean isBeingUsedInPIPModeOrFullscreen;

View File

@@ -1,5 +1,5 @@
diff --git a/dom/media/mediaelement/HTMLMediaElement.cpp b/dom/media/mediaelement/HTMLMediaElement.cpp
index 624375b514cb0b101ae24bb5906d0097d4b335db..27c91b01db611a0cd75b20907310d2fa4c8a1b47 100644
index b5b932e421894f33e1397149dcc580f891329cbc..ffc3fb68e01a0c11a3ebbbd7793e682d8dc6be47 100644
--- a/dom/media/mediaelement/HTMLMediaElement.cpp
+++ b/dom/media/mediaelement/HTMLMediaElement.cpp
@@ -451,6 +451,7 @@ class HTMLMediaElement::MediaControlKeyListener final

View File

@@ -1,19 +0,0 @@
diff --git a/gfx/webrender_bindings/DCLayerTree.cpp b/gfx/webrender_bindings/DCLayerTree.cpp
--- a/gfx/webrender_bindings/DCLayerTree.cpp
+++ b/gfx/webrender_bindings/DCLayerTree.cpp
@@ -2097,10 +2097,14 @@
hr = mCompositionSurface->BeginDraw(&updateRect, __uuidof(ID3D11Texture2D),
(void**)getter_AddRefs(backBuffer),
&offset);
if (FAILED(hr)) {
+ LayoutDeviceIntRect rect = widget::WinUtils::ToIntRect(updateRect);
+
+ gfxCriticalNote << "DCLayerCompositionSurface::Bind failed: "
+ << gfx::hexa(hr) << " " << rect;
RenderThread::Get()->HandleWebRenderError(WebRenderError::BEGIN_DRAW);
return;
}
const auto gl = mDCLayerTree->GetGLContext();

View File

@@ -1,43 +0,0 @@
diff --git a/gfx/webrender_bindings/DCLayerTree.cpp b/gfx/webrender_bindings/DCLayerTree.cpp
--- a/gfx/webrender_bindings/DCLayerTree.cpp
+++ b/gfx/webrender_bindings/DCLayerTree.cpp
@@ -2182,18 +2182,18 @@
updatePos = {0, 0};
}
mFirstDraw = false;
+ LayoutDeviceIntRect rect = widget::WinUtils::ToIntRect(updateRect);
+ MOZ_ASSERT(!rect.IsEmpty());
hr = mCompositionSurface->BeginDraw(&updateRect, __uuidof(ID3D11Texture2D),
(void**)getter_AddRefs(backBuffer),
&offset);
if (FAILED(hr)) {
- LayoutDeviceIntRect rect = widget::WinUtils::ToIntRect(updateRect);
-
gfxCriticalNote << "DCLayerCompositionSurface::Bind failed: "
<< gfx::hexa(hr) << " " << rect;
RenderThread::Get()->HandleWebRenderError(WebRenderError::BEGIN_DRAW);
return;
}
diff --git a/gfx/wr/webrender/src/renderer/composite.rs b/gfx/wr/webrender/src/renderer/composite.rs
--- a/gfx/wr/webrender/src/renderer/composite.rs
+++ b/gfx/wr/webrender/src/renderer/composite.rs
@@ -1120,11 +1120,13 @@
// Only use supplied clear color for first content layer we encounter
let clear_color = content_clear_color.take().unwrap_or(ColorF::TRANSPARENT);
if let Some(ref mut _compositor) = self.compositor_config.layer_compositor() {
if let Some(PartialPresentMode::Single { dirty_rect }) = partial_present_mode {
- if dirty_rect.is_empty() {
+ let device_rect = DeviceRect::from_size(device_size.to_f32());
+ let clipped_dirty_rect = dirty_rect.intersection_unchecked(&device_rect);
+ if clipped_dirty_rect.is_empty() {
continue;
}
}
}

View File

@@ -36,19 +36,9 @@
"application": "Application"
}
},
{
"type": "phabricator",
"id": "D291099",
"name": "gh-12979 1 Add gfxCriticalNote to DCLayerCompositionSurface"
},
{
"type": "phabricator",
"id": "D291123",
"name": "gh-12979 2 Compositor rendering performance fix"
},
{
"type": "phabricator",
"id": "D291714",
"name": "gh-12979 3 Clip dirty_rect to device_size"
"name": "gh-12979 Clip dirty_rect to device_size"
}
]