mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-08 12:19:05 +02:00
Merge autoland to mozilla-central. a=merge
This commit is contained in:
commit
171109434c
36 changed files with 166 additions and 34 deletions
20
.eslintrc.js
20
.eslintrc.js
|
|
@ -307,6 +307,26 @@ module.exports = {
|
||||||
"rules": {
|
"rules": {
|
||||||
"no-async-promise-executor": "off",
|
"no-async-promise-executor": "off",
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
"files": [
|
||||||
|
"browser/base/content/test/chrome/test_aboutCrashed.xhtml",
|
||||||
|
"browser/base/content/test/chrome/test_aboutRestartRequired.xhtml",
|
||||||
|
"browser/base/content/test/general/browser_tab_dragdrop2_frame1.xhtml",
|
||||||
|
"browser/components/places/tests/chrome/test_0_bug510634.xhtml",
|
||||||
|
"browser/components/places/tests/chrome/test_bug1163447_selectItems_through_shortcut.xhtml",
|
||||||
|
"browser/components/places/tests/chrome/test_0_bug510634.xhtml",
|
||||||
|
"browser/components/places/tests/chrome/test_bug1163447_selectItems_through_shortcut.xhtml",
|
||||||
|
"browser/components/places/tests/chrome/test_bug549192.xhtml",
|
||||||
|
"browser/components/places/tests/chrome/test_bug549491.xhtml",
|
||||||
|
"browser/components/places/tests/chrome/test_selectItems_on_nested_tree.xhtml",
|
||||||
|
"browser/components/places/tests/chrome/test_treeview_date.xhtml",
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"mozilla/no-arbitrary-setTimeout": "off",
|
||||||
|
"object-shorthand": "off",
|
||||||
|
"no-undef": "off",
|
||||||
|
"no-unused-vars": "off",
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
"files": [
|
"files": [
|
||||||
"toolkit/**",
|
"toolkit/**",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
|
|
||||||
[test_aboutCrashed.xul]
|
[test_aboutCrashed.xhtml]
|
||||||
[test_aboutRestartRequired.xul]
|
[test_aboutRestartRequired.xhtml]
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ support-files =
|
||||||
test_contextmenu_links.html
|
test_contextmenu_links.html
|
||||||
subtst_contextmenu.html
|
subtst_contextmenu.html
|
||||||
subtst_contextmenu_input.html
|
subtst_contextmenu_input.html
|
||||||
subtst_contextmenu_xul.xul
|
subtst_contextmenu_xul.xhtml
|
||||||
ctxmenu-image.png
|
ctxmenu-image.png
|
||||||
../general/head.js
|
../general/head.js
|
||||||
../general/video.ogg
|
../general/video.ogg
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ add_task(async function init() {
|
||||||
|
|
||||||
// Below are test cases for XUL element
|
// Below are test cases for XUL element
|
||||||
add_task(async function test_xul_text_link_label() {
|
add_task(async function test_xul_text_link_label() {
|
||||||
let url = chrome_base + "subtst_contextmenu_xul.xul";
|
let url = chrome_base + "subtst_contextmenu_xul.xhtml";
|
||||||
|
|
||||||
await BrowserTestUtils.openNewForegroundTab({
|
await BrowserTestUtils.openNewForegroundTab({
|
||||||
gBrowser,
|
gBrowser,
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ support-files =
|
||||||
audio.ogg
|
audio.ogg
|
||||||
browser_bug479408_sample.html
|
browser_bug479408_sample.html
|
||||||
browser_star_hsts.sjs
|
browser_star_hsts.sjs
|
||||||
browser_tab_dragdrop2_frame1.xul
|
browser_tab_dragdrop2_frame1.xhtml
|
||||||
browser_tab_dragdrop_embed.html
|
browser_tab_dragdrop_embed.html
|
||||||
browser_web_channel.html
|
browser_web_channel.html
|
||||||
browser_web_channel_iframe.html
|
browser_web_channel_iframe.html
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const ROOT = getRootDirectory(gTestPath);
|
const ROOT = getRootDirectory(gTestPath);
|
||||||
const URI = ROOT + "browser_tab_dragdrop2_frame1.xul";
|
const URI = ROOT + "browser_tab_dragdrop2_frame1.xhtml";
|
||||||
|
|
||||||
// Load the test page (which runs some child popup tests) in a new window.
|
// Load the test page (which runs some child popup tests) in a new window.
|
||||||
// After the tests were run, tear off the tab into a new window and run popup
|
// After the tests were run, tear off the tab into a new window and run popup
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,7 @@ function popupShown(event)
|
||||||
if (waitSteps > 0 && navigator.platform.includes("Linux") &&
|
if (waitSteps > 0 && navigator.platform.includes("Linux") &&
|
||||||
panel.screenY == 210) {
|
panel.screenY == 210) {
|
||||||
waitSteps--;
|
waitSteps--;
|
||||||
|
/* eslint-disable mozilla/no-arbitrary-setTimeout */
|
||||||
setTimeout(popupShown, 10, event);
|
setTimeout(popupShown, 10, event);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -9,6 +9,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.fxaccounts-extra-text {
|
.fxaccounts-extra-text {
|
||||||
|
/* Only show at most 3 lines of text to limit the
|
||||||
|
text from overflowing the header. */
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
color: var(--in-content-deemphasized-text);
|
color: var(--in-content-deemphasized-text);
|
||||||
text-align: end;
|
text-align: end;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
support-files = head.js
|
support-files = head.js
|
||||||
|
|
||||||
[test_0_bug510634.xul]
|
[test_0_bug510634.xhtml]
|
||||||
[test_bug1163447_selectItems_through_shortcut.xul]
|
[test_bug1163447_selectItems_through_shortcut.xhtml]
|
||||||
skip-if = (os == 'win' && processor == 'aarch64') # bug 1532775
|
skip-if = (os == 'win' && processor == 'aarch64') # bug 1532775
|
||||||
[test_bug549192.xul]
|
[test_bug549192.xhtml]
|
||||||
[test_bug549491.xul]
|
[test_bug549491.xhtml]
|
||||||
[test_selectItems_on_nested_tree.xul]
|
[test_selectItems_on_nested_tree.xhtml]
|
||||||
[test_treeview_date.xul]
|
[test_treeview_date.xhtml]
|
||||||
|
|
@ -35,7 +35,7 @@ skip-if = (os == 'win' && (processor == "x86_64" || processor == "aarch64")) # B
|
||||||
[browser_bug1020245_openPreferences_to_paneContent.js]
|
[browser_bug1020245_openPreferences_to_paneContent.js]
|
||||||
[browser_bug1184989_prevent_scrolling_when_preferences_flipped.js]
|
[browser_bug1184989_prevent_scrolling_when_preferences_flipped.js]
|
||||||
support-files =
|
support-files =
|
||||||
browser_bug1184989_prevent_scrolling_when_preferences_flipped.xul
|
browser_bug1184989_prevent_scrolling_when_preferences_flipped.xhtml
|
||||||
[browser_bug1547020_lockedDownloadDir.js]
|
[browser_bug1547020_lockedDownloadDir.js]
|
||||||
[browser_cookie_exceptions_addRemove.js]
|
[browser_cookie_exceptions_addRemove.js]
|
||||||
[browser_cert_export.js]
|
[browser_cert_export.js]
|
||||||
|
|
@ -95,8 +95,8 @@ support-files =
|
||||||
[browser_permissions_dialog.js]
|
[browser_permissions_dialog.js]
|
||||||
[browser_subdialogs.js]
|
[browser_subdialogs.js]
|
||||||
support-files =
|
support-files =
|
||||||
subdialog.xul
|
subdialog.xhtml
|
||||||
subdialog2.xul
|
subdialog2.xhtml
|
||||||
[browser_sync_disabled.js]
|
[browser_sync_disabled.js]
|
||||||
[browser_sync_pairing.js]
|
[browser_sync_pairing.js]
|
||||||
[browser_telemetry.js]
|
[browser_telemetry.js]
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ add_task(async function() {
|
||||||
|
|
||||||
const tabURL =
|
const tabURL =
|
||||||
getRootDirectory(gTestPath) +
|
getRootDirectory(gTestPath) +
|
||||||
"browser_bug1184989_prevent_scrolling_when_preferences_flipped.xul";
|
"browser_bug1184989_prevent_scrolling_when_preferences_flipped.xhtml";
|
||||||
|
|
||||||
await BrowserTestUtils.withNewTab({ gBrowser, url: tabURL }, async function(
|
await BrowserTestUtils.withNewTab({ gBrowser, url: tabURL }, async function(
|
||||||
browser
|
browser
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
* Tests for the sub-dialog infrastructure, not for actual sub-dialog functionality.
|
* Tests for the sub-dialog infrastructure, not for actual sub-dialog functionality.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const gDialogURL = getRootDirectory(gTestPath) + "subdialog.xul";
|
const gDialogURL = getRootDirectory(gTestPath) + "subdialog.xhtml";
|
||||||
const gDialogURL2 = getRootDirectory(gTestPath) + "subdialog2.xul";
|
const gDialogURL2 = getRootDirectory(gTestPath) + "subdialog2.xhtml";
|
||||||
|
|
||||||
function open_subdialog_and_test_generic_start_state(
|
function open_subdialog_and_test_generic_start_state(
|
||||||
browser,
|
browser,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
support-files =
|
support-files =
|
||||||
doc_iframe_typecontent_input_focus.xul
|
doc_iframe_typecontent_input_focus.xhtml
|
||||||
doc_iframe_typecontent_input_focus_frame.html
|
doc_iframe_typecontent_input_focus_frame.html
|
||||||
../head.js
|
../head.js
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
const URL_ROOT =
|
const URL_ROOT =
|
||||||
"chrome://mochitests/content/browser/browser/extensions/formautofill/test/browser/focus-leak/";
|
"chrome://mochitests/content/browser/browser/extensions/formautofill/test/browser/focus-leak/";
|
||||||
|
|
||||||
const XUL_FRAME_URI = URL_ROOT + "doc_iframe_typecontent_input_focus.xul";
|
const XUL_FRAME_URI = URL_ROOT + "doc_iframe_typecontent_input_focus.xhtml";
|
||||||
const INNER_HTML_FRAME_URI =
|
const INNER_HTML_FRAME_URI =
|
||||||
URL_ROOT + "doc_iframe_typecontent_input_focus_frame.html";
|
URL_ROOT + "doc_iframe_typecontent_input_focus_frame.html";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -698,7 +698,8 @@
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.webreplay-player #overlay .tick:hover ~ .tick {
|
.webreplay-player #overlay .tick:hover ~ .tick,
|
||||||
|
.webreplay-player #overlay .tick.highlight ~ .tick:not(.highlight) {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,7 @@ class WebReplayPlayer extends Component {
|
||||||
paused: false,
|
paused: false,
|
||||||
messages: [],
|
messages: [],
|
||||||
highlightedMessage: null,
|
highlightedMessage: null,
|
||||||
|
hoveredMessageOffset: null,
|
||||||
unscannedRegions: [],
|
unscannedRegions: [],
|
||||||
cachedPoints: [],
|
cachedPoints: [],
|
||||||
start: 0,
|
start: 0,
|
||||||
|
|
@ -375,11 +376,16 @@ class WebReplayPlayer extends Component {
|
||||||
this.paint(message.executionPoint);
|
this.paint(message.executionPoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
onMessageMouseEnter(message) {
|
onMessageMouseEnter(message, offset) {
|
||||||
|
this.setState({ hoveredMessageOffset: offset });
|
||||||
this.previewLocation(message);
|
this.previewLocation(message);
|
||||||
this.showMessage(message);
|
this.showMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onMessageMouseLeave() {
|
||||||
|
this.setState({ hoveredMessageOffset: null });
|
||||||
|
}
|
||||||
|
|
||||||
async previewLocation(closestMessage) {
|
async previewLocation(closestMessage) {
|
||||||
const dbg = await this.toolbox.loadTool("jsdebugger");
|
const dbg = await this.toolbox.loadTool("jsdebugger");
|
||||||
dbg.previewPausedLocation(getMessageLocation(closestMessage));
|
dbg.previewPausedLocation(getMessageLocation(closestMessage));
|
||||||
|
|
@ -628,7 +634,8 @@ class WebReplayPlayer extends Component {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
this.seek(message.executionPoint);
|
this.seek(message.executionPoint);
|
||||||
},
|
},
|
||||||
onMouseEnter: () => this.onMessageMouseEnter(message),
|
onMouseEnter: () => this.onMessageMouseEnter(message, offset),
|
||||||
|
onMouseLeave: () => this.onMessageMouseLeave(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -644,15 +651,17 @@ class WebReplayPlayer extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
renderTick(index) {
|
renderTick(index) {
|
||||||
const { executionPoint } = this.state;
|
const { executionPoint, hoveredMessageOffset } = this.state;
|
||||||
const tickSize = this.getTickSize();
|
const tickSize = this.getTickSize();
|
||||||
const offset = Math.round(this.getOffset(executionPoint));
|
const offset = Math.round(this.getOffset(executionPoint));
|
||||||
const position = index * tickSize;
|
const position = index * tickSize;
|
||||||
const isFuture = position > offset;
|
const isFuture = position > offset;
|
||||||
|
const shouldHighlight = hoveredMessageOffset > position;
|
||||||
|
|
||||||
return dom.span({
|
return dom.span({
|
||||||
className: classname("tick", {
|
className: classname("tick", {
|
||||||
future: isFuture,
|
future: isFuture,
|
||||||
|
highlight: shouldHighlight,
|
||||||
}),
|
}),
|
||||||
style: {
|
style: {
|
||||||
left: `${position}px`,
|
left: `${position}px`,
|
||||||
|
|
|
||||||
|
|
@ -1056,6 +1056,67 @@ void CompositorOGL::CreateFBOWithTexture(const gfx::IntRect& aRect,
|
||||||
mGLContext->fGenFramebuffers(1, aFBO);
|
mGLContext->fGenFramebuffers(1, aFBO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Should be called after calls to fReadPixels or fCopyTexImage2D, and other
|
||||||
|
// GL read calls.
|
||||||
|
static void WorkAroundAppleIntelHD3000GraphicsGLDriverBug(GLContext* aGL) {
|
||||||
|
#ifdef XP_MACOSX
|
||||||
|
if (aGL->WorkAroundDriverBugs() &&
|
||||||
|
aGL->Renderer() == GLRenderer::IntelHD3000) {
|
||||||
|
// Work around a bug in the Apple Intel HD Graphics 3000 driver (bug
|
||||||
|
// 1586627, filed with Apple as FB7379358). This bug has been found present
|
||||||
|
// on 10.9.3 and on 10.13.6, so it likely affects all shipped versions of
|
||||||
|
// this driver. (macOS 10.14 does not support this GPU.)
|
||||||
|
// The bug manifests as follows: Reading from a framebuffer puts that
|
||||||
|
// framebuffer into a state such that deleting that framebuffer can break
|
||||||
|
// other framebuffers in certain cases. More specifically, if you have two
|
||||||
|
// framebuffers A and B, the following sequence of events breaks subsequent
|
||||||
|
// drawing to B:
|
||||||
|
// 1. A becomes "most recently read-from framebuffer".
|
||||||
|
// 2. B is drawn to.
|
||||||
|
// 3. A is deleted, and other GL state (such as GL_SCISSOR enabled state)
|
||||||
|
// is touched.
|
||||||
|
// 4. B is drawn to again.
|
||||||
|
// Now all draws to framebuffer B, including the draw from step 4, will
|
||||||
|
// render at the wrong position and upside down.
|
||||||
|
//
|
||||||
|
// When AfterGLReadCall() is called, the currently bound framebuffer is the
|
||||||
|
// framebuffer that has been read from most recently. So in the presence of
|
||||||
|
// this bug, deleting this framebuffer has now become dangerous. We work
|
||||||
|
// around the bug by creating a new short-lived framebuffer, making that new
|
||||||
|
// framebuffer the most recently read-from framebuffer (using
|
||||||
|
// glCopyTexImage2D), and then deleting it under controlled circumstances.
|
||||||
|
// This deletion is not affected by the bug because our deletion call is not
|
||||||
|
// interleaved with draw calls to another framebuffer and a touching of the
|
||||||
|
// GL scissor enabled state.
|
||||||
|
|
||||||
|
ScopedTexture texForReading(aGL);
|
||||||
|
{
|
||||||
|
// Initialize a 1x1 texture.
|
||||||
|
ScopedBindTexture autoBindTexForReading(aGL, texForReading);
|
||||||
|
aGL->fTexImage2D(LOCAL_GL_TEXTURE_2D, 0, LOCAL_GL_RGBA, 1, 1, 0,
|
||||||
|
LOCAL_GL_RGBA, LOCAL_GL_UNSIGNED_BYTE, nullptr);
|
||||||
|
aGL->fTexParameteri(LOCAL_GL_TEXTURE_2D, LOCAL_GL_TEXTURE_MIN_FILTER,
|
||||||
|
LOCAL_GL_LINEAR);
|
||||||
|
aGL->fTexParameteri(LOCAL_GL_TEXTURE_2D, LOCAL_GL_TEXTURE_MAG_FILTER,
|
||||||
|
LOCAL_GL_LINEAR);
|
||||||
|
}
|
||||||
|
// Make a framebuffer around the texture.
|
||||||
|
ScopedFramebufferForTexture autoFBForReading(aGL, texForReading);
|
||||||
|
if (autoFBForReading.IsComplete()) {
|
||||||
|
// "Read" from the framebuffer, by initializing a new texture using
|
||||||
|
// glCopyTexImage2D. This flips the bad bit on autoFBForReading.FB().
|
||||||
|
ScopedBindFramebuffer autoFB(aGL, autoFBForReading.FB());
|
||||||
|
ScopedTexture texReadingDest(aGL);
|
||||||
|
ScopedBindTexture autoBindTexReadingDest(aGL, texReadingDest);
|
||||||
|
aGL->fCopyTexImage2D(LOCAL_GL_TEXTURE_2D, 0, LOCAL_GL_RGBA, 0, 0, 1, 1,
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
// When autoFBForReading goes out of scope, the "poisoned" framebuffer is
|
||||||
|
// deleted, and the bad state seems to go away along with it.
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
GLuint CompositorOGL::CreateTexture(const IntRect& aRect, bool aCopyFromSource,
|
GLuint CompositorOGL::CreateTexture(const IntRect& aRect, bool aCopyFromSource,
|
||||||
GLuint aSourceFrameBuffer,
|
GLuint aSourceFrameBuffer,
|
||||||
IntSize* aAllocSize) {
|
IntSize* aAllocSize) {
|
||||||
|
|
@ -1100,6 +1161,7 @@ GLuint CompositorOGL::CreateTexture(const IntRect& aRect, bool aCopyFromSource,
|
||||||
mGLContext->fCopyTexImage2D(mFBOTextureTarget, 0, LOCAL_GL_RGBA,
|
mGLContext->fCopyTexImage2D(mFBOTextureTarget, 0, LOCAL_GL_RGBA,
|
||||||
clampedRect.X(), FlipY(clampedRect.YMost()),
|
clampedRect.X(), FlipY(clampedRect.YMost()),
|
||||||
clampedRectWidth, clampedRectHeight, 0);
|
clampedRectWidth, clampedRectHeight, 0);
|
||||||
|
WorkAroundAppleIntelHD3000GraphicsGLDriverBug(mGLContext);
|
||||||
} else {
|
} else {
|
||||||
// Curses, incompatible formats. Take a slow path.
|
// Curses, incompatible formats. Take a slow path.
|
||||||
|
|
||||||
|
|
@ -1110,6 +1172,7 @@ GLuint CompositorOGL::CreateTexture(const IntRect& aRect, bool aCopyFromSource,
|
||||||
mGLContext->fReadPixels(clampedRect.X(), clampedRect.Y(),
|
mGLContext->fReadPixels(clampedRect.X(), clampedRect.Y(),
|
||||||
clampedRectWidth, clampedRectHeight,
|
clampedRectWidth, clampedRectHeight,
|
||||||
LOCAL_GL_RGBA, LOCAL_GL_UNSIGNED_BYTE, buf.get());
|
LOCAL_GL_RGBA, LOCAL_GL_UNSIGNED_BYTE, buf.get());
|
||||||
|
WorkAroundAppleIntelHD3000GraphicsGLDriverBug(mGLContext);
|
||||||
mGLContext->fTexImage2D(mFBOTextureTarget, 0, LOCAL_GL_RGBA,
|
mGLContext->fTexImage2D(mFBOTextureTarget, 0, LOCAL_GL_RGBA,
|
||||||
clampedRectWidth, clampedRectHeight, 0,
|
clampedRectWidth, clampedRectHeight, 0,
|
||||||
LOCAL_GL_RGBA, LOCAL_GL_UNSIGNED_BYTE, buf.get());
|
LOCAL_GL_RGBA, LOCAL_GL_UNSIGNED_BYTE, buf.get());
|
||||||
|
|
|
||||||
22
layout/generic/crashtests/1582019.html
Normal file
22
layout/generic/crashtests/1582019.html
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
<style>
|
||||||
|
.x {
|
||||||
|
font-family: serif;
|
||||||
|
max-width: 0vmin;
|
||||||
|
top: 1vh
|
||||||
|
}
|
||||||
|
* {
|
||||||
|
border-right: blue 1px solid;
|
||||||
|
column-count: 9;
|
||||||
|
}
|
||||||
|
#a {
|
||||||
|
column-span: all;
|
||||||
|
}
|
||||||
|
#b {
|
||||||
|
position: relative;
|
||||||
|
</style>
|
||||||
|
<h6 id="a">C</h6>
|
||||||
|
<l>q
|
||||||
|
p f
|
||||||
|
<pre id="b" wrap>
|
||||||
|
<dialog style="word-break:break-all" open class="x">Cp</pre>
|
||||||
|
<q>6/N_s/"eve"
|
||||||
|
|
@ -755,4 +755,5 @@ pref(layout.css.column-span.enabled,true) load 1572901.html
|
||||||
pref(layout.css.column-span.enabled,true) load 1573216.html
|
pref(layout.css.column-span.enabled,true) load 1573216.html
|
||||||
load 1574552.html
|
load 1574552.html
|
||||||
pref(layout.css.column-span.enabled,true) load 1574993.html
|
pref(layout.css.column-span.enabled,true) load 1574993.html
|
||||||
|
pref(layout.css.column-span.enabled,true) load 1582019.html
|
||||||
load 1586470.html
|
load 1586470.html
|
||||||
|
|
|
||||||
|
|
@ -727,16 +727,23 @@ void nsAbsoluteContainingBlock::ReflowAbsoluteFrame(
|
||||||
|
|
||||||
bool constrainBSize =
|
bool constrainBSize =
|
||||||
(aReflowInput.AvailableBSize() != NS_UNCONSTRAINEDSIZE) &&
|
(aReflowInput.AvailableBSize() != NS_UNCONSTRAINEDSIZE) &&
|
||||||
(aFlags & AbsPosReflowFlags::ConstrainHeight) &&
|
|
||||||
// Don't split if told not to (e.g. for fixed frames)
|
// Don't split if told not to (e.g. for fixed frames)
|
||||||
!aDelegatingFrame->IsInlineFrame() &&
|
(aFlags & AbsPosReflowFlags::ConstrainHeight) &&
|
||||||
|
|
||||||
// XXX we don't handle splitting frames for inline absolute containing
|
// XXX we don't handle splitting frames for inline absolute containing
|
||||||
// blocks yet
|
// blocks yet
|
||||||
(aKidFrame->GetLogicalRect(aContainingBlock.Size()).BStart(wm) <=
|
!aDelegatingFrame->IsInlineFrame() &&
|
||||||
aReflowInput.AvailableBSize());
|
|
||||||
|
// Bug 1588623: Support splitting absolute positioned multicol containers.
|
||||||
|
!aKidFrame->IsColumnSetWrapperFrame() &&
|
||||||
|
|
||||||
// Don't split things below the fold. (Ideally we shouldn't *have*
|
// Don't split things below the fold. (Ideally we shouldn't *have*
|
||||||
// anything totally below the fold, but we can't position frames
|
// anything totally below the fold, but we can't position frames
|
||||||
// across next-in-flow breaks yet.
|
// across next-in-flow breaks yet.
|
||||||
|
(aKidFrame->GetLogicalRect(aContainingBlock.Size()).BStart(wm) <=
|
||||||
|
aReflowInput.AvailableBSize());
|
||||||
|
|
||||||
if (constrainBSize) {
|
if (constrainBSize) {
|
||||||
kidReflowInput.AvailableBSize() =
|
kidReflowInput.AvailableBSize() =
|
||||||
aReflowInput.AvailableBSize() -
|
aReflowInput.AvailableBSize() -
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ job-defaults:
|
||||||
tier: 2
|
tier: 2
|
||||||
worker-type:
|
worker-type:
|
||||||
by-release-level:
|
by-release-level:
|
||||||
production: scriptworker-prov-v1/pushsnap-v1
|
production: scriptworker-k8s/gecko-3-pushsnap
|
||||||
staging: scriptworker-prov-v1/dep-pushsnap
|
staging: scriptworker-k8s/gecko-1-pushsnap
|
||||||
worker:
|
worker:
|
||||||
implementation: push-snap
|
implementation: push-snap
|
||||||
channel:
|
channel:
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ job-defaults:
|
||||||
tier: 2
|
tier: 2
|
||||||
worker-type:
|
worker-type:
|
||||||
by-release-level:
|
by-release-level:
|
||||||
production: scriptworker-prov-v1/pushsnap-v1
|
production: scriptworker-k8s/gecko-3-pushsnap
|
||||||
staging: scriptworker-prov-v1/dep-pushsnap
|
staging: scriptworker-k8s/gecko-1-pushsnap
|
||||||
worker:
|
worker:
|
||||||
implementation: push-snap
|
implementation: push-snap
|
||||||
channel:
|
channel:
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template id="info-item-template">
|
<template id="info-item-template">
|
||||||
|
<link rel="stylesheet" href="chrome://global/skin/in-content/common.css">
|
||||||
<link rel="stylesheet" href="chrome://global/content/certviewer/components/info-item.css">
|
<link rel="stylesheet" href="chrome://global/content/certviewer/components/info-item.css">
|
||||||
<label></label>
|
<label></label>
|
||||||
<span class="info"></span>
|
<span class="info"></span>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue