зеркало из https://github.com/mozilla/gecko-dev.git
Merge autoland to mozilla-central. a=merge
This commit is contained in:
Коммит
171109434c
22
.eslintrc.js
22
.eslintrc.js
|
@ -307,7 +307,27 @@ module.exports = {
|
|||
"rules": {
|
||||
"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": [
|
||||
"toolkit/**",
|
||||
"browser/**",
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[DEFAULT]
|
||||
|
||||
[test_aboutCrashed.xul]
|
||||
[test_aboutRestartRequired.xul]
|
||||
[test_aboutCrashed.xhtml]
|
||||
[test_aboutRestartRequired.xhtml]
|
||||
|
|
|
@ -6,7 +6,7 @@ support-files =
|
|||
test_contextmenu_links.html
|
||||
subtst_contextmenu.html
|
||||
subtst_contextmenu_input.html
|
||||
subtst_contextmenu_xul.xul
|
||||
subtst_contextmenu_xul.xhtml
|
||||
ctxmenu-image.png
|
||||
../general/head.js
|
||||
../general/video.ogg
|
||||
|
|
|
@ -56,7 +56,7 @@ add_task(async function init() {
|
|||
|
||||
// Below are test cases for XUL element
|
||||
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({
|
||||
gBrowser,
|
||||
|
|
|
@ -15,7 +15,7 @@ support-files =
|
|||
audio.ogg
|
||||
browser_bug479408_sample.html
|
||||
browser_star_hsts.sjs
|
||||
browser_tab_dragdrop2_frame1.xul
|
||||
browser_tab_dragdrop2_frame1.xhtml
|
||||
browser_tab_dragdrop_embed.html
|
||||
browser_web_channel.html
|
||||
browser_web_channel_iframe.html
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
|
||||
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.
|
||||
// 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") &&
|
||||
panel.screenY == 210) {
|
||||
waitSteps--;
|
||||
/* eslint-disable mozilla/no-arbitrary-setTimeout */
|
||||
setTimeout(popupShown, 10, event);
|
||||
return;
|
||||
}
|
|
@ -9,6 +9,13 @@
|
|||
}
|
||||
|
||||
.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);
|
||||
text-align: end;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
[DEFAULT]
|
||||
support-files = head.js
|
||||
|
||||
[test_0_bug510634.xul]
|
||||
[test_bug1163447_selectItems_through_shortcut.xul]
|
||||
[test_0_bug510634.xhtml]
|
||||
[test_bug1163447_selectItems_through_shortcut.xhtml]
|
||||
skip-if = (os == 'win' && processor == 'aarch64') # bug 1532775
|
||||
[test_bug549192.xul]
|
||||
[test_bug549491.xul]
|
||||
[test_selectItems_on_nested_tree.xul]
|
||||
[test_treeview_date.xul]
|
||||
[test_bug549192.xhtml]
|
||||
[test_bug549491.xhtml]
|
||||
[test_selectItems_on_nested_tree.xhtml]
|
||||
[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_bug1184989_prevent_scrolling_when_preferences_flipped.js]
|
||||
support-files =
|
||||
browser_bug1184989_prevent_scrolling_when_preferences_flipped.xul
|
||||
browser_bug1184989_prevent_scrolling_when_preferences_flipped.xhtml
|
||||
[browser_bug1547020_lockedDownloadDir.js]
|
||||
[browser_cookie_exceptions_addRemove.js]
|
||||
[browser_cert_export.js]
|
||||
|
@ -95,8 +95,8 @@ support-files =
|
|||
[browser_permissions_dialog.js]
|
||||
[browser_subdialogs.js]
|
||||
support-files =
|
||||
subdialog.xul
|
||||
subdialog2.xul
|
||||
subdialog.xhtml
|
||||
subdialog2.xhtml
|
||||
[browser_sync_disabled.js]
|
||||
[browser_sync_pairing.js]
|
||||
[browser_telemetry.js]
|
||||
|
|
|
@ -8,7 +8,7 @@ add_task(async function() {
|
|||
|
||||
const tabURL =
|
||||
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(
|
||||
browser
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
* Tests for the sub-dialog infrastructure, not for actual sub-dialog functionality.
|
||||
*/
|
||||
|
||||
const gDialogURL = getRootDirectory(gTestPath) + "subdialog.xul";
|
||||
const gDialogURL2 = getRootDirectory(gTestPath) + "subdialog2.xul";
|
||||
const gDialogURL = getRootDirectory(gTestPath) + "subdialog.xhtml";
|
||||
const gDialogURL2 = getRootDirectory(gTestPath) + "subdialog2.xhtml";
|
||||
|
||||
function open_subdialog_and_test_generic_start_state(
|
||||
browser,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[DEFAULT]
|
||||
support-files =
|
||||
doc_iframe_typecontent_input_focus.xul
|
||||
doc_iframe_typecontent_input_focus.xhtml
|
||||
doc_iframe_typecontent_input_focus_frame.html
|
||||
../head.js
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
const URL_ROOT =
|
||||
"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 =
|
||||
URL_ROOT + "doc_iframe_typecontent_input_focus_frame.html";
|
||||
|
||||
|
|
|
@ -698,7 +698,8 @@
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -134,6 +134,7 @@ class WebReplayPlayer extends Component {
|
|||
paused: false,
|
||||
messages: [],
|
||||
highlightedMessage: null,
|
||||
hoveredMessageOffset: null,
|
||||
unscannedRegions: [],
|
||||
cachedPoints: [],
|
||||
start: 0,
|
||||
|
@ -375,11 +376,16 @@ class WebReplayPlayer extends Component {
|
|||
this.paint(message.executionPoint);
|
||||
}
|
||||
|
||||
onMessageMouseEnter(message) {
|
||||
onMessageMouseEnter(message, offset) {
|
||||
this.setState({ hoveredMessageOffset: offset });
|
||||
this.previewLocation(message);
|
||||
this.showMessage(message);
|
||||
}
|
||||
|
||||
onMessageMouseLeave() {
|
||||
this.setState({ hoveredMessageOffset: null });
|
||||
}
|
||||
|
||||
async previewLocation(closestMessage) {
|
||||
const dbg = await this.toolbox.loadTool("jsdebugger");
|
||||
dbg.previewPausedLocation(getMessageLocation(closestMessage));
|
||||
|
@ -628,7 +634,8 @@ class WebReplayPlayer extends Component {
|
|||
e.stopPropagation();
|
||||
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) {
|
||||
const { executionPoint } = this.state;
|
||||
const { executionPoint, hoveredMessageOffset } = this.state;
|
||||
const tickSize = this.getTickSize();
|
||||
const offset = Math.round(this.getOffset(executionPoint));
|
||||
const position = index * tickSize;
|
||||
const isFuture = position > offset;
|
||||
const shouldHighlight = hoveredMessageOffset > position;
|
||||
|
||||
return dom.span({
|
||||
className: classname("tick", {
|
||||
future: isFuture,
|
||||
highlight: shouldHighlight,
|
||||
}),
|
||||
style: {
|
||||
left: `${position}px`,
|
||||
|
|
|
@ -1056,6 +1056,67 @@ void CompositorOGL::CreateFBOWithTexture(const gfx::IntRect& aRect,
|
|||
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 aSourceFrameBuffer,
|
||||
IntSize* aAllocSize) {
|
||||
|
@ -1100,6 +1161,7 @@ GLuint CompositorOGL::CreateTexture(const IntRect& aRect, bool aCopyFromSource,
|
|||
mGLContext->fCopyTexImage2D(mFBOTextureTarget, 0, LOCAL_GL_RGBA,
|
||||
clampedRect.X(), FlipY(clampedRect.YMost()),
|
||||
clampedRectWidth, clampedRectHeight, 0);
|
||||
WorkAroundAppleIntelHD3000GraphicsGLDriverBug(mGLContext);
|
||||
} else {
|
||||
// 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(),
|
||||
clampedRectWidth, clampedRectHeight,
|
||||
LOCAL_GL_RGBA, LOCAL_GL_UNSIGNED_BYTE, buf.get());
|
||||
WorkAroundAppleIntelHD3000GraphicsGLDriverBug(mGLContext);
|
||||
mGLContext->fTexImage2D(mFBOTextureTarget, 0, LOCAL_GL_RGBA,
|
||||
clampedRectWidth, clampedRectHeight, 0,
|
||||
LOCAL_GL_RGBA, LOCAL_GL_UNSIGNED_BYTE, buf.get());
|
||||
|
|
|
@ -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
|
||||
load 1574552.html
|
||||
pref(layout.css.column-span.enabled,true) load 1574993.html
|
||||
pref(layout.css.column-span.enabled,true) load 1582019.html
|
||||
load 1586470.html
|
||||
|
|
|
@ -727,16 +727,23 @@ void nsAbsoluteContainingBlock::ReflowAbsoluteFrame(
|
|||
|
||||
bool constrainBSize =
|
||||
(aReflowInput.AvailableBSize() != NS_UNCONSTRAINEDSIZE) &&
|
||||
(aFlags & AbsPosReflowFlags::ConstrainHeight) &&
|
||||
|
||||
// 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
|
||||
// blocks yet
|
||||
!aDelegatingFrame->IsInlineFrame() &&
|
||||
|
||||
// Bug 1588623: Support splitting absolute positioned multicol containers.
|
||||
!aKidFrame->IsColumnSetWrapperFrame() &&
|
||||
|
||||
// Don't split things below the fold. (Ideally we shouldn't *have*
|
||||
// anything totally below the fold, but we can't position frames
|
||||
// across next-in-flow breaks yet.
|
||||
(aKidFrame->GetLogicalRect(aContainingBlock.Size()).BStart(wm) <=
|
||||
aReflowInput.AvailableBSize());
|
||||
// Don't split things below the fold. (Ideally we shouldn't *have*
|
||||
// anything totally below the fold, but we can't position frames
|
||||
// across next-in-flow breaks yet.
|
||||
|
||||
if (constrainBSize) {
|
||||
kidReflowInput.AvailableBSize() =
|
||||
aReflowInput.AvailableBSize() -
|
||||
|
|
|
@ -22,8 +22,8 @@ job-defaults:
|
|||
tier: 2
|
||||
worker-type:
|
||||
by-release-level:
|
||||
production: scriptworker-prov-v1/pushsnap-v1
|
||||
staging: scriptworker-prov-v1/dep-pushsnap
|
||||
production: scriptworker-k8s/gecko-3-pushsnap
|
||||
staging: scriptworker-k8s/gecko-1-pushsnap
|
||||
worker:
|
||||
implementation: push-snap
|
||||
channel:
|
||||
|
|
|
@ -22,8 +22,8 @@ job-defaults:
|
|||
tier: 2
|
||||
worker-type:
|
||||
by-release-level:
|
||||
production: scriptworker-prov-v1/pushsnap-v1
|
||||
staging: scriptworker-prov-v1/dep-pushsnap
|
||||
production: scriptworker-k8s/gecko-3-pushsnap
|
||||
staging: scriptworker-k8s/gecko-1-pushsnap
|
||||
worker:
|
||||
implementation: push-snap
|
||||
channel:
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
</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">
|
||||
<label></label>
|
||||
<span class="info"></span>
|
||||
|
|
Загрузка…
Ссылка в новой задаче