зеркало из https://github.com/mozilla/gecko-dev.git
merge mozilla-central to autoland. r=merge a=merge
This commit is contained in:
Коммит
2592ce224a
|
@ -159,69 +159,6 @@ inline void SetPendingException(JSContext *cx, const char16_t *aMsg)
|
|||
JS_ReportErrorUTF8(cx, "%s", msg.get());
|
||||
}
|
||||
|
||||
// Helper class to get stuff from the ClassInfo and not waste extra time with
|
||||
// virtual method calls for things it has already gotten
|
||||
class ClassInfoData
|
||||
{
|
||||
public:
|
||||
ClassInfoData(nsIClassInfo *aClassInfo, const char *aName)
|
||||
: mClassInfo(aClassInfo),
|
||||
mFlags(0),
|
||||
mName(aName),
|
||||
mDidGetFlags(false)
|
||||
{
|
||||
if (!aName) {
|
||||
mName.SetIsVoid(true);
|
||||
}
|
||||
}
|
||||
|
||||
~ClassInfoData() = default;
|
||||
|
||||
uint32_t GetFlags()
|
||||
{
|
||||
if (!mDidGetFlags) {
|
||||
if (mClassInfo) {
|
||||
nsresult rv = mClassInfo->GetFlags(&mFlags);
|
||||
if (NS_FAILED(rv)) {
|
||||
mFlags = 0;
|
||||
}
|
||||
} else {
|
||||
mFlags = 0;
|
||||
}
|
||||
|
||||
mDidGetFlags = true;
|
||||
}
|
||||
|
||||
return mFlags;
|
||||
}
|
||||
|
||||
bool IsDOMClass()
|
||||
{
|
||||
return !!(GetFlags() & nsIClassInfo::DOM_OBJECT);
|
||||
}
|
||||
|
||||
void GetName(nsACString& aName)
|
||||
{
|
||||
if (mName.IsVoid()) {
|
||||
if (mClassInfo) {
|
||||
mClassInfo->GetClassDescription(mName);
|
||||
}
|
||||
|
||||
if (mName.IsVoid()) {
|
||||
mName.AssignLiteral("UnnamedClass");
|
||||
}
|
||||
}
|
||||
|
||||
aName = mName;
|
||||
}
|
||||
|
||||
private:
|
||||
nsIClassInfo *mClassInfo; // WEAK
|
||||
uint32_t mFlags;
|
||||
nsCString mName;
|
||||
bool mDidGetFlags;
|
||||
};
|
||||
|
||||
/* static */
|
||||
bool
|
||||
nsScriptSecurityManager::SecurityCompareURIs(nsIURI* aSourceURI,
|
||||
|
@ -1276,27 +1213,26 @@ nsScriptSecurityManager::CanCreateWrapper(JSContext *cx,
|
|||
nsIClassInfo *aClassInfo)
|
||||
{
|
||||
// XXX Special case for nsIXPCException ?
|
||||
ClassInfoData objClassInfo = ClassInfoData(aClassInfo, nullptr);
|
||||
if (objClassInfo.IsDOMClass())
|
||||
{
|
||||
|
||||
uint32_t flags;
|
||||
if (aClassInfo && NS_SUCCEEDED(aClassInfo->GetFlags(&flags)) &&
|
||||
(flags & nsIClassInfo::DOM_OBJECT)) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// We give remote-XUL whitelisted domains a free pass here. See bug 932906.
|
||||
JS::Rooted<JS::Realm*> contextRealm(cx, JS::GetCurrentRealmOrNull(cx));
|
||||
MOZ_RELEASE_ASSERT(contextRealm);
|
||||
if (!xpc::AllowContentXBLScope(contextRealm))
|
||||
{
|
||||
if (!xpc::AllowContentXBLScope(contextRealm)) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (nsContentUtils::IsCallerChrome())
|
||||
{
|
||||
if (nsContentUtils::IsCallerChrome()) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// We want to expose nsIDOMXULCommandDispatcher and nsITreeSelection implementations
|
||||
// in XBL scopes.
|
||||
// We want to expose nsIDOMXULCommandDispatcher and nsITreeSelection
|
||||
// implementations in XBL scopes.
|
||||
if (xpc::IsContentXBLScope(contextRealm)) {
|
||||
nsCOMPtr<nsIDOMXULCommandDispatcher> dispatcher = do_QueryInterface(aObj);
|
||||
if (dispatcher) {
|
||||
|
@ -1315,7 +1251,12 @@ nsScriptSecurityManager::CanCreateWrapper(JSContext *cx,
|
|||
GetPrincipalDomainOrigin(subjectPrincipal, originUTF8);
|
||||
NS_ConvertUTF8toUTF16 originUTF16(originUTF8);
|
||||
nsAutoCString classInfoNameUTF8;
|
||||
objClassInfo.GetName(classInfoNameUTF8);
|
||||
if (aClassInfo) {
|
||||
aClassInfo->GetClassDescription(classInfoNameUTF8);
|
||||
}
|
||||
if (classInfoNameUTF8.IsEmpty()) {
|
||||
classInfoNameUTF8.AssignLiteral("UnnamedClass");
|
||||
}
|
||||
NS_ConvertUTF8toUTF16 classInfoUTF16(classInfoNameUTF8);
|
||||
nsresult rv;
|
||||
nsAutoString errorMsg;
|
||||
|
|
|
@ -5,9 +5,12 @@
|
|||
"use strict";
|
||||
|
||||
const { Actor, ActorClassWithSpec } = require("devtools/shared/protocol");
|
||||
const { flexboxSpec, gridSpec, layoutSpec } = require("devtools/shared/specs/layout");
|
||||
const nodeFilterConstants = require("devtools/shared/dom-node-filter-constants");
|
||||
const { getStringifiableFragments } =
|
||||
require("devtools/server/actors/utils/css-grid-utils");
|
||||
const { gridSpec, layoutSpec } = require("devtools/shared/specs/layout");
|
||||
|
||||
loader.lazyRequireGetter(this, "CssLogic", "devtools/server/css-logic", true);
|
||||
|
||||
/**
|
||||
* Set of actors the expose the CSS layout information to the devtools protocol clients.
|
||||
|
@ -15,27 +18,71 @@ const { gridSpec, layoutSpec } = require("devtools/shared/specs/layout");
|
|||
* The |Layout| actor is the main entry point. It is used to get various CSS
|
||||
* layout-related information from the document.
|
||||
*
|
||||
* The |Flexbox| actor provides the container node information to inspect the flexbox
|
||||
* container.
|
||||
*
|
||||
* The |Grid| actor provides the grid fragment information to inspect the grid container.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The GridActor provides information about a given grid's fragment data.
|
||||
*/
|
||||
var GridActor = ActorClassWithSpec(gridSpec, {
|
||||
const FlexboxActor = ActorClassWithSpec(flexboxSpec, {
|
||||
/**
|
||||
* @param {LayoutActor} layoutActor
|
||||
* The LayoutActor instance.
|
||||
* @param {DOMNode} containerEl
|
||||
* The grid container element.
|
||||
* The flexbox container element.
|
||||
*/
|
||||
initialize: function (layoutActor, containerEl) {
|
||||
initialize(layoutActor, containerEl) {
|
||||
Actor.prototype.initialize.call(this, layoutActor.conn);
|
||||
|
||||
this.containerEl = containerEl;
|
||||
this.walker = layoutActor.walker;
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
destroy() {
|
||||
Actor.prototype.destroy.call(this);
|
||||
|
||||
this.containerEl = null;
|
||||
this.walker = null;
|
||||
},
|
||||
|
||||
form(detail) {
|
||||
if (detail === "actorid") {
|
||||
return this.actorID;
|
||||
}
|
||||
|
||||
let form = {
|
||||
actor: this.actorID,
|
||||
};
|
||||
|
||||
// If the WalkerActor already knows the container element, then also return its
|
||||
// ActorID so we avoid the client from doing another round trip to get it in many
|
||||
// cases.
|
||||
if (this.walker.hasNode(this.containerEl)) {
|
||||
form.containerNodeActorID = this.walker.getNode(this.containerEl).actorID;
|
||||
}
|
||||
|
||||
return form;
|
||||
},
|
||||
});
|
||||
|
||||
/**
|
||||
* The GridActor provides information about a given grid's fragment data.
|
||||
*/
|
||||
const GridActor = ActorClassWithSpec(gridSpec, {
|
||||
/**
|
||||
* @param {LayoutActor} layoutActor
|
||||
* The LayoutActor instance.
|
||||
* @param {DOMNode} containerEl
|
||||
* The grid container element.
|
||||
*/
|
||||
initialize(layoutActor, containerEl) {
|
||||
Actor.prototype.initialize.call(this, layoutActor.conn);
|
||||
|
||||
this.containerEl = containerEl;
|
||||
this.walker = layoutActor.walker;
|
||||
},
|
||||
|
||||
destroy() {
|
||||
Actor.prototype.destroy.call(this);
|
||||
|
||||
this.containerEl = null;
|
||||
|
@ -43,7 +90,7 @@ var GridActor = ActorClassWithSpec(gridSpec, {
|
|||
this.walker = null;
|
||||
},
|
||||
|
||||
form: function (detail) {
|
||||
form(detail) {
|
||||
if (detail === "actorid") {
|
||||
return this.actorID;
|
||||
}
|
||||
|
@ -55,7 +102,7 @@ var GridActor = ActorClassWithSpec(gridSpec, {
|
|||
|
||||
let form = {
|
||||
actor: this.actorID,
|
||||
gridFragments: this.gridFragments
|
||||
gridFragments: this.gridFragments,
|
||||
};
|
||||
|
||||
// If the WalkerActor already knows the container element, then also return its
|
||||
|
@ -72,21 +119,83 @@ var GridActor = ActorClassWithSpec(gridSpec, {
|
|||
/**
|
||||
* The CSS layout actor provides layout information for the given document.
|
||||
*/
|
||||
var LayoutActor = ActorClassWithSpec(layoutSpec, {
|
||||
initialize: function (conn, tabActor, walker) {
|
||||
const LayoutActor = ActorClassWithSpec(layoutSpec, {
|
||||
initialize(conn, tabActor, walker) {
|
||||
Actor.prototype.initialize.call(this, conn);
|
||||
|
||||
this.tabActor = tabActor;
|
||||
this.walker = walker;
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
destroy() {
|
||||
Actor.prototype.destroy.call(this);
|
||||
|
||||
this.tabActor = null;
|
||||
this.walker = null;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns an array of FlexboxActor objects for all the flexbox containers found by
|
||||
* iterating below the given rootNode.
|
||||
*
|
||||
* @param {Node|NodeActor} rootNode
|
||||
* The root node to start iterating at.
|
||||
* @return {Array} An array of FlexboxActor objects.
|
||||
*/
|
||||
getFlexbox(rootNode) {
|
||||
let flexboxes = [];
|
||||
|
||||
if (!rootNode) {
|
||||
return flexboxes;
|
||||
}
|
||||
|
||||
let treeWalker = this.walker.getDocumentWalker(rootNode,
|
||||
nodeFilterConstants.SHOW_ELEMENT);
|
||||
|
||||
while (treeWalker.nextNode()) {
|
||||
let currentNode = treeWalker.currentNode;
|
||||
let computedStyle = CssLogic.getComputedStyle(currentNode);
|
||||
|
||||
if (!computedStyle) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (computedStyle.display == "inline-flex" || computedStyle.display == "flex") {
|
||||
let flexboxActor = new FlexboxActor(this, currentNode);
|
||||
flexboxes.push(flexboxActor);
|
||||
}
|
||||
}
|
||||
|
||||
return flexboxes;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns an array of FlexboxActor objects for all existing flexbox containers found by
|
||||
* iterating below the given rootNode and optionally including nested frames.
|
||||
*
|
||||
* @param {NodeActor} rootNode
|
||||
* @param {Boolean} traverseFrames
|
||||
* Whether or not we should iterate through nested frames.
|
||||
* @return {Array} An array of FlexboxActor objects.
|
||||
*/
|
||||
getAllFlexbox(rootNode, traverseFrames) {
|
||||
let flexboxes = [];
|
||||
|
||||
if (!rootNode) {
|
||||
return flexboxes;
|
||||
}
|
||||
|
||||
if (!traverseFrames) {
|
||||
return this.getFlexbox(rootNode.rawNode);
|
||||
}
|
||||
|
||||
for (let {document} of this.tabActor.windows) {
|
||||
flexboxes = [...flexboxes, ...this.getFlexbox(document.documentElement)];
|
||||
}
|
||||
|
||||
return flexboxes;
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns an array of GridActor objects for all the grid containers found by iterating
|
||||
* below the given rootNode.
|
||||
|
@ -95,14 +204,16 @@ var LayoutActor = ActorClassWithSpec(layoutSpec, {
|
|||
* The root node to start iterating at.
|
||||
* @return {Array} An array of GridActor objects.
|
||||
*/
|
||||
getGrids: function (rootNode) {
|
||||
getGrids(rootNode) {
|
||||
let grids = [];
|
||||
|
||||
if (!rootNode) {
|
||||
return grids;
|
||||
}
|
||||
|
||||
let treeWalker = this.walker.getDocumentWalker(rootNode);
|
||||
let treeWalker = this.walker.getDocumentWalker(rootNode,
|
||||
nodeFilterConstants.SHOW_ELEMENT);
|
||||
|
||||
while (treeWalker.nextNode()) {
|
||||
let currentNode = treeWalker.currentNode;
|
||||
|
||||
|
@ -124,7 +235,7 @@ var LayoutActor = ActorClassWithSpec(layoutSpec, {
|
|||
* Whether or not we should iterate through nested frames.
|
||||
* @return {Array} An array of GridActor objects.
|
||||
*/
|
||||
getAllGrids: function (rootNode, traverseFrames) {
|
||||
getAllGrids(rootNode, traverseFrames) {
|
||||
let grids = [];
|
||||
|
||||
if (!rootNode) {
|
||||
|
@ -141,8 +252,8 @@ var LayoutActor = ActorClassWithSpec(layoutSpec, {
|
|||
|
||||
return grids;
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
exports.FlexboxActor = FlexboxActor;
|
||||
exports.GridActor = GridActor;
|
||||
exports.LayoutActor = LayoutActor;
|
||||
|
|
|
@ -5,7 +5,29 @@
|
|||
"use strict";
|
||||
|
||||
const { FrontClassWithSpec } = require("devtools/shared/protocol");
|
||||
const { gridSpec, layoutSpec } = require("devtools/shared/specs/layout");
|
||||
const { flexboxSpec, gridSpec, layoutSpec } = require("devtools/shared/specs/layout");
|
||||
|
||||
const FlexboxFront = FrontClassWithSpec(flexboxSpec, {
|
||||
form: function (form, detail) {
|
||||
if (detail === "actorid") {
|
||||
this.actorID = form;
|
||||
return;
|
||||
}
|
||||
this._form = form;
|
||||
},
|
||||
|
||||
/**
|
||||
* In some cases, the FlexboxActor already knows the NodeActor ID of the node where the
|
||||
* flexbox is located. In such cases, this getter returns the NodeFront for it.
|
||||
*/
|
||||
get containerNodeFront() {
|
||||
if (!this._form.containerNodeActorID) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return this.conn.getActor(this._form.containerNodeActorID);
|
||||
},
|
||||
});
|
||||
|
||||
const GridFront = FrontClassWithSpec(gridSpec, {
|
||||
form: function (form, detail) {
|
||||
|
@ -33,10 +55,11 @@ const GridFront = FrontClassWithSpec(gridSpec, {
|
|||
*/
|
||||
get gridFragments() {
|
||||
return this._form.gridFragments;
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const LayoutFront = FrontClassWithSpec(layoutSpec, {});
|
||||
|
||||
exports.FlexboxFront = FlexboxFront;
|
||||
exports.GridFront = GridFront;
|
||||
exports.LayoutFront = LayoutFront;
|
||||
|
|
|
@ -6,6 +6,12 @@
|
|||
|
||||
const { Arg, generateActorSpec, RetVal } = require("devtools/shared/protocol");
|
||||
|
||||
const flexboxSpec = generateActorSpec({
|
||||
typeName: "flexbox",
|
||||
|
||||
methods: {},
|
||||
});
|
||||
|
||||
const gridSpec = generateActorSpec({
|
||||
typeName: "grid",
|
||||
|
||||
|
@ -16,6 +22,16 @@ const layoutSpec = generateActorSpec({
|
|||
typeName: "layout",
|
||||
|
||||
methods: {
|
||||
getAllFlexbox: {
|
||||
request: {
|
||||
rootNode: Arg(0, "domnode"),
|
||||
traverseFrames: Arg(1, "nullable:boolean")
|
||||
},
|
||||
response: {
|
||||
flexboxes: RetVal("array:flexbox")
|
||||
}
|
||||
},
|
||||
|
||||
getAllGrids: {
|
||||
request: {
|
||||
rootNode: Arg(0, "domnode"),
|
||||
|
@ -24,9 +40,10 @@ const layoutSpec = generateActorSpec({
|
|||
response: {
|
||||
grids: RetVal("array:grid")
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
exports.flexboxSpec = flexboxSpec;
|
||||
exports.gridSpec = gridSpec;
|
||||
exports.layoutSpec = layoutSpec;
|
||||
|
|
|
@ -271,7 +271,8 @@ WriteFontFileData(const uint8_t* aData, uint32_t aLength, uint32_t aIndex,
|
|||
void
|
||||
WebRenderBridgeChild::PushGlyphs(wr::DisplayListBuilder& aBuilder, const nsTArray<wr::GlyphInstance>& aGlyphs,
|
||||
gfx::ScaledFont* aFont, const wr::ColorF& aColor, const StackingContextHelper& aSc,
|
||||
const wr::LayerRect& aBounds, const wr::LayerRect& aClip, bool aBackfaceVisible)
|
||||
const wr::LayerRect& aBounds, const wr::LayerRect& aClip, bool aBackfaceVisible,
|
||||
const wr::GlyphOptions* aGlyphOptions)
|
||||
{
|
||||
MOZ_ASSERT(aFont);
|
||||
MOZ_ASSERT(!aGlyphs.IsEmpty());
|
||||
|
@ -284,7 +285,8 @@ WebRenderBridgeChild::PushGlyphs(wr::DisplayListBuilder& aBuilder, const nsTArra
|
|||
aBackfaceVisible,
|
||||
aColor,
|
||||
key,
|
||||
Range<const wr::GlyphInstance>(aGlyphs.Elements(), aGlyphs.Length()));
|
||||
Range<const wr::GlyphInstance>(aGlyphs.Elements(), aGlyphs.Length()),
|
||||
aGlyphOptions);
|
||||
}
|
||||
|
||||
wr::FontInstanceKey
|
||||
|
|
|
@ -132,7 +132,8 @@ public:
|
|||
gfx::ScaledFont* aFont, const wr::ColorF& aColor,
|
||||
const StackingContextHelper& aSc,
|
||||
const wr::LayerRect& aBounds, const wr::LayerRect& aClip,
|
||||
bool aBackfaceVisible);
|
||||
bool aBackfaceVisible,
|
||||
const wr::GlyphOptions* aGlyphOptions = nullptr);
|
||||
|
||||
wr::FontInstanceKey GetFontKeyForScaledFont(gfx::ScaledFont* aScaledFont);
|
||||
|
||||
|
|
|
@ -197,6 +197,19 @@ inline ImageRendering ToImageRendering(gfx::SamplingFilter aFilter)
|
|||
: ImageRendering::Auto;
|
||||
}
|
||||
|
||||
static inline FontRenderMode ToFontRenderMode(gfx::AntialiasMode aMode, bool aPermitSubpixelAA = true)
|
||||
{
|
||||
switch (aMode) {
|
||||
case gfx::AntialiasMode::NONE:
|
||||
return FontRenderMode::Mono;
|
||||
case gfx::AntialiasMode::GRAY:
|
||||
return FontRenderMode::Alpha;
|
||||
case gfx::AntialiasMode::SUBPIXEL:
|
||||
default:
|
||||
return aPermitSubpixelAA ? FontRenderMode::Subpixel : FontRenderMode::Alpha;
|
||||
}
|
||||
}
|
||||
|
||||
static inline MixBlendMode ToMixBlendMode(gfx::CompositionOp compositionOp)
|
||||
{
|
||||
switch (compositionOp)
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// |jit-test| test-also-wasm-check-bce
|
||||
|
||||
mem='\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f'+
|
||||
'\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'+
|
||||
'\x00'.repeat(65488) +
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; test-also-wasm-check-bce; include:wasm.js
|
||||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; test-also-wasm-tiering; include:wasm.js
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; include:wasm.js
|
||||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; test-also-wasm-tiering; include:wasm.js
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// |jit-test| test-also-wasm-check-bce
|
||||
|
||||
const RuntimeError = WebAssembly.RuntimeError;
|
||||
|
||||
function loadModule(type, ext, offset, align) {
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; include:wasm.js
|
||||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; test-also-wasm-tiering; include:wasm.js
|
||||
|
|
|
@ -1 +1 @@
|
|||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; include:wasm-testharness.js
|
||||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; test-also-wasm-tiering; include:wasm-testharness.js
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion
|
||||
|jit-test| test-also-no-wasm-baseline; test-also-no-wasm-ion; test-also-wasm-tiering
|
||||
|
||||
|
|
|
@ -1768,7 +1768,7 @@ OptimizeMIR(MIRGenerator* mir)
|
|||
}
|
||||
|
||||
// BCE marks bounds checks as dead, so do BCE before DCE.
|
||||
if (mir->compilingWasm() && !JitOptions.wasmAlwaysCheckBounds) {
|
||||
if (mir->compilingWasm()) {
|
||||
if (!EliminateBoundsChecks(mir, graph))
|
||||
return false;
|
||||
gs.spewPass("Redundant Bounds Check Elimination");
|
||||
|
|
|
@ -241,9 +241,6 @@ DefaultJitOptions::DefaultJitOptions()
|
|||
// Test whether wasm int64 / double NaN bits testing is enabled.
|
||||
SET_DEFAULT(wasmTestMode, false);
|
||||
|
||||
// Test whether wasm bounds check should always be generated.
|
||||
SET_DEFAULT(wasmAlwaysCheckBounds, false);
|
||||
|
||||
// Toggles the optimization whereby offsets are folded into loads and not
|
||||
// included in the bounds check.
|
||||
SET_DEFAULT(wasmFoldOffsets, true);
|
||||
|
|
|
@ -74,7 +74,6 @@ struct DefaultJitOptions
|
|||
bool osr;
|
||||
bool asmJSAtomicsEnable;
|
||||
bool wasmTestMode;
|
||||
bool wasmAlwaysCheckBounds;
|
||||
bool wasmFoldOffsets;
|
||||
bool ionInterruptWithoutSignals;
|
||||
bool simulatorAlwaysInterrupt;
|
||||
|
|
|
@ -1140,9 +1140,10 @@ class JS_PUBLIC_API(ContextOptions) {
|
|||
: baseline_(true),
|
||||
ion_(true),
|
||||
asmJS_(true),
|
||||
wasm_(false),
|
||||
wasmBaseline_(false),
|
||||
wasmIon_(false),
|
||||
wasm_(true),
|
||||
wasmBaseline_(true),
|
||||
wasmIon_(true),
|
||||
testWasmAwaitTier2_(false),
|
||||
throwOnAsmJSValidationFailure_(false),
|
||||
nativeRegExp_(true),
|
||||
asyncStack_(true),
|
||||
|
@ -1229,6 +1230,16 @@ class JS_PUBLIC_API(ContextOptions) {
|
|||
return *this;
|
||||
}
|
||||
|
||||
bool testWasmAwaitTier2() const { return testWasmAwaitTier2_; }
|
||||
ContextOptions& setTestWasmAwaitTier2(bool flag) {
|
||||
testWasmAwaitTier2_ = flag;
|
||||
return *this;
|
||||
}
|
||||
ContextOptions& toggleTestWasmAwaitTier2() {
|
||||
testWasmAwaitTier2_ = !testWasmAwaitTier2_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool throwOnAsmJSValidationFailure() const { return throwOnAsmJSValidationFailure_; }
|
||||
ContextOptions& setThrowOnAsmJSValidationFailure(bool flag) {
|
||||
throwOnAsmJSValidationFailure_ = flag;
|
||||
|
@ -1324,6 +1335,7 @@ class JS_PUBLIC_API(ContextOptions) {
|
|||
bool wasm_ : 1;
|
||||
bool wasmBaseline_ : 1;
|
||||
bool wasmIon_ : 1;
|
||||
bool testWasmAwaitTier2_ : 1;
|
||||
bool throwOnAsmJSValidationFailure_ : 1;
|
||||
bool nativeRegExp_ : 1;
|
||||
bool asyncStack_ : 1;
|
||||
|
|
|
@ -310,6 +310,7 @@ static bool enableNativeRegExp = false;
|
|||
static bool enableSharedMemory = SHARED_MEMORY_DEFAULT;
|
||||
static bool enableWasmBaseline = false;
|
||||
static bool enableWasmIon = false;
|
||||
static bool enableTestWasmAwaitTier2 = false;
|
||||
static bool enableAsyncStacks = false;
|
||||
static bool enableStreams = false;
|
||||
#ifdef JS_GC_ZEAL
|
||||
|
@ -5584,7 +5585,6 @@ struct BufferStreamJob
|
|||
struct BufferStreamState
|
||||
{
|
||||
Vector<UniquePtr<BufferStreamJob>, 0, SystemAllocPolicy> jobs;
|
||||
ConditionVariable jobsEmpty;
|
||||
size_t delayMillis;
|
||||
size_t chunkSize;
|
||||
bool shutdown;
|
||||
|
@ -5601,7 +5601,7 @@ struct BufferStreamState
|
|||
}
|
||||
};
|
||||
|
||||
ExclusiveData<BufferStreamState> bufferStreamState(mutexid::BufferStreamState);
|
||||
ExclusiveWaitableData<BufferStreamState> bufferStreamState(mutexid::BufferStreamState);
|
||||
|
||||
static void
|
||||
BufferStreamMain(BufferStreamJob* job)
|
||||
|
@ -5647,7 +5647,7 @@ BufferStreamMain(BufferStreamJob* job)
|
|||
job->thread.detach(); // quiet assert in ~Thread() called by erase().
|
||||
state->jobs.erase(state->jobs.begin() + jobIndex);
|
||||
if (state->jobs.empty())
|
||||
state->jobsEmpty.notify_all();
|
||||
state.notify_all(/* jobs empty */);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
@ -5684,7 +5684,7 @@ ShutdownBufferStreams()
|
|||
auto state = bufferStreamState.lock();
|
||||
state->shutdown = true;
|
||||
while (!state->jobs.empty())
|
||||
state.wait(state->jobsEmpty);
|
||||
state.wait(/* jobs empty */);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
@ -8132,6 +8132,7 @@ SetContextOptions(JSContext* cx, const OptionParser& op)
|
|||
enableNativeRegExp = !op.getBoolOption("no-native-regexp");
|
||||
enableWasmBaseline = !op.getBoolOption("no-wasm-baseline");
|
||||
enableWasmIon = !op.getBoolOption("no-wasm-ion");
|
||||
enableTestWasmAwaitTier2 = op.getBoolOption("test-wasm-await-tier2");
|
||||
enableAsyncStacks = !op.getBoolOption("no-async-stacks");
|
||||
enableStreams = op.getBoolOption("enable-streams");
|
||||
|
||||
|
@ -8141,13 +8142,11 @@ SetContextOptions(JSContext* cx, const OptionParser& op)
|
|||
.setWasm(enableWasm)
|
||||
.setWasmBaseline(enableWasmBaseline)
|
||||
.setWasmIon(enableWasmIon)
|
||||
.setTestWasmAwaitTier2(enableTestWasmAwaitTier2)
|
||||
.setNativeRegExp(enableNativeRegExp)
|
||||
.setAsyncStack(enableAsyncStacks)
|
||||
.setStreams(enableStreams);
|
||||
|
||||
if (op.getBoolOption("wasm-check-bce"))
|
||||
jit::JitOptions.wasmAlwaysCheckBounds = true;
|
||||
|
||||
if (op.getBoolOption("wasm-test-mode"))
|
||||
jit::JitOptions.wasmTestMode = true;
|
||||
|
||||
|
@ -8427,6 +8426,7 @@ SetWorkerContextOptions(JSContext* cx)
|
|||
.setWasm(enableWasm)
|
||||
.setWasmBaseline(enableWasmBaseline)
|
||||
.setWasmIon(enableWasmIon)
|
||||
.setTestWasmAwaitTier2(enableTestWasmAwaitTier2)
|
||||
.setNativeRegExp(enableNativeRegExp)
|
||||
.setStreams(enableStreams);
|
||||
cx->runtime()->setOffthreadIonCompilationEnabled(offthreadCompilation);
|
||||
|
@ -8631,9 +8631,10 @@ main(int argc, char** argv, char** envp)
|
|||
|| !op.addBoolOption('\0', "no-wasm", "Disable WebAssembly compilation")
|
||||
|| !op.addBoolOption('\0', "no-wasm-baseline", "Disable wasm baseline compiler")
|
||||
|| !op.addBoolOption('\0', "no-wasm-ion", "Disable wasm ion compiler")
|
||||
|| !op.addBoolOption('\0', "test-wasm-await-tier2", "Forcibly activate tiering and block "
|
||||
"instantiation on completion of tier2")
|
||||
|| !op.addBoolOption('\0', "no-native-regexp", "Disable native regexp compilation")
|
||||
|| !op.addBoolOption('\0', "no-unboxed-objects", "Disable creating unboxed plain objects")
|
||||
|| !op.addBoolOption('\0', "wasm-check-bce", "Always generate wasm bounds check, even redundant ones.")
|
||||
|| !op.addBoolOption('\0', "wasm-test-mode", "Enable wasm testing mode, creating synthetic "
|
||||
"objects for non-canonical NaNs and i64 returned from wasm.")
|
||||
|| !op.addBoolOption('\0', "enable-streams", "Enable WHATWG Streams")
|
||||
|
|
|
@ -257,6 +257,9 @@ class JitTest:
|
|||
elif name == 'test-also-no-wasm-ion':
|
||||
if options.wasm_enabled:
|
||||
test.test_also.append(['--no-wasm-ion'])
|
||||
elif name == 'test-also-wasm-tiering':
|
||||
if options.wasm_enabled:
|
||||
test.test_also.append(['--test-wasm-await-tier2'])
|
||||
elif name == 'test-also-wasm-check-bce':
|
||||
if options.wasm_enabled:
|
||||
test.test_also.append(['--wasm-check-bce'])
|
||||
|
|
|
@ -117,7 +117,7 @@ public:
|
|||
private:
|
||||
ConditionVariable(const ConditionVariable&) = delete;
|
||||
ConditionVariable& operator=(const ConditionVariable&) = delete;
|
||||
template <class T> friend class ExclusiveData;
|
||||
template <class T> friend class ExclusiveWaitableData;
|
||||
|
||||
mozilla::detail::ConditionVariableImpl impl_;
|
||||
};
|
||||
|
|
|
@ -82,6 +82,7 @@ namespace js {
|
|||
template <typename T>
|
||||
class ExclusiveData
|
||||
{
|
||||
protected:
|
||||
mutable Mutex lock_;
|
||||
mutable mozilla::AlignedStorage2<T> value_;
|
||||
|
||||
|
@ -119,8 +120,8 @@ class ExclusiveData
|
|||
release();
|
||||
}
|
||||
|
||||
ExclusiveData(ExclusiveData&& rhs) :
|
||||
lock_(mozilla::Move(rhs.lock))
|
||||
ExclusiveData(ExclusiveData&& rhs)
|
||||
: lock_(mozilla::Move(rhs.lock))
|
||||
{
|
||||
MOZ_ASSERT(&rhs != this, "self-move disallowed!");
|
||||
new (mozilla::KnownNotNull, value_.addr()) T(mozilla::Move(*rhs.value_.addr()));
|
||||
|
@ -180,10 +181,6 @@ class ExclusiveData
|
|||
return parent_;
|
||||
}
|
||||
|
||||
void wait(ConditionVariable& cond) {
|
||||
cond.impl_.wait(parent_->lock_);
|
||||
}
|
||||
|
||||
~Guard() {
|
||||
if (parent_)
|
||||
parent_->release();
|
||||
|
@ -198,6 +195,62 @@ class ExclusiveData
|
|||
}
|
||||
};
|
||||
|
||||
template <class T>
|
||||
class ExclusiveWaitableData : public ExclusiveData<T>
|
||||
{
|
||||
typedef ExclusiveData<T> Base;
|
||||
|
||||
mutable ConditionVariable condVar_;
|
||||
|
||||
public:
|
||||
template <typename U>
|
||||
explicit ExclusiveWaitableData(const MutexId& id, U&& u)
|
||||
: Base(id, mozilla::Forward<U>(u))
|
||||
{}
|
||||
|
||||
template <typename... Args>
|
||||
explicit ExclusiveWaitableData(const MutexId& id, Args&&... args)
|
||||
: Base(id, mozilla::Forward<Args>(args)...)
|
||||
{}
|
||||
|
||||
class MOZ_STACK_CLASS Guard : public ExclusiveData<T>::Guard
|
||||
{
|
||||
typedef typename ExclusiveData<T>::Guard Base;
|
||||
|
||||
public:
|
||||
explicit Guard(const ExclusiveWaitableData& parent)
|
||||
: Base(parent)
|
||||
{}
|
||||
|
||||
Guard(Guard&& guard)
|
||||
: Base(mozilla::Move(guard))
|
||||
{}
|
||||
|
||||
Guard& operator=(Guard&& rhs) {
|
||||
return Base::operator=(mozilla::Move(rhs));
|
||||
}
|
||||
|
||||
void wait() {
|
||||
auto* parent = static_cast<const ExclusiveWaitableData*>(this->parent());
|
||||
parent->condVar_.impl_.wait(parent->lock_);
|
||||
}
|
||||
|
||||
void notify_one() {
|
||||
auto* parent = static_cast<const ExclusiveWaitableData*>(this->parent());
|
||||
parent->condVar_.notify_one();
|
||||
}
|
||||
|
||||
void notify_all() {
|
||||
auto* parent = static_cast<const ExclusiveWaitableData*>(this->parent());
|
||||
parent->condVar_.notify_all();
|
||||
}
|
||||
};
|
||||
|
||||
Guard lock() const {
|
||||
return Guard(*this);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace js
|
||||
|
||||
#endif // threading_ExclusiveData_h
|
||||
|
|
|
@ -7652,7 +7652,7 @@ js::wasm::BaselineCompileFunctions(const ModuleEnvironment& env, LifoAlloc& lifo
|
|||
const FuncCompileInputVector& inputs, CompiledCode* code,
|
||||
UniqueChars* error)
|
||||
{
|
||||
MOZ_ASSERT(env.tier() == Tier::Baseline);
|
||||
MOZ_ASSERT(env.tier == Tier::Baseline);
|
||||
MOZ_ASSERT(env.kind == ModuleKind::Wasm);
|
||||
|
||||
// The MacroAssembler will sometimes access the jitContext.
|
||||
|
@ -7680,7 +7680,7 @@ js::wasm::BaselineCompileFunctions(const ModuleEnvironment& env, LifoAlloc& lifo
|
|||
|
||||
// One-pass baseline compilation.
|
||||
|
||||
BaseCompiler f(env, d, func, locals, env.debugEnabled(), &alloc, &masm, env.mode());
|
||||
BaseCompiler f(env, d, func, locals, env.debugEnabled(), &alloc, &masm, env.mode);
|
||||
if (!f.init())
|
||||
return false;
|
||||
|
||||
|
|
|
@ -83,9 +83,8 @@ bool
|
|||
CompileArgs::initFromContext(JSContext* cx, ScriptedCaller&& scriptedCaller)
|
||||
{
|
||||
baselineEnabled = cx->options().wasmBaseline();
|
||||
|
||||
// For sanity's sake, just use Ion if both compilers are disabled.
|
||||
ionEnabled = cx->options().wasmIon() || !cx->options().wasmBaseline();
|
||||
ionEnabled = cx->options().wasmIon();
|
||||
testTiering = cx->options().testWasmAwaitTier2();
|
||||
|
||||
// Debug information such as source view or debug traps will require
|
||||
// additional memory and permanently stay in baseline code, so we try to
|
||||
|
@ -309,7 +308,7 @@ static const double spaceCutoffPct = 0.9;
|
|||
|
||||
// Figure out whether we should use tiered compilation or not.
|
||||
static bool
|
||||
GetTieringEnabled(uint32_t codeSize)
|
||||
TieringBeneficial(uint32_t codeSize)
|
||||
{
|
||||
if (!CanUseExtraThreads())
|
||||
return false;
|
||||
|
@ -379,36 +378,48 @@ GetTieringEnabled(uint32_t codeSize)
|
|||
return true;
|
||||
}
|
||||
|
||||
static void
|
||||
InitialCompileFlags(const CompileArgs& args, Decoder& d, CompileMode* mode, Tier* tier,
|
||||
DebugEnabled* debug)
|
||||
{
|
||||
uint32_t codeSectionSize = 0;
|
||||
|
||||
SectionRange range;
|
||||
if (StartsCodeSection(d.begin(), d.end(), &range))
|
||||
codeSectionSize = range.size;
|
||||
|
||||
bool baselineEnabled = BaselineCanCompile() && (args.baselineEnabled || args.testTiering);
|
||||
bool debugEnabled = BaselineCanCompile() && args.debugEnabled;
|
||||
bool ionEnabled = args.ionEnabled || !baselineEnabled || args.testTiering;
|
||||
|
||||
if (baselineEnabled && ionEnabled && !debugEnabled &&
|
||||
(TieringBeneficial(codeSectionSize) || args.testTiering))
|
||||
{
|
||||
*mode = CompileMode::Tier1;
|
||||
*tier = Tier::Baseline;
|
||||
} else {
|
||||
*mode = CompileMode::Once;
|
||||
*tier = debugEnabled || !ionEnabled ? Tier::Baseline : Tier::Ion;
|
||||
}
|
||||
|
||||
*debug = debugEnabled ? DebugEnabled::True : DebugEnabled::False;
|
||||
}
|
||||
|
||||
SharedModule
|
||||
wasm::CompileInitialTier(const ShareableBytes& bytecode, const CompileArgs& args, UniqueChars* error)
|
||||
{
|
||||
MOZ_RELEASE_ASSERT(wasm::HaveSignalHandlers());
|
||||
|
||||
bool baselineEnabled = BaselineCanCompile() && args.baselineEnabled;
|
||||
bool debugEnabled = BaselineCanCompile() && args.debugEnabled;
|
||||
bool ionEnabled = args.ionEnabled || !baselineEnabled;
|
||||
|
||||
DebugEnabled debug = debugEnabled ? DebugEnabled::True : DebugEnabled::False;
|
||||
|
||||
ModuleEnvironment env(ModuleEnvironment::UnknownMode, ModuleEnvironment::UnknownTier, debug);
|
||||
|
||||
Decoder d(bytecode.bytes, error);
|
||||
if (!DecodeModuleEnvironment(d, &env))
|
||||
return nullptr;
|
||||
|
||||
uint32_t codeSize = env.codeSection ? env.codeSection->size : 0;
|
||||
|
||||
CompileMode mode;
|
||||
Tier tier;
|
||||
if (baselineEnabled && ionEnabled && !debugEnabled && GetTieringEnabled(codeSize)) {
|
||||
mode = CompileMode::Tier1;
|
||||
tier = Tier::Baseline;
|
||||
} else {
|
||||
mode = CompileMode::Once;
|
||||
tier = debugEnabled || !ionEnabled ? Tier::Baseline : Tier::Ion;
|
||||
}
|
||||
DebugEnabled debug;
|
||||
InitialCompileFlags(args, d, &mode, &tier, &debug);
|
||||
|
||||
env.setModeAndTier(mode, tier);
|
||||
ModuleEnvironment env(mode, tier, debug);
|
||||
if (!DecodeModuleEnvironment(d, &env))
|
||||
return nullptr;
|
||||
|
||||
ModuleGenerator mg(args, &env, nullptr, error);
|
||||
if (!mg.init())
|
||||
|
|
|
@ -42,13 +42,15 @@ struct CompileArgs : ShareableBase<CompileArgs>
|
|||
bool baselineEnabled;
|
||||
bool debugEnabled;
|
||||
bool ionEnabled;
|
||||
bool testTiering;
|
||||
|
||||
CompileArgs(Assumptions&& assumptions, ScriptedCaller&& scriptedCaller)
|
||||
: assumptions(Move(assumptions)),
|
||||
scriptedCaller(Move(scriptedCaller)),
|
||||
baselineEnabled(false),
|
||||
debugEnabled(false),
|
||||
ionEnabled(false)
|
||||
ionEnabled(false),
|
||||
testTiering(false)
|
||||
{}
|
||||
|
||||
// If CompileArgs is constructed without arguments, initFromContext() must
|
||||
|
|
|
@ -121,7 +121,7 @@ ModuleGenerator::~ModuleGenerator()
|
|||
if (!outstanding_)
|
||||
break;
|
||||
|
||||
taskState.wait(taskState->failedOrFinished);
|
||||
taskState.wait(/* failed or finished */);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -617,7 +617,7 @@ ExecuteCompileTask(CompileTask* task, UniqueChars* error)
|
|||
MOZ_ASSERT(task->lifo.isEmpty());
|
||||
MOZ_ASSERT(task->output.empty());
|
||||
|
||||
switch (task->env.tier()) {
|
||||
switch (task->env.tier) {
|
||||
case Tier::Ion:
|
||||
if (!IonCompileFunctions(task->env, task->lifo, task->inputs, &task->output, error))
|
||||
return false;
|
||||
|
@ -651,7 +651,7 @@ wasm::ExecuteCompileTaskFromHelperThread(CompileTask* task)
|
|||
taskState->errorMessage = Move(error);
|
||||
}
|
||||
|
||||
taskState->failedOrFinished.notify_one();
|
||||
taskState.notify_one(/* failed or finished */);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -723,7 +723,7 @@ ModuleGenerator::finishOutstandingTask()
|
|||
break;
|
||||
}
|
||||
|
||||
taskState.wait(taskState->failedOrFinished);
|
||||
taskState.wait(/* failed or finished */);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -108,7 +108,6 @@ struct CompiledCode
|
|||
|
||||
struct CompileTaskState
|
||||
{
|
||||
ConditionVariable failedOrFinished;
|
||||
CompileTaskPtrVector finished;
|
||||
uint32_t numFailed;
|
||||
UniqueChars errorMessage;
|
||||
|
@ -117,7 +116,7 @@ struct CompileTaskState
|
|||
~CompileTaskState() { MOZ_ASSERT(finished.empty()); MOZ_ASSERT(!numFailed); }
|
||||
};
|
||||
|
||||
typedef ExclusiveData<CompileTaskState> ExclusiveCompileTaskState;
|
||||
typedef ExclusiveWaitableData<CompileTaskState> ExclusiveCompileTaskState;
|
||||
|
||||
// A CompileTask holds a batch of input functions that are to be compiled on a
|
||||
// helper thread as well as, eventually, the results of compilation.
|
||||
|
@ -205,8 +204,8 @@ class MOZ_STACK_CLASS ModuleGenerator
|
|||
UniqueJumpTable createJumpTable(const CodeSegment& codeSegment);
|
||||
|
||||
bool isAsmJS() const { return env_->isAsmJS(); }
|
||||
Tier tier() const { return env_->tier(); }
|
||||
CompileMode mode() const { return env_->mode(); }
|
||||
Tier tier() const { return env_->tier; }
|
||||
CompileMode mode() const { return env_->mode; }
|
||||
bool debugEnabled() const { return env_->debugEnabled(); }
|
||||
|
||||
public:
|
||||
|
|
|
@ -3863,7 +3863,7 @@ wasm::IonCompileFunctions(const ModuleEnvironment& env, LifoAlloc& lifo,
|
|||
const FuncCompileInputVector& inputs, CompiledCode* code,
|
||||
UniqueChars* error)
|
||||
{
|
||||
MOZ_ASSERT(env.tier() == Tier::Ion);
|
||||
MOZ_ASSERT(env.tier == Tier::Ion);
|
||||
|
||||
TempAllocator alloc(&lifo);
|
||||
JitContext jitContext(&alloc);
|
||||
|
|
|
@ -241,9 +241,9 @@ Module::startTier2(const CompileArgs& args)
|
|||
MOZ_ASSERT(!tiering_.lock()->active);
|
||||
|
||||
// If a Module initiates tier-2 compilation, we must ensure that eventually
|
||||
// unblockOnTier2GeneratorFinished() is called. Since we must ensure
|
||||
// notifyCompilationListeners() is called. Since we must ensure
|
||||
// Tier2GeneratorTaskImpl objects are destroyed *anyway*, we use
|
||||
// ~Tier2GeneratorTaskImpl() to call unblockOnTier2GeneratorFinished() if it
|
||||
// ~Tier2GeneratorTaskImpl() to call notifyCompilationListeners() if it
|
||||
// hasn't been already.
|
||||
|
||||
UniqueTier2GeneratorTask task(js_new<Tier2GeneratorTaskImpl>(*this, args));
|
||||
|
@ -269,6 +269,8 @@ Module::notifyCompilationListeners()
|
|||
tiering->active = false;
|
||||
|
||||
Swap(listeners, tiering->listeners);
|
||||
|
||||
tiering.notify_all(/* inactive */);
|
||||
}
|
||||
|
||||
for (RefPtr<JS::WasmModuleListener>& listener : listeners)
|
||||
|
@ -310,6 +312,14 @@ Module::finishTier2(UniqueLinkDataTier linkData2, UniqueMetadataTier metadata2,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
Module::blockOnTier2Complete() const
|
||||
{
|
||||
auto tiering = tiering_.lock();
|
||||
while (tiering->active)
|
||||
tiering.wait(/* inactive */);
|
||||
}
|
||||
|
||||
/* virtual */ size_t
|
||||
Module::bytecodeSerializedSize() const
|
||||
{
|
||||
|
@ -618,9 +628,8 @@ Module::extractCode(JSContext* cx, Tier tier, MutableHandleValue vp) const
|
|||
return false;
|
||||
|
||||
// This function is only used for testing purposes so we can simply
|
||||
// busy-wait on tiered compilation to complete.
|
||||
while (!compilationComplete())
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||
// block on tiered compilation to complete.
|
||||
blockOnTier2Complete();
|
||||
|
||||
if (!code_->hasTier(tier)) {
|
||||
vp.setNull();
|
||||
|
@ -1217,5 +1226,8 @@ Module::instantiate(JSContext* cx,
|
|||
JSUseCounter useCounter = metadata().isAsmJS() ? JSUseCounter::ASMJS : JSUseCounter::WASM;
|
||||
cx->runtime()->setUseCounter(instance, useCounter);
|
||||
|
||||
if (cx->options().testWasmAwaitTier2())
|
||||
blockOnTier2Complete();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -116,6 +116,8 @@ struct Tiering
|
|||
bool active;
|
||||
};
|
||||
|
||||
typedef ExclusiveWaitableData<Tiering> ExclusiveTiering;
|
||||
|
||||
// Module represents a compiled wasm module and primarily provides two
|
||||
// operations: instantiation and serialization. A Module can be instantiated any
|
||||
// number of times to produce new Instance objects. A Module can be serialized
|
||||
|
@ -140,7 +142,7 @@ class Module : public JS::WasmModule
|
|||
const DataSegmentVector dataSegments_;
|
||||
const ElemSegmentVector elemSegments_;
|
||||
const SharedBytes bytecode_;
|
||||
ExclusiveData<Tiering> tiering_;
|
||||
ExclusiveTiering tiering_;
|
||||
|
||||
// `codeIsBusy_` is set to false initially and then to true when `code_` is
|
||||
// already being used for an instance and can't be shared because it may be
|
||||
|
@ -219,20 +221,7 @@ class Module : public JS::WasmModule
|
|||
void startTier2(const CompileArgs& args);
|
||||
void finishTier2(UniqueLinkDataTier linkData2, UniqueMetadataTier metadata2,
|
||||
UniqueCodeSegment code2, ModuleEnvironment* env2);
|
||||
|
||||
// Wait until Ion-compiled code is available, which will be true either
|
||||
// immediately (first-level compile was Ion and is already done), not at all
|
||||
// (first-level compile was Baseline and there's not a second level), or
|
||||
// later (ongoing second-level compilation). Once this returns, one can use
|
||||
// code().hasTier() to check code availability - there is no guarantee that
|
||||
// Ion code will be available, but if it isn't then it never will.
|
||||
|
||||
void blockOnIonCompileFinished() const;
|
||||
|
||||
// Signal all waiters that are waiting on tier-2 compilation to be done that
|
||||
// they should wake up. They will be waiting in blockOnIonCompileFinished.
|
||||
|
||||
void unblockOnTier2GeneratorFinished(CompileMode newMode) const;
|
||||
void blockOnTier2Complete() const;
|
||||
|
||||
// JS API and JS::WasmModule implementation:
|
||||
|
||||
|
|
|
@ -58,6 +58,21 @@ Decoder::fail(size_t errorOffset, const char* msg)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
Decoder::readSectionHeader(uint8_t* id, SectionRange* range)
|
||||
{
|
||||
if (!readFixedU8(id))
|
||||
return false;
|
||||
|
||||
uint32_t size;
|
||||
if (!readVarU32(&size))
|
||||
return false;
|
||||
|
||||
range->start = cur_ - beg_;
|
||||
range->size = size;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
Decoder::startSection(SectionId id, ModuleEnvironment* env, MaybeSectionRange* range,
|
||||
const char* sectionName)
|
||||
|
@ -87,9 +102,8 @@ Decoder::startSection(SectionId id, ModuleEnvironment* env, MaybeSectionRange* r
|
|||
// Rewind to the beginning of the current section since this is what
|
||||
// skipCustomSection() assumes.
|
||||
cur_ = currentSectionStart;
|
||||
if (!skipCustomSection(env)) {
|
||||
if (!skipCustomSection(env))
|
||||
return false;
|
||||
}
|
||||
|
||||
// Having successfully skipped a custom section, consider the next
|
||||
// section.
|
||||
|
@ -1446,6 +1460,33 @@ DecodeElemSection(Decoder& d, ModuleEnvironment* env)
|
|||
return d.finishSection(*range, "elem");
|
||||
}
|
||||
|
||||
bool
|
||||
wasm::StartsCodeSection(const uint8_t* begin, const uint8_t* end, SectionRange* codeSection)
|
||||
{
|
||||
UniqueChars unused;
|
||||
Decoder d(begin, end, 0, &unused);
|
||||
|
||||
if (!DecodePreamble(d))
|
||||
return false;
|
||||
|
||||
while (!d.done()) {
|
||||
uint8_t id;
|
||||
SectionRange range;
|
||||
if (!d.readSectionHeader(&id, &range))
|
||||
return false;
|
||||
|
||||
if (id == uint8_t(SectionId::Code)) {
|
||||
*codeSection = range;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!d.readBytes(range.size))
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
wasm::DecodeModuleEnvironment(Decoder& d, ModuleEnvironment* env)
|
||||
{
|
||||
|
|
|
@ -49,11 +49,8 @@ struct ModuleEnvironment
|
|||
// Constant parameters for the entire compilation:
|
||||
const DebugEnabled debug;
|
||||
const ModuleKind kind;
|
||||
|
||||
// Constant parameters determined no later than at the start of the code
|
||||
// section:
|
||||
CompileMode mode_;
|
||||
Tier tier_;
|
||||
const CompileMode mode;
|
||||
const Tier tier;
|
||||
|
||||
// Module fields decoded from the module environment (or initialized while
|
||||
// validating an asm.js module) and immutable during compilation:
|
||||
|
@ -77,35 +74,18 @@ struct ModuleEnvironment
|
|||
NameInBytecodeVector funcNames;
|
||||
CustomSectionVector customSections;
|
||||
|
||||
static const CompileMode UnknownMode = (CompileMode)-1;
|
||||
static const Tier UnknownTier = (Tier)-1;
|
||||
|
||||
explicit ModuleEnvironment(CompileMode mode = CompileMode::Once,
|
||||
Tier tier = Tier::Ion,
|
||||
DebugEnabled debug = DebugEnabled::False,
|
||||
ModuleKind kind = ModuleKind::Wasm)
|
||||
: debug(debug),
|
||||
kind(kind),
|
||||
mode_(mode),
|
||||
tier_(tier),
|
||||
mode(mode),
|
||||
tier(tier),
|
||||
memoryUsage(MemoryUsage::None),
|
||||
minMemoryLength(0)
|
||||
{}
|
||||
|
||||
CompileMode mode() const {
|
||||
MOZ_ASSERT(mode_ != UnknownMode);
|
||||
return mode_;
|
||||
}
|
||||
Tier tier() const {
|
||||
MOZ_ASSERT(tier_ != UnknownTier);
|
||||
return tier_;
|
||||
}
|
||||
void setModeAndTier(CompileMode mode, Tier tier) {
|
||||
MOZ_ASSERT(mode_ == UnknownMode);
|
||||
MOZ_ASSERT(tier_ == UnknownTier);
|
||||
mode_ = mode;
|
||||
tier_ = tier;
|
||||
}
|
||||
size_t numTables() const {
|
||||
return tables.length();
|
||||
}
|
||||
|
@ -565,6 +545,8 @@ class Decoder
|
|||
|
||||
// See "section" description in Encoder.
|
||||
|
||||
MOZ_MUST_USE bool readSectionHeader(uint8_t* id, SectionRange* range);
|
||||
|
||||
MOZ_MUST_USE bool startSection(SectionId id,
|
||||
ModuleEnvironment* env,
|
||||
MaybeSectionRange* range,
|
||||
|
@ -686,6 +668,16 @@ EncodeLocalEntries(Encoder& d, const ValTypeVector& locals);
|
|||
MOZ_MUST_USE bool
|
||||
DecodeLocalEntries(Decoder& d, ModuleKind kind, ValTypeVector* locals);
|
||||
|
||||
// Returns whether the given [begin, end) prefix of a module's bytecode starts a
|
||||
// code section and, if so, returns the SectionRange of that code section.
|
||||
// Note that, even if this function returns 'false', [begin, end) may actually
|
||||
// be a valid module in the special case when there are no function defs and the
|
||||
// code section is not present. Such modules can be valid so the caller must
|
||||
// handle this special case.
|
||||
|
||||
MOZ_MUST_USE bool
|
||||
StartsCodeSection(const uint8_t* begin, const uint8_t* end, SectionRange* range);
|
||||
|
||||
// Calling DecodeModuleEnvironment decodes all sections up to the code section
|
||||
// and performs full validation of all those sections. The client must then
|
||||
// decode the code section itself, reusing ValidateFunctionBody if necessary,
|
||||
|
|
|
@ -2116,20 +2116,6 @@ nsLayoutUtils::IsFixedPosFrameInDisplayPort(const nsIFrame* aFrame)
|
|||
return ViewportHasDisplayPort(aFrame->PresContext());
|
||||
}
|
||||
|
||||
NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(ScrollbarThumbLayerized, bool)
|
||||
|
||||
/* static */ void
|
||||
nsLayoutUtils::SetScrollbarThumbLayerization(nsIFrame* aThumbFrame, bool aLayerize)
|
||||
{
|
||||
aThumbFrame->SetProperty(ScrollbarThumbLayerized(), aLayerize);
|
||||
}
|
||||
|
||||
bool
|
||||
nsLayoutUtils::IsScrollbarThumbLayerized(nsIFrame* aThumbFrame)
|
||||
{
|
||||
return aThumbFrame->GetProperty(ScrollbarThumbLayerized());
|
||||
}
|
||||
|
||||
// static
|
||||
nsIScrollableFrame*
|
||||
nsLayoutUtils::GetNearestScrollableFrameForDirection(nsIFrame* aFrame,
|
||||
|
|
|
@ -599,18 +599,6 @@ public:
|
|||
*/
|
||||
static bool IsFixedPosFrameInDisplayPort(const nsIFrame* aFrame);
|
||||
|
||||
/**
|
||||
* Store whether aThumbFrame wants its own layer. This sets a property on
|
||||
* the frame.
|
||||
*/
|
||||
static void SetScrollbarThumbLayerization(nsIFrame* aThumbFrame, bool aLayerize);
|
||||
|
||||
/**
|
||||
* Returns whether aThumbFrame wants its own layer due to having called
|
||||
* SetScrollbarThumbLayerization.
|
||||
*/
|
||||
static bool IsScrollbarThumbLayerized(nsIFrame* aThumbFrame);
|
||||
|
||||
/**
|
||||
* GetScrollableFrameFor returns the scrollable frame for a scrolled frame
|
||||
*/
|
||||
|
|
|
@ -55,6 +55,7 @@ public:
|
|||
nsRect& aBounds)
|
||||
: mBuilder(aBuilder), mSc(aSc), mManager(aManager)
|
||||
{
|
||||
SetPermitSubpixelAA(!aItem->IsSubpixelAADisabled());
|
||||
|
||||
// Compute clip/bounds
|
||||
auto appUnitsPerDevPixel = aItem->Frame()->PresContext()->AppUnitsPerDevPixel();
|
||||
|
@ -100,7 +101,7 @@ public:
|
|||
const DrawOptions& aOptions,
|
||||
const GlyphRenderingOptions* aRenderingOptions) override
|
||||
{
|
||||
// FIXME(?): Deal with AA on the DrawOptions, and the GlyphRenderingOptions
|
||||
// FIXME(?): Deal with GlyphRenderingOptions
|
||||
|
||||
// Make sure we're only given boring color patterns
|
||||
MOZ_RELEASE_ASSERT(aOptions.mCompositionOp == CompositionOp::OP_OVER);
|
||||
|
@ -128,9 +129,12 @@ public:
|
|||
LayoutDevicePoint::FromUnknownPoint(sourceGlyph.mPosition));
|
||||
}
|
||||
|
||||
wr::GlyphOptions glyphOptions;
|
||||
glyphOptions.render_mode = wr::ToFontRenderMode(aOptions.mAntialiasMode, GetPermitSubpixelAA());
|
||||
|
||||
mManager->WrBridge()->PushGlyphs(mBuilder, glyphs, aFont,
|
||||
color, mSc, mBoundsRect, mClipRect,
|
||||
mBackfaceVisible);
|
||||
mBackfaceVisible, &glyphOptions);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -890,6 +890,9 @@ public:
|
|||
virtual bool IsScrollingActive(nsDisplayListBuilder* aBuilder) override {
|
||||
return mHelper.IsScrollingActive(aBuilder);
|
||||
}
|
||||
virtual bool IsMaybeScrollingActive() const override {
|
||||
return mHelper.IsMaybeScrollingActive();
|
||||
}
|
||||
virtual bool IsProcessingAsyncScroll() override {
|
||||
return mHelper.IsProcessingAsyncScroll();
|
||||
}
|
||||
|
@ -1324,6 +1327,9 @@ public:
|
|||
virtual bool IsScrollingActive(nsDisplayListBuilder* aBuilder) override {
|
||||
return mHelper.IsScrollingActive(aBuilder);
|
||||
}
|
||||
virtual bool IsMaybeScrollingActive() const override {
|
||||
return mHelper.IsMaybeScrollingActive();
|
||||
}
|
||||
virtual bool IsProcessingAsyncScroll() override {
|
||||
return mHelper.IsProcessingAsyncScroll();
|
||||
}
|
||||
|
|
|
@ -315,6 +315,11 @@ public:
|
|||
* expectation that scrolling is going to happen.
|
||||
*/
|
||||
virtual bool IsScrollingActive(nsDisplayListBuilder* aBuilder) = 0;
|
||||
/**
|
||||
* Same as the above except doesn't take into account will-change budget,
|
||||
* which means that it can be called during display list building.
|
||||
*/
|
||||
virtual bool IsMaybeScrollingActive() const = 0;
|
||||
/**
|
||||
* Returns true if the scrollframe is currently processing an async
|
||||
* or smooth scroll.
|
||||
|
|
|
@ -5138,7 +5138,6 @@ nsDisplayText::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder
|
|||
RefPtr<TextDrawTarget> textDrawer = new TextDrawTarget(aBuilder, aSc, aManager, this, mBounds);
|
||||
RefPtr<gfxContext> captureCtx = gfxContext::CreateOrNull(textDrawer);
|
||||
|
||||
// TODO: Paint() checks mDisableSubpixelAA, we should too.
|
||||
RenderToContext(captureCtx, aDisplayListBuilder, true);
|
||||
|
||||
return !textDrawer->HasUnsupportedFeatures();
|
||||
|
|
|
@ -85,6 +85,7 @@
|
|||
#include "nsSVGMaskFrame.h"
|
||||
#include "nsTableCellFrame.h"
|
||||
#include "nsTableColFrame.h"
|
||||
#include "nsSliderFrame.h"
|
||||
#include "ClientLayerManager.h"
|
||||
#include "mozilla/layers/StackingContextHelper.h"
|
||||
#include "mozilla/layers/WebRenderBridgeChild.h"
|
||||
|
@ -1579,7 +1580,12 @@ nsDisplayListBuilder::IsAnimatedGeometryRoot(nsIFrame* aFrame,
|
|||
// Treat the slider thumb as being as an active scrolled root when it wants
|
||||
// its own layer so that it can move without repainting.
|
||||
if (parentType == LayoutFrameType::Slider) {
|
||||
if (nsLayoutUtils::IsScrollbarThumbLayerized(aFrame)) {
|
||||
nsIScrollableFrame* sf = static_cast<nsSliderFrame*>(parent)->GetScrollFrame();
|
||||
// The word "Maybe" in IsMaybeScrollingActive might be confusing but we do
|
||||
// indeed need to always consider scroll thumbs as AGRs if
|
||||
// IsMaybeScrollingActive is true because that is the same condition we use
|
||||
// in ScrollFrameHelper::AppendScrollPartsTo to layerize scroll thumbs.
|
||||
if (sf && sf->IsMaybeScrollingActive()) {
|
||||
return AGR_YES;
|
||||
}
|
||||
maybe = true;
|
||||
|
|
|
@ -2281,6 +2281,8 @@ public:
|
|||
mDisableSubpixelAA = true;
|
||||
}
|
||||
|
||||
bool IsSubpixelAADisabled() const { return mDisableSubpixelAA; }
|
||||
|
||||
/**
|
||||
* Check if we can add async animations to the layer for this display item.
|
||||
*/
|
||||
|
|
|
@ -1557,15 +1557,18 @@ nsTableFrame::DisplayGenericTablePart(nsDisplayListBuilder* aBuilder,
|
|||
colIdx.AppendElement(col->GetColIndex());
|
||||
}
|
||||
|
||||
nsTableFrame* table = colGroup->GetTableFrame();
|
||||
RowGroupArray rowGroups;
|
||||
table->OrderRowGroups(rowGroups);
|
||||
for (nsTableRowGroupFrame* rowGroup : rowGroups) {
|
||||
auto offset = rowGroup->GetNormalPosition() - colGroup->GetNormalPosition();
|
||||
if (!aBuilder->GetDirtyRect().Intersects(nsRect(offset, rowGroup->GetSize()))) {
|
||||
continue;
|
||||
if (!colIdx.IsEmpty()) {
|
||||
// We have some actual cells that live inside this rowgroup.
|
||||
nsTableFrame* table = colGroup->GetTableFrame();
|
||||
RowGroupArray rowGroups;
|
||||
table->OrderRowGroups(rowGroups);
|
||||
for (nsTableRowGroupFrame* rowGroup : rowGroups) {
|
||||
auto offset = rowGroup->GetNormalPosition() - colGroup->GetNormalPosition();
|
||||
if (!aBuilder->GetDirtyRect().Intersects(nsRect(offset, rowGroup->GetSize()))) {
|
||||
continue;
|
||||
}
|
||||
PaintRowGroupBackgroundByColIdx(rowGroup, aFrame, aBuilder, aLists, colIdx, offset);
|
||||
}
|
||||
PaintRowGroupBackgroundByColIdx(rowGroup, aFrame, aBuilder, aLists, colIdx, offset);
|
||||
}
|
||||
} else if (aFrame->IsTableColFrame()) {
|
||||
// Compute background rect by iterating all cell frame.
|
||||
|
|
|
@ -379,7 +379,6 @@ nsSliderFrame::BuildDisplayListForChildren(nsDisplayListBuilder* aBuilder,
|
|||
mozilla::layers::FrameMetrics::ViewID scrollTargetId =
|
||||
aBuilder->GetCurrentScrollbarTarget();
|
||||
bool thumbGetsLayer = (scrollTargetId != layers::FrameMetrics::NULL_SCROLL_ID);
|
||||
nsLayoutUtils::SetScrollbarThumbLayerization(thumb, thumbGetsLayer);
|
||||
|
||||
if (thumbGetsLayer) {
|
||||
MOZ_ASSERT((flags & nsDisplayOwnLayer::HORIZONTAL_SCROLLBAR) ||
|
||||
|
@ -1072,6 +1071,22 @@ ScrollFrameWillBuildScrollInfoLayer(nsIFrame* aScrollFrame)
|
|||
return false;
|
||||
}
|
||||
|
||||
nsIScrollableFrame* nsSliderFrame::GetScrollFrame()
|
||||
{
|
||||
nsIFrame* scrollbarBox = GetScrollbar();
|
||||
if (!scrollbarBox) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
nsContainerFrame* scrollFrame = scrollbarBox->GetParent();
|
||||
if (!scrollFrame) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
nsIScrollableFrame* scrollFrameAsScrollable = do_QueryFrame(scrollFrame);
|
||||
return scrollFrameAsScrollable;
|
||||
}
|
||||
|
||||
void
|
||||
nsSliderFrame::StartAPZDrag(WidgetGUIEvent* aEvent)
|
||||
{
|
||||
|
|
|
@ -139,6 +139,9 @@ public:
|
|||
|
||||
bool OnlySystemGroupDispatch(mozilla::EventMessage aMessage) const override;
|
||||
|
||||
// Returns the associated scrollframe that contains this slider if any.
|
||||
nsIScrollableFrame* GetScrollFrame();
|
||||
|
||||
private:
|
||||
|
||||
bool GetScrollToClick();
|
||||
|
|
|
@ -43,11 +43,27 @@ NS_IMPL_QUERY_INTERFACE(nsJAR, nsIZipReader)
|
|||
NS_IMPL_ADDREF(nsJAR)
|
||||
|
||||
// Custom Release method works with nsZipReaderCache...
|
||||
// Release might be called from multi-thread, we have to
|
||||
// take this function carefully to avoid delete-after-use.
|
||||
MozExternalRefCountType nsJAR::Release(void)
|
||||
{
|
||||
nsrefcnt count;
|
||||
NS_PRECONDITION(0 != mRefCnt, "dup release");
|
||||
count = --mRefCnt;
|
||||
|
||||
RefPtr<nsZipReaderCache> cache;
|
||||
if (mRefCnt == 2) { // don't use a lock too frequently
|
||||
// Use a mutex here to guarantee mCache is not racing and the target instance
|
||||
// is still valid to increase ref-count.
|
||||
MutexAutoLock lock(mLock);
|
||||
cache = mCache;
|
||||
mCache = nullptr;
|
||||
}
|
||||
if (cache) {
|
||||
DebugOnly<nsresult> rv = cache->ReleaseZip(this);
|
||||
MOZ_ASSERT(NS_SUCCEEDED(rv), "failed to release zip file");
|
||||
}
|
||||
|
||||
count = --mRefCnt; // don't access any member variable after this line
|
||||
NS_LOG_RELEASE(this, count, "nsJAR");
|
||||
if (0 == count) {
|
||||
mRefCnt = 1; /* stabilize */
|
||||
|
@ -56,13 +72,7 @@ MozExternalRefCountType nsJAR::Release(void)
|
|||
delete this;
|
||||
return 0;
|
||||
}
|
||||
if (1 == count && mCache) {
|
||||
#ifdef DEBUG
|
||||
nsresult rv =
|
||||
#endif
|
||||
mCache->ReleaseZip(this);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to release zip file");
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "mozilla/Logging.h"
|
||||
#include "prinrval.h"
|
||||
|
||||
#include "mozilla/Atomics.h"
|
||||
#include "mozilla/Mutex.h"
|
||||
#include "nsIComponentManager.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
@ -75,8 +76,9 @@ class nsJAR final : public nsIZipReader
|
|||
mReleaseTime = PR_INTERVAL_NO_TIMEOUT;
|
||||
}
|
||||
|
||||
void SetZipReaderCache(nsZipReaderCache* cache) {
|
||||
mCache = cache;
|
||||
void SetZipReaderCache(nsZipReaderCache* aCache) {
|
||||
mozilla::MutexAutoLock lock(mLock);
|
||||
mCache = aCache;
|
||||
}
|
||||
|
||||
nsresult GetNSPRFileDesc(PRFileDesc** aNSPRFileDesc);
|
||||
|
@ -89,7 +91,7 @@ class nsJAR final : public nsIZipReader
|
|||
RefPtr<nsZipArchive> mZip; // The underlying zip archive
|
||||
PRIntervalTime mReleaseTime; // used by nsZipReaderCache for flushing entries
|
||||
nsZipReaderCache* mCache; // if cached, this points to the cache it's contained in
|
||||
mozilla::Mutex mLock;
|
||||
mozilla::Mutex mLock; // protect mCache and mZip
|
||||
int64_t mMtime;
|
||||
bool mOpened;
|
||||
bool mIsOmnijar;
|
||||
|
|
|
@ -863,6 +863,13 @@ DllBlocklist_Initialize(uint32_t aInitFlags)
|
|||
#endif
|
||||
}
|
||||
|
||||
// If someone injects a thread early that causes user32.dll to load off the
|
||||
// main thread this causes issues, so load it as soon as we've initialized
|
||||
// the block-list. (See bug 1400637)
|
||||
if (!sUser32BeforeBlocklist) {
|
||||
::LoadLibraryW(L"user32.dll");
|
||||
}
|
||||
|
||||
Kernel32Intercept.Init("kernel32.dll");
|
||||
|
||||
#ifdef _M_AMD64
|
||||
|
|
|
@ -1158,4 +1158,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
|
|||
|
||||
static const int32_t kUnknownId = -1;
|
||||
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1516902046075000);
|
||||
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1516945430488000);
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
4d2.xyz: could not connect to host
|
||||
4loc.us: 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
|
||||
8560.be: could not connect to host
|
||||
87577.com: could not connect to host
|
||||
|
@ -16,6 +17,7 @@ aaronmcguire.me: could not connect to host
|
|||
abolition.co: could not connect to host
|
||||
accwing.com: could not connect to host
|
||||
acrossgw.com: could not connect to host
|
||||
addiko.net: could not connect to host
|
||||
aevpn.org: could not connect to host
|
||||
akiba-server.info: could not connect to host
|
||||
akoww.de: could not connect to host
|
||||
|
@ -59,7 +61,7 @@ bip.gov.sa: could not connect to host
|
|||
bizniskatalog.mk: could not connect to host
|
||||
blumen-garage.de: could not connect to host
|
||||
blumiges-fischbachtal.de: could not connect to host
|
||||
bm-immo.ch: could not connect to host
|
||||
bm-i.ch: could not connect to host
|
||||
bodrumfarm.com: could not connect to host
|
||||
brettabel.com: could not connect to host
|
||||
businessfurs.info: could not connect to host
|
||||
|
@ -71,11 +73,14 @@ 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
|
||||
capellidipremoli.com: could not connect to host
|
||||
caulong-ao.net: could not connect to host
|
||||
cbdev.de: could not connect to host
|
||||
centos.pub: could not connect to host
|
||||
challengeskins.com: could not connect to host
|
||||
cheah.xyz: could not connect to host
|
||||
checkmateshoes.com: could not connect to host
|
||||
cheesefusion.com: could not connect to host
|
||||
childrendeservebetter.org: could not connect to host
|
||||
china-line.org: could not connect to host
|
||||
chloehorler.com: could not connect to host
|
||||
|
@ -83,23 +88,26 @@ christiangaetano.com: could not connect to host
|
|||
christina-quast.de: could not connect to host
|
||||
chziyue.com: could not connect to host
|
||||
cielly.com: could not connect to host
|
||||
cioscloud.com: could not connect to host
|
||||
clearviewwealthprojector.com.au: could not connect to host
|
||||
cloudbleed.info: could not connect to host
|
||||
cloudopt.net: could not connect to host
|
||||
cloudimproved.com: could not connect to host
|
||||
cmpr.es: could not connect to host
|
||||
cnlic.com: could not connect to host
|
||||
cocaine.ninja: could not connect to host
|
||||
codenlife.xyz: could not connect to host
|
||||
codercross.com: could not connect to host
|
||||
coffeetocode.me: could not connect to host
|
||||
colleencornez.com: could not connect to host
|
||||
colo-tech.com: could not connect to host
|
||||
comff.net: could not connect to host
|
||||
conniesacademy.com: could not connect to host
|
||||
cookingbazart.com: could not connect to host
|
||||
cooko.at: could not connect to host
|
||||
corinnanese.de: could not connect to host
|
||||
cosmeticasimple.com: could not connect to host
|
||||
cosplayer.com: could not connect to host
|
||||
cpaneltips.com: could not connect to host
|
||||
crescent.gr.jp: could not connect to host
|
||||
criticalaim.com: could not connect to host
|
||||
cselzer.com: could not connect to host
|
||||
csgo77.com: could not connect to host
|
||||
|
@ -114,7 +122,6 @@ dawnson.is: could not connect to host
|
|||
dawnsonb.com: could not connect to host
|
||||
dcc.moe: could not connect to host
|
||||
de-servers.de: could not connect to host
|
||||
deanosplace.net: could not connect to host
|
||||
decoyrouting.com: could not connect to host
|
||||
dejan.media: could not connect to host
|
||||
derchris.me: could not connect to host
|
||||
|
@ -133,6 +140,7 @@ disadattamentolavorativo.it: could not connect to host
|
|||
disco-crazy-world.de: could not connect to host
|
||||
djangogolf.com: could not connect to host
|
||||
dojifish.space: could not connect to host
|
||||
domain001.info: 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
|
||||
|
@ -141,27 +149,30 @@ duch.cloud: could not connect to host
|
|||
duelsow.eu: could not connect to host
|
||||
duo.money: could not connect to host
|
||||
dynts.pro: could not connect to host
|
||||
eason-yang.com: could not connect to host
|
||||
eatfitoutlet.com.br: could not connect to host
|
||||
edit.yahoo.com: could not connect to host
|
||||
edwar.do: could not connect to host
|
||||
eeb98.com: could not connect to host
|
||||
egbert.net: could not connect to host
|
||||
ehuber.info: could not connect to host
|
||||
eled.io: could not connect to host
|
||||
elia.cloud: could not connect to host
|
||||
endlessdiy.ca: could not connect to host
|
||||
enginx.net: could not connect to host
|
||||
erinaceinae.com: could not connect to host
|
||||
eriser.fr: could not connect to host
|
||||
erspro.net: could not connect to host
|
||||
esibun.net: could not connect to host
|
||||
estan.cn: could not connect to host
|
||||
eurostrategy.vn.ua: could not connect to host
|
||||
eveshaiwu.com: could not connect to host
|
||||
exceed.global: could not connect to host
|
||||
expatads.com: could not connect to host
|
||||
ezhik-din.ru: could not connect to host
|
||||
f00.fr: could not connect to host
|
||||
faithmissionaries.com: could not connect to host
|
||||
farm24.co.uk: could not connect to host
|
||||
fascia.fit: could not connect to host
|
||||
fed51.com: could not connect to host
|
||||
figuurzagers.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]
|
||||
filhomes.ph: could not connect to host
|
||||
findmybottleshop.com.au: could not connect to host
|
||||
firebaseio.com: could not connect to host
|
||||
|
@ -187,6 +198,7 @@ funfunmstdn.tokyo: could not connect to host
|
|||
funideas.org: could not connect to host
|
||||
funksteckdosen24.de: could not connect to host
|
||||
fuwafuwa.moe: could not connect to host
|
||||
fyfywka.com: could not connect to host
|
||||
fyol.pw: could not connect to host
|
||||
g4w.co: could not connect to host
|
||||
gam3rs.de: could not connect to host
|
||||
|
@ -200,10 +212,12 @@ gaygeeks.de: 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
|
||||
genuxtsg.com: 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
|
||||
ggrks-asano.com: could not connect to host
|
||||
ggss.cf: could not connect to host
|
||||
ggx.us: could not connect to host
|
||||
glasgestaltung.biz: could not connect to host
|
||||
|
@ -213,37 +227,36 @@ google: could not connect to host
|
|||
gottfridsberg.org: could not connect to host
|
||||
gradsm-ci.net: could not connect to host
|
||||
gratisonlinesex.com: could not connect to host
|
||||
greatestwebsiteonearth.com: could not connect to host
|
||||
greybit.net: could not connect to host
|
||||
gritte.net: could not connect to host
|
||||
gvt2.com: could not connect to host
|
||||
gvt3.com: could not connect to host
|
||||
gz-benz.com: could not connect to host
|
||||
hajnzic.at: could not connect to host
|
||||
haktec.de: could not connect to host
|
||||
halcyonsbastion.com: could not connect to host
|
||||
harald-pfeiffer.de: could not connect to host
|
||||
hasabig.wang: could not connect to host
|
||||
heijblok.com: could not connect to host
|
||||
hellomouse.tk: could not connect to host
|
||||
helsingfors.guide: could not connect to host
|
||||
here.ml: could not connect to host
|
||||
hg881.com: could not connect to host
|
||||
hiraku.me: could not connect to host
|
||||
hong.io: could not connect to host
|
||||
homezhi.com.tw: 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
|
||||
hwcine.com: could not connect to host
|
||||
hyper-matrix.org: could not connect to host
|
||||
ibase.com: could not connect to host
|
||||
iemb.tk: could not connect to host
|
||||
ifxnet.com: could not connect to host
|
||||
ileat.com: could not connect to host
|
||||
illegalpornography.me: 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
|
||||
internetpro.me: could not connect to host
|
||||
investorloanshub.com: could not connect to host
|
||||
invisionita.com: could not connect to host
|
||||
ipv6.watch: could not connect to host
|
||||
ishome.org: could not connect to host
|
||||
|
@ -255,6 +268,7 @@ itproject.guru: could not connect to host
|
|||
ivanpolchenko.com: could not connect to host
|
||||
iwpbk.com: could not connect to host
|
||||
ixio.cz: could not connect to host
|
||||
jakincode.army: could not connect to host
|
||||
jardins-utopie.net: could not connect to host
|
||||
jaredfraser.com: could not connect to host
|
||||
javascriptlab.fr: could not connect to host
|
||||
|
@ -284,9 +298,9 @@ knownsec.cf: could not connect to host
|
|||
kollawat.me: could not connect to host
|
||||
kousaku.jp: could not connect to host
|
||||
kozmik.co: could not connect to host
|
||||
kriptosec.com: could not connect to host
|
||||
kteen.info: could not connect to host
|
||||
lacasa.fr: could not connect to host
|
||||
lacasseroy.com: could not connect to host
|
||||
lachawoj.de: could not connect to host
|
||||
lathamlabs.com: could not connect to host
|
||||
lathamlabs.net: could not connect to host
|
||||
|
@ -310,8 +324,8 @@ logcat.info: could not connect to host
|
|||
logic8.ml: could not connect to host
|
||||
logimagine.com: could not connect to host
|
||||
lovelytimes.net: could not connect to host
|
||||
lsys.ac: could not connect to host
|
||||
luav.org: could not connect to host
|
||||
lubot.net: could not connect to host
|
||||
luenwarneke.com: could not connect to host
|
||||
m0t0k1ch1.com: could not connect to host
|
||||
maartenterpstra.xyz: could not connect to host
|
||||
|
@ -323,25 +337,32 @@ markus-ullmann.de: could not connect to host
|
|||
martin-mattel.com: could not connect to host
|
||||
martinrogalla.com: could not connect to host
|
||||
mathijskingma.nl: could not connect to host
|
||||
maypolevilla.co.uk: could not connect to host
|
||||
mcdanieldevelopmentservices.com: could not connect to host
|
||||
mcea-hld.jp: could not connect to host
|
||||
mchopkins.net: could not connect to host
|
||||
meanevo.com: could not connect to host
|
||||
mediadandy.com: could not connect to host
|
||||
meetingfriends.ch: could not connect to host
|
||||
mensagensperfeitas.com.br: could not connect to host
|
||||
metachris.com: could not connect to host
|
||||
michaelkuchta.me: could not connect to host
|
||||
minakov.pro: could not connect to host
|
||||
mingy.ddns.net: could not connect to host
|
||||
minobar.com: could not connect to host
|
||||
mixnshake.com: could not connect to host
|
||||
modded-minecraft-server-list.com: could not connect to host
|
||||
moe-max.jp: could not connect to host
|
||||
mojnet.eu: could not connect to host
|
||||
mojnet.net: could not connect to host
|
||||
mosaique-lachenaie.fr: could not connect to host
|
||||
moskva.guide: could not connect to host
|
||||
motomorgen.com: could not connect to host
|
||||
mowalls.net: could not connect to host
|
||||
mpserver12.org: could not connect to host
|
||||
mrliu.me: could not connect to host
|
||||
ms-alternativ.de: could not connect to host
|
||||
muj-svet.cz: could not connect to host
|
||||
muahahahaha.co.uk: could not connect to host
|
||||
munduch.cz: could not connect to host
|
||||
myamity.info: could not connect to host
|
||||
naphex.rocks: could not connect to host
|
||||
|
@ -352,6 +373,7 @@ nedcf.org.uk: could not connect to host
|
|||
negai.moe: could not connect to host
|
||||
netica.fr: could not connect to host
|
||||
nexuscorporation.in: could not connect to host
|
||||
nfluence.org: 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
|
||||
|
@ -360,6 +382,7 @@ norrkemi.se: could not connect to host
|
|||
nostraspace.com: could not connect to host
|
||||
notesforpebble.com: could not connect to host
|
||||
novelabs.eu: could not connect to host
|
||||
nowremindme.com: could not connect to host
|
||||
nup.pw: could not connect to host
|
||||
obdolbacca.ru: could not connect to host
|
||||
octosys.net: could not connect to host
|
||||
|
@ -387,7 +410,6 @@ philippa.cool: could not connect to host
|
|||
picallo.es: could not connect to host
|
||||
pincodeit.com: could not connect to host
|
||||
pinebaylibrary.org: could not connect to host
|
||||
pkov.cz: could not connect to host
|
||||
plaasprodukte.com: could not connect to host
|
||||
plussizereviews.com: could not connect to host
|
||||
pointagri.com: could not connect to host
|
||||
|
@ -413,6 +435,7 @@ rofrank.space: could not connect to host
|
|||
roguesignal.net: could not connect to host
|
||||
rolodato.com: could not connect to host
|
||||
roolevoi.ru: could not connect to host
|
||||
rsldb.com: could not connect to host
|
||||
rubyist.today: could not connect to host
|
||||
s1mplescripts.de: could not connect to host
|
||||
saferedirectlink.com: could not connect to host
|
||||
|
@ -420,7 +443,6 @@ sallysubs.com: could not connect to host
|
|||
sanatrans.com: could not connect to host
|
||||
sanpham-balea.org: could not connect to host
|
||||
sarndipity.com: could not connect to host
|
||||
scottynordstrom.org: could not connect to host
|
||||
sectest.ml: could not connect to host
|
||||
securitymap.wiki: could not connect to host
|
||||
sellmoretires.com: could not connect to host
|
||||
|
@ -433,6 +455,7 @@ shadowplus.net: could not connect to host
|
|||
shadowrocket.net: could not connect to host
|
||||
sharevari.com: could not connect to host
|
||||
shavingks.com: could not connect to host
|
||||
shellday.cc: could not connect to host
|
||||
sheratan.web.id: could not connect to host
|
||||
sheying.tm: could not connect to host
|
||||
shirakaba-cc.com: could not connect to host
|
||||
|
@ -440,7 +463,6 @@ shoemuse.com: could not connect to host
|
|||
shopifycloud.com: could not connect to host
|
||||
shorten.ninja: could not connect to host
|
||||
shrike.me: could not connect to host
|
||||
sijmenschoon.nl: could not connect to host
|
||||
simam.de: could not connect to host
|
||||
simbolo.co.uk: could not connect to host
|
||||
simonwessel.net: could not connect to host
|
||||
|
@ -448,6 +470,8 @@ simplerses.com: could not connect to host
|
|||
siqi.wang: could not connect to host
|
||||
sky-aroma.com: could not connect to host
|
||||
skyasker.com: could not connect to host
|
||||
slo-net.net: could not connect to host
|
||||
socialdevelop.biz: could not connect to host
|
||||
socialworkout.com: could not connect to host
|
||||
socialworkout.net: could not connect to host
|
||||
socialworkout.org: could not connect to host
|
||||
|
@ -464,15 +488,14 @@ srv.so: could not connect to host
|
|||
statgram.me: could not connect to host
|
||||
static-assets.io: could not connect to host
|
||||
stickswag.cf: 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
|
||||
stylle.me: could not connect to host
|
||||
sussexwebdesigns.com: could not connect to host
|
||||
sviz.pro: could not connect to host
|
||||
takusan.ru: could not connect to host
|
||||
techask.it: could not connect to host
|
||||
techpit.us: could not connect to host
|
||||
tenispopular.com: could not connect to host
|
||||
tenyx.de: 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
|
||||
|
@ -480,9 +503,11 @@ thesteins.org: could not connect to host
|
|||
thinkcash.nl: could not connect to host
|
||||
tiliaze.info: could not connect to host
|
||||
tiliaze.net: could not connect to host
|
||||
tomaz.eu: could not connect to host
|
||||
totch.de: could not connect to host
|
||||
totot.net: could not connect to host
|
||||
toushi-exe.com: could not connect to host
|
||||
tpansino.com: could not connect to host
|
||||
transcendmotor.sg: could not connect to host
|
||||
tucidi.net: could not connect to host
|
||||
turn-sticks.com: could not connect to host
|
||||
|
@ -509,11 +534,15 @@ vmgirls.com: could not connect to host
|
|||
vmug.pl: could not connect to host
|
||||
wachter.biz: could not connect to host
|
||||
wafa4hw.com: could not connect to host
|
||||
wangjiatun.com.tw: 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
|
||||
webambacht.nl: could not connect to host
|
||||
webart-factory.de: could not connect to host
|
||||
webthings.com.br: could not connect to host
|
||||
wecanvisit.com: could not connect to host
|
||||
weed.ren: could not connect to host
|
||||
weicn.org: could not connect to host
|
||||
weirdserver.com: could not connect to host
|
||||
welby.cat: could not connect to host
|
||||
|
@ -524,13 +553,13 @@ whilsttraveling.com: could not connect to host
|
|||
wilhelm-nathan.de: could not connect to host
|
||||
wnnc.co.uk: could not connect to host
|
||||
wolfemg.com: could not connect to host
|
||||
wolfwings.us: could not connect to host
|
||||
woomu.me: 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
|
||||
xecureit.com: could not connect to host
|
||||
xg3n1us.de: could not connect to host
|
||||
xia100.xyz: could not connect to host
|
||||
xiaoyu.net: could not connect to host
|
||||
xing.ml: could not connect to host
|
||||
|
@ -638,7 +667,7 @@ zzw.ca: could not connect to host
|
|||
33338522.com: could not connect to host
|
||||
3338522.com: could not connect to host
|
||||
33drugstore.com: did not receive HSTS header
|
||||
341.mg: did not receive HSTS header
|
||||
341.mg: could not connect to host
|
||||
3555aa.com: could not connect to host
|
||||
35792.de: could not connect to host
|
||||
360gradus.com: did not receive HSTS header
|
||||
|
@ -673,7 +702,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: did not receive HSTS header
|
||||
517vpn.cn: could not connect to host
|
||||
518maicai.com: did not receive HSTS header
|
||||
540.co: did not receive HSTS header
|
||||
54bf.com: could not connect to host
|
||||
|
@ -789,6 +818,8 @@ access-sofia.org: did not receive HSTS header
|
|||
accommodation-berry.com.au: max-age too low: 300
|
||||
accountradar.com: could not connect to host
|
||||
accounts-p.com: could not connect to host
|
||||
accuritconsulting.com: did not receive HSTS header
|
||||
accuritpresence.com: did not receive HSTS header
|
||||
acgmoon.org: did not receive HSTS header
|
||||
acheirj.com.br: did not receive HSTS header
|
||||
acheritage.co.uk: could not connect to host
|
||||
|
@ -1081,7 +1112,7 @@ apis.google.com: did not receive HSTS header (error ignored - included regardles
|
|||
apis.world: could not connect to host
|
||||
apmg-certified.com: did not receive HSTS header
|
||||
apmg-cyber.com: did not receive HSTS header
|
||||
apnakliyat.com: did not receive HSTS header
|
||||
apnakliyat.com: could not connect to host
|
||||
apolloyl.com: could not connect to host
|
||||
aponkral.site: could not connect to host
|
||||
aponkralsunucu.com: could not connect to host
|
||||
|
@ -1362,7 +1393,6 @@ belliash.eu.org: did not receive HSTS header
|
|||
belltower.io: could not connect to host
|
||||
belmontprom.com: could not connect to host
|
||||
bemyvictim.com: max-age too low: 2678400
|
||||
benchcast.com: did not receive HSTS header
|
||||
bendechrai.com: did not receive HSTS header
|
||||
beneffy.com: did not receive HSTS header
|
||||
benjakesjohnson.com: could not connect to host
|
||||
|
@ -1387,7 +1417,6 @@ besola.de: did not receive HSTS header
|
|||
bestbeards.ca: could not connect to host
|
||||
bestcellular.com: did not receive HSTS header
|
||||
besthost.cz: did not receive HSTS header
|
||||
bestmodels.su: did not receive HSTS header
|
||||
bestof1001.de: did not receive HSTS header
|
||||
bestorangeseo.com: could not connect to host
|
||||
betaclean.fr: did not receive HSTS header
|
||||
|
@ -1467,6 +1496,7 @@ bitfarm-archiv.de: did not receive HSTS header
|
|||
bitheus.com: could not connect to host
|
||||
bithosting.io: did not receive HSTS header
|
||||
bitlish.com: max-age too low: 86400
|
||||
bitmon.net: did not receive HSTS header
|
||||
bitnet.io: did not receive HSTS header
|
||||
bitrage.de: could not connect to host
|
||||
bitraum.io: could not connect to host
|
||||
|
@ -1550,7 +1580,7 @@ bootjp.me: did not receive HSTS header
|
|||
borderlinegroup.com: could not connect to host
|
||||
boringsecurity.net: could not connect to host
|
||||
boris.one: did not receive HSTS header
|
||||
boris64.net: did not receive HSTS header
|
||||
boris64.net: could not connect to host
|
||||
borscheid-wenig.com: did not receive HSTS header
|
||||
boschee.net: could not connect to host
|
||||
botox.bz: did not receive HSTS header
|
||||
|
@ -1639,6 +1669,7 @@ bunaken.asia: did not receive HSTS header
|
|||
bunbomenu.de: could not connect to host
|
||||
bunsenlabs.org: max-age too low: 2592000
|
||||
bureaubolster.nl: did not receive HSTS header
|
||||
bureaugravity.com: did not receive HSTS header
|
||||
burian-server.cz: could not connect to host
|
||||
burningcrash.de: max-age too low: 600000
|
||||
burpsuite.site: could not connect to host
|
||||
|
@ -1767,7 +1798,7 @@ carwashvapeur.be: could not connect to host
|
|||
casc.cz: did not receive HSTS header
|
||||
casedi.org: max-age too low: 0
|
||||
casefall.com: could not connect to host
|
||||
cash-pos.com: did not receive HSTS header
|
||||
cash-pos.com: could not connect to host
|
||||
cashmyphone.ch: could not connect to host
|
||||
casino-cashflow.ru: did not receive HSTS header
|
||||
casinostest.com: did not receive HSTS header
|
||||
|
@ -1815,6 +1846,7 @@ certmgr.org: could not connect to host
|
|||
cesal.net: could not connect to host
|
||||
cesidianroot.eu: could not connect to host
|
||||
cevrimici.com: could not connect to host
|
||||
cfcnexus.org: max-age too low: 2
|
||||
cfcproperties.com: did not receive HSTS header
|
||||
cfetengineering.com: could not connect to host
|
||||
cfoitplaybook.com: could not connect to host
|
||||
|
@ -1880,13 +1912,13 @@ chriskirchner.de: did not receive HSTS header
|
|||
chriskyrouac.com: could not connect to host
|
||||
chrisopperwall.com: did not receive HSTS header
|
||||
christiaandruif.nl: could not connect to host
|
||||
christian-host.com: did not receive HSTS header
|
||||
christianbro.gq: could not connect to host
|
||||
christophercolumbusfoundation.gov: could not connect to host
|
||||
christophersole.com: could not connect to host
|
||||
christophheich.me: could not connect to host
|
||||
chrisupjohn.com: could not connect to host
|
||||
chrisvicmall.com: did not receive HSTS header
|
||||
chromaryu.net: did not receive HSTS header
|
||||
chrome: could not connect to host
|
||||
chrome-devtools-frontend.appspot.com: did not receive HSTS header (error ignored - included regardless)
|
||||
chrome.google.com: did not receive HSTS header (error ignored - included regardless)
|
||||
|
@ -2004,7 +2036,7 @@ codepx.com: did not receive HSTS header
|
|||
codes.pk: did not receive HSTS header
|
||||
codewiththepros.org: could not connect to host
|
||||
codigosddd.com.br: did not receive HSTS header
|
||||
coffeeetc.co.uk: max-age too low: 7776000
|
||||
coffeeetc.co.uk: max-age too low: 7889238
|
||||
coffeestrategies.com: max-age too low: 5184000
|
||||
cogniflex.com: did not receive HSTS header
|
||||
cohesive.io: did not receive HSTS header
|
||||
|
@ -2075,7 +2107,7 @@ continuumgaming.com: could not connect to host
|
|||
controlcenter.gigahost.dk: did not receive HSTS header
|
||||
convert.zone: did not receive HSTS header
|
||||
cooink.net: could not connect to host
|
||||
coolaj86.com: did not receive HSTS header
|
||||
coolaj86.com: could not connect to host
|
||||
coolchevy.org.ua: did not receive HSTS header
|
||||
coole-meister.de: could not connect to host
|
||||
coolrc.me: could not connect to host
|
||||
|
@ -2339,7 +2371,6 @@ deetz.nl: did not receive HSTS header
|
|||
deetzen.de: did not receive HSTS header
|
||||
defcon.org: did not receive HSTS header
|
||||
defiler.tk: could not connect to host
|
||||
defme.eu: did not receive HSTS header
|
||||
degroetenvanrosaline.nl: did not receive HSTS header
|
||||
deight.co: could not connect to host
|
||||
deinserverhost.de: did not receive HSTS header
|
||||
|
@ -2368,6 +2399,7 @@ derevtsov.com: did not receive HSTS header
|
|||
derpumpkinfuhrer.com: could not connect to host
|
||||
derwaldschrat.net: did not receive HSTS header
|
||||
derwolfe.net: did not receive HSTS header
|
||||
des-hommes-et-des-clous.com: did not receive HSTS header
|
||||
desiccantpackets.com: did not receive HSTS header
|
||||
designandmore.it: did not receive HSTS header
|
||||
designgears.com: did not receive HSTS header
|
||||
|
@ -2445,11 +2477,14 @@ distractionco.de: did not receive HSTS header
|
|||
ditrutoancau.vn: could not connect to host
|
||||
dittvertshus.no: could not connect to host
|
||||
diva-ey.com: could not connect to host
|
||||
divvymonkey.com: did not receive HSTS header
|
||||
divvyradio.com: did not receive HSTS header
|
||||
dixiediner.com: did not receive HSTS header
|
||||
diyvideoeditor.com: did not receive HSTS header
|
||||
dizihocasi.com: could not connect to host
|
||||
dizorg.net: could not connect to host
|
||||
dj4et.de: could not connect to host
|
||||
djlive.pl: did not receive HSTS header
|
||||
djxmmx.net: did not receive HSTS header
|
||||
djz4music.com: did not receive HSTS header
|
||||
dkniss.de: could not connect to host
|
||||
|
@ -2586,7 +2621,6 @@ duskopy.top: could not connect to host
|
|||
dutchessuganda.com: did not receive HSTS header
|
||||
dutchrank.com: did not receive HSTS header
|
||||
duuu.ch: could not connect to host
|
||||
dwtm.ch: did not receive HSTS header
|
||||
dycontrol.de: could not connect to host
|
||||
dylanscott.com.au: did not receive HSTS header
|
||||
dynamic-innovations.net: could not connect to host
|
||||
|
@ -2616,6 +2650,7 @@ eatlowcarb.de: did not receive HSTS header
|
|||
eatvisor.co.uk: could not connect to host
|
||||
eauclairecommerce.com: could not connect to host
|
||||
ebankcbt.com: could not connect to host
|
||||
ebcs-solutions.com: did not receive HSTS header
|
||||
ebecs.com: did not receive HSTS header
|
||||
ebertek.com: did not receive HSTS header
|
||||
ebiografia.com: did not receive HSTS header
|
||||
|
@ -2761,7 +2796,6 @@ endohaus.com: could not connect to host
|
|||
endohaus.eu: could not connect to host
|
||||
enecoshop.nl: did not receive HSTS header
|
||||
enefan.jp: could not connect to host
|
||||
energyaupair.se: did not receive HSTS header
|
||||
engelwerbung.com: did not receive HSTS header
|
||||
enginsight.com: did not receive HSTS header
|
||||
englishyamal.ru: did not receive HSTS header
|
||||
|
@ -2811,7 +2845,6 @@ ernaehrungsberatung-zurich.ch: could not connect to host
|
|||
ernesto.at: could not connect to host
|
||||
eromixx.com: did not receive HSTS header
|
||||
erotalia.es: could not connect to host
|
||||
erotic4me.ch: did not receive HSTS header
|
||||
erotische-aanbiedingen.nl: could not connect to host
|
||||
errolz.com: could not connect to host
|
||||
errors.zenpayroll.com: could not connect to host
|
||||
|
@ -3056,6 +3089,7 @@ flamingkeys.com.au: could not connect to host
|
|||
flareon.net: could not connect to host
|
||||
flatbellyreview.com: max-age too low: 2592000
|
||||
flawcheck.com: could not connect to host
|
||||
flazznetworks.com: did not receive HSTS header
|
||||
fliexer.com: could not connect to host
|
||||
flipkey.com: did not receive HSTS header
|
||||
flirchi.com: could not connect to host
|
||||
|
@ -3124,7 +3158,7 @@ fralef.me: did not receive HSTS header
|
|||
francevpn.xyz: could not connect to host
|
||||
francois-vidit.com: did not receive HSTS header
|
||||
frangor.info: did not receive HSTS header
|
||||
frank.fyi: did not receive HSTS header
|
||||
frank.fyi: could not connect to host
|
||||
frankierprofi.de: did not receive HSTS header
|
||||
frankwei.xyz: did not receive HSTS header
|
||||
franta.biz: did not receive HSTS header
|
||||
|
@ -3170,7 +3204,6 @@ ftctele.com: could not connect to host
|
|||
ftpi.ml: could not connect to host
|
||||
fuckbilibili.com: could not connect to host
|
||||
fuckgfw233.org: could not connect to host
|
||||
fudanshi.org: did not receive HSTS header
|
||||
fukushima-web.com: did not receive HSTS header
|
||||
fulilingyu.info: could not connect to host
|
||||
fullytrained.co.uk: did not receive HSTS header
|
||||
|
@ -3262,7 +3295,7 @@ gdegem.org: did not receive HSTS header
|
|||
gebn.co.uk: did not receive HSTS header
|
||||
gebn.uk: could not connect to host
|
||||
gedankenbude.info: could not connect to host
|
||||
geekcast.co.uk: did not receive HSTS header
|
||||
geekcast.co.uk: could not connect to host
|
||||
geeks.lgbt: could not connect to host
|
||||
geeky.software: could not connect to host
|
||||
geemo.top: could not connect to host
|
||||
|
@ -3577,7 +3610,7 @@ handleidingkwijt.com: did not receive HSTS header
|
|||
hanfu.la: could not connect to host
|
||||
hangar18-modelismo.com.br: did not receive HSTS header
|
||||
hanimalis.fr: could not connect to host
|
||||
hannover-banditen.de: max-age too low: 0
|
||||
hannover-banditen.de: could not connect to host
|
||||
hans-natur.de: did not receive HSTS header
|
||||
hao2taiwan.com: max-age too low: 0
|
||||
haomwei.com: could not connect to host
|
||||
|
@ -3769,7 +3802,6 @@ hpepub.org: could not connect to host
|
|||
hppub.info: could not connect to host
|
||||
hppub.org: could not connect to host
|
||||
hppub.site: could not connect to host
|
||||
hqq.tv: did not receive HSTS header
|
||||
hr-intranet.com: could not connect to host
|
||||
hrackydomino.cz: did not receive HSTS header
|
||||
hrk.io: could not connect to host
|
||||
|
@ -3853,11 +3885,11 @@ identitysandbox.gov: could not connect to host
|
|||
idgsupply.com: did not receive HSTS header
|
||||
idisplay.es: did not receive HSTS header
|
||||
idlekernel.com: could not connect to host
|
||||
idolish7.fun: did not receive HSTS header
|
||||
idontexist.me: did not receive HSTS header
|
||||
ie.search.yahoo.com: max-age too low: 600
|
||||
ieeesb.nl: did not receive HSTS header
|
||||
ieeesbe.nl: did not receive HSTS header
|
||||
iemb.tk: did not receive HSTS header
|
||||
ierna.com: did not receive HSTS header
|
||||
ies-italia.it: did not receive HSTS header
|
||||
ies.id.lv: could not connect to host
|
||||
|
@ -4520,6 +4552,7 @@ kzjnet.com: could not connect to host
|
|||
l-rickroll-i.pw: could not connect to host
|
||||
la-flora-negra.de: could not connect to host
|
||||
la-grande-jaugue.fr: did not receive HSTS header
|
||||
la-petite-entreprise.com: did not receive HSTS header
|
||||
la-retraite-info.com: could not connect to host
|
||||
labaia.info: could not connect to host
|
||||
labina.com.tr: did not receive HSTS header
|
||||
|
@ -4759,6 +4792,7 @@ loisircreatif.net: did not receive HSTS header
|
|||
lojadocristaozinho.com.br: could not connect to host
|
||||
lojafilipaper.com.br: did not receive HSTS header
|
||||
lojasviavento.com.br: could not connect to host
|
||||
lojavalcapelli.com.br: did not receive HSTS header
|
||||
loli.bz: did not receive HSTS header
|
||||
lolicore.ch: could not connect to host
|
||||
lolidunno.com: could not connect to host
|
||||
|
@ -4814,8 +4848,6 @@ ludwig.click: did not receive HSTS header
|
|||
ludwiggrill.de: did not receive HSTS header
|
||||
lufthansaexperts.com: max-age too low: 2592000
|
||||
luis-checa.com: could not connect to host
|
||||
lukas-oppermann.de: did not receive HSTS header
|
||||
lukasoppermann.com: did not receive HSTS header
|
||||
lukeng.me: could not connect to host
|
||||
lukonet.com: did not receive HSTS header
|
||||
luludapomerania.com: could not connect to host
|
||||
|
@ -4836,7 +4868,6 @@ lusis.net: did not receive HSTS header
|
|||
lustrumxi.nl: could not connect to host
|
||||
luther.fi: did not receive HSTS header
|
||||
luxus-russen.de: did not receive HSTS header
|
||||
luxwatch.com: could not connect to host
|
||||
lv.search.yahoo.com: max-age too low: 600
|
||||
lydia-und-simon.de: could not connect to host
|
||||
lydiagorstein.com: could not connect to host
|
||||
|
@ -4914,6 +4945,8 @@ manageall.de: could not connect to host
|
|||
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
|
||||
manager-efficacement.com: did not receive HSTS header
|
||||
manantial.mx: did not receive HSTS header
|
||||
mandpress.com: did not receive HSTS header
|
||||
maniadeprazer.com.br: could not connect to host
|
||||
|
@ -4979,7 +5012,6 @@ masteringtheterminal.com: did not receive HSTS header
|
|||
mastichor.info: could not connect to host
|
||||
mastimtibetano.com: could not connect to host
|
||||
mastod.life: could not connect to host
|
||||
mastodon.blue: did not receive HSTS header
|
||||
mastodon.direct: could not connect to host
|
||||
mastodon.engineering: could not connect to host
|
||||
mastodon.pl: could not connect to host
|
||||
|
@ -5188,7 +5220,7 @@ minecraftforums.ml: could not connect to host
|
|||
minecraftserverz.com: could not connect to host
|
||||
minecraftvoter.com: could not connect to host
|
||||
mineover.es: could not connect to host
|
||||
mingo.nl: did not receive HSTS header
|
||||
mingo.nl: max-age too low: 2592000
|
||||
minh.at: could not connect to host
|
||||
mini-piraten.de: did not receive HSTS header
|
||||
minikneet.nl: could not connect to host
|
||||
|
@ -5506,6 +5538,7 @@ neonnuke.tech: did not receive HSTS header
|
|||
neosolution.ca: did not receive HSTS header
|
||||
nepustil.net: did not receive HSTS header
|
||||
nerd42.de: could not connect to host
|
||||
nerdtime.de: did not receive HSTS header
|
||||
neris.io: could not connect to host
|
||||
nestedquotes.ca: could not connect to host
|
||||
net-navi.cc: did not receive HSTS header
|
||||
|
@ -5531,6 +5564,7 @@ neuro-plus-100.com: could not connect to host
|
|||
neuronfactor.com: max-age too low: 1000
|
||||
never-afk.de: did not receive HSTS header
|
||||
neveta.com: could not connect to host
|
||||
new-friend.org: max-age too low: 0
|
||||
newbieboss.com: did not receive HSTS header
|
||||
newedivideo.it: could not connect to host
|
||||
newgenerationplus.org: could not connect to host
|
||||
|
@ -5839,6 +5873,7 @@ orionrebellion.com: could not connect to host
|
|||
orleika.ml: could not connect to host
|
||||
oroweatorganic.com: could not connect to host
|
||||
orthodoxy.lt: did not receive HSTS header
|
||||
orwell1984.today: did not receive HSTS header
|
||||
osaiyuwu.com: could not connect to host
|
||||
oscloud.com: could not connect to host
|
||||
oscloud.com.ua: could not connect to host
|
||||
|
@ -5887,6 +5922,7 @@ p3.marketing: did not receive HSTS header
|
|||
p3in.com: did not receive HSTS header
|
||||
p8r.de: could not connect to host
|
||||
pa.search.yahoo.com: max-age too low: 600
|
||||
paavolastudio.com: did not receive HSTS header
|
||||
pablocamino.tk: could not connect to host
|
||||
packlane.com: did not receive HSTS header
|
||||
pactocore.org: could not connect to host
|
||||
|
@ -6003,7 +6039,6 @@ peperiot.com: did not receive HSTS header
|
|||
pepperhead.com: did not receive HSTS header
|
||||
pepperworldhotshop.de: did not receive HSTS header
|
||||
pepsicoemployeepreferencesurvey.com: did not receive HSTS header
|
||||
percy.io: did not receive HSTS header
|
||||
perfect-radiant-wrinkles.com: could not connect to host
|
||||
perfectionis.me: could not connect to host
|
||||
perfectseourl.com: did not receive HSTS header
|
||||
|
@ -6239,6 +6274,7 @@ printerest.io: could not connect to host
|
|||
printersonline.be: did not receive HSTS header
|
||||
printfn.com: could not connect to host
|
||||
priolkar.com: did not receive HSTS header
|
||||
priorite-education.com: did not receive HSTS header
|
||||
privacylabs.io: did not receive HSTS header
|
||||
privacyrup.net: could not connect to host
|
||||
privytime.com: could not connect to host
|
||||
|
@ -6508,7 +6544,7 @@ renideo.fr: could not connect to host
|
|||
renkhosting.com: could not connect to host
|
||||
renlong.org: did not receive HSTS header
|
||||
renrenss.com: could not connect to host
|
||||
rentacarcluj.xyz: did not receive HSTS header
|
||||
rentacarcluj.xyz: could not connect to host
|
||||
rentbrowsertrain.me: could not connect to host
|
||||
rentcarassist.com: could not connect to host
|
||||
renteater.com: could not connect to host
|
||||
|
@ -6773,7 +6809,6 @@ scienceathome.org: did not receive HSTS header
|
|||
scivillage.com: did not receive HSTS header
|
||||
sclgroup.cc: did not receive HSTS header
|
||||
scooshonline.co.uk: did not receive HSTS header
|
||||
score-savers.com: max-age too low: 10540800
|
||||
scores4schools.com: could not connect to host
|
||||
scotbirchfield.com: did not receive HSTS header
|
||||
scottdial.com: did not receive HSTS header
|
||||
|
@ -6923,7 +6958,6 @@ shadowsocks.wiki: did not receive HSTS header
|
|||
shadowsoks.com: could not connect to host
|
||||
shagi29.ru: did not receive HSTS header
|
||||
shakebox.de: could not connect to host
|
||||
shakes4u.com: did not receive HSTS header
|
||||
shanekoster.net: could not connect to host
|
||||
shanesage.com: could not connect to host
|
||||
shaobin.wang: could not connect to host
|
||||
|
@ -7054,6 +7088,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
|
||||
sleepstar.com.mt: did not receive HSTS header
|
||||
slicketl.com: did not receive HSTS header
|
||||
|
@ -7067,6 +7102,7 @@ sluplift.com: did not receive HSTS header
|
|||
slycurity.de: did not receive HSTS header
|
||||
smablo.com: did not receive HSTS header
|
||||
smallcdn.rocks: could not connect to host
|
||||
smallshopit.com: did not receive HSTS header
|
||||
smart-mirror.de: did not receive HSTS header
|
||||
smart-ov.nl: could not connect to host
|
||||
smartbuyelectric.com: could not connect to host
|
||||
|
@ -7140,6 +7176,7 @@ somethingnew.xyz: could not connect to host
|
|||
sonic.network: did not receive HSTS header
|
||||
sonicrainboom.rocks: did not receive HSTS header
|
||||
soobi.org: did not receive HSTS header
|
||||
soply.com: did not receive HSTS header
|
||||
soporte.cc: could not connect to host
|
||||
sorensen-online.com: could not connect to host
|
||||
sosaka.ml: could not connect to host
|
||||
|
@ -7160,7 +7197,6 @@ souyar.net: could not connect to host
|
|||
souyar.us: could not connect to host
|
||||
sovereignshare.com: could not connect to host
|
||||
sown.dyndns.org: could not connect to host
|
||||
sowncloud.de: did not receive HSTS header
|
||||
spacedust.xyz: could not connect to host
|
||||
spacefish.biz: could not connect to host
|
||||
spacehq.org: could not connect to host
|
||||
|
@ -7392,6 +7428,7 @@ sweetair.com: did not receive HSTS header
|
|||
sweetstreats.ca: could not connect to host
|
||||
swfloshatraining.com: did not receive HSTS header
|
||||
swimming.ca: did not receive HSTS header
|
||||
swissid.ch: max-age too low: 60
|
||||
swisstranslate.ch: did not receive HSTS header
|
||||
swisstranslate.fr: did not receive HSTS header
|
||||
swite.com: did not receive HSTS header
|
||||
|
@ -7455,6 +7492,7 @@ taniesianie.pl: did not receive HSTS header
|
|||
tankfreunde.de: did not receive HSTS header
|
||||
tante-bugil.net: could not connect to host
|
||||
tanze-jetzt.de: could not connect to host
|
||||
taotuba.net: did not receive HSTS header
|
||||
taozj.org: did not receive HSTS header
|
||||
tapfinder.ca: could not connect to host
|
||||
tapka.cz: did not receive HSTS header
|
||||
|
@ -7634,7 +7672,6 @@ thenorthschool.org.uk: did not receive HSTS header
|
|||
theodorejones.info: could not connect to host
|
||||
thepartywarehouse.co.uk: did not receive HSTS header
|
||||
thepcweb.tk: could not connect to host
|
||||
thephonecaseplace.com: did not receive HSTS header
|
||||
thepiratebay.al: could not connect to host
|
||||
thepiratebay.poker: could not connect to host
|
||||
thepiratebay.tech: could not connect to host
|
||||
|
@ -7717,6 +7754,7 @@ timeserver3.de: could not connect to host
|
|||
timestamp.io: did not receive HSTS header
|
||||
timetab.org: could not connect to host
|
||||
timhjalpen.se: could not connect to host
|
||||
timmy.ws: did not receive HSTS header
|
||||
timnash.co.uk: did not receive HSTS header
|
||||
timotrans.de: did not receive HSTS header
|
||||
timotrans.eu: did not receive HSTS header
|
||||
|
@ -7740,6 +7778,7 @@ tjeckien.guide: could not connect to host
|
|||
tjullrich.de: could not connect to host
|
||||
tkappertjedemetamorfose.nl: could not connect to host
|
||||
tkonstantopoulos.tk: could not connect to host
|
||||
tlach.cz: did not receive HSTS header
|
||||
tlcdn.net: could not connect to host
|
||||
tlo.hosting: could not connect to host
|
||||
tlo.link: could not connect to host
|
||||
|
@ -7818,6 +7857,7 @@ touchpointidg.us: could not connect to host
|
|||
touchscreen-handy.de: did not receive HSTS header
|
||||
touchstonefms.co.uk: did not receive HSTS header
|
||||
touchtable.nl: did not receive HSTS header
|
||||
toujours-actif.com: did not receive HSTS header
|
||||
tourpeer.com: did not receive HSTS header
|
||||
toxme.se: could not connect to host
|
||||
toyotamotala.se: could not connect to host
|
||||
|
@ -8044,6 +8084,7 @@ urandom.eu.org: did not receive HSTS header
|
|||
urban-garden.lt: could not connect to host
|
||||
urban-garden.lv: could not connect to host
|
||||
urbanfi.sh: did not receive HSTS header
|
||||
urbanstylestaging.com: did not receive HSTS header
|
||||
urbpic.com: could not connect to host
|
||||
urlchomp.com: did not receive HSTS header
|
||||
urphp.com: could not connect to host
|
||||
|
@ -8141,7 +8182,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
|
||||
|
@ -8185,6 +8226,7 @@ vincentkooijman.nl: did not receive HSTS header
|
|||
vinciconps4.it: could not connect to host
|
||||
vinsetchampagne.fr: did not receive HSTS header
|
||||
vintageheartcoffee.com: did not receive HSTS header
|
||||
vinyculture.com: did not receive HSTS header
|
||||
vio.no: did not receive HSTS header
|
||||
violenceinterrupted.org: did not receive HSTS header
|
||||
viperdns.com: could not connect to host
|
||||
|
@ -8262,7 +8304,6 @@ vzk.io: could not connect to host
|
|||
w4a.fr: did not receive HSTS header
|
||||
w4xzr.top: could not connect to host
|
||||
w4xzr.xyz: could not connect to host
|
||||
waaw.tv: did not receive HSTS header
|
||||
wachtwoordencheck.nl: could not connect to host
|
||||
wait.moe: could not connect to host
|
||||
waixingrenfuli7.vip: could not connect to host
|
||||
|
@ -8288,6 +8329,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
|
||||
warezaddict.com: 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
|
||||
|
@ -8299,6 +8341,7 @@ 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
|
||||
|
@ -8399,8 +8442,6 @@ whoisapi.online: could not connect to host
|
|||
wholebites.com: max-age too low: 7776000
|
||||
whoneedstobeprimaried.today: could not connect to host
|
||||
whoshotya.de: did not receive HSTS header
|
||||
whyopencomputing.ch: did not receive HSTS header
|
||||
whyopencomputing.com: did not receive HSTS header
|
||||
whysuck.com: could not connect to host
|
||||
wienholding.at: max-age too low: 0
|
||||
wieninternational.at: did not receive HSTS header
|
||||
|
@ -8516,7 +8557,7 @@ www-8003.com: did not receive HSTS header
|
|||
www-88599.com: did not receive HSTS header
|
||||
www-9995.com: did not receive HSTS header
|
||||
www-djbet.com: did not receive HSTS header
|
||||
www-jinshavip.com: could not connect to host
|
||||
www-jinshavip.com: did not receive HSTS header
|
||||
www.braintreepayments.com: did not receive HSTS header
|
||||
www.calyxinstitute.org: max-age too low: 500
|
||||
www.cueup.com: could not connect to host
|
||||
|
@ -8724,7 +8765,6 @@ yutabon.com: could not connect to host
|
|||
yuushou.com: could not connect to host
|
||||
yux.io: did not receive HSTS header
|
||||
ywei.org: could not connect to host
|
||||
yyyy.xyz: could not connect to host
|
||||
yzal.io: could not connect to host
|
||||
z3liff.com: could not connect to host
|
||||
z3liff.net: could not connect to host
|
||||
|
@ -8740,7 +8780,6 @@ zao.fi: could not connect to host
|
|||
zaoshanghao-dajia.rhcloud.com: could not connect to host
|
||||
zap.yt: did not receive HSTS header
|
||||
zarooba.com: could not connect to host
|
||||
zary.me: did not receive HSTS header
|
||||
zavca.com: did not receive HSTS header
|
||||
zbigniewgalucki.eu: did not receive HSTS header
|
||||
zcon.nl: could not connect to host
|
||||
|
@ -8821,7 +8860,7 @@ zoznamrealit.sk: did not receive HSTS header
|
|||
zqhong.com: could not connect to host
|
||||
zqjs.tk: could not connect to host
|
||||
ztan.tk: could not connect to host
|
||||
ztcaoll222.cn: did not receive HSTS header
|
||||
ztcaoll222.cn: could not connect to host
|
||||
zubel.it: did not receive HSTS header
|
||||
zuram.net: could not connect to host
|
||||
zvncloud.com: did not receive HSTS header
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
/*****************************************************************************/
|
||||
|
||||
#include <stdint.h>
|
||||
const PRTime gPreloadListExpirationTime = INT64_C(1519321234801000);
|
||||
const PRTime gPreloadListExpirationTime = INT64_C(1519364619420000);
|
||||
%%
|
||||
0.me.uk, 1
|
||||
00001.am, 1
|
||||
|
@ -582,8 +582,6 @@ accordiondoor.com, 1
|
|||
accounts.firefox.com, 1
|
||||
accounts.google.com, 1
|
||||
accudraftpaintbooths.com, 1
|
||||
accuritconsulting.com, 1
|
||||
accuritpresence.com, 1
|
||||
accwing.com, 1
|
||||
aceadvisory.biz, 1
|
||||
acecerts.co.uk, 1
|
||||
|
@ -1739,7 +1737,7 @@ aquatechnologygroup.com, 1
|
|||
aquaundine.net, 1
|
||||
aquavitaedayspa.com.au, 1
|
||||
aquila.co.uk, 1
|
||||
aquilaguild.com, 1
|
||||
aquilaguild.com, 0
|
||||
aquireceitas.com, 1
|
||||
aquitroc.com, 1
|
||||
ar-informatique.ch, 1
|
||||
|
@ -2763,6 +2761,7 @@ benabrams.it, 1
|
|||
benary.org, 1
|
||||
benbozsa.ca, 1
|
||||
benburwell.com, 1
|
||||
benchcast.com, 1
|
||||
benchling.com, 1
|
||||
benchmarkmonument.com, 1
|
||||
bencorby.com, 1
|
||||
|
@ -2873,6 +2872,7 @@ besthotsales.com, 1
|
|||
bestlashesandbrows.com, 1
|
||||
bestlashesandbrows.hu, 1
|
||||
bestleftwild.com, 1
|
||||
bestmodels.su, 1
|
||||
bestmotherfucking.website, 1
|
||||
bestperfumebrands.com, 1
|
||||
bestschools.top, 1
|
||||
|
@ -3176,7 +3176,6 @@ bitmessage.ch, 1
|
|||
bitmex.com, 1
|
||||
bitminter.com, 1
|
||||
bitmoe.com, 1
|
||||
bitmon.net, 1
|
||||
bitok.com, 1
|
||||
bitplay.space, 1
|
||||
bitpod.de, 1
|
||||
|
@ -3918,7 +3917,6 @@ bupropion.com, 1
|
|||
bupu.ml, 1
|
||||
burcevo.info, 1
|
||||
burckardtnet.de, 1
|
||||
bureaugravity.com, 1
|
||||
burgers.io, 1
|
||||
burghardt.pl, 1
|
||||
buri.be, 0
|
||||
|
@ -4532,7 +4530,6 @@ ceyizlikelisleri.com, 1
|
|||
cf-ide.de, 1
|
||||
cfa.gov, 1
|
||||
cfan.space, 1
|
||||
cfcnexus.org, 1
|
||||
cfh.com, 1
|
||||
cfneia.org, 1
|
||||
cfno.org, 1
|
||||
|
@ -4819,6 +4816,7 @@ christadelphiananswers.org, 1
|
|||
christadelphians.eu, 1
|
||||
christensenplace.us, 1
|
||||
christiaanconover.com, 1
|
||||
christian-host.com, 1
|
||||
christian-liebel.com, 1
|
||||
christianbargon.de, 0
|
||||
christiancleva.com, 1
|
||||
|
@ -4851,7 +4849,6 @@ chrisupjohn.xyz, 1
|
|||
chriswarrick.com, 1
|
||||
chriswbarry.com, 1
|
||||
chriswells.io, 1
|
||||
chromaryu.net, 0
|
||||
chromaxa.com, 1
|
||||
chrome-devtools-frontend.appspot.com, 1
|
||||
chrome.com, 0
|
||||
|
@ -6536,6 +6533,7 @@ defimetiers.fr, 1
|
|||
deflect.ca, 1
|
||||
deflumeri.com, 1
|
||||
defman.me, 1
|
||||
defme.eu, 1
|
||||
defont.nl, 1
|
||||
defrax.com, 1
|
||||
defrax.de, 1
|
||||
|
@ -6666,7 +6664,6 @@ derrickemery.com, 1
|
|||
dersix.com, 1
|
||||
dersoundhunter.de, 1
|
||||
derstulle.de, 1
|
||||
des-hommes-et-des-clous.com, 1
|
||||
desagaz.com, 1
|
||||
desarrollowp.com, 1
|
||||
descartes-finance.com, 1
|
||||
|
@ -7053,8 +7050,6 @@ diversityflags.nz, 1
|
|||
divertiagua.com.br, 1
|
||||
divinegames.studio, 1
|
||||
divingwithnic.com, 1
|
||||
divvymonkey.com, 1
|
||||
divvyradio.com, 1
|
||||
diwei.vip, 1
|
||||
dixmag.com, 1
|
||||
diybook.at, 1
|
||||
|
@ -7070,7 +7065,6 @@ djangosnippets.org, 1
|
|||
djc.me, 1
|
||||
djieno.com, 1
|
||||
djipanov.com, 1
|
||||
djlive.pl, 1
|
||||
djlnetworks.co.uk, 1
|
||||
djt-vom-chausseehaus.de, 1
|
||||
djul.net, 1
|
||||
|
@ -7578,6 +7572,7 @@ dwhd.org, 1
|
|||
dwnld.me, 1
|
||||
dworzak.ch, 1
|
||||
dwscdv3.com, 1
|
||||
dwtm.ch, 1
|
||||
dwworld.co.uk, 1
|
||||
dxa.io, 0
|
||||
dxgl.info, 1
|
||||
|
@ -7711,7 +7706,6 @@ ebas.ch, 1
|
|||
ebataw.com, 1
|
||||
ebayinc.com, 1
|
||||
ebaymotorssucks.com, 1
|
||||
ebcs-solutions.com, 1
|
||||
ebermannstadt.de, 0
|
||||
eboek.info, 1
|
||||
ebonyriddle.com, 1
|
||||
|
@ -8183,6 +8177,7 @@ energy-in-balance.eu, 1
|
|||
energy-infra.nl, 1
|
||||
energy.eu, 1
|
||||
energyatlas.com, 1
|
||||
energyaupair.se, 1
|
||||
energydrinkblog.de, 1
|
||||
energyelephant.com, 1
|
||||
energyled.com.br, 1
|
||||
|
@ -8354,6 +8349,7 @@ erisrenee.com, 1
|
|||
ernaehrungsberatung-rapperswil.ch, 1
|
||||
ernest.ly, 1
|
||||
eron.info, 1
|
||||
erotic4me.ch, 1
|
||||
eroticen.com, 1
|
||||
erotpo.cz, 1
|
||||
erp-band.ru, 1
|
||||
|
@ -9327,7 +9323,6 @@ flatpackmates.co.uk, 1
|
|||
flauschig.net, 1
|
||||
flavr.be, 1
|
||||
flawlesscowboy.xyz, 1
|
||||
flazznetworks.com, 0
|
||||
flc111.com, 1
|
||||
flc999.com, 1
|
||||
fleep.io, 1
|
||||
|
@ -9856,6 +9851,7 @@ fuckav.ru, 1
|
|||
fuckcf.cf, 1
|
||||
fuckcie.com, 1
|
||||
fucklife.ch, 1
|
||||
fudanshi.org, 1
|
||||
fuechschen.org, 1
|
||||
fuelingyourdreams.com, 1
|
||||
fugle.de, 1
|
||||
|
@ -11887,6 +11883,7 @@ hpisavageforum.com, 1
|
|||
hpkp-faq.de, 1
|
||||
hpnow.com.br, 1
|
||||
hqhost.net, 0
|
||||
hqq.tv, 1
|
||||
hqwebhosting.tk, 1
|
||||
hr98.tk, 1
|
||||
hrabogados.com, 1
|
||||
|
@ -12197,6 +12194,7 @@ idndx.com, 1
|
|||
idoc24.com, 1
|
||||
idol-bikes.ru, 1
|
||||
idolf.dk, 1
|
||||
idolish7.fun, 1
|
||||
idontplaydarts.com, 1
|
||||
idranktoomuch.coffee, 1
|
||||
idrinktoomuch.coffee, 1
|
||||
|
@ -12211,7 +12209,6 @@ ieeespmb.org, 1
|
|||
ieji.de, 0
|
||||
iemas.azurewebsites.net, 1
|
||||
iemb.cf, 1
|
||||
iemb.tk, 1
|
||||
ieval.ro, 1
|
||||
iewar.com, 1
|
||||
ifamily.top, 1
|
||||
|
@ -14710,7 +14707,6 @@ la-cave-a-nodo.fr, 1
|
|||
la-ganiere.com, 1
|
||||
la-maison.ch, 1
|
||||
la-maison.eu, 1
|
||||
la-petite-entreprise.com, 1
|
||||
la-serendipite.fr, 1
|
||||
la-tourmaline.ch, 1
|
||||
laatikko.io, 1
|
||||
|
@ -15603,7 +15599,6 @@ lojaprimemed.com.br, 1
|
|||
lojaprojetoagua.com.br, 1
|
||||
lojashowdecozinha.com.br, 1
|
||||
lojaterrazul.com.br, 1
|
||||
lojavalcapelli.com.br, 1
|
||||
lojavirtualfct.com.br, 1
|
||||
lojavisamed.com.br, 1
|
||||
lojix.com, 1
|
||||
|
@ -15788,12 +15783,14 @@ luisv.me, 1
|
|||
luisyr.com, 1
|
||||
luk.earth, 1
|
||||
luk.photo, 1
|
||||
lukas-oppermann.de, 1
|
||||
lukas-schauer.de, 1
|
||||
lukas.im, 1
|
||||
lukas2511.de, 1
|
||||
lukasberan.com, 1
|
||||
lukasberan.cz, 1
|
||||
lukasfunk.com, 1
|
||||
lukasoppermann.com, 1
|
||||
lukasoppermann.de, 1
|
||||
lukasschauer.de, 1
|
||||
lukasschick.de, 1
|
||||
|
@ -15851,6 +15848,7 @@ luxuryweddingsindonesia.com, 1
|
|||
luxusnivoucher.cz, 1
|
||||
luxusnyvoucher.sk, 1
|
||||
luxvacuos.net, 1
|
||||
luxwatch.com, 1
|
||||
luzat.com, 1
|
||||
luzeshomologadas.com.br, 1
|
||||
luzfaltex.com, 1
|
||||
|
@ -16120,8 +16118,6 @@ management-companie.ro, 1
|
|||
management-ethics.com, 1
|
||||
managementboek.nl, 1
|
||||
managementfeedback.com, 1
|
||||
manageprojects.com, 0
|
||||
manager-efficacement.com, 1
|
||||
manager.linode.com, 0
|
||||
managewp.org, 1
|
||||
manatees.net, 1
|
||||
|
@ -16368,6 +16364,7 @@ masterstuff.de, 1
|
|||
mastiffingles.com.br, 1
|
||||
masto.io, 1
|
||||
mastodon.at, 1
|
||||
mastodon.blue, 0
|
||||
mastodon.co.nz, 1
|
||||
mastodon.expert, 1
|
||||
mastodon.fun, 1
|
||||
|
@ -18253,7 +18250,6 @@ nerdoutstudios.tv, 1
|
|||
nerdpol.ch, 1
|
||||
nerds-gegen-stephan.de, 1
|
||||
nerds.company, 0
|
||||
nerdtime.de, 1
|
||||
nerdydev.net, 1
|
||||
nerot.eu, 1
|
||||
nerull7.info, 1
|
||||
|
@ -18354,7 +18350,6 @@ neverwetturkey.com, 1
|
|||
nevolution.me, 1
|
||||
nevoxo.com, 1
|
||||
new-black-order.com, 1
|
||||
new-friend.org, 1
|
||||
new-ms.com, 1
|
||||
new-process.ch, 1
|
||||
new-process.com, 1
|
||||
|
@ -19366,7 +19361,6 @@ orthodontiste-geneve-docteur-rioux.com, 1
|
|||
orthotictransfers.com, 1
|
||||
ortlepp.eu, 1
|
||||
orui.com.br, 1
|
||||
orwell1984.today, 1
|
||||
orz.uno, 1
|
||||
os-chrome.ru, 1
|
||||
os-s.net, 1
|
||||
|
@ -19500,7 +19494,6 @@ p3ter.fr, 1
|
|||
p4chivtac.com, 1
|
||||
pa-w.de, 1
|
||||
paarberatung-hn.de, 1
|
||||
paavolastudio.com, 1
|
||||
paazmaya.fi, 1
|
||||
pabuzo.vn, 1
|
||||
pacco.com.br, 1
|
||||
|
@ -19958,6 +19951,7 @@ pera.gs, 1
|
|||
peraparker.cz, 1
|
||||
percolate.com, 1
|
||||
percraft.com, 1
|
||||
percy.io, 1
|
||||
perd.re, 1
|
||||
perdel.cn, 0
|
||||
perecraft.com, 1
|
||||
|
@ -20793,7 +20787,6 @@ printexpress.cloud, 1
|
|||
printf.de, 1
|
||||
printmet.com, 1
|
||||
prior-it.be, 1
|
||||
priorite-education.com, 1
|
||||
priorityelectric.net, 1
|
||||
prioritynissannewportnewsparts.com, 1
|
||||
prism-communication.com, 1
|
||||
|
@ -22879,6 +22872,7 @@ scoolcode.com, 1
|
|||
scooterservis.com, 1
|
||||
scootfleet.com, 1
|
||||
scopea.fr, 1
|
||||
score-savers.com, 1
|
||||
scorobudem.ru, 1
|
||||
scorocode.ru, 1
|
||||
scorp13.com, 1
|
||||
|
@ -23331,6 +23325,7 @@ shakan.ch, 1
|
|||
shaken-kyoto.jp, 1
|
||||
shaken110.com, 1
|
||||
shakepeers.org, 0
|
||||
shakes4u.com, 1
|
||||
shakespearesolutions.com.au, 0
|
||||
shakespearevet.com, 1
|
||||
shalott.org, 1
|
||||
|
@ -23873,7 +23868,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
|
||||
|
@ -23928,7 +23922,6 @@ smalldogbreeds.net, 1
|
|||
smallhadroncollider.com, 1
|
||||
smallpath.me, 1
|
||||
smallplanet.ch, 1
|
||||
smallshopit.com, 1
|
||||
smalltalkconsulting.com, 1
|
||||
smares.de, 1
|
||||
smart-cp.jp, 1
|
||||
|
@ -24208,7 +24201,6 @@ sopheos.com, 0
|
|||
sopher.io, 1
|
||||
sophiaandmatt.co.uk, 1
|
||||
sophiakligys.com, 1
|
||||
soply.com, 1
|
||||
soprabalao.com.br, 1
|
||||
sor.so, 1
|
||||
sorakumo.jp, 1
|
||||
|
@ -24276,6 +24268,7 @@ southwestrda.org.uk, 1
|
|||
souvik.me, 1
|
||||
soved.eu, 1
|
||||
sowingseasons.com, 1
|
||||
sowncloud.de, 1
|
||||
soz6.com, 1
|
||||
sozai-good.com, 1
|
||||
sozialy.com, 1
|
||||
|
@ -24740,7 +24733,7 @@ stipsan.me, 1
|
|||
stirling.co, 1
|
||||
stirlingpoon.com, 1
|
||||
stitchfiddle.com, 1
|
||||
stitthappens.com, 0
|
||||
stitthappens.com, 1
|
||||
stjohnin.com, 1
|
||||
stjohnmiami.org, 1
|
||||
stjohnsc.com, 1
|
||||
|
@ -24901,7 +24894,7 @@ stylewish.me, 1
|
|||
stylle.me, 1
|
||||
styloeart.com, 1
|
||||
stypr.com, 1
|
||||
stytt.com, 0
|
||||
stytt.com, 1
|
||||
su1ph3r.io, 1
|
||||
suareforma.com, 1
|
||||
suave.io, 1
|
||||
|
@ -25106,7 +25099,6 @@ swisselement365.com, 1
|
|||
swissentreprises.ch, 1
|
||||
swissfreshaircan.ch, 1
|
||||
swissfreshaircan.com, 1
|
||||
swissid.ch, 1
|
||||
swisslinux.org, 1
|
||||
swisswebhelp.ch, 1
|
||||
swissxperts.ch, 1
|
||||
|
@ -25313,7 +25305,6 @@ tantotiempo.de, 1
|
|||
tanz.info, 1
|
||||
tanzhijun.com, 1
|
||||
taoburee.com, 1
|
||||
taotuba.net, 1
|
||||
tapestries.tk, 1
|
||||
taquilla.com, 1
|
||||
taqun.club, 1
|
||||
|
@ -25362,7 +25353,7 @@ taxlab.co.nz, 1
|
|||
taxmadras.com, 1
|
||||
taxspeaker.com, 1
|
||||
taxsquirrel.com, 1
|
||||
taylorpearson.me, 1
|
||||
taylorpearson.me, 0
|
||||
taysonvodao.fr, 1
|
||||
tazemama.biz, 1
|
||||
tazj.in, 0
|
||||
|
@ -25870,6 +25861,7 @@ thepaulagcompany.com, 1
|
|||
thepaymentscompany.com, 1
|
||||
thepb.in, 1
|
||||
thepeninsulaires.com, 1
|
||||
thephonecaseplace.com, 1
|
||||
thephp.cc, 1
|
||||
thepiabo.ovh, 1
|
||||
thepiratesociety.org, 1
|
||||
|
@ -26117,7 +26109,6 @@ timfiedler.net, 1
|
|||
timing.com.br, 1
|
||||
timmersgems.com, 1
|
||||
timmy.im, 1
|
||||
timmy.ws, 1
|
||||
timmyrs.de, 1
|
||||
timoxbrow.com, 1
|
||||
timroes.de, 1
|
||||
|
@ -26188,7 +26179,6 @@ tkn.tokyo, 1
|
|||
tkts.cl, 1
|
||||
tkusano.jp, 1
|
||||
tkw01536.de, 1
|
||||
tlach.cz, 1
|
||||
tlca.org, 1
|
||||
tlcnet.info, 1
|
||||
tlehseasyads.com, 1
|
||||
|
@ -26470,7 +26460,6 @@ touchscreentills.com, 1
|
|||
tougetu.com, 1
|
||||
touha.me, 0
|
||||
touhou.cc, 1
|
||||
toujours-actif.com, 1
|
||||
tounyou-raku.com, 1
|
||||
touray-enterprise.ch, 1
|
||||
tourismwithme.com, 1
|
||||
|
@ -27236,7 +27225,6 @@ urbanietz-immobilien.de, 1
|
|||
urbanmelbourne.info, 1
|
||||
urbannewsservice.com, 1
|
||||
urbansparrow.in, 1
|
||||
urbanstylestaging.com, 1
|
||||
urbanwildlifealliance.org, 1
|
||||
urbexdk.nl, 1
|
||||
urcentral.com, 1
|
||||
|
@ -27695,7 +27683,6 @@ vintageportgifts.co.uk, 1
|
|||
vintagetrailerbuyers.com, 1
|
||||
vintazh.net, 1
|
||||
vinticom.ch, 1
|
||||
vinyculture.com, 1
|
||||
vinzite.com, 1
|
||||
violetraven.co.uk, 1
|
||||
violin4fun.nl, 1
|
||||
|
@ -27956,6 +27943,7 @@ w4nvu.org, 1
|
|||
w7k.de, 1
|
||||
w9rld.com, 1
|
||||
wa-stromerzeuger.de, 1
|
||||
waaw.tv, 1
|
||||
wabatam.com, 1
|
||||
wabifoggynuts.com, 1
|
||||
wachter.biz, 1
|
||||
|
@ -28018,7 +28006,6 @@ wardow.com, 1
|
|||
warekon.com, 1
|
||||
warekon.dk, 1
|
||||
warenits.at, 1
|
||||
warezaddict.com, 1
|
||||
wargameexclusive.com, 1
|
||||
warlions.info, 0
|
||||
warmestwishes.ca, 1
|
||||
|
@ -28056,7 +28043,6 @@ 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
|
||||
|
@ -28442,6 +28428,8 @@ whonix.org, 1
|
|||
whoownsmyavailability.com, 1
|
||||
whoturgled.com, 1
|
||||
why-brexit.uk, 1
|
||||
whyopencomputing.ch, 1
|
||||
whyopencomputing.com, 1
|
||||
whyworldhot.com, 1
|
||||
whyy.eu.org, 1
|
||||
wiapply.com, 1
|
||||
|
@ -29517,6 +29505,7 @@ yvesx.com, 1
|
|||
yvonnehaeusser.de, 1
|
||||
ywyz.tech, 1
|
||||
yyc.city, 1
|
||||
yyyy.xyz, 1
|
||||
z-konzept-nutrition.ru, 1
|
||||
z-vector.com, 1
|
||||
z.ai, 1
|
||||
|
@ -29560,6 +29549,7 @@ zappbuildapps.com, 1
|
|||
zaratan.fr, 1
|
||||
zarmarket.org, 1
|
||||
zarpo.com.br, 1
|
||||
zary.me, 1
|
||||
zaufanatrzeciastrona.pl, 1
|
||||
zavec.com.ec, 1
|
||||
zavetaji.lv, 1
|
||||
|
|
|
@ -302,27 +302,38 @@ Service::unregisterConnection(Connection *aConnection)
|
|||
// alive. So ensure that Service is destroyed only after the Connection is
|
||||
// cleanly unregistered and destroyed.
|
||||
RefPtr<Service> kungFuDeathGrip(this);
|
||||
RefPtr<Connection> forgettingRef;
|
||||
{
|
||||
mRegistrationMutex.AssertNotCurrentThreadOwns();
|
||||
MutexAutoLock mutex(mRegistrationMutex);
|
||||
|
||||
for (uint32_t i = 0 ; i < mConnections.Length(); ++i) {
|
||||
if (mConnections[i] == aConnection) {
|
||||
nsCOMPtr<nsIThread> thread = mConnections[i]->threadOpenedOn;
|
||||
|
||||
// Ensure the connection is released on its opening thread. Note, we
|
||||
// must use .forget().take() so that we can manually cast to an
|
||||
// unambiguous nsISupports type.
|
||||
NS_ProxyRelease(
|
||||
"storage::Service::mConnections", thread, mConnections[i].forget());
|
||||
|
||||
// Because dropping the final reference can potentially result in
|
||||
// spinning a nested event loop if the connection was not properly
|
||||
// shutdown, we want to do that outside this loop so that we can finish
|
||||
// mutating the array and drop our mutex.
|
||||
forgettingRef = mConnections[i].forget();
|
||||
mConnections.RemoveElementAt(i);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
MOZ_ASSERT_UNREACHABLE("Attempt to unregister unknown storage connection!");
|
||||
}
|
||||
|
||||
MOZ_ASSERT(forgettingRef,
|
||||
"Attempt to unregister unknown storage connection!");
|
||||
|
||||
// Ensure the connection is released on its opening thread. We explicitly use
|
||||
// aAlwaysDispatch=false because at the time of writing this, LocalStorage's
|
||||
// StorageDBThread uses a hand-rolled PRThread implementation that cannot
|
||||
// handle us dispatching events at it during shutdown. However, it is
|
||||
// arguably also desirable for callers to not be aware of our connection
|
||||
// tracking mechanism. And by synchronously dropping the reference (when
|
||||
// on the correct thread), this avoids surprises for the caller and weird
|
||||
// shutdown edge cases.
|
||||
nsCOMPtr<nsIThread> thread = forgettingRef->threadOpenedOn;
|
||||
NS_ProxyRelease(
|
||||
"storage::Service::mConnections", thread, forgettingRef.forget(), false);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[
|
||||
{
|
||||
"size": 770769,
|
||||
"digest": "279faad46504a839b2891e2f35f006100b83578b54d074e43e514ea38c23e8a2407db249f60d4f87e350e7f84499aabeadf04e0203dcc8349277b0cda9eb01f0",
|
||||
"size": 1459169,
|
||||
"digest": "ccf7d7949eb055b21771e005be60fe878435814adc5397ef7078fb1988c7d17b2d5128b0f02a9c86456c648e8b43e15545872ebfb77cb4366098225fffcfd4b7",
|
||||
"algorithm": "sha512",
|
||||
"filename": "grcov-linux-standalone-x86_64.tar.bz2",
|
||||
"unpack": false
|
||||
|
|
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html
Executable file → Normal file
0
testing/web-platform/tests/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html
Executable file → Normal file
0
testing/web-platform/tests/XMLHttpRequest/send-content-type-charset.htm
Executable file → Normal file
0
testing/web-platform/tests/XMLHttpRequest/send-content-type-charset.htm
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/annotation.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/annotation.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/annotation.options.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/annotation.options.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/collection.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/collection.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/collection.options.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/collection.options.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/cors.headers
Executable file → Normal file
0
testing/web-platform/tests/annotation-protocol/files/annotations/cors.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.headers
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/simpleSourcedScript.js
Executable file → Normal file
0
testing/web-platform/tests/content-security-policy/script-src/simpleSourcedScript.js
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/backgrounds/background-position-001.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/backgrounds/background-position-001.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/backgrounds/background-position-002.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/backgrounds/background-position-002.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/backgrounds/support/ruler-h-200px-400px.png
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/backgrounds/support/ruler-h-200px-400px.png
Executable file → Normal file
До Ширина: | Высота: | Размер: 420 B После Ширина: | Высота: | Размер: 420 B |
0
testing/web-platform/tests/css/CSS2/backgrounds/support/ruler-v-100px-200px-300px.png
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/backgrounds/support/ruler-v-100px-200px-300px.png
Executable file → Normal file
До Ширина: | Высота: | Размер: 364 B После Ширина: | Высота: | Размер: 364 B |
0
testing/web-platform/tests/css/CSS2/borders/border-conflict-style-101.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/borders/border-conflict-style-101.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/borders/border-conflict-style-102.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/borders/border-conflict-style-102.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/borders/border-conflict-style-103.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/borders/border-conflict-style-103.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/borders/border-conflict-style-104.xht
Executable file → Normal file
0
testing/web-platform/tests/css/CSS2/borders/border-conflict-style-104.xht
Executable file → Normal file
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче