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

This commit is contained in:
Sebastian Hengst 2017-10-10 23:57:56 +02:00
Родитель 0875e0c11c 01cd7f3d0f
Коммит 296a098e22
66 изменённых файлов: 591 добавлений и 421 удалений

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

@ -1203,7 +1203,7 @@ set_config('DEVELOPER_OPTIONS', developer_options)
@depends(target)
def build_not_win_mac(target):
if target.kernel not in ('Darwin', 'WINNT'):
if target.kernel not in ('Darwin', 'WINNT', 'SunOS'):
return True

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

@ -439,6 +439,8 @@ nsRange::RegisterCommonAncestor(nsINode* aNode)
if (!ranges) {
ranges = MakeUnique<LinkedList<nsRange>>();
}
MOZ_DIAGNOSTIC_ASSERT(!isInList());
ranges->insertBack(this);
aNode->SetCommonAncestorForRangeInSelection();
}

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

@ -374,8 +374,8 @@ SVGContentUtils::EstablishesViewport(nsIContent *aContent)
nsGkAtoms::symbol);
}
nsSVGElement*
SVGContentUtils::GetNearestViewportElement(nsIContent *aContent)
SVGViewportElement*
SVGContentUtils::GetNearestViewportElement(const nsIContent *aContent)
{
nsIContent *element = aContent->GetFlattenedTreeParent();
@ -384,7 +384,11 @@ SVGContentUtils::GetNearestViewportElement(nsIContent *aContent)
if (element->IsSVGElement(nsGkAtoms::foreignObject)) {
return nullptr;
}
return static_cast<nsSVGElement*>(element);
MOZ_ASSERT(element->IsAnyOfSVGElements(nsGkAtoms::svg,
nsGkAtoms::symbol),
"upcoming static_cast is only valid for "
"SVGViewportElement subclasses");
return static_cast<SVGViewportElement*>(element);
}
element = element->GetFlattenedTreeParent();
}
@ -828,7 +832,7 @@ SVGContentUtils::CoordToFloat(nsSVGElement *aContent,
return nsPresContext::AppUnitsToFloatCSSPixels(aCoord.GetCoordValue());
case eStyleUnit_Percent: {
SVGSVGElement* ctx = aContent->GetCtx();
SVGViewportElement* ctx = aContent->GetCtx();
return ctx ? aCoord.GetPercentValue() * ctx->GetLength(SVGContentUtils::XY) : 0.0f;
}
default:

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

@ -32,6 +32,7 @@ class SVGPreserveAspectRatio;
namespace dom {
class Element;
class SVGSVGElement;
class SVGViewportElement;
} // namespace dom
} // namespace mozilla
@ -238,8 +239,8 @@ public:
*/
static bool EstablishesViewport(nsIContent *aContent);
static nsSVGElement*
GetNearestViewportElement(nsIContent *aContent);
static mozilla::dom::SVGViewportElement*
GetNearestViewportElement(const nsIContent *aContent);
/* enum for specifying coordinate direction for ObjectSpace/UserSpace */
enum ctxDirection { X, Y, XY };

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

@ -173,7 +173,7 @@ SVGLength::GetUserUnitsPerUnit(const nsSVGElement *aElement, uint8_t aAxis) cons
SVGLength::GetUserUnitsPerPercent(const nsSVGElement *aElement, uint8_t aAxis)
{
if (aElement) {
dom::SVGSVGElement *viewportElement = aElement->GetCtx();
dom::SVGViewportElement *viewportElement = aElement->GetCtx();
if (viewportElement) {
return std::max(viewportElement->GetLength(aAxis) / 100.0f, 0.0f);
}

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

@ -250,7 +250,7 @@ SVGMarkerElement::UnsetAttr(int32_t aNamespaceID, nsAtom* aName,
// nsSVGElement methods
void
SVGMarkerElement::SetParentCoordCtxProvider(SVGSVGElement *aContext)
SVGMarkerElement::SetParentCoordCtxProvider(SVGViewportElement *aContext)
{
mCoordCtx = aContext;
mViewBoxToViewportTransform = nullptr;

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

@ -153,7 +153,7 @@ protected:
const nsAString& aValue,
nsAttrValue& aResult) override;
void SetParentCoordCtxProvider(SVGSVGElement *aContext);
void SetParentCoordCtxProvider(SVGViewportElement *aContext);
virtual LengthAttributesInfo GetLengthInfo() override;
virtual AngleAttributesInfo GetAngleInfo() override;
@ -180,7 +180,7 @@ protected:
// derived properties (from 'orient') handled separately
nsSVGOrientType mOrientType;
SVGSVGElement *mCoordCtx;
SVGViewportElement* mCoordCtx;
nsAutoPtr<gfx::Matrix> mViewBoxToViewportTransform;
};

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

@ -182,15 +182,6 @@ public:
// SVG-as-an-image documents.)
virtual void FlushImageTransformInvalidation();
svgFloatSize GetViewportSize() const {
return svgFloatSize(mViewportWidth, mViewportHeight);
}
void SetViewportSize(const svgFloatSize& aSize) {
mViewportWidth = aSize.width;
mViewportHeight = aSize.height;
}
private:
// SVGViewportElement methods:

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

@ -127,6 +127,15 @@ public:
gfx::Matrix GetViewBoxTransform() const;
svgFloatSize GetViewportSize() const {
return svgFloatSize(mViewportWidth, mViewportHeight);
}
void SetViewportSize(const svgFloatSize& aSize) {
mViewportWidth = aSize.width;
mViewportHeight = aSize.height;
}
// WebIDL
already_AddRefed<SVGAnimatedRect> ViewBox();
already_AddRefed<DOMSVGAnimatedPreserveAspectRatio> PreserveAspectRatio();

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

@ -1109,7 +1109,20 @@ nsSVGElement::GetOwnerSVGElement(nsIDOMSVGElement * *aOwnerSVGElement)
SVGSVGElement*
nsSVGElement::GetOwnerSVGElement()
{
return GetCtx(); // this may return nullptr
nsIContent* ancestor = GetFlattenedTreeParent();
while (ancestor && ancestor->IsSVGElement()) {
if (ancestor->IsSVGElement(nsGkAtoms::foreignObject)) {
return nullptr;
}
if (ancestor->IsSVGElement(nsGkAtoms::svg)) {
return static_cast<SVGSVGElement*>(ancestor);
}
ancestor = ancestor->GetFlattenedTreeParent();
}
// we don't have an ancestor <svg> element...
return nullptr;
}
NS_IMETHODIMP
@ -1545,23 +1558,10 @@ nsAtom* nsSVGElement::GetEventNameForAttr(nsAtom* aAttr)
return aAttr;
}
SVGSVGElement *
SVGViewportElement *
nsSVGElement::GetCtx() const
{
nsIContent* ancestor = GetFlattenedTreeParent();
while (ancestor && ancestor->IsSVGElement()) {
if (ancestor->IsSVGElement(nsGkAtoms::foreignObject)) {
return nullptr;
}
if (ancestor->IsSVGElement(nsGkAtoms::svg)) {
return static_cast<SVGSVGElement*>(ancestor);
}
ancestor = ancestor->GetFlattenedTreeParent();
}
// we don't have an ancestor <svg> element...
return nullptr;
return SVGContentUtils::GetNearestViewportElement(this);
}
/* virtual */ gfxMatrix
@ -1660,7 +1660,7 @@ nsSVGElement::GetAnimatedLengthValues(float *aFirst, ...)
NS_ASSERTION(info.mLengthCount > 0,
"GetAnimatedLengthValues on element with no length attribs");
SVGSVGElement *ctx = nullptr;
SVGViewportElement *ctx = nullptr;
float *f = aFirst;
uint32_t i = 0;

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

@ -44,6 +44,7 @@ class DeclarationBlock;
namespace dom {
class SVGSVGElement;
class SVGViewportElement;
static const unsigned short SVG_UNIT_TYPE_UNKNOWN = 0;
static const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE = 1;
@ -145,7 +146,7 @@ public:
// Gets the element that establishes the rectangular viewport against which
// we should resolve percentage lengths (our "coordinate context"). Returns
// nullptr for outer <svg> or SVG without an <svg> parent (invalid SVG).
mozilla::dom::SVGSVGElement* GetCtx() const;
mozilla::dom::SVGViewportElement* GetCtx() const;
/**
* Returns aMatrix pre-multiplied by (explicit or implicit) transforms that

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

@ -3805,7 +3805,6 @@ HTMLEditRules::WillCSSIndent(Selection* aSelection,
// Ok, now go through all the nodes and put them in a blockquote,
// or whatever is appropriate. Wohoo!
nsCOMPtr<nsINode> curParent;
nsCOMPtr<Element> curList, curQuote;
nsCOMPtr<nsIContent> sibling;
int32_t listCount = arrayOfNodes.Length();
@ -3820,8 +3819,12 @@ HTMLEditRules::WillCSSIndent(Selection* aSelection,
continue;
}
curParent = curNode->GetParentNode();
int32_t offset = curParent ? curParent->IndexOf(curNode) : -1;
int32_t offset;
nsCOMPtr<nsINode> curParent =
EditorBase::GetNodeLocation(curNode, &offset);
if (!curParent) {
continue;
}
// some logic for putting list items into nested lists...
if (HTMLEditUtils::IsList(curParent)) {
@ -3992,7 +3995,6 @@ HTMLEditRules::WillHTMLIndent(Selection* aSelection,
// Ok, now go through all the nodes and put them in a blockquote,
// or whatever is appropriate. Wohoo!
nsCOMPtr<nsINode> curParent;
nsCOMPtr<nsIContent> sibling;
nsCOMPtr<Element> curList, curQuote, indentedLI;
int32_t listCount = arrayOfNodes.Length();
@ -4007,8 +4009,11 @@ HTMLEditRules::WillHTMLIndent(Selection* aSelection,
continue;
}
curParent = curNode->GetParentNode();
int32_t offset = curParent ? curParent->IndexOf(curNode) : -1;
int32_t offset;
nsCOMPtr<nsINode> curParent = EditorBase::GetNodeLocation(curNode, &offset);
if (!curParent) {
continue;
}
// some logic for putting list items into nested lists...
if (HTMLEditUtils::IsList(curParent)) {
@ -4798,8 +4803,11 @@ HTMLEditRules::WillAlign(Selection& aSelection,
continue;
}
nsCOMPtr<nsINode> curParent = curNode->GetParentNode();
int32_t offset = curParent ? curParent->IndexOf(curNode) : -1;
int32_t offset;
nsCOMPtr<nsINode> curParent = EditorBase::GetNodeLocation(curNode, &offset);
if (!curParent) {
continue;
}
// Skip insignificant formatting text nodes to prevent unnecessary
// structure splitting!
@ -8788,8 +8796,11 @@ HTMLEditRules::WillAbsolutePosition(Selection& aSelection,
nsCOMPtr<nsIContent> sibling;
nsCOMPtr<nsINode> curParent = curNode->GetParentNode();
int32_t offset = curParent ? curParent->IndexOf(curNode) : -1;
int32_t offset;
nsCOMPtr<nsINode> curParent = EditorBase::GetNodeLocation(curNode, &offset);
if (!curParent) {
continue;
}
// Some logic for putting list items into nested lists...
if (HTMLEditUtils::IsList(curParent)) {

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

@ -0,0 +1,31 @@
<script>
function jsfuzzer() {
var option = document.getElementById("option");
option.addEventListener("click", () => {
document.execCommand("forwardDelete", false);
});
var li2 = document.getElementById("li2");
li2.addEventListener("DOMNodeInserted", () => {
option.click();
});
var select = document.getElementById("select");
select.parentElement.setAttribute("onpageshow", "onPageShow()");
}
function onPageShow() {
var li1 = document.getElementById("li1");
li1.addEventListener("DOMSubtreeModified", () => {
document.execCommand("selectAll", false);
document.execCommand("indent", false);
});
li1.appendChild(document.createElement("legend"));
}
</script>
<body onload=jsfuzzer()>
<select id="select">
<option id="option"></option>
</select>
<li id="li1"></li>
<ul contenteditable="true">
<li id="li2"></li>
<embed>a;#2

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

@ -0,0 +1,15 @@
<script>
function jsfuzzer() {
try { htmlvar00017.addEventListener("DOMSubtreeModified", eventhandler5); } catch(e) { }
try { htmlvar00017.align = ""; } catch(e) { }
}
function eventhandler5() {
try { document.execCommand("selectAll", false); } catch(e) { }
try { document.execCommand("justifyCenter", false); } catch(e) { }
try { document.execCommand("forwardDelete", false); } catch(e) { }
}
</script>
<body onload=jsfuzzer()>
<table contenteditable="">
<th id="htmlvar00017"></th>
<colgroup>

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

@ -81,3 +81,5 @@ load 1375131.html
load 1381541.html
load 1383755.html
load 1402469.html
load 1402904.html
load 1405747.html

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

@ -128,6 +128,7 @@ D3D11ShareHandleImage::GetAsSourceSurface()
RefPtr<ID3D11DeviceContext> context;
device->GetImmediateContext(getter_AddRefs(context));
if (!context) {
gfxCriticalError() << "Failed to get immediate context.";
return nullptr;
}

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

@ -73,6 +73,10 @@ D3D11YCbCrImage::SetData(KnowsCompositor* aAllocator,
RefPtr<ID3D11DeviceContext> ctx;
allocator->GetDevice()->GetImmediateContext(getter_AddRefs(ctx));
if (!ctx) {
gfxCriticalError() << "Failed to get immediate context.";
return false;
}
AutoLockD3D11Texture lockY(textureY);
AutoLockD3D11Texture lockCb(textureCb);
@ -189,6 +193,10 @@ D3D11YCbCrImage::GetAsSourceSurface()
RefPtr<ID3D11DeviceContext> ctx;
dev->GetImmediateContext(getter_AddRefs(ctx));
if (!ctx) {
gfxCriticalError() << "Failed to get immediate context.";
return nullptr;
}
{
AutoLockD3D11Texture lockY(texY);

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

@ -67,6 +67,7 @@ enum ThreadType {
THREAD_TYPE_PROMISE_TASK, // 8
THREAD_TYPE_ION_FREE, // 9
THREAD_TYPE_WASM_TIER2, // 10
THREAD_TYPE_WORKER, // 11
THREAD_TYPE_MAX // Used to check shell function arguments
};

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

@ -1443,6 +1443,17 @@ OOMThreadTypes(JSContext* cx, unsigned argc, Value* vp)
return true;
}
static bool
CheckCanSimulateOOM(JSContext* cx)
{
if (js::oom::GetThreadType() != js::THREAD_TYPE_COOPERATING) {
JS_ReportErrorASCII(cx, "Simulated OOM failure is only supported on the main thread");
return false;
}
return true;
}
static bool
SetupOOMFailure(JSContext* cx, bool failAlways, unsigned argc, Value* vp)
{
@ -1481,6 +1492,9 @@ SetupOOMFailure(JSContext* cx, bool failAlways, unsigned argc, Value* vp)
return false;
}
if (!CheckCanSimulateOOM(cx))
return false;
js::oom::SimulateOOMAfter(count, targetThread, failAlways);
args.rval().setUndefined();
return true;
@ -1502,6 +1516,10 @@ static bool
ResetOOMFailure(JSContext* cx, unsigned argc, Value* vp)
{
CallArgs args = CallArgsFromVp(argc, vp);
if (!CheckCanSimulateOOM(cx))
return false;
args.rval().setBoolean(js::oom::HadSimulatedOOM());
js::oom::ResetSimulatedOOM();
return true;
@ -1537,6 +1555,9 @@ OOMTest(JSContext* cx, unsigned argc, Value* vp)
return false;
}
if (!CheckCanSimulateOOM(cx))
return false;
bool expectExceptionOnFailure = true;
if (args.length() == 2)
expectExceptionOnFailure = args[1].toBoolean();
@ -4241,10 +4262,8 @@ SetRNGState(JSContext* cx, unsigned argc, Value* vp)
#endif
static ModuleEnvironmentObject*
GetModuleEnvironment(JSContext* cx, HandleValue moduleValue)
GetModuleEnvironment(JSContext* cx, HandleModuleObject module)
{
RootedModuleObject module(cx, &moduleValue.toObject().as<ModuleObject>());
// Use the initial environment so that tests can check bindings exists
// before they have been instantiated.
RootedModuleEnvironmentObject env(cx, &module->initialEnvironment());
@ -4268,7 +4287,13 @@ GetModuleEnvironmentNames(JSContext* cx, unsigned argc, Value* vp)
return false;
}
RootedModuleEnvironmentObject env(cx, GetModuleEnvironment(cx, args[0]));
RootedModuleObject module(cx, &args[0].toObject().as<ModuleObject>());
if (module->status() == MODULE_STATUS_ERRORED) {
JS_ReportErrorASCII(cx, "Module environment unavailable");
return false;
}
RootedModuleEnvironmentObject env(cx, GetModuleEnvironment(cx, module));
Rooted<IdVector> ids(cx, IdVector(cx));
if (!JS_Enumerate(cx, env, &ids))
return false;
@ -4305,7 +4330,13 @@ GetModuleEnvironmentValue(JSContext* cx, unsigned argc, Value* vp)
return false;
}
RootedModuleEnvironmentObject env(cx, GetModuleEnvironment(cx, args[0]));
RootedModuleObject module(cx, &args[0].toObject().as<ModuleObject>());
if (module->status() == MODULE_STATUS_ERRORED) {
JS_ReportErrorASCII(cx, "Module environment unavailable");
return false;
}
RootedModuleEnvironmentObject env(cx, GetModuleEnvironment(cx, module));
RootedString name(cx, args[1].toString());
RootedId id(cx);
if (!JS_StringToId(cx, name, &id))

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

@ -933,8 +933,9 @@ class GCRuntime
const ChunkPool& availableChunks(const AutoLockGC& lock) const { return availableChunks_.ref(); }
const ChunkPool& emptyChunks(const AutoLockGC& lock) const { return emptyChunks_.ref(); }
typedef ChainedIter<Chunk*, ChunkPool::Iter, ChunkPool::Iter> NonEmptyChunksIter;
NonEmptyChunksIter allNonEmptyChunks() {
return NonEmptyChunksIter(ChunkPool::Iter(availableChunks_.ref()), ChunkPool::Iter(fullChunks_.ref()));
NonEmptyChunksIter allNonEmptyChunks(const AutoLockGC& lock) {
return NonEmptyChunksIter(ChunkPool::Iter(availableChunks(lock)),
ChunkPool::Iter(fullChunks(lock)));
}
Chunk* getOrAllocChunk(const AutoLockGC& lock,
@ -1186,11 +1187,11 @@ class GCRuntime
// to the fullChunks pool. During a GC, if all arenas are free, the chunk
// is moved back to the emptyChunks pool and scheduled for eventual
// release.
UnprotectedData<ChunkPool> availableChunks_;
GCLockData<ChunkPool> availableChunks_;
// When all arenas in a chunk are used, it is moved to the fullChunks pool
// so as to reduce the cost of operations on the available lists.
UnprotectedData<ChunkPool> fullChunks_;
GCLockData<ChunkPool> fullChunks_;
ActiveThreadData<RootedValueMap> rootsHash;

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

@ -75,8 +75,9 @@ void
js::IterateChunks(JSContext* cx, void* data, IterateChunkCallback chunkCallback)
{
AutoPrepareForTracing prep(cx, SkipAtoms);
AutoLockGC lock(cx->runtime());
for (auto chunk = cx->runtime()->gc.allNonEmptyChunks(); !chunk.done(); chunk.next())
for (auto chunk = cx->runtime()->gc.allNonEmptyChunks(lock); !chunk.done(); chunk.next())
chunkCallback(cx->runtime(), data, chunk);
}

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

@ -194,10 +194,14 @@ gc::GCRuntime::startVerifyPreBarriers()
if (!trc)
return;
AutoPrepareForTracing prep(TlsContext.get(), WithAtoms);
JSContext* cx = TlsContext.get();
AutoPrepareForTracing prep(cx, WithAtoms);
for (auto chunk = allNonEmptyChunks(); !chunk.done(); chunk.next())
chunk->bitmap.clear();
{
AutoLockGC lock(cx->runtime());
for (auto chunk = allNonEmptyChunks(lock); !chunk.done(); chunk.next())
chunk->bitmap.clear();
}
gcstats::AutoPhase ap(stats(), gcstats::PhaseKind::TRACE_HEAP);

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

@ -0,0 +1,5 @@
// |jit-test| error: Error
let m = parseModule(`for (var x of iterator) {}`);
m.declarationInstantiation();
try { m.evaluation(); } catch (e) {}
getModuleEnvironmentValue(m, "r");

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

@ -394,13 +394,13 @@ struct BaselineStackBuilder
BufferPointer<RectifierFrameLayout> priorFrame =
pointerAtStackOffset<RectifierFrameLayout>(priorOffset);
FrameType priorType = priorFrame->prevType();
MOZ_ASSERT(priorType == JitFrame_WasmToJSJit ||
MOZ_ASSERT(JSJitFrameIter::isEntry(priorType) ||
priorType == JitFrame_IonJS ||
priorType == JitFrame_BaselineStub);
// If the frame preceding the rectifier is an IonJS or WasmToJSJit
// entry frame, then once again the frame pointer does not matter.
if (priorType == JitFrame_IonJS || priorType == JitFrame_WasmToJSJit)
// If the frame preceding the rectifier is an IonJS or entry frame,
// then once again the frame pointer does not matter.
if (priorType == JitFrame_IonJS || JSJitFrameIter::isEntry(priorType))
return nullptr;
// Otherwise, the frame preceding the rectifier is a BaselineStub frame.

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

@ -193,9 +193,7 @@ jit::EnterBaselineMethod(JSContext* cx, RunState& state)
EnterJitData data(cx);
data.jitcode = baseline->method()->raw();
Rooted<GCVector<Value>> vals(cx, GCVector<Value>(cx));
if (!SetEnterJitData(cx, data, state, &vals))
return JitExec_Error;
SetEnterJitData(cx, data, state);
JitExecStatus status = EnterBaseline(cx, data);
if (status != JitExec_Ok)

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

@ -2806,9 +2806,8 @@ EnterIon(JSContext* cx, EnterJitData& data)
return data.result.isMagic() ? JitExec_Error : JitExec_Ok;
}
bool
jit::SetEnterJitData(JSContext* cx, EnterJitData& data, RunState& state,
MutableHandle<GCVector<Value>> vals)
void
jit::SetEnterJitData(JSContext* cx, EnterJitData& data, RunState& state)
{
data.osrFrame = nullptr;
@ -2819,58 +2818,30 @@ jit::SetEnterJitData(JSContext* cx, EnterJitData& data, RunState& state,
unsigned numFormals = state.script()->functionNonDelazifying()->nargs();
data.constructing = state.asInvoke()->constructing();
data.numActualArgs = args.length();
data.maxArgc = Max(args.length(), numFormals) + 1;
data.maxArgc = args.length() + 1;
data.maxArgv = args.array() - 1; // -1 to include |this|
data.envChain = nullptr;
data.calleeToken = CalleeToToken(&args.callee().as<JSFunction>(), data.constructing);
if (data.numActualArgs >= numFormals) {
data.maxArgv = args.array() - 1; // -1 to include |this|
} else {
MOZ_ASSERT(vals.empty());
unsigned numPushedArgs = Max(args.length(), numFormals);
if (!vals.reserve(numPushedArgs + 1 + data.constructing))
return false;
// Append |this| and any provided arguments.
for (size_t i = 1; i < args.length() + 2; ++i)
vals.infallibleAppend(args.base()[i]);
// Pad missing arguments with |undefined|.
while (vals.length() < numFormals + 1)
vals.infallibleAppend(UndefinedValue());
if (data.constructing)
vals.infallibleAppend(args.newTarget());
MOZ_ASSERT(vals.length() >= numFormals + 1 + data.constructing);
data.maxArgv = vals.begin();
}
if (numFormals > data.numActualArgs)
data.jitcode = cx->runtime()->jitRuntime()->getArgumentsRectifier()->raw();
} else {
data.constructing = false;
data.numActualArgs = 0;
data.maxArgc = 0;
data.maxArgv = nullptr;
data.envChain = state.asExecute()->environmentChain();
data.calleeToken = CalleeToToken(state.script());
if (state.script()->isForEval() && state.script()->isDirectEvalInFunction()) {
// Push newTarget onto the stack.
if (!vals.reserve(1))
return false;
data.maxArgc = 1;
data.maxArgv = vals.begin();
if (state.script()->isDirectEvalInFunction()) {
if (state.asExecute()->newTarget().isNull()) {
ScriptFrameIter iter(cx);
vals.infallibleAppend(iter.newTarget());
} else {
vals.infallibleAppend(state.asExecute()->newTarget());
state.asExecute()->setNewTarget(iter.newTarget());
}
data.maxArgc = 1;
data.maxArgv = state.asExecute()->addressOfNewTarget();
} else {
data.maxArgc = 0;
data.maxArgv = nullptr;
}
}
return true;
}
JitExecStatus
@ -2881,9 +2852,7 @@ jit::IonCannon(JSContext* cx, RunState& state)
EnterJitData data(cx);
data.jitcode = ion->method()->raw();
Rooted<GCVector<Value>> vals(cx, GCVector<Value>(cx));
if (!SetEnterJitData(cx, data, state, &vals))
return JitExec_Error;
SetEnterJitData(cx, data, state);
JitExecStatus status = EnterIon(cx, data);

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

@ -125,8 +125,7 @@ IsErrorStatus(JitExecStatus status)
struct EnterJitData;
MOZ_MUST_USE bool SetEnterJitData(JSContext* cx, EnterJitData& data, RunState& state,
MutableHandle<GCVector<Value>> vals);
void SetEnterJitData(JSContext* cx, EnterJitData& data, RunState& state);
JitExecStatus IonCannon(JSContext* cx, RunState& state);

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

@ -654,6 +654,16 @@ JSJitProfilingFrameIterator::moveToWasmFrame(CommonFrameLayout* frame)
MOZ_ASSERT(!done());
}
void
JSJitProfilingFrameIterator::moveToCppEntryFrame()
{
// No previous frame, set to nullptr to indicate that
// JSJitProfilingFrameIterator is done().
returnAddressToFp_ = nullptr;
fp_ = nullptr;
type_ = JitFrame_CppToJSJit;
}
void
JSJitProfilingFrameIterator::moveToNextFrame(CommonFrameLayout* frame)
{
@ -679,6 +689,8 @@ JSJitProfilingFrameIterator::moveToNextFrame(CommonFrameLayout* frame)
* | ^--- Baseline Stub <---- Baseline
* | |
* | ^--- WasmToJSJit <--- (other wasm frames)
* | |
* | ^--- CppToJSJit
* |
* ^--- Entry Frame (From C++)
* Exit Frame (From previous JitActivation)
@ -744,6 +756,11 @@ JSJitProfilingFrameIterator::moveToNextFrame(CommonFrameLayout* frame)
return;
}
if (rectPrevType == JitFrame_CppToJSJit) {
moveToCppEntryFrame();
return;
}
MOZ_CRASH("Bad frame type prior to rectifier frame.");
}
@ -765,11 +782,7 @@ JSJitProfilingFrameIterator::moveToNextFrame(CommonFrameLayout* frame)
}
if (prevType == JitFrame_CppToJSJit) {
// No previous frame, set to null to indicate that
// JSJitProfilingFrameIterator is done().
returnAddressToFp_ = nullptr;
fp_ = nullptr;
type_ = JitFrame_CppToJSJit;
moveToCppEntryFrame();
return;
}

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

@ -297,6 +297,7 @@ class JSJitProfilingFrameIterator
bool forLastCallSite);
void fixBaselineReturnAddress();
void moveToCppEntryFrame();
void moveToWasmFrame(CommonFrameLayout* frame);
void moveToNextFrame(CommonFrameLayout* frame);

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

@ -1664,6 +1664,7 @@ MacroAssembler::assertRectifierFrameParentType(Register frameType)
branch32(Assembler::Equal, frameType, Imm32(JitFrame_IonJS), &checkOk);
branch32(Assembler::Equal, frameType, Imm32(JitFrame_BaselineStub), &checkOk);
branch32(Assembler::Equal, frameType, Imm32(JitFrame_WasmToJSJit), &checkOk);
branch32(Assembler::Equal, frameType, Imm32(JitFrame_CppToJSJit), &checkOk);
assumeUnreachable("Unrecognized frame type preceding RectifierFrame.");
bind(&checkOk);
}

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

@ -135,7 +135,8 @@ Register::AllocatableAsIndexableSet<RegTypeName::GPR>(SetType set)
return set;
}
#if defined(JS_NUNBOX32)
#if JS_BITS_PER_WORD == 32
// Note, some platform code depends on INT64LOW_OFFSET being zero.
static const uint32_t INT64LOW_OFFSET = 0 * sizeof(int32_t);
static const uint32_t INT64HIGH_OFFSET = 1 * sizeof(int32_t);
#endif

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

@ -1008,9 +1008,8 @@ class MacroAssemblerARMCompat : public MacroAssemblerARM
void load32(const BaseIndex& address, Register dest);
void load32(AbsoluteAddress address, Register dest);
void load64(const Address& address, Register64 dest) {
load32(Address(address.base, address.offset + INT64LOW_OFFSET), dest.low);
int32_t highOffset = (address.offset < 0) ? -int32_t(INT64HIGH_OFFSET) : INT64HIGH_OFFSET;
load32(Address(address.base, address.offset + highOffset), dest.high);
load32(LowWord(address), dest.low);
load32(HighWord(address), dest.high);
}
void loadPtr(const Address& address, Register dest);
@ -1080,13 +1079,13 @@ class MacroAssemblerARMCompat : public MacroAssemblerARM
void store32(Imm32 src, const BaseIndex& address);
void store64(Register64 src, Address address) {
store32(src.low, Address(address.base, address.offset + INT64LOW_OFFSET));
store32(src.high, Address(address.base, address.offset + INT64HIGH_OFFSET));
store32(src.low, LowWord(address));
store32(src.high, HighWord(address));
}
void store64(Imm64 imm, Address address) {
store32(imm.low(), Address(address.base, address.offset + INT64LOW_OFFSET));
store32(imm.hi(), Address(address.base, address.offset + INT64HIGH_OFFSET));
store32(imm.low(), LowWord(address));
store32(imm.hi(), HighWord(address));
}
void storePtr(ImmWord imm, const Address& address);

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

@ -1287,10 +1287,10 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
//
// JitFrame_Rectifier
//
// The rectifier frame can be preceded by either an IonJS, a WasmToJSJit or
// a BaselineStub frame.
// The rectifier frame can be preceded by either an IonJS, a BaselineStub,
// or a CppToJSJit/WasmToJSJit frame.
//
// Stack layout if caller of rectifier was Ion or WasmToJSJit:
// Stack layout if caller of rectifier was Ion or CppToJSJit/WasmToJSJit:
//
// Ion-Descriptor
// Ion-ReturnAddr
@ -1354,8 +1354,8 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
masm.bind(&notIonFrame);
// Check for either BaselineStub or WasmToJSJit: since WasmToJSJit is
// just an entry, jump there if we see it.
// Check for either BaselineStub or a CppToJSJit/WasmToJSJit entry
// frame.
masm.branch32(Assembler::NotEqual, scratch3, Imm32(JitFrame_BaselineStub), &handle_Entry);
// Handle Rectifier <- BaselineStub <- BaselineJS

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

@ -1079,10 +1079,10 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
//
// JitFrame_Rectifier
//
// The rectifier frame can be preceded by either an IonJS or a
// BaselineStub frame.
// The rectifier frame can be preceded by either an IonJS, a BaselineStub,
// or a CppToJSJit/WasmToJSJit frame.
//
// Stack layout if caller of rectifier was Ion:
// Stack layout if caller of rectifier was Ion or CppToJSJit/WasmToJSJit:
//
// Ion-Descriptor
// Ion-ReturnAddr
@ -1119,7 +1119,7 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
// scratch2 := StackPointer + Descriptor.size*1 + JitFrameLayout::Size();
masm.addPtr(masm.getStackPointer(), scratch1, scratch2);
masm.syncStackPtr();
masm.add32(Imm32(JitFrameLayout::Size()), scratch2);
masm.addPtr(Imm32(JitFrameLayout::Size()), scratch2);
masm.loadPtr(Address(scratch2, RectifierFrameLayout::offsetOfDescriptor()), scratch3);
masm.rshiftPtr(Imm32(FRAMESIZE_SHIFT), scratch3, scratch1);
masm.and32(Imm32((1 << FRAMETYPE_BITS) - 1), scratch3);
@ -1147,8 +1147,8 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
masm.bind(&notIonFrame);
// Check for either BaselineStub or WasmToJSJit: since WasmToJSJit is
// just an entry, jump there if we see it.
// Check for either BaselineStub or a CppToJSJit/WasmToJSJit entry
// frame.
masm.branch32(Assembler::NotEqual, scratch3, Imm32(JitFrame_BaselineStub), &handle_Entry);
// Handle Rectifier <- BaselineStub <- BaselineJS

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

@ -858,9 +858,8 @@ class MacroAssemblerMIPSCompat : public MacroAssemblerMIPS
void load32(AbsoluteAddress address, Register dest);
void load32(wasm::SymbolicAddress address, Register dest);
void load64(const Address& address, Register64 dest) {
load32(Address(address.base, address.offset + INT64LOW_OFFSET), dest.low);
int32_t highOffset = (address.offset < 0) ? -int32_t(INT64HIGH_OFFSET) : INT64HIGH_OFFSET;
load32(Address(address.base, address.offset + highOffset), dest.high);
load32(LowWord(address), dest.low);
load32(HighWord(address), dest.high);
}
void loadPtr(const Address& address, Register dest);

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

@ -1266,10 +1266,10 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
//
// JitFrame_Rectifier
//
// The rectifier frame can be preceded by either an IonJS, a WasmToJSJit or
// a BaselineStub frame.
// The rectifier frame can be preceded by either an IonJS, a BaselineStub,
// or a CppToJSJit/WasmToJSJit frame.
//
// Stack layout if caller of rectifier was Ion or WasmToJSJit:
// Stack layout if caller of rectifier was Ion or CppToJSJit/WasmToJSJit:
//
// Ion-Descriptor
// Ion-ReturnAddr
@ -1333,8 +1333,8 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
masm.bind(&notIonFrame);
// Check for either BaselineStub or WasmToJSJit: since WasmToJSJit is
// just an entry, jump there if we see it.
// Check for either BaselineStub or a CppToJSJit/WasmToJSJit entry
// frame.
masm.branch32(Assembler::NotEqual, scratch3, Imm32(JitFrame_BaselineStub), &handle_Entry);
// Handle Rectifier <- BaselineStub <- BaselineJS

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

@ -1207,10 +1207,10 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
//
// JitFrame_Rectifier
//
// The rectifier frame can be preceded by either an IonJS, a WasmToJSJit or
// a BaselineStub frame.
// The rectifier frame can be preceded by either an IonJS, a BaselineStub,
// or a CppToJSJit/WasmToJSJit frame.
//
// Stack layout if caller of rectifier was Ion or WasmToJSJit:
// Stack layout if caller of rectifier was Ion or CppToJSJit/WasmToJSJit:
//
// Ion-Descriptor
// Ion-ReturnAddr
@ -1274,8 +1274,8 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
masm.bind(&notIonFrame);
// Check for either BaselineStub or WasmToJSJit: since WasmToJSJit is
// just an entry, jump there if we see it.
// Check for either BaselineStub or a CppToJSJit/WasmToJSJit entry
// frame.
masm.branch32(Assembler::NotEqual, scratch3, Imm32(JitFrame_BaselineStub), &handle_Entry);
// Handle Rectifier <- BaselineStub <- BaselineJS

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

@ -7,6 +7,7 @@
#ifndef jit_shared_Assembler_shared_h
#define jit_shared_Assembler_shared_h
#include "mozilla/CheckedInt.h"
#include "mozilla/PodOperations.h"
#include <limits.h>
@ -34,6 +35,8 @@
namespace js {
namespace jit {
using mozilla::CheckedInt;
namespace Disassembler {
class HeapAccess;
} // namespace Disassembler
@ -298,6 +301,24 @@ struct Address
Address() { mozilla::PodZero(this); }
};
#if JS_BITS_PER_WORD == 32
static inline Address
LowWord(const Address& address) {
CheckedInt<int32_t> offset = CheckedInt<int32_t>(address.offset) + INT64LOW_OFFSET;
MOZ_ALWAYS_TRUE(offset.isValid());
return Address(address.base, offset.value());
}
static inline Address
HighWord(const Address& address) {
CheckedInt<int32_t> offset = CheckedInt<int32_t>(address.offset) + INT64HIGH_OFFSET;
MOZ_ALWAYS_TRUE(offset.isValid());
return Address(address.base, offset.value());
}
#endif
// Specifies an address computed in the form of a register base, a register
// index with a scale, and a constant, 32-bit offset.
struct BaseIndex
@ -314,6 +335,24 @@ struct BaseIndex
BaseIndex() { mozilla::PodZero(this); }
};
#if JS_BITS_PER_WORD == 32
static inline BaseIndex
LowWord(const BaseIndex& address) {
CheckedInt<int32_t> offset = CheckedInt<int32_t>(address.offset) + INT64LOW_OFFSET;
MOZ_ALWAYS_TRUE(offset.isValid());
return BaseIndex(address.base, address.index, address.scale, offset.value());
}
static inline BaseIndex
HighWord(const BaseIndex& address) {
CheckedInt<int32_t> offset = CheckedInt<int32_t>(address.offset) + INT64HIGH_OFFSET;
MOZ_ALWAYS_TRUE(offset.isValid());
return BaseIndex(address.base, address.index, address.scale, offset.value());
}
#endif
// A BaseIndex used to access Values. Note that |offset| is *not* scaled by
// sizeof(Value). Use this *only* if you're indexing into a series of Values
// that aren't object elements or object slots (for example, values on the

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

@ -1180,10 +1180,10 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
//
// JitFrame_Rectifier
//
// The rectifier frame can be preceded by either an IonJS, a WasmToJSJit or
// a BaselineStub frame.
// The rectifier frame can be preceded by either an IonJS, a BaselineStub,
// or a CppToJSJit/WasmToJSJit frame.
//
// Stack layout if caller of rectifier was Ion or WasmToJSJit:
// Stack layout if caller of rectifier was Ion or CppToJSJit/WasmToJSJit:
//
// Ion-Descriptor
// Ion-ReturnAddr
@ -1246,8 +1246,8 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
masm.bind(&notIonFrame);
// Check for either BaselineStub or WasmToJSJit: since WasmToJSJit is
// just an entry, jump there if we see it.
// Check for either BaselineStub or a CppToJSJit/WasmToJSJit entry
// frame.
masm.branch32(Assembler::NotEqual, scratch3, Imm32(JitFrame_BaselineStub), &handle_Entry);
// Handle Rectifier <- BaselineStub <- BaselineJS

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

@ -208,6 +208,24 @@ PatchBackedge(CodeLocationJump& jump_, CodeLocationLabel label, JitZoneGroup::Ba
PatchJump(jump_, label);
}
static inline Operand
LowWord(const Operand& op) {
switch (op.kind()) {
case Operand::MEM_REG_DISP: return Operand(LowWord(op.toAddress()));
case Operand::MEM_SCALE: return Operand(LowWord(op.toBaseIndex()));
default: MOZ_CRASH("Invalid operand type");
}
}
static inline Operand
HighWord(const Operand& op) {
switch (op.kind()) {
case Operand::MEM_REG_DISP: return Operand(HighWord(op.toAddress()));
case Operand::MEM_SCALE: return Operand(HighWord(op.toBaseIndex()));
default: MOZ_CRASH("Invalid operand type");
}
}
// Return operand from a JS -> JS call.
static const ValueOperand JSReturnOperand = ValueOperand(JSReturnReg_Type, JSReturnReg_Data);
@ -768,9 +786,7 @@ class Assembler : public AssemblerX86Shared
CodeOffset movlWithPatchLow(Register regLow, const Operand& dest) {
switch (dest.kind()) {
case Operand::MEM_REG_DISP: {
Address addr = dest.toAddress();
Operand low(addr.base, addr.offset + INT64LOW_OFFSET);
return movlWithPatch(regLow, low);
return movlWithPatch(regLow, LowWord(dest));
}
case Operand::MEM_ADDRESS32: {
Operand low(PatchedAbsoluteAddress(uint32_t(dest.address()) + INT64LOW_OFFSET));
@ -783,9 +799,7 @@ class Assembler : public AssemblerX86Shared
CodeOffset movlWithPatchHigh(Register regHigh, const Operand& dest) {
switch (dest.kind()) {
case Operand::MEM_REG_DISP: {
Address addr = dest.toAddress();
Operand high(addr.base, addr.offset + INT64HIGH_OFFSET);
return movlWithPatch(regHigh, high);
return movlWithPatch(regHigh, HighWord(dest));
}
case Operand::MEM_ADDRESS32: {
Operand high(PatchedAbsoluteAddress(uint32_t(dest.address()) + INT64HIGH_OFFSET));

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

@ -950,7 +950,7 @@ MacroAssembler::truncateFloat32ToUInt64(Address src, Address dest, Register temp
truncateFloat32ToInt64(src, dest, temp);
// For unsigned conversion the case of [INT64, UINT64] needs to get handle seperately.
load32(Address(dest.base, dest.offset + INT64HIGH_OFFSET), temp);
load32(HighWord(dest), temp);
branch32(Assembler::Condition::NotSigned, temp, Imm32(0), &done);
// Move the value inside INT64 range.
@ -960,9 +960,9 @@ MacroAssembler::truncateFloat32ToUInt64(Address src, Address dest, Register temp
storeFloat32(floatTemp, dest);
truncateFloat32ToInt64(dest, dest, temp);
load32(Address(dest.base, dest.offset + INT64HIGH_OFFSET), temp);
load32(HighWord(dest), temp);
orl(Imm32(0x80000000), temp);
store32(temp, Address(dest.base, dest.offset + INT64HIGH_OFFSET));
store32(temp, HighWord(dest));
bind(&done);
}
@ -978,7 +978,7 @@ MacroAssembler::truncateDoubleToUInt64(Address src, Address dest, Register temp,
truncateDoubleToInt64(src, dest, temp);
// For unsigned conversion the case of [INT64, UINT64] needs to get handle seperately.
load32(Address(dest.base, dest.offset + INT64HIGH_OFFSET), temp);
load32(HighWord(dest), temp);
branch32(Assembler::Condition::NotSigned, temp, Imm32(0), &done);
// Move the value inside INT64 range.
@ -988,9 +988,9 @@ MacroAssembler::truncateDoubleToUInt64(Address src, Address dest, Register temp,
storeDouble(floatTemp, dest);
truncateDoubleToInt64(dest, dest, temp);
load32(Address(dest.base, dest.offset + INT64HIGH_OFFSET), temp);
load32(HighWord(dest), temp);
orl(Imm32(0x80000000), temp);
store32(temp, Address(dest.base, dest.offset + INT64HIGH_OFFSET));
store32(temp, HighWord(dest));
bind(&done);
}

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

@ -768,30 +768,18 @@ MacroAssembler::wasmLoadI64(const wasm::MemoryAccessDesc& access, Operand srcAdd
xorl(out.high, out.high);
break;
case Scalar::Int64: {
Operand low(eax);
Operand high(eax);
if (srcAddr.kind() == Operand::MEM_SCALE) {
BaseIndex addr = srcAddr.toBaseIndex();
MOZ_RELEASE_ASSERT(addr.base != out.low && addr.index != out.low);
low = Operand(addr.base, addr.index, addr.scale, addr.offset + INT64LOW_OFFSET);
high = Operand(addr.base, addr.index, addr.scale, addr.offset + INT64HIGH_OFFSET);
} else {
Address addr = srcAddr.toAddress();
MOZ_RELEASE_ASSERT(addr.base != out.low);
low = Operand(addr.base, addr.offset + INT64LOW_OFFSET);
high = Operand(addr.base, addr.offset + INT64HIGH_OFFSET);
MOZ_RELEASE_ASSERT(srcAddr.toBaseIndex().base != out.low &&
srcAddr.toBaseIndex().index != out.low);
}
if (srcAddr.kind() == Operand::MEM_REG_DISP)
MOZ_RELEASE_ASSERT(srcAddr.toAddress().base != out.low);
movl(low, out.low);
movl(LowWord(srcAddr), out.low);
append(access, loadOffset, framePushed());
loadOffset = size();
movl(high, out.high);
movl(HighWord(srcAddr), out.high);
append(access, loadOffset, framePushed());
break;
@ -882,24 +870,12 @@ MacroAssembler::wasmStoreI64(const wasm::MemoryAccessDesc& access, Register64 va
MOZ_ASSERT(!access.isSimd());
MOZ_ASSERT(dstAddr.kind() == Operand::MEM_REG_DISP || dstAddr.kind() == Operand::MEM_SCALE);
Operand low(eax);
Operand high(eax);
if (dstAddr.kind() == Operand::MEM_SCALE) {
BaseIndex addr = dstAddr.toBaseIndex();
low = Operand(addr.base, addr.index, addr.scale, addr.offset + INT64LOW_OFFSET);
high = Operand(addr.base, addr.index, addr.scale, addr.offset + INT64HIGH_OFFSET);
} else {
Address addr = dstAddr.toAddress();
low = Operand(addr.base, addr.offset + INT64LOW_OFFSET);
high = Operand(addr.base, addr.offset + INT64HIGH_OFFSET);
}
size_t storeOffset = size();
movl(value.low, low);
movl(value.low, LowWord(dstAddr));
append(access, storeOffset, framePushed());
storeOffset = size();
movl(value.high, high);
movl(value.high, HighWord(dstAddr));
append(access, storeOffset, framePushed());
}

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

@ -587,10 +587,10 @@ class MacroAssemblerX86 : public MacroAssemblerX86Shared
void load32(AbsoluteAddress address, Register dest) {
movl(Operand(address), dest);
}
void load64(const Address& address, Register64 dest) {
movl(Operand(Address(address.base, address.offset + INT64LOW_OFFSET)), dest.low);
int32_t highOffset = (address.offset < 0) ? -int32_t(INT64HIGH_OFFSET) : INT64HIGH_OFFSET;
movl(Operand(Address(address.base, address.offset + highOffset)), dest.high);
template <typename T>
void load64(const T& address, Register64 dest) {
movl(Operand(LowWord(address)), dest.low);
movl(Operand(HighWord(address)), dest.high);
}
template <typename T>
void storePtr(ImmWord imm, T address) {
@ -622,13 +622,14 @@ class MacroAssemblerX86 : public MacroAssemblerX86Shared
void store16(Register src, AbsoluteAddress address) {
movw(src, Operand(address));
}
void store64(Register64 src, Address address) {
movl(src.low, Operand(Address(address.base, address.offset + INT64LOW_OFFSET)));
movl(src.high, Operand(Address(address.base, address.offset + INT64HIGH_OFFSET)));
template <typename T>
void store64(Register64 src, const T& address) {
movl(src.low, Operand(LowWord(address)));
movl(src.high, Operand(HighWord(address)));
}
void store64(Imm64 imm, Address address) {
movl(imm.low(), Operand(Address(address.base, address.offset + INT64LOW_OFFSET)));
movl(imm.hi(), Operand(Address(address.base, address.offset + INT64HIGH_OFFSET)));
movl(imm.low(), Operand(LowWord(address)));
movl(imm.hi(), Operand(HighWord(address)));
}
void setStackArg(Register reg, uint32_t arg) {

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

@ -1214,10 +1214,10 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
//
// JitFrame_Rectifier
//
// The rectifier frame can be preceded by either an IonJS, a WasmToJSJit or
// a BaselineStub frame.
// The rectifier frame can be preceded by either an IonJS, a BaselineStub,
// or a CppToJSJit/WasmToJSJit frame.
//
// Stack layout if caller of rectifier was Ion or WasmToJSJit:
// Stack layout if caller of rectifier was Ion or CppToJSJit/WasmToJSJit:
//
// Ion-Descriptor
// Ion-ReturnAddr
@ -1280,8 +1280,8 @@ JitRuntime::generateProfilerExitFrameTailStub(JSContext* cx)
masm.bind(&notIonFrame);
// Check for either BaselineStub or WasmToJSJit: since WasmToJSJit is
// just an entry, jump there if we see it.
// Check for either BaselineStub or a CppToJSJit/WasmToJSJit entry
// frame.
masm.branch32(Assembler::NotEqual, scratch3, Imm32(JitFrame_BaselineStub), &handle_Entry);
// Handle Rectifier <- BaselineStub <- BaselineJS

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

@ -148,6 +148,11 @@ js::NewContext(uint32_t maxBytes, uint32_t maxNurseryBytes, JSRuntime* parentRun
MOZ_RELEASE_ASSERT(!TlsContext.get());
#if defined(DEBUG) || defined(JS_OOM_BREAKPOINT)
js::oom::SetThreadType(!parentRuntime ? js::THREAD_TYPE_COOPERATING
: js::THREAD_TYPE_WORKER);
#endif
JSRuntime* runtime = js_new<JSRuntime>(parentRuntime);
if (!runtime)
return nullptr;

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

@ -4506,15 +4506,18 @@ js::gc::MarkingValidator::nonIncrementalMark(AutoLockForExclusiveAccess& lock)
gc->waitBackgroundSweepEnd();
/* Save existing mark bits. */
for (auto chunk = gc->allNonEmptyChunks(); !chunk.done(); chunk.next()) {
ChunkBitmap* bitmap = &chunk->bitmap;
ChunkBitmap* entry = js_new<ChunkBitmap>();
if (!entry)
return;
{
AutoLockGC lock(runtime);
for (auto chunk = gc->allNonEmptyChunks(lock); !chunk.done(); chunk.next()) {
ChunkBitmap* bitmap = &chunk->bitmap;
ChunkBitmap* entry = js_new<ChunkBitmap>();
if (!entry)
return;
memcpy((void*)entry->bitmap, (void*)bitmap->bitmap, sizeof(bitmap->bitmap));
if (!map.putNew(chunk, entry))
return;
memcpy((void*)entry->bitmap, (void*)bitmap->bitmap, sizeof(bitmap->bitmap));
if (!map.putNew(chunk, entry))
return;
}
}
/*
@ -4570,7 +4573,8 @@ js::gc::MarkingValidator::nonIncrementalMark(AutoLockForExclusiveAccess& lock)
MOZ_ASSERT(gcmarker->isDrained());
gcmarker->reset();
for (auto chunk = gc->allNonEmptyChunks(); !chunk.done(); chunk.next())
AutoLockGC lock(runtime);
for (auto chunk = gc->allNonEmptyChunks(lock); !chunk.done(); chunk.next())
chunk->bitmap.clear();
}
}
@ -4608,10 +4612,13 @@ js::gc::MarkingValidator::nonIncrementalMark(AutoLockForExclusiveAccess& lock)
}
/* Take a copy of the non-incremental mark state and restore the original. */
for (auto chunk = gc->allNonEmptyChunks(); !chunk.done(); chunk.next()) {
ChunkBitmap* bitmap = &chunk->bitmap;
ChunkBitmap* entry = map.lookup(chunk)->value();
Swap(*entry, *bitmap);
{
AutoLockGC lock(runtime);
for (auto chunk = gc->allNonEmptyChunks(lock); !chunk.done(); chunk.next()) {
ChunkBitmap* bitmap = &chunk->bitmap;
ChunkBitmap* entry = map.lookup(chunk)->value();
Swap(*entry, *bitmap);
}
}
for (GCZonesIter zone(runtime); !zone.done(); zone.next()) {
@ -4646,7 +4653,8 @@ js::gc::MarkingValidator::validate()
gc->waitBackgroundSweepEnd();
for (auto chunk = gc->allNonEmptyChunks(); !chunk.done(); chunk.next()) {
AutoLockGC lock(gc->rt);
for (auto chunk = gc->allNonEmptyChunks(lock); !chunk.done(); chunk.next()) {
BitmapMap::Ptr ptr = map.lookup(chunk);
if (!ptr)
continue; /* Allocated after we did the non-incremental mark. */

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

@ -98,7 +98,6 @@ JS::detail::InitWithFailureDiagnostic(bool isDebugBuild)
#if defined(DEBUG) || defined(JS_OOM_BREAKPOINT)
RETURN_IF_FAIL(js::oom::InitThreadType());
js::oom::SetThreadType(js::THREAD_TYPE_COOPERATING);
#endif
RETURN_IF_FAIL(js::Mutex::Init());

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

@ -438,13 +438,6 @@ js::RunScript(JSContext* cx, RunState& state)
# pragma optimize("", on)
#endif
struct AutoGCIfRequested
{
JSRuntime* runtime;
explicit AutoGCIfRequested(JSRuntime* rt) : runtime(rt) {}
~AutoGCIfRequested() { runtime->gc.gcIfRequested(); }
};
/*
* Find a function reference and its 'this' value implicit first parameter
* under argc arguments on cx's stack, and call the function. Push missing
@ -461,9 +454,6 @@ js::InternalCallOrConstruct(JSContext* cx, const CallArgs& args, MaybeConstruct
MOZ_ASSERT(args.length() <= ARGS_LENGTH_MAX);
MOZ_ASSERT(!cx->zone()->types.activeAnalysis);
/* Perform GC if necessary on exit from the function. */
AutoGCIfRequested gcIfRequested(cx->runtime());
unsigned skipForCallee = args.length() + 1 + (construct == CONSTRUCT);
if (args.calleev().isPrimitive())
return ReportIsNotFunction(cx, args.calleev(), skipForCallee, construct);

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

@ -261,7 +261,10 @@ class ExecuteState : public RunState
result_(result)
{ }
Value newTarget() { return newTargetValue_; }
Value newTarget() const { return newTargetValue_; }
void setNewTarget(const Value& v) { newTargetValue_ = v; }
Value* addressOfNewTarget() { return newTargetValue_.address(); }
JSObject* environmentChain() const { return envChain_; }
bool isDebuggerEval() const { return !!evalInFrame_; }

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

@ -2521,9 +2521,9 @@ class BaseCompiler
masm.movq(scratch, Operand(StackPointer, argLoc.offsetFromArgBase()));
#elif defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_ARM)
loadI64Low(scratch, arg);
masm.store32(scratch, Address(StackPointer, argLoc.offsetFromArgBase() + INT64LOW_OFFSET));
masm.store32(scratch, LowWord(Address(StackPointer, argLoc.offsetFromArgBase())));
loadI64High(scratch, arg);
masm.store32(scratch, Address(StackPointer, argLoc.offsetFromArgBase() + INT64HIGH_OFFSET));
masm.store32(scratch, HighWord(Address(StackPointer, argLoc.offsetFromArgBase())));
#else
MOZ_CRASH("BaseCompiler platform hook: passArg I64");
#endif

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

@ -139,10 +139,10 @@ SetupABIArguments(MacroAssembler& masm, const FuncExport& fe, Register argv, Reg
case MIRType::Int64: {
Register sp = masm.getStackPointer();
#if JS_BITS_PER_WORD == 32
masm.load32(Address(src.base, src.offset + INT64LOW_OFFSET), scratch);
masm.store32(scratch, Address(sp, iter->offsetFromArgBase() + INT64LOW_OFFSET));
masm.load32(Address(src.base, src.offset + INT64HIGH_OFFSET), scratch);
masm.store32(scratch, Address(sp, iter->offsetFromArgBase() + INT64HIGH_OFFSET));
masm.load32(LowWord(src), scratch);
masm.store32(scratch, LowWord(Address(sp, iter->offsetFromArgBase())));
masm.load32(HighWord(src), scratch);
masm.store32(scratch, HighWord(Address(sp, iter->offsetFromArgBase())));
#else
Register64 scratch64(scratch);
masm.load64(src, scratch64);
@ -384,10 +384,10 @@ StackCopy(MacroAssembler& masm, MIRType type, Register scratch, Address src, Add
masm.store32(scratch, dst);
} else if (type == MIRType::Int64) {
#if JS_BITS_PER_WORD == 32
masm.load32(Address(src.base, src.offset + INT64LOW_OFFSET), scratch);
masm.store32(scratch, Address(dst.base, dst.offset + INT64LOW_OFFSET));
masm.load32(Address(src.base, src.offset + INT64HIGH_OFFSET), scratch);
masm.store32(scratch, Address(dst.base, dst.offset + INT64HIGH_OFFSET));
masm.load32(LowWord(src), scratch);
masm.store32(scratch, LowWord(dst));
masm.load32(HighWord(src), scratch);
masm.store32(scratch, HighWord(dst));
#else
Register64 scratch64(scratch);
masm.load64(src, scratch64);
@ -790,7 +790,14 @@ GenerateImportJitExit(MacroAssembler& masm, const FuncImport& fi, Label* throwLa
unsigned nativeFramePushed = masm.framePushed();
AssertStackAlignment(masm, ABIStackAlignment);
masm.branchTestMagic(Assembler::Equal, JSReturnOperand, throwLabel);
#ifdef DEBUG
{
Label ok;
masm.branchTestMagic(Assembler::NotEqual, JSReturnOperand, &ok);
masm.breakpoint();
masm.bind(&ok);
}
#endif
Label oolConvert;
switch (fi.sig().ret()) {
@ -882,15 +889,12 @@ GenerateImportJitExit(MacroAssembler& masm, const FuncImport& fi, Label* throwLa
masm.unboxInt32(Address(masm.getStackPointer(), offsetToCoerceArgv), ReturnReg);
break;
case ExprType::F64:
masm.call(SymbolicAddress::CoerceInPlace_ToNumber);
masm.branchTest32(Assembler::Zero, ReturnReg, ReturnReg, throwLabel);
masm.loadDouble(Address(masm.getStackPointer(), offsetToCoerceArgv), ReturnDoubleReg);
break;
case ExprType::F32:
masm.call(SymbolicAddress::CoerceInPlace_ToNumber);
masm.branchTest32(Assembler::Zero, ReturnReg, ReturnReg, throwLabel);
masm.loadDouble(Address(masm.getStackPointer(), offsetToCoerceArgv), ReturnDoubleReg);
masm.convertDoubleToFloat32(ReturnDoubleReg, ReturnFloat32Reg);
if (fi.sig().ret() == ExprType::F32)
masm.convertDoubleToFloat32(ReturnDoubleReg, ReturnFloat32Reg);
break;
default:
MOZ_CRASH("Unsupported convert type");

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

@ -121,7 +121,7 @@
#include "mozilla/StyleSetHandle.h"
#include "mozilla/StyleSetHandleInlines.h"
#include "RegionBuilder.h"
#include "SVGSVGElement.h"
#include "SVGViewportElement.h"
#include "DisplayItemClip.h"
#include "mozilla/layers/WebRenderLayerManager.h"
#include "prenv.h"
@ -9765,7 +9765,7 @@ ComputeSVGReferenceRect(nsIFrame* aFrame,
case StyleGeometryBox::ViewBox: {
nsIContent* content = aFrame->GetContent();
nsSVGElement* element = static_cast<nsSVGElement*>(content);
SVGSVGElement* svgElement = element->GetCtx();
SVGViewportElement* svgElement = element->GetCtx();
MOZ_ASSERT(svgElement);
if (svgElement && svgElement->HasViewBoxRect()) {

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

@ -531,6 +531,7 @@ fuzzy-if(skiaContent,1,100) == tspan-xy-anchor-end-01.svg tspan-xy-anchor-end-re
== viewBox-and-pattern-02.svg pass.svg
== viewBox-and-pattern-03.svg pass.svg
== viewBox-and-pattern-04.svg pass.svg
== viewBox-and-symbol-01.svg pass.svg
== viewBox-invalid-01.svg pass.svg
== viewBox-invalid-02.svg pass.svg
== viewBox-valid-01.svg pass.svg

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

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<symbol id="mySymbol" viewBox="0 0 20 20">
<rect fill="lime" x="50%" height="20px" width="3%"/>
</symbol>
</defs>
<rect width="100%" height="100%" fill="lime"/>
<svg viewBox="0 0 20 20">
<rect fill="red" x="50%" height="20px" width="2%"/>
</svg>
<svg>
<use href="#mySymbol"/>
</svg>
</svg>

После

Ширина:  |  Высота:  |  Размер: 374 B

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

@ -9,7 +9,6 @@
#include "gfx2DGlue.h"
#include "gfxContext.h"
#include "gfxPlatform.h"
#include "mozilla/dom/SVGSVGElement.h"
#include "mozilla/gfx/2D.h"
#include "mozilla/gfx/PathHelpers.h"
#include "mozilla/ShapeUtils.h"

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

@ -16,7 +16,6 @@
#include "nsLayoutUtils.h"
#include "imgINotificationObserver.h"
#include "SVGObserverUtils.h"
#include "mozilla/dom/SVGSVGElement.h"
#include "nsSVGUtils.h"
#include "SVGContentUtils.h"
#include "SVGGeometryFrame.h"

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

@ -17,7 +17,6 @@
#include "nsLayoutUtils.h"
#include "imgINotificationObserver.h"
#include "SVGObserverUtils.h"
#include "mozilla/dom/SVGSVGElement.h"
#include "nsSVGUtils.h"
#include "SVGContentUtils.h"
#include "SVGGeometryFrame.h"

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

@ -194,7 +194,7 @@ nsSVGMarkerFrame::GetMarkBBoxContribution(const Matrix& aToBBoxUserspace,
}
void
nsSVGMarkerFrame::SetParentCoordCtxProvider(SVGSVGElement *aContext)
nsSVGMarkerFrame::SetParentCoordCtxProvider(SVGViewportElement *aContext)
{
SVGMarkerElement *marker = static_cast<SVGMarkerElement*>(GetContent());
marker->SetParentCoordCtxProvider(aContext);
@ -219,7 +219,7 @@ nsSVGMarkerFrame::AutoMarkerReferencer::AutoMarkerReferencer(
mFrame->mInUse = true;
mFrame->mMarkedFrame = aMarkedFrame;
SVGSVGElement *ctx =
SVGViewportElement *ctx =
static_cast<nsSVGElement*>(aMarkedFrame->GetContent())->GetCtx();
mFrame->SetParentCoordCtxProvider(ctx);
}

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

@ -20,7 +20,7 @@ class gfxContext;
namespace mozilla {
class SVGGeometryFrame;
namespace dom {
class SVGSVGElement;
class SVGViewportElement;
} // namespace dom
} // namespace mozilla
@ -118,7 +118,7 @@ private:
};
// nsSVGMarkerFrame methods:
void SetParentCoordCtxProvider(mozilla::dom::SVGSVGElement *aContext);
void SetParentCoordCtxProvider(mozilla::dom::SVGViewportElement *aContext);
// recursion prevention flag
bool mInUse;

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

@ -660,7 +660,7 @@ nsSVGPatternFrame::ConstructCTM(const nsSVGViewBox& aViewBox,
const Matrix &callerCTM,
nsIFrame *aTarget)
{
SVGSVGElement *ctx = nullptr;
SVGViewportElement *ctx = nullptr;
nsIContent* targetContent = aTarget->GetContent();
gfxFloat scaleX, scaleY;

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

@ -49,7 +49,7 @@
#include "SVGGeometryElement.h"
#include "SVGGeometryFrame.h"
#include "nsSVGPaintServerFrame.h"
#include "mozilla/dom/SVGSVGElement.h"
#include "mozilla/dom/SVGViewportElement.h"
#include "nsTextFrame.h"
#include "SVGContentUtils.h"
#include "SVGTextFrame.h"
@ -290,7 +290,7 @@ nsSVGUtils::GetContextSize(const nsIFrame* aFrame)
MOZ_ASSERT(aFrame->GetContent()->IsSVGElement(), "bad cast");
const nsSVGElement* element = static_cast<nsSVGElement*>(aFrame->GetContent());
SVGSVGElement* ctx = element->GetCtx();
SVGViewportElement* ctx = element->GetCtx();
if (ctx) {
size.width = ctx->GetLength(SVGContentUtils::X);
size.height = ctx->GetLength(SVGContentUtils::Y);
@ -323,7 +323,7 @@ nsSVGUtils::ObjectSpace(const gfxRect &aRect, const nsSVGLength2 *aLength)
// Multiply first to avoid precision errors:
return axis * aLength->GetAnimValInSpecifiedUnits() / 100;
}
return aLength->GetAnimValue(static_cast<SVGSVGElement*>(nullptr)) * axis;
return aLength->GetAnimValue(static_cast<SVGViewportElement*>(nullptr)) * axis;
}
float

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

@ -375,7 +375,7 @@ class OSXBootstrapper(BaseBootstrapper):
def ensure_macports_system_packages(self):
packages = [
'python27',
'py27-readline',
'py27-gnureadline',
'mercurial',
'autoconf213',
'gnutar',

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

@ -1140,4 +1140,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
static const int32_t kUnknownId = -1;
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1516081864552000);
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1516124531296000);

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

@ -2,7 +2,7 @@
0i0.nl: could not connect to host
125m125.de: could not connect to host
174.net.nz: could not connect to host
27728522.com: could not connect to host
1px.tv: could not connect to host
360live.fr: could not connect to host
47tech.com: could not connect to host
4loc.us: could not connect to host
@ -16,10 +16,11 @@
aamwa.com: could not connect to host
abolition.co: could not connect to host
acrossgw.com: could not connect to host
addiko.net: could not connect to host
adrinet.tk: could not connect to host
aevpn.org: could not connect to host
agowa.eu: could not connect to host
aivd.lol: could not connect to host
akoww.de: could not connect to host
akul.co.in: could not connect to host
alexandros.io: could not connect to host
altahrim.net: could not connect to host
@ -31,7 +32,6 @@ artisense.de: could not connect to host
assdecoeur.org: could not connect to host
astral.gq: could not connect to host
attilagyorffy.com: could not connect to host
avi9526.pp.ua: could not connect to host
aviv.nyc: could not connect to host
azabani.com: could not connect to host
backschues.com: could not connect to host
@ -40,9 +40,13 @@ balonmano.co: could not connect to host
bbdos.ru: could not connect to host
beamitapp.com: could not connect to host
beelen.fr: could not connect to host
bencorby.com: could not connect to host
benjamin-horvath.com: could not connect to host
benjamindietrich.com: could not connect to host
benjamindietrich.de: could not connect to host
berna.fr: could not connect to host
bip.gov.sa: could not connect to host
black-khat.com: could not connect to host
blazeit.io: could not connect to host
blumen-garage.de: could not connect to host
bodrumfarm.com: could not connect to host
brettabel.com: could not connect to host
@ -50,62 +54,58 @@ buyshoe.org: could not connect to host
by1898.com: could not connect to host
cais.de: [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]
cake-time.co.uk: could not connect to host
capekeen.com: could not connect to host
capellidipremoli.com: could not connect to host
calculatoaresecondhand.xyz: could not connect to host
casperpanel.com: could not connect to host
cbdev.de: could not connect to host
chloehorler.com: could not connect to host
chonghe.org: could not connect to host
christina-quast.de: could not connect to host
cielly.com: could not connect to host
cirfi.com: could not connect to host
clearviewwealthprojector.com.au: could not connect to host
cloudbased.info: could not connect to host
cloudbleed.info: could not connect to host
cmpr.es: could not connect to host
cnlic.com: could not connect to host
colleencornez.com: could not connect to host
comssa.org.au: could not connect to host
corinnanese.de: could not connect to host
cpaneltips.com: could not connect to host
criticalaim.com: could not connect to host
cross-view.com: could not connect to host
cry.nu: could not connect to host
cryptoisnotacrime.org: could not connect to host
cselzer.com: could not connect to host
csgo77.com: could not connect to host
cypherpunk.ws: could not connect to host
czlx.co: could not connect to host
dahlberg.cologne: could not connect to host
dataprotectionadvisors.com: could not connect to host
datorb.com: could not connect to host
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
decoyrouting.com: could not connect to host
derivativeshub.pro: could not connect to host
dev-talk.eu: could not connect to host
dick.red: could not connect to host
die-blahuts.de: could not connect to host
digioccumss.ddns.net: could not connect to host
dijks.com: could not connect to host
dillewijnzwapak.nl: could not connect to host
dingcc.xyz: could not connect to host
disco-crazy-world.de: could not connect to host
dkravchenko.su: could not connect to host
donotspellitgav.in: could not connect to host
dorianmuthig.com: could not connect to host
dostavkakurierom.ru: could not connect to host
dreizwosechs.de: could not connect to host
drkmtrx.xyz: could not connect to host
duch.cloud: could not connect to host
duelsow.eu: could not connect to host
duo.money: could not connect to host
dyeager.org: could not connect to host
dynamicsnetwork.net: could not connect to host
dynts.pro: could not connect to host
ecotruck-pooling.com: could not connect to host
ectora.com: could not connect to host
edit.yahoo.com: could not connect to host
educatoys.com.br: could not connect to host
eduif.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]
eez.ee: could not connect to host
ehuber.info: could not connect to host
elia.cloud: could not connect to host
endlessdiy.ca: could not connect to host
estan.cn: could not connect to host
eurostrategy.vn.ua: could not connect to host
@ -118,26 +118,25 @@ firexarxa.de: could not connect to host
first-time-offender.com: could not connect to host
fixate.ru: could not connect to host
fixmyglitch.com: could not connect to host
fortress.sk: could not connect to host
fossewayflowers.co.uk: could not connect to host
fossewayflowers.com: could not connect to host
foxmay.co.uk: could not connect to host
fukuko.biz: could not connect to host
fukuko.xyz: could not connect to host
fuliydys.com: could not connect to host
funfunmstdn.tokyo: could not connect to host
funideas.org: could not connect to host
funksteckdosen24.de: 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
gaygeeks.de: could not connect to host
gdevpenze.ru: could not connect to host
geeks.berlin: 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
globalgivingtime.com: could not connect to host
gmantra.org: could not connect to host
goanalyse.co.uk: could not connect to host
google: could not connect to host
gottfridsberg.org: could not connect to host
gradsm-ci.net: could not connect to host
@ -146,7 +145,7 @@ gtdgo.com: could not connect to host
gvt2.com: could not connect to host
gvt3.com: could not connect to host
happygadget.me: could not connect to host
head.org: could not connect to host
haucke.xyz: could not connect to host
heijblok.com: could not connect to host
here.ml: could not connect to host
hg881.com: could not connect to host
@ -161,10 +160,12 @@ imouyang.com: 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.me: could not connect to host
installgentoo.net: could not connect to host
ipv6.watch: could not connect to host
iskai.net: could not connect to host
islief.com: could not connect to host
isoroc-nidzica.pl: could not connect to host
jackyyf.com: could not connect to host
jaredfraser.com: could not connect to host
javascriptlab.fr: could not connect to host
jcyz.cf: could not connect to host
@ -174,11 +175,12 @@ jie.dance: could not connect to host
johnblackbourn.com: could not connect to host
just-pools.co.za: could not connect to host
justmy.website: could not connect to host
kabus.org: could not connect to host
kamikaichimaru.com: could not connect to host
kapo.info: could not connect to host
karanlyons.com: could not connect to host
kenrogers.co: could not connect to host
kevinmeijer.nl: could not connect to host
kenvix.com: could not connect to host
kieranweightman.me: could not connect to host
knapp.noip.me: could not connect to host
kousaku.jp: could not connect to host
@ -196,17 +198,17 @@ lezdomsm.com: could not connect to host
lheinrich.org: could not connect to host
libscode.com: could not connect to host
linksanitizer.com: could not connect to host
lipex.com: could not connect to host
littleservice.cn: could not connect to host
liukang.tech: could not connect to host
livnev.me: could not connect to host
logcat.info: could not connect to host
logimagine.com: could not connect to host
lovelytimes.net: could not connect to host
luav.org: could not connect to host
lunix.io: could not connect to host
m4570.xyz: could not connect to host
maartenterpstra.xyz: could not connect to host
macedopesca.com.br: could not connect to host
mader.jp: could not connect to host
mail4geek.com: could not connect to host
martin-mattel.com: could not connect to host
martinrogalla.com: could not connect to host
mc-team.org: could not connect to host
@ -214,29 +216,26 @@ mcdanieldevelopmentservices.com: could not connect to host
mcea-hld.jp: could not connect to host
mchopkins.net: could not connect to host
metachris.com: could not connect to host
mikropixel.de: could not connect to host
mingy.ddns.net: could not connect to host
mmalisz.com: could not connect to host
mmstick.tk: could not connect to host
modded-minecraft-server-list.com: could not connect to host
moderntld.net: could not connect to host
mosaique-lachenaie.fr: could not connect to host
mrliu.me: could not connect to host
muh.io: could not connect to host
muj-svet.cz: could not connect to host
munduch.cz: could not connect to host
mynetworkingbuddy.com: could not connect to host
navdeep.ca: could not connect to host
ncdesigns-studio.com: could not connect to host
necesitodinero.org: could not connect to host
nedcf.org.uk: could not connect to host
negai.moe: could not connect to host
nevolution.me: could not connect to host
nginxyii.tk: could not connect to host
nikolasbradshaw.com: could not connect to host
nnote.net: could not connect to host
nostraspace.com: could not connect to host
nsbfalconacademy.org: could not connect to host
nup.pw: could not connect to host
ogkw.de: could not connect to host
oliverspringer.eu: could not connect to host
onewebdev.info: could not connect to host
onstud.com: could not connect to host
@ -257,6 +256,7 @@ pengisatelier.net: could not connect to host
perkbrian.com: could not connect to host
persjrp.ca: could not connect to host
persoform.ch: could not connect to host
philippa.cool: could not connect to host
picallo.es: could not connect to host
pkov.cz: could not connect to host
plaasprodukte.com: could not connect to host
@ -269,21 +269,18 @@ proxydesk.eu: could not connect to host
pythia.nz: could not connect to host
qionouu.cn: could not connect to host
qto.net: could not connect to host
quikrmovies.to: could not connect to host
rainbin.com: could not connect to host
real-compare.com: could not connect to host
refactor.zone: could not connect to host
reignsphere.net: could not connect to host
reinaertvandecruys.me: could not connect to host
roguesignal.net: could not connect to host
rolodato.com: could not connect to host
rtvi.com: could not connect to host
s1mplescripts.de: could not connect to host
sallysubs.com: could not connect to host
sanael.net: could not connect to host
sanatrans.com: could not connect to host
sarndipity.com: could not connect to host
schlachter.ca: could not connect to host
security201.co.uk: could not connect to host
secureesolutions.com: could not connect to host
securitymap.wiki: could not connect to host
semantheme.fr: could not connect to host
shadowplus.net: could not connect to host
@ -291,35 +288,35 @@ shadowrocket.net: could not connect to host
sharevari.com: could not connect to host
shavingks.com: could not connect to host
shirakaba-cc.com: could not connect to host
shorten.ninja: could not connect to host
simbolo.co.uk: could not connect to host
simonkjellberg.com: could not connect to host
simplerses.com: could not connect to host
slaughterhouse.fr: could not connect to host
snille.com: 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
socialworkout.tv: could not connect to host
somali-derp.com: could not connect to host
sonic.sk: could not connect to host
soontm.de: could not connect to host
soubriquet.org: could not connect to host
soulema.com: could not connect to host
sowingseasons.com: could not connect to host
spicywombat.com: could not connect to host
spom.net: could not connect to host
sputnik1net.org: could not connect to host
sss3s.com: could not connect to host
stadionmanager.com: could not connect to host
stitthappens.com: could not connect to host
stumf.si: could not connect to host
stytt.com: could not connect to host
surdam.casa: could not connect to host
sviz.pro: could not connect to host
taidu.news: could not connect to host
taskotron.stg.fedoraproject.org: could not connect to host
tech-blog.fr: could not connect to host
tenispopular.com: could not connect to host
terminalvelocity.co.nz: could not connect to host
thesehighsandlows.com: could not connect to host
theworldsend.eu: could not connect to host
thezero.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
@ -327,15 +324,14 @@ totch.de: could not connect to host
totot.net: could not connect to host
transcendmotor.sg: could not connect to host
turn-sticks.com: could not connect to host
underskatten.tk: could not connect to host
unicorncloud.org: could not connect to host
umsapi.com: could not connect to host
venmos.com: could not connect to host
viditut.com: could not connect to host
vilog.me: could not connect to host
visionless.me: could not connect to host
vitapingu.de: could not connect to host
vmgirls.com: could not connect to host
warlions.info: could not connect to host
warhaggis.com: could not connect to host
watchweasel.com: could not connect to host
weareincognito.org: could not connect to host
webart-factory.de: could not connect to host
@ -353,7 +349,9 @@ wordpresspro.cl: could not connect to host
www-8887999.com: could not connect to host
www.simbolo.co.uk: could not connect to host
xa1.uk: could not connect to host
xecureit.com: could not connect to host
xing.ml: could not connect to host
xpjcunkuan.com: could not connect to host
xtremenutrition.com.br: could not connect to host
xyfun.net: could not connect to host
zenfusion.fr: could not connect to host
@ -409,7 +407,7 @@ zzw.ca: could not connect to host
166166.com: could not connect to host
16deza.com: did not receive HSTS header
16packets.com: could not connect to host
173vpn.cn: could not connect to host
173vpn.cn: did not receive HSTS header
188betwarriors.co.uk: could not connect to host
188trafalgar.ca: did not receive HSTS header
1921958389.rsc.cdn77.org: did not receive HSTS header
@ -718,7 +716,6 @@ akselimedia.fi: did not receive HSTS header
aktivist.in: did not receive HSTS header
al-shami.net: could not connect to host
aladdin.ie: did not receive HSTS header
alair.cn: could not connect to host
alanlee.net: could not connect to host
alanrickmanflipstable.com: could not connect to host
alariel.de: did not receive HSTS header
@ -726,7 +723,7 @@ alarme-gps.ch: could not connect to host
alarmegps.ch: could not connect to host
alarmsystemreviews.com: did not receive HSTS header
alaundeil.xyz: could not connect to host
albanien.guide: did not receive HSTS header
albanien.guide: could not connect to host
alberguecimballa.es: could not connect to host
albertbogdanowicz.pl: did not receive HSTS header
albertopimienta.com: did not receive HSTS header
@ -917,6 +914,7 @@ approlys.fr: did not receive HSTS header
apps-for-fishing.com: could not connect to host
appsbystudio.co.uk: did not receive HSTS header
appsdash.io: could not connect to host
aquaron.com: did not receive HSTS header
aquaundine.net: could not connect to host
aquilalab.com: could not connect to host
arabdigitalexpression.org: did not receive HSTS header
@ -997,7 +995,7 @@ atcreform.gov: did not receive HSTS header
atelier-rk.com: did not receive HSTS header
athaliasoft.com: could not connect to host
athenelive.com: could not connect to host
athensbusinessresources.us: could not connect to host
athensbusinessresources.us: did not receive HSTS header
athul.xyz: could not connect to host
atlex.nl: did not receive HSTS header
atlseccon.com: did not receive HSTS header
@ -1172,7 +1170,7 @@ beier.io: could not connect to host
beikeil.de: did not receive HSTS header
belairsewvac.com: could not connect to host
belewpictures.com: did not receive HSTS header
belgien.guide: did not receive HSTS header
belgien.guide: could not connect to host
belize-firmengruendung.com: could not connect to host
belliash.eu.org: did not receive HSTS header
belltower.io: could not connect to host
@ -1209,7 +1207,7 @@ bestorangeseo.com: could not connect to host
bestschools.top: could not connect to host
betaclean.fr: did not receive HSTS header
betafive.net: could not connect to host
betakah.net: did not receive HSTS header
betakah.net: could not connect to host
betcafearena.ro: could not connect to host
bethanyduke.com: max-age too low: 7776000
bethditto.com: did not receive HSTS header
@ -1393,7 +1391,7 @@ brandnewdays.nl: could not connect to host
brandon.so: could not connect to host
brandred.net: could not connect to host
brandspray.com: could not connect to host
brasilien.guide: did not receive HSTS header
brasilien.guide: could not connect to host
brasilmorar.com: could not connect to host
bratteng.xyz: could not connect to host
bravz.de: could not connect to host
@ -1446,7 +1444,7 @@ buildingclouds.fr: could not connect to host
buildsaver.co.za: did not receive HSTS header
built.by: did not receive HSTS header
bukatv.cz: could not connect to host
bulgarien.guide: did not receive HSTS header
bulgarien.guide: could not connect to host
bulkbuy.tech: could not connect to host
bulletpoint.cz: could not connect to host
bullterrier.me: could not connect to host
@ -1521,9 +1519,10 @@ c3-compose.com: could not connect to host
c3b.info: could not connect to host
cabarave.com: could not connect to host
cabsites.com: could not connect to host
cabusar.fr: could not connect to host
cabusar.fr: did not receive HSTS header
caconnect.org: could not connect to host
cadao.me: did not receive HSTS header
cadusilva.com: did not receive HSTS header
caesreon.com: could not connect to host
cafe-murr.de: could not connect to host
cafe-scientifique.org.ec: could not connect to host
@ -1556,6 +1555,7 @@ campfire.co.il: did not receive HSTS header
campusdrugprevention.gov: did not receive HSTS header
camsanalytics.com: could not connect to host
canadiangamblingchoice.com: did not receive HSTS header
cancelmyprofile.com: did not receive HSTS header
candicontrols.com: did not receive HSTS header
candratech.com: could not connect to host
candygirl.shop: could not connect to host
@ -1618,7 +1618,6 @@ cdnb.co: could not connect to host
cdndepo.com: could not connect to host
cdreporting.co.uk: did not receive HSTS header
cdt.org: did not receive HSTS header
cekaja.com: did not receive HSTS header
celeirorural.com.br: did not receive HSTS header
celina-reads.de: did not receive HSTS header
cellsites.nz: could not connect to host
@ -1707,7 +1706,7 @@ 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)
chrst.ph: could not connect to host
@ -1823,7 +1822,7 @@ codes.pk: did not receive HSTS header
codewiththepros.org: could not connect to host
codigosddd.com.br: did not receive HSTS header
codymoniz.com: did not receive HSTS header
coerthas.com: max-age too low: 0
coerthas.com: could not connect to host
coffeeetc.co.uk: max-age too low: 7776000
coffeestrategies.com: max-age too low: 5184000
cogniflex.com: did not receive HSTS header
@ -1834,6 +1833,7 @@ coldlostsick.net: could not connect to host
colearnr.com: could not connect to host
collabra.email: did not receive HSTS header
collard.tk: did not receive HSTS header
collectosaurus.com: did not receive HSTS header
collegepulse.org: could not connect to host
collies.eu: max-age too low: 3
collins.press: did not receive HSTS header
@ -1848,7 +1848,6 @@ comfy.cafe: did not receive HSTS header
comfy.moe: did not receive HSTS header
comicspines.com: could not connect to host
comicspornos.com: max-age too low: 2592000
comiteaintriathlon.fr: did not receive HSTS header
comitesaustria.at: could not connect to host
comiteshopping.com: could not connect to host
commercialplanet.eu: could not connect to host
@ -2013,7 +2012,6 @@ ctrl.blog: did not receive HSTS header
cubecart-demo.co.uk: did not receive HSTS header
cubecart-hosting.co.uk: did not receive HSTS header
cubecart.net: did not receive HSTS header
cubela.tech: could not connect to host
cubeserver.eu: could not connect to host
cubewano.com: could not connect to host
cucc.date: did not receive HSTS header
@ -2084,7 +2082,7 @@ danielworthy.com: did not receive HSTS header
danijobs.com: could not connect to host
danishenanigans.com: could not connect to host
dankeblog.com: could not connect to host
danmark.guide: did not receive HSTS header
danmark.guide: could not connect to host
dannycrichton.com: did not receive HSTS header
danrl.de: could not connect to host
danwillenberg.com: did not receive HSTS header
@ -2209,6 +2207,7 @@ deuxvia.com: could not connect to host
dev: could not connect to host
dev-aegon.azurewebsites.net: did not receive HSTS header
dev-bluep.pantheonsite.io: did not receive HSTS header
dev-pulse-mtn.pantheonsite.io: did not receive HSTS header
devafterdark.com: could not connect to host
devct.cz: did not receive HSTS header
devcu.com: could not connect to host
@ -2248,6 +2247,7 @@ diferenca.com: did not receive HSTS header
digired.xyz: could not connect to host
digitalbank.kz: could not connect to host
digitaldaddy.net: could not connect to host
digitaldashboard.gov: could not connect to host
digitalero.rip: did not receive HSTS header
digitaljungle.net: could not connect to host
digitalnonplus.com: could not connect to host
@ -2326,7 +2326,7 @@ dolphinswithlasers.com: did not receive HSTS header
domaine-aigoual-cevennes.com: did not receive HSTS header
domaris.de: could not connect to host
domenicocatelli.com: did not receive HSTS header
dominikanskarepubliken.guide: did not receive HSTS header
dominikanskarepubliken.guide: could not connect to host
dominikkulaga.pl: max-age too low: 2592000
dominioanimal.com: could not connect to host
dominique-mueller.de: did not receive HSTS header
@ -2521,7 +2521,6 @@ eicfood.com: could not connect to host
eidolonhost.com: did not receive HSTS header
eigo.work: could not connect to host
einhorn.space: could not connect to host
einsteinathome.org: did not receive HSTS header
ekbanden.nl: could not connect to host
eksik.com: could not connect to host
elaintehtaat.fi: did not receive HSTS header
@ -2547,6 +2546,7 @@ elenoon.ir: did not receive HSTS header
elgacien.de: could not connect to host
elimdengelen.com: did not receive HSTS header
elite-porno.ru: could not connect to host
elitecovering.fr: did not receive HSTS header
elitefishtank.com: could not connect to host
elmar-kraamzorg.nl: did not receive HSTS header
elnutricionista.es: did not receive HSTS header
@ -2573,6 +2573,7 @@ emnitech.com: could not connect to host
empleosentorreon.mx: could not connect to host
empleostampico.com: did not receive HSTS header
employeestore.org: did not receive HSTS header
employer.gov: could not connect to host
empty-r.com: could not connect to host
encode.space: could not connect to host
encode.uk.com: did not receive HSTS header
@ -2664,7 +2665,7 @@ essexghosthunters.co.uk: did not receive HSTS header
estaciona.guru: could not connect to host
estebanborges.com: did not receive HSTS header
estilosapeca.com: could not connect to host
estland.guide: did not receive HSTS header
estland.guide: could not connect to host
et-buchholz.de: could not connect to host
et180.com: could not connect to host
etangs-magazine.com: could not connect to host
@ -2777,7 +2778,6 @@ famio.cn: could not connect to host
fantasyfootballpundit.com: did not receive HSTS header
fanyl.cn: could not connect to host
farces.com: did not receive HSTS header
farhadexchange.com: did not receive HSTS header
fashion.net: did not receive HSTS header
fashioncare.cz: did not receive HSTS header
fashionholic.my: did not receive HSTS header
@ -2822,7 +2822,7 @@ fettbrot.tk: did not receive HSTS header
fexmen.com: could not connect to host
ff-getzersdorf.at: did not receive HSTS header
ffmradio.de: did not receive HSTS header
ffxiv.cc: max-age too low: 0
ffxiv.cc: could not connect to host
fics-twosigma.com: could not connect to host
fideleslaici.com: did not receive HSTS header
fiendishmasterplan.com: did not receive HSTS header
@ -2952,7 +2952,7 @@ francevpn.xyz: could not connect to host
francois-vidit.com: did not receive HSTS header
frangor.info: did not receive HSTS header
frankierprofi.de: did not receive HSTS header
frankwei.xyz: could not connect to host
frankwei.xyz: did not receive HSTS header
franta.biz: did not receive HSTS header
franta.email: did not receive HSTS header
franzt.de: could not connect to host
@ -3123,7 +3123,6 @@ getcarefirst.com: did not receive HSTS header
getcarina.com: could not connect to host
getcolor.com: did not receive HSTS header
getfestify.com: did not receive HSTS header
getfilterlive.org: could not connect to host
getfirepress.com: could not connect to host
getinternet.de: max-age too low: 0
getkai.co.nz: did not receive HSTS header
@ -3287,7 +3286,7 @@ greg.red: could not connect to host
gregmilton.com: could not connect to host
gregmilton.org: could not connect to host
gregorytlee.me: could not connect to host
grekland.guide: did not receive HSTS header
grekland.guide: could not connect to host
gremots.com: could not connect to host
greplin.com: could not connect to host
gresb.com: did not receive HSTS header
@ -3465,6 +3464,7 @@ hdwallpapers.net: did not receive HSTS header
head-shop.lt: could not connect to host
head-shop.lv: could not connect to host
headmates.xyz: could not connect to host
healthjoy.com: did not receive HSTS header
healthycod.in: could not connect to host
healtious.com: could not connect to host
heart.ge: did not receive HSTS header
@ -3527,6 +3527,7 @@ hiphopconvention.nl: could not connect to host
hipnos.net: did not receive HSTS header
hiqhub.co.uk: could not connect to host
hirefitness.co.uk: did not receive HSTS header
hirevets.gov: could not connect to host
hirokilog.com: did not receive HSTS header
hititgunesi-tr.com: did not receive HSTS header
hitoy.org: did not receive HSTS header
@ -3628,7 +3629,7 @@ huodongweb.com: could not connect to host
hup.blue: could not connect to host
huskybutt.dog: could not connect to host
hyatt.com: did not receive HSTS header
hydaelyn.com: max-age too low: 0
hydaelyn.com: could not connect to host
hydra.ws: could not connect to host
hydrodipcenter.nl: did not receive HSTS header
hydronium.cf: could not connect to host
@ -3673,13 +3674,14 @@ idcrane.com: could not connect to host
ideal-envelopes.co.uk: did not receive HSTS header
idealmoto.com: did not receive HSTS header
idealmykonos.com: did not receive HSTS header
ideaman924.com: could not connect to host
ideaman924.com: did not receive HSTS header
ideaplus.me: could not connect to host
ideasmeetingpoint.com: could not connect to host
ideation-inc.co.jp: could not connect to host
idecode.net: could not connect to host
idedr.com: could not connect to host
identitylabs.uk: could not connect to host
identitysandbox.gov: could not connect to host
idgsupply.com: did not receive HSTS header
idinby.dk: did not receive HSTS header
idisplay.es: did not receive HSTS header
@ -3753,7 +3755,7 @@ incendiary-arts.com: could not connect to host
inche-ali.com: did not receive HSTS header
inchomatic.com: did not receive HSTS header
indiecert.net: could not connect to host
indien.guide: did not receive HSTS header
indien.guide: could not connect to host
indochina.io: could not connect to host
indoorskiassen.nl: did not receive HSTS header
indredouglas.me: could not connect to host
@ -3869,7 +3871,7 @@ irazimina.ru: did not receive HSTS header
irccloud.com: did not receive HSTS header
irelandesign.com: could not connect to host
irisdina.de: did not receive HSTS header
irland.guide: did not receive HSTS header
irland.guide: could not connect to host
irmtrudjurke.de: did not receive HSTS header
irugs.ch: did not receive HSTS header
irugs.co.uk: did not receive HSTS header
@ -3901,7 +3903,6 @@ itemton.com: could not connect to host
ithakama.com: did not receive HSTS header
ithakama.cz: did not receive HSTS header
ithenrik.com: did not receive HSTS header
itilo.de: did not receive HSTS header
itinsight.hu: did not receive HSTS header
itos.asia: did not receive HSTS header
itos.pl: did not receive HSTS header
@ -3976,7 +3977,7 @@ jaqen.ch: could not connect to host
jaroslavtrsek.cz: did not receive HSTS header
jarsater.com: could not connect to host
jartza.org: could not connect to host
jasmineconseil.com: could not connect to host
jasmineconseil.com: did not receive HSTS header
jasoncosper.com: did not receive HSTS header
jasonroe.me: did not receive HSTS header
jasperespejo.com: did not receive HSTS header
@ -4144,11 +4145,11 @@ kaisers.de: did not receive HSTS header
kaiyuewu.com: could not connect to host
kalami.nl: could not connect to host
kaleidomarketing.com: did not receive HSTS header
kambodja.guide: did not receive HSTS header
kambodja.guide: could not connect to host
kamcvicit.sk: could not connect to host
kamikano.com: could not connect to host
kamikatse.net: could not connect to host
kanada.guide: did not receive HSTS header
kanada.guide: could not connect to host
kaneo-gmbh.de: could not connect to host
kaniklani.co.za: could not connect to host
kanscooking.org: did not receive HSTS header
@ -4159,7 +4160,7 @@ kaplatz.is: could not connect to host
kappit.dk: did not receive HSTS header
kapucini.si: max-age too low: 0
kaputt.com: could not connect to host
kapverde.guide: did not receive HSTS header
kapverde.guide: could not connect to host
karaoketonight.com: could not connect to host
karloskontana.tk: could not connect to host
karpanhellas.com: did not receive HSTS header
@ -4190,6 +4191,7 @@ keepclean.me: could not connect to host
keepcoalintheground.org: could not connect to host
kefaloniatoday.com: did not receive HSTS header
kenkoelectric.com: did not receive HSTS header
kentacademiestrust.org.uk: did not receive HSTS header
kerangalam.com: did not receive HSTS header
kerksanders.nl: did not receive HSTS header
kermadec.blog: could not connect to host
@ -4215,7 +4217,7 @@ killerit.in: could not connect to host
kimana.pe: did not receive HSTS header
kimberg.co.uk: could not connect to host
kimpost.org: could not connect to host
kina.guide: did not receive HSTS header
kina.guide: could not connect to host
kinderly.co.uk: did not receive HSTS header
kinderwagen-test24.de: could not connect to host
kindlyfire.com: could not connect to host
@ -4263,7 +4265,7 @@ klicktojob.de: could not connect to host
klssn.com: did not receive HSTS header
klunkergarten.org: could not connect to host
knapen.io: max-age too low: 604800
knccloud.com: could not connect to host
knccloud.com: did not receive HSTS header
kngk-transavto.ru: could not connect to host
knigadel.com: did not receive HSTS header
knight-industries.org: could not connect to host
@ -4332,7 +4334,7 @@ kryptomech.com: could not connect to host
ksfh-mail.de: could not connect to host
kstan.me: could not connect to host
kswriter.com: could not connect to host
kuba.guide: did not receive HSTS header
kuba.guide: could not connect to host
kucom.it: did not receive HSTS header
kuechenplan.online: did not receive HSTS header
kueulangtahunanak.net: could not connect to host
@ -4366,7 +4368,6 @@ laboiteapc.fr: did not receive HSTS header
labordata.io: could not connect to host
laborie.io: could not connect to host
labrador-retrievers.com.au: did not receive HSTS header
labrat.mobi: did not receive HSTS header
labs.directory: could not connect to host
labs.moscow: did not receive HSTS header
lacaverne.nl: could not connect to host
@ -4416,6 +4417,7 @@ lashstuff.com: did not receive HSTS header
lastpass.com: did not receive HSTS header
latelierdekathy.com: could not connect to host
latemodern.com: could not connect to host
lathen-wahn.de: max-age too low: 60
latinred.com: could not connect to host
latus.xyz: could not connect to host
launchkey.com: did not receive HSTS header
@ -4519,7 +4521,7 @@ lightarmory.com: could not connect to host
lightning-ashe.com: did not receive HSTS header
lightpaste.com: could not connect to host
lightworx.io: did not receive HSTS header
lila.pink: could not connect to host
lila.pink: did not receive HSTS header
lillepuu.com: did not receive HSTS header
lillpopp.eu: max-age too low: 10
lilpwny.com: could not connect to host
@ -4721,11 +4723,11 @@ maintainerheaven.ch: could not connect to host
majesnix.org: did not receive HSTS header
majncloud.tk: could not connect to host
make-pizza.info: could not connect to host
makedonien.guide: did not receive HSTS header
makedonien.guide: could not connect to host
makeitdynamic.com: could not connect to host
makerstuff.net: did not receive HSTS header
makeshiftco.de: did not receive HSTS header
maldiverna.guide: did not receive HSTS header
maldiverna.guide: could not connect to host
malena.com.ua: did not receive HSTS header
malerversand.de: did not receive HSTS header
malfait.nl: could not connect to host
@ -4953,7 +4955,7 @@ mianfei-vpn.com: could not connect to host
michaeldemuth.com: could not connect to host
michaelfitzpatrickruth.com: could not connect to host
michaelmorpurgo.com: did not receive HSTS header
michaeln.net: could not connect to host
michaeln.net: did not receive HSTS header
michaelscrivo.com: did not receive HSTS header
michaelwaite.org: could not connect to host
michal-kral.cz: could not connect to host
@ -5367,7 +5369,6 @@ newparadigmventures.net: did not receive HSTS header
newportpropertygroup.com: could not connect to host
newstarnootropics.com: max-age too low: 7776000
newtonwarp.com: could not connect to host
nexgeneration-solutions.com: could not connect to host
next176.sk: did not receive HSTS header
next47.com: did not receive HSTS header
nextcloud.org: could not connect to host
@ -5433,13 +5434,14 @@ nolimitsbook.de: did not receive HSTS header
nolte.work: could not connect to host
nomorebytes.de: could not connect to host
noodlesandwich.com: did not receive HSTS header
nootropicsource.com: did not receive HSTS header
nope.website: could not connect to host
nopex.no: could not connect to host
nopol.de: could not connect to host
norandom.com: could not connect to host
norb.at: could not connect to host
nordlicht.photography: did not receive HSTS header
norge.guide: did not receive HSTS header
norge.guide: could not connect to host
northcutt.com: did not receive HSTS header
nosecretshop.com: could not connect to host
notadd.com: did not receive HSTS header
@ -5508,7 +5510,7 @@ nuttyveg.com: could not connect to host
nwa.xyz: could not connect to host
nweb.co.nz: could not connect to host
nwork.media: could not connect to host
nyazeeland.guide: did not receive HSTS header
nyazeeland.guide: could not connect to host
nycroth.com: could not connect to host
nyesider.org: could not connect to host
nyored.com: did not receive HSTS header
@ -5705,7 +5707,7 @@ p-rickroll-o.pw: could not connect to host
p.linode.com: could not connect to host
p1c.pw: could not connect to host
p3.marketing: did not receive HSTS header
p3in.com: did not receive HSTS header
p3in.com: could not connect to host
p8r.de: could not connect to host
pa.search.yahoo.com: did not receive HSTS header
pablocamino.tk: could not connect to host
@ -5976,7 +5978,7 @@ pokeduel.me: did not receive HSTS header
pol.in.th: could not connect to host
polarityschule.com: did not receive HSTS header
pole.net.nz: could not connect to host
polen.guide: did not receive HSTS header
polen.guide: could not connect to host
policeiwitness.sg: could not connect to host
polimat.org: could not connect to host
politically-incorrect.xyz: could not connect to host
@ -5996,7 +5998,7 @@ popi.se: did not receive HSTS header
popkins.ml: could not connect to host
poris.web.id: could not connect to host
porno-gif.ru: did not receive HSTS header
pornstars.me: could not connect to host
pornstars.me: did not receive HSTS header
portalm.tk: could not connect to host
portalplatform.net: could not connect to host
portaluniversalista.org: did not receive HSTS header
@ -6004,6 +6006,7 @@ portofacil.com: did not receive HSTS header
poshpak.com: max-age too low: 86400
postback.io: could not connect to host
postcodewise.co.uk: did not receive HSTS header
posterspy.com: did not receive HSTS header
postscheduler.org: could not connect to host
posylka.de: did not receive HSTS header
potatoheads.net: could not connect to host
@ -6110,10 +6113,10 @@ pscleaningsolutions.co.uk: could not connect to host
pseudo.coffee: could not connect to host
pshostpk.com: did not receive HSTS header
psicologia.co.ve: could not connect to host
psicosalud.online: did not receive HSTS header
psw.academy: could not connect to host
psw.consulting: could not connect to host
psychoco.net: could not connect to host
psylab.re: could not connect to host
ptn.moscow: could not connect to host
ptonet.com: could not connect to host
pubkey.is: could not connect to host
@ -6486,7 +6489,7 @@ rxt.social: could not connect to host
rxv.cc: could not connect to host
ryanteck.uk: did not receive HSTS header
rylin.net: did not receive HSTS header
ryssland.guide: did not receive HSTS header
ryssland.guide: could not connect to host
s-d-v.ch: could not connect to host
s-rickroll-p.pw: could not connect to host
s.how: could not connect to host
@ -6577,7 +6580,7 @@ schroettle.com: did not receive HSTS header
schulterglatzen-altenwalde.de: could not connect to host
schultzflorists.com: could not connect to host
schwarzkopfforyou.de: did not receive HSTS header
schweiz.guide: did not receive HSTS header
schweiz.guide: could not connect to host
schweizerbolzonello.net: did not receive HSTS header
schwetz.net: could not connect to host
scicasts.com: max-age too low: 7776000
@ -6603,7 +6606,7 @@ scribbleserver.com: could not connect to host
scribe.systems: could not connect to host
scrion.com: could not connect to host
script.google.com: did not receive HSTS header (error ignored - included regardless)
scriptenforcer.net: did not receive HSTS header
scriptenforcer.net: could not connect to host
scriptict.nl: could not connect to host
scrollstory.com: did not receive HSTS header
sdhmanagementgroup.com: could not connect to host
@ -6646,7 +6649,6 @@ secureradio.net: could not connect to host
securesuisse.ch: could not connect to host
security-carpet.com: could not connect to host
security-thoughts.org: could not connect to host
security201.com: could not connect to host
securitybsides.pl: did not receive HSTS header
securityglance.com: could not connect to host
securityinet.biz: did not receive HSTS header
@ -6696,7 +6698,7 @@ seosanantonioinc.com: did not receive HSTS header
seowarp.net: did not receive HSTS header
seq.tf: did not receive HSTS header
serathius.ovh: could not connect to host
serbien.guide: did not receive HSTS header
serbien.guide: could not connect to host
serenitycreams.com: did not receive HSTS header
serfdom.io: did not receive HSTS header
serized.pw: could not connect to host
@ -6718,7 +6720,6 @@ seyahatsagliksigortalari.com: could not connect to host
sfashion.si: did not receive HSTS header
sfhobbies.com.br: could not connect to host
sfsltd.com: did not receive HSTS header
sg-elektro.de: did not receive HSTS header
sh11.pp.ua: did not receive HSTS header
shadoom.com: did not receive HSTS header
shadow-socks.net: did not receive HSTS header
@ -7029,7 +7030,6 @@ srpdb.com: did not receive HSTS header
srrr.ca: could not connect to host
ss-free.net: could not connect to host
ss.wtf: could not connect to host
sscd.no: could not connect to host
ssdax.com: did not receive HSTS header
ssl.panoramio.com: did not receive HSTS header
ssl.rip: could not connect to host
@ -7058,7 +7058,7 @@ stargatepartners.com: did not receive HSTS header
starmusic.ga: did not receive HSTS header
starttraffic.com: did not receive HSTS header
startuponcloud.com: max-age too low: 2678400
startuppeople.co.uk: did not receive HSTS header
startuppeople.co.uk: could not connect to host
stash.ai: did not receive HSTS header
stassi.ch: did not receive HSTS header
state-sponsored-actors.net: could not connect to host
@ -7103,7 +7103,7 @@ stole-my.tv: could not connect to host
stolkschepen.nl: did not receive HSTS header
stonecutterscommunity.com: could not connect to host
stopwoodfin.org: could not connect to host
storbritannien.guide: did not receive HSTS header
storbritannien.guide: could not connect to host
storecove.com: did not receive HSTS header
storeden.com: did not receive HSTS header
storefrontify.com: did not receive HSTS header
@ -7126,7 +7126,6 @@ stroeercrm.de: could not connect to host
strongest-privacy.com: could not connect to host
stuartbaxter.co: could not connect to host
student-scientist.org: did not receive HSTS header
student.andover.edu: did not receive HSTS header
studentrdh.com: did not receive HSTS header
studentresearcher.org: did not receive HSTS header
studentskydenik.cz: could not connect to host
@ -7159,7 +7158,6 @@ sumoatm.com: did not receive HSTS header
sumoscout.de: could not connect to host
suncountrymarine.com: did not receive HSTS header
sundanceusa.com: did not receive HSTS header
sunflyer.cn: did not receive HSTS header
sunlandsg.vn: did not receive HSTS header
sunnyfruit.ru: could not connect to host
sunshinepress.org: could not connect to host
@ -7365,7 +7363,7 @@ tempus-aquilae.de: could not connect to host
tendertool.nl: could not connect to host
tenerife-villas.com: did not receive HSTS header
tengroup.com: did not receive HSTS header
tenmm.com: max-age too low: 0
tenmm.com: could not connect to host
tenni.xyz: could not connect to host
tensei-slime.com: did not receive HSTS header
tensionup.com: could not connect to host
@ -7386,7 +7384,6 @@ tfcoms-sp-tracker-client.azurewebsites.net: could not connect to host
tffans.com: could not connect to host
tfl.lu: did not receive HSTS header
tgr.re: could not connect to host
th-bl.de: did not receive HSTS header
thaihostcool.com: did not receive HSTS header
thailandpropertylistings.com: did not receive HSTS header
thalmann.fr: did not receive HSTS header
@ -7550,7 +7547,7 @@ tittarpuls.se: could not connect to host
titties.ml: could not connect to host
tjc.host: did not receive HSTS header
tjc.wiki: could not connect to host
tjeckien.guide: did not receive HSTS header
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
@ -7641,7 +7638,6 @@ tpms4u.at: did not receive HSTS header
tracker-gps.ch: could not connect to host
tracktivity.com.au: did not receive HSTS header
trade-smart.ru: could not connect to host
trade.gov.uk: could not connect to host
tradingcentre.com.au: did not receive HSTS header
tradinghope.com: could not connect to host
trafficquality.org: could not connect to host
@ -7761,7 +7757,7 @@ tyrelius.com: did not receive HSTS header
tyroproducts.eu: did not receive HSTS header
tyroremotes.eu: did not receive HSTS header
tyroremotes.no: did not receive HSTS header
tyskland.guide: did not receive HSTS header
tyskland.guide: could not connect to host
tzappa.net: could not connect to host
u-blox.com: max-age too low: 0
u.nu: could not connect to host
@ -7806,7 +7802,7 @@ unblocked.faith: could not connect to host
unblocked.host: could not connect to host
unblocked.party: could not connect to host
unblocked.today: did not receive HSTS header
unblocked.win: did not receive HSTS header
unblocked.win: could not connect to host
unblocked.works: did not receive HSTS header
unblocked.world: did not receive HSTS header
unblockedall.site: could not connect to host
@ -7823,7 +7819,7 @@ unclegen.xyz: could not connect to host
under30stravelinsurance.com.au: did not receive HSTS header
underkin.com: could not connect to host
unfiltered.nyc: could not connect to host
ungern.guide: did not receive HSTS header
ungern.guide: could not connect to host
uni-games.com: could not connect to host
unicefkaarten.be: did not receive HSTS header
unicooo.com: could not connect to host
@ -7852,7 +7848,6 @@ up1.ca: could not connect to host
upaknship.com: did not receive HSTS header
upboard.jp: could not connect to host
upldr.pw: could not connect to host
upload.cat: did not receive HSTS header
uporoops.com: could not connect to host
uprotect.it: could not connect to host
upstats.eu: could not connect to host
@ -7955,7 +7950,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: could not connect to host
venturepro.com: did not receive HSTS header
ventzke.com: did not receive HSTS header
venzocrm.com: did not receive HSTS header
verifikatorindonesia.com: could not connect to host
@ -7982,7 +7977,7 @@ videotogel.net: did not receive HSTS header
videoueberwachung-set.de: did not receive HSTS header
vider.ga: could not connect to host
vidid.net: did not receive HSTS header
vidz.ga: did not receive HSTS header
vidz.ga: could not connect to host
vietnamchevrolet.net: did not receive HSTS header
vietnamphotographytours.com: could not connect to host
vigilo.cf: could not connect to host
@ -8080,7 +8075,6 @@ w4xzr.xyz: could not connect to host
waaw.tv: did not receive HSTS header
wachtwoordencheck.nl: could not connect to host
wafairhaven.com.au: did not receive HSTS header
wahhoi.net: did not receive HSTS header
wait.moe: could not connect to host
waixingrenfuli7.vip: could not connect to host
wakapp.de: could not connect to host
@ -8113,10 +8107,8 @@ warsh.moe: did not receive HSTS header
watchium.com: did not receive HSTS header
waterforlife.net.au: did not receive HSTS header
waterpoint.com.br: did not receive HSTS header
watersb.org: could not connect to host
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
@ -8550,7 +8542,7 @@ zao.fi: did not receive HSTS header
zaoshanghao-dajia.rhcloud.com: did not receive HSTS header
zap.yt: did not receive HSTS header
zarooba.com: could not connect to host
zavca.com: could not connect to host
zavca.com: did not receive HSTS header
zbigniewgalucki.eu: did not receive HSTS header
zcon.nl: could not connect to host
zdravotnickasluzba.eu: could not connect to host

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

@ -8,7 +8,7 @@
/*****************************************************************************/
#include <stdint.h>
const PRTime gPreloadListExpirationTime = INT64_C(1518501054306000);
const PRTime gPreloadListExpirationTime = INT64_C(1518543721375000);
%%
0.me.uk, 1
00001.am, 1
@ -326,7 +326,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1518501054306000);
500k.nl, 1
500p.xyz, 1
50plusnet.nl, 1
518maicai.com, 1
518maicai.com, 0
525.info, 1
52neptune.com, 1
5432.cc, 1
@ -969,6 +969,7 @@ alainbaechlerphotography.ch, 1
alainmargot.ch, 1
alainwolf.ch, 1
alainwolf.net, 1
alair.cn, 0
alamgir.works, 1
alanhuang.name, 1
alaninkenya.org, 1
@ -1646,7 +1647,6 @@ aqualogy.de, 1
aquapoint.kiev.ua, 1
aquarium-supplement.net, 1
aquariumaccessories.shop, 1
aquaron.com, 1
aquaselect.eu, 1
aquatechnologygroup.com, 1
aquavitaedayspa.com.au, 1
@ -3826,7 +3826,6 @@ cadman.pw, 1
cadooz.com, 1
cadorama.fr, 1
cadoth.net, 1
cadusilva.com, 1
caerostris.com, 1
caesarkabalan.com, 1
cafechesscourt.com, 1
@ -3919,7 +3918,6 @@ canalsidehouse.be, 1
canalsidehouse.com, 1
canarianlegalalliance.com, 1
canarymod.net, 0
cancelmyprofile.com, 1
cancerdata.nhs.uk, 1
cancreate.nl, 1
candicecity.com, 1
@ -4180,6 +4178,7 @@ cefak.org.br, 1
cegfw.com, 1
ceilingpac.org, 1
cejhon.cz, 0
cekaja.com, 1
celebphotos.blog, 1
celebrityscope.net, 1
celec.gob.ec, 0
@ -4559,6 +4558,7 @@ 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
@ -4780,7 +4780,7 @@ cloudia.org, 1
cloudily.com, 1
cloudlight.biz, 1
cloudmigrator365.com, 1
cloudopt.net, 1
cloudopt.net, 0
cloudoptimizedsmb.com, 1
cloudoptimus.com, 1
cloudpagesforwork.com, 1
@ -5003,7 +5003,6 @@ collbox.co, 1
collectdocs.com, 1
collectfood.com, 1
collectiblebeans.com, 1
collectosaurus.com, 1
colleencornez.com, 1
collegepaperworld.com, 1
collinghammethodist.org.uk, 1
@ -5047,6 +5046,7 @@ comfypc.com, 1
comhack.com, 1
comico.info, 1
comiq.io, 1
comiteaintriathlon.fr, 1
comm.cx, 1
commania.co.kr, 1
commencepayments.com, 1
@ -5561,6 +5561,7 @@ cubecraft.net, 1
cubecraftstore.com, 1
cubecraftstore.net, 1
cubekrowd.net, 1
cubela.tech, 1
cubia.de, 1
cubia3.com, 1
cubia4.com, 1
@ -6002,7 +6003,7 @@ davy-server.com, 1
daw.nz, 1
dawnbringer.eu, 1
dawnbringer.net, 1
dawnson.is, 0
dawnson.is, 1
dawnsonb.com, 1
dawson-floridavilla.co.uk, 1
day-peak.com, 1
@ -6321,7 +6322,6 @@ deux.solutions, 1
deuxsol.co, 1
deuxsol.com, 1
deuxsolutions.com, 1
dev-pulse-mtn.pantheonsite.io, 1
dev-talk.eu, 1
dev-talk.net, 1
dev-tek.de, 1
@ -6658,7 +6658,7 @@ dlaspania.pl, 1
dlde.ru, 1
dldl.fr, 1
dlfsymposium.nl, 1
dlg.im, 1
dlg.im, 0
dlitz.net, 1
dlld.com, 1
dlouwrink.nl, 1
@ -7443,6 +7443,7 @@ einheizpreis.de, 1
einmonolog.de, 1
einsatzstellenverwaltung.de, 1
einsatzstiefel.info, 1
einsteinathome.org, 1
eintageinzug.de, 1
eintragsservice24.de, 1
eipione.com, 1
@ -7547,7 +7548,6 @@ elistor6100.xyz, 1
elite-box.com, 1
elite-box.org, 1
elite12.de, 1
elitecovering.fr, 1
elitegameservers.net, 1
elitehosting.de, 1
elixir.bzh, 1
@ -8383,6 +8383,7 @@ faretravel.co.uk, 1
farfallapets.com.br, 1
farfetchos.com, 1
fargtorget.se, 1
farhadexchange.com, 1
farhood.org, 1
farkas.bz, 1
farm24.co.uk, 1
@ -9688,6 +9689,7 @@ getdigitized.net, 1
geteckeld.nl, 1
geterp.ru, 1
getfedora.org, 1
getfilterlive.org, 1
getfittedstore.com, 1
getflorence.co.uk, 1
getfuturama.com, 1
@ -10625,7 +10627,6 @@ healthcare.gov, 0
healtheffectsofasbestos.com, 1
healthfoam.com, 1
healthiercompany.com, 1
healthjoy.com, 1
healthlabs.com, 1
healthmatchapp.com, 1
healththoroughfare.com, 1
@ -12192,6 +12193,7 @@ itfaq.nl, 1
itfh.eu, 1
itfix.cz, 1
itforge.nl, 1
itilo.de, 1
itiomassagem.com.br, 1
itis.gov, 1
itis4u.ch, 1
@ -13203,7 +13205,6 @@ kenny-peck.com, 1
keno.im, 1
kenoschwalb.com, 1
kenrogers.co, 1
kentacademiestrust.org.uk, 1
kentec.net, 1
kenterlis.gr, 1
kenvix.com, 1
@ -13967,7 +13968,6 @@ latetrain.cn, 1
lathamlabs.com, 1
lathamlabs.net, 1
lathamlabs.org, 1
lathen-wahn.de, 1
latino.dating, 1
latinphone.com, 1
latitude42technology.com, 1
@ -17287,6 +17287,7 @@ newtnote.com, 1
newtonhaus.com, 1
newtrackon.com, 1
nex.sx, 1
nexgeneration-solutions.com, 1
nexicafiles.com, 1
nexlab.org, 1
next-log.ru, 0
@ -17554,7 +17555,6 @@ noop.ch, 1
noordsee.de, 1
noorsolidarity.com, 1
nootropic.com, 1
nootropicsource.com, 1
nopaste.xyz, 1
nord-sud.be, 1
nordakademie.de, 1
@ -19396,7 +19396,6 @@ postdarwinian.com, 1
postdarwinism.com, 1
postdeck.de, 1
posteo.de, 0
posterspy.com, 1
postfinance.ch, 1
postmatescode.com, 1
postn.eu, 1
@ -19733,7 +19732,6 @@ pseta.ru, 1
psicoexpansao.com.br, 1
psicologoforensebarcelona.com, 1
psicologoforensemadrid.com, 1
psicosalud.online, 1
psm.org.ph, 1
psncardplus.be, 1
psncardplus.com, 1
@ -19763,6 +19761,7 @@ psychotherapie-kp.de, 1
psydix.org, 1
psyk.yt, 0
psylab.cc, 1
psylab.re, 1
psylab.vip, 1
pt-server.de, 1
ptbi.org.pl, 1
@ -20449,6 +20448,7 @@ report-uri.io, 1
report-url.com, 1
report-url.io, 1
reported.ly, 1
reporting.gov, 0
reporturi.com, 1
reporturi.io, 1
reporturl.com, 1
@ -21567,6 +21567,7 @@ seanholcroft.co.uk, 1
seanstrout.com, 1
seansyardservice.com, 1
seaplayhomes.com, 1
search.gov, 1
search.yahoo.com, 0
searchbrothers.at, 1
searchbrothers.ch, 1
@ -21655,6 +21656,7 @@ security.google.com, 1
security.love, 1
security.xn--q9jyb4c, 1
security201.co.uk, 1
security201.com, 1
securityarena.com, 1
securitybrief.asia, 1
securitybrief.co.nz, 1
@ -21887,6 +21889,7 @@ sfg-nordholz.de, 1
sfirat-haomer.com, 1
sfo-fog.ch, 1
sftool.gov, 1
sg-elektro.de, 1
sg.search.yahoo.com, 0
sgcaccounts.co.uk, 1
sgroup-hitoduma.com, 1
@ -23030,6 +23033,7 @@ ss64.org, 1
ssa.gov, 0
ssbkk.ru, 1
ssbrm.ch, 1
sscd.no, 1
ssenberg.nl, 1
ssh-keys.online, 1
ssh-vault.com, 1
@ -23377,6 +23381,7 @@ stuco.co, 1
studenckiemetody.pl, 1
student-eshop.cz, 1
student-eshop.sk, 1
student.andover.edu, 1
studentforums.biz, 1
studentite.bg, 0
studentloans.gov, 1
@ -23482,6 +23487,7 @@ sundaycooks.com, 1
sundayfundayjapan.com, 1
suneilpatel.com, 1
sunfireshop.com.br, 1
sunflyer.cn, 0
sunfox.cz, 1
sunfulong.me, 1
sungo.wtf, 1
@ -24172,6 +24178,7 @@ tgod.co, 1
tgui.eu, 1
tgui.net, 1
tgw.com, 1
th-bl.de, 1
th.search.yahoo.com, 0
th3nd.com, 1
thackbarth.net, 1
@ -24981,6 +24988,7 @@ trackersimulator.org, 1
trackeye.dk, 1
trackmeet.io, 1
tractorpumps.com, 1
trade.gov.uk, 1
tradedesk.co.za, 1
tradeinvent.co.uk, 1
trademan.ky, 1
@ -25613,6 +25621,7 @@ upgauged.com, 1
upitnik.rs, 1
uplaqui.com.br, 1
uplinklabs.net, 1
upload.cat, 1
upload.facebook.com, 0
uploadbeta.com, 1
upmchealthsecurity.us, 1
@ -26315,6 +26324,7 @@ waelti.xxx, 1
wafa4hw.com, 1
waffle.at, 1
wafni.com, 1
wahhoi.net, 0
wahidhasan.com, 1
wahlman.org, 1
wahrnehmungswelt.de, 1
@ -26398,8 +26408,10 @@ watchstyle.com, 1
watchweasel.com, 1
waterfedpole.com, 1
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

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

@ -7,6 +7,7 @@
#include "sandboxBroker.h"
#include <string>
#include <vector>
#include "base/win/windows_version.h"
#include "mozilla/Assertions.h"
@ -28,10 +29,26 @@
#include "sandbox/win/src/security_level.h"
#include "WinUtils.h"
// We're just blocking one DLL for the moment because of problems with the
// Alternate Desktop. If and when we expand this we'll make this a static list
// and add checking to see if DLL is loaded in the parent.
#define WEBROOT_DLL L"WRusr.dll"
// This list of DLLs have been found to cause instability in sandboxed child
// processes and so they will be unloaded if they attempt to load.
const std::vector<std::wstring> kDllsToUnload = {
// HitmanPro - SurfRight now part of Sophos (bug 1400637)
L"hmpalert.dll",
// K7 Computing (bug 1400637)
L"k7pswsen.dll",
// Symantec (bug 1400637)
L"prntm64.dll",
L"sysfer.dll",
// Avast Antivirus (bug 1400637)
L"snxhk64.dll",
L"snxhk.dll",
// Webroot SecureAnywhere (bug 1400637)
L"wrusr.dll",
};
namespace mozilla
{
@ -216,9 +233,20 @@ SandboxBroker::LaunchApp(const wchar_t *aPath,
sandbox::TargetPolicy::FILES_ALLOW_ANY, logFileName);
}
// Add DLLs to the policy that have been found to cause instability with the
// sandbox, so that they will be unloaded when they attempt to load.
sandbox::ResultCode result;
for (std::wstring dllToUnload : kDllsToUnload) {
// Similar to Chromium, we only add a DLL if it is loaded in this process.
if (::GetModuleHandleW(dllToUnload.c_str())) {
result = mPolicy->AddDllToUnload(dllToUnload.c_str());
MOZ_RELEASE_ASSERT(sandbox::SBOX_ALL_OK == result,
"AddDllToUnload should never fail, what happened?");
}
}
// Ceate the sandboxed process
PROCESS_INFORMATION targetInfo = {0};
sandbox::ResultCode result;
sandbox::ResultCode last_warning = sandbox::SBOX_ALL_OK;
DWORD last_error = ERROR_SUCCESS;
result = sBrokerService->SpawnTarget(aPath, aArguments, mPolicy,
@ -445,12 +473,6 @@ SandboxBroker::SetSecurityLevelForContentProcess(int32_t aSandboxLevel,
MOZ_RELEASE_ASSERT(sandbox::SBOX_ALL_OK == result,
"Failed to create alternate desktop for sandbox.");
// Webroot SecureAnywhere causes crashes when we use an Alternate Desktop,
// so block the DLL from loading in the child process. (bug 1400637)
result = mPolicy->AddDllToUnload(WEBROOT_DLL);
MOZ_RELEASE_ASSERT(sandbox::SBOX_ALL_OK == result,
"AddDllToUnload should never fail, what happened?");
mitigations |= sandbox::MITIGATION_IMAGE_LOAD_NO_LOW_LABEL;
// If we're running from a network drive then we can't block loading from
// remote locations.
@ -833,12 +855,6 @@ SandboxBroker::SetSecurityLevelForGMPlugin(SandboxLevel aLevel)
SANDBOX_ENSURE_SUCCESS(result,
"Failed to create alternate desktop for sandbox.");
// Webroot SecureAnywhere causes crashes when we use an Alternate Desktop,
// so block the DLL from loading in the child process. (bug 1400637)
result = mPolicy->AddDllToUnload(WEBROOT_DLL);
MOZ_RELEASE_ASSERT(sandbox::SBOX_ALL_OK == result,
"AddDllToUnload should never fail, what happened?");
result = mPolicy->SetIntegrityLevel(sandbox::INTEGRITY_LEVEL_LOW);
MOZ_ASSERT(sandbox::SBOX_ALL_OK == result,
"SetIntegrityLevel should never fail with these arguments, what happened?");