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:
parent
268ae0028c
commit
3e50e17831
2
.gitignore
vendored
2
.gitignore
vendored
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
42
firefox.spec
42
firefox.spec
@ -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
|
||||
|
||||
|
@ -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),
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
68
mozilla-1670333.patch
Normal 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;
|
4
sources
4
sources
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user