Merge mozilla-central to autoland. a=merge CLOSED TREE

This commit is contained in:
Brindusan Cristian 2019-06-04 06:50:52 +03:00
commit 4d6f578f08
29 changed files with 1315 additions and 1286 deletions

View File

@ -1357,7 +1357,8 @@ var delayedStartupPromise = new Promise(resolve => {
var gBrowserInit = {
delayedStartupFinished: false,
idleTasksFinished: false,
idleTasksFinishedPromise: null,
idleTaskPromiseResolve: null,
_tabToAdopt: undefined,
@ -1986,7 +1987,7 @@ var gBrowserInit = {
// timeouts) should execute in order. Note that this observer notification is
// not guaranteed to fire, since the window could close before we get here.
scheduleIdleTask(() => {
this.idleTasksFinished = true;
this.idleTaskPromiseResolve();
Services.obs.notifyObservers(window, "browser-idle-startup-tasks-finished");
});
},
@ -2159,6 +2160,10 @@ var gBrowserInit = {
},
};
gBrowserInit.idleTasksFinishedPromise = new Promise(resolve => {
gBrowserInit.idleTaskPromiseResolve = resolve;
});
function HandleAppCommandEvent(evt) {
switch (evt.command) {
case "Back":

View File

@ -393,9 +393,8 @@ add_task(async function testTabCreateRelated() {
});
add_task(async function testLastTabRemoval() {
const CLOSE_WINDOW_PREF = "browser.tabs.closeWindowWithLastTab";
await SpecialPowers.pushPrefEnv({set: [
[CLOSE_WINDOW_PREF, false],
["browser.tabs.closeWindowWithLastTab", false],
]});
async function background() {
@ -429,7 +428,7 @@ add_task(async function testLastTabRemoval() {
await extension.unload();
await BrowserTestUtils.closeWindow(newWin);
SpecialPowers.clearUserPref(CLOSE_WINDOW_PREF);
await SpecialPowers.popPrefEnv();
});
add_task(async function testTabActivationEvent() {

View File

@ -1,5 +1,5 @@
This is the PDF.js project output, https://github.com/mozilla/pdf.js
Current extension version is: 2.2.189
Current extension version is: 2.2.199
Taken from upstream commit: f652cf8e
Taken from upstream commit: 63014eb8

View File

@ -123,8 +123,8 @@ return /******/ (function(modules) { // webpackBootstrap
"use strict";
var pdfjsVersion = '2.2.189';
var pdfjsBuild = 'f652cf8e';
var pdfjsVersion = '2.2.199';
var pdfjsBuild = '63014eb8';
var pdfjsSharedUtil = __w_pdfjs_require__(1);
@ -1304,7 +1304,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
return worker.messageHandler.sendWithPromise('GetDocRequest', {
docId,
apiVersion: '2.2.189',
apiVersion: '2.2.199',
source: {
data: source.data,
url: source.url,
@ -1976,7 +1976,7 @@ class LoopbackPort {
}
terminate() {
this._listeners = [];
this._listeners.length = 0;
}
}
@ -2296,8 +2296,8 @@ class WorkerTransport {
waitOn.push(page._destroy());
}
});
this.pageCache = [];
this.pagePromises = [];
this.pageCache.length = 0;
this.pagePromises.length = 0;
const terminated = this.messageHandler.sendWithPromise('Terminate', null);
waitOn.push(terminated);
Promise.all(waitOn).then(() => {
@ -3100,9 +3100,9 @@ const InternalRenderTask = function InternalRenderTaskClosure() {
return InternalRenderTask;
}();
const version = '2.2.189';
const version = '2.2.199';
exports.version = version;
const build = 'f652cf8e';
const build = '63014eb8';
exports.build = build;
/***/ }),

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,7 @@ origin:
# Human-readable identifier for this version/release
# Generally "version NNN", "tag SSS", "bookmark SSS"
release: version 2.2.189
release: version 2.2.199
# The package's license, where possible using the mnemonic from
# https://spdx.org/licenses/

View File

@ -80,7 +80,7 @@ bool GLXLibrary::EnsureInitialized() {
// which trigger glibc bug
// http://sourceware.org/bugzilla/show_bug.cgi?id=12225
const char* libGLfilename = "libGL.so.1";
#ifdef __OpenBSD__
#if defined(__OpenBSD__) || defined(__NetBSD__)
libGLfilename = "libGL.so";
#endif

View File

@ -44,6 +44,12 @@ const char* FeatureStatusToString(FeatureStatus aStatus) {
return "blocked-no-gfx-info";
case FeatureStatus::BlockedOverride:
return "blocked-override";
case FeatureStatus::BlockedReleaseChannelIntel:
return "blocked-release-channel-intel";
case FeatureStatus::BlockedReleaseChannelAMD:
return "blocked-release-channel-amd";
case FeatureStatus::BlockedReleaseChannelBattery:
return "blocked-release-channel-battery";
case FeatureStatus::Blacklisted:
return "blacklisted";
case FeatureStatus::OptIn:

View File

@ -40,6 +40,9 @@ enum class FeatureStatus {
BlockedScreenUnknown,
BlockedNoGfxInfo,
BlockedOverride,
BlockedReleaseChannelIntel,
BlockedReleaseChannelAMD,
BlockedReleaseChannelBattery,
// This feature has been blocked by the graphics blacklist.
Blacklisted,

View File

@ -2617,27 +2617,9 @@ static FeatureState& WebRenderHardwareQualificationStatus(
FeatureStatus::BlockedDeviceUnknown, "Bad device id",
NS_LITERAL_CSTRING("FEATURE_FAILURE_BAD_DEVICE_ID"));
} else {
#ifdef NIGHTLY_BUILD
// For AMD/Intel devices, if we have a battery, ignore it if the screen
// is small enough. Note that we always check for a battery with NVIDIA
// because we do not have a limited/curated set of devices to support
// WebRender on.
const int32_t kMaxPixelsBattery = 1920 * 1200; // WUXGA
const int32_t screenPixels = aScreenSize.width * aScreenSize.height;
bool disableForBattery = aHasBattery;
if ((adapterVendorID == u"0x8086" || adapterVendorID == u"0x1002") &&
screenPixels > 0 && screenPixels <= kMaxPixelsBattery) {
disableForBattery = false;
}
#else
bool disableForBattery = aHasBattery;
#endif
if (disableForBattery) {
featureWebRenderQualified.Disable(
FeatureStatus::BlockedHasBattery, "Has battery",
NS_LITERAL_CSTRING("FEATURE_FAILURE_WR_HAS_BATTERY"));
} else if (adapterVendorID == u"0x10de") {
if (adapterVendorID == u"0x10de") {
if (deviceID < 0x6c0) {
// 0x6c0 is the lowest Fermi device id. Unfortunately some Tesla
// devices that don't support D3D 10.1 have higher deviceIDs. They
@ -2646,7 +2628,6 @@ static FeatureState& WebRenderHardwareQualificationStatus(
FeatureStatus::BlockedDeviceTooOld, "Device too old",
NS_LITERAL_CSTRING("FEATURE_FAILURE_DEVICE_TOO_OLD"));
}
#ifdef EARLY_BETA_OR_EARLIER
} else if (adapterVendorID == u"0x1002") { // AMD
// AMD deviceIDs are not very well ordered. This
// condition is based off the information in gpu-db
@ -2659,13 +2640,17 @@ static FeatureState& WebRenderHardwareQualificationStatus(
(deviceID >= 0x9830 && deviceID < 0x9870) ||
(deviceID >= 0x9900 && deviceID < 0x9a00)) {
// we have a desktop CAYMAN, SI, CIK, VI, or GFX9 device
#ifndef EARLY_BETA_OR_EARLIER
featureWebRenderQualified.Disable(
FeatureStatus::BlockedReleaseChannelAMD,
"Release channel and AMD",
NS_LITERAL_CSTRING("FEATURE_FAILURE_RELEASE_CHANNEL_AMD"));
#endif // !EARLY_BETA_OR_EARLIER
} else {
featureWebRenderQualified.Disable(
FeatureStatus::BlockedDeviceTooOld, "Device too old",
NS_LITERAL_CSTRING("FEATURE_FAILURE_DEVICE_TOO_OLD"));
}
#endif
#ifdef NIGHTLY_BUILD
} else if (adapterVendorID == u"0x8086") { // Intel
const uint16_t supportedDevices[] = {
// skylake gt2+
@ -2757,13 +2742,8 @@ static FeatureState& WebRenderHardwareQualificationStatus(
break;
}
}
if (!supported) {
featureWebRenderQualified.Disable(
FeatureStatus::BlockedDeviceTooOld, "Device too old",
NS_LITERAL_CSTRING("FEATURE_FAILURE_DEVICE_TOO_OLD"));
}
# ifdef MOZ_WIDGET_GTK
else {
if (supported) {
#ifdef MOZ_WIDGET_GTK
// Performance is not great on 4k screens with WebRender + Linux.
// Disable it for now if it is too large.
const int32_t kMaxPixelsLinux = 3440 * 1440; // UWQHD
@ -2775,15 +2755,50 @@ static FeatureState& WebRenderHardwareQualificationStatus(
featureWebRenderQualified.Disable(
FeatureStatus::BlockedScreenUnknown, "Screen size unknown",
NS_LITERAL_CSTRING("FEATURE_FAILURE_SCREEN_SIZE_UNKNOWN"));
} else {
#endif // MOZ_WIDGET_GTK
#ifndef NIGHTLY_BUILD
featureWebRenderQualified.Disable(
FeatureStatus::BlockedReleaseChannelIntel,
"Release channel and Intel",
NS_LITERAL_CSTRING("FEATURE_FAILURE_RELEASE_CHANNEL_INTEL"));
#endif // !NIGHTLY_BUILD
#ifdef MOZ_WIDGET_GTK
}
#endif // MOZ_WIDGET_GTK
} else {
featureWebRenderQualified.Disable(
FeatureStatus::BlockedDeviceTooOld, "Device too old",
NS_LITERAL_CSTRING("FEATURE_FAILURE_DEVICE_TOO_OLD"));
}
# endif // MOZ_WIDGET_GTK
#endif // NIGHTLY_BUILD
} else {
featureWebRenderQualified.Disable(
FeatureStatus::BlockedVendorUnsupported, "Unsupported vendor",
NS_LITERAL_CSTRING("FEATURE_FAILURE_UNSUPPORTED_VENDOR"));
}
// We leave checking the battery for last because we would like to know
// which users were denied WebRender only because they have a battery.
if (featureWebRenderQualified.IsEnabled() && aHasBattery) {
// For AMD/Intel devices, if we have a battery, ignore it if the
// screen is small enough. Note that we always check for a battery
// with NVIDIA because we do not have a limited/curated set of devices
// to support WebRender on.
const int32_t kMaxPixelsBattery = 1920 * 1200; // WUXGA
if ((adapterVendorID == u"0x8086" || adapterVendorID == u"0x1002") &&
screenPixels > 0 && screenPixels <= kMaxPixelsBattery) {
#ifndef NIGHTLY_BUILD
featureWebRenderQualified.Disable(
FeatureStatus::BlockedReleaseChannelBattery,
"Release channel and battery",
NS_LITERAL_CSTRING("FEATURE_FAILURE_RELEASE_CHANNEL_BATTERY"));
#endif // !NIGHTLY_BUILD
} else {
featureWebRenderQualified.Disable(
FeatureStatus::BlockedHasBattery, "Has battery",
NS_LITERAL_CSTRING("FEATURE_FAILURE_WR_HAS_BATTERY"));
}
}
}
}
} else {

View File

@ -776,6 +776,9 @@ nscoord nsBlockFrame::GetMinISize(gfxContext* aRenderingContext) {
for (int32_t i = 0, i_end = line->GetChildCount(); i != i_end;
++i, kid = kid->GetNextSibling()) {
kid->AddInlineMinISize(aRenderingContext, &data);
if (data.mTrailingWhitespace) {
data.OptionallyBreak();
}
}
}
#ifdef DEBUG

View File

@ -722,7 +722,7 @@ void nsContainerFrame::DoInlineIntrinsicISize(
nscoord clonePBM = 0; // PBM = PaddingBorderMargin
const bool sliceBreak =
styleBorder->mBoxDecorationBreak == StyleBoxDecorationBreak::Slice;
if (!GetPrevContinuation()) {
if (!GetPrevContinuation() || MOZ_UNLIKELY(!sliceBreak)) {
nscoord startPBM =
// clamp negative calc() to 0
std::max(GetCoord(stylePadding->mPadding.Get(startSide), 0), 0) +
@ -742,6 +742,7 @@ void nsContainerFrame::DoInlineIntrinsicISize(
GetCoord(styleMargin->mMargin.Get(endSide), 0);
if (MOZ_UNLIKELY(!sliceBreak)) {
clonePBM += endPBM;
aData->mCurrentLine += clonePBM;
}
const nsLineList_iterator* savedLine = aData->mLine;

View File

@ -0,0 +1,87 @@
<!DOCTYPE html>
<head>
<title>CSS Reference: min/max-content size on box-decoration-break:clone inline box with bidi text</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<style>
html,body {
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
div {
border: 5px solid blue;
white-space: pre;
}
.max > div {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
}
.min > div {
width: -moz-min-content;
width: -webkit-min-content;
width: min-content;
}
span {
border: 2px solid gray;
padding: 0 10px 0 6px;
border-width: 0 8px 0 5px;
margin: 0 4px 0 3px;
background: yellow;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
f { margin-right: 30px; float: left; }
</style>
<body>
<f class="max">
<div><span>&#x202e;a&#x202d;bc</span><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span> <span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc </span><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span><span> d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span> aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc </span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa<span> d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span> aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa</div>
</f>
<f class="min">
<div><span>&#x202e;a&#x202d;bc</span><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<!-- FIXME -->
<div style="white-space: normal;"><span>&#x202e;a&#x202d;bc</span> <span>d&#x202e;e&#x202d;f</span>
</div>
<!-- FIXME -->
<div style="white-space: normal;"><span>&#x202e;a&#x202d;bc </span><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>bc</span><span></span><span>a</span><br><span>d&#x202e;e&#x202d;f</span></div>
<div><span>&#x202e;a&#x202d;bc</span><br>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span><br>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa<span></span><br><span>d&#x202e;e&#x202d;f</span>
</div>
<!-- FIXME -->
<div style="white-space: normal;"><span>&#x202e;a&#x202d;bc</span> aa <span>d&#x202e;e&#x202d;f</span>
</div>
<!-- FIXME -->
<div style="white-space: normal;"><span>&#x202e;a&#x202d;bc</span>aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa</div>
</f>

View File

@ -0,0 +1,113 @@
<!DOCTYPE html>
<head>
<title>CSS Test: min/max-content size on box-decoration-break:clone inline box with bidi text</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content">
<link rel="help" href="https://drafts.csswg.org/css-break-3/#break-decoration">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1552357">
<link rel="match" href="clone-intrinsic-size-bidi-ref.html">
<style>
html,body {
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
div {
border: 5px solid blue;
}
.max > div {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
}
.min > div {
width: -moz-min-content;
width: -webkit-min-content;
width: min-content;
}
span {
border: 2px solid gray;
padding: 0 10px 0 6px;
border-width: 0 8px 0 5px;
margin: 0 4px 0 3px;
background: yellow;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
f { margin-right: 30px; float: left; }
</style>
<body>
<f class="max">
<div>
<span>&#x202e;a&#x202d;bc</span><span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc </span><span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span><span> d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc </span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa<span> d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa </div>
</f>
<f class="min">
<div>
<span>&#x202e;a&#x202d;bc</span><span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<!-- Bug 1556444 -->
<div>
<span>&#x202e;a&#x202d;bc</span> <span>d&#x202e;e&#x202d;f</span>
</div>
<!-- Bug 1556444 -->
<div>
<span>&#x202e;a&#x202d;bc </span><span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span><span> d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc </span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa<span> d&#x202e;e&#x202d;f</span>
</div>
<!-- Bug 1556444 -->
<div>
<span>&#x202e;a&#x202d;bc</span> aa <span>d&#x202e;e&#x202d;f</span>
</div>
<!-- Bug 1556444 -->
<div>
<span>&#x202e;a&#x202d;bc</span>aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa </div>
</f>

View File

@ -175,3 +175,5 @@ fuzzy-if(Android,207-207,32-32) random-if(/^Windows\x20NT\x206\.1/.test(http.osc
== 1231175-1.html 1231175-1-ref.html
== 1366623-1.html 1366623-1-ref.html
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == 1426042-1.html 1426042-1-ref.html # Bug 1392106
== clone-intrinsic-size-bidi.html clone-intrinsic-size-bidi-ref.html
== slice-intrinsic-size-bidi.html slice-intrinsic-size-bidi-ref.html

View File

@ -0,0 +1,85 @@
<!DOCTYPE html>
<head>
<title>CSS Reference: min/max-content size on box-decoration-break:slice inline box with bidi text</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<style>
html,body {
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
div {
border: 5px solid blue;
white-space: pre;
}
.max > div {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
}
.min > div {
width: -moz-min-content;
width: -webkit-min-content;
width: min-content;
}
span {
border: 2px solid gray;
padding: 0 10px 0 6px;
border-width: 0 8px 0 5px;
margin: 0 4px 0 3px;
background: yellow;
}
f { margin-right: 30px; float: left; }
.l { margin-right:0; border-right-width:0; padding-right:0 }
.r { margin-left:0; border-left-width:0; padding-left:0 }
</style>
<body>
<f class="max">
<div><span>&#x202e;a&#x202d;bc</span><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span> <span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc </span><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span><span> d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span> aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc </span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa<span> d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span> aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa</div>
</f>
<f class="min">
<div><span>&#x202e;a&#x202d;bc</span><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span><br><span>d&#x202e;e&#x202d;f</span>
</div>
<!-- FIXME -->
<div style="white-space:normal;"><span>&#x202e;a&#x202d;bc </span><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span class="l">bc</span><span>&#x202e;a&#x202d;</span><br><span class="r">d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span><br>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span><br>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div><span class="l">bc</span>aa<span>&#x202e;a&#x202d;</span><br><span class="r">d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span><br>aa<br><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa<br><span>d&#x202e;e&#x202d;f</span>
</div>
<div><span>&#x202e;a&#x202d;bc</span>aa</div>
</f>

View File

@ -0,0 +1,108 @@
<!DOCTYPE html>
<head>
<title>CSS Test: min/max-content size on box-decoration-break:slice inline box with bidi text</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content">
<link rel="help" href="https://drafts.csswg.org/css-break-3/#break-decoration">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1552357">
<link rel="match" href="slice-intrinsic-size-bidi-ref.html">
<style>
html,body {
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
div {
border: 5px solid blue;
}
.max > div {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
}
.min > div {
width: -moz-min-content;
width: -webkit-min-content;
width: min-content;
}
span {
border: 2px solid gray;
padding: 0 10px 0 6px;
border-width: 0 8px 0 5px;
margin: 0 4px 0 3px;
background: yellow;
}
f { margin-right: 30px; float: left; }
</style>
<body>
<f class="max">
<div>
<span>&#x202e;a&#x202d;bc</span><span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc </span><span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span><span> d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc </span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa<span> d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa </div>
</f>
<f class="min">
<div>
<span>&#x202e;a&#x202d;bc</span><span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> <span>d&#x202e;e&#x202d;f</span>
</div>
<!-- Bug 1556444 -->
<div>
<span>&#x202e;a&#x202d;bc </span><span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span><span> d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc </span>aa<span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa<span> d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span> aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa <span>d&#x202e;e&#x202d;f</span>
</div>
<div>
<span>&#x202e;a&#x202d;bc</span>aa </div>
</f>

File diff suppressed because it is too large Load Diff

View File

@ -530,9 +530,8 @@ Tester.prototype = {
},
async promiseMainWindowReady() {
if (window.gBrowserInit && !gBrowserInit.idleTasksFinished) {
await this.TestUtils.topicObserved("browser-idle-startup-tasks-finished",
subject => subject === window);
if (window.gBrowserInit) {
await window.gBrowserInit.idleTasksFinishedPromise;
}
},

View File

@ -139,11 +139,29 @@ def log_crashes(logger,
# determining the appropriate frame for the crash signature.
ABORT_SIGNATURES = (
"Abort(char const*)",
"GeckoCrash",
"NS_DebugBreak",
# This signature is part of Rust panic stacks on some platforms. On
# others, it includes a template parameter containing "core::panic::" and
# is automatically filtered out by that pattern.
"core::ops::function::Fn::call",
"gkrust_shared::panic_hook",
"intentional_panic",
"mozalloc_abort",
"static void Abort(const char *)",
)
# Similar to above, but matches if the substring appears anywhere in the
# frame's signature.
ABORT_SUBSTRINGS = (
# On some platforms, Rust panic frames unfortunately appear without the
# std::panicking or core::panic namespaces.
"_panic_",
"core::panic::",
"core::result::unwrap_failed",
"std::panicking::",
)
class CrashInfo(object):
"""Get information about a crash based on dump files.
@ -296,7 +314,9 @@ class CrashInfo(object):
func = match.group(1).strip()
signature = "@ %s" % func
if func not in ABORT_SIGNATURES:
if not (func in ABORT_SIGNATURES or
any(pat in func
for pat in ABORT_SUBSTRINGS)):
break
break
else:

View File

@ -248,16 +248,8 @@ TalosPowersService.prototype = {
// down, since some caching that can influence future runs in this profile
// keys off of that notification.
let topWin = BrowserWindowTracker.getTopWindow();
if (topWin &&
topWin.gBrowserInit &&
!topWin.gBrowserInit.idleTasksFinished) {
await new Promise(resolve => {
let obs = (subject, topic, data) => {
Services.obs.removeObserver(obs, "browser-idle-startup-tasks-finished");
resolve();
};
Services.obs.addObserver(obs, "browser-idle-startup-tasks-finished");
});
if (topWin && topWin.gBrowserInit) {
await topWin.gBrowserInit.idleTasksFinishedPromise;
}
for (let domWindow of Services.wm.getEnumerator(null)) {

View File

@ -0,0 +1,84 @@
<!DOCTYPE html>
<head>
<title>CSS Reference: min/max-content size on box-decoration-break:clone inline box</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<style>
html,body {
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
div {
border: 5px solid blue;
white-space: pre;
}
.max > div {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
}
.min > div {
width: -moz-min-content;
width: -webkit-min-content;
width: min-content;
}
span {
border: 2px solid gray;
padding: 0 10px 0 6px;
border-width: 0 8px 0 5px;
margin: 0 4px 0 3px;
background: yellow;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
f { margin-right: 30px; float: left; }
</style>
<body>
<f class="max">
<div><span>aaa</span><span>aaa</span>
</div>
<div><span>aaa</span>aa<span>aaa</span>
</div>
<div><span>aaa</span> <span>aaa</span>
</div>
<div><span>aaa </span><span>aaa</span>
</div>
<div><span>aaa</span><span> aaa</span>
</div>
<div><span>aaa</span> aa<span>aaa</span>
</div>
<div><span>aaa </span>aa<span>aaa</span>
</div>
<div><span>aaa</span>aa<span> aaa</span>
</div>
<div><span>aaa</span> aa <span>aaa</span>
</div>
<div><span>aaa</span>aa <span>aaa</span>
</div>
<div><span>aaa</span>aa</div>
</f>
<f class="min">
<div><span>aaa</span><span>aaa</span>
</div>
<div><span>aaa</span>aa<span>aaa</span>
</div>
<div><span>aaa</span><br><span>aaa</span>
</div>
<div><span>aaa</span><br><span>aaa</span>
</div>
<div><span>aaa</span><span><br>aaa</span>
</div>
<div><span>aaa</span><br>aa<span>aaa</span>
</div>
<div><span>aaa</span><br>aa<span>aaa</span>
</div>
<div><span>aaa</span>aa<span><br>aaa</span>
</div>
<div><span>aaa</span><br>aa<br><span>aaa</span>
</div>
<div><span>aaa</span>aa<br><span>aaa</span>
</div>
<div><span>aaa</span>aa</div>
</f>

View File

@ -0,0 +1,109 @@
<!DOCTYPE html>
<head>
<title>CSS Test: min/max-content size on box-decoration-break:clone inline box</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content">
<link rel="help" href="https://drafts.csswg.org/css-break-3/#break-decoration">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1552357">
<link rel="match" href="clone-intrinsic-size-ref.html">
<style>
html,body {
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
div {
border: 5px solid blue;
}
.max > div {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
}
.min > div {
width: -moz-min-content;
width: -webkit-min-content;
width: min-content;
}
span {
border: 2px solid gray;
padding: 0 10px 0 6px;
border-width: 0 8px 0 5px;
margin: 0 4px 0 3px;
background: yellow;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
f { margin-right: 30px; float: left; }
</style>
<body>
<f class="max">
<div>
<span>aaa</span><span>aaa</span>
</div>
<div>
<span>aaa</span>aa<span>aaa</span>
</div>
<div>
<span>aaa</span> <span>aaa</span>
</div>
<div>
<span>aaa </span><span>aaa</span>
</div>
<div>
<span>aaa</span><span> aaa</span>
</div>
<div>
<span>aaa</span> aa<span>aaa</span>
</div>
<div>
<span>aaa </span>aa<span>aaa</span>
</div>
<div>
<span>aaa</span>aa<span> aaa</span>
</div>
<div>
<span>aaa</span> aa <span>aaa</span>
</div>
<div>
<span>aaa</span>aa <span>aaa</span>
</div>
<div>
<span>aaa</span>aa </div>
</f>
<f class="min">
<div>
<span>aaa</span><span>aaa</span>
</div>
<div>
<span>aaa</span>aa<span>aaa</span>
</div>
<div>
<span>aaa</span> <span>aaa</span>
</div>
<div>
<span>aaa </span><span>aaa</span>
</div>
<div>
<span>aaa</span><span> aaa</span>
</div>
<div>
<span>aaa</span> aa<span>aaa</span>
</div>
<div>
<span>aaa </span>aa<span>aaa</span>
</div>
<div>
<span>aaa</span>aa<span> aaa</span>
</div>
<div>
<span>aaa</span> aa <span>aaa</span>
</div>
<div>
<span>aaa</span>aa <span>aaa</span>
</div>
<div>
<span>aaa</span>aa </div>
</f>

View File

@ -0,0 +1,62 @@
<!DOCTYPE html>
<head>
<title>CSS Reference: min/max-content size on box-decoration-break:slice inline box</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<style>
html,body {
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
div {
border: 5px solid blue;
white-space: pre;
}
.max > div {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
}
.min > div {
width: -moz-min-content;
width: -webkit-min-content;
width: min-content;
}
span {
border: 2px solid gray;
padding: 0 10px 0 6px;
border-width: 0 8px 0 5px;
margin: 0 4px 0 3px;
background: yellow;
}
f { margin-right: 30px; float: left; }
</style>
<body>
<f class="max">
<div><span>aaa</span><span>aaa</span></div>
<div><span>aaa</span>aa<span>aaa</span></div>
<div><span>aaa</span> <span>aaa</span></div>
<div><span>aaa </span><span>aaa</span></div>
<div><span>aaa</span><span> aaa</span></div>
<div><span>aaa</span> aa<span>aaa</span></div>
<div><span>aaa </span>aa<span>aaa</span></div>
<div><span>aaa</span>aa<span> aaa</span></div>
<div><span>aaa</span> aa <span>aaa</span></div>
<div><span>aaa</span>aa <span>aaa</span></div>
<div><span>aaa</span>aa</div>
</f>
<f class="min">
<div><span>aaa</span><span>aaa</span></div>
<div><span>aaa</span>aa<span>aaa</span></div>
<div><span>aaa</span><br><span>aaa</span></div>
<div><span>aaa</span><br><span>aaa</span></div>
<div><span>aaa</span><span><br>aaa</span></div>
<div><span>aaa</span><br>aa<span>aaa</span></div>
<div><span>aaa</span><br>aa<span>aaa</span></div>
<div><span>aaa</span>aa<span><br>aaa</span></div>
<div><span>aaa</span><br>aa<br><span>aaa</span></div>
<div><span>aaa</span>aa<br><span>aaa</span></div>
<div><span>aaa</span>aa</div>
</f>

View File

@ -0,0 +1,110 @@
<!DOCTYPE html>
<head>
<title>CSS Test: min/max-content size on box-decoration-break:slice inline box</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content">
<link rel="help" href="https://drafts.csswg.org/css-break-3/#break-decoration">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1552357">
<link rel="match" href="slice-intrinsic-size-ref.html">
<style>
html,body {
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
}
div {
border: 5px solid blue;
}
.max > div {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
}
.min > div {
width: -moz-min-content;
width: -webkit-min-content;
width: min-content;
}
span {
border: 2px solid gray;
padding: 0 10px 0 6px;
border-width: 0 8px 0 5px;
margin: 0 4px 0 3px;
background: yellow;
/* for clarity: */
-webkit-box-decoration-break: slice;
box-decoration-break: slice;
}
f { margin-right: 30px; float: left; }
</style>
<body>
<f class="max">
<div>
<span>aaa</span><span>aaa</span>
</div>
<div>
<span>aaa</span>aa<span>aaa</span>
</div>
<div>
<span>aaa</span> <span>aaa</span>
</div>
<div>
<span>aaa </span><span>aaa</span>
</div>
<div>
<span>aaa</span><span> aaa</span>
</div>
<div>
<span>aaa</span> aa<span>aaa</span>
</div>
<div>
<span>aaa </span>aa<span>aaa</span>
</div>
<div>
<span>aaa</span>aa<span> aaa</span>
</div>
<div>
<span>aaa</span> aa <span>aaa</span>
</div>
<div>
<span>aaa</span>aa <span>aaa</span>
</div>
<div>
<span>aaa</span>aa </div>
</f>
<f class="min">
<div>
<span>aaa</span><span>aaa</span>
</div>
<div>
<span>aaa</span>aa<span>aaa</span>
</div>
<div>
<span>aaa</span> <span>aaa</span>
</div>
<div>
<span>aaa </span><span>aaa</span>
</div>
<div>
<span>aaa</span><span> aaa</span>
</div>
<div>
<span>aaa</span> aa<span>aaa</span>
</div>
<div>
<span>aaa </span>aa<span>aaa</span>
</div>
<div>
<span>aaa</span>aa<span> aaa</span>
</div>
<div>
<span>aaa</span> aa <span>aaa</span>
</div>
<div>
<span>aaa</span>aa <span>aaa</span>
</div>
<div>
<span>aaa</span>aa </div>
</f>

View File

@ -201,7 +201,7 @@ void glxtest() {
"The MOZ_AVOID_OPENGL_ALTOGETHER environment variable is defined");
///// Open libGL and load needed symbols /////
#ifdef __OpenBSD__
#if defined(__OpenBSD__) || defined(__NetBSD__)
# define LIBGL_FILENAME "libGL.so"
#else
# define LIBGL_FILENAME "libGL.so.1"

View File

@ -7,7 +7,7 @@
"name": "Quitter",
"description": "Quit",
"version": "2018.04.03",
"version": "2019.06.03",
"author": "Mozilla",
"background": {

View File

@ -8,7 +8,11 @@ this.quitter = class extends ExtensionAPI {
getAPI(context) {
return {
quitter: {
quit() {
async quit() {
let browserWindow = Services.wm.getMostRecentWindow("navigator:browser");
if (browserWindow && browserWindow.gBrowserInit) {
await browserWindow.gBrowserInit.idleTasksFinishedPromise;
}
Services.startup.quit(Ci.nsIAppStartup.eForceQuit);
},
},