Accepting request 867008 from mozilla:Factory
- Mozilla Firefox 85.0 * Adobe Flash is completely history * supercookie protection * new bookmark handling and features MFSA 2021-03 (bsc#1181414) * CVE-2021-23953 (bmo#1683940) Cross-origin information leakage via redirected PDF requests * CVE-2021-23954 (bmo#1684020) Type confusion when using logical assignment operators in JavaScript switch statements * CVE-2021-23955 (bmo#1684837) Clickjacking across tabs through misusing requestPointerLock * CVE-2021-23956 (bmo#1338637) File picker dialog could have been used to disclose a complete directory * CVE-2021-23957 (bmo#1584582) Iframe sandbox could have been bypassed on Android via the intent URL scheme * CVE-2021-23958 (bmo#1642747) Screen sharing permission leaked across tabs * CVE-2021-23959 (bmo#1659035) Cross-Site Scripting in error pages on Firefox for Android * CVE-2021-23960 (bmo#1675755) Use-after-poison for incorrectly redeclared JavaScript variables during GC * CVE-2021-23961 (bmo#1677940) More internal network hosts could have been probed by a malicious webpage * CVE-2021-23962 (bmo#1677194) Use-after-poison in OBS-URL: https://build.opensuse.org/request/show/867008 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/MozillaFirefox?expand=0&rev=327
This commit is contained in:
commit
a08f52f323
@ -1,3 +1,52 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jan 24 11:53:58 UTC 2021 - Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
|
|
||||||
|
- Mozilla Firefox 85.0
|
||||||
|
* Adobe Flash is completely history
|
||||||
|
* supercookie protection
|
||||||
|
* new bookmark handling and features
|
||||||
|
MFSA 2021-03 (bsc#1181414)
|
||||||
|
* CVE-2021-23953 (bmo#1683940)
|
||||||
|
Cross-origin information leakage via redirected PDF requests
|
||||||
|
* CVE-2021-23954 (bmo#1684020)
|
||||||
|
Type confusion when using logical assignment operators in
|
||||||
|
JavaScript switch statements
|
||||||
|
* CVE-2021-23955 (bmo#1684837)
|
||||||
|
Clickjacking across tabs through misusing requestPointerLock
|
||||||
|
* CVE-2021-23956 (bmo#1338637)
|
||||||
|
File picker dialog could have been used to disclose a
|
||||||
|
complete directory
|
||||||
|
* CVE-2021-23957 (bmo#1584582)
|
||||||
|
Iframe sandbox could have been bypassed on Android via the
|
||||||
|
intent URL scheme
|
||||||
|
* CVE-2021-23958 (bmo#1642747)
|
||||||
|
Screen sharing permission leaked across tabs
|
||||||
|
* CVE-2021-23959 (bmo#1659035)
|
||||||
|
Cross-Site Scripting in error pages on Firefox for Android
|
||||||
|
* CVE-2021-23960 (bmo#1675755)
|
||||||
|
Use-after-poison for incorrectly redeclared JavaScript
|
||||||
|
variables during GC
|
||||||
|
* CVE-2021-23961 (bmo#1677940)
|
||||||
|
More internal network hosts could have been probed by a
|
||||||
|
malicious webpage
|
||||||
|
* CVE-2021-23962 (bmo#1677194)
|
||||||
|
Use-after-poison in
|
||||||
|
<code>nsTreeBodyFrame::RowCountChanged</code>
|
||||||
|
* CVE-2021-23963 (bmo#1680793)
|
||||||
|
Permission prompt inaccessible after asking for additional
|
||||||
|
permissions
|
||||||
|
* CVE-2021-23964 (bmo#1662507, bmo#1666285, bmo#1673526, bmo#1674278,
|
||||||
|
bmo#1674835, bmo#1675097, bmo#1675844, bmo#1675868, bmo#1677590,
|
||||||
|
bmo#1677888, bmo#1680410, bmo#1681268, bmo#1682068, bmo#1682938,
|
||||||
|
bmo#1683736, bmo#1685260, bmo#1685925)
|
||||||
|
Memory safety bugs fixed in Firefox 85 and Firefox ESR 78.7
|
||||||
|
* CVE-2021-23965 (bmo#1670378, bmo#1673555, bmo#1676812, bmo#1678582,
|
||||||
|
bmo#1684497)
|
||||||
|
Memory safety bugs fixed in Firefox 85
|
||||||
|
- requires NSS 3.60.1
|
||||||
|
- requires rust 1.47
|
||||||
|
- remove obsolete mozilla-pipewire-0-3.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jan 11 18:02:01 UTC 2021 - Matthias Mailänder <mailaender@opensuse.org>
|
Mon Jan 11 18:02:01 UTC 2021 - Matthias Mailänder <mailaender@opensuse.org>
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# spec file for package MozillaFirefox
|
# spec file for package MozillaFirefox
|
||||||
#
|
#
|
||||||
# Copyright (c) 2021 SUSE LLC
|
# Copyright (c) 2021 SUSE LLC
|
||||||
# 2006-2020 Wolfgang Rosenauer <wr@rosenauer.org>
|
# 2006-2021 Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -29,9 +29,9 @@
|
|||||||
# orig_suffix b3
|
# orig_suffix b3
|
||||||
# major 69
|
# major 69
|
||||||
# mainver %major.99
|
# mainver %major.99
|
||||||
%define major 84
|
%define major 85
|
||||||
%define mainver %major.0.2
|
%define mainver %major.0
|
||||||
%define orig_version 84.0.2
|
%define orig_version 85.0
|
||||||
%define orig_suffix %{nil}
|
%define orig_suffix %{nil}
|
||||||
%define update_channel release
|
%define update_channel release
|
||||||
%define branding 1
|
%define branding 1
|
||||||
@ -92,7 +92,7 @@ BuildRequires: gcc9-c++
|
|||||||
%else
|
%else
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: cargo >= 1.44
|
BuildRequires: cargo >= 1.47
|
||||||
BuildRequires: ccache
|
BuildRequires: ccache
|
||||||
BuildRequires: libXcomposite-devel
|
BuildRequires: libXcomposite-devel
|
||||||
BuildRequires: libcurl-devel
|
BuildRequires: libcurl-devel
|
||||||
@ -101,7 +101,7 @@ BuildRequires: libiw-devel
|
|||||||
BuildRequires: libproxy-devel
|
BuildRequires: libproxy-devel
|
||||||
BuildRequires: makeinfo
|
BuildRequires: makeinfo
|
||||||
BuildRequires: mozilla-nspr-devel >= 4.29
|
BuildRequires: mozilla-nspr-devel >= 4.29
|
||||||
BuildRequires: mozilla-nss-devel >= 3.59.1
|
BuildRequires: mozilla-nss-devel >= 3.60.1
|
||||||
BuildRequires: nasm >= 2.14
|
BuildRequires: nasm >= 2.14
|
||||||
BuildRequires: nodejs10 >= 10.22.1
|
BuildRequires: nodejs10 >= 10.22.1
|
||||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
||||||
@ -111,7 +111,7 @@ BuildRequires: python36
|
|||||||
BuildRequires: python3 >= 3.5
|
BuildRequires: python3 >= 3.5
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: rust >= 1.44
|
BuildRequires: rust >= 1.47
|
||||||
BuildRequires: rust-cbindgen >= 0.15.0
|
BuildRequires: rust-cbindgen >= 0.15.0
|
||||||
BuildRequires: unzip
|
BuildRequires: unzip
|
||||||
BuildRequires: update-desktop-files
|
BuildRequires: update-desktop-files
|
||||||
@ -207,7 +207,6 @@ Patch19: mozilla-bmo1512162.patch
|
|||||||
Patch20: mozilla-fix-top-level-asm.patch
|
Patch20: mozilla-fix-top-level-asm.patch
|
||||||
Patch21: mozilla-bmo1504834-part4.patch
|
Patch21: mozilla-bmo1504834-part4.patch
|
||||||
Patch22: mozilla-bmo849632.patch
|
Patch22: mozilla-bmo849632.patch
|
||||||
Patch23: mozilla-pipewire-0-3.patch
|
|
||||||
Patch24: mozilla-bmo1602730.patch
|
Patch24: mozilla-bmo1602730.patch
|
||||||
Patch25: mozilla-bmo998749.patch
|
Patch25: mozilla-bmo998749.patch
|
||||||
Patch26: mozilla-bmo1626236.patch
|
Patch26: mozilla-bmo1626236.patch
|
||||||
@ -347,9 +346,6 @@ cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
|
|||||||
%patch20 -p1
|
%patch20 -p1
|
||||||
%patch21 -p1
|
%patch21 -p1
|
||||||
%patch22 -p1
|
%patch22 -p1
|
||||||
%if %{with_pipewire0_3}
|
|
||||||
%patch23 -p1
|
|
||||||
%endif
|
|
||||||
%patch24 -p1
|
%patch24 -p1
|
||||||
%patch25 -p1
|
%patch25 -p1
|
||||||
%patch26 -p1
|
%patch26 -p1
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:92bfd518d4f9760c897388a8e06130b171c1c43524d8af181add9daac2be7b37
|
|
||||||
size 363415420
|
|
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl/0zh8ACgkQ8aZmj7t9
|
|
||||||
Vy6krg//cvXq4sARmctPX8CkDMmbj9P734RCwOsSacu2hCmLMaefK+uq6yKt/c+L
|
|
||||||
i77S9sY1WnbDtHAGGLd2LTXvSEuwbpIvNlBmXSAWlATMDpMzMD08BGCOILYyOCMz
|
|
||||||
OFh590JQhjASfvpUeE/4kB+f/YEXLBnyV2vq1vcqWflsfWuvcGy+YIO3/WI+SVk4
|
|
||||||
NknJ/KqWui1Pgl8rI6UrlmDY7e/vA0bee4MqGKwfcdRjM01XuSHMzt5rJP2mvF7S
|
|
||||||
r58SBpY8ZJz++axJihos7A9jo3d6reF3CRR9aiH26bXyaqKnRfnZIZYPhdW6gfhM
|
|
||||||
mkIKAc/kVDjzBF4Xg/QWMONynrh288fEinCH7v3VHDWhes50uq33Ki5rgb+zXX9T
|
|
||||||
WjGVBZmC48mTpXAbroyn8Y3skVHJY+nhg/4akybsx9rz1pgIJh1P6aDmbSHFmoc5
|
|
||||||
5xDCHNVgm80FySV84CaXCG0Lq7Gdo317B8xReIAaMrXw3N+RKtiAdy/hswL0j70Y
|
|
||||||
rU77kXbo80ALVfXp/JEa697XOqxs0d6a0ekacsKo3pq6aWowRsdmNFdUTBxK8zDO
|
|
||||||
QiISgm3+xgO8sQgYCC3KyhKa+gMsa6Axw2PqsXNFgoC0rKQGbGzTVyqfcXUx9BR2
|
|
||||||
gpTpx1b8fKzf8PQZz9MSYHpv7QOW/agVQ3rmlgVr7lk/RyoOWmY=
|
|
||||||
=XVjq
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
firefox-85.0.source.tar.xz
Normal file
3
firefox-85.0.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5f03712642f5e77de4581d2ba3ee3e87cfa44c3d2fdd8fe0fb56ea05a57f7b50
|
||||||
|
size 378300292
|
16
firefox-85.0.source.tar.xz.asc
Normal file
16
firefox-85.0.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAmAF1esACgkQ8aZmj7t9
|
||||||
|
Vy7hhw/+O0RGFhPxg+hOjUs5DVzEjQjvPOKKv6A+t2PJkHrTJcpZOMnOyso+zFe1
|
||||||
|
GLRu61FIIIOTANL4Xb5oR+u4YMQmy/fMDtLAUIR88pgqS7QJrRXNE905otuGiBzl
|
||||||
|
Hu7/6aezTtIYtVr7zH6P8GukE7sGGviXdiuGzFmd3udJfR7crYm2E9R4HnFWCFAw
|
||||||
|
7m6bhu4Sd55kyJB9x6QarA10Y1HMdIRBlfypEkAWALKx6ycdGxjQ2uEx/t/N6AEW
|
||||||
|
rDALFPyjS0BzXUc5iWItiWNWqMgHsxBlhuSOMBoT0XDTeYDeYWsAE+hBUy0NpxYw
|
||||||
|
bMEYX6qXvZknLNtqcjI4ENdnAo63KEpJQ2vFmGJtPp4jKXHUgr4ZKhL3vA1WZ0Ww
|
||||||
|
BfR9OH9ex6nYgDuHFqz8d/mFFzPSY4O5tK4Z5PkMxVRegqBsemdeKvBYtnWwK1Ab
|
||||||
|
Xh7DRYe96EKA13aLZhOlNvZ5WJm+zzFQPcgSv7bRLul/VGOfSyIpAcXWmXeDdO3e
|
||||||
|
1+nAW6UZGQjNPAVNgQJCqEww4AOP7gdlLB1k7YavMbNH0ET8uQeN2YXOP/dBBkNa
|
||||||
|
DXrhQFTv5bjvtp+hbMfNRXI3Oco9wHtQgfz8piO9VUKX56AAD9f69fNf+MaMOgec
|
||||||
|
hybZkbcoe6ygBF8qRaCe2+vGV2ugCWYQ4VfOrZLrR5/vNcOZFNM=
|
||||||
|
=/ppE
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:c8391819e8c9d72260077e8d0a3538bb98f6938064916180ca64dc064397c047
|
|
||||||
size 49373248
|
|
3
l10n-85.0.tar.xz
Normal file
3
l10n-85.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:c52a7466b6caab04b31915c399316ecdb339dc1ffda249a1651ce4fa6fb348b8
|
||||||
|
size 49861480
|
@ -49,7 +49,7 @@ diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
|
|||||||
]
|
]
|
||||||
|
|
||||||
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
|
if CONFIG["CC_TYPE"] in ("clang", "gcc"):
|
||||||
CXXFLAGS += ["-Wno-shadow"]
|
CXXFLAGS += ["-Wno-shadow", "-Wno-error=stack-protector"]
|
||||||
SOURCES["../chromium/sandbox/linux/services/syscall_wrappers.cc"].flags += [
|
SOURCES["../chromium/sandbox/linux/services/syscall_wrappers.cc"].flags += [
|
||||||
"-Wno-empty-body",
|
"-Wno-empty-body",
|
||||||
]
|
]
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
# Parent 431962e810598b34327620fb99e06768e9a29c38
|
# Parent 41df71ef2798d6bd6a67cfc4c4f26b8d41b8ccca
|
||||||
|
|
||||||
diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
|
diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
|
||||||
--- a/build/moz.configure/lto-pgo.configure
|
--- a/build/moz.configure/lto-pgo.configure
|
||||||
+++ b/build/moz.configure/lto-pgo.configure
|
+++ b/build/moz.configure/lto-pgo.configure
|
||||||
@@ -223,23 +223,23 @@ def lto(value, c_compiler, ld64_known_go
|
@@ -235,23 +235,23 @@ def lto(
|
||||||
"configure."
|
"configure."
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -32,25 +32,6 @@ diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo
|
|||||||
# choose a poor default. Rust compilation by default uses the
|
# choose a poor default. Rust compilation by default uses the
|
||||||
# pentium4 CPU on x86:
|
# pentium4 CPU on x86:
|
||||||
#
|
#
|
||||||
@@ -263,17 +263,17 @@ def lto(value, c_compiler, ld64_known_go
|
|
||||||
ldflags.append("-mllvm:-mcpu=x86-64")
|
|
||||||
# We do not need special flags for arm64. Hooray for fixed-length
|
|
||||||
# instruction sets.
|
|
||||||
else:
|
|
||||||
num_cores = multiprocessing.cpu_count()
|
|
||||||
if len(value) and value[0].lower() == "full":
|
|
||||||
cflags.append("-flto")
|
|
||||||
else:
|
|
||||||
- cflags.append("-flto=thin")
|
|
||||||
+ cflags.append("-flto")
|
|
||||||
cflags.append("-flifetime-dse=1")
|
|
||||||
|
|
||||||
ldflags.append("-flto=%s" % num_cores)
|
|
||||||
ldflags.append("-flifetime-dse=1")
|
|
||||||
|
|
||||||
# Tell LTO not to inline functions above a certain size, to mitigate
|
|
||||||
# binary size growth while still getting good performance.
|
|
||||||
# (For hot functions, PGO will put a multiplier on this limit.)
|
|
||||||
diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
|
diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
|
||||||
--- a/build/pgo/profileserver.py
|
--- a/build/pgo/profileserver.py
|
||||||
+++ b/build/pgo/profileserver.py
|
+++ b/build/pgo/profileserver.py
|
||||||
@ -173,35 +154,10 @@ diff --git a/extensions/spellcheck/src/moz.build b/extensions/spellcheck/src/moz
|
|||||||
CXXFLAGS += ["-Wno-error=shadow"]
|
CXXFLAGS += ["-Wno-error=shadow"]
|
||||||
+
|
+
|
||||||
+CXXFLAGS += ['-fno-devirtualize']
|
+CXXFLAGS += ['-fno-devirtualize']
|
||||||
diff --git a/python/mozbuild/mozbuild/build_commands.py b/python/mozbuild/mozbuild/build_commands.py
|
|
||||||
--- a/python/mozbuild/mozbuild/build_commands.py
|
|
||||||
+++ b/python/mozbuild/mozbuild/build_commands.py
|
|
||||||
@@ -121,19 +121,18 @@ class Build(MachCommandBase):
|
|
||||||
silent=not verbose,
|
|
||||||
ensure_exit_code=False,
|
|
||||||
append_env=append_env,
|
|
||||||
)
|
|
||||||
if status != 0:
|
|
||||||
return status
|
|
||||||
|
|
||||||
pgo_env = os.environ.copy()
|
|
||||||
- pgo_env["LLVM_PROFDATA"] = instr.config_environment.substs.get(
|
|
||||||
- "LLVM_PROFDATA"
|
|
||||||
- )
|
|
||||||
+ if instr.config_environment.substs.get('CC_TYPE') != 'gcc':
|
|
||||||
+ pgo_env["LLVM_PROFDATA"] = instr.config_environment.substs.get("LLVM_PROFDATA")
|
|
||||||
pgo_env["JARLOG_FILE"] = mozpath.join(orig_topobjdir, "jarlog/en-US.log")
|
|
||||||
pgo_cmd = [
|
|
||||||
instr.virtualenv_manager.python_path,
|
|
||||||
mozpath.join(self.topsrcdir, "build/pgo/profileserver.py"),
|
|
||||||
]
|
|
||||||
subprocess.check_call(
|
|
||||||
pgo_cmd, cwd=instr.topobjdir, env=ensure_subprocess_env(pgo_env)
|
|
||||||
)
|
|
||||||
diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp
|
diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp
|
||||||
--- a/toolkit/components/terminator/nsTerminator.cpp
|
--- a/toolkit/components/terminator/nsTerminator.cpp
|
||||||
+++ b/toolkit/components/terminator/nsTerminator.cpp
|
+++ b/toolkit/components/terminator/nsTerminator.cpp
|
||||||
@@ -413,16 +413,21 @@ void nsTerminator::StartWatchdog() {
|
@@ -425,16 +425,21 @@ void nsTerminator::StartWatchdog() {
|
||||||
// Defend against overflow
|
// Defend against overflow
|
||||||
crashAfterMS = INT32_MAX;
|
crashAfterMS = INT32_MAX;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,163 +0,0 @@
|
|||||||
diff -up firefox-83.0/browser/actors/WebRTCParent.jsm.pw6 firefox-83.0/browser/actors/WebRTCParent.jsm
|
|
||||||
--- firefox-83.0/browser/actors/WebRTCParent.jsm.pw6 2020-11-12 19:04:30.000000000 +0100
|
|
||||||
+++ firefox-83.0/browser/actors/WebRTCParent.jsm 2020-11-25 10:28:32.492865982 +0100
|
|
||||||
@@ -45,6 +45,9 @@ XPCOMUtils.defineLazyServiceGetter(
|
|
||||||
"nsIOSPermissionRequest"
|
|
||||||
);
|
|
||||||
|
|
||||||
+const PIPEWIRE_PORTAL_NAME = "####_PIPEWIRE_PORTAL_####";
|
|
||||||
+const PIPEWIRE_ID = 0xaffffff;
|
|
||||||
+
|
|
||||||
class WebRTCParent extends JSWindowActorParent {
|
|
||||||
didDestroy() {
|
|
||||||
webrtcUI.forgetStreamsFromBrowserContext(this.browsingContext);
|
|
||||||
@@ -753,6 +756,8 @@ function prompt(aActor, aBrowser, aReque
|
|
||||||
);
|
|
||||||
menupopup.appendChild(doc.createXULElement("menuseparator"));
|
|
||||||
|
|
||||||
+ let isPipeWire = false;
|
|
||||||
+
|
|
||||||
// Build the list of 'devices'.
|
|
||||||
let monitorIndex = 1;
|
|
||||||
for (let i = 0; i < devices.length; ++i) {
|
|
||||||
@@ -774,6 +779,29 @@ function prompt(aActor, aBrowser, aReque
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
name = device.name;
|
|
||||||
+ // When we share content by PipeWire add only one item to the device
|
|
||||||
+ // list. When it's selected PipeWire portal dialog is opened and
|
|
||||||
+ // user confirms actual window/screen sharing there.
|
|
||||||
+ // Don't mark it as scary as there's an extra confirmation step by
|
|
||||||
+ // PipeWire portal dialog.
|
|
||||||
+ if (name == PIPEWIRE_PORTAL_NAME && device.id == PIPEWIRE_ID) {
|
|
||||||
+ isPipeWire = true;
|
|
||||||
+ let name;
|
|
||||||
+ try {
|
|
||||||
+ name = stringBundle.getString("getUserMedia.sharePipeWirePortal.label");
|
|
||||||
+ } catch (err) {
|
|
||||||
+ name = "Use operating system settings"
|
|
||||||
+ }
|
|
||||||
+ let item = addDeviceToList(
|
|
||||||
+ menupopup,
|
|
||||||
+ name,
|
|
||||||
+ i,
|
|
||||||
+ type
|
|
||||||
+ );
|
|
||||||
+ item.deviceId = device.id;
|
|
||||||
+ item.mediaSource = type;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
if (type == "application") {
|
|
||||||
// The application names returned by the platform are of the form:
|
|
||||||
// <window count>\x1e<application name>
|
|
||||||
@@ -888,39 +916,41 @@ function prompt(aActor, aBrowser, aReque
|
|
||||||
perms.EXPIRE_SESSION
|
|
||||||
);
|
|
||||||
|
|
||||||
- video.deviceId = deviceId;
|
|
||||||
- let constraints = {
|
|
||||||
- video: { mediaSource: type, deviceId: { exact: deviceId } },
|
|
||||||
- };
|
|
||||||
- chromeWin.navigator.mediaDevices.getUserMedia(constraints).then(
|
|
||||||
- stream => {
|
|
||||||
- if (video.deviceId != deviceId) {
|
|
||||||
- // The user has selected a different device or closed the panel
|
|
||||||
- // before getUserMedia finished.
|
|
||||||
- stream.getTracks().forEach(t => t.stop());
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
- video.srcObject = stream;
|
|
||||||
- video.stream = stream;
|
|
||||||
- doc.getElementById("webRTC-preview").hidden = false;
|
|
||||||
- video.onloadedmetadata = function(e) {
|
|
||||||
- video.play();
|
|
||||||
- };
|
|
||||||
- },
|
|
||||||
- err => {
|
|
||||||
- if (
|
|
||||||
- err.name == "OverconstrainedError" &&
|
|
||||||
- err.constraint == "deviceId"
|
|
||||||
- ) {
|
|
||||||
- // Window has disappeared since enumeration, which can happen.
|
|
||||||
- // No preview for you.
|
|
||||||
- return;
|
|
||||||
+ if (!isPipeWire) {
|
|
||||||
+ video.deviceId = deviceId;
|
|
||||||
+ let constraints = {
|
|
||||||
+ video: { mediaSource: type, deviceId: { exact: deviceId } },
|
|
||||||
+ };
|
|
||||||
+ chromeWin.navigator.mediaDevices.getUserMedia(constraints).then(
|
|
||||||
+ stream => {
|
|
||||||
+ if (video.deviceId != deviceId) {
|
|
||||||
+ // The user has selected a different device or closed the panel
|
|
||||||
+ // before getUserMedia finished.
|
|
||||||
+ stream.getTracks().forEach(t => t.stop());
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ video.srcObject = stream;
|
|
||||||
+ video.stream = stream;
|
|
||||||
+ doc.getElementById("webRTC-preview").hidden = false;
|
|
||||||
+ video.onloadedmetadata = function(e) {
|
|
||||||
+ video.play();
|
|
||||||
+ };
|
|
||||||
+ },
|
|
||||||
+ err => {
|
|
||||||
+ if (
|
|
||||||
+ err.name == "OverconstrainedError" &&
|
|
||||||
+ err.constraint == "deviceId"
|
|
||||||
+ ) {
|
|
||||||
+ // Window has disappeared since enumeration, which can happen.
|
|
||||||
+ // No preview for you.
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ Cu.reportError(
|
|
||||||
+ `error in preview: ${err.message} ${err.constraint}`
|
|
||||||
+ );
|
|
||||||
}
|
|
||||||
- Cu.reportError(
|
|
||||||
- `error in preview: ${err.message} ${err.constraint}`
|
|
||||||
- );
|
|
||||||
- }
|
|
||||||
- );
|
|
||||||
+ );
|
|
||||||
+ }
|
|
||||||
};
|
|
||||||
menupopup.addEventListener("command", menupopup._commandEventListener);
|
|
||||||
}
|
|
||||||
diff -up firefox-83.0/browser/locales/en-US/chrome/browser/browser.properties.pw6 firefox-83.0/browser/locales/en-US/chrome/browser/browser.properties
|
|
||||||
--- firefox-83.0/browser/locales/en-US/chrome/browser/browser.properties.pw6 2020-11-12 19:04:30.000000000 +0100
|
|
||||||
+++ firefox-83.0/browser/locales/en-US/chrome/browser/browser.properties 2020-11-25 09:24:26.378857626 +0100
|
|
||||||
@@ -764,6 +764,7 @@ getUserMedia.selectWindowOrScreen.label=
|
|
||||||
getUserMedia.selectWindowOrScreen.accesskey=W
|
|
||||||
getUserMedia.pickWindowOrScreen.label = Select Window or Screen
|
|
||||||
getUserMedia.shareEntireScreen.label = Entire screen
|
|
||||||
+getUserMedia.sharePipeWirePortal.label = Use operating system settings
|
|
||||||
# LOCALIZATION NOTE (getUserMedia.shareMonitor.label):
|
|
||||||
# %S is screen number (digits 1, 2, etc)
|
|
||||||
# Example: Screen 1, Screen 2,..
|
|
||||||
diff -up firefox-83.0/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.pw6 firefox-83.0/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
|
|
||||||
--- firefox-83.0/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.pw6 2020-11-25 09:24:26.358857788 +0100
|
|
||||||
+++ firefox-83.0/third_party/libwebrtc/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc 2020-11-25 09:24:26.378857626 +0100
|
|
||||||
@@ -879,17 +879,17 @@ void BaseCapturerPipeWire::CaptureFrame(
|
|
||||||
callback_->OnCaptureResult(Result::SUCCESS, std::move(result));
|
|
||||||
}
|
|
||||||
|
|
||||||
+#define PIPEWIRE_ID 0xaffffff
|
|
||||||
+#define PIPEWIRE_NAME "####_PIPEWIRE_PORTAL_####"
|
|
||||||
+
|
|
||||||
bool BaseCapturerPipeWire::GetSourceList(SourceList* sources) {
|
|
||||||
- RTC_DCHECK(sources->size() == 0);
|
|
||||||
- // List of available screens is already presented by the xdg-desktop-portal.
|
|
||||||
- // But we have to add an empty source as the code expects it.
|
|
||||||
- sources->push_back({0});
|
|
||||||
+ sources->push_back({PIPEWIRE_ID, 0, PIPEWIRE_NAME});
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool BaseCapturerPipeWire::SelectSource(SourceId id) {
|
|
||||||
// Screen selection is handled by the xdg-desktop-portal.
|
|
||||||
- return true;
|
|
||||||
+ return id == PIPEWIRE_ID;
|
|
||||||
}
|
|
||||||
|
|
||||||
// static
|
|
@ -3,7 +3,7 @@
|
|||||||
# Date 1560754926 -7200
|
# Date 1560754926 -7200
|
||||||
# Mon Jun 17 09:02:06 2019 +0200
|
# Mon Jun 17 09:02:06 2019 +0200
|
||||||
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
|
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
|
||||||
# Parent f5e9431a99bb1d122ccd76411f08ac6f3236c19f
|
# Parent 2a004fe4d56123f6e73a9436d1a290bbfc5e0b6b
|
||||||
#Description: reduce the rust debuginfo level on selected architectures where
|
#Description: reduce the rust debuginfo level on selected architectures where
|
||||||
# compiling with debuginfo=2 causes the OOM killer to interrupt the build on
|
# compiling with debuginfo=2 causes the OOM killer to interrupt the build on
|
||||||
# launchpad builders. Initially this was only on 32 bit architectures, but with
|
# launchpad builders. Initially this was only on 32 bit architectures, but with
|
||||||
@ -12,20 +12,19 @@
|
|||||||
diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
|
diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
|
||||||
--- a/build/moz.configure/toolchain.configure
|
--- a/build/moz.configure/toolchain.configure
|
||||||
+++ b/build/moz.configure/toolchain.configure
|
+++ b/build/moz.configure/toolchain.configure
|
||||||
@@ -2138,19 +2138,19 @@ imply_option("RUSTC_OPT_LEVEL", "2", whe
|
@@ -2145,18 +2145,19 @@ def rustc_opt_level(opt_level_option, mo
|
||||||
def rustc_opt_level(opt_level_option, moz_optimize):
|
|
||||||
if opt_level_option:
|
|
||||||
return opt_level_option[0]
|
|
||||||
else:
|
|
||||||
return "1" if moz_optimize.optimize else "0"
|
|
||||||
|
|
||||||
|
|
||||||
@depends(
|
@depends(
|
||||||
- rustc_opt_level, debug_rust, "--enable-debug-symbols", "--enable-frame-pointers"
|
rustc_opt_level,
|
||||||
+ rustc_opt_level, debug_rust, "--enable-debug-symbols", "--enable-frame-pointers", host
|
debug_rust,
|
||||||
|
target,
|
||||||
|
"--enable-debug-symbols",
|
||||||
|
"--enable-frame-pointers",
|
||||||
|
+ host,
|
||||||
)
|
)
|
||||||
-def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers):
|
-def rust_compile_flags(opt_level, debug_rust, target, debug_symbols, frame_pointers):
|
||||||
+def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers, host):
|
+def rust_compile_flags(opt_level, debug_rust, target, debug_symbols, frame_pointers, host):
|
||||||
# Cargo currently supports only two interesting profiles for building:
|
# Cargo currently supports only two interesting profiles for building:
|
||||||
# development and release. Those map (roughly) to --enable-debug and
|
# development and release. Those map (roughly) to --enable-debug and
|
||||||
# --disable-debug in Gecko, respectively.
|
# --disable-debug in Gecko, respectively.
|
||||||
@ -34,7 +33,7 @@ diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolc
|
|||||||
# optimization level. Since Cargo only supports 2 profiles, we're in
|
# optimization level. Since Cargo only supports 2 profiles, we're in
|
||||||
# a bit of a bind.
|
# a bit of a bind.
|
||||||
#
|
#
|
||||||
@@ -2163,16 +2163,18 @@ def rust_compile_flags(opt_level, debug_
|
@@ -2169,16 +2170,18 @@ def rust_compile_flags(opt_level, debug_
|
||||||
|
|
||||||
# opt-level=0 implies -C debug-assertions, which may not be desired
|
# opt-level=0 implies -C debug-assertions, which may not be desired
|
||||||
# unless Rust debugging is enabled.
|
# unless Rust debugging is enabled.
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
PRODUCT="firefox"
|
PRODUCT="firefox"
|
||||||
CHANNEL="release"
|
CHANNEL="release"
|
||||||
VERSION="84.0.2"
|
VERSION="85.0"
|
||||||
VERSION_SUFFIX=""
|
VERSION_SUFFIX=""
|
||||||
PREV_VERSION="84.0.1"
|
PREV_VERSION="84.0.2"
|
||||||
PREV_VERSION_SUFFIX=""
|
PREV_VERSION_SUFFIX=""
|
||||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||||
|
|
||||||
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
|
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
|
||||||
RELEASE_TAG="7e22d68e1ebfc0839092237feeefad46cfbd8651"
|
RELEASE_TAG="cd908cffd02e1563b2218d985873f958a2e2c55d"
|
||||||
RELEASE_TIMESTAMP="20210105180113"
|
RELEASE_TIMESTAMP="20210118153634"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user