author | Tiberius Oros <toros@mozilla.com> |
Fri, 05 Jan 2018 12:03:34 +0200 | |
changeset 449746 | b789397f403800b52e4b1ff88557438895c90df7 |
parent 449745 | c2e9837df73214bd3cadce9a5bc82a4797ea1ebd (current diff) |
parent 449690 | 81362f7306fe413b19fdba27cd0e9a5525d902e1 (diff) |
child 449747 | 888271e96fecc039c677ab2d88e4141528f36160 |
push id | 8527 |
push user | Callek@gmail.com |
push date | Thu, 11 Jan 2018 21:05:50 +0000 |
treeherder | mozilla-beta@95342d212a7a [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | merge, merge |
milestone | 59.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
services/sync/tests/tps/test_addon_sanity.js | file | annotate | diff | comparison | revisions |
--- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -1033,22 +1033,22 @@ function _loadURIWithFlags(browser, uri, // createFixupURI throws if it can't create a URI. If that's the case then // we still need to pass down the uri because docshell handles this case. requiredRemoteType = gMultiProcessBrowser ? E10SUtils.DEFAULT_REMOTE_TYPE : E10SUtils.NOT_REMOTE; } let mustChangeProcess = requiredRemoteType != currentRemoteType; let newFrameloader = false; - if (browser.getAttribute("isPreloadBrowser") == "true" && uri != "about:newtab") { + if (browser.getAttribute("preloadedState") === "consumed" && uri != "about:newtab") { // Leaving about:newtab from a used to be preloaded browser should run the process // selecting algorithm again. mustChangeProcess = true; newFrameloader = true; - browser.removeAttribute("isPreloadBrowser"); + browser.removeAttribute("preloadedState"); } // !requiredRemoteType means we're loading in the parent/this process. if (!requiredRemoteType) { browser.inLoadURI = true; } try { if (!mustChangeProcess) { @@ -1120,18 +1120,18 @@ function _loadURIWithFlags(browser, uri, function LoadInOtherProcess(browser, loadOptions, historyIndex = -1) { let tab = gBrowser.getTabForBrowser(browser); SessionStore.navigateAndRestore(tab, loadOptions, historyIndex); } // Called when a docshell has attempted to load a page in an incorrect process. // This function is responsible for loading the page in the correct process. function RedirectLoad({ target: browser, data }) { - if (browser.getAttribute("isPreloadBrowser") == "true") { - browser.removeAttribute("isPreloadBrowser"); + if (browser.getAttribute("preloadedState") === "consumed") { + browser.removeAttribute("preloadedState"); data.loadOptions.newFrameloader = true; } if (data.loadOptions.reloadInFreshProcess) { // Convert the fresh process load option into a large allocation remote type // to use common processing from this point. data.loadOptions.remoteType = E10SUtils.LARGE_ALLOCATION_REMOTE_TYPE; data.loadOptions.newFrameloader = true;
--- a/browser/base/content/content.js +++ b/browser/base/content/content.js @@ -309,17 +309,17 @@ var AboutNetAndCertErrorListener = { let now = Date.now(); let certRange = this._getCertValidityRange(); let approximateDate = now - difference * 1000; // If the difference is more than a day, we last fetched the date in the last 5 days, // and adjusting the date per the interval would make the cert valid, warn the user: if (Math.abs(difference) > 60 * 60 * 24 && (now - lastFetched) <= 60 * 60 * 24 * 5 && certRange.notBefore < approximateDate && certRange.notAfter > approximateDate) { - let formatter = Services.intl.createDateTimeFormat(undefined, { + let formatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "short" }); let systemDate = formatter.format(new Date()); // negative difference means local time is behind server time approximateDate = formatter.format(new Date(approximateDate)); content.document.getElementById("wrongSystemTime_URL") .textContent = content.document.location.hostname; @@ -345,17 +345,17 @@ var AboutNetAndCertErrorListener = { let buildDate = new Date(year, month, day); let systemDate = new Date(); // We don't check the notBefore of the cert with the build date, // as it is of course almost certain that it is now later than the build date, // so we shouldn't exclude the possibility that the cert has become valid // since the build date. if (buildDate > systemDate && new Date(certRange.notAfter) > buildDate) { - let formatter = Services.intl.createDateTimeFormat(undefined, { + let formatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "short" }); content.document.getElementById("wrongSystemTimeWithoutReference_URL") .textContent = content.document.location.hostname; content.document.getElementById("wrongSystemTimeWithoutReference_systemDate") .textContent = formatter.format(systemDate);
--- a/browser/base/content/pageinfo/pageInfo.js +++ b/browser/base/content/pageinfo/pageInfo.js @@ -1011,17 +1011,17 @@ function formatNumber(number) { return (+number).toLocaleString(); // coerce number to a numeric value before calling toLocaleString() } function formatDate(datestr, unknown) { var date = new Date(datestr); if (!date.valueOf()) return unknown; - const dateTimeFormatter = Services.intl.createDateTimeFormat(undefined, { + const dateTimeFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "long", timeStyle: "long" }); return dateTimeFormatter.format(date); } function doCopy() { if (!gClipboardHelper) return;
--- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -2131,18 +2131,21 @@ this._preloadedBrowser = null; // Attach the nsIFormFillController now that we know the browser // will be used. If we do that before and the preloaded browser // won't be consumed until shutdown then we leak a docShell. // Also, we do not need to take care of attaching nsIFormFillControllers // in the case that the browser is remote, as remote browsers take // care of that themselves. - if (browser && this.hasAttribute("autocompletepopup")) { - browser.setAttribute("autocompletepopup", this.getAttribute("autocompletepopup")); + if (browser) { + browser.setAttribute("preloadedState", "consumed"); + if (this.hasAttribute("autocompletepopup")) { + browser.setAttribute("autocompletepopup", this.getAttribute("autocompletepopup")); + } } return browser; ]]> </body> </method> <method name="_isPreloadingEnabled"> @@ -2234,18 +2237,33 @@ } b.presetOpenerWindow(aParams.openerWindow); } if (!aParams.isPreloadBrowser && this.hasAttribute("autocompletepopup")) { b.setAttribute("autocompletepopup", this.getAttribute("autocompletepopup")); } + /* + * This attribute is meant to describe if the browser is the + * preloaded browser. There are 2 defined states: "preloaded" or + * "consumed". The order of events goes as follows: + * 1. The preloaded browser is created and the 'preloadedState' + * attribute for that browser is set to "preloaded". + * 2. When a new tab is opened and it is time to show that + * preloaded browser, the 'preloadedState' attribute for that + * browser is set to "consumed" + * 3. When we then navigate away from about:newtab, the "consumed" + * browsers will attempt to switch to a new content process, + * therefore the 'preloadedState' attribute is removed from + * that browser altogether + * See more details on Bug 1420285. + */ if (aParams.isPreloadBrowser) { - b.setAttribute("isPreloadBrowser", "true"); + b.setAttribute("preloadedState", "preloaded"); } if (this.hasAttribute("selectmenulist")) b.setAttribute("selectmenulist", this.getAttribute("selectmenulist")); if (this.hasAttribute("datetimepicker")) { b.setAttribute("datetimepicker", this.getAttribute("datetimepicker")); }
--- a/browser/base/content/test/about/browser_aboutCertError.js +++ b/browser/base/content/test/about/browser_aboutCertError.js @@ -146,17 +146,17 @@ add_task(async function checkWrongSystem text: div.textContent, systemDate: systemDateDiv.textContent, actualDate: actualDateDiv.textContent, learnMoreLink: learnMoreLink.href }; }); } - let formatter = Services.intl.createDateTimeFormat(undefined, { + let formatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "short" }); // pretend we have a positively skewed (ahead) system time let serverDate = new Date("2015/10/27"); let serverDateFmt = formatter.format(serverDate); let localDateFmt = formatter.format(new Date());
--- a/browser/base/content/test/performance/browser_tabstrip_overflow_underflow_reflows.js +++ b/browser/base/content/test/performance/browser_tabstrip_overflow_underflow_reflows.js @@ -45,21 +45,76 @@ add_task(async function() { await BrowserTestUtils.waitForEvent(gBrowser.selectedTab, "transitionend", false, e => e.propertyName === "max-width"); await switchDone; await BrowserTestUtils.waitForCondition(() => { return gBrowser.tabContainer.arrowScrollbox.hasAttribute("scrolledtoend"); }); }, EXPECTED_OVERFLOW_REFLOWS, window); - await withReflowObserver(async function() { + Assert.ok(gBrowser.tabContainer.hasAttribute("overflow"), + "Tabs should now be overflowed."); + + // Now test that opening and closing a tab while overflowed doesn't cause + // us to reflow. + await withReflowObserver(async function(dirtyFrame) { + let switchDone = BrowserTestUtils.waitForEvent(window, "TabSwitchDone"); + BrowserOpenTab(); + await switchDone; + await BrowserTestUtils.waitForCondition(() => { + return gBrowser.tabContainer.arrowScrollbox.hasAttribute("scrolledtoend"); + }); + }, [], window); + + await withReflowObserver(async function(dirtyFrame) { let switchDone = BrowserTestUtils.waitForEvent(window, "TabSwitchDone"); - let transitionPromise = - BrowserTestUtils.waitForEvent(gBrowser.selectedTab, - "transitionend", false, - e => e.propertyName === "max-width"); await BrowserTestUtils.removeTab(gBrowser.selectedTab, { animate: true }); - await transitionPromise; await switchDone; - }, EXPECTED_UNDERFLOW_REFLOWS, window); + }, [], window); + + // At this point, we have an overflowed tab strip, and we've got the last tab + // selected. This should mean that the first tab is scrolled out of view. + // Let's test that we don't reflow when switching to that first tab. + let lastTab = gBrowser.selectedTab; + let arrowScrollbox = gBrowser.tabContainer.arrowScrollbox; + + // First, we'll check that the first tab is actually scrolled + // at least partially out of view. + Assert.ok(arrowScrollbox.scrollPosition > 0, + "First tab should be partially scrolled out of view."); + + // Now switch to the first tab. We shouldn't flush layout at all. + await withReflowObserver(async function(dirtyFrame) { + let firstTab = gBrowser.tabContainer.firstChild; + await BrowserTestUtils.switchTab(gBrowser, firstTab); + await BrowserTestUtils.waitForCondition(() => { + return gBrowser.tabContainer.arrowScrollbox.hasAttribute("scrolledtostart"); + }); + }, [], window); + + // Okay, now close the last tab. The tabstrip should stay overflowed, but removing + // one more after that should underflow it. + await BrowserTestUtils.removeTab(lastTab); + + Assert.ok(gBrowser.tabContainer.hasAttribute("overflow"), + "Tabs should still be overflowed."); + + // Depending on the size of the window, it might take one or more tab + // removals to put the tab strip out of the overflow state, so we'll just + // keep testing removals until that occurs. + while (gBrowser.tabContainer.hasAttribute("overflow")) { + lastTab = gBrowser.tabContainer.lastElementChild; + if (gBrowser.selectedTab !== lastTab) { + await BrowserTestUtils.switchTab(gBrowser, lastTab); + } + + // ... and make sure we don't flush layout when closing it, and exiting + // the overflowed state. + await withReflowObserver(async function() { + let switchDone = BrowserTestUtils.waitForEvent(window, "TabSwitchDone"); + await BrowserTestUtils.removeTab(lastTab, { animate: true }); + await switchDone; + await BrowserTestUtils.waitForCondition(() => !lastTab.isConnected); + }, EXPECTED_UNDERFLOW_REFLOWS, window); + } await removeAllButFirstTab(); });
--- a/browser/components/feeds/FeedWriter.js +++ b/browser/components/feeds/FeedWriter.js @@ -187,17 +187,17 @@ FeedWriter.prototype = { __dateFormatter: null, get _dateFormatter() { if (!this.__dateFormatter) { const dtOptions = { timeStyle: "short", dateStyle: "long" }; - this.__dateFormatter = Services.intl.createDateTimeFormat(undefined, dtOptions); + this.__dateFormatter = new Services.intl.DateTimeFormat(undefined, dtOptions); } return this.__dateFormatter; }, /** * Returns the feed type. */ __feedType: null,
--- a/browser/components/places/content/places.js +++ b/browser/components/places/content/places.js @@ -408,17 +408,17 @@ var PlacesOrganizer = { * Populates the restore menu with the dates of the backups available. */ populateRestoreMenu: function PO_populateRestoreMenu() { let restorePopup = document.getElementById("fileRestorePopup"); const dtOptions = { dateStyle: "long" }; - let dateFormatter = Services.intl.createDateTimeFormat(undefined, dtOptions); + let dateFormatter = new Services.intl.DateTimeFormat(undefined, dtOptions); // Remove existing menu items. Last item is the restoreFromFile item. while (restorePopup.childNodes.length > 1) restorePopup.firstChild.remove(); (async function() { let backupFiles = await PlacesBackups.getBackupFiles(); if (backupFiles.length == 0)
--- a/browser/components/places/content/treeView.js +++ b/browser/components/places/content/treeView.js @@ -551,29 +551,29 @@ PlacesTreeView.prototype = { }, // We use a different formatter for times within the current day, // so we cache both a "today" formatter and a general date formatter. __todayFormatter: null, get _todayFormatter() { if (!this.__todayFormatter) { const dtOptions = { timeStyle: "short" }; - this.__todayFormatter = Services.intl.createDateTimeFormat(undefined, dtOptions); + this.__todayFormatter = new Services.intl.DateTimeFormat(undefined, dtOptions); } return this.__todayFormatter; }, __dateFormatter: null, get _dateFormatter() { if (!this.__dateFormatter) { const dtOptions = { dateStyle: "short", timeStyle: "short" }; - this.__dateFormatter = Services.intl.createDateTimeFormat(undefined, dtOptions); + this.__dateFormatter = new Services.intl.DateTimeFormat(undefined, dtOptions); } return this.__dateFormatter; }, COLUMN_TYPE_UNKNOWN: 0, COLUMN_TYPE_TITLE: 1, COLUMN_TYPE_URI: 2, COLUMN_TYPE_DATE: 3,
--- a/browser/components/places/tests/chrome/test_treeview_date.xul +++ b/browser/components/places/tests/chrome/test_treeview_date.xul @@ -133,17 +133,17 @@ if (node.uri == "http://at.midnight.com/" || node.uri == "http://after.midnight.com/") { dtOptions.dateStyle = undefined; } else if (node.uri != "http://before.midnight.com/") { // Avoid to test spurious uris, due to how the test works // a redirecting uri could be put in the tree while we test. break; } - let timeStr = Services.intl.createDateTimeFormat(undefined, dtOptions).format(timeObj); + let timeStr = new Services.intl.DateTimeFormat(undefined, dtOptions).format(timeObj); is(text, timeStr, "Date format is correct"); break; case "visitCount": is(text, 1, "Visit count is correct"); break; } }
--- a/browser/components/preferences/cookies.js +++ b/browser/components/preferences/cookies.js @@ -486,17 +486,17 @@ var gCookiesWindow = { break; } this._view._rowCount = hostCount.value; }, formatExpiresString(aExpires) { if (aExpires) { var date = new Date(1000 * aExpires); - const dateTimeFormatter = Services.intl.createDateTimeFormat(undefined, { + const dateTimeFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "long", timeStyle: "long" }); return dateTimeFormatter.format(date); } return this._bundle.getString("expireAtEndOfSession"); }, _getUserContextString(aUserContextId) {
--- a/browser/extensions/activity-stream/lib/TelemetryFeed.jsm +++ b/browser/extensions/activity-stream/lib/TelemetryFeed.jsm @@ -241,17 +241,17 @@ this.TelemetryFeed = class TelemetryFeed /** * handleNewTabInit - Handle NEW_TAB_INIT, which creates a new session and sets the a flag * for session.perf based on whether or not this new tab is preloaded * * @param {obj} action the Action object */ handleNewTabInit(action) { const session = this.addSession(au.getPortIdOfSender(action), action.data.url); - session.perf.is_preloaded = action.data.browser.getAttribute("isPreloadBrowser") === "true"; + session.perf.is_preloaded = action.data.browser.getAttribute("preloadedState") === "preloaded"; } /** * createPing - Create a ping with common properties * * @param {string} id The portID of the session, if a session is relevant (optional) * @return {obj} A telemetry ping */
new file mode 100644 --- /dev/null +++ b/build/debian-packages/python-wheezy.diff @@ -0,0 +1,149 @@ +diff -u python2.7-2.7.9/debian/changelog python2.7-2.7.9/debian/changelog +--- python2.7-2.7.9/debian/changelog ++++ python2.7-2.7.9/debian/changelog +@@ -1,3 +1,17 @@ ++python2.7 (2.7.9-2.deb7moz1) wheezy; urgency=medium ++ ++ * Mozilla backport for wheezy. ++ * debian/control.in: ++ - Remove gcc 4.9 build dependency, wheezy doesn't have it. ++ - Remove libexpat1-dev dependency from python dev packages. It prevents ++ from co-installing some i386 -dev packages. ++ * debian/rules: ++ - Adapt ar, ranlib and objcopy paths to work on wheezy. ++ * debian/control.in, debian/rules: Don't generate the -doc package, sphinx ++ is too old in wheezy. ++ ++ -- Mike Hommey <glandium@mozilla.com> Fri, 13 Oct 2017 19:20:21 +0900 ++ + python2.7 (2.7.9-2+deb8u1) jessie; urgency=medium + + * Backport upstream commit b3ce713fb9beebfff9848cefa0acbd59acc68fe9 +diff -u python2.7-2.7.9/debian/control.in python2.7-2.7.9/debian/control.in +--- python2.7-2.7.9/debian/control.in ++++ python2.7-2.7.9/debian/control.in +@@ -3,7 +3,6 @@ + Priority: optional + Maintainer: Matthias Klose <doko@debian.org> + Build-Depends: debhelper (>= 5), @bd_dpkgdev@ +- gcc (>= 4:4.9.2), + quilt, autoconf, autotools-dev, + lsb-release, sharutils, + libreadline-dev, libtinfo-dev, libncursesw5-dev (>= 5.3), @bd_gcc@ +@@ -112,7 +111,7 @@ + Package: @PVER@-dev + Architecture: any + Multi-Arch: allowed +-Depends: @PVER@ (= ${binary:Version}), lib@PVER@-dev (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libexpat1-dev, ${shlibs:Depends}, ${misc:Depends} ++Depends: @PVER@ (= ${binary:Version}), lib@PVER@-dev (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} + Recommends: libc6-dev | libc-dev + Replaces: @PVER@ (<< 2.7-3) + Description: Header files and a static library for Python (v@VER@) +@@ -127,7 +126,7 @@ + Architecture: any + Multi-Arch: same + Pre-Depends: multiarch-support +-Depends: lib@PVER@-stdlib (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), libexpat1-dev, ${shlibs:Depends}, ${misc:Depends} ++Depends: lib@PVER@-stdlib (= ${binary:Version}), lib@PVER@ (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} + Replaces: @PVER@ (<< 2.7-3), @PVER@-dev (<< 2.7.3-10), @PVER@-minimal (<< 2.7.3-10) + Recommends: libc6-dev | libc-dev + Description: Header files and a static library for Python (v@VER@) +@@ -161,27 +160,6 @@ + IDLE is an Integrated Development Environment for Python (v@VER@). + IDLE is written using Tkinter and therefore quite platform-independent. + +-Package: @PVER@-doc +-Section: doc +-Architecture: all +-Depends: libjs-jquery, libjs-underscore, ${misc:Depends} +-Suggests: @PVER@ +-Description: Documentation for the high-level object-oriented language Python (v@VER@) +- These is the official set of documentation for the interactive high-level +- object-oriented language Python (v@VER@). All documents are provided +- in HTML format. The package consists of ten documents: +- . +- * What's New in Python@VER@ +- * Tutorial +- * Python Library Reference +- * Macintosh Module Reference +- * Python Language Reference +- * Extending and Embedding Python +- * Python/C API Reference +- * Installing Python Modules +- * Documenting Python +- * Distributing Python Modules +- + Package: @PVER@-dbg + Section: debug + Architecture: any +diff -u python2.7-2.7.9/debian/rules python2.7-2.7.9/debian/rules +--- python2.7-2.7.9/debian/rules ++++ python2.7-2.7.9/debian/rules +@@ -121,8 +121,8 @@ + CC = $(DEB_HOST_GNU_TYPE)-gcc + CXX=$(DEB_HOST_GNU_TYPE)-g++ + +-AR=$(DEB_HOST_GNU_TYPE)-ar +-RANLIB=$(DEB_HOST_GNU_TYPE)-ranlib ++AR=$(DEB_HOST_GNU_TYPE)-gcc-ar-4.7 ++RANLIB=$(DEB_HOST_GNU_TYPE)-gcc-ranlib-4.7 + + DPKG_CFLAGS := $(shell dpkg-buildflags --get CPPFLAGS; dpkg-buildflags --get CFLAGS) + DPKG_LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) +@@ -171,8 +171,6 @@ + LTO_CFLAGS += -ffat-lto-objects + endif + EXTRA_OPT_CFLAGS += $(LTO_CFLAGS) +- AR=$(DEB_HOST_GNU_TYPE)-gcc-ar +- RANLIB=$(DEB_HOST_GNU_TYPE)-gcc-ranlib + endif + + make_build_target = $(if $(with_pgo),profile-opt) +@@ -628,7 +626,6 @@ + + stamps/stamp-doc-html: + dh_testdir +- $(MAKE) -C Doc html + touch stamps/stamp-doc-html + + build-doc: stamps/stamp-patch stamps/stamp-build-doc +@@ -1215,30 +1212,6 @@ + dh_testdir -i + dh_testroot -i + +- : # $(p_doc) package +- dh_installdirs -p$(p_doc) \ +- usr/share/doc/$(p_base) \ +- usr/share/doc/$(p_doc) +- dh_installdocs -p$(p_doc) +- cp -a Doc/build/html $(d_doc)/usr/share/doc/$(p_base)/ +- rm -f $(d_doc)/usr/share/doc/$(p_base)/html/_static/jquery.js +- rm -f $(d_doc)/usr/share/doc/$(p_base)/html/_static/underscore.js +- dh_link -p$(p_doc) \ +- /usr/share/doc/$(p_base)/html \ +- /usr/share/doc/$(p_doc)/html \ +- /usr/share/javascript/jquery/jquery.js \ +- /usr/share/doc/$(p_base)/html/_static/jquery.js \ +- /usr/share/javascript/underscore/underscore.js \ +- /usr/share/doc/$(p_base)/html/_static/underscore.js +- +- : # devhelp docs +- $(buildd_static)/python debian/pyhtml2devhelp.py \ +- $(d_doc)/usr/share/doc/$(p_base)/html index.html $(VER) \ +- > $(d_doc)/usr/share/doc/$(p_base)/html/$(PVER).devhelp +- gzip -9v $(d_doc)/usr/share/doc/$(p_base)/html/$(PVER).devhelp +- dh_link -p$(p_doc) \ +- /usr/share/doc/$(p_base)/html /usr/share/devhelp/books/$(PVER) +- + for i in $(p_ltst); do \ + rm -rf debian/$$i/usr/share/doc/$$i; \ + ln -s $(p_lbase) debian/$$i/usr/share/doc/$$i; \ +@@ -1298,7 +1271,7 @@ + endif + + find $(d_ldbg) $(d_ldev) -name '*.a' ! -type l \ +- | xargs -n 1 $(DEB_HOST_GNU_TYPE)-objcopy -p --remove-section=.gnu.lto_.* ++ | xargs -n 1 objcopy -p --remove-section=.gnu.lto_.* + dh_strip -a -N$(p_dbg) -N$(p_ldbg) -Xdebug -Xdbg --dbg-package=$(p_dbg) + cp Tools/gdb/libpython.py $(d_dbg)/usr/lib/debug/usr/bin/$(PVER)-gdb.py + ln -sf $(PVER)-gdb.py $(d_dbg)/usr/lib/debug/usr/bin/$(PVER)-dbg-gdb.py
--- a/devtools/client/aboutdebugging/test/browser_service_workers.js +++ b/devtools/client/aboutdebugging/test/browser_service_workers.js @@ -8,17 +8,17 @@ const SERVICE_WORKER = URL_ROOT + "service-workers/empty-sw.js"; const TAB_URL = URL_ROOT + "service-workers/empty-sw.html"; add_task(function* () { yield enableServiceWorkerDebugging(); let { tab, document } = yield openAboutDebugging("workers"); - let swTab = yield addTab(TAB_URL); + let swTab = yield addTab(TAB_URL, { background: true }); let serviceWorkersElement = getServiceWorkerList(document); yield waitUntil(() => { // Check that the service worker appears in the UI let names = [...document.querySelectorAll("#service-workers .target-name")]; names = names.map(element => element.textContent); return names.includes(SERVICE_WORKER);
--- a/devtools/client/aboutdebugging/test/browser_service_workers_fetch_flag.js +++ b/devtools/client/aboutdebugging/test/browser_service_workers_fetch_flag.js @@ -7,17 +7,17 @@ // but http:// is ok with dom.serviceWorkers.testing.enabled turned on. const EMPTY_SW_TAB_URL = URL_ROOT + "service-workers/empty-sw.html"; const FETCH_SW_TAB_URL = URL_ROOT + "service-workers/fetch-sw.html"; function* testBody(url, expecting) { yield enableServiceWorkerDebugging(); let { tab, document } = yield openAboutDebugging("workers"); - let swTab = yield addTab(url); + let swTab = yield addTab(url, {background: true}); let serviceWorkersElement = getServiceWorkerList(document); info("Wait for fetch flag."); yield waitUntil(() => { let fetchFlags = [...document.querySelectorAll("#service-workers .service-worker-fetch-flag")]; fetchFlags = fetchFlags.map(element => element.textContent);
--- a/devtools/client/aboutdebugging/test/browser_service_workers_push.js +++ b/devtools/client/aboutdebugging/test/browser_service_workers_push.js @@ -17,17 +17,17 @@ const TAB_URL = URL_ROOT + "service-work add_task(function* () { yield enableServiceWorkerDebugging(); let { tab, document } = yield openAboutDebugging("workers"); // Listen for mutations in the service-workers list. let serviceWorkersElement = getServiceWorkerList(document); // Open a tab that registers a push service worker. - let swTab = yield addTab(TAB_URL); + let swTab = yield addTab(TAB_URL, { background: true }); info("Make the test page notify us when the service worker sends a message."); yield ContentTask.spawn(swTab.linkedBrowser, {}, function () { let win = content.wrappedJSObject; win.navigator.serviceWorker.addEventListener("message", function (event) { sendAsyncMessage(event.data); });
--- a/devtools/client/aboutdebugging/test/browser_service_workers_push_service.js +++ b/devtools/client/aboutdebugging/test/browser_service_workers_push_service.js @@ -53,17 +53,17 @@ add_task(function* () { }; let { tab, document } = yield openAboutDebugging("workers"); // Listen for mutations in the service-workers list. let serviceWorkersElement = document.getElementById("service-workers"); // Open a tab that registers a push service worker. - let swTab = yield addTab(TAB_URL); + let swTab = yield addTab(TAB_URL, { background: true }); info("Wait until the service worker appears in about:debugging"); yield waitUntilServiceWorkerContainer(SERVICE_WORKER, document); yield waitForServiceWorkerActivation(SERVICE_WORKER, document); // Wait for the service worker details to update. let names = [...document.querySelectorAll("#service-workers .target-name")];
--- a/devtools/client/aboutdebugging/test/browser_service_workers_start.js +++ b/devtools/client/aboutdebugging/test/browser_service_workers_start.js @@ -20,17 +20,17 @@ add_task(function* () { yield pushPref("dom.serviceWorkers.idle_extended_timeout", SW_TIMEOUT); let { tab, document } = yield openAboutDebugging("workers"); // Listen for mutations in the service-workers list. let serviceWorkersElement = getServiceWorkerList(document); // Open a tab that registers an empty service worker. - let swTab = yield addTab(TAB_URL); + let swTab = yield addTab(TAB_URL, { background: true }); // Wait for the service-workers list to update. info("Wait until the service worker appears in about:debugging"); yield waitUntilServiceWorkerContainer(SERVICE_WORKER, document); info("Ensure that the registration resolved before trying to interact with " + "the service worker."); yield waitForServiceWorkerRegistered(swTab);
--- a/devtools/client/aboutdebugging/test/browser_service_workers_status.js +++ b/devtools/client/aboutdebugging/test/browser_service_workers_status.js @@ -16,17 +16,17 @@ add_task(function* () { yield pushPref("dom.serviceWorkers.idle_timeout", SW_TIMEOUT); yield pushPref("dom.serviceWorkers.idle_extended_timeout", SW_TIMEOUT); let { tab, document } = yield openAboutDebugging("workers"); // Listen for mutations in the service-workers list. let serviceWorkersElement = getServiceWorkerList(document); - let swTab = yield addTab(TAB_URL); + let swTab = yield addTab(TAB_URL, { background: true }); info("Wait until the service worker appears in about:debugging"); let container = yield waitUntilServiceWorkerContainer(SERVICE_WORKER, document); // We should ideally check that the service worker registration goes through the // "registering" and "running" steps, but it is difficult to workaround race conditions // for a test running on a wide variety of platforms. Due to intermittent failures, we // simply check that the registration transitions to "stopped".
--- a/devtools/client/aboutdebugging/test/browser_service_workers_timeout.js +++ b/devtools/client/aboutdebugging/test/browser_service_workers_timeout.js @@ -15,17 +15,17 @@ add_task(function* () { yield enableServiceWorkerDebugging(); yield pushPref("dom.serviceWorkers.idle_timeout", SW_TIMEOUT); yield pushPref("dom.serviceWorkers.idle_extended_timeout", SW_TIMEOUT); let { tab, document } = yield openAboutDebugging("workers"); let serviceWorkersElement = getServiceWorkerList(document); - let swTab = yield addTab(TAB_URL); + let swTab = yield addTab(TAB_URL, { background: true }); info("Wait until the service worker appears in about:debugging"); yield waitUntilServiceWorkerContainer(SERVICE_WORKER, document); // Ensure that the registration resolved before trying to connect to the sw yield waitForServiceWorkerRegistered(swTab); ok(true, "Service worker registration resolved");
--- a/devtools/client/aboutdebugging/test/browser_service_workers_unregister.js +++ b/devtools/client/aboutdebugging/test/browser_service_workers_unregister.js @@ -15,17 +15,17 @@ const SERVICE_WORKER = SCOPE + "empty-sw const TAB_URL = SCOPE + "empty-sw.html"; add_task(function* () { yield enableServiceWorkerDebugging(); let { tab, document } = yield openAboutDebugging("workers"); // Open a tab that registers an empty service worker. - let swTab = yield addTab(TAB_URL); + let swTab = yield addTab(TAB_URL, { background: true }); info("Wait until the service worker appears in about:debugging"); yield waitUntilServiceWorkerContainer(SERVICE_WORKER, document); yield waitForServiceWorkerActivation(SERVICE_WORKER, document); info("Ensure that the registration resolved before trying to interact with " + "the service worker.");
--- a/dom/animation/test/mozilla/file_restyles.html +++ b/dom/animation/test/mozilla/file_restyles.html @@ -1138,16 +1138,108 @@ waitForAllPaints(() => { var markers = await observeStyling(5); is(markers.length, 0, 'CSS animation on an out-of-view element with pre-transform should be ' + 'throttled.'); await ensureElementRemoval(scrollDiv); }); + add_task( + async function throttling_animations_in_out_of_view_position_absolute_element() { + if (!offscreenThrottlingEnabled) { + return; + } + + var parentDiv = addDiv(null, + { style: 'position: absolute; top: -1000px;' }); + var targetDiv = addDiv(null, + { style: 'animation: background-color 100s;' }); + parentDiv.appendChild(targetDiv); + + var animation = targetDiv.getAnimations()[0]; + await animation.ready; + + var markers = await observeStyling(5); + is(markers.length, 0, + 'CSS animation in an out-of-view position absolute element should ' + + 'be throttled'); + + await ensureElementRemoval(parentDiv); + } + ); + + add_task( + async function throttling_animations_on_out_of_view_position_absolute_element() { + if (!offscreenThrottlingEnabled) { + return; + } + + var div = addDiv(null, + { style: 'animation: background-color 100s; ' + + 'position: absolute; top: -1000px;' }); + + var animation = div.getAnimations()[0]; + await animation.ready; + + var markers = await observeStyling(5); + is(markers.length, 0, + 'CSS animation on an out-of-view position absolute element should ' + + 'be throttled'); + + await ensureElementRemoval(div); + } + ); + + add_task( + async function throttling_animations_in_out_of_view_position_fixed_element() { + if (!offscreenThrottlingEnabled) { + return; + } + + var parentDiv = addDiv(null, + { style: 'position: fixed; top: -1000px;' }); + var targetDiv = addDiv(null, + { style: 'animation: background-color 100s;' }); + parentDiv.appendChild(targetDiv); + + var animation = targetDiv.getAnimations()[0]; + await animation.ready; + + var markers = await observeStyling(5); + is(markers.length, 0, + 'CSS animation on an out-of-view position:fixed element should be ' + + 'throttled'); + + await ensureElementRemoval(parentDiv); + } + ); + + add_task( + async function throttling_animations_on_out_of_view_position_fixed_element() { + if (!offscreenThrottlingEnabled) { + return; + } + + var div = addDiv(null, + { style: 'animation: background-color 100s; ' + + 'position: fixed; top: -1000px;' }); + + var animation = div.getAnimations()[0]; + await animation.ready; + + var markers = await observeStyling(5); + is(markers.length, 0, + 'CSS animation on an out-of-view position:fixed element should be ' + + 'throttled'); + + await ensureElementRemoval(div); + } + ); + add_task_if_omta_enabled( async function no_restyling_for_compositor_animation_on_unrelated_style_change() { var div = addDiv(null); var animation = div.animate({ opacity: [0, 1] }, 100 * MS_PER_SEC); await animation.ready; ok(SpecialPowers.wrap(animation).isRunningOnCompositor, 'The opacity animation is running on the compositor');
--- a/dom/base/nsGkAtomList.h +++ b/dom/base/nsGkAtomList.h @@ -2245,17 +2245,17 @@ GK_ATOM(mozfixed, "-moz-fixed") GK_ATOM(Remote, "remote") GK_ATOM(RemoteId, "_remote_id") GK_ATOM(RemoteType, "remoteType") GK_ATOM(DisplayPort, "_displayport") GK_ATOM(DisplayPortMargins, "_displayportmargins") GK_ATOM(DisplayPortBase, "_displayportbase") GK_ATOM(AsyncScrollLayerCreationFailed, "_asyncscrolllayercreationfailed") GK_ATOM(forcemessagemanager, "forcemessagemanager") -GK_ATOM(isPreloadBrowser, "isPreloadBrowser") +GK_ATOM(preloadedState, "preloadedState") // Names for system metrics GK_ATOM(scrollbar_start_backward, "scrollbar-start-backward") GK_ATOM(scrollbar_start_forward, "scrollbar-start-forward") GK_ATOM(scrollbar_end_backward, "scrollbar-end-backward") GK_ATOM(scrollbar_end_forward, "scrollbar-end-forward") GK_ATOM(scrollbar_thumb_proportional, "scrollbar-thumb-proportional") GK_ATOM(overlay_scrollbars, "overlay-scrollbars")
--- a/dom/base/test/browser_aboutnewtab_process_selection.js +++ b/dom/base/test/browser_aboutnewtab_process_selection.js @@ -1,9 +1,11 @@ const TEST_URL = "http://www.example.com/browser/dom/base/test/dummy.html"; +const PRELOADED_STATE = "preloaded"; +const CONSUMED_STATE = "consumed"; var ppmm = Services.ppmm; add_task(async function(){ // We want to count processes in this test, so let's disable the pre-allocated process manager. await SpecialPowers.pushPrefEnv({"set": [ ["dom.ipc.processPrelaunch.enabled", false], ["dom.ipc.processCount", 10], @@ -72,8 +74,35 @@ add_task(async function(){ // Make sure the preload browser does not keep any of the new processes alive. gBrowser.removePreloadedBrowser(); // Since we kept alive all the processes, we can shut down the ones that do // not host any tabs reliably. ppmm.releaseCachedProcesses(); }); + +add_task(async function preloaded_state_attribute() { + // Wait for a preloaded browser to exist, use it, and then create another one + await ensurePreloaded(gBrowser); + let preloadedTabState = gBrowser._preloadedBrowser.getAttribute("preloadedState"); + is(preloadedTabState, PRELOADED_STATE, "Sanity check that the first preloaded browser has the correct attribute"); + + BrowserOpenTab(); + await ensurePreloaded(gBrowser); + + // Now check that the tabs have the correct browser attributes set + let consumedTabState = gBrowser.selectedBrowser.getAttribute("preloadedState"); + is(consumedTabState, CONSUMED_STATE, "The opened tab consumed the preloaded browser and updated the attribute"); + + preloadedTabState = gBrowser._preloadedBrowser.getAttribute("preloadedState"); + is(preloadedTabState, PRELOADED_STATE, "The preloaded browser has the correct attribute"); + + // Navigate away and check that the attribute has been removed altogether + gBrowser.selectedBrowser.loadURI(TEST_URL); + let navigatedTabHasState = gBrowser.selectedBrowser.hasAttribute("preloadedState"); + ok(!navigatedTabHasState, "Correctly removed the preloadState attribute when navigating away"); + + // Remove tabs and preloaded browsers + await BrowserTestUtils.removeTab(gBrowser.selectedTab); + gBrowser.removePreloadedBrowser(); +}); +
--- a/dom/ipc/ContentParent.cpp +++ b/dom/ipc/ContentParent.cpp @@ -1131,19 +1131,19 @@ ContentParent::CreateBrowser(const TabCo nsIDocShell* docShell = GetOpenerDocShellHelper(aFrameElement); TabId openerTabId; if (docShell) { openerTabId = TabParent::GetTabIdFrom(docShell); } bool isPreloadBrowser = false; nsAutoString isPreloadBrowserStr; - if (aFrameElement->GetAttr(kNameSpaceID_None, nsGkAtoms::isPreloadBrowser, + if (aFrameElement->GetAttr(kNameSpaceID_None, nsGkAtoms::preloadedState, isPreloadBrowserStr)) { - isPreloadBrowser = isPreloadBrowserStr.EqualsLiteral("true"); + isPreloadBrowser = isPreloadBrowserStr.EqualsLiteral("preloaded"); } RefPtr<nsIContentParent> constructorSender; if (isInContentProcess) { MOZ_ASSERT(aContext.IsMozBrowserElement() || aContext.IsJSPlugin()); constructorSender = CreateContentBridgeParent(aContext, initialPriority, openerTabId, tabId); } else {
--- a/dom/media/MediaCache.cpp +++ b/dom/media/MediaCache.cpp @@ -719,26 +719,28 @@ MediaCache::Flush() }); sThread->Dispatch(r.forget()); } void MediaCache::CloseStreamsForPrivateBrowsing() { MOZ_ASSERT(NS_IsMainThread()); - sThread->Dispatch( - NS_NewRunnableFunction("MediaCache::CloseStreamsForPrivateBrowsing", - [self = RefPtr<MediaCache>(this)]() { - AutoLock lock(self->mMonitor); - for (MediaCacheStream* s : self->mStreams) { - if (s->mIsPrivateBrowsing) { - s->CloseInternal(lock); - } - } - })); + sThread->Dispatch(NS_NewRunnableFunction( + "MediaCache::CloseStreamsForPrivateBrowsing", + [self = RefPtr<MediaCache>(this)]() { + AutoLock lock(self->mMonitor); + // Copy mStreams since CloseInternal() will change the array. + nsTArray<MediaCacheStream*> streams(self->mStreams); + for (MediaCacheStream* s : streams) { + if (s->mIsPrivateBrowsing) { + s->CloseInternal(lock); + } + } + })); } /* static */ RefPtr<MediaCache> MediaCache::GetMediaCache(int64_t aContentLength) { NS_ASSERTION(NS_IsMainThread(), "Only call on main thread"); if (!sThreadInit) {
--- a/gfx/vr/gfxVROculus.cpp +++ b/gfx/vr/gfxVROculus.cpp @@ -385,24 +385,24 @@ VROculusSession::Refresh(bool aForceRefr // traversal. bInvisible = false; // While we are waiting for either the timeout or a new presentation, // fill the HMD with black / no layers. if (mSession && mTextureSet) { if (!aForceRefresh) { // VROculusSession didn't start submitting frames yet. - if (!mSubmitThread) { + // Or, the VR thread has been shut down already. + if (!mSubmitThread || !mSubmitThread->IsActive()) { return; } // ovr_SubmitFrame is running at VR Submit thread, // so we post this task to VR Submit thread and let it paint // a black frame. mDrawBlack = true; - MOZ_ASSERT(mSubmitThread->IsActive()); mSubmitThread->PostTask(NewRunnableMethod<bool>( "gfx::VROculusSession::Refresh", this, &VROculusSession::Refresh, true)); return; } ovrLayerEyeFov layer; memset(&layer, 0, sizeof(layer));
--- a/layout/generic/nsBlockFrame.cpp +++ b/layout/generic/nsBlockFrame.cpp @@ -447,26 +447,16 @@ nsBlockFrame::List(FILE* out, const char nsresult nsBlockFrame::GetFrameName(nsAString& aResult) const { return MakeFrameName(NS_LITERAL_STRING("Block"), aResult); } #endif -#ifdef DEBUG -nsFrameState -nsBlockFrame::GetDebugStateBits() const -{ - // We don't want to include our cursor flag in the bits the - // regression tester looks at - return nsContainerFrame::GetDebugStateBits() & ~NS_BLOCK_HAS_LINE_CURSOR; -} -#endif - void nsBlockFrame::InvalidateFrame(uint32_t aDisplayItemKey) { if (nsSVGUtils::IsInSVGTextSubtree(this)) { NS_ASSERTION(GetParent()->IsSVGTextFrame(), "unexpected block frame in SVG text"); GetParent()->InvalidateFrame(); return;
--- a/layout/generic/nsBlockFrame.h +++ b/layout/generic/nsBlockFrame.h @@ -152,17 +152,16 @@ public: void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) override; #ifdef DEBUG_FRAME_DUMP void List(FILE* out = stderr, const char* aPrefix = "", uint32_t aFlags = 0) const override; nsresult GetFrameName(nsAString& aResult) const override; #endif #ifdef DEBUG - nsFrameState GetDebugStateBits() const override; const char* LineReflowStatusToString(LineReflowStatus aLineReflowStatus) const; #endif #ifdef ACCESSIBILITY mozilla::a11y::AccType AccessibleType() override; #endif // Line cursor methods to speed up line searching in which one query
--- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -7806,65 +7806,16 @@ nsIFrame::RootFrameList(nsPresContext* a nsIFrame* frame = shell->FrameManager()->GetRootFrame(); if(frame) { frame->List(out, aPrefix); } } } #endif -#ifdef DEBUG -nsFrameState -nsFrame::GetDebugStateBits() const -{ - // We'll ignore these flags for the purposes of comparing frame state: - // - // NS_FRAME_EXTERNAL_REFERENCE - // because this is set by the event state manager or the - // caret code when a frame is focused. Depending on whether - // or not the regression tests are run as the focused window - // will make this value vary randomly. -#define IRRELEVANT_FRAME_STATE_FLAGS NS_FRAME_EXTERNAL_REFERENCE - -#define FRAME_STATE_MASK (~(IRRELEVANT_FRAME_STATE_FLAGS)) - - return GetStateBits() & FRAME_STATE_MASK; -} - -void -nsFrame::XMLQuote(nsString& aString) -{ - int32_t i, len = aString.Length(); - for (i = 0; i < len; i++) { - char16_t ch = aString.CharAt(i); - if (ch == '<') { - nsAutoString tmp(NS_LITERAL_STRING("<")); - aString.Cut(i, 1); - aString.Insert(tmp, i); - len += 3; - i += 3; - } - else if (ch == '>') { - nsAutoString tmp(NS_LITERAL_STRING(">")); - aString.Cut(i, 1); - aString.Insert(tmp, i); - len += 3; - i += 3; - } - else if (ch == '\"') { - nsAutoString tmp(NS_LITERAL_STRING(""")); - aString.Cut(i, 1); - aString.Insert(tmp, i); - len += 5; - i += 5; - } - } -} -#endif - bool nsIFrame::IsVisibleForPainting(nsDisplayListBuilder* aBuilder) { if (!StyleVisibility()->IsVisible()) return false; nsISelection* sel = aBuilder->GetBoundingSelection(); return !sel || IsVisibleInSelection(sel); } @@ -11011,16 +10962,17 @@ nsIFrame::GetPseudoElement(CSSPseudoElem static bool IsFrameScrolledOutOfView(nsIFrame* aTarget, const nsRect& aTargetRect, nsIFrame* aParent) { nsIScrollableFrame* scrollableFrame = nsLayoutUtils::GetNearestScrollableFrame(aParent, nsLayoutUtils::SCROLLABLE_SAME_DOC | + nsLayoutUtils::SCROLLABLE_FIXEDPOS_FINDS_ROOT | nsLayoutUtils::SCROLLABLE_INCLUDE_HIDDEN); if (!scrollableFrame) { return false; } nsIFrame *scrollableParent = do_QueryFrame(scrollableFrame); nsRect transformedRect =
--- a/layout/generic/nsFrame.h +++ b/layout/generic/nsFrame.h @@ -489,18 +489,16 @@ public: void Trace(const char* aMethod, bool aEnter); void Trace(const char* aMethod, bool aEnter, const nsReflowStatus& aStatus); void TraceMsg(const char* fmt, ...) MOZ_FORMAT_PRINTF(2, 3); // Helper function that verifies that each frame in the list has the // NS_FRAME_IS_DIRTY bit set static void VerifyDirtyBitSet(const nsFrameList& aFrameList); - static void XMLQuote(nsString& aString); - // Display Reflow Debugging static void* DisplayReflowEnter(nsPresContext* aPresContext, nsIFrame* aFrame, const ReflowInput& aReflowInput); static void* DisplayLayoutEnter(nsIFrame* aFrame); static void* DisplayIntrinsicISizeEnter(nsIFrame* aFrame, const char* aType); static void* DisplayIntrinsicSizeEnter(nsIFrame* aFrame, @@ -723,21 +721,16 @@ public: // Helper function to return the index in parent of the frame's content // object. Returns -1 on error or if the frame doesn't have a content object static int32_t ContentIndexInContainer(const nsIFrame* aFrame); #endif #ifdef DEBUG public: /** - * Return the state bits that are relevant to regression tests (that - * is, those bits which indicate a real difference when they differ - */ - nsFrameState GetDebugStateBits() const override; - /** * See if style tree verification is enabled. To enable style tree * verification add "styleverifytree:1" to your MOZ_LOG * environment variable (any non-zero debug level will work). Or, * call SetVerifyStyleTreeEnable with true. */ static bool GetVerifyStyleTreeEnable(); /**
--- a/layout/generic/nsIFrame.h +++ b/layout/generic/nsIFrame.h @@ -4545,21 +4545,16 @@ public: */ static void RootFrameList(nsPresContext* aPresContext, FILE* out = stderr, const char* aPrefix = ""); virtual void DumpFrameTree() const; void DumpFrameTreeLimited() const; virtual nsresult GetFrameName(nsAString& aResult) const = 0; #endif - -#ifdef DEBUG -public: - virtual nsFrameState GetDebugStateBits() const = 0; -#endif }; //---------------------------------------------------------------------- /** * AutoWeakFrame can be used to keep a reference to a nsIFrame in a safe way. * Whenever an nsIFrame object is deleted, the AutoWeakFrames pointing * to it will be cleared. AutoWeakFrame is for variables on the stack or
--- a/layout/generic/nsTextFrame.cpp +++ b/layout/generic/nsTextFrame.cpp @@ -10256,26 +10256,16 @@ nsTextFrame::List(FILE* out, const char* if (IsSelected()) { str += " SELECTED"; } fprintf_stderr(out, "%s\n", str.get()); } #endif -#ifdef DEBUG -nsFrameState -nsTextFrame::GetDebugStateBits() const -{ - // mask out our emptystate flags; those are just caches - return nsFrame::GetDebugStateBits() & - ~(TEXT_WHITESPACE_FLAGS | TEXT_REFLOW_FLAGS); -} -#endif - void nsTextFrame::AdjustOffsetsForBidi(int32_t aStart, int32_t aEnd) { AddStateBits(NS_FRAME_IS_BIDI); if (mContent->HasFlag(NS_HAS_FLOWLENGTH_PROPERTY)) { mContent->DeleteProperty(nsGkAtoms::flowlength); mContent->UnsetFlags(NS_HAS_FLOWLENGTH_PROPERTY); }
--- a/layout/generic/nsTextFrame.h +++ b/layout/generic/nsTextFrame.h @@ -167,20 +167,16 @@ public: #ifdef DEBUG_FRAME_DUMP void List(FILE* out = stderr, const char* aPrefix = "", uint32_t aFlags = 0) const override; nsresult GetFrameName(nsAString& aResult) const override; void ToCString(nsCString& aBuf, int32_t* aTotalContentLength) const; #endif -#ifdef DEBUG - nsFrameState GetDebugStateBits() const override; -#endif - ContentOffsets CalcContentOffsetsFromFramePoint(const nsPoint& aPoint) override; ContentOffsets GetCharacterOffsetAtFramePoint(const nsPoint& aPoint); /** * This is called only on the primary text frame. It indicates that * the selection state of the given character range has changed. * Text in the range is unconditionally invalidated * (Selection::Repaint depends on this).
--- a/layout/moz.build +++ b/layout/moz.build @@ -32,12 +32,12 @@ if CONFIG['NS_PRINTING']: DIRS += ['printing'] TEST_DIRS += [ 'tools/reftest', ] DIRS += ['build', 'media'] -if CONFIG['MOZ_DEBUG']: +if CONFIG['MOZ_DEBUG'] and CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android': TEST_DIRS += ['tools/layout-debug'] CRASHTEST_MANIFESTS += ['../testing/crashtest/crashtests.list']
--- a/layout/style/ServoBindings.cpp +++ b/layout/style/ServoBindings.cpp @@ -1797,44 +1797,43 @@ Gecko_EnsureImageLayersLength(nsStyleIma aLayers->mLayers.EnsureLengthAtLeast(aLen); for (size_t i = oldLength; i < aLen; ++i) { aLayers->mLayers[i].Initialize(aLayerType); } } +template <typename StyleType> +static void +EnsureStyleAutoArrayLength(StyleType* aArray, size_t aLen) +{ + size_t oldLength = aArray->Length(); + + aArray->EnsureLengthAtLeast(aLen); + + for (size_t i = oldLength; i < aLen; ++i) { + (*aArray)[i].SetInitialValues(); + } +} + void Gecko_EnsureStyleAnimationArrayLength(void* aArray, size_t aLen) { auto base = static_cast<nsStyleAutoArray<StyleAnimation>*>(aArray); - - size_t oldLength = base->Length(); - - base->EnsureLengthAtLeast(aLen); - - for (size_t i = oldLength; i < aLen; ++i) { - (*base)[i].SetInitialValues(); - } + EnsureStyleAutoArrayLength(base, aLen); } void Gecko_EnsureStyleTransitionArrayLength(void* aArray, size_t aLen) { auto base = reinterpret_cast<nsStyleAutoArray<StyleTransition>*>(aArray); - - size_t oldLength = base->Length(); - - base->EnsureLengthAtLeast(aLen); - - for (size_t i = oldLength; i < aLen; ++i) { - (*base)[i].SetInitialValues(); - } + EnsureStyleAutoArrayLength(base, aLen); } void Gecko_ClearWillChange(nsStyleDisplay* aDisplay, size_t aLength) { aDisplay->mWillChange.Clear(); aDisplay->mWillChange.SetCapacity(aLength); }
--- a/layout/style/nsAnimationManager.cpp +++ b/layout/style/nsAnimationManager.cpp @@ -417,24 +417,24 @@ class MOZ_STACK_CLASS ServoCSSAnimationB public: explicit ServoCSSAnimationBuilder(const ServoStyleContext* aStyleContext) : mStyleContext(aStyleContext) { MOZ_ASSERT(aStyleContext); } bool BuildKeyframes(nsPresContext* aPresContext, - const StyleAnimation& aSrc, + nsAtom* aName, + const nsTimingFunction& aTimingFunction, nsTArray<Keyframe>& aKeyframes) { ServoStyleSet* styleSet = aPresContext->StyleSet()->AsServo(); MOZ_ASSERT(styleSet); - const nsTimingFunction& timingFunction = aSrc.GetTimingFunction(); - return styleSet->GetKeyframesForName(aSrc.GetName(), - timingFunction, + return styleSet->GetKeyframesForName(aName, + aTimingFunction, aKeyframes); } void SetKeyframes(KeyframeEffectReadOnly& aEffect, nsTArray<Keyframe>&& aKeyframes) { aEffect.SetKeyframes(Move(aKeyframes), mStyleContext); } @@ -488,29 +488,30 @@ public: : mStyleContext(aStyleContext) , mTarget(aTarget) { MOZ_ASSERT(aStyleContext); MOZ_ASSERT(aTarget.mElement); } bool BuildKeyframes(nsPresContext* aPresContext, - const StyleAnimation& aSrc, + nsAtom* aName, + const nsTimingFunction& aTimingFunction, nsTArray<Keyframe>& aKeyframs); void SetKeyframes(KeyframeEffectReadOnly& aEffect, nsTArray<Keyframe>&& aKeyframes) { aEffect.SetKeyframes(Move(aKeyframes), mStyleContext); } void NotifyNewOrRemovedAnimation(const Animation&) {} private: nsTArray<Keyframe> BuildAnimationFrames(nsPresContext* aPresContext, - const StyleAnimation& aSrc, + const nsTimingFunction& aTimingFunction, const nsCSSKeyframesRule* aRule); Maybe<ComputedTimingFunction> GetKeyframeTimingFunction( nsPresContext* aPresContext, nsCSSKeyframeRule* aKeyframeRule, const Maybe<ComputedTimingFunction>& aInheritedTimingFunction); nsTArray<PropertyValuePair> GetKeyframePropertyValues( nsPresContext* aPresContext, nsCSSKeyframeRule* aKeyframeRule, @@ -584,40 +585,47 @@ UpdateOldAnimationPropertiesWithNew( // Returns a new animation set up with given StyleAnimation. // Or returns an existing animation matching StyleAnimation's name updated // with the new StyleAnimation. template<class BuilderType> static already_AddRefed<CSSAnimation> BuildAnimation(nsPresContext* aPresContext, const NonOwningAnimationTarget& aTarget, - const StyleAnimation& aSrc, + const nsStyleDisplay& aStyleDisplay, + uint32_t animIdx, BuilderType& aBuilder, nsAnimationManager::CSSAnimationCollection* aCollection) { MOZ_ASSERT(aPresContext); + nsAtom* animationName = aStyleDisplay.GetAnimationName(animIdx); nsTArray<Keyframe> keyframes; - if (!aBuilder.BuildKeyframes(aPresContext, aSrc, keyframes)) { + if (!aBuilder.BuildKeyframes(aPresContext, + animationName, + aStyleDisplay.GetAnimationTimingFunction(animIdx), + keyframes)) { return nullptr; } - TimingParams timing = TimingParamsFromCSSParams(aSrc.GetDuration(), - aSrc.GetDelay(), - aSrc.GetIterationCount(), - aSrc.GetDirection(), - aSrc.GetFillMode()); + TimingParams timing = + TimingParamsFromCSSParams(aStyleDisplay.GetAnimationDuration(animIdx), + aStyleDisplay.GetAnimationDelay(animIdx), + aStyleDisplay.GetAnimationIterationCount(animIdx), + aStyleDisplay.GetAnimationDirection(animIdx), + aStyleDisplay.GetAnimationFillMode(animIdx)); bool isStylePaused = - aSrc.GetPlayState() == NS_STYLE_ANIMATION_PLAY_STATE_PAUSED; + aStyleDisplay.GetAnimationPlayState(animIdx) == + NS_STYLE_ANIMATION_PLAY_STATE_PAUSED; // Find the matching animation with animation name in the old list // of animations and remove the matched animation from the list. RefPtr<CSSAnimation> oldAnim = - PopExistingAnimation(aSrc.GetName(), aCollection); + PopExistingAnimation(animationName, aCollection); if (oldAnim) { // Copy over the start times and (if still paused) pause starts // for each animation (matching on name only) that was also in the // old list of animations. // This means that we honor dynamic changes, which isn't what the // spec says to do, but WebKit seems to honor at least some of // them. See @@ -637,18 +645,17 @@ BuildAnimation(nsPresContext* aPresConte KeyframeEffectParams effectOptions; RefPtr<KeyframeEffectReadOnly> effect = new KeyframeEffectReadOnly(aPresContext->Document(), target, timing, effectOptions); aBuilder.SetKeyframes(*effect, Move(keyframes)); RefPtr<CSSAnimation> animation = - new CSSAnimation(aPresContext->Document()->GetScopeObject(), - aSrc.GetName()); + new CSSAnimation(aPresContext->Document()->GetScopeObject(), animationName); animation->SetOwningElement( OwningElementRef(*aTarget.mElement, aTarget.mPseudoType)); animation->SetTimelineNoUpdate(aTarget.mElement->OwnerDoc()->Timeline()); animation->SetEffectNoUpdate(effect); if (isStylePaused) { animation->PauseFromStyle(); @@ -658,37 +665,39 @@ BuildAnimation(nsPresContext* aPresConte aBuilder.NotifyNewOrRemovedAnimation(*animation); return animation.forget(); } bool GeckoCSSAnimationBuilder::BuildKeyframes(nsPresContext* aPresContext, - const StyleAnimation& aSrc, + nsAtom* aName, + const nsTimingFunction& aTimingFunction, nsTArray<Keyframe>& aKeyframes) { MOZ_ASSERT(aPresContext); MOZ_ASSERT(aPresContext->StyleSet()->IsGecko()); nsCSSKeyframesRule* rule = - aPresContext->StyleSet()->AsGecko()->KeyframesRuleForName(aSrc.GetName()); + aPresContext->StyleSet()->AsGecko()->KeyframesRuleForName(aName); if (!rule) { return false; } - aKeyframes = BuildAnimationFrames(aPresContext, aSrc, rule); + aKeyframes = BuildAnimationFrames(aPresContext, aTimingFunction, rule); return true; } nsTArray<Keyframe> -GeckoCSSAnimationBuilder::BuildAnimationFrames(nsPresContext* aPresContext, - const StyleAnimation& aSrc, - const nsCSSKeyframesRule* aRule) +GeckoCSSAnimationBuilder::BuildAnimationFrames( + nsPresContext* aPresContext, + const nsTimingFunction& aTimingFunction, + const nsCSSKeyframesRule* aRule) { // Ideally we'd like to build up a set of Keyframe objects that more-or-less // reflect the keyframes as-specified in the @keyframes rule(s) so that // authors get something intuitive when they call anim.effect.getKeyframes(). // // That, however, proves to be difficult because the way CSS declarations are // processed differs from how we are able to represent keyframes as // JavaScript objects in the Web Animations API. @@ -728,17 +737,17 @@ GeckoCSSAnimationBuilder::BuildAnimation // for that matter) we resolve values on @keyframes down to computed values // (thereby expanding shorthands and variable references) and then pick up the // last value for each longhand property at each offset. // FIXME: There is a pending spec change to make multiple @keyframes // rules with the same name cascade but we don't support that yet. Maybe<ComputedTimingFunction> inheritedTimingFunction = - ConvertTimingFunction(aSrc.GetTimingFunction()); + ConvertTimingFunction(aTimingFunction); // First, make up Keyframe objects for each rule nsTArray<Keyframe> keyframes; nsCSSPropertyIDSet animatedProperties; for (auto ruleIdx = 0, ruleEnd = aRule->StyleRuleCount(); ruleIdx != ruleEnd; ++ruleIdx) { css::Rule* cssRule = aRule->GetStyleRuleAt(ruleIdx); @@ -1004,38 +1013,36 @@ GeckoCSSAnimationBuilder::FillInMissingK } } } template<class BuilderType> static nsAnimationManager::OwningCSSAnimationPtrArray BuildAnimations(nsPresContext* aPresContext, const NonOwningAnimationTarget& aTarget, - const nsStyleAutoArray<StyleAnimation>& aStyleAnimations, - uint32_t aStyleAnimationNameCount, + const nsStyleDisplay& aStyleDisplay, BuilderType& aBuilder, nsAnimationManager::CSSAnimationCollection* aCollection) { nsAnimationManager::OwningCSSAnimationPtrArray result; - for (size_t animIdx = aStyleAnimationNameCount; animIdx-- != 0;) { - const StyleAnimation& src = aStyleAnimations[animIdx]; - + for (size_t animIdx = aStyleDisplay.mAnimationNameCount; animIdx-- != 0;) { // CSS Animations whose animation-name does not match a @keyframes rule do // not generate animation events. This includes when the animation-name is // "none" which is represented by an empty name in the StyleAnimation. // Since such animations neither affect style nor dispatch events, we do // not generate a corresponding CSSAnimation for them. - if (src.GetName() == nsGkAtoms::_empty) { + if (aStyleDisplay.GetAnimationName(animIdx) == nsGkAtoms::_empty) { continue; } RefPtr<CSSAnimation> dest = BuildAnimation(aPresContext, aTarget, - src, + aStyleDisplay, + animIdx, aBuilder, aCollection); if (!dest) { continue; } dest->SetAnimationIndex(static_cast<uint64_t>(animIdx)); result.AppendElement(dest); @@ -1121,18 +1128,17 @@ nsAnimationManager::DoUpdateAnimations( nsAutoAnimationMutationBatch mb(aTarget.mElement->OwnerDoc()); // Build the updated animations list, extracting matching animations from // the existing collection as we go. OwningCSSAnimationPtrArray newAnimations; newAnimations = BuildAnimations(mPresContext, aTarget, - aStyleDisplay.mAnimations, - aStyleDisplay.mAnimationNameCount, + aStyleDisplay, aBuilder, collection); if (newAnimations.IsEmpty()) { if (collection) { collection->Destroy(); } return;
--- a/layout/style/nsStyleStruct.h +++ b/layout/style/nsStyleStruct.h @@ -2255,21 +2255,16 @@ struct StyleTransition // Delay and Duration are in milliseconds const nsTimingFunction& GetTimingFunction() const { return mTimingFunction; } float GetDelay() const { return mDelay; } float GetDuration() const { return mDuration; } nsCSSPropertyID GetProperty() const { return mProperty; } nsAtom* GetUnknownProperty() const { return mUnknownProperty; } - float GetCombinedDuration() const { - // http://dev.w3.org/csswg/css-transitions/#combined-duration - return std::max(mDuration, 0.0f) + mDelay; - } - void SetTimingFunction(const nsTimingFunction& aTimingFunction) { mTimingFunction = aTimingFunction; } void SetDelay(float aDelay) { mDelay = aDelay; } void SetDuration(float aDuration) { mDuration = aDuration; } void SetProperty(nsCSSPropertyID aProperty) { NS_ASSERTION(aProperty != eCSSProperty_UNKNOWN && aProperty != eCSSPropertyExtra_variable, @@ -2605,29 +2600,86 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsSt // The number of elements in mTransitions that are not from repeating // a list due to another property being longer. uint32_t mTransitionTimingFunctionCount, mTransitionDurationCount, mTransitionDelayCount, mTransitionPropertyCount; + nsCSSPropertyID GetTransitionProperty(uint32_t aIndex) const + { + return mTransitions[aIndex % mTransitionPropertyCount].GetProperty(); + } + float GetTransitionDelay(uint32_t aIndex) const + { + return mTransitions[aIndex % mTransitionDelayCount].GetDelay(); + } + float GetTransitionDuration(uint32_t aIndex) const + { + return mTransitions[aIndex % mTransitionDurationCount].GetDuration(); + } + const nsTimingFunction& GetTransitionTimingFunction(uint32_t aIndex) const + { + return mTransitions[aIndex % mTransitionTimingFunctionCount].GetTimingFunction(); + } + float GetTransitionCombinedDuration(uint32_t aIndex) const + { + // https://drafts.csswg.org/css-transitions/#transition-combined-duration + return + std::max(mTransitions[aIndex % mTransitionDurationCount].GetDuration(), + 0.0f) + + mTransitions[aIndex % mTransitionDelayCount].GetDelay(); + } + nsStyleAutoArray<mozilla::StyleAnimation> mAnimations; // [reset] // The number of elements in mAnimations that are not from repeating // a list due to another property being longer. uint32_t mAnimationTimingFunctionCount, mAnimationDurationCount, mAnimationDelayCount, mAnimationNameCount, mAnimationDirectionCount, mAnimationFillModeCount, mAnimationPlayStateCount, mAnimationIterationCountCount; + nsAtom* GetAnimationName(uint32_t aIndex) const + { + return mAnimations[aIndex % mAnimationNameCount].GetName(); + } + float GetAnimationDelay(uint32_t aIndex) const + { + return mAnimations[aIndex % mAnimationDelayCount].GetDelay(); + } + float GetAnimationDuration(uint32_t aIndex) const + { + return mAnimations[aIndex % mAnimationDurationCount].GetDuration(); + } + mozilla::dom::PlaybackDirection GetAnimationDirection(uint32_t aIndex) const + { + return mAnimations[aIndex % mAnimationDirectionCount].GetDirection(); + } + mozilla::dom::FillMode GetAnimationFillMode(uint32_t aIndex) const + { + return mAnimations[aIndex % mAnimationFillModeCount].GetFillMode(); + } + uint8_t GetAnimationPlayState(uint32_t aIndex) const + { + return mAnimations[aIndex % mAnimationPlayStateCount].GetPlayState(); + } + float GetAnimationIterationCount(uint32_t aIndex) const + { + return mAnimations[aIndex % mAnimationIterationCountCount].GetIterationCount(); + } + const nsTimingFunction& GetAnimationTimingFunction(uint32_t aIndex) const + { + return mAnimations[aIndex % mAnimationTimingFunctionCount].GetTimingFunction(); + } // The threshold used for extracting a shape from shape-outside: <image>. float mShapeImageThreshold = 0.0f; // [reset] mozilla::StyleShapeSource mShapeOutside; // [reset] bool IsBlockInsideStyle() const { return mozilla::StyleDisplay::Block == mDisplay ||
--- a/layout/style/nsTransitionManager.cpp +++ b/layout/style/nsTransitionManager.cpp @@ -517,17 +517,17 @@ nsTransitionManager::StyleContextChanged } // NOTE: Things in this function (and ConsiderInitiatingTransition) // should never call PeekStyleData because we don't preserve gotten // structs across reframes. // Return sooner (before the startedAny check below) for the most // common case: no transitions specified or running. - const nsStyleDisplay *disp = newStyleContext->StyleDisplay(); + const nsStyleDisplay* disp = newStyleContext->StyleDisplay(); CSSPseudoElementType pseudoType = newStyleContext->GetPseudoType(); if (pseudoType != CSSPseudoElementType::NotPseudo) { if (pseudoType != CSSPseudoElementType::before && pseudoType != CSSPseudoElementType::after) { return; } NS_ASSERTION((pseudoType == CSSPseudoElementType::before && @@ -540,17 +540,17 @@ nsTransitionManager::StyleContextChanged // :before or :after is attached to. aElement = aElement->GetParent()->AsElement(); } CSSTransitionCollection* collection = CSSTransitionCollection::GetAnimationCollection(aElement, pseudoType); if (!collection && disp->mTransitionPropertyCount == 1 && - disp->mTransitions[0].GetCombinedDuration() <= 0.0f) { + disp->GetTransitionCombinedDuration(0) <= 0.0f) { return; } MOZ_ASSERT(mPresContext->RestyleManager()->IsGecko(), "ServoRestyleManager should not use nsTransitionManager " "for transitions"); if (collection && collection->mCheckGeneration == @@ -593,17 +593,17 @@ nsTransitionManager::StyleContextChanged } nsAutoAnimationMutationBatch mb(aElement->OwnerDoc()); DebugOnly<bool> startedAny = false; // We don't have to update transitions if display:none, although we will // cancel them after restyling. if (!afterChangeStyle->IsInDisplayNoneSubtree()) { - startedAny = DoUpdateTransitions(disp, + startedAny = DoUpdateTransitions(*disp, aElement, afterChangeStyle->GetPseudoType(), collection, aOldStyleContext->AsGecko(), afterChangeStyle->AsGecko()); } MOZ_ASSERT(!startedAny || collection, @@ -642,79 +642,77 @@ nsTransitionManager::UpdateTransitions( { if (!mPresContext->IsDynamic()) { // For print or print preview, ignore transitions. return false; } CSSTransitionCollection* collection = CSSTransitionCollection::GetAnimationCollection(aElement, aPseudoType); - const nsStyleDisplay *disp = + const nsStyleDisplay* disp = aNewStyle->ComputedData()->GetStyleDisplay(); - return DoUpdateTransitions(disp, + return DoUpdateTransitions(*disp, aElement, aPseudoType, collection, aOldStyle, aNewStyle); } template<typename StyleType> bool nsTransitionManager::DoUpdateTransitions( - const nsStyleDisplay* aDisp, + const nsStyleDisplay& aDisp, dom::Element* aElement, CSSPseudoElementType aPseudoType, CSSTransitionCollection*& aElementTransitions, StyleType aOldStyle, StyleType aNewStyle) { - MOZ_ASSERT(aDisp, "Null nsStyleDisplay"); MOZ_ASSERT(!aElementTransitions || aElementTransitions->mElement == aElement, "Element mismatch"); // Per http://lists.w3.org/Archives/Public/www-style/2009Aug/0109.html // I'll consider only the transitions from the number of items in // 'transition-property' on down, and later ones will override earlier // ones (tracked using |whichStarted|). bool startedAny = false; nsCSSPropertyIDSet whichStarted; - for (uint32_t i = aDisp->mTransitionPropertyCount; i-- != 0; ) { - const StyleTransition& t = aDisp->mTransitions[i]; + for (uint32_t i = aDisp.mTransitionPropertyCount; i-- != 0; ) { // Check the combined duration (combination of delay and duration) // first, since it defaults to zero, which means we can ignore the // transition. - if (t.GetCombinedDuration() > 0.0f) { + if (aDisp.GetTransitionCombinedDuration(i) > 0.0f) { // We might have something to transition. See if any of the // properties in question changed and are animatable. // FIXME: Would be good to find a way to share code between this // interpretation of transition-property and the one below. - nsCSSPropertyID property = t.GetProperty(); + nsCSSPropertyID property = aDisp.GetTransitionProperty(i); if (property == eCSSPropertyExtra_no_properties || property == eCSSPropertyExtra_variable || property == eCSSProperty_UNKNOWN) { // Nothing to do, but need to exclude this from cases below. } else if (property == eCSSPropertyExtra_all_properties) { for (nsCSSPropertyID p = nsCSSPropertyID(0); p < eCSSProperty_COUNT_no_shorthands; p = nsCSSPropertyID(p + 1)) { - ConsiderInitiatingTransition(p, t, aElement, aPseudoType, + ConsiderInitiatingTransition(p, aDisp, i, aElement, aPseudoType, aElementTransitions, aOldStyle, aNewStyle, &startedAny, &whichStarted); } } else if (nsCSSProps::IsShorthand(property)) { CSSPROPS_FOR_SHORTHAND_SUBPROPERTIES(subprop, property, CSSEnabledState::eForAllContent) { - ConsiderInitiatingTransition(*subprop, t, aElement, aPseudoType, + ConsiderInitiatingTransition(*subprop, aDisp, i, aElement, aPseudoType, aElementTransitions, aOldStyle, aNewStyle, &startedAny, &whichStarted); } } else { - ConsiderInitiatingTransition(property, t, aElement, aPseudoType, + ConsiderInitiatingTransition(property, aDisp, i, aElement, aPseudoType, aElementTransitions, aOldStyle, aNewStyle, &startedAny, &whichStarted); } } } // Stop any transitions for properties that are no longer in @@ -723,24 +721,23 @@ nsTransitionManager::DoUpdateTransitions // for properties that just changed (and are still in the set of // properties to transition), but for which we didn't just start the // transition. This can happen delay and duration are both zero, or // because the new value is not interpolable. // Note that we also do the latter set of work in // nsTransitionManager::PruneCompletedTransitions. if (aElementTransitions) { bool checkProperties = - aDisp->mTransitions[0].GetProperty() != eCSSPropertyExtra_all_properties; + aDisp.GetTransitionProperty(0) != eCSSPropertyExtra_all_properties; nsCSSPropertyIDSet allTransitionProperties; if (checkProperties) { - for (uint32_t i = aDisp->mTransitionPropertyCount; i-- != 0; ) { - const StyleTransition& t = aDisp->mTransitions[i]; + for (uint32_t i = aDisp.mTransitionPropertyCount; i-- != 0; ) { // FIXME: Would be good to find a way to share code between this // interpretation of transition-property and the one above. - nsCSSPropertyID property = t.GetProperty(); + nsCSSPropertyID property = aDisp.GetTransitionProperty(i); if (property == eCSSPropertyExtra_no_properties || property == eCSSPropertyExtra_variable || property == eCSSProperty_UNKNOWN) { // Nothing to do, but need to exclude this from cases below. } else if (property == eCSSPropertyExtra_all_properties) { for (nsCSSPropertyID p = nsCSSPropertyID(0); p < eCSSProperty_COUNT_no_shorthands; p = nsCSSPropertyID(p + 1)) { @@ -854,17 +851,18 @@ IsTransitionable(nsCSSPropertyID aProper // FIXME: This should also exclude discretely-animated properties. return nsCSSProps::kAnimTypeTable[aProperty] != eStyleAnimType_None; } template<typename StyleType> void nsTransitionManager::ConsiderInitiatingTransition( nsCSSPropertyID aProperty, - const StyleTransition& aTransition, + const nsStyleDisplay& aStyleDisplay, + uint32_t transitionIdx, dom::Element* aElement, CSSPseudoElementType aPseudoType, CSSTransitionCollection*& aElementTransitions, StyleType aOldStyle, StyleType aNewStyle, bool* aStartedAny, nsCSSPropertyIDSet* aWhichStarted) { @@ -967,19 +965,20 @@ nsTransitionManager::ConsiderInitiatingT // |aElementTransitions| is now a dangling pointer! aElementTransitions = nullptr; } // GetAnimationRule already called RestyleForAnimation. } return; } - const nsTimingFunction &tf = aTransition.GetTimingFunction(); - float delay = aTransition.GetDelay(); - float duration = aTransition.GetDuration(); + const nsTimingFunction &tf = + aStyleDisplay.GetTransitionTimingFunction(transitionIdx); + float delay = aStyleDisplay.GetTransitionDelay(transitionIdx); + float duration = aStyleDisplay.GetTransitionDuration(transitionIdx); if (duration < 0.0) { // The spec says a negative duration is treated as zero. duration = 0.0; } AnimationValue startForReversingTest = startValue; double reversePortion = 1.0;
--- a/layout/style/nsTransitionManager.h +++ b/layout/style/nsTransitionManager.h @@ -425,26 +425,27 @@ protected: OwningCSSTransitionPtrArray; // Update transitions. This will start new transitions, // replace existing transitions, and stop existing transitions // as needed. aDisp and aElement must be non-null. // aElementTransitions is the collection of current transitions, and it // could be a nullptr if we don't have any transitions. template<typename StyleType> bool - DoUpdateTransitions(const nsStyleDisplay* aDisp, + DoUpdateTransitions(const nsStyleDisplay& aDisp, mozilla::dom::Element* aElement, mozilla::CSSPseudoElementType aPseudoType, CSSTransitionCollection*& aElementTransitions, StyleType aOldStyle, StyleType aNewStyle); template<typename StyleType> void ConsiderInitiatingTransition(nsCSSPropertyID aProperty, - const mozilla::StyleTransition& aTransition, + const nsStyleDisplay& aStyleDisplay, + uint32_t transitionIdx, mozilla::dom::Element* aElement, mozilla::CSSPseudoElementType aPseudoType, CSSTransitionCollection*& aElementTransitions, StyleType aOldStyle, StyleType aNewStyle, bool* aStartedAny, nsCSSPropertyIDSet* aWhichStarted);
--- a/mobile/android/app/build.gradle +++ b/mobile/android/app/build.gradle @@ -22,16 +22,22 @@ android { testApplicationId 'org.mozilla.roboexample.test' testInstrumentationRunner 'org.mozilla.gecko.FennecInstrumentationTestRunner' // Used by Robolectric based tests; see TestRunner. buildConfigField 'String', 'BUILD_DIR', "\"${project.buildDir}\"" vectorDrawables.useSupportLibrary = true } + aaptOptions { + // The omnijar is already a compressed file itself and Gecko expects it to be + // STORED within the APK rather than DEFLATED. + noCompress 'ja' + } + compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } dexOptions { javaMaxHeapSize "2g" jumboMode = true
--- a/mobile/android/installer/package-manifest.in +++ b/mobile/android/installer/package-manifest.in @@ -169,19 +169,16 @@ @BINPATH@/components/imglib2.xpt @BINPATH@/components/inspector.xpt @BINPATH@/components/intl.xpt @BINPATH@/components/jar.xpt @BINPATH@/components/jsdebugger.xpt @BINPATH@/components/jsdownloads.xpt @BINPATH@/components/jsinspector.xpt @BINPATH@/components/layout_base.xpt -#ifdef MOZ_DEBUG -@BINPATH@/components/layout_debug.xpt -#endif #ifdef NS_PRINTING @BINPATH@/components/layout_printing.xpt #endif @BINPATH@/components/layout_xul_tree.xpt @BINPATH@/components/layout_xul.xpt @BINPATH@/components/locale.xpt @BINPATH@/components/mimetype.xpt @BINPATH@/components/mozfind.xpt
--- a/mobile/locales/search/list.json +++ b/mobile/locales/search/list.json @@ -176,26 +176,16 @@ } }, "en-US": { "default": { "visibleDefaultEngines": [ "google", "yahoo", "bing", "amazondotcom", "ddg", "twitter", "wikipedia" ] }, - "US": { - "visibleDefaultEngines": [ - "yahoo", "google-nocodes", "bing", "amazondotcom", "ddg", "twitter", "wikipedia" - ] - }, - "CA": { - "visibleDefaultEngines": [ - "google-nocodes", "yahoo", "bing", "amazondotcom", "ddg", "twitter", "wikipedia" - ] - }, "experimental-hidden": { "visibleDefaultEngines": [ "amazon-ca", "amazon-au", "google-2018", "duckduckgo" ] } }, "en-ZA": { "default": {
--- a/security/manager/ssl/StaticHPKPins.h +++ b/security/manager/ssl/StaticHPKPins.h @@ -1155,9 +1155,9 @@ static const TransportSecurityPreload kP { "za.search.yahoo.com", false, true, false, -1, &kPinset_yahoo }, { "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo }, }; // Pinning Preload List Length = 482; static const int32_t kUnknownId = -1; -static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1523486113350000); +static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1523571010092000);
--- a/security/manager/ssl/nsSTSPreloadList.errors +++ b/security/manager/ssl/nsSTSPreloadList.errors @@ -1,23 +1,24 @@ 00220022.net: could not connect to host 01100010011001010111001101110100.com: could not connect to host 06se.com: could not connect to host 07733.win: could not connect to host 0day.su: could not connect to host 0i0.nl: could not connect to host +1000serien.com: could not connect to host 10gb.io: could not connect to host 135vv.com: could not connect to host 13826145000.com: could not connect to host 1nian.vip: could not connect to host 1q365a.com: could not connect to host 24hrs.shopping: could not connect to host 28spots.net: could not connect to host 314chan.org: could not connect to host -404forest.com: could not connect to host +4-it.de: could not connect to host 41844.de: could not connect to host 439191.com: could not connect to host 47tech.com: could not connect to host 4d2.xyz: could not connect to host 4loc.us: could not connect to host 4x4.lk: could not connect to host 517vpn.cn: could not connect to host 52neptune.com: could not connect to host @@ -38,62 +39,57 @@ 9ss6.com: could not connect to host aaronmcguire.me: could not connect to host abloop.com: could not connect to host abolition.co: could not connect to host accwing.com: could not connect to host achterhoekseveiligheidsbeurs.nl: could not connect to host acrossgw.com: could not connect to host ad-disruptio.fr: could not connect to host adamdixon.co.uk: could not connect to host +adec-emsa.ae: could not connect to host adventureally.com: could not connect to host aevpn.org: could not connect to host affily.io: could not connect to host +afterstack.net: could not connect to host aiicy.org: could not connect to host aim-consultants.com: could not connect to host -aintevenmad.ch: could not connect to host akiba-server.info: could not connect to host akita-stream.com: could not connect to host akoww.de: could not connect to host akul.co.in: could not connect to host al-f.net: could not connect to host alasta.info: could not connect to host alauda-home.de: could not connect to host alcatraz.online: could not connect to host alcnutrition.com: could not connect to host alexandernorth.ch: could not connect to host alexberts.ch: could not connect to host alexei.su: could not connect to host alexey-shamara.ru: could not connect to host -alexismeza.com: could not connect to host -alexismeza.com.mx: could not connect to host -alexismeza.dk: could not connect to host -alexismeza.es: could not connect to host -alexismeza.nl: could not connect to host alexmol.tk: could not connect to host alexperry.io: could not connect to host alilialili.ga: could not connect to host +alkamitech.com: could not connect to host alldm.ru: could not connect to host allscammers.exposed: could not connect to host +almavios.com: could not connect to host altahrim.net: could not connect to host amdouglas.uk: could not connect to host ameho.me: could not connect to host americandistribuidora.com: could not connect to host americkykongres.cz: could not connect to host -ameza.co.uk: could not connect to host -ameza.com.mx: could not connect to host -ameza.io: could not connect to host -ameza.me: could not connect to host -ameza.net: could not connect to host amua.fr: could not connect to host amunoz.org: could not connect to host +anacreon.de: could not connect to host anastasia-shamara.ru: could not connect to host andiplusben.com: could not connect to host andreas-kluge.eu: could not connect to host andreaskluge.eu: could not connect to host andrei-coman.com: could not connect to host +andrewrdaws.com: could not connect to host andromedacenter.com: could not connect to host andronika.net: could not connect to host angrydragonproductions.com: could not connect to host annetaan.fi: could not connect to host annonasoftware.com: could not connect to host answers-online.ru: could not connect to host anttitenhunen.com: could not connect to host anyways.at: could not connect to host @@ -107,26 +103,29 @@ arent.kz: could not connect to host argh.io: could not connect to host arksan.com.tr: could not connect to host armenians.online: could not connect to host arne-petersen.net: could not connect to host arresttracker.com: could not connect to host articaexports.com: could not connect to host artisense.de: could not connect to host artisticedgegranite.net: could not connect to host +asisee.co.il: could not connect to host +asisee.photography: could not connect to host askmagicconch.com: could not connect to host asphaltfruehling.de: could not connect to host asral7.com: could not connect to host assdecoeur.org: could not connect to host asthon.cn: could not connect to host astraalivankila.net: could not connect to host astral.gq: could not connect to host asuhe.xyz: could not connect to host at1.co: could not connect to host athi.pl: could not connect to host +atrevillot.com: could not connect to host aufmerksamkeitsstudie.com: could not connect to host ausec.ch: could not connect to host austinsutphin.com: could not connect to host australiancattle.dog: could not connect to host authint.com: could not connect to host authland.com: could not connect to host authsrv.nl.eu.org: could not connect to host autostop-occasions.be: could not connect to host @@ -145,43 +144,44 @@ baka.network: could not connect to host balonmano.co: could not connect to host bandally.net: could not connect to host bandarifamily.com: could not connect to host bannisbierblog.de: could not connect to host barbate.fr: could not connect to host barracuda.blog: could not connect to host barreaudenice.com: could not connect to host bbdos.ru: could not connect to host +bbnx.net: could not connect to host +bdikaros-network.net: could not connect to host bdsmxxxpics.com: could not connect to host bdvg.org: could not connect to host bearden.io: could not connect to host beasel.biz: could not connect to host bellavistaoutdoor.com: could not connect to host belpbleibtbelp.ch: could not connect to host benjamin-horvath.com: could not connect to host benjamin-suess.de: could not connect to host benzou-space.com: could not connect to host berduri.com: could not connect to host berthelier.me: could not connect to host +beslider.com: could not connect to host besthotsales.com: could not connect to host -betterlifemakers.com: could not connect to host bey.io: could not connect to host bfrailwayclub.cf: could not connect to host bie.edu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119" data: no] bigerbio.com: could not connect to host bilimoe.com: could not connect to host binam.center: could not connect to host bingcheung.com: could not connect to host binimo.com: could not connect to host binsp.net: could not connect to host bip.gov.sa: could not connect to host bitcoin-class.com: could not connect to host bitcoin-daijin.com: could not connect to host bitcoinjpn.com: could not connect to host -bitenose.com: could not connect to host bitmaincare.com.ua: could not connect to host bitmaincare.ru: could not connect to host bitmessage.ch: could not connect to host bityes.org: could not connect to host bizeau.ch: could not connect to host bjgongyi.com: could not connect to host bjtxl.cn: could not connect to host blackdiam.net: could not connect to host @@ -193,70 +193,72 @@ blokuhaka.fr: could not connect to host bluefuzz.nl: could not connect to host blumen-garage.de: could not connect to host bm-i.ch: could not connect to host bodrumfarm.com: could not connect to host bolwerk.com.br: could not connect to host bomberus.de: could not connect to host bonesserver.com: could not connect to host bonobo.cz: could not connect to host +boof.com: could not connect to host +bootikexpress.fr: could not connect to host boozinyan.com: could not connect to host borisbesemer.com: could not connect to host bouncourseplanner.net: could not connect to host bqcp.net: could not connect to host brage.info: could not connect to host braintensive.com: could not connect to host brandontaylor-black.com: could not connect to host brandonwalker.me: could not connect to host breathingblanket.com: could not connect to host brightonchilli.org.uk: could not connect to host brio-ukraine.store: could not connect to host brookframework.org: could not connect to host brrr.fr: could not connect to host bruckner.li: could not connect to host +brunner.ninja: could not connect to host brynnan.nl: could not connect to host bsalyzer.com: could not connect to host bsktweetup.info: could not connect to host bslim-e-boutique.com: could not connect to host bsuess.de: could not connect to host btserv.de: could not connect to host bugginslab.co.uk: could not connect to host bugsmashed.com: could not connect to host buka.jp: could not connect to host businessfurs.info: could not connect to host businessmodeler.se: could not connect to host buyshoe.org: could not connect to host +bvalle.com: could not connect to host bvexplained.co.uk: could not connect to host by1898.com: could not connect to host bypass.kr: could not connect to host byteshift.ca: could not connect to host +cafesg.net: could not connect to host caipai.fm: could not connect to host cais.de: could not connect to host calculatoaresecondhand.xyz: could not connect to host callabs.net: could not connect to host callsigns.ca: could not connect to host camda.online: could not connect to host campingcarlovers.com: could not connect to host cancelmyprofile.com: could not connect to host caps.is: could not connect to host cardloan-manual.net: could not connect to host carloshmm.stream: could not connect to host carlovanwyk.com: could not connect to host casinoreal.com: could not connect to host -catalogoreina.com: could not connect to host caughtredhanded.co.nz: could not connect to host cctld.com: could not connect to host -cdeck.net: could not connect to host cdnk39.com: could not connect to host cee.io: could not connect to host cegfw.com: could not connect to host cencalvia.org: could not connect to host centos.pub: could not connect to host centrallead.net: could not connect to host -cerebelo.info: could not connect to host cgtx.us: could not connect to host challengeskins.com: could not connect to host championnat-romand-cuisiniers-amateurs.ch: could not connect to host chaouby.com: could not connect to host charonsecurity.com: could not connect to host cheesefusion.com: could not connect to host chenapartment.com: could not connect to host childrendeservebetter.org: could not connect to host @@ -266,71 +268,65 @@ chiropracticwpb.com: could not connect t chloe.re: could not connect to host christianhoffmann.info: could not connect to host christophersole.com: could not connect to host chromaryu.net: could not connect to host chziyue.com: could not connect to host cima-idf.fr: could not connect to host cinemysticism.com: could not connect to host cipher.land: could not connect to host -cjr.host: could not connect to host cjtkfan.club: could not connect to host clearchatsandbox.com: could not connect to host clearviewwealthprojector.com.au: could not connect to host clintonbloodworth.com: could not connect to host cloudbleed.info: could not connect to host cloudimproved.com: could not connect to host cloudimprovedtest.com: could not connect to host clownish.co.il: could not connect to host -clubmate.rocks: could not connect to host clycat.ru: could not connect to host cms-weble.jp: could not connect to host cnlic.com: could not connect to host cnwage.com: could not connect to host co-yutaka.com: could not connect to host cobaltlp.com: could not connect to host -cocaine.ninja: could not connect to host coccolebenessere.it: could not connect to host coco-cool.fr: could not connect to host code.fm: could not connect to host codenlife.xyz: could not connect to host codercross.com: could not connect to host codeversetech.com: could not connect to host codewiz.xyz: could not connect to host colleencornez.com: could not connect to host -comalia.com: could not connect to host commania.co.kr: could not connect to host complt.xyz: could not connect to host comprehensiveihc.com: could not connect to host conception.sk: could not connect to host conniesacademy.com: could not connect to host construct-trust.com: could not connect to host -controltickets.com.br: could not connect to host corecdn.org: could not connect to host corinnanese.de: could not connect to host correct.horse: could not connect to host cosmeticosdelivery.com.br: could not connect to host cosplayer.com: could not connect to host coumoul.fr: could not connect to host cousincouples.com: could not connect to host cpaneltips.com: could not connect to host crackpfer.de: could not connect to host crackslut.eu: could not connect to host -crapouill.es: could not connect to host -creative-coder.de: could not connect to host creative-wave.fr: could not connect to host creativecommonscatpictures.com: could not connect to host cristianhares.com: could not connect to host criticalaim.com: could not connect to host crox.co: could not connect to host cryptopartynewcastle.org: could not connect to host crystalmachine.net: could not connect to host csgo77.com: could not connect to host cspeti.hu: could not connect to host customfilmworks.com: could not connect to host +cvjd.me: could not connect to host cyber-computer.club: could not connect to host cyberpeace.nl: could not connect to host cyberstatus.de: could not connect to host cypherpunk.ws: could not connect to host czlx.co: could not connect to host d-bood.site: could not connect to host d8studio.net: could not connect to host daltonedwards.me: could not connect to host @@ -351,28 +347,25 @@ day.vip: could not connect to host days.one: could not connect to host dbcom.ru: could not connect to host dbox.ga: could not connect to host dden.website: could not connect to host dden.xyz: could not connect to host de-servers.de: could not connect to host decoyrouting.com: could not connect to host deepcreampie.com: could not connect to host +deepsouthsounds.com: could not connect to host deloittequant.com: could not connect to host deprobe.pro: could not connect to host derchris.me: could not connect to host derivativeshub.pro: could not connect to host dermacarecomplex.com: could not connect to host detecte-fuite.ch: could not connect to host detecte.ch: could not connect to host detectefuite.ch: could not connect to host -deux.solutions: could not connect to host -deuxsol.co: could not connect to host -deuxsol.com: could not connect to host -deuxsolutions.com: could not connect to host dev-talk.eu: could not connect to host devafterdark.com: could not connect to host devcu.net: could not connect to host developersclub.website: could not connect to host devkid.net: could not connect to host devops.moe: could not connect to host dhl-smart.ch: could not connect to host dhub.xyz: could not connect to host @@ -381,37 +374,38 @@ diceduels.com: could not connect to host dicgaming.net: could not connect to host dick.red: could not connect to host didierlaumen.be: could not connect to host diemogebhardt.com: could not connect to host dieser.me: could not connect to host digihyp.ch: could not connect to host digioccumss.ddns.net: could not connect to host digitalhurricane.io: could not connect to host +digitalrxcloud.com: could not connect to host diguass.us: could not connect to host dijks.com: could not connect to host dirtycat.ru: could not connect to host disability.gov: could not connect to host disadattamentolavorativo.it: could not connect to host disco-crazy-world.de: could not connect to host distinctivephotography.com.au: could not connect to host ditch.ch: could not connect to host dixmag.com: could not connect to host dlyl888.com: could not connect to host dobrev.family: could not connect to host dobrisan.ro: could not connect to host dojifish.space: could not connect to host dolphin-hosting.com: could not connect to host domengrad.ru: could not connect to host +domfee.com: could not connect to host dostavkakurierom.ru: could not connect to host doyoulyft.com: could not connect to host doze-cloud.tech: could not connect to host drdim.ru: could not connect to host dreaming.solutions: could not connect to host -dreizwosechs.de: could not connect to host driving-lessons.co.uk: could not connect to host drivinghorror.com: could not connect to host drixn.cn: could not connect to host drixn.info: could not connect to host drixn.net: could not connect to host drizz.com.br: could not connect to host drogoz.moe: could not connect to host dronexpertos.com: could not connect to host @@ -444,43 +438,42 @@ elia.cloud: could not connect to host eliott.be: could not connect to host elisabeth-strunz.de: could not connect to host elonbase.com: could not connect to host elsword.moe: could not connect to host eltransportquevolem.org: could not connect to host emilyjohnson.ga: could not connect to host empese.com: could not connect to host emrenovation.com: could not connect to host -envygeeks.io: could not connect to host er-music.com: could not connect to host eriser.fr: could not connect to host erkaelderbarenaaben.dk: could not connect to host erspro.net: could not connect to host esailinggear.com: could not connect to host estoic.net: could not connect to host ethiobaba.com: could not connect to host euexia.fr: could not connect to host eurostrategy.vn.ua: could not connect to host ev-zertifikate.de: could not connect to host evankurniawan.com: could not connect to host eveshaiwu.com: could not connect to host evileden.com: could not connect to host -evio.com: could not connect to host exo.do: could not connect to host eytosh.net: could not connect to host f8842.com: could not connect to host faber.org.ru: could not connect to host fabian-kluge.de: could not connect to host facebook.ax: could not connect to host facilitrak.com: could not connect to host factureenlinea.com: could not connect to host fafatiger.com: could not connect to host faithwatch.org: could not connect to host falkus.net: could not connect to host fallenangeldrinks.eu: could not connect to host +fameuxhosting.co.uk: could not connect to host familie-sander.rocks: could not connect to host fancy-bridge.com: could not connect to host faretravel.co.uk: could not connect to host farm24.co.uk: could not connect to host fastaim.de: could not connect to host fastbackmbg.be: could not connect to host fed51.com: could not connect to host feedstringer.com: could not connect to host @@ -493,23 +486,23 @@ ficklenote.net: could not connect to hos fifieldtech.com: could not connect to host fileio.io: could not connect to host findmybottleshop.com.au: could not connect to host finstererlebnis.de: could not connect to host firebaseio.com: could not connect to host firexarxa.de: could not connect to host fix-the-timeline.com: could not connect to host fix-the-timeline.org: could not connect to host -fixate.ru: could not connect to host fixmyglitch.com: could not connect to host fixthetimeline.com: could not connect to host fixthetimeline.org: could not connect to host flam.io: could not connect to host flopy.club: could not connect to host flow.su: could not connect to host +flucky.xyz: could not connect to host flugplatz-edvc.de: could not connect to host flygpost.com: could not connect to host flyingdoggy.net: could not connect to host focalforest.com: could not connect to host forcamp.ga: could not connect to host formersessalaries.com: could not connect to host forsyththeatre.com: could not connect to host fortuna-loessnitz.de: could not connect to host @@ -524,17 +517,16 @@ franckyz.com: could not connect to host fransallen.com: could not connect to host franzt.ovh: could not connect to host fredliang.cn: could not connect to host fredtec.ru: could not connect to host freejidi.com: could not connect to host freelansir.com: could not connect to host freshcode.nl: could not connect to host frickenate.com: could not connect to host -friller.com.au: could not connect to host frodriguez.xyz: could not connect to host frolov.net: could not connect to host fromlemaytoz.com: could not connect to host frosty-gaming.xyz: could not connect to host frp-roleplay.de: could not connect to host frusky.net: could not connect to host fs-gamenet.de: could not connect to host fsfi.is: could not connect to host @@ -544,18 +536,16 @@ fuckcf.cf: could not connect to host fugle.de: could not connect to host fuitedeau.ch: could not connect to host fukuko.biz: could not connect to host fukuko.xyz: could not connect to host fun9.cc: could not connect to host fun99.cc: could not connect to host funksteckdosen24.de: could not connect to host futos.de: could not connect to host -fuwafuwa.moe: could not connect to host -fyol.pw: could not connect to host g1jeu.com: could not connect to host g4w.co: could not connect to host gabriel.to: could not connect to host gabriele-kluge.de: could not connect to host gafachi.com: could not connect to host gaichanh.com: could not connect to host gaiserik.com: could not connect to host gala.kiev.ua: could not connect to host @@ -570,23 +560,21 @@ gasnews.net: could not connect to host gautham.pro: could not connect to host gaygeeks.de: could not connect to host gchoic.com: could not connect to host gdb-tutorial.net: could not connect to host gdevpenze.ru: could not connect to host gdhzcgs.com: could not connect to host gdz-otvety.com: could not connect to host ge1.me: could not connect to host -gee.is: could not connect to host gehrke.nrw: could not connect to host geigr.de: could not connect to host generationnext.pl: could not connect to host geneve.guide: could not connect to host genossen.ru: could not connect to host -gentoo-blog.de: could not connect to host georgescarryout.com: could not connect to host geri.be: could not connect to host getfilterlive.org: could not connect to host getgeek.dk: could not connect to host getgeek.ee: could not connect to host getgeek.es: could not connect to host getgeek.fi: could not connect to host getgeek.fr: could not connect to host @@ -604,17 +592,19 @@ ggss.cf: could not connect to host gifzilla.net: could not connect to host gina-architektur.design: could not connect to host git.co: could not connect to host glasner.photo: could not connect to host glutenfreelife.co.nz: could not connect to host gm-assicurazioni.it: could not connect to host gmantra.org: could not connect to host gmanukyan.com: could not connect to host +gmind.ovh: could not connect to host gnom.me: could not connect to host +gnosticjade.net: could not connect to host godrealms.com: could not connect to host goiaspropaganda.com.br: could not connect to host google: could not connect to host google.ax: could not connect to host goranrango.ch: could not connect to host gottfridsberg.org: could not connect to host gozadentro.com: could not connect to host gozel.com.tr: could not connect to host @@ -623,32 +613,30 @@ granth.io: could not connect to host gratisonlinesex.com: could not connect to host greg.red: could not connect to host gregmartyn.com: could not connect to host greuel.online: could not connect to host greybit.net: could not connect to host gritte.net: could not connect to host grossmisconduct.news: could not connect to host gugaltika-ipb.org: could not connect to host -guillaumeperrin.io: could not connect to host gus.moe: could not connect to host gvchannel.xyz: could not connect to host gvt2.com: could not connect to host gvt3.com: could not connect to host h2cdn.cloud: could not connect to host h3artbl33d.nl: could not connect to host habeo.si: could not connect to host hackbarth.guru: could not connect to host hackbubble.me: could not connect to host hakugin.me: could not connect to host halcyonsbastion.com: could not connect to host halkyon.net: could not connect to host handinhandfoundation.org.uk: could not connect to host hapijs.cn: could not connect to host -happyagain.se: could not connect to host harrypottereditor.net: could not connect to host hasabig.wang: could not connect to host hasalittle.wang: could not connect to host hashplex.com: could not connect to host haze.network: could not connect to host hbbet.com: could not connect to host hbvip.com: could not connect to host hdy.nz: could not connect to host @@ -666,39 +654,34 @@ henriknoerr.com: could not connect to ho hentai.design: could not connect to host hentaimaster.net: could not connect to host here.ml: could not connect to host heribe-maruo.com: could not connect to host heroin.org.uk: could not connect to host hetmeisjeachterpauw.nl: could not connect to host hexobind.com: could not connect to host hfi.me: could not connect to host -hg71805.com: could not connect to host -hg71807.com: could not connect to host -hg71813.com: could not connect to host -hg71833.com: could not connect to host hg71851.com: could not connect to host hg71857.com: could not connect to host hg881.com: could not connect to host hill.selfip.net: could not connect to host hintermeier-rae.at: could not connect to host -hiraku.me: could not connect to host hirte-digital.de: could not connect to host hitrek.ml: could not connect to host -hoahau.org: could not connect to host hohm.in: could not connect to host holidayincotswolds.co.uk: could not connect to host homoglyph.net: could not connect to host hong.io: could not connect to host hoodoo.io: could not connect to host hoodoo.tech: could not connect to host hoowhen.cn: could not connect to host hopglass.eu: could not connect to host hopglass.net: could not connect to host horvathd.eu: could not connect to host +howardtyson.com: could not connect to host hozinga.de: could not connect to host hr98.tk: could not connect to host hserver.top: could not connect to host hudingyuan.cn: could not connect to host huiser.nl: could not connect to host hukkatavara.com: could not connect to host hunger.im: could not connect to host huwjones.me: could not connect to host @@ -738,16 +721,17 @@ intelldynamics.com: could not connect to interviewpipeline.co.uk: could not connect to host investorloanshub.com: could not connect to host ip.or.at: could not connect to host iphonechina.net: could not connect to host iplantom.com: could not connect to host irinkeby.nu: could not connect to host isamiok.com: could not connect to host iservicio.mx: could not connect to host +isisfighters.info: could not connect to host isocom.eu: could not connect to host isopres.de: could not connect to host itad.top: could not connect to host itpro-mg.de: could not connect to host its-schindler.de: could not connect to host itsatrap.nl: could not connect to host itspawned.com: could not connect to host ivanpolchenko.com: could not connect to host @@ -782,86 +766,84 @@ juliawebber.co.za: could not connect to jumbopan.com: could not connect to host jumbopan.net: could not connect to host just-pools.co.za: could not connect to host justinharrison.ca: could not connect to host justmy.website: could not connect to host justzz.xyz: could not connect to host juventusmania1897.com: could not connect to host kaasbijwijn.nl: could not connect to host -kabus.org: could not connect to host kaibol.com: could not connect to host kaika-facilitymanagement.de: could not connect to host kamitech.ch: could not connect to host kanganer.com: could not connect to host kangzaber.com: could not connect to host -kantorosobisty.pl: could not connect to host kapo.info: could not connect to host karamna.com: could not connect to host karanlyons.com: could not connect to host karuneshjohri.com: could not connect to host katzen.me: could not connect to host kawaii.io: could not connect to host kawaiiku.com: could not connect to host kawaiiku.de: could not connect to host kayipmurekkep.com: could not connect to host -kayscs.com: could not connect to host kelm.me: could not connect to host kevindekoninck.com: could not connect to host keyserver.sexy: could not connect to host kgb.us: could not connect to host kidbacker.com: could not connect to host kiedys.net: could not connect to host kieranweightman.me: could not connect to host kievradio.com: could not connect to host kinepolis-studio.ga: could not connect to host -kingbird.me: could not connect to host kingclass.cn: could not connect to host kirill.ws: could not connect to host kj1396.net: could not connect to host kjchernov.info: could not connect to host kjoglum.me: could not connect to host klingeletest.de: could not connect to host kngk-azs.ru: could not connect to host knightsweep.com: could not connect to host +knip.ch: could not connect to host knownsec.cf: could not connect to host koalapress.fr: could not connect to host +kodakit.com: could not connect to host kollawat.me: could not connect to host kongbaofang.com: could not connect to host konicaprinterdriver.com: could not connect to host konventseliten.se: could not connect to host -kooponline.eu: could not connect to host kopfsalat.eu: could not connect to host kotorimusic.ga: could not connect to host -kowshiksundararajan.com: could not connect to host kozmik.co: could not connect to host kriptosec.com: could not connect to host kteen.info: could not connect to host ktube.yt: could not connect to host kuechenplan.online: could not connect to host kuko-crews.org: could not connect to host kydara.com: could not connect to host kyle.place: could not connect to host kylebaldw.in: could not connect to host kylling.io: could not connect to host kyujin-office.net: could not connect to host l18.io: could not connect to host +labfox.de: could not connect to host laboutiquemarocaineduconvoyeur.com: could not connect to host laboutiquemarocaineduconvoyeur.ma: could not connect to host lacasa.fr: could not connect to host lacasabelucci.com: could not connect to host lacasseroy.com: could not connect to host ladylikeit.com: could not connect to host lafr4nc3.xyz: could not connect to host landell.ml: could not connect to host lanonfire.com: could not connect to host lathamlabs.com: could not connect to host lathamlabs.net: could not connect to host lathamlabs.org: could not connect to host lavapot.com: could not connect to host +lazerus.net: could not connect to host lazulu.com: could not connect to host lbrls.tk: could not connect to host lcti.biz: could not connect to host ldcraft.pw: could not connect to host lebal.se: could not connect to host leebiblestudycentre.net: could not connect to host leebiblestudycentre.org: could not connect to host legal.farm: could not connect to host @@ -895,60 +877,61 @@ linux.sb: could not connect to host linuxcode.net: could not connect to host linvx.org: could not connect to host lissabon.guide: could not connect to host littlelundgrenladies.com: could not connect to host littleservice.cn: could not connect to host liukang.tech: could not connect to host llvm.us: could not connect to host lobosdomain.no-ip.info: could not connect to host +localhorst.xyz: could not connect to host locker3.com: could not connect to host logcat.info: could not connect to host logic8.ml: could not connect to host logimagine.com: could not connect to host +lonasdigital.com: could not connect to host loothole.com: could not connect to host loqyu.co: could not connect to host losebellyfat.pro: could not connect to host loveandloyalty.se: could not connect to host -lovelive.us: could not connect to host lowt.us: could not connect to host loyaltech.ch: could not connect to host ltransferts.com: could not connect to host lukasunger.cz: could not connect to host lukasunger.net: could not connect to host -luminancy.com: could not connect to host luom.net: could not connect to host luxonetwork.com: could not connect to host +lyonl.com: could not connect to host m4570.xyz: could not connect to host m4g.ru: could not connect to host maartenterpstra.xyz: could not connect to host machbach.net: could not connect to host macustar.eu: could not connect to host madeintucson.org: could not connect to host magnacumlaude.co: could not connect to host maidofhonorcleaning.net: could not connect to host +maik-mahlow.de: could not connect to host mailon.ga: could not connect to host -makeyourank.com: could not connect to host malesbdsm.com: could not connect to host malgraph.net: could not connect to host +malkaso.com.ua: could not connect to host marcelmarnitz.com: could not connect to host marche-nordic-jorat.ch: could not connect to host mare92.cz: could not connect to host marketingdesignu.cz: could not connect to host martynhare.co.uk: could not connect to host martynhare.uk: could not connect to host marxist.party: could not connect to host mastodon.blue: could not connect to host mastodon.expert: could not connect to host mastodon.my: could not connect to host mathijskingma.nl: could not connect to host mattia98.org: could not connect to host mattli.us: could not connect to host mattwb65.com: could not connect to host -maxtruxa.com: could not connect to host maynardnetworks.com: could not connect to host mbdrogenbos-usedcars.be: could not connect to host mbsec.net: could not connect to host mbwemmel-usedcars.be: could not connect to host mcdanieldevelopmentservices.com: could not connect to host mcsa-usa.org: could not connect to host mcsnovatamabayan.com: could not connect to host me-dc.com: could not connect to host @@ -972,16 +955,17 @@ mhjuma.com: could not connect to host michaelsulzer.com: could not connect to host michaelsulzer.eu: could not connect to host mikes.tk: could not connect to host mingy.ddns.net: could not connect to host minitruckin.net: could not connect to host mintosherbs.com: could not connect to host mkfs.fr: could not connect to host mm13.at: could not connect to host +mmstick.tk: could not connect to host modded-minecraft-server-list.com: could not connect to host moderntld.net: could not connect to host moe-max.jp: could not connect to host moeyi.xyz: could not connect to host mongla168.net: could not connect to host mongla88.net: could not connect to host monitori.ng: could not connect to host monloyer.quebec: could not connect to host @@ -1005,16 +989,17 @@ mrizzio.com: could not connect to host mrliu.me: could not connect to host mtn.cc: could not connect to host munduch.cz: could not connect to host muslimbanter.co.za: could not connect to host mybeautyjobs.de: could not connect to host mycamda.com: could not connect to host mycustomwriting.com: could not connect to host myfappening.org: could not connect to host +myicare.org: could not connect to host mykeepsake.xyz: could not connect to host mynewleaf.co: could not connect to host myrent.quebec: could not connect to host mytravelblog.de: could not connect to host mzlog.win: could not connect to host n0099.cf: could not connect to host naano.org: could not connect to host nanogi.ga: could not connect to host @@ -1025,49 +1010,48 @@ nba2k.com.cn: could not connect to host nbalive.cn: could not connect to host ncdesigns-studio.com: could not connect to host neartothesky.com: could not connect to host nedcf.org.uk: could not connect to host neel.ch: could not connect to host neer.io: could not connect to host negativecurvature.net: could not connect to host nephy.jp: could not connect to host +nestone.ru: could not connect to host nevadafiber.net: could not connect to host newcityinfo.info: could not connect to host nexgeneration-solutions.com: could not connect to host nexusbyte.de: could not connect to host nexuscorporation.in: could not connect to host nfluence.org: could not connect to host ngtoys.com.br: could not connect to host nico.st: could not connect to host nienfun.com: could not connect to host +nigger.racing: could not connect to host nikksno.io: could not connect to host nikolasbradshaw.com: could not connect to host -ninofink.com: could not connect to host niouininon.eu: could not connect to host nirada.info: could not connect to host nishikino-maki.com: could not connect to host niva.synology.me: could not connect to host nkadvertising.online: could not connect to host -nodari.com.ar: could not connect to host -nodariweb.com.ar: could not connect to host nodeselect.com: could not connect to host nonemu.ninja: could not connect to host norad.sytes.net: could not connect to host notarobot.fr: could not connect to host note7forever.com: could not connect to host notesforpebble.com: could not connect to host notevencode.com: could not connect to host +notinglife.com: could not connect to host novascan.net: could not connect to host nowremindme.com: could not connect to host nsbfalconacademy.org: could not connect to host nudel.ninja: could not connect to host nulltime.net: could not connect to host nunnun.jp: could not connect to host -nup.pw: could not connect to host nyanpasu.tv: could not connect to host obdolbacca.ru: could not connect to host oberhof.co: could not connect to host oblikdom.pro: could not connect to host oblondata.io: could not connect to host off-the-clock.us: could not connect to host offgames.pro: could not connect to host office-ruru.com: could not connect to host @@ -1078,16 +1062,17 @@ onewebdev.info: could not connect to hos onstud.com: could not connect to host onwie.fr: could not connect to host ooeste.com: could not connect to host openintelligence.uk: could not connect to host opium.io: could not connect to host oreka.online: could not connect to host oscsdp.cz: could not connect to host osmanlitorunu.com: could not connect to host +oswaldsmillaudio.com: could not connect to host otinane.eu: could not connect to host ourchoice2016.com: could not connect to host outetc.com: could not connect to host owlscrap.ru: could not connect to host oxynux.xyz: could not connect to host paichai.space: could not connect to host panasca.is: could not connect to host panascais.co: could not connect to host @@ -1096,16 +1081,17 @@ panascais.de: could not connect to host panascais.eu: could not connect to host panascais.host: could not connect to host panascais.me: could not connect to host panascais.pw: could not connect to host panascais.site: could not connect to host panascais.tech: could not connect to host panascais.us: could not connect to host pandapsy.com: could not connect to host +paragon.edu: could not connect to host pardnoy.com: could not connect to host parodybit.net: could not connect to host passrhce.com: could not connect to host passrhcsa.com: could not connect to host pastie.se: could not connect to host patrickbusch.net: could not connect to host patrickneuro.de: could not connect to host paulbramhall.uk: could not connect to host @@ -1113,58 +1099,59 @@ paulchen.at: could not connect to host paulrudge.codes: could not connect to host paulshir.com: could not connect to host paulshir.is: could not connect to host paymon.tj: could not connect to host paypod.org: could not connect to host pcmr.info: could not connect to host pcvirusclear.com: could not connect to host pear2pear.de: could not connect to host -pensanisso.com: could not connect to host +peirong.me: could not connect to host persjrp.ca: could not connect to host persoform.ch: could not connect to host persson.im: could not connect to host persson.me: could not connect to host petlife.od.ua: could not connect to host peuf.shop: could not connect to host peykezamin.ir: could not connect to host phdwuda.com: could not connect to host phil.tw: could not connect to host philippa.cool: could not connect to host picallo.es: could not connect to host picone.com.au: could not connect to host pierrejeansuau.fr: could not connect to host pimspage.nl: could not connect to host pinebaylibrary.org: could not connect to host +pivotanimation.org: could not connect to host piwko.co: could not connect to host pixelgliders.de: could not connect to host plaasprodukte.com: could not connect to host placefade.com: could not connect to host planbox.info: could not connect to host playsharp.com: could not connect to host plussizereviews.com: could not connect to host pmbremer.de: could not connect to host pnsc.is: could not connect to host pointagri.com: could not connect to host polit.im: could not connect to host ponteencima.com: could not connect to host -ponzi.life: could not connect to host poolinstallers.co.za: could not connect to host +postpot.co.kr: could not connect to host potbar.com: could not connect to host potlytics.com: could not connect to host pouets.ovh: could not connect to host powerentertainment.tv: could not connect to host +poy-tech.com: could not connect to host prepaid-cards.xyz: could not connect to host princessbackpack.de: could not connect to host printsos.com: could not connect to host prism-communication.com: could not connect to host privacymanatee.com: could not connect to host privcloud.org: could not connect to host proactive.run: could not connect to host -programsupport300procent.com: could not connect to host progressivecfo.co.nz: could not connect to host projectx.top: could not connect to host prokop.ovh: could not connect to host propmag.co: could not connect to host provitacare.com: could not connect to host proxydesk.eu: could not connect to host prpsss.com: could not connect to host pruikshop.nl: could not connect to host @@ -1176,26 +1163,27 @@ psncardplus.nl: could not connect to hos psncardplus.se: could not connect to host psychintervention.com: could not connect to host publimepa.it: could not connect to host pugilares.com.pl: could not connect to host puhe.se: could not connect to host pypa.io: could not connect to host pythia.nz: could not connect to host qforum.org: could not connect to host +qikan.net: could not connect to host qldformulaford.org: could not connect to host qnatek.org: could not connect to host qoqo.us: could not connect to host qrforex.com: could not connect to host qrlfinancial.com: could not connect to host qscloud.de: could not connect to host qto.net: could not connect to host quay.net: could not connect to host r40.us: could not connect to host -rabbitvcactus.eu: could not connect to host +ra.co.ke: could not connect to host rackblue.com: could not connect to host rainbin.com: could not connect to host rally-vysledky.cz: could not connect to host ranos.org: could not connect to host rapdogg.com: could not connect to host ravse.dk: could not connect to host raxion.cf: could not connect to host rcoliveira.com: could not connect to host @@ -1208,27 +1196,26 @@ realcli.com: could not connect to host realraghavgupta.com: could not connect to host realwoo.com: could not connect to host reevu.net: could not connect to host regendevices.eu: could not connect to host regio-salland.nl: could not connect to host reignsphere.net: could not connect to host reismil.ch: could not connect to host reqognize.com: could not connect to host +request-trent.com: could not connect to host research.md: could not connect to host ressl.ch: could not connect to host -retcor.net: could not connect to host reth.ch: could not connect to host retube.ga: could not connect to host reykjavik.guide: could not connect to host ribopierre.fr: could not connect to host riceglue.com: could not connect to host richeza.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 119" data: no] rngmeme.com: could not connect to host -rob.uk.com: could not connect to host robi-net.it: could not connect to host robomonkey.org: could not connect to host robust.ga: could not connect to host rocketgnomes.com: could not connect to host rodehutskors.net: could not connect to host rofrank.space: could not connect to host rohanbassett.com: could not connect to host romanticvillas.com.au: could not connect to host @@ -1248,35 +1235,34 @@ ruht.ro: could not connect to host runcarina.com: could not connect to host rundumcolumn.xyz: could not connect to host runementors.com: could not connect to host ruudkoot.nl: could not connect to host s0923.com: could not connect to host sa.net: could not connect to host saferedirectlink.com: could not connect to host sallysubs.com: could not connect to host -salon.io: could not connect to host salzamt.tk: could not connect to host samaritan.tech: could not connect to host sanatrans.com: could not connect to host sarindia.com: could not connect to host sarindia.de: could not connect to host sarndipity.com: could not connect to host +satragreen.com: could not connect to host saudeintimadamulher.com.br: could not connect to host sbiewald.de: could not connect to host schaafenstrasse.koeln: could not connect to host schatmeester.be: could not connect to host sciencemonster.co.uk: could not connect to host scottainslie.me.uk: could not connect to host scripthost.org: could not connect to host scriptjunkie.us: could not connect to host sctm.at: could not connect to host seceye.cn: could not connect to host secitem.de: could not connect to host -secretpanties.com: could not connect to host sectest.ml: could not connect to host secure-automotive-cloud.com: could not connect to host secure-automotive-cloud.org: could not connect to host secureindia.co: could not connect to host secureobscure.com: could not connect to host security.xn--q9jyb4c: could not connect to host securityprimes.in: could not connect to host securitysoapbox.com: could not connect to host @@ -1285,34 +1271,33 @@ securoswiss.ch: could not connect to hos seefirm.com: could not connect to host seen.life: could not connect to host seleondar.ru: could not connect to host self-signed.com: could not connect to host selfmade4u.de: could not connect to host selfserverx.com: could not connect to host sellmoretires.com: could not connect to host seoscribe.net: could not connect to host -seproco.com: could not connect to host servecrypt.com: could not connect to host servecrypt.net: could not connect to host server-essentials.com: could not connect to host serverlauget.no: could not connect to host servfefe.com: could not connect to host seryovpn.com: could not connect to host sesha.co.za: could not connect to host sgtsnookums.net: could not connect to host shadex.net: could not connect to host shadowplus.net: could not connect to host shadowrocket.net: could not connect to host shanxiapark.com: could not connect to host sharevari.com: could not connect to host shavingks.com: could not connect to host +shellshock.eu: could not connect to host sheying.tm: could not connect to host shirakaba-cc.com: could not connect to host -shobhanayogsadan.com: could not connect to host shoppingreview.org: could not connect to host shortpath.com: could not connect to host shortr.li: could not connect to host shred.ch: could not connect to host shredoptics.ch: could not connect to host shuzicai.cn: could not connect to host shymeck.pw: could not connect to host siebens.net: could not connect to host @@ -1372,55 +1357,56 @@ statusbot.io: could not connect to host steffi-in-australien.com: could not connect to host steven-bennett.com: could not connect to host stickswag.cf: could not connect to host stilettomoda.com.br: could not connect to host stonemanbrasil.com.br: could not connect to host stpip.com: could not connect to host streams.dyndns.org: could not connect to host stressfreehousehold.com: could not connect to host -student.andover.edu: could not connect to host stupendous.net: could not connect to host stylle.me: could not connect to host sudo.im: could not connect to host sudosu.fr: could not connect to host sulek.eu: could not connect to host suneilpatel.com: could not connect to host sunfireshop.com.br: could not connect to host sunxchina.com: could not connect to host -superbowlkneel.com: could not connect to host superpase.com: could not connect to host surasak.io: could not connect to host surasak.org: could not connect to host suspiciousdarknet.xyz: could not connect to host sussexwebdesigns.com: could not connect to host suts.co.uk: could not connect to host swaggerdile.com: could not connect to host t3rror.net: could not connect to host takusan.ru: could not connect to host talktwincities.com: could not connect to host tangyue.date: could not connect to host tangzhao.net: could not connect to host +tattvaayoga.com: could not connect to host tcpweb.net: could not connect to host tdsb.cf: could not connect to host tdsbhack.tk: could not connect to host tearoy.faith: could not connect to host tebieer.com: could not connect to host techask.it: could not connect to host techpit.us: could not connect to host telekollektiv.org: could not connect to host tenispopular.com: could not connect to host terra-x.net: could not connect to host terrax.net: could not connect to host testovaci.ml: could not connect to host tetsai.com: could not connect to host the-digitale.com: could not connect to host the-finance-blog.com: could not connect to host the-gist.io: could not connect to host +thecuriousdev.com: could not connect to host thedarkartsandcrafts.com: could not connect to host +theevergreen.me: could not connect to host thefox.co: could not connect to host thefox.com.fr: could not connect to host thefrk.xyz: could not connect to host thenrdhrd.nl: could not connect to host theprincegame.com: could not connect to host theprivacysolution.com: could not connect to host thermique.ch: could not connect to host thesehighsandlows.com: could not connect to host @@ -1429,16 +1415,17 @@ thewebdexter.com: could not connect to h thierryhayoz.ch: could not connect to host thinkcash.nl: could not connect to host threv.net: could not connect to host thunderfield-boat.co.uk: could not connect to host tianxicaipiao.win: could not connect to host tianxicp.com: could not connect to host timco.cloud: could not connect to host tink.network: could not connect to host +tmconnects.com: could not connect to host tnb-plattform.de: could not connect to host todosrv.com: could not connect to host tokoindo.top: could not connect to host tollsjekk.no: could not connect to host tomatenaufdenaugen.de: could not connect to host tomm.yt: could not connect to host tommounsey.com: could not connect to host topdetoxcleanse.com: could not connect to host @@ -1446,22 +1433,23 @@ topnotchendings.com: could not connect t tor2web.org: could not connect to host totallynotaserver.com: could not connect to host totalsystemcare.com: could not connect to host totch.de: could not connect to host totot.net: could not connect to host touch-up-net.com: could not connect to host toxicip.com: could not connect to host tpblist.xyz: could not connect to host -tradiz.org: could not connect to host traffictigers.com: could not connect to host trajano.net: could not connect to host transcendmotor.sg: could not connect to host +traumhuetten.de: could not connect to host travotion.com: could not connect to host treker.us: could not connect to host +trentmaydew.com: could not connect to host tristanfarkas.one: could not connect to host trynowrinkleseyeserum.com: could not connect to host tsaro.io: could not connect to host tsurezurematome.ga: could not connect to host tucidi.net: could not connect to host tucnak.eu: could not connect to host tumelum.de: could not connect to host tupizm.com: could not connect to host @@ -1492,55 +1480,55 @@ urcentral.org: could not connect to host uscp8.com: could not connect to host usportsgo.com: could not connect to host uwesander.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119" data: no] uygindir.ml: could not connect to host vaaddress.co: could not connect to host vacationfund.co: could not connect to host vadik.me: could not connect to host vaeplatform.com: could not connect to host -vaioswolke.xyz: could not connect to host valaeris.de: could not connect to host valecnatechnika.cz: could not connect to host valenhub.com: could not connect to host valenhub.es: could not connect to host vanderstraeten.dynv6.net: could not connect to host varela-electricite.fr: could not connect to host vayaport.com: could not connect to host +vbh2o.com: could not connect to host veilletechno-it.info: could not connect to host velen.io: could not connect to host venturavwparts.com: could not connect to host verdeandco.co.uk: could not connect to host versfin.net: could not connect to host veryyounglesbians.com: could not connect to host vgatest.nl: could not connect to host vicenage.com: could not connect to host videorullen.se: could not connect to host videov.tk: could not connect to host vidister.de: could not connect to host vikasbabyworld.de: could not connect to host vimeosucks.nyc: could not connect to host vinetalk.net: could not connect to host -virtualcustoms.tech: could not connect to host -vishwashantiyoga.com: could not connect to host visionthroughknowledge.com: could not connect to host visiontree.eu: could not connect to host vkino.com: could not connect to host vlogge.com: could not connect to host voeux.io: could not connect to host vogt.tech: could not connect to host volcain.io: could not connect to host vorlif.org: could not connect to host votresiteweb.ch: could not connect to host vrtouring.org: could not connect to host vsx.ch: could not connect to host vumetric.com: could not connect to host vxapps.com: could not connect to host w4.no: could not connect to host +w4nvu.org: could not connect to host wabifoggynuts.com: could not connect to host +wadidi.com: could not connect to host waixingrenfuli.vip: could not connect to host wanashi.com: could not connect to host wanda76.com: could not connect to host wanda78.com: could not connect to host wanda79.com: could not connect to host wanda96.com: could not connect to host wanda97.com: could not connect to host wanda98.com: could not connect to host @@ -1556,17 +1544,16 @@ webbson.net: could not connect to host webcatechism.com: could not connect to host webhackspro.com: could not connect to host webproject.rocks: could not connect to host webspotter.nl: could not connect to host webtar.info: could not connect to host webtech.com.br: could not connect to host webthings.com.br: could not connect to host wecanvisit.com: could not connect to host -weed.ren: could not connect to host weiler.xyz: could not connect to host wejumall.com: could not connect to host wekibe.de: could not connect to host welby.cat: could not connect to host wereldplanner.nl: could not connect to host werhatunsverraten.eu: could not connect to host wespeakgeek.co.za: could not connect to host wetthost.com: could not connect to host @@ -1610,42 +1597,41 @@ xia100.xyz: could not connect to host xianguocy.com: could not connect to host xing.ml: could not connect to host xmiui.com: could not connect to host xn--8mr166hf6s.xn--fiqs8s: could not connect to host xn--erklderbarenben-slbh.dk: could not connect to host xn--srenpind-54a.dk: could not connect to host xn--t8j2a3042d.xyz: could not connect to host xn--xz1a.jp: could not connect to host +xn--y8j148r.xn--q9jyb4c: could not connect to host xn--yj8h0m.ws: could not connect to host xn--ykrp42k.com: could not connect to host xoda.pw: could not connect to host xpwn.cz: could not connect to host xqin.net: could not connect to host xuntaosms.com: could not connect to host xwaretech.info: could not connect to host y3451.com: could not connect to host yabrt.cn: could not connect to host yahoo.ax: could not connect to host yarchives.jp: could not connect to host yaucy.win: could not connect to host -ybresson.com: could not connect to host yd.io: could not connect to host yellowcar.website: could not connect to host yesfone.com.br: could not connect to host yffengshi.ml: could not connect to host yggdar.ga: could not connect to host yhori.xyz: could not connect to host yibin0831.com: could not connect to host ying299.com: could not connect to host ying299.net: could not connect to host yobst.tk: could not connect to host yoga.is-an-engineer.com: could not connect to host yotilabs.com: could not connect to host -youmonit.me: could not connect to host yourznc.com: could not connect to host yousite.by: could not connect to host yude.ml: could not connect to host yugege.cf: could not connect to host yum.beer: could not connect to host yux.fr: could not connect to host zachbolinger.com: could not connect to host zajazd.biz: could not connect to host @@ -1656,16 +1642,17 @@ zenghx.tk: could not connect to host zero-x-baadf00d.com: could not connect to host zerosource.net: could not connect to host zhangfangzhou.com: could not connect to host zhangsir.net: could not connect to host zhaochen.xyz: could not connect to host zhenmeish.com: could not connect to host zhiin.net: could not connect to host zhikin.com: could not connect to host +zhoujiashu.com: could not connect to host zobraz.cz: could not connect to host zokster.net: could not connect to host ztytian.com: could not connect to host zudomc.me: could not connect to host zuefle.net: could not connect to host zuehlcke.de: could not connect to host zuviel.space: could not connect to host zwy.me: could not connect to host @@ -1713,22 +1700,21 @@ 123test.fr: did not receive HSTS header 126ium.moe: could not connect to host 127011-networks.ch: did not receive HSTS header 12vpn.org: could not connect to host 12vpnchina.com: could not connect to host 1391kj.com: did not receive HSTS header 1396.cc: could not connect to host 1536.cf: could not connect to host 163pwd.com: could not connect to host -166166.com: could not connect to host 16deza.com: did not receive HSTS header 16packets.com: could not connect to host 173vpn.cn: could not connect to host 173vpns.com: did not receive HSTS header -173vpnv.com: did not receive HSTS header +173vpnv.com: could not connect to host 188betwarriors.co.uk: could not connect to host 188trafalgar.ca: did not receive HSTS header 195gm.com: could not connect to host 1a-jva.de: could not connect to host 1atic.com: could not connect to host 1co-jp.net: did not receive HSTS header 1cover.com: could not connect to host 1k8b.com: could not connect to host @@ -1750,27 +1736,27 @@ 25daysof.io: could not connect to host 2859cc.com: could not connect to host 2acbi-asso.fr: did not receive HSTS header 2bizi.ru: could not connect to host 2brokegirls.org: could not connect to host 2carpros.com: did not receive HSTS header 2intermediate.co.uk: did not receive HSTS header 2or3.tk: could not connect to host 2smart4food.com: did not receive HSTS header -2ss.jp: could not connect to host +2ss.jp: did not receive HSTS header 300651.ru: did not receive HSTS header 300mbmovie24.com: could not connect to host 300mbmovies4u.cc: could not connect to host 301.website: could not connect to host 302.nyc: could not connect to host 314166.com: could not connect to host 32ph.com: could not connect to host 33836.com: did not receive HSTS header 33drugstore.com: did not receive HSTS header -341.mg: did not receive HSTS header +341.mg: could not connect to host 3555aa.com: could not connect to host 35792.de: could not connect to host 360gradus.com: did not receive HSTS header 365.or.jp: could not connect to host 368mibn.com: could not connect to host 3778xl.com: did not receive HSTS header 38sihu.com: could not connect to host 39sihu.com: could not connect to host @@ -2010,32 +1996,32 @@ alariel.de: did not receive HSTS header alarme-gps.ch: could not connect to host alarmegps.ch: could not connect to host alarmsystemreviews.com: did not receive HSTS header alaundeil.xyz: could not connect to host albanien.guide: could not connect to host alberguecimballa.es: could not connect to host albertbogdanowicz.pl: did not receive HSTS header albertopimienta.com: did not receive HSTS header +alcantarafleuriste.com: did not receive HSTS header alcazaar.com: could not connect to host -alecpapierniak.com: did not receive HSTS header alecvannoten.be: did not receive HSTS header alenan.org: could not connect to host alessandroz.pro: could not connect to host alethearose.com: did not receive HSTS header alexandre.sh: did not receive HSTS header alexdodge.ca: could not connect to host alexkidd.de: did not receive HSTS header alfa24.pro: could not connect to host alfredxing.com: did not receive HSTS header alistairpialek.com: max-age too low: 86400 alittlebitcheeky.com: did not receive HSTS header aljaspod.net: did not receive HSTS header aljmz.com: could not connect to host -alkami.com: did not receive HSTS header +alkami.com: could not connect to host all-subtitles.com: could not connect to host all.tf: could not connect to host all4os.com: did not receive HSTS header alldaymonitoring.com: could not connect to host allegro-inc.com: did not receive HSTS header allinnote.com: could not connect to host allmbw.com: could not connect to host allmystery.de: did not receive HSTS header @@ -2118,16 +2104,17 @@ androled.fr: max-age too low: 5184000 androoz.se: could not connect to host andyclark.io: could not connect to host andymartin.cc: could not connect to host andyuk.org: did not receive HSTS header anfsanchezo.co: could not connect to host anfsanchezo.me: could not connect to host angeloroberto.ch: did not receive HSTS header anghami.com: did not receive HSTS header +anglesya.win: did not receive HSTS header anglictinatabor.cz: could not connect to host angryroute.com: could not connect to host animal-nature-human.com: did not receive HSTS header anime1video.tk: could not connect to host animeday.ml: could not connect to host animesfusion.com.br: could not connect to host animurecs.com: did not receive HSTS header aniplus.cf: could not connect to host @@ -2333,21 +2320,18 @@ av.de: did not receive HSTS header avadatravel.com: did not receive HSTS header avantmfg.com: did not receive HSTS header avec-ou-sans-ordonnance.fr: could not connect to host aveling-adventure.co.uk: did not receive HSTS header avepol.cz: did not receive HSTS header avepol.eu: did not receive HSTS header aviacao.pt: did not receive HSTS header aviodeals.com: could not connect to host -avmo.pw: did not receive HSTS header avqueen.cn: could not connect to host -avso.pw: did not receive HSTS header avus-automobile.com: did not receive HSTS header -avxo.pw: did not receive HSTS header awanderlustadventure.com: did not receive HSTS header awg-mode.de: did not receive HSTS header aww.moe: did not receive HSTS header axado.com.br: did not receive HSTS header axelchv.fr: did not receive HSTS header axeny.com: did not receive HSTS header axg.io: did not receive HSTS header axolsoft.com: max-age too low: 10540800 @@ -2407,17 +2391,16 @@ banchethai.com: could not connect to hos bandb.xyz: could not connect to host bandrcrafts.com: did not receive HSTS header bangzafran.com: did not receive HSTS header bankmilhas.com.br: did not receive HSTS header banksaround.com: did not receive HSTS header banqingdiao.com: could not connect to host baobaobooks.net: did not receive HSTS header baobeiglass.com: did not receive HSTS header -barbarafeldman.com: did not receive HSTS header barcel.com.mx: max-age too low: 86400 barely.sexy: did not receive HSTS header barrelhead.org: could not connect to host barrut.me: did not receive HSTS header barshout.co.uk: could not connect to host barss.io: could not connect to host bartbania.com: did not receive HSTS header barunisystems.com: could not connect to host @@ -2513,16 +2496,17 @@ betafive.net: could not connect to host betakah.net: could not connect to host betcafearena.ro: did not receive HSTS header bethanyduke.com: did not receive HSTS header bethditto.com: did not receive HSTS header betnet.fr: could not connect to host betobaccofree.gov: could not connect to host betplanning.it: did not receive HSTS header bets.de: did not receive HSTS header +betterlifemakers.com: max-age too low: 200 bettween.com: did not receive HSTS header betz.ro: did not receive HSTS header beulahtabernacle.com: could not connect to host bevapehappy.com: did not receive HSTS header bewerbungsfibel.de: did not receive HSTS header beyond-edge.com: could not connect to host beyuna.co.uk: did not receive HSTS header beyuna.eu: did not receive HSTS header @@ -2712,17 +2696,16 @@ branchtrack.com: did not receive HSTS he branchzero.com: did not receive HSTS header brandnewdays.nl: could not connect to host brandon.so: could not connect to host brandons.site: did not receive HSTS header brandred.net: could not connect to host brandspray.com: could not connect to host brasilien.guide: could not connect to host brasilmorar.com: could not connect to host -bravehearts.org.au: did not receive HSTS header bravz.de: could not connect to host brenden.net.au: could not connect to host bress.cloud: could not connect to host brettpemberton.xyz: did not receive HSTS header brickoo.com: could not connect to host brickyardbuffalo.com: did not receive HSTS header bridholm.se: could not connect to host brightstarkids.co.uk: did not receive HSTS header @@ -2742,17 +2725,16 @@ brunohenc.from.hr: could not connect to brunoonline.co.uk: could not connect to host bryn.xyz: could not connect to host bs12v.ru: did not receive HSTS header bsdtips.com: could not connect to host bsklabels.com: did not receive HSTS header btc-e.com: did not receive HSTS header btcdlc.com: could not connect to host btcpot.ltd: did not receive HSTS header -btio.pw: did not receive HSTS header buben.tech: did not receive HSTS header bubulazi.com: did not receive HSTS header bubulazy.com: did not receive HSTS header buch-cuber.de: max-age too low: 0 buchheld.at: did not receive HSTS header bucket.tk: could not connect to host budgetthostels.nl: did not receive HSTS header budskap.eu: could not connect to host @@ -2801,17 +2783,16 @@ busold.ws: could not connect to host bustimes.org.uk: did not receive HSTS header butchersworkshop.com: did not receive HSTS header butian518.com: did not receive HSTS header buttercoin.com: could not connect to host butterfieldstraining.com: did not receive HSTS header buvinghausen.com: max-age too low: 86400 buybaby.eu: did not receive HSTS header buyfox.de: did not receive HSTS header -buynowdepot.com: did not receive HSTS header buzzconcert.com: could not connect to host buzztelco.com.au: did not receive HSTS header bw81.xyz: could not connect to host bwear4all.de: could not connect to host by4cqb.cn: could not connect to host bydisk.com: could not connect to host bynumlaw.net: did not receive HSTS header bypassed.bid: could not connect to host @@ -3063,17 +3044,16 @@ ci-labo.com.tw: max-age too low: 7889238 cidr.ml: could not connect to host cienbeaute-lidl.fr: did not receive HSTS header cigarblogs.net: could not connect to host cigi.site: could not connect to host ciicutini.ro: did not receive HSTS header cim2b.de: could not connect to host cimalando.eu: could not connect to host cinartelorgu.com: did not receive HSTS header -cinema5.ru: did not receive HSTS header cintdirect.com: could not connect to host cioconference.co.nz: could not connect to host ciplanutrition.com: did not receive HSTS header ciscohomeanalytics.com: could not connect to host ciscommerce.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119" data: no] citiagent.cz: could not connect to host cityoflaurel.org: did not receive HSTS header cium.ru: could not connect to host @@ -3141,16 +3121,17 @@ cmc-versand.de: did not receive HSTS hea cmci.dk: did not receive HSTS header cmsbattle.com: could not connect to host cmscafe.ru: did not receive HSTS header cmso-cal.com: could not connect to host cncn.us: did not receive HSTS header co-driversphoto.se: could not connect to host coach-sportif.paris: could not connect to host cobrax.net: could not connect to host +cocalc.com: did not receive HSTS header cocktailfuture.fr: could not connect to host cocolovesdaddy.com: could not connect to host codabix.com: did not receive HSTS header codabix.de: could not connect to host codabix.net: could not connect to host code-35.com: could not connect to host code-digsite.com: could not connect to host code-judge.tk: did not receive HSTS header @@ -3213,16 +3194,17 @@ comparetravelinsurance.com.au: did not r compassionate-biology.com: could not connect to host compiledworks.com: could not connect to host completesportperformance.com: did not receive HSTS header completionist.audio: could not connect to host complymd.com: did not receive HSTS header compsmag.com: did not receive HSTS header compucorner.com.mx: could not connect to host computertal.de: could not connect to host +comyuno.com: did not receive HSTS header concentrade.de: did not receive HSTS header concord-group.co.jp: did not receive HSTS header confirm365.com: could not connect to host conflux.tw: did not receive HSTS header conformal.com: could not connect to host confucio.cl: did not receive HSTS header congz.me: could not connect to host conjugacao.com.br: did not receive HSTS header @@ -3304,16 +3286,17 @@ crazifyngers.com: could not connect to h crazy-crawler.de: did not receive HSTS header crazycen.com: did not receive HSTS header crazycraftland.de: could not connect to host crazycraftland.net: did not receive HSTS header crazyhotseeds.com: did not receive HSTS header crbug.com: did not receive HSTS header (error ignored - included regardless) creaescola.com: did not receive HSTS header create-test-publish.co.uk: could not connect to host +creative-coder.de: did not receive HSTS header creativeapple.ltd: did not receive HSTS header creativeartifice.com: did not receive HSTS header creativephysics.ml: could not connect to host creativeplayuk.com: did not receive HSTS header crecket.me: could not connect to host creditclear.com.au: did not receive HSTS header crendontech.com: could not connect to host crestoncottage.com: could not connect to host @@ -3504,16 +3487,17 @@ dcl.re: did not receive HSTS header dcpower.eu: max-age too low: 600 dctxf.com: did not receive HSTS header dcuofriends.net: could not connect to host dcurt.is: did not receive HSTS header dcw.io: did not receive HSTS header ddatsh.com: could not connect to host ddepot.us: did not receive HSTS header deadsoul.net: max-age too low: 0 +dealbanana.fi: did not receive HSTS header debank.tv: did not receive HSTS header debatch.se: could not connect to host debian-vhost.de: did not receive HSTS header debiton.dk: could not connect to host debtkit.co.uk: did not receive HSTS header debtprotectionreporting.com: did not receive HSTS header decafu.co: could not connect to host decesus.com: could not connect to host @@ -3606,16 +3590,17 @@ diagnosia.com: did not receive HSTS head diagonale-deco.fr: did not receive HSTS header diamondcare.com.br: could not connect to host dianlujitao.com: did not receive HSTS header diannaobos.com: did not receive HSTS header dicando.com: could not connect to host dicelab.co.uk: could not connect to host dicionariofinanceiro.com: did not receive HSTS header dicionariopopular.com: did not receive HSTS header +dicoding.com: did not receive HSTS header dieb.photo: could not connect to host diejanssens.net: did not receive HSTS header dierenkruiden.nl: could not connect to host diewebstube.de: could not connect to host diezel.com: could not connect to host diferenca.com: did not receive HSTS header digired.xyz: could not connect to host digitalbank.kz: could not connect to host @@ -3800,17 +3785,16 @@ duerls.de: did not receive HSTS header dukec.me: did not receive HSTS header dullsir.com: could not connect to host dune.io: did not receive HSTS header dunea.nl: did not receive HSTS header dungi.org: could not connect to host duole30.com: did not receive HSTS header duongpho.com: did not receive HSTS header duskopy.top: could not connect to host -dutchessuganda.com: did not receive HSTS header dutchrank.com: did not receive HSTS header duuu.ch: could not connect to host dycem-ns.com: did not receive HSTS header dycontrol.de: could not connect to host dylanscott.com.au: did not receive HSTS header dymersion.com: did not receive HSTS header dynamic-innovations.net: could not connect to host dynamize.solutions: did not receive HSTS header @@ -3837,17 +3821,16 @@ earthsystemprediction.gov: did not recei easez.net: did not receive HSTS header easthokkaido-5airport.jp: did not receive HSTS header easychiller.org: could not connect to host easykonto.de: could not connect to host easyplane.it: did not receive HSTS header eatlowcarb.de: did not receive HSTS header eatvisor.co.uk: could not connect to host eauclairecommerce.com: could not connect to host -eaucube.com: did not receive HSTS header ebankcbt.com: could not connect to host ebcs-solutions.com: did not receive HSTS header ebecs.com: did not receive HSTS header ebertek.com: did not receive HSTS header ebiografia.com: did not receive HSTS header ebiografias.com.br: could not connect to host ebolsa.com.br: did not receive HSTS header ebolsas.com.br: did not receive HSTS header @@ -3879,17 +3862,16 @@ edelsteincosmetic.com: did not receive H eden-mobility.co.uk: did not receive HSTS header eden-noel.at: could not connect to host edenaya.com: did not receive HSTS header edgereinvent.com: did not receive HSTS header ediscomp.sk: did not receive HSTS header edissecurity.sk: did not receive HSTS header edix.ru: could not connect to host edk.com.tr: did not receive HSTS header -edlinus.cn: did not receive HSTS header edmodo.com: did not receive HSTS header edpubs.gov: did not receive HSTS header eduardnikolenko.ru: could not connect to host educatio.tech: could not connect to host educourse.ga: could not connect to host eduvance.in: did not receive HSTS header eengezinswoning-in-alphen-aan-den-rijn-kopen.nl: could not connect to host eengezinswoning-in-de-friese-meren-kopen.nl: could not connect to host @@ -3912,16 +3894,17 @@ egge.com: max-age too low: 0 egit.co: could not connect to host ego-world.org: could not connect to host ehealthcounselor.com: could not connect to host ehipaadev.com: could not connect to host 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 +eifelindex.de: did not receive HSTS header eigo.work: could not connect to host einhorn.space: could not connect to host ekbanden.nl: could not connect to host eksik.com: did not receive HSTS header el-soul.com: did not receive HSTS header elaintehtaat.fi: could not connect to host elan-organics.com: did not receive HSTS header elanguest.pl: could not connect to host @@ -3953,17 +3936,17 @@ elohna.ch: did not receive HSTS header elpay.kz: did not receive HSTS header elpo.xyz: could not connect to host elsamakhin.com: could not connect to host elsemanario.com: did not receive HSTS header elsitar.com: could not connect to host email.lookout.com: could not connect to host email2rss.net: could not connect to host emanatepixels.com: could not connect to host -emanga.su: could not connect to host +emanga.su: did not receive HSTS header embroidered-stuff.com: could not connect to host emeldi-commerce.com: max-age too low: 0 emesolutions.net: did not receive HSTS header emiele.com.br: could not connect to host emilyhorsman.com: did not receive HSTS header eminovic.me: could not connect to host emjainteractive.com: did not receive HSTS header emjimadhu.com: could not connect to host @@ -4612,16 +4595,17 @@ gipsic.com: did not receive HSTS header gis3m.org: did not receive HSTS header gistfy.com: could not connect to host git-stuff.tk: could not connect to host github.party: could not connect to host givemyanswer.com: could not connect to host gizzo.sk: could not connect to host glass.google.com: did not receive HSTS header (error ignored - included regardless) glasslikes.com: did not receive HSTS header +glbg.eu: did not receive HSTS header glentakahashi.com: could not connect to host glittersjabloon.nl: did not receive HSTS header glitzmirror.com: could not connect to host global-adult-webcams.com: did not receive HSTS header globalado.com: could not connect to host globalbridge-japan.com: did not receive HSTS header globalexpert.co.nz: could not connect to host globalinsights.xyz: could not connect to host @@ -4669,41 +4653,42 @@ google: could not connect to host (error googlemail.com: did not receive HSTS header (error ignored - included regardless) googleplex.com: did not receive HSTS header (error ignored - included regardless) googley.fr: max-age too low: 0 goolok.com: could not connect to host gootlijsten.nl: did not receive HSTS header goozz.nl: did not receive HSTS header gopay.cz: did not receive HSTS header gopokego.cz: could not connect to host -gorgiaxx.com: did not receive HSTS header +gorgiaxx.com: could not connect to host gorilla-gym.site: could not connect to host gorillow.com: could not connect to host gosharewood.com: did not receive HSTS header goshop.cz: did not receive HSTS header gostream.asia: did not receive HSTS header gotgenes.com: could not connect to host goto.google.com: did not receive HSTS header (error ignored - included regardless) goto.msk.ru: did not receive HSTS header gotobrno.cz: did not receive HSTS header gotocloud.ru: did not receive HSTS header gotowned.org: max-age too low: 0 gotspot.com: could not connect to host gottcode.org: did not receive HSTS header +gottfriedfeyen.com: did not receive HSTS header gourmettia.com: did not receive HSTS header gouv.ovh: did not receive HSTS header gov.ax: could not connect to host goverage.org: did not receive HSTS header govillemo.ca: did not receive HSTS header gparent.org: did not receive HSTS header gpo.gov: did not receive HSTS header gpstuner.com: did not receive HSTS header graavaapi.elasticbeanstalk.com: could not connect to host gracebaking.com: max-age too low: 86400 -gracechurchpc.net: did not receive HSTS header +gracechurchpc.net: max-age too low: 2592000 gracesofgrief.com: could not connect to host grachtenpandverkopen.nl: could not connect to host grafitec.ru: did not receive HSTS header grana.com: did not receive HSTS header grandchamproofing.com: did not receive HSTS header grandlinecsk.ru: did not receive HSTS header grandmascookieblog.com: did not receive HSTS header grantedby.me: max-age too low: 0 @@ -4863,17 +4848,18 @@ haobo1111.com: could not connect to host haobo222.com: could not connect to host haobo2222.com: could not connect to host haobo4444.com: could not connect to host haobo5555.com: could not connect to host haobo6666.com: could not connect to host haobo7777.com: could not connect to host haomwei.com: could not connect to host haoyugao.com: could not connect to host -haozi.me: could not connect to host +haozi.me: did not receive HSTS header +happist.com: did not receive HSTS header happix.nl: did not receive HSTS header happycoder.net: did not receive HSTS header happyfabric.me: did not receive HSTS header happygastro.com: could not connect to host harambe.site: could not connect to host harbourweb.net: did not receive HSTS header hardline.xyz: could not connect to host haribosupermix.com: could not connect to host @@ -4883,17 +4869,17 @@ harmonycosmetic.com: max-age too low: 30 harristony.com: could not connect to host hartlep.eu: could not connect to host hartmancpa.com: did not receive HSTS header harvestrenewal.org: did not receive HSTS header harz.cloud: could not connect to host has.vision: could not connect to host hash-list.com: could not connect to host hasilocke.de: did not receive HSTS header -hasinase.de: did not receive HSTS header +hasinase.de: could not connect to host haste.ch: could not connect to host hastherebeenamassshooting.today: could not connect to host hatoko.net: could not connect to host haufschild.de: could not connect to host haurumcraft.net: could not connect to host hausarzt-stader-str.de: did not receive HSTS header haveeruexaminer.com: could not connect to host havenmoon.com: could not connect to host @@ -4983,22 +4969,22 @@ highsurf-miyazaki.com: could not connect hightower.eu: could not connect to host highvelocitydesign.com: could not connect to host hiisukun.com: could not connect to host hiitcentre.com: did not receive HSTS header hikariempire.com: could not connect to host hilinemerchandising.com: did not receive HSTS header hillcity.org.nz: did not receive HSTS header hilnu.tk: could not connect to host -himens.com: did not receive HSTS header hinkel-sohn.de: did not receive HSTS header hintergedanken.com: did not receive HSTS header hipercultura.com: did not receive HSTS header hiphopconvention.nl: could not connect to host hipnos.net: did not receive HSTS header +hiraku.me: did not receive HSTS header hirefitness.co.uk: did not receive HSTS header hirevets.gov: did not receive HSTS header hirokilog.com: could not connect to host hititgunesi-tr.com: did not receive HSTS header hitoy.org: did not receive HSTS header hittipps.com: did not receive HSTS header hiv.gov: did not receive HSTS header hlyue.com: did not receive HSTS header @@ -5161,17 +5147,16 @@ iemb.tk: did not receive HSTS header ierna.com: did not receive HSTS header ies-italia.it: did not receive HSTS header ies.id.lv: could not connect to host ievgenialehner.com: did not receive HSTS header ifad.org: did not receive HSTS header ifastuniversity.com: did not receive HSTS header ifleurs.com: could not connect to host ifx.ee: could not connect to host -igd.chat: did not receive HSTS header igforums.com: could not connect to host igiftcards.nl: did not receive HSTS header ignatisd.gr: did not receive HSTS header igule.net: could not connect to host ihotel.io: did not receive HSTS header ihrlotto.de: could not connect to host ihrnationalrat.ch: could not connect to host ihsbsd.me: could not connect to host @@ -5244,40 +5229,41 @@ infinitude.me.uk: could not connect to h infinitude.xyz: could not connect to host infinitudecloud.com: could not connect to host infinitusgaming.eu: could not connect to host infinity-freedom.com: could not connect to host infinity-freedom.de: could not connect to host infinity-lifestyle.de: could not connect to host inflatadays.co.uk: could not connect to host inflation.ml: could not connect to host -influo.com: did not receive HSTS header info-sys.tk: could not connect to host infoduv.fr: did not receive HSTS header infogrfx.com: did not receive HSTS header inforichjapan.com: did not receive HSTS header informaticapremium.com: did not receive HSTS header infosec.rip: could not connect to host infosoph.org: could not connect to host infotics.es: did not receive HSTS header infranix.eu: max-age too low: 7360000 infura.co.th: could not connect to host ingesol.fr: did not receive HSTS header inhelix.com: could not connect to host +inima.org: did not receive HSTS header injertoshorticolas.com: did not receive HSTS header injigo.com: did not receive HSTS header injust.cf: could not connect to host injust.ga: could not connect to host injust.gq: could not connect to host injust.ml: could not connect to host injust.tk: could not connect to host inked-guy.de: could not connect to host inkedguy.de: could not connect to host inkstory.gr: did not receive HSTS header inksupply.com: did not receive HSTS header +inkvisual.tk: did not receive HSTS header inleaked.com: could not connect to host inmyarea.com: max-age too low: 0 innophate-security.nl: could not connect to host inplacers.ru: did not receive HSTS header inquisitive.io: could not connect to host insane-bullets.com: could not connect to host insite-feedback.com: could not connect to host inspire-av.com: did not receive HSTS header @@ -5442,17 +5428,16 @@ jamesbywater.uk: could not connect to ho jamesconroyfinn.com: did not receive HSTS header jamescostian.com: could not connect to host jamesdoell.com: could not connect to host jamesdoylephoto.com: did not receive HSTS header jamesf.xyz: could not connect to host jamesforman.co.nz: did not receive HSTS header jameshale.me: did not receive HSTS header jamesmaurer.com: did not receive HSTS header -jamesmorrison.me: did not receive HSTS header jami.am: could not connect to host jamourtney.com: could not connect to host jan-cermak.cz: did not receive HSTS header jan-daniels.de: did not receive HSTS header jan-roenspies.de: could not connect to host jan27.org: did not receive HSTS header janario.me: could not connect to host janbrodda.de: max-age too low: 2592000 @@ -5549,27 +5534,26 @@ jisaku-homepage.com: did not receive HST jitsi.org: did not receive HSTS header jiyue.com: did not receive HSTS header jjf.org.au: did not receive HSTS header jka.io: did not receive HSTS header jkb.pics: could not connect to host jkbuster.com: could not connect to host jkng.eu: could not connect to host jko.works: could not connect to host -jm06.com: could not connect to host +jm06.com: did not receive HSTS header jm22.com: could not connect to host jmbelloteau.com: did not receive HSTS header jmdekker.it: could not connect to host jn1.me: did not receive HSTS header joakimalgroy.com: could not connect to host jobflyapp.com: could not connect to host jobshq.com: did not receive HSTS header jobss.co.uk: did not receive HSTS header joelgonewild.com: did not receive HSTS header -joeysmith.com: did not receive HSTS header johannes-sprink.de: could not connect to host johnbrownphotography.ch: did not receive HSTS header johncardell.com: did not receive HSTS header johners.me: could not connect to host johngaltgroup.com: did not receive HSTS header johnhgaunt.com: did not receive HSTS header johnmcgovern.com: max-age too low: 43200 johnrom.com: did not receive HSTS header @@ -5773,16 +5757,17 @@ kitsta.com: could not connect to host kiwiirc.com: max-age too low: 5256000 kiyo.space: could not connect to host kizil.net: could not connect to host kj1391.com: did not receive HSTS header kj1397.com: did not receive HSTS header kjaermaxi.me: did not receive HSTS header kjg-bachrain.de: could not connect to host klas.or.id: did not receive HSTS header +klausbrinch.dk: did not receive HSTS header klauwd.com: could not connect to host klaxn.org: could not connect to host klean-ritekc.com: did not receive HSTS header kleertjesvoordelig.nl: could not connect to host kleinerarchitekturfuehrer.de: could not connect to host klempnershop.eu: did not receive HSTS header kleppe.co: could not connect to host kletterkater.com: did not receive HSTS header @@ -5840,32 +5825,32 @@ kreavis.com: did not receive HSTS header kreb.io: could not connect to host kredietpaspoort.nl: did not receive HSTS header kredite.sale: could not connect to host krestanskydarek.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 119" data: no] kriegt.es: did not receive HSTS header kristjanrang.eu: did not receive HSTS header kristofferkoch.com: could not connect to host krizevackapajdasija.hr: could not connect to host -krizevci.info: did not receive HSTS header krmela.com: did not receive HSTS header kroetenfuchs.de: could not connect to host kroodle.nl: did not receive HSTS header kruegerrand-wert.de: did not receive HSTS header krunut.com: did not receive HSTS header krypteia.org: could not connect to host kryptomech.com: could not connect to host ksfh-mail.de: could not connect to host kstan.me: could not connect to host ksukelife.com: did not receive HSTS header kswriter.com: could not connect to host kuba.guide: could not connect to host kucom.it: could not connect to host kudo.co.id: did not receive HSTS header kueulangtahunanak.net: could not connect to host +kujadin.de: did not receive HSTS header kum.com: could not connect to host kummerlaender.eu: did not receive HSTS header kupelne-ptacek.sk: did not receive HSTS header kuppingercole.com: did not receive HSTS header kura.io: could not connect to host kurehun.org: could not connect to host kuro346.moe: could not connect to host kurtmclester.com: did not receive HSTS header @@ -5895,16 +5880,17 @@ labrasaq8.com: did not receive HSTS head labs.directory: could not connect to host labs.moscow: did not receive HSTS header lacarpesaintaubinoise.fr: did not receive HSTS header lacaverne.nl: could not connect to host lacentral.com: did not receive HSTS header lachlankidson.net: did not receive HSTS header lacledeslan.ninja: could not connect to host lacocinadelila.com: did not receive HSTS header +lacuevadechauvet.com: did not receive HSTS header ladylucks.co.uk: did not receive HSTS header laemen.com: did not receive HSTS header laemen.nl: could not connect to host laf.in.net: could not connect to host lagalerievirtuelle.fr: did not receive HSTS header lagier.xyz: could not connect to host lagoza.name: could not connect to host lainchan.org: did not receive HSTS header @@ -6016,17 +6002,16 @@ lgiswa.com.au: did not receive HSTS head lgrs.com.au: did not receive HSTS header lgts.se: could not connect to host liaillustr.at: did not receive HSTS header liam-w.com: did not receive HSTS header liamjack.fr: could not connect to host lianye.in: could not connect to host lianyexiuchang.in: could not connect to host liaoshuma.com: could not connect to host -liaronce.win: did not receive HSTS header libanco.com: could not connect to host libertyrp.org: did not receive HSTS header libfte.org: did not receive HSTS header library.linode.com: did not receive HSTS header librechan.net: could not connect to host libreduca.com: could not connect to host lichess4545.com: did not receive HSTS header lichess4545.tv: did not receive HSTS header @@ -6035,17 +6020,17 @@ liebach.me: did not receive HSTS header liemen.net: did not receive HSTS header life-time.nl: did not receive HSTS header lifecoach.tw: did not receive HSTS header lifecoachproviders.com: did not receive HSTS header lifeguard.aecom.com: did not receive HSTS header lifeinitsownway.com: could not connect to host lifeng.us: did not receive HSTS header lifeskillsdirect.com: did not receive HSTS header -lifetimemoneymachine.com: could not connect to host +lifetimemoneymachine.com: did not receive HSTS header lightarmory.com: could not connect to host lightning-ashe.com: did not receive HSTS header lightnovelsekai.com: did not receive HSTS header lightpaste.com: could not connect to host lightworx.io: did not receive HSTS header lila.pink: did not receive HSTS header lillepuu.com: did not receive HSTS header lillpopp.eu: did not receive HSTS header @@ -6074,17 +6059,16 @@ linorman1997.me: could not connect to ho linux-mint.cz: could not connect to host linuxandstuff.de: could not connect to host linuxeyecandy.com: could not connect to host linuxfixed.it: could not connect to host linuxforyou.com: could not connect to host linuxgeek.ro: could not connect to host linuxmint.cz: could not connect to host linuxmonitoring.net: did not receive HSTS header -lipo.lol: did not receive HSTS header liquid.solutions: did not receive HSTS header liquorsanthe.in: could not connect to host lisaco.de: could not connect to host lisbongold.com: did not receive HSTS header lisgade.dk: could not connect to host listafirmelor.com: could not connect to host listage.ovh: did not receive HSTS header litespeed.io: could not connect to host @@ -6141,17 +6125,16 @@ longboarding-ulm.de: could not connect t look-at-my.site: could not connect to host lookatmysco.re: did not receive HSTS header lookout.com: did not receive HSTS header looktothestars.org: did not receive HSTS header lookupclose.com: did not receive HSTS header lookzook.com: did not receive HSTS header loongsg.xyz: could not connect to host lordjevington.co.uk: could not connect to host -lost.host: did not receive HSTS header lostg.com: did not receive HSTS header lostinsecurity.com: could not connect to host lostinweb.eu: could not connect to host lothai.re: did not receive HSTS header lothuytinhsi.com: could not connect to host lotos-ag.ch: did not receive HSTS header lotsencafe.de: did not receive HSTS header lotuscloud.org: could not connect to host @@ -6178,16 +6161,17 @@ ltbytes.com: could not connect to host ltechnologygroup.com: did not receive HSTS header ltu.social: could not connect to host lucas-garte.com: did not receive HSTS header lucaterzini.com: could not connect to host luclu7.pw: could not connect to host ludwig.click: did not receive HSTS header lufthansaexperts.com: max-age too low: 2592000 luis-checa.com: could not connect to host +lukasoppermann.com: did not receive HSTS header lukaszdolan.com: did not receive HSTS header lukeng.me: could not connect to host lukonet.com: did not receive HSTS header luludapomerania.com: could not connect to host lumd.me: could not connect to host lumi.do: did not receive HSTS header lumi.pw: could not connect to host lunarift.com: could not connect to host @@ -6232,17 +6216,17 @@ macdj.tk: could not connect to host macedopesca.com.br: did not receive HSTS header macgeneral.de: did not receive HSTS header mach1club.com: did not receive HSTS header macsandcheesedreams.com: could not connect to host madars.org: did not receive HSTS header maddin.ga: could not connect to host madebyfalcon.co.uk: did not receive HSTS header madebymagnitude.com: did not receive HSTS header -madeinorder.com: could not connect to host +madeinorder.com: did not receive HSTS header mademoiselle-emma.be: did not receive HSTS header mademoiselle-emma.fr: did not receive HSTS header maderwin.com: did not receive HSTS header madesoftware.com.br: did not receive HSTS header mafamane.com: could not connect to host mafiareturns.com: max-age too low: 2592000 magazin3513.com: did not receive HSTS header magenx.com: did not receive HSTS header @@ -6264,16 +6248,17 @@ maintainerheaven.ch: could not connect t maisalto.ind.br: could not connect to host majesnix.org: did not receive HSTS header majncloud.tk: could not connect to host make-pizza.info: could not connect to host makedonien.guide: could not connect to host makeitdynamic.com: could not connect to host makerstuff.net: did not receive HSTS header makeshiftco.de: did not receive HSTS header +makeyourank.com: max-age too low: 200 maldiverna.guide: could not connect to host maleexcel.com: did not receive HSTS header malena.com.ua: did not receive HSTS header malerversand.de: did not receive HSTS header malfait.nl: could not connect to host maljaars-media.nl: could not connect to host malmstroms-co.se: could not connect to host maltes.website: could not connect to host @@ -6288,17 +6273,16 @@ mammothmail.org: could not connect to ho mammut.space: could not connect to host manaboutahor.se: did not receive HSTS header manage.zenpayroll.com: did not receive HSTS header manage4all.com: could not connect to host manageall.de: could not connect to host manageforall.com: could not connect to host manageforall.de: could not connect to host managemynetsuite.com: did not receive HSTS header -manageprojects.com: did not receive HSTS header manantial.mx: did not receive HSTS header mandpress.com: did not receive HSTS header mangazuki.co: did not receive HSTS header maniadeprazer.com.br: could not connect to host manifestbin.com: did not receive HSTS header manitasicily.com: did not receive HSTS header manningbrothers.com: did not receive HSTS header manns-solutions.com: did not receive HSTS header @@ -6421,30 +6405,30 @@ mclab.su: could not connect to host mclist.it: could not connect to host mclyr.com: did not receive HSTS header mcmillansedationdentistry.com: did not receive HSTS header mcooperlaw.com: did not receive HSTS header mcuexchange.com: did not receive HSTS header mdfnet.se: did not receive HSTS header mdkr.nl: did not receive HSTS header mdscomp.net: did not receive HSTS header -meadowfen.farm: could not connect to host meadowfenfarm.com: could not connect to host meamod.com: max-age too low: 0 meat-education.com: could not connect to host mebio.us: could not connect to host mecenat-cassous.com: did not receive HSTS header mechmk1.me: did not receive HSTS header medallia.io: could not connect to host mediacru.sh: could not connect to host mediafinancelab.org: did not receive HSTS header mediamag.am: max-age too low: 0 mediastorm.us: could not connect to host mediawikicn.org: could not connect to host medienservice-fritz.de: did not receive HSTS header +medifi.com: did not receive HSTS header medirich.co: could not connect to host meditek-dv.ru: did not receive HSTS header mediterenopmaandag.nl: did not receive HSTS header medm-test.com: could not connect to host medzinenews.com: did not receive HSTS header meedoennoordkop.nl: did not receive HSTS header meedoenzaanstad.nl: did not receive HSTS header meetfinch.com: could not connect to host @@ -6495,17 +6479,17 @@ metin2blog.de: did not receive HSTS head metis.pw: could not connect to host metrans-spedition.de: could not connect to host metricaid.com: did not receive HSTS header metzgerei-birkenhof.de: could not connect to host meucosmetico.com.br: could not connect to host meuemail.pro: could not connect to host mexbt.com: could not connect to host mexicanbusinessweb.mx: did not receive HSTS header -mexicansbook.ru: could not connect to host +mexicansbook.ru: did not receive HSTS header mfcatalin.com: could not connect to host mfedderke.com: could not connect to host mgdigital.fr: did not receive HSTS header mgiay.com: did not receive HSTS header mh-bloemen.co.jp: could not connect to host mhdsyarif.com: did not receive HSTS header mhealthdemocamp.com: could not connect to host mhertel.com: did not receive HSTS header @@ -6580,16 +6564,17 @@ minecraft-forums.ga: could not connect t minecraft-forums.gq: could not connect to host minecraftforum.ch: could not connect to host minecraftforums.cf: could not connect to host minecraftforums.gq: could not connect to host minecraftforums.ml: could not connect to host minecraftserverz.com: could not connect to host minecraftvoter.com: could not connect to host mineover.es: could not connect to host +minesouls.fr: did not receive HSTS header mingo.nl: max-age too low: 2592000 minh.at: could not connect to host mini-piraten.de: did not receive HSTS header minikneet.nl: could not connect to host minimaliston.com: did not receive HSTS header minimoo.se: could not connect to host minis-hip.de: max-age too low: 172800 minkondom.nu: did not receive HSTS header @@ -6689,17 +6674,17 @@ monitaure.io: could not connect to host monitman.com: did not receive HSTS header monsieurbureau.com: did not receive HSTS header montanacures.org: could not connect to host montanwerk.de: did not receive HSTS header montonicms.com: could not connect to host moon.lc: could not connect to host moonless.net: could not connect to host moonloupe.com: could not connect to host -moosemanstudios.com: did not receive HSTS header +moosemanstudios.com: could not connect to host moov.is: could not connect to host moparisthebest.biz: could not connect to host moparisthebest.info: could not connect to host moparscape.org: did not receive HSTS header mopsuite.club: could not connect to host mor.cloud: could not connect to host mor.gl: could not connect to host morethanadream.lv: could not connect to host @@ -6827,17 +6812,17 @@ mypension.ca: could not connect to host myphonebox.de: could not connect to host myraytech.net: did not receive HSTS header myrig.net: could not connect to host myrsa.in: did not receive HSTS header mysecretrewards.com: could not connect to host myspa.asia: did not receive HSTS header mystery-science-theater-3000.de: did not receive HSTS header mysteryblog.de: did not receive HSTS header -mythlogic.com: could not connect to host +mythlogic.com: did not receive HSTS header mythslegendscollection.com: did not receive HSTS header mytweeps.com: did not receive HSTS header myweb360.de: did not receive HSTS header myzone.com: did not receive HSTS header n-rickroll-e.pw: could not connect to host n0psled.nl: could not connect to host n2x.in: could not connect to host n4l.pw: could not connect to host @@ -7010,17 +6995,17 @@ nnote.net: did not receive HSTS header nnya.cat: could not connect to host no-ip.cz: did not receive HSTS header no17sifangjie.cc: could not connect to host nocallaghan.com: could not connect to host noclegi-online.pl: did not receive HSTS header noctinus.tk: could not connect to host node-core-app.com: could not connect to host nodebrewery.com: could not connect to host -nodelab-it.de: did not receive HSTS header +nodelab-it.de: could not connect to host nodespin.com: could not connect to host nodetemple.com: could not connect to host nodi.at: did not receive HSTS header noexpect.org: could not connect to host noima.com: did not receive HSTS header nolag.host: did not receive HSTS header nolberg.net: did not receive HSTS header nolimitsbook.de: did not receive HSTS header @@ -7091,16 +7076,17 @@ null.cat: did not receive HSTS header null.tips: could not connect to host nullpoint.at: did not receive HSTS header nullpro.com: could not connect to host numericacu.com: did not receive HSTS header numero-di-telefono.it: could not connect to host numista.com: did not receive HSTS header nuos.org: could not connect to host nuovamoda.al: did not receive HSTS header +nup.pw: did not receive HSTS header nurserybook.co: did not receive HSTS header nusatrip-api.com: did not receive HSTS header nutricuerpo.com: did not receive HSTS header nutritionculture.com: could not connect to host nutsandboltsmedia.com: did not receive HSTS header nwa.xyz: could not connect to host nweb.co.nz: could not connect to host nwork.media: could not connect to host @@ -7197,16 +7183,17 @@ onionsburg.com: could not connect to hos online-casino.eu: did not receive HSTS header online-pr.at: did not receive HSTS header online-wetten.de: did not receive HSTS header online.swedbank.se: did not receive HSTS header onlinecompliance.org: did not receive HSTS header onlinedemo.hu: could not connect to host onlinedeposit.us: could not connect to host onlinekasino.de: did not receive HSTS header +onlinepokerspelen.be: did not receive HSTS header onlinepollsph.com: could not connect to host onlineschadestaat.nl: did not receive HSTS header onlinespielothek.com: did not receive HSTS header onlinewetten.de: could not connect to host only-roses.co.uk: did not receive HSTS header only-roses.com: did not receive HSTS header onlyshopstation.com: did not receive HSTS header onlyzero.net: could not connect to host @@ -7229,16 +7216,17 @@ open-to-repair.fr: max-age too low: 8640 openas.org: could not connect to host openconcept.no: did not receive HSTS header opendesk.cc: did not receive HSTS header opengateway.fr: did not receive HSTS header openmind-shop.de: did not receive HSTS header openmtbmap.org: did not receive HSTS header openpriv.pw: could not connect to host openprovider.nl: did not receive HSTS header +openrtv.com: did not receive HSTS header openshift.redhat.com: did not receive HSTS header opensourcehouse.net: could not connect to host openspace.xxx: did not receive HSTS header opensrd.com: could not connect to host openssf.org: could not connect to host openxmpp.com: could not connect to host opim.ca: did not receive HSTS header opioids.gov: could not connect to host @@ -7256,16 +7244,17 @@ oracaodocredo.com.br: could not connect orbiosales.com: could not connect to host orbitcom.de: did not receive HSTS header orbograph-hrcm.com: could not connect to host order.one: could not connect to host ordereat.fr: could not connect to host orderlounge.de: did not receive HSTS header organic-superfood.net: could not connect to host organisationsberatung-jacobi.de: did not receive HSTS header +originalmockups.com: did not receive HSTS header originpc.com: did not receive HSTS header orioncustompcs.com: could not connect to host orionfcu.com: did not receive HSTS header orionrebellion.com: did not receive HSTS header orleika.ml: could not connect to host oroweatorganic.com: could not connect to host orthodoxy.lt: did not receive HSTS header osaiyuwu.com: could not connect to host @@ -7436,16 +7425,17 @@ peissen.com: [Exception... "Component re pekkapikkarainen.fi: did not receive HSTS header pekkarik.ru: could not connect to host peliculasaudiolatinoonline.com: could not connect to host peliseries24.com: did not receive HSTS header pemberton.at: did not receive HSTS header pengui.uk: could not connect to host penguinclientsystem.com: did not receive HSTS header pennylane.me.uk: did not receive HSTS header +pensanisso.com: max-age too low: 2592000 pentagram.me: did not receive HSTS header pentano.net: could not connect to host people-mozilla.org: could not connect to host peperiot.com: did not receive HSTS header pepperhead.com: did not receive HSTS header pepperworldhotshop.de: did not receive HSTS header pepsicoemployeepreferencesurvey.com: did not receive HSTS header perdel.cn: did not receive HSTS header @@ -7518,16 +7508,17 @@ pieterjangeeroms.me: could not connect t 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 pimpmymac.ru: did not receive HSTS header pims.global: did not receive HSTS header pinkyf.com: could not connect to host pippen.io: could not connect to host +pips.rocks: did not receive HSTS header pir9.com: did not receive HSTS header pirata.ga: did not receive HSTS header piratebit.tech: could not connect to host piratedb.com: could not connect to host piratedot.com: could not connect to host piratelist.online: could not connect to host piratenlogin.de: could not connect to host pirateproxy.pe: could not connect to host @@ -7585,16 +7576,17 @@ pluff.nl: did not receive HSTS header plur.com.au: did not receive HSTS header plus-digital.net: did not receive HSTS header plus-u.com.au: did not receive HSTS header plus.sandbox.google.com: did not receive HSTS header (error ignored - included regardless) plut.org: did not receive HSTS header plymouthsoftplay.co.uk: could not connect to host pm13-media.cz: could not connect to host pmac.pt: could not connect to host +pmemanager.fr: did not receive HSTS header pmnts.io: could not connect to host pnukee.com: did not receive HSTS header po.gl: did not receive HSTS header pocketsix.com: could not connect to host pocloud.homelinux.net: could not connect to host podiumsdiskussion.org: did not receive HSTS header poiema.com.sg: did not receive HSTS header poinsot.beer: could not connect to host @@ -7606,17 +7598,16 @@ pol.in.th: could not connect to host polarityschule.com: did not receive HSTS header pole.net.nz: could not connect to host polen.guide: could not connect to host policeiwitness.sg: could not connect to host polimat.org: could not connect to host politically-incorrect.xyz: could not connect to host politiewervingshop.nl: did not receive HSTS header politologos.org: did not receive HSTS header -polkam.go.id: max-age too low: 0 polycoise.com: could not connect to host polycrypt.us: could not connect to host polypho.nyc: could not connect to host pompefunebrilariviera.it: could not connect to host pompompoes.com: could not connect to host pontokay.com.br: could not connect to host pontualcomp.com: could not connect to host pony.today: did not receive HSTS header @@ -7668,16 +7659,17 @@ prefontaine.name: could not connect to h prego-shop.de: did not receive HSTS header preissler.co.uk: could not connect to host prelist.org: did not receive HSTS header prelogica.com.br: did not receive HSTS header prepandgo-euro.com: could not connect to host preppertactics.com: did not receive HSTS header presidentials2016.com: could not connect to host press-anime-nenkan.com: did not receive HSTS header +press-presse.ca: did not receive HSTS header pressenews.net: did not receive HSTS header pressfreedomfoundation.org: did not receive HSTS header prettygrouse.com: did not receive HSTS header prettyphotoart.de: did not receive HSTS header pretzlaff.info: did not receive HSTS header preworkout.me: could not connect to host prezola.com: did not receive HSTS header prgslab.net: could not connect to host @@ -7923,16 +7915,17 @@ reddit.com: did not receive HSTS header rede.ca: did not receive HSTS header redhorsemountainranch.com: did not receive HSTS header redicabo.de: could not connect to host redirectman.com: did not receive HSTS header redlatam.org: did not receive HSTS header redmbk.com: did not receive HSTS header redner.cc: did not receive HSTS header rednertv.de: did not receive HSTS header +redoakmedia.net: did not receive HSTS header redports.org: could not connect to host redra.ws: did not receive HSTS header redy.host: did not receive HSTS header referenten.org: did not receive HSTS header refitplanner.com: did not receive HSTS header reg.ru: did not receive HSTS header regaloaks.com: did not receive HSTS header regalpalms.com: did not receive HSTS header @@ -8304,29 +8297,31 @@ secondary-survivor.com: could not connec secondary-survivor.help: could not connect to host secondary-survivor.net: could not connect to host secondarysurvivor.help: could not connect to host secondarysurvivorportal.com: could not connect to host secondarysurvivorportal.help: could not connect to host secondbyte.nl: could not connect to host secondpay.nl: could not connect to host secondspace.ca: could not connect to host +secretnation.net: did not receive HSTS header sectia22.ro: did not receive HSTS header sectun.com: did not receive HSTS header secur3.us: did not receive HSTS header secure-games.us: could not connect to host secure.link: did not receive HSTS header securechat4.me: could not connect to host securedevelop.net: could not connect to host securefuture.nl: did not receive HSTS header secureradio.net: could not connect to host securesuisse.ch: could not connect to host securita.eu: did not receive HSTS header security-carpet.com: could not connect to host security-thoughts.org: could not connect to host +security.google.com: did not receive HSTS header (error ignored - included regardless) securityarena.com: did not receive HSTS header securitybsides.pl: did not receive HSTS header securityglance.com: could not connect to host securityinet.biz: did not receive HSTS header securityinet.net: did not receive HSTS header securityinet.org.il: did not receive HSTS header securiviera.ch: did not receive HSTS header sedoexpert.nl: could not connect to host @@ -8340,16 +8335,17 @@ sehenderson.com: did not receive HSTS he seiko-dojo.com: could not connect to host seiler-bad.de: did not receive HSTS header seizoushokoyuubangou.com: did not receive HSTS header sektor.team: could not connect to host selecadm.name: could not connect to host selectary.com: could not connect to host selectcertifiedautos.com: did not receive HSTS header selectruckscalltrackingreports.com: could not connect to host +selfdefenserx.com: did not receive HSTS header selfie-france.fr: could not connect to host selldorado.com: could not connect to host sellercritic.com: did not receive HSTS header sello.com: did not receive HSTS header sellocdn.com: could not connect to host sellservs.co.za: could not connect to host semaf.at: max-age too low: 86400 semantheme.fr: did not receive HSTS header @@ -8449,17 +8445,16 @@ shindorei.fr: could not connect to host shinebijoux.com.br: could not connect to host shinju.moe: could not connect to host shiona.xyz: could not connect to host shipinsight.com: did not receive HSTS header shipmile.com: did not receive HSTS header shipping24h.com: did not receive HSTS header shirosaki.org: could not connect to host shishkin.link: did not receive HSTS header -shishkin.us: did not receive HSTS header shitfest.info: did not receive HSTS header shitposting.life: could not connect to host shm-forum.org.uk: could not connect to host shocksrv.com: did not receive HSTS header shooshosha.com: could not connect to host shopherbal.co.za: did not receive HSTS header shopontarget.com: did not receive HSTS header shoppeno5.com: did not receive HSTS header @@ -8530,17 +8525,17 @@ sitennisclub.com: did not receive HSTS h siterip.org: could not connect to host sites.google.com: did not receive HSTS header (error ignored - included regardless) sitesforward.com: did not receive HSTS header sitesten.com: did not receive HSTS header sittinginoblivion.com: did not receive HSTS header sizingservers.be: did not receive HSTS header skandiabanken.no: did not receive HSTS header ski-insurance.com.au: did not receive HSTS header -skidstresser.com: did not receive HSTS header +skidstresser.com: could not connect to host skiinstructor.services: did not receive HSTS header skillproxy.com: could not connect to host skillproxy.net: could not connect to host skillproxy.org: could not connect to host skk.io: could not connect to host skoda-clever-lead.de: could not connect to host skoda-nurdiebesten.de: did not receive HSTS header skoda-service-team-cup.de: did not receive HSTS header @@ -8595,17 +8590,17 @@ smet.us: could not connect to host smexpt.com: did not receive HSTS header smileawei.com: did not receive HSTS header smimea.com: could not connect to host smirkingwhorefromhighgarden.pro: could not connect to host smittix.co.uk: did not receive HSTS header smkn1lengkong.sch.id: did not receive HSTS header smksi2.com: could not connect to host smksultanismail2.com: did not receive HSTS header -smkw.com: did not receive HSTS header +smol.cat: did not receive HSTS header smove.sg: did not receive HSTS header smplix.com: could not connect to host smtp.bz: did not receive HSTS header smusg.com: did not receive HSTS header smzsq.com: did not receive HSTS header snailing.org: could not connect to host snakehosting.dk: did not receive HSTS header snapworks.net: did not receive HSTS header @@ -9077,16 +9072,17 @@ tel-dithmarschen.de: did not receive HST teleallarme.ch: could not connect to host telefisk.org: did not receive HSTS header telefonnummer.online: could not connect to host telefoonnummerinfo.nl: could not connect to host telescam.com: could not connect to host teletechnology.in: did not receive HSTS header teletra.ru: could not connect to host tellingua.com: did not receive HSTS header +temasa.net: did not receive HSTS header temehu.com: did not receive HSTS header tempcraft.net: could not connect to host tempo.co: did not receive HSTS header tempodecolheita.com.br: could not connect to host tendertool.nl: could not connect to host tenerife-villas.com: did not receive HSTS header tengroup.com: max-age too low: 0 tenni.xyz: could not connect to host @@ -9208,17 +9204,16 @@ theweilai.com: did not receive HSTS head theworkingeye.nl: could not connect to host thewp.pro: could not connect to host thezonders.com: did not receive HSTS header thgros.fr: could not connect to host thierfreund.de: could not connect to host thinkcoding.de: could not connect to host thinkcoding.org: could not connect to host thinkdo.jp: could not connect to host -thinkingplanet.net: did not receive HSTS header thinlyveiledcontempt.com: could not connect to host thirdpartytrade.com: did not receive HSTS header thirty5.net: did not receive HSTS header thisisacompletetest.ga: could not connect to host thisisforager.com: could not connect to host thiswasalreadymyusername.tk: could not connect to host thiswebhost.com: did not receive HSTS header thkb.net: could not connect to host @@ -9264,42 +9259,40 @@ timeatlas.com: did not receive HSTS head timesavingplugins.com: could not connect to host timesavingplugins.net: could not connect to host timeserver0.de: could not connect to host timeserver1.de: could not connect to host timeserver2.de: could not connect to host timeserver3.de: could not connect to host timestamp.io: did not receive HSTS header timhjalpen.se: could not connect to host -timnash.co.uk: did not receive HSTS header +timnash.co.uk: max-age too low: 2592000 timotrans.de: did not receive HSTS header timotrans.eu: did not receive HSTS header timowi.de: could not connect to host timowi.net: could not connect to host timschubert.net: max-age too low: 172800 timvandekamp.nl: did not receive HSTS header timwittenberg.com: could not connect to host tinchbear.xyz: could not connect to host tindewen.net: could not connect to host -tintenprofi.de: max-age too low: 6307200 tipsyk.ru: could not connect to host tiredofeating.com: could not connect to host tiremoni.ch: did not receive HSTS header tirex.media: did not receive HSTS header titanlab.de: could not connect to host titanleaf.com: could not connect to host titouan.co: did not receive HSTS header tittarpuls.se: could not connect to host titties.ml: could not connect to host tjc.wiki: could not connect to host tjeckien.guide: could not connect to host tkappertjedemetamorfose.nl: could not connect to host tkarstens.de: did not receive HSTS header tkonstantopoulos.tk: could not connect to host -tlach.cz: did not receive HSTS header tlcdn.net: could not connect to host tlo.hosting: could not connect to host tlo.link: could not connect to host tlo.network: could not connect to host tls.li: could not connect to host tlsbv.nl: did not receive HSTS header tlshost.net: could not connect to host tm-solutions.eu: could not connect to host @@ -9319,17 +9312,16 @@ tobiasmathes.com: could not connect to h tobiasmathes.name: could not connect to host tobiasofficial.at: could not connect to host tobiassachs.cf: could not connect to host tobiassachs.tk: could not connect to host todapolitica.com: did not receive HSTS header todesschaf.org: could not connect to host todo.is: did not receive HSTS header todobazar.es: could not connect to host -todoscomciro.com: did not receive HSTS header tofu.im: could not connect to host togelonlinecommunity.com: did not receive HSTS header toka.sg: did not receive HSTS header tokenloan.com: could not connect to host tokoone.com: did not receive HSTS header tokotamz.net: could not connect to host tokotimbangandigitalmurah.web.id: did not receive HSTS header tokoyo.biz: could not connect to host @@ -9385,17 +9377,16 @@ tourpeer.com: did not receive HSTS heade toxme.se: did not receive HSTS header toyotamotala.se: could not connect to host tpbcdn.com: could not connect to host tpe-edu.com: could not connect to host tpms4u.at: did not receive HSTS header tppdebate.org: did not receive HSTS header tracetracker.com: did not receive HSTS header tracker-gps.ch: could not connect to host -trackmeet.io: did not receive HSTS header tracktivity.com.au: could not connect to host trade-smart.ru: could not connect to host tradingcentre.com.au: did not receive HSTS header tradinghope.com: could not connect to host traditional-knowledge.tk: did not receive HSTS header trafficquality.org: could not connect to host traindb.nl: did not receive HSTS header training4girls.ru: could not connect to host @@ -9526,17 +9517,17 @@ tyroproducts.eu: did not receive HSTS he tyroremotes.eu: did not receive HSTS header tyroremotes.no: did not receive HSTS header tyskland.guide: could not connect to host tzappa.net: could not connect to host u-blox.com: max-age too low: 0 uadp.pw: did not receive HSTS header uber.com.au: did not receive HSTS header uberfunction.com: did not receive HSTS header -ubicloud.de: could not connect to host +ubicloud.de: did not receive HSTS header ublox.com: did not receive HSTS header ubuntuhot.com: did not receive HSTS header uddi.ng: did not receive HSTS header uefeng.com: did not receive HSTS header uega.net: did not receive HSTS header ufgaming.com: did not receive HSTS header ufotable.uk: could not connect to host ugisgutless.com: did not receive HSTS header @@ -9603,17 +9594,17 @@ unisyssecurity.com: did not receive HSTS uniteasia.org: did not receive HSTS header unitlabs.net: could not connect to host unitrade-425.co.za: did not receive HSTS header university4industry.com: did not receive HSTS header univz.com: could not connect to host unixtime.pro: could not connect to host unknownbreakup.com: did not receive HSTS header unknownphenomena.net: could not connect to host -unleash.pw: max-age too low: 7889231 +unleash.pw: max-age too low: 2592000 unplugg3r.dk: could not connect to host unravel.ie: could not connect to host unsupervised.ca: did not receive HSTS header unsystem.net: could not connect to host unwiredbrain.com: could not connect to host unwomen.is: did not receive HSTS header unyq.me: did not receive HSTS header uonstaffhub.com: could not connect to host @@ -9625,17 +9616,16 @@ upldr.pw: could not connect to host uporoops.com: could not connect to host uprotect.it: could not connect to host upstats.eu: could not connect to host uptic.net: did not receive HSTS header ur-lauber.de: did not receive HSTS header urandom.eu.org: did not receive HSTS header urban-garden.lt: could not connect to host urban-garden.lv: could not connect to host -urbanstylestaging.com: did not receive HSTS header urbpic.com: could not connect to host urlchomp.com: did not receive HSTS header urphp.com: could not connect to host us-immigration.com: did not receive HSTS header usaab.org: did not receive HSTS header usbirthcertificate.com: could not connect to host usbtypeccompliant.com: could not connect to host uscitizenship.info: did not receive HSTS header @@ -9827,16 +9817,17 @@ volkden.com: could not connect to host vomitb.in: did not receive HSTS header vonavy-cukor.sk: could not connect to host vonavycukor.sk: could not connect to host vooreenveiligthuis.nl: did not receive HSTS header voorjou.com: did not receive HSTS header vorangerie.com: could not connect to host vortexhobbies.com: did not receive HSTS header vosjesweb.nl: could not connect to host +vowsy.club: did not receive HSTS header vox.vg: did not receive HSTS header vpip.net: could not connect to host vpl.me: did not receive HSTS header vpls.co.th: max-age too low: 0 vpls.com: did not receive HSTS header vpls.net: max-age too low: 0 vplssolutions.com: did not receive HSTS header vpn-byen.dk: did not receive HSTS header @@ -9903,17 +9894,16 @@ warrencreative.com: did not receive HSTS warsentech.com: could not connect to host warsh.moe: did not receive HSTS header warumsuchen.at: max-age too low: 0 watchium.com: did not receive HSTS header waterforlife.net.au: did not receive HSTS header waterpoint.com.br: could not connect to host watersportmarkt.net: did not receive HSTS header watsonhall.uk: could not connect to host -wattechweb.com: did not receive HSTS header wave.is: could not connect to host wavefloatrooms.com: did not receive HSTS header wavefrontsystemstech.com: could not connect to host wear2work.nl: did not receive HSTS header weaverhairextensions.nl: could not connect to host web-industry.fr: could not connect to host web-insider.net: could not connect to host web-vision.de: did not receive HSTS header @@ -10129,17 +10119,17 @@ www-1117.com: could not connect to host www-39988.com: did not receive HSTS header www-507.net: could not connect to host www-746.com: could not connect to host www-771122.com: did not receive HSTS header www-8003.com: did not receive HSTS header www-88599.com: did not receive HSTS header www-9995.com: did not receive HSTS header www-djbet.com: did not receive HSTS header -www-jinshavip.com: could not connect to host +www-jinshavip.com: did not receive HSTS header www.cueup.com: could not connect to host www.cyveillance.com: did not receive HSTS header www.developer.mydigipass.com: could not connect to host www.elanex.biz: did not receive HSTS header www.gamesdepartment.co.uk: did not receive HSTS header www.gmail.com: did not receive HSTS header (error ignored - included regardless) www.googlemail.com: did not receive HSTS header (error ignored - included regardless) www.gpo.gov: did not receive HSTS header @@ -10353,16 +10343,17 @@ zahyantechnologies.com: did not receive zakoncontrol.com: did not receive HSTS header zamorano.edu: could not connect to host zamos.ru: max-age too low: 0 zaneweb.org: could not connect to host zao.fi: could not connect to host zaoshanghao-dajia.rhcloud.com: could not connect to host zap.yt: did not receive HSTS header zarooba.com: could not connect to host +zary.me: did not receive HSTS header zavca.com: did not receive HSTS header zbasenem.pl: did not receive HSTS header zbigniewgalucki.eu: did not receive HSTS header zdravotnickasluzba.eu: could not connect to host zdrowiepaleo.pl: did not receive HSTS header zebbra.ro: did not receive HSTS header zebrababy.cn: could not connect to host zebry.nl: could not connect to host @@ -10423,16 +10414,17 @@ zking.ga: could not connect to host zlcp.com: did not receive HSTS header zmsastro.co.za: could not connect to host zmy.im: could not connect to host znacite.com: did not receive HSTS header znd.jp: did not receive HSTS header zocken.com: did not receive HSTS header zoe.vc: could not connect to host zohar.link: could not connect to host +zohar.wang: did not receive HSTS header zolotoy-standart.com.ua: did not receive HSTS header zomiac.pp.ua: could not connect to host zoneminder.com: did not receive HSTS header zoners.si: did not receive HSTS header zonky.io: could not connect to host zoo24.de: did not receive HSTS header zoofaeth.de: did not receive HSTS header zoomingin.net: max-age too low: 5184000
--- a/security/manager/ssl/nsSTSPreloadList.inc +++ b/security/manager/ssl/nsSTSPreloadList.inc @@ -3,17 +3,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /*****************************************************************************/ /* This is an automatically generated file. If you're not */ /* nsSiteSecurityService.cpp, you shouldn't be #including it. */ /*****************************************************************************/ #include <stdint.h> -const PRTime gPreloadListExpirationTime = INT64_C(1525905299167000); +const PRTime gPreloadListExpirationTime = INT64_C(1525990195432000); %% 0-1.party, 1 0.me.uk, 1 0005pay.com, 1 0010100.net, 1 00220022.net, 1 007-preisvergleich.de, 1 00881919.com, 1 @@ -137,16 +137,17 @@ 1464424382.rsc.cdn77.org, 1 14it.de, 1 14x3.de, 1 15-10.com, 1 1511774230.rsc.cdn77.org, 1 1590284872.rsc.cdn77.org, 1 1600esplanade.com, 1 16164f.com, 1 1644091933.rsc.cdn77.org, 1 +166166.com, 1 174.net.nz, 1 1750studios.com, 0 17hats.com, 1 1844329061.rsc.cdn77.org, 1 188522.com, 0 18888msc.com, 1 1888zr.com, 1 188dv.com, 1 @@ -1207,29 +1208,29 @@ alb-flirt.de, 1 albbounce.co.uk, 1 albersdruck.de, 1 albertathome.org, 1 albertify.xyz, 1 albion2.org, 1 alboweb.nl, 1 albuic.tk, 1 alca31.com, 1 -alcantarafleuriste.com, 1 alcatelonetouch.us, 1 alcatraz.online, 1 alchemia.co.il, 1 alchimic.ch, 1 alcnutrition.com, 1 alcorao.org, 1 aldes.co.za, 1 aldien.com.br, 1 aldorr.net, 1 aldous-huxley.com, 1 aleax.me, 1 alecpap.com, 1 +alecpapierniak.com, 1 alecrust.com, 1 aleksejjocic.tk, 1 aleksib.fi, 1 alela.fr, 1 aleph.land, 1 alertaenlinea.gov, 1 alertboxx.com, 1 alertonline.nl, 1 @@ -1693,17 +1694,16 @@ anetaben.nl, 1 anextraordinaryday.net, 1 anfenglish.com, 1 angel-body.com, 1 angelic47.com, 1 angelinahair.com, 1 angeloventuri.com, 1 anginf.de, 1 anglertanke.de, 1 -anglesya.win, 1 anglictina-sojcak.cz, 1 anglictinasojcak.cz, 1 anglingactive.co.uk, 1 angrapa.ru, 1 angristan.fr, 1 angrut.com, 1 angry.im, 1 angrydragonproductions.com, 1 @@ -2578,31 +2578,34 @@ averam.net, 1 averen.co.uk, 1 avg.club, 1 avi9526.pp.ua, 1 aviationstrategy.aero, 1 avid.blue, 1 avidcruiser.com, 1 aviv.nyc, 1 avmemo.com, 1 +avmo.pw, 1 avmoo.com, 1 avnet.ws, 1 avocode.com, 1 avonlearningcampus.com, 1 avotoma.com, 1 avova.de, 1 avpres.net, 1 +avso.pw, 1 avsox.com, 1 avspot.net, 1 avticket.ru, 0 avtoforex.ru, 1 avtogara-isperih.com, 1 avtosept.by, 1 avtovokzaly.ru, 1 avvcorda.com, 1 +avxo.pw, 1 awan.tech, 1 awaremi-tai.com, 1 awaro.net, 0 awbouncycastlehire.com, 1 awccanadianpharmacy.com, 0 awei.pub, 1 awen.me, 1 awesomebouncycastles.co.uk, 1 @@ -2833,16 +2836,17 @@ banri.me, 1 banxehoi.com, 1 baofengtech.com, 1 baosuckhoedoisong.net, 1 baptistboard.com, 1 baptiste-destombes.fr, 1 baptiste-peugnez.fr, 1 bar-harcourt.com, 1 barans2239.com, 1 +barbarafeldman.com, 1 barbarians.com, 1 barbaros.info, 1 barbate.fr, 1 barbershop-harmony.org, 1 barbosha.ru, 1 barbu.family, 1 barburas.com, 1 barclays.net, 1 @@ -3291,17 +3295,16 @@ betshoot.com, 1 betsonlinefree.com.au, 1 betsyshilling.com, 1 bett1.de, 1 better-bounce.co.uk, 1 better.fyi, 1 betterbabyshop.com.au, 1 bettercrypto.org, 1 betterhelp.com, 1 -betterlifemakers.com, 1 betterna.me, 1 betterscience.org, 1 bettertest.it, 1 betterworldinternational.org, 1 bettflaschen.ch, 1 bettingbusiness.ru, 1 bettolinokitchen.com, 1 bettrlifeapp.com, 1 @@ -4268,16 +4271,17 @@ brau-ingenieur.de, 1 braudoktor.de, 1 brauingenieur.de, 1 braunsteinpc.com, 1 braunwarth.info, 1 brava.bg, 1 brave-foods.ch, 1 brave-foods.com, 1 brave.com, 1 +bravehearts.org.au, 1 braviskindenjeugd.nl, 1 bravisziekenhuis.nl, 1 brazilian.dating, 1 brazillens.com, 1 brb.city, 1 brck.nl, 1 brd.ro, 1 breadandlife.org, 1 @@ -4445,16 +4449,17 @@ bsw-solution.de, 1 bt123.xyz, 1 bta.lv, 0 btc2secure.com, 1 btcarmory.com, 1 btcgo.nl, 1 btcontract.com, 1 btcpop.co, 1 btcycle.org, 1 +btio.pw, 1 btku.org, 1 btnissanparts.com, 1 btorrent.xyz, 1 btrb.ml, 1 btserv.de, 1 btsoft.eu, 1 btsow.com, 1 btth.pl, 1 @@ -4608,16 +4613,17 @@ buydissertations.com, 1 buyerdocs.com, 1 buyessay.org, 1 buyessays.net, 1 buyessayscheap.com, 1 buyharpoon.com, 1 buyinginvestmentproperty.com, 1 buyingsellingflorida.com, 1 buymindhack.com, 1 +buynowdepot.com, 0 buypapercheap.net, 1 buyseo.store, 1 buyshoe.org, 1 buytheway.co.za, 1 buzz.tools, 1 buzzconf.io, 1 buzzdeck.com, 1 buzzprint.it, 1 @@ -5667,16 +5673,17 @@ cigoteket.se, 1 cima-idf.fr, 1 cimballa.com, 1 cimfax.com, 1 cinafilm.com, 1 cine-music.de, 1 cine.to, 1 cinefilia.tk, 1 cinefilzonen.se, 1 +cinema5.ru, 0 cinemaclub.co, 1 cinemysticism.com, 1 ciner.is, 1 cinerama.com.br, 1 cinnabon.com, 1 cinq-elements.com, 1 cinq-elements.fr, 1 cinq-elements.net, 1 @@ -5987,17 +5994,16 @@ coam.co, 1 coastline.net.au, 1 coatl-industries.com, 1 cobalt.io, 1 cobaltgp.com, 1 cobaltlp.com, 1 cobracastles.co.uk, 1 cocaine-import.agency, 1 cocaine.ninja, 1 -cocalc.com, 1 coccinellaskitchen.com, 1 coccinellaskitchen.de, 1 coccinellaskitchen.it, 1 coccolebenessere.it, 1 cocinoyo.com, 1 cock.li, 1 cockedey.in, 1 cocker.cc, 0 @@ -6259,17 +6265,16 @@ computerbase.de, 1 computeremergency.com.au, 0 computerhilfe-feucht.de, 1 computernetwerkwestland.nl, 1 computerslotopschool.nl, 1 computersystems.guru, 0 comssa.org.au, 1 comunidadmontepinar.es, 1 comw.cc, 1 -comyuno.com, 1 conalcorp.com, 1 conaudisa.com, 0 concept-web.ch, 1 conceptatelier.de, 1 conception.sk, 1 concertengine.com, 1 concerto.amsterdam, 1 conciliumnotaire.ca, 1 @@ -6597,17 +6602,16 @@ crea.bg, 1 crea.me, 1 creadstudy.com, 1 creamcastles.co.uk, 1 create-ls.jp, 1 create-together.nl, 1 createursdefilms.com, 1 creation-contemporaine.com, 1 creations-edita.com, 1 -creative-coder.de, 1 creative-wave.fr, 1 creativebites.de, 1 creativecaptiv.es, 1 creativecommons.cl, 1 creativecommons.gr, 1 creativecommons.org, 1 creativecommonscatpictures.com, 1 creativedigital.co.nz, 1 @@ -6754,17 +6758,17 @@ cscau.com, 1 cselzer.com, 0 csengle.de, 1 csfd.cz, 1 csfloors.co.uk, 1 csfm.com, 1 csgo.help, 1 csgo.su, 1 csgo77.com, 1 -csgogamers.com, 1 +csgogamers.com, 0 csgohandouts.com, 1 csgotwister.com, 1 csharpmarc.net, 1 cshopify.com, 1 csilies.de, 1 csinfo.us, 1 csinterstargeneve.ch, 1 cskentertainment.co.uk, 1 @@ -7382,17 +7386,16 @@ deai-life.biz, 1 deaktualisierung.org, 0 dealapp.nl, 1 dealbanana.at, 1 dealbanana.be, 1 dealbanana.ch, 1 dealbanana.co.uk, 1 dealbanana.com, 1 dealbanana.de, 1 -dealbanana.fi, 1 dealbanana.fr, 1 dealbanana.it, 1 dealbanana.se, 1 dealcruiser.nl, 1 dealinflatables.co.uk, 1 dealpass.no, 1 deamuseum.org, 1 deanbank.com, 1 @@ -7818,17 +7821,16 @@ dicionario.org, 1 dicionariodegirias.com.br, 1 dicionariodelatim.com.br, 1 dicionariodenomesproprios.com.br, 1 dicionariodesimbolos.com.br, 1 dicionarioetimologico.com.br, 1 dick.red, 1 dickieslife.com, 1 dickpics.ru, 1 -dicoding.com, 1 didacte.com, 1 didche.net, 1 diddens.de, 1 didierlaumen.be, 1 didikhari.web.id, 1 die-besten-weisheiten.de, 1 die-blahuts.de, 1 die-borts.ch, 1 @@ -8620,16 +8622,17 @@ duriaux-dentiste.ch, 1 durys.be, 1 dusmomente.com, 1 dustri.org, 1 dustycloth.com, 1 dustygroove.com, 1 dustyspokesbnb.ca, 1 dutch.desi, 1 dutch1.nl, 1 +dutchessuganda.com, 1 dutchrank.nl, 1 dutchwanderers.nl, 1 dutchweballiance.nl, 1 dutyfreeonboard.com, 1 duyao.de, 0 dv189.com, 1 dvbris.co.uk, 1 dvbris.com, 1 @@ -8772,16 +8775,17 @@ eat-the-world.ch, 1 eatery.co.il, 1 eatfitoutlet.com.br, 1 eaton-works.com, 1 eatry.io, 1 eatsleeprepeat.net, 1 eatson.com, 1 eattherich.us, 1 eatz.com, 1 +eaucube.com, 1 eauxdespleiades.ch, 1 eb-net.de, 1 eb7.jp, 1 ebanking.indovinabank.com.vn, 1 ebankingabersicher.ch, 1 ebankingbutsecure.ch, 1 ebankingentoutesecurite.ch, 1 ebankingmasicuro.ch, 1 @@ -8880,16 +8884,17 @@ edisonchee.com, 1 edisonlee55.com, 1 edisonluiz.com, 1 edisonnissanparts.com, 1 edit.yahoo.com, 0 edited.de, 1 edition-bambou.com, 1 edition-sonblom.de, 1 editoraacademiacrista.com.br, 1 +edlinus.cn, 1 edmundcelis.com, 1 edoss.co.za, 1 edp-collaborative.com, 1 edsh.de, 1 edsm.net, 1 edstep.com, 1 edtech-hub.com, 1 edtechwebb.com, 1 @@ -8989,17 +8994,16 @@ ehrlichesbier.de, 1 ehuber.info, 1 eichel.eu, 1 eichornenterprises.com, 1 eickemeyer.nl, 1 eickhof.co, 1 eickhof.us, 1 eickhofcolumbaria.com, 1 eidolons.org, 1 -eifelindex.de, 1 eiga-movie.com, 1 eigenbubi.de, 1 eighty-aid.com, 1 eightyfour.ca, 1 eigpropertyauctions.co.uk, 1 eilhan.com, 1 eimacs.com, 1 eimanavicius.lt, 1 @@ -9428,17 +9432,17 @@ epilis.gr, 1 epiphyte.network, 1 epistas.com, 1 epistas.de, 1 epitesz.co, 1 epiteugma.com, 1 epizentrum.work, 1 epizentrum.works, 1 epmcentroitalia.it, 1 -epoch.com, 0 +epoch.com, 1 epolitiker.com, 1 epos-distributor.co.uk, 1 eposbirmingham.co.uk, 1 eposbrighton.co.uk, 1 eposbristol.co.uk, 1 eposcardiff.co.uk, 1 eposcloud.net, 1 eposkent.co.uk, 1 @@ -11883,17 +11887,16 @@ glamour4you.de, 1 glasen-hardt.de, 1 glasfaser-im-hanseviertel.de, 1 glasgestaltung.biz, 1 glasner.photo, 1 glass.google.com, 1 glasschmuck-millefiori.de, 1 glavsudexpertiza.ru, 1 glazedmag.fr, 1 -glbg.eu, 1 glcastlekings.co.uk, 1 gleanview.com, 1 glencarbide.com, 1 glendarraghbouncycastles.co.uk, 1 glenhuntlyapartments.com.au, 1 glidingshop.cz, 1 glidingshop.de, 1 glidingshop.eu, 1 @@ -12082,17 +12085,16 @@ gotech.com.eg, 0 gothamlimo.com, 1 gothic.dating, 1 gotirupati.com, 0 goto.google.com, 1 goto.world, 1 gotomi.info, 1 gotoxy.at, 1 gottfridsberg.org, 1 -gottfriedfeyen.com, 1 goubi.me, 1 goudenharynck.be, 1 gouforit.com, 1 goukon.ru, 1 gouldcooksey.com, 1 goup.co, 1 goup.com.tr, 1 gouptime.ml, 1 @@ -12626,17 +12628,16 @@ hanxv.pw, 1 hanys.xyz, 1 hanzubon.jp, 1 hao-zhang.com, 1 haogoodair.ca, 1 haozhang.org, 1 hapijs.cn, 1 hapissl.com, 1 hapivm.com, 1 -happist.com, 0 happyagain.de, 1 happyagain.se, 1 happyandrelaxeddogs.eu, 0 happybounce.co.uk, 1 happycarb.de, 1 happydoq.ch, 1 happygadget.me, 1 happykidscastles.co.uk, 1 @@ -13117,16 +13118,17 @@ hill.selfip.net, 1 hillebrand.io, 1 hillsboroccpa.org, 1 hilnu.com, 1 hilti.ee, 0 hilti.kz, 0 hilti.lv, 0 hiltonarubabeachservices.com, 1 hiltonhyland.com, 1 +himens.com, 1 hindmanfuneralhomes.com, 1 hingle.me, 1 hinrich.de, 1 hintergrundbewegung.de, 1 hinterhofbu.de, 1 hintermeier-rae.at, 1 hinterposemuckel.de, 1 hintss.pw, 1 @@ -13138,17 +13140,16 @@ hippomovers.com, 1 hippopotamuses.org, 1 hips.com, 1 hipstercat.fr, 1 hiqfleet.co.uk, 1 hiqfranchise.co.uk, 1 hiqhub.co.uk, 1 hiqonline.co.uk, 1 hirake55.com, 1 -hiraku.me, 1 hiratake.xyz, 1 hire-a-coder.de, 1 hireabouncycastle.net, 1 hiresteve.ca, 1 hiresuccessstaffing.com, 1 hiretech.com, 1 hirezzportal.com, 1 hirotaka.org, 1 @@ -13591,17 +13592,17 @@ hunger.im, 1 hunter.io, 1 huntingdonbouncers.co.uk, 1 huntingdonlifesciences.com, 1 huntshomeinspections.com, 1 huongquynh.com, 1 hup.hu, 1 hupp.se, 1 hurd.is, 1 -huren.nl, 0 +huren.nl, 1 huroji.com, 1 hurricanelabs.com, 0 husakbau.at, 1 hushfile.it, 1 husic.net, 1 husky.xyz, 1 huskyduvercors.com, 1 huskyinc.us, 1 @@ -13857,16 +13858,17 @@ ifsac.org, 1 ifsclist.com, 1 ifsr.de, 1 iftrue.de, 1 ifxnet.com, 1 ifxor.com, 1 ifyou.live, 1 iga-semi.jp, 1 igamingforums.com, 1 +igd.chat, 1 igglabs.com, 1 iggprivate.com, 1 iggsoft.com, 1 iggsoftware.com, 1 igi.codes, 1 igiftcards.de, 1 igimusic.com, 1 igk.nz, 1 @@ -14144,16 +14146,17 @@ infinitybas.com, 1 infinityengine.org, 1 infinityepos.co.uk, 1 infirmieredevie.ch, 1 inflatablehire-scotland.co.uk, 1 inflatablesny.com, 1 inflatamania.com, 1 inflexsys.com, 1 influencerchampions.com, 1 +influo.com, 1 influxus.com, 0 infmed.com, 1 info-bay.com, 1 info-beamer.com, 1 info-d-74.com, 1 info-screen.me, 1 info-screw.com, 1 infocity-tech.fr, 1 @@ -14194,33 +14197,31 @@ inglesnarede.com.br, 1 ingo-schlueter.de, 1 ingoschlueter.de, 1 ingresscode.cn, 1 inhaltsangabe.de, 1 inheritestate.com, 1 inhive.group, 1 inhouseents.co.uk, 1 iniiter.com, 1 -inima.org, 1 inios.fr, 0 inishbofin.ie, 1 initq.net, 1 initramfs.io, 1 initrd.net, 1 inixal.com, 1 injust.eu.org, 1 injust.me, 1 ink.horse, 1 inkable.com.au, 1 inkbunny.net, 0 inkhor.se, 1 inkontriamoci.com, 1 inksay.com, 1 inkthemes.com, 1 -inkvisual.tk, 1 inline-sport.cz, 1 inlink.ee, 1 inmaps.xyz, 1 inmateintake.com, 1 inme.ga, 1 inmobillium.fr, 1 inmusrv.de, 1 innerfence.com, 1 @@ -14879,16 +14880,17 @@ jamesheald.com, 1 jameshemmings.co.uk, 1 jameshost.net, 1 jameshunt.us, 0 jamesj.me, 1 jamesknd.uk, 0 jamesmarsh.net, 1 jamesmcdonald.com, 0 jamesmilazzo.com, 1 +jamesmorrison.me, 1 jamesrains.com, 1 jamesrussellward.co.uk, 1 jamessmith.me.uk, 1 jameswarp.com, 1 jamhost.org, 1 jamielinux.com, 1 jamiemagee.co.uk, 1 jamiemagee.dk, 1 @@ -15254,16 +15256,17 @@ joelmarkhamphotography.com.au, 1 joelmunch.com, 1 joepitt.co.uk, 0 joerg-wellpott.de, 1 joerss.at, 1 joespaintingpgh.com, 1 joestead.codes, 1 joetyson.io, 1 joetyson.me, 1 +joeysmith.com, 1 jogi-server.de, 1 jogorama.com.br, 0 johanbissemattsson.se, 0 johand.io, 1 johanli.com, 1 johannaojanen.com, 1 johannes-bauer.com, 1 johannes-zinke.de, 1 @@ -16096,17 +16099,17 @@ kiragameforum.net, 1 kirainmoe.com, 1 kiraku.co, 1 kirbear.com, 1 kirche-dortmund-ost.de, 1 kirchen-im-web.de, 1 kirchengemeinde-markt-erlbach.de, 1 kircp.com, 1 kirei.se, 1 -kirig.ph, 1 +kirig.ph, 0 kirill.ws, 1 kirillpokrovsky.de, 1 kirinas.com, 1 kirkovsky.com, 1 kirrie.pe.kr, 1 kirsch-gestaltung.de, 1 kirschbaum.me, 1 kirstenbos.ca, 1 @@ -16165,17 +16168,16 @@ kl-diaetist.dk, 1 klaim.us, 1 klamathrestoration.gov, 1 klanggut.at, 1 klares-licht.de, 1 klarika.com, 1 klarmobil-empfehlen.de, 1 klasfauseweh.de, 1 klatschreime.de, 1 -klausbrinch.dk, 1 klausimas.lt, 1 klaver.it, 1 klaw.xyz, 1 kle.cz, 1 kleaning.by, 1 kleberstoff.xyz, 1 klebetape.de, 1 kledingrekken.nl, 1 @@ -16445,16 +16447,17 @@ kriptosec.com, 1 krislamoureux.com, 1 krismurray.co.uk, 1 krisstarkey.co.uk, 1 krist.club, 1 kristikala.nl, 1 kristinbailey.com, 1 kristofdv.be, 1 krizek.cc, 1 +krizevci.info, 1 krk-media.pl, 0 krmeni.cz, 1 krokedil.se, 1 krokodent.de, 1 kromamoveis.com.br, 1 kromonos.net, 1 kronaw.it, 1 krony.de, 1 @@ -16510,17 +16513,16 @@ kuechenplan.online, 1 kuechenprofi-group.de, 1 kuehndel.org, 1 kuehnel-bs.de, 1 kuehnel-online.eu, 1 kuehnel.org, 1 kuemmerlin.eu, 1 kuemmling.eu, 1 kuhn-elektrotechnik.de, 1 -kujadin.de, 1 kukal.cz, 1 kuketz-blog.de, 1 kuketz-security.de, 1 kuko-crews.org, 1 kulde.net, 1 kulivps.com, 1 kultmobil.se, 1 kuma.es, 1 @@ -16654,17 +16656,16 @@ lachlan.com, 1 lacicloud.net, 1 lacigf.org, 1 laclaque.ch, 1 lacledelareussite.com, 1 lacledeslan.com, 0 lacledor.ch, 1 laclefdor.ch, 1 lacliniquefinanciere.com, 1 -lacuevadechauvet.com, 1 lacyc3.eu, 1 ladbroke.net, 1 lady-2.jp, 1 ladybugjam.com, 1 ladylikeit.com, 1 laextra.mx, 1 lafayette-rushford.com, 1 lafeemam.fr, 1 @@ -17212,16 +17213,17 @@ liangbp.com, 1 lianwen.kim, 1 lianye1.cc, 1 lianye2.cc, 1 lianye3.cc, 1 lianye4.cc, 1 lianye5.cc, 1 lianye6.cc, 1 liaozheqi.cn, 1 +liaronce.win, 1 liautard.fr, 1 lib64.net, 1 libbitcoin.org, 1 libble.eu, 1 libdeer.so, 1 liberapay.com, 1 libertas-tech.com, 1 libmpq.org, 1 @@ -17408,16 +17410,17 @@ linvx.org, 1 linx.li, 1 linx.net, 1 linxmind.eu, 1 linzgau.de, 1 lionlyrics.com, 1 lionsdeal.com, 1 lipartydepot.com, 1 lipex.com, 1 +lipo.lol, 1 lipoabaltimore.org, 1 liqd.net, 1 liquid.cz, 1 liquidcomm.net, 1 liquidhost.co, 1 liquidinternet.co, 1 liquidradio.pro, 1 lirion.de, 1 @@ -17706,16 +17709,17 @@ loqyu.co, 1 lordgun.com, 1 lordofthebrick.com, 1 lore.azurewebsites.net, 1 lorenadumitrascu.ro, 1 loritaboegl.de, 1 losebellyfat.pro, 1 losless.fr, 1 loss.no, 1 +lost.host, 1 lostandcash.com, 1 lostarq.com, 1 lostingames.de, 1 lostkeys.co.uk, 1 lostserver.com, 1 lostwithdan.com, 1 loteks.de, 1 lothlorien.ca, 1 @@ -17855,17 +17859,16 @@ luk.earth, 1 luk.photo, 1 lukas-oppermann.de, 1 lukas-schauer.de, 1 lukas.im, 1 lukas2511.de, 1 lukasberan.com, 1 lukasberan.cz, 1 lukasfunk.com, 1 -lukasoppermann.com, 1 lukasoppermann.de, 1 lukasschauer.de, 1 lukasschick.de, 1 lukasunger.cz, 1 lukasunger.net, 1 lukaszorn.de, 1 lukasztkacz.com, 1 lukatz.de, 1 @@ -18148,17 +18151,16 @@ majkyto.cz, 1 makaleci.com, 1 makeaboldmove.com, 1 makedin.net, 1 makeit-so.de, 1 makem-bounce.co.uk, 1 makemejob.com, 1 makenaiyo-fx.com, 1 makeuplove.nl, 1 -makeyourank.com, 1 makeyourlaws.org, 1 makinen.ru, 1 makino.games, 1 makkusu.photo, 1 makowitz.cz, 1 maktoob.search.yahoo.com, 0 maku.edu.tr, 1 malachiteauth.com, 1 @@ -18218,16 +18220,17 @@ mamot.fr, 0 mamout.xyz, 1 man3s.jp, 1 manage.cm, 1 manage4all.de, 1 management-companie.ro, 1 management-ethics.com, 1 managementboek.nl, 1 managementfeedback.com, 1 +manageprojects.com, 0 manager-efficacement.com, 1 manager.linode.com, 0 managewp.org, 1 manalu.cz, 1 manatees.net, 1 manav-it.de, 1 manavgabhawala.com, 1 manawill.jp, 1 @@ -18715,16 +18718,17 @@ mdsave.com, 1 mdwftw.com, 1 mdx.no, 1 mdxdave.de, 1 mdxn.org, 1 me-center.com, 1 me-dc.com, 1 me-groups.com, 1 me.net.nz, 1 +meadowfen.farm, 1 meadowviewfarms.org, 1 mealgoo.com, 1 mealz.com, 0 meanevo.com, 0 meany.xyz, 1 meap.xyz, 1 measuretwice.com, 1 measureyourpenis.today, 1 @@ -18769,17 +18773,16 @@ mediawin.pl, 1 medic-world.com, 1 medicalcountermeasures.gov, 1 medicinesfast.com, 0 medicinia.com.br, 1 medicinskavranje.edu.rs, 1 medicocompetente.it, 1 medicoresponde.com.br, 1 medifab.online, 1 -medifi.com, 1 medireport.fr, 1 medium.com, 1 mediumraw.org, 1 mediweed.tk, 1 medlineplus.gov, 1 medo64.com, 1 medovea.ru, 1 medpics.com, 1 @@ -19019,17 +19022,17 @@ meusigno.com, 1 mevo.xyz, 1 mevs.cz, 1 mexican.dating, 1 mexicanjokes.net, 1 mexicom.org, 1 mexior.nl, 1 meyeraviation.com, 1 mf-fischer.de, 1 -mfgod.com, 0 +mfgod.com, 1 mfiles.pl, 1 mflodin.se, 1 mfrsgb45.org, 1 mft.global, 1 mfxbe.de, 1 mghiorzi.com.ar, 0 mgknet.com, 1 mgoessel.de, 1 @@ -19232,17 +19235,16 @@ minecraftforum.de, 1 minecraftforum.ovh, 1 minecrell.net, 1 minei.me, 1 minenash.com, 1 minepay.net, 1 minepic.org, 1 minepod.fr, 1 minerstat.com, 1 -minesouls.fr, 1 minez-nightswatch.com, 0 minf3-games.de, 1 mingming.info, 1 mingram.net, 1 mingwah.ch, 1 mingy.ddns.net, 1 mingyueli.com, 1 minhanossasenhora.com.br, 1 @@ -19746,17 +19748,17 @@ mpi-sa.fr, 1 mpintaamalabanna.it, 1 mplanetphl.fr, 1 mplant.io, 1 mplicka.cz, 1 mplusm.eu, 1 mpn.poker, 1 mpnpokertour.com, 1 mpodraza.pl, 1 -mpreserver.com, 0 +mpreserver.com, 1 mpserver12.org, 1 mpsgarage.com.au, 1 mpsoundcraft.com, 1 mpy.ovh, 1 mr-anderson.org, 1 mr-labo.jp, 1 mr-nachhilfe.de, 1 mr-wolf.nl, 1 @@ -20328,17 +20330,17 @@ nargileh.nl, 1 narindal.ch, 1 narko.space, 1 narmos.ch, 1 naro.se, 1 narodsovety.ru, 1 naroska.name, 1 narrativasdigitais.pt, 1 narrenverein-wolkenschieber.de, 1 -narthollis.net, 1 +narthollis.net, 0 nasarawanewsonline.com, 1 nasbi.pl, 1 nasbnation.com, 1 nascher.org, 0 nasmocopati.com, 1 nasrsolar.com, 1 nassi.me, 1 nastoletni.pl, 1 @@ -21232,17 +21234,16 @@ numero-aleatorio.com, 1 numero1.ch, 1 numerossanos.com.ar, 1 numis.tech, 1 numm.fr, 1 numwave.nl, 1 nunnenmacher.net, 1 nunnun.jp, 1 nunomoura.com, 1 -nup.pw, 1 nupef.org.br, 1 nuquery.com, 1 nuriacamaras.com, 1 nursejj.com, 1 nurses.dating, 1 nurture.be, 1 nuryahan.com.br, 1 nusku.biz, 1 @@ -21603,17 +21604,16 @@ onlinecasino.vlaanderen, 1 onlinecasinobluebook.com, 1 onlinecensorship.org, 1 onlinecollegeessay.com, 1 onlinefashion.it, 1 onlinelegalmarketing.com, 1 onlinelegalmedia.com, 1 onlinelighting.com.au, 1 onlinemarketingtraining.co.uk, 1 -onlinepokerspelen.be, 1 onlinerollout.de, 1 onlinestoreninjas.com, 1 onlineth.com, 0 onlinetravelmoney.co.uk, 1 onlineweblearning.com, 1 onlylebanon.net, 1 onmaps.de, 1 onmarketbookbuilds.com, 1 @@ -21695,17 +21695,16 @@ opennippon.com, 1 opennippon.ru, 1 openpictures.ch, 1 openquery.com.au, 1 openrainbow.com, 1 openrainbow.net, 1 openrainbow.org, 1 openrealestate.co, 1 openresty.com, 1 -openrtv.com, 1 opensource-cms.nl, 1 opensourcedmind.eu, 1 openspa.webhop.info, 1 openssl.org, 1 openstem.com.au, 1 openstreetmap.is, 1 opentexon.com, 1 opentrack.info, 1 @@ -21791,17 +21790,16 @@ organix.ma, 1 orgasmium.com, 1 orhideous.name, 1 orians.eu, 1 oribia.net, 1 oricejoc.com, 0 orientalart.nl, 1 origami.to, 1 origamika.com, 1 -originalmockups.com, 1 originalniknihy.cz, 1 orimex-mebel.ru, 1 orion-universe.com, 1 oriongames.eu, 1 orkestar-krizevci.hr, 1 orlandoprojects.com, 1 orleika.io, 1 orlives.de, 0 @@ -22447,17 +22445,16 @@ pengi.me, 1 pengisatelier.net, 1 pennergold.net, 1 pennyapp.io, 1 pennyparkerpaper.com, 1 penrithapartments.com.au, 1 pensacolawinterfest.org, 1 pensador.com, 1 pensador.info, 1 -pensanisso.com, 1 pensioenfonds-ey.nl, 1 pension-veldzigt.nl, 1 pension-waldesruh.de, 1 pensiunealido.ro, 1 pentandra.com, 1 pentest.blog, 1 pentest.nl, 1 pentesterlab.com, 1 @@ -22794,17 +22791,16 @@ pinterest.co.uk, 1 pinterest.com, 1 pinterest.de, 1 pinterest.engineering, 1 pinterest.ie, 1 pinterest.info, 1 pinterest.jp, 1 pioche.ovh, 1 pipenny.net, 1 -pips.rocks, 1 piranil.com, 1 pirate.trade, 1 pirateahoy.eu, 1 piratebayproxy.tf, 1 piraten-basel.ch, 1 piraten-bv-nord.de, 1 piratepay.io, 1 piratepay.ir, 1 @@ -23008,17 +23004,16 @@ pm-partners-management-dev.azurewebsites pm13.cz, 1 pm13.org, 1 pmalaty.com, 1 pmarques.info, 1 pmbc.org, 1 pmbremer.de, 1 pmconference.ch, 1 pmctire.com, 1 -pmemanager.fr, 1 pmessage.ch, 1 pmg-offshore-company.com, 1 pmg-purchase.com, 1 pmg-purchase.net, 1 pmklaassen.com, 1 pmoreau.org, 1 pmp-art.com, 1 pmponline.de, 1 @@ -23085,16 +23080,17 @@ policedriver.com, 1 polis.or.at, 1 polis.to, 0 polish.directory, 1 polit.im, 1 politeiaudesa.org, 1 politic.org.ua, 1 politik-bei-uns.de, 1 polizeiwallis.ch, 1 +polkam.go.id, 0 pollet-ghijs.be, 1 pollet-ghys.be, 1 polletmera.com, 1 pollingplace.uk, 1 pollpodium.nl, 1 polsport.live, 1 poly-fast.com, 1 polyfill.io, 1 @@ -23340,17 +23336,16 @@ preparedcapital.com, 1 preparetheword.com, 0 presbee.com, 1 prescotonline.co.uk, 1 prescriptionrex.com, 1 present-m.com, 1 presentesdegrife.com.br, 1 president.bg, 1 prespanok.sk, 1 -press-presse.ca, 1 presscenter.jp, 1 presses.ch, 1 pressography.org, 1 pressrush.com, 1 pressureradio.com, 1 prestburyscouts.org.uk, 1 prestige-car-location.ch, 1 prestige-portal.com, 1 @@ -23848,17 +23843,17 @@ qlrace.com, 0 qm-marzahnnordwest.de, 1 qnatek.org, 1 qochealth.com, 1 qoohoot.com, 1 qoqo.us, 1 qotw.net, 1 qq-navi.com, 1 qqj.net, 1 -qqvips.com, 1 +qqvips.com, 0 qrcontagion.com, 1 qrforex.com, 1 qrlfinancial.com, 1 qrpth.eu, 1 qscloud.de, 1 qtl.me, 1 qto.com, 1 qto.net, 1 @@ -24306,17 +24301,16 @@ rediske.me, 1 redit.com, 1 redivis.com, 1 redizoo.com, 1 redletter.link, 1 redlink.de, 1 redneragenturen.org, 1 rednoseday.com, 1 rednsx.org, 1 -redoakmedia.net, 1 redperegrine.com, 1 redprice.by, 1 redshield.co, 1 redshiftcybersecurity.co.za, 1 redshiftlabs.com.au, 1 redshoeswalking.net, 1 redsicom.com, 1 redstickfestival.org, 1 @@ -25826,17 +25820,16 @@ sech.me, 1 secitem.at, 1 secitem.de, 1 secitem.eu, 1 secnews.gr, 1 secomo.org, 1 seconfig.sytes.net, 1 secpatrol.de, 1 secretar.is, 1 -secretnation.net, 1 secretofanah.com, 1 secretpanties.com, 1 secretsanta.fr, 1 secretserveronline.com, 1 secretum.tech, 1 sectelligence.nl, 1 sectest.ml, 1 sectio-aurea.org, 1 @@ -25949,17 +25942,16 @@ selectel.ru, 1 selectorders.com, 1 selegiline.com, 1 selent.me, 1 seleondar.ru, 1 self-evident.org, 1 self-signed.com, 1 self.nu, 1 selfassess.govt.nz, 1 -selfdefenserx.com, 1 selfdestruct.net, 1 selfhosters.com, 1 selfici.com, 1 selfici.cz, 1 selfishness.com, 1 selfloath.in, 1 selfmade4u.de, 1 selfserverx.com, 0 @@ -26302,16 +26294,17 @@ shipard.com, 1 shipard.cz, 1 shipcloud.io, 1 shirakaba-cc.com, 1 shiroki-k.net, 1 shirt2go.shop, 1 shirtsofholland.com, 1 shiseki.top, 1 shishamania.de, 1 +shishkin.us, 1 shishlik.net, 1 shitagi-shop.com, 1 shitbeast.institute, 1 shitmybradsays.com, 1 shitposts.se, 1 shitproductions.org, 1 shitsta.in, 1 shk.im, 1 @@ -26910,19 +26903,19 @@ smiledirectsales.com, 1 smilessoftplay.co.uk, 1 smime.io, 1 smimea.info, 1 smipty.cn, 1 smipty.com, 1 smit.com.ua, 1 smith.is, 1 smithandcanova.co.uk, 1 +smkw.com, 0 sml.lc, 1 smm.im, 1 -smol.cat, 1 smoo.st, 1 smoothgesturesplus.com, 1 smoothics.at, 1 smoothics.com, 1 smoothics.eu, 1 smoothics.mobi, 1 smoothics.net, 1 smorgasblog.ie, 1 @@ -28649,17 +28642,16 @@ teleogistic.net, 1 telepass.me, 1 telling.xyz, 1 telly.site, 1 tellygames.com, 1 teloo.pl, 1 telos-analytics.com, 1 telugu4u.net, 1 tem.li, 1 -temasa.net, 1 temizmama.com, 1 temp.pm, 1 tempdomain.ml, 1 template-parks.com, 1 templateinvaders.com, 1 temptraining.ru, 0 tempus-aquilae.de, 1 tenable.com.au, 1 @@ -29100,16 +29092,17 @@ thierrybasset.ch, 1 thierryhayoz.ch, 1 thijsslop.nl, 1 thijsvanderveen.net, 1 thingies.site, 1 thinkcash.nl, 1 thinkheaddesign.com, 1 thinkindifferent.net, 1 thinkingandcomputing.com, 1 +thinkingplanet.net, 1 thinklikeanentrepreneur.com, 1 thinkmarketing.ca, 1 thinkquality.nl, 1 thinkrealty.com, 1 thinkswap.com, 1 thinktux.net, 1 thirdworld.moe, 1 thiry-automobiles.net, 1 @@ -29299,16 +29292,17 @@ tink.network, 1 tinker.career, 1 tinkerboard.org, 1 tinkertry.com, 1 tinte24.de, 1 tintencenter.com, 1 tintenfix.net, 1 tintenfux.de, 1 tintenland.de, 1 +tintenprofi.de, 1 tinyhousefinance.com.au, 1 tinylan.com, 1 tinyspeck.com, 1 tinyssh.com, 1 tinyssh.org, 1 tinytownsoftplay.co.uk, 1 tinyvpn.net, 1 tinyvpn.org, 1 @@ -29350,16 +29344,17 @@ tkanemoto.com, 1 tkat.ch, 1 tkgpm.com, 1 tkjg.fi, 1 tkn.me, 1 tkn.tokyo, 1 tkts.cl, 1 tkusano.jp, 1 tkw01536.de, 1 +tlach.cz, 1 tlca.org, 1 tlcnet.info, 1 tlehseasyads.com, 1 tlo.xyz, 1 tloxygen.com, 1 tls-proxy.de, 1 tls.builders, 1 tls.care, 1 @@ -29432,16 +29427,17 @@ toccoig.com, 1 tochi-urikata.net, 1 todaciencia.com, 1 todamateria.com.br, 1 todaymeow.com, 1 todocracy.com, 1 todoescine.com, 1 todoist.com, 1 todon.fr, 1 +todoscomciro.com, 1 todosrv.com, 1 toeglhofer.at, 1 toeightycountries.com, 1 tofa-koeln.de, 1 tofe.io, 1 tofilmhub.com, 1 togech.jp, 1 togetter.com, 1 @@ -29720,16 +29716,17 @@ tracetracker.no, 1 tracfinancialservices.com, 1 tracinsurance.com, 1 track.plus, 1 trackchair.com, 1 trackdays4fun.com, 1 trackdomains.com, 1 trackersimulator.org, 1 trackeye.dk, 1 +trackmeet.io, 1 trackrecordpro.co.uk, 1 tractorpumps.com, 1 trade.gov.uk, 1 tradedesk.co.za, 1 tradeinvent.co.uk, 1 trademan.ky, 1 traderjoe-cloud.de, 1 tradietrove.com.au, 1 @@ -30474,16 +30471,17 @@ urban-karuizawa.co.jp, 1 urban.melbourne, 1 urbanesecurity.com, 1 urbanfi.sh, 1 urbanguerillas.de, 1 urbanietz-immobilien.de, 1 urbanmelbourne.info, 1 urbannewsservice.com, 1 urbansparrow.in, 1 +urbanstylestaging.com, 1 urbanwildlifealliance.org, 1 urbexdk.nl, 1 urcentral.com, 1 urcentral.net, 1 urcentral.org, 1 ureka.org, 1 urgences-valais.ch, 1 uripura.de, 1 @@ -31177,17 +31175,16 @@ voter-info.uk, 1 votercircle.com, 1 voterstartingpoint.uk, 1 votocek.cz, 1 votockova.cz, 1 votoot.com, 1 votre-site-internet.ch, 1 votresiteweb.ch, 1 vow.vn, 1 -vowsy.club, 1 voxfilmeonline.net, 1 voxml.com, 1 voxographe.com, 0 voyage-martinique.fr, 1 voyageforum.com, 1 voyagesaufildespages.be, 1 voyageschine.com, 1 voyagesdetective.fr, 1 @@ -31387,16 +31384,17 @@ watchweasel.com, 1 waterfedpole.com, 1 waterleeftinbeek.nl, 1 watermonitor.gov, 1 watersb.org, 1 waterschaplimburg.nl, 1 watertrails.io, 1 waterworkscondos.com, 1 watsonwork.me, 1 +wattechweb.com, 1 wave-ola.es, 1 wavesboardshop.com, 1 wavesoftime.com, 1 waveum.com, 1 wawak.pl, 1 waxdramatic.com, 1 waylaydesign.com, 1 wayne.cloud, 0 @@ -32050,17 +32048,17 @@ wm-talk.net, 1 wmaccess.com, 1 wmawri.com, 1 wmfusercontent.org, 1 wmkowa.de, 1 wmustore.com, 1 wnmed.com.au, 1 wnu.com, 1 wo-ist-elvira.net, 1 -wo2forum.nl, 0 +wo2forum.nl, 1 wobble.ninja, 1 wobblywotnotz.co.uk, 1 wochennummern.de, 1 wod-stavby.cz, 1 wodboss.com, 1 wodinaz.com, 1 wodka-division.de, 1 woelkchen.me, 1 @@ -33087,17 +33085,16 @@ zandcell.com, 1 zanthra.com, 1 zaoext.com, 1 zapier.com, 1 zappbuildapps.com, 0 zaratan.fr, 1 zargaripour.com, 1 zarmarket.org, 1 zarpo.com.br, 1 -zary.me, 1 zaufanatrzeciastrona.pl, 1 zavec.com.ec, 1 zavetaji.lv, 1 zawo-electric.de, 1 zbchen.com, 1 zberger.com, 1 zbetcheck.in, 1 zbp.at, 0 @@ -33249,17 +33246,16 @@ zlima12.com, 1 zmk.fr, 1 znation.nl, 1 zning.net.cn, 1 zobraz.cz, 1 zockenbiszumumfallen.de, 1 zodiacohouses.com, 1 zoeller.me, 1 zohar.shop, 1 -zohar.wang, 1 zoigl.club, 1 zojadravai.com, 1 zoki.art, 1 zokster.net, 1 zollihood.ch, 1 zolokar.xyz, 1 zombiesecured.com, 1 zomerschoen.nl, 1
--- a/services/sync/Weave.js +++ b/services/sync/Weave.js @@ -9,18 +9,17 @@ const Cu = Components.utils; Cu.import("resource://gre/modules/XPCOMUtils.jsm"); Cu.import("resource://gre/modules/Services.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "FileUtils", "resource://gre/modules/FileUtils.jsm"); XPCOMUtils.defineLazyGetter(this, "Utils", () => { return Cu.import("resource://services-sync/util.js", {}).Utils; }); -const SYNC_PREFS_BRANCH = "services.sync."; - +XPCOMUtils.defineLazyPreferenceGetter(this, "syncUsername", "services.sync.username"); /** * Sync's XPCOM service. * * It is named "Weave" for historical reasons. * * It's worth noting how Sync is lazily loaded. We register a timer that * loads Sync a few seconds after app startup. This is so Sync does not @@ -123,18 +122,17 @@ WeaveService.prototype = { * Whether Sync appears to be enabled. * * This returns true if we have an associated FxA account * * It does *not* perform a robust check to see if the client is working. * For that, you'll want to check Weave.Status.checkSetup(). */ get enabled() { - let prefs = Services.prefs.getBranch(SYNC_PREFS_BRANCH); - return prefs.prefHasUserValue("username"); + return !!syncUsername; } }; function AboutWeaveLog() {} AboutWeaveLog.prototype = { classID: Components.ID("{d28f8a0b-95da-48f4-b712-caf37097be41}"), QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule,
--- a/services/sync/tests/tps/all_tests.json +++ b/services/sync/tests/tps/all_tests.json @@ -16,17 +16,16 @@ "test_bug575423.js", "test_bug546807.js", "test_history_collision.js", "test_privbrw_passwords.js", "test_privbrw_tabs.js", "test_bookmarks_in_same_named_folder.js", "test_client_wipe.js", "test_special_tabs.js", - "test_addon_sanity.js", "test_addon_restartless_xpi.js", "test_addon_nonrestartless_xpi.js", "test_addon_reconciling.js", "test_addon_wipe.js", "test_existing_bookmarks.js" ] }
--- a/services/sync/tests/tps/test_addon_nonrestartless_xpi.js +++ b/services/sync/tests/tps/test_addon_nonrestartless_xpi.js @@ -25,29 +25,33 @@ var phases = { "phase16": "profile2" }; const id = "unsigned-xpi@tests.mozilla.org"; Phase("phase01", [ [Addons.verifyNot, [id]], [Addons.install, [id]], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase02", [ [Addons.verify, [id], STATE_ENABLED], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase03", [ [Addons.verifyNot, [id]], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase04", [ [Addons.verify, [id], STATE_ENABLED], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); // Now we disable the add-on Phase("phase05", [ [EnsureTracking], [Addons.setEnabled, [id], STATE_DISABLED], [Sync], [Addons.skipValidation] // Validation disabled due to bug 1380472 @@ -67,43 +71,51 @@ Phase("phase08", [ [Sync], [Addons.skipValidation] // Validation disabled due to bug 1380472 ]); // Now we re-enable it again. Phase("phase09", [ [EnsureTracking], [Addons.setEnabled, [id], STATE_ENABLED], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase10", [ [Addons.verify, [id], STATE_ENABLED], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase11", [ [Addons.verify, [id], STATE_DISABLED], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase12", [ [Addons.verify, [id], STATE_ENABLED], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); // And we uninstall it Phase("phase13", [ [EnsureTracking], [Addons.verify, [id], STATE_ENABLED], [Addons.uninstall, [id]], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase14", [ [Addons.verifyNot, [id]], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase15", [ [Addons.verify, [id], STATE_ENABLED], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]); Phase("phase16", [ [Addons.verifyNot, [id]], - [Sync] + [Sync], + [Addons.skipValidation] // Validation disabled due to bug 1427835 ]);
deleted file mode 100644 --- a/services/sync/tests/tps/test_addon_sanity.js +++ /dev/null @@ -1,30 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -/* - * The list of phases mapped to their corresponding profiles. The object - * here must be in strict JSON format, as it will get parsed by the Python - * testrunner (no single quotes, extra comma's, etc). - */ - -EnableEngines(["addons"]); - -var phases = { "phase1": "profile1", - "phase2": "profile1" }; - -const id = "unsigned-xpi@tests.mozilla.org"; - -Phase("phase1", [ - [Addons.install, [id]], - // Non-restartless add-on shouldn't be found after install. - [Addons.verifyNot, [id]], - - // But it should be marked for Sync. - [Sync] -]); - -Phase("phase2", [ - // Add-on should be present after restart - [Addons.verify, [id], STATE_ENABLED], - [Sync] // Sync to ensure everything is initialized enough for the addon validator to run -]);
--- a/servo/.taskcluster.yml +++ b/servo/.taskcluster.yml @@ -6,29 +6,32 @@ metadata: and embedded use. owner: '{{ event.head.user.email }}' source: '{{ event.head.repo.url }}' tasks: - provisionerId: '{{ taskcluster.docker.provisionerId }}' workerType: '{{ taskcluster.docker.workerType }}' extra: github: - events: [] + events: + - pull_request.opened + - pull_request.reopened + - pull_request.synchronize payload: maxRunTime: 3600 - image: servobrowser/servo-linux-dev + image: 'servobrowser/servo-linux-dev:servo-linux-build-deps-2017-06-30' command: - /bin/bash - '--login' - '-c' - '-x' - >- git clone {{event.head.repo.url}} servo && cd servo && git config advice.detachedHead false && git checkout {{event.head.sha}} && etc/ci/taskcluster-test.sh metadata: name: linux-tests description: Run Linux tests. owner: '{{ event.head.user.email }}' source: '{{ event.head.repo.url }}' - +allowPullRequests: public
--- a/servo/components/gfx/platform/freetype/android/font_list.rs +++ b/servo/components/gfx/platform/freetype/android/font_list.rs @@ -198,17 +198,17 @@ impl FontList { aliases: aliases }) } // Fonts expected to exist in Android devices. // Only used in the unlikely case where no font xml mapping files are found. fn fallback_font_families() -> Vec<FontFamily> { let alternatives = [ - ("san-serif", "Roboto-Regular.ttf"), + ("sans-serif", "Roboto-Regular.ttf"), ("Droid Sans", "DroidSans.ttf"), ]; alternatives.iter().filter(|item| { Path::new(&Self::font_absolute_path(item.1)).exists() }).map(|item| { FontFamily { name: item.0.into(),
--- a/servo/components/style/properties/gecko.mako.rs +++ b/servo/components/style/properties/gecko.mako.rs @@ -2943,18 +2943,18 @@ fn static_assert() { <%def name="impl_copy_animation_or_transition_value(type, ident, gecko_ffi_name)"> #[allow(non_snake_case)] pub fn copy_${type}_${ident}_from(&mut self, other: &Self) { self.gecko.m${type.capitalize()}s.ensure_len(other.gecko.m${type.capitalize()}s.len()); let count = other.gecko.m${type.capitalize()}${gecko_ffi_name}Count; self.gecko.m${type.capitalize()}${gecko_ffi_name}Count = count; - let iter = self.gecko.m${type.capitalize()}s.iter_mut().zip( - other.gecko.m${type.capitalize()}s.iter().take(count as usize).cycle() + let iter = self.gecko.m${type.capitalize()}s.iter_mut().take(count as usize).zip( + other.gecko.m${type.capitalize()}s.iter() ); for (ours, others) in iter { ours.m${gecko_ffi_name} = others.m${gecko_ffi_name}; } } #[allow(non_snake_case)] @@ -2977,17 +2977,17 @@ fn static_assert() { I::IntoIter: ExactSizeIterator + Clone { let v = v.into_iter(); debug_assert!(v.len() != 0); let input_len = v.len(); self.gecko.m${type.capitalize()}s.ensure_len(input_len); self.gecko.m${type.capitalize()}${gecko_ffi_name}Count = input_len as u32; - for (gecko, servo) in self.gecko.m${type.capitalize()}s.iter_mut().zip(v.cycle()) { + for (gecko, servo) in self.gecko.m${type.capitalize()}s.iter_mut().take(input_len as usize).zip(v) { gecko.m${gecko_ffi_name} = servo.seconds() * 1000.; } } #[allow(non_snake_case)] pub fn ${type}_${ident}_at(&self, index: usize) -> longhands::${type}_${ident}::computed_value::SingleComputedValue { use values::computed::Time; Time::from_seconds(self.gecko.m${type.capitalize()}s[index].m${gecko_ffi_name} / 1000.) @@ -3002,17 +3002,17 @@ fn static_assert() { I::IntoIter: ExactSizeIterator + Clone { let v = v.into_iter(); debug_assert!(v.len() != 0); let input_len = v.len(); self.gecko.m${type.capitalize()}s.ensure_len(input_len); self.gecko.m${type.capitalize()}TimingFunctionCount = input_len as u32; - for (gecko, servo) in self.gecko.m${type.capitalize()}s.iter_mut().zip(v.cycle()) { + for (gecko, servo) in self.gecko.m${type.capitalize()}s.iter_mut().take(input_len as usize).zip(v) { gecko.mTimingFunction = servo.into(); } } ${impl_animation_or_transition_count(type, 'timing_function', 'TimingFunction')} ${impl_copy_animation_or_transition_value(type, 'timing_function', 'TimingFunction')} pub fn ${type}_timing_function_at(&self, index: usize) -> longhands::${type}_timing_function::computed_value::SingleComputedValue { self.gecko.m${type.capitalize()}s[index].mTimingFunction.into() @@ -3059,17 +3059,17 @@ fn static_assert() { let v = v.into_iter(); debug_assert!(v.len() != 0); let input_len = v.len(); self.gecko.mAnimations.ensure_len(input_len); self.gecko.mAnimation${gecko_ffi_name}Count = input_len as u32; - for (gecko, servo) in self.gecko.mAnimations.iter_mut().zip(v.cycle()) { + for (gecko, servo) in self.gecko.mAnimations.iter_mut().take(input_len as usize).zip(v) { let result = match servo { % for value in keyword.gecko_values(): Keyword::${to_camel_case(value)} => structs::${keyword.gecko_constant(value)} ${keyword.maybe_cast(cast_type)}, % endfor }; gecko.m${gecko_ffi_name} = result; } @@ -3293,17 +3293,18 @@ fn static_assert() { ${impl_css_url('_moz_binding', 'mBinding')} ${impl_transition_time_value('delay', 'Delay')} ${impl_transition_time_value('duration', 'Duration')} ${impl_transition_timing_function()} pub fn transition_combined_duration_at(&self, index: usize) -> f32 { // https://drafts.csswg.org/css-transitions/#transition-combined-duration - self.gecko.mTransitions[index].mDuration.max(0.0) + self.gecko.mTransitions[index].mDelay + self.gecko.mTransitions[index % self.gecko.mTransitionDurationCount as usize].mDuration.max(0.0) + + self.gecko.mTransitions[index % self.gecko.mTransitionDelayCount as usize].mDelay } pub fn set_transition_property<I>(&mut self, v: I) where I: IntoIterator<Item = longhands::transition_property::computed_value::single_value::T>, I::IntoIter: ExactSizeIterator { use gecko_bindings::structs::nsCSSPropertyID::eCSSPropertyExtra_no_properties; @@ -3327,17 +3328,17 @@ fn static_assert() { } } /// Returns whether there are any transitions specified. pub fn specifies_transitions(&self) -> bool { use gecko_bindings::structs::nsCSSPropertyID::eCSSPropertyExtra_all_properties; if self.gecko.mTransitionPropertyCount == 1 && self.gecko.mTransitions[0].mProperty == eCSSPropertyExtra_all_properties && - self.gecko.mTransitions[0].mDuration.max(0.0) + self.gecko.mTransitions[0].mDelay <= 0.0f32 { + self.transition_combined_duration_at(0) <= 0.0f32 { return false; } self.gecko.mTransitionPropertyCount > 0 } pub fn transition_property_at(&self, index: usize) -> longhands::transition_property::computed_value::SingleComputedValue { @@ -3384,17 +3385,25 @@ fn static_assert() { pub fn reset_transition_property(&mut self, other: &Self) { self.copy_transition_property_from(other) } ${impl_transition_count('property', 'Property')} pub fn animations_equals(&self, other: &Self) -> bool { - unsafe { bindings::Gecko_StyleAnimationsEquals(&self.gecko.mAnimations, &other.gecko.mAnimations) } + return self.gecko.mAnimationNameCount == other.gecko.mAnimationNameCount + && self.gecko.mAnimationDelayCount == other.gecko.mAnimationDelayCount + && self.gecko.mAnimationDirectionCount == other.gecko.mAnimationDirectionCount + && self.gecko.mAnimationDurationCount == other.gecko.mAnimationDurationCount + && self.gecko.mAnimationFillModeCount == other.gecko.mAnimationFillModeCount + && self.gecko.mAnimationIterationCountCount == other.gecko.mAnimationIterationCountCount + && self.gecko.mAnimationPlayStateCount == other.gecko.mAnimationPlayStateCount + && self.gecko.mAnimationTimingFunctionCount == other.gecko.mAnimationTimingFunctionCount + && unsafe { bindings::Gecko_StyleAnimationsEquals(&self.gecko.mAnimations, &other.gecko.mAnimations) } } pub fn set_animation_name<I>(&mut self, v: I) where I: IntoIterator<Item = longhands::animation_name::computed_value::single_value::T>, I::IntoIter: ExactSizeIterator { let v = v.into_iter(); debug_assert!(v.len() != 0); @@ -3451,17 +3460,17 @@ fn static_assert() { let v = v.into_iter(); debug_assert_ne!(v.len(), 0); let input_len = v.len(); self.gecko.mAnimations.ensure_len(input_len); self.gecko.mAnimationIterationCountCount = input_len as u32; - for (gecko, servo) in self.gecko.mAnimations.iter_mut().zip(v.cycle()) { + for (gecko, servo) in self.gecko.mAnimations.iter_mut().take(input_len as usize).zip(v) { match servo { AnimationIterationCount::Number(n) => gecko.mIterationCount = n, AnimationIterationCount::Infinite => gecko.mIterationCount = f32::INFINITY, } } } pub fn animation_iteration_count_at(
--- a/servo/components/style/properties/properties.mako.rs +++ b/servo/components/style/properties/properties.mako.rs @@ -682,24 +682,16 @@ impl LonghandId { /// So we classify properties into "early" and "other", such that the only /// dependencies can be from "other" to "early". /// /// Unfortunately, it’s not easy to check that this classification is /// correct. fn is_early_property(&self) -> bool { matches!(*self, % if product == 'gecko': - // We need to know the number of animations / transition-properties - // before setting the rest of the related longhands, see #15923. - // - // FIXME(emilio): Looks to me that we could just do this in Gecko - // instead of making them early properties. Indeed, the spec - // mentions _used_ values, not computed values, so this looks wrong. - LonghandId::AnimationName | - LonghandId::TransitionProperty | // Needed to properly compute the writing mode, to resolve logical // properties, and similar stuff. In this block instead of along // `WritingMode` and `Direction` just for convenience, since it's // Gecko-only (for now at least). // // see WritingMode::new. LonghandId::TextOrientation |
--- a/servo/components/style/values/specified/box.rs +++ b/servo/components/style/values/specified/box.rs @@ -548,28 +548,18 @@ impl Parse for Contain { input: &mut Parser<'i, 't> ) -> Result<Contain, ParseError<'i>> { let mut result = Contain::empty(); while let Ok(name) = input.try(|i| i.expect_ident_cloned()) { let flag = match_ignore_ascii_case! { &name, "layout" => Some(Contain::LAYOUT), "style" => Some(Contain::STYLE), "paint" => Some(Contain::PAINT), - "strict" => { - if result.is_empty() { - return Ok(Contain::STRICT | Contain::STRICT_BITS) - } - None - }, - "none" => { - if result.is_empty() { - return Ok(result) - } - None - }, + "strict" if result.is_empty() => return Ok(Contain::STRICT | Contain::STRICT_BITS), + "none" if result.is_empty() => return Ok(result), _ => None }; let flag = match flag { Some(flag) if !result.contains(flag) => flag, _ => return Err(input.new_custom_error(SelectorParseErrorKind::UnexpectedIdent(name))) }; result.insert(flag);
--- a/taskcluster/ci/config.yml +++ b/taskcluster/ci/config.yml @@ -36,16 +36,17 @@ treeherder: 'tc-L10n-Rpk': 'Localized Repackaged Repacks executed by Taskcluster' 'tc-BM-L10n': 'Beetmover for locales executed by Taskcluster' 'tc-BMR-L10n': 'Beetmover repackages for locales executed by Taskcluster' 'c-Up': 'Balrog submission of complete updates' 'tc-cs': 'Checksum signing executed by Taskcluster' 'tc-rs': 'Repackage signing executed by Taskcluster' 'tc-BMcs': 'Beetmover checksums, executed by Taskcluster' 'Aries': 'Aries Device Image' + 'Deb7': 'Packages for Debian 7' 'Nexus 5-L': 'Nexus 5-L Device Image' 'I': 'Docker Image Builds' 'TL': 'Toolchain builds for Linux 64-bits' 'TM': 'Toolchain builds for OSX' 'TMW': 'Toolchain builds for Windows MinGW' 'TW32': 'Toolchain builds for Windows 32-bits' 'TW64': 'Toolchain builds for Windows 64-bits' 'Searchfox': 'Searchfox builds'
--- a/taskcluster/ci/docker-image/kind.yml +++ b/taskcluster/ci/docker-image/kind.yml @@ -1,30 +1,37 @@ # 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/. loader: taskgraph.loader.transform:loader +kind-dependencies: + - packages + transforms: - taskgraph.transforms.docker_image:transforms - taskgraph.transforms.task:transforms # make a task for each docker-image we might want. For the moment, since we # write artifacts for each, these are whitelisted, but ideally that will change # (to use subdirectory clones of the proper directory), at which point we can # generate tasks for every docker image in the directory, secure in the # knowledge that unnecessary images will be omitted from the target task graph jobs: desktop1604-test: symbol: I(dt16t) desktop-build: symbol: I(db) valgrind-build: symbol: I(vb) + toolchain-build: + symbol: I(toolchain) + packages: + - deb7-python lint: symbol: I(lnt) android-build: symbol: I(agb) index-task: symbol: I(idx) funsize-update-generator: symbol: I(pg)
new file mode 100644 --- /dev/null +++ b/taskcluster/ci/packages/kind.yml @@ -0,0 +1,28 @@ +# 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/. + +loader: taskgraph.loader.transform:loader + +transforms: + - taskgraph.transforms.try_job:transforms + - taskgraph.transforms.job:transforms + - taskgraph.transforms.task:transforms + +jobs: + deb7-python: + description: "Python backport for Debian wheezy" + treeherder: + kind: build + platform: packages/opt + symbol: Deb7(python) + tier: 1 + worker-type: aws-provisioner-v1/gecko-{level}-b-linux + worker: + max-run-time: 1800 + run: + using: debian-package + dsc: "http://snapshot.debian.org/archive/debian/20160813T164221Z/pool/main/p/python2.7/python2.7_2.7.9-2+deb8u1.dsc" + dsc-sha256: 274c293e7156edf59cb9f0a9d8cedcd94fa801df35adf39b8a9f3d776a250ead + patch: python-wheezy.diff + pre-build-command: debian/rules control-file
new file mode 100644 --- /dev/null +++ b/taskcluster/docker/toolchain-build/Dockerfile @@ -0,0 +1,102 @@ +FROM debian:wheezy-20171210 +MAINTAINER Mike Hommey <mhommey@mozilla.com> + +### Add worker user and setup its workspace. +RUN mkdir /builds && \ + groupadd -g 500 worker && \ + useradd -u 500 -g 500 -d /builds/worker -s /bin/bash -m worker && \ + mkdir -p /builds/worker/workspace && \ + chown -R worker:worker /builds + +# Declare default working folder +WORKDIR /builds/worker + +VOLUME /builds/worker/checkouts +VOLUME /builds/worker/workspace +VOLUME /builds/worker/tooltool-cache + +# Set variable normally configured at login, by the shells parent process, these +# are taken from GNU su manual +ENV HOME=/builds/worker \ + SHELL=/bin/bash \ + USER=worker \ + LOGNAME=worker \ + HOSTNAME=taskcluster-worker \ + DEBIAN_FRONTEND=noninteractive + +# Set a default command useful for debugging +CMD ["/bin/bash", "--login"] + +# Set apt sources list to a snapshot. +RUN for s in debian_wheezy debian_wheezy-updates debian_wheezy-backports debian-security_wheezy/updates; do \ + echo "deb http://snapshot.debian.org/archive/${s%_*}/20171210T214726Z/ ${s#*_} main"; \ + done > /etc/apt/sources.list + +RUN apt-get -o Acquire::Check-Valid-Until=false update -q && \ + apt-get install -yyq --no-install-recommends \ + apt-transport-https \ + ca-certificates + +# %ARG DOCKER_IMAGE_PACKAGES +RUN for task in $DOCKER_IMAGE_PACKAGES; do \ + echo "deb [trusted=yes] https://queue.taskcluster.net/v1/task/$task/runs/0/artifacts/public/build/ debian/" >> /etc/apt/sources.list; \ + done + +RUN dpkg --add-architecture i386 + +RUN apt-get -o Acquire::Check-Valid-Until=false update -q && \ + apt-get install -yyq --no-install-recommends \ + autoconf \ + automake \ + bison \ + build-essential \ + curl \ + flex \ + gawk \ + gcc-multilib \ + git \ + gnupg \ + libtool \ + make \ + p7zip-full \ + procps \ + pxz/wheezy-backports \ + python-dev \ + python-pip \ + python-setuptools \ + python-virtualenv \ + subversion \ + tar \ + unzip \ + uuid \ + wget \ + xz-utils \ + zip \ + && \ + apt-get clean + +# %include python/mozbuild/mozbuild/action/tooltool.py +COPY topsrcdir/python/mozbuild/mozbuild/action/tooltool.py /setup/tooltool.py + +# %include testing/mozharness/external_tools/robustcheckout.py +COPY topsrcdir/testing/mozharness/external_tools/robustcheckout.py /usr/local/mercurial/robustcheckout.py + +# %include taskcluster/docker/recipes/common.sh +COPY topsrcdir/taskcluster/docker/recipes/common.sh /setup/common.sh + +# %include taskcluster/docker/recipes/install-mercurial.sh +COPY topsrcdir/taskcluster/docker/recipes/install-mercurial.sh /setup/install-mercurial.sh + +# %include taskcluster/docker/recipes/debian-build-system-setup.sh +COPY topsrcdir/taskcluster/docker/recipes/debian-build-system-setup.sh /setup/system-setup.sh + +RUN bash /setup/system-setup.sh + +# Add pip configuration, among other things. +# %include taskcluster/docker/recipes/dot-config +COPY topsrcdir/taskcluster/docker/recipes/dot-config /builds/worker/.config + +# %include taskcluster/docker/recipes/run-task +COPY topsrcdir/taskcluster/docker/recipes/run-task /builds/worker/bin/run-task + +RUN chown -R worker:worker /builds/worker/bin && chmod 755 /builds/worker/bin/*
--- a/taskcluster/docs/kinds.rst +++ b/taskcluster/docs/kinds.rst @@ -343,8 +343,12 @@ Dummy tasks to consolidate balrog depend post-beetmover-dummy -------------------- Dummy tasks to consolidate beetmover dependencies to avoid taskcluster limits on number of dependencies per task. post-beetmover-checksums-dummy ------------------------------ Dummy tasks to consolidate beetmover-checksums dependencies to avoid taskcluster limits on number of dependencies per task. + +packages +-------- +Tasks used to build packages for use in docker images.
--- a/taskcluster/docs/transforms.rst +++ b/taskcluster/docs/transforms.rst @@ -139,16 +139,17 @@ following ``run-using`` are available * ``buildbot`` * ``hazard`` * ``mach`` * ``mozharness`` * ``mozharness-test`` * ``run-task`` * ``spidermonkey`` or ``spidermonkey-package`` or ``spidermonkey-mozjs-crate`` or ``spidermonkey-rust-bindings`` + * ``debian-package`` * ``toolchain-script`` Task Descriptions ----------------- Every kind needs to create tasks, and all of those tasks have some things in common. They all run on one of a small set of worker implementations, each
--- a/taskcluster/taskgraph/transforms/docker_image.py +++ b/taskcluster/taskgraph/transforms/docker_image.py @@ -36,34 +36,60 @@ docker_image_schema = Schema({ Optional('job-from'): basestring, # Arguments to use for the Dockerfile. Optional('args'): {basestring: basestring}, # Name of the docker image definition under taskcluster/docker, when # different from the docker image name. Optional('definition'): basestring, + + # List of package tasks this docker image depends on. + Optional('packages'): [basestring], }) @transforms.add def validate(config, tasks): for task in tasks: yield validate_schema( docker_image_schema, task, "In docker image {!r}:".format(task.get('name', 'unknown'))) @transforms.add def fill_template(config, tasks): + available_packages = {} + for task in config.kind_dependencies_tasks: + if task.kind != 'packages': + continue + name = task.label.replace('packages-', '') + for route in task.task.get('routes', []): + if route.startswith('index.') and '.hash.' in route: + available_packages[name] = route + break for task in tasks: image_name = task.pop('name') job_symbol = task.pop('symbol') args = task.pop('args', {}) definition = task.pop('definition', image_name) + packages = task.pop('packages', []) + + for p in packages: + if p not in available_packages: + raise Exception('Missing package job for {}-{}: {}'.format( + config.kind, image_name, p)) + + # Generating the context hash relies on arguments being set, so we + # set this now, although it's not the final value (it's a + # task-reference value, see further below). We add the package routes + # containing a hash to get the overall docker image hash, so changes + # to packages will be reflected in the docker image hash. + args['DOCKER_IMAGE_PACKAGES'] = ' '.join('<{}>'.format(p) + for p in packages) context_path = os.path.join('taskcluster', 'docker', definition) context_hash = generate_context_hash( GECKO, context_path, image_name, args) description = 'Build the docker image {} for use by dependent tasks'.format( image_name) @@ -126,18 +152,30 @@ def fill_template(config, tasks): 'chain-of-trust': True, 'docker-in-docker': True, 'taskcluster-proxy': True, 'max-run-time': 7200, }, } for k, v in args.items(): - taskdesc['worker']['env'][k] = v + if k == 'DOCKER_IMAGE_PACKAGES': + taskdesc['worker']['env'][k] = {'task-reference': v} + else: + taskdesc['worker']['env'][k] = v + if packages: + deps = taskdesc.setdefault('dependencies', {}) + digest_data = [context_hash] + for p in sorted(packages): + deps[p] = 'packages-{}'.format(p) + digest_data.append(available_packages[p]) + kwargs = {'digest_data': digest_data} + else: + kwargs = {'digest': context_hash} add_optimization( config, taskdesc, cache_type="docker-images.v1", cache_name=image_name, - digest=context_hash, + **kwargs ) yield taskdesc
new file mode 100644 --- /dev/null +++ b/taskcluster/taskgraph/transforms/job/debian_package.py @@ -0,0 +1,138 @@ +# 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/. +""" +Support for running spidermonkey jobs via dedicated scripts +""" + +from __future__ import absolute_import, print_function, unicode_literals + +import os + +from taskgraph.util.schema import Schema +from voluptuous import Optional, Required + +from taskgraph.transforms.job import run_job_using +from taskgraph.transforms.job.common import add_public_artifacts + +from taskgraph.util.hash import hash_paths +from taskgraph import GECKO +from taskgraph.util.cached_tasks import add_optimization + +run_schema = Schema({ + Required('using'): 'debian-package', + # Debian distribution + Optional('dist'): basestring, + + # Date of the snapshot (from snapshot.debian.org) to use, in the format + # YYYYMMDDTHHMMSSZ. The same date is used for the base docker-image name + # (only the YYYYMMDD part). + Optional('snapshot'): basestring, + + # URL of the source control (.dsc) file to build. + Required('dsc'): basestring, + + # SHA256 of the source control (.dsc) file. + Required('dsc-sha256'): basestring, + + # Patch to apply to the extracted source. + Optional('patch'): basestring, + + # Command to run before dpkg-buildpackage. + Optional('pre-build-command'): basestring, +}) + + +@run_job_using("docker-worker", "debian-package", schema=run_schema) +def docker_worker_debian_package(config, job, taskdesc): + run = job['run'] + run.setdefault('dist', 'wheezy') + run.setdefault('snapshot', '20171210T214726Z') + + worker = taskdesc['worker'] + worker['artifacts'] = [] + worker['docker-image'] = 'debian:{dist}-{date}'.format( + dist=run['dist'], + date=run['snapshot'][:8]) + + add_public_artifacts(config, job, taskdesc, path='/tmp/artifacts') + + dsc_file = os.path.basename(run['dsc']) + package = dsc_file[:dsc_file.index('_')] + + adjust = '' + if 'patch' in run: + # We can't depend on docker images, so we don't have robustcheckout + # or run-task to get a checkout. So for this one file we'd need + # from a checkout, download it. + adjust += ('curl -sL {head_repo}/raw-file/{head_rev}' + '/build/debian-packages/{patch} | patch -p1 && ').format( + head_repo=config.params['head_repository'], + head_rev=config.params['head_rev'], + patch=run['patch'], + ) + if 'pre-build-command' in run: + adjust += run['pre-build-command'] + ' && ' + + # We can't depend on docker images (since docker images depend on packages), + # so we inline the whole script here. + worker['command'] = [ + 'sh', + '-x', + '-c', + # Fill /etc/apt/sources.list with the relevant snapshot repository. + 'echo "deb http://snapshot.debian.org/archive/debian' + '/{snapshot}/ {dist} main" > /etc/apt/sources.list && ' + 'echo "deb http://snapshot.debian.org/archive/debian' + '/{snapshot}/ {dist}-updates main" >> /etc/apt/sources.list && ' + 'echo "deb http://snapshot.debian.org/archive/debian-security' + '/{snapshot}/ {dist}/updates main" >> /etc/apt/sources.list && ' + # Install the base utilities required to build debian packages. + 'apt-get update -o Acquire::Check-Valid-Until=false -q && ' + 'apt-get install -yyq fakeroot build-essential devscripts apt-utils && ' + 'cd /tmp && ' + # Get, validate and extract the package source. + 'dget -d -u {dsc} && ' + 'echo "{dsc_sha256} {dsc_file}" | sha256sum -c && ' + 'dpkg-source -x {dsc_file} {package} && ' + 'cd {package} && ' + # Optionally apply patch and/or pre-build command. + '{adjust}' + # Install the necessary build dependencies. + 'mk-build-deps -i -r debian/control -t "apt-get -yyq --no-install-recommends" && ' + # Build the package + 'DEB_BUILD_OPTIONS="parallel=$(nproc) nocheck" dpkg-buildpackage && ' + # Copy the artifacts + 'mkdir -p {artifacts}/debian && ' + 'dcmd cp ../{package}_*.changes {artifacts}/debian/ && ' + 'cd {artifacts} && ' + # Make the artifacts directory usable as an APT repository. + 'apt-ftparchive sources debian | gzip -c9 > debian/Sources.gz && ' + 'apt-ftparchive packages debian | gzip -c9 > debian/Packages.gz && ' + 'apt-ftparchive release -o APT::FTPArchive::Release::Codename={dist} debian > Release && ' + 'mv Release debian/' + .format( + package=package, + snapshot=run['snapshot'], + dist=run['dist'], + dsc=run['dsc'], + dsc_file=dsc_file, + dsc_sha256=run['dsc-sha256'], + adjust=adjust, + artifacts='/tmp/artifacts', + ) + ] + + name = taskdesc['label'].replace('{}-'.format(config.kind), '', 1) + files = [ + # This file + 'taskcluster/taskgraph/transforms/job/debian_package.py', + ] + if 'patch' in run: + files.append('build/debian-packages/{}'.format(run['patch'])) + data = [hash_paths(GECKO, files)] + for k in ('snapshot', 'dist', 'dsc-sha256', 'pre-build-command'): + if k in run: + data.append(run[k]) + add_optimization(config, taskdesc, cache_type='packages.v1', + cache_name=name, digest_data=data)
--- a/testing/config/mozbase_requirements.txt +++ b/testing/config/mozbase_requirements.txt @@ -1,8 +1,10 @@ +../tools/mozterm + ../mozbase/manifestparser ../mozbase/mozcrash ../mozbase/mozdebug ../mozbase/mozdevice ../mozbase/mozfile ../mozbase/mozhttpd ../mozbase/mozinfo ../mozbase/mozinstall @@ -10,10 +12,8 @@ ../mozbase/mozlog ../mozbase/moznetwork ../mozbase/mozprocess ../mozbase/mozprofile ../mozbase/mozrunner ../mozbase/mozscreenshot ../mozbase/moztest ../mozbase/mozversion - -../tools/mozterm
new file mode 100644 --- /dev/null +++ b/testing/config/mozbase_source_requirements.txt @@ -0,0 +1,19 @@ +../../python/mozterm + +../mozbase/manifestparser +../mozbase/mozcrash +../mozbase/mozdebug +../mozbase/mozdevice +../mozbase/mozfile +../mozbase/mozhttpd +../mozbase/mozinfo +../mozbase/mozinstall +../mozbase/mozleak +../mozbase/mozlog +../mozbase/moznetwork +../mozbase/mozprocess +../mozbase/mozprofile +../mozbase/mozrunner +../mozbase/mozscreenshot +../mozbase/moztest +../mozbase/mozversion
--- a/testing/mozbase/mozlog/setup.py +++ b/testing/mozbase/mozlog/setup.py @@ -2,30 +2,35 @@ # 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/. from __future__ import absolute_import from setuptools import setup, find_packages PACKAGE_NAME = 'mozlog' -PACKAGE_VERSION = '3.6' +PACKAGE_VERSION = '3.7' +DEPS = [ + 'blessings>=1.3', + 'mozterm', + 'six >= 1.10.0', +] + setup(name=PACKAGE_NAME, version=PACKAGE_VERSION, description="Robust log handling specialized for logging in the Mozilla universe", long_description="see https://firefox-source-docs.mozilla.org/mozbase/index.html", author='Mozilla Automation and Testing Team', author_email='tools@lists.mozilla.org', url='https://wiki.mozilla.org/Auto-tools/Projects/Mozbase', license='MPL 1.1/GPL 2.0/LGPL 2.1', packages=find_packages(), zip_safe=False, - install_requires=['blessings >= 1.3', - 'six >= 1.10.0'], + install_requires=DEPS, tests_require=['mozfile'], platforms=['Any'], classifiers=['Development Status :: 4 - Beta', 'Environment :: Console', 'Intended Audience :: Developers', 'License :: OSI Approved :: Mozilla Public License 1.1 (MPL 1.1)', 'Operating System :: OS Independent', 'Programming Language :: Python :: 2.7',
--- a/testing/mozharness/mozharness/mozilla/testing/talos.py +++ b/testing/mozharness/mozharness/mozilla/testing/talos.py @@ -366,16 +366,18 @@ class Talos(TestingMixin, MercurialScrip options.extend(['--%s' % key, value]) # configure profiling options options.extend(self.query_gecko_profile_options()) # extra arguments if args is not None: options += args if 'talos_extra_options' in self.config: options += self.config['talos_extra_options'] + if self.config.get('code_coverage', False): + options.extend(['--code-coverage']) return options def populate_webroot(self): """Populate the production test slaves' webroots""" self.talos_path = os.path.join( self.query_abs_dirs()['abs_work_dir'], 'tests', 'talos' ) @@ -573,17 +575,17 @@ class Talos(TestingMixin, MercurialScrip 'tests', 'config', 'mozbase_requirements.txt' ) else: mozbase_requirements = os.path.join( os.path.dirname(self.talos_path), 'config', - 'mozbase_requirements.txt' + 'mozbase_source_requirements.txt' ) self.register_virtualenv_module( requirements=[mozbase_requirements], two_pass=True, editable=True, ) # require pip >= 1.5 so pip will prefer .whl files to install super(Talos, self).create_virtualenv(
--- a/testing/talos/talos/cmdline.py +++ b/testing/talos/talos/cmdline.py @@ -175,15 +175,21 @@ def create_parser(mach_interface=False): debug_options.add_argument('--debug', action='store_true', help='Enable the debugger. Not specifying a --debugger option will' 'result in the default debugger being used.') debug_options.add_argument('--debugger', default=None, help='Name of debugger to use.') debug_options.add_argument('--debugger-args', default=None, metavar='params', help='Command-line arguments to pass to the debugger itself; split' 'as the Bourne shell would.') + add_arg('--code-coverage', action="store_true", + dest='code_coverage', + help='Remove any existing ccov gcda output files after browser' + ' initialization but before starting the tests. NOTE:' + ' Currently only supported in production.') + add_logging_group(parser) return parser def parse_args(argv=None): parser = create_parser() return parser.parse_args(argv)
--- a/testing/talos/talos/ffsetup.py +++ b/testing/talos/talos/ffsetup.py @@ -3,16 +3,17 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. """ Set up a browser environment before running a test. """ from __future__ import absolute_import, print_function import os +import shutil import tempfile import mozfile import mozinfo import mozrunner from mozlog import get_proxy_logger from mozprocess import ProcessHandlerMixin from mozprofile.profile import Profile @@ -180,31 +181,113 @@ class FFSetup(object): self.browser_config, self.test_config) self.gecko_profile.update_env(self.env) def clean(self): try: mozfile.remove(self._tmp_dir) except Exception as e: - print("Exception while removing profile directory: %s" % self._tmp_dir) - print(e) + LOG.info("Exception while removing profile directory: %s" % self._tmp_dir) + LOG.info(e) if self.gecko_profile: self.gecko_profile.clean() + def collect_or_clean_ccov(self, clean=False): + # NOTE: Currently only supported when running in production + if not self.browser_config.get('develop', False): + # first see if we an find any ccov files at the ccov output dirs + if clean: + LOG.info("Cleaning ccov files before starting the talos test") + else: + LOG.info("Collecting ccov files that were generated during the talos test") + gcov_prefix = os.getenv('GCOV_PREFIX', None) + js_ccov_dir = os.getenv('JS_CODE_COVERAGE_OUTPUT_DIR', None) + gcda_archive_folder_name = 'gcda-archive' + _gcda_files_found = [] + + for _ccov_env in [gcov_prefix, js_ccov_dir]: + if _ccov_env is not None: + # ccov output dir env vars exist; now search for gcda files to remove + _ccov_path = os.path.abspath(_ccov_env) + if os.path.exists(_ccov_path): + # now walk through and look for gcda files + LOG.info("Recursive search for gcda files in: %s" % _ccov_path) + for root, dirs, files in os.walk(_ccov_path): + for next_file in files: + if next_file.endswith(".gcda"): + # don't want to move or delete files in our 'gcda-archive' + if root.find(gcda_archive_folder_name) == -1: + _gcda_files_found.append(os.path.join(root, next_file)) + else: + LOG.info("The ccov env var path doesn't exist: %s" % str(_ccov_path)) + + # now clean or collect gcda files accordingly + if clean: + # remove ccov data + LOG.info("Found %d gcda files to clean. Deleting..." % (len(_gcda_files_found))) + for _gcda in _gcda_files_found: + try: + mozfile.remove(_gcda) + except Exception as e: + LOG.info("Exception while removing file: %s" % _gcda) + LOG.info(e) + LOG.info("Finished cleaning ccov gcda files") + else: + # copy gcda files to archive folder to be collected later + gcda_archive_top = os.path.join(gcov_prefix, + gcda_archive_folder_name, + self.test_config['name']) + LOG.info("Found %d gcda files to collect. Moving to gcda archive %s" + % (len(_gcda_files_found), str(gcda_archive_top))) + if not os.path.exists(gcda_archive_top): + try: + os.makedirs(gcda_archive_top) + except OSError: + LOG.critical("Unable to make gcda archive folder %s" % gcda_archive_top) + for _gcda in _gcda_files_found: + # want to copy the existing directory strucutre but put it under archive-dir + # need to remove preceeding '/' from _gcda file name so can join the path + gcda_archive_file = os.path.join(gcov_prefix, + gcda_archive_folder_name, + self.test_config['name'], + _gcda.strip(gcov_prefix + "//")) + gcda_archive_dest = os.path.dirname(gcda_archive_file) + + # create archive folder, mirroring structure + if not os.path.exists(gcda_archive_dest): + try: + os.makedirs(gcda_archive_dest) + except OSError: + LOG.critical("Unable to make archive folder %s" % gcda_archive_dest) + # now copy the file there + try: + shutil.copy(_gcda, gcda_archive_dest) + except Exception as e: + LOG.info("Error copying %s to %s" % (str(_gcda), str(gcda_archive_dest))) + LOG.info(e) + LOG.info("Finished collecting ccov gcda files. Copied to: %s" % gcda_archive_top) + def __enter__(self): LOG.info('Initialising browser for %s test...' % self.test_config['name']) self._init_env() self._init_profile() try: if not self.debug_mode and self.test_config['name'] != "damp": self._run_profile() except: self.clean() raise self._init_gecko_profile() LOG.info('Browser initialized.') + # remove ccov files before actual tests start + if self.browser_config.get('code_coverage', False): + # if the Firefox build was instrumented for ccov, initializing the browser + # will have caused ccov to output some gcda files; in order to have valid + # ccov data for the talos test we want to remove these files before starting + # the actual talos test(s) + self.collect_or_clean_ccov(clean=True) return self def __exit__(self, type, value, tb): self.clean()
--- a/testing/talos/talos/run_tests.py +++ b/testing/talos/talos/run_tests.py @@ -113,16 +113,28 @@ def run_tests(config, browser_config): # instance if browser_config['develop']: browser_config['extra_args'] = '--no-remote' # Pass subtests filter argument via a preference if browser_config['subtests']: browser_config['preferences']['talos.subtests'] = browser_config['subtests'] + # If --code-coverage files are expected, set flag in browser config so ffsetup knows + # that it needs to delete any ccov files resulting from browser initialization + # NOTE: This is only supported in production; local setup of ccov folders and + # data collection not supported yet, so if attempting to run with --code-coverage + # flag locally, that is not supported yet + if config.get('code_coverage', False): + if browser_config['develop']: + raise TalosError('Aborting: talos --code-coverage flag is only ' + 'supported in production') + else: + browser_config['code_coverage'] = True + # set defaults testdate = config.get('testdate', '') # get the process name from the path to the browser if not browser_config['process']: browser_config['process'] = \ os.path.basename(browser_config['browser_path'])
--- a/testing/talos/talos/ttest.py +++ b/testing/talos/talos/ttest.py @@ -286,10 +286,15 @@ class TTest(object): # include global (cross-cycle) counters test_results.all_counter_results.extend( [{key: value} for key, value in global_counters.items()] ) for c in test_results.all_counter_results: for key, value in c.items(): LOG.debug('COUNTER %r: %s' % (key, value)) + # if running against a code-coverage instrumented build, move the + # produced gcda files to a folder where they will be collected later + if browser_config.get('code_coverage', False): + setup.collect_or_clean_ccov() + # return results return test_results
--- a/toolkit/components/browser/nsWebBrowser.cpp +++ b/toolkit/components/browser/nsWebBrowser.cpp @@ -1749,30 +1749,30 @@ DrawPaintedLayer(PaintedLayer* aLayer, ColorPattern color(ToDeviceColor(*static_cast<nscolor*>(aCallbackData))); nsIntRect dirtyRect = aRegionToDraw.GetBounds(); aDrawTarget.FillRect( Rect(dirtyRect.x, dirtyRect.y, dirtyRect.width, dirtyRect.height), color); } void -nsWebBrowser::WindowRaised(nsIWidget* aWidget) +nsWebBrowser::WindowActivated() { #if defined(DEBUG_smaug) nsCOMPtr<nsIDocument> document = mDocShell->GetDocument(); nsAutoString documentURI; document->GetDocumentURI(documentURI); printf("nsWebBrowser::NS_ACTIVATE %p %s\n", (void*)this, NS_ConvertUTF16toUTF8(documentURI).get()); #endif Activate(); } void -nsWebBrowser::WindowLowered(nsIWidget* aWidget) +nsWebBrowser::WindowDeactivated() { #if defined(DEBUG_smaug) nsCOMPtr<nsIDocument> document = mDocShell->GetDocument(); nsAutoString documentURI; document->GetDocumentURI(documentURI); printf("nsWebBrowser::NS_DEACTIVATE %p %s\n", (void*)this, NS_ConvertUTF16toUTF8(documentURI).get()); #endif
--- a/toolkit/components/browser/nsWebBrowser.h +++ b/toolkit/components/browser/nsWebBrowser.h @@ -113,18 +113,18 @@ protected: // XXXbz why are these NS_IMETHOD? They're not interface methods! NS_IMETHOD SetDocShell(nsIDocShell* aDocShell); NS_IMETHOD EnsureDocShellTreeOwner(); NS_IMETHOD BindListener(nsISupports* aListener, const nsIID& aIID); NS_IMETHOD UnBindListener(nsISupports* aListener, const nsIID& aIID); NS_IMETHOD EnableGlobalHistory(bool aEnable); // nsIWidgetListener - virtual void WindowRaised(nsIWidget* aWidget); - virtual void WindowLowered(nsIWidget* aWidget); + virtual void WindowActivated() override; + virtual void WindowDeactivated() override; virtual bool PaintWindow(nsIWidget* aWidget, mozilla::LayoutDeviceIntRegion aRegion) override; protected: RefPtr<nsDocShellTreeOwner> mDocShellTreeOwner; nsCOMPtr<nsIDocShell> mDocShell; nsCOMPtr<nsIInterfaceRequestor> mDocShellAsReq; nsCOMPtr<nsIBaseWindow> mDocShellAsWin;
--- a/toolkit/components/mozintl/mozIMozIntl.idl +++ b/toolkit/components/mozintl/mozIMozIntl.idl @@ -36,10 +36,10 @@ */ [scriptable, uuid(7f63279a-1a29-4ae6-9e7a-dc9684a23530)] interface mozIMozIntl : nsISupports { jsval getCalendarInfo([optional] in jsval locales); jsval getDisplayNames([optional] in jsval locales, [optional] in jsval options); jsval getLocaleInfo([optional] in jsval locales); - jsval createDateTimeFormat([optional] in jsval locales, [optional] in jsval options); + readonly attribute jsval DateTimeFormat; };
--- a/toolkit/components/mozintl/mozIntl.js +++ b/toolkit/components/mozintl/mozIntl.js @@ -64,37 +64,41 @@ class MozIntl { getLocaleInfo(locales, ...args) { if (!this._cache.hasOwnProperty("getLocaleInfo")) { mozIntlHelper.addGetLocaleInfo(this._cache); } return this._cache.getLocaleInfo(getLocales(locales), ...args); } - createDateTimeFormat(locales, options, ...args) { + get DateTimeFormat() { if (!this._cache.hasOwnProperty("DateTimeFormat")) { mozIntlHelper.addDateTimeFormatConstructor(this._cache); } - let resolvedLocales = - this._cache.DateTimeFormat.supportedLocalesOf(getLocales(locales)); + let DateTimeFormat = this._cache.DateTimeFormat; - if (options) { - if (options.dateStyle || options.timeStyle) { - options.pattern = osPrefs.getDateTimePattern( - getDateTimePatternStyle(options.dateStyle), - getDateTimePatternStyle(options.timeStyle), - resolvedLocales[0]); - } else { - // make sure that user doesn't pass a pattern explicitly - options.pattern = undefined; + class MozDateTimeFormat extends this._cache.DateTimeFormat { + constructor(locales, options, ...args) { + let resolvedLocales = DateTimeFormat.supportedLocalesOf(getLocales(locales)); + if (options) { + if (options.dateStyle || options.timeStyle) { + options.pattern = osPrefs.getDateTimePattern( + getDateTimePatternStyle(options.dateStyle), + getDateTimePatternStyle(options.timeStyle), + resolvedLocales[0]); + } else { + // make sure that user doesn't pass a pattern explicitly + options.pattern = undefined; + } + } + super(resolvedLocales, options, ...args); } } - - return new this._cache.DateTimeFormat(resolvedLocales, options, ...args); + return MozDateTimeFormat; } } MozIntl.prototype.classID = Components.ID("{35ec195a-e8d0-4300-83af-c8a2cc84b4a3}"); MozIntl.prototype.QueryInterface = XPCOMUtils.generateQI([Ci.mozIMozIntl, Ci.nsISupports]); var components = [MozIntl]; this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
--- a/toolkit/components/mozintl/test/test_mozintl.js +++ b/toolkit/components/mozintl/test/test_mozintl.js @@ -1,26 +1,48 @@ /* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ Components.utils.import("resource://gre/modules/Services.jsm"); function run_test() { test_methods_presence(); test_methods_calling(); + test_constructors(); ok(true); } function test_methods_presence() { equal(Services.intl.getCalendarInfo instanceof Function, true); equal(Services.intl.getDisplayNames instanceof Function, true); equal(Services.intl.getLocaleInfo instanceof Function, true); - equal(Services.intl.createDateTimeFormat instanceof Function, true); + equal(Services.intl.getLocaleInfo instanceof Object, true); } function test_methods_calling() { Services.intl.getCalendarInfo("pl"); Services.intl.getDisplayNames("ar"); Services.intl.getLocaleInfo("de"); - Services.intl.createDateTimeFormat("fr"); + new Services.intl.DateTimeFormat("fr"); ok(true); } + +function test_constructors() { + let dtf = new Intl.DateTimeFormat(); + let dtf2 = new Services.intl.DateTimeFormat(); + + equal(typeof dtf, typeof dtf2); + + Assert.throws(() => { + // This is an observable difference between Intl and mozIntl. + // + // Old ECMA402 APIs (edition 1 and 2) allowed for constructors to be called + // as functions. + // Starting from ed.3 all new constructors are throwing when called without |new|. + // + // All MozIntl APIs do not implement the legacy behavior and throw + // when called without |new|. + // + // For more information see https://github.com/tc39/ecma402/pull/84 . + Services.intl.DateTimeFormat(); + }, /class constructors must be invoked with |new|/); +}
--- a/toolkit/components/passwordmgr/LoginManagerContent.jsm +++ b/toolkit/components/passwordmgr/LoginManagerContent.jsm @@ -469,34 +469,36 @@ var LoginManagerContent = { stateForDocument(document) { let loginFormState = this.loginFormStateByDocument.get(document); if (!loginFormState) { loginFormState = { /** * Keeps track of filled fields and values. */ fillsByRootElement: new WeakMap(), - loginFormRootElements: new Set(), + loginFormRootElements: new WeakSet(), }; this.loginFormStateByDocument.set(document, loginFormState); } return loginFormState; }, /** * Compute whether there is an insecure login form on any frame of the current page, and * notify the parent process. This is used to control whether insecure password UI appears. */ _detectInsecureFormLikes(topWindow) { log("_detectInsecureFormLikes", topWindow.location.href); // Returns true if this window or any subframes have insecure login forms. let hasInsecureLoginForms = (thisWindow) => { let doc = thisWindow.document; - let hasLoginForm = this.stateForDocument(doc).loginFormRootElements.size > 0; + let rootElsWeakSet = this.stateForDocument(doc).loginFormRootElements; + let hasLoginForm = ChromeUtils.nondeterministicGetWeakSetKeys(rootElsWeakSet) + .filter(el => el.isConnected).length > 0; return (hasLoginForm && !thisWindow.isSecureContext) || Array.some(thisWindow.frames, frame => hasInsecureLoginForms(frame)); }; let messageManager = messageManagerFromWindow(topWindow); messageManager.sendAsyncMessage("RemoteLogins:insecureLoginFormPresent", { hasInsecureLoginForms: hasInsecureLoginForms(topWindow), @@ -875,21 +877,27 @@ var LoginManagerContent = { * To avoid multiple notifications for the same FormLike, this currently * avoids capturing when dealing with a real <form> which are ideally already * using a submit event. * * @param {Document} document being navigated */ _onNavigation(aDocument) { let state = this.stateForDocument(aDocument); - let loginFormRootElements = state.loginFormRootElements; - log("_onNavigation: state:", state, "loginFormRootElements size:", loginFormRootElements.size, + let rootElsWeakSet = state.loginFormRootElements; + let weakLoginFormRootElements = ChromeUtils.nondeterministicGetWeakSetKeys(rootElsWeakSet); + + log("_onNavigation: state:", state, "loginFormRootElements approx size:", weakLoginFormRootElements.length, "document:", aDocument); - for (let formRoot of state.loginFormRootElements) { + for (let formRoot of weakLoginFormRootElements) { + if (!formRoot.isConnected) { + continue; + } + if (formRoot instanceof Ci.nsIDOMHTMLFormElement) { // For now only perform capture upon navigation for FormLike's without // a <form> to avoid capture from both an earlyformsubmit and // navigation for the same "form". log("Ignoring navigation for the form root to avoid multiple prompts " + "since it was for a real <form>"); continue; } @@ -1435,17 +1443,17 @@ function UserAutoCompleteResult(aSearchS } this._showInsecureFieldWarning = (!isSecure && LoginHelper.showInsecureFieldWarning) ? 1 : 0; this.searchString = aSearchString; this.logins = matchingLogins.sort(loginSort); this.matchCount = matchingLogins.length + this._showInsecureFieldWarning; this._messageManager = messageManager; this._stringBundle = Services.strings.createBundle("chrome://passwordmgr/locale/passwordmgr.properties"); - this._dateAndTimeFormatter = Services.intl.createDateTimeFormat(undefined, { dateStyle: "medium" }); + this._dateAndTimeFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "medium" }); this._isPasswordField = isPasswordField; this._duplicateUsernames = findDuplicates(matchingLogins); if (this.matchCount > 0) { this.searchResult = Ci.nsIAutoCompleteResult.RESULT_SUCCESS; this.defaultIndex = 0;
--- a/toolkit/components/passwordmgr/LoginManagerContextMenu.jsm +++ b/toolkit/components/passwordmgr/LoginManagerContextMenu.jsm @@ -186,12 +186,12 @@ var LoginManagerContextMenu = { }; XPCOMUtils.defineLazyGetter(LoginManagerContextMenu, "_stringBundle", function() { return Services.strings. createBundle("chrome://passwordmgr/locale/passwordmgr.properties"); }); XPCOMUtils.defineLazyGetter(LoginManagerContextMenu, "dateAndTimeFormatter", function() { - return Services.intl.createDateTimeFormat(undefined, { + return new Services.intl.DateTimeFormat(undefined, { dateStyle: "medium" }); });
--- a/toolkit/components/passwordmgr/content/passwordManager.js +++ b/toolkit/components/passwordmgr/content/passwordManager.js @@ -55,19 +55,19 @@ let signonReloadDisplay = { break; } Services.obs.notifyObservers(null, "passwordmgr-dialog-updated"); } } }; // Formatter for localization. -let dateFormatter = Services.intl.createDateTimeFormat(undefined, +let dateFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "medium" }); -let dateAndTimeFormatter = Services.intl.createDateTimeFormat(undefined, +let dateAndTimeFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "medium", timeStyle: "short" }); function Startup() { // be prepared to reload the display if anything changes Services.obs.addObserver(signonReloadDisplay, "passwordmgr-storage-changed"); signonsTree = document.getElementById("signonsTree");
--- a/toolkit/components/passwordmgr/test/mochitest/test_password_field_autocomplete.html +++ b/toolkit/components/passwordmgr/test/mochitest/test_password_field_autocomplete.html @@ -129,17 +129,17 @@ async function reinitializeForm(index) { uname = $_(index, "uname"); pword = $_(index, "pword"); uname.value = ""; pword.value = ""; pword.focus(); } function generateDateString(date) { - let dateAndTimeFormatter = Services.intl.createDateTimeFormat(undefined, + let dateAndTimeFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "medium" }); return dateAndTimeFormatter.format(date); } const DATE_NOW_STRING = generateDateString(new Date()); // Check for expected username/password in form. function checkACFormPasswordField(expectedPassword) {
--- a/toolkit/components/passwordmgr/test/unit/test_context_menu.js +++ b/toolkit/components/passwordmgr/test/unit/test_context_menu.js @@ -97,17 +97,17 @@ function checkLoginItems(logins, items) duplicates.add(login.username); } seen.add(login.username); } return duplicates; } let duplicates = findDuplicates(logins); - let dateAndTimeFormatter = Services.intl.createDateTimeFormat(undefined, + let dateAndTimeFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "medium" }); for (let login of logins) { if (login.username && !duplicates.has(login.username)) { // If login is not duplicate and we can't find an item for it, fail. if (!items.find(item => item.label == login.username)) { return false; } continue;
--- a/toolkit/components/passwordmgr/test/unit/test_user_autocomplete_result.js +++ b/toolkit/components/passwordmgr/test/unit/test_user_autocomplete_result.js @@ -19,17 +19,17 @@ matchingLogins.push(new nsLoginInfo("htt matchingLogins.push(new nsLoginInfo("http://mochi.test:8888", "http://autocomplete:8888", null, "testuser3", "testpass3", "uname", "pword")); matchingLogins.push(new nsLoginInfo("http://mochi.test:8888", "http://autocomplete:8888", null, "zzzuser4", "zzzpass4", "uname", "pword")); let meta = matchingLogins[0].QueryInterface(Ci.nsILoginMetaInfo); -let dateAndTimeFormatter = Services.intl.createDateTimeFormat(undefined, +let dateAndTimeFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "medium" }); let time = dateAndTimeFormatter.format(new Date(meta.timePasswordChanged)); const LABEL_NO_USERNAME = "No username (" + time + ")"; let expectedResults = [ { insecureFieldWarningEnabled: true, insecureAutoFillFormsEnabled: true,
--- a/toolkit/components/payments/res/mixins/ObservedPropertiesMixin.js +++ b/toolkit/components/payments/res/mixins/ObservedPropertiesMixin.js @@ -27,17 +27,17 @@ function ObservedPropertiesMixin(superCl } // Convert attribute names from kebab-case to camelCase properties Object.defineProperty(this, name.replace(/-([a-z])/g, ($0, $1) => $1.toUpperCase()), { configurable: true, get() { return this.getAttribute(name); }, set(value) { - if (value === null || value === undefined) { + if (value === null || value === undefined || value === false) { this.removeAttribute(name); } else { this.setAttribute(name, value); } }, }); } }
--- a/toolkit/components/places/PlacesRemoteTabsAutocompleteProvider.jsm +++ b/toolkit/components/places/PlacesRemoteTabsAutocompleteProvider.jsm @@ -111,18 +111,17 @@ Services.obs.addObserver(observe, "weave Services.prefs.addObserver(PREF_SHOW_REMOTE_ICONS, observe); observe(null, "nsPref:changed", PREF_SHOW_REMOTE_ICONS); // This public object is a static singleton. this.PlacesRemoteTabsAutocompleteProvider = { // a promise that resolves with an array of matching remote tabs. getMatches(searchString) { // If Sync isn't configured we bail early. - if (Weave === null || - !Services.prefs.prefHasUserValue("services.sync.username")) { + if (!weaveXPCService.ready || !weaveXPCService.enabled) { return Promise.resolve([]); } let re = new RegExp(escapeRegExp(searchString), "i"); let matches = []; let { tabs, clients } = ensureItems(); for (let [url, { clientId, tab }] of tabs) { let title = tab.title;
--- a/toolkit/content/aboutTelemetry.js +++ b/toolkit/content/aboutTelemetry.js @@ -419,17 +419,17 @@ var PingPicker = { const today = new Date(); today.setHours(0, 0, 0, 0); const yesterday = new Date(today); yesterday.setDate(today.getDate() - 1); for (let p of this._archivedPings) { pingTypes.add(p.type); const pingDate = new Date(p.timestampCreated); - const datetimeText = Services.intl.createDateTimeFormat(undefined, { + const datetimeText = new Services.intl.DateTimeFormat(undefined, { dateStyle: "short", timeStyle: "medium" }).format(pingDate); const pingName = `${datetimeText}, ${p.type}`; let option = document.createElement("option"); let content = document.createTextNode(pingName); option.appendChild(content); @@ -1455,32 +1455,39 @@ var Search = { adjustHeaderState(); Array.from(document.querySelectorAll("section")).forEach((section) => { section.classList.toggle("active", section.id == "home-section"); }); }, homeSearch(text) { changeUrlSearch(text); + removeSearchSectionTitles(); if (text === "") { this.resetHome(); return; } document.getElementById("main").classList.add("search"); let title = bundle.formatStringFromName("resultsForSearch", [text], 1); adjustHeaderState(title); let noSearchResults = true; Array.from(document.querySelectorAll("section")).forEach((section) => { if (section.id == "home-section" || section.id == "raw-payload-section") { section.classList.remove("active"); return; } section.classList.add("active"); let sectionHidden = this.search(text, section); - if (noSearchResults && !sectionHidden) { + if (!sectionHidden) { + let sectionTitle = document.querySelector(`.category[value="${section.id}"] .category-name`).textContent; + let sectionDataDiv = document.querySelector(`#${section.id}.has-data.active .data`); + let titleDiv = document.createElement("h1"); + titleDiv.classList.add("data", "search-section-title"); + titleDiv.textContent = sectionTitle; + section.insertBefore(titleDiv, sectionDataDiv); noSearchResults = false; } }); this.updateNoResults(text, noSearchResults); } }; /* @@ -1869,32 +1876,40 @@ function displayProcessesSelector(select "keyed-histograms-section", "events-section" ]; let processes = document.getElementById("processes"); processes.hidden = !whitelist.includes(selectedSection); } function refreshSearch() { + removeSearchSectionTitles(); let selectedSection = document.querySelector(".category.selected").getAttribute("value"); let search = document.getElementById("search"); if (!Search.blacklist.includes(selectedSection)) { Search.search(search.value); } } function adjustSearchState() { + removeSearchSectionTitles(); let selectedSection = document.querySelector(".category.selected").getAttribute("value"); let search = document.getElementById("search"); search.value = ""; search.hidden = Search.blacklist.includes(selectedSection); document.getElementById("no-search-results").classList.add("hidden"); Search.search(""); // reinitialize search state. } +function removeSearchSectionTitles() { + for (let sectionTitleDiv of Array.from(document.getElementsByClassName("search-section-title"))) { + sectionTitleDiv.remove(); + } +} + function adjustSection() { let selectedCategory = document.querySelector(".category.selected"); if (!selectedCategory.classList.contains("has-data")) { PingPicker._showStructuredPingData(); } } function adjustHeaderState(title = null) {
--- a/toolkit/crashreporter/content/crashes.js +++ b/toolkit/crashreporter/content/crashes.js @@ -68,18 +68,18 @@ function populateReportList() { document.getElementById("reportList").style.display = "none"; document.getElementById("noReports").style.display = "block"; return; } var dateFormatter; var timeFormatter; try { - dateFormatter = Services.intl.createDateTimeFormat(undefined, { dateStyle: "short" }); - timeFormatter = Services.intl.createDateTimeFormat(undefined, { timeStyle: "short" }); + dateFormatter = new Services.intl.DateTimeFormat(undefined, { dateStyle: "short" }); + timeFormatter = new Services.intl.DateTimeFormat(undefined, { timeStyle: "short" }); } catch (e) { // XXX Fallback to be removed once bug 1215247 is complete // and the Intl API is available on all platforms. dateFormatter = { format(date) { return date.toLocaleDateString(); } };
--- a/toolkit/mozapps/downloads/DownloadUtils.jsm +++ b/toolkit/mozapps/downloads/DownloadUtils.jsm @@ -344,17 +344,17 @@ this.DownloadUtils = { // Figure out when today begins let today = new Date(aNow.getFullYear(), aNow.getMonth(), aNow.getDate()); let dateTimeCompact; let dateTimeFull; // Figure out if the time is from today, yesterday, this week, etc. if (aDate >= today) { - let dts = Services.intl.createDateTimeFormat(undefined, { + let dts = new Services.intl.DateTimeFormat(undefined, { timeStyle: "short" }); dateTimeCompact = dts.format(aDate); } else if (today - aDate < (MS_PER_DAY)) { // After yesterday started, show yesterday dateTimeCompact = gBundle.GetStringFromName(gStr.yesterday); } else if (today - aDate < (6 * MS_PER_DAY)) { // After last week started, show day of week @@ -364,17 +364,17 @@ this.DownloadUtils = { dateTimeCompact = aDate.toLocaleString(undefined, { month: "long", day: "numeric" }); } const dtOptions = { dateStyle: "long", timeStyle: "short" }; dateTimeFull = - Services.intl.createDateTimeFormat(undefined, dtOptions).format(aDate); + new Services.intl.DateTimeFormat(undefined, dtOptions).format(aDate); return [dateTimeCompact, dateTimeFull]; }, /** * Get the appropriate display host string for a URI string depending on if * the URI has an eTLD + 1, is an IP address, a local file, or other protocol *
--- a/toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js +++ b/toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js @@ -73,37 +73,37 @@ function testAllGetReadableDates() { const today_11_30 = new Date(2000, 11, 31, 11, 30, 15); const today_12_30 = new Date(2000, 11, 31, 12, 30, 15); const yesterday_11_30 = new Date(2000, 11, 30, 11, 30, 15); const yesterday_12_30 = new Date(2000, 11, 30, 12, 30, 15); const twodaysago = new Date(2000, 11, 29, 11, 30, 15); const sixdaysago = new Date(2000, 11, 25, 11, 30, 15); const sevendaysago = new Date(2000, 11, 24, 11, 30, 15); - let cDtf = Services.intl.createDateTimeFormat; + let cDtf = Services.intl.DateTimeFormat; testGetReadableDates(today_11_30, - cDtf(undefined, {timeStyle: "short"}).format(today_11_30)); + (new cDtf(undefined, {timeStyle: "short"})).format(today_11_30)); testGetReadableDates(today_12_30, - cDtf(undefined, {timeStyle: "short"}).format(today_12_30)); + (new cDtf(undefined, {timeStyle: "short"})).format(today_12_30)); testGetReadableDates(yesterday_11_30, "Yesterday"); testGetReadableDates(yesterday_12_30, "Yesterday"); testGetReadableDates(twodaysago, twodaysago.toLocaleDateString(undefined, { weekday: "long" })); testGetReadableDates(sixdaysago, sixdaysago.toLocaleDateString(undefined, { weekday: "long" })); testGetReadableDates(sevendaysago, sevendaysago.toLocaleDateString(undefined, { month: "long" }) + " " + sevendaysago.getDate().toString().padStart(2, "0")); let [, dateTimeFull] = DownloadUtils.getReadableDates(today_11_30); const dtOptions = { dateStyle: "long", timeStyle: "short" }; - Assert.equal(dateTimeFull, cDtf(undefined, dtOptions).format(today_11_30)); + Assert.equal(dateTimeFull, (new cDtf(undefined, dtOptions)).format(today_11_30)); } function run_test() { testConvertByteUnits(-1, "-1", "bytes"); testConvertByteUnits(1, _("1"), "bytes"); testConvertByteUnits(42, _("42"), "bytes"); testConvertByteUnits(123, _("123"), "bytes"); testConvertByteUnits(1024, _("1.0"), "KB");
--- a/xpcom/threads/nsThreadUtils.cpp +++ b/xpcom/threads/nsThreadUtils.cpp @@ -35,19 +35,26 @@ NS_IMPL_ISUPPORTS(IdlePeriod, nsIIdlePer NS_IMETHODIMP IdlePeriod::GetIdlePeriodHint(TimeStamp* aIdleDeadline) { *aIdleDeadline = TimeStamp(); return NS_OK; } +// NS_IMPL_NAMED_* relies on the mName field, which is not present on +// release or beta. Instead, fall back to using "Runnable" for all +// runnables. +#ifdef RELEASE_OR_BETA +NS_IMPL_ISUPPORTS(Runnable, nsIRunnable, nsINamed) +#else NS_IMPL_NAMED_ADDREF(Runnable, mName) NS_IMPL_NAMED_RELEASE(Runnable, mName) NS_IMPL_QUERY_INTERFACE(Runnable, nsIRunnable, nsINamed) +#endif NS_IMETHODIMP Runnable::Run() { // Do nothing return NS_OK; }