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

This commit is contained in:
Sebastian Hengst 2017-10-29 00:23:03 +02:00
Родитель 286061948f aa280593d3
Коммит 7abe8d7079
32 изменённых файлов: 1048 добавлений и 506 удалений

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

@ -187,10 +187,14 @@ HandlerProvider::BuildIA2Data(IA2Data* aOutIA2Data)
MOZ_ASSERT(mTargetUnk);
MOZ_ASSERT(IsTargetInterfaceCacheable());
RefPtr<NEWEST_IA2_INTERFACE>
target(static_cast<NEWEST_IA2_INTERFACE*>(mTargetUnk.get()));
RefPtr<NEWEST_IA2_INTERFACE> target;
HRESULT hr = mTargetUnk.get()->QueryInterface(NEWEST_IA2_IID,
getter_AddRefs(target));
if (FAILED(hr)) {
return;
}
HRESULT hr = E_UNEXPECTED;
hr = E_UNEXPECTED;
auto hasFailed = [&hr]() -> bool {
return FAILED(hr);
@ -294,7 +298,8 @@ HandlerProvider::ClearIA2Data(IA2Data& aData)
bool
HandlerProvider::IsTargetInterfaceCacheable()
{
return MarshalAs(mTargetUnkIid) == NEWEST_IA2_IID;
return MarshalAs(mTargetUnkIid) == NEWEST_IA2_IID ||
mTargetUnkIid == IID_IAccessibleHyperlink;
}
HRESULT

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

@ -28,6 +28,7 @@
#include "Accessible2_i.c"
#include "Accessible2_2_i.c"
#include "Accessible2_3_i.c"
#include "AccessibleHyperlink_i.c"
namespace mozilla {
namespace a11y {
@ -60,6 +61,7 @@ AccessibleHandler::AccessibleHandler(IUnknown* aOuter, HRESULT* aResult)
, mDispatch(nullptr)
, mIA2PassThru(nullptr)
, mServProvPassThru(nullptr)
, mIAHyperlinkPassThru(nullptr)
, mCachedData()
, mCacheGen(0)
{
@ -104,6 +106,29 @@ AccessibleHandler::ResolveIA2()
return hr;
}
HRESULT
AccessibleHandler::ResolveIAHyperlink()
{
if (mIAHyperlinkPassThru) {
return S_OK;
}
RefPtr<IUnknown> proxy(GetProxy());
if (!proxy) {
return E_UNEXPECTED;
}
HRESULT hr = proxy->QueryInterface(IID_IAccessibleHyperlink,
reinterpret_cast<void**>(&mIAHyperlinkPassThru));
if (SUCCEEDED(hr)) {
// mIAHyperlinkPassThru is a weak reference
// (see comments in AccesssibleHandler.h)
mIAHyperlinkPassThru->Release();
}
return hr;
}
HRESULT
AccessibleHandler::MaybeUpdateCachedData()
{
@ -392,6 +417,8 @@ CopyBSTR(BSTR aSrc)
assignTo = CopyBSTR(mCachedData.mData.member); \
}
/*** IAccessible ***/
HRESULT
AccessibleHandler::get_accParent(IDispatch **ppdispParent)
{
@ -709,6 +736,8 @@ AccessibleHandler::put_accValue(VARIANT varChild, BSTR szValue)
return E_NOTIMPL;
}
/*** IAccessible2 ***/
HRESULT
AccessibleHandler::get_nRelations(long* nRelations)
{
@ -966,6 +995,8 @@ AccessibleHandler::get_attributes(BSTR* attributes)
return S_OK;
}
/*** IAccessible2_2 ***/
HRESULT
AccessibleHandler::get_attribute(BSTR name, VARIANT* attribute)
{
@ -1000,6 +1031,8 @@ AccessibleHandler::get_relationTargetsOfType(BSTR type, long maxTargets,
nTargets);
}
/*** IAccessible2_3 ***/
HRESULT
AccessibleHandler::get_selectionRanges(IA2Range** ranges, long* nRanges)
{
@ -1023,6 +1056,8 @@ static const GUID kUnsupportedServices[] = {
{0xb96fdb85, 0x7204, 0x4724, { 0x84, 0x2b, 0xc7, 0x05, 0x9d, 0xed, 0xb9, 0xd0 }}
};
/*** IServiceProvider ***/
HRESULT
AccessibleHandler::QueryService(REFGUID aServiceId, REFIID aIid,
void** aOutInterface)
@ -1064,6 +1099,8 @@ AccessibleHandler::QueryService(REFGUID aServiceId, REFIID aIid,
return mServProvPassThru->QueryService(aServiceId, aIid, aOutInterface);
}
/*** IProvideClassInfo ***/
HRESULT
AccessibleHandler::GetClassInfo(ITypeInfo** aOutTypeInfo)
{
@ -1075,6 +1112,124 @@ AccessibleHandler::GetClassInfo(ITypeInfo** aOutTypeInfo)
return ctl->GetHandlerTypeInfo(aOutTypeInfo);
}
/*** IAccessibleAction ***/
HRESULT
AccessibleHandler::nActions(long* nActions)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->nActions(nActions);
}
HRESULT
AccessibleHandler::doAction(long actionIndex)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->doAction(actionIndex);
}
HRESULT
AccessibleHandler::get_description(long actionIndex, BSTR* description)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_description(actionIndex, description);
}
HRESULT
AccessibleHandler::get_keyBinding(long actionIndex,
long nMaxBindings,
BSTR** keyBindings,
long* nBindings)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_keyBinding(
actionIndex, nMaxBindings, keyBindings, nBindings);
}
HRESULT
AccessibleHandler::get_name(long actionIndex, BSTR* name)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_name(actionIndex, name);
}
HRESULT
AccessibleHandler::get_localizedName(long actionIndex, BSTR* localizedName)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_localizedName(actionIndex, localizedName);
}
/*** IAccessibleHyperlink ***/
HRESULT
AccessibleHandler::get_anchor(long index, VARIANT* anchor)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_anchor(index, anchor);
}
HRESULT
AccessibleHandler::get_anchorTarget(long index, VARIANT* anchorTarget)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_anchorTarget(index, anchorTarget);
}
HRESULT
AccessibleHandler::get_startIndex(long* index)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_startIndex(index);
}
HRESULT
AccessibleHandler::get_endIndex(long* index)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_endIndex(index);
}
HRESULT
AccessibleHandler::get_valid(boolean* valid)
{
HRESULT hr = ResolveIAHyperlink();
if (FAILED(hr)) {
return hr;
}
return mIAHyperlinkPassThru->get_valid(valid);
}
} // namespace a11y
} // namespace mozilla

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

@ -35,6 +35,7 @@ import NEWEST_IA2_IDL;
#if !defined(MOZILLA_INTERNAL_API)
#include "Accessible2_3.h"
#include "AccessibleHyperlink.h"
#include "Handler.h"
#include "mozilla/mscom/StructStream.h"
#include "mozilla/UniquePtr.h"
@ -49,6 +50,7 @@ class AccessibleHandler final : public mscom::Handler
, public NEWEST_IA2_INTERFACE
, public IServiceProvider
, public IProvideClassInfo
, public IAccessibleHyperlink
{
public:
static HRESULT Create(IUnknown* aOuter, REFIID aIid, void** aOutInterface);
@ -152,12 +154,32 @@ public:
// IProvideClassInfo
STDMETHODIMP GetClassInfo(ITypeInfo** aOutTypeInfo) override;
// IAccessibleAction
STDMETHODIMP nActions(long* nActions) override;
STDMETHODIMP doAction(long actionIndex) override;
STDMETHODIMP get_description(long actionIndex, BSTR* description) override;
STDMETHODIMP get_keyBinding(long actionIndex,
long nMaxBindings,
BSTR** keyBindings,
long* nBindings) override;
STDMETHODIMP get_name(long actionIndex, BSTR* name) override;
STDMETHODIMP get_localizedName(long actionIndex,
BSTR* localizedName) override;
// IAccessibleHyperlink
STDMETHODIMP get_anchor(long index, VARIANT* anchor) override;
STDMETHODIMP get_anchorTarget(long index, VARIANT* anchorTarget) override;
STDMETHODIMP get_startIndex(long* index) override;
STDMETHODIMP get_endIndex(long* index) override;
STDMETHODIMP get_valid(boolean* valid) override;
private:
AccessibleHandler(IUnknown* aOuter, HRESULT* aResult);
virtual ~AccessibleHandler();
HRESULT ResolveIA2();
HRESULT ResolveIDispatch();
HRESULT ResolveIAHyperlink();
HRESULT MaybeUpdateCachedData();
RefPtr<IUnknown> mDispatchUnk;
@ -183,6 +205,7 @@ private:
IDispatch* mDispatch; // weak
NEWEST_IA2_INTERFACE* mIA2PassThru; // weak
IServiceProvider* mServProvPassThru; // weak
IAccessibleHyperlink* mIAHyperlinkPassThru; // weak
IA2Payload mCachedData;
UniquePtr<mscom::StructToStream> mSerializer;
uint32_t mCacheGen;

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

@ -9,3 +9,7 @@
background: var(--chrome-background-color);
}
#TabsToolbar:-moz-lwtheme-darktext {
-moz-appearance: -moz-mac-vibrancy-light;
-moz-font-smoothing-background-color: -moz-mac-vibrancy-light;
}

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

@ -75,10 +75,6 @@ toolbar[brighttext] .toolbarbutton-1 {
color: var(--chrome-color);
}
#TabsToolbar:-moz-lwtheme-darktext {
-moz-appearance: -moz-mac-vibrancy-light;
}
#navigator-toolbox > toolbar:not(#TabsToolbar):not(#toolbar-menubar),
.browserContainer > findbar,
#browser-bottombox {

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

@ -290,7 +290,7 @@ fuzzy-if(skiaContent,1,5) == 262998-1.html 262998-1-ref.html
== 269908-5.html 269908-5-ref.html
== 271747-1a.html 271747-1-ref.html
== 271747-1b.html 271747-1-ref.html
fails-if(stylo&&cocoaWidget) == 272646-1.xul 272646-1-ref.xul # bug 1410787
== 272646-1.xul 272646-1-ref.xul
== 272646-2a.xul 272646-2-ref.xul
== 272646-2b.xul 272646-2-ref.xul
== 272646-2c.xul 272646-2-ref.xul

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

@ -15,3 +15,5 @@ pref(dom.webcomponents.enabled,true) == dynamic-insertion-point-distribution-2.h
pref(dom.webcomponents.enabled,true) == remove-append-shadow-host-1.html remove-append-shadow-host-1-ref.html
pref(dom.webcomponents.enabled,true) == reframe-shadow-child-1.html reframe-shadow-child-ref.html
pref(dom.webcomponents.enabled,true) == reframe-shadow-child-2.html reframe-shadow-child-ref.html
pref(dom.webcomponents.enabled,true) == style-sharing.html style-sharing-ref.html
pref(dom.webcomponents.enabled,true) skip-if(!stylo||styloVsGecko) == style-sharing-across-shadow.html style-sharing-ref.html # bug 1412400

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

@ -0,0 +1,22 @@
<!doctype html>
<style>
div { display: contents }
</style>
<div></div>
<div></div>
<script>
let divs = document.querySelectorAll('div');
divs[0].createShadowRoot().innerHTML = `
<style>
* { color: green; }
</style>
<span>Should be green</span>
`;
divs[1].createShadowRoot().innerHTML = `
<style>
* { color: initial; }
[foo] { }
</style>
<span>Should not be green</span>
`;
</script>

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

@ -0,0 +1,5 @@
<!doctype html>
<div>
<span style="color: green">Should be green</span>
<span>Should not be green</span>
</div>

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

@ -0,0 +1,14 @@
<!doctype html>
<div id="host"></div>
<script>
let root = host.createShadowRoot();
root.innerHTML = `
<style>
#test {
color: green;
}
</style>
<span id="test">Should be green</span>
<span id="test2">Should not be green</span>
`;
</script>

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

@ -1468,27 +1468,27 @@ AuthCertificate(CertVerifier& certVerifier,
infoObject->SetSSLStatus(status);
}
if (!status->HasServerCert()) {
EVStatus evStatus;
if (evOidPolicy == SEC_OID_UNKNOWN) {
evStatus = EVStatus::NotEV;
} else {
evStatus = EVStatus::EV;
}
RefPtr<nsNSSCertificate> nsc = nsNSSCertificate::Create(cert.get());
status->SetServerCert(nsc, evStatus);
MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
("AuthCertificate setting NEW cert %p", nsc.get()));
EVStatus evStatus;
if (evOidPolicy == SEC_OID_UNKNOWN) {
evStatus = EVStatus::NotEV;
} else {
evStatus = EVStatus::EV;
}
RefPtr<nsNSSCertificate> nsc = nsNSSCertificate::Create(cert.get());
status->SetServerCert(nsc, evStatus);
status->SetSucceededCertChain(Move(certList));
MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
("AuthCertificate setting NEW cert %p", nsc.get()));
status->SetCertificateTransparencyInfo(certificateTransparencyInfo);
}
if (rv != Success) {
// Certificate validation failed; store the peer certificate chain on
// infoObject so it can be used for error reporting.
infoObject->SetFailedCertChain(Move(peerCertChain));
infoObject->SetFailedCertChain(Move(certList));
PR_SetError(MapResultToPRErrorCode(rv), 0);
}

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

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

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

@ -1012,6 +1012,7 @@ TransportSecurityInfo::SetStatusErrorBits(nsNSSCertificate* cert,
}
mSSLStatus->SetServerCert(cert, EVStatus::NotEV);
mSSLStatus->SetFailedCertChain(mFailedCertChain);
mSSLStatus->mHaveCertErrorBits = true;
mSSLStatus->mIsDomainMismatch =

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

@ -7,10 +7,13 @@
#include "nsISupports.idl"
interface nsIX509Cert;
interface nsIX509CertList;
[scriptable, uuid(fa9ba95b-ca3b-498a-b889-7c79cf28fee8)]
interface nsISSLStatus : nsISupports {
readonly attribute nsIX509Cert serverCert;
readonly attribute nsIX509CertList failedCertChain;
readonly attribute nsIX509CertList succeededCertChain;
[must_use]
readonly attribute ACString cipherName;

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

@ -1221,7 +1221,7 @@ DetermineEVAndCTStatusAndSetNewCert(RefPtr<nsSSLStatus> sslStatus,
SECOidTag evOidPolicy;
CertificateTransparencyInfo certificateTransparencyInfo;
UniqueCERTCertList unusedBuiltChain;
UniqueCERTCertList builtChain;
const bool saveIntermediates = false;
mozilla::pkix::Result rv = certVerifier->VerifySSLServerCert(
cert,
@ -1230,7 +1230,7 @@ DetermineEVAndCTStatusAndSetNewCert(RefPtr<nsSSLStatus> sslStatus,
mozilla::pkix::Now(),
infoObject,
infoObject->GetHostName(),
unusedBuiltChain,
builtChain,
saveIntermediates,
flags,
infoObject->GetOriginAttributes(),
@ -1255,6 +1255,7 @@ DetermineEVAndCTStatusAndSetNewCert(RefPtr<nsSSLStatus> sslStatus,
if (rv == Success) {
sslStatus->SetCertificateTransparencyInfo(certificateTransparencyInfo);
sslStatus->SetSucceededCertChain(Move(builtChain));
}
}

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

@ -11,8 +11,15 @@
#include "nsIObjectOutputStream.h"
#include "nsIObjectInputStream.h"
#include "nsNSSCertificate.h"
#include "nsNSSShutDown.h"
#include "ssl.h"
void
nsSSLStatus::virtualDestroyNSSReference()
{
}
NS_IMETHODIMP
nsSSLStatus::GetServerCert(nsIX509Cert** aServerCert)
{
@ -225,6 +232,23 @@ nsSSLStatus::Read(nsIObjectInputStream* aStream)
NS_ENSURE_SUCCESS(rv, rv);
}
// Added in version 3 (see bug 1406856).
if (streamFormatVersion >= 3) {
nsCOMPtr<nsISupports> succeededCertChainSupports;
rv = NS_ReadOptionalObject(aStream, true, getter_AddRefs(succeededCertChainSupports));
if (NS_FAILED(rv)) {
return rv;
}
mSucceededCertChain = do_QueryInterface(succeededCertChainSupports);
nsCOMPtr<nsISupports> failedCertChainSupports;
rv = NS_ReadOptionalObject(aStream, true, getter_AddRefs(failedCertChainSupports));
if (NS_FAILED(rv)) {
return rv;
}
mFailedCertChain = do_QueryInterface(failedCertChainSupports);
}
return NS_OK;
}
@ -232,7 +256,7 @@ NS_IMETHODIMP
nsSSLStatus::Write(nsIObjectOutputStream* aStream)
{
// The current version of the binary stream format.
const uint8_t STREAM_FORMAT_VERSION = 2;
const uint8_t STREAM_FORMAT_VERSION = 3;
nsresult rv = aStream->WriteCompoundObject(mServerCert,
NS_GET_IID(nsIX509Cert),
@ -275,6 +299,23 @@ nsSSLStatus::Write(nsIObjectOutputStream* aStream)
rv = aStream->WriteStringZ(mSignatureSchemeName.get());
NS_ENSURE_SUCCESS(rv, rv);
// Added in version 3.
rv = NS_WriteOptionalCompoundObject(aStream,
mSucceededCertChain,
NS_GET_IID(nsIX509CertList),
true);
if (NS_FAILED(rv)) {
return rv;
}
rv = NS_WriteOptionalCompoundObject(aStream,
mFailedCertChain,
NS_GET_IID(nsIX509CertList),
true);
if (NS_FAILED(rv)) {
return rv;
}
return NS_OK;
}
@ -354,6 +395,11 @@ NS_IMPL_ISUPPORTS(nsSSLStatus, nsISSLStatus, nsISerializable, nsIClassInfo)
nsSSLStatus::~nsSSLStatus()
{
nsNSSShutDownPreventionLock locker;
if (isAlreadyShutDown()) {
return;
}
shutdown(ShutdownCalledFrom::Object);
}
void
@ -366,6 +412,48 @@ nsSSLStatus::SetServerCert(nsNSSCertificate* aServerCert, EVStatus aEVStatus)
mHasIsEVStatus = true;
}
nsresult
nsSSLStatus::SetSucceededCertChain(UniqueCERTCertList aCertList)
{
nsNSSShutDownPreventionLock lock;
if (isAlreadyShutDown()) {
return NS_ERROR_NOT_AVAILABLE;
}
// nsNSSCertList takes ownership of certList
mSucceededCertChain = new nsNSSCertList(Move(aCertList), lock);
return NS_OK;
}
void
nsSSLStatus::SetFailedCertChain(nsIX509CertList* aX509CertList)
{
mFailedCertChain = aX509CertList;
}
NS_IMETHODIMP
nsSSLStatus::GetSucceededCertChain(nsIX509CertList** _result)
{
NS_ENSURE_ARG_POINTER(_result);
nsCOMPtr<nsIX509CertList> tmpList = mSucceededCertChain;
tmpList.forget(_result);
return NS_OK;
}
NS_IMETHODIMP
nsSSLStatus::GetFailedCertChain(nsIX509CertList** _result)
{
NS_ENSURE_ARG_POINTER(_result);
nsCOMPtr<nsIX509CertList> tmpList = mFailedCertChain;
tmpList.forget(_result);
return NS_OK;
}
void
nsSSLStatus::SetCertificateTransparencyInfo(
const mozilla::psm::CertificateTransparencyInfo& info)

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

@ -12,8 +12,11 @@
#include "nsCOMPtr.h"
#include "nsString.h"
#include "nsIX509Cert.h"
#include "nsIX509CertList.h"
#include "nsISerializable.h"
#include "nsIClassInfo.h"
#include "nsNSSCertificate.h"
#include "ScopedNSSTypes.h"
class nsNSSCertificate;
@ -26,6 +29,7 @@ class nsSSLStatus final
: public nsISSLStatus
, public nsISerializable
, public nsIClassInfo
, public nsNSSShutDownObject
{
protected:
virtual ~nsSSLStatus();
@ -39,6 +43,9 @@ public:
void SetServerCert(nsNSSCertificate* aServerCert, EVStatus aEVStatus);
nsresult SetSucceededCertChain(mozilla::UniqueCERTCertList certList);
void SetFailedCertChain(nsIX509CertList* x509CertList);
bool HasServerCert() {
return mServerCert != nullptr;
}
@ -46,6 +53,8 @@ public:
void SetCertificateTransparencyInfo(
const mozilla::psm::CertificateTransparencyInfo& info);
virtual void virtualDestroyNSSReference() override;
/* public for initilization in this file */
uint16_t mCipherSuite;
uint16_t mProtocolVersion;
@ -67,6 +76,8 @@ public:
private:
nsCOMPtr<nsIX509Cert> mServerCert;
nsCOMPtr<nsIX509CertList> mSucceededCertChain;
nsCOMPtr<nsIX509CertList> mFailedCertChain;
};
#define NS_SSLSTATUS_CID \

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

@ -3,7 +3,6 @@
47tech.com: could not connect to host
4loc.us: could not connect to host
4x4.lk: could not connect to host
68277.me: could not connect to host
8560.be: could not connect to host
87577.com: could not connect to host
8887999.com: could not connect to host
@ -11,11 +10,13 @@
8ox.ru: could not connect to host
8t88.biz: could not connect to host
91-freedom.com: could not connect to host
9ss6.com: could not connect to host
aaronmcguire.me: could not connect to host
abolition.co: could not connect to host
accwing.com: could not connect to host
acrossgw.com: could not connect to host
adamgold.net: could not connect to host
adzie.xyz: could not connect to host
aevpn.org: could not connect to host
afrikarl.de: could not connect to host
agowa.eu: could not connect to host
@ -24,6 +25,7 @@ akoww.de: could not connect to host
akul.co.in: could not connect to host
al-f.net: could not connect to host
alauda-home.de: could not connect to host
alertboxx.com: could not connect to host
alexmol.tk: could not connect to host
alexperry.io: could not connect to host
alilialili.ga: could not connect to host
@ -38,27 +40,34 @@ andrepicard.de: could not connect to host
andrewhowden.com: could not connect to host
annetaan.fi: could not connect to host
anoneko.com: could not connect to host
answers-online.ru: could not connect to host
anyways.at: could not connect to host
aoku3d.com: could not connect to host
apkoyunlar.club: could not connect to host
arent.kz: could not connect to host
arksan.com.tr: could not connect to host
artisense.de: could not connect to host
artyland.ru: could not connect to host
asdyx.de: could not connect to host
askmagicconch.com: could not connect to host
assdecoeur.org: could not connect to host
astutikhonda.com: could not connect to host
at1.co: could not connect to host
athi.pl: could not connect to host
austinsutphin.com: could not connect to host
australiancattle.dog: could not connect to host
auto-anleitung.de: could not connect to host
autostop-occasions.be: could not connect to host
avi9526.pp.ua: could not connect to host
awan.tech: could not connect to host
awf0.xyz: could not connect to host
b422edu.com: could not connect to host
baitulongbaycruises.com: could not connect to host
balonmano.co: could not connect to host
bandarifamily.com: could not connect to host
batfoundry.com: could not connect to host
bbdos.ru: could not connect to host
beasel.biz: could not connect to host
bellavistaoutdoor.com: could not connect to host
belua.com: could not connect to host
bencorby.com: could not connect to host
benjamin-horvath.com: could not connect to host
@ -91,19 +100,21 @@ carlandfaith.com: could not connect to host
catgirl.me: could not connect to host
centos.pub: could not connect to host
challengeskins.com: could not connect to host
chaoslab.org: could not connect to host
chaoticlaw.com: could not connect to host
cheah.xyz: could not connect to host
cheesefusion.com: could not connect to host
childrendeservebetter.org: could not connect to host
chima.us: could not connect to host
china-line.org: could not connect to host
chloehorler.com: could not connect to host
chosenplaintext.org: could not connect to host
chrisself.xyz: could not connect to host
christiangaetano.com: could not connect to host
chromaryu.net: could not connect to host
chziyue.com: could not connect to host
clearviewwealthprojector.com.au: could not connect to host
cloudbleed.info: could not connect to host
cloudimproved.com: could not connect to host
cmahy.be: could not connect to host
cmpr.es: could not connect to host
cnlic.com: could not connect to host
cocaine-import.agency: could not connect to host
@ -113,14 +124,10 @@ colleencornez.com: could not connect to host
colo-tech.com: could not connect to host
comprehensiveihc.com: could not connect to host
conception.sk: could not connect to host
conflux.tw: could not connect to host
conniesacademy.com: could not connect to host
corinnanese.de: could not connect to host
cosmeticasimple.com: could not connect to host
cosplayer.com: could not connect to host
cpaneltips.com: could not connect to host
crescent.gr.jp: could not connect to host
crestasantos.com: could not connect to host
criticalaim.com: could not connect to host
crystalmachine.net: could not connect to host
csgo77.com: could not connect to host
@ -131,7 +138,6 @@ d-bood.site: could not connect to host
dahlberg.cologne: could not connect to host
daniel-stahl.net: could not connect to host
danielzuzevich.com: could not connect to host
dannyrohde.de: could not connect to host
darlo.co.uk: could not connect to host
datorb.com: could not connect to host
davros.eu: could not connect to host
@ -146,8 +152,8 @@ derivativeshub.pro: could not connect to host
detroit-english.de: could not connect to host
dev-talk.eu: could not connect to host
devkid.net: could not connect to host
devops.moe: 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
diguass.us: could not connect to host
dijks.com: could not connect to host
@ -164,6 +170,7 @@ duch.cloud: could not connect to host
duelsow.eu: could not connect to host
duks.com.br: could not connect to host
duo.money: could not connect to host
e-wishlist.net: could not connect to host
eagleridgecampground.com: could not connect to host
eatfitoutlet.com.br: could not connect to host
eeb98.com: could not connect to host
@ -174,6 +181,7 @@ elexel.ru: could not connect to host
endlessdiy.ca: could not connect to host
energy-drink-magazin.de: could not connect to host
engg.ca: could not connect to host
enriquepiraces.com: could not connect to host
esibun.net: could not connect to host
estan.cn: could not connect to host
eurostrategy.vn.ua: could not connect to host
@ -198,7 +206,7 @@ firexarxa.de: could not connect to host
first-time-offender.com: could not connect to host
fixmyglitch.com: could not connect to host
flam.io: could not connect to host
fleximus.org: could not connect to host
fletchto99.com: could not connect to host
foodserve.in: could not connect to host
fossewayflowers.co.uk: could not connect to host
fossewayflowers.com: could not connect to host
@ -209,7 +217,6 @@ freaksites.dk: could not connect to host
fredliang.cn: could not connect to host
fredtec.ru: could not connect to host
freesounding.ru: could not connect to host
frino.de: could not connect to host
fromlemaytoz.com: could not connect to host
frosty-gaming.xyz: could not connect to host
fsck.cz: could not connect to host
@ -223,11 +230,12 @@ fyol.pw: could not connect to host
g4w.co: could not connect to host
gam3rs.de: could not connect to host
game-gentle.com: could not connect to host
garagemhermetica.org: could not connect to host
gasbarkenora.com: could not connect to host
gasnews.net: could not connect to host
gautham.it: could not connect to host
gaygeeks.de: could not connect to host
gbcsummercamps.com: could not connect to host
gdevpenze.ru: could not connect to host
gdhzcgs.com: could not connect to host
geeks.berlin: could not connect to host
geneve.guide: could not connect to host
@ -237,6 +245,9 @@ getwarden.net: could not connect to host
gevaulug.fr: could not connect to host
gfoss.gr: could not connect to host
ggss.cf: could not connect to host
ghostblog.info: could not connect to host
giveme.online: could not connect to host
gizmo.ovh: could not connect to host
gnom.me: could not connect to host
godrealms.com: could not connect to host
google: could not connect to host
@ -271,10 +282,11 @@ hoodoo.io: could not connect to host
hoodoo.tech: could not connect to host
horvathd.eu: could not connect to host
hotchillibox.co.za: could not connect to host
hotplug.gr: could not connect to host
hukkatavara.com: could not connect to host
hundter.com: could not connect to host
huntshomeinspections.com: could not connect to host
ibase.com: could not connect to host
icbemp.gov: could not connect to host
ifxnet.com: could not connect to host
ikenmeyer.eu: could not connect to host
ileat.com: could not connect to host
@ -286,7 +298,9 @@ injust.me: could not connect to host
insouciant.org: could not connect to host
investorloanshub.com: could not connect to host
iris-insa.com: could not connect to host
isaacman.tech: could not connect to host
issuesofconcern.in: could not connect to host
itmanie.cz: could not connect to host
itpro-mg.de: could not connect to host
itproject.guru: could not connect to host
ivanpolchenko.com: could not connect to host
@ -302,16 +316,15 @@ jiyuu-ni.com: could not connect to host
jiyuu-ni.net: could not connect to host
jobmedic.com: could not connect to host
joecod.es: could not connect to host
johnmh.me: could not connect to host
jonathansanchez.pro: could not connect to host
jonpads.com: could not connect to host
jons.org: could not connect to host
joostbovee.nl: could not connect to host
just-pools.co.za: could not connect to host
justmy.website: could not connect to host
k-wallet.com: could not connect to host
k82.org: could not connect to host
kamikaichimaru.com: could not connect to host
kanaanonline.org: could not connect to host
kanjo.de: could not connect to host
kapo.info: could not connect to host
karanlyons.com: could not connect to host
@ -319,9 +332,9 @@ karuneshjohri.com: could not connect to host
katzen.me: could not connect to host
kawaiiku.com: could not connect to host
kawaiiku.de: could not connect to host
kbfl.org: could not connect to host
kenrogers.co: could not connect to host
kenvix.com: could not connect to host
kibibit.net: could not connect to host
kieranweightman.me: could not connect to host
kinepolis-studio.ga: could not connect to host
kjoglum.me: could not connect to host
@ -332,8 +345,10 @@ kousaku.jp: could not connect to host
kozmik.co: could not connect to host
kteen.info: could not connect to host
kylling.io: could not connect to host
laboutiquemarocaineduconvoyeur.ma: could not connect to host
lacasa.fr: could not connect to host
lachawoj.de: could not connect to host
lafosseobservatoire.be: could not connect to host
lathamlabs.com: could not connect to host
lathamlabs.net: could not connect to host
lathamlabs.org: could not connect to host
@ -347,7 +362,6 @@ lenkunz.me: could not connect to host
leveredge.net: could not connect to host
lezdomsm.com: could not connect to host
lheinrich.org: could not connect to host
libbitcoin.org: could not connect to host
lifenexto.com: could not connect to host
lingerieonline.com.br: could not connect to host
linksanitizer.com: could not connect to host
@ -366,7 +380,6 @@ lovelytimes.net: could not connect to host
luav.org: could not connect to host
lubomirkazakov.com: could not connect to host
luenwarneke.com: could not connect to host
maartenterpstra.xyz: could not connect to host
macedopesca.com.br: could not connect to host
madrants.net: could not connect to host
magnacumlaude.co: could not connect to host
@ -402,8 +415,6 @@ mpserver12.org: could not connect to host
mrliu.me: could not connect to host
mtn.cc: could not connect to host
munduch.cz: could not connect to host
musearchengine.com: could not connect to host
mygallery.homelinux.net: could not connect to host
myrent.quebec: could not connect to host
naphex.rocks: could not connect to host
narodsovety.ru: could not connect to host
@ -419,8 +430,8 @@ nikolasbradshaw.com: could not connect to host
niouininon.eu: could not connect to host
niva.synology.me: could not connect to host
nkb.in.th: could not connect to host
nlegall.fr: could not connect to host
nodelab-it.de: could not connect to host
notadd.store: could not connect to host
notcompletelycorrect.com: could not connect to host
notesforpebble.com: could not connect to host
novascan.net: could not connect to host
@ -428,9 +439,9 @@ novelabs.eu: could not connect to host
nowcost.com: could not connect to host
nowremindme.com: could not connect to host
nup.pw: could not connect to host
oasisim.net: could not connect to host
obdolbacca.ru: could not connect to host
oberhof.co: could not connect to host
octal.es: could not connect to host
octosys.net: could not connect to host
octosys.org: could not connect to host
octosys.ru: could not connect to host
@ -446,14 +457,14 @@ oscsdp.cz: could not connect to host
outetc.com: could not connect to host
oxygaming.com: could not connect to host
oxymc.com: could not connect to host
ozonitron.com: could not connect to host
ozonitron.de: could not connect to host
ozonitron.eu: could not connect to host
palmavile.us: could not connect to host
palmaville.com: could not connect to host
pascalchristen.ch: could not connect to host
pear2pear.de: 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
peter.org.ua: could not connect to host
pgpmail.cc: could not connect to host
philippa.cool: could not connect to host
php-tuning.de: could not connect to host
@ -483,6 +494,7 @@ reignsphere.net: could not connect to host
reinaertvandecruys.me: could not connect to host
reismil.ch: could not connect to host
repaxan.com: could not connect to host
reporting.gov: could not connect to host
reqognize.com: could not connect to host
reth.ch: could not connect to host
retube.ga: could not connect to host
@ -508,7 +520,6 @@ samaritan.tech: could not connect to host
sanatrans.com: could not connect to host
sanmuding.com: could not connect to host
sarndipity.com: could not connect to host
savecashindia.com: could not connect to host
schamlosharmlos.de: could not connect to host
scm-2017.org: could not connect to host
seanstrout.com: could not connect to host
@ -521,7 +532,6 @@ semantheme.fr: could not connect to host
servecrypt.com: could not connect to host
servfefe.com: could not connect to host
sesha.co.za: could not connect to host
sgtsnookums.net: could not connect to host
shadowplus.net: could not connect to host
shadowrocket.net: could not connect to host
sharevari.com: could not connect to host
@ -530,6 +540,7 @@ sheratan.web.id: could not connect to host
sheying.tm: could not connect to host
shirakaba-cc.com: could not connect to host
shopifycloud.com: could not connect to host
shoppingreview.org: could not connect to host
shotonwhat.com: could not connect to host
siliconchip.me: could not connect to host
simbolo.co.uk: could not connect to host
@ -548,28 +559,32 @@ socialworkout.net: could not connect to host
socialworkout.org: could not connect to host
socialworkout.tv: could not connect to host
socketize.com: could not connect to host
sodiao.cc: could not connect to host
solos.im: could not connect to host
somali-derp.com: could not connect to host
soulema.com: could not connect to host
sowingseasons.com: could not connect to host
spacountryexplorer.org.au: could not connect to host
spdf.net: could not connect to host
spha.info: could not connect to host
spicywombat.com: could not connect to host
spom.net: could not connect to host
sportsmanadvisor.com: could not connect to host
stadtgartenla.com: could not connect to host
statgram.me: could not connect to host
static-assets.io: could not connect to host
stefanovski.io: could not connect to host
stickswag.cf: could not connect to host
stpip.com: could not connect to host
stylle.me: could not connect to host
surdam.casa: could not connect to host
sussexwebdesigns.com: could not connect to host
sviz.pro: could not connect to host
takusan.ru: could not connect to host
talktwincities.com: could not connect to host
tbarter.com: could not connect to host
tdsb.cf: could not connect to host
tdsbhack.tk: could not connect to host
techask.it: could not connect to host
technoinfogroup.it: could not connect to host
techpit.us: could not connect to host
telugu4u.net: could not connect to host
tenispopular.com: could not connect to host
@ -578,15 +593,18 @@ theresa-mayer.eu: could not connect to host
thesehighsandlows.com: could not connect to host
thinkcash.nl: could not connect to host
thinktux.net: could not connect to host
thynx.io: could not connect to host
tierarztpraxis-weinert.de: could not connect to host
tiliaze.info: could not connect to host
tiliaze.net: could not connect to host
timysewyn.be: could not connect to host
tobi-mayer.de: could not connect to host
totallynotaserver.com: could not connect to host
totch.de: could not connect to host
totot.net: could not connect to host
traces.ml: could not connect to host
transcendmotor.sg: could not connect to host
treebaglia.xyz: could not connect to host
troianet.com.br: could not connect to host
tucidi.net: could not connect to host
turn-sticks.com: could not connect to host
tusb.ml: could not connect to host
@ -600,8 +618,8 @@ umsapi.com: could not connect to host
unicorn.li: could not connect to host
uniformehumboldt.com.br: could not connect to host
unterschicht.tv: could not connect to host
upr.com.ua: could not connect to host
vadik.me: could not connect to host
valshamar.is: could not connect to host
vanderstraeten.dynv6.net: could not connect to host
vapehour.com: could not connect to host
vapeshopsupply.com: could not connect to host
@ -653,13 +671,13 @@ yobbelwobbel.de: could not connect to host
youyoulemon.com: could not connect to host
yum0.cn: could not connect to host
yux.fr: could not connect to host
z33.ch: could not connect to host
zaoext.com: could not connect to host
zberger.com: could not connect to host
zellari.ru: could not connect to host
zenfusion.fr: could not connect to host
zenghx.tk: could not connect to host
zerosource.net: could not connect to host
zeug.co: could not connect to host
zopyx.com: could not connect to host
zorz.info: could not connect to host
ztytian.com: could not connect to host
@ -671,7 +689,7 @@ zzw.ca: could not connect to host
0005aa.com: could not connect to host
007sascha.de: did not receive HSTS header
020wifi.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119" data: no]
0222aa.com: did not receive HSTS header
0222aa.com: could not connect to host
048.ag: could not connect to host
050508.com: could not connect to host
0f.io: could not connect to host
@ -692,6 +710,7 @@ zzw.ca: could not connect to host
1018hosting.nl: did not receive HSTS header
1022996493.rsc.cdn77.org: could not connect to host
1091.jp: could not connect to host
10ppm.com: did not receive HSTS header
10seos.com: did not receive HSTS header
10tacle.io: could not connect to host
12.net: did not receive HSTS header
@ -1107,6 +1126,7 @@ amigogeek.net: could not connect to host
amilx.com: could not connect to host
amilx.org: could not connect to host
amimoto-ami.com: max-age too low: 3153600
amin.one: did not receive HSTS header
amishsecurity.com: could not connect to host
amitse.com: did not receive HSTS header
amitube.com: did not receive HSTS header
@ -1191,7 +1211,6 @@ antoineschaller.ch: did not receive HSTS header
antoniomarques.eu: did not receive HSTS header
antoniorequena.com.ve: could not connect to host
antscript.com: did not receive HSTS header
anttitenhunen.com: could not connect to host
anycoin.me: could not connect to host
anymetrix.io: did not receive HSTS header
aocast.info: could not connect to host
@ -1247,6 +1266,7 @@ areyouever.me: did not receive HSTS header
argennon.xyz: could not connect to host
arguggi.co.uk: could not connect to host
ariacreations.net: did not receive HSTS header
arislight.com: did not receive HSTS header
aristilabs.com: did not receive HSTS header
arlen.io: could not connect to host
arlen.se: could not connect to host
@ -1348,7 +1368,7 @@ autobedarf.net: did not receive HSTS header
autodeploy.it: could not connect to host
autoecolebudget.ch: did not receive HSTS header
autoeet.cz: did not receive HSTS header
autoepc.ro: could not connect to host
autoepc.ro: did not receive HSTS header
autojuhos.sk: could not connect to host
autokovrik-diskont.ru: did not receive HSTS header
automobiles5.com: could not connect to host
@ -1479,6 +1499,7 @@ bedabox.com: max-age too low: 0
bedeta.de: could not connect to host
bedreid.dk: did not receive HSTS header
bedrijvenadministratie.nl: could not connect to host
beepan.com: did not receive HSTS header
beerboutique.com.br: could not connect to host
beetleroadstories.com: could not connect to host
befundup.com: could not connect to host
@ -1715,7 +1736,6 @@ bratteng.xyz: could not connect to host
bravz.de: could not connect to host
bremensaki.com: max-age too low: 2592000
brenden.net.au: did not receive HSTS header
brfvh24.se: could not connect to host
brickoo.com: could not connect to host
brickyardbuffalo.com: did not receive HSTS header
bridholm.se: could not connect to host
@ -1799,7 +1819,6 @@ buzzconcert.com: could not connect to host
buzztelco.com.au: did not receive HSTS header
bw81.xyz: could not connect to host
bwear4all.de: could not connect to host
by1896.com: did not receive HSTS header
by4cqb.cn: could not connect to host
bydisk.com: could not connect to host
byken.cn: did not receive HSTS header
@ -1878,7 +1897,6 @@ canadiangamblingchoice.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
canlidoviz.com: did not receive HSTS header
canyonshoa.com: did not receive HSTS header
capecycles.co.za: did not receive HSTS header
capeyorkfire.com.au: did not receive HSTS header
@ -1910,7 +1928,7 @@ casefall.com: could not connect to host
cash-pos.com: could not connect to host
cashmyphone.ch: could not connect to host
casino-cashflow.ru: did not receive HSTS header
casinostest.com: did not receive HSTS header
casinostest.com: could not connect to host
casioshop.eu: did not receive HSTS header
casovi.cf: could not connect to host
castagnonavocats.com: did not receive HSTS header
@ -2047,7 +2065,6 @@ cintdirect.com: could not connect to host
cioconference.co.nz: could not connect to host
ciplanutrition.com: did not receive HSTS header
cirrohost.com: did not receive HSTS header
cirrus0.de: did not receive HSTS header
ciscohomeanalytics.com: could not connect to host
ciscommerce.net: [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]
citiagent.cz: could not connect to host
@ -2170,7 +2187,6 @@ comfortticket.de: did not receive HSTS header
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
comitesaustria.at: could not connect to host
comiteshopping.com: could not connect to host
commercialplanet.eu: could not connect to host
@ -2186,6 +2202,7 @@ compiledworks.com: could not connect to host
completionist.audio: could not connect to host
complymd.com: did not receive HSTS header
compraneta.com: did not receive HSTS header
compubench.com: did not receive HSTS header
compucorner.com.mx: could not connect to host
computeremergency.com.au: did not receive HSTS header
computersystems.guru: did not receive HSTS header
@ -2193,6 +2210,7 @@ computertal.de: could not connect to host
concentrade.de: did not receive HSTS header
concord-group.co.jp: did not receive HSTS header
confirm365.com: could not connect to host
conflux.tw: did not receive HSTS header
conformal.com: could not connect to host
cong5.net: could not connect to host
congz.me: could not connect to host
@ -2420,7 +2438,6 @@ darkpony.ru: could not connect to host
darksideof.it: could not connect to host
darkstance.org: could not connect to host
darktree.in: could not connect to host
darkwater.info: did not receive HSTS header
daropia.org: could not connect to host
darrenellis.xyz: did not receive HSTS header
dash-board.jp: did not receive HSTS header
@ -2458,7 +2475,7 @@ dcl.re: did not receive HSTS header
dcuofriends.net: could not connect to host
dcurt.is: did not receive HSTS header
dcw.io: did not receive HSTS header
ddatsh.com: did not receive HSTS header
ddatsh.com: could not connect to host
debank.tv: did not receive HSTS header
debatch.se: could not connect to host
debian-vhost.de: did not receive HSTS header
@ -2553,6 +2570,7 @@ diannaobos.com: did not receive HSTS header
dicando.com: max-age too low: 2592000
dicelab.co.uk: could not connect to host
dicionariofinanceiro.com: did not receive HSTS header
dicoding.com: did not receive HSTS header
dieb.photo: could not connect to host
dierenkruiden.nl: could not connect to host
diewebstube.de: could not connect to host
@ -2724,6 +2742,7 @@ dshiv.io: could not connect to host
dtub.co: could not connect to host
dualias.xyz: could not connect to host
dubik.su: did not receive HSTS header
dudesunderwear.com.br: did not receive HSTS header
duelysthub.com: could not connect to host
duerls.de: did not receive HSTS header
dukec.me: could not connect to host
@ -2773,6 +2792,7 @@ ebiografia.com: did not receive HSTS header
ebiografias.com.br: did not receive HSTS header
ebolsa.com.br: did not receive HSTS header
ebolsas.com.br: did not receive HSTS header
ebooksgratuits.org: did not receive HSTS header
ebp2p.com: did not receive HSTS header
ebpglobal.com: did not receive HSTS header
ebraph.com: could not connect to host
@ -2976,7 +2996,6 @@ esko.bar: could not connect to host
esln.org: did not receive HSTS header
esn-ypci.com: could not connect to host
esocweb.com: could not connect to host
esp.community: did not receive HSTS header
esp8285.store: could not connect to host
espacemontmorency.com: did not receive HSTS header
especificosba.com.mx: could not connect to host
@ -3102,6 +3121,7 @@ fanflow.com: did not receive HSTS header
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
farwat.ru: did not receive HSTS header
fashion.net: did not receive HSTS header
fashioncare.cz: did not receive HSTS header
@ -3129,7 +3149,6 @@ feedthebot.com: did not receive HSTS header
feezmodo.com: did not receive HSTS header
fefore.com: could not connect to host
fegans.org.uk: did not receive HSTS header
feirlane.org: could not connect to host
felisslovakia.sk: [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]
feliwyn.fr: did not receive HSTS header
felixrr.pro: could not connect to host
@ -3289,6 +3308,7 @@ frasesytarjetas.com: did not receive HSTS header
frasys.io: did not receive HSTS header
frau-inge.de: could not connect to host
fraudempire.com: could not connect to host
frederik-braun.com: did not receive HSTS header
freeflow.tv: could not connect to host
freelanced.co.za: could not connect to host
freelo.cz: did not receive HSTS header
@ -3412,10 +3432,11 @@ gatapro.net: could not connect to host
gatorsa.es: did not receive HSTS header
gaussorgues.me: could not connect to host
gdegem.org: did not receive HSTS header
gdz.tv: did not receive HSTS header
gebn.co.uk: did not receive HSTS header
gebn.uk: could not connect to host
gedankenbude.info: could not connect to host
geek.com.tw: did not receive HSTS header
geek.tw: did not receive HSTS header
geekcast.co.uk: did not receive HSTS header
geekmind.org: max-age too low: 172800
geeks.lgbt: could not connect to host
@ -3473,7 +3494,7 @@ getwashdaddy.com: could not connect to host
gfm.tech: could not connect to host
gfournier.ca: could not connect to host
gfwsb.ml: could not connect to host
ggs-marschallstrasse.de: did not receive HSTS header
gfxbench.com: did not receive HSTS header
ggss.ml: could not connect to host
gh16.com.ar: could not connect to host
gheorghe-sarcov.ga: could not connect to host
@ -3655,6 +3676,7 @@ gtanda.tk: could not connect to host
gtech.work: did not receive HSTS header
gtldna.com: could not connect to host
gtlfsonlinepay.com: did not receive HSTS header
gtopala.com: did not receive HSTS header
gtraxapp.com: could not connect to host
gts-schulsoftware.de: did not receive HSTS header
guava.studio: did not receive HSTS header
@ -3858,7 +3880,6 @@ hikinggearlab.com: did not receive HSTS header
hilinemerchandising.com: did not receive HSTS header
hillcity.org.nz: did not receive HSTS header
hilnu.tk: could not connect to host
himens.com: did not receive HSTS header
hintergedanken.com: did not receive HSTS header
hipercultura.com: did not receive HSTS header
hiphopconvention.nl: could not connect to host
@ -3969,7 +3990,6 @@ hydronium.ga: could not connect to host
hydronium.me: could not connect to host
hydronium.ml: could not connect to host
hydronium.tk: could not connect to host
hydronyx.me: could not connect to host
hypa.net.au: did not receive HSTS header
hyper69.com: did not receive HSTS header
hypnoresults.com.au: did not receive HSTS header
@ -4035,11 +4055,10 @@ ihrlotto.de: could not connect to host
ihrnationalrat.ch: could not connect to host
ihsbsd.me: could not connect to host
ihsbsd.tk: could not connect to host
iiong.com: did not receive HSTS header
iispeed.com: did not receive HSTS header
ijn-dd.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]
ijoda.com: did not receive HSTS header
ikon.name: could not connect to host
ikon.name: did not receive HSTS header
ikwilguidobellen.nl: could not connect to host
ilbuongiorno.it: did not receive HSTS header
ilgi.work: could not connect to host
@ -4135,6 +4154,7 @@ inspiroinc.com: could not connect to host
instacart.com: did not receive HSTS header
instant-hack.com: did not receive HSTS header
instantdev.io: could not connect to host
instantkhabar.com: did not receive HSTS header
instinctiveads.com: did not receive HSTS header
institutoflordelavida.com: could not connect to host
instruktor.io: could not connect to host
@ -4165,6 +4185,7 @@ inverselink-user-content.com: could not connect to host
inverselink.com: could not connect to host
investnext.com: max-age too low: 43200
invictusmc.uk: could not connect to host
inviosolutions.com: max-age too low: 0
invite24.pro: could not connect to host
iolife.dk: could not connect to host
ionas-law.ro: did not receive HSTS header
@ -4267,7 +4288,6 @@ jackdoan.com: did not receive HSTS header
jackfahnestock.com: could not connect to host
jacobparry.ca: did not receive HSTS header
jagido.de: did not receive HSTS header
jaguarwong.xyz: could not connect to host
jahliveradio.com: could not connect to host
jamanji.com.ng: could not connect to host
james-parker.com: did not receive HSTS header
@ -4453,6 +4473,7 @@ justlikethat.hosting: did not receive HSTS header
justnaw.co.uk: could not connect to host
justudin.com: did not receive HSTS header
justwood.cz: did not receive HSTS header
jutella.de: did not receive HSTS header
juvenex.co: could not connect to host
juwairen.cn: could not connect to host
jvoice.net: could not connect to host
@ -4593,7 +4614,7 @@ kletterkater.com: did not receive HSTS header
klicktojob.de: could not connect to host
klunkergarten.org: could not connect to host
knapen.io: max-age too low: 604800
knccloud.com: did not receive HSTS header
knccloud.com: could not connect to host
kngk-transavto.ru: could not connect to host
knigadel.com: did not receive HSTS header
knightsbridgegroup.org: could not connect to host
@ -4618,6 +4639,7 @@ kolozsvaricsuhe.hu: did not receive HSTS header
komikito.com: could not connect to host
kompetenzwerft.de: did not receive HSTS header
konata.us: could not connect to host
konkurs.ba: did not receive HSTS header
kontaxis.network: could not connect to host
koopjesnel.nl: could not connect to host
koordinate.net: could not connect to host
@ -4729,7 +4751,6 @@ langhun.me: did not receive HSTS header
laniakean.com: did not receive HSTS header
lanzainc.xyz: did not receive HSTS header
laobox.fr: could not connect to host
laospage.com: did not receive HSTS header
laplaceduvillage.net: could not connect to host
laplanetebleue.com: did not receive HSTS header
laquack.com: could not connect to host
@ -4817,6 +4838,7 @@ lgts.se: could not connect to host
liaillustr.at: did not receive HSTS header
liam-w.com: did not receive HSTS header
liamjack.fr: could not connect to host
liangji.com.tw: did not receive HSTS header
lianye.in: did not receive HSTS header
lianyexiuchang.in: could not connect to host
liaoshuma.com: could not connect to host
@ -5164,7 +5186,6 @@ matthewprenger.com: could not connect to host
matthiassteen.be: max-age too low: 0
mattressinsider.com: max-age too low: 3153600
mattsvensson.com: max-age too low: 0
mattwservices.co.uk: did not receive HSTS header
matty.digital: did not receive HSTS header
maultrom.ml: could not connect to host
maupiknik.com: did not receive HSTS header
@ -5179,6 +5200,7 @@ maxserver.com: did not receive HSTS header
maya.mg: could not connect to host
mazyun.com: max-age too low: 3600
mazz-tech.com: could not connect to host
mazzotta.me: did not receive HSTS header
mbconsultancy.nu: did not receive HSTS header
mc81.com: could not connect to host
mca2017.org: did not receive HSTS header
@ -5654,6 +5676,7 @@ neko-life.com: did not receive HSTS header
neko-system.com: did not receive HSTS header
nemno.de: could not connect to host
nemovement.org: could not connect to host
neo19.com: did not receive HSTS header
neoani.me: could not connect to host
neofelhz.space: could not connect to host
neonisi.com: could not connect to host
@ -5870,7 +5893,7 @@ offshorefirma-gruenden.com: could not connect to host
offshoremarineparts.com: did not receive HSTS header
oficinadocelular.com.br: could not connect to host
oganek.ie: could not connect to host
oganime.com: did not receive HSTS header
oganime.com: could not connect to host
ogogoshop.com: could not connect to host
ohling.org: could not connect to host
ohm2013.org: did not receive HSTS header
@ -5880,6 +5903,7 @@ oiepoie.nl: could not connect to host
oishioffice.com: did not receive HSTS header
ojls.co: could not connect to host
okane.love: could not connect to host
oke.com.tw: did not receive HSTS header
okok-rent.com: could not connect to host
okok.rent: could not connect to host
okutama.in.th: could not connect to host
@ -5897,7 +5921,6 @@ ominto.com: did not receive HSTS header
omniscimus.net: could not connect to host
omniti.com: max-age too low: 1
omquote.gq: could not connect to host
omsdieppe.fr: did not receive HSTS header
omskit.ru: did not receive HSTS header
omyogarishikesh.com: did not receive HSTS header
one-pe.com: did not receive HSTS header
@ -5998,7 +6021,6 @@ oscloud.com.ua: could not connect to host
oscreen.me: could not connect to host
oscreen.org: could not connect to host
osdls.gov: could not connect to host
oshrc.gov: did not receive HSTS header
oslfoundation.org: could not connect to host
osp.cx: could not connect to host
ossan-kobe-gourmet.com: did not receive HSTS header
@ -6028,7 +6050,6 @@ ovvy.net: did not receive HSTS header
owennelson.me: could not connect to host
owncloud.help: could not connect to host
ownmovies.fr: could not connect to host
oxro.co: did not receive HSTS header
oxygenabsorbers.com: did not receive HSTS header
oxynux.fr: could not connect to host
oyste.in: could not connect to host
@ -6125,6 +6146,7 @@ payments-reference.org: could not connect to host
payments.google.com: did not receive HSTS header (error ignored - included regardless)
payroll.ch: could not connect to host
paytwopay.com: could not connect to host
pback.se: did not receive HSTS header
pbapp.net: did not receive HSTS header
pbbr.com: did not receive HSTS header
pbprint.ru: did not receive HSTS header
@ -6280,6 +6302,7 @@ playnation.io: could not connect to host
pleasure.forsale: could not connect to host
pleier-it.de: did not receive HSTS header
pleier.it: did not receive HSTS header
plextv.de: did not receive HSTS header
plfgr.eu.org: could not connect to host
plhdb.org: did not receive HSTS header
plirt.ru: could not connect to host
@ -6346,6 +6369,7 @@ potatoheads.net: could not connect to host
potbar.com: could not connect to host
potlytics.com: could not connect to host
potsky.com: did not receive HSTS header
pourmesloisirs.com: did not receive HSTS header
poussinooz.fr: could not connect to host
povitria.net: could not connect to host
power-l.ch: did not receive HSTS header
@ -6472,7 +6496,7 @@ pwd.ovh: could not connect to host
pwm.jp: could not connect to host
pwnsdx.pw: could not connect to host
pyol.org: could not connect to host
pypi-mirrors.org: did not receive HSTS header
pypi-mirrors.org: could not connect to host
pypi-status.org: could not connect to host
pyplo.org: did not receive HSTS header
pypt.lt: did not receive HSTS header
@ -6795,7 +6819,6 @@ rubyshop.nl: max-age too low: 604800
rudeotter.com: did not receive HSTS header
rugirlfriend.com: could not connect to host
rugs.ca: did not receive HSTS header
ruhr3.de: did not receive HSTS header
ruig.jp: could not connect to host
ruiming.me: did not receive HSTS header
ruitershoponline.nl: did not receive HSTS header
@ -7041,6 +7064,7 @@ servercode.ca: did not receive HSTS header
serverdensity.io: did not receive HSTS header
servergno.me: did not receive HSTS header
servermonkey.nl: could not connect to host
servicevie.com: did not receive HSTS header
servious.org: could not connect to host
servu.de: did not receive HSTS header
seryo.moe: could not connect to host
@ -7176,6 +7200,7 @@ sitesforward.com: did not receive HSTS header
sitesten.com: did not receive HSTS header
sixtwentyten.com: did not receive HSTS header
sizingservers.be: did not receive HSTS header
skei.org: did not receive HSTS header
ski-insurance.com.au: did not receive HSTS header
skidstresser.com: did not receive HSTS header
skillproxy.com: could not connect to host
@ -7386,7 +7411,6 @@ stabletoken.com: could not connect to host
stackfiles.io: could not connect to host
stadjerspasonline.nl: could not connect to host
stadtbauwerk.at: did not receive HSTS header
stadterneuerung-hwb.de: did not receive HSTS header
staffjoy.com: did not receive HSTS header
staffjoystaging.com: could not connect to host
stahl.xyz: could not connect to host
@ -7480,6 +7504,7 @@ studydrive.net: did not receive HSTS header
studyhub.cf: did not receive HSTS header
stugb.de: did not receive HSTS header
sturbock.me: did not receive HSTS header
sturdio.com.br: did not receive HSTS header
stylenda.com: could not connect to host
stytt.com: could not connect to host
subbing.work: could not connect to host
@ -7533,7 +7558,7 @@ supweb.ovh: did not receive HSTS header
surfeasy.com: did not receive HSTS header
surfone-leucate.com: did not receive HSTS header
survivalistplanet.com: could not connect to host
sussexwebdesigns.info: did not receive HSTS header
sussexwebdesigns.info: could not connect to host
suzukikenichi.com: did not receive HSTS header
svatba-frantovi.cz: could not connect to host
svenluijten.com: did not receive HSTS header
@ -7633,6 +7658,7 @@ tauchkater.de: could not connect to host
tavoittaja.fi: did not receive HSTS header
tavopica.lt: did not receive HSTS header
taxbench.com: could not connect to host
taxi-24std.de: did not receive HSTS header
taxiindenbosch.nl: did not receive HSTS header
taxsnaps.co.nz: did not receive HSTS header
tazz.in: could not connect to host
@ -7760,6 +7786,7 @@ thedystance.com: could not connect to host
theelitebuzz.com: did not receive HSTS header
theendofzion.com: did not receive HSTS header
theescapistswiki.com: could not connect to host
theeyeopener.com: did not receive HSTS header
thefarbeyond.com: could not connect to host
theflowerbasketonline.com: could not connect to host
thefootballanalyst.com: did not receive HSTS header
@ -7875,7 +7902,6 @@ timeserver1.de: could not connect to host
timeserver2.de: could not connect to host
timeserver3.de: could not connect to host
timestamp.io: did not receive HSTS header
timetab.org: could not connect to host
timhjalpen.se: could not connect to host
timnash.co.uk: did not receive HSTS header
timotrans.de: did not receive HSTS header
@ -7942,7 +7968,6 @@ tolud.com: did not receive HSTS header
tom.horse: did not receive HSTS header
tomeara.net: could not connect to host
tomevans.io: did not receive HSTS header
tomharris.tech: did not receive HSTS header
tomlankhorst.nl: did not receive HSTS header
tomli.me: could not connect to host
tommsy.com: did not receive HSTS header
@ -8212,6 +8237,7 @@ urandom.eu.org: did not receive HSTS header
urban-garden.lt: could not connect to host
urban-garden.lv: could not connect to host
urbanfi.sh: did not receive HSTS header
urbanstylestaging.com: did not receive HSTS header
urbpic.com: could not connect to host
urlchomp.com: did not receive HSTS header
urphp.com: could not connect to host
@ -8258,6 +8284,7 @@ v789xl.com: did not receive HSTS header
vaalmarketplace.co.za: did not receive HSTS header
vacationality.com: could not connect to host
vackerbetong.se: could not connect to host
vacuumreviewcenter.com: did not receive HSTS header
vaddder.com: could not connect to host
vadodesign.nl: did not receive HSTS header
valenscaelum.com: could not connect to host
@ -8443,7 +8470,7 @@ walnutgaming.co.uk: could not connect to host
walterlynnmosley.com: did not receive HSTS header
wan.pp.ua: could not connect to host
wanban.io: could not connect to host
wangjun.me: did not receive HSTS header
wangjun.me: could not connect to host
wangkezun.com: could not connect to host
wangqiliang.cn: did not receive HSTS header
wangqiliang.org: did not receive HSTS header
@ -8707,7 +8734,7 @@ www.sandbox.mydigipass.com: could not connect to host
www.surfeasy.com: did not receive HSTS header
www.viasinc.com: did not receive HSTS header
www.zenpayroll.com: did not receive HSTS header
www3.info: could not connect to host
www3.info: did not receive HSTS header
wxukang.cn: could not connect to host
wybmabiity.com: could not connect to host
wygluszanie.eu: did not receive HSTS header
@ -8796,7 +8823,6 @@ xor-a.net: could not connect to host
xperiacodes.com: did not receive HSTS header
xpi.fr: could not connect to host
xpj.sx: could not connect to host
xpjcunkuan.com: did not receive HSTS header
xrp.pw: could not connect to host
xsmobile.de: could not connect to host
xtom.email: could not connect to host
@ -8823,7 +8849,7 @@ yaporn.tv: did not receive HSTS header
yard-fu.com: could not connect to host
yardbird.us: could not connect to host
yarnhookup.com: did not receive HSTS header
yasinaydin.net: max-age too low: 2592000
yasinaydin.net: could not connect to host
yasutomonodokoiko.com: did not receive HSTS header
yatesun.com: did not receive HSTS header
ycc.wtf: could not connect to host
@ -8836,6 +8862,8 @@ yenniferallulli.es: did not receive HSTS header
yenniferallulli.moda: could not connect to host
yenniferallulli.nl: could not connect to host
yesdevnull.net: did not receive HSTS header
yesonline.asia: did not receive HSTS header
yesonline.me: did not receive HSTS header
yestees.com: did not receive HSTS header
yetcore.io: could not connect to host
yhrd.org: did not receive HSTS header
@ -8900,13 +8928,11 @@ zahyantechnologies.com: could not connect to host
zakoncontrol.com: did not receive HSTS header
zamorano.edu: could not connect to host
zamos.ru: max-age too low: 0
zandcell.com: did not receive HSTS header
zaneweb.org: could not connect to host
zao.fi: could not connect to host
zaoshanghao-dajia.rhcloud.com: could not connect to host
zap.yt: did not receive HSTS header
zarooba.com: could not connect to host
zary.me: did not receive HSTS header
zavca.com: did not receive HSTS header
zbigniewgalucki.eu: did not receive HSTS header
zcon.nl: could not connect to host
@ -8929,7 +8955,7 @@ zentraler-kreditausschuss.de: did not receive HSTS header
zentralwolke.de: did not receive HSTS header
zenwears.com: did not receive HSTS header
zera.com.au: could not connect to host
zerekin.net: could not connect to host
zerekin.net: did not receive HSTS header
zeroday.sk: did not receive HSTS header
zerofox.gq: could not connect to host
zeroml.ml: could not connect to host

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

@ -8,7 +8,7 @@
/*****************************************************************************/
#include <stdint.h>
const PRTime gPreloadListExpirationTime = INT64_C(1520015729201000);
const PRTime gPreloadListExpirationTime = INT64_C(1520102102086000);
%%
0.me.uk, 1
00001.am, 1
@ -58,7 +58,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1520015729201000);
0x.sk, 1
0x00ff00ff.com, 1
0x17.de, 1
0x52.net, 0
0x52.net, 1
0x52.org, 1
0x539.be, 1
0x65.net, 1
@ -95,7 +95,6 @@ const PRTime gPreloadListExpirationTime = INT64_C(1520015729201000);
10gbit.ovh, 1
10hz.de, 1
10og.de, 1
10ppm.com, 1
10x.ooo, 1
1100.so, 1
1116pay.com, 1
@ -1348,7 +1347,6 @@ amiciidogrescue.org.uk, 1
amicsdelbus.com, 1
amihub.com, 1
amilum.org, 1
amin.one, 1
aminafrance.com, 1
amineptine.com, 1
amisharingstuff.com, 1
@ -1613,6 +1611,7 @@ antonchen.com, 1
antonellabb.eu, 1
antons.io, 1
antragsgruen.de, 1
anttitenhunen.com, 1
anvartay.com, 1
anwaltsindex.com, 1
anxietyspace.com, 1
@ -1843,7 +1842,6 @@ arigato-java.download, 1
arijitdg.net, 1
arikar.eu, 1
arima.co.ke, 1
arislight.com, 1
aristocrates.co, 1
aristocratps.com, 1
aritec-la.com, 1
@ -2734,7 +2732,6 @@ beekeeping.clothing, 1
beekeeping.tools, 1
beeksnetwork.nl, 1
beelen.fr, 1
beepan.com, 0
beercandle.com, 1
beergazetteer.com, 1
beerians.com, 1
@ -3774,6 +3771,7 @@ bretzner.fr, 1
brevboxar.se, 1
brewsouth.com, 1
brewtrackr.com, 1
brfvh24.se, 1
brgins.com, 1
brianalaway.com, 1
brianalawayconsulting.com, 1
@ -4056,6 +4054,7 @@ bwwb.nu, 1
bx-n.de, 1
bxdev.me, 1
bxp40.at, 1
by1896.com, 1
by1898.com, 1
by1899.com, 1
by77.com, 1
@ -4250,6 +4249,7 @@ candyout.com, 1
canhazip.com, 1
canifis.net, 1
canihavesome.coffee, 1
canlidoviz.com, 1
cannabis-marijuana.com, 1
cannarobotics.com, 1
cannyfoxx.me, 1
@ -5018,6 +5018,7 @@ circlebox.rocks, 1
circu.ml, 1
cirfi.com, 1
cirope.com, 1
cirrus0.de, 1
cirugiasplasticas.com.mx, 1
cirurgicagervasio.com.br, 1
cirurgicalucena.com.br, 1
@ -5455,6 +5456,7 @@ comfypc.com, 1
comhack.com, 1
comico.info, 1
comicrelief.com, 1
comicspornos.com, 1
comicwiki.dk, 1
comiq.io, 1
comiteaintriathlon.fr, 1
@ -5511,7 +5513,6 @@ compredietlight.com.br, 1
comprefitasadere.com.br, 1
comprehensiveihc.com, 1
compsmag.com, 1
compubench.com, 1
compucastell.ch, 1
compucorner.mx, 1
compuplast.cz, 1
@ -5548,7 +5549,6 @@ confiancefoundation.org, 1
confidential.network, 1
config.schokokeks.org, 0
confiwall.de, 1
conflux.tw, 1
conformax.com.br, 1
conformist.jp, 1
confucio.cl, 1
@ -6359,6 +6359,7 @@ darkshop.nl, 1
darkside.re, 1
darkspacelab.com, 1
darktime.ru, 1
darkwater.info, 1
darkx.me, 1
darlastudio66.com, 1
darlo.co.uk, 0
@ -6958,7 +6959,6 @@ dicionarioetimologico.com.br, 1
dicionariopopular.com, 1
dick.red, 1
dickieslife.com, 1
dicoding.com, 1
didacte.com, 1
didche.net, 1
diddens.de, 1
@ -7625,7 +7625,6 @@ duckbase.com, 1
duckduckstart.com, 1
duckinc.net, 1
ducohosting.com, 1
dudesunderwear.com.br, 1
duelsow.eu, 1
duernberg.at, 1
duesee.org, 1
@ -7837,7 +7836,6 @@ ebermannstadt.de, 0
eboek.info, 1
ebonyriddle.com, 1
ebooki.eu.org, 1
ebooksgratuits.org, 1
ebop.ch, 1
eboyer.com, 1
ebrnd.de, 1
@ -8423,7 +8421,7 @@ epistas.de, 1
epizentrum.work, 1
epizentrum.works, 1
epmcentroitalia.it, 1
epoch.com, 0
epoch.com, 1
epolitiker.com, 1
epos-distributor.co.uk, 1
eposbirmingham.co.uk, 1
@ -8580,6 +8578,7 @@ esono.de, 1
esoterik.link, 1
esoterikerforum.de, 1
esp-berlin.de, 1
esp.community, 1
espace-caen.fr, 1
espace-gestion.fr, 1
espacetemps.ch, 1
@ -9079,7 +9078,6 @@ faretravel.co.uk, 1
farfallapets.com.br, 1
farfetchos.com, 1
fargtorget.se, 1
farhadexchange.com, 1
farhood.org, 1
farid.is, 1
farkas.bz, 1
@ -9197,6 +9195,7 @@ fehngarten.de, 1
fehnladen.de, 1
feigling.net, 1
feilen.de, 1
feirlane.org, 0
feisbed.com, 1
feisim.com, 1
feisim.org, 1
@ -9842,7 +9841,6 @@ freaksites.dk, 1
frebi.org, 1
frebib.net, 1
freddythechick.uk, 1
frederik-braun.com, 1
frederikschoell.de, 0
fredliang.cn, 1
fredloya.com, 1
@ -10332,6 +10330,7 @@ gdutnic.com, 1
gdv.me, 1
gdz-otvety.com, 1
gdz-spishy.com, 1
gdz.tv, 1
ge1.me, 0
ge3k.net, 0
gear-acquisition-syndrome.community, 1
@ -10350,8 +10349,6 @@ geder.at, 1
gee.is, 1
geek-hub.de, 1
geek.ch, 1
geek.com.tw, 0
geek.tw, 0
geekabit.nl, 1
geekandi.com, 1
geekariom.com, 1
@ -10558,7 +10555,6 @@ gflclan.ru, 1
gforce.ninja, 1
gfoss.eu, 1
gfoss.gr, 1
gfxbench.com, 1
ggdcpt.com, 1
gginin.today, 1
ggl-luzern.ch, 1
@ -10566,6 +10562,7 @@ gglks.com, 1
ggmmontascale.it, 1
ggp2.com, 1
ggrks-asano.com, 1
ggs-marschallstrasse.de, 1
ggs.jp, 1
ggservers.com, 1
ggss.cf, 1
@ -10890,7 +10887,7 @@ gpsvideocanada.com, 1
gpws.ovh, 1
gr.search.yahoo.com, 0
gra2.com, 1
graasp.net, 1
graasp.net, 0
grabi.ga, 1
grace-wan.com, 1
gracebaking.com, 1
@ -11106,7 +11103,6 @@ gtcprojects.com, 1
gtdgo.com, 1
gtmasterclub.it, 0
gtmetrix.com, 1
gtopala.com, 1
gtour.info, 1
gtravers-basketmaker.co.uk, 1
gtts.space, 1
@ -11794,6 +11790,7 @@ hilti.kz, 0
hilti.lv, 0
hiltonarubabeachservices.com, 1
hiltonhyland.com, 1
himens.com, 0
hindmanfuneralhomes.com, 1
hingle.me, 1
hinkel-sohn.de, 1
@ -12262,6 +12259,7 @@ hydrante.ch, 1
hydrasolutions.de, 1
hydroagro.pl, 1
hydrocloud.net, 1
hydronyx.me, 1
hydroturbine.info, 1
hydrozone.fr, 1
hygo.com, 1
@ -12500,6 +12498,7 @@ ihotel.io, 1
ihrhost.com, 1
iideaz.org, 1
iilin.com, 1
iiong.com, 0
iirii.com, 1
ijohan.nl, 1
ijsclubtilburg.nl, 1
@ -12851,7 +12850,6 @@ instagramtweet.com, 1
installgentoo.net, 1
instant-hack.io, 1
instant.io, 1
instantkhabar.com, 1
instantsubs.de, 1
instasex.ch, 1
instava.cz, 1
@ -12979,7 +12977,6 @@ investpay.ru, 1
invinsec.cloud, 1
invinsec.com, 1
invioinc.com, 1
inviosolutions.com, 1
invis.net, 1
invisible-college.com, 1
invisibles.ch, 1
@ -13364,6 +13361,7 @@ jaegerlacke.de, 1
jagerman.com, 1
jaguarlandrover-asse.be, 1
jaguarlandrover-occasions.be, 1
jaguarwong.xyz, 1
jahanaisamu.com, 1
jahner.xyz, 1
jahofmann.de, 1
@ -14007,7 +14005,6 @@ justpaste.it, 1
justupdate.me, 1
justyy.com, 1
justzz.xyz, 1
jutella.de, 1
jutlander-netbank.dk, 1
jutlander.dk, 1
juventusmania1897.com, 1
@ -14714,7 +14711,6 @@ konijntjes.nl, 1
konings.it, 1
koningskwartiertje.nl, 1
konklone.com, 1
konkurs.ba, 1
konoe.studio, 1
konosuke.jp, 1
konsertoversikt.no, 1
@ -15108,6 +15104,7 @@ lanyang.tk, 1
lanzamientovirtual.es, 1
lanzarote-online.info, 1
laos.dating, 1
laospage.com, 1
laozhu.me, 1
lapassiondutrading.com, 1
lapetition.be, 1
@ -15303,7 +15300,7 @@ leebiblestudycentre.co.uk, 1
leebiblestudycentre.com, 1
leebiblestudycentre.net, 1
leebiblestudycentre.org, 1
leech360.com, 1
leech360.com, 0
leeclemens.net, 1
leedev.org, 1
leefindlow.com, 1
@ -15506,7 +15503,6 @@ lheinrich.de, 1
lheinrich.org, 1
li-ke.co.jp, 1
li.search.yahoo.com, 0
liangji.com.tw, 0
lianwen.kim, 1
lianye1.cc, 1
lianye2.cc, 1
@ -16740,6 +16736,7 @@ mattli.us, 1
mattmccutchen.net, 1
mattonline.me, 1
mattwb65.com, 1
mattwservices.co.uk, 1
matviet.vn, 1
matze.co, 1
matze.org, 1
@ -16800,7 +16797,6 @@ mazda626.net, 1
maze.fr, 1
mazternet.ru, 1
mazurlabs.tk, 1
mazzotta.me, 1
mb-is.info, 1
mbaestlein.de, 1
mbardot.com, 1
@ -17833,7 +17829,7 @@ mplicka.cz, 1
mplusm.eu, 1
mpn.poker, 1
mpnpokertour.com, 1
mpreserver.com, 0
mpreserver.com, 1
mpserver12.org, 1
mpsgarage.com.au, 1
mpsoundcraft.com, 1
@ -18576,7 +18572,6 @@ nemez.net, 1
nemo.run, 1
nemumu.com, 1
nemunai.re, 1
neo19.com, 0
neo2shyalien.eu, 0
neobits.nl, 1
neocities.org, 1
@ -19414,7 +19409,6 @@ okay.coffee, 1
okaz.de, 1
okburrito.com, 1
okchicas.com, 1
oke.com.tw, 0
okeeferanch.ca, 1
okhrana.agency, 1
okin-jp.net, 1
@ -19485,6 +19479,7 @@ omniverse.ru, 1
omorashi.org, 1
omranic.com, 1
omronwellness.com, 1
omsdieppe.fr, 1
on-te.ch, 1
on-tech.co.uk, 1
onaboat.se, 1
@ -19756,6 +19751,7 @@ oshanko.de, 1
oshayr.com, 1
oshell.me, 1
oshinagaki.jp, 1
oshrc.gov, 1
oskrba.net, 1
oskuro.net, 1
oslinux.net, 1
@ -19850,6 +19846,7 @@ ownspec.com, 1
oxanababy.com, 1
oxborrow.ca, 1
oxelie.com, 1
oxro.co, 1
oxygaming.com, 1
oxymc.com, 1
oxynux.xyz, 1
@ -19923,7 +19920,7 @@ paint-it.pink, 1
paio2-rec.com, 1
paio2.com, 1
paipuman.jp, 1
paizinhovirgula.com, 1
paizinhovirgula.com, 0
pajadam.me, 1
pajowu.de, 1
pajuvuo.fi, 1
@ -20215,7 +20212,6 @@ paystack.com, 1
paytm.in, 1
payupay.ru, 1
payzang.com, 1
pback.se, 1
pbcknd.ml, 1
pbosquet.com, 1
pbraunschdash.com, 1
@ -20787,7 +20783,6 @@ plen.io, 1
plenigo.com, 1
plexhome13.ddns.net, 1
plexi.dyndns.tv, 1
plextv.de, 1
plexusmd.com, 1
plinc.co, 1
pliosoft.com, 1
@ -21037,7 +21032,6 @@ pouet.it, 1
pouets.ovh, 1
poupatempo.org, 1
pourlesenfants.info, 1
pourmesloisirs.com, 1
pourout.org, 1
povareschka.ru, 1
powdersnow.top, 1
@ -22760,6 +22754,7 @@ rugby.video, 1
rugk.dedyn.io, 1
rugstorene.co.uk, 1
ruh-veit.de, 1
ruhr3.de, 1
ruhrmobil-e.de, 1
ruhrnalist.de, 1
ruht.ro, 1
@ -23697,7 +23692,6 @@ servfefe.com, 1
servgate.jp, 1
service.gov.uk, 1
serviceboss.de, 1
servicevie.com, 1
serviettenhaus.de, 1
servingbaby.com, 1
servpanel.de, 1
@ -24256,7 +24250,6 @@ skatn.de, 1
skazka.ru, 1
skday.com, 1
skeeley.com, 1
skei.org, 1
skepticalsports.com, 1
sketchmyroom.com, 1
sketchywebsite.net, 1
@ -25002,6 +24995,7 @@ stacktile.io, 0
stadionmanager.com, 1
stadm.com, 1
stadt-apotheke-muensingen.de, 1
stadterneuerung-hwb.de, 1
stadtgartenla.com, 1
stadtpapa.de, 1
stadtplan-ilmenau.de, 1
@ -25369,7 +25363,6 @@ stuntmen.xyz, 1
stupendous.net, 1
stupidstatetricks.com, 1
sturbi.de, 1
sturdio.com.br, 1
sturge.co.uk, 1
stutelage.com, 1
stuttgart-gablenberg.de, 1
@ -25841,7 +25834,6 @@ tattvaayoga.com, 1
tavolaquadrada.com.br, 1
tavsys.net, 1
taxaroo.com, 1
taxi-24std.de, 1
taxi-chamonix.fr, 1
taxi-collectif.ch, 1
taxicollectif.ch, 1
@ -26283,7 +26275,6 @@ theeducationchannel.info, 1
theeducationdirectory.org, 1
theevergreen.me, 1
theexpatriate.de, 1
theeyeopener.com, 1
thefbstalker.com, 1
theferrarista.com, 1
theflyingbear.net, 1
@ -26617,6 +26608,7 @@ timebox.tk, 1
timeglass.de, 1
timer.fit, 1
timersuite.com, 1
timetab.org, 1
timetotrade.com, 1
timewasters.nl, 1
timfiedler.net, 1
@ -26825,6 +26817,7 @@ tomend.es, 1
tomfisher.eu, 1
tomharling.co.uk, 1
tomharling.uk, 1
tomharris.tech, 1
tomi.cc, 1
tomica.me, 1
tomiler.com, 1
@ -27749,7 +27742,6 @@ urbanietz-immobilien.de, 1
urbanmelbourne.info, 1
urbannewsservice.com, 1
urbansparrow.in, 1
urbanstylestaging.com, 1
urbanwildlifealliance.org, 1
urbexdk.nl, 1
urcentral.com, 1
@ -27851,7 +27843,6 @@ vacationscostarica.com, 1
vaccines.gov, 1
vaclavambroz.cz, 1
vacuumpump.co.id, 1
vacuumreviewcenter.com, 1
vadennissanofhiltonheadparts.com, 1
vadennissanofhinesvilleparts.com, 1
vadik.me, 1
@ -29714,6 +29705,7 @@ xpd.se, 1
xpenology-fr.net, 1
xperidia.com, 1
xpj.bet, 1
xpjcunkuan.com, 1
xpletus.nl, 1
xplore-dna.net, 1
xpressprint.com.br, 1
@ -29860,8 +29852,6 @@ yepbitcoin.com, 1
yephy.com, 1
yesfone.com.br, 1
yesiammaisey.me, 1
yesonline.asia, 0
yesonline.me, 0
yeswehack.com, 1
yetii.net, 1
yetzt.me, 0
@ -30113,6 +30103,7 @@ zalan.do, 1
zamis.net, 1
zamocosmeticos.com.br, 1
zamow.co, 1
zandcell.com, 1
zanthra.com, 1
zaoext.com, 1
zapier.com, 1
@ -30120,6 +30111,7 @@ zappbuildapps.com, 1
zaratan.fr, 1
zarmarket.org, 1
zarpo.com.br, 1
zary.me, 1
zaufanatrzeciastrona.pl, 1
zavec.com.ec, 1
zavetaji.lv, 1

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

@ -121,6 +121,16 @@ function pemToBase64(pem) {
.replace(/[\r\n]/g, "");
}
function build_cert_chain(certNames) {
let certList = Cc["@mozilla.org/security/x509certlist;1"]
.createInstance(Ci.nsIX509CertList);
certNames.forEach(function(certName) {
let cert = constructCertFromFile("bad_certs/" + certName + ".pem");
certList.addCert(cert);
});
return certList;
}
function readFile(file) {
let fstream = Cc["@mozilla.org/network/file-input-stream;1"]
.createInstance(Ci.nsIFileInputStream);
@ -702,6 +712,7 @@ function add_cert_override(aHost, aExpectedBits, aExpectedErrorRegexp,
(sslstatus.isUntrusted ? Ci.nsICertOverrideService.ERROR_UNTRUSTED : 0) |
(sslstatus.isDomainMismatch ? Ci.nsICertOverrideService.ERROR_MISMATCH : 0) |
(sslstatus.isNotValidAtThisTime ? Ci.nsICertOverrideService.ERROR_TIME : 0);
Assert.equal(bits, aExpectedBits,
"Actual and expected override bits should match");
let cert = sslstatus.serverCert;
@ -717,7 +728,8 @@ function add_cert_override(aHost, aExpectedBits, aExpectedErrorRegexp,
// with the expected errors and that adding an override results in a subsequent
// connection succeeding.
function add_cert_override_test(aHost, aExpectedBits, aExpectedError,
aExpectedErrorRegexp = undefined) {
aExpectedErrorRegexp = undefined,
aExpectedSSLStatus = undefined) {
add_connection_test(aHost, aExpectedError, null,
add_cert_override.bind(this, aHost, aExpectedBits,
aExpectedErrorRegexp));
@ -725,6 +737,13 @@ function add_cert_override_test(aHost, aExpectedBits, aExpectedError,
Assert.ok(aSecurityInfo.securityState &
Ci.nsIWebProgressListener.STATE_CERT_USER_OVERRIDDEN,
"Cert override flag should be set on the security state");
if (aExpectedSSLStatus) {
let sslstatus = aSecurityInfo.QueryInterface(Ci.nsISSLStatusProvider)
.SSLStatus;
if (aExpectedSSLStatus.failedCertChain) {
ok(aExpectedSSLStatus.failedCertChain.equals(sslstatus.failedCertChain));
}
}
});
}

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

@ -5,16 +5,6 @@
"use strict";
function build_cert_chain(certNames) {
let certList = Cc["@mozilla.org/security/x509certlist;1"]
.createInstance(Ci.nsIX509CertList);
certNames.forEach(function(certName) {
let cert = constructCertFromFile("bad_certs/" + certName + ".pem");
certList.addCert(cert);
});
return certList;
}
function test_cert_equals() {
let certA = constructCertFromFile("bad_certs/default-ee.pem");
let certB = constructCertFromFile("bad_certs/default-ee.pem");

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

@ -0,0 +1,55 @@
// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
"use strict";
do_get_profile();
function run_test() {
Services.prefs.setIntPref("security.OCSP.enabled", 1);
add_tls_server_setup("BadCertServer", "bad_certs");
let fakeOCSPResponder = new HttpServer();
fakeOCSPResponder.registerPrefixHandler("/", function (request, response) {
response.setStatusLine(request.httpVersion, 500, "Internal Server Error");
});
fakeOCSPResponder.start(8888);
// Test successful connection (failedCertChain should be null,
// succeededCertChain should be set as expected)
add_connection_test(
"good.include-subdomains.pinning.example.com", PRErrorCodeSuccess, null,
function withSecurityInfo(aSSLStatus) {
let sslstatus = aSSLStatus.QueryInterface(Ci.nsISSLStatusProvider).SSLStatus;
equal(sslstatus.failedCertChain, null,
"failedCertChain for a successful connection should be null");
ok(sslstatus.succeededCertChain.equals(build_cert_chain(["default-ee", "test-ca"])),
"succeededCertChain for a successful connection should be as expected");
}
);
// Test failed connection (failedCertChain should be set as expected,
// succeededCertChain should be null)
add_connection_test(
"expired.example.com", SEC_ERROR_EXPIRED_CERTIFICATE, null,
function withSecurityInfo(aSSLStatus) {
let sslstatus = aSSLStatus.QueryInterface(Ci.nsISSLStatusProvider).SSLStatus;
equal(sslstatus.succeededCertChain, null,
"succeededCertChain for a failed connection should be null");
ok(sslstatus.failedCertChain.equals(build_cert_chain(["expired-ee", "test-ca"])),
"failedCertChain for a failed connection should be as expected");
}
);
// Ensure the correct failed cert chain is set on cert override
let overrideStatus = {
failedCertChain: build_cert_chain(["expired-ee", "test-ca"])
};
add_cert_override_test("expired.example.com",
Ci.nsICertOverrideService.ERROR_TIME,
SEC_ERROR_EXPIRED_CERTIFICATE, undefined,
overrideStatus);
run_next_test();
}

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

@ -151,6 +151,7 @@ run-sequentially = hardcoded ports
[test_signed_apps.js]
[test_signed_dir.js]
tags = addons psm
[test_ssl_status.js]
[test_sss_enumerate.js]
[test_sss_eviction.js]
[test_sss_originAttributes.js]

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

@ -388,6 +388,15 @@ pub trait TElement
depth
}
/// The style scope of this element is a node that represents which rules
/// apply to the element.
///
/// In Servo, where we don't know about Shadow DOM or XBL, the style scope
/// is always the document.
fn style_scope(&self) -> Self::ConcreteNode {
self.as_node().owner_doc().as_node()
}
/// Get this node's parent element from the perspective of a restyle
/// traversal.
fn traversal_parent(&self) -> Option<Self> {
@ -738,14 +747,16 @@ pub trait TElement
None
}
/// Returns the rule hash target given an element.
/// Return the element which we can use to look up rules in the selector
/// maps.
///
/// This is always the element itself, except in the case where we are an
/// element-backed pseudo-element, in which case we return the originating
/// element.
fn rule_hash_target(&self) -> Self {
let is_implemented_pseudo =
self.implemented_pseudo_element().is_some();
// NB: This causes use to rule has pseudo selectors based on the
// properties of the originating element (which is fine, given the
// find_first_from_right usage).
if is_implemented_pseudo {
self.closest_non_native_anonymous_ancestor().unwrap()
} else {

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

@ -518,9 +518,14 @@ impl<'le> GeckoElement<'le> {
.and_then(|s| unsafe { s.mExtendedSlots.mPtr.as_ref() })
}
#[inline]
fn may_be_in_binding_manager(&self) -> bool {
self.flags() & (structs::NODE_MAY_BE_IN_BINDING_MNGR as u32) != 0
}
#[inline]
fn get_xbl_binding(&self) -> Option<GeckoXBLBinding<'le>> {
if self.flags() & (structs::NODE_MAY_BE_IN_BINDING_MNGR as u32) == 0 {
if !self.may_be_in_binding_manager() {
return None;
}
@ -553,9 +558,11 @@ impl<'le> GeckoElement<'le> {
} else {
let binding_parent = unsafe {
self.get_non_xul_xbl_binding_parent_raw_content().as_ref()
}.map(GeckoNode::from_content)
.and_then(|n| n.as_element());
debug_assert!(binding_parent == unsafe { bindings::Gecko_GetBindingParent(self.0).map(GeckoElement) });
}.map(GeckoNode::from_content).and_then(|n| n.as_element());
debug_assert!(binding_parent == unsafe {
bindings::Gecko_GetBindingParent(self.0).map(GeckoElement)
});
binding_parent
}
}
@ -925,6 +932,28 @@ impl<'le> TElement for GeckoElement<'le> {
self.get_before_or_after_pseudo(/* is_before = */ false)
}
/// Ensure this accurately represents the rules that an element may ever
/// match, even in the native anonymous content case.
fn style_scope(&self) -> Self::ConcreteNode {
if self.implemented_pseudo_element().is_some() {
return self.closest_non_native_anonymous_ancestor().unwrap().style_scope();
}
if self.is_in_native_anonymous_subtree() {
return self.as_node().owner_doc().as_node();
}
if self.get_xbl_binding().is_some() {
return self.as_node();
}
if let Some(parent) = self.get_xbl_binding_parent() {
return parent.as_node();
}
self.as_node().owner_doc().as_node()
}
/// Execute `f` for each anonymous content child element (apart from
/// ::before and ::after) whose originating element is `self`.
fn each_anonymous_content_child<F>(&self, mut f: F)

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

@ -6,7 +6,6 @@
//! quickly whether it's worth to share style, and whether two different
//! elements can indeed share the same style.
use Atom;
use bloom::StyleBloom;
use context::{SelectorFlagsMap, SharedStyleContext};
use dom::TElement;
@ -96,14 +95,16 @@ pub fn have_same_class<E>(target: &mut StyleSharingTarget<E>,
/// :first-child, etc, or on attributes that we don't check off-hand (pretty
/// much every attribute selector except `id` and `class`.
#[inline]
pub fn revalidate<E>(target: &mut StyleSharingTarget<E>,
candidate: &mut StyleSharingCandidate<E>,
shared_context: &SharedStyleContext,
bloom: &StyleBloom<E>,
nth_index_cache: &mut NthIndexCache,
selector_flags_map: &mut SelectorFlagsMap<E>)
-> bool
where E: TElement,
pub fn revalidate<E>(
target: &mut StyleSharingTarget<E>,
candidate: &mut StyleSharingCandidate<E>,
shared_context: &SharedStyleContext,
bloom: &StyleBloom<E>,
nth_index_cache: &mut NthIndexCache,
selector_flags_map: &mut SelectorFlagsMap<E>,
) -> bool
where
E: TElement,
{
let stylist = &shared_context.stylist;
@ -130,16 +131,25 @@ pub fn revalidate<E>(target: &mut StyleSharingTarget<E>,
/// Checks whether we might have rules for either of the two ids.
#[inline]
pub fn may_have_rules_for_ids(shared_context: &SharedStyleContext,
element_id: Option<&Atom>,
candidate_id: Option<&Atom>) -> bool
pub fn may_match_different_id_rules<E>(
shared_context: &SharedStyleContext,
element: E,
candidate: E,
) -> bool
where
E: TElement,
{
// We shouldn't be called unless the ids are different.
debug_assert!(element_id.is_some() || candidate_id.is_some());
let element_id = element.get_id();
let candidate_id = candidate.get_id();
if element_id == candidate_id {
return false;
}
let stylist = &shared_context.stylist;
let may_have_rules_for_element = match element_id {
Some(id) => stylist.may_have_rules_for_id(id),
Some(ref id) => stylist.may_have_rules_for_id(id, element),
None => false
};
@ -148,7 +158,7 @@ pub fn may_have_rules_for_ids(shared_context: &SharedStyleContext,
}
match candidate_id {
Some(id) => stylist.may_have_rules_for_id(id),
Some(ref id) => stylist.may_have_rules_for_id(id, candidate),
None => false
}
}

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

@ -206,10 +206,11 @@ impl ValidationData {
bloom: &StyleBloom<E>,
nth_index_cache: &mut NthIndexCache,
bloom_known_valid: bool,
flags_setter: &mut F
flags_setter: &mut F,
) -> &SmallBitVec
where E: TElement,
F: FnMut(&E, ElementSelectorFlags),
where
E: TElement,
F: FnMut(&E, ElementSelectorFlags),
{
if self.revalidation_match_results.is_none() {
// The bloom filter may already be set up for our element.
@ -230,10 +231,12 @@ impl ValidationData {
}
};
self.revalidation_match_results =
Some(stylist.match_revalidation_selectors(&element,
bloom_to_use,
nth_index_cache,
flags_setter));
Some(stylist.match_revalidation_selectors(
element,
bloom_to_use,
nth_index_cache,
flags_setter,
));
}
self.revalidation_match_results.as_ref().unwrap()
@ -661,6 +664,15 @@ impl<E: TElement> StyleSharingCache<E> {
return None;
}
// Note that in the XBL case, we should be able to assert that the
// scopes are different, since two elements with different XBL bindings
// need to necessarily have different style (and thus children of them
// would never pass the parent check).
if target.element.style_scope() != candidate.element.style_scope() {
trace!("Miss: Different style scopes");
return None;
}
if *target.get_local_name() != *candidate.element.get_local_name() {
trace!("Miss: Local Name");
return None;
@ -690,15 +702,17 @@ impl<E: TElement> StyleSharingCache<E> {
return None;
}
let element_id = target.element.get_id();
let candidate_id = candidate.element.get_id();
if element_id != candidate_id {
// It's possible that there are no styles for either id.
if checks::may_have_rules_for_ids(shared, element_id.as_ref(),
candidate_id.as_ref()) {
trace!("Miss: ID Attr");
return None;
}
// It's possible that there are no styles for either id.
let may_match_different_id_rules =
checks::may_match_different_id_rules(
shared,
target.element,
candidate.element,
);
if may_match_different_id_rules {
trace!("Miss: ID Attr");
return None;
}
if !checks::have_same_style_attribute(target, candidate) {

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

@ -1409,10 +1409,29 @@ impl Stylist {
/// Given an id, returns whether there might be any rules for that id in any
/// of our rule maps.
#[inline]
pub fn may_have_rules_for_id(&self, id: &Atom) -> bool {
self.cascade_data
.iter_origins()
.any(|(d, _)| d.mapped_ids.might_contain_hash(id.get_hash()))
pub fn may_have_rules_for_id<E>(
&self,
id: &Atom,
element: E,
) -> bool
where
E: TElement,
{
let hash = id.get_hash();
for (data, _) in self.cascade_data.iter_origins() {
if data.mapped_ids.might_contain_hash(hash) {
return true;
}
}
let mut xbl_rules_may_contain = false;
element.each_xbl_stylist(|stylist| {
xbl_rules_may_contain = xbl_rules_may_contain ||
stylist.cascade_data.author.mapped_ids.might_contain_hash(hash)
});
xbl_rules_may_contain
}
/// Returns the registered `@keyframes` animation for the specified name.
@ -1428,7 +1447,7 @@ impl Stylist {
/// revalidation selectors.
pub fn match_revalidation_selectors<E, F>(
&self,
element: &E,
element: E,
bloom: Option<&BloomFilter>,
nth_index_cache: &mut NthIndexCache,
flags_setter: &mut F
@ -1454,14 +1473,14 @@ impl Stylist {
let mut results = SmallBitVec::new();
for (data, _) in self.cascade_data.iter_origins() {
data.selectors_for_cache_revalidation.lookup(
*element,
element,
self.quirks_mode,
&mut |selector_and_hashes| {
results.push(matches_selector(
&selector_and_hashes.selector,
selector_and_hashes.selector_offset,
Some(&selector_and_hashes.hashes),
element,
&element,
&mut matching_context,
flags_setter
));
@ -1470,6 +1489,24 @@ impl Stylist {
);
}
element.each_xbl_stylist(|stylist| {
stylist.cascade_data.author.selectors_for_cache_revalidation.lookup(
element,
stylist.quirks_mode,
&mut |selector_and_hashes| {
results.push(matches_selector(
&selector_and_hashes.selector,
selector_and_hashes.selector_offset,
Some(&selector_and_hashes.hashes),
&element,
&mut matching_context,
flags_setter
));
true
}
);
});
results
}

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

@ -14,12 +14,14 @@
var helpers = require("../helpers");
// Note: we match to the end of the string as well as the beginning, to avoid
// multiple reports from MemberExpression statements.
var cpows = [
/^gBrowser\.contentWindow/,
/^gBrowser\.contentDocument/,
/^gBrowser\.selectedBrowser.contentWindow/,
/^browser\.contentDocument/,
/^window\.content/
/^gBrowser\.contentWindow$/,
/^gBrowser\.contentDocument$/,
/^gBrowser\.selectedBrowser\.contentWindow$/,
/^browser\.contentDocument$/,
/^window\.content$/
];
var isInContentTask = false;
@ -86,7 +88,6 @@ module.exports = function(context) {
if (!someCpowFound && helpers.getIsGlobalScope(context.getAncestors())) {
if (/^content\./.test(expression)) {
showError(node, expression);
}
}
},
@ -96,17 +97,46 @@ module.exports = function(context) {
return;
}
var expression = context.getSource(node);
if (expression == "content" || /^content\./.test(expression)) {
if (node.parent.type === "MemberExpression" &&
node.parent.object &&
node.parent.object.type === "Identifier" &&
node.parent.object.name != "content") {
return;
}
showError(node, expression);
if (node.name !== "content" ||
// Don't complain if this is part of a member expression - the
// MemberExpression() function will handle those.
node.parent.type === "MemberExpression" ||
// If this is a declared variable in a function, then don't complain.
node.parent.type === "FunctionDeclaration") {
return;
}
// Don't error in the case of `let content = foo`.
if (node.parent.type === "VariableDeclarator" &&
node.parent.id && node.parent.id.name === "content") {
return;
}
// Walk up the parents, see if we can find if this is a local variable.
let parent = node;
do {
parent = parent.parent;
// Don't error if 'content' is one of the function parameters.
if (parent.type === "FunctionDeclaration" &&
context.getDeclaredVariables(parent).some(variable => variable.name === "content")) {
return;
} else if (parent.type === "BlockStatement" || parent.type === "Program") {
// Don't error if the block or program includes their own definition of content.
for (let item of parent.body) {
if (item.type === "VariableDeclaration" && item.declarations.length) {
for (let declaration of item.declarations) {
if (declaration.id && declaration.id.name === "content") {
return;
}
}
}
}
}
} while (parent.parent);
var expression = context.getSource(node);
showError(node, expression);
}
};
};

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

@ -1,6 +1,6 @@
{
"name": "eslint-plugin-mozilla",
"version": "0.4.5",
"version": "0.4.6",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -28,27 +28,27 @@
}
},
"ajv": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz",
"integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=",
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz",
"integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=",
"dev": true,
"requires": {
"co": "4.6.0",
"fast-deep-equal": "1.0.0",
"json-schema-traverse": "0.3.1",
"json-stable-stringify": "1.0.1"
"fast-json-stable-stringify": "2.0.0",
"json-schema-traverse": "0.3.1"
}
},
"ajv-keywords": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
"integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz",
"integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=",
"dev": true
},
"ansi-escapes": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz",
"integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
"integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
"dev": true
},
"ansi-regex": {
@ -102,6 +102,30 @@
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
},
"dependencies": {
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
"ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "2.1.1"
}
}
}
},
"balanced-match": {
@ -142,16 +166,34 @@
"dev": true
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
"integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
"dev": true,
"requires": {
"ansi-styles": "2.2.1",
"ansi-styles": "3.2.0",
"escape-string-regexp": "1.0.5",
"has-ansi": "2.0.0",
"strip-ansi": "3.0.1",
"supports-color": "2.0.0"
"supports-color": "4.5.0"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
"dev": true,
"requires": {
"color-convert": "1.9.0"
}
},
"supports-color": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
"integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
"dev": true,
"requires": {
"has-flag": "2.0.0"
}
}
}
},
"circular-json": {
@ -197,13 +239,10 @@
"dev": true
},
"commander": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
"dev": true,
"requires": {
"graceful-readlink": "1.0.1"
}
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
"dev": true
},
"concat-map": {
"version": "0.0.1",
@ -228,10 +267,21 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true
},
"cross-spawn": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
"lru-cache": "4.1.1",
"shebang-command": "1.2.0",
"which": "1.3.0"
}
},
"debug": {
"version": "2.6.8",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
"integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
@ -259,9 +309,9 @@
}
},
"diff": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz",
"integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=",
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
"integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
"dev": true
},
"doctrine": {
@ -281,16 +331,17 @@
"dev": true
},
"eslint": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-4.2.0.tgz",
"integrity": "sha1-orMYQRGxmOAunH88ymJaXgHFaz0=",
"version": "4.9.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-4.9.0.tgz",
"integrity": "sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos=",
"dev": true,
"requires": {
"ajv": "5.2.2",
"ajv": "5.3.0",
"babel-code-frame": "6.26.0",
"chalk": "1.1.3",
"chalk": "2.3.0",
"concat-stream": "1.6.0",
"debug": "2.6.8",
"cross-spawn": "5.1.0",
"debug": "3.1.0",
"doctrine": "2.0.0",
"eslint-scope": "3.7.1",
"espree": "3.5.1",
@ -298,11 +349,12 @@
"estraverse": "4.2.0",
"esutils": "2.0.2",
"file-entry-cache": "2.0.0",
"functional-red-black-tree": "1.0.1",
"glob": "7.1.2",
"globals": "9.18.0",
"ignore": "3.3.5",
"ignore": "3.3.7",
"imurmurhash": "0.1.4",
"inquirer": "3.2.3",
"inquirer": "3.3.0",
"is-resolvable": "1.0.0",
"js-yaml": "3.10.0",
"json-stable-stringify": "1.0.1",
@ -313,11 +365,13 @@
"natural-compare": "1.4.0",
"optionator": "0.8.2",
"path-is-inside": "1.0.2",
"pluralize": "4.0.0",
"pluralize": "7.0.0",
"progress": "2.0.0",
"require-uncached": "1.0.3",
"semver": "5.4.1",
"strip-ansi": "4.0.0",
"strip-json-comments": "2.0.1",
"table": "4.0.1",
"table": "4.0.2",
"text-table": "0.2.0"
}
},
@ -379,14 +433,14 @@
"dev": true
},
"external-editor": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz",
"integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=",
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz",
"integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==",
"dev": true,
"requires": {
"iconv-lite": "0.4.19",
"jschardet": "1.5.1",
"tmp": "0.0.31"
"jschardet": "1.6.0",
"tmp": "0.0.33"
}
},
"fast-deep-equal": {
@ -395,6 +449,12 @@
"integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
"dev": true
},
"fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
"dev": true
},
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
@ -416,14 +476,14 @@
"integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
"dev": true,
"requires": {
"flat-cache": "1.2.2",
"flat-cache": "1.3.0",
"object-assign": "4.1.1"
}
},
"flat-cache": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
"integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
"integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
"dev": true,
"requires": {
"circular-json": "0.3.3",
@ -438,6 +498,12 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
"functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
@ -478,16 +544,10 @@
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"dev": true
},
"graceful-readlink": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
"dev": true
},
"growl": {
"version": "1.9.2",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
"integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
"version": "1.10.3",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
"integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
"dev": true
},
"has-ansi": {
@ -505,6 +565,12 @@
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
"dev": true
},
"he": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
"dev": true
},
"iconv-lite": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
@ -512,9 +578,9 @@
"dev": true
},
"ignore": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz",
"integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==",
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
"integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
"dev": true
},
"imurmurhash": {
@ -545,16 +611,16 @@
"integrity": "sha1-+kF4flZ3Y7P/Zdel2alO23QHh+8="
},
"inquirer": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.3.tgz",
"integrity": "sha512-Bc3KbimpDTOeQdDj18Ir/rlsGuhBSSNqdOnxaAuKhpkdnMMuKsEGbZD2v5KFF9oso2OU+BPh7+/u5obmFDRmWw==",
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
"integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
"dev": true,
"requires": {
"ansi-escapes": "2.0.0",
"chalk": "2.1.0",
"ansi-escapes": "3.0.0",
"chalk": "2.3.0",
"cli-cursor": "2.1.0",
"cli-width": "2.2.0",
"external-editor": "2.0.4",
"external-editor": "2.0.5",
"figures": "2.0.0",
"lodash": "4.17.4",
"mute-stream": "0.0.7",
@ -564,52 +630,6 @@
"string-width": "2.1.1",
"strip-ansi": "4.0.0",
"through": "2.3.8"
},
"dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"ansi-styles": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
"integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
"dev": true,
"requires": {
"color-convert": "1.9.0"
}
},
"chalk": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
"dev": true,
"requires": {
"ansi-styles": "3.2.0",
"escape-string-regexp": "1.0.5",
"supports-color": "4.4.0"
}
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "3.0.0"
}
},
"supports-color": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
"integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"dev": true,
"requires": {
"has-flag": "2.0.0"
}
}
}
},
"is-fullwidth-code-point": {
@ -663,6 +683,12 @@
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true
},
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
},
"js-tokens": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
@ -680,9 +706,9 @@
}
},
"jschardet": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz",
"integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==",
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.6.0.tgz",
"integrity": "sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ==",
"dev": true
},
"json-schema-traverse": {
@ -700,12 +726,6 @@
"jsonify": "0.0.0"
}
},
"json3": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
"integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
"dev": true
},
"jsonify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
@ -728,72 +748,14 @@
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
"dev": true
},
"lodash._baseassign": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
"integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
"lru-cache": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
"integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
"dev": true,
"requires": {
"lodash._basecopy": "3.0.1",
"lodash.keys": "3.1.2"
}
},
"lodash._basecopy": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
"dev": true
},
"lodash._basecreate": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
"integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=",
"dev": true
},
"lodash._getnative": {
"version": "3.9.1",
"resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
"integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
"dev": true
},
"lodash._isiterateecall": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
"dev": true
},
"lodash.create": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
"integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
"dev": true,
"requires": {
"lodash._baseassign": "3.2.0",
"lodash._basecreate": "3.0.3",
"lodash._isiterateecall": "3.0.9"
}
},
"lodash.isarguments": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
"integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
"dev": true
},
"lodash.isarray": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
"dev": true
},
"lodash.keys": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
"dev": true,
"requires": {
"lodash._getnative": "3.9.1",
"lodash.isarguments": "3.1.0",
"lodash.isarray": "3.0.4"
"pseudomap": "1.0.2",
"yallist": "2.1.2"
}
},
"mimic-fn": {
@ -827,66 +789,30 @@
}
},
"mocha": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-3.4.2.tgz",
"integrity": "sha1-0O9NMyEm2/GNDWQMmzgt1IvpdZQ=",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-4.0.1.tgz",
"integrity": "sha512-evDmhkoA+cBNiQQQdSKZa2b9+W2mpLoj50367lhy+Klnx9OV8XlCIhigUnn1gaTFLQCa0kdNhEGDr0hCXOQFDw==",
"dev": true,
"requires": {
"browser-stdout": "1.3.0",
"commander": "2.9.0",
"debug": "2.6.0",
"diff": "3.2.0",
"commander": "2.11.0",
"debug": "3.1.0",
"diff": "3.3.1",
"escape-string-regexp": "1.0.5",
"glob": "7.1.1",
"growl": "1.9.2",
"json3": "3.3.2",
"lodash.create": "3.1.1",
"glob": "7.1.2",
"growl": "1.10.3",
"he": "1.1.1",
"mkdirp": "0.5.1",
"supports-color": "3.1.2"
"supports-color": "4.4.0"
},
"dependencies": {
"debug": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
"integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=",
"dev": true,
"requires": {
"ms": "0.7.2"
}
},
"glob": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
"integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
"dev": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
"integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
},
"ms": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
"integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
"dev": true
},
"supports-color": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
"integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
"integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"dev": true,
"requires": {
"has-flag": "1.0.0"
"has-flag": "2.0.0"
}
}
}
@ -987,9 +913,9 @@
}
},
"pluralize": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz",
"integrity": "sha1-WbcIwcAZCi9pLxx2GMRGsFL9F2I=",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
"prelude-ls": {
@ -1010,6 +936,12 @@
"integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
"dev": true
},
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true
},
"readable-stream": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
@ -1095,6 +1027,27 @@
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"semver": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
"integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
"dev": true
},
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
"dev": true,
"requires": {
"shebang-regex": "1.0.0"
}
},
"shebang-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
"signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
@ -1102,10 +1055,13 @@
"dev": true
},
"slice-ansi": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
"integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
"dev": true
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
"integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
"dev": true,
"requires": {
"is-fullwidth-code-point": "2.0.0"
}
},
"sprintf-js": {
"version": "1.0.3",
@ -1121,23 +1077,6 @@
"requires": {
"is-fullwidth-code-point": "2.0.0",
"strip-ansi": "4.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "3.0.0"
}
}
}
},
"string_decoder": {
@ -1150,12 +1089,20 @@
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "2.1.1"
"ansi-regex": "3.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
}
}
},
"strip-json-comments": {
@ -1171,29 +1118,17 @@
"dev": true
},
"table": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz",
"integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
"integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
"dev": true,
"requires": {
"ajv": "4.11.8",
"ajv-keywords": "1.5.1",
"chalk": "1.1.3",
"ajv": "5.3.0",
"ajv-keywords": "2.1.0",
"chalk": "2.3.0",
"lodash": "4.17.4",
"slice-ansi": "0.0.4",
"slice-ansi": "1.0.0",
"string-width": "2.1.1"
},
"dependencies": {
"ajv": {
"version": "4.11.8",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
"dev": true,
"requires": {
"co": "4.6.0",
"json-stable-stringify": "1.0.1"
}
}
}
},
"text-table": {
@ -1209,9 +1144,9 @@
"dev": true
},
"tmp": {
"version": "0.0.31",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
"integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dev": true,
"requires": {
"os-tmpdir": "1.0.2"
@ -1244,6 +1179,15 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
"which": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
"integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
"dev": true,
"requires": {
"isexe": "2.0.0"
}
},
"wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
@ -1264,6 +1208,12 @@
"requires": {
"mkdirp": "0.5.1"
}
},
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
"dev": true
}
}
}

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

@ -1,6 +1,6 @@
{
"name": "eslint-plugin-mozilla",
"version": "0.4.5",
"version": "0.4.6",
"description": "A collection of rules that help enforce JavaScript coding standard in the Mozilla project.",
"keywords": [
"eslint",
@ -24,8 +24,8 @@
"sax": "1.2.4"
},
"devDependencies": {
"eslint": "4.2.0",
"mocha": "3.4.2"
"eslint": "4.9.0",
"mocha": "4.0.1"
},
"peerDependencies": {
"eslint": "^3.0.0 || ^4.0.0",

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

@ -0,0 +1,48 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// ------------------------------------------------------------------------------
// Requirements
// ------------------------------------------------------------------------------
var rule = require("../lib/rules/no-cpows-in-tests");
var RuleTester = require("eslint/lib/testers/rule-tester");
const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
// ------------------------------------------------------------------------------
// Tests
// ------------------------------------------------------------------------------
function wrapCode(code, filename = "browser_fake.js") {
return {code, filename};
}
function invalidCode(code, item, type = "MemberExpression") {
let message = `${item} is a possible Cross Process Object Wrapper (CPOW).`;
let obj = wrapCode(code);
obj.errors = [{message, type}];
return obj;
}
ruleTester.run("no-cpows-in-tests", rule, {
valid: [
"window.document",
wrapCode("ContentTask.spawn(browser, null, () => { content.document; });"),
wrapCode("let x = cssDocs.tooltip.content.contentDocument;"),
wrapCode("function test(content) { let x = content; }"),
wrapCode('let content = "content"; foo(content);')
],
invalid: [
invalidCode("let x = gBrowser.contentWindow;", "gBrowser.contentWindow"),
invalidCode("let x = gBrowser.contentDocument;", "gBrowser.contentDocument"),
invalidCode("let x = gBrowser.selectedBrowser.contentWindow;", "gBrowser.selectedBrowser.contentWindow"),
invalidCode("let x = browser.contentDocument;", "browser.contentDocument"),
invalidCode("let x = window.content;", "window.content"),
invalidCode("content.document;", "content.document"),
invalidCode("let x = content;", "content", "Identifier"),
invalidCode("let x = gBrowser.contentWindow.wrappedJSObject", "gBrowser.contentWindow")
]
});