зеркало из https://github.com/mozilla/gecko-dev.git
merge mozilla-central to autoland. r=merge a=merge
This commit is contained in:
Коммит
296a098e22
|
@ -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(¬IonFrame);
|
||||
|
||||
// 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(¬IonFrame);
|
||||
|
||||
// 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(¬IonFrame);
|
||||
|
||||
// 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(¬IonFrame);
|
||||
|
||||
// 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(¬IonFrame);
|
||||
|
||||
// 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(¬IonFrame);
|
||||
|
||||
// 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?");
|
||||
|
|
Загрузка…
Ссылка в новой задаче