Commit 09c4cdea authored by Carsten Schoenert's avatar Carsten Schoenert
Browse files

New upstream version 78.14.0

parent b4498b04
......@@ -9,14 +9,9 @@
this.analytics = (function() {
const exports = {};
const GA_PORTION = 0.1; // 10% of users will send to the server/GA
// This is set from storage, or randomly; if it is less that GA_PORTION then we send analytics:
let myGaSegment = 1;
let telemetryPrefKnown = false;
let telemetryEnabled;
// If we ever get a 410 Gone response (or 404) from the server, we'll stop trying to send events for the rest
// of the session
let hasReturnedGone = false;
// If there's this many entirely failed responses (e.g., server can't be contacted), then stop sending events
// for the rest of the session:
let serverFailedResponses = 3;
......@@ -33,7 +28,7 @@ this.analytics = (function() {
};
function shouldSendEvents() {
return !hasReturnedGone && serverFailedResponses > 0 && myGaSegment < GA_PORTION;
return false;
}
function flushEvents() {
......@@ -333,7 +328,6 @@ this.analytics = (function() {
function fetchWatcher(request) {
request.then(response => {
if (response.status === 410 || response.status === 404) { // Gone
hasReturnedGone = true;
pendingEvents = [];
pendingTimings = [];
}
......
---
GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified
GECKO_HEAD_REPOSITORY: https://hg.mozilla.org/releases/mozilla-esr78
GECKO_HEAD_REF: FIREFOX_78_13_0esr_BUILD1
GECKO_HEAD_REV: c1bc34d42814d7b62e2a28a116cc7749b3a13107
GECKO_HEAD_REF: FIREFOX_78_14_0esr_BUILD1
GECKO_HEAD_REV: 9d633611fb472b276264c7ce605d99d21acf93cc
### For comm-central
# GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified
......
......@@ -364,6 +364,29 @@ pref("network.protocol-handler.warn-external.http", false);
pref("network.protocol-handler.warn-external.https", false);
pref("network.protocol-handler.warn-external.ftp", false);
// prevent web pages from registering mailnews protocol handlers
pref("network.protocol-handler.external.cid", false);
pref("network.protocol-handler.external.mid", false);
pref("network.protocol-handler.external.mailto", false);
pref("network.protocol-handler.external.imap", false);
pref("network.protocol-handler.external.imap-message", false);
pref("network.protocol-handler.external.pop", false);
pref("network.protocol-handler.external.pop3", false);
pref("network.protocol-handler.external.mailbox", false);
pref("network.protocol-handler.external.mailbox-message", false);
pref("network.protocol-handler.external.smtp", false);
pref("network.protocol-handler.external.smtps", false);
pref("network.protocol-handler.external.nntp", false);
pref("network.protocol-handler.external.news", false);
pref("network.protocol-handler.external.news-message", false);
pref("network.protocol-handler.external.snews", false);
pref("network.protocol-handler.external.ldap", false);
pref("network.protocol-handler.external.ldaps", false);
pref("network.protocol-handler.external.webcal", false);
pref("network.protocol-handler.external.webcals", false);
pref("network.protocol-handler.external.moz-cal-handle-itip", false);
pref("network.protocol-handler.external.smile", false);
pref("network.hosts.smtp_server", "mail");
pref("network.hosts.pop_server", "mail");
......
......@@ -40,10 +40,6 @@ jobs:
thunderbird-beta-latest-ssl: installer-ssl
thunderbird-beta-latest: installer
thunderbird-beta-msi-latest-ssl: msi
comm-esr78:
thunderbird-latest-ssl: installer-ssl
thunderbird-latest: installer
thunderbird-msi-latest-ssl: msi
default: {}
shipping-product: thunderbird
treeherder:
......
......@@ -10,4 +10,4 @@
# hardcoded milestones in the tree from these two files.
#--------------------------------------------------------
78.13.0
78.14.0
......@@ -66,8 +66,10 @@
var fragDocLocation = TestWindow.getDocument().location.href;
// Verify we're no longer at the top of the page.
ok(TestWindow.getWindow().scrollY > 0,
"We're at the top of the page but we should be at the bottom");
waitForTrue(function() {
return TestWindow.getWindow().scrollY > 0;
}, nextTest, 20);
yield undefined;
// Now navigate to any other page
var expectedPageTitle = "bug360511 case " + i;
......
......@@ -952,15 +952,6 @@ void Navigator::CheckProtocolHandlerAllowed(const nsAString& aScheme,
return;
}
// Check to make sure this isn't already handled internally (we don't
// want to let them take over, say "chrome"). In theory, the checks above
// should have already taken care of this.
nsCOMPtr<nsIExternalProtocolHandler> externalHandler =
do_QueryInterface(handler);
MOZ_RELEASE_ASSERT(
externalHandler,
"We should never allow overriding a builtin protocol handler");
// check if we have prefs set saying not to add this.
bool defaultExternal =
Preferences::GetBool("network.protocol-handler.external-default");
......@@ -970,6 +961,15 @@ void Navigator::CheckProtocolHandlerAllowed(const nsAString& aScheme,
raisePermissionDeniedScheme();
return;
}
// Check to make sure this isn't already handled internally (we don't
// want to let them take over, say "chrome"). In theory, the checks above
// should have already taken care of this.
nsCOMPtr<nsIExternalProtocolHandler> externalHandler =
do_QueryInterface(handler);
MOZ_RELEASE_ASSERT(
externalHandler,
"We should never allow overriding a builtin protocol handler");
}
void Navigator::RegisterProtocolHandler(const nsAString& aScheme,
......
......@@ -215,21 +215,27 @@ nsDOMWindowUtils::nsDOMWindowUtils(nsGlobalWindowOuter* aWindow) {
nsDOMWindowUtils::~nsDOMWindowUtils() { OldWindowSize::GetAndRemove(mWindow); }
PresShell* nsDOMWindowUtils::GetPresShell() {
nsIDocShell* nsDOMWindowUtils::GetDocShell() {
nsCOMPtr<nsPIDOMWindowOuter> window = do_QueryReferent(mWindow);
if (!window) return nullptr;
nsIDocShell* docShell = window->GetDocShell();
if (!docShell) return nullptr;
if (!window) {
return nullptr;
}
return window->GetDocShell();
}
PresShell* nsDOMWindowUtils::GetPresShell() {
nsIDocShell* docShell = GetDocShell();
if (!docShell) {
return nullptr;
}
return docShell->GetPresShell();
}
nsPresContext* nsDOMWindowUtils::GetPresContext() {
nsCOMPtr<nsPIDOMWindowOuter> window = do_QueryReferent(mWindow);
if (!window) return nullptr;
nsIDocShell* docShell = window->GetDocShell();
if (!docShell) return nullptr;
nsIDocShell* docShell = GetDocShell();
if (!docShell) {
return nullptr;
}
return docShell->GetPresContext();
}
......@@ -2359,12 +2365,24 @@ nsDOMWindowUtils::AdvanceTimeAndRefresh(int64_t aMilliseconds) {
NS_IMETHODIMP
nsDOMWindowUtils::GetLastTransactionId(uint64_t* aLastTransactionId) {
nsPresContext* presContext = GetPresContext();
nsCOMPtr<nsIDocShell> docShell = GetDocShell();
if (!docShell) {
return NS_ERROR_UNEXPECTED;
}
nsCOMPtr<nsIDocShellTreeItem> rootTreeItem;
docShell->GetInProcessRootTreeItem(getter_AddRefs(rootTreeItem));
docShell = do_QueryInterface(rootTreeItem);
if (!docShell) {
return NS_ERROR_UNEXPECTED;
}
nsPresContext* presContext = docShell->GetPresContext();
if (!presContext) {
return NS_ERROR_UNEXPECTED;
}
nsRefreshDriver* driver = presContext->GetRootPresContext()->RefreshDriver();
nsRefreshDriver* driver = presContext->RefreshDriver();
*aLastTransactionId = uint64_t(driver->LastTransactionId());
return NS_OK;
}
......
......@@ -14,6 +14,7 @@
#include "mozilla/BasicEvents.h"
class nsGlobalWindowOuter;
class nsIDocShell;
class nsIWidget;
class nsPresContext;
class nsView;
......@@ -77,6 +78,7 @@ class nsDOMWindowUtils final : public nsIDOMWindowUtils,
nsIWidget* GetWidget(nsPoint* aOffset = nullptr);
nsIWidget* GetWidgetForElement(mozilla::dom::Element* aElement);
nsIDocShell* GetDocShell();
mozilla::PresShell* GetPresShell();
nsPresContext* GetPresContext();
mozilla::dom::Document* GetDocument();
......
......@@ -3133,10 +3133,11 @@ void ContentChild::DeleteGetFilesRequest(nsID& aUUID,
mozilla::ipc::IPCResult ContentChild::RecvGetFilesResponse(
const nsID& aUUID, const GetFilesResponseResult& aResult) {
GetFilesHelperChild* child = mGetFilesPendingRequests.GetWeak(aUUID);
RefPtr<GetFilesHelperChild> child;
// This object can already been deleted in case DeleteGetFilesRequest has
// been called when the response was sending by the parent.
if (!child) {
if (!mGetFilesPendingRequests.Remove(aUUID, getter_AddRefs(child))) {
return IPC_OK();
}
......@@ -3157,8 +3158,6 @@ mozilla::ipc::IPCResult ContentChild::RecvGetFilesResponse(
child->Finished(succeeded ? NS_OK : NS_ERROR_OUT_OF_MEMORY);
}
mGetFilesPendingRequests.Remove(aUUID);
return IPC_OK();
}
......
......@@ -640,6 +640,15 @@ already_AddRefed<BaseMediaResource> ChannelMediaResource::CloneData(
void ChannelMediaResource::CloseChannel() {
NS_ASSERTION(NS_IsMainThread(), "Only call on main thread");
// Revoking listener should be done before canceling the channel, because
// canceling the channel might cause the input stream to release its buffer.
// If we don't do revoke first, it's possible that `OnDataAvailable` would be
// called later and then incorrectly access that released buffer.
if (mListener) {
mListener->Revoke();
mListener = nullptr;
}
if (mChannel) {
mSuspendAgent.Revoke();
// The status we use here won't be passed to the decoder, since
......@@ -652,11 +661,6 @@ void ChannelMediaResource::CloseChannel() {
mChannel->Cancel(NS_ERROR_PARSED_DATA_CACHED);
mChannel = nullptr;
}
if (mListener) {
mListener->Revoke();
mListener = nullptr;
}
}
nsresult ChannelMediaResource::ReadFromCache(char* aBuffer, int64_t aOffset,
......
......@@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8">
<title>Test cloneElementVisually</title>
<title>Test cloneElementVisually with poster</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="https://example.com:443/tests/dom/media/test/cloneElementVisually_helpers.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
......@@ -24,8 +24,8 @@
/* import-globals-from cloneElementVisually_helpers.js */
/**
* Test that when we start cloning a paused video, the clone displays
* the first paused frame.
* Test that when we clone a video with a poster, the poster does not prevent
* the cloned video from displaying properly (as in bug 1532692).
*/
add_task(async () => {
await setup();
......@@ -35,11 +35,12 @@ add_task(async () => {
originalVideo.setAttribute("poster", POSTER_URL);
await withNewClone(originalVideo, async clone => {
SpecialPowers.wrap(originalVideo).cloneElementVisually(clone);
await SpecialPowers.wrap(originalVideo).cloneElementVisually(clone);
originalVideo.loop = false;
originalVideo.currentTime = originalVideo.duration - 0.1;
let endedPromise = waitForEventOnce(originalVideo, "ended");
await originalVideo.play();
await waitForEventOnce(originalVideo, "timeupdate");
originalVideo.pause();
await waitForEventOnce(originalVideo, "pause");
await endedPromise;
ok(await assertVideosMatch(originalVideo, clone),
"Video with a poster should clone properly.");
......
......@@ -1273,6 +1273,7 @@ pref("network.protocol-handler.external.data", false);
pref("network.protocol-handler.external.ie.http", false);
pref("network.protocol-handler.external.iehistory", false);
pref("network.protocol-handler.external.ierss", false);
pref("network.protocol-handler.external.mk", false);
pref("network.protocol-handler.external.ms-help", false);
pref("network.protocol-handler.external.res", false);
pref("network.protocol-handler.external.shell", false);
......
......@@ -6714,9 +6714,10 @@ mil.vc
edu.vc
// ve : https://registro.nic.ve/
// Submitted by registry
// Submitted by registry nic@nic.ve and nicve@conatel.gob.ve
ve
arts.ve
bib.ve
co.ve
com.ve
e12.ve
......@@ -6728,7 +6729,9 @@ info.ve
int.ve
mil.ve
net.ve
nom.ve
org.ve
rar.ve
rec.ve
store.ve
tec.ve
......@@ -7125,7 +7128,7 @@ org.zw
// newGTLDs
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-07-24T15:13:29Z
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2021-08-19T15:13:52Z
// This list is auto-generated, don't edit it manually.
// aaa : 2015-02-26 American Automobile Association, Inc.
aaa
......@@ -8264,7 +8267,7 @@ ftr
// fujitsu : 2015-07-30 Fujitsu Limited
fujitsu
// fun : 2016-01-14 DotSpace Inc.
// fun : 2016-01-14 Radix FZC
fun
// fund : 2014-03-20 Binky Moon, LLC
......@@ -8522,7 +8525,7 @@ horse
// hospital : 2016-10-20 Binky Moon, LLC
hospital
// host : 2014-04-17 DotHost Inc.
// host : 2014-04-17 Radix FZC
host
// hosting : 2014-05-29 UNR Corp.
......@@ -8717,6 +8720,9 @@ kfh
// kia : 2015-07-09 KIA MOTORS CORPORATION
kia
// kids : 2021-08-13 DotKids Foundation Limited
kids
// kim : 2013-09-23 Afilias Limited
kim
......@@ -9239,7 +9245,7 @@ ong
// onl : 2013-09-16 iRegistry GmbH
onl
// online : 2015-01-15 DotOnline Inc.
// online : 2015-01-15 Radix FZC
online
// ooo : 2014-01-09 INFIBEAM AVENUES LIMITED
......@@ -9395,7 +9401,7 @@ pramerica
// praxi : 2013-12-05 Praxi S.p.A.
praxi
// press : 2014-04-03 DotPress Inc.
// press : 2014-04-03 Radix FZC
press
// prime : 2015-06-25 Amazon Registry Services, Inc.
......@@ -9758,7 +9764,7 @@ sina
// singles : 2013-08-27 Binky Moon, LLC
singles
// site : 2015-01-15 DotSite Inc.
// site : 2015-01-15 Radix FZC
site
// ski : 2015-04-09 Afilias Limited
......@@ -9818,7 +9824,7 @@ soy
// spa : 2019-09-19 Asia Spa and Wellness Promotion Council Limited
spa
// space : 2014-04-03 DotSpace Inc.
// space : 2014-04-03 Radix FZC
space
// sport : 2017-11-16 Global Association of International Sports Federations (GAISF)
......@@ -9857,7 +9863,7 @@ stockholm
// storage : 2014-12-22 XYZ.COM LLC
storage
// store : 2015-04-09 DotStore Inc.
// store : 2015-04-09 Radix FZC
store
// stream : 2016-01-08 dot Stream Limited
......@@ -9947,7 +9953,7 @@ tdk
// team : 2015-03-05 Binky Moon, LLC
team
// tech : 2015-01-30 Personals TLD Inc.
// tech : 2015-01-30 Radix FZC
tech
// technology : 2013-09-13 Binky Moon, LLC
......@@ -10091,7 +10097,7 @@ unicom
// university : 2014-03-06 Binky Moon, LLC
university
// uno : 2013-09-11 DotSite Inc.
// uno : 2013-09-11 Radix FZC
uno
// uol : 2014-05-01 UBN INTERNET LTDA.
......@@ -10220,7 +10226,7 @@ webcam
// weber : 2015-06-04 Saint-Gobain Weber SA
weber
// website : 2014-04-03 DotWebsite Inc.
// website : 2014-04-03 Radix FZC
website
// wedding : 2014-04-24 Registry Services, LLC
......@@ -10848,6 +10854,10 @@ onavstack.net
*.awdev.ca
*.advisor.ws
// AZ.pl sp. z.o.o: https://az.pl
// Submited by Krzysztof Wolski <krzysztof.wolski@home.eu>
ecommerce-shop.pl
// b-data GmbH : https://www.b-data.io
// Submitted by Olivier Benz <olivier.benz@b-data.ch>
b-data.io
......@@ -11037,6 +11047,8 @@ cleverapps.io
// Clerk : https://www.clerk.dev
// Submitted by Colin Sidoti <systems@clerk.dev>
clerk.app
clerkstage.app
*.lcl.dev
*.lclstage.dev
*.stg.dev
......@@ -11626,6 +11638,12 @@ blogsite.xyz
// Submitted by Dominik Menke <dom@digineo.de>
dynv6.net
// Ellucian : https://ellucian.com
// Submitted by Josue Colon <CloudOps-Network@ellucian.com>
elluciancrmadvance.com
elluciancrmadvise.com
elluciancrmrecruit.com
// E4YOU spol. s.r.o. : https://e4you.cz/
// Submitted by Vladimir Dudr <info@e4you.cz>
e4.cz
......@@ -11635,6 +11653,11 @@ e4.cz
eero.online
eero-stage.online
// Elementor : Elementor Ltd.
// Submitted by Anton Barkan <antonb@elementor.com>
elementor.cloud
elementor.cool
// En root‽ : https://en-root.org
// Submitted by Emmanuel Raviart <emmanuel@raviart.com>
en-root.fr
......@@ -12183,6 +12206,10 @@ ravendb.me
development.run
ravendb.run
// home.pl S.A.: https://home.pl
// Submited by Krzysztof Wolski <krzysztof.wolski@home.eu>
homesklep.pl
// Hong Kong Productivity Council: https://www.hkpc.org/
// Submitted by SECaaS Team <summchan@hkpc.org>
secaas.hk
......@@ -12870,60 +12897,6 @@ pcloud.host
// Submitted by Matthew Brown <mattbrown@nyc.mn>
nyc.mn
// NymNom : https://nymnom.com/
// Submitted by NymNom <psl@nymnom.com>
nom.ae
nom.af
nom.ai
nom.al
nym.by
nom.bz
nym.bz
nom.cl
nym.ec
nom.gd
nom.ge
nom.gl
nym.gr
nom.gt
nym.gy
nym.hk
nom.hn
nym.ie
nom.im
nom.ke
nym.kz
nym.la
nym.lc
nom.li
nym.li
nym.lt
nym.lu
nom.lv
nym.me
nom.mk
nym.mn
nym.mx
nom.nu
nym.nz
nym.pe
nym.pt
nom.pw
nom.qa
nym.ro
nom.rs
nom.si
nym.sk
nom.st
nym.su
nym.sx
nom.tj
nym.tw
nom.ug
nom.uy
nom.vc
nom.vg
// Observable, Inc. : https://observablehq.com
// Submitted by Mike Bostock <dns@observablehq.com>
static.observableusercontent.com
......@@ -13351,6 +13324,10 @@ beta.bounty-full.com
// Submitted by Aral Balkan <aral@small-tech.org>
small-web.org
// Smoove.io : https://www.smoove.io/
// Submitted by Dan Kozak <dan@smoove.io>
vp4.me
// Snowplow Analytics : https://snowplowanalytics.com/
// Submitted by Ian Streeter <ian@snowplowanalytics.com>
try-snowplow.com
......
......@@ -40,6 +40,7 @@ EXPORTS += [
'nsHtml5StreamListener.h',
'nsHtml5StreamParser.h',
'nsHtml5StreamParserPtr.h',
"nsHtml5StreamParserReleaser.h",
'nsHtml5String.h',
'nsHtml5StringParser.h',
'nsHtml5SVGLoadDispatcher.h',
......
......@@ -4,6 +4,8 @@
#include "nsHtml5StreamListener.h"
#include "nsHtml5StreamParserReleaser.h"
NS_IMPL_ADDREF(nsHtml5StreamListener)
NS_IMPL_RELEASE(nsHtml5StreamListener)
......@@ -15,14 +17,40 @@ NS_INTERFACE_MAP_BEGIN(nsHtml5StreamListener)
NS_INTERFACE_MAP_END
nsHtml5StreamListener::nsHtml5StreamListener(nsHtml5StreamParser* aDelegate)
: mDelegate(aDelegate) {}
: mDelegateMonitor("nsHtml5StreamListener mDelegateMonitor"),
mDelegate(aDelegate) {
MOZ_ASSERT(aDelegate, "Must have delegate");
aDelegate->AddRef();
}
nsHtml5StreamListener::~nsHtml5StreamListener() {}
nsHtml5StreamListener::~nsHtml5StreamListener() { DropDelegateImpl(); }
void nsHtml5StreamListener::DropDelegate() {
MOZ_ASSERT(NS_IsMainThread(),
"Must not call DropDelegate from non-main threads.");
mDelegate = nullptr;
DropDelegateImpl();
}
void nsHtml5StreamListener::DropDelegateImpl() {
mozilla::ReentrantMonitorAutoEnter autoEnter(mDelegateMonitor);
if (mDelegate) {
nsCOMPtr<nsIRunnable> releaser = new nsHtml5StreamParserReleaser(mDelegate);
if (NS_FAILED(mDelegate->DispatchToMain(releaser.forget()))) {
NS_WARNING("Failed to dispatch releaser event.");
} </