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

View File

@ -106,13 +106,13 @@ ExcludeArch: s390x
Summary: Mozilla Firefox Web browser Summary: Mozilla Firefox Web browser
Name: firefox Name: firefox
Version: 81.0.2 Version: 82.0
Release: 2%{?dist} Release: 4%{?dist}
URL: https://www.mozilla.org/firefox/ URL: https://www.mozilla.org/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+ 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 Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
%if %{with langpacks} %if %{with langpacks}
Source1: firefox-langpacks-%{version}%{?pre_version}-20201012.tar.xz Source1: firefox-langpacks-%{version}%{?pre_version}-20201015.tar.xz
%endif %endif
Source2: cbindgen-vendor.tar.xz Source2: cbindgen-vendor.tar.xz
Source10: firefox-mozconfig Source10: firefox-mozconfig
@ -164,9 +164,6 @@ Patch228: disable-openh264-download.patch
# Upstream patches # Upstream patches
Patch402: mozilla-1196777.patch Patch402: mozilla-1196777.patch
Patch403: mozilla-1656505-1.patch
Patch404: mozilla-1656505-2.patch
Patch405: mozilla-1665324.patch
Patch406: mozilla-1665329.patch Patch406: mozilla-1665329.patch
Patch407: mozilla-1667096.patch Patch407: mozilla-1667096.patch
Patch408: mozilla-1663844.patch Patch408: mozilla-1663844.patch
@ -176,6 +173,7 @@ Patch411: mozilla-1668771.patch
Patch412: mozilla-1634404.patch Patch412: mozilla-1634404.patch
Patch413: mozilla-1669495.patch Patch413: mozilla-1669495.patch
Patch414: mozilla-1656727.patch Patch414: mozilla-1656727.patch
Patch415: mozilla-1670333.patch
# Wayland specific upstream patches # Wayland specific upstream patches
Patch574: firefox-pipewire-0-2.patch 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 %patch228 -p1 -b .disable-openh264-download
%patch402 -p1 -b .1196777 %patch402 -p1 -b .1196777
%patch403 -p1 -b .1656505-1
%patch404 -p1 -b .1656505-2
%patch405 -p1 -b .1665324
%patch406 -p1 -b .1665329 %patch406 -p1 -b .1665329
%patch407 -p1 -b .1667096 %patch407 -p1 -b .1667096
%patch408 -p1 -b .1663844 %patch408 -p1 -b .1663844
@ -387,12 +382,13 @@ This package contains results of tests executed during build.
%patch412 -p1 -b .1634404 %patch412 -p1 -b .1634404
%patch413 -p1 -b .1669495 %patch413 -p1 -b .1669495
%patch414 -p1 -b .1656727 %patch414 -p1 -b .1656727
%patch415 -p1 -b .1670333
# Wayland specific upstream patches # Wayland specific upstream patches
%if 0%{?fedora} < 32 %if 0%{?fedora} > 31 || 0%{?eln}
%patch574 -p1 -b .firefox-pipewire-0-2
%else
%patch575 -p1 -b .firefox-pipewire-0-3 %patch575 -p1 -b .firefox-pipewire-0-3
%else
%patch574 -p1 -b .firefox-pipewire-0-2
%endif %endif
# VA-API fixes # VA-API fixes
@ -618,10 +614,14 @@ echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig
%endif %endif
%if 0%{?build_with_pgo} %if 0%{?build_with_pgo}
echo "ac_add_options MOZ_PGO=1" >> .mozconfig echo "ac_add_options MOZ_PGO=1" >> .mozconfig
# Temporary disabled due to GCC bug # 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 echo "ac_add_options --enable-lto" >> .mozconfig
%endif %endif
# PGO build doesn't work with ccache # PGO build doesn't work with ccache
export CCACHE_DISABLE=1 export CCACHE_DISABLE=1
%endif %endif
@ -981,6 +981,22 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#--------------------------------------------------------------------- #---------------------------------------------------------------------
%changelog %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 * Mon Oct 12 2020 Martin Stransky <stransky@redhat.com> - 81.0.2-2
- Added a partial fox for rhbz#1886722 - 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 diff -up firefox-82.0/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-82.0/widget/gtk/WindowSurfaceWayland.cpp
--- firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 2020-10-08 11:35:41.921508799 +0200 --- firefox-82.0/widget/gtk/WindowSurfaceWayland.cpp.1656727 2020-10-15 16:16:53.522050159 +0200
+++ firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp 2020-10-08 11:37:05.036686876 +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( @@ -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 between us and wayland compositor. We draw our graphics data to the shm and
handle to wayland compositor by WindowBackBuffer/WindowSurfaceWayland 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(); return mWindowSurfaceWayland->GetWaylandDisplay();
} }
@@ -398,7 +435,6 @@ WindowSurfaceWayland::WindowSurfaceWayla @@ -399,7 +436,6 @@ WindowSurfaceWayland::WindowSurfaceWayla
mWaylandFullscreenDamage(false), mWaylandFullscreenDamage(false),
mFrameCallback(nullptr), mFrameCallback(nullptr),
mLastCommittedSurface(nullptr), mLastCommittedSurface(nullptr),
@ -62,7 +62,7 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
mLastCommitTime(0), mLastCommitTime(0),
mDrawToWaylandBufferDirectly(true), mDrawToWaylandBufferDirectly(true),
mCanSwitchWaylandBuffer(true), mCanSwitchWaylandBuffer(true),
@@ -410,6 +446,7 @@ WindowSurfaceWayland::WindowSurfaceWayla @@ -411,6 +447,7 @@ WindowSurfaceWayland::WindowSurfaceWayla
for (int i = 0; i < BACK_BUFFER_NUM; i++) { for (int i = 0; i < BACK_BUFFER_NUM; i++) {
mShmBackupBuffer[i] = nullptr; mShmBackupBuffer[i] = nullptr;
} }
@ -70,7 +70,7 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
} }
WindowSurfaceWayland::~WindowSurfaceWayland() { WindowSurfaceWayland::~WindowSurfaceWayland() {
@@ -417,12 +454,9 @@ WindowSurfaceWayland::~WindowSurfaceWayl @@ -418,12 +455,9 @@ WindowSurfaceWayland::~WindowSurfaceWayl
NS_WARNING("Deleted WindowSurfaceWayland with a pending commit!"); 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) { if (mFrameCallback) {
wl_callback_destroy(mFrameCallback); wl_callback_destroy(mFrameCallback);
@@ -863,23 +897,11 @@ bool WindowSurfaceWayland::CommitImageCa @@ -864,23 +898,11 @@ bool WindowSurfaceWayland::CommitImageCa
return true; 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((" mFrameCallback = %p\n", mFrameCallback));
LOGWAYLAND((" mLastCommittedSurface = %p\n", mLastCommittedSurface)); LOGWAYLAND((" mLastCommittedSurface = %p\n", mLastCommittedSurface));
LOGWAYLAND((" mBufferPendingCommit = %d\n", mBufferPendingCommit)); LOGWAYLAND((" mBufferPendingCommit = %d\n", mBufferPendingCommit));
@@ -915,16 +937,10 @@ void WindowSurfaceWayland::CommitWayland @@ -916,16 +938,10 @@ void WindowSurfaceWayland::CommitWayland
MOZ_ASSERT(!mFrameCallback || waylandSurface != mLastCommittedSurface, MOZ_ASSERT(!mFrameCallback || waylandSurface != mLastCommittedSurface,
"Missing wayland surface at frame callback!"); "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); EVENT_LOOP_DELAY);
} }
return; return;
@@ -1036,25 +1052,6 @@ void WindowSurfaceWayland::FrameCallback @@ -1037,25 +1053,6 @@ void WindowSurfaceWayland::FrameCallback
CommitWaylandBuffer(); CommitWaylandBuffer();
} }
@ -155,9 +155,9 @@ diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.cpp.1656727 firefox-81.0
} // namespace widget } // namespace widget
} // namespace mozilla } // namespace mozilla
diff -up firefox-81.0.1/widget/gtk/WindowSurfaceWayland.h.1656727 firefox-81.0.1/widget/gtk/WindowSurfaceWayland.h diff -up firefox-82.0/widget/gtk/WindowSurfaceWayland.h.1656727 firefox-82.0/widget/gtk/WindowSurfaceWayland.h
--- firefox-81.0.1/widget/gtk/WindowSurfaceWayland.h.1656727 2020-09-30 19:42:37.000000000 +0200 --- firefox-82.0/widget/gtk/WindowSurfaceWayland.h.1656727 2020-10-14 19:20:27.000000000 +0200
+++ firefox-81.0.1/widget/gtk/WindowSurfaceWayland.h 2020-10-08 11:35:41.928508817 +0200 +++ firefox-82.0/widget/gtk/WindowSurfaceWayland.h 2020-10-15 16:16:53.528050175 +0200
@@ -161,7 +161,7 @@ class WindowSurfaceWayland : public Wind @@ -161,7 +161,7 @@ class WindowSurfaceWayland : public Wind
// If we fail (wayland compositor is busy, // If we fail (wayland compositor is busy,
// wl_surface is not created yet) we queue the painting // 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 diff -up firefox-82.0/layout/xul/nsMenuPopupFrame.cpp.1669495 firefox-82.0/layout/xul/nsMenuPopupFrame.cpp
--- firefox-81.0.1/layout/xul/nsMenuPopupFrame.cpp.1669495 2020-10-08 10:09:23.765819989 +0200 --- firefox-82.0/layout/xul/nsMenuPopupFrame.cpp.1669495 2020-10-15 16:13:12.304471453 +0200
+++ firefox-81.0.1/layout/xul/nsMenuPopupFrame.cpp 2020-10-08 10:09:23.771820010 +0200 +++ firefox-82.0/layout/xul/nsMenuPopupFrame.cpp 2020-10-15 16:13:12.308471463 +0200
@@ -533,6 +533,26 @@ void nsMenuPopupFrame::LayoutPopup(nsBox @@ -533,6 +533,26 @@ void nsMenuPopupFrame::LayoutPopup(nsBox
} }
prefSize = XULBoundsCheck(minSize, prefSize, maxSize); 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); bool sizeChanged = (mPrefSize != prefSize);
// if the size changed then set the bounds to be the preferred size // if the size changed then set the bounds to be the preferred size
if (sizeChanged) { if (sizeChanged) {
diff -up firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 firefox-81.0.1/widget/gtk/nsWindow.cpp diff -up firefox-82.0/widget/gtk/nsWindow.cpp.1669495 firefox-82.0/widget/gtk/nsWindow.cpp
--- firefox-81.0.1/widget/gtk/nsWindow.cpp.1669495 2020-10-08 10:09:23.770820007 +0200 --- firefox-82.0/widget/gtk/nsWindow.cpp.1669495 2020-10-15 16:13:12.307471461 +0200
+++ firefox-81.0.1/widget/gtk/nsWindow.cpp 2020-10-08 10:10:29.225052014 +0200 +++ firefox-82.0/widget/gtk/nsWindow.cpp 2020-10-15 16:15:49.243882006 +0200
@@ -1090,11 +1090,13 @@ void nsWindow::Show(bool aState) { @@ -1092,11 +1092,13 @@ void nsWindow::Show(bool aState) {
void nsWindow::ResizeInt(int aX, int aY, int aWidth, int aHeight, bool aMove, void nsWindow::ResizeInt(int aX, int aY, int aWidth, int aHeight, bool aMove,
bool aRepaint) { 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)); + LOG((" ConstrainSize: w:%d h;%d\n", aWidth, aHeight));
+ +
if (aMove) { // If we used to have insane bounds, we may have skipped actually positioning
mBounds.x = aX; // the widget in NativeMoveResizeWaylandPopup, in which case we need to
mBounds.y = aY; // actually position it now as well.
@@ -1132,8 +1134,7 @@ void nsWindow::ResizeInt(int aX, int aY, @@ -1141,8 +1143,7 @@ void nsWindow::ResizeInt(int aX, int aY,
} }
void nsWindow::Resize(double aWidth, double aHeight, bool aRepaint) { 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 = double scale =
BoundsUseDesktopPixels() ? GetDesktopToDeviceScale().scale : 1.0; 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, void nsWindow::Resize(double aX, double aY, double aWidth, double aHeight,
bool aRepaint) { 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 = double scale =
BoundsUseDesktopPixels() ? GetDesktopToDeviceScale().scale : 1.0; 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.x = GdkCoordToDevicePixels(newBounds.x);
newBounds.y = GdkCoordToDevicePixels(newBounds.y); 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 = bool needsPositionUpdate =
(newBounds.x != mBounds.x || newBounds.y != mBounds.y); (newBounds.x != mBounds.x || newBounds.y != mBounds.y);
bool needsSizeUpdate = bool needsSizeUpdate =
@@ -1484,6 +1486,7 @@ void nsWindow::NativeMoveResizeWaylandPo @@ -1493,6 +1495,7 @@ void nsWindow::NativeMoveResizeWaylandPo
// Update view // Update view
if (needsSizeUpdate) { 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(); int32_t p2a = AppUnitsPerCSSPixel() / gfxPlatformGtk::GetFontScaleFactor();
mPreferredPopupRect = nsRect(NSIntPixelsToAppUnits(newBounds.x, p2a), mPreferredPopupRect = nsRect(NSIntPixelsToAppUnits(newBounds.x, p2a),
NSIntPixelsToAppUnits(newBounds.y, p2a), NSIntPixelsToAppUnits(newBounds.y, p2a),
@@ -1502,6 +1505,7 @@ void nsWindow::NativeMoveResizeWaylandPo @@ -1511,6 +1514,7 @@ void nsWindow::NativeMoveResizeWaylandPo
} }
if (needsPositionUpdate) { 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 newBounds are in coordinates relative to the parent window/popup.
// The NotifyWindowMoved requires the coordinates relative to the toplevel. // The NotifyWindowMoved requires the coordinates relative to the toplevel.
// We use the gdk_window_get_origin to get correct coordinates. // 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 // save our bounds
mBounds = aRect; 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; 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 (cbindgen-vendor.tar.xz) = f0425020e2d43a3d28b03f82bdb9719728112a2c94b1d595da384d0674ca21d0940a6f729a690434d670e598fbc6bb5193c89da0a4633a734c70dd786222e711
SHA512 (firefox-81.0.2.source.tar.xz) = 8a3ef4819120e93b860344ef05b4ef05262e3f127053ef66b3c1eb4b157932913f72fd4ba5500e86c2ef29f25be58e0c6e2c47a1c1ecde2abe77ece5f948fd75 SHA512 (firefox-82.0.source.tar.xz) = 887bceb0fffe257534b53cd019d35087752042ee7e9db089e01b1a930a30deb0c3dc6b32167552362092bdcec794dd5698046548d3419e17ecd2def366d1bde8
SHA512 (firefox-langpacks-81.0.2-20201012.tar.xz) = 5cc72b8a2e27318a55cda9156c6ade3613ae7f560d76fa0a12182626c6051b8d02f23b95597d185daf35b85bd8491bc44a6ca214619b641dc47f98564db75c97 SHA512 (firefox-langpacks-82.0-20201015.tar.xz) = 8c0cc37ee918bef930feed32aacaed3f7f28f1dd6615d4719d694d6efcd0fb621e03b613f21cd7b34d188b770d8a903568c676d7e3bb4484ab532a45b62a52a8