RHEL 9.0.0 Alpha bootstrap

The content of this branch was automatically imported from Fedora ELN
with the following as its source:
https://src.fedoraproject.org/rpms/firefox#78a2fca4c6a65a6d27fe55bf52a27ed21e6aec3b
This commit is contained in:
Troy Dawson 2020-10-20 06:49:17 -07:00
parent 268ae0028c
commit 3e50e17831
10 changed files with 134 additions and 211 deletions

2
.gitignore vendored
View File

@ -422,3 +422,5 @@ firefox-3.6.4.source.tar.bz2
/firefox-langpacks-81.0.1-20200930.tar.xz
/firefox-81.0.2.source.tar.xz
/firefox-langpacks-81.0.2-20201012.tar.xz
/firefox-82.0.source.tar.xz
/firefox-langpacks-82.0-20201015.tar.xz

View File

@ -65,6 +65,7 @@ MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh"
GETENFORCE_FILE="/usr/sbin/getenforce"
##
## Enable Wayland backend?
@ -182,8 +183,8 @@ fi
# When Firefox is not running, restore SELinux labels for profile files
# (rhbz#1731371)
if [ $MOZILLA_DOWN -ne 0 ]; then
if [ `getenforce` != "Disabled" ]; then
restorecon -vr ~/.mozilla/firefox/* &
if [ -x $GETENFORCE_FILE ] && [`getenforce` != "Disabled" ]; then
(restorecon -vr ~/.mozilla/firefox/* &)
fi
fi

View File

@ -106,13 +106,13 @@ ExcludeArch: s390x
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 81.0.2
Release: 2%{?dist}
Version: 82.0
Release: 4%{?dist}
URL: https://www.mozilla.org/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
%if %{with langpacks}
Source1: firefox-langpacks-%{version}%{?pre_version}-20201012.tar.xz
Source1: firefox-langpacks-%{version}%{?pre_version}-20201015.tar.xz
%endif
Source2: cbindgen-vendor.tar.xz
Source10: firefox-mozconfig
@ -164,9 +164,6 @@ Patch228: disable-openh264-download.patch
# Upstream patches
Patch402: mozilla-1196777.patch
Patch403: mozilla-1656505-1.patch
Patch404: mozilla-1656505-2.patch
Patch405: mozilla-1665324.patch
Patch406: mozilla-1665329.patch
Patch407: mozilla-1667096.patch
Patch408: mozilla-1663844.patch
@ -176,6 +173,7 @@ Patch411: mozilla-1668771.patch
Patch412: mozilla-1634404.patch
Patch413: mozilla-1669495.patch
Patch414: mozilla-1656727.patch
Patch415: mozilla-1670333.patch
# Wayland specific upstream patches
Patch574: firefox-pipewire-0-2.patch
@ -375,9 +373,6 @@ This package contains results of tests executed during build.
%patch228 -p1 -b .disable-openh264-download
%patch402 -p1 -b .1196777
%patch403 -p1 -b .1656505-1
%patch404 -p1 -b .1656505-2
%patch405 -p1 -b .1665324
%patch406 -p1 -b .1665329
%patch407 -p1 -b .1667096
%patch408 -p1 -b .1663844
@ -387,12 +382,13 @@ This package contains results of tests executed during build.
%patch412 -p1 -b .1634404
%patch413 -p1 -b .1669495
%patch414 -p1 -b .1656727
%patch415 -p1 -b .1670333
# Wayland specific upstream patches
%if 0%{?fedora} < 32
%patch574 -p1 -b .firefox-pipewire-0-2
%else
%if 0%{?fedora} > 31 || 0%{?eln}
%patch575 -p1 -b .firefox-pipewire-0-3
%else
%patch574 -p1 -b .firefox-pipewire-0-2
%endif
# VA-API fixes
@ -618,10 +614,14 @@ echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig
%endif
%if 0%{?build_with_pgo}
echo "ac_add_options MOZ_PGO=1" >> .mozconfig
# Temporary disabled due to GCC bug
%if 0%{?fedora} > 32
# Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1671345
# Should be in Firefox 83
%if 0%{?fedora} > 33
echo "ac_add_options --enable-lto" >> .mozconfig
%endif
# PGO build doesn't work with ccache
export CCACHE_DISABLE=1
%endif
@ -981,6 +981,22 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
* Mon Oct 19 2020 Martin Stransky <stransky@redhat.com> - 82.0-4
- Updated openh264 patch to use keyframes from contained
for openh264 only.
* Mon Oct 19 2020 Martin Stransky <stransky@redhat.com> - 82.0-3
- Added ELN build fixes
* Thu Oct 15 2020 Martin Stransky <stransky@redhat.com> - 82.0-2
- Updated SELinux relabel setup (rhbz#1731371)
* Thu Oct 15 2020 Martin Stransky <stransky@redhat.com> - 82.0-1
- Updated to 82.0 Build 2
* Thu Oct 15 2020 Martin Stransky <stransky@redhat.com> - 81.0.2-3
- Added experimental openh264 seek patch (mzbz#1670333)
* Mon Oct 12 2020 Martin Stransky <stransky@redhat.com> - 81.0.2-2
- Added a partial fox for rhbz#1886722

View File

@ -1,15 +0,0 @@
diff --git a/widget/gtk/DMABufLibWrapper.cpp b/widget/gtk/DMABufLibWrapper.cpp
--- a/widget/gtk/DMABufLibWrapper.cpp
+++ b/widget/gtk/DMABufLibWrapper.cpp
@@ -149,8 +149,8 @@
}
nsDMABufDevice::nsDMABufDevice()
- : mXRGBFormat({true, false, GBM_FORMAT_ARGB8888, nullptr, 0}),
- mARGBFormat({true, true, GBM_FORMAT_XRGB8888, nullptr, 0}),
+ : mXRGBFormat({true, false, GBM_FORMAT_XRGB8888, nullptr, 0}),
+ mARGBFormat({true, true, GBM_FORMAT_ARGB8888, nullptr, 0}),
mGbmDevice(nullptr),
mGbmFd(-1),
mGdmConfigured(false),

View File

@ -1,113 +0,0 @@
diff -up firefox-81.0/gfx/gl/SharedSurfaceDMABUF.cpp.1656505-2 firefox-81.0/gfx/gl/SharedSurfaceDMABUF.cpp
--- firefox-81.0/gfx/gl/SharedSurfaceDMABUF.cpp.1656505-2 2020-09-15 03:48:28.000000000 +0200
+++ firefox-81.0/gfx/gl/SharedSurfaceDMABUF.cpp 2020-09-15 18:13:03.683458125 +0200
@@ -63,6 +63,8 @@ UniquePtr<SurfaceFactory_DMABUF> Surface
return dmabufFactory;
}
+ LOGDMABUF(
+ ("SurfaceFactory_DMABUF::Create() failed, fallback to SW buffers.\n"));
gfxPlatformGtk::GetPlatform()->DisableDMABufWebGL();
return nullptr;
}
diff -up firefox-81.0/widget/gtk/DMABufSurface.cpp.1656505-2 firefox-81.0/widget/gtk/DMABufSurface.cpp
--- firefox-81.0/widget/gtk/DMABufSurface.cpp.1656505-2 2020-09-15 03:48:38.000000000 +0200
+++ firefox-81.0/widget/gtk/DMABufSurface.cpp 2020-09-15 18:13:03.683458125 +0200
@@ -26,6 +26,7 @@
#include "GLContextTypes.h" // for GLContext, etc
#include "GLContextEGL.h"
#include "GLContextProvider.h"
+#include "ScopedGLHelpers.h"
#include "mozilla/layers/LayersSurfaces.h"
@@ -320,6 +321,9 @@ bool DMABufSurfaceRGBA::Create(int aWidt
mWidth = aWidth;
mHeight = aHeight;
+ LOGDMABUF(("DMABufSurfaceRGBA::Create() UID %d size %d x %d\n", mUID, mWidth,
+ mHeight));
+
mGmbFormat = GetDMABufDevice()->GetGbmFormat(mSurfaceFlags & DMABUF_ALPHA);
if (!mGmbFormat) {
// Requested DRM format is not supported.
@@ -329,6 +333,7 @@ bool DMABufSurfaceRGBA::Create(int aWidt
bool useModifiers = (aDMABufSurfaceFlags & DMABUF_USE_MODIFIERS) &&
mGmbFormat->mModifiersCount > 0;
if (useModifiers) {
+ LOGDMABUF((" Creating with modifiers\n"));
mGbmBufferObject[0] = nsGbmLib::CreateWithModifiers(
GetDMABufDevice()->GetGbmDevice(), mWidth, mHeight, mGmbFormat->mFormat,
mGmbFormat->mModifiers, mGmbFormat->mModifiersCount);
@@ -360,6 +365,7 @@ bool DMABufSurfaceRGBA::Create(int aWidt
}
if (!mGbmBufferObject[0]) {
+ LOGDMABUF((" Failed to create GbmBufferObject\n"));
return false;
}
@@ -429,6 +435,8 @@ void DMABufSurfaceRGBA::ImportSurfaceDes
if (desc.refCount().Length() > 0) {
GlobalRefCountImport(desc.refCount()[0].ClonePlatformHandle().release());
}
+
+ LOGDMABUF(("DMABufSurfaceRGBA::Import() UID %d\n", mUID));
}
bool DMABufSurfaceRGBA::Create(const SurfaceDescriptor& aDesc) {
@@ -448,6 +456,8 @@ bool DMABufSurfaceRGBA::Serialize(
AutoTArray<ipc::FileDescriptor, 1> fenceFDs;
AutoTArray<ipc::FileDescriptor, 1> refCountFDs;
+ LOGDMABUF(("DMABufSurfaceRGBA::Serialize() UID %d\n", mUID));
+
width.AppendElement(mWidth);
height.AppendElement(mHeight);
format.AppendElement(mGmbFormat->mFormat);
@@ -469,7 +479,6 @@ bool DMABufSurfaceRGBA::Serialize(
SurfaceDescriptorDMABuf(mSurfaceType, mBufferModifier, mGbmBufferFlags,
fds, width, height, format, strides, offsets,
GetYUVColorSpace(), fenceFDs, mUID, refCountFDs);
-
return true;
}
@@ -556,7 +565,7 @@ bool DMABufSurfaceRGBA::CreateTexture(GL
aGLContext->MakeCurrent();
aGLContext->fGenTextures(1, &mTexture);
- aGLContext->fBindTexture(LOCAL_GL_TEXTURE_2D, mTexture);
+ const ScopedBindTexture savedTex(aGLContext, mTexture);
aGLContext->fTexParameteri(LOCAL_GL_TEXTURE_2D, LOCAL_GL_TEXTURE_WRAP_S,
LOCAL_GL_CLAMP_TO_EDGE);
aGLContext->fTexParameteri(LOCAL_GL_TEXTURE_2D, LOCAL_GL_TEXTURE_WRAP_T,
@@ -567,6 +576,7 @@ bool DMABufSurfaceRGBA::CreateTexture(GL
LOCAL_GL_LINEAR);
aGLContext->fEGLImageTargetTexture2D(LOCAL_GL_TEXTURE_2D, mEGLImage);
mGL = aGLContext;
+
return true;
}
@@ -611,6 +621,10 @@ void* DMABufSurface::MapInternal(uint32_
return nullptr;
}
+ LOGDMABUF(
+ ("DMABufSurfaceRGBA::MapInternal() UID %d size %d x %d -> %d x %d\n",
+ mUID, aX, aY, aWidth, aHeight));
+
mMappedRegionStride[aPlane] = 0;
mMappedRegionData[aPlane] = nullptr;
mMappedRegion[aPlane] = nsGbmLib::Map(
@@ -988,7 +1002,7 @@ bool DMABufSurfaceYUV::CreateTexture(GLC
aGLContext->MakeCurrent();
aGLContext->fGenTextures(1, &mTexture[aPlane]);
- aGLContext->fBindTexture(LOCAL_GL_TEXTURE_2D, mTexture[aPlane]);
+ const ScopedBindTexture savedTex(aGLContext, mTexture[aPlane]);
aGLContext->fTexParameteri(LOCAL_GL_TEXTURE_2D, LOCAL_GL_TEXTURE_WRAP_S,
LOCAL_GL_CLAMP_TO_EDGE);
aGLContext->fTexParameteri(LOCAL_GL_TEXTURE_2D, LOCAL_GL_TEXTURE_WRAP_T,

View File

@ -1,6 +1,6 @@
diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp
--- firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 2020-10-08 11:35:41.921508799 +0200
+++ firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp 2020-10-08 11:37:05.036686876 +0200
diff -up firefox-82.0/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-82.0/widget/gtk/WindowSurfaceWayland.cpp
--- firefox-82.0/widget/gtk/WindowSurfaceWayland.cpp.1656727 2020-10-15 16:16:53.522050159 +0200
+++ firefox-82.0/widget/gtk/WindowSurfaceWayland.cpp 2020-10-15 16:18:24.956289348 +0200
@@ -158,7 +158,6 @@ We allocate shared memory (shm) by mmap(
between us and wayland compositor. We draw our graphics data to the shm and
handle to wayland compositor by WindowBackBuffer/WindowSurfaceWayland
@ -51,10 +51,10 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
+ }
+}
+
nsWaylandDisplay* WindowBackBuffer::GetWaylandDisplay() {
RefPtr<nsWaylandDisplay> WindowBackBuffer::GetWaylandDisplay() {
return mWindowSurfaceWayland->GetWaylandDisplay();
}
@@ -398,7 +435,6 @@ WindowSurfaceWayland::WindowSurfaceWayla
@@ -399,7 +436,6 @@ WindowSurfaceWayland::WindowSurfaceWayla
mWaylandFullscreenDamage(false),
mFrameCallback(nullptr),
mLastCommittedSurface(nullptr),
@ -62,7 +62,7 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
mLastCommitTime(0),
mDrawToWaylandBufferDirectly(true),
mCanSwitchWaylandBuffer(true),
@@ -410,6 +446,7 @@ WindowSurfaceWayland::WindowSurfaceWayla
@@ -411,6 +447,7 @@ WindowSurfaceWayland::WindowSurfaceWayla
for (int i = 0; i < BACK_BUFFER_NUM; i++) {
mShmBackupBuffer[i] = nullptr;
}
@ -70,7 +70,7 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
}
WindowSurfaceWayland::~WindowSurfaceWayland() {
@@ -417,12 +454,9 @@ WindowSurfaceWayland::~WindowSurfaceWayl
@@ -418,12 +455,9 @@ WindowSurfaceWayland::~WindowSurfaceWayl
NS_WARNING("Deleted WindowSurfaceWayland with a pending commit!");
}
@ -86,7 +86,7 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
if (mFrameCallback) {
wl_callback_destroy(mFrameCallback);
@@ -863,23 +897,11 @@ bool WindowSurfaceWayland::CommitImageCa
@@ -864,23 +898,11 @@ bool WindowSurfaceWayland::CommitImageCa
return true;
}
@ -110,7 +110,7 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
LOGWAYLAND((" mFrameCallback = %p\n", mFrameCallback));
LOGWAYLAND((" mLastCommittedSurface = %p\n", mLastCommittedSurface));
LOGWAYLAND((" mBufferPendingCommit = %d\n", mBufferPendingCommit));
@@ -915,16 +937,10 @@ void WindowSurfaceWayland::CommitWayland
@@ -916,16 +938,10 @@ void WindowSurfaceWayland::CommitWayland
MOZ_ASSERT(!mFrameCallback || waylandSurface != mLastCommittedSurface,
"Missing wayland surface at frame callback!");
@ -129,7 +129,7 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
EVENT_LOOP_DELAY);
}
return;
@@ -1036,25 +1052,6 @@ void WindowSurfaceWayland::FrameCallback
@@ -1037,25 +1053,6 @@ void WindowSurfaceWayland::FrameCallback
CommitWaylandBuffer();
}
@ -155,9 +155,9 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
} // namespace widget
} // namespace mozilla
diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.h.1656727 firefox-81.0.1/widget/gtk/WindowSurfaceWayland.h
--- firefox-81.0.1/widget/gtk/WindowSurfaceWayland.h.1656727 2020-09-30 19:42:37.000000000 +0200
+++ firefox-81.0.1/widget/gtk/WindowSurfaceWayland.h 2020-10-08 11:35:41.928508817 +0200
diff -up firefox-82.0/widget/gtk/WindowSurfaceWayland.h.1656727 firefox-82.0/widget/gtk/WindowSurfaceWayland.h
--- firefox-82.0/widget/gtk/WindowSurfaceWayland.h.1656727 2020-10-14 19:20:27.000000000 +0200
+++ firefox-82.0/widget/gtk/WindowSurfaceWayland.h 2020-10-15 16:16:53.528050175 +0200
@@ -161,7 +161,7 @@ class WindowSurfaceWayland : public Wind
// If we fail (wayland compositor is busy,
// wl_surface is not created yet) we queue the painting

View File

@ -1,36 +0,0 @@
diff --git a/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h b/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h
--- a/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h
+++ b/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h
@@ -38,14 +38,6 @@
if (aParams.VideoConfig().HasAlpha()) {
return nullptr;
}
- if (VPXDecoder::IsVPX(aParams.mConfig.mMimeType) &&
- aParams.mOptions.contains(CreateDecoderParams::Option::LowLatency) &&
- !StaticPrefs::media_ffmpeg_low_latency_enabled()) {
- // We refuse to create a decoder with low latency enabled if it's VP8 or
- // VP9 unless specifically allowed: this will fallback to libvpx later.
- // We do allow it for h264.
- return nullptr;
- }
RefPtr<MediaDataDecoder> decoder = new FFmpegVideoDecoder<V>(
mLib, aParams.VideoConfig(), aParams.mKnowsCompositor,
aParams.mImageContainer,
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -7109,13 +7109,6 @@
mirror: always
#endif
-#if defined(MOZ_FFMPEG) || defined(MOZ_FFVPX)
-- name: media.ffmpeg.low-latency.enabled
- type: RelaxedAtomicBool
- value: false
- mirror: always
-#endif
-
#ifdef MOZ_WMF
- name: media.wmf.enabled

View File

@ -1,6 +1,6 @@
diff -up firefox-81.0.1/layout/xul/nsMenuPopupFrame.cpp.1669495 firefox-81.0.1/layout/xul/nsMenuPopupFrame.cpp
--- firefox-81.0.1/layout/xul/nsMenuPopupFrame.cpp.1669495 2020-10-08 10:09:23.765819989 +0200
+++ firefox-81.0.1/layout/xul/nsMenuPopupFrame.cpp 2020-10-08 10:09:23.771820010 +0200
diff -up firefox-82.0/layout/xul/nsMenuPopupFrame.cpp.1669495 firefox-82.0/layout/xul/nsMenuPopupFrame.cpp
--- firefox-82.0/layout/xul/nsMenuPopupFrame.cpp.1669495 2020-10-15 16:13:12.304471453 +0200
+++ firefox-82.0/layout/xul/nsMenuPopupFrame.cpp 2020-10-15 16:13:12.308471463 +0200
@@ -533,6 +533,26 @@ void nsMenuPopupFrame::LayoutPopup(nsBox
}
prefSize = XULBoundsCheck(minSize, prefSize, maxSize);
@ -28,10 +28,10 @@ diff -up firefox-81.0.1/layout/xul/nsMenuPopupFrame.cpp.1669495 firefox-81.0.1/l
bool sizeChanged = (mPrefSize != prefSize);
// if the size changed then set the bounds to be the preferred size
if (sizeChanged) {
diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gtk/nsWindow.cpp
--- firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 2020-10-08 10:09:23.770820007 +0200
+++ firefox-81.0.1/widget/gtk/nsWindow.cpp 2020-10-08 10:10:29.225052014 +0200
@@ -1090,11 +1090,13 @@ void nsWindow::Show(bool aState) {
diff -up firefox-82.0/widget/gtk/nsWindow.cpp.1669495 firefox-82.0/widget/gtk/nsWindow.cpp
--- firefox-82.0/widget/gtk/nsWindow.cpp.1669495 2020-10-15 16:13:12.307471461 +0200
+++ firefox-82.0/widget/gtk/nsWindow.cpp 2020-10-15 16:15:49.243882006 +0200
@@ -1092,11 +1092,13 @@ void nsWindow::Show(bool aState) {
void nsWindow::ResizeInt(int aX, int aY, int aWidth, int aHeight, bool aMove,
bool aRepaint) {
@ -44,10 +44,10 @@ diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gt
+ LOG((" ConstrainSize: w:%d h;%d\n", aWidth, aHeight));
+
if (aMove) {
mBounds.x = aX;
mBounds.y = aY;
@@ -1132,8 +1134,7 @@ void nsWindow::ResizeInt(int aX, int aY,
// If we used to have insane bounds, we may have skipped actually positioning
// the widget in NativeMoveResizeWaylandPopup, in which case we need to
// actually position it now as well.
@@ -1141,8 +1143,7 @@ void nsWindow::ResizeInt(int aX, int aY,
}
void nsWindow::Resize(double aWidth, double aHeight, bool aRepaint) {
@ -57,7 +57,7 @@ diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gt
double scale =
BoundsUseDesktopPixels() ? GetDesktopToDeviceScale().scale : 1.0;
@@ -1145,8 +1146,8 @@ void nsWindow::Resize(double aWidth, dou
@@ -1154,8 +1155,8 @@ void nsWindow::Resize(double aWidth, dou
void nsWindow::Resize(double aX, double aY, double aWidth, double aHeight,
bool aRepaint) {
@ -68,7 +68,7 @@ diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gt
double scale =
BoundsUseDesktopPixels() ? GetDesktopToDeviceScale().scale : 1.0;
@@ -1469,14 +1470,15 @@ void nsWindow::NativeMoveResizeWaylandPo
@@ -1478,14 +1479,15 @@ void nsWindow::NativeMoveResizeWaylandPo
newBounds.x = GdkCoordToDevicePixels(newBounds.x);
newBounds.y = GdkCoordToDevicePixels(newBounds.y);
@ -86,7 +86,7 @@ diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gt
bool needsPositionUpdate =
(newBounds.x != mBounds.x || newBounds.y != mBounds.y);
bool needsSizeUpdate =
@@ -1484,6 +1486,7 @@ void nsWindow::NativeMoveResizeWaylandPo
@@ -1493,6 +1495,7 @@ void nsWindow::NativeMoveResizeWaylandPo
// Update view
if (needsSizeUpdate) {
@ -94,7 +94,7 @@ diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gt
int32_t p2a = AppUnitsPerCSSPixel() / gfxPlatformGtk::GetFontScaleFactor();
mPreferredPopupRect = nsRect(NSIntPixelsToAppUnits(newBounds.x, p2a),
NSIntPixelsToAppUnits(newBounds.y, p2a),
@@ -1502,6 +1505,7 @@ void nsWindow::NativeMoveResizeWaylandPo
@@ -1511,6 +1514,7 @@ void nsWindow::NativeMoveResizeWaylandPo
}
if (needsPositionUpdate) {
@ -102,7 +102,7 @@ diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gt
// The newBounds are in coordinates relative to the parent window/popup.
// The NotifyWindowMoved requires the coordinates relative to the toplevel.
// We use the gdk_window_get_origin to get correct coordinates.
@@ -4211,6 +4215,8 @@ nsresult nsWindow::Create(nsIWidget* aPa
@@ -4245,6 +4249,8 @@ nsresult nsWindow::Create(nsIWidget* aPa
// save our bounds
mBounds = aRect;
@ -111,7 +111,7 @@ diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gt
mPreferredPopupRectFlushed = false;
@@ -5061,13 +5067,16 @@ void nsWindow::NativeShow(bool aAction)
@@ -5083,13 +5089,16 @@ void nsWindow::NativeShow(bool aAction)
}
}

68
mozilla-1670333.patch Normal file
View File

@ -0,0 +1,68 @@
diff -up firefox-82.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-82.0/dom/media/mp4/MP4Demuxer.cpp
--- firefox-82.0/dom/media/mp4/MP4Demuxer.cpp.1670333 2020-10-14 19:20:18.000000000 +0200
+++ firefox-82.0/dom/media/mp4/MP4Demuxer.cpp 2020-10-19 20:56:38.362039524 +0200
@@ -31,6 +31,8 @@ mozilla::LogModule* GetDemuxerLog() { re
DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \
__func__, ##__VA_ARGS__)
+extern bool gUseKeyframeFromContainer;
+
namespace mozilla {
DDLoggedTypeDeclNameAndBase(MP4TrackDemuxer, MediaTrackDemuxer);
@@ -394,6 +396,12 @@ already_AddRefed<MediaRawData> MP4TrackD
[[fallthrough]];
case H264::FrameType::OTHER: {
bool keyframe = type == H264::FrameType::I_FRAME;
+ if (gUseKeyframeFromContainer) {
+ if (sample->mKeyframe && sample->mKeyframe != keyframe) {
+ sample->mKeyframe = keyframe;
+ }
+ break;
+ }
if (sample->mKeyframe != keyframe) {
NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe "
"@ pts:%" PRId64 " dur:%" PRId64
diff -up firefox-82.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-82.0/dom/media/platforms/PDMFactory.cpp
--- firefox-82.0/dom/media/platforms/PDMFactory.cpp.1670333 2020-10-14 19:20:18.000000000 +0200
+++ firefox-82.0/dom/media/platforms/PDMFactory.cpp 2020-10-19 20:53:14.631214334 +0200
@@ -49,6 +49,8 @@
#include <functional>
+bool gUseKeyframeFromContainer = false;
+
namespace mozilla {
extern already_AddRefed<PlatformDecoderModule> CreateBlankDecoderModule();
@@ -380,7 +382,8 @@ void PDMFactory::CreatePDMs() {
#ifdef MOZ_FFMPEG
if (StaticPrefs::media_ffmpeg_enabled()) {
m = FFmpegRuntimeLinker::CreateDecoderModule();
- mFFmpegFailedToLoad = !StartupPDM(m);
+ mFFmpegUsed = StartupPDM(m);
+ mFFmpegFailedToLoad = !mFFmpegUsed;
} else {
mFFmpegFailedToLoad = false;
}
@@ -395,7 +398,8 @@ void PDMFactory::CreatePDMs() {
m = new AgnosticDecoderModule();
StartupPDM(m);
- if (StaticPrefs::media_gmp_decoder_enabled()) {
+ if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed) {
+ gUseKeyframeFromContainer = true;
m = new GMPDecoderModule();
mGMPPDMFailedToStartup = !StartupPDM(m);
} else {
diff -up firefox-82.0/dom/media/platforms/PDMFactory.h.1670333 firefox-82.0/dom/media/platforms/PDMFactory.h
--- firefox-82.0/dom/media/platforms/PDMFactory.h.1670333 2020-10-14 19:20:18.000000000 +0200
+++ firefox-82.0/dom/media/platforms/PDMFactory.h 2020-10-19 20:53:14.631214334 +0200
@@ -70,6 +70,7 @@ class PDMFactory final {
bool mWMFFailedToLoad = false;
bool mFFmpegFailedToLoad = false;
+ bool mFFmpegUsed = false;
bool mGMPPDMFailedToStartup = false;
friend class RemoteVideoDecoderParent;

View File

@ -1,3 +1,3 @@
SHA512 (cbindgen-vendor.tar.xz) = f0425020e2d43a3d28b03f82bdb9719728112a2c94b1d595da384d0674ca21d0940a6f729a690434d670e598fbc6bb5193c89da0a4633a734c70dd786222e711
SHA512 (firefox-81.0.2.source.tar.xz) = 8a3ef4819120e93b860344ef05b4ef05262e3f127053ef66b3c1eb4b157932913f72fd4ba5500e86c2ef29f25be58e0c6e2c47a1c1ecde2abe77ece5f948fd75
SHA512 (firefox-langpacks-81.0.2-20201012.tar.xz) = 5cc72b8a2e27318a55cda9156c6ade3613ae7f560d76fa0a12182626c6051b8d02f23b95597d185daf35b85bd8491bc44a6ca214619b641dc47f98564db75c97
SHA512 (firefox-82.0.source.tar.xz) = 887bceb0fffe257534b53cd019d35087752042ee7e9db089e01b1a930a30deb0c3dc6b32167552362092bdcec794dd5698046548d3419e17ecd2def366d1bde8
SHA512 (firefox-langpacks-82.0-20201015.tar.xz) = 8c0cc37ee918bef930feed32aacaed3f7f28f1dd6615d4719d694d6efcd0fb621e03b613f21cd7b34d188b770d8a903568c676d7e3bb4484ab532a45b62a52a8