Merge mozilla-central to autoland. a=merge on a CLOSED TREE
|
@ -1,5 +1,5 @@
|
|||
This is the PDF.js project output, https://github.com/mozilla/pdf.js
|
||||
|
||||
Current extension version is: 2.0.491
|
||||
Current extension version is: 2.0.506
|
||||
|
||||
Taken from upstream commit: 2dc4af52
|
||||
Taken from upstream commit: b7a3a5e7
|
||||
|
|
|
@ -37,5 +37,7 @@ var PdfJsDefaultPreferences = Object.freeze({
|
|||
"renderInteractiveForms": false,
|
||||
"enablePrintAutoRotate": false,
|
||||
"disablePageMode": false,
|
||||
"disablePageLabels": false
|
||||
"disablePageLabels": false,
|
||||
"scrollModeOnLoad": 0,
|
||||
"spreadModeOnLoad": 0
|
||||
});
|
||||
|
|
|
@ -1650,8 +1650,8 @@ exports.GlobalWorkerOptions = GlobalWorkerOptions;
|
|||
"use strict";
|
||||
|
||||
|
||||
var pdfjsVersion = '2.0.491';
|
||||
var pdfjsBuild = '2dc4af52';
|
||||
var pdfjsVersion = '2.0.506';
|
||||
var pdfjsBuild = 'b7a3a5e7';
|
||||
var pdfjsSharedUtil = __w_pdfjs_require__(0);
|
||||
var pdfjsDisplayAPI = __w_pdfjs_require__(9);
|
||||
var pdfjsDisplayTextLayer = __w_pdfjs_require__(17);
|
||||
|
@ -4929,7 +4929,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
|
|||
}
|
||||
return worker.messageHandler.sendWithPromise('GetDocRequest', {
|
||||
docId,
|
||||
apiVersion: '2.0.491',
|
||||
apiVersion: '2.0.506',
|
||||
source: {
|
||||
data: source.data,
|
||||
url: source.url,
|
||||
|
@ -6252,8 +6252,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() {
|
|||
}();
|
||||
var version, build;
|
||||
{
|
||||
exports.version = version = '2.0.491';
|
||||
exports.build = build = '2dc4af52';
|
||||
exports.version = version = '2.0.506';
|
||||
exports.build = build = 'b7a3a5e7';
|
||||
}
|
||||
exports.getDocument = getDocument;
|
||||
exports.LoopbackPort = LoopbackPort;
|
||||
|
|
|
@ -21103,8 +21103,8 @@ exports.PostScriptCompiler = PostScriptCompiler;
|
|||
"use strict";
|
||||
|
||||
|
||||
var pdfjsVersion = '2.0.491';
|
||||
var pdfjsBuild = '2dc4af52';
|
||||
var pdfjsVersion = '2.0.506';
|
||||
var pdfjsBuild = 'b7a3a5e7';
|
||||
var pdfjsCoreWorker = __w_pdfjs_require__(20);
|
||||
exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;
|
||||
|
||||
|
@ -21305,7 +21305,7 @@ var WorkerMessageHandler = {
|
|||
var cancelXHRs = null;
|
||||
var WorkerTasks = [];
|
||||
let apiVersion = docParams.apiVersion;
|
||||
let workerVersion = '2.0.491';
|
||||
let workerVersion = '2.0.506';
|
||||
if (apiVersion !== null && apiVersion !== workerVersion) {
|
||||
throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`);
|
||||
}
|
||||
|
|
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-scrollHorizontal.png
Normal file
После Ширина: | Высота: | Размер: 218 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-scrollHorizontal@2x.png
Normal file
После Ширина: | Высота: | Размер: 332 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-scrollVertical.png
Normal file
После Ширина: | Высота: | Размер: 228 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-scrollVertical@2x.png
Normal file
После Ширина: | Высота: | Размер: 349 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-scrollWrapped.png
Normal file
После Ширина: | Высота: | Размер: 297 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-scrollWrapped@2x.png
Normal file
После Ширина: | Высота: | Размер: 490 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-spreadEven.png
Normal file
После Ширина: | Высота: | Размер: 347 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-spreadEven@2x.png
Normal file
После Ширина: | Высота: | Размер: 694 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-spreadNone.png
Normal file
После Ширина: | Высота: | Размер: 179 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-spreadNone@2x.png
Normal file
После Ширина: | Высота: | Размер: 261 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-spreadOdd.png
Normal file
После Ширина: | Высота: | Размер: 344 B |
Двоичные данные
browser/extensions/pdfjs/content/web/images/secondaryToolbarButton-spreadOdd@2x.png
Normal file
После Ширина: | Высота: | Размер: 621 B |
|
@ -290,6 +290,46 @@
|
|||
border: none;
|
||||
}
|
||||
|
||||
.pdfViewer.scrollHorizontal, .pdfViewer.scrollWrapped, .spread {
|
||||
margin-left: 3.5px;
|
||||
margin-right: 3.5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.pdfViewer.scrollHorizontal, .spread {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.pdfViewer.removePageBorders,
|
||||
.pdfViewer.scrollHorizontal .spread,
|
||||
.pdfViewer.scrollWrapped .spread {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.spread .page,
|
||||
.pdfViewer.scrollHorizontal .page,
|
||||
.pdfViewer.scrollWrapped .page,
|
||||
.pdfViewer.scrollHorizontal .spread,
|
||||
.pdfViewer.scrollWrapped .spread {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.spread .page,
|
||||
.pdfViewer.scrollHorizontal .page,
|
||||
.pdfViewer.scrollWrapped .page {
|
||||
margin-left: -3.5px;
|
||||
margin-right: -3.5px;
|
||||
}
|
||||
|
||||
.pdfViewer.removePageBorders .spread .page,
|
||||
.pdfViewer.removePageBorders.scrollHorizontal .page,
|
||||
.pdfViewer.removePageBorders.scrollWrapped .page {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.pdfViewer .page canvas {
|
||||
margin: 0;
|
||||
display: block;
|
||||
|
@ -309,6 +349,22 @@
|
|||
background: url('images/loading-icon.gif') center no-repeat;
|
||||
}
|
||||
|
||||
.pdfPresentationMode .pdfViewer {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.pdfPresentationMode .pdfViewer .page,
|
||||
.pdfPresentationMode .pdfViewer .spread {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pdfPresentationMode .pdfViewer .page,
|
||||
.pdfPresentationMode .pdfViewer.removePageBorders .page {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.pdfPresentationMode:-moz-full-screen .pdfViewer .page {
|
||||
margin-bottom: 100%;
|
||||
border: 0;
|
||||
|
@ -1279,6 +1335,30 @@ html[dir="rtl"] .secondaryToolbarButton > span {
|
|||
content: url(images/secondaryToolbarButton-handTool.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.scrollVertical::before {
|
||||
content: url(images/secondaryToolbarButton-scrollVertical.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.scrollHorizontal::before {
|
||||
content: url(images/secondaryToolbarButton-scrollHorizontal.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.scrollWrapped::before {
|
||||
content: url(images/secondaryToolbarButton-scrollWrapped.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.spreadNone::before {
|
||||
content: url(images/secondaryToolbarButton-spreadNone.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.spreadOdd::before {
|
||||
content: url(images/secondaryToolbarButton-spreadOdd.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.spreadEven::before {
|
||||
content: url(images/secondaryToolbarButton-spreadEven.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.documentProperties::before {
|
||||
content: url(images/secondaryToolbarButton-documentProperties.png);
|
||||
}
|
||||
|
@ -1996,6 +2076,30 @@ html[dir='rtl'] #documentPropertiesOverlay .row > * {
|
|||
content: url(images/secondaryToolbarButton-handTool@2x.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.scrollVertical::before {
|
||||
content: url(images/secondaryToolbarButton-scrollVertical@2x.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.scrollHorizontal::before {
|
||||
content: url(images/secondaryToolbarButton-scrollHorizontal@2x.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.scrollWrapped::before {
|
||||
content: url(images/secondaryToolbarButton-scrollWrapped@2x.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.spreadNone::before {
|
||||
content: url(images/secondaryToolbarButton-spreadNone@2x.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.spreadOdd::before {
|
||||
content: url(images/secondaryToolbarButton-spreadOdd@2x.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.spreadEven::before {
|
||||
content: url(images/secondaryToolbarButton-spreadEven@2x.png);
|
||||
}
|
||||
|
||||
.secondaryToolbarButton.documentProperties::before {
|
||||
content: url(images/secondaryToolbarButton-documentProperties@2x.png);
|
||||
}
|
||||
|
|
|
@ -146,7 +146,31 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||
|
||||
<div class="horizontalToolbarSeparator"></div>
|
||||
|
||||
<button id="documentProperties" class="secondaryToolbarButton documentProperties" title="Document Properties…" tabindex="62" data-l10n-id="document_properties">
|
||||
<button id="scrollVertical" class="secondaryToolbarButton scrollVertical toggled" title="Use Vertical Scrolling" tabindex="62" data-l10n-id="scroll_vertical">
|
||||
<span data-l10n-id="scroll_vertical_label">Vertical Scrolling</span>
|
||||
</button>
|
||||
<button id="scrollHorizontal" class="secondaryToolbarButton scrollHorizontal" title="Use Horizontal Scrolling" tabindex="63" data-l10n-id="scroll_horizontal">
|
||||
<span data-l10n-id="scroll_horizontal_label">Horizontal Scrolling</span>
|
||||
</button>
|
||||
<button id="scrollWrapped" class="secondaryToolbarButton scrollWrapped" title="Use Wrapped Scrolling" tabindex="64" data-l10n-id="scroll_wrapped">
|
||||
<span data-l10n-id="scroll_wrapped_label">Wrapped Scrolling</span>
|
||||
</button>
|
||||
|
||||
<div class="horizontalToolbarSeparator"></div>
|
||||
|
||||
<button id="spreadNone" class="secondaryToolbarButton spreadNone toggled" title="Do not join page spreads" tabindex="65" data-l10n-id="spread_none">
|
||||
<span data-l10n-id="spread_none_label">No Spreads</span>
|
||||
</button>
|
||||
<button id="spreadOdd" class="secondaryToolbarButton spreadOdd" title="Join page spreads starting with odd-numbered pages" tabindex="66" data-l10n-id="spread_odd">
|
||||
<span data-l10n-id="spread_odd_label">Odd Spreads</span>
|
||||
</button>
|
||||
<button id="spreadEven" class="secondaryToolbarButton spreadEven" title="Join page spreads starting with even-numbered pages" tabindex="67" data-l10n-id="spread_even">
|
||||
<span data-l10n-id="spread_even_label">Even Spreads</span>
|
||||
</button>
|
||||
|
||||
<div class="horizontalToolbarSeparator"></div>
|
||||
|
||||
<button id="documentProperties" class="secondaryToolbarButton documentProperties" title="Document Properties…" tabindex="68" data-l10n-id="document_properties">
|
||||
<span data-l10n-id="document_properties_label">Document Properties…</span>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -65,6 +65,20 @@ cursor_text_select_tool_label=Text Selection Tool
|
|||
cursor_hand_tool.title=Enable Hand Tool
|
||||
cursor_hand_tool_label=Hand Tool
|
||||
|
||||
scroll_vertical.title=Use Vertical Scrolling
|
||||
scroll_vertical_label=Vertical Scrolling
|
||||
scroll_horizontal.title=Use Horizontal Scrolling
|
||||
scroll_horizontal_label=Horizontal Scrolling
|
||||
scroll_wrapped.title=Use Wrapped Scrolling
|
||||
scroll_wrapped_label=Wrapped Scrolling
|
||||
|
||||
spread_none.title=Do not join page spreads
|
||||
spread_none_label=No Spreads
|
||||
spread_odd.title=Join page spreads starting with odd-numbered pages
|
||||
spread_odd_label=Odd Spreads
|
||||
spread_even.title=Join page spreads starting with even-numbered pages
|
||||
spread_even_label=Even Spreads
|
||||
|
||||
# Document properties dialog box
|
||||
document_properties.title=Document Properties…
|
||||
document_properties_label=Document Properties…
|
||||
|
|
|
@ -345,15 +345,6 @@ gfxWindowsPlatform::InitAcceleration()
|
|||
{
|
||||
gfxPlatform::InitAcceleration();
|
||||
|
||||
// Set up the D3D11 feature levels we can ask for.
|
||||
if (IsWin8OrLater()) {
|
||||
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_11_1);
|
||||
}
|
||||
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_11_0);
|
||||
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_10_1);
|
||||
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_10_0);
|
||||
mFeatureLevels.AppendElement(D3D_FEATURE_LEVEL_9_3);
|
||||
|
||||
DeviceManagerDx::Init();
|
||||
|
||||
InitializeConfig();
|
||||
|
|
|
@ -265,8 +265,6 @@ private:
|
|||
DWRITE_MEASURING_MODE mMeasuringMode;
|
||||
|
||||
RefPtr<mozilla::layers::ReadbackManagerD3D11> mD3D11ReadbackManager;
|
||||
|
||||
nsTArray<D3D_FEATURE_LEVEL> mFeatureLevels;
|
||||
};
|
||||
|
||||
#endif /* GFX_WINDOWS_PLATFORM_H */
|
||||
|
|
|
@ -1962,9 +1962,6 @@ class MOZ_STACK_CLASS IfThenElseEmitter
|
|||
JumpList jumpAroundThen_;
|
||||
JumpList jumpsAroundElse_;
|
||||
|
||||
// The source note index for SRC_IF, SRC_IF_ELSE, or SRC_COND.
|
||||
unsigned noteIndex_;
|
||||
|
||||
// The stack depth before emitting the then block.
|
||||
// Used for restoring stack depth before emitting the else block.
|
||||
// Also used for assertion to make sure then and else blocks pushed the
|
||||
|
@ -2014,7 +2011,6 @@ class MOZ_STACK_CLASS IfThenElseEmitter
|
|||
public:
|
||||
explicit IfThenElseEmitter(BytecodeEmitter* bce)
|
||||
: bce_(bce),
|
||||
noteIndex_(-1),
|
||||
thenDepth_(0),
|
||||
#ifdef DEBUG
|
||||
pushed_(0),
|
||||
|
@ -2037,7 +2033,7 @@ class MOZ_STACK_CLASS IfThenElseEmitter
|
|||
|
||||
// Emit an annotated branch-if-false around the then part.
|
||||
SrcNoteType type = nextState == If ? SRC_IF : nextState == IfElse ? SRC_IF_ELSE : SRC_COND;
|
||||
if (!bce_->newSrcNote(type, ¬eIndex_))
|
||||
if (!bce_->newSrcNote(type))
|
||||
return false;
|
||||
if (!bce_->emitJump(JSOP_IFEQ, &jumpAroundThen_))
|
||||
return false;
|
||||
|
@ -2093,17 +2089,6 @@ class MOZ_STACK_CLASS IfThenElseEmitter
|
|||
if (!bce_->emitJumpTargetAndPatch(jumpAroundThen_))
|
||||
return false;
|
||||
|
||||
// Annotate SRC_IF_ELSE or SRC_COND with the offset from branch to
|
||||
// jump, for IonMonkey's benefit. We can't just "back up" from the pc
|
||||
// of the else clause, because we don't know whether an extended
|
||||
// jump was required to leap from the end of the then clause over
|
||||
// the else clause.
|
||||
if (!bce_->setSrcNoteOffset(noteIndex_, 0,
|
||||
jumpsAroundElse_.offset - jumpAroundThen_.offset))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Restore stack depth of the then part.
|
||||
bce_->stackDepth = thenDepth_;
|
||||
state_ = Else;
|
||||
|
|
|
@ -37,8 +37,8 @@ namespace js {
|
|||
#define FOR_EACH_SRC_NOTE_TYPE(M) \
|
||||
M(SRC_NULL, "null", 0) /* Terminates a note vector. */ \
|
||||
M(SRC_IF, "if", 0) /* JSOP_IFEQ bytecode is from an if-then. */ \
|
||||
M(SRC_IF_ELSE, "if-else", 1) /* JSOP_IFEQ bytecode is from an if-then-else. */ \
|
||||
M(SRC_COND, "cond", 1) /* JSOP_IFEQ is from conditional ?: operator. */ \
|
||||
M(SRC_IF_ELSE, "if-else", 0) /* JSOP_IFEQ bytecode is from an if-then-else. */ \
|
||||
M(SRC_COND, "cond", 0) /* JSOP_IFEQ is from conditional ?: operator. */ \
|
||||
M(SRC_FOR, "for", 3) /* JSOP_NOP or JSOP_POP in for(;;) loop head. */ \
|
||||
M(SRC_WHILE, "while", 1) /* JSOP_GOTO to for or while loop condition from before \
|
||||
loop, else JSOP_NOP at top of do-while loop. */ \
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
for (var i = 0; i < 2; i++) {
|
||||
evaluate("var obj = {[Symbol.iterator]: Symbol.iterator};");
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
class Base {}
|
||||
class Derived extends Base {
|
||||
constructor() {
|
||||
var fun = async() => {
|
||||
for (var i = 0; i < 20; i++) {} // Trigger OSR.
|
||||
super();
|
||||
};
|
||||
fun();
|
||||
}
|
||||
}
|
||||
d = new Derived();
|
|
@ -4698,19 +4698,6 @@ BaselineCompiler::emit_JSOP_RESUME()
|
|||
return false;
|
||||
#endif
|
||||
|
||||
Register constructing = regs.takeAny();
|
||||
ValueOperand newTarget = regs.takeAnyValue();
|
||||
masm.loadValue(Address(genObj, GeneratorObject::offsetOfNewTargetSlot()), newTarget);
|
||||
masm.move32(Imm32(0), constructing);
|
||||
{
|
||||
Label notConstructing;
|
||||
masm.branchTestObject(Assembler::NotEqual, newTarget, ¬Constructing);
|
||||
masm.pushValue(newTarget);
|
||||
masm.move32(Imm32(CalleeToken_FunctionConstructing), constructing);
|
||||
masm.bind(¬Constructing);
|
||||
}
|
||||
regs.add(newTarget);
|
||||
|
||||
// Push |undefined| for all formals.
|
||||
Register scratch2 = regs.takeAny();
|
||||
Label loop, loopDone;
|
||||
|
@ -4735,14 +4722,10 @@ BaselineCompiler::emit_JSOP_RESUME()
|
|||
masm.makeFrameDescriptor(scratch2, JitFrame_BaselineJS, JitFrameLayout::Size());
|
||||
|
||||
masm.Push(Imm32(0)); // actual argc
|
||||
|
||||
// Duplicate PushCalleeToken with a variable instead.
|
||||
masm.orPtr(constructing, callee);
|
||||
masm.Push(callee);
|
||||
masm.PushCalleeToken(callee, /* constructing = */ false);
|
||||
masm.Push(scratch2); // frame descriptor
|
||||
|
||||
regs.add(callee);
|
||||
regs.add(constructing);
|
||||
|
||||
// Load the return value.
|
||||
ValueOperand retVal = regs.takeAnyValue();
|
||||
|
|
|
@ -703,7 +703,6 @@ CacheRegisterAllocator::assertValidState() const
|
|||
const auto& loc2 = operandLocations_[j];
|
||||
if (loc2.isUninitialized())
|
||||
continue;
|
||||
MOZ_ASSERT(loc1 != loc2);
|
||||
MOZ_ASSERT(!loc1.aliasesReg(loc2));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1762,22 +1762,22 @@ ControlFlowGenerator::processIfStart(JSOp op)
|
|||
|
||||
// The bytecode for if/ternary gets emitted either like this:
|
||||
//
|
||||
// IFEQ X ; src note (IF_ELSE, COND) points to the GOTO
|
||||
// IFEQ X ; src note (IF_ELSE, COND)
|
||||
// ...
|
||||
// GOTO Z
|
||||
// X: ... ; else/else if
|
||||
// X: JUMPTARGET ; else/else if
|
||||
// ...
|
||||
// Z: ; join
|
||||
// Z: JUMPTARGET ; join
|
||||
//
|
||||
// Or like this:
|
||||
//
|
||||
// IFEQ X ; src note (IF) has no offset
|
||||
// IFEQ X ; src note (IF)
|
||||
// ...
|
||||
// Z: ... ; join
|
||||
// X: JUMPTARGET ; join
|
||||
//
|
||||
// We want to parse the bytecode as if we were parsing the AST, so for the
|
||||
// IF_ELSE/COND cases, we use the source note and follow the GOTO. For the
|
||||
// IF case, the IFEQ offset is the join point.
|
||||
// IF_ELSE/COND cases, we use the IFEQ/GOTO bytecode offsets to follow the
|
||||
// branch. For the IF case, the IFEQ offset is the join point.
|
||||
switch (SN_TYPE(sn)) {
|
||||
case SRC_IF:
|
||||
if (!cfgStack_.append(CFGState::If(falseStart, test)))
|
||||
|
@ -1789,9 +1789,9 @@ ControlFlowGenerator::processIfStart(JSOp op)
|
|||
{
|
||||
// Infer the join point from the JSOP_GOTO[X] sitting here, then
|
||||
// assert as we much we can that this is the right GOTO.
|
||||
jsbytecode* trueEnd = pc + GetSrcNoteOffset(sn, 0);
|
||||
MOZ_ASSERT(JSOp(*falseStart) == JSOP_JUMPTARGET);
|
||||
jsbytecode* trueEnd = falseStart - JSOP_GOTO_LENGTH;
|
||||
MOZ_ASSERT(trueEnd > pc);
|
||||
MOZ_ASSERT(trueEnd < falseStart);
|
||||
MOZ_ASSERT(JSOp(*trueEnd) == JSOP_GOTO);
|
||||
MOZ_ASSERT(!GetSrcNote(gsn, script, trueEnd));
|
||||
|
||||
|
|
|
@ -2695,6 +2695,8 @@ SrcNotes(JSContext* cx, HandleScript script, Sprinter* sp)
|
|||
switch (type) {
|
||||
case SRC_NULL:
|
||||
case SRC_IF:
|
||||
case SRC_IF_ELSE:
|
||||
case SRC_COND:
|
||||
case SRC_CONTINUE:
|
||||
case SRC_BREAK:
|
||||
case SRC_BREAK2LABEL:
|
||||
|
@ -2729,18 +2731,12 @@ SrcNotes(JSContext* cx, HandleScript script, Sprinter* sp)
|
|||
}
|
||||
break;
|
||||
|
||||
case SRC_IF_ELSE:
|
||||
if (!sp->jsprintf(" else %u", unsigned(GetSrcNoteOffset(sn, 0))))
|
||||
return false;
|
||||
break;
|
||||
|
||||
case SRC_FOR_IN:
|
||||
case SRC_FOR_OF:
|
||||
if (!sp->jsprintf(" closingjump %u", unsigned(GetSrcNoteOffset(sn, 0))))
|
||||
return false;
|
||||
break;
|
||||
|
||||
case SRC_COND:
|
||||
case SRC_WHILE:
|
||||
case SRC_NEXTCASE:
|
||||
if (!sp->jsprintf(" offset %u", unsigned(GetSrcNoteOffset(sn, 0))))
|
||||
|
|
|
@ -21,6 +21,7 @@ GeneratorObject::create(JSContext* cx, AbstractFramePtr frame)
|
|||
{
|
||||
MOZ_ASSERT(frame.script()->isGenerator() || frame.script()->isAsync());
|
||||
MOZ_ASSERT(frame.script()->nfixed() == 0);
|
||||
MOZ_ASSERT(!frame.isConstructing());
|
||||
|
||||
Rooted<GlobalObject*> global(cx, cx->global());
|
||||
|
||||
|
@ -41,7 +42,6 @@ GeneratorObject::create(JSContext* cx, AbstractFramePtr frame)
|
|||
return nullptr;
|
||||
|
||||
genObj->setCallee(*frame.callee());
|
||||
genObj->setNewTarget(frame.newTarget());
|
||||
genObj->setEnvironmentChain(*frame.environmentChain());
|
||||
if (frame.script()->needsArgsObj())
|
||||
genObj->setArgsObj(frame.argsObj());
|
||||
|
@ -137,9 +137,8 @@ GeneratorObject::resume(JSContext* cx, InterpreterActivation& activation,
|
|||
MOZ_ASSERT(genObj->isSuspended());
|
||||
|
||||
RootedFunction callee(cx, &genObj->callee());
|
||||
RootedValue newTarget(cx, genObj->newTarget());
|
||||
RootedObject envChain(cx, &genObj->environmentChain());
|
||||
if (!activation.resumeGeneratorFrame(callee, newTarget, envChain))
|
||||
if (!activation.resumeGeneratorFrame(callee, envChain))
|
||||
return false;
|
||||
activation.regs().fp()->setResumedGenerator();
|
||||
|
||||
|
|
|
@ -29,7 +29,6 @@ class GeneratorObject : public NativeObject
|
|||
ARGS_OBJ_SLOT,
|
||||
EXPRESSION_STACK_SLOT,
|
||||
YIELD_AND_AWAIT_INDEX_SLOT,
|
||||
NEWTARGET_SLOT,
|
||||
RESERVED_SLOTS
|
||||
};
|
||||
|
||||
|
@ -114,17 +113,6 @@ class GeneratorObject : public NativeObject
|
|||
setFixedSlot(EXPRESSION_STACK_SLOT, NullValue());
|
||||
}
|
||||
|
||||
bool isConstructing() const {
|
||||
return getFixedSlot(NEWTARGET_SLOT).isObject();
|
||||
}
|
||||
const Value& newTarget() const {
|
||||
return getFixedSlot(NEWTARGET_SLOT);
|
||||
}
|
||||
void setNewTarget(const Value& newTarget) {
|
||||
setFixedSlot(NEWTARGET_SLOT, newTarget);
|
||||
}
|
||||
|
||||
|
||||
// The yield index slot is abused for a few purposes. It's undefined if
|
||||
// it hasn't been set yet (before the initial yield), and null if the
|
||||
// generator is closed. If the generator is running, the yield index is
|
||||
|
@ -180,7 +168,6 @@ class GeneratorObject : public NativeObject
|
|||
setFixedSlot(ARGS_OBJ_SLOT, NullValue());
|
||||
setFixedSlot(EXPRESSION_STACK_SLOT, NullValue());
|
||||
setFixedSlot(YIELD_AND_AWAIT_INDEX_SLOT, NullValue());
|
||||
setFixedSlot(NEWTARGET_SLOT, NullValue());
|
||||
}
|
||||
|
||||
bool isAfterYield();
|
||||
|
@ -205,9 +192,6 @@ class GeneratorObject : public NativeObject
|
|||
static size_t offsetOfExpressionStackSlot() {
|
||||
return getFixedSlotOffset(EXPRESSION_STACK_SLOT);
|
||||
}
|
||||
static size_t offsetOfNewTargetSlot() {
|
||||
return getFixedSlotOffset(NEWTARGET_SLOT);
|
||||
}
|
||||
};
|
||||
|
||||
bool GeneratorThrowOrReturn(JSContext* cx, AbstractFramePtr frame, Handle<GeneratorObject*> obj,
|
||||
|
|
|
@ -318,8 +318,7 @@ InterpreterStack::pushInlineFrame(JSContext* cx, InterpreterRegs& regs, const Ca
|
|||
|
||||
MOZ_ALWAYS_INLINE bool
|
||||
InterpreterStack::resumeGeneratorCallFrame(JSContext* cx, InterpreterRegs& regs,
|
||||
HandleFunction callee, HandleValue newTarget,
|
||||
HandleObject envChain)
|
||||
HandleFunction callee, HandleObject envChain)
|
||||
{
|
||||
MOZ_ASSERT(callee->isGenerator() || callee->isAsync());
|
||||
RootedScript script(cx, JSFunction::getOrCreateScript(cx, callee));
|
||||
|
@ -332,11 +331,12 @@ InterpreterStack::resumeGeneratorCallFrame(JSContext* cx, InterpreterRegs& regs,
|
|||
|
||||
LifoAlloc::Mark mark = allocator_.mark();
|
||||
|
||||
MaybeConstruct constructing = MaybeConstruct(newTarget.isObject());
|
||||
// (Async) generators and async functions are not constructors.
|
||||
MOZ_ASSERT(!callee->isConstructor());
|
||||
|
||||
// Include callee, |this|, and maybe |new.target|
|
||||
unsigned nformal = callee->nargs();
|
||||
unsigned nvals = 2 + constructing + nformal + script->nslots();
|
||||
unsigned nvals = 2 + nformal + script->nslots();
|
||||
|
||||
uint8_t* buffer = allocateFrame(cx, sizeof(InterpreterFrame) + nvals * sizeof(Value));
|
||||
if (!buffer)
|
||||
|
@ -346,12 +346,10 @@ InterpreterStack::resumeGeneratorCallFrame(JSContext* cx, InterpreterRegs& regs,
|
|||
argv[-2] = ObjectValue(*callee);
|
||||
argv[-1] = UndefinedValue();
|
||||
SetValueRangeToUndefined(argv, nformal);
|
||||
if (constructing)
|
||||
argv[nformal] = newTarget;
|
||||
|
||||
InterpreterFrame* fp = reinterpret_cast<InterpreterFrame*>(argv + nformal + constructing);
|
||||
InterpreterFrame* fp = reinterpret_cast<InterpreterFrame*>(argv + nformal);
|
||||
fp->mark_ = mark;
|
||||
fp->initCallFrame(prev, prevpc, prevsp, *callee, script, argv, 0, constructing);
|
||||
fp->initCallFrame(prev, prevpc, prevsp, *callee, script, argv, 0, NO_CONSTRUCT);
|
||||
fp->resumeGeneratorFrame(envChain);
|
||||
|
||||
regs.prepareToRun(*fp, script);
|
||||
|
@ -647,6 +645,18 @@ AbstractFramePtr::unsetIsDebuggee()
|
|||
asRematerializedFrame()->unsetIsDebuggee();
|
||||
}
|
||||
|
||||
inline bool
|
||||
AbstractFramePtr::isConstructing() const
|
||||
{
|
||||
if (isInterpreterFrame())
|
||||
return asInterpreterFrame()->isConstructing();
|
||||
if (isBaselineFrame())
|
||||
return asBaselineFrame()->isConstructing();
|
||||
if (isRematerializedFrame())
|
||||
return asRematerializedFrame()->isConstructing();
|
||||
MOZ_CRASH("Unexpected frame");
|
||||
}
|
||||
|
||||
inline bool
|
||||
AbstractFramePtr::hasArgs() const
|
||||
{
|
||||
|
@ -963,11 +973,10 @@ InterpreterActivation::popInlineFrame(InterpreterFrame* frame)
|
|||
}
|
||||
|
||||
inline bool
|
||||
InterpreterActivation::resumeGeneratorFrame(HandleFunction callee, HandleValue newTarget,
|
||||
HandleObject envChain)
|
||||
InterpreterActivation::resumeGeneratorFrame(HandleFunction callee, HandleObject envChain)
|
||||
{
|
||||
InterpreterStack& stack = cx_->interpreterStack();
|
||||
if (!stack.resumeGeneratorCallFrame(cx_, regs_, callee, newTarget, envChain))
|
||||
if (!stack.resumeGeneratorCallFrame(cx_, regs_, callee, envChain))
|
||||
return false;
|
||||
|
||||
MOZ_ASSERT(regs_.fp()->script()->compartment() == compartment_);
|
||||
|
|
|
@ -231,6 +231,7 @@ class AbstractFramePtr
|
|||
inline Value calleev() const;
|
||||
inline Value& thisArgument() const;
|
||||
|
||||
inline bool isConstructing() const;
|
||||
inline Value newTarget() const;
|
||||
|
||||
inline bool debuggerNeedsCheckPrimitiveReturn() const;
|
||||
|
@ -906,8 +907,7 @@ class InterpreterStack
|
|||
void popInlineFrame(InterpreterRegs& regs);
|
||||
|
||||
bool resumeGeneratorCallFrame(JSContext* cx, InterpreterRegs& regs,
|
||||
HandleFunction callee, HandleValue newTarget,
|
||||
HandleObject envChain);
|
||||
HandleFunction callee, HandleObject envChain);
|
||||
|
||||
inline void purge(JSRuntime* rt);
|
||||
|
||||
|
@ -1552,8 +1552,7 @@ class InterpreterActivation : public Activation
|
|||
MaybeConstruct constructing);
|
||||
inline void popInlineFrame(InterpreterFrame* frame);
|
||||
|
||||
inline bool resumeGeneratorFrame(HandleFunction callee, HandleValue newTarget,
|
||||
HandleObject envChain);
|
||||
inline bool resumeGeneratorFrame(HandleFunction callee, HandleObject envChain);
|
||||
|
||||
InterpreterFrame* current() const {
|
||||
return regs_.fp();
|
||||
|
|
|
@ -106807,6 +106807,30 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-contain/contain-layout-006.html": [
|
||||
[
|
||||
"/css/css-contain/contain-layout-006.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-contain/contain-layout-007.html": [
|
||||
[
|
||||
"/css/css-contain/contain-layout-007.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-contain/contain-layout-breaks-001.html": [
|
||||
[
|
||||
"/css/css-contain/contain-layout-breaks-001.html",
|
||||
|
@ -106927,6 +106951,30 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-contain/contain-paint-009.html": [
|
||||
[
|
||||
"/css/css-contain/contain-paint-009.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-contain/contain-paint-010.html": [
|
||||
[
|
||||
"/css/css-contain/contain-paint-010.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-contain/contain-size-001.html": [
|
||||
[
|
||||
"/css/css-contain/contain-size-001.html",
|
||||
|
@ -128479,6 +128527,30 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-004.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-004.html",
|
||||
[
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-004-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-005.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-005.html",
|
||||
[
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-005-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-style-attr/style-attr-braces-001.xht": [
|
||||
[
|
||||
"/css/css-style-attr/style-attr-braces-001.xht",
|
||||
|
@ -188184,6 +188256,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"2dcontext/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"2dcontext/best-practices/.gitkeep": [
|
||||
[
|
||||
{}
|
||||
|
@ -189254,6 +189331,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"BackgroundSync/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"FileAPI/BlobURL/support/file_test2.txt": [
|
||||
[
|
||||
{}
|
||||
|
@ -192709,11 +192791,21 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"apng/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"apng/animated-png-timeout-ref.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"audio-output/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"background-fetch/OWNERS": [
|
||||
[
|
||||
{}
|
||||
|
@ -193214,6 +193306,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"common/subset-tests.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"common/test-setting-immutable-prototype.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -217054,6 +217151,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"credential-management/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"credential-management/support/echoing-nester.html": [
|
||||
[
|
||||
{}
|
||||
|
@ -240719,6 +240821,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-content/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-content/attr-case-insensitive-ref.html": [
|
||||
[
|
||||
{}
|
||||
|
@ -240999,6 +241106,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-fill-stroke/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-fill-stroke/reference/paint-order-001-ref.tentative.html": [
|
||||
[
|
||||
{}
|
||||
|
@ -242354,6 +242466,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-font-loading/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-fonts/OWNERS": [
|
||||
[
|
||||
{}
|
||||
|
@ -253059,6 +253176,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-properties-values-api/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-pseudo/OWNERS": [
|
||||
[
|
||||
{}
|
||||
|
@ -254244,11 +254366,26 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-scroll-anchoring/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-scroll-anchoring/README.md": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-scroll-snap/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-shadow-parts/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-shadow-parts/support/shadow-helper.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -254764,6 +254901,16 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-004-ref.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-005-ref.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-speech/OWNERS": [
|
||||
[
|
||||
{}
|
||||
|
@ -272314,6 +272461,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"device-memory/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"docs/.gitignore": [
|
||||
[
|
||||
{}
|
||||
|
@ -288464,6 +288616,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"imagebitmap-renderingcontext/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"images/OWNERS": [
|
||||
[
|
||||
{}
|
||||
|
@ -289929,6 +290086,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"mediacapture-image/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"mediacapture-record/OWNERS": [
|
||||
[
|
||||
{}
|
||||
|
@ -290679,6 +290841,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"offscreen-canvas/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"offscreen-canvas/filter/offscreencanvas.filter.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -294289,6 +294456,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"server-timing/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"server-timing/resources/blue.png": [
|
||||
[
|
||||
{}
|
||||
|
@ -298404,6 +298576,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"wasm/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wasm/compile_worker.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -299134,6 +299311,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webgl/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webgl/common.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -301944,6 +302126,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/resources/static-import-non-existent-script-worker.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/resources/static-import-worker.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -302199,6 +302386,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"worklets/OWNERS": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"worklets/README.md": [
|
||||
[
|
||||
{}
|
||||
|
@ -373827,6 +374019,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"webrtc/RTCPeerConnection-add-track-no-deadlock.https.html": [
|
||||
[
|
||||
"/webrtc/RTCPeerConnection-add-track-no-deadlock.https.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webrtc/RTCPeerConnection-addIceCandidate.html": [
|
||||
[
|
||||
"/webrtc/RTCPeerConnection-addIceCandidate.html",
|
||||
|
@ -399676,6 +399874,10 @@
|
|||
"16f72935aaf97175593bcf27794506f0884f091b",
|
||||
"support"
|
||||
],
|
||||
"2dcontext/OWNERS": [
|
||||
"07a7da62ef2c26f061cfc076d268f06a0cdcf72b",
|
||||
"support"
|
||||
],
|
||||
"2dcontext/best-practices/.gitkeep": [
|
||||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
|
@ -403752,6 +403954,10 @@
|
|||
"73f0071c06f429c3d47eac8d0863e11f1d6e8c25",
|
||||
"support"
|
||||
],
|
||||
"BackgroundSync/OWNERS": [
|
||||
"ed48014d817ef034062db60403704ed2c0cf9aeb",
|
||||
"support"
|
||||
],
|
||||
"BackgroundSync/interfaces.any.js": [
|
||||
"2a158ca33b93b78a581341d885150d252a0e4555",
|
||||
"testharness"
|
||||
|
@ -405689,47 +405895,47 @@
|
|||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes.js": [
|
||||
"db8091eaf59ea342ae7c8f64e6548c976b5f0b36",
|
||||
"f0f112ddcf43a46cfccc0e7cf29b46208f87bb5f",
|
||||
"support"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_AES-CBC.https.any.js": [
|
||||
"71f7d2beac74da25795366722aea79fb88c197ab",
|
||||
"49ce28516303c7525f74d29fbbe36b578e9e0d08",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_AES-CTR.https.any.js": [
|
||||
"57f1bff81966f8fc20b7870ed1a5ecf939f1c4d1",
|
||||
"377e8f0ec969f36949c9dc08ae935063d25c08d8",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_AES-GCM.https.any.js": [
|
||||
"faa70a7dda91b0602987ec8e7ef0787c4ed163e3",
|
||||
"a65a71f8f83b017fe9eb8fccbd8da3489ed1f9f0",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_AES-KW.https.any.js": [
|
||||
"23b4567c82e12847f41fb6aa8a6a2cb6bd219a94",
|
||||
"165159903403f67cc27d29f78d46369eb598811c",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_ECDH.https.any.js": [
|
||||
"51f5990d71b6d0008163c5550dfe3ca88fe56356",
|
||||
"525b874eff610c6db8cca7f50ba0c074b8975001",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_ECDSA.https.any.js": [
|
||||
"bfce352ef583a31aaae4a5a303a8b98737cfc22f",
|
||||
"2a63f8d0d12987ca2e4c41e5eb28a53741a091f5",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_HMAC.https.any.js": [
|
||||
"64b1846740147585fc4d497ba8d20a4b5bdef315",
|
||||
"af064fd9cc422c35718d1dcf2f6c861aab7385cc",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.js": [
|
||||
"ccb63d91473cb7ee6554ad80f0ee2be004e75c91",
|
||||
"f82ce4307fea94a097ccdf470b766f110d876b87",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.js": [
|
||||
"9549e735a6d5d2a570f2b6ec4b09c49fd6a88f51",
|
||||
"8ff33e42d855b7482455ebb3caab5ac311e7cbf5",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.https.any.js": [
|
||||
"11aff41d669c5a44c5929ac8754d680b675f3c8c",
|
||||
"fbbbef333461a7845ea1b3cba2169435c7f82761",
|
||||
"testharness"
|
||||
],
|
||||
"WebCryptoAPI/getRandomValues.any.js": [
|
||||
|
@ -409256,6 +409462,10 @@
|
|||
"789767132e47fb6cad1ea60584a04b4f2e2c9551",
|
||||
"support"
|
||||
],
|
||||
"apng/OWNERS": [
|
||||
"5fa81c84bf276ac842e54c02c4889aac62806f86",
|
||||
"support"
|
||||
],
|
||||
"apng/animated-png-timeout-ref.html": [
|
||||
"dcd3c58b9200109868f2b98bda346bf26f823e07",
|
||||
"support"
|
||||
|
@ -409276,6 +409486,10 @@
|
|||
"8f37d8d2fc1cb9b5ad0d85234f733f534f4f0db8",
|
||||
"testharness"
|
||||
],
|
||||
"audio-output/OWNERS": [
|
||||
"8d5030068c8ea67ad77f7dabb274470685b734a6",
|
||||
"support"
|
||||
],
|
||||
"audio-output/setSinkId-manual.https.html": [
|
||||
"6743b9f6843a1c6134ac9cc627375b0368986e55",
|
||||
"manual"
|
||||
|
@ -410536,6 +410750,10 @@
|
|||
"e3593850f8098d3f3ff82c042deab15f51c66a52",
|
||||
"support"
|
||||
],
|
||||
"common/subset-tests.js": [
|
||||
"ee72de5b5f2302d111a0f131eddf5081ad02b789",
|
||||
"support"
|
||||
],
|
||||
"common/test-setting-immutable-prototype.js": [
|
||||
"2cafc5c2b867e0fd6f738b1fbeaa503761c400b7",
|
||||
"support"
|
||||
|
@ -432492,6 +432710,10 @@
|
|||
"8307ed240a531033c96da89197dcfb5ea25cde87",
|
||||
"support"
|
||||
],
|
||||
"credential-management/OWNERS": [
|
||||
"c7e6702e4472c55bb6e9c543bed62de2d2a7331d",
|
||||
"support"
|
||||
],
|
||||
"credential-management/credentialscontainer-create-basics.https.html": [
|
||||
"4889217f5e821965907d4d60a9ffdd19d4bc79af",
|
||||
"testharness"
|
||||
|
@ -496200,6 +496422,14 @@
|
|||
"60b834ef7b5becf76f5cacd55b2b9c4774562637",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-contain/contain-layout-006.html": [
|
||||
"89c68e7ce325295d6a36da91b6d4dd39580f7165",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-contain/contain-layout-007.html": [
|
||||
"799965dfb9989fc3a8226e80fa3c67cafb24374b",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-contain/contain-layout-breaks-001.html": [
|
||||
"09fcfd311126800c7ce63f27c3154ef31fc647bd",
|
||||
"reftest"
|
||||
|
@ -496240,6 +496470,14 @@
|
|||
"5540aaf33b5b841d95f84ead3459f634cf444299",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-contain/contain-paint-009.html": [
|
||||
"b3a8ee7512f1f893b630453a8443edaed983f4c3",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-contain/contain-paint-010.html": [
|
||||
"e47f99a8fedb60f34ec7877686f478cbc002c6b4",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-contain/contain-size-001.html": [
|
||||
"089c4fd7352f91a85d5d8f6bf8c5f261c868cd37",
|
||||
"reftest"
|
||||
|
@ -496396,6 +496634,10 @@
|
|||
"6b72ea53450c5a08ef3ddd897608aa9cf7e68e00",
|
||||
"support"
|
||||
],
|
||||
"css/css-content/OWNERS": [
|
||||
"d3f0adf12724f2b230ffa3b2845e273ba4200076",
|
||||
"support"
|
||||
],
|
||||
"css/css-content/attr-case-insensitive-ref.html": [
|
||||
"30577fc39afb6ac028e25be11f363e060c0850b2",
|
||||
"support"
|
||||
|
@ -498464,6 +498706,10 @@
|
|||
"cfaff82945bd52baafb8c4c16eb38c9dbee14da6",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-fill-stroke/OWNERS": [
|
||||
"d9c8054b356c9273a054a83abeb9be0626c23921",
|
||||
"support"
|
||||
],
|
||||
"css/css-fill-stroke/paint-order-001.tentative.html": [
|
||||
"46e784929d8a661eb432fa04cc79e0612bd5d194",
|
||||
"reftest"
|
||||
|
@ -501612,6 +501858,10 @@
|
|||
"62ff3e2eac64bb2057391e4dcc4664a4839bbbe8",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-font-loading/OWNERS": [
|
||||
"19b55d317925d28a18230592db5d05426f16537c",
|
||||
"support"
|
||||
],
|
||||
"css/css-font-loading/fontfacesetloadevent-constructor.html": [
|
||||
"ad355c3d5220c1b938182241a8e8abe030ace699",
|
||||
"testharness"
|
||||
|
@ -515112,6 +515362,10 @@
|
|||
"7f8a5b4d9047c07378473362acb3d001e70d5663",
|
||||
"support"
|
||||
],
|
||||
"css/css-properties-values-api/OWNERS": [
|
||||
"b098aad4eacf3991e0930a0953067c1b1135c519",
|
||||
"support"
|
||||
],
|
||||
"css/css-properties-values-api/register-property-syntax-parsing.html": [
|
||||
"b065f4840b3c1deb4a2f8a59428e102f2ae11686",
|
||||
"testharness"
|
||||
|
@ -517572,6 +517826,10 @@
|
|||
"5816d3d7af3c4bef07f4a299ab65c74b7b8d80f9",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-scroll-anchoring/OWNERS": [
|
||||
"d9c8054b356c9273a054a83abeb9be0626c23921",
|
||||
"support"
|
||||
],
|
||||
"css/css-scroll-anchoring/README.md": [
|
||||
"31205944cbcf321f7aa77e3bef0f8835cc7b6d13",
|
||||
"support"
|
||||
|
@ -517652,6 +517910,10 @@
|
|||
"de66dba5bce15b7403e9e582d982d4e3e4aed552",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-scroll-snap/OWNERS": [
|
||||
"d9c8054b356c9273a054a83abeb9be0626c23921",
|
||||
"support"
|
||||
],
|
||||
"css/css-scroll-snap/scroll-snap-type-proximity.html": [
|
||||
"75bfc0b6c7686afbbf431e653ab674496ad3fe46",
|
||||
"testharness"
|
||||
|
@ -517672,6 +517934,10 @@
|
|||
"dfaf8675bec557c9f2178ad48b29c803f94056b5",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shadow-parts/OWNERS": [
|
||||
"d9c8054b356c9273a054a83abeb9be0626c23921",
|
||||
"support"
|
||||
],
|
||||
"css/css-shadow-parts/all-hosts.html": [
|
||||
"a92019bba916ed3242dcdf66184d73b915f2689d",
|
||||
"testharness"
|
||||
|
@ -518757,43 +519023,43 @@
|
|||
"reftest"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-010.html": [
|
||||
"7baf8e86ee451f08ab18e03000d64a529a2824d0",
|
||||
"929078a33a23f1d10ce9d0f89016725f233e133e",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-011.html": [
|
||||
"3620cce0bf178d1bc67faa372406c50b3b07c086",
|
||||
"af178c8f965ce5f48673a4b67aa15f4974a09a2a",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-012.html": [
|
||||
"1db1130bb5f2f5a8a12bab7ec5a9fa0c40165be4",
|
||||
"67e23bdb9873267a12790cf4cd60b704f423f8a5",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-013.html": [
|
||||
"155d33ea047169acdc6b29b4716fa7237b133d51",
|
||||
"7bd3ac39a58324354fa2c36fa98b151ce1292c85",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-014.html": [
|
||||
"ab449eda8aa379e0149c759e9dcd9a866c1ed3db",
|
||||
"e87ca4ce9f46103091139fda326452e4c66b1980",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-015.html": [
|
||||
"f0ce9eb24d3b6bf8b8aa03f5cd02f82acfcdf8cd",
|
||||
"d30174b5995f0831f2535a7a817f6ad5af5a6ba8",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-016.html": [
|
||||
"2ea1538bff7b1825cdd63ea6510435c7aa52aebc",
|
||||
"585b41b91bd9d452b616f87e81c8a47576299719",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-017.html": [
|
||||
"366e0ad5c7ae7f2663f9c6bc6c0eba51e299f120",
|
||||
"9593d57329acf1998d4b5ada5a230f3fed0d3c32",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-018.html": [
|
||||
"08c9fd21d74ae52b98581c7d013275c30d49e18c",
|
||||
"c81ef4303d00a4f490f8cada68d8a6449daa56c3",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/shape-outside-019.html": [
|
||||
"46de7762b9a9c29a0aa798775cea5dfb17bbf5a0",
|
||||
"3eaf5c74cfbbb676b3f2ccae55a96d3999ac890b",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-shapes/spec-examples/support/circle-no-shadow.png": [
|
||||
|
@ -518809,7 +519075,7 @@
|
|||
"support"
|
||||
],
|
||||
"css/css-shapes/spec-examples/support/spec-example-utils.js": [
|
||||
"137b347da1085eb0042f1d2fc017694ff528180b",
|
||||
"de748e548169b360cf0d31a5499d766dd8bc2a7d",
|
||||
"support"
|
||||
],
|
||||
"css/css-shapes/support/1x1-green.png": [
|
||||
|
@ -518972,6 +519238,22 @@
|
|||
"43d44ad3a75e6abb9d66d06c3cdc71dbcb366651",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-004-ref.html": [
|
||||
"4b93517397b4332b3062804e2d6047afdd169fae",
|
||||
"support"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-004.html": [
|
||||
"42bc0191ff3ba22c5ceb377f1bc68131d652509e",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-005-ref.html": [
|
||||
"a2cd75ab26376e74e26414013fc34b8e7fdb1a68",
|
||||
"support"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-005.html": [
|
||||
"33aa880de7eb7c4128022871dfd5e2895be30dcc",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-speech/Integer.html": [
|
||||
"8db91e711b22ead393b1d9a18c224a7f838b85b0",
|
||||
"manual"
|
||||
|
@ -532029,7 +532311,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"css/css-transitions/zero-duration-multiple-transition.html": [
|
||||
"7db6bc8641a6a2eb5f1ee1fdbc9b6215a0462bbc",
|
||||
"bcbcd704e617cf1bb057a67d9ff5635ef6ebda7e",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/CSSMatrixComponent-DOMMatrix-mutable.html": [
|
||||
|
@ -556148,6 +556430,10 @@
|
|||
"2ec52a6baa7490478ec61e72bf89b2ec09d453b5",
|
||||
"testharness"
|
||||
],
|
||||
"device-memory/OWNERS": [
|
||||
"c328f48fe12bce670646911964930d221c768f1d",
|
||||
"support"
|
||||
],
|
||||
"device-memory/device-memory.https.any.js": [
|
||||
"4e746987c6580c6ff388f1512a02cc6fe33393ea",
|
||||
"testharness"
|
||||
|
@ -556313,7 +556599,7 @@
|
|||
"support"
|
||||
],
|
||||
"docs/_writing-tests/testharness.md": [
|
||||
"6d581e1021a2401b34c0c024990b5e85dbef1fa5",
|
||||
"0a0d88c5ddde91514a51d607405c2b7dedee4776",
|
||||
"support"
|
||||
],
|
||||
"docs/_writing-tests/visual.md": [
|
||||
|
@ -562333,7 +562619,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html": [
|
||||
"92c4633c3d684de4b1d959dbff4f2bab1eaf15a0",
|
||||
"1059b1c0907444bd416889f99d766a566ba9bde3",
|
||||
"testharness"
|
||||
],
|
||||
"fetch/security/dangling-markup-mitigation.tentative.html": [
|
||||
|
@ -579265,7 +579551,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"html/semantics/scripting-1/the-script-element/execution-timing/077.html": [
|
||||
"2bfe280f0ae7b745f2217055e66579ab6fb06769",
|
||||
"077bf7437a9ef4f6d51d0fa26b45ae7c765feb9f",
|
||||
"testharness"
|
||||
],
|
||||
"html/semantics/scripting-1/the-script-element/execution-timing/078.html": [
|
||||
|
@ -582812,6 +583098,10 @@
|
|||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"imagebitmap-renderingcontext/OWNERS": [
|
||||
"07a7da62ef2c26f061cfc076d268f06a0cdcf72b",
|
||||
"support"
|
||||
],
|
||||
"imagebitmap-renderingcontext/bitmaprenderer-as-imagesource.html": [
|
||||
"f80d1496329c64643d2b40e478779929de20c499",
|
||||
"testharness"
|
||||
|
@ -584932,6 +585222,10 @@
|
|||
"ceeb48e7982eb88561f4c1630cb0fcf15d9cf73c",
|
||||
"testharness"
|
||||
],
|
||||
"mediacapture-image/OWNERS": [
|
||||
"d53c2a28adfbc343850c3362a180bba24ae63609",
|
||||
"support"
|
||||
],
|
||||
"mediacapture-image/idlharness.html": [
|
||||
"7ccf7fcab0344a2e1893e89d7689e2312287b64d",
|
||||
"testharness"
|
||||
|
@ -586948,6 +587242,10 @@
|
|||
"f31d50ead567908aab1d1dad577eb06c912c97f3",
|
||||
"manual"
|
||||
],
|
||||
"offscreen-canvas/OWNERS": [
|
||||
"07a7da62ef2c26f061cfc076d268f06a0cdcf72b",
|
||||
"support"
|
||||
],
|
||||
"offscreen-canvas/compositing/2d.composite.canvas.copy.html": [
|
||||
"983ae27346b47cd73000d9e3cd2264e3233705d1",
|
||||
"testharness"
|
||||
|
@ -593309,7 +593607,7 @@
|
|||
"support"
|
||||
],
|
||||
"payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html": [
|
||||
"1a2bf6b62a5021eec649c0919a35574779e30d09",
|
||||
"46cac5ba402841a8bc311b1a11de4a82589ee567",
|
||||
"manual"
|
||||
],
|
||||
"payment-request/PaymentItem/type_member.https.html": [
|
||||
|
@ -603180,6 +603478,10 @@
|
|||
"01ae6e757d428800555012783e290ebba575bcab",
|
||||
"testharness"
|
||||
],
|
||||
"server-timing/OWNERS": [
|
||||
"99acae581c71af3f6306bff62a1172955e83f756",
|
||||
"support"
|
||||
],
|
||||
"server-timing/cross_origin.html": [
|
||||
"e20e60bef34167b4608a837d0ddb311effa20773",
|
||||
"testharness"
|
||||
|
@ -603909,7 +604211,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"server-timing/sw.js": [
|
||||
"0c12328f152814e2f0bde7fe026cf12c8ea77ff0",
|
||||
"47e2601a903e34c2c8afc90e544026e8c6d11d05",
|
||||
"support"
|
||||
],
|
||||
"server-timing/test_server_timing.html": [
|
||||
|
@ -606409,7 +606711,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"shadow-dom/form-control-form-attribute.html": [
|
||||
"79b4a278f0e35646cfdffeebf8f0523e2772bc9b",
|
||||
"7726f8fe9056d3d5c9fb7b963c4bc6e777a8256a",
|
||||
"testharness"
|
||||
],
|
||||
"shadow-dom/historical.html": [
|
||||
|
@ -612968,6 +613270,10 @@
|
|||
"caaf2634451eb9228c0b20f0ac817d7a3d3fa685",
|
||||
"testharness"
|
||||
],
|
||||
"wasm/OWNERS": [
|
||||
"e4284c7c52365b575b20abcf696a5634ef86b769",
|
||||
"support"
|
||||
],
|
||||
"wasm/compile_worker.js": [
|
||||
"652193b876206d7a0f361f145469a604d03e3784",
|
||||
"support"
|
||||
|
@ -614932,6 +615238,10 @@
|
|||
"c184952fc8a78f5edc7d573a9f8440b5eec334cc",
|
||||
"wdspec"
|
||||
],
|
||||
"webgl/OWNERS": [
|
||||
"0df8e72f3ab70719aac73d3b06f043fac629939b",
|
||||
"support"
|
||||
],
|
||||
"webgl/bufferSubData.html": [
|
||||
"526612470551a0eb157b310c587d50080087808d",
|
||||
"testharness"
|
||||
|
@ -615484,6 +615794,10 @@
|
|||
"db758cc2a744c049c291575e408dbb5f280cdf19",
|
||||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-add-track-no-deadlock.https.html": [
|
||||
"a16eaf6805528c2b73650694f26568f41be5d5ff",
|
||||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-addIceCandidate.html": [
|
||||
"dd19f1d7a8d12ee85101e53bb30c553e94d67b6a",
|
||||
"testharness"
|
||||
|
@ -615625,7 +615939,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-setRemoteDescription.html": [
|
||||
"59f826d4d23cd52f15f3940cc3abe66933e91037",
|
||||
"8a3e2f1e157e1ceed18ac66e57040a941b658f24",
|
||||
"testharness"
|
||||
],
|
||||
"webrtc/RTCPeerConnection-track-stats.https.html": [
|
||||
|
@ -619993,7 +620307,7 @@
|
|||
"support"
|
||||
],
|
||||
"webxr/interfaces.https.html": [
|
||||
"22e2278ab484ced51fd0a3880d2bfbf610650371",
|
||||
"b723ad7105c7e5c12ba5fe75ceac3de3d990dfe2",
|
||||
"testharness"
|
||||
],
|
||||
"webxr/resources/webxr_check.html": [
|
||||
|
@ -620713,7 +621027,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"workers/modules/dedicated-worker-import.html": [
|
||||
"95973c682b79618cc894417a4f89a758e7e8c7b1",
|
||||
"b9f5a7a0384ac3f34c48f32a378b758880f59b06",
|
||||
"testharness"
|
||||
],
|
||||
"workers/modules/dedicated-worker-options-type.html": [
|
||||
|
@ -620725,7 +621039,7 @@
|
|||
"support"
|
||||
],
|
||||
"workers/modules/resources/dynamic-import-given-url-worker.js": [
|
||||
"372686abd1b2d2d09228a44f6420c646319e0bd1",
|
||||
"0d2cfe16d71bb17577c6cf6cde5973c18c2c70fe",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/dynamic-import-worker.js": [
|
||||
|
@ -620760,6 +621074,10 @@
|
|||
"f69987442b6a223a868e6c1a7ca6d9cee2976068",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/static-import-non-existent-script-worker.js": [
|
||||
"e8e1f0aedcc780aac742af01387dd151b10104bc",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/static-import-worker.js": [
|
||||
"6d5fb2c553d2f32cdd16722a85bd65e0a172768c",
|
||||
"support"
|
||||
|
@ -621144,6 +621462,10 @@
|
|||
"c6a02eed61fe26e59252314cbbe090eeed9de9ca",
|
||||
"testharness"
|
||||
],
|
||||
"worklets/OWNERS": [
|
||||
"e2dd08513daf7b513cf2db811841d50153999954",
|
||||
"support"
|
||||
],
|
||||
"worklets/README.md": [
|
||||
"33a3530260a18e74dd96470d9890bbdb4ecdb08d",
|
||||
"support"
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
[cookie-forcing.html]
|
||||
expected:
|
||||
if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
|
||||
[non-secure origins should be able to force out insecure cookies.]
|
||||
expected:
|
||||
if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): TIMEOUT
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
[create-cookie-http.html]
|
||||
expected:
|
||||
if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): ERROR
|
||||
[Untitled]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[contain-layout-006.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[contain-layout-007.html]
|
||||
expected: FAIL
|
|
@ -11,3 +11,4 @@
|
|||
|
||||
[customElements.define must get "observedAttributes" property on the constructor prototype when "attributeChangedCallback" is present]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[dangling-markup-mitigation-data-url.tentative.sub.html]
|
||||
expected: TIMEOUT
|
||||
[<iframe id="dangling"\\n src="data:text/html,\\n <img\\n onload='window.parent.postMessage("loaded", "*");'\\n onerror='window.parent.postMessage("error", "*");'\\n src='http://web-platform.test:8000/images/green-256x256.png?&amp;#10;<'>\\n ">\\n </iframe>]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
[resume-timer-on-history-back.html]
|
||||
disabled:
|
||||
if os == "win": https://bugzilla.mozilla.org/show_bug.cgi?id=1321179
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and not webrender and not e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and not webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
||||
if debug and not webrender and e10s and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
|
||||
if debug and not webrender and e10s and (os == "win") and (version == "10.0.15063") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
if debug and not webrender and e10s and (os == "mac") and (version == "OS X 10.10.5") and (processor == "x86_64") and (bits == 64): CRASH
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
local: 90d9d20d4e4d7a79509c9a13a07e63a463f89527
|
||||
upstream: b395fb03bf62cbda20a383842b8da1701080ec43
|
||||
local: f456831609d31619a99840f8079c894ff589dc06
|
||||
upstream: 43d7898e180de2585d39ab12e3fda81633725e91
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
prefs: [privacy.reduceTimerPrecision:false]
|
||||
[nav2_test_redirect_server.html]
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[key.py]
|
||||
expected:
|
||||
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
|
@ -1,3 +0,0 @@
|
|||
[close.py]
|
||||
expected:
|
||||
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
|
@ -1,3 +0,0 @@
|
|||
[delete.py]
|
||||
expected:
|
||||
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
|
@ -2,3 +2,4 @@
|
|||
[test_arguments]
|
||||
bug: 1453057
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[get.py]
|
||||
expected:
|
||||
if debug and webrender and e10s and (os == "linux") and (version == "Ubuntu 16.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
|
|
@ -446,6 +446,3 @@
|
|||
[XRWebGLLayer interface: operation getViewport(XRView)]
|
||||
expected: FAIL
|
||||
|
||||
[Test IDL implementation of WebXR API]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -21,3 +21,12 @@
|
|||
[importScripts() on module worker should throw an exception.]
|
||||
expected: NOTRUN
|
||||
|
||||
[Worker construction for non-existent script should throw an exception.]
|
||||
expected: NOTRUN
|
||||
|
||||
[Static import for non-existent script should throw an exception.]
|
||||
expected: NOTRUN
|
||||
|
||||
[Dynamic import for non-existent script should throw an exception.]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
@AmeliaBR
|
||||
@annevk
|
||||
@kenrussell
|
||||
@jdashg
|
||||
@fserb
|
|
@ -0,0 +1 @@
|
|||
@beverloo
|
|
@ -70,21 +70,6 @@ function run_test(algorithmNames, slowTest) {
|
|||
}, testTag + ": generateKey" + parameterString(algorithm, extractable, usages));
|
||||
}
|
||||
|
||||
// Only test a subset of tests with, e.g., ?1-10 in the URL
|
||||
var subTestStart = 0;
|
||||
var subTestEnd = Infinity;
|
||||
var match;
|
||||
if (location.search) {
|
||||
match = /^\?(\d+)-(\d+|last)$/.exec(location.search);
|
||||
if (match) {
|
||||
subTestStart = match[1];
|
||||
if (match[2] !== "last") {
|
||||
subTestEnd = match[2];
|
||||
}
|
||||
}
|
||||
}
|
||||
var currentSubTest = 0;
|
||||
|
||||
// Test all valid sets of parameters for successful
|
||||
// key generation.
|
||||
testVectors.forEach(function(vector) {
|
||||
|
@ -92,10 +77,7 @@ function run_test(algorithmNames, slowTest) {
|
|||
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
|
||||
allValidUsages(vector.usages, false, vector.mandatoryUsages).forEach(function(usages) {
|
||||
[false, true].forEach(function(extractable) {
|
||||
currentSubTest++;
|
||||
if (currentSubTest >= subTestStart && currentSubTest <= subTestEnd) {
|
||||
testSuccess(algorithm, extractable, usages, vector.resultType, "Success");
|
||||
}
|
||||
subsetTest(testSuccess, algorithm, extractable, usages, vector.resultType, "Success");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// META: timeout=long
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["AES-CBC"]);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// META: timeout=long
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["AES-CTR"]);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// META: timeout=long
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["AES-GCM"]);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// META: timeout=long
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["AES-KW"]);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// META: timeout=long
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["ECDH"]);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// META: timeout=long
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["ECDSA"]);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// META: timeout=long
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["HMAC"]);
|
||||
|
|
|
@ -16,5 +16,6 @@
|
|||
// META: variant=?141-150
|
||||
// META: variant=?151-last
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["RSA-OAEP"]);
|
||||
|
|
|
@ -4,5 +4,6 @@
|
|||
// META: variant=?21-30
|
||||
// META: variant=?31-last
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["RSA-PSS"]);
|
||||
|
|
|
@ -4,5 +4,6 @@
|
|||
// META: variant=?21-30
|
||||
// META: variant=?31-last
|
||||
// META: script=../util/helpers.js
|
||||
// META: script=/common/subset-tests.js
|
||||
// META: script=successes.js
|
||||
run_test(["RSASSA-PKCS1-v1_5"]);
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
@stuartparmenter
|
||||
@svgeesus
|
||||
@leonscroggins
|
|
@ -0,0 +1 @@
|
|||
@guidou
|
|
@ -0,0 +1,33 @@
|
|||
// Only test a subset of tests with, e.g., ?1-10 in the URL.
|
||||
// Can be used together with <meta name="variant" content="...">
|
||||
// Sample usage:
|
||||
// for (const test of tests) {
|
||||
// subsetTest(async_test, test.fn, test.name);
|
||||
// }
|
||||
(function() {
|
||||
var subTestStart = 0;
|
||||
var subTestEnd = Infinity;
|
||||
var match;
|
||||
if (location.search) {
|
||||
match = /(?:^\?|&)(\d+)-(\d+|last)(?:&|$)/.exec(location.search);
|
||||
if (match) {
|
||||
subTestStart = parseInt(match[1], 10);
|
||||
if (match[2] !== "last") {
|
||||
subTestEnd = parseInt(match[2], 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
function shouldRunSubTest(currentSubTest) {
|
||||
return currentSubTest >= subTestStart && currentSubTest <= subTestEnd;
|
||||
}
|
||||
var currentSubTest = 0;
|
||||
function subsetTest(testFunc, ...args) {
|
||||
currentSubTest++;
|
||||
if (shouldRunSubTest(currentSubTest)) {
|
||||
return testFunc(...args);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
self.shouldRunSubTest = shouldRunSubTest;
|
||||
self.subsetTest = subsetTest;
|
||||
})();
|
|
@ -0,0 +1 @@
|
|||
@mikewest
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Containment Test: Layout containment absolutely positioned descendants</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-layout">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name=assert content="Layout containment makes an element to act as containing block for absolutely positioned descendants.">
|
||||
<style>
|
||||
#contain-layout {
|
||||
contain: layout;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: red;
|
||||
}
|
||||
|
||||
#abspos {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background: green;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div id="contain-layout">
|
||||
<div id="abspos"></div>
|
||||
</div>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Containment Test: Layout containment fixed positioned descendants</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-layout">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name=assert content="Layout containment makes an element to act as containing block for fixed positioned descendants.">
|
||||
<style>
|
||||
#contain-layout {
|
||||
contain: layout;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: red;
|
||||
}
|
||||
|
||||
#fixed {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background: green;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div id="contain-layout">
|
||||
<div id="fixed"></div>
|
||||
</div>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Containment Test: Paint containment absolutely positioned descendants</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-paint">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name=assert content="Paint containment makes an element to act as containing block for absolutely positioned descendants.">
|
||||
<style>
|
||||
#contain-paint {
|
||||
contain: paint;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: red;
|
||||
}
|
||||
|
||||
#abspos {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background: green;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div id="contain-paint">
|
||||
<div id="abspos"></div>
|
||||
</div>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Containment Test: Paint containment fixed positioned descendants</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-paint">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name=assert content="Paint containment makes an element to act as containing block for fixed positioned descendants.">
|
||||
<style>
|
||||
#contain-paint {
|
||||
contain: paint;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background: red;
|
||||
}
|
||||
|
||||
#fixed {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background: green;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div id="contain-paint">
|
||||
<div id="fixed"></div>
|
||||
</div>
|
|
@ -0,0 +1 @@
|
|||
@dauwhe
|
|
@ -0,0 +1 @@
|
|||
@tabatkins
|
|
@ -0,0 +1,2 @@
|
|||
@tabatkins
|
||||
@svgeesus
|
|
@ -0,0 +1,2 @@
|
|||
@tabatkins
|
||||
@astearns
|
|
@ -0,0 +1 @@
|
|||
@tabatkins
|
|
@ -0,0 +1 @@
|
|||
@tabatkins
|
|
@ -0,0 +1 @@
|
|||
@tabatkins
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Reference</title>
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: blue;
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left;
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
writing-mode: vertical-rl;
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
/* controls for min-width */
|
||||
/* content = 100% = 80px = 4ch + border */
|
||||
/* choose sizes that are larger than content to see if how they take effect */
|
||||
.container > div > .raw-percent {
|
||||
width: 120px;
|
||||
}
|
||||
.container > div > .calc-percent,
|
||||
.container > div > .no-percent {
|
||||
width: 160px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='container'>
|
||||
<div><div class="control"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div style='width: 60px;'><div class="raw-percent"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div style='width: 60px;'><div class="calc-percent"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div><div class="no-percent"><span></span></div></div>
|
||||
</div>
|
|
@ -0,0 +1,60 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Percentages of width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
|
||||
<link rel="match" href="intrinsic-percent-non-replaced-004-ref.html">
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: blue;
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left;
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
writing-mode: vertical-rl;
|
||||
width: 40px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
/* test width */
|
||||
/* content = 100% = 60px = 40px + border */
|
||||
/* choose sizes that are different than content to see if how they take effect */
|
||||
.raw-percent {
|
||||
min-width: 200%;
|
||||
}
|
||||
.calc-percent {
|
||||
min-width: calc(160px + 0%);
|
||||
}
|
||||
.no-percent {
|
||||
min-width: 160px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='container'>
|
||||
<div><div class="control"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div><div class="raw-percent"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div><div class="calc-percent"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div><div class="no-percent"><span></span></div></div>
|
||||
</div>
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Reference</title>
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: blue;
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left;
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
writing-mode: vertical-rl;
|
||||
width: 80px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
/* test width */
|
||||
/* content = 100% = 100px = 80px + border */
|
||||
/* choose sizes that are different than content to see if how they take effect */
|
||||
.container > div > .raw-percent {
|
||||
width: 50px;
|
||||
}
|
||||
.container > div > .calc-percent,
|
||||
.container > div > .no-percent {
|
||||
width: 40px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='container'>
|
||||
<div><div class="control"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div style='width: 100px;'><div class="raw-percent"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div style='width: 100px;'><div class="calc-percent"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div><div class="no-percent"><span></span></div></div>
|
||||
</div>
|
|
@ -0,0 +1,60 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Percentages of width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
|
||||
<link rel="match" href="intrinsic-percent-non-replaced-005-ref.html">
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: blue;
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left;
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
writing-mode: vertical-rl;
|
||||
width: 80px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
/* test width */
|
||||
/* content = 100% = 100px = 80px + border */
|
||||
/* choose sizes that are different than content to see if how they take effect */
|
||||
.raw-percent {
|
||||
max-width: 50%;
|
||||
}
|
||||
.calc-percent {
|
||||
max-width: calc(40px + 0%);
|
||||
}
|
||||
.no-percent {
|
||||
max-width: 40px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='container'>
|
||||
<div><div class="control"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div><div class="raw-percent"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div><div class="calc-percent"><span></span></div></div>
|
||||
</div>
|
||||
<div class='container'>
|
||||
<div><div class="no-percent"><span></span></div></div>
|
||||
</div>
|
|
@ -0,0 +1,2 @@
|
|||
@tdresser
|
||||
@npm1
|
|
@ -19,6 +19,44 @@ documented in two sections:
|
|||
See [server features][] for advanced testing features that are commonly used
|
||||
with testharness.js. See also the [general guidelines][] for all test types.
|
||||
|
||||
## Variants
|
||||
|
||||
A test file can have multiple variants by including `meta` elements,
|
||||
for example:
|
||||
|
||||
```
|
||||
<meta name="variant" content="">
|
||||
<meta name="variant" content="?wss">
|
||||
```
|
||||
|
||||
The test can then do different things based on the URL.
|
||||
|
||||
There is a utility script in `/common/subset-tests.js` that works
|
||||
well together with variants, where a test that would otherwise have
|
||||
too many tests to be useful can be split up in ranges of subtests.
|
||||
For example:
|
||||
|
||||
```
|
||||
<!doctype html>
|
||||
<title>Testing variants</title>
|
||||
<meta name="variant" content="?1-1000">
|
||||
<meta name="variant" content="?1001-2000">
|
||||
<meta name="variant" content="?2001-last">
|
||||
<script src="/resources/testharness.js">
|
||||
<script src="/resources/testharnessreport.js">
|
||||
<script src="/common/subset-tests.js">
|
||||
<script>
|
||||
const tests = [
|
||||
{ fn: t => { ... }, name: "..." },
|
||||
... lots of tests ...
|
||||
];
|
||||
for (const test of tests) {
|
||||
subsetTest(async_test, test.fn, test.name);
|
||||
}
|
||||
</script>
|
||||
```
|
||||
|
||||
|
||||
## Auto-generated test boilerplate
|
||||
|
||||
While most JavaScript tests require a certain amount of HTML
|
||||
|
@ -121,7 +159,7 @@ can be used to include both the global and a local `utils.js` in a test.
|
|||
|
||||
Use `// META: timeout=long` at the beginning of the resource.
|
||||
|
||||
### Specifying test variants in auto-generated boilerplate tests
|
||||
### Specifying test [variants](#variants) in auto-generated boilerplate tests
|
||||
|
||||
Use `// META: variant=url-suffix` at the beginning of the resource. For example,
|
||||
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
var doubleEscapedBrace = "&amp;lt;";
|
||||
var rawNewline = " ";
|
||||
var escapedNewline = "&#10;";
|
||||
var doubleEscapedNewline = "&amp;#10;";
|
||||
// doubleEscapedNewline is used inside a data URI, and so must have its '#' escaped.
|
||||
var doubleEscapedNewline = "&amp;%2310;";
|
||||
|
||||
function appendFrameAndGetElement(test, frame) {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
var script = createScript('data:text\/javascript,log("Script #1 ran")');
|
||||
var script = createScript('data:text\/javascript,log("Script %231 ran")');
|
||||
var script2 = createScript('','log("Script #2 ran")');
|
||||
if(script2) {
|
||||
head.removeChild(script2);
|
||||
}
|
||||
var script3 = createScript('data:text\/javascript, log("Script #3 ran"); createScript(\'\', \'log("Script #4 ran")\')');
|
||||
var script3 = createScript('data:text\/javascript, log("Script %233 ran"); createScript(\'\', \'log("Script #4 ran")\')');
|
||||
if(script3) {
|
||||
head.removeChild(script3);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
@AmeliaBR
|
||||
@annevk
|
||||
@kenrussell
|
||||
@jdashg
|
||||
@fserb
|
|
@ -0,0 +1,2 @@
|
|||
@yellowdoge
|
||||
@reillyeon
|
|
@ -0,0 +1,5 @@
|
|||
@AmeliaBR
|
||||
@annevk
|
||||
@kenrussell
|
||||
@jdashg
|
||||
@fserb
|
|
@ -68,7 +68,7 @@ function runManualTest(button, expected = {}) {
|
|||
<button onclick="
|
||||
const expectedAddress = {
|
||||
country: 'AU',
|
||||
regionCode: 'AU-QLD',
|
||||
regionCode: 'QLD',
|
||||
addressLine: '55 test st',
|
||||
city: 'Chapel Hill',
|
||||
dependentLocality: '',
|
||||
|
@ -90,8 +90,10 @@ function runManualTest(button, expected = {}) {
|
|||
<dd>55 test st</dd>
|
||||
<dt>Country</dt>
|
||||
<dd>Australia</dd>
|
||||
<dt>Suburb</dt>
|
||||
<dt>City</dt>
|
||||
<dd>Chapel Hill</dd>
|
||||
<dd>State/Region</dd>
|
||||
<dd>Queensland</dd>
|
||||
<dt>postal code </dt>
|
||||
<dd>6095</dd>
|
||||
<dt>organization</dt>
|
||||
|
|
|
@ -257,7 +257,7 @@
|
|||
}
|
||||
|
||||
var UsbChooserService = {
|
||||
name: 'device::mojom::UsbChooserService',
|
||||
name: 'device.mojom.UsbChooserService',
|
||||
kVersion: 0,
|
||||
ptrClass: UsbChooserServicePtr,
|
||||
proxyClass: UsbChooserServiceProxy,
|
||||
|
@ -270,4 +270,4 @@
|
|||
exports.UsbChooserService = UsbChooserService;
|
||||
exports.UsbChooserServicePtr = UsbChooserServicePtr;
|
||||
exports.UsbChooserServiceAssociatedPtr = UsbChooserServiceAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -3395,7 +3395,7 @@
|
|||
}
|
||||
|
||||
var UsbDevice = {
|
||||
name: 'device::mojom::UsbDevice',
|
||||
name: 'device.mojom.UsbDevice',
|
||||
kVersion: 0,
|
||||
ptrClass: UsbDevicePtr,
|
||||
proxyClass: UsbDeviceProxy,
|
||||
|
@ -3421,4 +3421,4 @@
|
|||
exports.UsbDevice = UsbDevice;
|
||||
exports.UsbDevicePtr = UsbDevicePtr;
|
||||
exports.UsbDeviceAssociatedPtr = UsbDeviceAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -702,7 +702,7 @@
|
|||
}
|
||||
|
||||
var UsbDeviceManager = {
|
||||
name: 'device::mojom::UsbDeviceManager',
|
||||
name: 'device.mojom.UsbDeviceManager',
|
||||
kVersion: 0,
|
||||
ptrClass: UsbDeviceManagerPtr,
|
||||
proxyClass: UsbDeviceManagerProxy,
|
||||
|
@ -822,7 +822,7 @@
|
|||
}
|
||||
|
||||
var UsbDeviceManagerClient = {
|
||||
name: 'device::mojom::UsbDeviceManagerClient',
|
||||
name: 'device.mojom.UsbDeviceManagerClient',
|
||||
kVersion: 0,
|
||||
ptrClass: UsbDeviceManagerClientPtr,
|
||||
proxyClass: UsbDeviceManagerClientProxy,
|
||||
|
@ -840,4 +840,4 @@
|
|||
exports.UsbDeviceManagerClient = UsbDeviceManagerClient;
|
||||
exports.UsbDeviceManagerClientPtr = UsbDeviceManagerClientPtr;
|
||||
exports.UsbDeviceManagerClientAssociatedPtr = UsbDeviceManagerClientAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -4061,7 +4061,7 @@
|
|||
}
|
||||
|
||||
var FakeBluetooth = {
|
||||
name: 'bluetooth::mojom::FakeBluetooth',
|
||||
name: 'bluetooth.mojom.FakeBluetooth',
|
||||
kVersion: 0,
|
||||
ptrClass: FakeBluetoothPtr,
|
||||
proxyClass: FakeBluetoothProxy,
|
||||
|
@ -5293,7 +5293,7 @@
|
|||
}
|
||||
|
||||
var FakeCentral = {
|
||||
name: 'bluetooth::mojom::FakeCentral',
|
||||
name: 'bluetooth.mojom.FakeCentral',
|
||||
kVersion: 0,
|
||||
ptrClass: FakeCentralPtr,
|
||||
proxyClass: FakeCentralProxy,
|
||||
|
@ -5320,4 +5320,4 @@
|
|||
exports.FakeCentral = FakeCentral;
|
||||
exports.FakeCentralPtr = FakeCentralPtr;
|
||||
exports.FakeCentralAssociatedPtr = FakeCentralAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -804,7 +804,7 @@
|
|||
}
|
||||
|
||||
var FakeBluetoothChooser = {
|
||||
name: 'content::mojom::FakeBluetoothChooser',
|
||||
name: 'content.mojom.FakeBluetoothChooser',
|
||||
kVersion: 0,
|
||||
ptrClass: FakeBluetoothChooserPtr,
|
||||
proxyClass: FakeBluetoothChooserProxy,
|
||||
|
@ -819,4 +819,4 @@
|
|||
exports.FakeBluetoothChooser = FakeBluetoothChooser;
|
||||
exports.FakeBluetoothChooserPtr = FakeBluetoothChooserPtr;
|
||||
exports.FakeBluetoothChooserAssociatedPtr = FakeBluetoothChooserAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -248,7 +248,7 @@
|
|||
}
|
||||
|
||||
var MojoLayoutTestHelper = {
|
||||
name: 'content::mojom::MojoLayoutTestHelper',
|
||||
name: 'content.mojom.MojoLayoutTestHelper',
|
||||
kVersion: 0,
|
||||
ptrClass: MojoLayoutTestHelperPtr,
|
||||
proxyClass: MojoLayoutTestHelperProxy,
|
||||
|
@ -261,4 +261,4 @@
|
|||
exports.MojoLayoutTestHelper = MojoLayoutTestHelper;
|
||||
exports.MojoLayoutTestHelperPtr = MojoLayoutTestHelperPtr;
|
||||
exports.MojoLayoutTestHelperAssociatedPtr = MojoLayoutTestHelperAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -932,7 +932,7 @@
|
|||
}
|
||||
|
||||
var Sensor = {
|
||||
name: 'device::mojom::Sensor',
|
||||
name: 'device.mojom.Sensor',
|
||||
kVersion: 0,
|
||||
ptrClass: SensorPtr,
|
||||
proxyClass: SensorProxy,
|
||||
|
@ -1050,7 +1050,7 @@
|
|||
}
|
||||
|
||||
var SensorClient = {
|
||||
name: 'device::mojom::SensorClient',
|
||||
name: 'device.mojom.SensorClient',
|
||||
kVersion: 0,
|
||||
ptrClass: SensorClientPtr,
|
||||
proxyClass: SensorClientProxy,
|
||||
|
@ -1069,4 +1069,4 @@
|
|||
exports.SensorClient = SensorClient;
|
||||
exports.SensorClientPtr = SensorClientPtr;
|
||||
exports.SensorClientAssociatedPtr = SensorClientAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -411,7 +411,7 @@
|
|||
}
|
||||
|
||||
var SensorProvider = {
|
||||
name: 'device::mojom::SensorProvider',
|
||||
name: 'device.mojom.SensorProvider',
|
||||
kVersion: 0,
|
||||
ptrClass: SensorProviderPtr,
|
||||
proxyClass: SensorProviderProxy,
|
||||
|
@ -426,4 +426,4 @@
|
|||
exports.SensorProvider = SensorProvider;
|
||||
exports.SensorProviderPtr = SensorProviderPtr;
|
||||
exports.SensorProviderAssociatedPtr = SensorProviderAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|