MozReview-Commit-ID: 3ZzrFonZOIV
This commit is contained in:
Wes Kocher 2017-02-16 09:28:52 -08:00
Родитель 3043646e52 ea31c4b64f
Коммит b0b1d367ca
27 изменённых файлов: 15634 добавлений и 15145 удалений

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

@ -2143,16 +2143,12 @@
<versionRange maxVersion="13.0.0.302" minVersion="13.0.0.302" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
<pluginItem blockID="p1495" os="Linux">
<match exp="" name="name"/>
<match exp="libflashplayer\.so" name="filename"/>
<match exp="" name="description"/>
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="24.0.0.186" minVersion="23.0.0.207" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
<pluginItem blockID="p1420" os="">
<match exp="" name="name"/>
<pluginItem blockID="p1420">
<match exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" name="filename"/>
<match exp="" name="description"/>
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="23.0.0.205" minVersion="23.0.0.185" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
@ -2206,9 +2202,7 @@
<versionRange maxVersion="*" minVersion="0"/>
</pluginItem>
<pluginItem blockID="p1419" os="Linux">
<match exp="" name="name"/>
<match exp="libflashplayer\.so" name="filename"/>
<match exp="" name="description"/>
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="11.2.202.643" minVersion="11.2.202.637" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
@ -2465,10 +2459,8 @@
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="18.0.0.232" minVersion="18.0.0.204" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
<pluginItem blockID="p1274" os="">
<match exp="" name="name"/>
<pluginItem blockID="p1274">
<match exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" name="filename"/>
<match exp="" name="description"/>
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="22.0.0.211" minVersion="22.0.0.192" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
@ -2579,10 +2571,8 @@
</targetApplication>
</versionRange>
</pluginItem>
<pluginItem blockID="p1494" os="">
<match exp="" name="name"/>
<pluginItem blockID="p1494">
<match exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" name="filename"/>
<match exp="" name="description"/>
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="24.0.0.186" minVersion="23.0.0.207" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
@ -2650,10 +2640,8 @@
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="18.0.0.352" minVersion="18.0.0.343" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
<pluginItem blockID="p160" os="">
<match exp="" name="name"/>
<pluginItem blockID="p160">
<match exp="NPSWF32\.dll" name="filename"/>
<match exp="" name="description"/>
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="10.2.9999" minVersion="0" severity="0" vulnerabilitystatus="1">
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
@ -2821,10 +2809,8 @@
<pluginItem blockID="p28">
<match exp="NPFFAddOn.dll" name="filename"/>
</pluginItem>
<pluginItem blockID="p1421" os="Linux">
<match exp="" name="name"/>
<pluginItem blockID="p1421">
<match exp="libflashplayer\.so" name="filename"/>
<match exp="" name="description"/>
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="23.0.0.207" minVersion="11.2.202.643" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
@ -3020,10 +3006,8 @@
<infoURL>https://get.adobe.com/reader</infoURL>
<versionRange maxVersion="15.006.30174" minVersion="15.006.30174" severity="0" vulnerabilitystatus="1"/>
</pluginItem>
<pluginItem blockID="p1422" os="">
<match exp="" name="name"/>
<pluginItem blockID="p1422">
<match exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" name="filename"/>
<match exp="" name="description"/>
<infoURL>https://get.adobe.com/flashplayer/</infoURL>
<versionRange maxVersion="23.0.0.207" minVersion="23.0.0.205" severity="0" vulnerabilitystatus="1"/>
</pluginItem>

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

@ -136,20 +136,34 @@ function getQuotaUsage(origin) {
});
}
function getCacheUsage() {
return new Promise(resolve => {
let obs = {
onNetworkCacheDiskConsumption(usage) {
resolve(usage);
},
QueryInterface: XPCOMUtils.generateQI([
Components.interfaces.nsICacheStorageConsumptionObserver,
Components.interfaces.nsISupportsWeakReference
]),
};
Services.cache2.asyncGetDiskConsumption(obs);
});
}
// XXX: The intermittent bug 1331851
// The implementation of nsICacheStorageConsumptionObserver must be passed as weak referenced,
// so we must hold this observer here well. If we didn't, there would be a chance that
// in Linux debug test run the observer was released before the operation at gecko was completed
// (may be because of a relatively quicker GC cycle or a relatively slower operation).
// As a result of that, we would never get the cache usage we want so the test would fail from timeout.
const cacheUsageGetter = {
_promise: null,
_resolve: null,
get() {
if (!this._promise) {
this._promise = new Promise(resolve => {
this._resolve = resolve;
Services.cache2.asyncGetDiskConsumption(this);
});
}
return this._promise;
},
// nsICacheStorageConsumptionObserver implementations
onNetworkCacheDiskConsumption(usage) {
cacheUsageGetter._promise = null;
cacheUsageGetter._resolve(usage);
},
QueryInterface: XPCOMUtils.generateQI([
Components.interfaces.nsICacheStorageConsumptionObserver,
Components.interfaces.nsISupportsWeakReference
]),
};
function openSettingsDialog() {
let doc = gBrowser.selectedBrowser.contentDocument;
@ -222,7 +236,7 @@ add_task(function* () {
yield openPreferencesViaOpenPreferencesAPI("advanced", "networkTab", { leaveOpen: true });
// Test the initial states
let cacheUsage = yield getCacheUsage();
let cacheUsage = yield cacheUsageGetter.get();
let quotaUsage = yield getQuotaUsage(TEST_ORIGIN);
let totalUsage = yield SiteDataManager.getTotalUsage();
Assert.greater(cacheUsage, 0, "The cache usage should not be 0");
@ -241,7 +255,7 @@ add_task(function* () {
let status = getPersistentStoragePermStatus(TEST_ORIGIN);
is(status, Ci.nsIPermissionManager.ALLOW_ACTION, "Should not remove permission");
cacheUsage = yield getCacheUsage();
cacheUsage = yield cacheUsageGetter.get();
quotaUsage = yield getQuotaUsage(TEST_ORIGIN);
totalUsage = yield SiteDataManager.getTotalUsage();
Assert.greater(cacheUsage, 0, "The cache usage should not be 0");
@ -269,7 +283,7 @@ add_task(function* () {
status = getPersistentStoragePermStatus(TEST_ORIGIN);
is(status, Ci.nsIPermissionManager.UNKNOWN_ACTION, "Should remove permission");
cacheUsage = yield getCacheUsage();
cacheUsage = yield cacheUsageGetter.get();
quotaUsage = yield getQuotaUsage(TEST_ORIGIN);
totalUsage = yield SiteDataManager.getTotalUsage();
is(cacheUsage, 0, "The cahce usage should be removed");

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

@ -21,8 +21,8 @@
let db = e.target.result;
let tx = db.transaction("TestStore", "readwrite");
let store = tx.objectStore("TestStore");
tx.oncomplete = () => window.dispatchEvent(new Event("test-indexedDB-done"));
store.put({ id: "test_id", description: "Site Data Test"});
window.dispatchEvent(new Event("test-indexedDB-done"));
}
</script>
</body>

58
browser/extensions/formautofill/bootstrap.js поставляемый
Просмотреть файл

@ -7,6 +7,8 @@
/* exported startup, shutdown, install, uninstall */
const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu} = Components;
const STYLESHEET_URI = "chrome://formautofill/content/formautofill.css";
const CACHED_STYLESHEETS = new WeakMap();
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
@ -14,6 +16,30 @@ Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "FormAutofillParent",
"resource://formautofill/FormAutofillParent.jsm");
function insertStyleSheet(domWindow, url) {
let doc = domWindow.document;
let styleSheetAttr = `href="${url}" type="text/css"`;
let styleSheet = doc.createProcessingInstruction("xml-stylesheet", styleSheetAttr);
doc.insertBefore(styleSheet, doc.documentElement);
if (CACHED_STYLESHEETS.has(domWindow)) {
CACHED_STYLESHEETS.get(domWindow).push(styleSheet);
} else {
CACHED_STYLESHEETS.set(domWindow, [styleSheet]);
}
}
let windowListener = {
onOpenWindow(aWindow) {
let domWindow = aWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);
domWindow.addEventListener("load", function onWindowLoaded() {
insertStyleSheet(domWindow, STYLESHEET_URI);
}, {once: true});
},
};
function startup() {
// Besides this pref, we'll need dom.forms.autocomplete.experimental enabled
// as well to make sure form autocomplete works correctly.
@ -22,10 +48,40 @@ function startup() {
}
let parent = new FormAutofillParent();
let enumerator = Services.wm.getEnumerator("navigator:browser");
// Load stylesheet to already opened windows
while (enumerator.hasMoreElements()) {
let win = enumerator.getNext();
let domWindow = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);
insertStyleSheet(domWindow, STYLESHEET_URI);
}
Services.wm.addListener(windowListener);
parent.init();
Services.mm.loadFrameScript("chrome://formautofill/content/FormAutofillFrameScript.js", true);
}
function shutdown() {}
function shutdown() {
Services.wm.removeListener(windowListener);
let enumerator = Services.wm.getEnumerator("navigator:browser");
while (enumerator.hasMoreElements()) {
let win = enumerator.getNext();
let domWindow = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindow);
let cachedStyleSheets = CACHED_STYLESHEETS.get(domWindow);
if (!cachedStyleSheets) {
continue;
}
while (cachedStyleSheets.length !== 0) {
cachedStyleSheets.pop().remove();
}
}
}
function install() {}
function uninstall() {}

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

@ -0,0 +1,7 @@
/* 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/. */
.autocomplete-richlistitem[originaltype="autofill-profile"] {
-moz-binding: url("chrome://formautofill/content/formautofill.xml#autocomplete-profile-listitem");
}

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

@ -0,0 +1,79 @@
<?xml version="1.0"?>
<!-- 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/. -->
<bindings id="formautofillBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
<binding id="autocomplete-profile-listitem" extends="chrome://global/content/bindings/richlistbox.xml#richlistitem">
<xbl:content xmlns="http://www.w3.org/1999/xhtml">
<div anonid="profile-item-box" class="profile-item-box">
<div class="profile-label-col profile-item-col">
<span anonid="profile-label" class="profile-label"></span>
</div>
<div class="profile-comment-col profile-item-col">
<span anonid="profile-comment" class="profile-comment"></span>
</div>
</div>
</xbl:content>
<implementation implements="nsIDOMXULSelectControlItemElement">
<constructor>
<![CDATA[
this._itemBox = document.getAnonymousElementByAttribute(
this, "anonid", "profile-item-box"
);
this._label = document.getAnonymousElementByAttribute(
this, "anonid", "profile-label"
);
this._comment = document.getAnonymousElementByAttribute(
this, "anonid", "profile-comment"
);
this._adjustAcItem();
]]>
</constructor>
<method name="_cleanup">
<body>
<![CDATA[
this._itemBox.removeAttribute("size");
]]>
</body>
</method>
<method name="_onOverflow">
<body></body>
</method>
<method name="_onUnderflow">
<body></body>
</method>
<method name="_adjustAcItem">
<body>
<![CDATA[
let outerBoxRect = this.parentNode.getBoundingClientRect();
let value = this.getAttribute("ac-value");
let comment = this.getAttribute("ac-comment");
this._comment.textContent = comment;
this._label.textContent = value;
// Use two-lines layout when width is smaller than 150px
if (outerBoxRect.width <= 150) {
this._itemBox.setAttribute("size", "small");
} else {
this._itemBox.removeAttribute("size");
}
]]>
</body>
</method>
</implementation>
</binding>
</bindings>

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

@ -0,0 +1,13 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<span style="filter: url(#f);">
<div style="transform: matrix(2, 1, 0, 2, 50, 50);"></div>
</span>
<svg xmlns="http://www.w3.org/2000/svg">
<filter id="f"/>
</svg>
</body>
</html>

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

@ -432,6 +432,7 @@ load 813372-1.html
load 817219.html
load 818454.html
load 822865.html
load 824300.html
asserts-if(stylo,1) load 824862.html # bug 1324704
load 826163.html
load 833604-1.html

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

@ -6182,7 +6182,7 @@ nsDisplayTransform::GetDeltaToTransformOrigin(const nsIFrame* aFrame,
}
/* Allows us to access dimension getters by index. */
float coords[2];
float transformOrigin[2];
TransformReferenceBox::DimensionGetter dimensionGetter[] =
{ &TransformReferenceBox::Width, &TransformReferenceBox::Height };
TransformReferenceBox::DimensionGetter offsetGetter[] =
@ -6192,33 +6192,35 @@ nsDisplayTransform::GetDeltaToTransformOrigin(const nsIFrame* aFrame,
/* If the transform-origin specifies a percentage, take the percentage
* of the size of the box.
*/
const nsStyleCoord &coord = display->mTransformOrigin[index];
if (coord.GetUnit() == eStyleUnit_Calc) {
const nsStyleCoord::Calc *calc = coord.GetCalcValue();
coords[index] =
const nsStyleCoord& originValue = display->mTransformOrigin[index];
if (originValue.GetUnit() == eStyleUnit_Calc) {
const nsStyleCoord::Calc *calc = originValue.GetCalcValue();
transformOrigin[index] =
NSAppUnitsToFloatPixels((refBox.*dimensionGetter[index])(), aAppUnitsPerPixel) *
calc->mPercent +
NSAppUnitsToFloatPixels(calc->mLength, aAppUnitsPerPixel);
} else if (coord.GetUnit() == eStyleUnit_Percent) {
coords[index] =
} else if (originValue.GetUnit() == eStyleUnit_Percent) {
transformOrigin[index] =
NSAppUnitsToFloatPixels((refBox.*dimensionGetter[index])(), aAppUnitsPerPixel) *
coord.GetPercentValue();
originValue.GetPercentValue();
} else {
MOZ_ASSERT(coord.GetUnit() == eStyleUnit_Coord, "unexpected unit");
coords[index] =
NSAppUnitsToFloatPixels(coord.GetCoordValue(), aAppUnitsPerPixel);
MOZ_ASSERT(originValue.GetUnit() == eStyleUnit_Coord,
"unexpected unit");
transformOrigin[index] =
NSAppUnitsToFloatPixels(originValue.GetCoordValue(),
aAppUnitsPerPixel);
}
if (aFrame->GetStateBits() & NS_FRAME_SVG_LAYOUT) {
// SVG frames (unlike other frames) have a reference box that can be (and
// typically is) offset from the TopLeft() of the frame. We need to
// account for that here.
coords[index] +=
transformOrigin[index] +=
NSAppUnitsToFloatPixels((refBox.*offsetGetter[index])(), aAppUnitsPerPixel);
}
}
return Point3D(coords[0], coords[1],
return Point3D(transformOrigin[0], transformOrigin[1],
NSAppUnitsToFloatPixels(display->mTransformOrigin[2].GetCoordValue(),
aAppUnitsPerPixel));
}
@ -6385,12 +6387,12 @@ nsDisplayTransform::GetResultingTransformMatrixInternal(const FrameTransformProp
bool dummyBool;
Matrix4x4 result;
// Call IsSVGTransformed() regardless of the value of
// disp->mSpecifiedTransform, since we still need any transformFromSVGParent.
Matrix svgTransform, transformFromSVGParent;
// disp->mSpecifiedTransform, since we still need any
// parentsChildrenOnlyTransform.
Matrix svgTransform, parentsChildrenOnlyTransform;
bool hasSVGTransforms =
frame && frame->IsSVGTransformed(&svgTransform, &transformFromSVGParent);
bool hasTransformFromSVGParent =
hasSVGTransforms && !transformFromSVGParent.IsIdentity();
frame && frame->IsSVGTransformed(&svgTransform,
&parentsChildrenOnlyTransform);
/* Transformed frames always have a transform, or are preserving 3d (and might still have perspective!) */
if (aProperties.mTransformList) {
result = nsStyleTransformMatrix::ReadTransforms(aProperties.mTransformList->mHead,
@ -6407,47 +6409,36 @@ nsDisplayTransform::GetResultingTransformMatrixInternal(const FrameTransformProp
result = Matrix4x4::From2D(svgTransform);
}
// Apply any translation due to 'transform-origin' and/or 'transform-box':
result.ChangeBasis(aProperties.mToTransformOrigin);
// See the comment for nsSVGContainerFrame::HasChildrenOnlyTransform for
// an explanation of what children-only transforms are.
bool parentHasChildrenOnlyTransform =
hasSVGTransforms && !parentsChildrenOnlyTransform.IsIdentity();
if (parentHasChildrenOnlyTransform) {
float pixelsPerCSSPx =
frame->PresContext()->AppUnitsPerCSSPixel() / aAppUnitsPerPixel;
parentsChildrenOnlyTransform._31 *= pixelsPerCSSPx;
parentsChildrenOnlyTransform._32 *= pixelsPerCSSPx;
Point3D frameOffset(
NSAppUnitsToFloatPixels(-frame->GetPosition().x, aAppUnitsPerPixel),
NSAppUnitsToFloatPixels(-frame->GetPosition().y, aAppUnitsPerPixel),
0);
Matrix4x4 parentsChildrenOnlyTransform3D =
Matrix4x4::From2D(parentsChildrenOnlyTransform).ChangeBasis(frameOffset);
result *= parentsChildrenOnlyTransform3D;
}
Matrix4x4 perspectiveMatrix;
bool hasPerspective = aFlags & INCLUDE_PERSPECTIVE;
if (hasPerspective) {
hasPerspective = ComputePerspectiveMatrix(frame, aAppUnitsPerPixel,
perspectiveMatrix);
}
if (!hasSVGTransforms || !hasTransformFromSVGParent) {
// This is a simplification of the following |else| block, the
// simplification being possible because we don't need to apply
// mToTransformOrigin between two transforms.
result.ChangeBasis(aProperties.mToTransformOrigin);
} else {
Point3D refBoxOffset(NSAppUnitsToFloatPixels(refBox.X(), aAppUnitsPerPixel),
NSAppUnitsToFloatPixels(refBox.Y(), aAppUnitsPerPixel),
0);
// We have both a transform and children-only transform. The
// 'transform-origin' must apply between the two, so we need to apply it
// now before we apply transformFromSVGParent. Since mToTransformOrigin is
// relative to the frame's TopLeft(), we need to convert it to SVG user
// space by subtracting refBoxOffset. (Then after applying
// transformFromSVGParent we have to reapply refBoxOffset below.)
result.ChangeBasis(aProperties.mToTransformOrigin - refBoxOffset);
// Now apply the children-only transforms, converting the translation
// components to device pixels:
float pixelsPerCSSPx =
frame->PresContext()->AppUnitsPerCSSPixel() / aAppUnitsPerPixel;
transformFromSVGParent._31 *= pixelsPerCSSPx;
transformFromSVGParent._32 *= pixelsPerCSSPx;
result = result * Matrix4x4::From2D(transformFromSVGParent);
// Similar to the code in the |if| block above, but since we've accounted
// for mToTransformOrigin so we don't include that. We also need to reapply
// refBoxOffset.
result.ChangeBasis(refBoxOffset);
}
if (hasPerspective) {
result = result * perspectiveMatrix;
if (ComputePerspectiveMatrix(frame, aAppUnitsPerPixel, perspectiveMatrix)) {
result *= perspectiveMatrix;
}
}
if ((aFlags & INCLUDE_PRESERVE3D_ANCESTORS) &&

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

@ -0,0 +1,8 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Testcase reference file for generic pass condition</title>
<rect width="100%" height="100%" fill="lime"/>
</svg>

После

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

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

@ -129,6 +129,7 @@ pref(svg.transform-box.enabled,true) == transform-box-svg-1a.svg transform-box-s
pref(svg.transform-box.enabled,true) == transform-box-svg-1b.svg transform-box-svg-1-ref.svg
pref(svg.transform-box.enabled,true) == transform-box-svg-2a.svg transform-box-svg-2-ref.svg
pref(svg.transform-box.enabled,true) == transform-box-svg-2b.svg transform-box-svg-2-ref.svg
pref(svg.transform-box.enabled,true) == transform-box-svg-3a.svg pass.svg
== transform-origin-svg-1a.svg transform-origin-svg-1-ref.svg
== transform-origin-svg-1b.svg transform-origin-svg-1-ref.svg
== transform-origin-svg-2a.svg transform-origin-svg-2-ref.svg

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

@ -0,0 +1,64 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100" preserveAspectRatio="none">
<style>
/* <![CDATA[ */
.ref {
fill: red;
}
.test {
fill: lime;
}
/* ]]> */
</style>
<rect width="100%" height="100%" fill="lime"/>
<!-- all rect.test rects should be covered by the corresponded rest.ref rect-->
<!-- 1st row: transform-box only. -->
<rect class="ref"
x="11" y="11" width="8" height="8"/>
<rect class="test"
style="transform-box: view-box"
x="10" y="10" width="10" height="10"/>
<rect class="ref"
x="26" y="11" width="8" height="8"/>
<rect class="test"
style="transform-box: fill-box"
x="25" y="10" width="10" height="10"/>
<rect class="ref"
x="41" y="11" width="8" height="8"/>
<rect class="test"
style="transform-box: border-box"
x="40" y="10" width="10" height="10"/>
<!-- 2nd row: transform-box plus transform-origin. -->
<rect class="ref"
x="11" y="26" width="8" height="8"/>
<rect class="test"
style="transform-box: view-box; tansform-origin: 40% 60%"
x="10" y="25" width="10" height="10"/>
<rect class="ref"
x="26" y="26" width="8" height="8"/>
<rect class="test"
style="transform-box: fill-box; tansform-origin: 20px 10px"
x="25" y="25" width="10" height="10"/>
<rect class="ref"
x="41" y="26" width="8" height="8"/>
<rect class="test"
style="transform-box: border-box; tansform-origin: 40% 60%"
x="40" y="25" width="10" height="10"/>
<!-- 2nd row: transform-box, transform-origin and transform. -->
<rect class="ref"
x="11" y="46" width="8" height="8"/>
<rect class="test"
style="transform-box: fill-box; tansform-origin: 0% 0%; transform: scale(2);"
x="10" y="45" width="5" height="5"/>
<rect class="ref"
x="26" y="46" width="8" height="8"/>
<rect class="test"
style="transform-box: fill-box; transform-origin: 50% 50%; transform:rotate(45deg);"
x="24" y="44" width="12" height="12"/>
<rect class="ref"
x="41" y="46" width="8" height="8"/>
<rect class="test"
style="transform-box: border-box; tansform-origin: 100% 100%; transform: scale(1);"
x="40" y="45" width="10" height="10"/>
</svg>

После

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

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

@ -134,10 +134,18 @@ private:
nsCSSAnonBoxes::mozAnonymousBlock,
"How did we getting here, then?");
}
bool hasEffect = nsSVGIntegrationUtils::UsingEffectsForFrame(aFrame);
nsOverflowAreas* preTransformOverflows =
aFrame->Properties().Get(aFrame->PreTransformOverflowAreasProperty());
// Having PreTransformOverflowAreasProperty means GetVisualOverflowRect()
// will return post-effect rect, which is not what we want, this function
// intentional reports pre-effect rect. But it does not matter if there is
// no SVG effect on this frame, since no effect means post-effect rect
// matches pre-effect rect.
MOZ_ASSERT(!hasEffect || !preTransformOverflows,
"GetVisualOverflowRect() won't return the pre-effects rect!");
#endif
NS_ASSERTION(!aFrame->Properties().Get(
aFrame->PreTransformOverflowAreasProperty()),
"GetVisualOverflowRect() won't return the pre-effects rect!");
return aFrame->GetVisualOverflowRect();
}

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

@ -116,8 +116,11 @@ AltSvcMapping::ProcessHeader(const nsCString &buf, const nsCString &originScheme
}
if (clearEntry) {
LOG(("Alt Svc clearing mapping for %s:%d", originHost.get(), originPort));
gHttpHandler->ConnMgr()->ClearHostMapping(originHost, originPort);
nsCString suffix;
originAttributes.CreateSuffix(suffix);
LOG(("Alt Svc clearing mapping for %s:%d:%s", originHost.get(),
originPort, suffix.get()));
gHttpHandler->ConnMgr()->ClearHostMapping(originHost, originPort, originAttributes);
continue;
}
@ -140,13 +143,14 @@ AltSvcMapping::ProcessHeader(const nsCString &buf, const nsCString &originScheme
originHost, originPort,
username, privateBrowsing,
NowInSeconds() + maxage,
hostname, portno, npnToken);
hostname, portno, npnToken,
originAttributes);
if (mapping->TTL() <= 0) {
LOG(("Alt Svc invalid map"));
mapping = nullptr;
// since this isn't a parse error, let's clear any existing mapping
// as that would have happened if we had accepted the parameters.
gHttpHandler->ConnMgr()->ClearHostMapping(originHost, originPort);
gHttpHandler->ConnMgr()->ClearHostMapping(originHost, originPort, originAttributes);
} else {
gHttpHandler->UpdateAltServiceMapping(mapping, proxyInfo, callbacks, caps,
originAttributes);
@ -163,7 +167,8 @@ AltSvcMapping::AltSvcMapping(DataStorage *storage, int32_t epoch,
uint32_t expiresAt,
const nsACString &alternateHost,
int32_t alternatePort,
const nsACString &npnToken)
const nsACString &npnToken,
const OriginAttributes &originAttributes)
: mStorage(storage)
, mStorageEpoch(epoch)
, mAlternateHost(alternateHost)
@ -176,6 +181,7 @@ AltSvcMapping::AltSvcMapping(DataStorage *storage, int32_t epoch,
, mValidated(false)
, mMixedScheme(false)
, mNPNToken(npnToken)
, mOriginAttributes(originAttributes)
{
MOZ_ASSERT(NS_IsMainThread());
@ -206,7 +212,8 @@ AltSvcMapping::AltSvcMapping(DataStorage *storage, int32_t epoch,
}
if (mExpiresAt) {
MakeHashKey(mHashKey, originScheme, mOriginHost, mOriginPort, mPrivate);
MakeHashKey(mHashKey, originScheme, mOriginHost, mOriginPort, mPrivate,
mOriginAttributes);
}
}
@ -215,7 +222,8 @@ AltSvcMapping::MakeHashKey(nsCString &outKey,
const nsACString &originScheme,
const nsACString &originHost,
int32_t originPort,
bool privateBrowsing)
bool privateBrowsing,
const OriginAttributes &originAttributes)
{
outKey.Truncate();
@ -231,6 +239,10 @@ AltSvcMapping::MakeHashKey(nsCString &outKey,
outKey.AppendInt(originPort);
outKey.Append(':');
outKey.Append(privateBrowsing ? 'P' : '.');
outKey.Append(':');
nsAutoCString suffix;
originAttributes.CreateSuffix(suffix);
outKey.Append(suffix);
}
int32_t
@ -353,6 +365,10 @@ AltSvcMapping::Serialize(nsCString &out)
out.Append(':');
out.Append(mMixedScheme ? 'y' : 'n');
out.Append(':');
nsAutoCString suffix;
mOriginAttributes.CreateSuffix(suffix);
out.Append(suffix);
out.Append(':');
}
AltSvcMapping::AltSvcMapping(DataStorage *storage, int32_t epoch, const nsCString &str)
@ -394,10 +410,12 @@ COMPILER ERROR
mStorageEpoch = nsCString(Substring(str, start, idx - start)).ToInteger(&code);
_NS_NEXT_TOKEN;
mMixedScheme = Substring(str, start, idx - start).Equals(NS_LITERAL_CSTRING("y"));
_NS_NEXT_TOKEN;
Unused << mOriginAttributes.PopulateFromSuffix(Substring(str, start, idx - start));
#undef _NS_NEXT_TOKEN
MakeHashKey(mHashKey, mHttps ? NS_LITERAL_CSTRING("https") : NS_LITERAL_CSTRING("http"),
mOriginHost, mOriginPort, mPrivate);
mOriginHost, mOriginPort, mPrivate, mOriginAttributes);
} while (false);
}
@ -913,7 +931,8 @@ AltSvcCache::UpdateAltServiceMapping(AltSvcMapping *map, nsProxyInfo *pi,
already_AddRefed<AltSvcMapping>
AltSvcCache::GetAltServiceMapping(const nsACString &scheme, const nsACString &host,
int32_t port, bool privateBrowsing)
int32_t port, bool privateBrowsing,
const OriginAttributes &originAttributes)
{
bool isHTTPS;
MOZ_ASSERT(NS_IsMainThread());
@ -945,7 +964,7 @@ AltSvcCache::GetAltServiceMapping(const nsACString &scheme, const nsACString &ho
}
nsAutoCString key;
AltSvcMapping::MakeHashKey(key, scheme, host, port, privateBrowsing);
AltSvcMapping::MakeHashKey(key, scheme, host, port, privateBrowsing, originAttributes);
RefPtr<AltSvcMapping> existing = LookupMapping(key, privateBrowsing);
LOG(("AltSvcCache::GetAltServiceMapping %p key=%s "
"existing=%p validated=%d ttl=%d",
@ -959,52 +978,60 @@ AltSvcCache::GetAltServiceMapping(const nsACString &scheme, const nsACString &ho
class ProxyClearHostMapping : public Runnable {
public:
explicit ProxyClearHostMapping(const nsACString &host, int32_t port)
explicit ProxyClearHostMapping(const nsACString &host, int32_t port,
const OriginAttributes &originAttributes)
: mHost(host)
, mPort(port)
, mOriginAttributes(originAttributes)
{}
NS_IMETHOD Run() override
{
MOZ_ASSERT(NS_IsMainThread());
gHttpHandler->ConnMgr()->ClearHostMapping(mHost, mPort);
gHttpHandler->ConnMgr()->ClearHostMapping(mHost, mPort, mOriginAttributes);
return NS_OK;
}
private:
nsCString mHost;
int32_t mPort;
OriginAttributes mOriginAttributes;
};
void
AltSvcCache::ClearHostMapping(const nsACString &host, int32_t port)
AltSvcCache::ClearHostMapping(const nsACString &host, int32_t port,
const OriginAttributes &originAttributes)
{
if (!NS_IsMainThread()) {
nsCOMPtr<nsIRunnable> event = new ProxyClearHostMapping(host, port);
nsCOMPtr<nsIRunnable> event = new ProxyClearHostMapping(host, port, originAttributes);
if (event) {
NS_DispatchToMainThread(event);
}
return;
}
nsAutoCString key;
AltSvcMapping::MakeHashKey(key, NS_LITERAL_CSTRING("http"), host, port, true);
AltSvcMapping::MakeHashKey(key, NS_LITERAL_CSTRING("http"), host, port, true,
originAttributes);
RefPtr<AltSvcMapping> existing = LookupMapping(key, true);
if (existing) {
existing->SetExpired();
}
AltSvcMapping::MakeHashKey(key, NS_LITERAL_CSTRING("https"), host, port, true);
AltSvcMapping::MakeHashKey(key, NS_LITERAL_CSTRING("https"), host, port, true,
originAttributes);
existing = LookupMapping(key, true);
if (existing) {
existing->SetExpired();
}
AltSvcMapping::MakeHashKey(key, NS_LITERAL_CSTRING("http"), host, port, false);
AltSvcMapping::MakeHashKey(key, NS_LITERAL_CSTRING("http"), host, port, false,
originAttributes);
existing = LookupMapping(key, false);
if (existing) {
existing->SetExpired();
}
AltSvcMapping::MakeHashKey(key, NS_LITERAL_CSTRING("https"), host, port, false);
AltSvcMapping::MakeHashKey(key, NS_LITERAL_CSTRING("https"), host, port, false,
originAttributes);
existing = LookupMapping(key, false);
if (existing) {
existing->SetExpired();
@ -1015,7 +1042,7 @@ void
AltSvcCache::ClearHostMapping(nsHttpConnectionInfo *ci)
{
if (!ci->GetOrigin().IsEmpty()) {
ClearHostMapping(ci->GetOrigin(), ci->OriginPort());
ClearHostMapping(ci->GetOrigin(), ci->OriginPort(), ci->GetOriginAttributes());
}
}

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

@ -55,7 +55,8 @@ private: // ctor from ProcessHeader
uint32_t expiresAt,
const nsACString &alternateHost,
int32_t alternatePort,
const nsACString &npnToken);
const nsACString &npnToken,
const OriginAttributes &originAttributes);
public:
AltSvcMapping(DataStorage *storage, int32_t storageEpoch, const nsCString &serialized);
@ -92,7 +93,8 @@ public:
const nsACString &originScheme,
const nsACString &originHost,
int32_t originPort,
bool privateBrowsing);
bool privateBrowsing,
const OriginAttributes &originAttributes);
private:
virtual ~AltSvcMapping() {};
@ -120,6 +122,8 @@ private:
MOZ_INIT_OUTSIDE_CTOR bool mMixedScheme; // .wk allows http and https on same con
nsCString mNPNToken;
OriginAttributes mOriginAttributes;
};
class AltSvcOverride : public nsIInterfaceRequestor
@ -172,9 +176,10 @@ public:
const OriginAttributes &originAttributes); // main thread
already_AddRefed<AltSvcMapping> GetAltServiceMapping(const nsACString &scheme,
const nsACString &host,
int32_t port, bool pb);
int32_t port, bool pb,
const OriginAttributes &originAttributes);
void ClearAltServiceMappings();
void ClearHostMapping(const nsACString &host, int32_t port);
void ClearHostMapping(const nsACString &host, int32_t port, const OriginAttributes &originAttributes);
void ClearHostMapping(nsHttpConnectionInfo *ci);
DataStorage *GetStoragePtr() { return mStorage.get(); }
int32_t StorageEpoch() { return mStorageEpoch; }

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

@ -5949,7 +5949,8 @@ nsHttpChannel::BeginConnect()
(!proxyInfo || proxyInfo->IsDirect()) &&
(mapping = gHttpHandler->GetAltServiceMapping(scheme,
host, port,
mPrivateBrowsing))) {
mPrivateBrowsing,
originAttributes))) {
LOG(("nsHttpChannel %p Alt Service Mapping Found %s://%s:%d [%s]\n",
this, scheme.get(), mapping->AlternateHost().get(),
mapping->AlternatePort(), mapping->HashKey().get()));

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

@ -253,9 +253,10 @@ public:
already_AddRefed<AltSvcMapping> GetAltServiceMapping(const nsACString &scheme,
const nsACString &host,
int32_t port, bool pb)
int32_t port, bool pb,
const OriginAttributes &originAttributes)
{
return mConnMgr->GetAltServiceMapping(scheme, host, port, pb);
return mConnMgr->GetAltServiceMapping(scheme, host, port, pb, originAttributes);
}
//

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

@ -145,6 +145,7 @@ var loadWithoutClearingMappings = false;
var nextTest;
var expectPass = true;
var waitFor = 0;
var originAttributes = {};
var Listener = function() {};
Listener.prototype = {
@ -222,6 +223,7 @@ function doTest()
Ci.nsIChannel.LOAD_INITIAL_DOCUMENT_URI;
}
loadWithoutClearingMappings = false;
chan.loadInfo.originAttributes = originAttributes;
chan.asyncOpen2(listener);
}
@ -367,8 +369,75 @@ function doTest11()
xaltsvc = h2FooRoute;
expectPass = true;
waitFor = 500;
nextTest = testsDone;
nextTest = doTest12;
do_test_pending();
doTest();
}
// Test 12-15:
// Insert a cache of http://foo served from h2=:port with origin attributes.
function doTest12()
{
dump("doTest12()\n");
origin = httpFooOrigin;
xaltsvc = h2Route;
originAttributes = {
userContextId: 1,
firstPartyDomain: "a.com",
};
nextTest = doTest13;
do_test_pending();
doTest();
xaltsvc = h2FooRoute;
}
// Make sure we get a cache miss with a different userContextId.
function doTest13()
{
dump("doTest13()\n");
origin = httpFooOrigin;
xaltsvc = 'NA';
originAttributes = {
userContextId: 2,
firstPartyDomain: "a.com",
};
loadWithoutClearingMappings = true;
nextTest = doTest14;
do_test_pending();
doTest();
}
// Make sure we get a cache miss with a different firstPartyDomain.
function doTest14()
{
dump("doTest14()\n");
origin = httpFooOrigin;
xaltsvc = 'NA';
originAttributes = {
userContextId: 1,
firstPartyDomain: "b.com",
};
loadWithoutClearingMappings = true;
nextTest = doTest15;
do_test_pending();
doTest();
}
//
// Make sure we get a cache hit with the same origin attributes.
function doTest15()
{
dump("doTest15()\n");
origin = httpFooOrigin;
xaltsvc = 'NA';
originAttributes = {
userContextId: 1,
firstPartyDomain: "a.com",
};
loadWithoutClearingMappings = true;
nextTest = testsDone;
do_test_pending();
doTest();
// This ensures a cache hit.
xaltsvc = h2FooRoute;
}

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

@ -15,8 +15,10 @@ nsWifiScannerDBus::nsWifiScannerDBus(nsCOMArray<nsWifiAccessPoint> *aAccessPoint
mConnection =
already_AddRefed<DBusConnection>(dbus_bus_get(DBUS_BUS_SYSTEM, nullptr));
MOZ_ASSERT(mConnection);
dbus_connection_set_exit_on_disconnect(mConnection, false);
if (mConnection) {
dbus_connection_set_exit_on_disconnect(mConnection, false);
}
MOZ_COUNT_CTOR(nsWifiScannerDBus);
}
@ -29,6 +31,9 @@ nsWifiScannerDBus::~nsWifiScannerDBus()
nsresult
nsWifiScannerDBus::Scan()
{
if (!mConnection) {
return NS_ERROR_NOT_AVAILABLE;
}
return SendMessage("org.freedesktop.NetworkManager",
"/org/freedesktop/NetworkManager",
"GetDevices");

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

@ -1157,4 +1157,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
static const int32_t kUnknownId = -1;
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1495638976632000);
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1495728091984000);

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

@ -79,6 +79,7 @@ abeestrada.com: did not receive HSTS header
abilitylist.org: did not receive HSTS header
abioniere.de: could not connect to host
abnarnro.com: could not connect to host
abolitionistsociety.com: could not connect to host
about.ge: could not connect to host
aboutmyip.info: did not receive HSTS header
aboutmyproperty.ca: [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 121" data: no]
@ -143,6 +144,7 @@ ahmedabadflowermall.com: did not receive HSTS header
ahoynetwork.com: could not connect to host
ahri.ovh: could not connect to host
aidanwoods.com: did not receive HSTS header
airbnb.com: did not receive HSTS header
aircomms.com: did not receive HSTS header
airproto.com: did not receive HSTS header
aishnair.com: could not connect to host
@ -288,6 +290,7 @@ ars-design.net: could not connect to host
ars.toscana.it: max-age too low: 0
artiming.com: could not connect to host
artistnetwork.nl: did not receive HSTS header
artofeyes.nl: did not receive HSTS header
arturkohut.com: could not connect to host
arvamus.eu: could not connect to host
as.se: could not connect to host
@ -361,9 +364,8 @@ axeny.com: did not receive HSTS header
az.search.yahoo.com: did not receive HSTS header
azprep.us: could not connect to host
azuxul.fr: could not connect to host
b303.me: did not receive HSTS header
b3orion.com: max-age too low: 0
baby-click.de: could not connect to host
baby-click.de: did not receive HSTS header
babybic.hu: did not receive HSTS header
babyhouse.xyz: could not connect to host
babysaying.me: could not connect to host
@ -502,7 +504,6 @@ blog-ritaline.com: could not connect to host
blog.cyveillance.com: did not receive HSTS header
blog.lookout.com: did not receive HSTS header
bloglikepro.com: could not connect to host
blogreen.org: could not connect to host
blubbablasen.de: could not connect to host
blucas.org: did not receive HSTS header
blueglobalmedia.com: max-age too low: 0
@ -529,6 +530,7 @@ bonigo.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_
bonitabrazilian.co.nz: did not receive HSTS header
bookcelerator.com: did not receive HSTS header
booked.holiday: could not connect to host
bookingapp.nl: did not receive HSTS header
bookourdjs.com: [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 121" data: no]
boomerang.com: could not connect to host
boosterlearnpro.com: did not receive HSTS header
@ -574,6 +576,7 @@ budgetthostels.nl: did not receive HSTS header
budskap.eu: could not connect to host
bugs.chromium.org: did not receive HSTS header (error ignored - included regardless)
bugtrack.io: did not receive HSTS header
bugwie.com: did not receive HSTS header
buhler.pro: did not receive HSTS header
buildci.asia: could not connect to host
buildsaver.co.za: did not receive HSTS header
@ -597,9 +600,12 @@ buttercoin.com: could not connect to host
butterfieldstraining.com: did not receive HSTS header
buybaby.eu: did not receive HSTS header
buyfox.de: did not receive HSTS header
bw.codes: could not connect to host
bws16.de: did not receive HSTS header
by4cqb.cn: could not connect to host
bypassed.press: could not connect to host
bypassed.today: did not receive HSTS header
bypassed.works: did not receive HSTS header
bypassed.world: did not receive HSTS header
bypro.xyz: could not connect to host
bysymphony.com: max-age too low: 0
@ -620,6 +626,7 @@ cake.care: could not connect to host
calendarr.com: did not receive HSTS header
calgaryconstructionjobs.com: did not receive HSTS header
calix.com: max-age too low: 0
call.me: did not receive HSTS header
calltrackingreports.com: could not connect to host
calvin.me: max-age too low: 2592000
calvinallen.net: did not receive HSTS header
@ -630,7 +637,6 @@ cancelmyprofile.com: did not receive HSTS header
candicontrols.com: did not receive HSTS header
candratech.com: could not connect to host
candylion.rocks: could not connect to host
canfly.org: did not receive HSTS header
cannyfoxx.me: could not connect to host
canyonshoa.com: did not receive HSTS header
capecycles.co.za: did not receive HSTS header
@ -734,6 +740,7 @@ christianbro.gq: could not connect to host
christophercolumbusfoundation.gov: could not connect to host
christophheich.me: could not connect to host
chrisupjohn.com: could not connect to host
chromaryu.net: could not connect to host
chrome-devtools-frontend.appspot.com: did not receive HSTS header (error ignored - included regardless)
chrome.google.com: did not receive HSTS header (error ignored - included regardless)
chromiumbugs.appspot.com: did not receive HSTS header (error ignored - included regardless)
@ -758,7 +765,6 @@ clara-baumert.de: could not connect to host
classicsandexotics.com: did not receive HSTS header
classicspublishing.com: could not connect to host
clcleaningco.com: could not connect to host
cldly.com: could not connect to host
cleanexperts.co.uk: could not connect to host
cleaningsquad.ca: could not connect to host
cleanmta.com: could not connect to host
@ -780,7 +786,6 @@ cloudcy.net: could not connect to host
clouddesktop.co.nz: could not connect to host
cloudey.net: did not receive HSTS header
cloudflare.com: did not receive HSTS header
cloudily.com: could not connect to host
cloudimag.es: could not connect to host
cloudlink.club: could not connect to host
cloudns.com.au: could not connect to host
@ -814,11 +819,11 @@ codeco.pw: could not connect to host
codeforce.io: could not connect to host
codelayer.ca: could not connect to host
codepoet.de: could not connect to host
codepult.com: could not connect to host
codepx.com: did not receive HSTS header
codereview.appspot.com: did not receive HSTS header (error ignored - included regardless)
codereview.chromium.org: did not receive HSTS header (error ignored - included regardless)
codiva.io: max-age too low: 2592000
codymoniz.com: could not connect to host
coffeeetc.co.uk: did not receive HSTS header
coffeestrategies.com: max-age too low: 2592000
coiffeurschnittstelle.ch: did not receive HSTS header
@ -840,6 +845,7 @@ compalytics.com: could not connect to host
comparejewelleryprices.co.uk: could not connect to host
completeid.com: max-age too low: 86400
completionist.audio: could not connect to host
compraneta.com: could not connect to host
compucorner.com.mx: could not connect to host
concord-group.co.jp: did not receive HSTS header
condesaelectronics.com: max-age too low: 0
@ -854,7 +860,6 @@ contarkos.xyz: could not connect to host
content-api-dev.azurewebsites.net: could not connect to host
continuumgaming.com: could not connect to host
controlcenter.gigahost.dk: did not receive HSTS header
convert.zone: could not connect to host
coolchevy.org.ua: did not receive HSTS header
cor-ser.es: could not connect to host
coralproject.net: did not receive HSTS header
@ -920,7 +925,9 @@ csgoelemental.com: could not connect to host
csgokings.eu: could not connect to host
csohack.tk: could not connect to host
cspbuilder.info: could not connect to host
csru.net: could not connect to host
csvape.com: did not receive HSTS header
ct-status.org: could not connect to host
ct.search.yahoo.com: did not receive HSTS header
cthulhuden.com: could not connect to host
cubeserver.eu: could not connect to host
@ -941,6 +948,7 @@ cycleluxembourg.lu: did not receive HSTS header
cydia-search.io: could not connect to host
cyph.com: did not receive HSTS header
cyphertite.com: could not connect to host
czerno.com: could not connect to host
czlx.co: could not connect to host
dad256.tk: could not connect to host
dadtheimpaler.com: could not connect to host
@ -1009,6 +1017,7 @@ debian-vhost.de: did not receive HSTS header
debiton.dk: could not connect to host
debtkit.co.uk: did not receive HSTS header
decafu.co: could not connect to host
decesus.com: could not connect to host
decibelios.li: could not connect to host
deco.me: could not connect to host
dedicatutiempo.es: could not connect to host
@ -1045,13 +1054,14 @@ designgears.com: did not receive HSTS header
designthinking.or.jp: did not receive HSTS header
despora.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
destinationbijoux.fr: could not connect to host
destom.be: could not connect to host
detector.exposed: could not connect to host
devcu.net: did not receive HSTS header
deviltracks.net: could not connect to host
devincrow.me: could not connect to host
devtub.com: did not receive HSTS header
devuan.org: did not receive HSTS header
dhpcs.com: did not receive HSTS header
dhpiggott.net: did not receive HSTS header
diablotine.rocks: could not connect to host
diarbag.us: did not receive HSTS header
diasp.cz: [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 121" data: no]
@ -1093,6 +1103,7 @@ docset.io: could not connect to host
docufiel.com: could not connect to host
doeswindowssuckforeveryoneorjustme.com: could not connect to host
dogbox.se: did not receive HSTS header
dogmap.jp: could not connect to host
dohosting.ru: could not connect to host
dokan.online: could not connect to host
dollarstore24.com: could not connect to host
@ -1134,8 +1145,6 @@ drtroyhendrickson.com: could not connect to host
drumbandesperanto.nl: could not connect to host
ds-christiansen.de: did not receive HSTS header
dshiv.io: could not connect to host
dubrovskiy.net: could not connect to host
dubrovskiy.pro: could not connect to host
duesee.org: could not connect to host
dullsir.com: did not receive HSTS header
duria.de: max-age too low: 3600
@ -1150,7 +1159,6 @@ dymersion.com: did not receive HSTS header
dzimejl.sk: did not receive HSTS header
dzlibs.io: could not connect to host
dzndk.org: could not connect to host
dzyabchenko.com: could not connect to host
e-aut.net: did not receive HSTS header
e-deca2.org: did not receive HSTS header
e-sa.com: did not receive HSTS header
@ -1194,7 +1202,6 @@ ehito.ovh: could not connect to host
ehrenamt-skpfcw.de: could not connect to host
eicfood.com: could not connect to host
eidolonhost.com: did not receive HSTS header
eimanavicius.lt: could not connect to host
ekbanden.nl: could not connect to host
elaintehtaat.fi: did not receive HSTS header
elan-organics.com: did not receive HSTS header
@ -1216,10 +1223,11 @@ elnutricionista.es: did not receive HSTS header
eloanpersonal.com: max-age too low: 0
elpo.xyz: could not connect to host
elsamakhin.com: could not connect to host
elsitar.com: did not receive HSTS header
elsitar.com: could not connect to host
email.lookout.com: could not connect to host
emanatepixels.com: could not connect to host
emeldi-commerce.com: max-age too low: 0
emilyhorsman.com: could not connect to host
eminovic.me: could not connect to host
emjainteractive.com: did not receive HSTS header
emjimadhu.com: could not connect to host
@ -1291,7 +1299,7 @@ estoic.net: could not connect to host
et-buchholz.de: could not connect to host
etdonline.co.uk: could not connect to host
eternitylove.us: could not connect to host
ethanfaust.com: could not connect to host
eth9.net: max-age too low: 0
ethicalexploiting.com: could not connect to host
etsysecure.com: could not connect to host
etula.ga: could not connect to host
@ -1307,7 +1315,6 @@ everybooks.com: max-age too low: 60
everything.place: could not connect to host
evin.ml: could not connect to host
evites.me: could not connect to host
evolutionlending.co.uk: could not connect to host
evomon.com: could not connect to host
evossd.tk: could not connect to host
ewuchuan.com: could not connect to host
@ -1349,7 +1356,6 @@ falkp.no: did not receive HSTS header
fallenangelspirits.uk: could not connect to host
familie-sprink.de: could not connect to host
familie-zimmermann.at: could not connect to host
fantopia.club: could not connect to host
fanyl.cn: could not connect to host
farhadexchange.com: did not receive HSTS header
farhood.org: could not connect to host
@ -1402,7 +1408,6 @@ fireorbit.de: did not receive HSTS header
firstdogonthemoon.com.au: did not receive HSTS header
firstforex.co.uk: did not receive HSTS header
fish2.me: did not receive HSTS header
fistu.la: could not connect to host
fit4medien.de: did not receive HSTS header
fitbylo.com: did not receive HSTS header
fitiapp.com: could not connect to host
@ -1427,7 +1432,6 @@ florianlillpopp.de: max-age too low: 10
floridaescapes.co.uk: did not receive HSTS header
flouartistique.ch: could not connect to host
flow.pe: could not connect to host
flow.su: could not connect to host
flowersandclouds.com: could not connect to host
flowlo.me: could not connect to host
flushstudios.com: did not receive HSTS header
@ -1475,7 +1479,6 @@ freesounding.com: could not connect to host
freesounding.ru: could not connect to host
freethought.org.au: could not connect to host
freeutopia.org: did not receive HSTS header
freezion.com: could not connect to host
frenzel.dk: could not connect to host
freqlabs.com: could not connect to host
freshfind.xyz: could not connect to host
@ -1534,6 +1537,7 @@ gamehacks.me: could not connect to host
gameink.net: max-age too low: 0
gamenected.com: could not connect to host
gamenected.de: could not connect to host
gamepader.com: could not connect to host
gameparade.de: could not connect to host
gamepiece.com: could not connect to host
gamerslair.org: did not receive HSTS header
@ -1651,7 +1655,6 @@ googleplex.com: did not receive HSTS header (error ignored - included regardless
goolok.com: could not connect to host
gorilla-gym.site: could not connect to host
goto.google.com: did not receive HSTS header (error ignored - included regardless)
goto.world: did not receive HSTS header
gotowned.org: did not receive HSTS header
gotspot.com: could not connect to host
gottcode.org: did not receive HSTS header
@ -1667,6 +1670,8 @@ granary-demo.appspot.com: did not receive HSTS header
grandmascookieblog.com: did not receive HSTS header
grantedby.me: could not connect to host
graph.no: did not receive HSTS header
graphire.io: could not connect to host
graphsearchengine.com: could not connect to host
gravito.nl: did not receive HSTS header
gravity-net.de: could not connect to host
graycell.net: could not connect to host
@ -1677,7 +1682,7 @@ greenhillantiques.co.uk: did not receive HSTS header
greenvines.com.tw: did not receive HSTS header
greg.red: could not connect to host
gregorytlee.me: did not receive HSTS header
gremots.com: did not receive HSTS header
gremots.com: could not connect to host
greplin.com: could not connect to host
gresb.com: did not receive HSTS header
gribani.com: could not connect to host
@ -1701,7 +1706,6 @@ guilde-vindicta.fr: did not receive HSTS header
gulenet.com: could not connect to host
gunnarhafdal.com: did not receive HSTS header
gurom.lv: could not connect to host
gurueffect.com: did not receive HSTS header
gurusupe.com: could not connect to host
gussi.is: did not receive HSTS header
gvt2.com: could not connect to host (error ignored - included regardless)
@ -1715,7 +1719,6 @@ gyboche.science: could not connect to host
gycis.me: could not connect to host
gypthecat.com: max-age too low: 604800
gyz.io: could not connect to host
gzitech.com: could not connect to host
h2check.org: could not connect to host
haarkliniek.com: did not receive HSTS header
habanaavenue.com: did not receive HSTS header
@ -1726,7 +1729,6 @@ hack.li: did not receive HSTS header
hacker.one: could not connect to host
hackerforever.com: did not receive HSTS header
hackerone-ext-adroll.com: could not connect to host
hackerpoints.com: could not connect to host
hackest.org: did not receive HSTS header
hackit.im: could not connect to host
hadzic.co: could not connect to host
@ -1745,7 +1747,6 @@ hang333.pw: did not receive HSTS header
hansen.hn: could not connect to host
hao2taiwan.com: max-age too low: 0
haoyugao.com: could not connect to host
haozi.me: could not connect to host
hapissl.com: could not connect to host
happyfabric.me: did not receive HSTS header
happygastro.com: could not connect to host
@ -1811,9 +1812,9 @@ hillcity.org.nz: did not receive HSTS header
hilnu.tk: could not connect to host
hipercultura.com: did not receive HSTS header
hiphopconvention.nl: could not connect to host
hirake55.com: could not connect to host
hitoy.org: did not receive HSTS header
hittipps.com: did not receive HSTS header
hjw-kunstwerk.de: could not connect to host
hlyue.com: did not receive HSTS header
hmm.nyc: could not connect to host
hn.search.yahoo.com: did not receive HSTS header
@ -1844,7 +1845,6 @@ hotchoc.io: did not receive HSTS header
houkago-step.com: did not receive HSTS header
housemaadiah.org: did not receive HSTS header
housingstudents.org.uk: could not connect to host
howbigismybuilding.com: [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 121" data: no]
howrandom.org: could not connect to host
howtocuremysciatica.com: could not connect to host
hr-intranet.com: did not receive HSTS header
@ -1874,7 +1874,6 @@ hydronium.ga: could not connect to host
hydronium.me: could not connect to host
hydronium.tk: could not connect to host
hyper69.com: did not receive HSTS header
hypnoresults.com.au: did not receive HSTS header
i-jp.net: could not connect to host
i-partners.sk: did not receive HSTS header
iamokay.nl: did not receive HSTS header
@ -1928,7 +1927,6 @@ imakepoems.net: could not connect to host
ime.moe: could not connect to host
imguoguo.com: did not receive HSTS header
imim.pw: did not receive HSTS header
imjiangtao.com: did not receive HSTS header
immersionwealth.com: could not connect to host
immoprotect.ca: did not receive HSTS header
immortals-co.com: did not receive HSTS header
@ -1936,7 +1934,9 @@ immoverkauf24.at: did not receive HSTS header
immoverkauf24.de: did not receive HSTS header
immunicity.info: could not connect to host
immunicity.press: could not connect to host
immunicity.today: did not receive HSTS header
immunicity.top: could not connect to host
immunicity.works: did not receive HSTS header
immunicity.world: did not receive HSTS header
imolug.org: did not receive HSTS header
imouto.my: max-age too low: 5184000
@ -2044,6 +2044,7 @@ izzzorgconcerten.nl: could not connect to host
ja-publications.com: did not receive HSTS header
jabbari.io: did not receive HSTS header
jackalworks.com: could not connect to host
jackyyf.com: could not connect to host
jacobparry.ca: did not receive HSTS header
jagido.de: did not receive HSTS header
jahliveradio.com: could not connect to host
@ -2082,7 +2083,7 @@ jasonsansone.com: [Exception... "Component returned failure code: 0x80004005 (NS
jastoria.pl: could not connect to host
jayblock.com: did not receive HSTS header
jayschulman.com: could not connect to host
jayscoaching.com: could not connect to host
jayscoaching.com: did not receive HSTS header
jayshao.com: did not receive HSTS header
jazzinutrecht.info: [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 121" data: no]
jazzncheese.com: could not connect to host
@ -2156,6 +2157,7 @@ junaos.xyz: did not receive HSTS header
junge-selbsthilfe.info: could not connect to host
junqtion.com: could not connect to host
jupp0r.de: did not receive HSTS header
justanothercompany.name: could not connect to host
justlikethat.hosting: did not receive HSTS header
justnaw.co.uk: could not connect to host
justudin.com: did not receive HSTS header
@ -2167,7 +2169,6 @@ jznet.org: max-age too low: 86400
k-dev.de: could not connect to host
ka-clan.com: could not connect to host
kabuabc.com: did not receive HSTS header
kabus.org: could not connect to host
kadioglumakina.com.tr: did not receive HSTS header
kaela.design: could not connect to host
kahopoon.net: could not connect to host
@ -2200,6 +2201,7 @@ keeley.gq: could not connect to host
keeley.ml: could not connect to host
keeleysam.me: could not connect to host
keepclean.me: could not connect to host
kellyandantony.com: could not connect to host
kenderbeton-magyarorszag.hu: did not receive HSTS header
kenderbetonmagyarorszag.hu: did not receive HSTS header
kenderhaz-magyarorszag.hu: did not receive HSTS header
@ -2276,7 +2278,6 @@ krayx.com: could not connect to host
kreavis.com: did not receive HSTS header
kredite.sale: could not connect to host
kriegt.es: could not connect to host
kristikala.nl: could not connect to host
kristjanrang.eu: did not receive HSTS header
krmela.com: could not connect to host
kroetenfuchs.de: could not connect to host
@ -2313,7 +2314,6 @@ labordata.io: did not receive HSTS header
labrador-retrievers.com.au: did not receive HSTS header
labs.moscow: did not receive HSTS header
lachlankidson.net: did not receive HSTS header
lacicloud.net: could not connect to host
lacledeslan.ninja: could not connect to host
lacocinadelila.com: did not receive HSTS header
ladbroke.net: did not receive HSTS header
@ -2345,7 +2345,7 @@ leadership9.com: could not connect to host
leardev.de: did not receive HSTS header
learnfrenchfluently.com: did not receive HSTS header
learningorder.com: could not connect to host
learntube.cz: could not connect to host
lebal.se: could not connect to host
lechiennoir.net: did not receive HSTS header
ledgerscope.net: could not connect to host
leermotorrijden.nl: max-age too low: 300
@ -2371,6 +2371,7 @@ les-corsaires.net: could not connect to host
lesdouceursdeliyana.com: could not connect to host
lesperlesdunet.fr: could not connect to host
letras.mus.br: did not receive HSTS header
lets.ninja: could not connect to host
letsmultiplayerplay.com: did not receive HSTS header
letustravel.tk: could not connect to host
levelum.com: did not receive HSTS header
@ -2396,14 +2397,12 @@ librechan.net: could not connect to host
libscode.com: could not connect to host
lidl-selection.at: could not connect to host
lidow.eu: could not connect to host
lifebetweenlives.com.au: did not receive HSTS header
lifeguard.aecom.com: did not receive HSTS header
lifeinitsownway.com: did not receive HSTS header
lifeskillsdirect.com: did not receive HSTS header
lifestylehunter.co.uk: did not receive HSTS header
lifetimemoneymachine.com: did not receive HSTS header
lifi.digital: did not receive HSTS header
lifi.is: could not connect to host
lightarmory.com: could not connect to host
lightpaste.com: could not connect to host
lightworx.io: did not receive HSTS header
@ -2516,6 +2515,7 @@ madebymagnitude.com: did not receive HSTS header
maderwin.com: could not connect to host
mae-berlinistanbul.com: could not connect to host
mafamane.com: could not connect to host
maff.scot: did not receive HSTS header
mafiareturns.com: max-age too low: 2592000
magenx.com: did not receive HSTS header
magicbroccoli.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
@ -2542,7 +2542,6 @@ manifestbin.com: did not receive HSTS header
manningbrothers.com: did not receive HSTS header
mannsolutions.co.uk: did not receive HSTS header
mansion-note.com: did not receive HSTS header
manufacturing.gov: could not connect to host
maomaofuli.vip: could not connect to host
marchagen.nl: did not receive HSTS header
marcontrol.com: did not receive HSTS header
@ -2551,11 +2550,11 @@ marcuskoh.com: could not connect to host
mariannematthew.com: could not connect to host
marie-curie.fr: could not connect to host
marie-elisabeth.dk: did not receive HSTS header
marie.club: could not connect to host
mario.party: did not receive HSTS header
markaconnor.com: could not connect to host
markayapilandirma.com: could not connect to host
market.android.com: did not receive HSTS header (error ignored - included regardless)
markprof.ru: could not connect to host
markrego.com: could not connect to host
marktboten.de: did not receive HSTS header
markus-dev.com: did not receive HSTS header
@ -2624,7 +2623,6 @@ mein-gesundheitsmanager.com: did not receive HSTS header
meincenter-meinemeinung.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
meincloudspeicher.de: could not connect to host
meinebo.it: could not connect to host
meizufans.eu: did not receive HSTS header
melted.pw: could not connect to host
members.mayfirst.org: did not receive HSTS header
mensmaximus.de: did not receive HSTS header
@ -2641,6 +2639,7 @@ mesmoque.com: did not receive HSTS header
metagrader.com: could not connect to host
metebalci.com: did not receive HSTS header
meteorapp.space: could not connect to host
meteosherbrooke.com: could not connect to host
meteosky.net: could not connect to host
metin2blog.de: did not receive HSTS header
metis.pw: could not connect to host
@ -2759,7 +2758,6 @@ moy-gorod.od.ua: did not receive HSTS header
moy.cat: did not receive HSTS header
mp3juices.is: could not connect to host
mqas.net: could not connect to host
mremallin.ca: could not connect to host
mrettich.org: did not receive HSTS header
mrnonz.com: max-age too low: 0
mrpopat.in: did not receive HSTS header
@ -2817,7 +2815,6 @@ myphonebox.de: could not connect to host
myraytech.net: did not receive HSTS header
mysecretrewards.com: did not receive HSTS header
mystery-science-theater-3000.de: did not receive HSTS header
mythslegendscollection.com: did not receive HSTS header
myvirtualserver.com: max-age too low: 2592000
myzone.com: did not receive HSTS header
n0psled.nl: could not connect to host
@ -2840,7 +2837,6 @@ nanogeneinc.com: could not connect to host
nanto.eu: could not connect to host
narada.com.ua: could not connect to host
nargileh.nl: could not connect to host
nassi.me: could not connect to host
natalia-fadeeva.ru: could not connect to host
natalia.io: could not connect to host
natalt.org: did not receive HSTS header
@ -2866,7 +2862,7 @@ neilgreen.net: did not receive HSTS header
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: did not receive HSTS header
nemovement.org: could not connect to host
neonisi.com: could not connect to host
nepustil.net: did not receive HSTS header
netba.net: could not connect to host
@ -3041,6 +3037,7 @@ onlinepollsph.com: could not connect to host
onlinespielothek.com: did not receive HSTS header
onlinewetten.de: could not connect to host
onlyshopstation.com: did not receive HSTS header
onlyzero.net: could not connect to host
ononpay.com: did not receive HSTS header
onpatient.com: did not receive HSTS header
ontras.com: could not connect to host
@ -3082,6 +3079,7 @@ orionfcu.com: did not receive HSTS header
orleika.ml: could not connect to host
orthodoxy.lt: did not receive HSTS header
osaiyuwu.com: could not connect to host
oshell.me: could not connect to host
oslfoundation.org: could not connect to host
oslinux.net: did not receive HSTS header
osp.cx: could not connect to host
@ -3154,7 +3152,6 @@ passwordbox.com: did not receive HSTS header
passwordrevelator.net: did not receive HSTS header
passwords.google.com: did not receive HSTS header (error ignored - included regardless)
pastaf.com: could not connect to host
paste.fedoraproject.org: did not receive HSTS header
paste.linode.com: could not connect to host
pastebin.linode.com: could not connect to host
pastenib.com: could not connect to host
@ -3222,7 +3219,7 @@ pickr.co: could not connect to host
picotronic.biz: could not connect to host
picscare.co.uk: did not receive HSTS header
pieperhome.de: could not connect to host
pijuice.com: could not connect to host
piggott.me.uk: did not receive HSTS header
pilgermaske.org: did not receive HSTS header
piligrimname.com: could not connect to host
pillowandpepper.com: did not receive HSTS header
@ -3252,6 +3249,7 @@ plaettliaktion.ch: did not receive HSTS header
planpharmacy.com: could not connect to host
platform.lookout.com: could not connect to host
play.google.com: did not receive HSTS header (error ignored - included regardless)
playflick.com: did not receive HSTS header
playkh.com: did not receive HSTS header
playmaker.io: could not connect to host
playmyplay.com: did not receive HSTS header
@ -3287,9 +3285,9 @@ pontualcomp.com: max-age too low: 2592000
poolsandstuff.com: did not receive HSTS header
poon.tech: could not connect to host
portalplatform.net: did not receive HSTS header
portalzine.de: did not receive HSTS header
poshpak.com: max-age too low: 86400
postcodewise.co.uk: did not receive HSTS header
posterspy.com: did not receive HSTS header
postscheduler.org: could not connect to host
posylka.de: did not receive HSTS header
poussinooz.fr: could not connect to host
@ -3319,7 +3317,6 @@ pro-zone.com: could not connect to host
prodpad.com: did not receive HSTS header
professionalboundaries.com: did not receive HSTS header
profi-durchgangsmelder.de: did not receive HSTS header
profpay.com: could not connect to host
profundr.com: could not connect to host
progblog.net: could not connect to host
progg.no: could not connect to host
@ -3331,6 +3328,7 @@ prontocleaners.co.uk: could not connect to host
prontolight.com: did not receive HSTS header
prontomovers.co.uk: could not connect to host
propactrading.com: could not connect to host
proposalonline.com: did not receive HSTS header
prosocialmachines.com: could not connect to host
prosoft.sk: did not receive HSTS header
prosperident.com: did not receive HSTS header
@ -3354,7 +3352,7 @@ puneflowermall.com: did not receive HSTS header
purewebmasters.com: could not connect to host
purplemoon.mobi: did not receive HSTS header
purplestar.mobi: did not receive HSTS header
pushapp.org: did not receive HSTS header
pushapp.org: could not connect to host
pwd.ovh: could not connect to host
pwdgen.net: could not connect to host
pwnies.dk: could not connect to host
@ -3411,6 +3409,7 @@ raspass.me: could not connect to host
rastreador.com.es: did not receive HSTS header
ratajczak.fr: could not connect to host
rate-esport.de: could not connect to host
rationalism.com: could not connect to host
raulfraile.net: could not connect to host
raven.lipetsk.ru: could not connect to host
rawet.se: did not receive HSTS header
@ -3429,6 +3428,7 @@ realmic.net: could not connect to host
realmofespionage.com: could not connect to host
reardenporn.com: could not connect to host
recommended.reviews: could not connect to host
redable.hosting: could not connect to host
redar.xyz: did not receive HSTS header
reddiseals.com: [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 121" data: no]
reddit.com: did not receive HSTS header
@ -3469,6 +3469,7 @@ reserve-online.net: did not receive HSTS header
respice.xyz: could not connect to host
respostas.com.br: did not receive HSTS header
restchart.com: did not receive HSTS header
reth.ch: could not connect to host
retrotracks.net: max-age too low: 0
revealdata.com: did not receive HSTS header
revello.org: did not receive HSTS header
@ -3476,7 +3477,6 @@ reverie.pw: could not connect to host
reviews.anime.my: max-age too low: 5184000
revtut.net: did not receive HSTS header
rewardstock.com: max-age too low: 0
rezun.cloud: did not receive HSTS header
rhapsodhy.hu: could not connect to host
rhdigital.pro: could not connect to host
rhering.de: could not connect to host
@ -3618,7 +3618,11 @@ schadegarant.net: could not connect to host
schmitz.link: could not connect to host
schnell-gold.com: could not connect to host
schoop.me: [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 121" data: no]
schrauger.run: could not connect to host
schrauger.com: did not receive HSTS header
schrauger.info: did not receive HSTS header
schrauger.net: did not receive HSTS header
schrauger.org: did not receive HSTS header
schrauger.run: did not receive HSTS header
schreiber-netzwerk.eu: did not receive HSTS header
schrodinger.io: could not connect to host
schulterglatzen-altenwalde.de: could not connect to host
@ -3739,7 +3743,6 @@ siddhant.me: could not connect to host
siebens.net: could not connect to host
sifls.com: could not connect to host
sig6.org: could not connect to host
sigabrt.org: could not connect to host
sigterm.no: [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 121" data: no]
silentcircle.com: did not receive HSTS header
silentcircle.org: could not connect to host
@ -3779,6 +3782,7 @@ skullhouse.nyc: did not receive HSTS header
skyflix.me: did not receive HSTS header
skyoy.com: did not receive HSTS header
slash-dev.de: did not receive HSTS header
slashand.co: did not receive HSTS header
slashem.me: did not receive HSTS header
slattery.co: could not connect to host
sleep10.com: could not connect to host
@ -3789,6 +3793,7 @@ slope.haus: could not connect to host
slovakiana.sk: did not receive HSTS header
sluitkampzeist.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 121" data: no]
slycurity.de: did not receive HSTS header
sm.ms: did not receive HSTS header
smart-mirror.de: did not receive HSTS header
smart-ov.nl: could not connect to host
smartcoin.com.br: could not connect to host
@ -3806,6 +3811,7 @@ smove.sg: did not receive HSTS header
smusg.com: did not receive HSTS header
snailing.org: could not connect to host
snakehosting.dk: did not receive HSTS header
snapappointments.com: did not receive HSTS header
snapappts.com: could not connect to host
snapworks.net: did not receive HSTS header
sneberger.cz: [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 121" data: no]
@ -3827,7 +3833,7 @@ socialhams.net: did not receive HSTS header
socialhead.io: could not connect to host
socialspirit.com.br: did not receive HSTS header
sockeye.cc: could not connect to host
socomponents.co.uk: could not connect to host
socomponents.co.uk: did not receive HSTS header
sodacore.com: could not connect to host
soe-server.com: could not connect to host
sogeek.me: did not receive HSTS header
@ -3923,6 +3929,10 @@ stderr.cc: could not connect to host
stefanweiser.de: did not receive HSTS header
stephanierxo.com: did not receive HSTS header
stephenandburns.com: did not receive HSTS header
stephenschrauger.com: did not receive HSTS header
stephenschrauger.info: did not receive HSTS header
stephenschrauger.net: did not receive HSTS header
stephenschrauger.org: did not receive HSTS header
stevensononthe.net: did not receive HSTS header
stewartremodelingadvantage.com: did not receive HSTS header
stig.io: did not receive HSTS header
@ -3944,7 +3954,6 @@ stpatricksguild.com: did not receive HSTS header
stqry.com: did not receive HSTS header
str0.at: did not receive HSTS header
strasweb.fr: did not receive HSTS header
streamchan.org: could not connect to host
streamingeverywhere.com: did not receive HSTS header
streamingmagazin.de: could not connect to host
streampanel.net: did not receive HSTS header
@ -3979,7 +3988,6 @@ suksit.com: could not connect to host
sumoatm.com: did not receive HSTS header
sumoscout.de: did not receive HSTS header
suncountrymarine.com: did not receive HSTS header
sunflyer.cn: did not receive HSTS header
sunnyfruit.ru: did not receive HSTS header
sunshinepress.org: could not connect to host
supcro.com: could not connect to host
@ -4082,6 +4090,7 @@ tegelsensanitaironline.nl: did not receive HSTS header
tekshrek.com: did not receive HSTS header
telefonnummer.online: could not connect to host
telefoonnummerinfo.nl: could not connect to host
telling.xyz: could not connect to host
temehu.com: did not receive HSTS header
tempcraft.net: could not connect to host
tendertool.nl: could not connect to host
@ -4162,12 +4171,11 @@ thirty5.net: did not receive HSTS header
thisisacompletetest.ga: could not connect to host
thisisforager.com: did not receive HSTS header
thiswebhost.com: did not receive HSTS header
thomasgriffin.io: [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 121" data: no]
thomaskliszowski.fr: did not receive HSTS header
thomaswoo.com: could not connect to host
thorncreek.net: did not receive HSTS header
thriveapproach.co.uk: did not receive HSTS header
thrx.net: could not connect to host
throughthelookingglasslens.co.uk: could not connect to host
thumbtack.com: did not receive HSTS header
thusoy.com: did not receive HSTS header
tibbitshall.ca: did not receive HSTS header
@ -4183,6 +4191,7 @@ tikutiku.pl: max-age too low: 0
tildebot.com: could not connect to host
tilkah.com.au: could not connect to host
tillcraft.com: could not connect to host
tillseasyscore.com: could not connect to host
timbeilby.com: could not connect to host
timbuktutimber.com: did not receive HSTS header
timcamara.com: did not receive HSTS header
@ -4202,6 +4211,7 @@ titouan.co: did not receive HSTS header
tittelbach.at: did not receive HSTS header
titties.ml: could not connect to host
tkarstens.de: did not receive HSTS header
tkn.tokyo: could not connect to host
tlo.hosting: could not connect to host
tlo.link: did not receive HSTS header
tlo.network: could not connect to host
@ -4262,15 +4272,16 @@ transportal.sk: did not receive HSTS header
travelinsurance.co.nz: did not receive HSTS header
treeby.net: could not connect to host
trendberry.ru: could not connect to host
trik.es: [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 121" data: no]
trinityaffirmations.com: max-age too low: 0
trinitycore.org: max-age too low: 2592000
tripdelta.com: did not receive HSTS header
trixies-wish.nz: could not connect to host
trollme.me: could not connect to host
trufflemonkey.co.uk: did not receive HSTS header
trunkjunk.co: did not receive HSTS header
trusteecar.com: did not receive HSTS header
trustmeimfancy.com: could not connect to host
truthmessages.pw: could not connect to host
trybind.com: could not connect to host
tryoneday.co: did not receive HSTS header
ts2.se: could not connect to host
@ -4309,7 +4320,6 @@ txclimbers.com: could not connect to host
txf.pw: could not connect to host
ty2u.com: did not receive HSTS header
tylian.net: max-age too low: 0
typingrevolution.com: did not receive HSTS header
tyrelius.com: did not receive HSTS header
tyroproducts.eu: did not receive HSTS header
tzappa.net: could not connect to host
@ -4324,7 +4334,6 @@ uega.net: did not receive HSTS header
ueu.me: could not connect to host
ufgaming.com: did not receive HSTS header
ufotable.uk: did not receive HSTS header
uhm.io: did not receive HSTS header
ui8.net: max-age too low: 86400
ukas.com: did not receive HSTS header
ukdropshipment.co.uk: did not receive HSTS header
@ -4336,10 +4345,10 @@ ulmo.dk: could not connect to host
ultros.io: did not receive HSTS header
umidev.com: did not receive HSTS header
umie.cc: did not receive HSTS header
umwandeln-online.de: could not connect to host
unbanthe.net: could not connect to host
unblocked-networks.org: could not connect to host
unblocked.host: could not connect to host
unblocked.today: did not receive HSTS header
unblocked.win: could not connect to host
unblocked.works: did not receive HSTS header
unblocked.world: did not receive HSTS header
@ -4380,6 +4389,7 @@ uscitizenship.info: did not receive HSTS header
uscurrency.gov: did not receive HSTS header
used-in.jp: did not receive HSTS header
usercare.com: did not receive HSTS header
userify.com: max-age too low: 0
ustr.gov: max-age too low: 86400
utleieplassen.no: could not connect to host
utopiagalaxy.space: could not connect to host
@ -4415,6 +4425,7 @@ vbulletin-russia.com: could not connect to host
vbulletinrussia.com: could not connect to host
vcdove.com: did not receive HSTS header
vcr.re: could not connect to host
ve3oat.ca: could not connect to host
veblen.com: could not connect to host
vechkasov.ru: did not receive HSTS header
vehent.org: did not receive HSTS header
@ -4441,6 +4452,7 @@ vincentkooijman.at: did not receive HSTS header
vincentkooijman.nl: did not receive HSTS header
vincentpancol.com: could not connect to host
vintageheartcoffee.com: did not receive HSTS header
vinyculture.com: could not connect to host
vio.no: did not receive HSTS header
viperdns.com: could not connect to host
vipi.es: could not connect to host
@ -4456,7 +4468,6 @@ vlora.city: could not connect to host
vm0.eu: did not receive HSTS header
vmrdev.com: could not connect to host
voceinveste.com: did not receive HSTS header
vodpay.com: could not connect to host
vodpay.net: could not connect to host
vodpay.org: could not connect to host
voicesuk.co.uk: did not receive HSTS header
@ -4465,6 +4476,7 @@ voidpay.net: could not connect to host
voidpay.org: could not connect to host
volcrado.com: did not receive HSTS header
vortexhobbies.com: did not receive HSTS header
voshod.org: [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 121" data: no]
vosjesweb.nl: could not connect to host
vox.vg: did not receive HSTS header
vpl.me: did not receive HSTS header
@ -4480,7 +4492,6 @@ w4a.fr: did not receive HSTS header
w4xzr.top: could not connect to host
w4xzr.xyz: could not connect to host
wachtwoordencheck.nl: could not connect to host
waixingrenfuli.vip: could not connect to host
waixingrenfuli7.vip: could not connect to host
wakapp.de: could not connect to host
walkeryoung.ca: could not connect to host
@ -4508,6 +4519,7 @@ wavefrontsystemstech.com: could not connect to host
wayne.cloud: did not receive HSTS header
wealthfactory.com: [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 121" data: no]
wear2work.nl: did not receive HSTS header
wearepapermill.co: did not receive HSTS header
weaverhairextensions.nl: could not connect to host
web-industry.fr: could not connect to host
web-torrent.com: max-age too low: 0
@ -4532,14 +4544,13 @@ webmaniabr.com: did not receive HSTS header
webmarketingfestival.it: did not receive HSTS header
webnosql.com: could not connect to host
webperformance.ru: max-age too low: 3600
websenat.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no]
webstory.xyz: could not connect to host
webswitch.io: could not connect to host
webtechgadgetry.com: did not receive HSTS header
webtiles.co.uk: could not connect to host
webtobesocial.de: could not connect to host
webwork.pw: could not connect to host
weddingenvelopes.co.uk: did not receive HSTS header
weissman.agency: did not receive HSTS header
weizenke.im: could not connect to host
wellastore.ru: did not receive HSTS header
wellsolveit.com: [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 121" data: no]
@ -4598,7 +4609,6 @@ winaes.com: did not receive HSTS header
winclient.cn: could not connect to host
winecodeavocado.com: could not connect to host
winged.io: could not connect to host
wingos.net: could not connect to host
wingumd.net: could not connect to host
winpack.cf: could not connect to host
winpack.eu.org: could not connect to host
@ -4638,7 +4648,6 @@ wowapi.org: could not connect to host
wphostingspot.com: did not receive HSTS header
wpmetadatastandardsproject.org: could not connect to host
writeapp.me: did not receive HSTS header
wsa.poznan.pl: could not connect to host
wsscompany.com.ve: could not connect to host
wufu.org: did not receive HSTS header
wuhengmin.com: did not receive HSTS header
@ -4702,6 +4711,7 @@ xn--80aaihqncaejjobbu6v.xn--p1ai: max-age too low: 6000
xn--9pr52k0p5a.com: did not receive HSTS header
xn--datenrettung-mnchen-jbc.com: did not receive HSTS header
xn--dmonenjger-q5ag.net: could not connect to host
xn--jp-6l5cs1yf3ivjsglphyv.net: could not connect to host
xn--lgb3a8bcpn.cf: could not connect to host
xn--lgb3a8bcpn.ga: could not connect to host
xn--lgb3a8bcpn.gq: could not connect to host
@ -4716,7 +4726,6 @@ xobox.me: could not connect to host
xoffy.com: did not receive HSTS header
xombra.com: [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 121" data: no]
xpi.fr: could not connect to host
xps2pdf.co.uk: could not connect to host
xsmobile.de: could not connect to host
xtream-hosting.com: could not connect to host
xtream-hosting.de: could not connect to host
@ -4760,6 +4769,7 @@ yoloprod.fr: could not connect to host
yoloseo.com: could not connect to host
youcontrol.ru: could not connect to host
youngandunited.nl: did not receive HSTS header
yourcomputer.expert: did not receive HSTS header
yoursecondphone.co: could not connect to host
yourstrongbox.com: could not connect to host
ypiresia.fr: could not connect to host
@ -4782,7 +4792,7 @@ zachgibbens.org: could not connect to host
zadieheimlich.com: did not receive HSTS header
zamorano.edu: could not connect to host
zap.yt: could not connect to host
zarooba.com: did not receive HSTS header
zarooba.com: could not connect to host
zbigniewgalucki.eu: did not receive HSTS header
zbp.at: did not receive HSTS header
zebrababy.cn: did not receive HSTS header
@ -4820,7 +4830,6 @@ zqhong.com: could not connect to host
ztan.tk: could not connect to host
ztcaoll222.cn: did not receive HSTS header
zten.org: could not connect to host
zulu7.com: could not connect to host
zuolan.me: did not receive HSTS header
zvncloud.com: did not receive HSTS header
zwollemagazine.nl: did not receive HSTS header

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@ -1304,66 +1304,67 @@ extends="chrome://global/content/bindings/popup.xml#popup">
// Process maxRows per chunk to improve performance and user experience
for (let i = 0; i < this.maxRows; i++) {
if (this._currentIndex >= matchCount)
if (this._currentIndex >= matchCount) {
break;
}
let item;
let reusable = false;
let itemExists = this._currentIndex < existingItemsCount;
var item;
let originalValue, originalText;
let value = controller.getValueAt(this._currentIndex);
let label = controller.getLabelAt(this._currentIndex);
let comment = controller.getCommentAt(this._currentIndex);
let style = controller.getStyleAt(this._currentIndex);
let image = controller.getImageAt(this._currentIndex);
// trim the leading/trailing whitespace
var trimmedSearchString = controller.searchString.replace(/^\s+/, "").replace(/\s+$/, "");
let trimmedSearchString = controller.searchString.replace(/^\s+/, "").replace(/\s+$/, "");
let url = controller.getValueAt(this._currentIndex);
if (this._currentIndex < existingItemsCount) {
// re-use the existing item
if (itemExists) {
item = this.richlistbox.childNodes[this._currentIndex];
item.setAttribute("dir", this.style.direction);
// Completely reuse the existing richlistitem for invalidation
// due to new results, but only when: the item is the same, *OR*
// we are about to replace the currently mouse-selected item, to
// avoid surprising the user.
let iface = Components.interfaces.nsIAutoCompletePopup;
if (item.getAttribute("text") == trimmedSearchString &&
invalidateReason == iface.INVALIDATE_REASON_NEW_RESULT &&
(item.getAttribute("url") == url ||
this.richlistbox.mouseSelectedIndex === this._currentIndex)) {
// Additionally, if the item is a searchengine action, then it
// should only be reused if the engine name is the same as the
// popup's override engine name, if any.
let action = item._parseActionUrl(url);
if (!action ||
action.type != "searchengine" ||
!this.overrideSearchEngineName ||
action.params.engineName == this.overrideSearchEngineName) {
item.collapsed = false;
// Call adjustSiteIconStart only after setting collapsed=
// false. The calculations it does may be wrong otherwise.
item.adjustSiteIconStart(this._siteIconStart);
// The popup may have changed size between now and the last
// time the item was shown, so always handle over/underflow.
item.handleOverUnderflow();
this._currentIndex++;
continue;
}
}
originalValue = item.getAttribute("ac-value");
originalText = item.getAttribute("ac-text");
reusable = item.getAttribute("originaltype") === style;
} else {
// need to create a new item
item = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "richlistitem");
item.setAttribute("dir", this.style.direction);
}
// set these attributes before we set the class
// so that we can use them from the constructor
let iconURI = controller.getImageAt(this._currentIndex);
item.setAttribute("image", iconURI);
item.setAttribute("url", url);
item.setAttribute("title", controller.getCommentAt(this._currentIndex));
item.setAttribute("originaltype", controller.getStyleAt(this._currentIndex));
item.setAttribute("text", trimmedSearchString);
item.setAttribute("dir", this.style.direction);
item.setAttribute("ac-image", image);
item.setAttribute("ac-value", value);
item.setAttribute("ac-label", label);
item.setAttribute("ac-comment", comment);
item.setAttribute("ac-text", trimmedSearchString);
if (this._currentIndex < existingItemsCount) {
// re-use the existing item
// Completely reuse the existing richlistitem for invalidation
// due to new results, but only when: the item is the same, *OR*
// we are about to replace the currently mouse-selected item, to
// avoid surprising the user.
let iface = Components.interfaces.nsIAutoCompletePopup;
if (reusable &&
originalText == trimmedSearchString &&
invalidateReason == iface.INVALIDATE_REASON_NEW_RESULT &&
(originalValue == value ||
this.richlistbox.mouseSelectedIndex === this._currentIndex)) {
// try to re-use the existing item
let reused = item._reuseAcItem();
if (reused) {
this._currentIndex++;
continue;
}
} else {
if (typeof item._cleanup == "function") {
item._cleanup();
}
item.setAttribute("originaltype", style);
}
if (itemExists) {
item._adjustAcItem();
item.collapsed = false;
} else {
@ -1373,13 +1374,12 @@ extends="chrome://global/content/bindings/popup.xml#popup">
this.richlistbox.appendChild(item);
}
// The binding may have not been applied yet.
setTimeout(() => {
let changed = item.adjustSiteIconStart(this._siteIconStart);
if (changed) {
item.handleOverUnderflow();
}
}, 0);
if (typeof item.onChanged == "function") {
// The binding may have not been applied yet.
setTimeout(() => {
item.onChanged();
}, 0);
}
this._currentIndex++;
}
@ -1646,6 +1646,18 @@ extends="chrome://global/content/bindings/popup.xml#popup">
]]>
</constructor>
<method name="_cleanup">
<body>
<![CDATA[
this.removeAttribute("url");
this.removeAttribute("image");
this.removeAttribute("title");
this.removeAttribute("text");
this.removeAttribute("displayurl");
]]>
</body>
</method>
<property name="label" readonly="true">
<getter>
<![CDATA[
@ -2032,9 +2044,58 @@ extends="chrome://global/content/bindings/popup.xml#popup">
</body>
</method>
<method name="_onChanged">
<body>
<![CDATA[
let iconChanged = item.adjustSiteIconStart(this.popup._siteIconStart);
if (iconChanged) {
item.handleOverUnderflow();
}
]]>
</body>
</method>
<method name="_reuseAcItem">
<body>
<![CDATA[
let action = this._parseActionUrl(this.getAttribute("url"));
let popup = this.parentNode.parentNode;
// If the item is a searchengine action, then it should
// only be reused if the engine name is the same as the
// popup's override engine name, if any.
if (!action ||
action.type != "searchengine" ||
!popup.overrideSearchEngineName ||
action.params.engineName == popup.overrideSearchEngineName) {
this.collapsed = false;
// Call adjustSiteIconStart only after setting collapsed=
// false. The calculations it does may be wrong otherwise.
this.adjustSiteIconStart(popup._siteIconStart);
// The popup may have changed size between now and the last
// time the item was shown, so always handle over/underflow.
this.handleOverUnderflow();
return true;
}
return false;
]]>
</body>
</method>
<method name="_adjustAcItem">
<body>
<![CDATA[
this.setAttribute("url", this.getAttribute("ac-value"));
this.setAttribute("image", this.getAttribute("ac-image"));
this.setAttribute("title", this.getAttribute("ac-comment"));
this.setAttribute("text", this.getAttribute("ac-text"));
let popup = this.parentNode.parentNode;
if (!popup.popupOpen) {
// Removing the max-width and resetting it later when overflow is

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

@ -20,6 +20,10 @@ function DatePicker(context) {
* {Number} year [optional]
* {Number} month [optional]
* {Number} date [optional]
* {Number} firstDayOfWeek
* {Array<Number>} weekends
* {Array<String>} monthStrings
* {Array<String>} weekdayStrings
* {String} locale [optional]: User preferred locale
* }
*/
@ -40,6 +44,8 @@ function DatePicker(context) {
day = now.getDate(),
firstDayOfWeek,
weekends,
monthStrings,
weekdayStrings,
locale } = this.props;
const dateKeeper = new DateKeeper({
year, month, day
@ -57,8 +63,8 @@ function DatePicker(context) {
isMonthSet: false,
isDateSet: false,
getDayString: new Intl.NumberFormat(locale).format,
// TODO: use calendar terms when available (Bug 1287677)
getWeekHeaderString: weekday => ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][weekday],
getWeekHeaderString: weekday => weekdayStrings[weekday],
getMonthString: month => monthStrings[month],
setValue: ({ dateValue, selectionValue }) => {
dateKeeper.setValue(dateValue);
this.state.selectionValue = selectionValue;
@ -103,6 +109,7 @@ function DatePicker(context) {
monthYear: new MonthYear({
setYear: this.state.setYear,
setMonth: this.state.setMonth,
getMonthString: this.state.getMonthString,
locale: this.state.locale
}, {
monthYear: this.context.monthYear,
@ -279,12 +286,12 @@ function DatePicker(context) {
* {String} locale
* {Function} setYear
* {Function} setMonth
* {Function} getMonthString
* }
* @param {DOMElement} context
*/
function MonthYear(options, context) {
const spinnerSize = 5;
const monthFormat = new Intl.DateTimeFormat(options.locale, { month: "short", timeZone: "UTC" }).format;
const yearFormat = new Intl.DateTimeFormat(options.locale, { year: "numeric" }).format;
const dateFormat = new Intl.DateTimeFormat(options.locale, { year: "numeric", month: "long" }).format;
@ -297,7 +304,7 @@ function DatePicker(context) {
this.state.isMonthSet = true;
options.setMonth(month);
},
getDisplayString: month => monthFormat(new Date(Date.UTC(0, month))),
getDisplayString: options.getMonthString,
viewportSize: spinnerSize
}, context.monthYearView),
year: new Spinner({

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

@ -22,6 +22,13 @@
<field name="TIME_PICKER_HEIGHT" readonly="true">"21em"</field>
<field name="DATE_PICKER_WIDTH" readonly="true">"23.1em"</field>
<field name="DATE_PICKER_HEIGHT" readonly="true">"20.7em"</field>
<constructor><![CDATA[
this.l10n = {};
const mozIntl = Components.classes["@mozilla.org/mozintl;1"]
.getService(Components.interfaces.mozIMozIntl);
mozIntl.addGetCalendarInfo(l10n);
mozIntl.addGetDisplayNames(l10n);
]]></constructor>
<method name="loadPicker">
<parameter name="type"/>
<parameter name="detail"/>
@ -117,6 +124,31 @@
const { year, month, day } = detail.value;
const { firstDayOfWeek, weekends } =
this.getCalendarInfo(locale);
const monthStrings = this.getDisplayNames(
locale, [
"dates/gregorian/months/january",
"dates/gregorian/months/february",
"dates/gregorian/months/march",
"dates/gregorian/months/april",
"dates/gregorian/months/may",
"dates/gregorian/months/june",
"dates/gregorian/months/july",
"dates/gregorian/months/august",
"dates/gregorian/months/september",
"dates/gregorian/months/october",
"dates/gregorian/months/november",
"dates/gregorian/months/december",
], "short");
const weekdayStrings = this.getDisplayNames(
locale, [
"dates/gregorian/weekdays/sunday",
"dates/gregorian/weekdays/monday",
"dates/gregorian/weekdays/tuesday",
"dates/gregorian/weekdays/wednesday",
"dates/gregorian/weekdays/thursday",
"dates/gregorian/weekdays/friday",
"dates/gregorian/weekdays/saturday",
], "short");
this.postMessageToPicker({
name: "PickerInit",
@ -127,6 +159,8 @@
day,
firstDayOfWeek,
weekends,
monthStrings,
weekdayStrings,
locale
}
});
@ -192,11 +226,7 @@
<method name="getCalendarInfo">
<parameter name="locale"/>
<body><![CDATA[
const l10n = {};
const mozIntl = Components.classes["@mozilla.org/mozintl;1"]
.getService(Components.interfaces.mozIMozIntl);
mozIntl.addGetCalendarInfo(l10n);
const calendarInfo = l10n.getCalendarInfo(locale);
const calendarInfo = this.l10n.getCalendarInfo(locale);
// Day of week from calendarInfo starts from 1 as Sunday to 7 as Saturday,
// so they need to be mapped to JavaScript convention with 0 as Sunday
@ -224,6 +254,15 @@
}
]]></body>
</method>
<method name="getDisplayNames">
<parameter name="locale"/>
<parameter name="keys"/>
<parameter name="style"/>
<body><![CDATA[
const displayNames = this.l10n.getDisplayNames(locale, {keys, style});
return keys.map(key => displayNames.values[key]);
]]></body>
</method>
<method name="handleEvent">
<parameter name="aEvent"/>
<body><![CDATA[

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

@ -19,6 +19,16 @@
#include "nsTArray.h"
#include "nsThreadUtils.h"
#if defined(DEBUG) || !defined(RELEASE_OR_BETA)
#define PROMISE_DEBUG
#endif
#ifdef PROMISE_DEBUG
#define PROMISE_ASSERT MOZ_RELEASE_ASSERT
#else
#define PROMISE_ASSERT(...) do { } while (0)
#endif
namespace mozilla {
extern LazyLogModule gMozPromiseLog;
@ -120,6 +130,8 @@ template<typename T> class MozPromiseRequestHolder;
template<typename ResolveValueT, typename RejectValueT, bool IsExclusive>
class MozPromise : public MozPromiseRefcountable
{
static const uint32_t sMagic = 0xcecace11;
public:
typedef ResolveValueT ResolveValueType;
typedef RejectValueT RejectValueType;
@ -176,6 +188,9 @@ protected:
, mMutex("MozPromise Mutex")
, mHaveRequest(false)
, mIsCompletionPromise(aIsCompletionPromise)
#ifdef PROMISE_DEBUG
, mMagic4(mMutex.mLock)
#endif
{
PROMISE_LOG("%s creating MozPromise (%p)", mCreationSite, this);
}
@ -278,11 +293,6 @@ public:
{
public:
virtual void Disconnect() = 0;
// MSVC complains when an inner class (ThenValueBase::{Resolve,Reject}Runnable)
// tries to access an inherited protected member.
bool IsDisconnected() const { return mDisconnected; }
virtual void AssertIsDead() = 0;
protected:
@ -304,6 +314,7 @@ protected:
class ThenValueBase : public Request
{
friend class MozPromise;
static const uint32_t sMagic = 0xfadece11;
public:
class ResolveOrRejectRunnable : public Runnable
@ -343,8 +354,17 @@ protected:
, mCallSite(aCallSite)
{ }
#ifdef PROMISE_DEBUG
~ThenValueBase()
{
mMagic1 = 0;
mMagic2 = 0;
}
#endif
void AssertIsDead() override
{
PROMISE_ASSERT(mMagic1 == sMagic && mMagic2 == sMagic);
// We want to assert that this ThenValues is dead - that is to say, that
// there are no consumers waiting for the result. In the case of a normal
// ThenValue, we check that it has been disconnected, which is the way
@ -361,25 +381,25 @@ protected:
void Dispatch(MozPromise *aPromise)
{
PROMISE_ASSERT(mMagic1 == sMagic && mMagic2 == sMagic);
aPromise->mMutex.AssertCurrentThreadOwns();
MOZ_ASSERT(!aPromise->IsPending());
RefPtr<Runnable> runnable =
static_cast<Runnable*>(new (typename ThenValueBase::ResolveOrRejectRunnable)(this, aPromise));
nsCOMPtr<nsIRunnable> r = new ResolveOrRejectRunnable(this, aPromise);
PROMISE_LOG("%s Then() call made from %s [Runnable=%p, Promise=%p, ThenValue=%p]",
aPromise->mValue.IsResolve() ? "Resolving" : "Rejecting", ThenValueBase::mCallSite,
runnable.get(), aPromise, this);
aPromise->mValue.IsResolve() ? "Resolving" : "Rejecting", mCallSite,
r.get(), aPromise, this);
// Promise consumers are allowed to disconnect the Request object and
// then shut down the thread or task queue that the promise result would
// be dispatched on. So we unfortunately can't assert that promise
// dispatch succeeds. :-(
mResponseTarget->Dispatch(runnable.forget(), AbstractThread::DontAssertDispatchSuccess);
mResponseTarget->Dispatch(r.forget(), AbstractThread::DontAssertDispatchSuccess);
}
void Disconnect() override
{
MOZ_ASSERT(ThenValueBase::mResponseTarget->IsCurrentThreadIn());
MOZ_DIAGNOSTIC_ASSERT(mResponseTarget->IsCurrentThreadIn());
MOZ_DIAGNOSTIC_ASSERT(!Request::mComplete);
Request::mDisconnected = true;
@ -395,6 +415,8 @@ protected:
void DoResolveOrReject(const ResolveOrRejectValue& aValue)
{
PROMISE_ASSERT(mMagic1 == sMagic && mMagic2 == sMagic);
MOZ_DIAGNOSTIC_ASSERT(mResponseTarget->IsCurrentThreadIn());
Request::mComplete = true;
if (Request::mDisconnected) {
PROMISE_LOG("ThenValue::DoResolveOrReject disconnected - bailing out [this=%p]", this);
@ -416,7 +438,13 @@ protected:
}
RefPtr<AbstractThread> mResponseTarget; // May be released on any thread.
#ifdef PROMISE_DEBUG
uint32_t mMagic1 = sMagic;
#endif
RefPtr<Private> mCompletionPromise;
#ifdef PROMISE_DEBUG
uint32_t mMagic2 = sMagic;
#endif
const char* mCallSite;
};
@ -666,6 +694,7 @@ public:
void ThenInternal(AbstractThread* aResponseThread, ThenValueBase* aThenValue,
const char* aCallSite)
{
PROMISE_ASSERT(mMagic1 == sMagic && mMagic2 == sMagic && mMagic3 == sMagic && mMagic4 == mMutex.mLock);
MutexAutoLock lock(mMutex);
MOZ_ASSERT(aResponseThread->IsDispatchReliable());
MOZ_DIAGNOSTIC_ASSERT(!IsExclusive || !mHaveRequest);
@ -819,6 +848,7 @@ public:
// AssertIsDead() only.
void AssertIsDead()
{
PROMISE_ASSERT(mMagic1 == sMagic && mMagic2 == sMagic && mMagic3 == sMagic && mMagic4 == mMutex.mLock);
MutexAutoLock lock(mMutex);
for (auto&& then : mThenValues) {
then->AssertIsDead();
@ -873,15 +903,33 @@ protected:
MOZ_ASSERT(mThenValues.IsEmpty());
MOZ_ASSERT(mChainedPromises.IsEmpty());
}
#ifdef PROMISE_DEBUG
mMagic1 = 0;
mMagic2 = 0;
mMagic3 = 0;
mMagic4 = nullptr;
#endif
};
const char* mCreationSite; // For logging
Mutex mMutex;
ResolveOrRejectValue mValue;
#ifdef PROMISE_DEBUG
uint32_t mMagic1 = sMagic;
#endif
nsTArray<RefPtr<ThenValueBase>> mThenValues;
#ifdef PROMISE_DEBUG
uint32_t mMagic2 = sMagic;
#endif
nsTArray<RefPtr<Private>> mChainedPromises;
#ifdef PROMISE_DEBUG
uint32_t mMagic3 = sMagic;
#endif
bool mHaveRequest;
const bool mIsCompletionPromise;
#ifdef PROMISE_DEBUG
void* mMagic4;
#endif
};
template<typename ResolveValueT, typename RejectValueT, bool IsExclusive>
@ -895,6 +943,7 @@ public:
template<typename ResolveValueT_>
void Resolve(ResolveValueT_&& aResolveValue, const char* aResolveSite)
{
PROMISE_ASSERT(mMagic1 == sMagic && mMagic2 == sMagic && mMagic3 == sMagic && mMagic4 == mMutex.mLock);
MutexAutoLock lock(mMutex);
MOZ_ASSERT(IsPending());
PROMISE_LOG("%s resolving MozPromise (%p created at %s)", aResolveSite, this, mCreationSite);
@ -905,6 +954,7 @@ public:
template<typename RejectValueT_>
void Reject(RejectValueT_&& aRejectValue, const char* aRejectSite)
{
PROMISE_ASSERT(mMagic1 == sMagic && mMagic2 == sMagic && mMagic3 == sMagic && mMagic4 == mMutex.mLock);
MutexAutoLock lock(mMutex);
MOZ_ASSERT(IsPending());
PROMISE_LOG("%s rejecting MozPromise (%p created at %s)", aRejectSite, this, mCreationSite);
@ -915,6 +965,7 @@ public:
template<typename ResolveOrRejectValue_>
void ResolveOrReject(ResolveOrRejectValue_&& aValue, const char* aSite)
{
PROMISE_ASSERT(mMagic1 == sMagic && mMagic2 == sMagic && mMagic3 == sMagic && mMagic4 == mMutex.mLock);
MutexAutoLock lock(mMutex);
MOZ_ASSERT(IsPending());
PROMISE_LOG("%s resolveOrRejecting MozPromise (%p created at %s)", aSite, this, mCreationSite);
@ -1344,6 +1395,8 @@ InvokeAsync(AbstractThread* aTarget, const char* aCallerName,
}
#undef PROMISE_LOG
#undef PROMISE_ASSERT
#undef PROMISE_DEBUG
} // namespace mozilla

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

@ -110,6 +110,10 @@ private:
PRLock* mLock;
friend class CondVar;
// MozPromise needs to access mLock for debugging purpose.
template<typename, typename, bool>
friend class MozPromise;
};
/**