Merge remote-tracking branch 'origin/master' into custom

This commit is contained in:
roytam1 2020-10-02 17:26:07 +08:00
commit 8aaf947d13
6 changed files with 34 additions and 18 deletions

View file

@ -80,20 +80,16 @@ this.DownloadsViewUI.DownloadElementShell.prototype = {
get extendedDisplayName() { get extendedDisplayName() {
let s = DownloadsCommon.strings; let s = DownloadsCommon.strings;
let [displayHost, fullHost] = DownloadUtils.getURIHost(this.download.source.url); let displayHost = DownloadUtils.getURIHost(this.download.source.url);
return s.statusSeparator(this.displayName, displayHost); return s.statusSeparator(this.displayName, displayHost);
}, },
get extendedDisplayNameTip() { get extendedDisplayNameTip() {
let s = DownloadsCommon.strings; let s = DownloadsCommon.strings;
let fullHost = DownloadUtils.getURIHost(this.download.source.url);
let referrer = this.download.source.referrer; let referrer = this.download.source.referrer;
if (referrer) { if (referrer) {
let [displayHost, fullHost] = DownloadUtils.getURIHost(this.download.source.url) + fullHost += ' (' + DownloadUtils.getURIHost(referrer) + ')';
' (' +
DownloadUtils.getURIHost(referrer) +
')';
} else {
let [displayHost, fullHost] = DownloadUtils.getURIHost(this.download.source.url);
} }
return s.statusSeparator(this.displayName, fullHost); return s.statusSeparator(this.displayName, fullHost);
}, },

View file

@ -93,15 +93,20 @@ With rare exception, it is advisable to use the following style for commit messa
This would directly apply to anyone making a pull request. This would directly apply to anyone making a pull request.
Single commits are where issues can be reasonably resolved in a single commit.
- Single Commit: `Issue #xxx - Cited issue title or appropriate direct description of changes` - Single Commit: `Issue #xxx - Cited issue title or appropriate direct description of changes`
- *`Issue #1083 - Deprecate FUEL extension helper javascript library`* - *`Issue #1083 - Deprecate FUEL extension helper javascript library`*
- Multi-Part Commits: `Issue #xxx - Part Number: Appropriate direct description of changes`
Multi-part commits would be used for complex issues. However, an exception exists for multi-part commits where the issue is anticipated or ends up being long term such as "Stop using unified compilation of sources". In these instances the multi-part form is not required.
- Multi-Part Form: `Issue #xxx - Part Number: Appropriate direct description of changes`
- *`Issue #492 - Part 1: Remove files`* - *`Issue #492 - Part 1: Remove files`*
- *`Issue #492 - Part 2: Build system, Installer/Packaging`* - *`Issue #492 - Part 2: Build system, Installer/Packaging`*
- *`Issue #492 - Part 3: nsUpdateService.js, updater.cpp, nsUpdateDriver.cpp`* - *`Issue #492 - Part 3: nsUpdateService.js, updater.cpp, nsUpdateDriver.cpp`*
- *`Issue #492 - Part 4: Remove superfluous brackets in nsUpdateService.js and updater.cpp`* - *`Issue #492 - Part 4: Remove superfluous brackets in nsUpdateService.js and updater.cpp`*
An exception exists for multi-part commits where the issue is anticipated or ends up being long term such as "Stop using unified compilation of sources". In these instances the multi-part form is not required. Occasionally a resolved (and shipped) issue requires further changes to fix bugs. However, If follow-ups are complex enough to be multi-part it should be considered a new issue.
- Follow-up Form: *`Issue #xxx - Follow-up: Appropriate direct description of changes`*
- *`Issue #1643 - Follow-up: Make sure things aren't changed while iterating.`*
### Commits with no issue ### Commits with no issue

View file

@ -58,6 +58,12 @@ ResizeObserverNotificationHelper::Register()
void void
ResizeObserverNotificationHelper::Unregister() ResizeObserverNotificationHelper::Unregister()
{ {
if (!mOwner) {
// We've outlived our owner, so there's nothing registered anymore.
mRegistered = false;
return;
}
if (!mRegistered) { if (!mRegistered) {
return; return;
} }
@ -112,6 +118,10 @@ ResizeObserverController::Notify()
return; return;
} }
// Hold a strong reference to the document, because otherwise calling
// all active observers on it might yank it out from under us.
RefPtr<nsIDocument> document(mDocument);
uint32_t shallowestTargetDepth = 0; uint32_t shallowestTargetDepth = 0;
GatherAllActiveObservations(shallowestTargetDepth); GatherAllActiveObservations(shallowestTargetDepth);
@ -146,7 +156,7 @@ ResizeObserverController::Notify()
nsEventStatus status = nsEventStatus_eIgnore; nsEventStatus status = nsEventStatus_eIgnore;
nsCOMPtr<nsPIDOMWindowInner> window = nsCOMPtr<nsPIDOMWindowInner> window =
mDocument->GetWindow()->GetCurrentInnerWindow(); document->GetWindow()->GetCurrentInnerWindow();
if (window) { if (window) {
nsCOMPtr<nsIScriptGlobalObject> sgo = do_QueryInterface(window); nsCOMPtr<nsIScriptGlobalObject> sgo = do_QueryInterface(window);
@ -178,7 +188,11 @@ ResizeObserverController::BroadcastAllActiveObservations()
{ {
uint32_t shallowestTargetDepth = UINT32_MAX; uint32_t shallowestTargetDepth = UINT32_MAX;
for (auto observer : mResizeObservers) { // Use a copy of the observers as this invokes the callbacks of the observers
// which could register/unregister observers at will.
nsTArray<RefPtr<ResizeObserver>> tempObservers(mResizeObservers);
for (auto observer : tempObservers) {
uint32_t targetDepth = observer->BroadcastActiveObservations(); uint32_t targetDepth = observer->BroadcastActiveObservations();

View file

@ -1,3 +1,4 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public /* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

View file

@ -842,7 +842,7 @@ PropertySupportsVariant(nsCSSPropertyID aPropertyID, uint32_t aVariant)
case eCSSProperty_grid_row_end: case eCSSProperty_grid_row_end:
case eCSSProperty_font_weight: case eCSSProperty_font_weight:
case eCSSProperty_initial_letter: case eCSSProperty_initial_letter:
supported = VARIANT_NUMBER | VARIANT_OPACITY; supported = VARIANT_NUMBER;
break; break;
default: default:

View file

@ -1299,7 +1299,7 @@ protected:
} }
bool ParseNonNegativeNumber(nsCSSValue& aValue) bool ParseNonNegativeNumber(nsCSSValue& aValue)
{ {
return ParseSingleTokenNonNegativeVariant(aValue, VARIANT_NUMBER | VARIANT_OPACITY, nullptr); return ParseSingleTokenNonNegativeVariant(aValue, VARIANT_NUMBER, nullptr);
} }
// Helpers for some common ParseSingleTokenOneOrLargerVariant calls. // Helpers for some common ParseSingleTokenOneOrLargerVariant calls.
@ -1309,7 +1309,7 @@ protected:
} }
bool ParseOneOrLargerNumber(nsCSSValue& aValue) bool ParseOneOrLargerNumber(nsCSSValue& aValue)
{ {
return ParseSingleTokenOneOrLargerVariant(aValue, VARIANT_NUMBER | VARIANT_OPACITY, nullptr); return ParseSingleTokenOneOrLargerVariant(aValue, VARIANT_NUMBER, nullptr);
} }
// http://dev.w3.org/csswg/css-values/#custom-idents // http://dev.w3.org/csswg/css-values/#custom-idents
@ -8485,7 +8485,7 @@ CSSParserImpl::ParseImageRect(nsCSSValue& aImage)
break; break;
} }
static const int32_t VARIANT_SIDE = VARIANT_NUMBER | VARIANT_PERCENT | VARIANT_OPACITY; static const int32_t VARIANT_SIDE = VARIANT_NUMBER | VARIANT_PERCENT;
if (!ParseSingleTokenNonNegativeVariant(top, VARIANT_SIDE, nullptr) || if (!ParseSingleTokenNonNegativeVariant(top, VARIANT_SIDE, nullptr) ||
!ExpectSymbol(',', true) || !ExpectSymbol(',', true) ||
!ParseSingleTokenNonNegativeVariant(right, VARIANT_SIDE, nullptr) || !ParseSingleTokenNonNegativeVariant(right, VARIANT_SIDE, nullptr) ||
@ -10894,7 +10894,7 @@ CSSParserImpl::ParseWebkitGradientColorStop(nsCSSValueGradient* aGradient)
if (mToken.mIdent.LowerCaseEqualsLiteral("color-stop")) { if (mToken.mIdent.LowerCaseEqualsLiteral("color-stop")) {
// Parse stop location, followed by comma. // Parse stop location, followed by comma.
if (!ParseSingleTokenVariant(stop->mLocation, if (!ParseSingleTokenVariant(stop->mLocation,
VARIANT_NUMBER | VARIANT_PERCENT | VARIANT_OPACITY, VARIANT_NUMBER | VARIANT_PERCENT,
nullptr) || nullptr) ||
!ExpectSymbol(',', true)) { !ExpectSymbol(',', true)) {
SkipUntil(')'); // Skip to end of color-stop(...) expression. SkipUntil(')'); // Skip to end of color-stop(...) expression.
@ -16057,7 +16057,7 @@ static bool GetFunctionParseInformation(nsCSSKeyword aToken,
{VARIANT_LBCALC, VARIANT_LBCALC, VARIANT_LBCALC}, {VARIANT_LBCALC, VARIANT_LBCALC, VARIANT_LBCALC},
{VARIANT_ANGLE_OR_ZERO}, {VARIANT_ANGLE_OR_ZERO},
{VARIANT_ANGLE_OR_ZERO, VARIANT_ANGLE_OR_ZERO}, {VARIANT_ANGLE_OR_ZERO, VARIANT_ANGLE_OR_ZERO},
{VARIANT_NUMBER|VARIANT_OPACITY}, {VARIANT_NUMBER},
{VARIANT_LENGTH|VARIANT_NONNEGATIVE_DIMENSION}, {VARIANT_LENGTH|VARIANT_NONNEGATIVE_DIMENSION},
{VARIANT_LB|VARIANT_NONNEGATIVE_DIMENSION}, {VARIANT_LB|VARIANT_NONNEGATIVE_DIMENSION},
{VARIANT_NUMBER, VARIANT_NUMBER}, {VARIANT_NUMBER, VARIANT_NUMBER},
@ -17639,7 +17639,7 @@ CSSParserImpl::ParseScrollSnapPoints(nsCSSValue& aValue, nsCSSPropertyID aPropID
nsCSSKeywords::LookupKeyword(mToken.mIdent) == eCSSKeyword_repeat) { nsCSSKeywords::LookupKeyword(mToken.mIdent) == eCSSKeyword_repeat) {
nsCSSValue lengthValue; nsCSSValue lengthValue;
if (ParseNonNegativeVariant(lengthValue, if (ParseNonNegativeVariant(lengthValue,
VARIANT_LENGTH | VARIANT_PERCENT | VARIANT_OPACITY | VARIANT_CALC, VARIANT_LENGTH | VARIANT_PERCENT | VARIANT_CALC,
nullptr) != CSSParseResult::Ok) { nullptr) != CSSParseResult::Ok) {
REPORT_UNEXPECTED(PEExpectedNonnegativeNP); REPORT_UNEXPECTED(PEExpectedNonnegativeNP);
SkipUntil(')'); SkipUntil(')');