merge mozilla-central to autoland. r=merge a=merge

This commit is contained in:
Sebastian Hengst 2017-10-14 12:39:09 +02:00
Родитель 26a8c96f55 a46c92c8b7
Коммит 4359a8ac3b
52 изменённых файлов: 1772 добавлений и 313 удалений

Просмотреть файл

@ -3467,18 +3467,9 @@ Element::GetTokenList(nsAtom* aAtom,
Element*
Element::Closest(const nsAString& aSelector, ErrorResult& aResult)
{
return WithSelectorList<Element*>(
aSelector,
aResult,
[&](const RawServoSelectorList* aList) -> Element* {
if (!aList) {
return nullptr;
}
return const_cast<Element*>(Servo_SelectorList_Closest(this, aList));
},
[&](nsCSSSelectorList* aList) -> Element* {
if (!aList) {
// Either we failed (and aError already has the exception), or this
nsCSSSelectorList* selectorList = ParseSelectorList(aSelector, aResult);
if (!selectorList) {
// Either we failed (and aResult already has the exception), or this
// is a pseudo-element-only selector that matches nothing.
return nullptr;
}
@ -3492,13 +3483,11 @@ Element::Closest(const nsAString& aSelector, ErrorResult& aResult)
if (node->IsElement() &&
nsCSSRuleProcessor::SelectorListMatches(node->AsElement(),
matchingContext,
aList)) {
selectorList)) {
return node->AsElement();
}
}
return nullptr;
}
);
}
bool

Просмотреть файл

@ -1174,21 +1174,21 @@ var interfaceNamesInGlobalScope =
// IMPORTANT: Do not change this list without review from a DOM peer!
"VideoStreamTrack",
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRDisplay", releaseNonWindows: false},
{name: "VRDisplay", releaseNonWindowsAndMac: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRDisplayCapabilities", releaseNonWindows: false},
{name: "VRDisplayCapabilities", releaseNonWindowsAndMac: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRDisplayEvent", releaseNonWindows: false},
{name: "VRDisplayEvent", releaseNonWindowsAndMac: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VREyeParameters", releaseNonWindows: false},
{name: "VREyeParameters", releaseNonWindowsAndMac: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRFieldOfView", releaseNonWindows: false},
{name: "VRFieldOfView", releaseNonWindowsAndMac: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRFrameData", releaseNonWindows: false},
{name: "VRFrameData", releaseNonWindowsAndMac: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRPose", releaseNonWindows: false},
{name: "VRPose", releaseNonWindowsAndMac: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
{name: "VRStageParameters", releaseNonWindows: false},
{name: "VRStageParameters", releaseNonWindowsAndMac: false},
// IMPORTANT: Do not change this list without review from a DOM peer!
"VTTCue",
// IMPORTANT: Do not change this list without review from a DOM peer!
@ -1317,12 +1317,12 @@ function createInterfaceMap(isXBLScope) {
(entry.xbl === !isXBLScope) ||
(entry.desktop === !isDesktop) ||
(entry.windows === !isWindows) ||
(entry.releaseNonWindows === !isRelease && !isWindows) ||
(entry.mac === !isMac) ||
(entry.linux === !isLinux) ||
(entry.android === !isAndroid && !entry.nightlyAndroid) ||
(entry.stylo === !isStylo) ||
(entry.release === !isRelease) ||
(entry.releaseNonWindowsAndMac === !(isRelease && !isWindows && !isMac)) ||
(entry.isSecureContext === !isSecureContext) ||
entry.disabled) {
interfaceMap[entry.name] = false;

Просмотреть файл

@ -6814,8 +6814,8 @@ HTMLEditRules::ReturnInListItem(Selection& aSelection,
}
nsCOMPtr<Element> brNode;
rv = htmlEditor->CopyLastEditableChildStyles(GetAsDOMNode(prevItem),
GetAsDOMNode(&aListItem),
rv = htmlEditor->CopyLastEditableChildStyles(prevItem,
&aListItem,
getter_AddRefs(brNode));
NS_ENSURE_SUCCESS(rv, rv);
if (brNode) {

Просмотреть файл

@ -3853,20 +3853,6 @@ HTMLEditor::GetPriorHTMLSibling(nsINode* aNode)
return node;
}
nsresult
HTMLEditor::GetPriorHTMLSibling(nsIDOMNode* inNode,
nsCOMPtr<nsIDOMNode>* outNode)
{
NS_ENSURE_TRUE(outNode, NS_ERROR_NULL_POINTER);
*outNode = nullptr;
nsCOMPtr<nsINode> node = do_QueryInterface(inNode);
NS_ENSURE_TRUE(node, NS_ERROR_NULL_POINTER);
*outNode = do_QueryInterface(GetPriorHTMLSibling(node));
return NS_OK;
}
/**
* GetNextHTMLSibling() returns the next editable sibling, if there is
* one within the parent.
@ -3884,20 +3870,6 @@ HTMLEditor::GetNextHTMLSibling(nsINode* aNode)
return node;
}
nsresult
HTMLEditor::GetNextHTMLSibling(nsIDOMNode* inNode,
nsCOMPtr<nsIDOMNode>* outNode)
{
NS_ENSURE_TRUE(outNode, NS_ERROR_NULL_POINTER);
*outNode = nullptr;
nsCOMPtr<nsINode> node = do_QueryInterface(inNode);
NS_ENSURE_TRUE(node, NS_ERROR_NULL_POINTER);
*outNode = do_QueryInterface(GetNextHTMLSibling(node));
return NS_OK;
}
/**
* GetPriorHTMLNode() returns the previous editable leaf node, if there is
* one within the <body>.
@ -3915,20 +3887,6 @@ HTMLEditor::GetPriorHTMLNode(nsINode* aNode,
return GetPriorNode(aNode, true, aNoBlockCrossing);
}
nsresult
HTMLEditor::GetPriorHTMLNode(nsIDOMNode* aNode,
nsCOMPtr<nsIDOMNode>* aResultNode,
bool aNoBlockCrossing)
{
NS_ENSURE_TRUE(aResultNode, NS_ERROR_NULL_POINTER);
nsCOMPtr<nsINode> node = do_QueryInterface(aNode);
NS_ENSURE_TRUE(node, NS_ERROR_NULL_POINTER);
*aResultNode = do_QueryInterface(GetPriorHTMLNode(node, aNoBlockCrossing));
return NS_OK;
}
/**
* GetPriorHTMLNode() is same as above but takes {parent,offset} instead of
* node.
@ -3967,20 +3925,6 @@ HTMLEditor::GetNextHTMLNode(nsINode* aNode,
return result;
}
nsresult
HTMLEditor::GetNextHTMLNode(nsIDOMNode* aNode,
nsCOMPtr<nsIDOMNode>* aResultNode,
bool aNoBlockCrossing)
{
NS_ENSURE_TRUE(aResultNode, NS_ERROR_NULL_POINTER);
nsCOMPtr<nsINode> node = do_QueryInterface(aNode);
NS_ENSURE_TRUE(node, NS_ERROR_NULL_POINTER);
*aResultNode = do_QueryInterface(GetNextHTMLNode(node, aNoBlockCrossing));
return NS_OK;
}
/**
* GetNextHTMLNode() is same as above but takes {parent,offset} instead of node.
*/
@ -4554,44 +4498,39 @@ HTMLEditor::AreNodesSameType(nsIContent* aNode1,
}
nsresult
HTMLEditor::CopyLastEditableChildStyles(nsIDOMNode* aPreviousBlock,
nsIDOMNode* aNewBlock,
HTMLEditor::CopyLastEditableChildStyles(nsINode* aPreviousBlock,
nsINode* aNewBlock,
Element** aOutBrNode)
{
nsCOMPtr<nsINode> newBlock = do_QueryInterface(aNewBlock);
NS_ENSURE_STATE(newBlock || !aNewBlock);
*aOutBrNode = nullptr;
nsCOMPtr<nsIDOMNode> child, tmp;
nsCOMPtr<nsINode> child, tmp;
// first, clear out aNewBlock. Contract is that we want only the styles from previousBlock.
nsresult rv = aNewBlock->GetFirstChild(getter_AddRefs(child));
while (NS_SUCCEEDED(rv) && child) {
rv = DeleteNode(child);
child = aNewBlock->GetFirstChild();
while (child) {
nsresult rv = DeleteNode(child);
NS_ENSURE_SUCCESS(rv, rv);
rv = aNewBlock->GetFirstChild(getter_AddRefs(child));
child = aNewBlock->GetFirstChild();
}
// now find and clone the styles
child = aPreviousBlock;
tmp = aPreviousBlock;
while (tmp) {
child = tmp;
nsCOMPtr<nsINode> child_ = do_QueryInterface(child);
NS_ENSURE_STATE(child_ || !child);
tmp = GetAsDOMNode(GetLastEditableChild(*child_));
tmp = GetLastEditableChild(*child);
}
while (child && TextEditUtils::IsBreak(child)) {
nsCOMPtr<nsIDOMNode> priorNode;
rv = GetPriorHTMLNode(child, address_of(priorNode));
NS_ENSURE_SUCCESS(rv, rv);
child = priorNode;
child = GetPriorHTMLNode(child);
}
nsCOMPtr<Element> newStyles, deepestStyle;
nsCOMPtr<nsINode> childNode = do_QueryInterface(child);
nsCOMPtr<nsINode> childNode = child;
nsCOMPtr<Element> childElement;
if (childNode) {
childElement = childNode->IsElement() ? childNode->AsElement()
: childNode->GetParentElement();
}
while (childElement && (childElement->AsDOMNode() != aPreviousBlock)) {
while (childElement && (childElement != aPreviousBlock)) {
if (HTMLEditUtils::IsInlineStyle(childElement) ||
childElement->IsHTMLElement(nsGkAtoms::span)) {
if (newStyles) {

Просмотреть файл

@ -152,8 +152,8 @@ public:
NS_DECL_NSIHTMLINLINETABLEEDITOR
// XXX Following methods are not overriding but defined here...
nsresult CopyLastEditableChildStyles(nsIDOMNode* aPreviousBlock,
nsIDOMNode* aNewBlock,
nsresult CopyLastEditableChildStyles(nsINode* aPreviousBlock,
nsINode* aNewBlock,
Element** aOutBrNode);
nsresult LoadHTML(const nsAString& aInputString);
@ -770,23 +770,15 @@ protected:
nsresult RemoveBlockContainer(nsIContent& aNode);
nsIContent* GetPriorHTMLSibling(nsINode* aNode);
nsresult GetPriorHTMLSibling(nsIDOMNode*inNode,
nsCOMPtr<nsIDOMNode>* outNode);
nsIContent* GetNextHTMLSibling(nsINode* aNode);
nsresult GetNextHTMLSibling(nsIDOMNode* inNode,
nsCOMPtr<nsIDOMNode>* outNode);
nsIContent* GetPriorHTMLNode(nsINode* aNode, bool aNoBlockCrossing = false);
nsresult GetPriorHTMLNode(nsIDOMNode* inNode, nsCOMPtr<nsIDOMNode>* outNode,
bool bNoBlockCrossing = false);
nsIContent* GetPriorHTMLNode(nsINode* aParent, int32_t aOffset,
nsINode* aChildAtOffset,
bool aNoBlockCrossing = false);
nsIContent* GetNextHTMLNode(nsINode* aNode, bool aNoBlockCrossing = false);
nsresult GetNextHTMLNode(nsIDOMNode* inNode, nsCOMPtr<nsIDOMNode>* outNode,
bool bNoBlockCrossing = false);
nsIContent* GetNextHTMLNode(nsINode* aParent, int32_t aOffset,
nsINode* aChildAtOffset,
bool aNoBlockCrossing = false);

Просмотреть файл

@ -84,6 +84,9 @@ using namespace mozilla::widget;
static bool
CreateConfig(EGLConfig* aConfig, bool aEnableDepthBuffer);
static bool
CreateConfig(EGLConfig* aConfig, int32_t depth, bool aEnableDepthBuffer);
// append three zeros at the end of attribs list to work around
// EGL implementation bugs that iterate until they find 0, instead of
// EGL_NONE. See bug 948406.
@ -177,10 +180,20 @@ GLContextEGLFactory::Create(EGLNativeWindowType aWindow,
bool doubleBuffered = true;
EGLConfig config;
if (aWebRender && sEGLLibrary.IsANGLE()) {
// Force enable alpha channel to make sure ANGLE use correct framebuffer formart
const int bpp = 32;
const bool withDepth = true;
if (!CreateConfig(&config, bpp, withDepth)) {
gfxCriticalNote << "Failed to create EGLConfig for WebRender ANGLE!";
return nullptr;
}
} else {
if (!CreateConfig(&config, aWebRender)) {
gfxCriticalNote << "Failed to create EGLConfig!";
return nullptr;
}
}
EGLSurface surface = mozilla::gl::CreateSurfaceFromNativeWindow(aWindow, config);

Просмотреть файл

@ -33,6 +33,7 @@ TEST_FILES = \
js1_8_1/ \
js1_8_5/ \
shell/ \
test/ \
test262/ \
$(NULL)

Просмотреть файл

@ -1,6 +1,9 @@
# Manifest entries for imported test suites whose individual test cases
# we don't want to change.
# Skip the folder with tests for the scripts
skip include test/jstests.list
skip script ecma_6/String/normalize-generateddata-input.js # input data for other test
# Skip intl402 tests when Intl isn't available.
@ -121,6 +124,7 @@ skip script test262/built-ins/TypedArrays/internals/HasProperty/detached-buffer-
skip script test262/built-ins/TypedArrays/internals/HasProperty/detached-buffer.js
skip script test262/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js
skip script test262/built-ins/TypedArrays/internals/Set/detached-buffer.js
skip script test262/harness/detachArrayBuffer.js
# https://bugzilla.mozilla.org/show_bug.cgi?id=1129202
skip script test262/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-greater-than-last-index.js
@ -488,12 +492,28 @@ skip script test262/language/statements/async-generator/yield-star-async-next.js
skip script test262/language/statements/class/async-gen-method-yield-star-async-next.js
skip script test262/language/statements/class/async-gen-method-static-yield-star-async-next.js
# Optional Catch Binding
# https://bugzilla.mozilla.org/show_bug.cgi?id=1380881
skip script test262/language/statements/try/optional-catch-binding-lexical.js
skip script test262/language/statements/try/optional-catch-binding-throws.js
skip script test262/language/statements/try/optional-catch-binding-finally.js
skip script test262/language/statements/try/optional-catch-binding.js
# Promise.prototype.finally
# https://bugzilla.mozilla.org/show_bug.cgi?id=1019116
skip script test262/built-ins/Promise/prototype/finally/invokes-then-with-function.js
skip script test262/built-ins/Promise/prototype/finally/invokes-then-with-non-function.js
skip script test262/built-ins/Promise/prototype/finally/is-a-function.js
skip script test262/built-ins/Promise/prototype/finally/length.js
skip script test262/built-ins/Promise/prototype/finally/name.js
skip script test262/built-ins/Promise/prototype/finally/prop-desc.js
skip script test262/built-ins/Promise/prototype/finally/rejected-observable-then-calls.js
skip script test262/built-ins/Promise/prototype/finally/rejection-reason-no-fulfill.js
skip script test262/built-ins/Promise/prototype/finally/rejection-reason-override-with-throw.js
skip script test262/built-ins/Promise/prototype/finally/resolution-value-no-override.js
skip script test262/built-ins/Promise/prototype/finally/resolved-observable-then-calls.js
skip script test262/built-ins/Promise/prototype/finally/this-value-then-poisoned.js
skip script test262/built-ins/Promise/prototype/finally/this-value-then-throws.js
###########################################################
# Tests disabled due to issues in test262 importer script #

Просмотреть файл

@ -0,0 +1 @@
PyYAML==3.12

Просмотреть файл

@ -0,0 +1,25 @@
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
info: |
foo bar baz
description: |
Outside AsyncFunction, |await| is a perfectly cromulent LexicalDeclaration variable
name. Therefore ASI doesn't apply, and so the |0| where a |=| was expected is a
syntax error.
author: Jeff Walden <jwalden+code@mit.edu>
negative:
phase: early
type: SyntaxError
flags:
- module
esid: sec-let-and-const-declarations
features:
- foobar
---*/
function f() {
let
await 0;
}

Просмотреть файл

@ -0,0 +1,22 @@
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-let-and-const-declarations
features: []
negative:
phase: runtime
type: SyntaxError
description: |
Outside AsyncFunction, |await| is a perfectly cromulent LexicalDeclaration variable
name. Therefore ASI doesn't apply, and so the |0| where a |=| was expected is a
syntax error.
---*/
eval(`
function f() {
let
await 0;
}
`);

Просмотреть файл

@ -0,0 +1,21 @@
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
negative:
phase: early
type: SyntaxError
author: Jeff Walden <jwalden+code@mit.edu>
features: []
description: |
Outside AsyncFunction, |await| is a perfectly cromulent LexicalDeclaration variable
name. Therefore ASI doesn't apply, and so the |0| where a |=| was expected is a
syntax error.
esid: sec-let-and-const-declarations
---*/
function f() {
let
await 0;
}

Просмотреть файл

@ -0,0 +1,18 @@
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Jeff Walden <jwalden+code@mit.edu>
description: |
'|await| is excluded from LexicalDeclaration by grammar parameter, in AsyncFunction. Therefore
|let| followed by |await| inside AsyncFunction is an ASI opportunity, and this code
must parse without error.'
esid: sec-let-and-const-declarations
---*/
async function f() {
let
await 0;
}
assert.sameValue(true, f instanceof Function);

Просмотреть файл

@ -0,0 +1,23 @@
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: |
assert.sameValue
esid: pending
---*/
var a = 42;
// comment
assert.sameValue(trueish, true, "ok");
assert.sameValue ( true, /*lol*/true, "ok");
assert.sameValue(true, f instanceof Function);
assert.sameValue(true, true, "don't crash");
assert.sameValue(42, foo);
// this was a assert.sameValue Line

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -0,0 +1,25 @@
// |reftest| error:SyntaxError module
// Copyright (C) 2017 André Bargull. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-grammar-notation
description: >
The `default` keyword must not contain Unicode escape sequences.
info: >
Terminal symbols of the lexical, RegExp, and numeric string grammars are shown
in fixed width font, both in the productions of the grammars and throughout this
specification whenever the text directly refers to such a terminal symbol. These
are to appear in a script exactly as written. All terminal symbol code points
specified in this way are to be understood as the appropriate Unicode code points
from the Basic Latin range, as opposed to any similar-looking code points from
other Unicode ranges.
negative:
phase: early
type: SyntaxError
flags: [module]
---*/
throw "Test262: This statement should not be evaluated.";
export d\u0065fault 0;

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -0,0 +1,561 @@
// file: assert.js
// Copyright (C) 2017 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: |
Collection of assertion functions used throughout test262
---*/
function assert(mustBeTrue, message) {
if (mustBeTrue === true) {
return;
}
if (message === undefined) {
message = 'Expected true but got ' + String(mustBeTrue);
}
$ERROR(message);
}
assert._isSameValue = function (a, b) {
if (a === b) {
// Handle +/-0 vs. -/+0
return a !== 0 || 1 / a === 1 / b;
}
// Handle NaN vs. NaN
return a !== a && b !== b;
};
assert.sameValue = function (actual, expected, message) {
if (assert._isSameValue(actual, expected)) {
return;
}
if (message === undefined) {
message = '';
} else {
message += ' ';
}
message += 'Expected SameValue(«' + String(actual) + '», «' + String(expected) + '») to be true';
$ERROR(message);
};
assert.notSameValue = function (actual, unexpected, message) {
if (!assert._isSameValue(actual, unexpected)) {
return;
}
if (message === undefined) {
message = '';
} else {
message += ' ';
}
message += 'Expected SameValue(«' + String(actual) + '», «' + String(unexpected) + '») to be false';
$ERROR(message);
};
assert.throws = function (expectedErrorConstructor, func, message) {
if (typeof func !== "function") {
$ERROR('assert.throws requires two arguments: the error constructor ' +
'and a function to run');
return;
}
if (message === undefined) {
message = '';
} else {
message += ' ';
}
try {
func();
} catch (thrown) {
if (typeof thrown !== 'object' || thrown === null) {
message += 'Thrown value was not an object!';
$ERROR(message);
} else if (thrown.constructor !== expectedErrorConstructor) {
message += 'Expected a ' + expectedErrorConstructor.name + ' but got a ' + thrown.constructor.name;
$ERROR(message);
}
return;
}
message += 'Expected a ' + expectedErrorConstructor.name + ' to be thrown but no exception was thrown at all';
$ERROR(message);
};
assert.throws.early = function(err, code) {
let wrappedCode = `function wrapperFn() { ${code} }`;
let ieval = eval;
assert.throws(err, () => { Function(wrappedCode); }, `Function: ${code}`);
};
// file: compareArray.js
// Copyright (C) 2017 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: |
Compare the contents of two arrays
---*/
function compareArray(a, b) {
if (b.length !== a.length) {
return false;
}
for (var i = 0; i < a.length; i++) {
if (b[i] !== a[i]) {
return false;
}
}
return true;
}
assert.compareArray = function(actual, expected, message) {
assert(compareArray(actual, expected),
`Expected [${actual.join(", ")}] and [${expected.join(", ")}] to have the same contents. ${message}`);
};
// file: propertyHelper.js
// Copyright (C) 2017 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: |
Collection of functions used to safely verify the correctness of
property descriptors.
---*/
function verifyProperty(obj, name, desc, options) {
assert(
arguments.length > 2,
'verifyProperty should receive at least 3 arguments: obj, name, and descriptor'
);
var originalDesc = Object.getOwnPropertyDescriptor(obj, name);
var nameStr = String(name);
// Allows checking for undefined descriptor if it's explicitly given.
if (desc === undefined) {
assert.sameValue(
originalDesc,
undefined,
`obj['${nameStr}'] descriptor should be undefined`
);
// desc and originalDesc are both undefined, problem solved;
return true;
}
assert(
Object.prototype.hasOwnProperty.call(obj, name),
`obj should have an own property ${nameStr}`
);
assert.notSameValue(
desc,
null,
`The desc argument should be an object or undefined, null`
);
assert.sameValue(
typeof desc,
"object",
`The desc argument should be an object or undefined, ${String(desc)}`
);
var failures = [];
if (Object.prototype.hasOwnProperty.call(desc, 'value')) {
if (desc.value !== originalDesc.value) {
failures.push(`descriptor value should be ${desc.value}`);
}
}
if (Object.prototype.hasOwnProperty.call(desc, 'enumerable')) {
if (desc.enumerable !== originalDesc.enumerable ||
desc.enumerable !== isEnumerable(obj, name)) {
failures.push(`descriptor should ${desc.enumerable ? '' : 'not '}be enumerable`);
}
}
if (Object.prototype.hasOwnProperty.call(desc, 'writable')) {
if (desc.writable !== originalDesc.writable ||
desc.writable !== isWritable(obj, name)) {
failures.push(`descriptor should ${desc.writable ? '' : 'not '}be writable`);
}
}
if (Object.prototype.hasOwnProperty.call(desc, 'configurable')) {
if (desc.configurable !== originalDesc.configurable ||
desc.configurable !== isConfigurable(obj, name)) {
failures.push(`descriptor should ${desc.configurable ? '' : 'not '}be configurable`);
}
}
assert.sameValue(failures.length, 0, failures.join('; '));
if (options && options.restore) {
Object.defineProperty(obj, name, originalDesc);
}
return true;
}
function isConfigurable(obj, name) {
try {
delete obj[name];
} catch (e) {
if (!(e instanceof TypeError)) {
$ERROR("Expected TypeError, got " + e);
}
}
return !Object.prototype.hasOwnProperty.call(obj, name);
}
function isEnumerable(obj, name) {
var stringCheck = false;
if (typeof name === "string") {
for (var x in obj) {
if (x === name) {
stringCheck = true;
break;
}
}
} else {
// skip it if name is not string, works for Symbol names.
stringCheck = true;
}
return stringCheck &&
Object.prototype.hasOwnProperty.call(obj, name) &&
Object.prototype.propertyIsEnumerable.call(obj, name);
}
function isEqualTo(obj, name, expectedValue) {
var actualValue = obj[name];
return assert._isSameValue(actualValue, expectedValue);
}
function isWritable(obj, name, verifyProp, value) {
var newValue = value || "unlikelyValue";
var hadValue = Object.prototype.hasOwnProperty.call(obj, name);
var oldValue = obj[name];
var writeSucceeded;
try {
obj[name] = newValue;
} catch (e) {
if (!(e instanceof TypeError)) {
$ERROR("Expected TypeError, got " + e);
}
}
writeSucceeded = isEqualTo(obj, verifyProp || name, newValue);
// Revert the change only if it was successful (in other cases, reverting
// is unnecessary and may trigger exceptions for certain property
// configurations)
if (writeSucceeded) {
if (hadValue) {
obj[name] = oldValue;
} else {
delete obj[name];
}
}
return writeSucceeded;
}
function verifyEqualTo(obj, name, value) {
if (!isEqualTo(obj, name, value)) {
$ERROR("Expected obj[" + String(name) + "] to equal " + value +
", actually " + obj[name]);
}
}
function verifyWritable(obj, name, verifyProp, value) {
if (!verifyProp) {
assert(Object.getOwnPropertyDescriptor(obj, name).writable,
"Expected obj[" + String(name) + "] to have writable:true.");
}
if (!isWritable(obj, name, verifyProp, value)) {
$ERROR("Expected obj[" + String(name) + "] to be writable, but was not.");
}
}
function verifyNotWritable(obj, name, verifyProp, value) {
if (!verifyProp) {
assert(!Object.getOwnPropertyDescriptor(obj, name).writable,
"Expected obj[" + String(name) + "] to have writable:false.");
}
if (isWritable(obj, name, verifyProp)) {
$ERROR("Expected obj[" + String(name) + "] NOT to be writable, but was.");
}
}
function verifyEnumerable(obj, name) {
assert(Object.getOwnPropertyDescriptor(obj, name).enumerable,
"Expected obj[" + String(name) + "] to have enumerable:true.");
if (!isEnumerable(obj, name)) {
$ERROR("Expected obj[" + String(name) + "] to be enumerable, but was not.");
}
}
function verifyNotEnumerable(obj, name) {
assert(!Object.getOwnPropertyDescriptor(obj, name).enumerable,
"Expected obj[" + String(name) + "] to have enumerable:false.");
if (isEnumerable(obj, name)) {
$ERROR("Expected obj[" + String(name) + "] NOT to be enumerable, but was.");
}
}
function verifyConfigurable(obj, name) {
assert(Object.getOwnPropertyDescriptor(obj, name).configurable,
"Expected obj[" + String(name) + "] to have configurable:true.");
if (!isConfigurable(obj, name)) {
$ERROR("Expected obj[" + String(name) + "] to be configurable, but was not.");
}
}
function verifyNotConfigurable(obj, name) {
assert(!Object.getOwnPropertyDescriptor(obj, name).configurable,
"Expected obj[" + String(name) + "] to have configurable:false.");
if (isConfigurable(obj, name)) {
$ERROR("Expected obj[" + String(name) + "] NOT to be configurable, but was.");
}
}
// file: sta.js
// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: |
Provides both:
- An error class to avoid false positives when testing for thrown exceptions
- A function to explicitly throw an exception using the Test262Error class
---*/
function Test262Error(message) {
this.message = message || "";
}
Test262Error.prototype.toString = function () {
return "Test262Error: " + this.message;
};
var $ERROR;
$ERROR = function $ERROR(message) {
throw new Test262Error(message);
};
// file: test262-host.js
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
// https://github.com/tc39/test262/blob/master/INTERPRETING.md#host-defined-functions
;(function createHostObject(global) {
var FunctionToString = global.Function.prototype.toString;
var ReflectApply = global.Reflect.apply;
var NewGlobal = global.newGlobal;
var Atomics = global.Atomics;
var SharedArrayBuffer = global.SharedArrayBuffer;
var Int32Array = global.Int32Array;
var setSharedArrayBuffer = global.setSharedArrayBuffer;
var getSharedArrayBuffer = global.getSharedArrayBuffer;
var evalInWorker = global.evalInWorker;
var hasThreads = ("helperThreadCount" in global ? global.helperThreadCount() > 0 : true);
var hasMailbox = typeof setSharedArrayBuffer == "function" && typeof getSharedArrayBuffer == "function";
var hasEvalInWorker = typeof evalInWorker == "function";
// The $262.agent framework is not appropriate for browsers yet, and some
// test cases can't work in browsers (they block the main thread).
var shellCode = hasMailbox && hasEvalInWorker;
var sabTestable = Atomics && SharedArrayBuffer && hasThreads && shellCode;
global.$262 = {
__proto__: null,
createRealm() {
var newGlobalObject = NewGlobal();
var createHostObjectFn = ReflectApply(FunctionToString, createHostObject, []);
newGlobalObject.Function(`${createHostObjectFn} createHostObject(this);`)();
return newGlobalObject.$262;
},
detachArrayBuffer: global.detachArrayBuffer,
evalScript: global.evaluateScript || global.evaluate,
global,
agent: (function () {
// SpiderMonkey complication: With run-time argument --no-threads
// our test runner will not properly filter test cases that can't be
// run because agents can't be started, and so we do a little
// filtering here: We will quietly succeed and exit if an agent test
// should not have been run because threads cannot be started.
//
// Firefox complication: The test cases that use $262.agent can't
// currently work in the browser, so for now we rely on them not
// being run at all.
if (!sabTestable) {
return {
_notAvailable() {
// See comment above.
if (!hasThreads && shellCode) {
global.reportCompare(0,0);
global.quit(0);
}
throw new Error("Agents not available");
},
start(script) { this._notAvailable() },
broadcast(sab, id) { this._notAvailable() },
getReport() { this._notAvailable() },
sleep(s) { this._notAvailable() }
}
}
// The SpiderMonkey implementation uses a designated shared buffer _ia
// for coordination, and spinlocks for everything except sleeping.
var _MSG_LOC = 0; // Low bit set: broadcast available; High bits: seq #
var _ID_LOC = 1; // ID sent with broadcast
var _ACK_LOC = 2; // Worker increments this to ack that broadcast was received
var _RDY_LOC = 3; // Worker increments this to ack that worker is up and running
var _LOCKTXT_LOC = 4; // Writer lock for the text buffer: 0=open, 1=closed
var _NUMTXT_LOC = 5; // Count of messages in text buffer
var _NEXT_LOC = 6; // First free location in the buffer
var _SLEEP_LOC = 7; // Used for sleeping
var _FIRST = 10; // First location of first message
var _ia = new Int32Array(new SharedArrayBuffer(65536));
_ia[_NEXT_LOC] = _FIRST;
var _worker_prefix =
// BEGIN WORKER PREFIX
`if (typeof $262 == 'undefined')
$262 = {};
$262.agent = (function () {
var _ia = new Int32Array(getSharedArrayBuffer());
var agent = {
receiveBroadcast(receiver) {
var k;
while (((k = Atomics.load(_ia, ${_MSG_LOC})) & 1) == 0)
;
var received_sab = getSharedArrayBuffer();
var received_id = Atomics.load(_ia, ${_ID_LOC});
Atomics.add(_ia, ${_ACK_LOC}, 1);
while (Atomics.load(_ia, ${_MSG_LOC}) == k)
;
receiver(received_sab, received_id);
},
report(msg) {
while (Atomics.compareExchange(_ia, ${_LOCKTXT_LOC}, 0, 1) == 1)
;
msg = "" + msg;
var i = _ia[${_NEXT_LOC}];
_ia[i++] = msg.length;
for ( let j=0 ; j < msg.length ; j++ )
_ia[i++] = msg.charCodeAt(j);
_ia[${_NEXT_LOC}] = i;
Atomics.add(_ia, ${_NUMTXT_LOC}, 1);
Atomics.store(_ia, ${_LOCKTXT_LOC}, 0);
},
sleep(s) {
Atomics.wait(_ia, ${_SLEEP_LOC}, 0, s);
},
leaving() {}
};
Atomics.add(_ia, ${_RDY_LOC}, 1);
return agent;
})();`;
// END WORKER PREFIX
return {
_numWorkers: 0,
_numReports: 0,
_reportPtr: _FIRST,
_bailIfNotAvailable() {
if (!sabTestable) {
// See comment above.
if (!hasThreads && shellCode) {
global.reportCompare(0,0);
global.quit(0);
}
throw new Error("Agents not available");
}
},
start(script) {
this._bailIfNotAvailable();
setSharedArrayBuffer(_ia.buffer);
var oldrdy = Atomics.load(_ia, _RDY_LOC);
evalInWorker(_worker_prefix + script);
while (Atomics.load(_ia, _RDY_LOC) == oldrdy)
;
this._numWorkers++;
},
broadcast(sab, id) {
this._bailIfNotAvailable();
setSharedArrayBuffer(sab);
Atomics.store(_ia, _ID_LOC, id);
Atomics.store(_ia, _ACK_LOC, 0);
Atomics.add(_ia, _MSG_LOC, 1);
while (Atomics.load(_ia, _ACK_LOC) < this._numWorkers)
;
Atomics.add(_ia, _MSG_LOC, 1);
},
getReport() {
this._bailIfNotAvailable();
if (this._numReports == Atomics.load(_ia, _NUMTXT_LOC))
return null;
var s = "";
var i = this._reportPtr;
var len = _ia[i++];
for ( let j=0 ; j < len ; j++ )
s += String.fromCharCode(_ia[i++]);
this._reportPtr = i;
this._numReports++;
return s;
},
sleep(s) {
this._bailIfNotAvailable();
Atomics.wait(_ia, _SLEEP_LOC, 0, s);
},
};
})()
};
})(this);
var $mozAsyncTestDone = false;
function $DONE(failure) {
// This function is generally called from within a Promise handler, so any
// exception thrown by this method will be swallowed and most likely
// ignored by the Promise machinery.
if ($mozAsyncTestDone) {
reportFailure("$DONE() already called");
return;
}
$mozAsyncTestDone = true;
if (failure)
reportFailure(failure);
else
reportCompare(0, 0);
}

Просмотреть файл

@ -0,0 +1,2 @@
reportCompare(0, 0);

Просмотреть файл

@ -0,0 +1,2 @@
reportCompare(0, 0);

Просмотреть файл

Просмотреть файл

@ -0,0 +1,2 @@
reportCompare(0, 0);

Просмотреть файл

Просмотреть файл

@ -0,0 +1,14 @@
From the branch smTempBranch in {{folder}}
Files being copied to the local folder:
test/language/export/escaped-foobarbaz.js
test/temp42/bar.js
test/temp42/baz.js
test/temp42/foo.js
Deleted files (use this list to update the skip list):
test/language/export/escaped-from.js
Renamed files (already added with the new names):
rename test/language/export/{escaped-default.js => escaped-foobarbaz.js} (100%)

1
js/src/tests/test/fixtures/export/.ignore.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1 @@
.

1
js/src/tests/test/fixtures/export/browser.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1 @@
// not an empty file

0
js/src/tests/test/fixtures/export/empty.js поставляемый Normal file
Просмотреть файл

1
js/src/tests/test/fixtures/export/ignore.js~ поставляемый Normal file
Просмотреть файл

@ -0,0 +1 @@
.

20
js/src/tests/test/fixtures/export/multi-header.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1,20 @@
// |reftest| skip-if(!this.hasOwnProperty('foobar')||outro()) error:SyntaxError module -- foo bar baz
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Jeff Walden <jwalden+code@mit.edu>
esid: sec-let-and-const-declarations
description: >
Outside AsyncFunction, |await| is a perfectly cromulent LexicalDeclaration
variable name. Therefore ASI doesn't apply, and so the |0| where a |=| was
expected is a syntax error.
negative:
phase: early
type: SyntaxError
---*/
function f() {
let
await 0;
}

Просмотреть файл

@ -0,0 +1,19 @@
// |reftest| error:SyntaxError
/*---
esid: sec-let-and-const-declarations
description: >
Outside AsyncFunction, |await| is a perfectly cromulent LexicalDeclaration
variable name. Therefore ASI doesn't apply, and so the |0| where a |=| was
expected is a syntax error.
negative:
phase: runtime
type: SyntaxError
---*/
eval(`
function f() {
let
await 0;
}
`);

15
js/src/tests/test/fixtures/export/reftest-error-syntaxerror.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1,15 @@
// |reftest| error:SyntaxError
/*---
author: Jeff Walden <jwalden+code@mit.edu>
esid: sec-let-and-const-declarations
description: >
Outside AsyncFunction, |await| is a perfectly cromulent LexicalDeclaration
variable name. Therefore ASI doesn't apply, and so the |0| where a |=| was
expected is a syntax error.
---*/
function f() {
let
await 0;
}

18
js/src/tests/test/fixtures/export/regular.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1,18 @@
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Jeff Walden <jwalden+code@mit.edu>
esid: sec-let-and-const-declarations
description: >
|await| is excluded from LexicalDeclaration by grammar parameter, in
AsyncFunction. Therefore |let| followed by |await| inside AsyncFunction is
an ASI opportunity, and this code must parse without error.
---*/
async function f() {
let
await 0;
}
reportCompare(true, f instanceof Function);

38
js/src/tests/test/fixtures/export/reportCompare.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1,38 @@
// Copyright (C) 2017 Mozilla Corporation. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: reportCompare
---*/
var a = 42;
reportCompare(0, 0)
reportCompare(0, 0);
reportCompare(0, 0, "ok")
reportCompare(true, true, "ok"); // comment
reportCompare(trueish, true, "ok");
reportCompare ( 0 , 0 ) ;
reportCompare ( 0 , 0, "ok")
reportCompare ( true, /*lol*/true, "ok");
reportCompare(null, null, "test");
reportCompare(true, f instanceof Function);
reportCompare(true, true)
reportCompare(true, true);
reportCompare(true, true, "don't crash");
reportCompare(true,true);
this.reportCompare && reportCompare(0, 0, "ok");
this.reportCompare && reportCompare(true, true);
this.reportCompare && reportCompare(true,true);
reportCompare(42, foo);
reportCompare(0, 0); // this was a reportCompare Line
reportCompare(
true,
true
);

1
js/src/tests/test/fixtures/export/shell.js поставляемый Normal file
Просмотреть файл

@ -0,0 +1 @@
// not an empty file

0
js/src/tests/test/fixtures/import/files/bar.js поставляемый Normal file
Просмотреть файл

0
js/src/tests/test/fixtures/import/files/baz.js поставляемый Normal file
Просмотреть файл

0
js/src/tests/test/fixtures/import/files/foo.js поставляемый Normal file
Просмотреть файл

133
js/src/tests/test/run.py Executable file
Просмотреть файл

@ -0,0 +1,133 @@
#!/usr/bin/env python
# Adapted from https://github.com/tc39/test262/blob/master/tools/generation/test/run.py
import shutil, subprocess, contextlib, tempfile, sys, os, unittest
testDir = os.path.dirname(os.path.relpath(__file__))
OUT_DIR = os.path.join(testDir, 'out')
EXPECTED_DIR = os.path.join(testDir, 'expected')
ex = os.path.join(testDir, '..', 'test262-export.py')
importExec = os.path.join(testDir, '..', 'test262-update.py')
test262Url = 'git://github.com/tc39/test262.git'
@contextlib.contextmanager
def TemporaryDirectory():
tmpDir = tempfile.mkdtemp()
try:
yield tmpDir
finally:
shutil.rmtree(tmpDir)
class TestExport(unittest.TestCase):
maxDiff = None
def exportScript(self):
relpath = os.path.relpath(os.path.join(testDir, 'fixtures', 'export'))
sp = subprocess.Popen(
[ex, relpath, '--out', OUT_DIR],
stdout=subprocess.PIPE)
stdout, stderr = sp.communicate()
return dict(stdout=stdout, stderr=stderr, returncode=sp.returncode)
def importLocal(self):
with TemporaryDirectory() as cloneDir:
branch = 'smTempBranch'
# Clone Test262 to a local branch
subprocess.check_call(
['git', 'clone', '--depth=1', test262Url, cloneDir]
)
# Checkout to a new branch
subprocess.check_call(
['git', '-C', cloneDir, 'checkout', '-b', branch]
)
# Make changes on the new branch
# Remove test/language/export/escaped-from.js
subprocess.check_call(
['git', '-C', cloneDir, 'rm',
'test/language/export/escaped-from.js']
)
# Rename test/language/export/escaped-default.js
subprocess.check_call(
['git', '-C', cloneDir, 'mv',
'test/language/export/escaped-default.js',
'test/language/export/escaped-foobarbaz.js',
]
)
# Copy fixtures files
fixturesDir = os.path.join(testDir, 'fixtures', 'import', 'files')
shutil.copytree(fixturesDir, os.path.join(cloneDir, 'test', 'temp42'))
# Stage and Commit changes
subprocess.check_call(['git', '-C', cloneDir, 'add', '.'])
subprocess.check_call(['git', '-C', cloneDir, 'commit', '-m', '"local foo"'])
# Run import script
print("%s --local %s --out %s" % (importExec, cloneDir, OUT_DIR))
sp = subprocess.Popen(
[importExec, '--local', cloneDir, '--out', OUT_DIR],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
stdoutdata, _ = sp.communicate()
return stdoutdata, sp.returncode, cloneDir
def isTestFile(self, filename):
return not (
filename.startswith('.') or
filename.startswith('#') or
filename.endswith('~')
)
def getFiles(self, path):
names = []
for root, _, fileNames in os.walk(path):
for fileName in filter(self.isTestFile, fileNames):
names.append(os.path.join(root, fileName))
names.sort()
return names
def compareTrees(self, targetName):
expectedPath = os.path.join(EXPECTED_DIR, targetName)
actualPath = OUT_DIR
expectedFiles = self.getFiles(expectedPath)
actualFiles = self.getFiles(actualPath)
self.assertListEqual(
map(lambda x: os.path.relpath(x, expectedPath), expectedFiles),
map(lambda x: os.path.relpath(x, actualPath), actualFiles))
for expectedFile, actualFile in zip(expectedFiles, actualFiles):
with open(expectedFile) as expectedHandle:
with open(actualFile) as actualHandle:
self.assertMultiLineEqual(
expectedHandle.read(),
actualHandle.read())
def compareContents(self, output, filePath, folder):
with open(filePath, "rb") as file:
expected = file.read()
expected = expected.replace('{{folder}}', folder)
self.assertMultiLineEqual(output, expected)
def tearDown(self):
shutil.rmtree(OUT_DIR, ignore_errors=True)
def test_export(self):
result = self.exportScript()
self.assertEqual(result['returncode'], 0)
self.compareTrees('export')
def test_import_local(self):
output, returncode, folder = self.importLocal()
self.assertEqual(returncode, 0)
self.compareTrees(os.path.join('import', 'files'))
self.compareContents(
output,
os.path.join(testDir, 'expected', 'import', 'output.txt'),
folder
)
if __name__ == '__main__':
unittest.main()

359
js/src/tests/test262-export.py Executable file
Просмотреть файл

@ -0,0 +1,359 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import print_function
import contextlib
import os
import re
import tempfile
import shutil
import sys
import yaml
from functools import partial
from itertools import chain, imap
# Skip all common files used to support tests for jstests
# These files are listed in the README.txt
SUPPORT_FILES = set(["browser.js", "shell.js", "template.js", "user.js",
"js-test-driver-begin.js", "js-test-driver-end.js"])
FRONTMATTER_WRAPPER_PATTERN = re.compile(
r'/\*\---\n([\s]*)((?:\s|\S)*)[\n\s*]---\*/', flags=re.DOTALL)
def convertTestFile(source):
"""
Convert a jstest test to a compatible Test262 test file.
"""
source = convertReportCompare(source)
source = updateMeta(source)
source = insertCopyrightLines(source)
return source
def convertReportCompare(source):
"""
Captures all the reportCompare and convert them accordingly.
Cases with reportCompare calls where the arguments are the same and one of
0, true, or null, will be discarded as they are not necessary for Test262.
Otherwise, reportCompare will be replaced with assert.sameValue, as the
equivalent in Test262
"""
def replaceFn(matchobj):
actual = matchobj.group(1)
expected = matchobj.group(2)
if actual == expected and actual in ["0", "true", "null"]:
return ""
return matchobj.group()
newSource = re.sub(
r'.*reportCompare\s*\(\s*(\w*)\s*,\s*(\w*)\s*(,\s*\S*)?\s*\)\s*;*\s*',
replaceFn,
source
)
return re.sub(r'\breportCompare\b', "assert.sameValue", newSource)
def fetchReftestEntries(reftest):
"""
Collects and stores the entries from the reftest header.
"""
# TODO: fails, slow, skip, random, random-if
features = []
error = None
comments = None
module = False
# should capture conditions to skip
matchesSkip = re.search(r'skip-if\((.*)\)', reftest)
if matchesSkip:
matches = matchesSkip.group(1).split("||")
for match in matches:
# captures a features list
dependsOnProp = re.search(
r'!this.hasOwnProperty\([\'\"](.*?)[\'\"]\)', match)
if dependsOnProp:
features.append(dependsOnProp.group(1))
else:
print("# Can't parse the following skip-if rule: %s" % match)
# should capture the expected error
matchesError = re.search(r'error:\s*(\w*)', reftest)
if matchesError:
# The metadata from the reftests won't say if it's a runtime or an
# early error. This specification is required for the frontmatter tags.
error = matchesError.group(1)
# just tells if it's a module
matchesModule = re.search(r'\bmodule\b', reftest)
if matchesModule:
module = True
# captures any comments
matchesComments = re.search(r' -- (.*)', reftest)
if matchesComments:
comments = matchesComments.group(1)
return {
"features": features,
"error": error,
"module": module,
"info": comments
}
def parseHeader(source):
"""
Parse the source to return it with the extracted the header
"""
from lib.manifest import TEST_HEADER_PATTERN_INLINE
# Bail early if we do not start with a single comment.
if not source.startswith("//"):
return (source, {})
# Extract the token.
part, _, _ = source.partition("\n")
matches = TEST_HEADER_PATTERN_INLINE.match(part)
if matches and matches.group(0):
reftest = matches.group(0)
# Remove the found header from the source;
# Fetch and return the reftest entries
return (source.replace(reftest + "\n", ""), fetchReftestEntries(reftest))
return (source, {})
def extractMeta(source):
"""
Capture the frontmatter metadata as yaml if it exists.
Returns a new dict if it doesn't.
"""
match = FRONTMATTER_WRAPPER_PATTERN.search(source)
if not match:
return {}
indent, frontmatter_lines = match.groups()
unindented = re.sub('^%s' % indent, '', frontmatter_lines)
return yaml.safe_load(unindented)
def updateMeta(source):
"""
Captures the reftest meta and a pre-existing meta if any and merge them
into a single dict.
"""
# Extract the reftest data from the source
source, reftest = parseHeader(source)
# Extract the frontmatter data from the source
frontmatter = extractMeta(source)
# Merge the reftest and frontmatter
merged = mergeMeta(reftest, frontmatter)
# Cleanup the metadata
properData = cleanupMeta(merged)
return insertMeta(source, properData)
def cleanupMeta(meta):
"""
Clean up all the frontmatter meta tags. This is not a lint tool, just a
simple cleanup to remove trailing spaces and duplicate entries from lists.
"""
# Populate required tags
for tag in ("description", "esid"):
meta.setdefault(tag, "pending")
# Trim values on each string tag
for tag in ("description", "esid", "es5id", "es6id", "info", "author"):
if tag in meta:
meta[tag] = meta[tag].strip()
# Remove duplicate entries on each list tag
for tag in ("features", "flags", "includes"):
if tag in meta:
# We need the list back for the yaml dump
meta[tag] = list(set(meta[tag]))
if "negative" in meta:
# If the negative tag exists, phase needs to be present and set
if meta["negative"].get("phase") not in ("early", "runtime"):
print("Warning: the negative.phase is not properly set.\n" + \
"Ref https://github.com/tc39/test262/blob/master/INTERPRETING.md#negative")
# If the negative tag exists, type is required
if "type" not in meta["negative"]:
print("Warning: the negative.type is not set.\n" + \
"Ref https://github.com/tc39/test262/blob/master/INTERPRETING.md#negative")
return meta
def mergeMeta(reftest, frontmatter):
"""
Merge the metadata from reftest and an existing frontmatter and populate
required frontmatter fields properly.
"""
# Merge the meta from reftest to the frontmatter
if "features" in reftest:
frontmatter.setdefault("features", []) \
.extend(reftest.get("features", []))
# Only add the module flag if the value from reftest is truish
if reftest.get("module"):
frontmatter.setdefault("flags", []).append("module")
# Add any comments to the info tag
info = reftest.get("info")
if info:
# Open some space in an existing info text
if "info" in frontmatter:
frontmatter["info"] += "\n\n \%" % info
else:
frontmatter["info"] = info
# Set the negative flags
if "error" in reftest:
error = reftest["error"]
if "negative" not in frontmatter:
frontmatter["negative"] = {
# This code is assuming error tags are early errors, but they
# might be runtime errors as well.
# From this point, this code can also print a warning asking to
# specify the error phase in the generated code or fill the
# phase with an empty string.
"phase": "early",
"type": error
}
# Print a warning if the errors don't match
elif frontmatter["negative"].get("type") != error:
print("Warning: The reftest error doesn't match the existing " + \
"frontmatter error. %s != %s" % (error,
frontmatter["negative"]["type"]))
return frontmatter
def insertCopyrightLines(source):
"""
Insert the copyright lines into the file.
"""
from datetime import date
lines = []
if not re.match(r'\/\/\s+Copyright.*\. All rights reserved.', source):
year = date.today().year
lines.append("// Copyright (C) %s Mozilla Corporation. All rights reserved." % year)
lines.append("// This code is governed by the BSD license found in the LICENSE file.")
lines.append("\n")
return "\n".join(lines) + source
def insertMeta(source, frontmatter):
"""
Insert the formatted frontmatter into the file, use the current existing
space if any
"""
lines = []
lines.append("/*---")
for (key, value) in frontmatter.items():
if key in ("description", "info"):
lines.append("%s: |" % key)
lines.append(" " + yaml.dump(value, encoding="utf8",
).strip().replace('\n...', ''))
else:
lines.append(yaml.dump({key: value}, encoding="utf8",
default_flow_style=False).strip())
lines.append("---*/")
match = FRONTMATTER_WRAPPER_PATTERN.search(source)
if match:
return source.replace(match.group(0), "\n".join(lines))
else:
return "\n".join(lines) + source
def exportTest262(args):
src = os.path.abspath(args.src[0])
outDir = os.path.abspath(args.out)
# Create the output directory from scratch.
if os.path.isdir(outDir):
shutil.rmtree(outDir)
# Process all test directories recursively.
for (dirPath, _, fileNames) in os.walk(src):
relPath = os.path.relpath(dirPath, src)
relOutDir = os.path.join(outDir, relPath)
# This also creates the own outDir folder
if not os.path.exists(relOutDir):
os.makedirs(relOutDir)
for fileName in fileNames:
# Skip browser.js and shell.js files
if fileName == "browser.js" or fileName == "shell.js":
continue
filePath = os.path.join(dirPath, fileName)
testName = os.path.relpath(filePath, src) # captures folder/fileName
# Copy non-test files as is.
(_, fileExt) = os.path.splitext(fileName)
if fileExt != ".js":
shutil.copyfile(filePath, os.path.join(outDir, testName))
print("C %s" % testName)
continue
# Read the original test source and preprocess it for Test262
with open(filePath, "rb") as testFile:
testSource = testFile.read()
if not testSource:
print("SKIPPED %s" % testName)
continue
newSource = convertTestFile(testSource)
with open(os.path.join(outDir, testName), "wb") as output:
output.write(newSource)
print("SAVED %s" % testName)
if __name__ == "__main__":
import argparse
# This script must be run from js/src/tests to work correctly.
if "/".join(os.path.normpath(os.getcwd()).split(os.sep)[-3:]) != "js/src/tests":
raise RuntimeError("%s must be run from js/src/tests" % sys.argv[0])
parser = argparse.ArgumentParser(description="Export tests to match Test262 file compliance.")
parser.add_argument("--out", default="test262/export",
help="Output directory. Any existing directory will be removed! (default: %(default)s)")
parser.add_argument("src", nargs="+", help="Source folder with test files to export")
parser.set_defaults(func=exportTest262)
args = parser.parse_args()
args.func(args)

Просмотреть файл

@ -331,7 +331,7 @@ def process_test262(test262Dir, test262OutDir, strictTests):
continue
# Skip creating a "prs" directory if it already exists
if relPath != "prs" or not os.path.exists(os.path.join(test262OutDir, relPath)):
if relPath not in ("prs", "local") and not os.path.exists(os.path.join(test262OutDir, relPath)):
os.makedirs(os.path.join(test262OutDir, relPath))
includeSet = set()
@ -361,13 +361,101 @@ def process_test262(test262Dir, test262OutDir, strictTests):
# Add shell.js and browers.js files for the current directory.
writeShellAndBrowserFiles(test262OutDir, harnessDir, includesMap, localIncludesMap, relPath)
def fetch_pr_files(outDir, inDir, prNumber):
def fetch_local_changes(inDir, outDir, srcDir, strictTests):
"""
Fetch the changes from a local clone of Test262.
1. Get the list of file changes made by the current branch used on Test262 (srcDir).
2. Copy only the (A)dded, (C)opied, (M)odified, and (R)enamed files to inDir.
3. inDir is treated like a Test262 checkout, where files will be converted.
4. Fetches the current branch name to set the outDir.
5. Processed files will be added to `<outDir>/local/<branchName>`.
"""
import subprocess
# TOOD: fail if it's in the master branch? or require a branch name?
# Checks for unstaged or non committed files. A clean branch provides a clean status.
status = subprocess.check_output(
("git -C %s status --porcelain" % srcDir).split(" ")
)
if status.strip():
raise RuntimeError(
"Please commit files and cleanup the local test262 folder before importing files.\nCurrent status: \n%s"
% status)
# Captures the branch name to be used on the output
branchName = subprocess.check_output(
("git -C %s rev-parse --abbrev-ref HEAD" % srcDir).split(" ")).split("\n")[0]
# Fetches the file names to import
files = subprocess.check_output(
("git -C %s diff master --diff-filter=ACMR --name-only" % srcDir).split(" ")
)
# Fetches the deleted files to print an output log. This can be used to
# set up the skip list, if necessary.
deletedFiles = subprocess.check_output(
("git -C %s diff master --diff-filter=D --name-only" % srcDir).split(" ")
)
# Fetches the modified files as well for logging to support maintenance
# in the skip list.
modifiedFiles = subprocess.check_output(
("git -C %s diff master --diff-filter=M --name-only" % srcDir).split(" ")
)
# Fetches the renamed files for the same reason, this avoids duplicate
# tests if running the new local folder and the general imported Test262
# files.
renamedFiles = subprocess.check_output(
("git -C %s diff master --diff-filter=R --summary" % srcDir).split(" ")
)
# Print some friendly output
print("From the branch %s in %s \n" % (branchName, srcDir))
print("Files being copied to the local folder: \n%s" % files)
if deletedFiles:
print("Deleted files (use this list to update the skip list): \n%s" % deletedFiles)
if modifiedFiles:
print("Modified files (use this list to update the skip list): \n%s" % modifiedFiles)
if renamedFiles:
print("Renamed files (already added with the new names): \n%s" % renamedFiles)
for f in files.splitlines():
# Capture the subdirectories names to recreate the file tree
# TODO: join the file tree with -- instead of multiple subfolders?
fileTree = os.path.join(inDir, os.path.dirname(f))
if not os.path.exists(fileTree):
os.makedirs(fileTree)
shutil.copyfile(
os.path.join(srcDir, f),
os.path.join(fileTree, os.path.basename(f))
)
# Extras from Test262. Copy the current support folders - including the
# harness - for a proper conversion process
shutil.copytree(os.path.join(srcDir, "tools"), os.path.join(inDir, "tools"))
shutil.copytree(os.path.join(srcDir, "harness"), os.path.join(inDir, "harness"))
# Reset any older directory in the output using the same branch name
outDir = os.path.join(outDir, "local", branchName)
if os.path.isdir(outDir):
shutil.rmtree(outDir)
os.makedirs(outDir)
process_test262(inDir, outDir, strictTests)
def fetch_pr_files(inDir, outDir, prNumber, strictTests):
import requests
prTestsOutDir = os.path.join(outDir, prNumber)
prTestsOutDir = os.path.join(outDir, "prs", prNumber)
if os.path.isdir(prTestsOutDir):
print("Removing folder %s" % prTestsOutDir)
shutil.rmtree(prTestsOutDir)
os.makedirs(prTestsOutDir)
# Reuses current Test262 clone's harness and tools folders only, the clone's test/
# folder can be discarded from here
@ -380,8 +468,8 @@ def fetch_pr_files(outDir, inDir, prNumber):
if (pr["state"] != "open"):
# Closed PR, remove respective files from folder
print("PR %s is closed" % prNumber)
else:
return print("PR %s is closed" % prNumber)
files = requests.get("https://api.github.com/repos/tc39/test262/pulls/%s/files" % prNumber)
files.raise_for_status()
@ -403,52 +491,24 @@ def fetch_pr_files(outDir, inDir, prNumber):
fileText = contents.text
# Prefix the PRs tests dir with test/ so files are processed as Test262 files
prsTestsDir = "test/prs/%s" % prNumber
filePathDirs = os.path.join(inDir, prsTestsDir, *filename.split("/")[1:-1])
filePathDirs = os.path.join(inDir, *filename.split("/")[:-1])
if not os.path.isdir(filePathDirs):
os.makedirs(filePathDirs)
filenameInDir = os.path.join(inDir, prsTestsDir, *filename.split("/")[1:])
with io.open(filenameInDir, "wb") as output_file:
with io.open(os.path.join(inDir, *filename.split("/")), "wb") as output_file:
output_file.write(fileText.encode('utf8'))
def update_test262(args):
process_test262(inDir, prTestsOutDir, strictTests)
def general_update(inDir, outDir, strictTests):
import subprocess
url = args.url
branch = args.branch
revision = args.revision
outDir = args.out
prNumber = args.pull
if not os.path.isabs(outDir):
outDir = os.path.join(os.getcwd(), outDir)
strictTests = args.strict
restoreLocalTestsDir = False
restorePrsTestsDir = False
localTestsOutDir = os.path.join(outDir, "local")
prsTestsOutDir = os.path.join(outDir, "prs")
# Download the requested branch in a temporary directory.
with TemporaryDirectory() as inDir:
restoreLocalTestsDir = False
restorePrsTestsDir = False
if revision == "HEAD":
subprocess.check_call(["git", "clone", "--depth=1", "--branch=%s" % branch, url, inDir])
else:
subprocess.check_call(["git", "clone", "--single-branch", "--branch=%s" % branch, url, inDir])
subprocess.check_call(["git", "-C", inDir, "reset", "--hard", revision])
# If a PR number is provided, fetches only the new and modified files from that PR.
# It also creates a new folder for that PR or replaces if it already exists, without
# updating the regular Test262 tests.
if prNumber:
fetch_pr_files(prsTestsOutDir, inDir, prNumber)
# Without a specific PR, follows through a regular copy.
else:
# Stash test262/local and test262/prs. Currently the Test262 repo does not have any
# top-level subdirectories named "local" or "prs".
# This prevents these folders from being removed during the update process.
@ -483,6 +543,42 @@ def update_test262(args):
if restorePrsTestsDir:
shutil.move(os.path.join(inDir, "prs"), outDir)
def update_test262(args):
import subprocess
url = args.url
branch = args.branch
revision = args.revision
outDir = args.out
prNumber = args.pull
srcDir = args.local
if not os.path.isabs(outDir):
outDir = os.path.join(os.getcwd(), outDir)
strictTests = args.strict
# Download the requested branch in a temporary directory.
with TemporaryDirectory() as inDir:
# If it's a local import, skip the git clone parts.
if srcDir:
return fetch_local_changes(inDir, outDir, srcDir, strictTests)
if revision == "HEAD":
subprocess.check_call(["git", "clone", "--depth=1", "--branch=%s" % branch, url, inDir])
else:
subprocess.check_call(["git", "clone", "--single-branch", "--branch=%s" % branch, url, inDir])
subprocess.check_call(["git", "-C", inDir, "reset", "--hard", revision])
# If a PR number is provided, fetches only the new and modified files
# from that PR. It also creates a new folder for that PR or replaces if
# it already exists, without updating the regular Test262 tests.
if prNumber:
return fetch_pr_files(inDir, outDir, prNumber, strictTests)
# Without a PR or a local import, follows through a regular copy.
general_update(inDir, outDir, strictTests)
if __name__ == "__main__":
import argparse

Просмотреть файл

@ -10715,6 +10715,15 @@ nsIFrame::AddSizeOfExcludingThisForTree(nsWindowSizes& aSizes) const
sc->AddSizeOfIncludingThis(aSizes,
&aSizes.mLayoutComputedValuesNonDom);
}
// And our additional style contexts.
int32_t index = 0;
while (auto* extra = GetAdditionalStyleContext(index++)) {
if (!aSizes.mState.HaveSeenPtr(extra)) {
extra->AsServo()->AddSizeOfIncludingThis(aSizes,
&aSizes.mLayoutComputedValuesNonDom);
}
}
}
FrameChildListIterator iter(this);

Просмотреть файл

@ -136,8 +136,6 @@ SERVO_BINDING_FUNC(Servo_SelectorList_Parse,
const nsACString* selector_list)
SERVO_BINDING_FUNC(Servo_SelectorList_Matches, bool,
RawGeckoElementBorrowed, RawServoSelectorListBorrowed)
SERVO_BINDING_FUNC(Servo_SelectorList_Closest, RawGeckoElementBorrowedOrNull,
RawGeckoElementBorrowed, RawServoSelectorListBorrowed)
SERVO_BINDING_FUNC(Servo_StyleSet_AddSizeOfExcludingThis, void,
mozilla::MallocSizeOf malloc_size_of,
mozilla::MallocSizeOf malloc_enclosing_size_of,

Просмотреть файл

@ -79,7 +79,7 @@ DIRS += [
'third_party/python',
]
if CONFIG['MOZ_WIDGET_TOOLKIT']:
if CONFIG['MOZ_WIDGET_TOOLKIT'] or not CONFIG['MOZ_BUILD_APP']:
# These python manifests are included here so they get picked up without an objdir
PYTHON_UNITTEST_MANIFESTS += [
'layout/tools/reftest/selftest/python.ini',

Просмотреть файл

@ -1158,4 +1158,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
static const int32_t kUnknownId = -1;
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1516383825734000);
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1516429901251000);

Просмотреть файл

@ -1,12 +1,10 @@
0day.su: could not connect to host
0i0.nl: could not connect to host
125m125.de: could not connect to host
174.net.nz: could not connect to host
300mbmovie24.com: could not connect to host
360live.fr: could not connect to host
47tech.com: could not connect to host
4d2.xyz: could not connect to host
4loc.us: could not connect to host
4winds.pt: could not connect to host
4x4.lk: could not connect to host
68277.me: could not connect to host
724go.com: could not connect to host
@ -25,8 +23,10 @@ agowa338.de: could not connect to host
aivd.lol: could not connect to host
akoww.de: could not connect to host
akul.co.in: could not connect to host
alexmol.tk: could not connect to host
alrait.com: could not connect to host
altahrim.net: could not connect to host
ameho.me: could not connect to host
amua.fr: could not connect to host
anoneko.com: could not connect to host
arent.kz: could not connect to host
@ -35,12 +35,15 @@ artisense.de: could not connect to host
askmagicconch.com: could not connect to host
assdecoeur.org: could not connect to host
astral.gq: could not connect to host
autostop-occasions.be: could not connect to host
avi9526.pp.ua: could not connect to host
aviv.nyc: could not connect to host
awan.tech: could not connect to host
azabani.com: could not connect to host
baitulongbaycruises.com: could not connect to host
balonmano.co: could not connect to host
bbdos.ru: could not connect to host
beasel.biz: could not connect to host
beijinglug.club: could not connect to host
bencorby.com: could not connect to host
benjamin-horvath.com: could not connect to host
@ -48,13 +51,11 @@ berna.fr: could not connect to host
binkconsulting.be: could not connect to host
bip.gov.sa: could not connect to host
black-khat.com: could not connect to host
blockified.io: could not connect to host
blumen-garage.de: could not connect to host
blumiges-fischbachtal.de: could not connect to host
bodrumfarm.com: could not connect to host
bowlsheet.com: could not connect to host
brettabel.com: could not connect to host
brio-ukraine.store: could not connect to host
businessfurs.info: could not connect to host
buyshoe.org: could not connect to host
by1898.com: could not connect to host
@ -62,9 +63,14 @@ cais.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FA
cake-time.co.uk: could not connect to host
calculatoaresecondhand.xyz: could not connect to host
callabs.net: could not connect to host
cannarobotics.com: could not connect to host
capekeen.com: could not connect to host
capellidipremoli.com: could not connect to host
carloshmm.stream: could not connect to host
casperpanel.com: could not connect to host
catsmagic.pp.ua: could not connect to host
cbdev.de: could not connect to host
ceml.ch: could not connect to host
charr.xyz: could not connect to host
checkmateshoes.com: could not connect to host
china-line.org: could not connect to host
@ -74,8 +80,14 @@ christina-quast.de: could not connect to host
chua.family: could not connect to host
cielly.com: could not connect to host
clearviewwealthprojector.com.au: could not connect to host
closelinksecurity.co.uk: could not connect to host
cloudbleed.info: could not connect to host
cmacacias.ch: could not connect to host
cmcressy.ch: could not connect to host
cmlachapelle.ch: could not connect to host
cmlancy.ch: could not connect to host
cmlignon.ch: could not connect to host
cmplainpalais.ch: could not connect to host
cmpr.es: could not connect to host
cnlic.com: could not connect to host
coinmewallet.com: could not connect to host
@ -89,9 +101,10 @@ criticalaim.com: could not connect to host
cryptopartyutah.org: could not connect to host
cselzer.com: could not connect to host
csgo77.com: could not connect to host
cybersecurity.nz: could not connect to host
cyber-konzept.de: could not connect to host
cypherpunk.ws: could not connect to host
dahlberg.cologne: could not connect to host
danielmoch.com: could not connect to host
dataprotectionadvisors.com: could not connect to host
datorb.com: could not connect to host
dawnsonb.com: could not connect to host
@ -104,15 +117,19 @@ derrickemery.com: could not connect to host
dev-talk.eu: could not connect to host
devops.moe: could not connect to host
diagnocentro.cl: could not connect to host
dianurse.com: could not connect to host
dick.red: could not connect to host
digioccumss.ddns.net: could not connect to host
digitalcloud.ovh: could not connect to host
dijks.com: could not connect to host
dingcc.org: could not connect to host
dingcc.xyz: could not connect to host
disadattamentolavorativo.it: could not connect to host
disco-crazy-world.de: could not connect to host
dkravchenko.su: could not connect to host
dlld.com: could not connect to host
dotacni-parazit.cz: could not connect to host
dredgepress.com: could not connect to host
dreizwosechs.de: could not connect to host
drkmtrx.xyz: could not connect to host
duch.cloud: could not connect to host
@ -122,6 +139,7 @@ dynts.pro: could not connect to host
edit.yahoo.com: could not connect to host
educatoys.com.br: could not connect to host
eeb98.com: could not connect to host
egg-ortho.ch: could not connect to host
ehuber.info: could not connect to host
endlessdiy.ca: could not connect to host
erinaceinae.com: could not connect to host
@ -130,8 +148,9 @@ eurostrategy.vn.ua: could not connect to host
exceed.global: could not connect to host
expatads.com: could not connect to host
exploit.cz: could not connect to host
familletouret.fr: could not connect to host
farm24.co.uk: could not connect to host
fcprovadia.com: could not connect to host
felixhefner.de: could not connect to host
filhomes.ph: could not connect to host
firebaseio.com: could not connect to host
firexarxa.de: could not connect to host
@ -141,6 +160,7 @@ fixmyglitch.com: could not connect to host
fossewayflowers.co.uk: could not connect to host
fossewayflowers.com: could not connect to host
foxmay.co.uk: could not connect to host
franksiler.com: could not connect to host
freaksites.dk: could not connect to host
fsf.moe: could not connect to host
fukuko.biz: could not connect to host
@ -160,19 +180,19 @@ gchq.wtf: could not connect to host
gdhzcgs.com: could not connect to host
geeks.berlin: could not connect to host
geneve.guide: could not connect to host
get-refer.com: could not connect to host
getwarden.net: could not connect to host
gevaulug.fr: could not connect to host
gfoss.gr: could not connect to host
ggs.jp: could not connect to host
ggx.us: could not connect to host
globalgivingtime.com: could not connect to host
gnom.me: could not connect to host
google: could not connect to host
gottfridsberg.org: could not connect to host
gritte.net: could not connect to host
gtdgo.com: could not connect to host
gvt2.com: could not connect to host
gvt3.com: could not connect to host
h2cdn.cloud: could not connect to host
heijblok.com: could not connect to host
hejahanif.se: could not connect to host
helsingfors.guide: could not connect to host
@ -182,17 +202,21 @@ hm773.net: could not connect to host
hoodoo.io: could not connect to host
hoodoo.tech: could not connect to host
hundter.com: could not connect to host
ifengge.cn: could not connect to host
ifengge.me: could not connect to host
ifxnet.com: could not connect to host
ilya.pp.ua: could not connect to host
industreiler.com: could not connect to host
industreiler.com.br: could not connect to host
inexpensivecomputers.net: could not connect to host
injust.eu.org: could not connect to host
injust.me: could not connect to host
installgentoo.net: could not connect to host
invitescene.com: could not connect to host
ipal.pl: could not connect to host
ipv6.watch: could not connect to host
iskai.net: could not connect to host
islief.com: could not connect to host
issuesofconcern.in: could not connect to host
itochan.jp: could not connect to host
ixio.cz: could not connect to host
jaredfraser.com: could not connect to host
javascriptlab.fr: could not connect to host
@ -200,22 +224,20 @@ jcyz.cf: could not connect to host
jeffreymagee.com: could not connect to host
jhburton.co.uk: could not connect to host
jie.dance: could not connect to host
jigsawdevelopments.com: could not connect to host
johnblackbourn.com: could not connect to host
jonpads.com: could not connect to host
just-pools.co.za: could not connect to host
justmy.website: could not connect to host
k-wallet.com: could not connect to host
kabus.org: could not connect to host
kamikaichimaru.com: could not connect to host
kapo.info: could not connect to host
karanlyons.com: could not connect to host
kayleen.net: could not connect to host
kenrogers.co: could not connect to host
kenvix.com: could not connect to host
kevinmeijer.nl: could not connect to host
kieranweightman.me: could not connect to host
kinepolis-studio.ga: could not connect to host
kiraboshi.xyz: could not connect to host
knownsec.cf: could not connect to host
kollawat.me: could not connect to host
kousaku.jp: could not connect to host
@ -226,15 +248,18 @@ lachawoj.de: could not connect to host
lathamlabs.com: could not connect to host
lathamlabs.net: could not connect to host
lathamlabs.org: could not connect to host
latour-managedcare.ch: could not connect to host
legitaxi.com: could not connect to host
leninalbertop.com.ve: could not connect to host
lezdomsm.com: could not connect to host
lheinrich.org: could not connect to host
linksanitizer.com: could not connect to host
lisowski-photography.com: could not connect to host
lissabon.guide: could not connect to host
littleservice.cn: could not connect to host
liukang.tech: could not connect to host
livnev.me: could not connect to host
loancompare.co.za: could not connect to host
logcat.info: could not connect to host
logimagine.com: could not connect to host
lovelytimes.net: could not connect to host
@ -243,9 +268,11 @@ luenwarneke.com: could not connect to host
lunix.io: could not connect to host
lustin.fr: could not connect to host
lwl.moe: could not connect to host
maartenterpstra.xyz: could not connect to host
macedopesca.com.br: could not connect to host
mail4geek.com: could not connect to host
marjoleindens.be: could not connect to host
markus-ullmann.de: could not connect to host
martin-mattel.com: could not connect to host
martinrogalla.com: could not connect to host
mastd.me: could not connect to host
@ -257,12 +284,14 @@ mchopkins.net: could not connect to host
meanevo.com: could not connect to host
metachris.com: could not connect to host
mhjuma.com: could not connect to host
minakov.pro: could not connect to host
mingy.ddns.net: could not connect to host
modded-minecraft-server-list.com: could not connect to host
mosaique-lachenaie.fr: could not connect to host
moskva.guide: could not connect to host
mowalls.net: could not connect to host
muguayuan.com: could not connect to host
mrliu.me: could not connect to host
muahahahaha.co.uk: could not connect to host
muj-svet.cz: could not connect to host
munduch.cz: could not connect to host
narodsovety.ru: could not connect to host
@ -270,11 +299,13 @@ navdeep.ca: could not connect to host
ncdesigns-studio.com: could not connect to host
nedcf.org.uk: could not connect to host
negai.moe: could not connect to host
netica.fr: could not connect to host
nevolution.me: could not connect to host
nikolasbradshaw.com: could not connect to host
niva.synology.me: could not connect to host
nkb.in.th: could not connect to host
nnote.net: could not connect to host
norrkemi.se: could not connect to host
nostraspace.com: could not connect to host
notesforpebble.com: could not connect to host
nsa.lol: could not connect to host
@ -292,7 +323,6 @@ oscsdp.cz: could not connect to host
osterkraenzchen.de: could not connect to host
oxygaming.com: could not connect to host
oxymc.com: could not connect to host
pandymic.com: could not connect to host
paragon.edu: could not connect to host
pascalchristen.ch: could not connect to host
pbytes.com: could not connect to host
@ -319,10 +349,10 @@ qoqo.us: could not connect to host
qto.net: could not connect to host
rainbin.com: could not connect to host
real-compare.com: could not connect to host
rebootmc.com: could not connect to host
reignsphere.net: could not connect to host
reinaertvandecruys.me: could not connect to host
reykjavik.guide: could not connect to host
rideaudiscount.com: could not connect to host
rofrank.space: could not connect to host
roguesignal.net: could not connect to host
rolodato.com: could not connect to host
@ -330,7 +360,6 @@ rubyist.today: could not connect to host
s1mplescripts.de: could not connect to host
saferedirectlink.com: could not connect to host
sallysubs.com: could not connect to host
salon-minipli.de: could not connect to host
sanatrans.com: could not connect to host
santojuken.co.jp: could not connect to host
sarndipity.com: could not connect to host
@ -338,6 +367,7 @@ scrumbleship.com: could not connect to host
securitymap.wiki: could not connect to host
sellmoretires.com: could not connect to host
semantheme.fr: could not connect to host
sgcaccounts.co.uk: could not connect to host
shadowplus.net: could not connect to host
shadowrocket.net: could not connect to host
sharevari.com: could not connect to host
@ -347,8 +377,8 @@ shirakaba-cc.com: could not connect to host
shoemuse.com: could not connect to host
shopifycloud.com: could not connect to host
simbolo.co.uk: could not connect to host
simnovo.net: could not connect to host
simplerses.com: could not connect to host
sistemy48.ru: could not connect to host
sky-aroma.com: could not connect to host
sl1pkn07.wtf: could not connect to host
socialworkout.com: could not connect to host
@ -367,6 +397,8 @@ spom.net: could not connect to host
sputnik1net.org: could not connect to host
sqzryang.com: could not connect to host
sss3s.com: could not connect to host
stamonicatourandtravel.com: could not connect to host
statgram.me: could not connect to host
stitthappens.com: could not connect to host
stpip.com: could not connect to host
stytt.com: could not connect to host
@ -376,7 +408,7 @@ sviz.pro: could not connect to host
tcpweb.net: could not connect to host
tenispopular.com: could not connect to host
terminalvelocity.co.nz: could not connect to host
thelefthand.org: could not connect to host
texasllcpros.com: could not connect to host
theprivacysolution.com: could not connect to host
thesehighsandlows.com: could not connect to host
thinkcash.nl: could not connect to host
@ -389,6 +421,7 @@ transcendmotor.sg: could not connect to host
turn-sticks.com: could not connect to host
tusb.ml: could not connect to host
twiri.net: could not connect to host
underskatten.tk: could not connect to host
varta.io: could not connect to host
vcelin-na-doliku.cz: could not connect to host
venmos.com: could not connect to host
@ -397,8 +430,7 @@ vilog.me: could not connect to host
vitapingu.de: could not connect to host
vmgirls.com: could not connect to host
wachter.biz: could not connect to host
warezaddict.com: could not connect to host
warhaggis.com: could not connect to host
warlions.info: could not connect to host
watchweasel.com: could not connect to host
weareincognito.org: could not connect to host
web-wave.jp: could not connect to host
@ -415,18 +447,20 @@ wipc.net: could not connect to host
wm-talk.net: could not connect to host
wnnc.co.uk: could not connect to host
wolfemg.com: could not connect to host
wonderbooks.club: could not connect to host
wordpresspro.cl: could not connect to host
wormdisk.net: could not connect to host
wtf.ninja: could not connect to host
www-68277.com: could not connect to host
www-8887999.com: could not connect to host
www.re: could not connect to host
www.sb: could not connect to host
www.simbolo.co.uk: could not connect to host
wyzwaniemilosci.com: could not connect to host
xa1.uk: could not connect to host
xia100.xyz: could not connect to host
xing.ml: could not connect to host
xtremenutrition.com.br: could not connect to host
yoitsu.moe: could not connect to host
yux.fr: could not connect to host
yveshield.com: could not connect to host
zaoext.com: could not connect to host
zenfusion.fr: could not connect to host
zenghx.tk: could not connect to host
@ -438,7 +472,7 @@ zzw.ca: could not connect to host
0005aa.com: could not connect to host
007sascha.de: did not receive HSTS header
020wifi.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119" data: no]
0222aa.com: could not connect to host
0222aa.com: did not receive HSTS header
048.ag: could not connect to host
050508.com: could not connect to host
0f.io: could not connect to host
@ -476,6 +510,7 @@ zzw.ca: could not connect to host
1396.net: could not connect to host
1536.cf: could not connect to host
163pwd.com: could not connect to host
1644091933.rsc.cdn77.org: did not receive HSTS header
166166.com: could not connect to host
16deza.com: did not receive HSTS header
16packets.com: could not connect to host
@ -515,6 +550,7 @@ zzw.ca: could not connect to host
2ss.jp: could not connect to host
300651.ru: did not receive HSTS header
300m.com: did not receive HSTS header
300mbmovie24.com: did not receive HSTS header
300mbmovies4u.cc: could not connect to host
301.website: could not connect to host
302.nyc: could not connect to host
@ -558,7 +594,7 @@ zzw.ca: could not connect to host
4w-performers.link: could not connect to host
50millionablaze.org: could not connect to host
513vpn.net: did not receive HSTS header
517vpn.cn: could not connect to host
517vpn.cn: did not receive HSTS header
540.co: did not receive HSTS header
54bf.com: could not connect to host
55558522.com: could not connect to host
@ -629,9 +665,9 @@ a1-autopartsglasgow.com: did not receive HSTS header
a3workshop.swiss: could not connect to host
a9c.co: could not connect to host
aa7733.com: could not connect to host
aaeblog.com: could not connect to host
aaeblog.net: could not connect to host
aaeblog.org: could not connect to host
aaeblog.com: did not receive HSTS header
aaeblog.net: did not receive HSTS header
aaeblog.org: did not receive HSTS header
aaoo.net: could not connect to host
aapp.space: could not connect to host
aaron-gustafson.com: did not receive HSTS header
@ -900,7 +936,6 @@ andrewmichaud.me: could not connect to host
andrewregan.me: could not connect to host
andrewx.net: could not connect to host
andreypopp.com: could not connect to host
andro4all.com: did not receive HSTS header
androidprosmart.com: could not connect to host
androoz.se: could not connect to host
andyclark.io: could not connect to host
@ -909,7 +944,7 @@ anfsanchezo.co: could not connect to host
anfsanchezo.me: could not connect to host
angeloroberto.ch: did not receive HSTS header
anghami.com: did not receive HSTS header
anglesya.win: did not receive HSTS header
anglesya.win: could not connect to host
anglictinatabor.cz: could not connect to host
angryroute.com: could not connect to host
anime1video.tk: could not connect to host
@ -961,13 +996,14 @@ apachelounge.com: did not receive HSTS header
apaginastore.com.br: did not receive HSTS header
apeasternpower.com: could not connect to host
api.mega.co.nz: could not connect to host
apiary.shop: did not receive HSTS header
apibot.de: could not connect to host
apis.google.com: did not receive HSTS header (error ignored - included regardless)
apis.world: could not connect to host
apm.com.tw: did not receive HSTS header
apmg-certified.com: did not receive HSTS header
apmg-cyber.com: did not receive HSTS header
apnakliyat.com: could not connect to host
apnakliyat.com: did not receive HSTS header
apolloyl.com: could not connect to host
aponkral.site: could not connect to host
aponkralsunucu.com: could not connect to host
@ -987,6 +1023,7 @@ approlys.fr: did not receive HSTS header
apps-for-fishing.com: could not connect to host
appsbystudio.co.uk: did not receive HSTS header
appsdash.io: could not connect to host
appuro.com: did not receive HSTS header
aquariumaccessories.shop: did not receive HSTS header
aquilalab.com: could not connect to host
arabdigitalexpression.org: did not receive HSTS header
@ -1362,6 +1399,7 @@ bitwrought.net: could not connect to host
bivsi.com: could not connect to host
bizcms.com: did not receive HSTS header
bizon.sk: did not receive HSTS header
bjs.gov: did not receive HSTS header
bkb-skandal.ch: could not connect to host
black-armada.com: could not connect to host
black-armada.com.pl: could not connect to host
@ -1670,7 +1708,7 @@ catalin.pw: could not connect to host
catarsisvr.com: could not connect to host
catinmay.com: did not receive HSTS header
catnapstudios.com: could not connect to host
cavaleria.ro: did not receive HSTS header
cavaleria.ro: could not connect to host
caveclan.org: did not receive HSTS header
cavedevs.de: could not connect to host
cavedroid.xyz: could not connect to host
@ -1845,7 +1883,6 @@ cloudimproved.com: could not connect to host
cloudimprovedtest.com: could not connect to host
cloudlink.club: could not connect to host
cloudns.com.au: could not connect to host
cloudopt.net: did not receive HSTS header
clouds.webcam: could not connect to host
cloudspotterapp.com: did not receive HSTS header
cloudstoragemaus.com: could not connect to host
@ -2023,7 +2060,6 @@ creaescola.com: did not receive HSTS header
create-test-publish.co.uk: could not connect to host
creativephysics.ml: could not connect to host
creativeplayuk.com: did not receive HSTS header
creativeweb.biz: max-age too low: 0
crecket.me: could not connect to host
crendontech.com: could not connect to host
crestoncottage.com: could not connect to host
@ -2210,7 +2246,6 @@ dcuofriends.net: could not connect to host
dcurt.is: did not receive HSTS header
dcw.io: did not receive HSTS header
ddatsh.com: did not receive HSTS header
ddepot.us: did not receive HSTS header
debank.tv: did not receive HSTS header
debatch.se: could not connect to host
debian-vhost.de: did not receive HSTS header
@ -2222,6 +2257,7 @@ decesus.com: could not connect to host
decibelios.li: could not connect to host
decloverly.com: did not receive HSTS header
deco.me: could not connect to host
decoratrix.com: did not receive HSTS header
dedicatutiempo.es: could not connect to host
deepcovelabs.net: could not connect to host
deepearth.uk: could not connect to host
@ -2239,11 +2275,11 @@ deinserverhost.de: did not receive HSTS header
dekasan.ru: could not connect to host
delayrefunds.co.uk: could not connect to host
deliverance.co.uk: could not connect to host
delta-data.ch: did not receive HSTS header
delta-smart.ch: did not receive HSTS header
delta-data.ch: could not connect to host
delta-smart.ch: could not connect to host
deltaconcepts.de: did not receive HSTS header
deltadata.ch: could not connect to host
deltasmart.ch: did not receive HSTS header
deltasmart.ch: could not connect to host
delvj.org: could not connect to host
demdis.org: could not connect to host
demilitarized.ninja: could not connect to host
@ -2479,7 +2515,7 @@ dubik.su: did not receive HSTS header
duelysthub.com: could not connect to host
duerls.de: did not receive HSTS header
dukec.me: could not connect to host
dullsir.com: did not receive HSTS header
dullsir.com: could not connect to host
dungi.org: could not connect to host
duongpho.com: did not receive HSTS header
duskopy.top: could not connect to host
@ -2632,6 +2668,7 @@ emanatepixels.com: could not connect to host
emanga.su: did not receive HSTS header
embroidered-stuff.com: could not connect to host
emeldi-commerce.com: max-age too low: 0
emesolutions.net: did not receive HSTS header
emiele.com.br: did not receive HSTS header
emilyhorsman.com: did not receive HSTS header
eminovic.me: could not connect to host
@ -2828,6 +2865,7 @@ fadilus.com: did not receive HSTS header
faesser.com: did not receive HSTS header
fail4free.de: did not receive HSTS header
failproof.be: max-age too low: 604800
fairedeseconomies.info: did not receive HSTS header
fairkey.dk: did not receive HSTS header
fairlyoddtreasures.com: did not receive HSTS header
faizan.xyz: did not receive HSTS header
@ -2972,6 +3010,7 @@ flukethoughts.com: could not connect to host
flurrybridge.com: did not receive HSTS header
flushstudios.com: did not receive HSTS header
flyaces.com: could not connect to host
flyspace.ml: did not receive HSTS header
fm83.nl: could not connect to host
fmi.gov: did not receive HSTS header
fnvsecurity.com: could not connect to host
@ -3306,6 +3345,7 @@ gorillow.com: could not connect to host
goshop.cz: did not receive HSTS header
gotgenes.com: could not connect to host
goto.google.com: did not receive HSTS header (error ignored - included regardless)
goto.msk.ru: did not receive HSTS header
gotocloud.ru: did not receive HSTS header
gotowned.org: max-age too low: 0
gotspot.com: could not connect to host
@ -3508,7 +3548,7 @@ haurumcraft.net: could not connect to host
hausarzt-stader-str.de: did not receive HSTS header
haveeruexaminer.com: could not connect to host
havenmoon.com: could not connect to host
havenswift-hosting.co.uk: did not receive HSTS header
havenswift-hosting.co.uk: could not connect to host
hawthornharpist.com: could not connect to host
haxoff.com: could not connect to host
haxon.me: could not connect to host
@ -3736,7 +3776,7 @@ id-conf.com: did not receive HSTS header
ideal-envelopes.co.uk: did not receive HSTS header
idealmoto.com: did not receive HSTS header
idealmykonos.com: did not receive HSTS header
ideaman924.com: did not receive HSTS header
ideaman924.com: could not connect to host
ideaplus.me: could not connect to host
ideasmeetingpoint.com: could not connect to host
ideation-inc.co.jp: could not connect to host
@ -4038,7 +4078,7 @@ jartza.org: could not connect to host
jasmineconseil.com: did not receive HSTS header
jasoncosper.com: did not receive HSTS header
jasonroe.me: did not receive HSTS header
jasperespejo.com: did not receive HSTS header
jasperespejo.com: could not connect to host
jastoria.pl: could not connect to host
jav-collective.com: could not connect to host
java-board.com: could not connect to host
@ -4132,7 +4172,6 @@ jonn.me: could not connect to host
jonnichols.info: did not receive HSTS header
jonsno.ws: could not connect to host
joostbovee.nl: did not receive HSTS header
jordanhamilton.me: could not connect to host
jordanstrustcompany.cn: could not connect to host
jordanstrustcompany.ru: could not connect to host
joretapo.fr: could not connect to host
@ -4159,7 +4198,6 @@ jsg-technologies.de: did not receive HSTS header
jualautoclave.com: did not receive HSTS header
jualssh.com: could not connect to host
juandesouza.com: did not receive HSTS header
juka.pp.ua: did not receive HSTS header
juku-info.top: could not connect to host
juku-wing.jp: could not connect to host
juliamweber.de: could not connect to host
@ -4391,7 +4429,7 @@ ksfh-mail.de: could not connect to host
kstan.me: could not connect to host
kswriter.com: could not connect to host
kuba.guide: could not connect to host
kucom.it: did not receive HSTS header
kucom.it: could not connect to host
kuechenplan.online: did not receive HSTS header
kueulangtahunanak.net: could not connect to host
kum.com: could not connect to host
@ -4461,7 +4499,7 @@ langhun.me: did not receive HSTS header
laniakean.com: did not receive HSTS header
lanzainc.xyz: did not receive HSTS header
laobox.fr: could not connect to host
laospage.com: could not connect to host
laospage.com: max-age too low: 2592000
laplaceduvillage.net: could not connect to host
laplanetebleue.com: did not receive HSTS header
laquack.com: could not connect to host
@ -4806,7 +4844,7 @@ manageforall.com: could not connect to host
manageforall.de: could not connect to host
managemynetsuite.com: did not receive HSTS header
manageprojects.com: did not receive HSTS header
manantial.mx: could not connect to host
manantial.mx: did not receive HSTS header
mandpress.com: did not receive HSTS header
maniadeprazer.com.br: could not connect to host
manifestbin.com: did not receive HSTS header
@ -4921,6 +4959,7 @@ mclab.su: could not connect to host
mclist.it: could not connect to host
mclyr.com: max-age too low: 7776000
mcooperlaw.com: did not receive HSTS header
md5hashing.net: did not receive HSTS header
mdfnet.se: did not receive HSTS header
mdkr.nl: did not receive HSTS header
mdscomp.net: did not receive HSTS header
@ -5347,6 +5386,7 @@ nanokamo.com: did not receive HSTS header
nanrenba.net: could not connect to host
nansay.cn: could not connect to host
nanto.eu: could not connect to host
narada.com.ua: did not receive HSTS header
narodniki.com: did not receive HSTS header
nashira.cz: did not receive HSTS header
nasralmabrooka.com: did not receive HSTS header
@ -5449,7 +5489,7 @@ ni.search.yahoo.com: did not receive HSTS header
niagarafalls.ca: did not receive HSTS header
nibiisclaim.com: could not connect to host
nicestresser.fr: could not connect to host
nicic.gov: did not receive HSTS header
nicic.gov: could not connect to host
nicky.io: did not receive HSTS header
nicoborghuis.nl: could not connect to host
nicolasbettag.me: did not receive HSTS header
@ -5496,6 +5536,7 @@ nolimitsbook.de: did not receive HSTS header
nolte.work: could not connect to host
nomorebytes.de: could not connect to host
noodlesandwich.com: did not receive HSTS header
nootropicsource.com: did not receive HSTS header
nope.website: could not connect to host
nopex.no: could not connect to host
nopol.de: could not connect to host
@ -5513,7 +5554,7 @@ nothing.net.nz: max-age too low: 7776000
nothing.org.uk: did not receive HSTS header
noticia.do: did not receive HSTS header
notjustbitchy.com: did not receive HSTS header
nottheonion.net: could not connect to host
nottheonion.net: did not receive HSTS header
nou.si: could not connect to host
nouvelle-vague-saint-cast.fr: did not receive HSTS header
nova-elearning.com: did not receive HSTS header
@ -5691,7 +5732,6 @@ open-mx.de: could not connect to host
open-to-repair.fr: did not receive HSTS header
openas.org: could not connect to host
opendesk.cc: did not receive HSTS header
openfitapi-falke.azurewebsites.net: did not receive HSTS header
opengateway.fr: did not receive HSTS header
openmind-shop.de: did not receive HSTS header
openmtbmap.org: did not receive HSTS header
@ -5726,6 +5766,7 @@ originpc.com: did not receive HSTS header
orion-universe.com: did not receive HSTS header
orioncustompcs.com: could not connect to host
orionfcu.com: did not receive HSTS header
oriongames.eu: did not receive HSTS header
orionrebellion.com: could not connect to host
orleika.ml: could not connect to host
oroweatorganic.com: could not connect to host
@ -5803,7 +5844,7 @@ panamaequity.com: did not receive HSTS header
panamateakforestry.com: did not receive HSTS header
panelomix.net: did not receive HSTS header
panni.me: could not connect to host
panoranordic.net: could not connect to host
panoranordic.net: did not receive HSTS header
pansu.space: could not connect to host
pants-off.xyz: could not connect to host
pantsu.cat: did not receive HSTS header
@ -6088,7 +6129,7 @@ povitria.net: could not connect to host
powdersnow.top: could not connect to host
power-l.ch: did not receive HSTS header
power-of-interest.com: could not connect to host
power99press.com: could not connect to host
power99press.com: did not receive HSTS header
poweroff.win: could not connect to host
powerplannerapp.com: did not receive HSTS header
powershift.ne.jp: did not receive HSTS header
@ -6299,7 +6340,6 @@ rannseier.org: did not receive HSTS header
rany.duckdns.org: could not connect to host
rany.io: could not connect to host
rany.pw: could not connect to host
rapido.nu: did not receive HSTS header
rapidresearch.me: could not connect to host
rapidthunder.io: could not connect to host
rasing.me: did not receive HSTS header
@ -6347,6 +6387,7 @@ realraghavgupta.com: could not connect to host
reaper.rip: could not connect to host
reardenporn.com: could not connect to host
rebekaesgabor.online: could not connect to host
rebootmc.com: did not receive HSTS header
recommended.reviews: could not connect to host
redar.xyz: could not connect to host
reddit.com: did not receive HSTS header
@ -6612,7 +6653,7 @@ sarahsweetlife.com: could not connect to host
sarahsweger.com: could not connect to host
sarakas.com: could not connect to host
sarangsemutbandung.com: could not connect to host
sarisonproductions.com: could not connect to host
sarisonproductions.com: did not receive HSTS header
saruwebshop.co.za: could not connect to host
satanichia.moe: could not connect to host
satmep.com: did not receive HSTS header
@ -6638,6 +6679,7 @@ sbox-archives.com: could not connect to host
sby.de: did not receive HSTS header
sc4le.com: could not connect to host
scannabi.com: could not connect to host
schachburg.de: did not receive HSTS header
schadegarant.net: could not connect to host
schauer.so: could not connect to host
schermreparatierotterdam.nl: did not receive HSTS header
@ -6859,7 +6901,6 @@ shv25.se: could not connect to host
shwongacc.com: could not connect to host
shypp.it: could not connect to host
shyrydan.es: could not connect to host
si.to: could not connect to host
siammedia.co: could not connect to host
sianimacion.com: could not connect to host
sichere-kartenakzeptanz.de: could not connect to host
@ -6940,6 +6981,7 @@ slashdesign.it: did not receive HSTS header
slashem.me: did not receive HSTS header
slattery.co: could not connect to host
slauber.de: did not receive HSTS header
sleeklounge.com: did not receive HSTS header
sleep10.com: could not connect to host
slicketl.com: did not receive HSTS header
slightfuture.click: could not connect to host
@ -7135,6 +7177,8 @@ stassi.ch: did not receive HSTS header
state-sponsored-actors.net: could not connect to host
statementinsertsforless.com: did not receive HSTS header
stateofexception.io: could not connect to host
static-myfxee-808795.c.cdn77.org: did not receive HSTS header
static-myfxouk-808795.c.cdn77.org: did not receive HSTS header
static.or.at: did not receive HSTS header
staticanime.net: could not connect to host
stationaryjourney.com: did not receive HSTS header
@ -7255,6 +7299,7 @@ supersecurefancydomain.com: could not connect to host
supertramp-dafonseca.com: did not receive HSTS header
superuser.fi: could not connect to host
superwally.org: could not connect to host
supes.io: did not receive HSTS header
support4server.de: did not receive HSTS header
suprlink.net: could not connect to host
supweb.ovh: did not receive HSTS header
@ -7269,6 +7314,7 @@ svenluijten.com: did not receive HSTS header
svenskacasino.com: did not receive HSTS header
svenskaservern.se: did not receive HSTS header
svetjakonadlani.cz: did not receive HSTS header
svjvn.cz: did not receive HSTS header
swaleacademiestrust.org.uk: max-age too low: 2592000
swdatlantico.pt: could not connect to host
sweetair.com: did not receive HSTS header
@ -7383,7 +7429,6 @@ tdsbhack.ml: could not connect to host
teachforcanada.ca: did not receive HSTS header
tealdrones.com: did not receive HSTS header
team-teasers.com: did not receive HSTS header
teambakchod.com: did not receive HSTS header
teamblueridge.org: could not connect to host
teamhood.io: did not receive HSTS header
teampoint.cz: could not connect to host
@ -7463,7 +7508,7 @@ thanhthinhbui.com: did not receive HSTS header
the-construct.com: could not connect to host
the-delta.net.eu.org: could not connect to host
the-sky-of-valkyries.com: could not connect to host
theamateurs.net: could not connect to host
theamateurs.net: did not receive HSTS header
theamp.com: did not receive HSTS header
theater.cf: could not connect to host
thebasementguys.com: could not connect to host
@ -7571,6 +7616,7 @@ ti.blog.br: could not connect to host
tianxing.pro: could not connect to host
tianxingvpn.pro: could not connect to host
tibbitshall.ca: did not receive HSTS header
ticketoplichting.nl: did not receive HSTS header
tickopa.co.uk: could not connect to host
tickreport.com: did not receive HSTS header
ticktock.today: did not receive HSTS header
@ -7742,7 +7788,7 @@ treeby.net: could not connect to host
treeremovaljohannesburg.co.za: could not connect to host
treino.blog.br: could not connect to host
trell.co.in: did not receive HSTS header
trendberry.ru: did not receive HSTS header
trendberry.ru: could not connect to host
trileg.net: could not connect to host
trinityaffirmations.com: max-age too low: 0
trinitycore.org: max-age too low: 2592000
@ -7818,6 +7864,7 @@ twinkseason.org: could not connect to host
twinkseason.xyz: could not connect to host
twisata.com: did not receive HSTS header
twist.party: could not connect to host
twittelzie.nl: did not receive HSTS header
twogo.com: did not receive HSTS header
twolinepassbrewing.com: could not connect to host
twolivelife.com: could not connect to host
@ -7836,7 +7883,7 @@ tyskland.guide: could not connect to host
tzappa.net: could not connect to host
u-blox.com: max-age too low: 0
u.nu: could not connect to host
u5b.de: max-age too low: 3153
u5b.de: could not connect to host
ua.search.yahoo.com: did not receive HSTS header
uadp.pw: did not receive HSTS header
uber.com.au: did not receive HSTS header
@ -8030,7 +8077,7 @@ vendigital.com: did not receive HSTS header
venicecomputerrepair.com: did not receive HSTS header
venixplays-stream.ml: could not connect to host
vennet.fr: did not receive HSTS header
venturepro.com: did not receive HSTS header
venturepro.com: could not connect to host
ventzke.com: did not receive HSTS header
venzocrm.com: did not receive HSTS header
verifikatorindonesia.com: could not connect to host
@ -8082,6 +8129,7 @@ vipmusic.ga: could not connect to host
vipnettikasinoklubi.com: could not connect to host
viral8.jp: could not connect to host
virginiacrimeanalysisnetwork.org: did not receive HSTS header
virgopolymer.com: did not receive HSTS header
virtualstrongbox.ca: did not receive HSTS header
visanhigia.com: did not receive HSTS header
viserproject.com: did not receive HSTS header
@ -8177,6 +8225,7 @@ wapt.fr: did not receive HSTS header
warandpeace.xyz: could not connect to host
wardsegers.be: did not receive HSTS header
warehost.de: did not receive HSTS header
warhaggis.com: did not receive HSTS header
warhistoryonline.com: max-age too low: 0
warped.com: did not receive HSTS header
warrencreative.com: did not receive HSTS header
@ -8187,7 +8236,6 @@ waterforlife.net.au: did not receive HSTS header
waterpoint.com.br: did not receive HSTS header
watersportmarkt.net: did not receive HSTS header
watsonhall.uk: could not connect to host
wattechweb.com: did not receive HSTS header
wave.is: could not connect to host
wavefloatrooms.com: did not receive HSTS header
wavefrontsystemstech.com: could not connect to host
@ -8270,6 +8318,8 @@ wetttipps.com: did not receive HSTS header
wetttipps.de: could not connect to host
wevahoo.com: could not connect to host
wevolver.com: did not receive HSTS header
wewillgo.com: did not receive HSTS header
wewillgo.org: did not receive HSTS header
wewlad.me: could not connect to host
wftda.com: did not receive HSTS header
whatnext.limited: did not receive HSTS header
@ -8349,7 +8399,7 @@ woording.com: could not connect to host
wootton95.com: could not connect to host
wooviet.com: could not connect to host
word-grabber.com: did not receive HSTS header
work-and-jockel.de: did not receive HSTS header
work-and-jockel.de: could not connect to host
workfone.io: did not receive HSTS header
workpermit.com.vn: could not connect to host
worldlist.org: could not connect to host
@ -8502,6 +8552,7 @@ xn--mgbbh2a9fub.xn--ngbc5azd: could not connect to host
xn--milchaufschumer-test-lzb.de: could not connect to host
xn--neb-tma3u8u.xyz: could not connect to host
xn--qckqc0nxbyc4cdb4527err7c.biz: did not receive HSTS header
xn--sdkwa9azd389v01ya.com: did not receive HSTS header
xn--xdtx3pfzbiw3ar8e7yedqrhui.com: could not connect to host
xn--yoamomisuasbcn-ynb.com: could not connect to host
xn--zck9a4b352yuua.jp: did not receive HSTS header
@ -8590,7 +8641,6 @@ ypiresia.fr: could not connect to host
ytcuber.xyz: could not connect to host
ytvwld.de: did not receive HSTS header
yu7.jp: did not receive HSTS header
yufan.me: did not receive HSTS header
yugege.cf: could not connect to host
yuhen.ru: did not receive HSTS header
yukiminami.net: could not connect to host
@ -8687,7 +8737,6 @@ zmy.im: did not receive HSTS header
zocken.com: did not receive HSTS header
zoe.vc: could not connect to host
zohar.link: could not connect to host
zolotoy-standart.com.ua: did not receive HSTS header
zomiac.pp.ua: could not connect to host
zoneminder.com: did not receive HSTS header
zoners.si: could not connect to host

Просмотреть файл

@ -8,7 +8,7 @@
/*****************************************************************************/
#include <stdint.h>
const PRTime gPreloadListExpirationTime = INT64_C(1518803015565000);
const PRTime gPreloadListExpirationTime = INT64_C(1518849091134000);
%%
0.me.uk, 1
00001.am, 1
@ -130,7 +130,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1518803015565000);
1590284872.rsc.cdn77.org, 1
1600esplanade.com, 1
16164f.com, 1
1644091933.rsc.cdn77.org, 1
174.net.nz, 1
1750studios.com, 0
17hats.com, 1
@ -234,7 +233,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1518803015565000);
2programmers.net, 1
2stv.net, 1
2ulcceria.nl, 1
300mbmovie24.com, 1
3133780x.com, 1
314chan.org, 1
31klabs.com, 1
@ -1430,6 +1428,7 @@ andrewvoce.com, 1
andrewyg.net, 1
andrezadnik.com, 1
andro2id.com, 1
andro4all.com, 1
android.re, 1
androide.com, 1
androidhry.cz, 1
@ -1638,7 +1637,6 @@ api.simple.com, 0
api.xero.com, 0
apiary.blog, 1
apiary.clothing, 1
apiary.shop, 1
apiary.store, 1
apiary.supplies, 1
apiary.supply, 1
@ -1707,7 +1705,6 @@ apptomics.com, 1
apptoutou.com, 1
appuals.com, 1
appui-de-fenetre.fr, 1
appuro.com, 1
appzoojoo.be, 1
aprefix.com, 1
apretatuercas.es, 1
@ -1771,7 +1768,7 @@ arcaik.net, 1
arcenergy.co.uk, 1
archii.ca, 1
archimedicx.com, 1
architectdirect.nl, 1
architectdirect.nl, 0
architecte-interieur.be, 1
archivesdelavieordinaire.ch, 1
archlinux.de, 1
@ -3219,7 +3216,6 @@ bjarnerest.de, 1
bjgongyi.com, 1
bjornhelmersson.se, 1
bjornjohansen.no, 1
bjs.gov, 1
bjtxl.cn, 1
bkhpilates.co.uk, 1
bl4ckb0x.biz, 1
@ -4569,7 +4565,7 @@ champions.co, 1
championweb.com.au, 1
champonthis.de, 1
champserver.net, 1
chancat.blog, 1
chancat.blog, 0
chandr1000.ga, 1
changecopyright.ru, 1
changelab.cc, 1
@ -5087,6 +5083,7 @@ cloudia.org, 1
cloudily.com, 1
cloudlight.biz, 1
cloudmigrator365.com, 1
cloudopt.net, 0
cloudoptimizedsmb.com, 1
cloudoptimus.com, 1
cloudpagesforwork.com, 1
@ -5746,6 +5743,7 @@ creativeink.de, 1
creativelaw.eu, 1
creativeliquid.com, 1
creativesurvey.com, 1
creativeweb.biz, 1
creators-design.com, 1
creators.co, 1
credential.eu, 1
@ -6415,6 +6413,7 @@ ddel.de, 1
dden.ca, 0
dden.website, 1
dden.xyz, 1
ddepot.us, 1
ddfreedish.site, 0
ddhosted.com, 1
ddmeportal.com, 1
@ -6479,7 +6478,6 @@ decomplify.com, 1
deconsolutions.com, 1
decor-d.com, 1
decoraid.com, 1
decoratrix.com, 1
decorestilo.com.br, 1
decorincasa.com.br, 1
decorland.com.ua, 1
@ -8081,7 +8079,6 @@ emergencyessay.com, 1
emergentvisiontec.com, 1
emergenzalavoro.com, 1
emero.de, 1
emesolutions.net, 1
emi-air-comprime.com, 1
emi.im, 1
emielraaijmakers.nl, 1
@ -8830,7 +8827,6 @@ failover.de, 1
failover.eu, 1
fairbill.com, 1
faircom.co.za, 1
fairedeseconomies.info, 1
fairviewmotel-simcoe.com, 1
faithmissionaries.com, 1
faithwatch.org, 1
@ -9416,7 +9412,6 @@ flymns.fr, 1
flynn.io, 1
flyserver.co.il, 1
flyspace.ga, 1
flyspace.ml, 1
flyss.net, 1
flyssh.net, 1
flyt.online, 1
@ -10658,7 +10653,6 @@ gothamlimo.com, 1
gothic.dating, 1
gotirupati.com, 1
goto.google.com, 1
goto.msk.ru, 1
goto.world, 1
gotomi.info, 1
gotoxy.at, 1
@ -12181,7 +12175,7 @@ idexxpublicationportal.com, 1
idgard.de, 1
idhosts.co.id, 1
idid.tk, 1
idinby.dk, 0
idinby.dk, 1
idiopolis.org, 1
idiotentruppe.de, 1
idmanagement.gov, 1
@ -13562,6 +13556,7 @@ joostvanderlaan.nl, 1
jooto.com, 1
jopsens.de, 1
joran.org, 1
jordanhamilton.me, 1
jordankmportal.com, 1
jordans.co.uk, 1
jordanscorporatelaw.com, 1
@ -13667,6 +13662,7 @@ juergenspecht.de, 1
jugendsuenden.info, 1
juhakoho.com, 1
juice.codes, 1
juka.pp.ua, 1
julegoerke.de, 1
julian-weigle.de, 1
juliangonggrijp.com, 1
@ -14987,7 +14983,7 @@ leaseit24.de, 1
leasit.at, 1
leasit.de, 1
leatherfurnitureexpo.com, 1
leaversmith.com, 0
leaversmith.com, 1
leavesofchangeweekly.org, 1
lebal.se, 1
lebanesearmy.gov.lb, 1
@ -16555,7 +16551,6 @@ mcuong.tk, 0
mcynews.com, 1
mcyukon.com, 1
md5file.com, 1
md5hashing.net, 1
mdcloudpracticesolutions.com, 1
mdcloudps.com, 1
mdek.at, 1
@ -18008,7 +18003,6 @@ naphex.rocks, 1
napisynapomniky.cz, 1
napolinissanctparts.com, 1
narach.com, 1
narada.com.ua, 1
naralogics.com, 1
narfation.org, 1
nargele.eu, 1
@ -18676,7 +18670,6 @@ noop.ch, 1
noordsee.de, 1
noorsolidarity.com, 1
nootropic.com, 1
nootropicsource.com, 1
nopaste.xyz, 1
nord-sud.be, 1
nordakademie.de, 1
@ -19244,6 +19237,7 @@ openconnect.com.au, 1
opendataincubator.eu, 1
openevic.info, 1
openfir.st, 1
openfitapi-falke.azurewebsites.net, 1
opengg.me, 1
openings.ninja, 1
openintelligence.uk, 1
@ -19351,7 +19345,6 @@ origami.to, 1
originalmockups.com, 1
originalniknihy.cz, 1
orimex-mebel.ru, 1
oriongames.eu, 1
orkestar-krizevci.hr, 1
orleika.io, 1
orlives.de, 0
@ -21403,6 +21396,7 @@ rapenroer.nl, 1
raphael.li, 1
raphaelcasazza.ch, 1
rapidapp.io, 1
rapido.nu, 1
rapidshit.net, 1
rapidstone.com, 1
raraflora.com.au, 1
@ -21529,7 +21523,6 @@ reaven.nl, 1
rebelessex.com, 1
rebelz.se, 1
rebirthia.me, 1
rebootmc.com, 1
reboxetine.com, 1
reboxonline.com, 1
recantoshop.com, 1
@ -22738,7 +22731,6 @@ scenicbyways.info, 1
scepticism.com, 1
sceptique.eu, 1
schaafenstrasse.koeln, 1
schachburg.de, 1
schadevergoedingen.eu, 1
schallert.com, 1
schamlosharmlos.de, 1
@ -23445,7 +23437,7 @@ shishlik.net, 1
shitagi-shop.com, 1
shitbeast.institute, 1
shitfest.info, 1
shitmybradsays.com, 1
shitmybradsays.com, 0
shitposts.se, 1
shitproductions.org, 1
shitsta.in, 1
@ -23511,6 +23503,7 @@ shux.pro, 1
shuzicai.cn, 1
shymeck.pw, 1
si-benelux.nl, 1
si.to, 1
siamega.com, 1
siamojo.com, 1
siamsnus.com, 1
@ -23874,7 +23867,6 @@ slash64.uk, 1
slashbits.no, 1
slaughterhouse.fr, 1
slaws.io, 1
sleeklounge.com, 1
sleeplessbeastie.eu, 1
sleepmap.de, 1
sleepstar.co.uk, 1
@ -24598,9 +24590,7 @@ statecollegemortgages.com, 1
statgram.me, 1
static-692b8c32.de, 1
static-assets.io, 1
static-myfxee-808795.c.cdn77.org, 1
static-myfxoau-808795.c.cdn77.org, 1
static-myfxouk-808795.c.cdn77.org, 1
static.hosting, 1
static.wepay.com, 0
staticisnoise.com, 1
@ -24994,7 +24984,6 @@ supersonnigfestival.de, 1
supersu.kr, 1
superswingtrainer.com, 1
supertasker.org, 1
supes.io, 1
supeuro.com, 1
supplementler.com, 1
supplies24.at, 1
@ -25068,7 +25057,6 @@ svetzitrka.cz, 0
svijet-medija.hr, 1
sviz.pro, 1
svj-stochovska.cz, 1
svjvn.cz, 1
svm-basketball.de, 1
svm-it.eu, 1
sw-servers.net, 1
@ -26063,7 +26051,6 @@ tibovanheule.site, 1
ticfleet.com, 1
ticketluck.com, 1
ticketmates.com.au, 1
ticketoplichting.nl, 1
ticketslover.com, 1
ticketsmate.com, 1
ticketsource.co.uk, 1
@ -26903,7 +26890,6 @@ twisted-brains.org, 1
twistedwave.com, 1
twisto.cz, 1
twit-guide.com, 1
twittelzie.nl, 1
twitter.ax, 1
twitter.com, 0
twitteroauth.com, 1
@ -27706,7 +27692,6 @@ viptamin.eu, 1
vir-tec.eu, 1
viralboombox.xyz, 1
viralpop.it, 1
virgopolymer.com, 1
virial.de, 1
viridis-milites.cz, 1
virtualdesignmedia.com, 0
@ -28019,7 +28004,6 @@ warekon.dk, 1
warenits.at, 1
warezaddict.com, 1
wargameexclusive.com, 1
warhaggis.com, 1
warlions.info, 0
warmestwishes.ca, 1
warmlyyours.com, 0
@ -28056,6 +28040,7 @@ watermonitor.gov, 1
watersb.org, 1
watertrails.io, 1
watsonwork.me, 1
wattechweb.com, 1
wave-ola.es, 1
wavesboardshop.com, 1
wavesoftime.com, 1
@ -28351,8 +28336,6 @@ wetofu.top, 1
wettbonus.info, 1
wetthost.com, 1
wevenues.com, 1
wewillgo.com, 1
wewillgo.org, 1
weyland-yutani.org, 1
weyland.tech, 1
wf-bigsky-master.appspot.com, 1
@ -29114,7 +29097,6 @@ xn--rt-cja.eu, 1
xn--rt-cja.ie, 1
xn--rtter-kva.eu, 1
xn--ruanmller-u9a.com, 1
xn--sdkwa9azd389v01ya.com, 1
xn--seelenwchter-mcb.eu, 1
xn--spenijmazania-yhc.pl, 1
xn--srenpind-54a.dk, 1
@ -29490,6 +29472,7 @@ yudan.com.br, 1
yude.ml, 1
yue.la, 1
yue2.net, 1
yufan.me, 1
yuhuo.org, 1
yuka.one, 1
yuki.xyz, 1
@ -29724,6 +29707,7 @@ zojadravai.com, 1
zoki.art, 1
zokster.net, 1
zolokar.xyz, 1
zolotoy-standart.com.ua, 1
zombiesecured.com, 1
zomerschoen.nl, 1
zone-produkte.de, 1

Просмотреть файл

@ -301,7 +301,7 @@ linux64-android-gradle-dependencies:
- linux64-android-sdk-linux-repack
- linux64-proguard-jar-repack
linux64-rust-1.19:
linux64-rust-1.20:
description: "rust repack"
treeherder:
kind: build
@ -318,7 +318,7 @@ linux64-rust-1.19:
using: toolchain-script
script: repack_rust.py
arguments: [
'--channel', '1.19.0',
'--channel', '1.20.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'i686-unknown-linux-gnu',
@ -326,7 +326,31 @@ linux64-rust-1.19:
toolchain-alias: linux64-rust
toolchain-artifact: public/build/rustc.tar.xz
linux64-rust-macos-1.19:
linux64-rust-1.19:
description: "rust repack"
treeherder:
kind: build
platform: toolchains/opt
symbol: TL(rust-1.19)
tier: 1
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: desktop-build}
max-run-time: 7200
env:
UPLOAD_DIR: artifacts
run:
using: toolchain-script
script: repack_rust.py
arguments: [
'--channel', '1.19.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'i686-unknown-linux-gnu',
]
toolchain-artifact: public/build/rustc.tar.xz
linux64-rust-macos-1.20:
description: "rust repack with macos-cross support"
treeherder:
kind: build
@ -343,7 +367,7 @@ linux64-rust-macos-1.19:
using: toolchain-script
script: repack_rust.py
arguments: [
'--channel', '1.19.0',
'--channel', '1.20.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-apple-darwin',
@ -351,7 +375,7 @@ linux64-rust-macos-1.19:
toolchain-alias: linux64-rust-macos
toolchain-artifact: public/build/rustc.tar.xz
linux64-rust-android-1.19:
linux64-rust-android-1.20:
description: "rust repack with android-cross support"
treeherder:
kind: build
@ -368,7 +392,7 @@ linux64-rust-android-1.19:
using: toolchain-script
script: repack_rust.py
arguments: [
'--channel', '1.19.0',
'--channel', '1.20.0',
'--host', 'x86_64-unknown-linux-gnu',
'--target', 'x86_64-unknown-linux-gnu',
'--target', 'armv7-linux-androideabi',

Просмотреть файл

@ -94,7 +94,7 @@ win64-clang-tidy:
- 'taskcluster/scripts/misc/build-clang-windows-helper64.sh'
toolchain-artifact: public/build/clang-tidy.tar.bz2
win64-rust-1.19:
win64-rust-1.20:
description: "rust repack"
treeherder:
kind: build
@ -111,14 +111,37 @@ win64-rust-1.19:
using: toolchain-script
script: repack_rust.py
arguments: [
'--channel', '1.19.0',
'--channel', '1.20.0',
'--host', 'x86_64-pc-windows-msvc',
'--target', 'x86_64-pc-windows-msvc',
]
toolchain-alias: win64-rust
toolchain-artifact: public/build/rustc.tar.bz2
win32-rust-1.19:
win64-rust-1.19:
description: "rust repack"
treeherder:
kind: build
platform: toolchains/opt
symbol: TW64(rust-1.19)
tier: 1
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: desktop-build}
max-run-time: 7200
env:
UPLOAD_DIR: artifacts
run:
using: toolchain-script
script: repack_rust.py
arguments: [
'--channel', '1.19.0',
'--host', 'x86_64-pc-windows-msvc',
'--target', 'x86_64-pc-windows-msvc',
]
toolchain-artifact: public/build/rustc.tar.bz2
win32-rust-1.20:
description: "rust repack"
treeherder:
kind: build
@ -135,14 +158,14 @@ win32-rust-1.19:
using: toolchain-script
script: repack_rust.py
arguments: [
'--channel', '1.19.0',
'--channel', '1.20.0',
'--host', 'i686-pc-windows-msvc',
'--target', 'i686-pc-windows-msvc',
]
toolchain-alias: win32-rust
toolchain-artifact: public/build/rustc.tar.bz2
mingw32-rust-1.19:
mingw32-rust-1.20:
description: "rust repack"
treeherder:
kind: build
@ -159,7 +182,7 @@ mingw32-rust-1.19:
using: toolchain-script
script: repack_rust.py
arguments: [
'--channel', '1.19.0',
'--channel', '1.20.0',
'--host', 'i686-unknown-linux-gnu',
'--target', 'i686-pc-windows-gnu',
'--target', 'x86_64-unknown-linux-gnu',

Просмотреть файл

@ -46,7 +46,7 @@ bool CrashGenerationClient::RequestDumpForException(
MachSendMessage message(kDumpRequestMessage);
message.AddDescriptor(mach_task_self()); // this task
message.AddDescriptor(crashing_thread); // crashing thread
message.AddDescriptor(mach_thread_self()); // handler thread
message.AddDescriptor(MACH_PORT_NULL); // handler thread
message.AddDescriptor(acknowledge_port.GetPort()); // message receive port
ExceptionInfo info;