Version in base suite: 78.5.0esr-1~deb10u1 Base version: firefox-esr_78.5.0esr-1~deb10u1 Target version: firefox-esr_78.6.0esr-1~deb10u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/f/firefox-esr/firefox-esr_78.5.0esr-1~deb10u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/f/firefox-esr/firefox-esr_78.6.0esr-1~deb10u1.dsc /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/config/external/icu/data/icudt67l.dat |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/be/metaZones.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/be/windowsZones.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/be/zoneinfo64.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/ee/metaZones.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/ee/windowsZones.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/ee/zoneinfo64.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/le/metaZones.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/le/windowsZones.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/intl/tzdata/source/le/zoneinfo64.res |binary /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin |binary firefox-esr-78.6.0esr/Cargo.lock | 4 firefox-esr-78.6.0esr/browser/components/enterprisepolicies/Policies.jsm | 3 firefox-esr-78.6.0esr/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm | 8 firefox-esr-78.6.0esr/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js | 4 firefox-esr-78.6.0esr/browser/config/version.txt | 2 firefox-esr-78.6.0esr/browser/config/version_display.txt | 2 firefox-esr-78.6.0esr/browser/installer/allowed-dupes.mn | 1 firefox-esr-78.6.0esr/browser/installer/windows/nsis/uninstaller.nsi | 2 firefox-esr-78.6.0esr/config/milestone.txt | 2 firefox-esr-78.6.0esr/debian/changelog | 9 firefox-esr-78.6.0esr/docshell/base/nsDocShell.cpp | 8 firefox-esr-78.6.0esr/dom/base/Document.cpp | 17 firefox-esr-78.6.0esr/dom/base/Document.h | 6 firefox-esr-78.6.0esr/dom/base/Element.cpp | 6 firefox-esr-78.6.0esr/dom/base/nsFrameLoader.cpp | 9 firefox-esr-78.6.0esr/dom/canvas/WebGLFramebuffer.cpp | 125 firefox-esr-78.6.0esr/dom/canvas/WebGLTypes.h | 54 firefox-esr-78.6.0esr/dom/canvas/test/webgl-conf/generated-mochitest.ini | 3 firefox-esr-78.6.0esr/dom/canvas/test/webgl-conf/mochitest-errata.ini | 4 firefox-esr-78.6.0esr/dom/html/HTMLIFrameElement.cpp | 19 firefox-esr-78.6.0esr/dom/html/HTMLIFrameElement.h | 12 firefox-esr-78.6.0esr/dom/html/test/file_fullscreen-denied.html | 4 firefox-esr-78.6.0esr/dom/html/test/file_fullscreen-featurePolicy-inner.html | 12 firefox-esr-78.6.0esr/dom/html/test/file_fullscreen-featurePolicy.html | 8 firefox-esr-78.6.0esr/dom/media/AudioSegment.h | 14 firefox-esr-78.6.0esr/dom/media/gtest/TestAudioSegment.cpp | 75 firefox-esr-78.6.0esr/dom/media/ipc/GpuDecoderModule.cpp | 2 firefox-esr-78.6.0esr/dom/media/ipc/RemoteDecoderModule.cpp | 4 firefox-esr-78.6.0esr/dom/media/ipc/RemoteVideoDecoder.cpp | 14 firefox-esr-78.6.0esr/dom/media/ipc/RemoteVideoDecoder.h | 4 firefox-esr-78.6.0esr/dom/security/featurepolicy/FeaturePolicy.cpp | 2 firefox-esr-78.6.0esr/dom/security/featurepolicy/FeaturePolicyUtils.cpp | 2 firefox-esr-78.6.0esr/dom/webidl/HTMLIFrameElement.webidl | 2 firefox-esr-78.6.0esr/editor/libeditor/EditorBase.h | 1 firefox-esr-78.6.0esr/editor/libeditor/EditorEventListener.cpp | 4 firefox-esr-78.6.0esr/editor/libeditor/HTMLEditorDataTransfer.cpp | 9 firefox-esr-78.6.0esr/editor/libeditor/tests/mochitest.ini | 1 firefox-esr-78.6.0esr/editor/libeditor/tests/test_bug1649005.html | 45 firefox-esr-78.6.0esr/gfx/layers/RotatedBuffer.cpp | 2 firefox-esr-78.6.0esr/gfx/layers/RotatedBuffer.h | 2 firefox-esr-78.6.0esr/gfx/layers/client/TextureClient.h | 8 firefox-esr-78.6.0esr/gfx/layers/d3d11/TextureD3D11.cpp | 4 firefox-esr-78.6.0esr/gfx/layers/d3d11/TextureD3D11.h | 2 firefox-esr-78.6.0esr/gfx/layers/ipc/KnowsCompositor.h | 56 firefox-esr-78.6.0esr/gfx/layers/ipc/ShadowLayers.cpp | 14 firefox-esr-78.6.0esr/intl/tzdata/GIT-INFO | 6 firefox-esr-78.6.0esr/intl/tzdata/VERSION | 2 firefox-esr-78.6.0esr/intl/tzdata/source/metaZones.txt | 43 firefox-esr-78.6.0esr/intl/tzdata/source/timezoneTypes.txt | 3 firefox-esr-78.6.0esr/intl/tzdata/source/windowsZones.txt | 12 firefox-esr-78.6.0esr/intl/tzdata/source/zoneinfo64.txt | 71 firefox-esr-78.6.0esr/js/src/builtin/intl/TimeZoneDataGenerated.h | 3 firefox-esr-78.6.0esr/js/src/builtin/intl/make_intl_data.py | 98 firefox-esr-78.6.0esr/js/src/jit-test/tests/bigint/bug1679003.js | 4 firefox-esr-78.6.0esr/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp | 193 firefox-esr-78.6.0esr/js/src/jit/mips-shared/MacroAssembler-mips-shared.h | 10 firefox-esr-78.6.0esr/js/src/jit/mips32/MacroAssembler-mips32.h | 28 firefox-esr-78.6.0esr/js/src/jit/mips64/MacroAssembler-mips64.h | 26 firefox-esr-78.6.0esr/js/src/tests/non262/Intl/DateTimeFormat/timeZone_backward_links.js | 2 firefox-esr-78.6.0esr/js/src/tests/non262/Intl/DateTimeFormat/timeZone_backzone.js | 2 firefox-esr-78.6.0esr/js/src/tests/non262/Intl/DateTimeFormat/timeZone_backzone_links.js | 2 firefox-esr-78.6.0esr/js/src/tests/non262/Intl/DateTimeFormat/timeZone_notbackward_links.js | 3 firefox-esr-78.6.0esr/js/src/vm/BigIntType.cpp | 2 firefox-esr-78.6.0esr/js/src/wasm/WasmInstance.cpp | 89 firefox-esr-78.6.0esr/layout/base/nsCaret.cpp | 2 firefox-esr-78.6.0esr/layout/generic/nsFrame.cpp | 4 firefox-esr-78.6.0esr/layout/inspector/tests/test_getRelativeRuleLine.html | 2 firefox-esr-78.6.0esr/modules/libpref/init/StaticPrefList.yaml | 2 firefox-esr-78.6.0esr/netwerk/base/nsIOService.cpp | 5 firefox-esr-78.6.0esr/netwerk/dns/effective_tld_names.dat | 57 firefox-esr-78.6.0esr/netwerk/protocol/viewsource/nsViewSourceChannel.cpp | 22 firefox-esr-78.6.0esr/netwerk/protocol/viewsource/nsViewSourceChannel.h | 2 firefox-esr-78.6.0esr/netwerk/test/unit/test_trr.js | 2 firefox-esr-78.6.0esr/security/manager/locales/en-US/chrome/pipnss/pipnss.properties | 2 firefox-esr-78.6.0esr/security/manager/ssl/StaticHPKPins.h | 2 firefox-esr-78.6.0esr/security/manager/ssl/nsNSSCallbacks.cpp | 6 firefox-esr-78.6.0esr/security/manager/ssl/nsSTSPreloadList.inc | 3658 +++++----- firefox-esr-78.6.0esr/security/sandbox/linux/SandboxFilter.cpp | 19 firefox-esr-78.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json | 2 firefox-esr-78.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin.meta.json | 2 firefox-esr-78.6.0esr/services/settings/dumps/blocklists/addons.json | 2 firefox-esr-78.6.0esr/services/settings/dumps/blocklists/gfx.json | 2 firefox-esr-78.6.0esr/services/settings/dumps/main/hijack-blocklists.json | 2 firefox-esr-78.6.0esr/services/settings/dumps/main/search-config.json | 2 firefox-esr-78.6.0esr/services/settings/dumps/main/url-classifier-skip-urls.json | 2 firefox-esr-78.6.0esr/services/settings/dumps/security-state/intermediates.json | 2 firefox-esr-78.6.0esr/services/settings/dumps/security-state/onecrl.json | 2 firefox-esr-78.6.0esr/servo/components/malloc_size_of/Cargo.toml | 2 firefox-esr-78.6.0esr/servo/components/selectors/Cargo.toml | 2 firefox-esr-78.6.0esr/servo/components/style/Cargo.toml | 2 firefox-esr-78.6.0esr/servo/components/style/stylesheets/font_feature_values_rule.rs | 4 firefox-esr-78.6.0esr/servo/components/style/stylesheets/keyframes_rule.rs | 6 firefox-esr-78.6.0esr/servo/components/style/stylesheets/mod.rs | 6 firefox-esr-78.6.0esr/servo/components/style/stylesheets/rule_parser.rs | 66 firefox-esr-78.6.0esr/servo/components/style/stylesheets/stylesheet.rs | 5 firefox-esr-78.6.0esr/servo/components/style_traits/Cargo.toml | 2 firefox-esr-78.6.0esr/servo/components/to_shmem/Cargo.toml | 2 firefox-esr-78.6.0esr/servo/ports/geckolib/Cargo.toml | 2 firefox-esr-78.6.0esr/servo/ports/geckolib/tests/Cargo.toml | 2 firefox-esr-78.6.0esr/servo/tests/unit/style/Cargo.toml | 2 firefox-esr-78.6.0esr/sourcestamp.txt | 4 firefox-esr-78.6.0esr/testing/web-platform/meta/fullscreen/api/document-fullscreen-enabled.html.ini | 4 firefox-esr-78.6.0esr/testing/web-platform/meta/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen.html.ini | 10 firefox-esr-78.6.0esr/testing/web-platform/tests/feature-policy/feature-policy-header-policy-disallowed-for-all.https.sub.html | 1 firefox-esr-78.6.0esr/testing/web-platform/tests/fetch/api/request/request-bad-port.html | 5 firefox-esr-78.6.0esr/testing/web-platform/tests/fullscreen/api/document-fullscreen-enabled-cross-origin.sub.html | 2 firefox-esr-78.6.0esr/testing/web-platform/tests/tools/wptserve/wptserve/utils.py | 5 firefox-esr-78.6.0esr/third_party/rust/cssparser/.cargo-checksum.json | 2 firefox-esr-78.6.0esr/third_party/rust/cssparser/Cargo.toml | 2 firefox-esr-78.6.0esr/third_party/rust/cssparser/src/color.rs | 2 firefox-esr-78.6.0esr/third_party/rust/cssparser/src/nth.rs | 4 firefox-esr-78.6.0esr/third_party/rust/cssparser/src/parser.rs | 10 firefox-esr-78.6.0esr/third_party/rust/cssparser/src/rules_and_declarations.rs | 46 firefox-esr-78.6.0esr/third_party/rust/cssparser/src/tests.rs | 19 firefox-esr-78.6.0esr/toolkit/components/captivedetect/CaptiveDetect.jsm | 5 firefox-esr-78.6.0esr/toolkit/components/downloads/DownloadIntegration.jsm | 16 firefox-esr-78.6.0esr/toolkit/components/extensions/ConduitsChild.jsm | 12 firefox-esr-78.6.0esr/toolkit/components/extensions/ExtensionCommon.jsm | 3 firefox-esr-78.6.0esr/toolkit/components/extensions/test/xpcshell/test_ext_runtime_ports_gc.js | 168 firefox-esr-78.6.0esr/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_viewsource.js | 95 firefox-esr-78.6.0esr/toolkit/components/extensions/test/xpcshell/xpcshell-common.ini | 2 firefox-esr-78.6.0esr/toolkit/components/extensions/webrequest/ChannelWrapper.cpp | 9 firefox-esr-78.6.0esr/toolkit/content/tests/widgets/test_videocontrols_iframe_fullscreen.html | 9 firefox-esr-78.6.0esr/toolkit/crashreporter/breakpad-client/mac/handler/dynamic_images.cc | 7 firefox-esr-78.6.0esr/toolkit/crashreporter/breakpad-client/mac/handler/dynamic_images.h | 10 firefox-esr-78.6.0esr/toolkit/crashreporter/breakpad-client/mac/handler/minidump_generator.cc | 39 firefox-esr-78.6.0esr/toolkit/crashreporter/breakpad-client/mac/handler/minidump_generator.h | 3 firefox-esr-78.6.0esr/toolkit/mozapps/installer/windows/nsis/common.nsh | 135 139 files changed, 3473 insertions(+), 2252 deletions(-) diff: /srv/release.debian.org/tmp/kaBNXFwIwe/firefox-esr-78.5.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/bin: No such file or directory diff: /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/bin: No such file or directory diff: /srv/release.debian.org/tmp/kaBNXFwIwe/firefox-esr-78.5.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/include: No such file or directory diff: /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/include: No such file or directory diff: /srv/release.debian.org/tmp/kaBNXFwIwe/firefox-esr-78.5.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/lib: No such file or directory diff: /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/lib: No such file or directory diff -Nru firefox-esr-78.5.0esr/Cargo.lock firefox-esr-78.6.0esr/Cargo.lock --- firefox-esr-78.5.0esr/Cargo.lock 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/Cargo.lock 2020-12-08 01:14:38.000000000 +0000 @@ -898,9 +898,9 @@ [[package]] name = "cssparser" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +checksum = "809d22aba9ffd53e9028f2d37261f1826ef613d0e96b1a5ddeefa97cde82bcca" dependencies = [ "cssparser-macros", "dtoa-short", diff -Nru firefox-esr-78.5.0esr/browser/components/enterprisepolicies/Policies.jsm firefox-esr-78.6.0esr/browser/components/enterprisepolicies/Policies.jsm --- firefox-esr-78.5.0esr/browser/components/enterprisepolicies/Policies.jsm 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/browser/components/enterprisepolicies/Policies.jsm 2020-12-08 01:14:38.000000000 +0000 @@ -1455,9 +1455,11 @@ "layout.", "media.", "network.", + "pdfjs.", "places.", "print.", "signon.", + "spellchecker.", "ui.", "widget.", ]; @@ -2219,6 +2221,7 @@ function installAddonFromURL(url, extensionID, addon) { if ( addon && + addon.sourceURI && addon.sourceURI.spec == url && !addon.sourceURI.schemeIs("file") ) { diff -Nru firefox-esr-78.5.0esr/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm firefox-esr-78.6.0esr/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm --- firefox-esr-78.5.0esr/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm 2020-12-08 01:14:37.000000000 +0000 @@ -105,14 +105,18 @@ shouldLoad(contentLocation, loadInfo, mimeTypeGuess) { let contentType = loadInfo.externalContentPolicyType; + let url = contentLocation.spec; + if (contentLocation.scheme == "view-source") { + url = contentLocation.pathQueryRef; + } if ( contentType == Ci.nsIContentPolicy.TYPE_DOCUMENT || contentType == Ci.nsIContentPolicy.TYPE_SUBDOCUMENT ) { - if (this._blockPatterns.matches(contentLocation.spec.toLowerCase())) { + if (this._blockPatterns.matches(url.toLowerCase())) { if ( !this._exceptionsPatterns || - !this._exceptionsPatterns.matches(contentLocation.spec.toLowerCase()) + !this._exceptionsPatterns.matches(url.toLowerCase()) ) { return Ci.nsIContentPolicy.REJECT_POLICY; } diff -Nru firefox-esr-78.5.0esr/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js firefox-esr-78.6.0esr/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js --- firefox-esr-78.5.0esr/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js 2020-12-08 01:14:38.000000000 +0000 @@ -18,6 +18,10 @@ }); await checkBlockedPage(SUPPORT_FILES_PATH + BLOCKED_PAGE, true); + await checkBlockedPage( + "view-source:" + SUPPORT_FILES_PATH + BLOCKED_PAGE, + true + ); await checkBlockedPage(SUPPORT_FILES_PATH + EXCEPTION_PAGE, false); }); diff -Nru firefox-esr-78.5.0esr/browser/config/version.txt firefox-esr-78.6.0esr/browser/config/version.txt --- firefox-esr-78.5.0esr/browser/config/version.txt 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/browser/config/version.txt 2020-12-08 01:14:38.000000000 +0000 @@ -1 +1 @@ -78.5.0 +78.6.0 diff -Nru firefox-esr-78.5.0esr/browser/config/version_display.txt firefox-esr-78.6.0esr/browser/config/version_display.txt --- firefox-esr-78.5.0esr/browser/config/version_display.txt 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/browser/config/version_display.txt 2020-12-08 01:14:38.000000000 +0000 @@ -1 +1 @@ -78.5.0esr +78.6.0esr diff -Nru firefox-esr-78.5.0esr/browser/installer/allowed-dupes.mn firefox-esr-78.6.0esr/browser/installer/allowed-dupes.mn --- firefox-esr-78.5.0esr/browser/installer/allowed-dupes.mn 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/browser/installer/allowed-dupes.mn 2020-12-08 01:14:38.000000000 +0000 @@ -63,6 +63,7 @@ browser/defaults/settings/pinning/pins.json browser/defaults/settings/main/example.json browser/defaults/settings/main/search-default-override-allowlist.json +browser/defaults/settings/main/url-classifier-skip-urls.json #ifdef MOZ_EME_WIN32_ARTIFACT gmp-clearkey/0.1/manifest.json diff -Nru firefox-esr-78.5.0esr/browser/installer/windows/nsis/uninstaller.nsi firefox-esr-78.6.0esr/browser/installer/windows/nsis/uninstaller.nsi --- firefox-esr-78.5.0esr/browser/installer/windows/nsis/uninstaller.nsi 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/browser/installer/windows/nsis/uninstaller.nsi 2020-12-08 01:14:38.000000000 +0000 @@ -241,7 +241,7 @@ ; Restore back the registry view ${If} ${RunningX64} ${OrIf} ${IsNativeARM64} - SetRegView lastUsed + SetRegView lastused ${EndIf} ${If} $0 == 0 Binary files /srv/release.debian.org/tmp/kaBNXFwIwe/firefox-esr-78.5.0esr/config/external/icu/data/icudt67l.dat and /srv/release.debian.org/tmp/tBy1SmBURJ/firefox-esr-78.6.0esr/config/external/icu/data/icudt67l.dat differ diff -Nru firefox-esr-78.5.0esr/config/milestone.txt firefox-esr-78.6.0esr/config/milestone.txt --- firefox-esr-78.5.0esr/config/milestone.txt 2020-11-10 18:34:48.000000000 +0000 +++ firefox-esr-78.6.0esr/config/milestone.txt 2020-12-08 01:14:38.000000000 +0000 @@ -10,4 +10,4 @@ # hardcoded milestones in the tree from these two files. #-------------------------------------------------------- -78.5.0 +78.6.0 diff -Nru firefox-esr-78.5.0esr/debian/changelog firefox-esr-78.6.0esr/debian/changelog --- firefox-esr-78.5.0esr/debian/changelog 2020-11-17 21:23:03.000000000 +0000 +++ firefox-esr-78.6.0esr/debian/changelog 2020-12-15 20:57:15.000000000 +0000 @@ -1,3 +1,12 @@ +firefox-esr (78.6.0esr-1~deb10u1) buster-security; urgency=medium + + * New upstream release. + * Fixes for mfsa2020-55, also known as: + CVE-2020-16042, CVE-2020-26971, CVE-2020-26973, CVE-2020-26974, + CVE-2020-26978, CVE-2020-35111, CVE-2020-35113. + + -- Mike Hommey Wed, 16 Dec 2020 05:57:15 +0900 + firefox-esr (78.5.0esr-1~deb10u1) buster-security; urgency=medium * New upstream release. diff -Nru firefox-esr-78.5.0esr/docshell/base/nsDocShell.cpp firefox-esr-78.6.0esr/docshell/base/nsDocShell.cpp --- firefox-esr-78.5.0esr/docshell/base/nsDocShell.cpp 2020-11-10 18:34:49.000000000 +0000 +++ firefox-esr-78.6.0esr/docshell/base/nsDocShell.cpp 2020-12-08 01:14:38.000000000 +0000 @@ -58,6 +58,7 @@ #include "mozilla/dom/DocGroup.h" #include "mozilla/dom/Element.h" #include "mozilla/dom/HTMLAnchorElement.h" +#include "mozilla/dom/HTMLIFrameElement.h" #include "mozilla/dom/PerformanceNavigation.h" #include "mozilla/dom/PermissionMessageUtils.h" #include "mozilla/dom/PopupBlocker.h" @@ -1771,13 +1772,10 @@ } else { // We do not allow document inside any containing element other // than iframe to enter fullscreen. - if (frameElement->IsHTMLElement(nsGkAtoms::iframe)) { + if (auto* iframe = HTMLIFrameElement::FromNode(*frameElement)) { // If any ancestor iframe does not have allowfullscreen attribute // set, then fullscreen is not allowed. - if (!frameElement->HasAttr(kNameSpaceID_None, - nsGkAtoms::allowfullscreen) && - !frameElement->HasAttr(kNameSpaceID_None, - nsGkAtoms::mozallowfullscreen)) { + if (!iframe->AllowFullscreen()) { return NS_OK; } } else if (frameElement->IsHTMLElement(nsGkAtoms::embed)) { diff -Nru firefox-esr-78.5.0esr/dom/base/Document.cpp firefox-esr-78.6.0esr/dom/base/Document.cpp --- firefox-esr-78.5.0esr/dom/base/Document.cpp 2020-11-10 18:34:54.000000000 +0000 +++ firefox-esr-78.6.0esr/dom/base/Document.cpp 2020-12-08 01:14:38.000000000 +0000 @@ -13562,7 +13562,7 @@ // Returns nullptr if a request for Fullscreen API is currently enabled // in the given document. Returns a static string indicates the reason // why it is not enabled otherwise. -static const char* GetFullscreenError(Document* aDoc, CallerType aCallerType) { +const char* Document::GetFullscreenError(CallerType aCallerType) { if (!StaticPrefs::full_screen_api_enabled()) { return "FullscreenDeniedDisabled"; } @@ -13573,13 +13573,18 @@ return nullptr; } - if (!aDoc->IsVisible()) { + if (!IsVisible()) { return "FullscreenDeniedHidden"; } + if (!FeaturePolicyUtils::IsFeatureAllowed(this, + NS_LITERAL_STRING("fullscreen"))) { + return "FullscreenDeniedFeaturePolicy"; + } + // Ensure that all containing elements are