summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CLOBBER2
-rw-r--r--README.md3
-rw-r--r--accessible/base/NotificationController.cpp1
-rw-r--r--accessible/base/Statistics.h8
-rw-r--r--application/basilisk/app/macbuild/Contents/Info.plist.in4
-rw-r--r--application/basilisk/app/profile/basilisk.js5
-rw-r--r--application/basilisk/base/content/browser-fullScreenAndPointerLock.js3
-rw-r--r--application/basilisk/base/content/browser-fxaccounts.js48
-rw-r--r--application/basilisk/base/content/browser-gestureSupport.js10
-rw-r--r--application/basilisk/base/content/browser.js23
-rw-r--r--application/basilisk/base/content/browser.xul3
-rw-r--r--application/basilisk/base/content/sanitize.js55
-rw-r--r--application/basilisk/base/content/tabbrowser.xml63
-rw-r--r--application/basilisk/branding/official/disk.icnsbin459117 -> 41448 bytes
-rw-r--r--application/basilisk/branding/official/document.icnsbin660004 -> 39113 bytes
-rw-r--r--application/basilisk/branding/official/firefox.icnsbin801511 -> 39138 bytes
-rw-r--r--application/basilisk/components/migration/AutoMigrate.jsm18
-rw-r--r--application/basilisk/components/migration/MigrationUtils.jsm16
-rw-r--r--application/basilisk/components/migration/content/migration.xul6
-rw-r--r--application/basilisk/components/places/content/history-panel.js7
-rw-r--r--application/basilisk/components/places/content/places.js3
-rw-r--r--application/basilisk/components/sessionstore/SessionFile.jsm2
-rw-r--r--application/basilisk/components/sessionstore/SessionSaver.jsm16
-rw-r--r--application/basilisk/components/sessionstore/SessionStore.jsm16
-rw-r--r--application/basilisk/components/sessionstore/TabAttributes.jsm5
-rw-r--r--application/basilisk/components/sessionstore/nsSessionStartup.js1
-rw-r--r--application/palemoon/app/blocklist.xml14
-rw-r--r--application/palemoon/base/content/browser-sets.inc3
-rw-r--r--application/palemoon/base/content/browser.js29
-rw-r--r--application/palemoon/base/content/browser.xul1
-rw-r--r--application/palemoon/base/content/nsContextMenu.js26
-rw-r--r--application/palemoon/base/content/tabbrowser.xml140
-rw-r--r--application/palemoon/components/downloads/content/downloadsOverlay.xul2
-rw-r--r--application/palemoon/components/preferences/jar.mn1
-rw-r--r--application/palemoon/components/preferences/main.xul7
-rw-r--r--application/palemoon/components/preferences/newtaburl.js68
-rw-r--r--application/palemoon/components/preferences/preferences.xul4
-rw-r--r--application/palemoon/components/preferences/tabs.js54
-rw-r--r--application/palemoon/components/preferences/tabs.xul2
-rw-r--r--application/palemoon/components/sessionstore/SessionStore.jsm7
-rw-r--r--application/palemoon/config/version.txt2
-rw-r--r--application/palemoon/locales/en-US/installer/custom.properties4
-rw-r--r--application/palemoon/locales/en-US/installer/nsisstrings.properties15
-rw-r--r--application/palemoon/modules/WindowsPreviewPerTab.jsm614
-rw-r--r--application/palemoon/themes/linux/browser.css6
-rw-r--r--application/palemoon/themes/osx/browser.css6
-rw-r--r--application/palemoon/themes/windows/browser.css6
-rw-r--r--build/moz.configure/warnings.configure11
-rw-r--r--config/external/nss/nss.symbols16
-rw-r--r--config/milestone.txt2
-rw-r--r--devtools/shared/heapsnapshot/HeapSnapshot.cpp12
-rw-r--r--devtools/shared/security/socket.js1
-rw-r--r--docs/CODE_OF_CONDUCT.md48
-rw-r--r--docshell/base/nsDocShell.cpp80
-rw-r--r--dom/base/Navigator.cpp2
-rw-r--r--dom/base/nsContentUtils.cpp71
-rw-r--r--dom/base/nsContentUtils.h15
-rw-r--r--dom/base/nsDOMClassInfo.cpp4
-rw-r--r--dom/base/nsDOMNavigationTiming.cpp7
-rw-r--r--dom/base/nsDeprecatedOperationList.h1
-rw-r--r--dom/base/nsDocument.cpp97
-rw-r--r--dom/base/nsFrameMessageManager.cpp8
-rw-r--r--dom/base/nsGlobalWindow.cpp19
-rw-r--r--dom/base/nsIDocument.h18
-rw-r--r--dom/base/nsINode.cpp49
-rw-r--r--dom/base/nsJSEnvironment.cpp15
-rw-r--r--dom/base/nsNodeInfoManager.cpp3
-rw-r--r--dom/base/nsObjectLoadingContent.cpp9
-rw-r--r--dom/bindings/BindingUtils.cpp4
-rw-r--r--dom/bindings/BindingUtils.h2
-rw-r--r--dom/bindings/ErrorResult.h2
-rw-r--r--dom/canvas/CanvasRenderingContextHelper.cpp14
-rw-r--r--dom/canvas/WebGL1Context.cpp3
-rw-r--r--dom/canvas/WebGLContext.cpp24
-rw-r--r--dom/crypto/WebCryptoTask.cpp40
-rw-r--r--dom/events/EventDispatcher.cpp48
-rw-r--r--dom/events/EventStateManager.cpp6
-rw-r--r--dom/events/EventStateManager.h3
-rw-r--r--dom/fetch/Fetch.cpp5
-rw-r--r--dom/fetch/FetchDriver.cpp3
-rw-r--r--dom/geolocation/nsGeolocation.cpp27
-rw-r--r--dom/html/HTMLFormElement.cpp8
-rw-r--r--dom/html/HTMLInputElement.cpp10
-rw-r--r--dom/html/HTMLMediaElement.cpp130
-rw-r--r--dom/html/ImageDocument.cpp17
-rw-r--r--dom/html/ImageDocument.h3
-rw-r--r--dom/html/TextTrackManager.cpp16
-rw-r--r--dom/html/nsTextEditorState.cpp13
-rw-r--r--dom/ipc/ContentParent.cpp7
-rw-r--r--dom/ipc/TabChild.cpp1
-rw-r--r--dom/locales/en-US/chrome/dom/dom.properties2
-rw-r--r--dom/locales/en-US/chrome/security/security.properties1
-rw-r--r--dom/media/AudioStream.cpp3
-rw-r--r--dom/media/Benchmark.cpp2
-rw-r--r--dom/media/CubebUtils.cpp8
-rw-r--r--dom/media/DecoderTraits.cpp7
-rw-r--r--dom/media/GraphDriver.cpp10
-rw-r--r--dom/media/GraphDriver.h6
-rw-r--r--dom/media/MediaDecoder.cpp1
-rw-r--r--dom/media/MediaDecoderStateMachine.cpp35
-rw-r--r--dom/media/MediaManager.cpp27
-rw-r--r--dom/media/MediaStreamGraph.cpp3
-rw-r--r--dom/media/VideoUtils.cpp19
-rw-r--r--dom/media/eme/DetailedPromise.cpp3
-rw-r--r--dom/media/eme/MediaKeySession.cpp3
-rw-r--r--dom/media/eme/MediaKeys.cpp2
-rw-r--r--dom/media/fmp4/MP4Demuxer.cpp26
-rw-r--r--dom/media/ogg/OggDemuxer.cpp2
-rw-r--r--dom/media/platforms/wmf/DXVA2Manager.cpp7
-rw-r--r--dom/media/platforms/wmf/WMFAudioMFTManager.cpp1
-rw-r--r--dom/media/platforms/wmf/WMFMediaDataDecoder.cpp3
-rw-r--r--dom/media/platforms/wmf/WMFVideoMFTManager.cpp3
-rw-r--r--dom/media/systemservices/LoadManager.cpp18
-rw-r--r--dom/media/webaudio/MediaBufferDecoder.cpp2
-rw-r--r--dom/media/webrtc/RTCCertificate.cpp2
-rw-r--r--dom/notification/Notification.cpp45
-rw-r--r--dom/plugins/base/nsPluginHost.cpp9
-rw-r--r--dom/plugins/ipc/PluginAsyncSurrogate.cpp2
-rw-r--r--dom/plugins/ipc/PluginHangUIParent.cpp9
-rw-r--r--dom/plugins/ipc/PluginInstanceParent.cpp13
-rwxr-xr-xdom/plugins/ipc/PluginModuleParent.cpp48
-rw-r--r--dom/presentation/provider/PresentationControlService.js1
-rw-r--r--dom/security/nsMixedContentBlocker.cpp41
-rw-r--r--dom/storage/DOMStorageCache.cpp5
-rw-r--r--dom/storage/DOMStorageDBThread.cpp2
-rw-r--r--dom/svg/SVGUseElement.cpp9
-rw-r--r--dom/svg/test/reftest_viewport_noninteger.html175
-rw-r--r--dom/system/mac/CoreLocationLocationProvider.mm3
-rw-r--r--dom/system/windows/WindowsLocationProvider.cpp4
-rw-r--r--dom/workers/RuntimeService.cpp13
-rw-r--r--dom/workers/ServiceWorkerManager.cpp3
-rw-r--r--dom/workers/ServiceWorkerRegistrar.cpp3
-rw-r--r--dom/workers/ServiceWorkerUpdateJob.cpp2
-rw-r--r--dom/workers/SharedWorker.cpp3
-rw-r--r--dom/workers/WorkerRunnable.cpp8
-rw-r--r--dom/xhr/XMLHttpRequestMainThread.cpp11
-rw-r--r--dom/xhr/XMLHttpRequestWorker.cpp2
-rw-r--r--dom/xul/nsXULPrototypeCache.cpp6
-rw-r--r--embedding/components/find/nsFind.cpp2
-rw-r--r--extensions/auth/nsAuthGSSAPI.cpp11
-rw-r--r--extensions/auth/nsAuthSSPI.cpp11
-rw-r--r--extensions/auth/nsAuthSambaNTLM.cpp12
-rw-r--r--extensions/cookie/nsPermissionManager.cpp35
-rw-r--r--gfx/gl/GLContextProviderGLX.cpp1
-rw-r--r--gfx/gl/GLLibraryEGL.cpp15
-rw-r--r--gfx/ipc/GPUChild.cpp12
-rw-r--r--gfx/layers/Layers.cpp3
-rw-r--r--gfx/layers/apz/src/AsyncPanZoomController.cpp21
-rw-r--r--gfx/layers/apz/src/InputBlockState.cpp3
-rw-r--r--gfx/layers/apz/src/PotentialCheckerboardDurationTracker.cpp8
-rw-r--r--gfx/layers/ipc/CompositorBridgeParent.cpp19
-rw-r--r--gfx/src/DriverCrashGuard.cpp16
-rw-r--r--gfx/thebes/DeviceManagerDx.cpp6
-rw-r--r--gfx/thebes/gfxDWriteFontList.cpp12
-rw-r--r--gfx/thebes/gfxFont.cpp7
-rw-r--r--gfx/thebes/gfxGDIFontList.cpp2
-rw-r--r--gfx/thebes/gfxGradientCache.cpp2
-rw-r--r--gfx/thebes/gfxMacPlatformFontList.mm7
-rw-r--r--gfx/thebes/gfxPlatform.cpp25
-rw-r--r--gfx/thebes/gfxPlatformFontList.cpp12
-rw-r--r--gfx/thebes/gfxUserFontSet.cpp14
-rwxr-xr-xgfx/thebes/gfxWindowsPlatform.cpp14
-rw-r--r--hal/Hal.cpp4
-rw-r--r--hal/Hal.h1
-rw-r--r--hal/HalSensor.h3
-rw-r--r--hal/sandbox/SandboxHal.cpp6
-rw-r--r--image/RasterImage.cpp31
-rw-r--r--image/imgFrame.cpp3
-rw-r--r--intl/strres/nsStringBundle.cpp27
-rw-r--r--intl/strres/nsStringBundleService.h2
-rw-r--r--intl/uconv/ucvja/nsJapaneseToUnicode.h2
-rw-r--r--intl/uconv/ucvlatin/nsCP866ToUnicode.cpp1
-rw-r--r--intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp1
-rw-r--r--intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp1
-rw-r--r--intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacCEToUnicode.cpp1
-rw-r--r--intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp1
-rw-r--r--intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp2
-rw-r--r--intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp2
-rw-r--r--ipc/chromium/src/base/process_util_win.cc27
-rw-r--r--ipc/glue/BackgroundChildImpl.cpp1
-rw-r--r--ipc/glue/GeckoChildProcessHost.cpp3
-rw-r--r--ipc/glue/MessageChannel.cpp15
-rw-r--r--js/ipc/JavaScriptParent.cpp3
-rw-r--r--js/public/HashTable.h46
-rw-r--r--js/public/MemoryMetrics.h23
-rw-r--r--js/public/Utility.h2
-rw-r--r--js/src/builtin/AtomicsObject.cpp2
-rw-r--r--js/src/ds/LifoAlloc.h16
-rw-r--r--js/src/frontend/BytecodeEmitter.cpp5
-rw-r--r--js/src/frontend/ParseNode.cpp2
-rw-r--r--js/src/frontend/Parser.cpp82
-rw-r--r--js/src/gc/Barrier.h27
-rw-r--r--js/src/gc/GCInternals.h5
-rw-r--r--js/src/gc/Marking.cpp30
-rw-r--r--js/src/gc/Statistics.h18
-rw-r--r--js/src/jit/BacktrackingAllocator.cpp11
-rw-r--r--js/src/jit/BacktrackingAllocator.h15
-rw-r--r--js/src/jit/IonCode.h11
-rw-r--r--js/src/jit/shared/Assembler-shared.h10
-rw-r--r--js/src/jit/x86-shared/AssemblerBuffer-x86-shared.h3
-rw-r--r--js/src/vm/Caches.h16
-rw-r--r--js/src/vm/NativeObject.h11
-rw-r--r--js/src/vm/Runtime.h15
-rw-r--r--js/src/vm/Scope.cpp20
-rw-r--r--js/src/vm/Scope.h120
-rw-r--r--js/src/vm/String.h11
-rw-r--r--js/src/vm/TypeInference.h20
-rw-r--r--js/src/wasm/AsmJS.cpp18
-rw-r--r--js/xpconnect/src/XPCJSContext.cpp99
-rw-r--r--layout/base/nsArenaMemoryStats.h7
-rw-r--r--layout/base/nsCSSRendering.cpp1
-rw-r--r--layout/base/nsDisplayList.cpp6
-rw-r--r--layout/base/nsDocumentViewer.cpp14
-rw-r--r--layout/base/nsLayoutUtils.cpp4
-rw-r--r--layout/base/nsPresShell.cpp40
-rw-r--r--layout/base/nsRefreshDriver.cpp57
-rw-r--r--layout/forms/nsNumberControlFrame.cpp4
-rw-r--r--layout/generic/nsSelection.cpp7
-rw-r--r--layout/reftests/svg/reftest.list1
-rw-r--r--layout/reftests/svg/use-localRef-link.html16
-rw-r--r--layout/style/FontFaceSet.cpp8
-rw-r--r--layout/style/nsFontFaceLoader.cpp1
-rw-r--r--layout/svg/nsSVGEffects.cpp46
-rw-r--r--layout/svg/nsSVGEffects.h14
-rw-r--r--layout/svg/nsSVGOuterSVGFrame.cpp9
-rw-r--r--layout/xul/nsScrollbarButtonFrame.cpp3
-rw-r--r--layout/xul/nsSliderFrame.cpp6
-rw-r--r--media/ffvpx/README_MCP7
-rw-r--r--media/libvpx/bug1480092.patch36
-rwxr-xr-xmedia/libvpx/update.py2
-rw-r--r--media/libvpx/vp8/common/postproc.c2
-rwxr-xr-xmedia/webrtc/signaling/src/media-conduit/AudioConduit.cpp9
-rw-r--r--media/webrtc/signaling/src/media-conduit/CodecStatistics.cpp8
-rw-r--r--media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp109
-rw-r--r--media/webrtc/signaling/src/peerconnection/WebrtcGlobalInformation.cpp16
-rw-r--r--memory/mozjemalloc/moz.build5
-rw-r--r--mfbt/EnumSet.h2
-rw-r--r--mfbt/tests/TestTypeTraits.cpp4
-rw-r--r--mobile/android/.eslintrc1
-rw-r--r--mobile/android/chrome/content/aboutLogins.js1
-rw-r--r--mobile/android/components/SessionStore.js3
-rw-r--r--modules/libjar/nsJARChannel.cpp7
-rw-r--r--modules/libmar/src/mar.h1
-rw-r--r--modules/libmar/src/mar_read.c22
-rw-r--r--modules/libpref/init/all.js20
-rw-r--r--netwerk/base/BackgroundFileSaver.cpp2
-rw-r--r--netwerk/base/Predictor.cpp26
-rw-r--r--netwerk/base/TLSServerSocket.cpp16
-rw-r--r--netwerk/base/nsITLSServerSocket.idl9
-rw-r--r--netwerk/base/nsLoadGroup.cpp159
-rw-r--r--netwerk/base/nsNetUtil.cpp8
-rw-r--r--netwerk/base/nsSocketTransport2.cpp46
-rw-r--r--netwerk/base/nsSocketTransportService2.cpp43
-rw-r--r--netwerk/base/nsUDPSocket.cpp27
-rw-r--r--netwerk/base/security-prefs.js2
-rw-r--r--netwerk/cache/nsCacheService.cpp15
-rw-r--r--netwerk/cache/nsDeleteDir.cpp3
-rw-r--r--netwerk/cache/nsDiskCacheDevice.cpp2
-rw-r--r--netwerk/cache/nsDiskCacheDeviceSQL.cpp1
-rw-r--r--netwerk/cache/nsDiskCacheEntry.h2
-rw-r--r--netwerk/cache/nsDiskCacheMap.cpp4
-rw-r--r--netwerk/cache/nsMemoryCacheDevice.cpp1
-rw-r--r--netwerk/cache2/CacheFile.cpp7
-rw-r--r--netwerk/cache2/CacheFileIOManager.cpp7
-rw-r--r--netwerk/cache2/CacheFileMetadata.cpp14
-rw-r--r--netwerk/cache2/CacheFileUtils.cpp16
-rw-r--r--netwerk/cache2/CacheFileUtils.h2
-rw-r--r--netwerk/cache2/CacheIOThread.cpp2
-rw-r--r--netwerk/cache2/CacheIndex.cpp1
-rw-r--r--netwerk/cache2/CacheStorageService.cpp5
-rw-r--r--netwerk/cache2/OldWrappers.cpp19
-rw-r--r--netwerk/cookie/nsCookieService.cpp51
-rw-r--r--netwerk/dns/nsHostResolver.cpp58
-rw-r--r--netwerk/protocol/http/ASpdySession.cpp2
-rw-r--r--netwerk/protocol/http/Http2Compression.cpp16
-rw-r--r--netwerk/protocol/http/Http2Session.cpp11
-rw-r--r--netwerk/protocol/http/Http2Stream.cpp11
-rw-r--r--netwerk/protocol/http/HttpBaseChannel.cpp2
-rw-r--r--netwerk/protocol/http/nsCORSListenerProxy.cpp2
-rw-r--r--netwerk/protocol/http/nsHttpChannel.cpp246
-rw-r--r--netwerk/protocol/http/nsHttpChannel.h2
-rw-r--r--netwerk/protocol/http/nsHttpChannelAuthProvider.cpp34
-rw-r--r--netwerk/protocol/http/nsHttpConnection.cpp24
-rw-r--r--netwerk/protocol/http/nsHttpConnectionMgr.cpp16
-rw-r--r--netwerk/protocol/http/nsHttpHandler.cpp43
-rw-r--r--netwerk/protocol/http/nsHttpHandler.h3
-rw-r--r--netwerk/protocol/websocket/WebSocketChannel.cpp2
-rw-r--r--netwerk/system/linux/nsNotifyAddrListener_Linux.cpp4
-rw-r--r--netwerk/system/mac/nsNetworkLinkService.mm4
-rw-r--r--netwerk/system/win32/nsNotifyAddrListener.cpp4
-rw-r--r--netwerk/test/unit/test_be_conservative.js1
-rw-r--r--netwerk/test/unit/test_tls_server.js1
-rw-r--r--netwerk/test/unit/test_tls_server_multiple_clients.js1
-rw-r--r--old-configure.in12
-rw-r--r--parser/htmlparser/nsScannerString.h18
-rw-r--r--python/mozbuild/mozbuild/action/dump_env.py8
-rw-r--r--python/mozbuild/mozbuild/controller/clobber.py2
-rw-r--r--security/manager/ssl/DataStorage.cpp3
-rw-r--r--security/manager/ssl/SSLServerCertVerification.cpp147
-rw-r--r--security/manager/ssl/nsKeygenHandler.cpp43
-rw-r--r--security/manager/ssl/nsNSSCallbacks.cpp49
-rw-r--r--security/manager/ssl/nsNSSComponent.cpp57
-rw-r--r--security/manager/ssl/nsNSSIOLayer.cpp31
-rw-r--r--security/manager/ssl/nsNTLMAuthModule.cpp5
-rw-r--r--security/manager/ssl/nsPKCS11Slot.cpp4
-rw-r--r--security/manager/ssl/nsSTSPreloadList.errors3978
-rw-r--r--security/manager/ssl/nsSTSPreloadList.inc6173
-rw-r--r--security/manager/ssl/tests/unit/test_weak_crypto.js1
-rw-r--r--security/nss/TAG-INFO2
-rw-r--r--security/nss/automation/abi-check/expected-report-libnssutil3.so.txt4
-rw-r--r--security/nss/automation/abi-check/expected-report-libssl3.so.txt28
-rw-r--r--security/nss/automation/abi-check/previous-nss-release2
-rw-r--r--security/nss/automation/taskcluster/docker-hacl/Dockerfile6
-rw-r--r--security/nss/automation/taskcluster/docker-hacl/setup-user.sh1
-rw-r--r--security/nss/automation/taskcluster/docker-saw/Dockerfile2
-rw-r--r--security/nss/automation/taskcluster/docker/Dockerfile3
-rw-r--r--security/nss/automation/taskcluster/graph/src/extend.js22
-rw-r--r--security/nss/automation/taskcluster/graph/src/try_syntax.js2
-rw-r--r--security/nss/automation/taskcluster/scripts/gen_coverage_report.sh12
-rw-r--r--security/nss/automation/taskcluster/scripts/run_hacl.sh4
-rw-r--r--security/nss/automation/taskcluster/scripts/tools.sh5
-rw-r--r--security/nss/cmd/bltest/blapitest.c6
-rw-r--r--security/nss/cmd/certutil/certutil.c156
-rw-r--r--security/nss/cmd/crlutil/crlutil.c14
-rw-r--r--security/nss/cmd/crmftest/testcrmf.c1
-rw-r--r--security/nss/cmd/dbtest/dbtest.c7
-rw-r--r--security/nss/cmd/httpserv/httpserv.c10
-rw-r--r--security/nss/cmd/lib/secutil.c8
-rw-r--r--security/nss/cmd/listsuites/listsuites.c2
-rw-r--r--security/nss/cmd/lowhashtest/lowhashtest.c4
-rw-r--r--security/nss/cmd/modutil/install-ds.c10
-rw-r--r--security/nss/cmd/mpitests/mpi-test.c16
-rw-r--r--security/nss/cmd/ocspclnt/ocspclnt.c24
-rw-r--r--security/nss/cmd/ocspresp/ocspresp.c6
-rw-r--r--security/nss/cmd/pk12util/pk12util.c12
-rw-r--r--security/nss/cmd/pk1sign/pk1sign.c2
-rw-r--r--security/nss/cmd/rsaperf/rsaperf.c32
-rw-r--r--security/nss/cmd/selfserv/selfserv.c59
-rw-r--r--security/nss/cmd/shlibsign/shlibsign.c2
-rw-r--r--security/nss/cmd/signtool/javascript.c8
-rw-r--r--security/nss/cmd/signtool/sign.c68
-rw-r--r--security/nss/cmd/signtool/zip.c4
-rw-r--r--security/nss/cmd/smimetools/cmsutil.c37
-rw-r--r--security/nss/cmd/strsclnt/strsclnt.c16
-rw-r--r--security/nss/cmd/symkeyutil/symkeyutil.c5
-rw-r--r--security/nss/cmd/tstclnt/tstclnt.c225
-rw-r--r--security/nss/cmd/vfyserv/vfyserv.c6
-rw-r--r--security/nss/cmd/vfyserv/vfyutil.c4
-rw-r--r--security/nss/coreconf/Werror.mk6
-rw-r--r--security/nss/coreconf/config.mk4
-rw-r--r--security/nss/coreconf/coreconf.dep1
-rw-r--r--security/nss/coreconf/nsinstall/pathsub.c2
-rw-r--r--security/nss/coreconf/werror.py2
-rw-r--r--security/nss/cpputil/databuffer.cc10
-rw-r--r--security/nss/cpputil/databuffer.h14
-rw-r--r--security/nss/cpputil/scoped_ptrs.h2
-rw-r--r--security/nss/cpputil/tls_parser.cc15
-rw-r--r--security/nss/cpputil/tls_parser.h1
-rw-r--r--security/nss/fuzz/fuzz.gyp3
-rw-r--r--security/nss/fuzz/tls_client_target.cc8
-rw-r--r--security/nss/gtests/freebl_gtest/blake2b_unittest.cc4
-rw-r--r--security/nss/gtests/freebl_gtest/kat/blake2b_kat.h2
-rw-r--r--security/nss/gtests/nss_bogo_shim/config.cc35
-rw-r--r--security/nss/gtests/nss_bogo_shim/config.h17
-rw-r--r--security/nss/gtests/nss_bogo_shim/config.json74
-rw-r--r--security/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc59
-rw-r--r--security/nss/gtests/pk11_gtest/pk11_signature_test.h4
-rw-r--r--security/nss/gtests/ssl_gtest/libssl_internals.c13
-rw-r--r--security/nss/gtests/ssl_gtest/manifest.mn1
-rw-r--r--security/nss/gtests/ssl_gtest/rsa8193.h209
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_0rtt_unittest.cc4
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_agent_unittest.cc78
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_auth_unittest.cc48
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_ciphersuite_unittest.cc11
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_custext_unittest.cc1
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_dhe_unittest.cc73
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_drop_unittest.cc126
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_ecdh_unittest.cc111
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_extension_unittest.cc35
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_fragment_unittest.cc28
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_fuzz_unittest.cc4
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_gtest.gyp1
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_hrr_unittest.cc136
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_loopback_unittest.cc71
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_record_unittest.cc57
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_recordsize_unittest.cc431
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_resumption_unittest.cc6
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_skip_unittest.cc6
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_staticrsa_unittest.cc36
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_tls13compat_unittest.cc92
-rw-r--r--security/nss/gtests/ssl_gtest/ssl_versionpolicy_unittest.cc12
-rw-r--r--security/nss/gtests/ssl_gtest/test_io.cc8
-rw-r--r--security/nss/gtests/ssl_gtest/test_io.h6
-rw-r--r--security/nss/gtests/ssl_gtest/tls_agent.cc131
-rw-r--r--security/nss/gtests/ssl_gtest/tls_agent.h24
-rw-r--r--security/nss/gtests/ssl_gtest/tls_connect.cc49
-rw-r--r--security/nss/gtests/ssl_gtest/tls_connect.h4
-rw-r--r--security/nss/gtests/ssl_gtest/tls_filter.cc234
-rw-r--r--security/nss/gtests/ssl_gtest/tls_filter.h149
-rw-r--r--security/nss/gtests/ssl_gtest/tls_protect.cc35
-rw-r--r--security/nss/gtests/ssl_gtest/tls_protect.h15
-rw-r--r--security/nss/lib/certdb/crl.c8
-rw-r--r--security/nss/lib/ckfw/Makefile4
-rw-r--r--security/nss/lib/ckfw/builtins/certdata.txt467
-rw-r--r--security/nss/lib/ckfw/builtins/nssckbi.h6
-rw-r--r--security/nss/lib/ckfw/nssmkey/Makefile72
-rw-r--r--security/nss/lib/ckfw/nssmkey/README21
-rw-r--r--security/nss/lib/ckfw/nssmkey/ckmk.h182
-rw-r--r--security/nss/lib/ckfw/nssmkey/ckmkver.c17
-rw-r--r--security/nss/lib/ckfw/nssmkey/config.mk24
-rw-r--r--security/nss/lib/ckfw/nssmkey/manchor.c17
-rw-r--r--security/nss/lib/ckfw/nssmkey/manifest.mn33
-rw-r--r--security/nss/lib/ckfw/nssmkey/mconstants.c61
-rw-r--r--security/nss/lib/ckfw/nssmkey/mfind.c352
-rw-r--r--security/nss/lib/ckfw/nssmkey/minst.c97
-rw-r--r--security/nss/lib/ckfw/nssmkey/mobject.c1861
-rw-r--r--security/nss/lib/ckfw/nssmkey/mrsa.c479
-rw-r--r--security/nss/lib/ckfw/nssmkey/msession.c87
-rw-r--r--security/nss/lib/ckfw/nssmkey/mslot.c81
-rw-r--r--security/nss/lib/ckfw/nssmkey/mtoken.c184
-rw-r--r--security/nss/lib/ckfw/nssmkey/nssmkey.def26
-rw-r--r--security/nss/lib/ckfw/nssmkey/nssmkey.h41
-rw-r--r--security/nss/lib/ckfw/nssmkey/staticobj.c36
-rw-r--r--security/nss/lib/ckfw/session.c3
-rw-r--r--security/nss/lib/dev/devtoken.c4
-rw-r--r--security/nss/lib/freebl/Makefile10
-rw-r--r--security/nss/lib/freebl/blake2b.c2
-rw-r--r--security/nss/lib/freebl/chacha20poly1305.c88
-rw-r--r--security/nss/lib/freebl/dsa.c37
-rw-r--r--security/nss/lib/freebl/ec.c29
-rw-r--r--security/nss/lib/freebl/freebl.gyp36
-rw-r--r--security/nss/lib/freebl/freebl_base.gypi15
-rw-r--r--security/nss/lib/freebl/loader.c4
-rw-r--r--security/nss/lib/freebl/mpi/mpi.c13
-rw-r--r--security/nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c881
-rw-r--r--security/nss/lib/freebl/poly1305.c314
-rw-r--r--security/nss/lib/freebl/poly1305.h30
-rw-r--r--security/nss/lib/freebl/unix_urandom.c33
-rw-r--r--security/nss/lib/freebl/verified/Hacl_Poly1305_32.c578
-rw-r--r--security/nss/lib/freebl/verified/Hacl_Poly1305_32.h103
-rw-r--r--security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c130
-rw-r--r--security/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c20
-rw-r--r--security/nss/lib/nss/nss.h6
-rw-r--r--security/nss/lib/pk11wrap/pk11akey.c18
-rw-r--r--security/nss/lib/pk11wrap/pk11pars.c8
-rw-r--r--security/nss/lib/pkcs12/p12e.c5
-rw-r--r--security/nss/lib/pkcs7/p7decode.c1
-rw-r--r--security/nss/lib/pki/pki3hack.c4
-rw-r--r--security/nss/lib/smime/cmsrecinfo.c2
-rw-r--r--security/nss/lib/softoken/legacydb/pcertdb.c3
-rw-r--r--security/nss/lib/softoken/lowkey.c24
-rw-r--r--security/nss/lib/softoken/lowkeyi.h1
-rw-r--r--security/nss/lib/softoken/lowkeyti.h9
-rw-r--r--security/nss/lib/softoken/lowpbe.c10
-rw-r--r--security/nss/lib/softoken/pkcs11.c72
-rw-r--r--security/nss/lib/softoken/pkcs11c.c116
-rw-r--r--security/nss/lib/softoken/pkcs11u.c4
-rw-r--r--security/nss/lib/softoken/sdb.c69
-rw-r--r--security/nss/lib/softoken/sftkdb.c3
-rw-r--r--security/nss/lib/softoken/sftkpars.c34
-rw-r--r--security/nss/lib/softoken/sftkpwd.c6
-rw-r--r--security/nss/lib/softoken/softkver.h6
-rw-r--r--security/nss/lib/ssl/SSLerrs.h11
-rw-r--r--security/nss/lib/ssl/dtls13con.c59
-rw-r--r--security/nss/lib/ssl/dtls13con.h4
-rw-r--r--security/nss/lib/ssl/dtlscon.c116
-rw-r--r--security/nss/lib/ssl/dtlscon.h2
-rw-r--r--security/nss/lib/ssl/ssl.h81
-rw-r--r--security/nss/lib/ssl/ssl3con.c430
-rw-r--r--security/nss/lib/ssl/ssl3ecc.c6
-rw-r--r--security/nss/lib/ssl/ssl3ext.c13
-rw-r--r--security/nss/lib/ssl/ssl3ext.h3
-rw-r--r--security/nss/lib/ssl/ssl3exthandle.c181
-rw-r--r--security/nss/lib/ssl/ssl3exthandle.h7
-rw-r--r--security/nss/lib/ssl/ssl3gthr.c109
-rw-r--r--security/nss/lib/ssl/ssl3prot.h2
-rw-r--r--security/nss/lib/ssl/sslcert.c3
-rw-r--r--security/nss/lib/ssl/sslerr.h2
-rw-r--r--security/nss/lib/ssl/sslimpl.h39
-rw-r--r--security/nss/lib/ssl/sslsecur.c19
-rw-r--r--security/nss/lib/ssl/sslsock.c123
-rw-r--r--security/nss/lib/ssl/sslspec.c1
-rw-r--r--security/nss/lib/ssl/sslspec.h8
-rw-r--r--security/nss/lib/ssl/sslt.h3
-rw-r--r--security/nss/lib/ssl/tls13con.c262
-rw-r--r--security/nss/lib/ssl/tls13con.h2
-rw-r--r--security/nss/lib/ssl/tls13exthandle.c4
-rw-r--r--security/nss/lib/util/nssutil.def7
-rw-r--r--security/nss/lib/util/nssutil.h6
-rw-r--r--security/nss/lib/util/pkcs11t.h2
-rw-r--r--security/nss/lib/util/secasn1d.c4
-rw-r--r--security/nss/lib/util/secitem.c9
-rw-r--r--security/nss/lib/util/secitem.h8
-rw-r--r--security/nss/nss-tool/enc/enctool.cc1
-rwxr-xr-xsecurity/nss/tests/all.sh2
-rwxr-xr-xsecurity/nss/tests/bogo/bogo.sh9
-rwxr-xr-xsecurity/nss/tests/cert/cert.sh76
-rw-r--r--security/nss/tests/common/init.sh7
-rw-r--r--security/nss/tests/interop/interop.sh2
-rwxr-xr-xsecurity/nss/tests/ssl/ssl.sh122
-rwxr-xr-xsecurity/nss/tests/ssl_gtests/ssl_gtests.sh2
-rw-r--r--security/nss/tests/tools/TestRSAPSS.p12bin0 -> 2554 bytes
-rw-r--r--security/nss/tests/tools/tools.sh21
-rw-r--r--services/sync/Weave.js7
-rw-r--r--services/sync/modules/FxaMigrator.jsm99
-rw-r--r--services/sync/moz.build1
-rw-r--r--services/sync/tests/unit/test_fxa_migration.js117
-rw-r--r--services/sync/tests/unit/xpcshell.ini3
-rw-r--r--startupcache/StartupCache.cpp26
-rw-r--r--storage/TelemetryVFS.cpp11
-rw-r--r--storage/mozStorageAsyncStatementExecution.cpp4
-rw-r--r--toolkit/components/alerts/nsAlertsService.cpp4
-rw-r--r--toolkit/components/downloads/ApplicationReputation.cpp31
-rw-r--r--toolkit/components/osfile/modules/osfile_async_front.jsm4
-rw-r--r--toolkit/components/perfmonitoring/nsPerformanceStats.cpp18
-rw-r--r--toolkit/components/places/Database.cpp3
-rw-r--r--toolkit/components/places/FaviconHelpers.cpp28
-rw-r--r--toolkit/components/places/Helpers.cpp4
-rw-r--r--toolkit/components/places/UnifiedComplete.js14
-rw-r--r--toolkit/components/places/nsPlacesAutoComplete.js5
-rw-r--r--toolkit/components/search/current/nsSearchService.js6
-rw-r--r--toolkit/components/search/orginal/nsSearchService.js20
-rw-r--r--toolkit/components/startup/nsAppStartup.cpp12
-rw-r--r--toolkit/components/telemetry/TelemetryStopwatch.jsm335
-rw-r--r--toolkit/components/telemetry/moz.build1
-rw-r--r--toolkit/components/telemetry/tests/unit/test_TelemetryStopwatch.js156
-rw-r--r--toolkit/components/telemetry/tests/unit/xpcshell.ini1
-rw-r--r--toolkit/components/url-classifier/Classifier.cpp8
-rw-r--r--toolkit/components/url-classifier/Entries.h2
-rw-r--r--toolkit/components/url-classifier/LookupCache.cpp9
-rw-r--r--toolkit/components/url-classifier/LookupCacheV4.cpp13
-rw-r--r--toolkit/components/url-classifier/VariableLengthPrefixSet.cpp13
-rw-r--r--toolkit/components/url-classifier/nsUrlClassifierDBService.cpp6
-rw-r--r--toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp16
-rw-r--r--toolkit/components/url-classifier/nsUrlClassifierStreamUpdater.cpp5
-rw-r--r--toolkit/content/browser-content.js29
-rw-r--r--toolkit/content/jar.mn2
-rw-r--r--toolkit/content/widgets/findbar.xml5
-rw-r--r--toolkit/content/widgets/tabbox.xml22
-rw-r--r--toolkit/locales/Makefile.in2
-rw-r--r--toolkit/themes/linux/global/jar.mn2
-rw-r--r--toolkit/themes/linux/global/toolbar.css10
-rw-r--r--toolkit/themes/osx/global/jar.mn2
-rw-r--r--toolkit/themes/osx/global/toolbar.css9
-rw-r--r--toolkit/themes/windows/global/jar.mn2
-rw-r--r--toolkit/themes/windows/global/toolbar.css12
-rw-r--r--toolkit/xre/nsAppRunner.cpp5
-rw-r--r--toolkit/xre/nsXREDirProvider.cpp21
-rw-r--r--widget/android/fennec/Telemetry.h3
-rw-r--r--widget/nsIdleService.cpp3
-rw-r--r--widget/windows/WinCompositorWidget.cpp8
-rw-r--r--widget/windows/WinCompositorWidget.h4
-rw-r--r--widget/windows/nsLookAndFeel.cpp3
-rw-r--r--widget/windows/nsWindow.cpp16
-rw-r--r--widget/windows/nsWindowGfx.cpp2
-rw-r--r--xpcom/base/CycleCollectedJSContext.cpp3
-rw-r--r--xpcom/base/nsCycleCollector.cpp17
-rw-r--r--xpcom/base/nsMemoryReporterManager.cpp1
-rw-r--r--xpcom/build/XPCOMInit.cpp13
-rw-r--r--xpcom/glue/Observer.h14
-rw-r--r--xpcom/glue/nsTHashtable.h4
-rw-r--r--xpcom/string/nsReadableUtilsImpl.h2
-rw-r--r--xpcom/threads/HangMonitor.cpp2
573 files changed, 13509 insertions, 15579 deletions
diff --git a/CLOBBER b/CLOBBER
index fd0b25967..76ebbb54b 100644
--- a/CLOBBER
+++ b/CLOBBER
@@ -22,4 +22,4 @@
# changes to stick? As of bug 928195, this shouldn't be necessary! Please
# don't change CLOBBER for WebIDL changes any more.
-Clobber for updating NSPR+NSS
+Clobber required for updating NSS to 3.38 (poly1305 symbol changes)
diff --git a/README.md b/README.md
index 69f81ca3b..4f5f58255 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,9 @@ Additional documentation relevant to this source code can be found in the `/docs
directory. This will contain relevant documentation regarding contributing,
using and distributing this code and its binaries.
+If you are interested in the development and building side of things, some
+information will be available on the [Pale Moon developer wiki](http://developer.palemoon.org).
+
### A note about trademarks and branding
Although this repository is licensed under Mozilla Public License v2.0, the
diff --git a/accessible/base/NotificationController.cpp b/accessible/base/NotificationController.cpp
index 73d364641..3545ce6c1 100644
--- a/accessible/base/NotificationController.cpp
+++ b/accessible/base/NotificationController.cpp
@@ -591,7 +591,6 @@ void
NotificationController::WillRefresh(mozilla::TimeStamp aTime)
{
PROFILER_LABEL_FUNC(js::ProfileEntry::Category::OTHER);
- Telemetry::AutoTimer<Telemetry::A11Y_UPDATE_TIME> updateTimer;
// If the document accessible that notification collector was created for is
// now shut down, don't process notifications anymore.
diff --git a/accessible/base/Statistics.h b/accessible/base/Statistics.h
index c9f1832b2..f5a9a85b8 100644
--- a/accessible/base/Statistics.h
+++ b/accessible/base/Statistics.h
@@ -14,22 +14,22 @@ namespace a11y {
namespace statistics {
inline void A11yInitialized()
- { Telemetry::Accumulate(Telemetry::A11Y_INSTANTIATED_FLAG, true); }
+ { /* STUB */ }
inline void A11yConsumers(uint32_t aConsumer)
- { Telemetry::Accumulate(Telemetry::A11Y_CONSUMERS, aConsumer); }
+ { /* STUB */ }
/**
* Report that ISimpleDOM* has been used.
*/
inline void ISimpleDOMUsed()
- { Telemetry::Accumulate(Telemetry::A11Y_ISIMPLEDOM_USAGE_FLAG, true); }
+ { /* STUB */ }
/**
* Report that IAccessibleTable has been used.
*/
inline void IAccessibleTableUsed()
- { Telemetry::Accumulate(Telemetry::A11Y_IATABLE_USAGE_FLAG, true); }
+ { /* STUB */ }
} // namespace statistics
} // namespace a11y
diff --git a/application/basilisk/app/macbuild/Contents/Info.plist.in b/application/basilisk/app/macbuild/Contents/Info.plist.in
index d6902fffd..3f9380606 100644
--- a/application/basilisk/app/macbuild/Contents/Info.plist.in
+++ b/application/basilisk/app/macbuild/Contents/Info.plist.in
@@ -143,7 +143,7 @@
</dict>
</array>
<key>CFBundleExecutable</key>
- <string>firefox</string>
+ <string>basilisk</string>
<key>CFBundleGetInfoString</key>
<string>%MAC_APP_NAME% %APP_VERSION%</string>
<key>CFBundleIconFile</key>
@@ -213,7 +213,7 @@
<key>LSFileQuarantineEnabled</key>
<true/>
<key>LSMinimumSystemVersion</key>
- <string>10.9.0</string>
+ <string>10.7.0</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<true/>
<key>NSPrincipalClass</key>
diff --git a/application/basilisk/app/profile/basilisk.js b/application/basilisk/app/profile/basilisk.js
index 2df95a97f..fd81e8204 100644
--- a/application/basilisk/app/profile/basilisk.js
+++ b/application/basilisk/app/profile/basilisk.js
@@ -543,9 +543,10 @@ pref("browser.gesture.tap", "cmd_fullZoomReset");
pref("browser.snapshots.limit", 0);
// 0: Nothing happens
-// 1: Scrolling contents
+// 1: Scroll contents
// 2: Go back or go forward, in your history
-// 3: Zoom in or out.
+// 3: Zoom in or out
+// 4: Scroll contents with X and Y swapped
#ifdef XP_MACOSX
// On OS X, if the wheel has one axis only, shift+wheel comes through as a
// horizontal scroll event. Thus, we can't assign anything other than normal
diff --git a/application/basilisk/base/content/browser-fullScreenAndPointerLock.js b/application/basilisk/base/content/browser-fullScreenAndPointerLock.js
index dbc9478c1..ebe55377f 100644
--- a/application/basilisk/base/content/browser-fullScreenAndPointerLock.js
+++ b/application/basilisk/base/content/browser-fullScreenAndPointerLock.js
@@ -379,12 +379,10 @@ var FullScreen = {
let topWin = event.target.ownerGlobal.top;
browser = gBrowser.getBrowserForContentWindow(topWin);
}
- TelemetryStopwatch.start("FULLSCREEN_CHANGE_MS");
this.enterDomFullscreen(browser);
break;
}
case "MozDOMFullscreen:Exited":
- TelemetryStopwatch.start("FULLSCREEN_CHANGE_MS");
this.cleanupDomFullscreen();
break;
}
@@ -410,7 +408,6 @@ var FullScreen = {
}
case "DOMFullscreen:Painted": {
Services.obs.notifyObservers(window, "fullscreen-painted", "");
- TelemetryStopwatch.finish("FULLSCREEN_CHANGE_MS");
break;
}
}
diff --git a/application/basilisk/base/content/browser-fxaccounts.js b/application/basilisk/base/content/browser-fxaccounts.js
index 0bbce3e26..94a591f1e 100644
--- a/application/basilisk/base/content/browser-fxaccounts.js
+++ b/application/basilisk/base/content/browser-fxaccounts.js
@@ -4,8 +4,6 @@
var gFxAccounts = {
- SYNC_MIGRATION_NOTIFICATION_TITLE: "fxa-migration",
-
_initialized: false,
_inCustomizationMode: false,
_cachedProfile: null,
@@ -26,7 +24,6 @@ var gFxAccounts = {
"weave:service:setup-complete",
"weave:service:sync:error",
"weave:ui:login:error",
- "fxa-migration:state-changed",
this.FxAccountsCommon.ONLOGIN_NOTIFICATION,
this.FxAccountsCommon.ONLOGOUT_NOTIFICATION,
this.FxAccountsCommon.ON_PROFILE_CHANGE_NOTIFICATION,
@@ -122,9 +119,6 @@ var gFxAccounts = {
observe: function (subject, topic, data) {
switch (topic) {
- case "fxa-migration:state-changed":
- this.onMigrationStateChanged(data, subject);
- break;
case this.FxAccountsCommon.ON_PROFILE_CHANGE_NOTIFICATION:
this._cachedProfile = null;
// Fallthrough intended
@@ -134,48 +128,6 @@ var gFxAccounts = {
}
},
- onMigrationStateChanged: function () {
- // Since we nuked most of the migration code, this notification will fire
- // once after legacy Sync has been disconnected (and should never fire
- // again)
- let nb = window.document.getElementById("global-notificationbox");
-
- let msg = this.strings.GetStringFromName("autoDisconnectDescription")
- let signInLabel = this.strings.GetStringFromName("autoDisconnectSignIn.label");
- let signInAccessKey = this.strings.GetStringFromName("autoDisconnectSignIn.accessKey");
- let learnMoreLink = this.fxaMigrator.learnMoreLink;
-
- let buttons = [
- {
- label: signInLabel,
- accessKey: signInAccessKey,
- callback: () => {
- this.openPreferences();
- }
- }
- ];
-
- let fragment = document.createDocumentFragment();
- let msgNode = document.createTextNode(msg);
- fragment.appendChild(msgNode);
- if (learnMoreLink) {
- let link = document.createElement("label");
- link.className = "text-link";
- link.setAttribute("value", learnMoreLink.text);
- link.href = learnMoreLink.href;
- fragment.appendChild(link);
- }
-
- nb.appendNotification(fragment,
- this.SYNC_MIGRATION_NOTIFICATION_TITLE,
- undefined,
- nb.PRIORITY_WARNING_LOW,
- buttons);
-
- // ensure the hamburger menu reflects the newly disconnected state.
- this.updateAppMenuItem();
- },
-
handleEvent: function (event) {
this._inCustomizationMode = event.type == "customizationstarting";
this.updateAppMenuItem();
diff --git a/application/basilisk/base/content/browser-gestureSupport.js b/application/basilisk/base/content/browser-gestureSupport.js
index f472e5c9a..6c21a6ad5 100644
--- a/application/basilisk/base/content/browser-gestureSupport.js
+++ b/application/basilisk/base/content/browser-gestureSupport.js
@@ -1001,13 +1001,10 @@ var gHistorySwipeAnimation = {
ctx.DRAWWINDOW_ASYNC_DECODE_IMAGES |
ctx.DRAWWINDOW_USE_WIDGET_LAYERS);
- TelemetryStopwatch.start("FX_GESTURE_INSTALL_SNAPSHOT_OF_PAGE");
try {
this._installCurrentPageSnapshot(canvas);
this._assignSnapshotToCurrentBrowser(canvas);
- } finally {
- TelemetryStopwatch.finish("FX_GESTURE_INSTALL_SNAPSHOT_OF_PAGE");
- }
+ } catch (e) {}
},
/**
@@ -1058,7 +1055,6 @@ var gHistorySwipeAnimation = {
return;
}
- TelemetryStopwatch.start("FX_GESTURE_COMPRESS_SNAPSHOT_OF_PAGE");
try {
let browser = gBrowser.selectedBrowser;
let snapshots = browser.snapshots;
@@ -1072,9 +1068,7 @@ var gHistorySwipeAnimation = {
}
}, "image/png"
);
- } finally {
- TelemetryStopwatch.finish("FX_GESTURE_COMPRESS_SNAPSHOT_OF_PAGE");
- }
+ } catch (e) {}
},
/**
diff --git a/application/basilisk/base/content/browser.js b/application/basilisk/base/content/browser.js
index 031144dfd..4f4ebb08f 100644
--- a/application/basilisk/base/content/browser.js
+++ b/application/basilisk/base/content/browser.js
@@ -45,7 +45,6 @@ Cu.import("resource://gre/modules/NotificationDB.jsm");
["SitePermissions", "resource:///modules/SitePermissions.jsm"],
["TabCrashHandler", "resource:///modules/ContentCrashHandlers.jsm"],
["Task", "resource://gre/modules/Task.jsm"],
- ["TelemetryStopwatch", "resource://gre/modules/TelemetryStopwatch.jsm"],
["Translation", "resource:///modules/translation/Translation.jsm"],
["UpdateUtils", "resource://gre/modules/UpdateUtils.jsm"],
["Weave", "resource://services-sync/main.js"],
@@ -3818,8 +3817,6 @@ function toOpenWindowByType(inType, uri, features)
function OpenBrowserWindow(options)
{
- var telemetryObj = {};
- TelemetryStopwatch.start("FX_NEW_WINDOW_MS", telemetryObj);
function newDocumentShown(doc, topic, data) {
if (topic == "document-shown" &&
@@ -3827,7 +3824,6 @@ function OpenBrowserWindow(options)
doc.defaultView == win) {
Services.obs.removeObserver(newDocumentShown, "document-shown");
Services.obs.removeObserver(windowClosed, "domwindowclosed");
- TelemetryStopwatch.finish("FX_NEW_WINDOW_MS", telemetryObj);
}
}
@@ -4623,25 +4619,6 @@ var TabsProgressListener = {
_startedLoadTimer: new WeakSet(),
onStateChange: function (aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) {
- // Collect telemetry data about tab load times.
- if (aWebProgress.isTopLevel && (!aRequest.originalURI || aRequest.originalURI.spec.scheme != "about")) {
- if (aStateFlags & Ci.nsIWebProgressListener.STATE_IS_WINDOW) {
- if (aStateFlags & Ci.nsIWebProgressListener.STATE_START) {
- this._startedLoadTimer.add(aBrowser);
- TelemetryStopwatch.start("FX_PAGE_LOAD_MS", aBrowser);
- Services.telemetry.getHistogramById("FX_TOTAL_TOP_VISITS").add(true);
- } else if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP &&
- this._startedLoadTimer.has(aBrowser)) {
- this._startedLoadTimer.delete(aBrowser);
- TelemetryStopwatch.finish("FX_PAGE_LOAD_MS", aBrowser);
- }
- } else if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP &&
- aStatus == Cr.NS_BINDING_ABORTED &&
- this._startedLoadTimer.has(aBrowser)) {
- this._startedLoadTimer.delete(aBrowser);
- TelemetryStopwatch.cancel("FX_PAGE_LOAD_MS", aBrowser);
- }
- }
// We used to listen for clicks in the browser here, but when that
// became unnecessary, removing the code below caused focus issues.
diff --git a/application/basilisk/base/content/browser.xul b/application/basilisk/base/content/browser.xul
index 982edfcd9..74a90f5e0 100644
--- a/application/basilisk/base/content/browser.xul
+++ b/application/basilisk/base/content/browser.xul
@@ -521,8 +521,7 @@
tabbrowser="content"
flex="1"
setfocus="false"
- tooltip="tabbrowser-tab-tooltip"
- stopwatchid="FX_TAB_CLICK_MS">
+ tooltip="tabbrowser-tab-tooltip">
<tab class="tabbrowser-tab" selected="true" visuallyselected="true" fadein="true"/>
</tabs>
diff --git a/application/basilisk/base/content/sanitize.js b/application/basilisk/base/content/sanitize.js
index 841376580..0a00defa4 100644
--- a/application/basilisk/base/content/sanitize.js
+++ b/application/basilisk/base/content/sanitize.js
@@ -19,8 +19,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "Task",
"resource://gre/modules/Task.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "DownloadsCommon",
"resource:///modules/DownloadsCommon.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
- "resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "console",
"resource://gre/modules/Console.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Preferences",
@@ -154,8 +152,6 @@ Sanitizer.prototype = {
// we catch and store them, but continue to sanitize as much as possible.
// Callers should check returned errors and give user feedback
// about items that could not be sanitized
- let refObj = {};
- TelemetryStopwatch.start("FX_SANITIZE_TOTAL", refObj);
let annotateError = (name, ex) => {
progress[name] = "failed";
@@ -188,7 +184,7 @@ Sanitizer.prototype = {
}
// Sanitization is complete.
- TelemetryStopwatch.finish("FX_SANITIZE_TOTAL", refObj);
+
// Reset the inProgress preference since we were not killed during
// sanitization.
Preferences.reset(Sanitizer.PREF_SANITIZE_IN_PROGRESS);
@@ -210,8 +206,6 @@ Sanitizer.prototype = {
cache: {
clear: Task.async(function* (range) {
let seenException;
- let refObj = {};
- TelemetryStopwatch.start("FX_SANITIZE_CACHE", refObj);
try {
// Cache doesn't consult timespan, nor does it have the
@@ -232,7 +226,6 @@ Sanitizer.prototype = {
seenException = ex;
}
- TelemetryStopwatch.finish("FX_SANITIZE_CACHE", refObj);
if (seenException) {
throw seenException;
}
@@ -243,10 +236,8 @@ Sanitizer.prototype = {
clear: Task.async(function* (range) {
let seenException;
let yieldCounter = 0;
- let refObj = {};
// Clear cookies.
- TelemetryStopwatch.start("FX_SANITIZE_COOKIES_2", refObj);
try {
let cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
.getService(Ci.nsICookieManager);
@@ -274,8 +265,6 @@ Sanitizer.prototype = {
}
} catch (ex) {
seenException = ex;
- } finally {
- TelemetryStopwatch.finish("FX_SANITIZE_COOKIES_2", refObj);
}
// Clear deviceIds. Done asynchronously (returns before complete).
@@ -332,13 +321,6 @@ Sanitizer.prototype = {
if (!range || age >= 0) {
let tags = ph.getPluginTags();
for (let tag of tags) {
- let refObj = {};
- let probe = "";
- if (/\bFlash\b/.test(tag.name)) {
- probe = tag.loaded ? "FX_SANITIZE_LOADED_FLASH"
- : "FX_SANITIZE_UNLOADED_FLASH";
- TelemetryStopwatch.start(probe, refObj);
- }
try {
let rv = yield new Promise(resolve =>
ph.clearSiteData(tag, null, FLAG_CLEAR_ALL, age, resolve)
@@ -349,14 +331,8 @@ Sanitizer.prototype = {
ph.clearSiteData(tag, null, FLAG_CLEAR_ALL, -1, resolve)
);
}
- if (probe) {
- TelemetryStopwatch.finish(probe, refObj);
- }
} catch (ex) {
// Ignore errors from plug-ins
- if (probe) {
- TelemetryStopwatch.cancel(probe, refObj);
- }
}
}
}
@@ -413,8 +389,6 @@ Sanitizer.prototype = {
history: {
clear: Task.async(function* (range) {
let seenException;
- let refObj = {};
- TelemetryStopwatch.start("FX_SANITIZE_HISTORY", refObj);
try {
if (range) {
yield PlacesUtils.history.removeVisitsByFilter({
@@ -427,8 +401,6 @@ Sanitizer.prototype = {
}
} catch (ex) {
seenException = ex;
- } finally {
- TelemetryStopwatch.finish("FX_SANITIZE_HISTORY", refObj);
}
try {
@@ -455,8 +427,6 @@ Sanitizer.prototype = {
formdata: {
clear: Task.async(function* (range) {
let seenException;
- let refObj = {};
- TelemetryStopwatch.start("FX_SANITIZE_FORMDATA", refObj);
try {
// Clear undo history of all searchBars
let windows = Services.wm.getEnumerator("navigator:browser");
@@ -504,7 +474,6 @@ Sanitizer.prototype = {
seenException = ex;
}
- TelemetryStopwatch.finish("FX_SANITIZE_FORMDATA", refObj);
if (seenException) {
throw seenException;
}
@@ -513,8 +482,6 @@ Sanitizer.prototype = {
downloads: {
clear: Task.async(function* (range) {
- let refObj = {};
- TelemetryStopwatch.start("FX_SANITIZE_DOWNLOADS", refObj);
try {
let filterByTime = null;
if (range) {
@@ -528,16 +495,13 @@ Sanitizer.prototype = {
// Clear all completed/cancelled downloads
let list = yield Downloads.getList(Downloads.ALL);
list.removeFinished(filterByTime);
- } finally {
- TelemetryStopwatch.finish("FX_SANITIZE_DOWNLOADS", refObj);
- }
+ } catch (ex) {
+ }
})
},
sessions: {
clear: Task.async(function* (range) {
- let refObj = {};
- TelemetryStopwatch.start("FX_SANITIZE_SESSIONS", refObj);
try {
// clear all auth tokens
@@ -547,17 +511,14 @@ Sanitizer.prototype = {
// clear FTP and plain HTTP auth sessions
Services.obs.notifyObservers(null, "net:clear-active-logins", null);
- } finally {
- TelemetryStopwatch.finish("FX_SANITIZE_SESSIONS", refObj);
- }
+ } catch (ex) {
+ }
})
},
siteSettings: {
clear: Task.async(function* (range) {
let seenException;
- let refObj = {};
- TelemetryStopwatch.start("FX_SANITIZE_SITESETTINGS", refObj);
let startDateMS = range ? range[0] / 1000 : null;
@@ -615,7 +576,6 @@ Sanitizer.prototype = {
seenException = ex;
}
- TelemetryStopwatch.finish("FX_SANITIZE_SITESETTINGS", refObj);
if (seenException) {
throw seenException;
}
@@ -672,9 +632,6 @@ Sanitizer.prototype = {
// If/once we get here, we should actually be able to close all windows.
- let refObj = {};
- TelemetryStopwatch.start("FX_SANITIZE_OPENWINDOWS", refObj);
-
// First create a new window. We do this first so that on non-mac, we don't
// accidentally close the app by closing all the windows.
let handler = Cc["@mozilla.org/browser/clh;1"].getService(Ci.nsIBrowserHandler);
@@ -719,7 +676,6 @@ Sanitizer.prototype = {
newWindowOpened = true;
// If we're the last thing to happen, invoke callback.
if (numWindowsClosing == 0) {
- TelemetryStopwatch.finish("FX_SANITIZE_OPENWINDOWS", refObj);
resolve();
}
}
@@ -731,7 +687,6 @@ Sanitizer.prototype = {
Services.obs.removeObserver(onWindowClosed, "xul-window-destroyed");
// If we're the last thing to happen, invoke callback.
if (newWindowOpened) {
- TelemetryStopwatch.finish("FX_SANITIZE_OPENWINDOWS", refObj);
resolve();
}
}
diff --git a/application/basilisk/base/content/tabbrowser.xml b/application/basilisk/base/content/tabbrowser.xml
index f8dbcf364..043838020 100644
--- a/application/basilisk/base/content/tabbrowser.xml
+++ b/application/basilisk/base/content/tabbrowser.xml
@@ -1042,11 +1042,6 @@
</body>
</method>
- <!-- Holds a unique ID for the tab change that's currently being timed.
- Used to make sure that multiple, rapid tab switches do not try to
- create overlapping timers. -->
- <field name="_tabSwitchID">null</field>
-
<method name="updateCurrentBrowser">
<parameter name="aForceUpdate"/>
<body>
@@ -1055,33 +1050,6 @@
if (this.mCurrentBrowser == newBrowser && !aForceUpdate)
return;
- if (!aForceUpdate) {
- TelemetryStopwatch.start("FX_TAB_SWITCH_UPDATE_MS");
- if (!gMultiProcessBrowser) {
- // old way of measuring tab paint which is not valid with e10s.
- // Waiting until the next MozAfterPaint ensures that we capture
- // the time it takes to paint, upload the textures to the compositor,
- // and then composite.
- if (this._tabSwitchID) {
- TelemetryStopwatch.cancel("FX_TAB_SWITCH_TOTAL_MS");
- }
-
- let tabSwitchID = Symbol();
-
- TelemetryStopwatch.start("FX_TAB_SWITCH_TOTAL_MS");
- this._tabSwitchID = tabSwitchID;
-
- let onMozAfterPaint = () => {
- if (this._tabSwitchID === tabSwitchID) {
- TelemetryStopwatch.finish("FX_TAB_SWITCH_TOTAL_MS");
- this._tabSwitchID = null;
- }
- window.removeEventListener("MozAfterPaint", onMozAfterPaint);
- }
- window.addEventListener("MozAfterPaint", onMozAfterPaint);
- }
- }
-
var oldTab = this.mCurrentTab;
// Preview mode should not reset the owner
@@ -1274,9 +1242,6 @@
});
this.dispatchEvent(event);
}
-
- if (!aForceUpdate)
- TelemetryStopwatch.finish("FX_TAB_SWITCH_UPDATE_MS");
]]>
</body>
</method>
@@ -2136,6 +2101,7 @@
var aRelatedBrowser;
var aOriginPrincipal;
var aOpener;
+ var aSkipBackgroundNotify;
if (arguments.length == 2 &&
typeof arguments[1] == "object" &&
!(arguments[1] instanceof Ci.nsIURI)) {
@@ -2158,6 +2124,7 @@
aRelatedBrowser = params.relatedBrowser;
aOriginPrincipal = params.originPrincipal;
aOpener = params.opener;
+ aSkipBackgroundNotify = params.skipBackgroundNotify;
}
// if we're adding tabs, we're past interrupt mode, ditch the owner
@@ -2186,6 +2153,11 @@
t.setAttribute("crop", "end");
t.setAttribute("onerror", "this.removeAttribute('image');");
+
+ if (aSkipBackgroundNotify) {
+ t.setAttribute("skipbackgroundnotify", true);
+ }
+
t.className = "tabbrowser-tab";
this.tabContainer._unlockTabSizing();
@@ -4145,8 +4117,6 @@
*/
startTabSwitch: function () {
- TelemetryStopwatch.cancel("FX_TAB_SWITCH_TOTAL_E10S_MS", window);
- TelemetryStopwatch.start("FX_TAB_SWITCH_TOTAL_E10S_MS", window);
this.addMarker("AsyncTabSwitch:Start");
this.switchInProgress = true;
},
@@ -4162,31 +4132,18 @@
this.getTabState(this.requestedTab) == this.STATE_LOADED) {
// After this point the tab has switched from the content thread's point of view.
// The changes will be visible after the next refresh driver tick + composite.
- let time = TelemetryStopwatch.timeElapsed("FX_TAB_SWITCH_TOTAL_E10S_MS", window);
- if (time != -1) {
- TelemetryStopwatch.finish("FX_TAB_SWITCH_TOTAL_E10S_MS", window);
- this.log("DEBUG: tab switch time = " + time);
this.addMarker("AsyncTabSwitch:Finish");
- }
this.switchInProgress = false;
}
},
spinnerDisplayed: function () {
this.assert(!this.spinnerTab);
- TelemetryStopwatch.start("FX_TAB_SWITCH_SPINNER_VISIBLE_MS", window);
- // We have a second, similar probe for capturing recordings of
- // when the spinner is displayed for very long periods.
- TelemetryStopwatch.start("FX_TAB_SWITCH_SPINNER_VISIBLE_LONG_MS", window);
this.addMarker("AsyncTabSwitch:SpinnerShown");
},
spinnerHidden: function () {
this.assert(this.spinnerTab);
- this.log("DEBUG: spinner time = " +
- TelemetryStopwatch.timeElapsed("FX_TAB_SWITCH_SPINNER_VISIBLE_MS", window));
- TelemetryStopwatch.finish("FX_TAB_SWITCH_SPINNER_VISIBLE_MS", window);
- TelemetryStopwatch.finish("FX_TAB_SWITCH_SPINNER_VISIBLE_LONG_MS", window);
this.addMarker("AsyncTabSwitch:SpinnerHidden");
// we do not get a onPaint after displaying the spinner
this.maybeFinishTabSwitch();
@@ -5982,7 +5939,11 @@
this._fillTrailingGap();
this._handleTabSelect();
} else {
- this._notifyBackgroundTab(tab);
+ if (tab.hasAttribute("skipbackgroundnotify")) {
+ tab.removeAttribute("skipbackgroundnotify");
+ } else {
+ this._notifyBackgroundTab(tab);
+ }
}
// XXXmano: this is a temporary workaround for bug 345399
diff --git a/application/basilisk/branding/official/disk.icns b/application/basilisk/branding/official/disk.icns
index 82fdccff8..bb3fdd5e4 100644
--- a/application/basilisk/branding/official/disk.icns
+++ b/application/basilisk/branding/official/disk.icns
Binary files differ
diff --git a/application/basilisk/branding/official/document.icns b/application/basilisk/branding/official/document.icns
index 5f03305d7..388296713 100644
--- a/application/basilisk/branding/official/document.icns
+++ b/application/basilisk/branding/official/document.icns
Binary files differ
diff --git a/application/basilisk/branding/official/firefox.icns b/application/basilisk/branding/official/firefox.icns
index 4d2ad5a04..8b9232cba 100644
--- a/application/basilisk/branding/official/firefox.icns
+++ b/application/basilisk/branding/official/firefox.icns
Binary files differ
diff --git a/application/basilisk/components/migration/AutoMigrate.jsm b/application/basilisk/components/migration/AutoMigrate.jsm
index b38747825..003f70d70 100644
--- a/application/basilisk/components/migration/AutoMigrate.jsm
+++ b/application/basilisk/components/migration/AutoMigrate.jsm
@@ -37,8 +37,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "OS",
"resource://gre/modules/osfile.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
"resource://gre/modules/PlacesUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
- "resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyGetter(this, "gBrandBundle", function() {
const kBrandBundle = "chrome://branding/locale/brand.properties";
@@ -211,7 +209,6 @@ const AutoMigrate = {
undo: Task.async(function* () {
let browserId = Preferences.get(kAutoMigrateBrowserPref, "unknown");
- TelemetryStopwatch.startKeyed("FX_STARTUP_MIGRATION_UNDO_TOTAL_MS", browserId);
let histogram = Services.telemetry.getHistogramById("FX_STARTUP_MIGRATION_AUTOMATED_IMPORT_UNDO");
histogram.add(0);
if (!(yield this.canUndo())) {
@@ -236,38 +233,24 @@ const AutoMigrate = {
Services.telemetry.getKeyedHistogramById(histogramId).add(browserId, this._errorMap[type]);
};
- let startTelemetryStopwatch = resourceType => {
- let histogramId = `FX_STARTUP_MIGRATION_UNDO_${resourceType.toUpperCase()}_MS`;
- TelemetryStopwatch.startKeyed(histogramId, browserId);
- };
- let stopTelemetryStopwatch = resourceType => {
- let histogramId = `FX_STARTUP_MIGRATION_UNDO_${resourceType.toUpperCase()}_MS`;
- TelemetryStopwatch.finishKeyed(histogramId, browserId);
- };
- startTelemetryStopwatch("bookmarks");
yield this._removeUnchangedBookmarks(stateData.get("bookmarks")).catch(ex => {
Cu.reportError("Uncaught exception when removing unchanged bookmarks!");
Cu.reportError(ex);
});
- stopTelemetryStopwatch("bookmarks");
reportErrorTelemetry("bookmarks");
histogram.add(15);
- startTelemetryStopwatch("visits");
yield this._removeSomeVisits(stateData.get("visits")).catch(ex => {
Cu.reportError("Uncaught exception when removing history visits!");
Cu.reportError(ex);
});
- stopTelemetryStopwatch("visits");
reportErrorTelemetry("visits");
histogram.add(20);
- startTelemetryStopwatch("logins");
yield this._removeUnchangedLogins(stateData.get("logins")).catch(ex => {
Cu.reportError("Uncaught exception when removing unchanged logins!");
Cu.reportError(ex);
});
- stopTelemetryStopwatch("logins");
reportErrorTelemetry("logins");
histogram.add(25);
@@ -278,7 +261,6 @@ const AutoMigrate = {
this._purgeUndoState(this.UNDO_REMOVED_REASON_UNDO_USED);
histogram.add(30);
- TelemetryStopwatch.finishKeyed("FX_STARTUP_MIGRATION_UNDO_TOTAL_MS", browserId);
}),
_removeNotificationBars() {
diff --git a/application/basilisk/components/migration/MigrationUtils.jsm b/application/basilisk/components/migration/MigrationUtils.jsm
index e133ec520..ccae006fe 100644
--- a/application/basilisk/components/migration/MigrationUtils.jsm
+++ b/application/basilisk/components/migration/MigrationUtils.jsm
@@ -32,8 +32,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "ResponsivenessMonitor",
"resource://gre/modules/ResponsivenessMonitor.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Sqlite",
"resource://gre/modules/Sqlite.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
- "resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "WindowsRegistry",
"resource://gre/modules/WindowsRegistry.jsm");
@@ -254,14 +252,6 @@ this.MigratorPrototype = {
let browserKey = this.getBrowserKey();
- let maybeStartTelemetryStopwatch = resourceType => {
- let histogramId = getHistogramIdForResourceType(resourceType, "FX_MIGRATION_*_IMPORT_MS");
- if (histogramId) {
- TelemetryStopwatch.startKeyed(histogramId, browserKey);
- }
- return histogramId;
- };
-
let maybeStartResponsivenessMonitor = resourceType => {
let responsivenessMonitor;
let responsivenessHistogramId =
@@ -323,8 +313,6 @@ this.MigratorPrototype = {
for (let [migrationType, itemResources] of resourcesGroupedByItems) {
notify("Migration:ItemBeforeMigrate", migrationType);
- let stopwatchHistogramId = maybeStartTelemetryStopwatch(migrationType);
-
let {responsivenessMonitor, responsivenessHistogramId} =
maybeStartResponsivenessMonitor(migrationType);
@@ -340,10 +328,6 @@ this.MigratorPrototype = {
migrationType);
resourcesGroupedByItems.delete(migrationType);
- if (stopwatchHistogramId) {
- TelemetryStopwatch.finishKeyed(stopwatchHistogramId, browserKey);
- }
-
maybeFinishResponsivenessMonitor(responsivenessMonitor, responsivenessHistogramId);
if (resourcesGroupedByItems.size == 0) {
diff --git a/application/basilisk/components/migration/content/migration.xul b/application/basilisk/components/migration/content/migration.xul
index e85091002..62c97c107 100644
--- a/application/basilisk/components/migration/content/migration.xul
+++ b/application/basilisk/components/migration/content/migration.xul
@@ -24,11 +24,9 @@
<wizardpage id="importSource" pageid="importSource" next="selectProfile"
label="&importSource.title;"
onpageadvanced="return MigrationWizard.onImportSourcePageAdvanced();">
-#ifdef XP_WIN
+
<description id="importAll" control="importSourceGroup">&importFrom.label;</description>
-#else
- <description id="importAll" control="importSourceGroup">&importFromUnix.label;</description>
-#endif
+
<description id="importBookmarks" control="importSourceGroup" hidden="true">&importFromBookmarks.label;</description>
<radiogroup id="importSourceGroup" align="start">
diff --git a/application/basilisk/components/places/content/history-panel.js b/application/basilisk/components/places/content/history-panel.js
index 20dbbb5bd..65f00e93b 100644
--- a/application/basilisk/components/places/content/history-panel.js
+++ b/application/basilisk/components/places/content/history-panel.js
@@ -3,8 +3,6 @@
* 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/. */
-Components.utils.import("resource://gre/modules/TelemetryStopwatch.jsm");
-
var gHistoryTree;
var gSearchBox;
var gHistoryGrouping = "";
@@ -81,16 +79,11 @@ function searchHistory(aInput)
options.resultType = resultType;
options.includeHidden = !!aInput;
- if (gHistoryGrouping == "lastvisited")
- this.TelemetryStopwatch.start("HISTORY_LASTVISITED_TREE_QUERY_TIME_MS");
-
// call load() on the tree manually
// instead of setting the place attribute in history-panel.xul
// otherwise, we will end up calling load() twice
gHistoryTree.load([query], options);
- if (gHistoryGrouping == "lastvisited")
- this.TelemetryStopwatch.finish("HISTORY_LASTVISITED_TREE_QUERY_TIME_MS");
}
window.addEventListener("SidebarFocused",
diff --git a/application/basilisk/components/places/content/places.js b/application/basilisk/components/places/content/places.js
index aa43b20e6..375c3de17 100644
--- a/application/basilisk/components/places/content/places.js
+++ b/application/basilisk/components/places/content/places.js
@@ -5,7 +5,6 @@
Components.utils.import("resource://gre/modules/AppConstants.jsm");
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-Components.utils.import("resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "MigrationUtils",
"resource:///modules/MigrationUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Task",
@@ -810,9 +809,7 @@ var PlacesSearchBox = {
currentView.load([query], options);
}
else {
- TelemetryStopwatch.start(HISTORY_LIBRARY_SEARCH_TELEMETRY);
currentView.applyFilter(filterString, null, true);
- TelemetryStopwatch.finish(HISTORY_LIBRARY_SEARCH_TELEMETRY);
}
break;
case "downloads":
diff --git a/application/basilisk/components/sessionstore/SessionFile.jsm b/application/basilisk/components/sessionstore/SessionFile.jsm
index 80c4e7790..3c55101e4 100644
--- a/application/basilisk/components/sessionstore/SessionFile.jsm
+++ b/application/basilisk/components/sessionstore/SessionFile.jsm
@@ -43,8 +43,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "PromiseUtils",
"resource://gre/modules/PromiseUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "RunState",
"resource:///modules/sessionstore/RunState.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
- "resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Task",
"resource://gre/modules/Task.jsm");
XPCOMUtils.defineLazyServiceGetter(this, "Telemetry",
diff --git a/application/basilisk/components/sessionstore/SessionSaver.jsm b/application/basilisk/components/sessionstore/SessionSaver.jsm
index d672f8877..fa3a67512 100644
--- a/application/basilisk/components/sessionstore/SessionSaver.jsm
+++ b/application/basilisk/components/sessionstore/SessionSaver.jsm
@@ -13,7 +13,6 @@ const Ci = Components.interfaces;
Cu.import("resource://gre/modules/Timer.jsm", this);
Cu.import("resource://gre/modules/Services.jsm", this);
Cu.import("resource://gre/modules/XPCOMUtils.jsm", this);
-Cu.import("resource://gre/modules/TelemetryStopwatch.jsm", this);
XPCOMUtils.defineLazyModuleGetter(this, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
@@ -52,19 +51,6 @@ function notify(subject, topic) {
Services.obs.notifyObservers(subject, topic, "");
}
-// TelemetryStopwatch helper functions.
-function stopWatch(method) {
- return function (...histograms) {
- for (let hist of histograms) {
- TelemetryStopwatch[method]("FX_SESSION_RESTORE_" + hist);
- }
- };
-}
-
-var stopWatchStart = stopWatch("start");
-var stopWatchCancel = stopWatch("cancel");
-var stopWatchFinish = stopWatch("finish");
-
/**
* The external API implemented by the SessionSaver module.
*/
@@ -182,7 +168,6 @@ var SessionSaverInternal = {
return Promise.resolve();
}
- stopWatchStart("COLLECT_DATA_MS", "COLLECT_DATA_LONGEST_OP_MS");
let state = SessionStore.getCurrentState(forceUpdateAllWindows);
PrivacyFilter.filterPrivateWindowsAndTabs(state);
@@ -226,7 +211,6 @@ var SessionSaverInternal = {
}
}
- stopWatchFinish("COLLECT_DATA_MS", "COLLECT_DATA_LONGEST_OP_MS");
return this._writeState(state);
},
diff --git a/application/basilisk/components/sessionstore/SessionStore.jsm b/application/basilisk/components/sessionstore/SessionStore.jsm
index 6b30943f3..b599bc162 100644
--- a/application/basilisk/components/sessionstore/SessionStore.jsm
+++ b/application/basilisk/components/sessionstore/SessionStore.jsm
@@ -135,7 +135,6 @@ Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm", this);
Cu.import("resource://gre/modules/Promise.jsm", this);
Cu.import("resource://gre/modules/Services.jsm", this);
Cu.import("resource://gre/modules/Task.jsm", this);
-Cu.import("resource://gre/modules/TelemetryStopwatch.jsm", this);
Cu.import("resource://gre/modules/TelemetryTimestamps.jsm", this);
Cu.import("resource://gre/modules/Timer.jsm", this);
Cu.import("resource://gre/modules/XPCOMUtils.jsm", this);
@@ -564,7 +563,6 @@ var SessionStoreInternal = {
* Initialize the session using the state provided by SessionStartup
*/
initSession: function () {
- TelemetryStopwatch.start("FX_SESSION_RESTORE_STARTUP_INIT_SESSION_MS");
let state;
let ss = gSessionStartup;
@@ -640,7 +638,6 @@ var SessionStoreInternal = {
this._prefBranch.getBoolPref("sessionstore.resume_session_once"))
this._prefBranch.setBoolPref("sessionstore.resume_session_once", false);
- TelemetryStopwatch.finish("FX_SESSION_RESTORE_STARTUP_INIT_SESSION_MS");
return state;
},
@@ -1247,9 +1244,7 @@ var SessionStoreInternal = {
if (initialState) {
Services.obs.notifyObservers(null, NOTIFY_RESTORING_ON_STARTUP, "");
}
- TelemetryStopwatch.start("FX_SESSION_RESTORE_STARTUP_ONLOAD_INITIAL_WINDOW_MS");
this.initializeWindow(aWindow, initialState);
- TelemetryStopwatch.finish("FX_SESSION_RESTORE_STARTUP_ONLOAD_INITIAL_WINDOW_MS");
// Let everyone know we're done.
this._deferredInitialized.resolve();
@@ -2857,7 +2852,6 @@ var SessionStoreInternal = {
var activeWindow = this._getMostRecentBrowserWindow();
- TelemetryStopwatch.start("FX_SESSION_RESTORE_COLLECT_ALL_WINDOWS_DATA_MS");
if (RunState.isRunning) {
// update the data for all windows with activities since the last save operation
this._forEachBrowserWindow(function(aWindow) {
@@ -2872,7 +2866,6 @@ var SessionStoreInternal = {
});
DirtyWindows.clear();
}
- TelemetryStopwatch.finish("FX_SESSION_RESTORE_COLLECT_ALL_WINDOWS_DATA_MS");
// An array that at the end will hold all current window data.
var total = [];
@@ -2892,9 +2885,7 @@ var SessionStoreInternal = {
nonPopupCount++;
}
- TelemetryStopwatch.start("FX_SESSION_RESTORE_COLLECT_COOKIES_MS");
SessionCookies.update(total);
- TelemetryStopwatch.finish("FX_SESSION_RESTORE_COLLECT_COOKIES_MS");
// collect the data for all windows yet to be restored
for (ix in this._statesToRestore) {
@@ -3063,8 +3054,6 @@ var SessionStoreInternal = {
if (aWindow && (!aWindow.__SSi || !this._windows[aWindow.__SSi]))
this.onLoad(aWindow);
- TelemetryStopwatch.start("FX_SESSION_RESTORE_RESTORE_WINDOW_MS");
-
// We're not returning from this before we end up calling restoreTabs
// for this window, so make sure we send the SSWindowStateBusy event.
this._setWindowStateBusy(aWindow);
@@ -3124,7 +3113,8 @@ var SessionStoreInternal = {
tabbrowser.addTab("about:blank",
{skipAnimation: true,
forceNotRemote,
- userContextId});
+ userContextId,
+ skipBackgroundNotify: true});
// If we inserted a new tab because the userContextId didn't match with the
// open tab, even though `t < openTabCount`, we need to remove that open tab
@@ -3235,8 +3225,6 @@ var SessionStoreInternal = {
// set smoothScroll back to the original value
tabstrip.smoothScroll = smoothScroll;
- TelemetryStopwatch.finish("FX_SESSION_RESTORE_RESTORE_WINDOW_MS");
-
this._setWindowStateReady(aWindow);
this._sendWindowRestoredNotification(aWindow);
diff --git a/application/basilisk/components/sessionstore/TabAttributes.jsm b/application/basilisk/components/sessionstore/TabAttributes.jsm
index 8a29680f4..c8e6d9744 100644
--- a/application/basilisk/components/sessionstore/TabAttributes.jsm
+++ b/application/basilisk/components/sessionstore/TabAttributes.jsm
@@ -14,7 +14,10 @@ this.EXPORTED_SYMBOLS = ["TabAttributes"];
// 'pending' is used internal by sessionstore and managed accordingly.
// 'iconLoadingPrincipal' is same as 'image' that it should be handled by
// using the gBrowser.getIcon()/setIcon() methods.
-const ATTRIBUTES_TO_SKIP = new Set(["image", "muted", "pending", "iconLoadingPrincipal"]);
+// 'skipbackgroundnotify' is used internal by tabbrowser.xml.
+const ATTRIBUTES_TO_SKIP = new Set(["image", "muted", "pending",
+ "iconLoadingPrincipal",
+ "skipbackgroundnotify"]);
// A set of tab attributes to persist. We will read a given list of tab
// attributes when collecting tab data and will re-set those attributes when
diff --git a/application/basilisk/components/sessionstore/nsSessionStartup.js b/application/basilisk/components/sessionstore/nsSessionStartup.js
index 7593c48ec..9cda1552e 100644
--- a/application/basilisk/components/sessionstore/nsSessionStartup.js
+++ b/application/basilisk/components/sessionstore/nsSessionStartup.js
@@ -37,7 +37,6 @@ const Cr = Components.results;
const Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/TelemetryStopwatch.jsm");
Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
Cu.import("resource://gre/modules/Promise.jsm");
diff --git a/application/palemoon/app/blocklist.xml b/application/palemoon/app/blocklist.xml
index 296b8ad24..d55784169 100644
--- a/application/palemoon/app/blocklist.xml
+++ b/application/palemoon/app/blocklist.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<blocklist lastupdate="1521130300000"
+<blocklist lastupdate="1534840140000"
xmlns="http://www.mozilla.org/2006/addons-blocklist">
<emItems>
<emItem blockID="i545" id="superlrcs@svenyor.net">
@@ -2513,7 +2513,17 @@ xmlns="http://www.mozilla.org/2006/addons-blocklist">
<versionRange minVersion="0" maxVersion="52.4.2" severity="3">
</versionRange>
<prefs></prefs>
- </emItem>
+ </emItem>
+ <emItem blockID="pm112" id="{73a6fe31-595d-460b-a920-fcc0f8843232}">
+ <versionRange minVersion="0" maxVersion="*" severity="1">
+ </versionRange>
+ <prefs></prefs>
+ </emItem>
+ <emItem blockID="pm113" id="addonsmanagerfix@sonco.com">
+ <versionRange minVersion="0" maxVersion="*" severity="3">
+ </versionRange>
+ <prefs></prefs>
+ </emItem>
</emItems>
<pluginItems>
<pluginItem blockID="p26">
diff --git a/application/palemoon/base/content/browser-sets.inc b/application/palemoon/base/content/browser-sets.inc
index 64228678e..25794a65c 100644
--- a/application/palemoon/base/content/browser-sets.inc
+++ b/application/palemoon/base/content/browser-sets.inc
@@ -79,7 +79,6 @@
<command id="Browser:NextTab" oncommand="gBrowser.tabContainer.advanceSelectedTab(1, true);"/>
<command id="Browser:PrevTab" oncommand="gBrowser.tabContainer.advanceSelectedTab(-1, true);"/>
<command id="Browser:ShowAllTabs" oncommand="allTabs.open();"/>
- <command id="Browser:FocusNextFrame" oncommand="focusNextFrame(event);"/>
<command id="cmd_fullZoomReduce" oncommand="FullZoom.reduce()"/>
<command id="cmd_fullZoomEnlarge" oncommand="FullZoom.enlarge()"/>
<command id="cmd_fullZoomReset" oncommand="FullZoom.reset()"/>
@@ -251,8 +250,6 @@
#ifndef XP_MACOSX
<key id="showAllHistoryKb" key="&showAllHistoryCmd.commandkey;" command="Browser:ShowAllHistory" modifiers="accel,shift"/>
<key keycode="VK_F5" command="Browser:ReloadSkipCache" modifiers="accel"/>
- <key keycode="VK_F6" command="Browser:FocusNextFrame"/>
- <key keycode="VK_F6" command="Browser:FocusNextFrame" modifiers="shift"/>
<key id="key_fullScreen" keycode="VK_F11" command="View:FullScreen"/>
#else
<key id="key_fullScreen" key="&fullScreenCmd.macCommandKey;" command="View:FullScreen" modifiers="accel,control"/>
diff --git a/application/palemoon/base/content/browser.js b/application/palemoon/base/content/browser.js
index 7421fc5c3..5cf43850a 100644
--- a/application/palemoon/base/content/browser.js
+++ b/application/palemoon/base/content/browser.js
@@ -53,13 +53,20 @@ var gEditUIVisible = true;
// Smart getter for the findbar. If you don't wish to force the creation of
// the findbar, check gFindBarInitialized first.
-
-this.__defineGetter__("gFindBar", function() {
- return window.gBrowser.getFindBar();
-});
-
-this.__defineGetter__("gFindBarInitialized", function() {
- return window.gBrowser.isFindBarInitialized();
+var gFindBarInitialized = false;
+XPCOMUtils.defineLazyGetter(window, "gFindBar", function() {
+ let XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+ let findbar = document.createElementNS(XULNS, "findbar");
+ findbar.id = "FindToolbar";
+
+ let browserBottomBox = document.getElementById("browser-bottombox");
+ browserBottomBox.insertBefore(findbar, browserBottomBox.firstChild);
+
+ // Force a style flush to ensure that our binding is attached.
+ findbar.clientTop;
+ findbar.browser = gBrowser.mCurrentBrowser;
+ window.gFindBarInitialized = true;
+ return findbar;
});
XPCOMUtils.defineLazyModuleGetter(this, "BrowserUtils",
@@ -7222,14 +7229,6 @@ var MousePosTracker = {
}
};
-function focusNextFrame(event) {
- let fm = Services.focus;
- let dir = event.shiftKey ? fm.MOVEFOCUS_BACKWARDDOC : fm.MOVEFOCUS_FORWARDDOC;
- let element = fm.moveFocus(window, null, dir, fm.FLAG_BYKEY);
- if (element.ownerDocument == document)
- focusAndSelectUrlBar();
-}
-
var BrowserChromeTest = {
_cb: null,
_ready: false,
diff --git a/application/palemoon/base/content/browser.xul b/application/palemoon/base/content/browser.xul
index 90899bb88..07ca54722 100644
--- a/application/palemoon/base/content/browser.xul
+++ b/application/palemoon/base/content/browser.xul
@@ -59,6 +59,7 @@
macanimationtype="document"
screenX="4" screenY="4"
fullscreenbutton="true"
+ retargetdocumentfocus="urlbar"
persist="screenX screenY width height sizemode">
# All JS files which are not content (only) dependent that browser.xul
diff --git a/application/palemoon/base/content/nsContextMenu.js b/application/palemoon/base/content/nsContextMenu.js
index 19b2fac77..1d4f88816 100644
--- a/application/palemoon/base/content/nsContextMenu.js
+++ b/application/palemoon/base/content/nsContextMenu.js
@@ -838,30 +838,8 @@ nsContextMenu.prototype = {
// View Partial Source
viewPartialSource: function(aContext) {
- var focusedWindow = document.commandDispatcher.focusedWindow;
- if (focusedWindow == window)
- focusedWindow = content;
-
- var docCharset = null;
- if (focusedWindow)
- docCharset = "charset=" + focusedWindow.document.characterSet;
-
- // "View Selection Source" and others such as "View MathML Source"
- // are mutually exclusive, with the precedence given to the selection
- // when there is one
- var reference = null;
- if (aContext == "selection")
- reference = focusedWindow.getSelection();
- else if (aContext == "mathml")
- reference = this.target;
- else
- throw "not reached";
-
- // unused (and play nice for fragments generated via XSLT too)
- var docUrl = null;
- window.openDialog("chrome://global/content/viewPartialSource.xul",
- "_blank", "scrollbars,resizable,chrome,dialog=no",
- docUrl, docCharset, reference, aContext);
+ let target = aContext == "mathml" ? this.target : null;
+ top.gViewSourceUtils.viewPartialSourceInBrowser(gBrowser.selectedBrowser, target);
},
// Open new "view source" window with the frame's URL.
diff --git a/application/palemoon/base/content/tabbrowser.xml b/application/palemoon/base/content/tabbrowser.xml
index d5735149e..93818e290 100644
--- a/application/palemoon/base/content/tabbrowser.xml
+++ b/application/palemoon/base/content/tabbrowser.xml
@@ -128,10 +128,6 @@
false
</field>
- <field name="_lastFindValue">
- ""
- </field>
-
<property name="_numPinnedTabs" readonly="true">
<getter><![CDATA[
for (var i = 0; i < this.tabs.length; i++) {
@@ -158,43 +154,6 @@
]]></getter>
</property>
- <method name="isFindBarInitialized">
- <parameter name="aTab"/>
- <body><![CDATA[
- return (aTab || this.selectedTab)._findBar != undefined;
- ]]></body>
- </method>
-
- <method name="getFindBar">
- <parameter name="aTab"/>
- <body><![CDATA[
- if (!aTab)
- aTab = this.selectedTab;
-
- if (aTab._findBar)
- return aTab._findBar;
-
- let findBar = document.createElementNS(this.namespaceURI, "findbar");
- let browser = this.getBrowserForTab(aTab);
- let browserContainer = this.getBrowserContainer(browser);
- browserContainer.appendChild(findBar);
-
- // Force a style flush to ensure that our binding is attached.
- findBar.clientTop;
-
- findBar.browser = browser;
- findBar._findField.value = this._lastFindValue;
-
- aTab._findBar = findBar;
-
- let event = document.createEvent("Events");
- event.initEvent("TabFindInitialized", true, false);
- aTab.dispatchEvent(event);
-
- return findBar;
- ]]></body>
- </method>
-
<method name="updateWindowResizers">
<body><![CDATA[
if (!window.gShowPageResizers)
@@ -1082,6 +1041,11 @@
// Bug 666809 - SecurityUI support for e10s
var webProgress = this.mCurrentBrowser.webProgress;
var securityUI = this.mCurrentBrowser.securityUI;
+
+ // Update global findbar with new content browser
+ if (gFindBarInitialized) {
+ gFindBar.browser = newBrowser;
+ }
this._callProgressListeners(null, "onLocationChange",
[webProgress, null, loc, 0], true,
@@ -1104,11 +1068,9 @@
this.mCurrentTab.removeAttribute("unread");
this.selectedTab.lastAccessed = Date.now();
- let oldFindBar = oldTab._findBar;
- if (oldFindBar &&
- oldFindBar.findMode == oldFindBar.FIND_NORMAL &&
- !oldFindBar.hidden)
- this._lastFindValue = oldFindBar._findField.value;
+ // Bug 666816 - TypeAheadFind support for e10s
+ if (!gMultiProcessBrowser)
+ this._fastFind.setDocShell(this.mCurrentBrowser.docShell);
this.updateTitlebar();
@@ -1159,11 +1121,6 @@
// Adjust focus
oldBrowser._urlbarFocused = (gURLBar && gURLBar.focused);
- if (this.isFindBarInitialized(oldTab)) {
- let findBar = this.getFindBar(oldTab);
- oldTab._findBarFocused = (!findBar.hidden &&
- findBar._findField.getAttribute("focused") == "true");
- }
do {
// When focus is in the tab bar, retain it there.
if (document.activeElement == oldTab) {
@@ -1199,12 +1156,11 @@
}
}
- // Focus the find bar if it was previously focused for that tab.
- if (gFindBarInitialized && !gFindBar.hidden &&
- this.selectedTab._findBarFocused) {
- gFindBar._findField.focus();
+ // If the find bar is focused, keep it focused.
+ if (gFindBarInitialized &&
+ !gFindBar.hidden &&
+ gFindBar.getElement("findbar-textbox").getAttribute("focused") == "true")
break;
- }
// Otherwise, focus the content area.
let fm = Cc["@mozilla.org/focus-manager;1"].getService(Ci.nsIFocusManager);
@@ -1473,6 +1429,7 @@
var aRelatedToCurrent;
var aSkipAnimation;
var aOriginPrincipal;
+ var aSkipBackgroundNotify;
if (arguments.length == 2 &&
typeof arguments[1] == "object" &&
!(arguments[1] instanceof Ci.nsIURI)) {
@@ -1488,6 +1445,7 @@
aRelatedToCurrent = params.relatedToCurrent;
aSkipAnimation = params.skipAnimation;
aOriginPrincipal = params.originPrincipal;
+ aSkipBackgroundNotify = params.skipBackgroundNotify;
}
// if we're adding tabs, we're past interrupt mode, ditch the owner
@@ -1511,6 +1469,11 @@
t.setAttribute("crop", "end");
t.setAttribute("validate", "never"); //PMed
t.setAttribute("onerror", "this.removeAttribute('image');");
+
+ if (aSkipBackgroundNotify) {
+ t.setAttribute("skipbackgroundnotify", true);
+ }
+
t.className = "tabbrowser-tab";
this.tabContainer._unlockTabSizing();
@@ -1622,6 +1585,7 @@
this.mTabListeners[position] = tabListener;
this.mTabFilters[position] = filter;
+ b._fastFind = this.fastFind;
b.droppedLinkHandler = handleDroppedLink;
// If we just created a new tab that loads the default
@@ -2310,17 +2274,6 @@
this._swapBrowserDocShells(aOurTab, otherBrowser);
}
- // Handle findbar data (if any)
- let otherFindBar = aOtherTab._findBar;
- if (otherFindBar &&
- otherFindBar.findMode == otherFindBar.FIND_NORMAL) {
- let ourFindBar = this.getFindBar(aOurTab);
- ourFindBar._findField.value = otherFindBar._findField.value;
- if (!otherFindBar.hidden) {
- ourFindBar.onFindCommand();
- }
- }
-
// Finish tearing down the tab that's going away.
remoteBrowser._endRemoveTab(aOtherTab);
@@ -2873,6 +2826,21 @@
onget="return this.mCurrentBrowser.currentURI;"
readonly="true"/>
+ <field name="_fastFind">null</field>
+ <property name="fastFind"
+ readonly="true">
+ <getter>
+ <![CDATA[
+ if (!this._fastFind) {
+ this._fastFind = Components.classes["@mozilla.org/typeaheadfind;1"]
+ .createInstance(Components.interfaces.nsITypeAheadFind);
+ this._fastFind.init(this.docShell);
+ }
+ return this._fastFind;
+ ]]>
+ </getter>
+ </property>
+
<field name="_lastSearchString">null</field>
<field name="_lastSearchHighlight">false</field>
@@ -3176,28 +3144,6 @@
window.focus();
break;
}
- case "Findbar:Keypress":
- let tab = this.getTabForBrowser(browser);
- // If the find bar for this tab is not yet alive, only initialize
- // it if there's a possibility FindAsYouType will be used.
- // There's no point in doing it for most random keypresses.
- if (!this.isFindBarInitialized(tab) &&
- aMessage.data.shouldFastFind) {
- let shouldFastFind = this._findAsYouType;
- if (!shouldFastFind) {
- // Please keep in sync with toolkit/content/widgets/findbar.xml
- const FAYT_LINKS_KEY = "'";
- const FAYT_TEXT_KEY = "/";
- let charCode = aMessage.data.fakeEvent.charCode;
- let key = charCode ? String.fromCharCode(charCode) : null;
- shouldFastFind = key == FAYT_LINKS_KEY || key == FAYT_TEXT_KEY;
- }
- if (shouldFastFind) {
- // Make sure we return the result.
- return this.getFindBar(tab).receiveMessage(aMessage);
- }
- }
- break;
}
]]></body>
</method>
@@ -3264,11 +3210,6 @@
this.mCurrentBrowser);
}
messageManager.addMessageListener("DOMWebNotificationClicked", this);
-
- // To correctly handle keypresses for potential FindAsYouType, while
- // the tab's find bar is not yet initialized.
- this._findAsYouType = Services.prefs.getBoolPref("accessibility.typeaheadfind");
- messageManager.addMessageListener("Findbar:Keypress", this);
]]>
</constructor>
@@ -3523,7 +3464,6 @@
tab.setAttribute("onerror", "this.removeAttribute('image');");
this.adjustTabstrip();
- Services.prefs.addObserver("accessibility.typeaheadfind", this._prefObserver, false);
Services.prefs.addObserver("browser.tabs.", this._prefObserver, false);
window.addEventListener("resize", this, false);
window.addEventListener("load", this, false);
@@ -3539,7 +3479,6 @@
<destructor>
<![CDATA[
- Services.prefs.removeObserver("accessibility.typeaheadfind", this._prefObserver);
Services.prefs.removeObserver("browser.tabs.", this._prefObserver);
]]>
</destructor>
@@ -3605,9 +3544,6 @@
observe: function (subject, topic, data) {
switch (data) {
- case "accessibility.typeaheadfind":
- this._findAsYouType = Services.prefs.getBoolPref(data);
- break;
case "browser.tabs.closeButtons":
this.tabContainer.mCloseButtons = Services.prefs.getIntPref(data);
this.tabContainer.adjustTabstrip();
@@ -4214,7 +4150,11 @@
this._fillTrailingGap();
this._handleTabSelect();
} else {
- this._notifyBackgroundTab(tab);
+ if (tab.hasAttribute("skipbackgroundnotify")) {
+ tab.removeAttribute("skipbackgroundnotify");
+ } else {
+ this._notifyBackgroundTab(tab);
+ }
}
// XXXmano: this is a temporary workaround for bug 345399
diff --git a/application/palemoon/components/downloads/content/downloadsOverlay.xul b/application/palemoon/components/downloads/content/downloadsOverlay.xul
index 2a4fe9099..ca35ee3cf 100644
--- a/application/palemoon/components/downloads/content/downloadsOverlay.xul
+++ b/application/palemoon/components/downloads/content/downloadsOverlay.xul
@@ -35,7 +35,7 @@
oncommand="goDoCommand('downloadsCmd_clearList')"/>
</commandset>
- <popupset>
+ <popupset id="mainPopupSet">
<!-- The panel has level="top" to ensure that it is never hidden by the
taskbar on Windows. See bug 672365. For accessibility to screen
readers, we use a label on the panel instead of the anchor because the
diff --git a/application/palemoon/components/preferences/jar.mn b/application/palemoon/components/preferences/jar.mn
index 2e2949306..47909ddc9 100644
--- a/application/palemoon/components/preferences/jar.mn
+++ b/application/palemoon/components/preferences/jar.mn
@@ -24,6 +24,7 @@ browser.jar:
content/browser/preferences/languages.js
* content/browser/preferences/main.xul
content/browser/preferences/main.js
+ content/browser/preferences/newtaburl.js
content/browser/preferences/permissions.xul
* content/browser/preferences/permissions.js
* content/browser/preferences/preferences.xul
diff --git a/application/palemoon/components/preferences/main.xul b/application/palemoon/components/preferences/main.xul
index 7634056eb..bb51947b0 100644
--- a/application/palemoon/components/preferences/main.xul
+++ b/application/palemoon/components/preferences/main.xul
@@ -96,6 +96,7 @@
type="autocomplete" autocompletesearch="history"
onsyncfrompreference="return gMainPane.syncFromHomePref();"
onsynctopreference="return gMainPane.syncToHomePref(this.value);"
+ oninput="gNewtabUrl.writeNewtabUrl(null, this.value);"
placeholder="&abouthome.pageTitle;"
preference="browser.startup.homepage"/>
</hbox>
@@ -103,15 +104,15 @@
<button label="" accesskey="&useCurrentPage.accesskey;"
label1="&useCurrentPage.label;"
label2="&useMultiple.label;"
- oncommand="gMainPane.setHomePageToCurrent();"
+ oncommand="gMainPane.setHomePageToCurrent(); gNewtabUrl.writeNewtabUrl();"
id="useCurrent"
preference="pref.browser.homepage.disable_button.current_page"/>
<button label="&chooseBookmark.label;" accesskey="&chooseBookmark.accesskey;"
- oncommand="gMainPane.setHomePageToBookmark();"
+ oncommand="gMainPane.setHomePageToBookmark(); gNewtabUrl.writeNewtabUrl();"
id="useBookmark"
preference="pref.browser.homepage.disable_button.bookmark_page"/>
<button label="&restoreDefault.label;" accesskey="&restoreDefault.accesskey;"
- oncommand="gMainPane.restoreDefaultHomePage();"
+ oncommand="gMainPane.restoreDefaultHomePage(); gNewtabUrl.writeNewtabUrl();"
id="restoreDefaultHomePage"
preference="pref.browser.homepage.disable_button.restore_default"/>
</hbox>
diff --git a/application/palemoon/components/preferences/newtaburl.js b/application/palemoon/components/preferences/newtaburl.js
new file mode 100644
index 000000000..ac0eec1c5
--- /dev/null
+++ b/application/palemoon/components/preferences/newtaburl.js
@@ -0,0 +1,68 @@
+/* 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/. */
+
+var gNewtabUrl = {
+ /**
+ * Writes browser.newtab.url with the appropriate value.
+ * If the choice is "my home page", get and sanitize
+ * the browser home page URL to make it suitable for newtab use.
+ *
+ * Called from prefwindow ondialogaccept in preferences.xul,
+ * newtabPage oncommand in tabs.xul, browserHomePage oninput,
+ * useCurrent, useBookmark and restoreDefaultHomePage oncommand
+ * in main.xul to consider instantApply.
+ */
+ writeNewtabUrl: function(newtabUrlChoice, browserHomepageUrl) {
+ try {
+ if (newtabUrlChoice) {
+ if (Services.prefs.getBoolPref("browser.preferences.instantApply")) {
+ newtabUrlChoice = parseInt(newtabUrlChoice);
+ } else {
+ return;
+ }
+ } else {
+ newtabUrlChoice = Services.prefs.getIntPref("browser.newtab.choice");
+ }
+ if (browserHomepageUrl || browserHomepageUrl == "") {
+ if (Services.prefs.getBoolPref("browser.preferences.instantApply")) {
+ if (browserHomepageUrl == "") {
+ browserHomepageUrl = "about:home";
+ }
+ } else {
+ return;
+ }
+ } else {
+ browserHomepageUrl = Services.prefs.getComplexValue("browser.startup.homepage",
+ Components.interfaces.nsIPrefLocalizedString).data;
+ }
+ let newtabUrlPref = Services.prefs.getCharPref("browser.newtab.url");
+ switch (newtabUrlChoice) {
+ case 1:
+ newtabUrlPref = "about:logopage";
+ break;
+ case 2:
+ newtabUrlPref = Services.prefs.getDefaultBranch("browser.")
+ .getComplexValue("startup.homepage",
+ Components.interfaces.nsIPrefLocalizedString).data;
+ break;
+ case 3:
+ // If url is a pipe-delimited set of pages, just take the first one.
+ let newtabUrlSanitizedPref=browserHomepageUrl.split("|")[0];
+ // XXX: do we need extra sanitation here, e.g. for invalid URLs?
+ Services.prefs.setCharPref("browser.newtab.myhome", newtabUrlSanitizedPref);
+ newtabUrlPref = newtabUrlSanitizedPref;
+ break;
+ case 4:
+ newtabUrlPref = "about:newtab";
+ break;
+ default:
+ // In case of any other value it's a custom URL, consider instantApply.
+ if (this.newtabPageCustom) {
+ newtabUrlPref = this.newtabPageCustom;
+ }
+ }
+ Services.prefs.setCharPref("browser.newtab.url",newtabUrlPref);
+ } catch(e) { console.error(e); }
+ }
+};
diff --git a/application/palemoon/components/preferences/preferences.xul b/application/palemoon/components/preferences/preferences.xul
index 2f00b960a..a1d9c8cf7 100644
--- a/application/palemoon/components/preferences/preferences.xul
+++ b/application/palemoon/components/preferences/preferences.xul
@@ -56,10 +56,10 @@
#endif
#endif
onunload="if (typeof gSecurityPane != 'undefined') gSecurityPane.syncAddonSecurityLevel();"
- ondialogaccept="if (typeof gTabsPane != 'undefined') gTabsPane.writeNewtabUrl();
- return true;">
+ ondialogaccept="gNewtabUrl.writeNewtabUrl();">
<script type="application/javascript" src="chrome://browser/content/utilityOverlay.js"/>
+ <script type="application/javascript" src="chrome://browser/content/preferences/newtaburl.js"/>
<stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
<stringbundle id="bundlePreferences"
diff --git a/application/palemoon/components/preferences/tabs.js b/application/palemoon/components/preferences/tabs.js
index f0ad8490c..17084a770 100644
--- a/application/palemoon/components/preferences/tabs.js
+++ b/application/palemoon/components/preferences/tabs.js
@@ -85,11 +85,14 @@ var gTabsPane = {
let newtabUrlPref = document.getElementById("browser.newtab.url");
let newtabUrlSanitizedPref = document.getElementById("browser.newtab.myhome");
let newtabUrlChoice = document.getElementById("browser.newtab.choice");
+ let defaultStartupHomepage = Services.prefs.getDefaultBranch("browser.")
+ .getComplexValue("startup.homepage",
+ Components.interfaces.nsIPrefLocalizedString).data;
switch (newtabUrlPref.value) {
case "about:logopage":
newtabUrlChoice.value = 1;
break;
- case "http://start.palemoon.org/":
+ case defaultStartupHomepage:
newtabUrlChoice.value = 2;
break;
case newtabUrlSanitizedPref.value:
@@ -104,54 +107,5 @@ var gTabsPane = {
// We need this to consider instantApply.
this.newtabPageCustom = newtabUrlPref.value;
}
- },
-
- /**
- * Writes browser.newtab.url with the appropriate value.
- * if the choice is "my home page", get and sanitize the browser home page
- * URL to make it suitable for newtab use.
- *
- * Called from prefwindow's ondialogaccept handler and
- * from browser.newtab.choice's oncommand to consider instantApply.
- */
- writeNewtabUrl: function(newtabUrlChoice) {
- try {
- if (newtabUrlChoice) {
- if (Services.prefs.getBoolPref("browser.preferences.instantApply")) {
- newtabUrlChoice = parseInt(newtabUrlChoice);
- } else {
- return;
- }
- } else {
- newtabUrlChoice = Services.prefs.getIntPref("browser.newtab.choice");
- }
- let browserHomepageUrl = Services.prefs.getComplexValue("browser.startup.homepage",
- Components.interfaces.nsIPrefLocalizedString).data;
- let newtabUrlPref = Services.prefs.getCharPref("browser.newtab.url");
- switch (newtabUrlChoice) {
- case 1:
- newtabUrlPref = "about:logopage";
- break;
- case 2:
- newtabUrlPref = "http://start.palemoon.org/";
- break;
- case 3:
- // If url is a pipe-delimited set of pages, just take the first one.
- let newtabUrlSanitizedPref=browserHomepageUrl.split("|")[0];
- // XXX: do we need extra sanitation here, e.g. for invalid URLs?
- Services.prefs.setCharPref("browser.newtab.myhome", newtabUrlSanitizedPref);
- newtabUrlPref = newtabUrlSanitizedPref;
- break;
- case 4:
- newtabUrlPref = "about:newtab";
- break;
- default:
- // In case of any other value it's a custom URL, consider instantApply.
- if (this.newtabPageCustom) {
- newtabUrlPref = this.newtabPageCustom;
- }
- }
- Services.prefs.setCharPref("browser.newtab.url",newtabUrlPref);
- } catch(e) { console.error(e); }
}
};
diff --git a/application/palemoon/components/preferences/tabs.xul b/application/palemoon/components/preferences/tabs.xul
index f5b44b776..64529d60d 100644
--- a/application/palemoon/components/preferences/tabs.xul
+++ b/application/palemoon/components/preferences/tabs.xul
@@ -85,7 +85,7 @@
<menulist
id="newtabPage"
preference="browser.newtab.choice"
- oncommand="gTabsPane.writeNewtabUrl(event.target.value);">
+ oncommand="gNewtabUrl.writeNewtabUrl(event.target.value);">
<menupopup>
<menuitem label="&newtabPage.custom.label;" value="0" id="newtabPageCustom" hidden="true" />
<menuitem label="&newtabPage.blank.label;" value="1" />
diff --git a/application/palemoon/components/sessionstore/SessionStore.jsm b/application/palemoon/components/sessionstore/SessionStore.jsm
index c5e55321c..e19a578f4 100644
--- a/application/palemoon/components/sessionstore/SessionStore.jsm
+++ b/application/palemoon/components/sessionstore/SessionStore.jsm
@@ -2739,7 +2739,9 @@ var SessionStoreInternal = {
for (var t = 0; t < newTabCount; t++) {
tabs.push(t < openTabCount ?
tabbrowser.tabs[t] :
- tabbrowser.addTab("about:blank", {skipAnimation: true}));
+ tabbrowser.addTab("about:blank",
+ {skipAnimation: true,
+ skipBackgroundNotify: true}));
// when resuming at startup: add additionally requested pages to the end
if (!aOverwriteTabs && root._firstTabs) {
tabbrowser.moveTabTo(tabs[t], t);
@@ -4684,7 +4686,8 @@ var TabAttributes = {
// 'image' should not be accessed directly but handled by using the
// gBrowser.getIcon()/setIcon() methods.
// 'pending' is used internal by sessionstore and managed accordingly.
- _skipAttrs: new Set(["image", "pending"]),
+ // 'skipbackgroundnotify' is used internal by tabbrowser.xml.
+ _skipAttrs: new Set(["image", "pending", "skipbackgroundnotify"]),
persist: function (name) {
if (this._attrs.has(name) || this._skipAttrs.has(name)) {
diff --git a/application/palemoon/config/version.txt b/application/palemoon/config/version.txt
index 41f060f2f..035159168 100644
--- a/application/palemoon/config/version.txt
+++ b/application/palemoon/config/version.txt
@@ -1 +1 @@
-28.0.1 \ No newline at end of file
+28.1.0 \ No newline at end of file
diff --git a/application/palemoon/locales/en-US/installer/custom.properties b/application/palemoon/locales/en-US/installer/custom.properties
index ef29b1e7e..8f95a194b 100644
--- a/application/palemoon/locales/en-US/installer/custom.properties
+++ b/application/palemoon/locales/en-US/installer/custom.properties
@@ -46,7 +46,9 @@ WARN_MANUALLY_CLOSE_APP_UNINSTALL=$BrandShortName must be closed to proceed with
WARN_MANUALLY_CLOSE_APP_LAUNCH=$BrandShortName is already running.\n\nPlease close $BrandShortName prior to launching the version you have just installed.
WARN_WRITE_ACCESS=You don't have access to write to the installation directory.\n\nClick OK to select a different directory.
WARN_DISK_SPACE=You don't have sufficient disk space to install to this location.\n\nClick OK to select a different location.
-WARN_MIN_SUPPORTED_OS_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer.
+WARN_MIN_SUPPORTED_OSVER_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer.
+WARN_MIN_SUPPORTED_CPU_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires a processor with ${MinSupportedCPU} support.
+WARN_MIN_SUPPORTED_OSVER_CPU_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer and a processor with ${MinSupportedCPU} support.
WARN_RESTART_REQUIRED_UNINSTALL=Your computer must be restarted to complete a previous uninstall of $BrandShortName. Do you want to reboot now?
WARN_RESTART_REQUIRED_UPGRADE=Your computer must be restarted to complete a previous upgrade of $BrandShortName. Do you want to reboot now?
ERROR_CREATE_DIRECTORY_PREFIX=Error creating directory:
diff --git a/application/palemoon/locales/en-US/installer/nsisstrings.properties b/application/palemoon/locales/en-US/installer/nsisstrings.properties
index 0144c2a98..fc2898860 100644
--- a/application/palemoon/locales/en-US/installer/nsisstrings.properties
+++ b/application/palemoon/locales/en-US/installer/nsisstrings.properties
@@ -25,7 +25,9 @@ INSTALL_BLURB1=You're about to enjoy the very latest in speed, flexibility and s
INSTALL_BLURB2=That's because $BrandShortName is made by a non-profit to make browsing and the Web better for you.
INSTALL_BLURB3=You're also joining a global community of users, contributors and developers working to make the best browser in the world.
-WARN_MIN_SUPPORTED_OS_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer.
+WARN_MIN_SUPPORTED_OSVER_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer.
+WARN_MIN_SUPPORTED_CPU_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires a processor with ${MinSupportedCPU} support.
+WARN_MIN_SUPPORTED_OSVER_CPU_MSG=Sorry, $BrandShortName can't be installed. This version of $BrandShortName requires ${MinSupportedVer} or newer and a processor with ${MinSupportedCPU} support.
WARN_WRITE_ACCESS=You don't have access to write to the installation directory.\n\nClick OK to select a different directory.
WARN_DISK_SPACE=You don't have sufficient disk space to install to this location.\n\nClick OK to select a different location.
WARN_ROOT_INSTALL=Unable to install to the root of your disk.\n\nClick OK to select a different location.
@@ -46,15 +48,16 @@ ADD_CheckboxShortcutInStartMenu=In my &Start Menu Programs Folder
ADD_CheckboxShortcutOnDesktop=On my &Desktop
SPACE_REQUIRED=Space Required:
SPACE_AVAILABLE=Space Available:
-ONE_MOMENT=One moment, $BrandShortName will launch as soon as the install is complete…
+ONE_MOMENT_INSTALL=One moment, $BrandShortName will launch as soon as the install is complete…
+ONE_MOMENT_UPGRADE=One moment, $BrandShortName will launch as soon as the upgrade is complete…
+INSTALL_MAINT_SERVICE=&Install the $BrandShortName background update service
SEND_PING=S&end information about this installation to Mozilla
BROWSE_BUTTON=B&rowse…
DEST_FOLDER=Destination Folder
-DOWNLOADING_IN_PROGRESS=Downloading…
-DOWNLOADING_DONE=Downloaded
-INSTALLING_TO_BE_DONE=Installing
-INSTALLING_IN_PROGRESS=Installing…
+DOWNLOADING_LABEL=Downloading $BrandShortName…
+INSTALLING_LABEL=Installing $BrandShortName…
+UPGRADING_LABEL=Upgrading $BrandShortName…
SELECT_FOLDER_TEXT=Select the folder to install $BrandShortName in.
diff --git a/application/palemoon/modules/WindowsPreviewPerTab.jsm b/application/palemoon/modules/WindowsPreviewPerTab.jsm
index c1ed05c39..243a00aae 100644
--- a/application/palemoon/modules/WindowsPreviewPerTab.jsm
+++ b/application/palemoon/modules/WindowsPreviewPerTab.jsm
@@ -3,12 +3,10 @@
* 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/. */
/*
- * This module implements the front end behavior for AeroPeek. Starting in
- * Windows Vista, the taskbar began showing live thumbnail previews of windows
- * when the user hovered over the window icon in the taskbar. Starting with
- * Windows 7, the taskbar allows an application to expose its tabbed interface
- * in the taskbar by showing thumbnail previews rather than the default window
- * preview. Additionally, when a user hovers over a thumbnail (tab or window),
+ * This module implements the front end behavior for AeroPeek. The taskbar
+ * allows an application to expose its tabbed interface by showing thumbnail
+ * previews rather than the default window preview.
+ * Additionally, when a user hovers over a thumbnail (tab or window),
* they are shown a live preview of the window (or tab + its containing window).
*
* In Windows 7, a title, icon, close button and optional toolbar are shown for
@@ -31,7 +29,7 @@
* Screen real estate is limited so when there are too many thumbnails to fit
* on the screen, the taskbar stops displaying thumbnails and instead displays
* just the title, icon and close button in a similar fashion to previous
- * versions of the taskbar. If there are still too many previews to fit on the
+ * versions of the taskbar. If there are still too many previews to fit on the
* screen, the taskbar resorts to a scroll up and scroll down button pair to let
* the user scroll through the list of tabs. Since this is undoubtedly
* inconvenient for users with many tabs, the AeroPeek objects turns off all of
@@ -47,9 +45,11 @@ const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/NetUtil.jsm");
+Cu.import("resource://gre/modules/PlacesUtils.jsm");
Cu.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
// Pref to enable/disable preview-per-tab
const TOGGLE_PREF_NAME = "browser.taskbar.previews.enable";
@@ -60,17 +60,15 @@ const CACHE_EXPIRATION_TIME_PREF_NAME = "browser.taskbar.previews.cachetime";
const WINTASKBAR_CONTRACTID = "@mozilla.org/windows-taskbar;1";
-////////////////////////////////////////////////////////////////////////////////
-//// Various utility properties
+// Various utility properties
XPCOMUtils.defineLazyServiceGetter(this, "imgTools",
"@mozilla.org/image/tools;1",
"imgITools");
-XPCOMUtils.defineLazyServiceGetter(this, "faviconSvc",
- "@mozilla.org/browser/favicon-service;1",
- "nsIFaviconService");
+XPCOMUtils.defineLazyModuleGetter(this, "PageThumbs",
+ "resource://gre/modules/PageThumbs.jsm");
// nsIURI -> imgIContainer
-function _imageFromURI(doc, uri, privateMode, callback) {
+function _imageFromURI(uri, privateMode, callback) {
let channel = NetUtil.newChannel({
uri: uri,
loadUsingSystemPrincipal: true,
@@ -93,19 +91,20 @@ function _imageFromURI(doc, uri, privateMode, callback) {
} catch (e) {
// We failed, so use the default favicon (only if this wasn't the default
// favicon).
- let defaultURI = faviconSvc.defaultFavicon;
+ let defaultURI = PlacesUtils.favicons.defaultFavicon;
if (!defaultURI.equals(uri))
- _imageFromURI(doc, defaultURI, privateMode, callback);
+ _imageFromURI(defaultURI, privateMode, callback);
}
});
}
// string? -> imgIContainer
-function getFaviconAsImage(doc, iconurl, privateMode, callback) {
- if (iconurl)
- _imageFromURI(doc, NetUtil.newURI(iconurl), privateMode, callback);
- else
- _imageFromURI(doc, faviconSvc.defaultFavicon, privateMode, callback);
+function getFaviconAsImage(iconurl, privateMode, callback) {
+ if (iconurl) {
+ _imageFromURI(NetUtil.newURI(iconurl), privateMode, callback);
+ } else {
+ _imageFromURI(PlacesUtils.favicons.defaultFavicon, privateMode, callback);
+ }
}
// Snaps the given rectangle to be pixel-aligned at the given scale
@@ -121,16 +120,17 @@ function snapRectAtScale(r, scale) {
r.height = height / scale;
}
-////////////////////////////////////////////////////////////////////////////////
-//// PreviewController
+// PreviewController
/*
- * This class manages the behavior of the preview.
- *
- * To give greater performance when drawing, the dirty areas of the content
- * window are tracked and drawn on demand into a canvas of the same size.
- * This provides a great increase in responsiveness when drawing a preview
- * for unchanged (or even only slightly changed) tabs.
+ * This class manages the behavior of thumbnails and previews. It has the following
+ * responsibilities:
+ * 1) Responding to requests from Windows taskbar for a thumbnail or window
+ * preview.
+ * 2) Listening for DOM events that result in a thumbnail or window preview needing
+ * to be refreshed, and communicating this to the taskbar.
+ * 3) Handling queryies and returning new thumbnail or window preview images to the
+ * taskbar through PageThumbs.
*
* @param win
* The TabWindow (see below) that owns the preview that this controls
@@ -143,206 +143,182 @@ function PreviewController(win, tab) {
this.linkedBrowser = tab.linkedBrowser;
this.preview = this.win.createTabPreview(this);
- this.linkedBrowser.addEventListener("MozAfterPaint", this, false);
this.tab.addEventListener("TabAttrModified", this, false);
XPCOMUtils.defineLazyGetter(this, "canvasPreview", function () {
- let canvas = this.win.win.document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
+ let canvas = PageThumbs.createCanvas();
canvas.mozOpaque = true;
return canvas;
});
-
- XPCOMUtils.defineLazyGetter(this, "dirtyRegion",
- function () {
- let dirtyRegion = Cc["@mozilla.org/gfx/region;1"]
- .createInstance(Ci.nsIScriptableRegion);
- dirtyRegion.init();
- return dirtyRegion;
- });
-
- XPCOMUtils.defineLazyGetter(this, "winutils",
- function () {
- let win = tab.linkedBrowser.contentWindow;
- return win.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDOMWindowUtils);
- });
}
PreviewController.prototype = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsITaskbarPreviewController,
Ci.nsIDOMEventListener]),
+
destroy: function () {
this.tab.removeEventListener("TabAttrModified", this, false);
- this.linkedBrowser.removeEventListener("MozAfterPaint", this, false);
// Break cycles, otherwise we end up leaking the window with everything
// attached to it.
delete this.win;
delete this.preview;
- delete this.dirtyRegion;
},
+
get wrappedJSObject() {
return this;
},
- get dirtyRects() {
- let rectstream = this.dirtyRegion.getRects();
- if (!rectstream)
- return [];
- let rects = [];
- for (let i = 0; i < rectstream.length; i+= 4) {
- let r = {x: rectstream[i],
- y: rectstream[i+1],
- width: rectstream[i+2],
- height: rectstream[i+3]};
- rects.push(r);
- }
- return rects;
- },
-
// Resizes the canvasPreview to 0x0, essentially freeing its memory.
- // updateCanvasPreview() will detect the size mismatch as a resize event
- // the next time it is called.
resetCanvasPreview: function () {
this.canvasPreview.width = 0;
this.canvasPreview.height = 0;
},
+ /**
+ * Set the canvas dimensions.
+ */
+ resizeCanvasPreview: function (aRequestedWidth, aRequestedHeight) {
+ this.canvasPreview.width = aRequestedWidth;
+ this.canvasPreview.height = aRequestedHeight;
+ },
+
+
get zoom() {
// Note that winutils.fullZoom accounts for "quantization" of the zoom factor
- // from nsIMarkupDocumentViewer due to conversion through appUnits.
+ // from nsIContentViewer due to conversion through appUnits.
// We do -not- want screenPixelsPerCSSPixel here, because that would -also-
// incorporate any scaling that is applied due to hi-dpi resolution options.
- return this.winutils.fullZoom;
- },
-
- // Updates the controller's canvas with the parts of the <browser> that need
- // to be redrawn.
- updateCanvasPreview: function () {
- let win = this.linkedBrowser.contentWindow;
- let bx = this.linkedBrowser.boxObject;
- // Check for resize
- if (bx.width != this.canvasPreview.width ||
- bx.height != this.canvasPreview.height) {
- // Invalidate the entire area and repaint
- this.onTabPaint({left:0, top:0, right:win.innerWidth, bottom:win.innerHeight});
- this.canvasPreview.width = bx.width;
- this.canvasPreview.height = bx.height;
- }
+ return this.tab.linkedBrowser.fullZoom;
+ },
- // Draw dirty regions
- let ctx = this.canvasPreview.getContext("2d");
- let scale = this.zoom;
-
- let flags = this.canvasPreviewFlags;
- // The dirty region may include parts that are offscreen so we clip to the
- // canvas area.
- this.dirtyRegion.intersectRect(0, 0, win.innerWidth, win.innerHeight);
- this.dirtyRects.forEach(function (r) {
- // We need to snap the rectangle to be pixel aligned in the destination
- // coordinate space. Otherwise natively themed widgets might not draw.
- snapRectAtScale(r, scale);
- let x = r.x;
- let y = r.y;
- let width = r.width;
- let height = r.height;
+ get screenPixelsPerCSSPixel() {
+ let chromeWin = this.tab.ownerGlobal;
+ let windowUtils = chromeWin.getInterface(Ci.nsIDOMWindowUtils);
+ return windowUtils.screenPixelsPerCSSPixel;
+ },
- ctx.save();
- ctx.scale(scale, scale);
- ctx.translate(x, y);
- ctx.drawWindow(win, x, y, width, height, "white", flags);
- ctx.restore();
- });
- this.dirtyRegion.setToRect(0,0,0,0);
+ get browserDims() {
+ return this.tab.linkedBrowser.getBoundingClientRect();
+ },
+
+ cacheBrowserDims: function () {
+ let dims = this.browserDims;
+ this._cachedWidth = dims.width;
+ this._cachedHeight = dims.height;
+ },
+ testCacheBrowserDims: function () {
+ let dims = this.browserDims;
+ return this._cachedWidth == dims.width &&
+ this._cachedHeight == dims.height;
+ },
+
+ /**
+ * Capture a new thumbnail image for this preview. Called by the controller
+ * in response to a request for a new thumbnail image.
+ */
+ updateCanvasPreview: function (aFullScale, aCallback) {
+ // Update our cached browser dims so that delayed resize
+ // events don't trigger another invalidation if this tab becomes active.
+ this.cacheBrowserDims();
+ PageThumbs.captureToCanvas(this.linkedBrowser, this.canvasPreview,
+ aCallback, { fullScale: aFullScale });
// If we're updating the canvas, then we're in the middle of a peek so
// don't discard the cache of previews.
AeroPeek.resetCacheTimer();
},
- onTabPaint: function (rect) {
- let x = Math.floor(rect.left),
- y = Math.floor(rect.top),
- width = Math.ceil(rect.right) - x,
- height = Math.ceil(rect.bottom) - y;
- this.dirtyRegion.unionRect(x, y, width, height);
- },
-
updateTitleAndTooltip: function () {
let title = this.win.tabbrowser.getWindowTitleForBrowser(this.linkedBrowser);
this.preview.title = title;
this.preview.tooltip = title;
},
- //////////////////////////////////////////////////////////////////////////////
- //// nsITaskbarPreviewController
+ // nsITaskbarPreviewController
+ // window width and height, not browser
get width() {
return this.win.width;
},
+ // window width and height, not browser
get height() {
return this.win.height;
},
get thumbnailAspectRatio() {
- let boxObject = this.tab.linkedBrowser.boxObject;
+ let browserDims = this.browserDims;
// Avoid returning 0
- let tabWidth = boxObject.width || 1;
+ let tabWidth = browserDims.width || 1;
// Avoid divide by 0
- let tabHeight = boxObject.height || 1;
+ let tabHeight = browserDims.height || 1;
return tabWidth / tabHeight;
},
- drawPreview: function (ctx) {
- let self = this;
- this.win.tabbrowser.previewTab(this.tab, function () self.previewTabCallback(ctx));
-
- // We must avoid having the frame drawn around the window. See bug 520807
- return false;
- },
-
- previewTabCallback: function (ctx) {
- // This will extract the resolution-scale component of the scaling we need,
- // which should be applied to both chrome and content;
- // the page zoom component is applied (to content only) within updateCanvasPreview.
- let scale = this.winutils.screenPixelsPerCSSPixel / this.winutils.fullZoom;
- ctx.save();
- ctx.scale(scale, scale);
- let width = this.win.width;
- let height = this.win.height;
- // Draw our toplevel window
- ctx.drawWindow(this.win.win, 0, 0, width, height, "transparent");
-
- // XXX (jfkthame): Pending tabs don't seem to draw with the proper scaling
- // unless we use this block of code; but doing this for "normal" (loaded) tabs
- // results in blurry rendering on hidpi systems, so we avoid it if possible.
- // I don't understand why pending and loaded tabs behave differently here...
- // (see bug 857061).
- if (this.tab.hasAttribute("pending")) {
- // Compositor, where art thou?
- // Draw the tab content on top of the toplevel window
- this.updateCanvasPreview();
-
- let boxObject = this.linkedBrowser.boxObject;
- ctx.translate(boxObject.x, boxObject.y);
- ctx.drawImage(this.canvasPreview, 0, 0);
- }
+ /**
+ * Responds to taskbar requests for window previews. Returns the results asynchronously
+ * through updateCanvasPreview.
+ *
+ * @param aTaskbarCallback nsITaskbarPreviewCallback results callback
+ */
+ requestPreview: function (aTaskbarCallback) {
+ // Grab a high res content preview
+ this.resetCanvasPreview();
+ this.updateCanvasPreview(true, (aPreviewCanvas) => {
+ let winWidth = this.win.width;
+ let winHeight = this.win.height;
- ctx.restore();
- },
+ let composite = PageThumbs.createCanvas();
+
+ // Use transparency, Aero glass is drawn black without it.
+ composite.mozOpaque = false;
- drawThumbnail: function (ctx, width, height) {
- this.updateCanvasPreview();
+ let ctx = composite.getContext('2d');
+ let scale = this.screenPixelsPerCSSPixel / this.zoom;
- let scale = width/this.linkedBrowser.boxObject.width;
- ctx.scale(scale, scale);
- ctx.drawImage(this.canvasPreview, 0, 0);
+ composite.width = winWidth * scale;
+ composite.height = winHeight * scale;
- // Don't draw a frame around the thumbnail
- return false;
+ ctx.save();
+ ctx.scale(scale, scale);
+
+ // Draw chrome. Note we currently do not get scrollbars for remote frames
+ // in the image above.
+ ctx.drawWindow(this.win.win, 0, 0, winWidth, winHeight, "rgba(0,0,0,0)");
+
+ // Draw the content are into the composite canvas at the right location.
+ ctx.drawImage(aPreviewCanvas, this.browserDims.x, this.browserDims.y,
+ aPreviewCanvas.width, aPreviewCanvas.height);
+ ctx.restore();
+
+ // Deliver the resulting composite canvas to Windows
+ this.win.tabbrowser.previewTab(this.tab, function () {
+ aTaskbarCallback.done(composite, false);
+ });
+ });
+ },
+
+ /**
+ * Responds to taskbar requests for tab thumbnails. Returns the results asynchronously
+ * through updateCanvasPreview.
+ *
+ * Note Windows requests a specific width and height here, if the resulting thumbnail
+ * does not match these dimensions thumbnail display will fail.
+ *
+ * @param aTaskbarCallback nsITaskbarPreviewCallback results callback
+ * @param aRequestedWidth width of the requested thumbnail
+ * @param aRequestedHeight height of the requested thumbnail
+ */
+ requestThumbnail: function (aTaskbarCallback, aRequestedWidth, aRequestedHeight) {
+ this.resizeCanvasPreview(aRequestedWidth, aRequestedHeight);
+ this.updateCanvasPreview(false, (aThumbnailCanvas) => {
+ aTaskbarCallback.done(aThumbnailCanvas, false);
+ });
},
+ // Event handling
+
onClose: function () {
this.win.tabbrowser.removeTab(this.tab);
},
@@ -355,22 +331,9 @@ PreviewController.prototype = {
return true;
},
- //// nsIDOMEventListener
+ // nsIDOMEventListener
handleEvent: function (evt) {
switch (evt.type) {
- case "MozAfterPaint":
- if (evt.originalTarget === this.linkedBrowser.contentWindow) {
- let clientRects = evt.clientRects;
- let length = clientRects.length;
- for (let i = 0; i < length; i++) {
- let r = clientRects.item(i);
- this.onTabPaint(r);
- }
- }
- let preview = this.preview;
- if (preview.visible)
- preview.invalidate();
- break;
case "TabAttrModified":
this.updateTitleAndTooltip();
break;
@@ -386,14 +349,13 @@ XPCOMUtils.defineLazyGetter(PreviewController.prototype, "canvasPreviewFlags",
| canvasInterface.DRAWWINDOW_DO_NOT_FLUSH;
});
-////////////////////////////////////////////////////////////////////////////////
-//// TabWindow
+// TabWindow
/*
* This class monitors a browser window for changes to its tabs
*
* @param win
- * The nsIDOMWindow browser window
+ * The nsIDOMWindow browser window
*/
function TabWindow(win) {
this.win = win;
@@ -403,6 +365,10 @@ function TabWindow(win) {
for (let i = 0; i < this.tabEvents.length; i++)
this.tabbrowser.tabContainer.addEventListener(this.tabEvents[i], this, false);
+
+ for (let i = 0; i < this.winEvents.length; i++)
+ this.win.addEventListener(this.winEvents[i], this, false);
+
this.tabbrowser.addTabsProgressListener(this);
AeroPeek.windows.push(this);
@@ -416,7 +382,10 @@ function TabWindow(win) {
TabWindow.prototype = {
_enabled: false,
+ _cachedWidth: 0,
+ _cachedHeight: 0,
tabEvents: ["TabOpen", "TabClose", "TabSelect", "TabMove"],
+ winEvents: ["resize"],
destroy: function () {
this._destroying = true;
@@ -424,6 +393,10 @@ TabWindow.prototype = {
let tabs = this.tabbrowser.tabs;
this.tabbrowser.removeTabsProgressListener(this);
+
+ for (let i = 0; i < this.winEvents.length; i++)
+ this.win.removeEventListener(this.winEvents[i], this, false);
+
for (let i = 0; i < this.tabEvents.length; i++)
this.tabbrowser.tabContainer.removeEventListener(this.tabEvents[i], this, false);
@@ -442,6 +415,15 @@ TabWindow.prototype = {
return this.win.innerHeight;
},
+ cacheDims: function () {
+ this._cachedWidth = this.width;
+ this._cachedHeight = this.height;
+ },
+
+ testCacheDims: function () {
+ return this._cachedWidth == this.width && this._cachedHeight == this.height;
+ },
+
// Invoked when the given tab is added to this window
newTab: function (tab) {
let controller = new PreviewController(this, tab);
@@ -461,18 +443,8 @@ TabWindow.prototype = {
let preview = AeroPeek.taskbar.createTaskbarTabPreview(docShell, controller);
preview.visible = AeroPeek.enabled;
preview.active = this.tabbrowser.selectedTab == controller.tab;
- // Grab the default favicon
- getFaviconAsImage(
- controller.linkedBrowser.contentWindow.document,
- null,
- PrivateBrowsingUtils.isWindowPrivate(this.win),
- function (img) {
- // It is possible that we've already gotten the real favicon, so make sure
- // we have not set one before setting this default one.
- if (!preview.icon)
- preview.icon = img;
- });
-
+ this.onLinkIconAvailable(controller.tab.linkedBrowser,
+ controller.tab.getAttribute("image"));
return preview;
},
@@ -484,8 +456,6 @@ TabWindow.prototype = {
preview.move(null);
preview.controller.wrappedJSObject.destroy();
- // We don't want to splice from the array if the tabs aren't being removed
- // from the tab bar as well (as is the case when the window closes).
this.previews.delete(tab);
AeroPeek.removePreview(preview);
},
@@ -499,7 +469,7 @@ TabWindow.prototype = {
// Because making a tab visible requires that the tab it is next to be
// visible, it is far simpler to unset the 'next' tab and recreate them all
// at once.
- for (let [tab, preview] of this.previews) {
+ for (let [, preview] of this.previews) {
preview.move(null);
preview.visible = enable;
}
@@ -514,27 +484,25 @@ TabWindow.prototype = {
let previews = this.previews;
let tabs = this.tabbrowser.tabs;
- // Previews are internally stored using a map, so we need to iterate over
- // the tabbrowser's array of tabs to retrieve previews in the same order.
- // Tycho: let inorder = [previews.get(t) for (t of tabs) if (previews.has(t))];
+ // Previews are internally stored using a map, so we need to iterate the
+ // tabbrowser's array of tabs to retrieve previews in the same order.
let inorder = [];
-
for (let t of tabs) {
if (previews.has(t)) {
inorder.push(previews.get(t));
}
}
- // Since the internal taskbar array has not yet been updated, we must force
- // the sorting order of our local array on it. To do so, we must walk
- // the local array backwards, because otherwise we would send move requests
- // in the wrong order. See bug 522610 for details.
+ // Since the internal taskbar array has not yet been updated we must force
+ // on it the sorting order of our local array. To do so we must walk
+ // the local array backwards, otherwise we would send move requests in the
+ // wrong order. See bug 522610 for details.
for (let i = inorder.length - 1; i >= 0; i--) {
inorder[i].move(inorder[i + 1] || null);
}
},
- //// nsIDOMEventListener
+ // nsIDOMEventListener
handleEvent: function (evt) {
let tab = evt.originalTarget;
switch (evt.type) {
@@ -552,28 +520,117 @@ TabWindow.prototype = {
case "TabMove":
this.updateTabOrdering();
break;
+ case "resize":
+ if (!AeroPeek._prefenabled)
+ return;
+ this.onResize();
+ break;
+ }
+ },
+
+ // Set or reset a timer that will invalidate visible thumbnails soon.
+ setInvalidationTimer: function () {
+ if (!this.invalidateTimer) {
+ this.invalidateTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+ }
+ this.invalidateTimer.cancel();
+
+ // delay 1 second before invalidating
+ this.invalidateTimer.initWithCallback(() => {
+ // invalidate every preview. note the internal implementation of
+ // invalidate ignores thumbnails that aren't visible.
+ this.previews.forEach(function (aPreview) {
+ let controller = aPreview.controller.wrappedJSObject;
+ if (!controller.testCacheBrowserDims()) {
+ controller.cacheBrowserDims();
+ aPreview.invalidate();
+ }
+ });
+ }, 1000, Ci.nsITimer.TYPE_ONE_SHOT);
+ },
+
+ onResize: function () {
+ // Specific to a window.
+
+ // Call invalidate on each tab thumbnail so that Windows will request an
+ // updated image. However don't do this repeatedly across multiple resize
+ // events triggered during window border drags.
+
+ if (this.testCacheDims()) {
+ return;
+ }
+
+ // update the window dims on our TabWindow object.
+ this.cacheDims();
+
+ // invalidate soon
+ this.setInvalidationTimer();
+ },
+
+ invalidateTabPreview: function(aBrowser) {
+ for (let [tab, preview] of this.previews) {
+ if (aBrowser == tab.linkedBrowser) {
+ preview.invalidate();
+ break;
+ }
+ }
+ },
+
+ // Browser progress listener
+
+ onLocationChange: function (aBrowser) {
+ // I'm not sure we need this, onStateChange does a really good job
+ // of picking up page changes.
+ // this.invalidateTabPreview(aBrowser);
+ },
+
+ onStateChange: function (aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) {
+ if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP &&
+ aStateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK) {
+ this.invalidateTabPreview(aBrowser);
}
},
- //// Browser progress listener
+ directRequestProtocols: new Set([
+ "file", "chrome", "resource", "about"
+ ]),
onLinkIconAvailable: function (aBrowser, aIconURL) {
- let self = this;
+ let requestURL = null;
+ if (aIconURL) {
+ let shouldRequestFaviconURL = true;
+ try {
+ let urlObject = NetUtil.newURI(aIconURL);
+ shouldRequestFaviconURL =
+ !this.directRequestProtocols.has(urlObject.scheme);
+ } catch (ex) {}
+
+ requestURL = shouldRequestFaviconURL ?
+ "moz-anno:favicon:" + aIconURL :
+ aIconURL;
+ }
+ let isDefaultFavicon = !requestURL;
getFaviconAsImage(
- aBrowser.contentWindow.document,
- aIconURL,PrivateBrowsingUtils.isWindowPrivate(this.win),
- function (img) {
- let index = self.tabbrowser.browsers.indexOf(aBrowser);
- // Only add it if we've found the index. The tab could have closed!
+ requestURL,
+ PrivateBrowsingUtils.isWindowPrivate(this.win),
+ img => {
+ let index = this.tabbrowser.browsers.indexOf(aBrowser);
+ // Only add it if we've found the index and the URI is still the same.
+ // The tab could have closed, and there's no guarantee the icons
+ // will have finished fetching 'in order'.
if (index != -1) {
- let tab = self.tabbrowser.tabs[index];
- self.previews.get(tab).icon = img;
+ let tab = this.tabbrowser.tabs[index];
+ let preview = this.previews.get(tab);
+ if (tab.getAttribute("image") == aIconURL ||
+ (!preview.icon && isDefaultFavicon)) {
+ preview.icon = img;
+ }
}
- });
+ }
+ );
}
}
-////////////////////////////////////////////////////////////////////////////////
-//// AeroPeek
+// AeroPeek
/*
* This object acts as global storage and external interface for this feature.
@@ -582,10 +639,12 @@ TabWindow.prototype = {
this.AeroPeek = {
available: false,
// Does the pref say we're enabled?
- _prefenabled: true,
+ __prefenabled: false,
_enabled: true,
+ initialized: false,
+
// nsITaskbarTabPreview array
previews: [],
@@ -609,24 +668,14 @@ this.AeroPeek = {
if (!this.available)
return;
- this.prefs.addObserver(TOGGLE_PREF_NAME, this, false);
- this.prefs.addObserver(DISABLE_THRESHOLD_PREF_NAME, this, false);
- this.prefs.addObserver(CACHE_EXPIRATION_TIME_PREF_NAME, this, false);
-
- this.cacheLifespan = this.prefs.getIntPref(CACHE_EXPIRATION_TIME_PREF_NAME);
-
- this.maxpreviews = this.prefs.getIntPref(DISABLE_THRESHOLD_PREF_NAME);
-
+ this.prefs.addObserver(TOGGLE_PREF_NAME, this, true);
this.enabled = this._prefenabled = this.prefs.getBoolPref(TOGGLE_PREF_NAME);
+ this.initialized = true;
},
destroy: function destroy() {
this._enabled = false;
- this.prefs.removeObserver(TOGGLE_PREF_NAME, this);
- this.prefs.removeObserver(DISABLE_THRESHOLD_PREF_NAME, this);
- this.prefs.removeObserver(CACHE_EXPIRATION_TIME_PREF_NAME, this);
-
if (this.cacheTimer)
this.cacheTimer.cancel();
},
@@ -646,6 +695,61 @@ this.AeroPeek = {
});
},
+ get _prefenabled() {
+ return this.__prefenabled;
+ },
+
+ set _prefenabled(enable) {
+ if (enable == this.__prefenabled) {
+ return;
+ }
+ this.__prefenabled = enable;
+
+ if (enable) {
+ this.enable();
+ } else {
+ this.disable();
+ }
+ },
+
+ _observersAdded: false,
+
+ enable() {
+ if (!this._observersAdded) {
+ this.prefs.addObserver(DISABLE_THRESHOLD_PREF_NAME, this, true);
+ this.prefs.addObserver(CACHE_EXPIRATION_TIME_PREF_NAME, this, true);
+ PlacesUtils.history.addObserver(this, true);
+ this._observersAdded = true;
+ }
+
+ this.cacheLifespan = this.prefs.getIntPref(CACHE_EXPIRATION_TIME_PREF_NAME);
+
+ this.maxpreviews = this.prefs.getIntPref(DISABLE_THRESHOLD_PREF_NAME);
+
+ // If the user toggled us on/off while the browser was already up
+ // (rather than this code running on startup because the pref was
+ // already set to true), we must initialize previews for open windows:
+ if (this.initialized) {
+ let browserWindows = Services.wm.getEnumerator("navigator:browser");
+ while (browserWindows.hasMoreElements()) {
+ let win = browserWindows.getNext();
+ if (!win.closed) {
+ this.onOpenWindow(win);
+ }
+ }
+ }
+ },
+
+ disable() {
+ while (this.windows.length) {
+ // We can't call onCloseWindow here because it'll bail if we're not
+ // enabled.
+ let tabWinObject = this.windows[0];
+ tabWinObject.destroy(); // This will remove us from the array.
+ delete tabWinObject.win.gTaskbarTabGroup; // Tidy up the window.
+ }
+ },
+
addPreview: function (preview) {
this.previews.push(preview);
this.checkPreviewCount();
@@ -658,15 +762,15 @@ this.AeroPeek = {
},
checkPreviewCount: function () {
- if (this.previews.length > this.maxpreviews)
- this.enabled = false;
- else
- this.enabled = this._prefenabled;
+ if (!this._prefenabled) {
+ return;
+ }
+ this.enabled = this.previews.length <= this.maxpreviews;
},
onOpenWindow: function (win) {
// This occurs when the taskbar service is not available (xp, vista)
- if (!this.available)
+ if (!this.available || !this._prefenabled)
return;
win.gTaskbarTabGroup = new TabWindow(win);
@@ -674,7 +778,7 @@ this.AeroPeek = {
onCloseWindow: function (win) {
// This occurs when the taskbar service is not available (xp, vista)
- if (!this.available)
+ if (!this.available || !this._prefenabled)
return;
win.gTaskbarTabGroup.destroy();
@@ -689,16 +793,20 @@ this.AeroPeek = {
this.cacheTimer.init(this, 1000*this.cacheLifespan, Ci.nsITimer.TYPE_ONE_SHOT);
},
- //// nsIObserver
+ // nsIObserver
observe: function (aSubject, aTopic, aData) {
+ if (aTopic == "nsPref:changed" && aData == TOGGLE_PREF_NAME) {
+ this._prefenabled = this.prefs.getBoolPref(TOGGLE_PREF_NAME);
+ }
+ if (!this._prefenabled) {
+ return;
+ }
switch (aTopic) {
case "nsPref:changed":
if (aData == CACHE_EXPIRATION_TIME_PREF_NAME)
break;
- if (aData == TOGGLE_PREF_NAME)
- this._prefenabled = this.prefs.getBoolPref(TOGGLE_PREF_NAME);
- else if (aData == DISABLE_THRESHOLD_PREF_NAME)
+ if (aData == DISABLE_THRESHOLD_PREF_NAME)
this.maxpreviews = this.prefs.getIntPref(DISABLE_THRESHOLD_PREF_NAME);
// Might need to enable/disable ourselves
this.checkPreviewCount();
@@ -710,10 +818,38 @@ this.AeroPeek = {
});
break;
}
- }
+ },
+
+ /* nsINavHistoryObserver implementation */
+ onBeginUpdateBatch() {},
+ onEndUpdateBatch() {},
+ onVisit() {},
+ onTitleChanged() {},
+ onFrecencyChanged() {},
+ onManyFrecenciesChanged() {},
+ onDeleteURI() {},
+ onClearHistory() {},
+ onDeleteVisits() {},
+ onPageChanged(uri, changedConst, newValue) {
+ if (this.enabled && changedConst == Ci.nsINavHistoryObserver.ATTRIBUTE_FAVICON) {
+ for (let win of this.windows) {
+ for (let [tab, ] of win.previews) {
+ if (tab.getAttribute("image") == newValue) {
+ win.onLinkIconAvailable(tab.linkedBrowser, newValue);
+ }
+ }
+ }
+ }
+ },
+
+ QueryInterface: XPCOMUtils.generateQI([
+ Ci.nsISupportsWeakReference,
+ Ci.nsINavHistoryObserver,
+ Ci.nsIObserver
+ ]),
};
-XPCOMUtils.defineLazyGetter(AeroPeek, "cacheTimer", function ()
+XPCOMUtils.defineLazyGetter(AeroPeek, "cacheTimer", () =>
Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer)
);
diff --git a/application/palemoon/themes/linux/browser.css b/application/palemoon/themes/linux/browser.css
index 987406264..c6587babc 100644
--- a/application/palemoon/themes/linux/browser.css
+++ b/application/palemoon/themes/linux/browser.css
@@ -1570,12 +1570,6 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
background-color: Window;
}
-.browserContainer > findbar {
- background-color: -moz-dialog;
- color: -moz-DialogText;
- text-shadow: none;
-}
-
/* Throbber */
#navigator-throbber {
width: 16px;
diff --git a/application/palemoon/themes/osx/browser.css b/application/palemoon/themes/osx/browser.css
index 97073b161..a915af3a3 100644
--- a/application/palemoon/themes/osx/browser.css
+++ b/application/palemoon/themes/osx/browser.css
@@ -1601,12 +1601,6 @@ richlistitem[type~="action"][actiontype="switchtab"][selected="true"] > .ac-url-
-moz-padding-start: 0px;
}
-.browserContainer > findbar {
- background-color: -moz-dialog;
- color: -moz-DialogText;
- text-shadow: none;
-}
-
/* ::::: throbber ::::: */
#navigator-throbber {
diff --git a/application/palemoon/themes/windows/browser.css b/application/palemoon/themes/windows/browser.css
index 1aefa428c..45f0e066c 100644
--- a/application/palemoon/themes/windows/browser.css
+++ b/application/palemoon/themes/windows/browser.css
@@ -1788,12 +1788,6 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
-moz-padding-start: 0px;
}
-.browserContainer > findbar {
- background-color: -moz-dialog;
- color: -moz-DialogText;
- text-shadow: none;
-}
-
/* ::::: throbber ::::: */
#navigator-throbber {
diff --git a/build/moz.configure/warnings.configure b/build/moz.configure/warnings.configure
index 273a41bd9..567814632 100644
--- a/build/moz.configure/warnings.configure
+++ b/build/moz.configure/warnings.configure
@@ -101,11 +101,22 @@ check_and_add_gcc_warning('-Wno-error=coverage-mismatch', when='MOZ_PGO')
# false positives during PGO
check_and_add_gcc_warning('-Wno-error=free-nonheap-object', when='MOZ_PGO')
+# Would be a pain to fix all occurrences, for very little gain
+check_and_add_gcc_warning('-Wno-error=multistatement-macros')
+
# We use mix of both POSIX and Win32 printf format across the tree, so format
# warnings are useless on mingw.
check_and_add_gcc_warning('-Wno-format',
when=depends(target)(lambda t: t.kernel == 'WINNT'))
+# Disable a warning with GCC 7+.
+# We are far from using C++17 and the impact of the warning will be
+# limited to a potential public ABI.
+# Currently only affecting js/
+check_and_add_gcc_warning('-Wno-noexcept-type', cxx_compiler,
+ when=depends(build_project)
+ (lambda build_project: build_project == 'js'))
+
# Please keep these last in this file
add_old_configure_assignment('_WARNINGS_CFLAGS', warnings_cflags)
add_old_configure_assignment('_WARNINGS_CXXFLAGS', warnings_cxxflags)
diff --git a/config/external/nss/nss.symbols b/config/external/nss/nss.symbols
index ba5492c37..3239d3119 100644
--- a/config/external/nss/nss.symbols
+++ b/config/external/nss/nss.symbols
@@ -271,7 +271,6 @@ NSS_IsInitialized
NSS_OptionSet
NSS_NoDB_Init
NSS_SecureMemcmp
-NSS_SecureMemcmpZero
NSS_SetAlgorithmPolicy
NSS_SetDomesticPolicy
NSS_Shutdown
@@ -490,7 +489,6 @@ PORT_UCS2_ASCIIConversion_Util
PORT_UCS2_UTF8Conversion
PORT_UCS2_UTF8Conversion_Util
PORT_ZAlloc
-PORT_ZAllocAlignedOffset_Util
PORT_ZAlloc_Util
PORT_ZFree_Util
SEC_AnyTemplate_Util @DATA@
@@ -725,9 +723,17 @@ VFY_VerifyDataWithAlgorithmID
VFY_VerifyDigestDirect
_SGN_VerifyPKCS1DigestInfo
__PK11_SetCertificateNickname
-# These symbols are not used by Firefox itself, but are used by Java's security
-# libraries, which in turn are used by Java applets/plugins/etc. Provide them
-# to make Java code happy.
+# These symbols are not used by applications but are possibly used across
+# NSS library boundaries.
+NSS_SecureMemcmpZero
+PORT_ZAllocAlignedOffset_Util
+CERT_FindCertByNicknameOrEmailAddrCX
+SECKEY_GetPrivateKeyType
+SEC_DerSignDataWithAlgorithmID
+SEC_CreateSignatureAlgorithmParameters
+# These symbols are not used by applicatons themselves, but are used by
+# Java's security libraries, which in turn are used by Java
+# applets/plugins/etc. Provide them to make Java code happy.
NSS_VersionCheck
NSS_Initialize
#ifdef NSS_EXTRA_SYMBOLS_FILE
diff --git a/config/milestone.txt b/config/milestone.txt
index 4f75be17f..1d06be496 100644
--- a/config/milestone.txt
+++ b/config/milestone.txt
@@ -10,4 +10,4 @@
# hardcoded milestones in the tree from these two files.
#--------------------------------------------------------
-4.1.4
+4.1.5
diff --git a/devtools/shared/heapsnapshot/HeapSnapshot.cpp b/devtools/shared/heapsnapshot/HeapSnapshot.cpp
index 17f43f34e..ef0bde948 100644
--- a/devtools/shared/heapsnapshot/HeapSnapshot.cpp
+++ b/devtools/shared/heapsnapshot/HeapSnapshot.cpp
@@ -28,7 +28,6 @@
#include "mozilla/dom/ContentChild.h"
#include "mozilla/dom/HeapSnapshotBinding.h"
#include "mozilla/RangedPtr.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Unused.h"
#include "jsapi.h"
@@ -1610,13 +1609,6 @@ ThreadSafeChromeUtils::SaveHeapSnapshot(GlobalObject& global,
return;
}
}
-
- Telemetry::AccumulateTimeDelta(Telemetry::DEVTOOLS_SAVE_HEAP_SNAPSHOT_MS,
- start);
- Telemetry::Accumulate(Telemetry::DEVTOOLS_HEAP_SNAPSHOT_NODE_COUNT,
- nodeCount);
- Telemetry::Accumulate(Telemetry::DEVTOOLS_HEAP_SNAPSHOT_EDGE_COUNT,
- edgeCount);
}
/* static */ already_AddRefed<HeapSnapshot>
@@ -1641,10 +1633,6 @@ ThreadSafeChromeUtils::ReadHeapSnapshot(GlobalObject& global,
global.Context(), global, reinterpret_cast<const uint8_t*>(mm.address()),
mm.size(), rv);
- if (!rv.Failed())
- Telemetry::AccumulateTimeDelta(Telemetry::DEVTOOLS_READ_HEAP_SNAPSHOT_MS,
- start);
-
return snapshot.forget();
}
diff --git a/devtools/shared/security/socket.js b/devtools/shared/security/socket.js
index 068a8ea81..9c6f5750a 100644
--- a/devtools/shared/security/socket.js
+++ b/devtools/shared/security/socket.js
@@ -480,7 +480,6 @@ SocketListener.prototype = {
_setAdditionalSocketOptions: Task.async(function* () {
if (this.encryption) {
this._socket.serverCert = yield cert.local.getOrCreate();
- this._socket.setSessionCache(false);
this._socket.setSessionTickets(false);
let requestCert = Ci.nsITLSServerSocket.REQUEST_NEVER;
this._socket.setRequestClientCertificate(requestCert);
diff --git a/docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000..bcd8b8f77
--- /dev/null
+++ b/docs/CODE_OF_CONDUCT.md
@@ -0,0 +1,48 @@
+# Contributor Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, physical attributes, disability, ethnicity, level of experience, nationality, personal appearance, race, religion, or sexual orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being courteous (use "please" when you ask something of someone)
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism, even if you disagree with such criticism.
+* Similarly, accepting that someone may not act on criticism given.
+* Focusing on what is best for the community and its projects
+* Showing understanding and a reasonable level of empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* Unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct or community's or projects' best interests, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, acting on behalf of the project on IRC or other chat networks, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project owner at moonchild@palemoon.org. The project owner will review and investigate all complaints, and will respond in a way that they deem appropriate for the circumstances. The project team is generally obligated to maintain confidentiality with regard to the reporter of an incident, although in exceptional cases where intervention of authorities is required, the reporter may be individually identified to aid in the investigation or resolution of a conflict situation. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version [1.4][version].
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/4/
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
index 8eca47495..ae307431d 100644
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -1972,71 +1972,7 @@ nsDocShell::GetCharset(nsACString& aCharset)
NS_IMETHODIMP
nsDocShell::GatherCharsetMenuTelemetry()
{
- nsCOMPtr<nsIContentViewer> viewer;
- GetContentViewer(getter_AddRefs(viewer));
- if (!viewer) {
- return NS_OK;
- }
-
- nsIDocument* doc = viewer->GetDocument();
- if (!doc || doc->WillIgnoreCharsetOverride()) {
- return NS_OK;
- }
-
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_USED, true);
-
- bool isFileURL = false;
- nsIURI* url = doc->GetOriginalURI();
- if (url) {
- url->SchemeIs("file", &isFileURL);
- }
-
- int32_t charsetSource = doc->GetDocumentCharacterSetSource();
- switch (charsetSource) {
- case kCharsetFromTopLevelDomain:
- // Unlabeled doc on a domain that we map to a fallback encoding
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_SITUATION, 7);
- break;
- case kCharsetFromFallback:
- case kCharsetFromDocTypeDefault:
- case kCharsetFromCache:
- case kCharsetFromParentFrame:
- case kCharsetFromHintPrevDoc:
- // Changing charset on an unlabeled doc.
- if (isFileURL) {
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_SITUATION, 0);
- } else {
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_SITUATION, 1);
- }
- break;
- case kCharsetFromAutoDetection:
- // Changing charset on unlabeled doc where chardet fired
- if (isFileURL) {
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_SITUATION, 2);
- } else {
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_SITUATION, 3);
- }
- break;
- case kCharsetFromMetaPrescan:
- case kCharsetFromMetaTag:
- case kCharsetFromChannel:
- // Changing charset on a doc that had a charset label.
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_SITUATION, 4);
- break;
- case kCharsetFromParentForced:
- case kCharsetFromUserForced:
- // Changing charset on a document that already had an override.
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_SITUATION, 5);
- break;
- case kCharsetFromIrreversibleAutoDetection:
- case kCharsetFromOtherComponent:
- case kCharsetFromByteOrderMark:
- case kCharsetUninitialized:
- default:
- // Bug. This isn't supposed to happen.
- Telemetry::Accumulate(Telemetry::CHARSET_OVERRIDE_SITUATION, 6);
- break;
- }
+ /* STUB */
return NS_OK;
}
@@ -5062,10 +4998,6 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI* aURI,
errorPage.Assign(alternateErrorPage);
}
- if (!IsFrame() && errorPage.EqualsIgnoreCase("certerror")) {
- Telemetry::Accumulate(mozilla::Telemetry::SECURITY_UI, bucketId);
- }
-
} else {
error.AssignLiteral("nssFailure2");
}
@@ -5105,10 +5037,6 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI* aURI,
: nsISecurityUITelemetry::WARNING_UNWANTED_PAGE_TOP;
}
- if (sendTelemetry && errorPage.EqualsIgnoreCase("blocked")) {
- Telemetry::Accumulate(Telemetry::SECURITY_UI, bucketId);
- }
-
cssClass.AssignLiteral("blacklist");
} else if (NS_ERROR_CONTENT_CRASHED == aError) {
errorPage.AssignLiteral("tabcrashed");
@@ -7622,8 +7550,6 @@ nsDocShell::EndPageLoad(nsIWebProgress* aProgress,
TimeStamp channelCreationTime;
rv = timingChannel->GetChannelCreation(&channelCreationTime);
if (NS_SUCCEEDED(rv) && !channelCreationTime.IsNull()) {
- Telemetry::AccumulateTimeDelta(Telemetry::TOTAL_CONTENT_PAGE_LOAD_TIME,
- channelCreationTime);
nsCOMPtr<nsPILoadGroupInternal> internalLoadGroup =
do_QueryInterface(mLoadGroup);
if (internalLoadGroup) {
@@ -12281,7 +12207,9 @@ nsDocShell::ShouldAddToSessionHistory(nsIURI* aURI)
return false;
}
- if (buf.EqualsLiteral("blank") || buf.EqualsLiteral("newtab")) {
+ if (buf.EqualsLiteral("blank") || buf.EqualsLiteral("logopage") ||
+ (buf.EqualsLiteral("newtab") &&
+ !Preferences::GetBool("browser.newtabpage.add_to_session_history", false))) {
return false;
}
}
diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp
index ed96ee23b..1bc4f82f4 100644
--- a/dom/base/Navigator.cpp
+++ b/dom/base/Navigator.cpp
@@ -684,8 +684,6 @@ Navigator::GetDoNotTrack(nsAString &aResult)
bool
Navigator::JavaEnabled(ErrorResult& aRv)
{
- Telemetry::AutoTimer<Telemetry::CHECK_JAVA_ENABLED> telemetryTimer;
-
// Return true if we have a handler for the java mime
nsAdoptingString javaMIME = Preferences::GetString("plugin.java.mime");
NS_ENSURE_TRUE(!javaMIME.IsEmpty(), false);
diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp
index 34c7d23b8..3696195dd 100644
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -7597,6 +7597,24 @@ nsContentUtils::IsFileImage(nsIFile* aFile, nsACString& aType)
}
nsresult
+nsContentUtils::CalculateBufferSizeForImage(const uint32_t& aStride,
+ const IntSize& aImageSize,
+ const SurfaceFormat& aFormat,
+ size_t* aMaxBufferSize,
+ size_t* aUsedBufferSize)
+{
+ CheckedInt32 requiredBytes =
+ CheckedInt32(aStride) * CheckedInt32(aImageSize.height);
+ if (!requiredBytes.isValid()) {
+ return NS_ERROR_FAILURE;
+ }
+ *aMaxBufferSize = requiredBytes.value();
+ *aUsedBufferSize = *aMaxBufferSize - aStride +
+ (aImageSize.width * BytesPerPixel(aFormat));
+ return NS_OK;
+}
+
+nsresult
nsContentUtils::DataTransferItemToImage(const IPCDataTransferItem& aItem,
imgIContainer** aContainer)
{
@@ -7611,6 +7629,22 @@ nsContentUtils::DataTransferItemToImage(const IPCDataTransferItem& aItem,
Shmem data = aItem.data().get_Shmem();
+ // Validate shared memory buffer size
+ size_t imageBufLen = 0;
+ size_t maxBufLen = 0;
+ nsresult rv = CalculateBufferSizeForImage(imageDetails.stride(),
+ size,
+ static_cast<SurfaceFormat>(
+ imageDetails.format()),
+ &maxBufLen,
+ &imageBufLen);
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
+ if (imageBufLen > data.Size<uint8_t>()) {
+ return NS_ERROR_FAILURE;
+ }
+
RefPtr<DataSourceSurface> image =
CreateDataSourceSurfaceFromData(size,
static_cast<SurfaceFormat>(imageDetails.format()),
@@ -7950,20 +7984,19 @@ GetSurfaceDataImpl(mozilla::gfx::DataSourceSurface* aSurface,
return GetSurfaceDataContext::NullValue();
}
- mozilla::gfx::IntSize size = aSurface->GetSize();
- mozilla::CheckedInt32 requiredBytes =
- mozilla::CheckedInt32(map.mStride) * mozilla::CheckedInt32(size.height);
- if (!requiredBytes.isValid()) {
+ size_t bufLen = 0;
+ size_t maxBufLen = 0;
+ nsresult rv = nsContentUtils::CalculateBufferSizeForImage(map.mStride,
+ aSurface->GetSize(),
+ aSurface->GetFormat(),
+ &maxBufLen,
+ &bufLen);
+ if (NS_FAILED(rv)) {
+ // Release mapped memory
+ aSurface->Unmap();
return GetSurfaceDataContext::NullValue();
}
- size_t maxBufLen = requiredBytes.value();
- mozilla::gfx::SurfaceFormat format = aSurface->GetFormat();
-
- // Surface data handling is totally nuts. This is the magic one needs to
- // know to access the data.
- size_t bufLen = maxBufLen - map.mStride + (size.width * BytesPerPixel(format));
-
// nsDependentCString wants null-terminated string.
typename GetSurfaceDataContext::ReturnType surfaceData = aContext.Allocate(maxBufLen + 1);
if (GetSurfaceDataContext::GetBuffer(surfaceData)) {
@@ -9787,3 +9820,19 @@ nsContentUtils::AttemptLargeAllocationLoad(nsIHttpChannel* aChannel)
return reloadSucceeded;
}
+
+/* static */ bool
+nsContentUtils::IsLocalRefURL(const nsString& aString)
+{
+ // Find the first non-"C0 controls + space" character.
+ const char16_t* current = aString.get();
+ for (; *current != '\0'; current++) {
+ if (*current > 0x20) {
+ // if the first non-"C0 controls + space" character is '#', this is a
+ // local-ref URL.
+ return *current == '#';
+ }
+ }
+
+ return false;
+} \ No newline at end of file
diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h
index 9ae6d2155..98df92efb 100644
--- a/dom/base/nsContentUtils.h
+++ b/dom/base/nsContentUtils.h
@@ -975,11 +975,17 @@ public:
static bool PrefetchEnabled(nsIDocShell* aDocShell);
+ static nsresult CalculateBufferSizeForImage(const uint32_t& aStride,
+ const mozilla::gfx::IntSize& aImageSize,
+ const mozilla::gfx::SurfaceFormat& aFormat,
+ size_t* aMaxBufferSize,
+ size_t* aUsedBufferSize);
+
+private:
/**
* Fill (with the parameters given) the localized string named |aKey| in
* properties file |aFile|.
*/
-private:
static nsresult FormatLocalizedString(PropertiesFile aFile,
const char* aKey,
const char16_t** aParams,
@@ -2730,6 +2736,13 @@ public:
static bool AttemptLargeAllocationLoad(nsIHttpChannel* aChannel);
+ /**
+ * Detect whether a string is a (CSS) local-url.
+ * https://drafts.csswg.org/css-values/#local-urls
+ */
+ static bool
+ IsLocalRefURL(const nsString& aString);
+
private:
static bool InitializeEventTable();
diff --git a/dom/base/nsDOMClassInfo.cpp b/dom/base/nsDOMClassInfo.cpp
index d125e5ad1..1cfde6e1b 100644
--- a/dom/base/nsDOMClassInfo.cpp
+++ b/dom/base/nsDOMClassInfo.cpp
@@ -49,7 +49,6 @@
#include "nsContentUtils.h"
#include "nsIDOMGlobalPropertyInitializer.h"
#include "mozilla/Attributes.h"
-#include "mozilla/Telemetry.h"
// Window scriptable helper includes
#include "nsScriptNameSpaceManager.h"
@@ -1903,9 +1902,6 @@ LookupComponentsShim(JSContext *cx, JS::Handle<JSObject*> global,
nsPIDOMWindowInner *win,
JS::MutableHandle<JS::PropertyDescriptor> desc)
{
- // Keep track of how often this happens.
- Telemetry::Accumulate(Telemetry::COMPONENTS_SHIM_ACCESSED_BY_CONTENT, true);
-
// Warn once.
nsCOMPtr<nsIDocument> doc = win->GetExtantDoc();
if (doc) {
diff --git a/dom/base/nsDOMNavigationTiming.cpp b/dom/base/nsDOMNavigationTiming.cpp
index 32ce8a8cb..9c732f2d8 100644
--- a/dom/base/nsDOMNavigationTiming.cpp
+++ b/dom/base/nsDOMNavigationTiming.cpp
@@ -15,7 +15,6 @@
#include "nsPrintfCString.h"
#include "mozilla/dom/PerformanceNavigation.h"
#include "mozilla/TimeStamp.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -203,12 +202,6 @@ nsDOMNavigationTiming::NotifyNonBlankPaintForRootContentDocument()
mDocShellHasBeenActiveSinceNavigationStart ? "foreground tab" : "this tab was inactive some of the time between navigation start and first non-blank paint");
PROFILER_MARKER(marker.get());
}
-
- if (mDocShellHasBeenActiveSinceNavigationStart) {
- Telemetry::AccumulateTimeDelta(Telemetry::TIME_TO_NON_BLANK_PAINT_MS,
- mNavigationStart,
- mNonBlankPaint);
- }
}
void
diff --git a/dom/base/nsDeprecatedOperationList.h b/dom/base/nsDeprecatedOperationList.h
index 8fb381d9d..ea4b05289 100644
--- a/dom/base/nsDeprecatedOperationList.h
+++ b/dom/base/nsDeprecatedOperationList.h
@@ -44,7 +44,6 @@ DEPRECATED_OPERATION(PannerNodeDoppler)
DEPRECATED_OPERATION(NavigatorGetUserMedia)
DEPRECATED_OPERATION(WebrtcDeprecatedPrefix)
DEPRECATED_OPERATION(RTCPeerConnectionGetStreams)
-DEPRECATED_OPERATION(AppCache)
DEPRECATED_OPERATION(PrefixedImageSmoothingEnabled)
DEPRECATED_OPERATION(PrefixedFullscreenAPI)
DEPRECATED_OPERATION(LenientSetter)
diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp
index 8acfd901a..ac9601caf 100644
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -25,7 +25,6 @@
#include "plstr.h"
#include "mozilla/Sprintf.h"
-#include "mozilla/Telemetry.h"
#include "nsIInterfaceRequestor.h"
#include "nsIInterfaceRequestorUtils.h"
#include "nsILoadContext.h"
@@ -12370,101 +12369,7 @@ MightBeAboutOrChromeScheme(nsIURI* aURI)
void
nsDocument::ReportUseCounters()
{
- static const bool sDebugUseCounters = false;
- if (mReportedUseCounters) {
- return;
- }
-
- mReportedUseCounters = true;
-
- if (Telemetry::HistogramUseCounterCount > 0 &&
- (IsContentDocument() || IsResourceDoc())) {
- nsCOMPtr<nsIURI> uri;
- NodePrincipal()->GetURI(getter_AddRefs(uri));
- if (!uri || MightBeAboutOrChromeScheme(uri)) {
- return;
- }
-
- if (sDebugUseCounters) {
- nsCString spec = uri->GetSpecOrDefault();
-
- // URIs can be rather long for data documents, so truncate them to
- // some reasonable length.
- spec.Truncate(std::min(128U, spec.Length()));
- printf("-- Use counters for %s --\n", spec.get());
- }
-
- // We keep separate counts for individual documents and top-level
- // pages to more accurately track how many web pages might break if
- // certain features were removed. Consider the case of a single
- // HTML document with several SVG images and/or iframes with
- // sub-documents of their own. If we maintained a single set of use
- // counters and all the sub-documents use a particular feature, then
- // telemetry would indicate that we would be breaking N documents if
- // that feature were removed. Whereas with a document/top-level
- // page split, we can see that N documents would be affected, but
- // only a single web page would be affected.
-
- // The difference between the values of these two histograms and the
- // related use counters below tell us how many pages did *not* use
- // the feature in question. For instance, if we see that a given
- // session has destroyed 30 content documents, but a particular use
- // counter shows only a count of 5, we can infer that the use
- // counter was *not* used in 25 of those 30 documents.
- //
- // We do things this way, rather than accumulating a boolean flag
- // for each use counter, to avoid sending histograms for features
- // that don't get widely used. Doing things in this fashion means
- // smaller telemetry payloads and faster processing on the server
- // side.
- Telemetry::Accumulate(Telemetry::CONTENT_DOCUMENTS_DESTROYED, 1);
- if (IsTopLevelContentDocument()) {
- Telemetry::Accumulate(Telemetry::TOP_LEVEL_CONTENT_DOCUMENTS_DESTROYED, 1);
- }
-
- for (int32_t c = 0;
- c < eUseCounter_Count; ++c) {
- UseCounter uc = static_cast<UseCounter>(c);
-
- Telemetry::ID id =
- static_cast<Telemetry::ID>(Telemetry::HistogramFirstUseCounter + uc * 2);
- bool value = GetUseCounter(uc);
-
- if (value) {
- if (sDebugUseCounters) {
- const char* name = Telemetry::GetHistogramName(id);
- if (name) {
- printf(" %s", name);
- } else {
- printf(" #%d", id);
- }
- printf(": %d\n", value);
- }
-
- Telemetry::Accumulate(id, 1);
- }
-
- if (IsTopLevelContentDocument()) {
- id = static_cast<Telemetry::ID>(Telemetry::HistogramFirstUseCounter +
- uc * 2 + 1);
- value = GetUseCounter(uc) || GetChildDocumentUseCounter(uc);
-
- if (value) {
- if (sDebugUseCounters) {
- const char* name = Telemetry::GetHistogramName(id);
- if (name) {
- printf(" %s", name);
- } else {
- printf(" #%d", id);
- }
- printf(": %d\n", value);
- }
-
- Telemetry::Accumulate(id, 1);
- }
- }
- }
- }
+/* STUB */
}
void
diff --git a/dom/base/nsFrameMessageManager.cpp b/dom/base/nsFrameMessageManager.cpp
index 6fffd376b..f173678b7 100644
--- a/dom/base/nsFrameMessageManager.cpp
+++ b/dom/base/nsFrameMessageManager.cpp
@@ -32,7 +32,6 @@
#include "mozilla/CycleCollectedJSContext.h"
#include "mozilla/IntentionalCrash.h"
#include "mozilla/Preferences.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/dom/File.h"
#include "mozilla/dom/MessagePort.h"
#include "mozilla/dom/nsIContentParent.h"
@@ -716,9 +715,6 @@ AllowMessage(size_t aDataLength, const nsAString& aMessageName)
NS_ConvertUTF16toUTF8 messageName(aMessageName);
messageName.StripChars("0123456789");
- Telemetry::Accumulate(Telemetry::MESSAGE_MANAGER_MESSAGE_SIZE2, messageName,
- aDataLength);
-
// A message includes more than structured clone data, so subtract
// 20KB to make it more likely that a message within this bound won't
// result in an overly large IPC message.
@@ -727,9 +723,6 @@ AllowMessage(size_t aDataLength, const nsAString& aMessageName)
return true;
}
- Telemetry::Accumulate(Telemetry::REJECTED_MESSAGE_MANAGER_MESSAGE,
- messageName);
-
return false;
}
@@ -2248,7 +2241,6 @@ nsSameProcessAsyncMessageBase::Init(const nsAString& aMessage,
nsIPrincipal* aPrincipal)
{
if (!mData.Copy(aData)) {
- Telemetry::Accumulate(Telemetry::IPC_SAME_PROCESS_MESSAGE_COPY_OOM_KB, aData.DataLength());
return NS_ERROR_OUT_OF_MEMORY;
}
diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp
index 884ad69ca..88cebe42b 100644
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -211,7 +211,6 @@
#include "mozilla/AddonPathService.h"
#include "mozilla/BasePrincipal.h"
#include "mozilla/Services.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/dom/Location.h"
#include "nsHTMLDocument.h"
#include "nsWrapperCacheInlines.h"
@@ -1759,9 +1758,6 @@ nsGlobalWindow::~nsGlobalWindow()
DropOuterWindowDocs();
} else {
- Telemetry::Accumulate(Telemetry::INNERWINDOWS_WITH_MUTATION_LISTENERS,
- mMutationBits ? 1 : 0);
-
if (mListenerManager) {
mListenerManager->Disconnect();
mListenerManager = nullptr;
@@ -2695,7 +2691,6 @@ TreatAsRemoteXUL(nsIPrincipal* aPrincipal)
static bool
EnablePrivilege(JSContext* cx, unsigned argc, JS::Value* vp)
{
- Telemetry::Accumulate(Telemetry::ENABLE_PRIVILEGE_EVER_CALLED, true);
return xpc::EnableUniversalXPConnect(cx);
}
@@ -3389,9 +3384,6 @@ nsGlobalWindow::InnerSetNewDocument(JSContext* aCx, nsIDocument* aDocument)
mLastOpenedURI = aDocument->GetDocumentURI();
#endif
- Telemetry::Accumulate(Telemetry::INNERWINDOWS_WITH_MUTATION_LISTENERS,
- mMutationBits ? 1 : 0);
-
// Clear our mutation bitfield.
mMutationBits = 0;
}
@@ -6848,8 +6840,6 @@ FullscreenTransitionTask::Run()
Preferences::GetUint("full-screen-api.transition.timeout", 1000);
mTimer->Init(observer, timeout, nsITimer::TYPE_ONE_SHOT);
} else if (stage == eAfterToggle) {
- Telemetry::AccumulateTimeDelta(Telemetry::FULLSCREEN_TRANSITION_BLACK_MS,
- mFullscreenChangeStartTime);
mWidget->PerformFullscreenTransition(nsIWidget::eAfterFullscreenToggle,
mDuration.mFadeOut, mTransitionData,
this);
@@ -11577,11 +11567,6 @@ nsGlobalWindow::ShowSlowScriptDialog()
unsigned lineno;
bool hasFrame = JS::DescribeScriptedCaller(cx, &filename, &lineno);
- // Record the slow script event if we haven't done so already for this inner window
- // (which represents a particular page to the user).
- if (!mHasHadSlowScript) {
- Telemetry::Accumulate(Telemetry::SLOW_SCRIPT_PAGE_COUNT, 1);
- }
mHasHadSlowScript = true;
if (XRE_IsContentProcess() &&
@@ -11613,10 +11598,6 @@ nsGlobalWindow::ShowSlowScriptDialog()
return ContinueSlowScriptAndKeepNotifying;
}
- // Reached only on non-e10s - once per slow script dialog.
- // On e10s - we probe once at ProcessHangsMonitor.jsm
- Telemetry::Accumulate(Telemetry::SLOW_SCRIPT_NOTICE_COUNT, 1);
-
// Get the nsIPrompt interface from the docshell
nsCOMPtr<nsIDocShell> ds = GetDocShell();
NS_ENSURE_TRUE(ds, KillSlowScript);
diff --git a/dom/base/nsIDocument.h b/dom/base/nsIDocument.h
index 7a73fae71..e5d12ab8f 100644
--- a/dom/base/nsIDocument.h
+++ b/dom/base/nsIDocument.h
@@ -3439,13 +3439,29 @@ nsINode::OwnerDocAsNode() const
return OwnerDoc();
}
+// ShouldUseXBLScope is defined here as a template so that we can get the faster
+// version of IsInAnonymousSubtree if we're statically known to be an
+// nsIContent. we could try defining ShouldUseXBLScope separately on nsINode
+// and nsIContent, but then we couldn't put its nsINode implementation here
+// (because this header does not include nsIContent) and we can't put it in
+// nsIContent.h, because the definition of nsIContent::IsInAnonymousSubtree is
+// in nsIContentInlines.h. And then we get include hell from people trying to
+// call nsINode::GetParentObject but not including nsIContentInlines.h and with
+// no really good way to include it.
+template<typename T>
+inline bool ShouldUseXBLScope(const T* aNode)
+{
+ return aNode->IsInAnonymousSubtree() &&
+ !aNode->IsAnonymousContentInSVGUseSubtree();
+}
+
inline mozilla::dom::ParentObject
nsINode::GetParentObject() const
{
mozilla::dom::ParentObject p(OwnerDoc());
// Note that mUseXBLScope is a no-op for chrome, and other places where we
// don't use XBL scopes.
- p.mUseXBLScope = IsInAnonymousSubtree() && !IsAnonymousContentInSVGUseSubtree();
+ p.mUseXBLScope = ShouldUseXBLScope(this);
return p;
}
diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp
index 09e848710..ca507a5fc 100644
--- a/dom/base/nsINode.cpp
+++ b/dom/base/nsINode.cpp
@@ -27,6 +27,7 @@
#include "mozilla/dom/Element.h"
#include "mozilla/dom/Event.h"
#include "mozilla/dom/ShadowRoot.h"
+#include "mozilla/dom/ScriptSettings.h"
#include "nsAttrValueOrString.h"
#include "nsBindingManager.h"
#include "nsCCUncollectableMarker.h"
@@ -1569,6 +1570,48 @@ CheckForOutdatedParent(nsINode* aParent, nsINode* aNode)
return NS_OK;
}
+static nsresult
+ReparentWrappersInSubtree(nsIContent* aRoot)
+{
+ MOZ_ASSERT(ShouldUseXBLScope(aRoot));
+ // Start off with no global so we don't fire any error events on failure.
+ AutoJSAPI jsapi;
+ jsapi.Init();
+
+ JSContext* cx = jsapi.cx();
+
+ nsIGlobalObject* docGlobal = aRoot->OwnerDoc()->GetScopeObject();
+ if (NS_WARN_IF(!docGlobal)) {
+ return NS_ERROR_UNEXPECTED;
+ }
+
+ JS::Rooted<JSObject*> rootedGlobal(cx, docGlobal->GetGlobalJSObject());
+ if (NS_WARN_IF(!rootedGlobal)) {
+ return NS_ERROR_UNEXPECTED;
+ }
+
+ rootedGlobal = xpc::GetXBLScope(cx, rootedGlobal);
+
+ nsresult rv;
+ JS::Rooted<JSObject*> reflector(cx);
+ for (nsIContent* cur = aRoot; cur; cur = cur->GetNextNode(aRoot)) {
+ if ((reflector = cur->GetWrapper())) {
+ JSAutoCompartment ac(cx, reflector);
+ rv = ReparentWrapper(cx, reflector);
+ if NS_FAILED(rv) {
+ // We _could_ consider BlastSubtreeToPieces here, but it's not really
+ // needed. Having some nodes in here accessible to content while others
+ // are not is probably OK. We just need to fail out of the actual
+ // insertion, so they're not in the DOM. Returning a failure here will
+ // do that.
+ return rv;
+ }
+ }
+ }
+
+ return NS_OK;
+}
+
nsresult
nsINode::doInsertChildAt(nsIContent* aKid, uint32_t aIndex,
bool aNotify, nsAttrAndChildArray& aChildArray)
@@ -1606,9 +1649,15 @@ nsINode::doInsertChildAt(nsIContent* aKid, uint32_t aIndex,
nsIContent* parent =
IsNodeOfType(eDOCUMENT) ? nullptr : static_cast<nsIContent*>(this);
+ bool wasInXBLScope = ShouldUseXBLScope(aKid);
rv = aKid->BindToTree(doc, parent,
parent ? parent->GetBindingParent() : nullptr,
true);
+ if (NS_SUCCEEDED(rv) && !wasInXBLScope && ShouldUseXBLScope(aKid)) {
+ MOZ_ASSERT(ShouldUseXBLScope(this),
+ "Why does the kid need to use an XBL scope?");
+ rv = ReparentWrappersInSubtree(aKid);
+ }
if (NS_FAILED(rv)) {
if (GetFirstChild() == aKid) {
mFirstChild = aKid->GetNextSibling();
diff --git a/dom/base/nsJSEnvironment.cpp b/dom/base/nsJSEnvironment.cpp
index 3be1a6d2f..4a984d294 100644
--- a/dom/base/nsJSEnvironment.cpp
+++ b/dom/base/nsJSEnvironment.cpp
@@ -70,7 +70,6 @@
#include "prthread.h"
#include "mozilla/Preferences.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/dom/BindingUtils.h"
#include "mozilla/Attributes.h"
#include "mozilla/dom/asmjscache/AsmJSCache.h"
@@ -1477,22 +1476,8 @@ nsJSContext::EndCycleCollectionCallback(CycleCollectorResults &aResults)
NS_GC_DELAY - std::min(ccNowDuration, kMaxICCDuration));
}
- // Log information about the CC via telemetry, JSON and the console.
- Telemetry::Accumulate(Telemetry::CYCLE_COLLECTOR_FINISH_IGC, gCCStats.mAnyLockedOut);
- Telemetry::Accumulate(Telemetry::CYCLE_COLLECTOR_SYNC_SKIPPABLE, gCCStats.mRanSyncForgetSkippable);
- Telemetry::Accumulate(Telemetry::CYCLE_COLLECTOR_FULL, ccNowDuration);
- Telemetry::Accumulate(Telemetry::CYCLE_COLLECTOR_MAX_PAUSE, gCCStats.mMaxSliceTime);
-
- if (!sLastCCEndTime.IsNull()) {
- // TimeBetween returns milliseconds, but we want to report seconds.
- uint32_t timeBetween = TimeBetween(sLastCCEndTime, gCCStats.mBeginTime) / 1000;
- Telemetry::Accumulate(Telemetry::CYCLE_COLLECTOR_TIME_BETWEEN, timeBetween);
- }
sLastCCEndTime = endCCTimeStamp;
- Telemetry::Accumulate(Telemetry::FORGET_SKIPPABLE_MAX,
- sMaxForgetSkippableTime / PR_USEC_PER_MSEC);
-
PRTime delta = GetCollectionTimeDelta();
uint32_t cleanups = sForgetSkippableBeforeCC ? sForgetSkippableBeforeCC : 1;
diff --git a/dom/base/nsNodeInfoManager.cpp b/dom/base/nsNodeInfoManager.cpp
index 66c8c84cf..80f0aa786 100644
--- a/dom/base/nsNodeInfoManager.cpp
+++ b/dom/base/nsNodeInfoManager.cpp
@@ -392,9 +392,6 @@ nsNodeInfoManager::SetDocumentPrincipal(nsIPrincipal *aPrincipal)
NS_ASSERTION(aPrincipal, "Must have principal by this point!");
MOZ_DIAGNOSTIC_ASSERT(!nsContentUtils::IsExpandedPrincipal(aPrincipal),
"Documents shouldn't have an expanded principal");
- if (nsContentUtils::IsExpandedPrincipal(aPrincipal)) {
- Telemetry::Accumulate(Telemetry::DOCUMENT_WITH_EXPANDED_PRINCIPAL, 1);
- }
mPrincipal = aPrincipal;
}
diff --git a/dom/base/nsObjectLoadingContent.cpp b/dom/base/nsObjectLoadingContent.cpp
index 9e9dacf01..709c7aa56 100644
--- a/dom/base/nsObjectLoadingContent.cpp
+++ b/dom/base/nsObjectLoadingContent.cpp
@@ -85,7 +85,6 @@
#include "mozilla/AsyncEventDispatcher.h"
#include "mozilla/EventDispatcher.h"
#include "mozilla/EventStates.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/dom/HTMLObjectElementBinding.h"
#include "mozilla/dom/HTMLSharedObjectElement.h"
#include "nsChannelClassifier.h"
@@ -1149,7 +1148,6 @@ nsObjectLoadingContent::OnStartRequest(nsIRequest *aRequest,
NS_LITERAL_STRING(" since it was found on an internal Firefox blocklist.");
console->LogStringMessage(message.get());
}
- Telemetry::Accumulate(Telemetry::PLUGIN_BLOCKED_FOR_STABILITY, 1);
mContentBlockingEnabled = true;
return NS_ERROR_FAILURE;
} else if (status == NS_ERROR_TRACKING_URI) {
@@ -1565,7 +1563,6 @@ nsObjectLoadingContent::MaybeRewriteYoutubeEmbed(nsIURI* aURI, nsIURI* aBaseURI,
}
if (uri.Find("enablejsapi=1", true, 0, -1) != kNotFound) {
- Telemetry::Accumulate(Telemetry::YOUTUBE_NONREWRITABLE_EMBED_SEEN, 1);
return;
}
@@ -1585,10 +1582,6 @@ nsObjectLoadingContent::MaybeRewriteYoutubeEmbed(nsIURI* aURI, nsIURI* aBaseURI,
}
}
- // If we've made it this far, we've got a rewritable embed. Log it in
- // telemetry.
- Telemetry::Accumulate(Telemetry::YOUTUBE_REWRITABLE_EMBED_SEEN, 1);
-
// If we're pref'd off, return after telemetry has been logged.
if (!Preferences::GetBool(kPrefYoutubeRewrite)) {
return;
@@ -3800,8 +3793,6 @@ nsObjectLoadingContent::LegacyCall(JSContext* aCx,
aRv.Throw(NS_ERROR_FAILURE);
return;
}
-
- Telemetry::Accumulate(Telemetry::PLUGIN_CALLED_DIRECTLY, true);
}
void
diff --git a/dom/bindings/BindingUtils.cpp b/dom/bindings/BindingUtils.cpp
index 7056658a7..323feca52 100644
--- a/dom/bindings/BindingUtils.cpp
+++ b/dom/bindings/BindingUtils.cpp
@@ -119,7 +119,7 @@ ThrowInvalidThis(JSContext* aCx, const JS::CallArgs& aArgs,
MSG_METHOD_THIS_DOES_NOT_IMPLEMENT_INTERFACE;
MOZ_RELEASE_ASSERT(GetErrorArgCount(errorNumber) <= 2);
JS_ReportErrorNumberUC(aCx, GetErrorMessage, nullptr,
- static_cast<const unsigned>(errorNumber),
+ static_cast<unsigned>(errorNumber),
funcNameStr.get(), ifaceName.get());
return false;
}
@@ -226,7 +226,7 @@ TErrorResult<CleanupPolicy>::SetPendingExceptionWithMessage(JSContext* aCx)
args[argCount] = nullptr;
JS_ReportErrorNumberUCArray(aCx, dom::GetErrorMessage, nullptr,
- static_cast<const unsigned>(message->mErrorNumber),
+ static_cast<unsigned>(message->mErrorNumber),
argCount > 0 ? args : nullptr);
ClearMessage();
diff --git a/dom/bindings/BindingUtils.h b/dom/bindings/BindingUtils.h
index 3e58390c9..24b47a545 100644
--- a/dom/bindings/BindingUtils.h
+++ b/dom/bindings/BindingUtils.h
@@ -515,7 +515,7 @@ class ProtoAndIfaceCache
{
public:
PageTableCache() {
- memset(&mPages, 0, sizeof(mPages));
+ memset(mPages.begin(), 0, sizeof(mPages));
}
~PageTableCache() {
diff --git a/dom/bindings/ErrorResult.h b/dom/bindings/ErrorResult.h
index 7c3fc9e2f..da7ec30e7 100644
--- a/dom/bindings/ErrorResult.h
+++ b/dom/bindings/ErrorResult.h
@@ -75,7 +75,7 @@ template<typename... Ts>
inline bool
ThrowErrorMessage(JSContext* aCx, const ErrNum aErrorNumber, Ts&&... aArgs)
{
- binding_detail::ThrowErrorMessage(aCx, static_cast<const unsigned>(aErrorNumber),
+ binding_detail::ThrowErrorMessage(aCx, static_cast<unsigned>(aErrorNumber),
mozilla::Forward<Ts>(aArgs)...);
return false;
}
diff --git a/dom/canvas/CanvasRenderingContextHelper.cpp b/dom/canvas/CanvasRenderingContextHelper.cpp
index 3000e59bd..61317fb51 100644
--- a/dom/canvas/CanvasRenderingContextHelper.cpp
+++ b/dom/canvas/CanvasRenderingContextHelper.cpp
@@ -7,7 +7,6 @@
#include "ImageBitmapRenderingContext.h"
#include "ImageEncoder.h"
#include "mozilla/dom/CanvasRenderingContext2D.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/UniquePtr.h"
#include "nsContentUtils.h"
#include "nsDOMJSUtils.h"
@@ -138,13 +137,10 @@ CanvasRenderingContextHelper::CreateContextHelper(CanvasContextType aContextType
break;
case CanvasContextType::Canvas2D:
- Telemetry::Accumulate(Telemetry::CANVAS_2D_USED, 1);
ret = new CanvasRenderingContext2D(aCompositorBackend);
break;
case CanvasContextType::WebGL1:
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_USED, 1);
-
ret = WebGL1Context::Create();
if (!ret)
return nullptr;
@@ -152,8 +148,6 @@ CanvasRenderingContextHelper::CreateContextHelper(CanvasContextType aContextType
break;
case CanvasContextType::WebGL2:
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_USED, 1);
-
ret = WebGL2Context::Create();
if (!ret)
return nullptr;
@@ -205,16 +199,8 @@ CanvasRenderingContextHelper::GetContext(JSContext* aCx,
// See bug 645792 and bug 1215072.
// We want to throw only if dictionary initialization fails,
// so only in case aRv has been set to some error value.
- if (contextType == CanvasContextType::WebGL1)
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_SUCCESS, 0);
- else if (contextType == CanvasContextType::WebGL2)
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL2_SUCCESS, 0);
return nullptr;
}
- if (contextType == CanvasContextType::WebGL1)
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_SUCCESS, 1);
- else if (contextType == CanvasContextType::WebGL2)
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL2_SUCCESS, 1);
} else {
// We already have a context of some type.
if (contextType != mCurrentContextType)
diff --git a/dom/canvas/WebGL1Context.cpp b/dom/canvas/WebGL1Context.cpp
index c1818a3f9..e82cafbe5 100644
--- a/dom/canvas/WebGL1Context.cpp
+++ b/dom/canvas/WebGL1Context.cpp
@@ -6,7 +6,6 @@
#include "WebGL1Context.h"
#include "mozilla/dom/WebGLRenderingContextBinding.h"
-#include "mozilla/Telemetry.h"
#include "WebGLFormats.h"
namespace mozilla {
@@ -43,8 +42,6 @@ WebGL1Context::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
nsresult
NS_NewCanvasRenderingContextWebGL(nsIDOMWebGLRenderingContext** out_result)
{
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::CANVAS_WEBGL_USED, 1);
-
nsIDOMWebGLRenderingContext* ctx = mozilla::WebGL1Context::Create();
NS_ADDREF(*out_result = ctx);
diff --git a/dom/canvas/WebGLContext.cpp b/dom/canvas/WebGLContext.cpp
index 32eed6354..14bc7e3e3 100644
--- a/dom/canvas/WebGLContext.cpp
+++ b/dom/canvas/WebGLContext.cpp
@@ -825,10 +825,6 @@ NS_IMETHODIMP
WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
{
if (signedWidth < 0 || signedHeight < 0) {
- if (!gl) {
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_FAILURE_ID,
- NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_SIZE"));
- }
GenerateWarning("Canvas size is too large (seems like a negative value wrapped)");
return NS_ERROR_OUT_OF_MEMORY;
}
@@ -884,12 +880,6 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
return NS_OK;
}
- nsCString failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_UNKOWN");
- auto autoTelemetry = mozilla::MakeScopeExit([&] {
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_FAILURE_ID,
- failureId);
- });
-
// End of early return cases.
// At this point we know that we're not just resizing an existing context,
// we are initializing a new context.
@@ -911,7 +901,6 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
// resource handles created from older context generations.
if (!(mGeneration + 1).isValid()) {
// exit without changing the value of mGeneration
- failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_TOO_MANY");
const nsLiteralCString text("Too many WebGL contexts created this run.");
ThrowEvent_WebGLContextCreationError(text);
return NS_ERROR_FAILURE;
@@ -928,11 +917,6 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
disabled |= gfxPlatform::InSafeMode();
if (disabled) {
- if (gfxPlatform::InSafeMode()) {
- failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_SAFEMODE");
- } else {
- failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_DISABLED");
- }
const nsLiteralCString text("WebGL is currently disabled.");
ThrowEvent_WebGLContextCreationError(text);
return NS_ERROR_FAILURE;
@@ -945,7 +929,6 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
if (mOptions.failIfMajorPerformanceCaveat) {
nsCOMPtr<nsIGfxInfo> gfxInfo = services::GetGfxInfo();
if (!HasAcceleratedLayers(gfxInfo)) {
- failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_PERF_CAVEAT");
const nsLiteralCString text("failIfMajorPerformanceCaveat: Compositor is not"
" hardware-accelerated.");
ThrowEvent_WebGLContextCreationError(text);
@@ -961,12 +944,9 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
if (!CreateAndInitGL(forceEnabled, &failReasons)) {
nsCString text("WebGL creation failed: ");
for (const auto& cur : failReasons) {
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_FAILURE_ID, cur.key);
-
text.AppendASCII("\n* ");
text.Append(cur.info);
}
- failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_REASON");
ThrowEvent_WebGLContextCreationError(text);
return NS_ERROR_FAILURE;
}
@@ -978,7 +958,6 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
DestroyResourcesAndContext();
MOZ_ASSERT(!gl);
- failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_PERF_WARP");
const nsLiteralCString text("failIfMajorPerformanceCaveat: Driver is not"
" hardware-accelerated.");
ThrowEvent_WebGLContextCreationError(text);
@@ -992,7 +971,6 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
DestroyResourcesAndContext();
MOZ_ASSERT(!gl);
- failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_DXGL_INTEROP2");
const nsLiteralCString text("Caveat: WGL without DXGLInterop2.");
ThrowEvent_WebGLContextCreationError(text);
return NS_ERROR_FAILURE;
@@ -1001,7 +979,6 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
}
if (!ResizeBackbuffer(width, height)) {
- failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_BACKBUFFER");
const nsLiteralCString text("Initializing WebGL backbuffer failed.");
ThrowEvent_WebGLContextCreationError(text);
return NS_ERROR_FAILURE;
@@ -1085,7 +1062,6 @@ WebGLContext::SetDimensions(int32_t signedWidth, int32_t signedHeight)
//////
- failureId = NS_LITERAL_CSTRING("SUCCESS");
return NS_OK;
}
diff --git a/dom/crypto/WebCryptoTask.cpp b/dom/crypto/WebCryptoTask.cpp
index f5fc7b5bc..c4cc7080d 100644
--- a/dom/crypto/WebCryptoTask.cpp
+++ b/dom/crypto/WebCryptoTask.cpp
@@ -452,7 +452,6 @@ void
WebCryptoTask::FailWithError(nsresult aRv)
{
MOZ_ASSERT(IsOnOriginalThread());
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_RESOLVED, false);
// Blindly convert nsresult to DOMException
// Individual tasks must ensure they pass the right values
@@ -491,7 +490,6 @@ WebCryptoTask::CallCallback(nsresult rv)
}
Resolve();
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_RESOLVED, true);
// Manually release mResultPromise while we're on the main thread
mResultPromise = nullptr;
@@ -650,7 +648,6 @@ public:
mEarlyRv = NS_ERROR_DOM_NOT_SUPPORTED_ERR;
return;
}
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, telemetryAlg);
}
private:
@@ -794,7 +791,6 @@ public:
return;
}
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, TA_AES_KW);
}
private:
@@ -908,8 +904,6 @@ public:
void Init(JSContext* aCx, const ObjectOrString& aAlgorithm,
CryptoKey& aKey, bool aEncrypt)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, TA_RSA_OAEP);
-
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_RSA_OAEP);
if (mEncrypt) {
@@ -1049,7 +1043,6 @@ public:
case CKM_SHA512_HMAC: telemetryAlg = TA_HMAC_SHA_512; break;
default: telemetryAlg = TA_UNKNOWN;
}
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, telemetryAlg);
}
private:
@@ -1158,12 +1151,10 @@ public:
if (algName.EqualsLiteral(WEBCRYPTO_ALG_RSASSA_PKCS1)) {
mAlgorithm = Algorithm::RSA_PKCS1;
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, TA_RSASSA_PKCS1);
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_RSASSA_PKCS1);
hashAlgName = aKey.Algorithm().mRsa.mHash.mName;
} else if (algName.EqualsLiteral(WEBCRYPTO_ALG_RSA_PSS)) {
mAlgorithm = Algorithm::RSA_PSS;
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, TA_RSA_PSS);
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_RSA_PSS);
KeyAlgorithm& hashAlg = aKey.Algorithm().mRsa.mHash;
@@ -1188,7 +1179,6 @@ public:
mSaltLength = params.mSaltLength;
} else if (algName.EqualsLiteral(WEBCRYPTO_ALG_ECDSA)) {
mAlgorithm = Algorithm::ECDSA;
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, TA_ECDSA);
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_ECDSA);
// For ECDSA, the hash name comes from the algorithm parameter
@@ -1356,7 +1346,6 @@ public:
mEarlyRv = NS_ERROR_DOM_SYNTAX_ERR;
return;
}
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, telemetryAlg);
mOidTag = MapHashAlgorithmNameToOID(algName);
}
@@ -2656,7 +2645,6 @@ public:
void Init(JSContext* aCx, const ObjectOrString& aAlgorithm, CryptoKey& aKey,
uint32_t aLength)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, TA_HKDF);
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_HKDF);
// Check that we have a key.
@@ -2806,7 +2794,6 @@ public:
void Init(JSContext* aCx, const ObjectOrString& aAlgorithm, CryptoKey& aKey,
uint32_t aLength)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, TA_PBKDF2);
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_PBKDF2);
// Check that we got a symmetric key
@@ -2981,7 +2968,6 @@ public:
void Init(JSContext* aCx, const ObjectOrString& aAlgorithm, CryptoKey& aKey)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_ALG, TA_ECDH);
CHECK_KEY_ALGORITHM(aKey.Algorithm(), WEBCRYPTO_ALG_ECDH);
// Check that we have a private key.
@@ -3277,10 +3263,6 @@ WebCryptoTask::CreateEncryptDecryptTask(JSContext* aCx,
const CryptoOperationData& aData,
bool aEncrypt)
{
- TelemetryMethod method = (aEncrypt)? TM_ENCRYPT : TM_DECRYPT;
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, method);
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_EXTRACTABLE_ENC, aKey.Extractable());
-
// Ensure key is usable for this operation
if ((aEncrypt && !aKey.HasUsage(CryptoKey::ENCRYPT)) ||
(!aEncrypt && !aKey.HasUsage(CryptoKey::DECRYPT))) {
@@ -3312,10 +3294,6 @@ WebCryptoTask::CreateSignVerifyTask(JSContext* aCx,
const CryptoOperationData& aData,
bool aSign)
{
- TelemetryMethod method = (aSign)? TM_SIGN : TM_VERIFY;
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, method);
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_EXTRACTABLE_SIG, aKey.Extractable());
-
// Ensure key is usable for this operation
if ((aSign && !aKey.HasUsage(CryptoKey::SIGN)) ||
(!aSign && !aKey.HasUsage(CryptoKey::VERIFY))) {
@@ -3345,8 +3323,6 @@ WebCryptoTask::CreateDigestTask(JSContext* aCx,
const ObjectOrString& aAlgorithm,
const CryptoOperationData& aData)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, TM_DIGEST);
-
nsString algName;
nsresult rv = GetAlgorithmName(aCx, aAlgorithm, algName);
if (NS_FAILED(rv)) {
@@ -3372,9 +3348,6 @@ WebCryptoTask::CreateImportKeyTask(nsIGlobalObject* aGlobal,
bool aExtractable,
const Sequence<nsString>& aKeyUsages)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, TM_IMPORTKEY);
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_EXTRACTABLE_IMPORT, aExtractable);
-
// Verify that the format is recognized
if (!aFormat.EqualsLiteral(WEBCRYPTO_KEY_FORMAT_RAW) &&
!aFormat.EqualsLiteral(WEBCRYPTO_KEY_FORMAT_SPKI) &&
@@ -3426,8 +3399,6 @@ WebCryptoTask*
WebCryptoTask::CreateExportKeyTask(const nsAString& aFormat,
CryptoKey& aKey)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, TM_EXPORTKEY);
-
// Verify that the format is recognized
if (!aFormat.EqualsLiteral(WEBCRYPTO_KEY_FORMAT_RAW) &&
!aFormat.EqualsLiteral(WEBCRYPTO_KEY_FORMAT_SPKI) &&
@@ -3470,9 +3441,6 @@ WebCryptoTask::CreateGenerateKeyTask(nsIGlobalObject* aGlobal,
bool aExtractable,
const Sequence<nsString>& aKeyUsages)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, TM_GENERATEKEY);
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_EXTRACTABLE_GENERATE, aExtractable);
-
// Verify that aKeyUsages does not contain an unrecognized value
// SPEC-BUG: Spec says that this should be InvalidAccessError, but that
// is inconsistent with other analogous points in the spec
@@ -3515,8 +3483,6 @@ WebCryptoTask::CreateDeriveKeyTask(nsIGlobalObject* aGlobal,
bool aExtractable,
const Sequence<nsString>& aKeyUsages)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, TM_DERIVEKEY);
-
// Ensure baseKey is usable for this operation
if (!aBaseKey.HasUsage(CryptoKey::DERIVEKEY)) {
return new FailureTask(NS_ERROR_DOM_INVALID_ACCESS_ERR);
@@ -3560,8 +3526,6 @@ WebCryptoTask::CreateDeriveBitsTask(JSContext* aCx,
CryptoKey& aKey,
uint32_t aLength)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, TM_DERIVEBITS);
-
// Ensure baseKey is usable for this operation
if (!aKey.HasUsage(CryptoKey::DERIVEBITS)) {
return new FailureTask(NS_ERROR_DOM_INVALID_ACCESS_ERR);
@@ -3599,8 +3563,6 @@ WebCryptoTask::CreateWrapKeyTask(JSContext* aCx,
CryptoKey& aWrappingKey,
const ObjectOrString& aWrapAlgorithm)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, TM_WRAPKEY);
-
// Verify that the format is recognized
if (!aFormat.EqualsLiteral(WEBCRYPTO_KEY_FORMAT_RAW) &&
!aFormat.EqualsLiteral(WEBCRYPTO_KEY_FORMAT_SPKI) &&
@@ -3652,8 +3614,6 @@ WebCryptoTask::CreateUnwrapKeyTask(nsIGlobalObject* aGlobal,
bool aExtractable,
const Sequence<nsString>& aKeyUsages)
{
- Telemetry::Accumulate(Telemetry::WEBCRYPTO_METHOD, TM_UNWRAPKEY);
-
// Ensure key is usable for this operation
if (!aUnwrappingKey.HasUsage(CryptoKey::UNWRAPKEY)) {
return new FailureTask(NS_ERROR_DOM_INVALID_ACCESS_ERR);
diff --git a/dom/events/EventDispatcher.cpp b/dom/events/EventDispatcher.cpp
index 65f01844b..1d4dfd7d9 100644
--- a/dom/events/EventDispatcher.cpp
+++ b/dom/events/EventDispatcher.cpp
@@ -858,63 +858,46 @@ EventDispatcher::CreateEvent(EventTarget* aOwner,
// And if we didn't get an event, check the type argument.
-#define LOG_EVENT_CREATION(name) mozilla::Telemetry::Accumulate( \
- mozilla::Telemetry::CREATE_EVENT_##name, true);
-
if (aEventType.LowerCaseEqualsLiteral("mouseevent")) {
- LOG_EVENT_CREATION(MOUSEEVENT);
return NS_NewDOMMouseEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("mouseevents")) {
- LOG_EVENT_CREATION(MOUSEEVENTS);
return NS_NewDOMMouseEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("popupevents")) {
- LOG_EVENT_CREATION(POPUPEVENTS);
return NS_NewDOMMouseEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("mousescrollevents")) {
- LOG_EVENT_CREATION(MOUSESCROLLEVENTS);
return NS_NewDOMMouseScrollEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("dragevent")) {
- LOG_EVENT_CREATION(DRAGEVENT);
return NS_NewDOMDragEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("dragevents")) {
- LOG_EVENT_CREATION(DRAGEVENTS);
return NS_NewDOMDragEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("keyboardevent")) {
- LOG_EVENT_CREATION(KEYBOARDEVENT);
return NS_NewDOMKeyboardEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("keyevents")) {
- LOG_EVENT_CREATION(KEYEVENTS);
return NS_NewDOMKeyboardEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("compositionevent")) {
- LOG_EVENT_CREATION(COMPOSITIONEVENT);
return NS_NewDOMCompositionEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("textevent")) {
- LOG_EVENT_CREATION(TEXTEVENT);
return NS_NewDOMCompositionEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("textevents")) {
- LOG_EVENT_CREATION(TEXTEVENTS);
return NS_NewDOMCompositionEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("mutationevent")) {
- LOG_EVENT_CREATION(MUTATIONEVENT);
return NS_NewDOMMutationEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("mutationevents")) {
- LOG_EVENT_CREATION(MUTATIONEVENTS);
return NS_NewDOMMutationEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("deviceorientationevent")) {
- LOG_EVENT_CREATION(DEVICEORIENTATIONEVENT);
DeviceOrientationEventInit init;
RefPtr<Event> event =
DeviceOrientationEvent::Constructor(aOwner, EmptyString(), init);
@@ -922,97 +905,74 @@ EventDispatcher::CreateEvent(EventTarget* aOwner,
return event.forget();
}
if (aEventType.LowerCaseEqualsLiteral("devicemotionevent")) {
- LOG_EVENT_CREATION(DEVICEMOTIONEVENT);
return NS_NewDOMDeviceMotionEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("uievent")) {
- LOG_EVENT_CREATION(UIEVENT);
return NS_NewDOMUIEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("uievents")) {
- LOG_EVENT_CREATION(UIEVENTS);
return NS_NewDOMUIEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("event")) {
- LOG_EVENT_CREATION(EVENT);
return NS_NewDOMEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("events")) {
- LOG_EVENT_CREATION(EVENTS);
return NS_NewDOMEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("htmlevents")) {
- LOG_EVENT_CREATION(HTMLEVENTS);
return NS_NewDOMEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("svgevent")) {
- LOG_EVENT_CREATION(SVGEVENT);
return NS_NewDOMEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("svgevents")) {
- LOG_EVENT_CREATION(SVGEVENTS);
return NS_NewDOMEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("svgzoomevent")) {
- LOG_EVENT_CREATION(SVGZOOMEVENT);
return NS_NewDOMSVGZoomEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("svgzoomevents")) {
- LOG_EVENT_CREATION(SVGZOOMEVENTS);
return NS_NewDOMSVGZoomEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("timeevent")) {
- LOG_EVENT_CREATION(TIMEEVENT);
return NS_NewDOMTimeEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("timeevents")) {
- LOG_EVENT_CREATION(TIMEEVENTS);
return NS_NewDOMTimeEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("xulcommandevent")) {
- LOG_EVENT_CREATION(XULCOMMANDEVENT);
return NS_NewDOMXULCommandEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("xulcommandevents")) {
- LOG_EVENT_CREATION(XULCOMMANDEVENTS);
return NS_NewDOMXULCommandEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("commandevent")) {
- LOG_EVENT_CREATION(COMMANDEVENT);
return NS_NewDOMCommandEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("commandevents")) {
- LOG_EVENT_CREATION(COMMANDEVENTS);
return NS_NewDOMCommandEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("datacontainerevent")) {
- LOG_EVENT_CREATION(DATACONTAINEREVENT);
return NS_NewDOMDataContainerEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("datacontainerevents")) {
- LOG_EVENT_CREATION(DATACONTAINEREVENTS);
return NS_NewDOMDataContainerEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("messageevent")) {
- LOG_EVENT_CREATION(MESSAGEEVENT);
RefPtr<Event> event = new MessageEvent(aOwner, aPresContext, nullptr);
return event.forget();
}
if (aEventType.LowerCaseEqualsLiteral("notifypaintevent")) {
- LOG_EVENT_CREATION(NOTIFYPAINTEVENT);
return NS_NewDOMNotifyPaintEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("simplegestureevent")) {
- LOG_EVENT_CREATION(SIMPLEGESTUREEVENT);
return NS_NewDOMSimpleGestureEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("beforeunloadevent")) {
- LOG_EVENT_CREATION(BEFOREUNLOADEVENT);
return NS_NewDOMBeforeUnloadEvent(aOwner, aPresContext, nullptr);
}
// XXXkhuey this is broken
if (aEventType.LowerCaseEqualsLiteral("pagetransition")) {
- LOG_EVENT_CREATION(PAGETRANSITION);
PageTransitionEventInit init;
RefPtr<Event> event =
PageTransitionEvent::Constructor(aOwner, EmptyString(), init);
@@ -1020,14 +980,12 @@ EventDispatcher::CreateEvent(EventTarget* aOwner,
return event.forget();
}
if (aEventType.LowerCaseEqualsLiteral("scrollareaevent")) {
- LOG_EVENT_CREATION(SCROLLAREAEVENT);
return NS_NewDOMScrollAreaEvent(aOwner, aPresContext, nullptr);
}
// XXXkhuey Chrome supports popstateevent here, even though it provides no
// initPopStateEvent method. This is nuts ... but copying it is unlikely to
// break the web.
if (aEventType.LowerCaseEqualsLiteral("popstateevent")) {
- LOG_EVENT_CREATION(POPSTATEEVENT);
AutoJSContext cx;
RootedDictionary<PopStateEventInit> init(cx);
RefPtr<Event> event =
@@ -1037,11 +995,9 @@ EventDispatcher::CreateEvent(EventTarget* aOwner,
}
if (aEventType.LowerCaseEqualsLiteral("touchevent") &&
TouchEvent::PrefEnabled(nsContentUtils::GetDocShellForEventTarget(aOwner))) {
- LOG_EVENT_CREATION(TOUCHEVENT);
return NS_NewDOMTouchEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("hashchangeevent")) {
- LOG_EVENT_CREATION(HASHCHANGEEVENT);
HashChangeEventInit init;
RefPtr<Event> event =
HashChangeEvent::Constructor(aOwner, EmptyString(), init);
@@ -1049,11 +1005,9 @@ EventDispatcher::CreateEvent(EventTarget* aOwner,
return event.forget();
}
if (aEventType.LowerCaseEqualsLiteral("customevent")) {
- LOG_EVENT_CREATION(CUSTOMEVENT);
return NS_NewDOMCustomEvent(aOwner, aPresContext, nullptr);
}
if (aEventType.LowerCaseEqualsLiteral("storageevent")) {
- LOG_EVENT_CREATION(STORAGEEVENT);
return NS_NewDOMStorageEvent(aOwner);
}
if (aEventType.LowerCaseEqualsLiteral("focusevent")) {
@@ -1062,8 +1016,6 @@ EventDispatcher::CreateEvent(EventTarget* aOwner,
return event.forget();
}
-#undef LOG_EVENT_CREATION
-
// NEW EVENT TYPES SHOULD NOT BE ADDED HERE; THEY SHOULD USE ONLY EVENT
// CONSTRUCTORS
diff --git a/dom/events/EventStateManager.cpp b/dom/events/EventStateManager.cpp
index 7bbfe21b7..e16d68c81 100644
--- a/dom/events/EventStateManager.cpp
+++ b/dom/events/EventStateManager.cpp
@@ -3240,6 +3240,12 @@ EventStateManager::PostHandleEvent(nsPresContext* aPresContext,
action = WheelPrefs::GetInstance()->ComputeActionFor(wheelEvent);
}
switch (action) {
+ case WheelPrefs::ACTION_HSCROLL: {
+ // Swap axes and fall through
+ double deltaX = wheelEvent->mDeltaX;
+ wheelEvent->mDeltaX = wheelEvent->mDeltaY;
+ wheelEvent->mDeltaY = deltaX;
+ }
case WheelPrefs::ACTION_SCROLL: {
// For scrolling of default action, we should honor the mouse wheel
// transaction.
diff --git a/dom/events/EventStateManager.h b/dom/events/EventStateManager.h
index d0461e7fa..95ce9a907 100644
--- a/dom/events/EventStateManager.h
+++ b/dom/events/EventStateManager.h
@@ -513,7 +513,8 @@ protected:
ACTION_SCROLL,
ACTION_HISTORY,
ACTION_ZOOM,
- ACTION_LAST = ACTION_ZOOM,
+ ACTION_HSCROLL,
+ ACTION_LAST = ACTION_HSCROLL,
// Following actions are used only by internal processing. So, cannot
// specified by prefs.
ACTION_SEND_TO_PLUGIN
diff --git a/dom/fetch/Fetch.cpp b/dom/fetch/Fetch.cpp
index 5c05f3602..e2c139426 100644
--- a/dom/fetch/Fetch.cpp
+++ b/dom/fetch/Fetch.cpp
@@ -38,7 +38,6 @@
#include "mozilla/dom/ScriptSettings.h"
#include "mozilla/dom/URLSearchParams.h"
#include "mozilla/dom/workers/ServiceWorkerManager.h"
-#include "mozilla/Telemetry.h"
#include "InternalRequest.h"
#include "InternalResponse.h"
@@ -237,8 +236,6 @@ FetchRequest(nsIGlobalObject* aGlobal, const RequestOrUSVString& aInput,
}
}
- Telemetry::Accumulate(Telemetry::FETCH_IS_MAINTHREAD, 1);
-
RefPtr<MainThreadFetchResolver> resolver = new MainThreadFetchResolver(p);
RefPtr<FetchDriver> fetch = new FetchDriver(r, principal, loadGroup);
fetch->SetDocument(doc);
@@ -251,8 +248,6 @@ FetchRequest(nsIGlobalObject* aGlobal, const RequestOrUSVString& aInput,
WorkerPrivate* worker = GetCurrentThreadWorkerPrivate();
MOZ_ASSERT(worker);
- Telemetry::Accumulate(Telemetry::FETCH_IS_MAINTHREAD, 0);
-
if (worker->IsServiceWorker()) {
r->SetSkipServiceWorker();
}
diff --git a/dom/fetch/FetchDriver.cpp b/dom/fetch/FetchDriver.cpp
index aac79b829..1791399b7 100644
--- a/dom/fetch/FetchDriver.cpp
+++ b/dom/fetch/FetchDriver.cpp
@@ -77,9 +77,6 @@ FetchDriver::Fetch(FetchDriverObserver* aObserver)
mObserver = aObserver;
- Telemetry::Accumulate(Telemetry::SERVICE_WORKER_REQUEST_PASSTHROUGH,
- mRequest->WasCreatedByFetchEvent());
-
// FIXME(nsm): Deal with HSTS.
MOZ_RELEASE_ASSERT(!mRequest->IsSynchronous(),
diff --git a/dom/geolocation/nsGeolocation.cpp b/dom/geolocation/nsGeolocation.cpp
index 2d84a3e11..201d4d89a 100644
--- a/dom/geolocation/nsGeolocation.cpp
+++ b/dom/geolocation/nsGeolocation.cpp
@@ -382,13 +382,6 @@ nsGeolocationRequest::GetElement(nsIDOMElement * *aRequestingElement)
NS_IMETHODIMP
nsGeolocationRequest::Cancel()
{
- if (mRequester) {
- // Record the number of denied requests for regular web content.
- // This method is only called when the user explicitly denies the request,
- // and is not called when the page is simply unloaded, or similar.
- Telemetry::Accumulate(Telemetry::GEOLOCATION_REQUEST_GRANTED, mProtocolType);
- }
-
if (mLocator->ClearPendingRequest(this)) {
return NS_OK;
}
@@ -403,9 +396,6 @@ nsGeolocationRequest::Allow(JS::HandleValue aChoices)
MOZ_ASSERT(aChoices.isUndefined());
if (mRequester) {
- // Record the number of granted requests for regular web content.
- Telemetry::Accumulate(Telemetry::GEOLOCATION_REQUEST_GRANTED, mProtocolType + 10);
-
// Record whether a location callback is fulfilled while the owner window
// is not visible.
bool isVisible = false;
@@ -415,12 +405,6 @@ nsGeolocationRequest::Allow(JS::HandleValue aChoices)
nsCOMPtr<nsIDocument> doc = window->GetDoc();
isVisible = doc && !doc->Hidden();
}
-
- if (IsWatch()) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::GEOLOCATION_WATCHPOSITION_VISIBLE, isVisible);
- } else {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::GEOLOCATION_GETCURRENTPOSITION_VISIBLE, isVisible);
- }
}
if (mLocator->ClearPendingRequest(this)) {
@@ -1110,7 +1094,6 @@ Geolocation::Update(nsIDOMGeoPosition *aSomewhere)
if (coords) {
double accuracy = -1;
coords->GetAccuracy(&accuracy);
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::GEOLOCATION_ACCURACY_EXPONENTIAL, accuracy);
}
}
@@ -1135,8 +1118,6 @@ Geolocation::NotifyError(uint16_t aErrorCode)
return NS_OK;
}
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::GEOLOCATION_ERROR, true);
-
for (uint32_t i = mPendingCallbacks.Length(); i > 0; i--) {
mPendingCallbacks[i-1]->NotifyErrorAndShutdown(aErrorCode);
//NotifyErrorAndShutdown() removes the request from the array
@@ -1214,10 +1195,6 @@ Geolocation::GetCurrentPosition(GeoPositionCallback callback,
// After this we hand over ownership of options to our nsGeolocationRequest.
- // Count the number of requests per protocol/scheme.
- Telemetry::Accumulate(Telemetry::GEOLOCATION_GETCURRENTPOSITION_SECURE_ORIGIN,
- static_cast<uint8_t>(mProtocolType));
-
RefPtr<nsGeolocationRequest> request =
new nsGeolocationRequest(this, Move(callback), Move(errorCallback),
Move(options), static_cast<uint8_t>(mProtocolType),
@@ -1292,10 +1269,6 @@ Geolocation::WatchPosition(GeoPositionCallback aCallback,
return NS_ERROR_NOT_AVAILABLE;
}
- // Count the number of requests per protocol/scheme.
- Telemetry::Accumulate(Telemetry::GEOLOCATION_WATCHPOSITION_SECURE_ORIGIN,
- static_cast<uint8_t>(mProtocolType));
-
// The watch ID:
*aRv = mLastWatchId++;
diff --git a/dom/html/HTMLFormElement.cpp b/dom/html/HTMLFormElement.cpp
index 5164391f8..0393ed3e0 100644
--- a/dom/html/HTMLFormElement.cpp
+++ b/dom/html/HTMLFormElement.cpp
@@ -38,7 +38,6 @@
// form submission
#include "HTMLFormSubmissionConstants.h"
#include "mozilla/dom/FormData.h"
-#include "mozilla/Telemetry.h"
#include "nsIFormSubmitObserver.h"
#include "nsIObserverService.h"
#include "nsICategoryManager.h"
@@ -957,13 +956,6 @@ HTMLFormElement::DoSecureToInsecureSubmitCheck(nsIURI* aActionURL,
*aCancelSubmit = (buttonPressed == 1);
uint32_t telemetryBucket =
nsISecurityUITelemetry::WARNING_CONFIRM_POST_TO_INSECURE_FROM_SECURE;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SECURITY_UI,
- telemetryBucket);
- if (!*aCancelSubmit) {
- // The user opted to continue, so note that in the next telemetry bucket.
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SECURITY_UI,
- telemetryBucket + 1);
- }
return NS_OK;
}
diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp
index e9086933b..0b879bb9b 100644
--- a/dom/html/HTMLInputElement.cpp
+++ b/dom/html/HTMLInputElement.cpp
@@ -24,7 +24,6 @@
#include "nsIPhonetic.h"
#include "HTMLFormSubmissionConstants.h"
-#include "mozilla/Telemetry.h"
#include "nsIControllers.h"
#include "nsIStringBundle.h"
#include "nsFocusManager.h"
@@ -1275,10 +1274,6 @@ HTMLInputElement::BeforeSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
container->RadioRequiredWillChange(name, !!aValue);
}
}
-
- if (aName == nsGkAtoms::webkitdirectory) {
- Telemetry::Accumulate(Telemetry::WEBKIT_DIRECTORY_USED, true);
- }
}
return nsGenericHTMLFormElementWithState::BeforeSetAttr(aNameSpaceID, aName,
@@ -4989,10 +4984,6 @@ HTMLInputElement::BindToTree(nsIDocument* aDocument, nsIContent* aParent,
true);
dispatcher->PostDOMEvent();
}
-
-#ifdef EARLY_BETA_OR_EARLIER
- Telemetry::Accumulate(Telemetry::PWMGR_PASSWORD_INPUT_IN_FORM, !!mForm);
-#endif
}
return rv;
@@ -8863,7 +8854,6 @@ HTMLInputElement::UpdateEntries(const nsTArray<OwningFileOrDirectory>& aFilesOrD
void
HTMLInputElement::GetWebkitEntries(nsTArray<RefPtr<FileSystemEntry>>& aSequence)
{
- Telemetry::Accumulate(Telemetry::BLINK_FILESYSTEM_USED, true);
aSequence.AppendElements(mEntries);
}
diff --git a/dom/html/HTMLMediaElement.cpp b/dom/html/HTMLMediaElement.cpp
index 3954e6208..6171e1766 100644
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -92,7 +92,6 @@
#include "mozilla/dom/VideoTrackList.h"
#include "mozilla/dom/TextTrack.h"
#include "nsIContentPolicy.h"
-#include "mozilla/Telemetry.h"
#include "DecoderDoctorDiagnostics.h"
#include "DecoderTraits.h"
#include "MediaContentType.h"
@@ -1902,7 +1901,6 @@ void
HTMLMediaElement::FastSeek(double aTime, ErrorResult& aRv)
{
LOG(LogLevel::Debug, ("Reporting telemetry VIDEO_FASTSEEK_USED"));
- Telemetry::Accumulate(Telemetry::VIDEO_FASTSEEK_USED, 1);
RefPtr<Promise> tobeDropped = Seek(aTime, SeekTarget::PrevSyncPoint, aRv);
}
@@ -3693,7 +3691,6 @@ HTMLMediaElement::ReportEMETelemetry()
// Report telemetry for EME videos when a page is unloaded.
NS_ASSERTION(NS_IsMainThread(), "Should be on main thread.");
if (mIsEncrypted && Preferences::GetBool("media.eme.enabled")) {
- Telemetry::Accumulate(Telemetry::VIDEO_EME_PLAY_SUCCESS, mLoadedDataFired);
LOG(LogLevel::Debug, ("%p VIDEO_EME_PLAY_SUCCESS = %s",
this, mLoadedDataFired ? "true" : "false"));
}
@@ -3745,7 +3742,6 @@ HTMLMediaElement::ReportTelemetry()
}
}
- Telemetry::Accumulate(Telemetry::VIDEO_UNLOAD_STATE, state);
LOG(LogLevel::Debug, ("%p VIDEO_UNLOAD_STATE = %d", this, state));
FrameStatisticsData data;
@@ -3761,8 +3757,6 @@ HTMLMediaElement::ReportTelemetry()
uint32_t percentage = 100 * data.mDroppedFrames / data.mParsedFrames;
LOG(LogLevel::Debug,
("Reporting telemetry DROPPED_FRAMES_IN_VIDEO_PLAYBACK"));
- Telemetry::Accumulate(Telemetry::VIDEO_DROPPED_FRAMES_PROPORTION,
- percentage);
}
}
}
@@ -3774,10 +3768,8 @@ HTMLMediaElement::ReportTelemetry()
double hiddenPlayTime = mHiddenPlayTime.Total();
double videoDecodeSuspendTime = mVideoDecodeSuspendTime.Total();
- Telemetry::Accumulate(Telemetry::VIDEO_PLAY_TIME_MS, SECONDS_TO_MS(playTime));
LOG(LogLevel::Debug, ("%p VIDEO_PLAY_TIME_MS = %f", this, playTime));
- Telemetry::Accumulate(Telemetry::VIDEO_HIDDEN_PLAY_TIME_MS, SECONDS_TO_MS(hiddenPlayTime));
LOG(LogLevel::Debug, ("%p VIDEO_HIDDEN_PLAY_TIME_MS = %f", this, hiddenPlayTime));
if (playTime > 0.0) {
@@ -3804,24 +3796,11 @@ HTMLMediaElement::ReportTelemetry()
key.AppendASCII(resolution);
uint32_t hiddenPercentage = uint32_t(hiddenPlayTime / playTime * 100.0 + 0.5);
- Telemetry::Accumulate(Telemetry::VIDEO_HIDDEN_PLAY_TIME_PERCENTAGE,
- key,
- hiddenPercentage);
- // Also accumulate all percentages in an "All" key.
- Telemetry::Accumulate(Telemetry::VIDEO_HIDDEN_PLAY_TIME_PERCENTAGE,
- NS_LITERAL_CSTRING("All"),
- hiddenPercentage);
LOG(LogLevel::Debug, ("%p VIDEO_HIDDEN_PLAY_TIME_PERCENTAGE = %u, keys: '%s' and 'All'",
this, hiddenPercentage, key.get()));
uint32_t videoDecodeSuspendPercentage =
uint32_t(videoDecodeSuspendTime / playTime * 100.0 + 0.5);
- Telemetry::Accumulate(Telemetry::VIDEO_INFERRED_DECODE_SUSPEND_PERCENTAGE,
- key,
- videoDecodeSuspendPercentage);
- Telemetry::Accumulate(Telemetry::VIDEO_INFERRED_DECODE_SUSPEND_PERCENTAGE,
- NS_LITERAL_CSTRING("All"),
- videoDecodeSuspendPercentage);
LOG(LogLevel::Debug, ("%p VIDEO_INFERRED_DECODE_SUSPEND_PERCENTAGE = %u, keys: '%s' and 'All'",
this, videoDecodeSuspendPercentage, key.get()));
@@ -3832,24 +3811,12 @@ HTMLMediaElement::ReportTelemetry()
/ 1000.0
+ 0.5,
UINT32_MAX));
- Telemetry::Accumulate(Telemetry::VIDEO_INTER_KEYFRAME_AVERAGE_MS,
- key,
- average_ms);
- Telemetry::Accumulate(Telemetry::VIDEO_INTER_KEYFRAME_AVERAGE_MS,
- NS_LITERAL_CSTRING("All"),
- average_ms);
LOG(LogLevel::Debug, ("%p VIDEO_INTER_KEYFRAME_AVERAGE_MS = %u, keys: '%s' and 'All'",
this, average_ms, key.get()));
uint32_t max_ms =
uint32_t(std::min<uint64_t>((data.mInterKeyFrameMax_us + 500) / 1000,
UINT32_MAX));
- Telemetry::Accumulate(Telemetry::VIDEO_INTER_KEYFRAME_MAX_MS,
- key,
- max_ms);
- Telemetry::Accumulate(Telemetry::VIDEO_INTER_KEYFRAME_MAX_MS,
- NS_LITERAL_CSTRING("All"),
- max_ms);
LOG(LogLevel::Debug, ("%p VIDEO_INTER_KEYFRAME_MAX_MS = %u, keys: '%s' and 'All'",
this, max_ms, key.get()));
} else {
@@ -3858,12 +3825,6 @@ HTMLMediaElement::ReportTelemetry()
// decode-suspend delay (showing recovery would be difficult).
uint32_t suspendDelay_ms = MediaPrefs::MDSMSuspendBackgroundVideoDelay();
if (uint32_t(playTime * 1000.0) > suspendDelay_ms) {
- Telemetry::Accumulate(Telemetry::VIDEO_INTER_KEYFRAME_MAX_MS,
- key,
- 0);
- Telemetry::Accumulate(Telemetry::VIDEO_INTER_KEYFRAME_MAX_MS,
- NS_LITERAL_CSTRING("All"),
- 0);
LOG(LogLevel::Debug, ("%p VIDEO_INTER_KEYFRAME_MAX_MS = 0 (only 1 keyframe), keys: '%s' and 'All'",
this, key.get()));
}
@@ -6860,97 +6821,6 @@ HTMLMediaElement::MarkAsContentSource(CallerAPI aAPI)
{
const bool isVisible = mVisibilityState != Visibility::APPROXIMATELY_NONVISIBLE;
- if (isVisible) {
- // 0 = ALL_VISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 0);
- } else {
- // 1 = ALL_INVISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 1);
-
- if (IsInUncomposedDoc()) {
- // 0 = ALL_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 0);
- } else {
- // 1 = ALL_NOT_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 1);
- }
- }
-
- switch (aAPI) {
- case CallerAPI::DRAW_IMAGE: {
- if (isVisible) {
- // 2 = drawImage_VISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 2);
- } else {
- // 3 = drawImage_INVISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 3);
-
- if (IsInUncomposedDoc()) {
- // 2 = drawImage_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 2);
- } else {
- // 3 = drawImage_NOT_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 3);
- }
- }
- break;
- }
- case CallerAPI::CREATE_PATTERN: {
- if (isVisible) {
- // 4 = createPattern_VISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 4);
- } else {
- // 5 = createPattern_INVISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 5);
-
- if (IsInUncomposedDoc()) {
- // 4 = createPattern_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 4);
- } else {
- // 5 = createPattern_NOT_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 5);
- }
- }
- break;
- }
- case CallerAPI::CREATE_IMAGEBITMAP: {
- if (isVisible) {
- // 6 = createImageBitmap_VISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 6);
- } else {
- // 7 = createImageBitmap_INVISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 7);
-
- if (IsInUncomposedDoc()) {
- // 6 = createImageBitmap_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 6);
- } else {
- // 7 = createImageBitmap_NOT_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 7);
- }
- }
- break;
- }
- case CallerAPI::CAPTURE_STREAM: {
- if (isVisible) {
- // 8 = captureStream_VISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 8);
- } else {
- // 9 = captureStream_INVISIBLE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE, 9);
-
- if (IsInUncomposedDoc()) {
- // 8 = captureStream_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 8);
- } else {
- // 9 = captureStream_NOT_IN_TREE
- Telemetry::Accumulate(Telemetry::VIDEO_AS_CONTENT_SOURCE_IN_TREE_OR_NOT, 9);
- }
- }
- break;
- }
- }
-
LOG(LogLevel::Debug,
("%p Log VIDEO_AS_CONTENT_SOURCE: visibility = %u, API: '%d' and 'All'",
this, isVisible, aAPI));
diff --git a/dom/html/ImageDocument.cpp b/dom/html/ImageDocument.cpp
index 200bb5d46..f83a804be 100644
--- a/dom/html/ImageDocument.cpp
+++ b/dom/html/ImageDocument.cpp
@@ -40,12 +40,14 @@
#include "nsThreadUtils.h"
#include "nsIScrollableFrame.h"
#include "nsContentUtils.h"
+#include "nsCSSParser.h" // for CSS colors on the background
#include "mozilla/dom/Element.h"
#include "mozilla/Preferences.h"
#include <algorithm>
#define AUTOMATIC_IMAGE_RESIZING_PREF "browser.enable_automatic_image_resizing"
#define CLICK_IMAGE_RESIZING_PREF "browser.enable_click_image_resizing"
+#define STANDALONE_IMAGE_BACKGROUND_COLOR_PREF "browser.display.standalone_images.background_color"
//XXX A hack needed for Firefox's site specific zoom.
#define SITE_SPECIFIC_ZOOM "browser.zoom.siteSpecific"
@@ -170,6 +172,8 @@ ImageDocument::Init()
mClickResizingEnabled = Preferences::GetBool(CLICK_IMAGE_RESIZING_PREF);
mShouldResize = mResizeImageByDefault;
mFirstResize = true;
+
+ mBackgroundColor = Preferences::GetString(STANDALONE_IMAGE_BACKGROUND_COLOR_PREF);
return NS_OK;
}
@@ -682,9 +686,22 @@ ImageDocument::CreateSyntheticDocument()
mImageContent->SetAttr(kNameSpaceID_None, nsGkAtoms::src, srcString, false);
mImageContent->SetAttr(kNameSpaceID_None, nsGkAtoms::alt, srcString, false);
+ // Implement mechanism for custom background color from pref.
+ if (!mBackgroundColor.IsEmpty()) {
+ nsCSSValue color;
+ nsCSSParser parser;
+ if (parser.ParseColorString(mBackgroundColor, nullptr, 0, color)) {
+ nsAutoString styleAttr(NS_LITERAL_STRING("background-color: "));
+ styleAttr.Append(mBackgroundColor);
+ body->SetAttr(kNameSpaceID_None, nsGkAtoms::style, styleAttr, false);
+ }
+ }
+
body->AppendChildTo(mImageContent, false);
imageLoader->SetLoadingEnabled(true);
+ UpdateTitleAndCharset();
+
return NS_OK;
}
diff --git a/dom/html/ImageDocument.h b/dom/html/ImageDocument.h
index fdf2a00a8..945317314 100644
--- a/dom/html/ImageDocument.h
+++ b/dom/html/ImageDocument.h
@@ -112,6 +112,9 @@ protected:
float mVisibleHeight;
int32_t mImageWidth;
int32_t mImageHeight;
+
+ // Holds the custom background color for stand-alone images
+ nsAutoString mBackgroundColor;
bool mResizeImageByDefault;
bool mClickResizingEnabled;
diff --git a/dom/html/TextTrackManager.cpp b/dom/html/TextTrackManager.cpp
index 8110dab29..4266575f7 100644
--- a/dom/html/TextTrackManager.cpp
+++ b/dom/html/TextTrackManager.cpp
@@ -12,7 +12,6 @@
#include "mozilla/dom/TextTrackCue.h"
#include "mozilla/dom/Event.h"
#include "mozilla/ClearOnShutdown.h"
-#include "mozilla/Telemetry.h"
#include "nsComponentManagerUtils.h"
#include "nsVariant.h"
#include "nsVideoFrame.h"
@@ -824,24 +823,13 @@ TextTrackManager::NotifyReset()
void
TextTrackManager::ReportTelemetryForTrack(TextTrack* aTextTrack) const
{
- MOZ_ASSERT(NS_IsMainThread());
- MOZ_ASSERT(aTextTrack);
- MOZ_ASSERT(mTextTracks->Length() > 0);
-
- TextTrackKind kind = aTextTrack->Kind();
- Telemetry::Accumulate(Telemetry::WEBVTT_TRACK_KINDS, uint32_t(kind));
+/* STUB */
}
void
TextTrackManager::ReportTelemetryForCue()
{
- MOZ_ASSERT(NS_IsMainThread());
- MOZ_ASSERT(!mNewCues->IsEmpty() || !mLastActiveCues->IsEmpty());
-
- if (!mCueTelemetryReported) {
- Telemetry::Accumulate(Telemetry::WEBVTT_USED_VTT_CUES, 1);
- mCueTelemetryReported = true;
- }
+/* STUB */
}
} // namespace dom
diff --git a/dom/html/nsTextEditorState.cpp b/dom/html/nsTextEditorState.cpp
index 187afb66d..0b4cb1920 100644
--- a/dom/html/nsTextEditorState.cpp
+++ b/dom/html/nsTextEditorState.cpp
@@ -47,7 +47,6 @@
#include "mozilla/dom/HTMLInputElement.h"
#include "nsNumberControlFrame.h"
#include "nsFrameSelection.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/layers/ScrollInputMethods.h"
using namespace mozilla;
@@ -585,9 +584,6 @@ nsTextInputSelectionImpl::CompleteScroll(bool aForward)
if (!mScrollFrame)
return NS_ERROR_NOT_INITIALIZED;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadCompleteScroll);
-
mScrollFrame->ScrollBy(nsIntPoint(0, aForward ? 1 : -1),
nsIScrollableFrame::WHOLE,
nsIScrollableFrame::INSTANT);
@@ -640,9 +636,6 @@ nsTextInputSelectionImpl::ScrollPage(bool aForward)
if (!mScrollFrame)
return NS_ERROR_NOT_INITIALIZED;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollPage);
-
mScrollFrame->ScrollBy(nsIntPoint(0, aForward ? 1 : -1),
nsIScrollableFrame::PAGES,
nsIScrollableFrame::SMOOTH);
@@ -655,9 +648,6 @@ nsTextInputSelectionImpl::ScrollLine(bool aForward)
if (!mScrollFrame)
return NS_ERROR_NOT_INITIALIZED;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollLine);
-
mScrollFrame->ScrollBy(nsIntPoint(0, aForward ? 1 : -1),
nsIScrollableFrame::LINES,
nsIScrollableFrame::SMOOTH);
@@ -670,9 +660,6 @@ nsTextInputSelectionImpl::ScrollCharacter(bool aRight)
if (!mScrollFrame)
return NS_ERROR_NOT_INITIALIZED;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollCharacter);
-
mScrollFrame->ScrollBy(nsIntPoint(aRight ? 1 : -1, 0),
nsIScrollableFrame::LINES,
nsIScrollableFrame::SMOOTH);
diff --git a/dom/ipc/ContentParent.cpp b/dom/ipc/ContentParent.cpp
index 0a07147bf..5c6aadb77 100644
--- a/dom/ipc/ContentParent.cpp
+++ b/dom/ipc/ContentParent.cpp
@@ -1718,9 +1718,6 @@ ContentParent::ActorDestroy(ActorDestroyReason why)
props->SetPropertyAsUint64(NS_LITERAL_STRING("childID"), mChildID);
if (AbnormalShutdown == why) {
- Telemetry::Accumulate(Telemetry::SUBPROCESS_ABNORMAL_ABORT,
- NS_LITERAL_CSTRING("content"), 1);
-
props->SetPropertyAsBool(NS_LITERAL_STRING("abnormal"), true);
}
nsAutoString cpId;
@@ -4778,7 +4775,7 @@ bool
ContentParent::RecvAccumulateChildHistogram(
InfallibleTArray<Accumulation>&& aAccumulations)
{
- Telemetry::AccumulateChild(GeckoProcessType_Content, aAccumulations);
+ /* STUB */
return true;
}
@@ -4786,6 +4783,6 @@ bool
ContentParent::RecvAccumulateChildKeyedHistogram(
InfallibleTArray<KeyedAccumulation>&& aAccumulations)
{
- Telemetry::AccumulateChildKeyed(GeckoProcessType_Content, aAccumulations);
+ /* STUB */
return true;
}
diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp
index 705799c54..244fa9969 100644
--- a/dom/ipc/TabChild.cpp
+++ b/dom/ipc/TabChild.cpp
@@ -2395,7 +2395,6 @@ TabChild::RecvSetDocShellIsActive(const bool& aIsActive,
root->SchedulePaint();
}
- Telemetry::AutoTimer<Telemetry::TABCHILD_PAINT_TIME> timer;
// If we need to repaint, let's do that right away. No sense waiting until
// we get back to the event loop again. We suppress the display port so that
// we only paint what's visible. This ensures that the tab we're switching
diff --git a/dom/locales/en-US/chrome/dom/dom.properties b/dom/locales/en-US/chrome/dom/dom.properties
index ec0356c04..0472979d7 100644
--- a/dom/locales/en-US/chrome/dom/dom.properties
+++ b/dom/locales/en-US/chrome/dom/dom.properties
@@ -195,8 +195,6 @@ IgnoringWillChangeOverBudgetWarning=Will-change memory consumption is too high.
HittingMaxWorkersPerDomain2=A Worker could not be started immediately because other documents in the same origin are already using the maximum number of workers. The Worker is now queued and will be started after some of the other workers have completed.
# LOCALIZATION NOTE: Do not translate "setVelocity", "PannerNode", "AudioListener", "speedOfSound" and "dopplerFactor"
PannerNodeDopplerWarning=Use of setVelocity on the PannerNode and AudioListener, and speedOfSound and dopplerFactor on the AudioListener are deprecated and those members will be removed. For more help https://developer.mozilla.org/en-US/docs/Web/API/AudioListener#Deprecated_features
-# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
-AppCacheWarning=The Application Cache API (AppCache) is deprecated and will be removed at a future date. Please consider using ServiceWorker for offline support.
# LOCALIZATION NOTE: Do not translate "Worker".
EmptyWorkerSourceWarning=Attempting to create a Worker from an empty source. This is probably unintentional.
WebrtcDeprecatedPrefixWarning=WebRTC interfaces with the “moz” prefix (mozRTCPeerConnection, mozRTCSessionDescription, mozRTCIceCandidate) have been deprecated.
diff --git a/dom/locales/en-US/chrome/security/security.properties b/dom/locales/en-US/chrome/security/security.properties
index c0b80996c..8efdb0a6d 100644
--- a/dom/locales/en-US/chrome/security/security.properties
+++ b/dom/locales/en-US/chrome/security/security.properties
@@ -8,6 +8,7 @@ BlockMixedActiveContent = Blocked loading mixed active content “%1$S”
CORSDisabled=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS disabled).
CORSRequestNotHttp=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request not http).
CORSMissingAllowOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
+CORSMultipleAllowOriginNotAllowed=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Multiple CORS headers ‘Access-Control-Allow-Origin’ not allowed).
CORSAllowOriginNotMatchingOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Access-Control-Allow-Origin’ does not match ‘%2$S’).
CORSNotSupportingCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at ‘%1$S’. (Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’).
CORSMethodNotFound=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Did not find method in CORS header ‘Access-Control-Allow-Methods’).
diff --git a/dom/media/AudioStream.cpp b/dom/media/AudioStream.cpp
index 54cf7b965..896dee407 100644
--- a/dom/media/AudioStream.cpp
+++ b/dom/media/AudioStream.cpp
@@ -14,7 +14,6 @@
#include "mozilla/Mutex.h"
#include "mozilla/Sprintf.h"
#include <algorithm>
-#include "mozilla/Telemetry.h"
#include "CubebUtils.h"
#include "nsPrintfCString.h"
#include "gfxPrefs.h"
@@ -378,8 +377,6 @@ AudioStream::OpenCubeb(cubeb* aContext, cubeb_stream_params& aParams,
TimeDuration timeDelta = TimeStamp::Now() - aStartTime;
LOG("creation time %sfirst: %u ms", aIsFirst ? "" : "not ",
(uint32_t) timeDelta.ToMilliseconds());
- Telemetry::Accumulate(aIsFirst ? Telemetry::AUDIOSTREAM_FIRST_OPEN_MS :
- Telemetry::AUDIOSTREAM_LATER_OPEN_MS, timeDelta.ToMilliseconds());
return NS_OK;
}
diff --git a/dom/media/Benchmark.cpp b/dom/media/Benchmark.cpp
index fdbedeca5..7394f8036 100644
--- a/dom/media/Benchmark.cpp
+++ b/dom/media/Benchmark.cpp
@@ -11,7 +11,6 @@
#include "PDMFactory.h"
#include "WebMDemuxer.h"
#include "mozilla/Preferences.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/dom/ContentChild.h"
#ifndef MOZ_WIDGET_ANDROID
@@ -68,7 +67,6 @@ VP9Benchmark::IsVP9DecodeFast()
Preferences::SetUint(sBenchmarkFpsPref, aDecodeFps);
Preferences::SetUint(sBenchmarkFpsVersionCheck, sBenchmarkVersionID);
}
- Telemetry::Accumulate(Telemetry::ID::VIDEO_VP9_BENCHMARK_FPS, aDecodeFps);
},
[]() { });
}
diff --git a/dom/media/CubebUtils.cpp b/dom/media/CubebUtils.cpp
index fe94264ee..93792e63b 100644
--- a/dom/media/CubebUtils.cpp
+++ b/dom/media/CubebUtils.cpp
@@ -248,14 +248,9 @@ void ReportCubebBackendUsed()
bool foundBackend = false;
for (uint32_t i = 0; i < ArrayLength(AUDIOSTREAM_BACKEND_ID_STR); i++) {
if (!strcmp(cubeb_get_backend_id(sCubebContext), AUDIOSTREAM_BACKEND_ID_STR[i])) {
- Telemetry::Accumulate(Telemetry::AUDIOSTREAM_BACKEND_USED, i);
foundBackend = true;
}
}
- if (!foundBackend) {
- Telemetry::Accumulate(Telemetry::AUDIOSTREAM_BACKEND_USED,
- CUBEB_BACKEND_UNKNOWN);
- }
}
void ReportCubebStreamInitFailure(bool aIsFirst)
@@ -267,9 +262,6 @@ void ReportCubebStreamInitFailure(bool aIsFirst)
// failures to open multiple streams in a process over time.
return;
}
- Telemetry::Accumulate(Telemetry::AUDIOSTREAM_BACKEND_USED,
- aIsFirst ? CUBEB_BACKEND_INIT_FAILURE_FIRST
- : CUBEB_BACKEND_INIT_FAILURE_OTHER);
}
uint32_t GetCubebPlaybackLatencyInMilliseconds()
diff --git a/dom/media/DecoderTraits.cpp b/dom/media/DecoderTraits.cpp
index ddd35fe0d..56ebd9ce9 100644
--- a/dom/media/DecoderTraits.cpp
+++ b/dom/media/DecoderTraits.cpp
@@ -288,7 +288,7 @@ CanHandleMediaType(const MediaContentType& aType,
MOZ_ASSERT(NS_IsMainThread());
if (IsHttpLiveStreamingType(aType.GetMIMEType())) {
- Telemetry::Accumulate(Telemetry::MEDIA_HLS_CANPLAY_REQUESTED, true);
+ /* Telemetry STUB */
}
if (aType.HaveCodecs()) {
@@ -433,11 +433,6 @@ InstantiateDecoder(const nsACString& aType,
}
#endif
- if (IsHttpLiveStreamingType(aType)) {
- // We don't have an HLS decoder.
- Telemetry::Accumulate(Telemetry::MEDIA_HLS_DECODER_SUCCESS, false);
- }
-
return nullptr;
}
diff --git a/dom/media/GraphDriver.cpp b/dom/media/GraphDriver.cpp
index cae15eb8c..47762c56e 100644
--- a/dom/media/GraphDriver.cpp
+++ b/dom/media/GraphDriver.cpp
@@ -200,7 +200,7 @@ public:
STREAM_LOG(LogLevel::Debug, ("Starting system thread"));
profiler_register_thread("MediaStreamGraph", &aLocal);
LIFECYCLE_LOG("Starting a new system driver for graph %p\n",
- mDriver->mGraphImpl);
+ mDriver->mGraphImpl.get());
RefPtr<GraphDriver> previousDriver;
{
@@ -236,7 +236,7 @@ private:
void
ThreadedDriver::Start()
{
- LIFECYCLE_LOG("Starting thread for a SystemClockDriver %p\n", mGraphImpl);
+ LIFECYCLE_LOG("Starting thread for a SystemClockDriver %p\n", mGraphImpl.get());
Unused << NS_WARN_IF(mThread);
if (!mThread) { // Ensure we haven't already started it
nsCOMPtr<nsIRunnable> event = new MediaStreamGraphInitThreadRunnable(this);
@@ -761,7 +761,7 @@ AudioCallbackDriver::Destroy()
void
AudioCallbackDriver::Resume()
{
- STREAM_LOG(LogLevel::Debug, ("Resuming audio threads for MediaStreamGraph %p", mGraphImpl));
+ STREAM_LOG(LogLevel::Debug, ("Resuming audio threads for MediaStreamGraph %p", mGraphImpl.get()));
if (cubeb_stream_start(mAudioStream) != CUBEB_OK) {
NS_WARNING("Could not start cubeb stream for MSG.");
}
@@ -830,7 +830,9 @@ AudioCallbackDriver::Revive()
mGraphImpl->SetCurrentDriver(NextDriver());
NextDriver()->Start();
} else {
- STREAM_LOG(LogLevel::Debug, ("Starting audio threads for MediaStreamGraph %p from a new thread.", mGraphImpl));
+ STREAM_LOG(LogLevel::Debug,
+ ("Starting audio threads for MediaStreamGraph %p from a new thread.",
+ mGraphImpl.get()));
RefPtr<AsyncCubebTask> initEvent =
new AsyncCubebTask(this, AsyncCubebOperation::INIT);
initEvent->Dispatch();
diff --git a/dom/media/GraphDriver.h b/dom/media/GraphDriver.h
index 411e175d3..bb4f2689b 100644
--- a/dom/media/GraphDriver.h
+++ b/dom/media/GraphDriver.h
@@ -210,10 +210,8 @@ protected:
// Time of the end of this graph iteration. This must be accessed while having
// the monitor.
GraphTime mIterationEnd;
- // The MediaStreamGraphImpl that owns this driver. This has a lifetime longer
- // than the driver, and will never be null. Hence, it can be accesed without
- // monitor.
- MediaStreamGraphImpl* mGraphImpl;
+ // The MediaStreamGraphImpl associated with this driver.
+ const RefPtr<MediaStreamGraphImpl> mGraphImpl;
// This enum specifies the wait state of the driver.
enum WaitState {
diff --git a/dom/media/MediaDecoder.cpp b/dom/media/MediaDecoder.cpp
index 9334d1bcb..d027818de 100644
--- a/dom/media/MediaDecoder.cpp
+++ b/dom/media/MediaDecoder.cpp
@@ -877,7 +877,6 @@ MediaDecoder::EnsureTelemetryReported()
}
for (const nsCString& codec : codecs) {
DECODER_LOG("Telemetry MEDIA_CODEC_USED= '%s'", codec.get());
- Telemetry::Accumulate(Telemetry::ID::MEDIA_CODEC_USED, codec);
}
mTelemetryReported = true;
diff --git a/dom/media/MediaDecoderStateMachine.cpp b/dom/media/MediaDecoderStateMachine.cpp
index c586139ad..5bc1d95ef 100644
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1178,40 +1178,7 @@ ReportRecoveryTelemetry(const TimeStamp& aRecoveryStart,
const MediaInfo& aMediaInfo,
bool aIsHardwareAccelerated)
{
- MOZ_ASSERT(NS_IsMainThread());
- if (!aMediaInfo.HasVideo()) {
- return;
- }
-
- // Keyed by audio+video or video alone, hardware acceleration,
- // and by a resolution range.
- nsCString key(aMediaInfo.HasAudio() ? "AV" : "V");
- key.AppendASCII(aIsHardwareAccelerated ? "(hw)," : ",");
- static const struct { int32_t mH; const char* mRes; } sResolutions[] = {
- { 240, "0-240" },
- { 480, "241-480" },
- { 720, "481-720" },
- { 1080, "721-1080" },
- { 2160, "1081-2160" }
- };
- const char* resolution = "2161+";
- int32_t height = aMediaInfo.mVideo.mImage.height;
- for (const auto& res : sResolutions) {
- if (height <= res.mH) {
- resolution = res.mRes;
- break;
- }
- }
- key.AppendASCII(resolution);
-
- TimeDuration duration = TimeStamp::Now() - aRecoveryStart;
- double duration_ms = duration.ToMilliseconds();
- Telemetry::Accumulate(Telemetry::VIDEO_SUSPEND_RECOVERY_TIME_MS,
- key,
- uint32_t(duration_ms + 0.5));
- Telemetry::Accumulate(Telemetry::VIDEO_SUSPEND_RECOVERY_TIME_MS,
- NS_LITERAL_CSTRING("All"),
- uint32_t(duration_ms + 0.5));
+/* STUB */
}
void
diff --git a/dom/media/MediaManager.cpp b/dom/media/MediaManager.cpp
index ba6b4cd47..baaf45416 100644
--- a/dom/media/MediaManager.cpp
+++ b/dom/media/MediaManager.cpp
@@ -32,7 +32,6 @@
#include "nsAppDirectoryServiceDefs.h"
#include "nsIInputStream.h"
#include "nsILineInputStream.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Types.h"
#include "mozilla/PeerIdentity.h"
#include "mozilla/dom/ContentChild.h"
@@ -2058,28 +2057,6 @@ MediaManager::GetUserMedia(nsPIDOMWindowInner* aWindow,
host.LowerCaseEqualsLiteral("127.0.0.1") ||
host.LowerCaseEqualsLiteral("::1"));
- // Record telemetry about whether the source of the call was secure, i.e.,
- // privileged or HTTPS. We may handle other cases
-if (privileged) {
- Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
- (uint32_t) GetUserMediaSecurityState::Privileged);
- } else if (isHTTPS) {
- Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
- (uint32_t) GetUserMediaSecurityState::HTTPS);
- } else if (isFile) {
- Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
- (uint32_t) GetUserMediaSecurityState::File);
- } else if (isApp) {
- Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
- (uint32_t) GetUserMediaSecurityState::App);
- } else if (isLocalhost) {
- Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
- (uint32_t) GetUserMediaSecurityState::Localhost);
- } else {
- Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_SECURE_ORIGIN,
- (uint32_t) GetUserMediaSecurityState::Other);
- }
-
nsCString origin;
rv = nsPrincipal::GetOriginForURI(docURI, origin);
if (NS_WARN_IF(NS_FAILED(rv))) {
@@ -2098,8 +2075,6 @@ if (privileged) {
videoType = StringToEnum(dom::MediaSourceEnumValues::strings,
vc.mMediaSource,
MediaSourceEnum::Other);
- Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_TYPE,
- (uint32_t) videoType);
switch (videoType) {
case MediaSourceEnum::Camera:
break;
@@ -2182,8 +2157,6 @@ if (privileged) {
ac.mMediaSource.AssignASCII(EnumToASCII(dom::MediaSourceEnumValues::strings,
audioType));
}
- Telemetry::Accumulate(Telemetry::WEBRTC_GET_USER_MEDIA_TYPE,
- (uint32_t) audioType);
switch (audioType) {
case MediaSourceEnum::Microphone:
diff --git a/dom/media/MediaStreamGraph.cpp b/dom/media/MediaStreamGraph.cpp
index e2934cbb2..1b9e4f674 100644
--- a/dom/media/MediaStreamGraph.cpp
+++ b/dom/media/MediaStreamGraph.cpp
@@ -3371,7 +3371,8 @@ MediaStreamGraphImpl::Destroy()
// First unregister from memory reporting.
UnregisterWeakMemoryReporter(this);
- // Clear the self reference which will destroy this instance.
+ // Clear the self reference which will destroy this instance if all
+ // associated GraphDrivers are destroyed.
mSelfRef = nullptr;
}
diff --git a/dom/media/VideoUtils.cpp b/dom/media/VideoUtils.cpp
index 5c00e54bc..b1a202c03 100644
--- a/dom/media/VideoUtils.cpp
+++ b/dom/media/VideoUtils.cpp
@@ -6,7 +6,6 @@
#include "mozilla/Base64.h"
#include "mozilla/TaskQueue.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Function.h"
#include "MediaContentType.h"
@@ -248,24 +247,6 @@ ExtractH264CodecDetails(const nsAString& aCodec,
aLevel *= 10;
}
- // Capture the constraint_set flag value for the purpose of Telemetry.
- // We don't NS_ENSURE_SUCCESS here because ExtractH264CodecDetails doesn't
- // care about this, but we make sure constraints is above 4 (constraint_set5_flag)
- // otherwise collect 0 for unknown.
- uint8_t constraints = PromiseFlatString(Substring(aCodec, 7, 2)).ToInteger(&rv, 16);
- Telemetry::Accumulate(Telemetry::VIDEO_CANPLAYTYPE_H264_CONSTRAINT_SET_FLAG,
- constraints >= 4 ? constraints : 0);
-
- // 244 is the highest meaningful profile value (High 4:4:4 Intra Profile)
- // that can be represented as single hex byte, otherwise collect 0 for unknown.
- Telemetry::Accumulate(Telemetry::VIDEO_CANPLAYTYPE_H264_PROFILE,
- aProfile <= 244 ? aProfile : 0);
-
- // Make sure aLevel represents a value between levels 1 and 5.2,
- // otherwise collect 0 for unknown.
- Telemetry::Accumulate(Telemetry::VIDEO_CANPLAYTYPE_H264_LEVEL,
- (aLevel >= 10 && aLevel <= 52) ? aLevel : 0);
-
return true;
}
diff --git a/dom/media/eme/DetailedPromise.cpp b/dom/media/eme/DetailedPromise.cpp
index 5893bea2e..d443e3336 100644
--- a/dom/media/eme/DetailedPromise.cpp
+++ b/dom/media/eme/DetailedPromise.cpp
@@ -96,9 +96,6 @@ DetailedPromise::MaybeReportTelemetry(Status aStatus)
uint32_t latency = (TimeStamp::Now() - mStartTime).ToMilliseconds();
EME_LOG("%s %s latency %ums reported via telemetry", mName.get(),
((aStatus == Succeeded) ? "succcess" : "failure"), latency);
- Telemetry::ID tid = (aStatus == Succeeded) ? mSuccessLatencyProbe.Value()
- : mFailureLatencyProbe.Value();
- Telemetry::Accumulate(tid, latency);
}
} // namespace dom
diff --git a/dom/media/eme/MediaKeySession.cpp b/dom/media/eme/MediaKeySession.cpp
index d5eff3f77..9c002b5ba 100644
--- a/dom/media/eme/MediaKeySession.cpp
+++ b/dom/media/eme/MediaKeySession.cpp
@@ -315,9 +315,6 @@ MediaKeySession::GenerateRequest(const nsAString& aInitDataType,
// Note: Remaining steps of generateRequest method continue in CDM.
- Telemetry::Accumulate(Telemetry::VIDEO_CDM_GENERATE_REQUEST_CALLED,
- ToCDMTypeTelemetryEnum(mKeySystem));
-
// Convert initData to base64 for easier logging.
// Note: CreateSession() Move()s the data out of the array, so we have
// to copy it here.
diff --git a/dom/media/eme/MediaKeys.cpp b/dom/media/eme/MediaKeys.cpp
index eedd675e4..fea548698 100644
--- a/dom/media/eme/MediaKeys.cpp
+++ b/dom/media/eme/MediaKeys.cpp
@@ -13,7 +13,6 @@
#include "mozilla/dom/MediaKeySession.h"
#include "mozilla/dom/DOMException.h"
#include "mozilla/dom/UnionTypes.h"
-#include "mozilla/Telemetry.h"
#include "GMPCDMProxy.h"
#ifdef MOZ_WIDGET_ANDROID
#include "mozilla/MediaDrmCDMProxy.h"
@@ -457,7 +456,6 @@ MediaKeys::OnCDMCreated(PromiseId aId, const nsACString& aNodeId, const uint32_t
mKeySystem,
MediaKeySystemStatus::Cdm_created);
- Telemetry::Accumulate(Telemetry::VIDEO_CDM_CREATED, ToCDMTypeTelemetryEnum(mKeySystem));
}
static bool
diff --git a/dom/media/fmp4/MP4Demuxer.cpp b/dom/media/fmp4/MP4Demuxer.cpp
index 646897468..5a637b003 100644
--- a/dom/media/fmp4/MP4Demuxer.cpp
+++ b/dom/media/fmp4/MP4Demuxer.cpp
@@ -81,35 +81,11 @@ private:
bool
AccumulateSPSTelemetry(const MediaByteBuffer* aExtradata)
{
+ // XXX: Do we still need this without telemetry?
mp4_demuxer::SPSData spsdata;
if (mp4_demuxer::H264::DecodeSPSFromExtraData(aExtradata, spsdata)) {
- uint8_t constraints = (spsdata.constraint_set0_flag ? (1 << 0) : 0) |
- (spsdata.constraint_set1_flag ? (1 << 1) : 0) |
- (spsdata.constraint_set2_flag ? (1 << 2) : 0) |
- (spsdata.constraint_set3_flag ? (1 << 3) : 0) |
- (spsdata.constraint_set4_flag ? (1 << 4) : 0) |
- (spsdata.constraint_set5_flag ? (1 << 5) : 0);
- Telemetry::Accumulate(Telemetry::VIDEO_DECODED_H264_SPS_CONSTRAINT_SET_FLAG,
- constraints);
-
- // Collect profile_idc values up to 244, otherwise 0 for unknown.
- Telemetry::Accumulate(Telemetry::VIDEO_DECODED_H264_SPS_PROFILE,
- spsdata.profile_idc <= 244 ? spsdata.profile_idc : 0);
-
- // Make sure level_idc represents a value between levels 1 and 5.2,
- // otherwise collect 0 for unknown level.
- Telemetry::Accumulate(Telemetry::VIDEO_DECODED_H264_SPS_LEVEL,
- (spsdata.level_idc >= 10 && spsdata.level_idc <= 52) ?
- spsdata.level_idc : 0);
-
- // max_num_ref_frames should be between 0 and 16, anything larger will
- // be treated as invalid.
- Telemetry::Accumulate(Telemetry::VIDEO_H264_SPS_MAX_NUM_REF_FRAMES,
- std::min(spsdata.max_num_ref_frames, 17u));
-
return false;
}
-
return true;
}
diff --git a/dom/media/ogg/OggDemuxer.cpp b/dom/media/ogg/OggDemuxer.cpp
index 591a5248f..0cc484687 100644
--- a/dom/media/ogg/OggDemuxer.cpp
+++ b/dom/media/ogg/OggDemuxer.cpp
@@ -12,7 +12,6 @@
#include "mozilla/Atomics.h"
#include "mozilla/PodOperations.h"
#include "mozilla/SharedThreadPool.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "MediaDataDemuxer.h"
#include "nsAutoRef.h"
@@ -164,7 +163,6 @@ OggDemuxer::~OggDemuxer()
MOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug,
("OggDemuxer(%p)::%s: Reporting telemetry MEDIA_OGG_LOADED_IS_CHAINED=%d",
ptr, __func__, isChained));
- Telemetry::Accumulate(Telemetry::ID::MEDIA_OGG_LOADED_IS_CHAINED, isChained);
});
AbstractThread::MainThread()->Dispatch(task.forget());
}
diff --git a/dom/media/platforms/wmf/DXVA2Manager.cpp b/dom/media/platforms/wmf/DXVA2Manager.cpp
index 0c1734c54..1226ea621 100644
--- a/dom/media/platforms/wmf/DXVA2Manager.cpp
+++ b/dom/media/platforms/wmf/DXVA2Manager.cpp
@@ -14,7 +14,6 @@
#include "mozilla/layers/D3D11ShareHandleImage.h"
#include "mozilla/layers/ImageBridgeChild.h"
#include "mozilla/layers/TextureForwarder.h"
-#include "mozilla/Telemetry.h"
#include "MediaTelemetryConstants.h"
#include "mfapi.h"
#include "gfxPrefs.h"
@@ -442,9 +441,6 @@ D3D9DXVA2Manager::Init(layers::KnowsCompositor* aKnowsCompositor,
}
mTextureClientAllocator->SetMaxPoolSize(5);
- Telemetry::Accumulate(Telemetry::MEDIA_DECODER_BACKEND_USED,
- uint32_t(media::MediaDecoderBackend::WMFDXVA2D3D9));
-
return S_OK;
}
@@ -775,9 +771,6 @@ D3D11DXVA2Manager::Init(layers::KnowsCompositor* aKnowsCompositor,
}
mTextureClientAllocator->SetMaxPoolSize(5);
- Telemetry::Accumulate(Telemetry::MEDIA_DECODER_BACKEND_USED,
- uint32_t(media::MediaDecoderBackend::WMFDXVA2D3D11));
-
return S_OK;
}
diff --git a/dom/media/platforms/wmf/WMFAudioMFTManager.cpp b/dom/media/platforms/wmf/WMFAudioMFTManager.cpp
index 69b62da51..3dacdf0aa 100644
--- a/dom/media/platforms/wmf/WMFAudioMFTManager.cpp
+++ b/dom/media/platforms/wmf/WMFAudioMFTManager.cpp
@@ -252,7 +252,6 @@ WMFAudioMFTManager::Output(int64_t aStreamOffset,
LOG("Audio MFTDecoder returned success but null output.");
nsCOMPtr<nsIRunnable> task = NS_NewRunnableFunction([]() -> void {
LOG("Reporting telemetry AUDIO_MFT_OUTPUT_NULL_SAMPLES");
- Telemetry::Accumulate(Telemetry::ID::AUDIO_MFT_OUTPUT_NULL_SAMPLES, 1);
});
AbstractThread::MainThread()->Dispatch(task.forget());
return E_FAIL;
diff --git a/dom/media/platforms/wmf/WMFMediaDataDecoder.cpp b/dom/media/platforms/wmf/WMFMediaDataDecoder.cpp
index d2c13eac7..15e2e1097 100644
--- a/dom/media/platforms/wmf/WMFMediaDataDecoder.cpp
+++ b/dom/media/platforms/wmf/WMFMediaDataDecoder.cpp
@@ -8,7 +8,6 @@
#include "VideoUtils.h"
#include "WMFUtils.h"
#include "nsTArray.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Logging.h"
#include "mozilla/SyncRunnable.h"
@@ -67,7 +66,7 @@ SendTelemetry(unsigned long hr)
nsCOMPtr<nsIRunnable> runnable = NS_NewRunnableFunction(
[sample] {
- Telemetry::Accumulate(Telemetry::MEDIA_WMF_DECODE_ERROR, sample);
+ /* Telemetry STUB */
});
NS_DispatchToMainThread(runnable);
}
diff --git a/dom/media/platforms/wmf/WMFVideoMFTManager.cpp b/dom/media/platforms/wmf/WMFVideoMFTManager.cpp
index 291bc5b74..8a51f817a 100644
--- a/dom/media/platforms/wmf/WMFVideoMFTManager.cpp
+++ b/dom/media/platforms/wmf/WMFVideoMFTManager.cpp
@@ -128,7 +128,6 @@ WMFVideoMFTManager::~WMFVideoMFTManager()
nsCOMPtr<nsIRunnable> task = NS_NewRunnableFunction([=]() -> void {
LOG(nsPrintfCString("Reporting telemetry VIDEO_MFT_OUTPUT_NULL_SAMPLES=%d", telemetry).get());
- Telemetry::Accumulate(Telemetry::ID::VIDEO_MFT_OUTPUT_NULL_SAMPLES, telemetry);
});
AbstractThread::MainThread()->Dispatch(task.forget());
}
@@ -511,8 +510,6 @@ WMFVideoMFTManager::InitInternal(bool aForceD3D9)
if (mStreamType == VP9 || mStreamType == VP8) {
return false;
}
- Telemetry::Accumulate(Telemetry::MEDIA_DECODER_BACKEND_USED,
- uint32_t(media::MediaDecoderBackend::WMFSoftware));
}
mDecoder = decoder;
diff --git a/dom/media/systemservices/LoadManager.cpp b/dom/media/systemservices/LoadManager.cpp
index f0f4f83a7..34b8fc7e0 100644
--- a/dom/media/systemservices/LoadManager.cpp
+++ b/dom/media/systemservices/LoadManager.cpp
@@ -15,7 +15,6 @@
#include "nsThreadUtils.h"
#include "nsReadableUtils.h"
#include "nsIObserverService.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/ArrayUtils.h"
// MOZ_LOG=LoadManager:5
@@ -192,23 +191,6 @@ LoadManagerSingleton::RemoveObserver(webrtc::CPULoadStateObserver * aObserver)
for (size_t i = 0; i < MOZ_ARRAY_LENGTH(mTimeInState); i++) {
total += mTimeInState[i];
}
- // Don't include short calls; we don't have reasonable load data, and
- // such short calls rarely reach a stable state. Keep relatively
- // short calls separate from longer ones
- bool log = total > 5*PR_MSEC_PER_SEC;
- bool small = log && total < 30*PR_MSEC_PER_SEC;
- if (log) {
- // Note: We don't care about rounding here; thus total may be < 100
- Telemetry::Accumulate(small ? Telemetry::WEBRTC_LOAD_STATE_RELAXED_SHORT :
- Telemetry::WEBRTC_LOAD_STATE_RELAXED,
- (uint32_t) (mTimeInState[webrtc::CPULoadState::kLoadRelaxed]/total * 100));
- Telemetry::Accumulate(small ? Telemetry::WEBRTC_LOAD_STATE_NORMAL_SHORT :
- Telemetry::WEBRTC_LOAD_STATE_NORMAL,
- (uint32_t) (mTimeInState[webrtc::CPULoadState::kLoadNormal]/total * 100));
- Telemetry::Accumulate(small ? Telemetry::WEBRTC_LOAD_STATE_STRESSED_SHORT :
- Telemetry::WEBRTC_LOAD_STATE_STRESSED,
- (uint32_t) (mTimeInState[webrtc::CPULoadState::kLoadStressed]/total * 100));
- }
for (auto &in_state : mTimeInState) {
in_state = 0;
}
diff --git a/dom/media/webaudio/MediaBufferDecoder.cpp b/dom/media/webaudio/MediaBufferDecoder.cpp
index e9f1d5a47..2ee11eacd 100644
--- a/dom/media/webaudio/MediaBufferDecoder.cpp
+++ b/dom/media/webaudio/MediaBufferDecoder.cpp
@@ -23,7 +23,6 @@
#include "VideoUtils.h"
#include "WebAudioUtils.h"
#include "mozilla/dom/Promise.h"
-#include "mozilla/Telemetry.h"
#include "nsPrintfCString.h"
#include "GMPService.h"
@@ -302,7 +301,6 @@ MediaDecodeTask::OnMetadataRead(MetadataHolder* aMetadata)
MOZ_LOG(gMediaDecoderLog,
LogLevel::Debug,
("Telemetry (WebAudio) MEDIA_CODEC_USED= '%s'", codec.get()));
- Telemetry::Accumulate(Telemetry::ID::MEDIA_CODEC_USED, codec);
});
AbstractThread::MainThread()->Dispatch(task.forget());
diff --git a/dom/media/webrtc/RTCCertificate.cpp b/dom/media/webrtc/RTCCertificate.cpp
index 3f778bcbb..9f5e27c56 100644
--- a/dom/media/webrtc/RTCCertificate.cpp
+++ b/dom/media/webrtc/RTCCertificate.cpp
@@ -74,7 +74,7 @@ private:
char buf[sizeof(randomName) * 2 + 4];
PL_strncpy(buf, "CN=", 3);
for (size_t i = 0; i < sizeof(randomName); ++i) {
- snprintf(&buf[i * 2 + 3], 2, "%.2x", randomName[i]);
+ snprintf(&buf[i * 2 + 3], 3, "%.2x", randomName[i]);
}
buf[sizeof(buf) - 1] = '\0';
diff --git a/dom/notification/Notification.cpp b/dom/notification/Notification.cpp
index 1dd5724e4..71c4916b9 100644
--- a/dom/notification/Notification.cpp
+++ b/dom/notification/Notification.cpp
@@ -642,8 +642,6 @@ NotificationPermissionRequest::ResolvePromise()
mCallback->Call(mPermission, error);
rv = error.StealNSResult();
}
- Telemetry::Accumulate(
- Telemetry::WEB_NOTIFICATION_REQUEST_PERMISSION_CALLBACK, !!mCallback);
mPromise->MaybeResolve(mPermission);
return rv;
}
@@ -750,11 +748,6 @@ NotificationTelemetryService::RecordPermissions()
if (!GetNotificationPermission(supportsPermission, &capability)) {
continue;
}
- if (capability == nsIPermissionManager::DENY_ACTION) {
- Telemetry::Accumulate(Telemetry::WEB_NOTIFICATION_PERMISSIONS, 0);
- } else if (capability == nsIPermissionManager::ALLOW_ACTION) {
- Telemetry::Accumulate(Telemetry::WEB_NOTIFICATION_PERMISSIONS, 1);
- }
}
}
@@ -800,9 +793,6 @@ NotificationTelemetryService::RecordDNDSupported()
if (NS_FAILED(rv)) {
return;
}
-
- Telemetry::Accumulate(
- Telemetry::ALERTS_SERVICE_DND_SUPPORTED_FLAG, true);
}
nsresult
@@ -819,7 +809,6 @@ NotificationTelemetryService::RecordSender(nsIPrincipal* aPrincipal)
}
if (!mOrigins.Contains(origin)) {
mOrigins.PutEntry(origin);
- Telemetry::Accumulate(Telemetry::WEB_NOTIFICATION_SENDERS, 1);
}
return NS_OK;
}
@@ -829,21 +818,7 @@ NotificationTelemetryService::Observe(nsISupports* aSubject,
const char* aTopic,
const char16_t* aData)
{
- uint32_t capability;
- if (strcmp("perm-changed", aTopic) ||
- !NS_strcmp(u"cleared", aData) ||
- !GetNotificationPermission(aSubject, &capability)) {
- return NS_OK;
- }
- if (!NS_strcmp(u"deleted", aData)) {
- if (capability == nsIPermissionManager::DENY_ACTION) {
- Telemetry::Accumulate(
- Telemetry::WEB_NOTIFICATION_PERMISSION_REMOVED, 0);
- } else if (capability == nsIPermissionManager::ALLOW_ACTION) {
- Telemetry::Accumulate(
- Telemetry::WEB_NOTIFICATION_PERMISSION_REMOVED, 1);
- }
- }
+ /* STUB */
return NS_OK;
}
@@ -1407,7 +1382,6 @@ NotificationObserver::Observe(nsISupports* aSubject, const char* aTopic,
AssertIsOnMainThread();
if (!strcmp("alertdisablecallback", aTopic)) {
- Telemetry::Accumulate(Telemetry::WEB_NOTIFICATION_MENU, 1);
if (XRE_IsParentProcess()) {
return Notification::RemovePermission(mPrincipal);
}
@@ -1417,10 +1391,7 @@ NotificationObserver::Observe(nsISupports* aSubject, const char* aTopic,
ContentChild::GetSingleton()->SendDisableNotifications(
IPC::Principal(mPrincipal));
return NS_OK;
- } else if (!strcmp("alertclickcallback", aTopic)) {
- Telemetry::Accumulate(Telemetry::WEB_NOTIFICATION_CLICKED, 1);
} else if (!strcmp("alertsettingscallback", aTopic)) {
- Telemetry::Accumulate(Telemetry::WEB_NOTIFICATION_MENU, 2);
if (XRE_IsParentProcess()) {
return Notification::OpenSettings(mPrincipal);
}
@@ -1433,21 +1404,7 @@ NotificationObserver::Observe(nsISupports* aSubject, const char* aTopic,
!strcmp("alertfinished", aTopic)) {
RefPtr<NotificationTelemetryService> telemetry =
NotificationTelemetryService::GetInstance();
- if (telemetry) {
- // Record whether "do not disturb" is supported after the first
- // notification, to account for falling back to XUL alerts.
- telemetry->RecordDNDSupported();
- if (!mInPrivateBrowsing) {
- // Ignore senders in private windows.
- Unused << NS_WARN_IF(NS_FAILED(telemetry->RecordSender(mPrincipal)));
- }
- }
Unused << NS_WARN_IF(NS_FAILED(AdjustPushQuota(aTopic)));
-
- if (!strcmp("alertshow", aTopic)) {
- // Record notifications actually shown (e.g. don't count if DND is on).
- Telemetry::Accumulate(Telemetry::WEB_NOTIFICATION_SHOWN, 1);
- }
}
return mObserver->Observe(aSubject, aTopic, aData);
diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
index 916bdea0f..c3de136d0 100644
--- a/dom/plugins/base/nsPluginHost.cpp
+++ b/dom/plugins/base/nsPluginHost.cpp
@@ -2148,11 +2148,7 @@ nsresult nsPluginHost::ScanPluginsDirectory(nsIFile *pluginsDir,
nsPluginInfo info;
memset(&info, 0, sizeof(info));
nsresult res;
- // Opening a block for the telemetry AutoTimer
- {
- Telemetry::AutoTimer<Telemetry::PLUGIN_LOAD_METADATA> telemetry;
- res = pluginFile.GetPluginInfo(info, &library);
- }
+ res = pluginFile.GetPluginInfo(info, &library);
// if we don't have mime type don't proceed, this is not a plugin
if (NS_FAILED(res) || !info.fMimeTypeArray) {
RefPtr<nsInvalidPluginTag> invalidTag = new nsInvalidPluginTag(filePath.get(),
@@ -2410,8 +2406,6 @@ nsPluginHost::FindPluginsInContent(bool aCreatePluginList, bool* aPluginsChanged
// This is needed in ReloadPlugins to prevent possible recursive reloads
nsresult nsPluginHost::FindPlugins(bool aCreatePluginList, bool * aPluginsChanged)
{
- Telemetry::AutoTimer<Telemetry::FIND_PLUGINS> telemetry;
-
NS_ENSURE_ARG_POINTER(aPluginsChanged);
*aPluginsChanged = false;
@@ -3412,7 +3406,6 @@ nsPluginHost::StopPluginInstance(nsNPAPIPluginInstance* aInstance)
return NS_OK;
}
- Telemetry::AutoTimer<Telemetry::PLUGIN_SHUTDOWN_MS> timer;
aInstance->Stop();
// if the instance does not want to be 'cached' just remove it
diff --git a/dom/plugins/ipc/PluginAsyncSurrogate.cpp b/dom/plugins/ipc/PluginAsyncSurrogate.cpp
index da07116cc..3fe4c7168 100644
--- a/dom/plugins/ipc/PluginAsyncSurrogate.cpp
+++ b/dom/plugins/ipc/PluginAsyncSurrogate.cpp
@@ -504,8 +504,6 @@ PluginAsyncSurrogate::WaitForInit()
if (mAcceptCalls) {
return true;
}
- Telemetry::AutoTimer<Telemetry::BLOCKED_ON_PLUGINASYNCSURROGATE_WAITFORINIT_MS>
- timer(mParent->GetHistogramKey());
bool result = false;
MOZ_ASSERT(mParent);
if (mParent->IsChrome()) {
diff --git a/dom/plugins/ipc/PluginHangUIParent.cpp b/dom/plugins/ipc/PluginHangUIParent.cpp
index 5114f2e9a..908182a22 100644
--- a/dom/plugins/ipc/PluginHangUIParent.cpp
+++ b/dom/plugins/ipc/PluginHangUIParent.cpp
@@ -8,7 +8,6 @@
#include "PluginHangUIParent.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/ipc/ProtocolUtils.h"
#include "mozilla/plugins/PluginModuleParent.h"
@@ -48,14 +47,6 @@ public:
NS_IMETHOD
Run() override
{
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::PLUGIN_HANG_UI_USER_RESPONSE, mResponseCode);
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::PLUGIN_HANG_UI_DONT_ASK, mDontAskCode);
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::PLUGIN_HANG_UI_RESPONSE_TIME, mResponseTimeMs);
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::PLUGIN_HANG_TIME, mTimeoutMs + mResponseTimeMs);
return NS_OK;
}
diff --git a/dom/plugins/ipc/PluginInstanceParent.cpp b/dom/plugins/ipc/PluginInstanceParent.cpp
index 02f0641f7..bdd15ca99 100644
--- a/dom/plugins/ipc/PluginInstanceParent.cpp
+++ b/dom/plugins/ipc/PluginInstanceParent.cpp
@@ -9,7 +9,6 @@
#include "mozilla/BasicEvents.h"
#include "mozilla/Preferences.h"
-#include "mozilla/Telemetry.h"
#include "PluginInstanceParent.h"
#include "BrowserStreamParent.h"
#include "PluginAsyncSurrogate.h"
@@ -206,12 +205,8 @@ NPError
PluginInstanceParent::Destroy()
{
NPError retval;
- { // Scope for timer
- Telemetry::AutoTimer<Telemetry::BLOCKED_ON_PLUGIN_INSTANCE_DESTROY_MS>
- timer(Module()->GetHistogramKey());
- if (!CallNPP_Destroy(&retval)) {
- retval = NPERR_GENERIC_ERROR;
- }
+ if (!CallNPP_Destroy(&retval)) {
+ retval = NPERR_GENERIC_ERROR;
}
#if defined(OS_WIN)
@@ -1786,9 +1781,6 @@ PluginInstanceParent::NPP_NewStream(NPMIMEType type, NPStream* stream,
return NPERR_GENERIC_ERROR;
}
- Telemetry::AutoTimer<Telemetry::BLOCKED_ON_PLUGIN_STREAM_INIT_MS>
- timer(Module()->GetHistogramKey());
-
NPError err = NPERR_NO_ERROR;
if (mParent->IsStartingAsync()) {
MOZ_ASSERT(mSurrogate);
@@ -2504,6 +2496,5 @@ PluginInstanceParent::RecordDrawingModel()
}
MOZ_ASSERT(mode >= 0);
- Telemetry::Accumulate(Telemetry::PLUGIN_DRAWING_MODEL, mode);
mLastRecordedDrawingModel = mode;
}
diff --git a/dom/plugins/ipc/PluginModuleParent.cpp b/dom/plugins/ipc/PluginModuleParent.cpp
index 2489baf16..300c4f621 100755
--- a/dom/plugins/ipc/PluginModuleParent.cpp
+++ b/dom/plugins/ipc/PluginModuleParent.cpp
@@ -20,7 +20,6 @@
#include "mozilla/Preferences.h"
#include "mozilla/ProcessHangMonitor.h"
#include "mozilla/Services.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Unused.h"
#include "nsAutoPtr.h"
#include "nsCRT.h"
@@ -1172,11 +1171,6 @@ PluginModuleParent::GetRunID(uint32_t* aRunID)
void
PluginModuleChromeParent::ActorDestroy(ActorDestroyReason why)
{
- if (why == AbnormalShutdown) {
- Telemetry::Accumulate(Telemetry::SUBPROCESS_ABNORMAL_ABORT,
- NS_LITERAL_CSTRING("plugin"), 1);
- }
-
// We can't broadcast settings changes anymore.
UnregisterSettingsCallbacks();
@@ -2203,12 +2197,8 @@ public:
void
PluginModuleParent::AccumulateModuleInitBlockedTime()
{
- if (mPluginName.IsEmpty()) {
- GetPluginDetails();
- }
- Telemetry::Accumulate(Telemetry::BLOCKED_ON_PLUGIN_MODULE_INIT_MS,
- GetHistogramKey(),
- static_cast<uint32_t>(mTimeBlocked.ToMilliseconds()));
+ // XXX: mTimeBlocked can probably go if not used for anything besides
+ // telemetry.
mTimeBlocked = TimeDuration();
}
@@ -2294,27 +2284,23 @@ PluginModuleParent::NPP_NewInternal(NPMIMEType pluginType, NPP instance,
return NS_ERROR_FAILURE;
}
- { // Scope for timer
- Telemetry::AutoTimer<Telemetry::BLOCKED_ON_PLUGIN_INSTANCE_INIT_MS>
- timer(GetHistogramKey());
- if (mIsStartingAsync) {
- MOZ_ASSERT(surrogate);
- surrogate->AsyncCallDeparting();
- if (!SendAsyncNPP_New(parentInstance)) {
+ if (mIsStartingAsync) {
+ MOZ_ASSERT(surrogate);
+ surrogate->AsyncCallDeparting();
+ if (!SendAsyncNPP_New(parentInstance)) {
+ *error = NPERR_GENERIC_ERROR;
+ return NS_ERROR_FAILURE;
+ }
+ *error = NPERR_NO_ERROR;
+ } else {
+ if (!CallSyncNPP_New(parentInstance, error)) {
+ // if IPC is down, we'll get an immediate "failed" return, but
+ // without *error being set. So make sure that the error
+ // condition is signaled to nsNPAPIPluginInstance
+ if (NPERR_NO_ERROR == *error) {
*error = NPERR_GENERIC_ERROR;
- return NS_ERROR_FAILURE;
- }
- *error = NPERR_NO_ERROR;
- } else {
- if (!CallSyncNPP_New(parentInstance, error)) {
- // if IPC is down, we'll get an immediate "failed" return, but
- // without *error being set. So make sure that the error
- // condition is signaled to nsNPAPIPluginInstance
- if (NPERR_NO_ERROR == *error) {
- *error = NPERR_GENERIC_ERROR;
- }
- return NS_ERROR_FAILURE;
}
+ return NS_ERROR_FAILURE;
}
}
diff --git a/dom/presentation/provider/PresentationControlService.js b/dom/presentation/provider/PresentationControlService.js
index fe61d26d6..e9f92247f 100644
--- a/dom/presentation/provider/PresentationControlService.js
+++ b/dom/presentation/provider/PresentationControlService.js
@@ -100,7 +100,6 @@ PresentationControlService.prototype = {
if (aCert) {
this._serverSocket.serverCert = aCert;
- this._serverSocket.setSessionCache(false);
this._serverSocket.setSessionTickets(false);
let requestCert = Ci.nsITLSServerSocket.REQUEST_NEVER;
this._serverSocket.setRequestClientCertificate(requestCert);
diff --git a/dom/security/nsMixedContentBlocker.cpp b/dom/security/nsMixedContentBlocker.cpp
index c03628da0..5f41f414d 100644
--- a/dom/security/nsMixedContentBlocker.cpp
+++ b/dom/security/nsMixedContentBlocker.cpp
@@ -983,44 +983,5 @@ enum MixedContentHSTSState {
void
nsMixedContentBlocker::AccumulateMixedContentHSTS(nsIURI* aURI, bool aActive)
{
- // This method must only be called in the parent, because
- // nsSiteSecurityService is only available in the parent
- if (!XRE_IsParentProcess()) {
- MOZ_ASSERT(false);
- return;
- }
-
- bool hsts;
- nsresult rv;
- nsCOMPtr<nsISiteSecurityService> sss = do_GetService(NS_SSSERVICE_CONTRACTID, &rv);
- if (NS_FAILED(rv)) {
- return;
- }
- rv = sss->IsSecureURI(nsISiteSecurityService::HEADER_HSTS, aURI, 0, nullptr, &hsts);
- if (NS_FAILED(rv)) {
- return;
- }
-
- // states: would upgrade, hsts info cached
- // active, passive
- //
- if (!aActive) {
- if (!hsts) {
- Telemetry::Accumulate(Telemetry::MIXED_CONTENT_HSTS,
- MCB_HSTS_PASSIVE_NO_HSTS);
- }
- else {
- Telemetry::Accumulate(Telemetry::MIXED_CONTENT_HSTS,
- MCB_HSTS_PASSIVE_WITH_HSTS);
- }
- } else {
- if (!hsts) {
- Telemetry::Accumulate(Telemetry::MIXED_CONTENT_HSTS,
- MCB_HSTS_ACTIVE_NO_HSTS);
- }
- else {
- Telemetry::Accumulate(Telemetry::MIXED_CONTENT_HSTS,
- MCB_HSTS_ACTIVE_WITH_HSTS);
- }
- }
+/* STUB */
} \ No newline at end of file
diff --git a/dom/storage/DOMStorageCache.cpp b/dom/storage/DOMStorageCache.cpp
index 811f79fd3..a6aa17424 100644
--- a/dom/storage/DOMStorageCache.cpp
+++ b/dom/storage/DOMStorageCache.cpp
@@ -309,7 +309,7 @@ public:
explicit TelemetryAutoTimer(Telemetry::ID aId)
: id(aId), start(TimeStamp::Now()) {}
~TelemetryAutoTimer()
- { Telemetry::AccumulateDelta_impl<Telemetry::Millisecond>::compute(id, start); }
+ { /* STUB */ }
private:
Telemetry::ID id;
const TimeStamp start;
@@ -329,9 +329,6 @@ DOMStorageCache::WaitForPreload(Telemetry::ID aTelemetryID)
// Telemetry of rates of pending preloads
if (!mPreloadTelemetryRecorded) {
mPreloadTelemetryRecorded = true;
- Telemetry::Accumulate(
- Telemetry::LOCALDOMSTORAGE_PRELOAD_PENDING_ON_FIRST_ACCESS,
- !loaded);
}
if (loaded) {
diff --git a/dom/storage/DOMStorageDBThread.cpp b/dom/storage/DOMStorageDBThread.cpp
index 183be5c5c..f86dbad9c 100644
--- a/dom/storage/DOMStorageDBThread.cpp
+++ b/dom/storage/DOMStorageDBThread.cpp
@@ -163,8 +163,6 @@ DOMStorageDBThread::Shutdown()
return NS_ERROR_NOT_INITIALIZED;
}
- Telemetry::AutoTimer<Telemetry::LOCALDOMSTORAGE_SHUTDOWN_DATABASE_MS> timer;
-
{
MonitorAutoLock monitor(mThreadObserver->GetMonitor());
diff --git a/dom/svg/SVGUseElement.cpp b/dom/svg/SVGUseElement.cpp
index 4911e2cac..9212ab1aa 100644
--- a/dom/svg/SVGUseElement.cpp
+++ b/dom/svg/SVGUseElement.cpp
@@ -15,6 +15,7 @@
#include "mozilla/dom/Element.h"
#include "nsContentUtils.h"
#include "nsIURI.h"
+#include "nsSVGEffects.h"
NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Use)
@@ -418,11 +419,15 @@ SVGUseElement::LookupHref()
return;
}
+ nsCOMPtr<nsIURI> originURI =
+ mOriginal ? mOriginal->GetBaseURI() : GetBaseURI();
+ nsCOMPtr<nsIURI> baseURI = nsContentUtils::IsLocalRefURL(href)
+ ? nsSVGEffects::GetBaseURLForLocalRef(this, originURI)
+ : originURI;
+
nsCOMPtr<nsIURI> targetURI;
- nsCOMPtr<nsIURI> baseURI = mOriginal ? mOriginal->GetBaseURI() : GetBaseURI();
nsContentUtils::NewURIWithDocumentCharset(getter_AddRefs(targetURI), href,
GetComposedDoc(), baseURI);
-
mSource.Reset(this, targetURI);
}
diff --git a/dom/svg/test/reftest_viewport_noninteger.html b/dom/svg/test/reftest_viewport_noninteger.html
new file mode 100644
index 000000000..3f4852b53
--- /dev/null
+++ b/dom/svg/test/reftest_viewport_noninteger.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>SVG size test</title>
+ <style>
+ body {
+ margin: 30px;
+ font-family: sans-serif;
+ }
+
+ #tests {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ grid-gap: 30px;
+ }
+
+ #tests div:hover {
+ opacity: 1 !important;
+ }
+
+ #tests p {
+ text-decoration: underline dotted black;
+ }
+
+ svg {
+ background: lightgrey;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>SVG size test</h1>
+
+ <p>The grey boxes below are <code>&lt;svg&gt;</code> elements.</p>
+ <p>All SVGs in each row should have the exact same size.</p>
+ <p>Each row has its own viewBox width and height: <code>viewBox="0 0 width height"</code>.</p>
+ <p>Each column has its own width/height styling. For example, <code>style="width: 200px; height: auto;"</code>.</p>
+ <p>The first column has both an explicit widht and an explicit height, so there's not much that can go wrong there. It acts as a reference.</p>
+ <p>The first row has integer viewBox width and height. Firefox then sizes all SVGs correctly.</p>
+ <p>The remaining rows have at least one non-integer viewBox width and height. Firefox then sizes the SVGs a bit wrong.</p>
+ <p>Chrome, Safari and Edge seem to pass all tests.</p>
+
+ <p id="summary"></p>
+
+ <div id="tests"></div>
+
+ <script>
+ const testsElement = document.getElementById("tests");
+ const summaryElement = document.getElementById("summary");
+
+ // Turn for instance `2.3` into `230` (px). Round to avoid floating point
+ // issues.
+ const scale = (number) => Math.round(100 * number);
+
+ const widths = [2, 2.3, 2.5, 2.8];
+ const heights = [3, 3.3, 3.5, 3.8];
+
+ let numPassed = 0;
+ let numFailed = 0;
+
+ for (const width of widths) {
+ for (const height of heights) {
+ const variations = [
+ {width, height},
+ {width: "auto", height},
+ {width, height: "auto"},
+ {width: "auto", height: "auto"},
+ ];
+
+ for (const variation of variations) {
+ const cellElement = document.createElement("div");
+
+ const titleElement = document.createElement("h2");
+ titleElement.appendChild(makeTitle(width, height, variation));
+
+ const sizeElement = document.createElement("p");
+
+ const svgWrapperElement = document.createElement("div");
+ svgWrapperElement.style.width =
+ variation.width === "auto" && variation.height === "auto"
+ ? `${scale(width)}px`
+ : "auto";
+
+ const svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ svgElement.setAttribute("viewBox", `0 0 ${width} ${height}`);
+ svgElement.style.width =
+ typeof variation.width === "number"
+ ? `${scale(variation.width)}px`
+ : variation.width;
+ svgElement.style.height =
+ typeof variation.height === "number"
+ ? `${scale(variation.height)}px`
+ : variation.height;
+
+ svgWrapperElement.appendChild(svgElement);
+
+ cellElement.appendChild(titleElement);
+ cellElement.appendChild(sizeElement);
+ cellElement.appendChild(svgWrapperElement);
+
+ testsElement.appendChild(cellElement);
+
+ const rect = svgElement.getBoundingClientRect();
+ const actual = {
+ width: Math.round(rect.width),
+ height: Math.round(rect.height),
+ };
+ const expected = {
+ width: scale(width),
+ height: scale(height),
+ };
+ const passed =
+ actual.width === expected.width &&
+ actual.height === expected.height;
+
+ const icon = passed ? "✔" : "✘";
+ const iconText = passed ? "PASS" : "FAIL";
+ const expectedText = passed ? "" : `\nExpected size: ${expected.width}x${expected.height}`;
+ sizeElement.textContent = `${icon} ${actual.width}x${actual.height}`;
+ sizeElement.title = `${iconText}. Actual size, as measured by element.getBoundingClientRect().${expectedText}`;
+ sizeElement.style.color = passed ? "lime" : "red";
+ sizeElement.style.fontWeight = passed ? "normal" : "bold";
+
+ cellElement.style.opacity = passed ? 0.5 : 1;
+
+ if (passed) {
+ numPassed++;
+ } else {
+ numFailed++;
+ }
+ }
+ }
+ }
+
+ const numTotal = numPassed + numFailed;
+ const passed = numFailed === 0;
+ const icon = passed ? "✔" : "✘";
+ summaryElement.textContent = `${icon} ${numPassed}/${numTotal} tests passed.`;
+ summaryElement.style.color = passed ? "lime" : "red";
+ summaryElement.style.fontWeight = "bold";
+
+ function makeTitle(width, height, variation) {
+ const fragment = document.createDocumentFragment();
+
+ const first = document.createElement("abbr");
+ first.textContent = `${width}/${height}`;
+ first.title = `SVG viewBox width/height: viewBox="0 0 ${width} ${height}"`;
+
+ const separator = document.createTextNode(" | ");
+
+ const second = document.createElement("abbr");
+
+ const widthString = typeof variation.width === "number" ? "px" : variation.width;
+ const heightString = typeof variation.height === "number" ? "px" : variation.height;
+ second.textContent = `${widthString}/${heightString}`;
+
+ const widthExplanation =
+ typeof variation.width === "number"
+ ? "explicit width (px)"
+ : `${variation.width} width`
+ const heightExplanation =
+ typeof variation.height === "number"
+ ? "explicit height (px)"
+ : `${variation.height} height`
+ second.title = `${widthExplanation}, ${heightExplanation}`;
+
+ fragment.appendChild(first);
+ fragment.appendChild(separator);
+ fragment.appendChild(second);
+
+ return fragment;
+ }
+ </script>
+ </body>
+</html>
diff --git a/dom/system/mac/CoreLocationLocationProvider.mm b/dom/system/mac/CoreLocationLocationProvider.mm
index b39582a9e..7a3feba97 100644
--- a/dom/system/mac/CoreLocationLocationProvider.mm
+++ b/dom/system/mac/CoreLocationLocationProvider.mm
@@ -13,7 +13,6 @@
#include "CoreLocationLocationProvider.h"
#include "nsCocoaFeatures.h"
#include "prtime.h"
-#include "mozilla/Telemetry.h"
#include "MLSFallback.h"
#include <CoreLocation/CLError.h>
@@ -103,7 +102,6 @@ static const CLLocationAccuracy kDEFAULT_ACCURACY = kCLLocationAccuracyNearestTe
PR_Now() / PR_USEC_PER_MSEC);
mProvider->Update(geoPosition);
- Telemetry::Accumulate(Telemetry::GEOLOCATION_OSX_SOURCE_IS_MLS, false);
}
@end
@@ -127,7 +125,6 @@ CoreLocationLocationProvider::MLSUpdate::Update(nsIDOMGeoPosition *position)
return NS_ERROR_FAILURE;
}
mParentLocationProvider.Update(position);
- Telemetry::Accumulate(Telemetry::GEOLOCATION_OSX_SOURCE_IS_MLS, true);
return NS_OK;
}
NS_IMETHODIMP
diff --git a/dom/system/windows/WindowsLocationProvider.cpp b/dom/system/windows/WindowsLocationProvider.cpp
index fa7f8d8be..9da7bcc30 100644
--- a/dom/system/windows/WindowsLocationProvider.cpp
+++ b/dom/system/windows/WindowsLocationProvider.cpp
@@ -10,7 +10,6 @@
#include "nsComponentManagerUtils.h"
#include "prtime.h"
#include "MLSFallback.h"
-#include "mozilla/Telemetry.h"
namespace mozilla {
namespace dom {
@@ -34,7 +33,6 @@ WindowsLocationProvider::MLSUpdate::Update(nsIDOMGeoPosition *aPosition)
if (!coords) {
return NS_ERROR_FAILURE;
}
- Telemetry::Accumulate(Telemetry::GEOLOCATION_WIN8_SOURCE_IS_MLS, true);
return mCallback->Update(aPosition);
}
NS_IMETHODIMP
@@ -176,8 +174,6 @@ LocationEvent::OnLocationChanged(REFIID aReportType,
PR_Now() / PR_USEC_PER_MSEC);
mCallback->Update(position);
- Telemetry::Accumulate(Telemetry::GEOLOCATION_WIN8_SOURCE_IS_MLS, false);
-
return S_OK;
}
diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp
index e1910536f..1f49e16dd 100644
--- a/dom/workers/RuntimeService.cpp
+++ b/dom/workers/RuntimeService.cpp
@@ -30,7 +30,6 @@
#include "mozilla/AsyncEventDispatcher.h"
#include "mozilla/Atomics.h"
#include "mozilla/CycleCollectedJSContext.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/dom/asmjscache/AsmJSCache.h"
#include "mozilla/dom/AtomList.h"
@@ -1534,7 +1533,6 @@ RuntimeService::RegisterWorker(WorkerPrivate* aWorkerPrivate)
const bool isDedicatedWorker = aWorkerPrivate->IsDedicatedWorker();
if (isServiceWorker) {
AssertIsOnMainThread();
- Telemetry::Accumulate(Telemetry::SERVICE_WORKER_SPAWN_ATTEMPTS, 1);
}
nsCString sharedWorkerScriptSpec;
@@ -1586,14 +1584,6 @@ RuntimeService::RegisterWorker(WorkerPrivate* aWorkerPrivate)
// Worker spawn gets queued due to hitting max workers per domain
// limit so let's log a warning.
WorkerPrivate::ReportErrorToConsole("HittingMaxWorkersPerDomain2");
-
- if (isServiceWorker) {
- Telemetry::Accumulate(Telemetry::SERVICE_WORKER_SPAWN_GETS_QUEUED, 1);
- } else if (isSharedWorker) {
- Telemetry::Accumulate(Telemetry::SHARED_WORKER_SPAWN_GETS_QUEUED, 1);
- } else if (isDedicatedWorker) {
- Telemetry::Accumulate(Telemetry::DEDICATED_WORKER_SPAWN_GETS_QUEUED, 1);
- }
}
else if (parent) {
domainInfo->mChildWorkerCount++;
@@ -1669,7 +1659,6 @@ RuntimeService::RegisterWorker(WorkerPrivate* aWorkerPrivate)
if (isServiceWorker) {
AssertIsOnMainThread();
- Telemetry::Accumulate(Telemetry::SERVICE_WORKER_WAS_SPAWNED, 1);
}
return true;
}
@@ -1766,8 +1755,6 @@ RuntimeService::UnregisterWorker(WorkerPrivate* aWorkerPrivate)
if (aWorkerPrivate->IsServiceWorker()) {
AssertIsOnMainThread();
- Telemetry::AccumulateTimeDelta(Telemetry::SERVICE_WORKER_LIFE_TIME,
- aWorkerPrivate->CreationTimeStamp());
}
if (aWorkerPrivate->IsSharedWorker() ||
diff --git a/dom/workers/ServiceWorkerManager.cpp b/dom/workers/ServiceWorkerManager.cpp
index a66df0731..a8f191f2e 100644
--- a/dom/workers/ServiceWorkerManager.cpp
+++ b/dom/workers/ServiceWorkerManager.cpp
@@ -33,7 +33,6 @@
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/ErrorNames.h"
#include "mozilla/LoadContext.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/dom/BindingUtils.h"
#include "mozilla/dom/ContentParent.h"
#include "mozilla/dom/DOMError.h"
@@ -676,7 +675,6 @@ ServiceWorkerManager::Register(mozIDOMWindow* aWindow,
queue->ScheduleJob(job);
AssertIsOnMainThread();
- Telemetry::Accumulate(Telemetry::SERVICE_WORKER_REGISTRATIONS, 1);
promise.forget(aPromise);
return NS_OK;
@@ -2180,7 +2178,6 @@ ServiceWorkerManager::StartControllingADocument(ServiceWorkerRegistrationInfo* a
if (!aDocumentId.IsEmpty()) {
aDoc->SetId(aDocumentId);
}
- Telemetry::Accumulate(Telemetry::SERVICE_WORKER_CONTROLLED_DOCUMENTS, 1);
}
void
diff --git a/dom/workers/ServiceWorkerRegistrar.cpp b/dom/workers/ServiceWorkerRegistrar.cpp
index a4757ea54..7df129c2b 100644
--- a/dom/workers/ServiceWorkerRegistrar.cpp
+++ b/dom/workers/ServiceWorkerRegistrar.cpp
@@ -135,9 +135,6 @@ ServiceWorkerRegistrar::GetRegistrations(
if (firstTime) {
firstTime = false;
- Telemetry::AccumulateTimeDelta(
- Telemetry::SERVICE_WORKER_REGISTRATION_LOADING,
- startTime);
}
}
diff --git a/dom/workers/ServiceWorkerUpdateJob.cpp b/dom/workers/ServiceWorkerUpdateJob.cpp
index 614fe4de5..69877dfe4 100644
--- a/dom/workers/ServiceWorkerUpdateJob.cpp
+++ b/dom/workers/ServiceWorkerUpdateJob.cpp
@@ -408,8 +408,6 @@ ServiceWorkerUpdateJob::ComparisonResult(nsresult aStatus,
return;
}
- Telemetry::Accumulate(Telemetry::SERVICE_WORKER_UPDATED, 1);
-
// Begin step 7 of the Update algorithm to evaluate the new script.
RefPtr<ServiceWorkerInfo> sw =
diff --git a/dom/workers/SharedWorker.cpp b/dom/workers/SharedWorker.cpp
index b0eed2def..99bb50339 100644
--- a/dom/workers/SharedWorker.cpp
+++ b/dom/workers/SharedWorker.cpp
@@ -12,7 +12,6 @@
#include "mozilla/Preferences.h"
#include "mozilla/dom/MessagePort.h"
#include "mozilla/dom/SharedWorkerBinding.h"
-#include "mozilla/Telemetry.h"
#include "nsContentUtils.h"
#include "nsIClassInfoImpl.h"
#include "nsIDOMEvent.h"
@@ -73,8 +72,6 @@ SharedWorker::Constructor(const GlobalObject& aGlobal, JSContext* aCx,
return nullptr;
}
- Telemetry::Accumulate(Telemetry::SHARED_WORKER_COUNT, 1);
-
return sharedWorker.forget();
}
diff --git a/dom/workers/WorkerRunnable.cpp b/dom/workers/WorkerRunnable.cpp
index 6bbe40f66..9e6d4cfb8 100644
--- a/dom/workers/WorkerRunnable.cpp
+++ b/dom/workers/WorkerRunnable.cpp
@@ -15,7 +15,6 @@
#include "mozilla/DebugOnly.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/dom/ScriptSettings.h"
-#include "mozilla/Telemetry.h"
#include "js/RootingAPI.h"
#include "js/Value.h"
@@ -572,8 +571,6 @@ WorkerMainThreadRunnable::Dispatch(Status aFailStatus, ErrorResult& aRv)
{
mWorkerPrivate->AssertIsOnWorkerThread();
- TimeStamp startTime = TimeStamp::NowLoRes();
-
AutoSyncLoopHolder syncLoop(mWorkerPrivate, aFailStatus);
mSyncLoopTarget = syncLoop.GetEventTarget();
@@ -590,11 +587,6 @@ WorkerMainThreadRunnable::Dispatch(Status aFailStatus, ErrorResult& aRv)
if (!syncLoop.Run()) {
aRv.ThrowUncatchableException();
}
-
- Telemetry::Accumulate(Telemetry::SYNC_WORKER_OPERATION, mTelemetryKey,
- static_cast<uint32_t>((TimeStamp::NowLoRes() - startTime)
- .ToMilliseconds()));
- Unused << startTime; // Shut the compiler up.
}
NS_IMETHODIMP
diff --git a/dom/xhr/XMLHttpRequestMainThread.cpp b/dom/xhr/XMLHttpRequestMainThread.cpp
index 4fd34a993..613008ad5 100644
--- a/dom/xhr/XMLHttpRequestMainThread.cpp
+++ b/dom/xhr/XMLHttpRequestMainThread.cpp
@@ -757,15 +757,6 @@ XMLHttpRequestMainThread::SetResponseType(XMLHttpRequestResponseType aResponseTy
return;
}
- // We want to get rid of this moz-only types. Bug 1335365.
- if (aResponseType == XMLHttpRequestResponseType::Moz_blob) {
- Telemetry::Accumulate(Telemetry::MOZ_BLOB_IN_XHR, 1);
- } else if (aResponseType == XMLHttpRequestResponseType::Moz_chunked_text) {
- Telemetry::Accumulate(Telemetry::MOZ_CHUNKED_TEXT_IN_XHR, 1);
- } else if (aResponseType == XMLHttpRequestResponseType::Moz_chunked_arraybuffer) {
- Telemetry::Accumulate(Telemetry::MOZ_CHUNKED_ARRAYBUFFER_IN_XHR, 1);
- }
-
// Set the responseType attribute's value to the given value.
mResponseType = aResponseType;
}
@@ -1521,8 +1512,6 @@ XMLHttpRequestMainThread::Open(const nsACString& aMethod,
GetOwner()->GetExtantDoc()->WarnOnceAbout(nsIDocument::eSyncXMLHttpRequest);
}
- Telemetry::Accumulate(Telemetry::XMLHTTPREQUEST_ASYNC_OR_SYNC, aAsync ? 0 : 1);
-
// Step 1
nsCOMPtr<nsIDocument> responsibleDocument = GetDocumentIfCurrent();
if (!responsibleDocument) {
diff --git a/dom/xhr/XMLHttpRequestWorker.cpp b/dom/xhr/XMLHttpRequestWorker.cpp
index c9e892f26..2af61bd7d 100644
--- a/dom/xhr/XMLHttpRequestWorker.cpp
+++ b/dom/xhr/XMLHttpRequestWorker.cpp
@@ -1588,8 +1588,6 @@ XMLHttpRequestWorker::Construct(const GlobalObject& aGlobal,
WorkerPrivate* workerPrivate = GetWorkerPrivateFromContext(cx);
MOZ_ASSERT(workerPrivate);
- Telemetry::Accumulate(Telemetry::XHR_IN_WORKER, 1);
-
RefPtr<XMLHttpRequestWorker> xhr = new XMLHttpRequestWorker(workerPrivate);
if (workerPrivate->XHRParamsAllowed()) {
diff --git a/dom/xul/nsXULPrototypeCache.cpp b/dom/xul/nsXULPrototypeCache.cpp
index 84a201d59..2c3454860 100644
--- a/dom/xul/nsXULPrototypeCache.cpp
+++ b/dom/xul/nsXULPrototypeCache.cpp
@@ -45,12 +45,6 @@ UpdategDisableXULCache()
// Get the value of "nglayout.debug.disable_xul_cache" preference
gDisableXULCache =
Preferences::GetBool(kDisableXULCachePref, gDisableXULCache);
-
- // Sets the flag if the XUL cache is disabled
- if (gDisableXULCache) {
- Telemetry::Accumulate(Telemetry::XUL_CACHE_DISABLED, true);
- }
-
}
static void
diff --git a/embedding/components/find/nsFind.cpp b/embedding/components/find/nsFind.cpp
index cbc42298b..5fc1f9db6 100644
--- a/embedding/components/find/nsFind.cpp
+++ b/embedding/components/find/nsFind.cpp
@@ -33,7 +33,7 @@
using namespace mozilla;
// Yikes! Casting a char to unichar can fill with ones!
-#define CHAR_TO_UNICHAR(c) ((char16_t)(const unsigned char)c)
+#define CHAR_TO_UNICHAR(c) ((char16_t)(unsigned char)c)
static NS_DEFINE_CID(kCContentIteratorCID, NS_CONTENTITERATOR_CID);
static NS_DEFINE_CID(kCPreContentIteratorCID, NS_PRECONTENTITERATOR_CID);
diff --git a/extensions/auth/nsAuthGSSAPI.cpp b/extensions/auth/nsAuthGSSAPI.cpp
index f63b30eff..0e273a300 100644
--- a/extensions/auth/nsAuthGSSAPI.cpp
+++ b/extensions/auth/nsAuthGSSAPI.cpp
@@ -22,7 +22,6 @@
#include "nsIPrefBranch.h"
#include "nsIServiceManager.h"
#include "nsNativeCharsetUtils.h"
-#include "mozilla/Telemetry.h"
#include "nsAuthGSSAPI.h"
@@ -377,16 +376,6 @@ nsAuthGSSAPI::Init(const char *serviceName,
mServiceName = serviceName;
mServiceFlags = serviceFlags;
- static bool sTelemetrySent = false;
- if (!sTelemetrySent) {
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::NTLM_MODULE_USED_2,
- serviceFlags & nsIAuthModule::REQ_PROXY_AUTH
- ? NTLM_MODULE_KERBEROS_PROXY
- : NTLM_MODULE_KERBEROS_DIRECT);
- sTelemetrySent = true;
- }
-
return NS_OK;
}
diff --git a/extensions/auth/nsAuthSSPI.cpp b/extensions/auth/nsAuthSSPI.cpp
index eb577d3bf..677a4773a 100644
--- a/extensions/auth/nsAuthSSPI.cpp
+++ b/extensions/auth/nsAuthSSPI.cpp
@@ -20,7 +20,6 @@
#include "nsNetCID.h"
#include "nsCOMPtr.h"
#include "nsICryptoHash.h"
-#include "mozilla/Telemetry.h"
#include <windows.h>
@@ -275,16 +274,6 @@ nsAuthSSPI::Init(const char *serviceName,
if (rc != SEC_E_OK)
return NS_ERROR_UNEXPECTED;
- static bool sTelemetrySent = false;
- if (!sTelemetrySent) {
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::NTLM_MODULE_USED_2,
- serviceFlags & nsIAuthModule::REQ_PROXY_AUTH
- ? NTLM_MODULE_WIN_API_PROXY
- : NTLM_MODULE_WIN_API_DIRECT);
- sTelemetrySent = true;
- }
-
LOG(("AcquireCredentialsHandle() succeeded.\n"));
return NS_OK;
}
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
index 69777dcca..6b9204c34 100644
--- a/extensions/auth/nsAuthSambaNTLM.cpp
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -9,7 +9,6 @@
#include "prenv.h"
#include "plbase64.h"
#include "prerror.h"
-#include "mozilla/Telemetry.h"
#include <stdlib.h>
@@ -212,17 +211,6 @@ nsAuthSambaNTLM::Init(const char *serviceName,
const char16_t *password)
{
NS_ASSERTION(!username && !domain && !password, "unexpected credentials");
-
- static bool sTelemetrySent = false;
- if (!sTelemetrySent) {
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::NTLM_MODULE_USED_2,
- serviceFlags & nsIAuthModule::REQ_PROXY_AUTH
- ? NTLM_MODULE_SAMBA_AUTH_PROXY
- : NTLM_MODULE_SAMBA_AUTH_DIRECT);
- sTelemetrySent = true;
- }
-
return NS_OK;
}
diff --git a/extensions/cookie/nsPermissionManager.cpp b/extensions/cookie/nsPermissionManager.cpp
index c44830812..13ae7fd35 100644
--- a/extensions/cookie/nsPermissionManager.cpp
+++ b/extensions/cookie/nsPermissionManager.cpp
@@ -107,7 +107,11 @@ nsresult
GetOriginFromPrincipal(nsIPrincipal* aPrincipal, nsACString& aOrigin)
{
nsresult rv = aPrincipal->GetOriginNoSuffix(aOrigin);
- NS_ENSURE_SUCCESS(rv, rv);
+ // The principal may belong to the about:blank content viewer, so this can be
+ // expected to fail.
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
nsAutoCString suffix;
rv = aPrincipal->GetOriginSuffix(suffix);
@@ -866,9 +870,6 @@ nsPermissionManager::InitDB(bool aRemoveFile)
if (rv == NS_ERROR_FILE_CORRUPTED) {
LogToConsole(NS_LITERAL_STRING("permissions.sqlite is corrupted! Try again!"));
- // Add telemetry probe
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PERMISSIONS_SQL_CORRUPTED, 1);
-
// delete corrupted permissions.sqlite and try again
rv = permissionsFile->Remove(false);
NS_ENSURE_SUCCESS(rv, rv);
@@ -891,9 +892,6 @@ nsPermissionManager::InitDB(bool aRemoveFile)
NS_ENSURE_SUCCESS(rv, rv);
LogToConsole(NS_LITERAL_STRING("Defective permissions.sqlite has been removed."));
- // Add telemetry probe
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::DEFECTIVE_PERMISSIONS_SQL_REMOVED, 1);
-
rv = OpenDatabase(permissionsFile);
NS_ENSURE_SUCCESS(rv, rv);
LogToConsole(NS_LITERAL_STRING("OpenDatabase to permissions.sqlite is successful!"));
@@ -1185,25 +1183,7 @@ nsPermissionManager::InitDB(bool aRemoveFile)
if (NS_SUCCEEDED(rv) &&
NS_SUCCEEDED(countStmt->ExecuteStep(&hasResult)) &&
hasResult) {
- int32_t permsCount = countStmt->AsInt32(0);
-
- // The id variable contains the number of rows inserted into the
- // moz_hosts_new table (as one ID was used per entry)
- uint32_t telemetryValue;
- if (permsCount > id) {
- telemetryValue = 3; // NEW > OLD
- } else if (permsCount == id) {
- telemetryValue = 2; // NEW == OLD
- } else if (permsCount == 0) {
- telemetryValue = 0; // NEW = 0
- } else {
- telemetryValue = 1; // NEW < OLD
- }
-
- // Report the telemetry value to telemetry
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::PERMISSIONS_REMIGRATION_COMPARISON,
- telemetryValue);
+ // Telemetry STUB (count rows and report)
} else {
NS_WARNING("Could not count the rows in moz_perms");
}
@@ -1221,9 +1201,6 @@ nsPermissionManager::InitDB(bool aRemoveFile)
rv = mDBConn->CommitTransaction();
NS_ENSURE_SUCCESS(rv, rv);
-
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PERMISSIONS_MIGRATION_7_ERROR,
- NS_WARN_IF(migrationError));
} else {
// We don't have a moz_hosts table, so we create one for downgrading purposes.
// This table is empty.
diff --git a/gfx/gl/GLContextProviderGLX.cpp b/gfx/gl/GLContextProviderGLX.cpp
index 5560357e1..539520a8c 100644
--- a/gfx/gl/GLContextProviderGLX.cpp
+++ b/gfx/gl/GLContextProviderGLX.cpp
@@ -80,7 +80,6 @@ GLXLibrary::EnsureInitialized()
if (!mOGLLibrary) {
const char* libGLfilename = nullptr;
- bool forceFeatureReport = false;
// see e.g. bug 608526: it is intrinsically interesting to know whether we have dynamically linked to libGL.so.1
// because at least the NVIDIA implementation requires an executable stack, which causes mprotect calls,
diff --git a/gfx/gl/GLLibraryEGL.cpp b/gfx/gl/GLLibraryEGL.cpp
index 3d8da3085..75f40f13f 100644
--- a/gfx/gl/GLLibraryEGL.cpp
+++ b/gfx/gl/GLLibraryEGL.cpp
@@ -9,7 +9,6 @@
#include "gfxUtils.h"
#include "mozilla/Preferences.h"
#include "mozilla/Assertions.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Tokenizer.h"
#include "mozilla/ScopeExit.h"
#include "mozilla/Unused.h"
@@ -472,20 +471,6 @@ GLLibraryEGL::EnsureInitialized(bool forceAccel, nsACString* const out_failureId
chosenDisplay = GetAndInitDisplayForAccelANGLE(*this, out_failureId);
}
- // Report the acceleration status to telemetry
- if (!chosenDisplay) {
- if (accelAngleFailureId.IsEmpty()) {
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_ACCL_FAILURE_ID,
- NS_LITERAL_CSTRING("FEATURE_FAILURE_ACCL_ANGLE_UNKNOWN"));
- } else {
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_ACCL_FAILURE_ID,
- accelAngleFailureId);
- }
- } else {
- Telemetry::Accumulate(Telemetry::CANVAS_WEBGL_ACCL_FAILURE_ID,
- NS_LITERAL_CSTRING("SUCCESS"));
- }
-
// Fallback to a WARP display if ANGLE fails, or if WARP is forced
if (!chosenDisplay && shouldTryWARP) {
chosenDisplay = GetAndInitWARPDisplay(*this, EGL_DEFAULT_DISPLAY);
diff --git a/gfx/ipc/GPUChild.cpp b/gfx/ipc/GPUChild.cpp
index a075716e3..bfe2d56f7 100644
--- a/gfx/ipc/GPUChild.cpp
+++ b/gfx/ipc/GPUChild.cpp
@@ -8,7 +8,6 @@
#include "gfxPrefs.h"
#include "GPUProcessHost.h"
#include "GPUProcessManager.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/dom/CheckerboardReportService.h"
#include "mozilla/gfx/gfxVars.h"
#if defined(XP_WIN)
@@ -80,7 +79,6 @@ GPUChild::EnsureGPUReady()
SendGetDeviceStatus(&data);
gfxPlatform::GetPlatform()->ImportGPUDeviceData(data);
- Telemetry::AccumulateTimeDelta(Telemetry::GPU_PROCESS_LAUNCH_TIME_MS, mHost->GetLaunchTime());
mGPUReady = true;
}
@@ -93,7 +91,6 @@ GPUChild::RecvInitComplete(const GPUDeviceData& aData)
}
gfxPlatform::GetPlatform()->ImportGPUDeviceData(aData);
- Telemetry::AccumulateTimeDelta(Telemetry::GPU_PROCESS_LAUNCH_TIME_MS, mHost->GetLaunchTime());
mGPUReady = true;
return true;
}
@@ -131,14 +128,14 @@ GPUChild::RecvNotifyUiObservers(const nsCString& aTopic)
bool
GPUChild::RecvAccumulateChildHistogram(InfallibleTArray<Accumulation>&& aAccumulations)
{
- Telemetry::AccumulateChild(GeckoProcessType_GPU, aAccumulations);
+ /* Telemetry STUB */
return true;
}
bool
GPUChild::RecvAccumulateChildKeyedHistogram(InfallibleTArray<KeyedAccumulation>&& aAccumulations)
{
- Telemetry::AccumulateChildKeyed(GeckoProcessType_GPU, aAccumulations);
+ /* Telemetry STUB */
return true;
}
@@ -152,11 +149,6 @@ GPUChild::RecvNotifyDeviceReset()
void
GPUChild::ActorDestroy(ActorDestroyReason aWhy)
{
- if (aWhy == AbnormalShutdown) {
- Telemetry::Accumulate(Telemetry::SUBPROCESS_ABNORMAL_ABORT,
- nsDependentCString(XRE_ChildProcessTypeToString(GeckoProcessType_GPU), 1));
- }
-
gfxVars::RemoveReceiver(this);
mHost->OnChannelClosed();
}
diff --git a/gfx/layers/Layers.cpp b/gfx/layers/Layers.cpp
index ff5ab9b50..482d809a1 100644
--- a/gfx/layers/Layers.cpp
+++ b/gfx/layers/Layers.cpp
@@ -22,7 +22,6 @@
#include "gfxUtils.h" // for gfxUtils, etc
#include "gfx2DGlue.h"
#include "mozilla/DebugOnly.h" // for DebugOnly
-#include "mozilla/Telemetry.h" // for Accumulate
#include "mozilla/ToString.h"
#include "mozilla/dom/Animation.h" // for ComputedTimingFunction
#include "mozilla/gfx/2D.h" // for DrawTarget
@@ -1621,8 +1620,6 @@ void
LayerManager::PostPresent()
{
if (!mTabSwitchStart.IsNull()) {
- Telemetry::Accumulate(Telemetry::FX_TAB_SWITCH_TOTAL_MS,
- uint32_t((TimeStamp::Now() - mTabSwitchStart).ToMilliseconds()));
mTabSwitchStart = TimeStamp();
}
}
diff --git a/gfx/layers/apz/src/AsyncPanZoomController.cpp b/gfx/layers/apz/src/AsyncPanZoomController.cpp
index 102f282f3..e7574eeb7 100644
--- a/gfx/layers/apz/src/AsyncPanZoomController.cpp
+++ b/gfx/layers/apz/src/AsyncPanZoomController.cpp
@@ -904,9 +904,6 @@ nsEventStatus AsyncPanZoomController::HandleDragEvent(const MouseInput& aEvent,
return nsEventStatus_eConsumeNoDefault;
}
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::ApzScrollbarDrag);
-
ReentrantMonitorAutoEnter lock(mMonitor);
CSSPoint scrollFramePoint = aEvent.mLocalOrigin / GetFrameMetrics().GetZoom();
// The scrollbar can be transformed with the frame but the pres shell
@@ -1731,10 +1728,6 @@ nsEventStatus AsyncPanZoomController::OnScrollWheel(const ScrollWheelInput& aEve
return nsEventStatus_eIgnore;
}
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethodForWheelDeltaType(aEvent.mDeltaType));
-
-
switch (aEvent.mScrollMode) {
case ScrollWheelInput::SCROLLMODE_INSTANT: {
@@ -1934,9 +1927,6 @@ nsEventStatus AsyncPanZoomController::OnPan(const PanGestureInput& aEvent, bool
HandlePanningUpdate(physicalPanDisplacement);
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::ApzPanGesture);
-
ScreenPoint panDistance(fabs(physicalPanDisplacement.x), fabs(physicalPanDisplacement.y));
MOZ_ASSERT(GetCurrentPanGestureBlock());
OverscrollHandoffState handoffState(
@@ -2600,8 +2590,6 @@ void AsyncPanZoomController::TrackTouch(const MultiTouchInput& aEvent) {
UpdateWithTouchAtDevicePoint(aEvent);
if (prevTouchPoint != touchPoint) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::ApzTouch);
MOZ_ASSERT(GetCurrentTouchBlock());
OverscrollHandoffState handoffState(
*GetCurrentTouchBlock()->GetOverscrollHandoffChain(),
@@ -3260,14 +3248,7 @@ AsyncPanZoomController::UpdateCheckerboardEvent(const MutexAutoLock& aProofOfLoc
uint32_t aMagnitude)
{
if (mCheckerboardEvent && mCheckerboardEvent->RecordFrameInfo(aMagnitude)) {
- // This checkerboard event is done. Report some metrics to telemetry.
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::CHECKERBOARD_SEVERITY,
- mCheckerboardEvent->GetSeverity());
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::CHECKERBOARD_PEAK,
- mCheckerboardEvent->GetPeak());
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::CHECKERBOARD_DURATION,
- (uint32_t)mCheckerboardEvent->GetDuration().ToMilliseconds());
-
+ // This checkerboard event is done.
mPotentialCheckerboardTracker.CheckerboardDone();
if (gfxPrefs::APZRecordCheckerboarding()) {
diff --git a/gfx/layers/apz/src/InputBlockState.cpp b/gfx/layers/apz/src/InputBlockState.cpp
index f1310c031..85b4e13ff 100644
--- a/gfx/layers/apz/src/InputBlockState.cpp
+++ b/gfx/layers/apz/src/InputBlockState.cpp
@@ -10,7 +10,6 @@
#include "gfxPrefs.h" // for gfxPrefs
#include "mozilla/MouseEvents.h"
#include "mozilla/SizePrintfMacros.h" // for PRIuSIZE
-#include "mozilla/Telemetry.h" // for Telemetry
#include "mozilla/layers/APZCTreeManager.h" // for AllowedTouchBehavior
#include "OverscrollHandoffState.h"
#include "QueuedInput.h"
@@ -246,8 +245,6 @@ CancelableBlockState::RecordContentResponseTime()
// Not done yet, we'll get called again
return;
}
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::CONTENT_RESPONSE_DURATION,
- (uint32_t)(TimeStamp::Now() - mContentResponseTimer).ToMilliseconds());
mContentResponseTimer = TimeStamp();
}
diff --git a/gfx/layers/apz/src/PotentialCheckerboardDurationTracker.cpp b/gfx/layers/apz/src/PotentialCheckerboardDurationTracker.cpp
index c83b9f45c..e469421ad 100644
--- a/gfx/layers/apz/src/PotentialCheckerboardDurationTracker.cpp
+++ b/gfx/layers/apz/src/PotentialCheckerboardDurationTracker.cpp
@@ -33,9 +33,7 @@ PotentialCheckerboardDurationTracker::CheckerboardDone()
MOZ_ASSERT(Tracking());
mInCheckerboard = false;
if (!Tracking()) {
- mozilla::Telemetry::AccumulateTimeDelta(
- mozilla::Telemetry::CHECKERBOARD_POTENTIAL_DURATION,
- mCurrentPeriodStart);
+ /* Telemetry STUB */
}
}
@@ -63,9 +61,7 @@ PotentialCheckerboardDurationTracker::InTransform(bool aInTransform)
// would have taken the other !Tracking branch above. If it's false now,
// it means we just stopped tracking, so we are ending a potential
// checkerboard period.
- mozilla::Telemetry::AccumulateTimeDelta(
- mozilla::Telemetry::CHECKERBOARD_POTENTIAL_DURATION,
- mCurrentPeriodStart);
+ /* Telemetry STUB */
}
}
diff --git a/gfx/layers/ipc/CompositorBridgeParent.cpp b/gfx/layers/ipc/CompositorBridgeParent.cpp
index bf510cd46..e31c6ceb6 100644
--- a/gfx/layers/ipc/CompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CompositorBridgeParent.cpp
@@ -484,8 +484,6 @@ CompositorVsyncScheduler::Composite(TimeStamp aVsyncTimestamp)
mVsyncNotificationsSkipped = 0;
TimeDuration compositeFrameTotal = TimeStamp::Now() - aVsyncTimestamp;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::COMPOSITE_FRAME_ROUNDTRIP_TIME,
- compositeFrameTotal.ToMilliseconds());
} else if (mVsyncNotificationsSkipped++ > gfxPrefs::CompositorUnobserveCount()) {
UnobserveVsync();
}
@@ -1305,7 +1303,6 @@ CompositorBridgeParent::CompositeToTarget(DrawTarget* aTarget, const gfx::IntRec
}
mCompositor->SetCompositionTime(TimeStamp());
- mozilla::Telemetry::AccumulateTimeDelta(mozilla::Telemetry::COMPOSITE_TIME, start);
profiler_tracing("Paint", "Composite", TRACING_INTERVAL_END);
}
@@ -1660,19 +1657,6 @@ CompositorBridgeParent::NewCompositor(const nsTArray<LayersBackend>& aBackendHin
failureReason = "SUCCESS";
}
- // should only report success here
- if (aBackendHints[i] == LayersBackend::LAYERS_OPENGL){
- Telemetry::Accumulate(Telemetry::OPENGL_COMPOSITING_FAILURE_ID, failureReason);
- }
-#ifdef XP_WIN
- else if (aBackendHints[i] == LayersBackend::LAYERS_D3D9){
- Telemetry::Accumulate(Telemetry::D3D9_COMPOSITING_FAILURE_ID, failureReason);
- }
- else if (aBackendHints[i] == LayersBackend::LAYERS_D3D11){
- Telemetry::Accumulate(Telemetry::D3D11_COMPOSITING_FAILURE_ID, failureReason);
- }
-#endif
-
compositor->SetCompositorID(mCompositorID);
return compositor;
}
@@ -1681,18 +1665,15 @@ CompositorBridgeParent::NewCompositor(const nsTArray<LayersBackend>& aBackendHin
if (aBackendHints[i] == LayersBackend::LAYERS_OPENGL){
gfxCriticalNote << "[OPENGL] Failed to init compositor with reason: "
<< failureReason.get();
- Telemetry::Accumulate(Telemetry::OPENGL_COMPOSITING_FAILURE_ID, failureReason);
}
#ifdef XP_WIN
else if (aBackendHints[i] == LayersBackend::LAYERS_D3D9){
gfxCriticalNote << "[D3D9] Failed to init compositor with reason: "
<< failureReason.get();
- Telemetry::Accumulate(Telemetry::D3D9_COMPOSITING_FAILURE_ID, failureReason);
}
else if (aBackendHints[i] == LayersBackend::LAYERS_D3D11){
gfxCriticalNote << "[D3D11] Failed to init compositor with reason: "
<< failureReason.get();
- Telemetry::Accumulate(Telemetry::D3D11_COMPOSITING_FAILURE_ID, failureReason);
}
#endif
}
diff --git a/gfx/src/DriverCrashGuard.cpp b/gfx/src/DriverCrashGuard.cpp
index 4754c26ad..fd616575b 100644
--- a/gfx/src/DriverCrashGuard.cpp
+++ b/gfx/src/DriverCrashGuard.cpp
@@ -11,7 +11,6 @@
#include "nsString.h"
#include "nsXULAppAPI.h"
#include "mozilla/Preferences.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Services.h"
#include "mozilla/gfx/Logging.h"
#include "mozilla/dom/ContentChild.h"
@@ -469,20 +468,7 @@ D3D11LayersCrashGuard::LogFeatureDisabled()
void
D3D11LayersCrashGuard::RecordTelemetry(TelemetryState aState)
{
- // D3D11LayersCrashGuard is a no-op in the child process.
- if (!XRE_IsParentProcess()) {
- return;
- }
-
- // Since we instantiate this class more than once, make sure we only record
- // the first state (since that is really all we care about).
- static bool sTelemetryStateRecorded = false;
- if (sTelemetryStateRecorded) {
- return;
- }
-
- Telemetry::Accumulate(Telemetry::GRAPHICS_DRIVER_STARTUP_TEST, int32_t(aState));
- sTelemetryStateRecorded = true;
+ /* STUB */
}
D3D9VideoCrashGuard::D3D9VideoCrashGuard(dom::ContentParent* aContentParent)
diff --git a/gfx/thebes/DeviceManagerDx.cpp b/gfx/thebes/DeviceManagerDx.cpp
index 2f2693c76..e1cfc5763 100644
--- a/gfx/thebes/DeviceManagerDx.cpp
+++ b/gfx/thebes/DeviceManagerDx.cpp
@@ -10,7 +10,6 @@
#include "gfxPrefs.h"
#include "gfxWindowsPlatform.h"
#include "mozilla/D3DMessageUtils.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/WindowsVersion.h"
#include "mozilla/gfx/GraphicsMessages.h"
#include "mozilla/gfx/Logging.h"
@@ -589,10 +588,6 @@ DeviceManagerDx::MaybeResetAndReacquireDevices()
return false;
}
- if (resetReason != DeviceResetReason::FORCED_RESET) {
- Telemetry::Accumulate(Telemetry::DEVICE_RESET_REASON, uint32_t(resetReason));
- }
-
bool createCompositorDevice = !!mCompositorDevice;
bool createContentDevice = !!mContentDevice;
@@ -724,7 +719,6 @@ DeviceManagerDx::GetAnyDeviceRemovedReason(DeviceResetReason* aOutReason)
void
DeviceManagerDx::ForceDeviceReset(ForcedDeviceResetReason aReason)
{
- Telemetry::Accumulate(Telemetry::FORCED_DEVICE_RESET_REASON, uint32_t(aReason));
{
MutexAutoLock lock(mDeviceLock);
mDeviceResetReason = Some(DeviceResetReason::FORCED_RESET);
diff --git a/gfx/thebes/gfxDWriteFontList.cpp b/gfx/thebes/gfxDWriteFontList.cpp
index d159fddb1..5cc1fbb92 100644
--- a/gfx/thebes/gfxDWriteFontList.cpp
+++ b/gfx/thebes/gfxDWriteFontList.cpp
@@ -14,7 +14,6 @@
#include "nsCharSeparatedTokenizer.h"
#include "mozilla/Preferences.h"
#include "mozilla/Sprintf.h"
-#include "mozilla/Telemetry.h"
#include "nsDirectoryServiceUtils.h"
#include "nsDirectoryServiceDefs.h"
#include "nsAppDirectoryServiceDefs.h"
@@ -864,8 +863,6 @@ gfxDWriteFontList::InitFontListForPlatform()
hr = gfxWindowsPlatform::GetPlatform()->GetDWriteFactory()->
GetGdiInterop(getter_AddRefs(mGDIInterop));
if (FAILED(hr)) {
- Telemetry::Accumulate(Telemetry::DWRITEFONT_INIT_PROBLEM,
- uint32_t(errGDIInterop));
return NS_ERROR_FAILURE;
}
@@ -878,8 +875,6 @@ gfxDWriteFontList::InitFontListForPlatform()
NS_ASSERTION(SUCCEEDED(hr), "GetSystemFontCollection failed!");
if (FAILED(hr)) {
- Telemetry::Accumulate(Telemetry::DWRITEFONT_INIT_PROBLEM,
- uint32_t(errSystemFontCollection));
return NS_ERROR_FAILURE;
}
@@ -891,8 +886,6 @@ gfxDWriteFontList::InitFontListForPlatform()
NS_ASSERTION(mFontFamilies.Count() != 0,
"no fonts found in the system fontlist -- holy crap batman!");
if (mFontFamilies.Count() == 0) {
- Telemetry::Accumulate(Telemetry::DWRITEFONT_INIT_PROBLEM,
- uint32_t(errNoFonts));
return NS_ERROR_FAILURE;
}
@@ -1001,9 +994,6 @@ gfxDWriteFontList::InitFontListForPlatform()
}
elapsedTime = (t5.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;
- Telemetry::Accumulate(Telemetry::DWRITEFONT_DELAYEDINITFONTLIST_TOTAL, elapsedTime);
- Telemetry::Accumulate(Telemetry::DWRITEFONT_DELAYEDINITFONTLIST_COUNT,
- mSystemFonts->GetFontFamilyCount());
LOG_FONTINIT((
"(fontinit) Total time in InitFontList: %9.3f ms (families: %d, %s)\n",
elapsedTime, mSystemFonts->GetFontFamilyCount(),
@@ -1013,7 +1003,6 @@ gfxDWriteFontList::InitFontListForPlatform()
LOG_FONTINIT(("(fontinit) --- base/interop obj initialization init: %9.3f ms\n", elapsedTime));
elapsedTime = (t3.QuadPart - t2.QuadPart) * 1000.0 / frequency.QuadPart;
- Telemetry::Accumulate(Telemetry::DWRITEFONT_DELAYEDINITFONTLIST_COLLECT, elapsedTime);
LOG_FONTINIT(("(fontinit) --- GetSystemFontCollection: %9.3f ms\n", elapsedTime));
elapsedTime = (t4.QuadPart - t3.QuadPart) * 1000.0 / frequency.QuadPart;
@@ -1455,7 +1444,6 @@ gfxDWriteFontList::PlatformGlobalFontFallback(const uint32_t aCh,
*aMatchedFamily = family;
return fontEntry;
}
- Telemetry::Accumulate(Telemetry::BAD_FALLBACK_FONT, true);
}
return nullptr;
diff --git a/gfx/thebes/gfxFont.cpp b/gfx/thebes/gfxFont.cpp
index d0b747fff..8ccd721f8 100644
--- a/gfx/thebes/gfxFont.cpp
+++ b/gfx/thebes/gfxFont.cpp
@@ -229,7 +229,6 @@ gfxFontCache::Lookup(const gfxFontEntry* aFontEntry,
Key key(aFontEntry, aStyle, aUnicodeRangeMap);
HashEntry *entry = mFonts.GetEntry(key);
- Telemetry::Accumulate(Telemetry::FONT_CACHE_HIT, entry != nullptr);
if (!entry)
return nullptr;
@@ -2578,9 +2577,6 @@ gfxFont::GetShapedWord(DrawTarget *aDrawTarget,
if (sw) {
sw->ResetAge();
- Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_HITS_CONTENT :
- Telemetry::WORD_CACHE_HITS_CHROME),
- aLength);
#ifndef RELEASE_OR_BETA
if (aTextPerf) {
aTextPerf->current.wordCacheHit++;
@@ -2589,9 +2585,6 @@ gfxFont::GetShapedWord(DrawTarget *aDrawTarget,
return sw;
}
- Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_MISSES_CONTENT :
- Telemetry::WORD_CACHE_MISSES_CHROME),
- aLength);
#ifndef RELEASE_OR_BETA
if (aTextPerf) {
aTextPerf->current.wordCacheMiss++;
diff --git a/gfx/thebes/gfxGDIFontList.cpp b/gfx/thebes/gfxGDIFontList.cpp
index cc047ef38..f65334fe6 100644
--- a/gfx/thebes/gfxGDIFontList.cpp
+++ b/gfx/thebes/gfxGDIFontList.cpp
@@ -637,8 +637,6 @@ gfxGDIFontList::GetFontSubstitutes()
nsresult
gfxGDIFontList::InitFontListForPlatform()
{
- Telemetry::AutoTimer<Telemetry::GDI_INITFONTLIST_TOTAL> timer;
-
mFontSubstitutes.Clear();
mNonExistingFonts.Clear();
diff --git a/gfx/thebes/gfxGradientCache.cpp b/gfx/thebes/gfxGradientCache.cpp
index fa25bd78c..bfa82685c 100644
--- a/gfx/thebes/gfxGradientCache.cpp
+++ b/gfx/thebes/gfxGradientCache.cpp
@@ -8,7 +8,6 @@
#include "PLDHashTable.h"
#include "nsExpirationTracker.h"
#include "nsClassHashtable.h"
-#include "mozilla/Telemetry.h"
#include "gfxGradientCache.h"
#include <time.h>
@@ -127,7 +126,6 @@ class GradientCache final : public nsExpirationTracker<GradientCacheData,4>
{
srand(time(nullptr));
mTimerPeriod = rand() % MAX_GENERATION_MS + 1;
- Telemetry::Accumulate(Telemetry::GRADIENT_RETENTION_TIME, mTimerPeriod);
}
virtual void NotifyExpired(GradientCacheData* aObject)
diff --git a/gfx/thebes/gfxMacPlatformFontList.mm b/gfx/thebes/gfxMacPlatformFontList.mm
index bf958a90b..4536ab527 100644
--- a/gfx/thebes/gfxMacPlatformFontList.mm
+++ b/gfx/thebes/gfxMacPlatformFontList.mm
@@ -65,7 +65,6 @@
#include "mozilla/MemoryReporting.h"
#include "mozilla/Preferences.h"
#include "mozilla/Sprintf.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/gfx/2D.h"
#include <unistd.h>
@@ -738,8 +737,6 @@ gfxMacPlatformFontList::InitFontListForPlatform()
{
nsAutoreleasePool localPool;
- Telemetry::AutoTimer<Telemetry::MAC_INITFONTLIST_TOTAL> timer;
-
// reset system font list
mSystemFontFamilies.Clear();
@@ -1043,10 +1040,6 @@ gfxMacPlatformFontList::PlatformGlobalFontFallback(const uint32_t aCh,
}
}
- if (cantUseFallbackFont) {
- Telemetry::Accumulate(Telemetry::BAD_FALLBACK_FONT, cantUseFallbackFont);
- }
-
::CFRelease(str);
return fontEntry;
diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp
index 171d1bec9..d5af16a19 100644
--- a/gfx/thebes/gfxPlatform.cpp
+++ b/gfx/thebes/gfxPlatform.cpp
@@ -361,7 +361,6 @@ class CrashTelemetryEvent : public Runnable
NS_IMETHOD Run() override {
MOZ_ASSERT(NS_IsMainThread());
- Telemetry::Accumulate(Telemetry::GFX_CRASH, mReason);
return NS_OK;
}
@@ -374,29 +373,7 @@ NS_IMPL_ISUPPORTS_INHERITED0(CrashTelemetryEvent, Runnable);
void
CrashStatsLogForwarder::CrashAction(LogReason aReason)
{
-#ifndef RELEASE_OR_BETA
- // Non-release builds crash by default, but will use telemetry
- // if this environment variable is present.
- static bool useTelemetry = gfxEnv::GfxDevCrashTelemetry();
-#else
- // Release builds use telemetry by default, but will crash instead
- // if this environment variable is present.
- static bool useTelemetry = !gfxEnv::GfxDevCrashMozCrash();
-#endif
-
- if (useTelemetry) {
- // The callers need to assure that aReason is in the range
- // that the telemetry call below supports.
- if (NS_IsMainThread()) {
- Telemetry::Accumulate(Telemetry::GFX_CRASH, (uint32_t)aReason);
- } else {
- nsCOMPtr<nsIRunnable> r1 = new CrashTelemetryEvent((uint32_t)aReason);
- NS_DispatchToMainThread(r1);
- }
- } else {
- // ignoring aReason, we can get the information we need from the stack
- MOZ_CRASH("GFX_CRASH");
- }
+ MOZ_CRASH("GFX_CRASH");
}
NS_IMPL_ISUPPORTS(SRGBOverrideObserver, nsIObserver, nsISupportsWeakReference)
diff --git a/gfx/thebes/gfxPlatformFontList.cpp b/gfx/thebes/gfxPlatformFontList.cpp
index e12f4e197..59df40666 100644
--- a/gfx/thebes/gfxPlatformFontList.cpp
+++ b/gfx/thebes/gfxPlatformFontList.cpp
@@ -322,8 +322,6 @@ gfxPlatformFontList::InitOtherFamilyNames()
mOtherFamilyNamesInitialized = true;
}
TimeStamp end = TimeStamp::Now();
- Telemetry::AccumulateTimeDelta(Telemetry::FONTLIST_INITOTHERFAMILYNAMES,
- start, end);
if (LOG_FONTINIT_ENABLED()) {
TimeDuration elapsed = end - start;
@@ -370,8 +368,6 @@ gfxPlatformFontList::SearchFamiliesForFaceName(const nsAString& aFaceName)
lookup = FindFaceName(aFaceName);
TimeStamp end = TimeStamp::Now();
- Telemetry::AccumulateTimeDelta(Telemetry::FONTLIST_INITFACENAMELISTS,
- start, end);
if (LOG_FONTINIT_ENABLED()) {
TimeDuration elapsed = end - start;
LOG_FONTINIT(("(fontinit) SearchFamiliesForFaceName took %8.2f ms %s %s",
@@ -587,16 +583,8 @@ gfxPlatformFontList::SystemFindFontForChar(uint32_t aCh, uint32_t aNextCh,
static bool first = true;
int32_t intElapsed = int32_t(first ? elapsed.ToMilliseconds() :
elapsed.ToMicroseconds());
- Telemetry::Accumulate((first ? Telemetry::SYSTEM_FONT_FALLBACK_FIRST :
- Telemetry::SYSTEM_FONT_FALLBACK),
- intElapsed);
first = false;
- // track the script for which fallback occurred (incremented one make it
- // 1-based)
- Telemetry::Accumulate(Telemetry::SYSTEM_FONT_FALLBACK_SCRIPT,
- int(aRunScript) + 1);
-
return fontEntry;
}
diff --git a/gfx/thebes/gfxUserFontSet.cpp b/gfx/thebes/gfxUserFontSet.cpp
index 23c26d9fe..72c54d9b5 100644
--- a/gfx/thebes/gfxUserFontSet.cpp
+++ b/gfx/thebes/gfxUserFontSet.cpp
@@ -453,8 +453,6 @@ gfxUserFontEntry::LoadNextSrc()
gfxUserFontData::kUnknownCompression);
mPlatformFontEntry = fe;
SetLoadState(STATUS_LOADED);
- Telemetry::Accumulate(Telemetry::WEBFONT_SRCTYPE,
- currSrc.mSourceType + 1);
return;
} else {
LOG(("userfonts (%p) [src %d] failed local: (%s) for (%s)\n",
@@ -517,8 +515,6 @@ gfxUserFontEntry::LoadNextSrc()
if (NS_SUCCEEDED(rv) &&
LoadPlatformFont(buffer, bufferLength)) {
SetLoadState(STATUS_LOADED);
- Telemetry::Accumulate(Telemetry::WEBFONT_SRCTYPE,
- currSrc.mSourceType + 1);
return;
} else {
mFontSet->LogMessage(this,
@@ -572,8 +568,6 @@ gfxUserFontEntry::LoadNextSrc()
// LoadPlatformFont takes ownership of the buffer, so no need
// to free it here.
SetLoadState(STATUS_LOADED);
- Telemetry::Accumulate(Telemetry::WEBFONT_SRCTYPE,
- currSrc.mSourceType + 1);
return;
} else {
mFontSet->LogMessage(this,
@@ -617,7 +611,6 @@ gfxUserFontEntry::LoadPlatformFont(const uint8_t* aFontData, uint32_t& aLength)
gfxUserFontType fontType =
gfxFontUtils::DetermineFontDataType(aFontData, aLength);
- Telemetry::Accumulate(Telemetry::WEBFONT_FONTTYPE, uint32_t(fontType));
// Unwrap/decompress/sanitize or otherwise munge the downloaded data
// to make a usable sfnt structure.
@@ -650,13 +643,6 @@ gfxUserFontEntry::LoadPlatformFont(const uint8_t* aFontData, uint32_t& aLength)
if (saneData) {
if (saneLen) {
fontCompressionRatio = uint32_t(100.0 * aLength / saneLen + 0.5);
- if (fontType == GFX_USERFONT_WOFF ||
- fontType == GFX_USERFONT_WOFF2) {
- Telemetry::Accumulate(fontType == GFX_USERFONT_WOFF ?
- Telemetry::WEBFONT_COMPRESSION_WOFF :
- Telemetry::WEBFONT_COMPRESSION_WOFF2,
- fontCompressionRatio);
- }
}
// The sanitizer ensures that we have a valid sfnt and a usable
diff --git a/gfx/thebes/gfxWindowsPlatform.cpp b/gfx/thebes/gfxWindowsPlatform.cpp
index a988859eb..b1ede7ad2 100755
--- a/gfx/thebes/gfxWindowsPlatform.cpp
+++ b/gfx/thebes/gfxWindowsPlatform.cpp
@@ -430,10 +430,6 @@ gfxWindowsPlatform::HandleDeviceReset()
return false;
}
- if (resetReason != DeviceResetReason::FORCED_RESET) {
- Telemetry::Accumulate(Telemetry::DEVICE_RESET_REASON, uint32_t(resetReason));
- }
-
// Remove devices and adapters.
DeviceManagerDx::Get()->ResetDevices();
@@ -1442,15 +1438,7 @@ gfxWindowsPlatform::InitializeD3D11Config()
/* static */ void
gfxWindowsPlatform::RecordContentDeviceFailure(TelemetryDeviceCode aDevice)
{
- // If the parent process fails to acquire a device, we record this
- // normally as part of the environment. The exceptional case we're
- // looking for here is when the parent process successfully acquires
- // a device, but the content process fails to acquire the same device.
- // This would not normally be displayed in about:support.
- if (!XRE_IsContentProcess()) {
- return;
- }
- Telemetry::Accumulate(Telemetry::GFX_CONTENT_FAILED_TO_ACQUIRE_DEVICE, uint32_t(aDevice));
+ /* STUB */
}
void
diff --git a/hal/Hal.cpp b/hal/Hal.cpp
index 16201a2d8..f88efd6cc 100644
--- a/hal/Hal.cpp
+++ b/hal/Hal.cpp
@@ -21,10 +21,7 @@
#include "nsJSUtils.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/Observer.h"
-#include "mozilla/Services.h"
-#include "mozilla/StaticPtr.h"
#include "mozilla/dom/ContentChild.h"
-#include "mozilla/dom/ContentParent.h"
#include "mozilla/dom/ScreenOrientation.h"
#include "WindowIdentifier.h"
@@ -590,6 +587,7 @@ UnregisterSensorObserver(SensorType aSensor, ISensorObserver *aObserver) {
AssertMainThread();
if (!gSensorObservers) {
+ HAL_ERR("Un-registering a sensor when none have been registered");
return;
}
diff --git a/hal/Hal.h b/hal/Hal.h
index 224b4c451..14247ee2e 100644
--- a/hal/Hal.h
+++ b/hal/Hal.h
@@ -18,7 +18,6 @@
#include "mozilla/hal_sandbox/PHal.h"
#include "mozilla/HalScreenConfiguration.h"
#include "mozilla/HalTypes.h"
-#include "mozilla/Observer.h"
#include "mozilla/Types.h"
/*
diff --git a/hal/HalSensor.h b/hal/HalSensor.h
index 551c4271d..5175629c9 100644
--- a/hal/HalSensor.h
+++ b/hal/HalSensor.h
@@ -18,7 +18,6 @@ namespace hal {
* If you add or change any here, do the same in GeckoHalDefines.java.
*/
enum SensorType {
- SENSOR_UNKNOWN = -1,
SENSOR_ORIENTATION = 0,
SENSOR_ACCELERATION = 1,
SENSOR_PROXIMITY = 2,
@@ -63,7 +62,7 @@ namespace IPC {
struct ParamTraits<mozilla::hal::SensorType>:
public ContiguousEnumSerializer<
mozilla::hal::SensorType,
- mozilla::hal::SENSOR_UNKNOWN,
+ mozilla::hal::SENSOR_ORIENTATION,
mozilla::hal::NUM_SENSOR_TYPE> {
};
diff --git a/hal/sandbox/SandboxHal.cpp b/hal/sandbox/SandboxHal.cpp
index 9771b3ef6..5501d459b 100644
--- a/hal/sandbox/SandboxHal.cpp
+++ b/hal/sandbox/SandboxHal.cpp
@@ -16,6 +16,7 @@
#include "mozilla/dom/battery/Types.h"
#include "mozilla/dom/network/Types.h"
#include "mozilla/dom/ScreenOrientation.h"
+#include "mozilla/EnumeratedRange.h"
#include "mozilla/Observer.h"
#include "mozilla/Unused.h"
#include "nsAutoPtr.h"
@@ -404,9 +405,8 @@ public:
hal::UnregisterBatteryObserver(this);
hal::UnregisterNetworkObserver(this);
hal::UnregisterScreenConfigurationObserver(this);
- for (int32_t sensor = SENSOR_UNKNOWN + 1;
- sensor < NUM_SENSOR_TYPE; ++sensor) {
- hal::UnregisterSensorObserver(SensorType(sensor), this);
+ for (auto sensor : MakeEnumeratedRange(NUM_SENSOR_TYPE)) {
+ hal::UnregisterSensorObserver(sensor, this);
}
hal::UnregisterWakeLockObserver(this);
hal::UnregisterSystemClockChangeObserver(this);
diff --git a/image/RasterImage.cpp b/image/RasterImage.cpp
index aad705473..b67ec3bef 100644
--- a/image/RasterImage.cpp
+++ b/image/RasterImage.cpp
@@ -39,8 +39,8 @@
#include "mozilla/MemoryReporting.h"
#include "mozilla/Services.h"
#include <stdint.h>
-#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
+#include "mozilla/Telemetry.h"
#include "mozilla/Tuple.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/gfx/Scale.h"
@@ -104,9 +104,6 @@ RasterImage::~RasterImage()
// Release all frames from the surface cache.
SurfaceCache::RemoveImage(ImageKey(this));
-
- // Record Telemetry.
- Telemetry::Accumulate(Telemetry::IMAGE_DECODE_COUNT, mDecodeCount);
}
nsresult
@@ -1365,19 +1362,9 @@ RasterImage::Draw(gfxContext* aContext,
return DrawResult::NOT_READY;
}
- bool shouldRecordTelemetry = !mDrawStartTime.IsNull() &&
- surface->IsFinished();
-
auto result = DrawInternal(Move(surface), aContext, aSize,
aRegion, aSamplingFilter, flags);
- if (shouldRecordTelemetry) {
- TimeDuration drawLatency = TimeStamp::Now() - mDrawStartTime;
- Telemetry::Accumulate(Telemetry::IMAGE_DECODE_ON_DRAW_LATENCY,
- int32_t(drawLatency.ToMicroseconds()));
- mDrawStartTime = TimeStamp();
- }
-
return result;
}
@@ -1614,22 +1601,6 @@ RasterImage::NotifyDecodeComplete(const DecoderFinalStatus& aStatus,
mAnimationState->SetDoneDecoding(true);
}
- // Do some telemetry if this isn't a metadata decode.
- if (!aStatus.mWasMetadataDecode) {
- if (aTelemetry.mChunkCount) {
- Telemetry::Accumulate(Telemetry::IMAGE_DECODE_CHUNKS, aTelemetry.mChunkCount);
- }
-
- if (aStatus.mFinished) {
- Telemetry::Accumulate(Telemetry::IMAGE_DECODE_TIME,
- int32_t(aTelemetry.mDecodeTime.ToMicroseconds()));
-
- if (aTelemetry.mSpeedHistogram) {
- Telemetry::Accumulate(*aTelemetry.mSpeedHistogram, aTelemetry.Speed());
- }
- }
- }
-
// Only act on errors if we have no usable frames from the decoder.
if (aStatus.mHadError &&
(!mAnimationState || mAnimationState->KnownFrameCount() == 0)) {
diff --git a/image/imgFrame.cpp b/image/imgFrame.cpp
index 9c5bf9b99..5da2ccec5 100644
--- a/image/imgFrame.cpp
+++ b/image/imgFrame.cpp
@@ -22,7 +22,6 @@
#include "mozilla/gfx/Tools.h"
#include "mozilla/Likely.h"
#include "mozilla/MemoryReporting.h"
-#include "mozilla/Telemetry.h"
#include "nsMargin.h"
#include "nsThreadUtils.h"
@@ -620,8 +619,6 @@ imgFrame::Finish(Opacity aFrameOpacity /* = Opacity::SOME_TRANSPARENCY */,
if (aFrameOpacity == Opacity::FULLY_OPAQUE) {
mHasNoAlpha = true;
- Telemetry::Accumulate(Telemetry::IMAGE_DECODE_OPAQUE_BGRA,
- mFormat == SurfaceFormat::B8G8R8A8);
}
mDisposalMethod = aDisposalMethod;
diff --git a/intl/strres/nsStringBundle.cpp b/intl/strres/nsStringBundle.cpp
index ab840a469..717e368e2 100644
--- a/intl/strres/nsStringBundle.cpp
+++ b/intl/strres/nsStringBundle.cpp
@@ -25,6 +25,7 @@
#include "nsIErrorService.h"
#include "nsICategoryManager.h"
#include "nsContentUtils.h"
+#include "mozilla/Preferences.h"
// for async loading
#ifdef ASYNC_LOADING
@@ -32,6 +33,9 @@
#include "nsIStringStream.h"
#endif
+#define STR_HELPER(x) #x
+#define STR(x) STR_HELPER(x)
+
using namespace mozilla;
static NS_DEFINE_CID(kErrorServiceCID, NS_ERRORSERVICE_CID);
@@ -529,6 +533,8 @@ nsStringBundleService::Init()
os->AddObserver(this, "profile-do-change", true);
os->AddObserver(this, "chrome-flush-caches", true);
os->AddObserver(this, "xpcom-category-entry-added", true);
+ os->AddObserver(this, "selected-locale-has-changed", true);
+ os->AddObserver(this, "final-ui-startup", true);
}
// instantiate the override service, if there is any.
@@ -550,6 +556,19 @@ nsStringBundleService::Observe(nsISupports* aSubject,
{
flushBundleCache();
}
+ else if (strcmp("selected-locale-has-changed", aTopic) == 0)
+ {
+ flushBundleCache();
+ notifyBundlesFlushed();
+ }
+ else if (strcmp("final-ui-startup", aTopic) == 0)
+ {
+ nsAdoptingCString ualocale = Preferences::GetCString("general.useragent.locale");
+ if (!ualocale.EqualsLiteral(STR(MOZ_UI_LOCALE))) {
+ flushBundleCache();
+ notifyBundlesFlushed();
+ }
+ }
else if (strcmp("xpcom-category-entry-added", aTopic) == 0 &&
NS_LITERAL_STRING("xpcom-autoregistration").Equals(aSomeData))
{
@@ -560,6 +579,14 @@ nsStringBundleService::Observe(nsISupports* aSubject,
}
void
+nsStringBundleService::notifyBundlesFlushed()
+{
+ nsCOMPtr<nsIObserverService> obsSvc = mozilla::services::GetObserverService();
+ NS_ASSERTION(obsSvc, "Couldn't get observer service.");
+ obsSvc->NotifyObservers(nullptr, "string-bundles-have-flushed", nullptr);
+}
+
+void
nsStringBundleService::flushBundleCache()
{
// release all bundles in the cache
diff --git a/intl/strres/nsStringBundleService.h b/intl/strres/nsStringBundleService.h
index a192cdff8..e65c61f12 100644
--- a/intl/strres/nsStringBundleService.h
+++ b/intl/strres/nsStringBundleService.h
@@ -43,6 +43,8 @@ private:
void flushBundleCache();
+ void notifyBundlesFlushed();
+
bundleCacheEntry_t *insertIntoCache(already_AddRefed<nsIStringBundle> aBundle,
nsCString &aHashKey);
diff --git a/intl/uconv/ucvja/nsJapaneseToUnicode.h b/intl/uconv/ucvja/nsJapaneseToUnicode.h
index 8e3f207eb..e2ea45fb6 100644
--- a/intl/uconv/ucvja/nsJapaneseToUnicode.h
+++ b/intl/uconv/ucvja/nsJapaneseToUnicode.h
@@ -83,8 +83,6 @@ public:
mGB2312Decoder = nullptr;
mEUCKRDecoder = nullptr;
mISO88597Decoder = nullptr;
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::DECODER_INSTANTIATED_ISO2022JP, true);
}
virtual ~nsISO2022JPToUnicodeV2()
{
diff --git a/intl/uconv/ucvlatin/nsCP866ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP866ToUnicode.cpp
index 4d4b89948..08db5f65a 100644
--- a/intl/uconv/ucvlatin/nsCP866ToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsCP866ToUnicode.cpp
@@ -20,7 +20,6 @@ nsCP866ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "cp866.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_IBM866, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp
index 23395aa4e..dae79881d 100644
--- a/intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp
@@ -20,7 +20,6 @@ nsISO88595ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "8859-5.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_ISO_8859_5, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp b/intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp
index 35f77ba41..25a760a66 100644
--- a/intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsKOI8RToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsKOI8RToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "koi8r.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_KOI8R, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp b/intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp
index c5d588ad6..2dbb86377 100644
--- a/intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp
@@ -20,7 +20,6 @@ nsKOI8UToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "koi8u.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_KOI8U, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp b/intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp
index 1a9950df7..7ff51f868 100644
--- a/intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacArabicToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacArabicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macarabic.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACARABIC, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacCEToUnicode.cpp b/intl/uconv/ucvlatin/nsMacCEToUnicode.cpp
index 458d0f53c..4dd3eb159 100644
--- a/intl/uconv/ucvlatin/nsMacCEToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacCEToUnicode.cpp
@@ -20,7 +20,6 @@ nsMacCEToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macce.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACCE, true);
return CreateOneByteDecoder((uMappingTable*) &g_MacCEMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp b/intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp
index 9799ac9ad..a0549ee26 100644
--- a/intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacCroatianToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacCroatianToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "maccroat.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACCROATIAN, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp b/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp
index edbf604fd..0475c2a13 100644
--- a/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacCyrillicToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacCyrillicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "maccyril.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACCYRILLIC, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp b/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp
index 3c1cae733..630553d9c 100644
--- a/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacDevanagariToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacDevanagariToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macdevanaga.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACDEVANAGARI, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp b/intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp
index 1e7e291ba..5870533ff 100644
--- a/intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacFarsiToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacFarsiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macfarsi.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACFARSI, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp b/intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp
index 3f90811d3..64d489147 100644
--- a/intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacGreekToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacGreekToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macgreek.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACGREEK, true);
return CreateOneByteDecoder((uMappingTable*) &g_MacGreekMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp b/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp
index 21b3020f5..0d01e33e4 100644
--- a/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp
@@ -17,7 +17,6 @@ nsMacGujaratiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macgujarati.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACGUJARATI, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp b/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp
index d6b3a88d6..e0a59c205 100644
--- a/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacGurmukhiToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacGurmukhiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macgurmukhi.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACGURMUKHI, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp b/intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp
index f19d82c09..d7b1f2139 100644
--- a/intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacHebrewToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacHebrewToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "machebrew.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACHEBREW, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp b/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp
index 00cff7509..2b2a3b4d0 100644
--- a/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacIcelandicToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacIcelandicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macicela.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACICELANDIC, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp b/intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp
index 96c24dea3..955610e16 100644
--- a/intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacRomanianToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacRomanianToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macro.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACROMANIAN, true);
return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
aOuter, aIID, aResult);
}
diff --git a/intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp b/intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp
index 86d2d1ae7..c30cf94d4 100644
--- a/intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp
@@ -5,7 +5,6 @@
#include "nsUCConstructors.h"
#include "nsMacTurkishToUnicode.h"
-#include "mozilla/Telemetry.h"
using namespace mozilla;
@@ -20,7 +19,6 @@ nsMacTurkishToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
#include "macturki.ut"
};
- Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACTURKISH, true);
return CreateOneByteDecoder((uMappingTable*) &g_MacTurkishMappingTable,
aOuter, aIID, aResult);
}
diff --git a/ipc/chromium/src/base/process_util_win.cc b/ipc/chromium/src/base/process_util_win.cc
index f22f7216f..fa9b86ace 100644
--- a/ipc/chromium/src/base/process_util_win.cc
+++ b/ipc/chromium/src/base/process_util_win.cc
@@ -298,6 +298,33 @@ bool LaunchApp(const std::wstring& cmdline,
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList = NULL;
+ // setup our handle array first - if we end up with no handles that can
+ // be inherited we can avoid trying to do the ThreadAttributeList dance...
+ HANDLE handlesToInherit[2];
+ int handleCount = 0;
+ HANDLE stdOut = ::GetStdHandle(STD_OUTPUT_HANDLE);
+ HANDLE stdErr = ::GetStdHandle(STD_ERROR_HANDLE);
+
+ if (IsInheritableHandle(stdOut))
+ handlesToInherit[handleCount++] = stdOut;
+ if (stdErr != stdOut && IsInheritableHandle(stdErr))
+ handlesToInherit[handleCount++] = stdErr;
+
+ if (handleCount) {
+ lpAttributeList = CreateThreadAttributeList(handlesToInherit, handleCount);
+ if (lpAttributeList) {
+ // it's safe to inherit handles, so arrange for that...
+ startup_info.cb = sizeof(startup_info_ex);
+ startup_info.dwFlags |= STARTF_USESTDHANDLES;
+ startup_info.hStdOutput = stdOut;
+ startup_info.hStdError = stdErr;
+ startup_info.hStdInput = INVALID_HANDLE_VALUE;
+ startup_info_ex.lpAttributeList = lpAttributeList;
+ dwCreationFlags |= EXTENDED_STARTUPINFO_PRESENT;
+ bInheritHandles = TRUE;
+ }
+ }
+
PROCESS_INFORMATION process_info;
BOOL createdOK = CreateProcess(NULL,
const_cast<wchar_t*>(cmdline.c_str()), NULL, NULL,
diff --git a/ipc/glue/BackgroundChildImpl.cpp b/ipc/glue/BackgroundChildImpl.cpp
index b157048a4..a129069bc 100644
--- a/ipc/glue/BackgroundChildImpl.cpp
+++ b/ipc/glue/BackgroundChildImpl.cpp
@@ -312,6 +312,7 @@ BackgroundChildImpl::DeallocPCamerasChild(camera::PCamerasChild *aActor)
RefPtr<camera::CamerasChild> child =
dont_AddRef(static_cast<camera::CamerasChild*>(aActor));
MOZ_ASSERT(aActor);
+ camera::Shutdown();
#endif
return true;
}
diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
index e58408e0c..8147e87dc 100644
--- a/ipc/glue/GeckoChildProcessHost.cpp
+++ b/ipc/glue/GeckoChildProcessHost.cpp
@@ -32,7 +32,6 @@
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/ipc/BrowserProcessSubThread.h"
#include "mozilla/Omnijar.h"
-#include "mozilla/Telemetry.h"
#include "ProtocolUtils.h"
#include <sys/stat.h>
@@ -534,8 +533,6 @@ GeckoChildProcessHost::RunPerformAsyncLaunch(std::vector<std::string> aExtraOpts
lock.Notify();
CHROMIUM_LOG(ERROR) << "Failed to launch " <<
XRE_ChildProcessTypeToString(mProcessType) << " subprocess";
- Telemetry::Accumulate(Telemetry::SUBPROCESS_LAUNCH_FAILURE,
- nsDependentCString(XRE_ChildProcessTypeToString(mProcessType)));
}
return ok;
}
diff --git a/ipc/glue/MessageChannel.cpp b/ipc/glue/MessageChannel.cpp
index 7861f3e2d..a988fae53 100644
--- a/ipc/glue/MessageChannel.cpp
+++ b/ipc/glue/MessageChannel.cpp
@@ -760,11 +760,6 @@ MessageChannel::Echo(Message* aMsg)
bool
MessageChannel::Send(Message* aMsg)
{
- if (aMsg->size() >= kMinTelemetryMessageSize) {
- Telemetry::Accumulate(Telemetry::IPC_MESSAGE_SIZE,
- nsDependentCString(aMsg->name()), aMsg->size());
- }
-
MOZ_RELEASE_ASSERT(!aMsg->is_sync());
MOZ_RELEASE_ASSERT(aMsg->nested_level() != IPC::Message::NESTED_INSIDE_SYNC);
@@ -1059,11 +1054,6 @@ MessageChannel::ProcessPendingRequests(AutoEnterTransaction& aTransaction)
bool
MessageChannel::Send(Message* aMsg, Message* aReply)
{
- if (aMsg->size() >= kMinTelemetryMessageSize) {
- Telemetry::Accumulate(Telemetry::IPC_MESSAGE_SIZE,
- nsDependentCString(aMsg->name()), aMsg->size());
- }
-
nsAutoPtr<Message> msg(aMsg);
// Sanity checks.
@@ -1249,10 +1239,6 @@ MessageChannel::Send(Message* aMsg, Message* aReply)
MOZ_RELEASE_ASSERT(reply->is_sync());
*aReply = Move(*reply);
- if (aReply->size() >= kMinTelemetryMessageSize) {
- Telemetry::Accumulate(Telemetry::IPC_REPLY_SIZE,
- nsDependentCString(msgName), aReply->size());
- }
return true;
}
@@ -2546,7 +2532,6 @@ void
CancelCPOWs()
{
if (gParentProcessBlocker) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::IPC_TRANSACTION_CANCEL, true);
gParentProcessBlocker->CancelCurrentTransaction();
}
}
diff --git a/js/ipc/JavaScriptParent.cpp b/js/ipc/JavaScriptParent.cpp
index ca0a0bd21..6cf9e0591 100644
--- a/js/ipc/JavaScriptParent.cpp
+++ b/js/ipc/JavaScriptParent.cpp
@@ -15,7 +15,6 @@
#include "js/HeapAPI.h"
#include "xpcprivate.h"
#include "mozilla/Casting.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Unused.h"
#include "nsAutoPtr.h"
@@ -110,7 +109,6 @@ JavaScriptParent::allowMessage(JSContext* cx)
if (!xpc::CompartmentPrivate::Get(jsGlobal)->allowCPOWs) {
if (!addonId && ForbidUnsafeBrowserCPOWs() && !isSafe) {
- Telemetry::Accumulate(Telemetry::BROWSER_SHIM_USAGE_BLOCKED, 1);
JS_ReportErrorASCII(cx, "unsafe CPOW usage forbidden");
return false;
}
@@ -120,7 +118,6 @@ JavaScriptParent::allowMessage(JSContext* cx)
nsString addonIdString;
AssignJSFlatString(addonIdString, flat);
NS_ConvertUTF16toUTF8 addonIdCString(addonIdString);
- Telemetry::Accumulate(Telemetry::ADDON_FORBIDDEN_CPOW_USAGE, addonIdCString);
if (ForbidCPOWsInCompatibleAddon(addonIdCString)) {
JS_ReportErrorASCII(cx, "CPOW usage forbidden in this add-on");
diff --git a/js/public/HashTable.h b/js/public/HashTable.h
index 5d4c0665d..8a2493b55 100644
--- a/js/public/HashTable.h
+++ b/js/public/HashTable.h
@@ -12,6 +12,7 @@
#include "mozilla/Attributes.h"
#include "mozilla/Casting.h"
#include "mozilla/HashFunctions.h"
+#include "mozilla/MemoryChecking.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/Move.h"
#include "mozilla/Opaque.h"
@@ -805,17 +806,22 @@ class HashTableEntry
void operator=(const HashTableEntry&) = delete;
~HashTableEntry() = delete;
+ void destroyStoredT() {
+ mem.addr()->~T();
+ MOZ_MAKE_MEM_UNDEFINED(mem.addr(), sizeof(*mem.addr()));
+ }
+
public:
// NB: HashTableEntry is treated as a POD: no constructor or destructor calls.
void destroyIfLive() {
if (isLive())
- mem.addr()->~T();
+ destroyStoredT();
}
void destroy() {
MOZ_ASSERT(isLive());
- mem.addr()->~T();
+ destroyStoredT();
}
void swap(HashTableEntry* other) {
@@ -835,10 +841,28 @@ class HashTableEntry
NonConstT& getMutable() { MOZ_ASSERT(isLive()); return *mem.addr(); }
bool isFree() const { return keyHash == sFreeKey; }
- void clearLive() { MOZ_ASSERT(isLive()); keyHash = sFreeKey; mem.addr()->~T(); }
- void clear() { if (isLive()) mem.addr()->~T(); keyHash = sFreeKey; }
+ void clearLive() {
+ MOZ_ASSERT(isLive());
+ keyHash = sFreeKey;
+ destroyStoredT();
+ }
+
+ void clear() {
+ if (isLive())
+ destroyStoredT();
+
+ MOZ_MAKE_MEM_UNDEFINED(this, sizeof(*this));
+ keyHash = sFreeKey;
+ }
+
bool isRemoved() const { return keyHash == sRemovedKey; }
- void removeLive() { MOZ_ASSERT(isLive()); keyHash = sRemovedKey; mem.addr()->~T(); }
+
+ void removeLive() {
+ MOZ_ASSERT(isLive());
+ keyHash = sRemovedKey;
+ destroyStoredT();
+ }
+
bool isLive() const { return isLiveHash(keyHash); }
void setCollision() { MOZ_ASSERT(isLive()); keyHash |= sCollisionBit; }
void unsetCollision() { keyHash &= ~sCollisionBit; }
@@ -1654,14 +1678,10 @@ class HashTable : private AllocPolicy
public:
void clear()
{
- if (mozilla::IsPod<Entry>::value) {
- memset(table, 0, sizeof(*table) * capacity());
- } else {
- uint32_t tableCapacity = capacity();
- Entry* end = table + tableCapacity;
- for (Entry* e = table; e < end; ++e)
- e->clear();
- }
+ Entry* end = table + capacity();
+ for (Entry* e = table; e < end; ++e)
+ e->clear();
+
removedCount = 0;
entryCount = 0;
#ifdef JS_DEBUG
diff --git a/js/public/MemoryMetrics.h b/js/public/MemoryMetrics.h
index 9b5caa24b..dcc886217 100644
--- a/js/public/MemoryMetrics.h
+++ b/js/public/MemoryMetrics.h
@@ -11,7 +11,6 @@
// at your own risk.
#include "mozilla/MemoryReporting.h"
-#include "mozilla/PodOperations.h"
#include "mozilla/TypeTraits.h"
#include <string.h>
@@ -37,7 +36,13 @@ struct TabSizes
Other
};
- TabSizes() { mozilla::PodZero(this); }
+ TabSizes()
+ : objects(0)
+ , strings(0)
+ , private_(0)
+ , other(0)
+ {
+ }
void add(Kind kind, size_t n) {
switch (kind) {
@@ -68,7 +73,7 @@ struct ServoSizes
Ignore
};
- ServoSizes() { mozilla::PodZero(this); }
+ ServoSizes() = default;
void add(Kind kind, size_t n) {
switch (kind) {
@@ -83,12 +88,12 @@ struct ServoSizes
}
}
- size_t gcHeapUsed;
- size_t gcHeapUnused;
- size_t gcHeapAdmin;
- size_t gcHeapDecommitted;
- size_t mallocHeap;
- size_t nonHeap;
+ size_t gcHeapUsed = 0;
+ size_t gcHeapUnused = 0;
+ size_t gcHeapAdmin = 0;
+ size_t gcHeapDecommitted = 0;
+ size_t mallocHeap = 0;
+ size_t nonHeap = 0;
};
} // namespace JS
diff --git a/js/public/Utility.h b/js/public/Utility.h
index 68de3004a..99712faa8 100644
--- a/js/public/Utility.h
+++ b/js/public/Utility.h
@@ -391,7 +391,7 @@ js_delete_poison(const T* p)
{
if (p) {
p->~T();
- memset(const_cast<T*>(p), 0x3B, sizeof(T));
+ memset(static_cast<void*>(const_cast<T*>(p)), 0x3B, sizeof(T));
js_free(const_cast<T*>(p));
}
}
diff --git a/js/src/builtin/AtomicsObject.cpp b/js/src/builtin/AtomicsObject.cpp
index 08777fd51..2551f3b7d 100644
--- a/js/src/builtin/AtomicsObject.cpp
+++ b/js/src/builtin/AtomicsObject.cpp
@@ -789,7 +789,7 @@ js::atomics_wait(JSContext* cx, unsigned argc, Value* vp)
// and it provides the necessary memory fence.
AutoLockFutexAPI lock;
- SharedMem<int32_t*>(addr) = view->viewDataShared().cast<int32_t*>() + offset;
+ SharedMem<int32_t*> addr = view->viewDataShared().cast<int32_t*>() + offset;
if (jit::AtomicOperations::loadSafeWhenRacy(addr) != value) {
r.setString(cx->names().futexNotEqual);
return true;
diff --git a/js/src/ds/LifoAlloc.h b/js/src/ds/LifoAlloc.h
index f349cd476..b4e9c3418 100644
--- a/js/src/ds/LifoAlloc.h
+++ b/js/src/ds/LifoAlloc.h
@@ -15,6 +15,8 @@
#include "mozilla/TemplateLib.h"
#include "mozilla/TypeTraits.h"
+#include <new>
+
// This data structure supports stacky LIFO allocation (mark/release and
// LifoAllocScope). It does not maintain one contiguous segment; instead, it
// maintains a bunch of linked memory segments. In order to prevent malloc/free
@@ -285,6 +287,20 @@ class LifoAlloc
return allocImpl(n);
}
+ template<typename T, typename... Args>
+ MOZ_ALWAYS_INLINE T*
+ allocInSize(size_t n, Args&&... args)
+ {
+ MOZ_ASSERT(n >= sizeof(T), "must request enough space to store a T");
+ static_assert(alignof(T) <= detail::LIFO_ALLOC_ALIGN,
+ "LifoAlloc must provide enough alignment to store T");
+ void* ptr = alloc(n);
+ if (!ptr)
+ return nullptr;
+
+ return new (ptr) T(mozilla::Forward<Args>(args)...);
+ }
+
MOZ_ALWAYS_INLINE
void* allocInfallible(size_t n) {
AutoEnterOOMUnsafeRegion oomUnsafe;
diff --git a/js/src/frontend/BytecodeEmitter.cpp b/js/src/frontend/BytecodeEmitter.cpp
index c7c615ccf..4eb7bf880 100644
--- a/js/src/frontend/BytecodeEmitter.cpp
+++ b/js/src/frontend/BytecodeEmitter.cpp
@@ -319,7 +319,7 @@ ScopeKindIsInBody(ScopeKind kind)
static inline void
MarkAllBindingsClosedOver(LexicalScope::Data& data)
{
- BindingName* names = data.names;
+ TrailingNamesArray& names = data.trailingNames;
for (uint32_t i = 0; i < data.length; i++)
names[i] = BindingName(names[i].name(), true);
}
@@ -8978,7 +8978,8 @@ BytecodeEmitter::isRestParameter(ParseNode* pn, bool* result)
if (bindings->nonPositionalFormalStart > 0) {
// |paramName| can be nullptr when the rest destructuring syntax is
// used: `function f(...[]) {}`.
- JSAtom* paramName = bindings->names[bindings->nonPositionalFormalStart - 1].name();
+ JSAtom* paramName =
+ bindings->trailingNames[bindings->nonPositionalFormalStart - 1].name();
*result = paramName && name == paramName;
return true;
}
diff --git a/js/src/frontend/ParseNode.cpp b/js/src/frontend/ParseNode.cpp
index ece3a45df..91f17625c 100644
--- a/js/src/frontend/ParseNode.cpp
+++ b/js/src/frontend/ParseNode.cpp
@@ -838,7 +838,7 @@ LexicalScopeNode::dump(int indent)
if (!isEmptyScope()) {
LexicalScope::Data* bindings = scopeBindings();
for (uint32_t i = 0; i < bindings->length; i++) {
- JSAtom* name = bindings->names[i].name();
+ JSAtom* name = bindings->trailingNames[i].name();
JS::AutoCheckCannotGC nogc;
if (name->hasLatin1Chars())
DumpName(name->latin1Chars(nogc), name->length());
diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp
index 623379f61..7bfab87a3 100644
--- a/js/src/frontend/Parser.cpp
+++ b/js/src/frontend/Parser.cpp
@@ -19,6 +19,8 @@
#include "frontend/Parser.h"
+#include <new>
+
#include "jsapi.h"
#include "jsatom.h"
#include "jscntxt.h"
@@ -1451,16 +1453,26 @@ template <typename Scope>
static typename Scope::Data*
NewEmptyBindingData(ExclusiveContext* cx, LifoAlloc& alloc, uint32_t numBindings)
{
+ using Data = typename Scope::Data;
size_t allocSize = Scope::sizeOfData(numBindings);
- typename Scope::Data* bindings = static_cast<typename Scope::Data*>(alloc.alloc(allocSize));
- if (!bindings) {
+ auto* bindings = alloc.allocInSize<Data>(allocSize, numBindings);
+ if (!bindings)
ReportOutOfMemory(cx);
- return nullptr;
- }
- PodZero(bindings);
return bindings;
}
+/**
+ * Copy-construct |BindingName|s from |bindings| into |cursor|, then return
+ * the location one past the newly-constructed |BindingName|s.
+ */
+static MOZ_MUST_USE BindingName*
+FreshlyInitializeBindings(BindingName* cursor, const Vector<BindingName>& bindings)
+{
+ for (const BindingName& binding : bindings)
+ new (cursor++) BindingName(binding);
+ return cursor;
+}
+
template <>
Maybe<GlobalScope::Data*>
Parser<FullParseHandler>::newGlobalScopeData(ParseContext::Scope& scope)
@@ -1505,22 +1517,20 @@ Parser<FullParseHandler>::newGlobalScopeData(ParseContext::Scope& scope)
return Nothing();
// The ordering here is important. See comments in GlobalScope.
- BindingName* start = bindings->names;
+ BindingName* start = bindings->trailingNames.start();
BindingName* cursor = start;
- PodCopy(cursor, funs.begin(), funs.length());
- cursor += funs.length();
+ cursor = FreshlyInitializeBindings(cursor, funs);
bindings->varStart = cursor - start;
- PodCopy(cursor, vars.begin(), vars.length());
- cursor += vars.length();
+ cursor = FreshlyInitializeBindings(cursor, vars);
bindings->letStart = cursor - start;
- PodCopy(cursor, lets.begin(), lets.length());
- cursor += lets.length();
+ cursor = FreshlyInitializeBindings(cursor, lets);
bindings->constStart = cursor - start;
- PodCopy(cursor, consts.begin(), consts.length());
+ cursor = FreshlyInitializeBindings(cursor, consts);
+
bindings->length = numBindings;
}
@@ -1572,22 +1582,20 @@ Parser<FullParseHandler>::newModuleScopeData(ParseContext::Scope& scope)
return Nothing();
// The ordering here is important. See comments in ModuleScope.
- BindingName* start = bindings->names;
+ BindingName* start = bindings->trailingNames.start();
BindingName* cursor = start;
- PodCopy(cursor, imports.begin(), imports.length());
- cursor += imports.length();
+ cursor = FreshlyInitializeBindings(cursor, imports);
bindings->varStart = cursor - start;
- PodCopy(cursor, vars.begin(), vars.length());
- cursor += vars.length();
+ cursor = FreshlyInitializeBindings(cursor, vars);
bindings->letStart = cursor - start;
- PodCopy(cursor, lets.begin(), lets.length());
- cursor += lets.length();
+ cursor = FreshlyInitializeBindings(cursor, lets);
bindings->constStart = cursor - start;
- PodCopy(cursor, consts.begin(), consts.length());
+ cursor = FreshlyInitializeBindings(cursor, consts);
+
bindings->length = numBindings;
}
@@ -1623,16 +1631,16 @@ Parser<FullParseHandler>::newEvalScopeData(ParseContext::Scope& scope)
if (!bindings)
return Nothing();
- BindingName* start = bindings->names;
+ BindingName* start = bindings->trailingNames.start();
BindingName* cursor = start;
// Keep track of what vars are functions. This is only used in BCE to omit
// superfluous DEFVARs.
- PodCopy(cursor, funs.begin(), funs.length());
- cursor += funs.length();
+ cursor = FreshlyInitializeBindings(cursor, funs);
bindings->varStart = cursor - start;
- PodCopy(cursor, vars.begin(), vars.length());
+ cursor = FreshlyInitializeBindings(cursor, vars);
+
bindings->length = numBindings;
}
@@ -1719,18 +1727,17 @@ Parser<FullParseHandler>::newFunctionScopeData(ParseContext::Scope& scope, bool
return Nothing();
// The ordering here is important. See comments in FunctionScope.
- BindingName* start = bindings->names;
+ BindingName* start = bindings->trailingNames.start();
BindingName* cursor = start;
- PodCopy(cursor, positionalFormals.begin(), positionalFormals.length());
- cursor += positionalFormals.length();
+ cursor = FreshlyInitializeBindings(cursor, positionalFormals);
bindings->nonPositionalFormalStart = cursor - start;
- PodCopy(cursor, formals.begin(), formals.length());
- cursor += formals.length();
+ cursor = FreshlyInitializeBindings(cursor, formals);
bindings->varStart = cursor - start;
- PodCopy(cursor, vars.begin(), vars.length());
+ cursor = FreshlyInitializeBindings(cursor, vars);
+
bindings->length = numBindings;
}
@@ -1760,10 +1767,11 @@ Parser<FullParseHandler>::newVarScopeData(ParseContext::Scope& scope)
return Nothing();
// The ordering here is important. See comments in FunctionScope.
- BindingName* start = bindings->names;
+ BindingName* start = bindings->trailingNames.start();
BindingName* cursor = start;
- PodCopy(cursor, vars.begin(), vars.length());
+ cursor = FreshlyInitializeBindings(cursor, vars);
+
bindings->length = numBindings;
}
@@ -1808,14 +1816,14 @@ Parser<FullParseHandler>::newLexicalScopeData(ParseContext::Scope& scope)
return Nothing();
// The ordering here is important. See comments in LexicalScope.
- BindingName* cursor = bindings->names;
+ BindingName* cursor = bindings->trailingNames.start();
BindingName* start = cursor;
- PodCopy(cursor, lets.begin(), lets.length());
- cursor += lets.length();
+ cursor = FreshlyInitializeBindings(cursor, lets);
bindings->constStart = cursor - start;
- PodCopy(cursor, consts.begin(), consts.length());
+ cursor = FreshlyInitializeBindings(cursor, consts);
+
bindings->length = numBindings;
}
diff --git a/js/src/gc/Barrier.h b/js/src/gc/Barrier.h
index effc9233e..dce3b2a20 100644
--- a/js/src/gc/Barrier.h
+++ b/js/src/gc/Barrier.h
@@ -667,29 +667,15 @@ class HeapSlot : public WriteBarrieredBase<Value>
Element = 1
};
- explicit HeapSlot() = delete;
-
- explicit HeapSlot(NativeObject* obj, Kind kind, uint32_t slot, const Value& v)
- : WriteBarrieredBase<Value>(v)
- {
- post(obj, kind, slot, v);
- }
-
- explicit HeapSlot(NativeObject* obj, Kind kind, uint32_t slot, const HeapSlot& s)
- : WriteBarrieredBase<Value>(s.value)
- {
- post(obj, kind, slot, s);
- }
-
- ~HeapSlot() {
- pre();
- }
-
void init(NativeObject* owner, Kind kind, uint32_t slot, const Value& v) {
value = v;
post(owner, kind, slot, v);
}
+ void destroy() {
+ pre();
+ }
+
#ifdef DEBUG
bool preconditionForSet(NativeObject* owner, Kind kind, uint32_t slot) const;
bool preconditionForWriteBarrierPost(NativeObject* obj, Kind kind, uint32_t slot,
@@ -703,11 +689,6 @@ class HeapSlot : public WriteBarrieredBase<Value>
post(owner, kind, slot, v);
}
- /* For users who need to manually barrier the raw types. */
- static void writeBarrierPost(NativeObject* owner, Kind kind, uint32_t slot, const Value& target) {
- reinterpret_cast<HeapSlot*>(const_cast<Value*>(&target))->post(owner, kind, slot, target);
- }
-
private:
void post(NativeObject* owner, Kind kind, uint32_t slot, const Value& target) {
MOZ_ASSERT(preconditionForWriteBarrierPost(owner, kind, slot, target));
diff --git a/js/src/gc/GCInternals.h b/js/src/gc/GCInternals.h
index 4919b87a5..e8df0bb70 100644
--- a/js/src/gc/GCInternals.h
+++ b/js/src/gc/GCInternals.h
@@ -9,7 +9,6 @@
#include "mozilla/ArrayUtils.h"
#include "mozilla/Maybe.h"
-#include "mozilla/PodOperations.h"
#include "jscntxt.h"
@@ -102,9 +101,9 @@ struct TenureCountCache
static const size_t EntryShift = 4;
static const size_t EntryCount = 1 << EntryShift;
- TenureCount entries[EntryCount];
+ TenureCount entries[EntryCount] = {}; // zeroes
- TenureCountCache() { mozilla::PodZero(this); }
+ TenureCountCache() = default;
HashNumber hash(ObjectGroup* group) {
#if JS_BITS_PER_WORD == 32
diff --git a/js/src/gc/Marking.cpp b/js/src/gc/Marking.cpp
index b2c105999..3ea4c9d29 100644
--- a/js/src/gc/Marking.cpp
+++ b/js/src/gc/Marking.cpp
@@ -1231,34 +1231,34 @@ BindingIter::trace(JSTracer* trc)
void
LexicalScope::Data::trace(JSTracer* trc)
{
- TraceBindingNames(trc, names, length);
+ TraceBindingNames(trc, trailingNames.start(), length);
}
void
FunctionScope::Data::trace(JSTracer* trc)
{
TraceNullableEdge(trc, &canonicalFunction, "scope canonical function");
- TraceNullableBindingNames(trc, names, length);
+ TraceNullableBindingNames(trc, trailingNames.start(), length);
}
void
VarScope::Data::trace(JSTracer* trc)
{
- TraceBindingNames(trc, names, length);
+ TraceBindingNames(trc, trailingNames.start(), length);
}
void
GlobalScope::Data::trace(JSTracer* trc)
{
- TraceBindingNames(trc, names, length);
+ TraceBindingNames(trc, trailingNames.start(), length);
}
void
EvalScope::Data::trace(JSTracer* trc)
{
- TraceBindingNames(trc, names, length);
+ TraceBindingNames(trc, trailingNames.start(), length);
}
void
ModuleScope::Data::trace(JSTracer* trc)
{
TraceNullableEdge(trc, &module, "scope module");
- TraceBindingNames(trc, names, length);
+ TraceBindingNames(trc, trailingNames.start(), length);
}
void
Scope::traceChildren(JSTracer* trc)
@@ -1302,13 +1302,13 @@ js::GCMarker::eagerlyMarkChildren(Scope* scope)
traverseEdge(scope, static_cast<Scope*>(scope->enclosing_));
if (scope->environmentShape_)
traverseEdge(scope, static_cast<Shape*>(scope->environmentShape_));
- BindingName* names = nullptr;
+ TrailingNamesArray* names = nullptr;
uint32_t length = 0;
switch (scope->kind_) {
case ScopeKind::Function: {
FunctionScope::Data* data = reinterpret_cast<FunctionScope::Data*>(scope->data_);
traverseEdge(scope, static_cast<JSObject*>(data->canonicalFunction));
- names = data->names;
+ names = &data->trailingNames;
length = data->length;
break;
}
@@ -1316,7 +1316,7 @@ js::GCMarker::eagerlyMarkChildren(Scope* scope)
case ScopeKind::FunctionBodyVar:
case ScopeKind::ParameterExpressionVar: {
VarScope::Data* data = reinterpret_cast<VarScope::Data*>(scope->data_);
- names = data->names;
+ names = &data->trailingNames;
length = data->length;
break;
}
@@ -1327,7 +1327,7 @@ js::GCMarker::eagerlyMarkChildren(Scope* scope)
case ScopeKind::NamedLambda:
case ScopeKind::StrictNamedLambda: {
LexicalScope::Data* data = reinterpret_cast<LexicalScope::Data*>(scope->data_);
- names = data->names;
+ names = &data->trailingNames;
length = data->length;
break;
}
@@ -1335,7 +1335,7 @@ js::GCMarker::eagerlyMarkChildren(Scope* scope)
case ScopeKind::Global:
case ScopeKind::NonSyntactic: {
GlobalScope::Data* data = reinterpret_cast<GlobalScope::Data*>(scope->data_);
- names = data->names;
+ names = &data->trailingNames;
length = data->length;
break;
}
@@ -1343,7 +1343,7 @@ js::GCMarker::eagerlyMarkChildren(Scope* scope)
case ScopeKind::Eval:
case ScopeKind::StrictEval: {
EvalScope::Data* data = reinterpret_cast<EvalScope::Data*>(scope->data_);
- names = data->names;
+ names = &data->trailingNames;
length = data->length;
break;
}
@@ -1351,7 +1351,7 @@ js::GCMarker::eagerlyMarkChildren(Scope* scope)
case ScopeKind::Module: {
ModuleScope::Data* data = reinterpret_cast<ModuleScope::Data*>(scope->data_);
traverseEdge(scope, static_cast<JSObject*>(data->module));
- names = data->names;
+ names = &data->trailingNames;
length = data->length;
break;
}
@@ -1361,12 +1361,12 @@ js::GCMarker::eagerlyMarkChildren(Scope* scope)
}
if (scope->kind_ == ScopeKind::Function) {
for (uint32_t i = 0; i < length; i++) {
- if (JSAtom* name = names[i].name())
+ if (JSAtom* name = names->operator[](i).name())
traverseEdge(scope, static_cast<JSString*>(name));
}
} else {
for (uint32_t i = 0; i < length; i++)
- traverseEdge(scope, static_cast<JSString*>(names[i].name()));
+ traverseEdge(scope, static_cast<JSString*>(names->operator[](i).name()));
}
}
diff --git a/js/src/gc/Statistics.h b/js/src/gc/Statistics.h
index ca1969b2c..08a2810cf 100644
--- a/js/src/gc/Statistics.h
+++ b/js/src/gc/Statistics.h
@@ -10,7 +10,6 @@
#include "mozilla/EnumeratedArray.h"
#include "mozilla/IntegerRange.h"
#include "mozilla/Maybe.h"
-#include "mozilla/PodOperations.h"
#include "jsalloc.h"
#include "jsgc.h"
@@ -112,29 +111,26 @@ enum Stat {
struct ZoneGCStats
{
/* Number of zones collected in this GC. */
- int collectedZoneCount;
+ int collectedZoneCount = 0;
/* Total number of zones in the Runtime at the start of this GC. */
- int zoneCount;
+ int zoneCount = 0;
/* Number of zones swept in this GC. */
- int sweptZoneCount;
+ int sweptZoneCount = 0;
/* Total number of compartments in all zones collected. */
- int collectedCompartmentCount;
+ int collectedCompartmentCount = 0;
/* Total number of compartments in the Runtime at the start of this GC. */
- int compartmentCount;
+ int compartmentCount = 0;
/* Total number of compartments swept by this GC. */
- int sweptCompartmentCount;
+ int sweptCompartmentCount = 0;
bool isCollectingAllZones() const { return collectedZoneCount == zoneCount; }
- ZoneGCStats()
- : collectedZoneCount(0), zoneCount(0), sweptZoneCount(0),
- collectedCompartmentCount(0), compartmentCount(0), sweptCompartmentCount(0)
- {}
+ ZoneGCStats() = default;
};
#define FOR_EACH_GC_PROFILE_TIME(_) \
diff --git a/js/src/jit/BacktrackingAllocator.cpp b/js/src/jit/BacktrackingAllocator.cpp
index 94ef25785..73aceeccb 100644
--- a/js/src/jit/BacktrackingAllocator.cpp
+++ b/js/src/jit/BacktrackingAllocator.cpp
@@ -378,7 +378,6 @@ BacktrackingAllocator::init()
size_t numVregs = graph.numVirtualRegisters();
if (!vregs.init(mir->alloc(), numVregs))
return false;
- memset(&vregs[0], 0, sizeof(VirtualRegister) * numVregs);
for (uint32_t i = 0; i < numVregs; i++)
new(&vregs[i]) VirtualRegister();
@@ -1101,9 +1100,9 @@ BacktrackingAllocator::mergeAndQueueRegisters()
if (iter->isParameter()) {
for (size_t i = 0; i < iter->numDefs(); i++) {
DebugOnly<bool> found = false;
- VirtualRegister &paramVreg = vreg(iter->getDef(i));
+ VirtualRegister& paramVreg = vreg(iter->getDef(i));
for (; original < paramVreg.vreg(); original++) {
- VirtualRegister &originalVreg = vregs[original];
+ VirtualRegister& originalVreg = vregs[original];
if (*originalVreg.def()->output() == *iter->getDef(i)->output()) {
MOZ_ASSERT(originalVreg.ins()->isParameter());
if (!tryMergeBundles(originalVreg.firstBundle(), paramVreg.firstBundle()))
@@ -1136,7 +1135,7 @@ BacktrackingAllocator::mergeAndQueueRegisters()
LBlock* block = graph.getBlock(i);
for (size_t j = 0; j < block->numPhis(); j++) {
LPhi* phi = block->getPhi(j);
- VirtualRegister &outputVreg = vreg(phi->getDef(0));
+ VirtualRegister& outputVreg = vreg(phi->getDef(0));
for (size_t k = 0, kend = phi->numOperands(); k < kend; k++) {
VirtualRegister& inputVreg = vreg(phi->getOperand(k)->toUse());
if (!tryMergeBundles(inputVreg.firstBundle(), outputVreg.firstBundle()))
@@ -1334,7 +1333,7 @@ BacktrackingAllocator::computeRequirement(LiveBundle* bundle,
for (LiveRange::BundleLinkIterator iter = bundle->rangesBegin(); iter; iter++) {
LiveRange* range = LiveRange::get(*iter);
- VirtualRegister &reg = vregs[range->vreg()];
+ VirtualRegister& reg = vregs[range->vreg()];
if (range->hasDefinition()) {
// Deal with any definition constraints/hints.
@@ -1396,7 +1395,7 @@ BacktrackingAllocator::tryAllocateRegister(PhysicalRegister& r, LiveBundle* bund
for (LiveRange::BundleLinkIterator iter = bundle->rangesBegin(); iter; iter++) {
LiveRange* range = LiveRange::get(*iter);
- VirtualRegister &reg = vregs[range->vreg()];
+ VirtualRegister& reg = vregs[range->vreg()];
if (!reg.isCompatible(r.reg))
return true;
diff --git a/js/src/jit/BacktrackingAllocator.h b/js/src/jit/BacktrackingAllocator.h
index 6d14ffacd..9910498fb 100644
--- a/js/src/jit/BacktrackingAllocator.h
+++ b/js/src/jit/BacktrackingAllocator.h
@@ -478,34 +478,31 @@ class LiveBundle : public TempObject
class VirtualRegister
{
// Instruction which defines this register.
- LNode* ins_;
+ LNode* ins_ = nullptr;
// Definition in the instruction for this register.
- LDefinition* def_;
+ LDefinition* def_ = nullptr;
// All live ranges for this register. These may overlap each other, and are
// ordered by their start position.
InlineForwardList<LiveRange::RegisterLink> ranges_;
// Whether def_ is a temp or an output.
- bool isTemp_;
+ bool isTemp_ = false;
// Whether this vreg is an input for some phi. This use is not reflected in
// any range on the vreg.
- bool usedByPhi_;
+ bool usedByPhi_ = false;
// If this register's definition is MUST_REUSE_INPUT, whether a copy must
// be introduced before the definition that relaxes the policy.
- bool mustCopyInput_;
+ bool mustCopyInput_ = false;
void operator=(const VirtualRegister&) = delete;
VirtualRegister(const VirtualRegister&) = delete;
public:
- explicit VirtualRegister()
- {
- // Note: This class is zeroed before it is constructed.
- }
+ VirtualRegister() = default;
void init(LNode* ins, LDefinition* def, bool isTemp) {
MOZ_ASSERT(!ins_);
diff --git a/js/src/jit/IonCode.h b/js/src/jit/IonCode.h
index c581aa62e..55c3d4dad 100644
--- a/js/src/jit/IonCode.h
+++ b/js/src/jit/IonCode.h
@@ -9,7 +9,6 @@
#include "mozilla/Atomics.h"
#include "mozilla/MemoryReporting.h"
-#include "mozilla/PodOperations.h"
#include "jstypes.h"
@@ -692,17 +691,15 @@ struct IonScriptCounts
{
private:
// Any previous invalidated compilation(s) for the script.
- IonScriptCounts* previous_;
+ IonScriptCounts* previous_ = nullptr;
// Information about basic blocks in this script.
- size_t numBlocks_;
- IonBlockCounts* blocks_;
+ size_t numBlocks_ = 0;
+ IonBlockCounts* blocks_ = nullptr;
public:
- IonScriptCounts() {
- mozilla::PodZero(this);
- }
+ IonScriptCounts() = default;
~IonScriptCounts() {
for (size_t i = 0; i < numBlocks_; i++)
diff --git a/js/src/jit/shared/Assembler-shared.h b/js/src/jit/shared/Assembler-shared.h
index aac9687b8..8044e75cb 100644
--- a/js/src/jit/shared/Assembler-shared.h
+++ b/js/src/jit/shared/Assembler-shared.h
@@ -7,8 +7,6 @@
#ifndef jit_shared_Assembler_shared_h
#define jit_shared_Assembler_shared_h
-#include "mozilla/PodOperations.h"
-
#include <limits.h>
#include "jit/AtomicOp.h"
@@ -491,10 +489,10 @@ class CodeLabel
class CodeOffsetJump
{
- size_t offset_;
+ size_t offset_ = 0;
#ifdef JS_SMALL_BRANCH
- size_t jumpTableIndex_;
+ size_t jumpTableIndex_ = 0;
#endif
public:
@@ -510,9 +508,7 @@ class CodeOffsetJump
explicit CodeOffsetJump(size_t offset) : offset_(offset) {}
#endif
- CodeOffsetJump() {
- mozilla::PodZero(this);
- }
+ CodeOffsetJump() = default;
size_t offset() const {
return offset_;
diff --git a/js/src/jit/x86-shared/AssemblerBuffer-x86-shared.h b/js/src/jit/x86-shared/AssemblerBuffer-x86-shared.h
index 8cb557784..8343579c8 100644
--- a/js/src/jit/x86-shared/AssemblerBuffer-x86-shared.h
+++ b/js/src/jit/x86-shared/AssemblerBuffer-x86-shared.h
@@ -93,7 +93,8 @@ namespace jit {
void ensureSpace(size_t space)
{
- if (MOZ_UNLIKELY(!m_buffer.reserve(m_buffer.length() + space)))
+ if (MOZ_UNLIKELY(m_buffer.length() > (SIZE_MAX - space) ||
+ !m_buffer.reserve(m_buffer.length() + space)))
oomDetected();
}
diff --git a/js/src/vm/Caches.h b/js/src/vm/Caches.h
index 91a78bdc8..b11dd9dcb 100644
--- a/js/src/vm/Caches.h
+++ b/js/src/vm/Caches.h
@@ -7,6 +7,8 @@
#ifndef vm_Caches_h
#define vm_Caches_h
+#include <new>
+
#include "jsatom.h"
#include "jsbytecode.h"
#include "jsobj.h"
@@ -191,14 +193,20 @@ class NewObjectCache
char templateObject[MAX_OBJ_SIZE];
};
- Entry entries[41]; // TODO: reconsider size
+ using EntryArray = Entry[41]; // TODO: reconsider size;
+ EntryArray entries;
public:
- typedef int EntryIndex;
+ using EntryIndex = int;
+
+ NewObjectCache()
+ : entries{} // zeroes out the array
+ {}
- NewObjectCache() { mozilla::PodZero(this); }
- void purge() { mozilla::PodZero(this); }
+ void purge() {
+ new (&entries) EntryArray{}; // zeroes out the array
+ }
/* Remove any cached items keyed on moved objects. */
void clearNurseryObjects(JSRuntime* rt);
diff --git a/js/src/vm/NativeObject.h b/js/src/vm/NativeObject.h
index d2c06eabc..4dbc167ab 100644
--- a/js/src/vm/NativeObject.h
+++ b/js/src/vm/NativeObject.h
@@ -876,7 +876,7 @@ class NativeObject : public ShapedObject
MOZ_ASSERT(end <= getDenseInitializedLength());
MOZ_ASSERT(!denseElementsAreCopyOnWrite());
for (size_t i = start; i < end; i++)
- elements_[i].HeapSlot::~HeapSlot();
+ elements_[i].destroy();
}
/*
@@ -885,7 +885,7 @@ class NativeObject : public ShapedObject
*/
void prepareSlotRangeForOverwrite(size_t start, size_t end) {
for (size_t i = start; i < end; i++)
- getSlotAddressUnchecked(i)->HeapSlot::~HeapSlot();
+ getSlotAddressUnchecked(i)->destroy();
}
public:
@@ -1085,7 +1085,8 @@ class NativeObject : public ShapedObject
for (uint32_t i = 0; i < count; ++i)
elements_[dstStart + i].set(this, HeapSlot::Element, dstStart + i, src[i]);
} else {
- memcpy(&elements_[dstStart], src, count * sizeof(HeapSlot));
+ memcpy(reinterpret_cast<Value*>(&elements_[dstStart]), src,
+ count * sizeof(Value));
elementsRangeWriteBarrierPost(dstStart, count);
}
}
@@ -1094,7 +1095,7 @@ class NativeObject : public ShapedObject
MOZ_ASSERT(dstStart + count <= getDenseCapacity());
MOZ_ASSERT(!denseElementsAreCopyOnWrite());
MOZ_ASSERT(!denseElementsAreFrozen());
- memcpy(&elements_[dstStart], src, count * sizeof(HeapSlot));
+ memcpy(reinterpret_cast<Value*>(&elements_[dstStart]), src, count * sizeof(Value));
elementsRangeWriteBarrierPost(dstStart, count);
}
@@ -1142,7 +1143,7 @@ class NativeObject : public ShapedObject
MOZ_ASSERT(!denseElementsAreCopyOnWrite());
MOZ_ASSERT(!denseElementsAreFrozen());
- memmove(elements_ + dstStart, elements_ + srcStart, count * sizeof(Value));
+ memmove(elements_ + dstStart, elements_ + srcStart, count * sizeof(HeapSlot));
elementsRangeWriteBarrierPost(dstStart, count);
}
diff --git a/js/src/vm/Runtime.h b/js/src/vm/Runtime.h
index 735adadf2..f354d2069 100644
--- a/js/src/vm/Runtime.h
+++ b/js/src/vm/Runtime.h
@@ -11,11 +11,11 @@
#include "mozilla/Attributes.h"
#include "mozilla/LinkedList.h"
#include "mozilla/MemoryReporting.h"
-#include "mozilla/PodOperations.h"
#include "mozilla/Scoped.h"
#include "mozilla/ThreadLocal.h"
#include "mozilla/Vector.h"
+#include <algorithm>
#include <setjmp.h>
#include "jsatom.h"
@@ -1504,20 +1504,21 @@ PerThreadData::exclusiveThreadsPresent()
static MOZ_ALWAYS_INLINE void
MakeRangeGCSafe(Value* vec, size_t len)
{
- mozilla::PodZero(vec, len);
+ // Don't PodZero here because JS::Value is non-trivial.
+ for (size_t i = 0; i < len; i++)
+ vec[i].setDouble(+0.0);
}
static MOZ_ALWAYS_INLINE void
MakeRangeGCSafe(Value* beg, Value* end)
{
- mozilla::PodZero(beg, end - beg);
+ MakeRangeGCSafe(beg, end - beg);
}
static MOZ_ALWAYS_INLINE void
MakeRangeGCSafe(jsid* beg, jsid* end)
{
- for (jsid* id = beg; id != end; ++id)
- *id = INT_TO_JSID(0);
+ std::fill(beg, end, INT_TO_JSID(0));
}
static MOZ_ALWAYS_INLINE void
@@ -1529,13 +1530,13 @@ MakeRangeGCSafe(jsid* vec, size_t len)
static MOZ_ALWAYS_INLINE void
MakeRangeGCSafe(Shape** beg, Shape** end)
{
- mozilla::PodZero(beg, end - beg);
+ std::fill(beg, end, nullptr);
}
static MOZ_ALWAYS_INLINE void
MakeRangeGCSafe(Shape** vec, size_t len)
{
- mozilla::PodZero(vec, len);
+ MakeRangeGCSafe(vec, vec + len);
}
static MOZ_ALWAYS_INLINE void
diff --git a/js/src/vm/Scope.cpp b/js/src/vm/Scope.cpp
index 112b34586..a71c03695 100644
--- a/js/src/vm/Scope.cpp
+++ b/js/src/vm/Scope.cpp
@@ -191,12 +191,12 @@ template <typename ConcreteScope>
static UniquePtr<typename ConcreteScope::Data>
NewEmptyScopeData(ExclusiveContext* cx, uint32_t length = 0)
{
- uint8_t* bytes = cx->zone()->pod_calloc<uint8_t>(ConcreteScope::sizeOfData(length));
+ uint8_t* bytes = cx->zone()->pod_malloc<uint8_t>(ConcreteScope::sizeOfData(length));
if (!bytes)
ReportOutOfMemory(cx);
auto data = reinterpret_cast<typename ConcreteScope::Data*>(bytes);
if (data)
- new (data) typename ConcreteScope::Data();
+ new (data) typename ConcreteScope::Data(length);
return UniquePtr<typename ConcreteScope::Data>(data);
}
@@ -273,7 +273,7 @@ Scope::XDRSizedBindingNames(XDRState<mode>* xdr, Handle<ConcreteScope*> scope,
}
for (uint32_t i = 0; i < length; i++) {
- if (!XDRBindingName(xdr, &data->names[i])) {
+ if (!XDRBindingName(xdr, &data->trailingNames[i])) {
if (mode == XDR_DECODE) {
DeleteScopeData(data.get());
data.set(nullptr);
@@ -1250,7 +1250,7 @@ BindingIter::init(LexicalScope::Data& data, uint32_t firstFrameSlot, uint8_t fla
init(0, 0, 0, 0, 0, 0,
CanHaveEnvironmentSlots | flags,
firstFrameSlot, JSSLOT_FREE(&LexicalEnvironmentObject::class_),
- data.names, data.length);
+ data.trailingNames.start(), data.length);
} else {
// imports - [0, 0)
// positional formals - [0, 0)
@@ -1262,7 +1262,7 @@ BindingIter::init(LexicalScope::Data& data, uint32_t firstFrameSlot, uint8_t fla
init(0, 0, 0, 0, 0, data.constStart,
CanHaveFrameSlots | CanHaveEnvironmentSlots | flags,
firstFrameSlot, JSSLOT_FREE(&LexicalEnvironmentObject::class_),
- data.names, data.length);
+ data.trailingNames.start(), data.length);
}
}
@@ -1283,7 +1283,7 @@ BindingIter::init(FunctionScope::Data& data, uint8_t flags)
init(0, data.nonPositionalFormalStart, data.varStart, data.varStart, data.length, data.length,
flags,
0, JSSLOT_FREE(&CallObject::class_),
- data.names, data.length);
+ data.trailingNames.start(), data.length);
}
void
@@ -1299,7 +1299,7 @@ BindingIter::init(VarScope::Data& data, uint32_t firstFrameSlot)
init(0, 0, 0, 0, data.length, data.length,
CanHaveFrameSlots | CanHaveEnvironmentSlots,
firstFrameSlot, JSSLOT_FREE(&VarEnvironmentObject::class_),
- data.names, data.length);
+ data.trailingNames.start(), data.length);
}
void
@@ -1315,7 +1315,7 @@ BindingIter::init(GlobalScope::Data& data)
init(0, 0, 0, data.varStart, data.letStart, data.constStart,
CannotHaveSlots,
UINT32_MAX, UINT32_MAX,
- data.names, data.length);
+ data.trailingNames.start(), data.length);
}
void
@@ -1343,7 +1343,7 @@ BindingIter::init(EvalScope::Data& data, bool strict)
// consts - [data.length, data.length)
init(0, 0, 0, data.varStart, data.length, data.length,
flags, firstFrameSlot, firstEnvironmentSlot,
- data.names, data.length);
+ data.trailingNames.start(), data.length);
}
void
@@ -1359,7 +1359,7 @@ BindingIter::init(ModuleScope::Data& data)
init(data.varStart, data.varStart, data.varStart, data.varStart, data.letStart, data.constStart,
CanHaveFrameSlots | CanHaveEnvironmentSlots,
0, JSSLOT_FREE(&ModuleEnvironmentObject::class_),
- data.names, data.length);
+ data.trailingNames.start(), data.length);
}
PositionalFormalParameterIter::PositionalFormalParameterIter(JSScript* script)
diff --git a/js/src/vm/Scope.h b/js/src/vm/Scope.h
index 5304d6713..1d04fd9f6 100644
--- a/js/src/vm/Scope.h
+++ b/js/src/vm/Scope.h
@@ -12,6 +12,7 @@
#include "jsobj.h"
#include "jsopcode.h"
+#include "jsutil.h"
#include "gc/Heap.h"
#include "gc/Policy.h"
@@ -111,6 +112,47 @@ class BindingName
void trace(JSTracer* trc);
};
+/**
+ * The various {Global,Module,...}Scope::Data classes consist of always-present
+ * bits, then a trailing array of BindingNames. The various Data classes all
+ * end in a TrailingNamesArray that contains sized/aligned space for *one*
+ * BindingName. Data instances that contain N BindingNames, are then allocated
+ * in sizeof(Data) + (space for (N - 1) BindingNames). Because this class's
+ * |data_| field is properly sized/aligned, the N-BindingName array can start
+ * at |data_|.
+ *
+ * This is concededly a very low-level representation, but we want to only
+ * allocate once for data+bindings both, and this does so approximately as
+ * elegantly as C++ allows.
+ */
+class TrailingNamesArray
+{
+ private:
+ alignas(BindingName) unsigned char data_[sizeof(BindingName)];
+
+ private:
+ // Some versions of GCC treat it as a -Wstrict-aliasing violation (ergo a
+ // -Werror compile error) to reinterpret_cast<> |data_| to |T*|, even
+ // through |void*|. Placing the latter cast in these separate functions
+ // breaks the chain such that affected GCC versions no longer warn/error.
+ void* ptr() {
+ return data_;
+ }
+
+ public:
+ // Explicitly ensure no one accidentally allocates scope data without
+ // poisoning its trailing names.
+ TrailingNamesArray() = delete;
+
+ explicit TrailingNamesArray(size_t nameCount) {
+ if (nameCount)
+ JS_POISON(&data_, 0xCC, sizeof(BindingName) * nameCount);
+ }
+ BindingName* start() { return reinterpret_cast<BindingName*>(ptr()); }
+
+ BindingName& operator[](size_t i) { return start()[i]; }
+};
+
class BindingLocation
{
public:
@@ -337,16 +379,19 @@ class LexicalScope : public Scope
//
// lets - [0, constStart)
// consts - [constStart, length)
- uint32_t constStart;
- uint32_t length;
+ uint32_t constStart = 0;
+ uint32_t length = 0;
// Frame slots [0, nextFrameSlot) are live when this is the innermost
// scope.
- uint32_t nextFrameSlot;
+ uint32_t nextFrameSlot = 0;
// The array of tagged JSAtom* names, allocated beyond the end of the
// struct.
- BindingName names[1];
+ TrailingNamesArray trailingNames;
+
+ explicit Data(size_t nameCount) : trailingNames(nameCount) {}
+ Data() = delete;
void trace(JSTracer* trc);
};
@@ -433,11 +478,11 @@ class FunctionScope : public Scope
// The canonical function of the scope, as during a scope walk we
// often query properties of the JSFunction (e.g., is the function an
// arrow).
- GCPtrFunction canonicalFunction;
+ GCPtrFunction canonicalFunction = {};
// If parameter expressions are present, parameters act like lexical
// bindings.
- bool hasParameterExprs;
+ bool hasParameterExprs = false;
// Bindings are sorted by kind in both frames and environments.
//
@@ -452,17 +497,20 @@ class FunctionScope : public Scope
// positional formals - [0, nonPositionalFormalStart)
// other formals - [nonPositionalParamStart, varStart)
// vars - [varStart, length)
- uint16_t nonPositionalFormalStart;
- uint16_t varStart;
- uint32_t length;
+ uint16_t nonPositionalFormalStart = 0;
+ uint16_t varStart = 0;
+ uint32_t length = 0;
// Frame slots [0, nextFrameSlot) are live when this is the innermost
// scope.
- uint32_t nextFrameSlot;
+ uint32_t nextFrameSlot = 0;
// The array of tagged JSAtom* names, allocated beyond the end of the
// struct.
- BindingName names[1];
+ TrailingNamesArray trailingNames;
+
+ explicit Data(size_t nameCount) : trailingNames(nameCount) {}
+ Data() = delete;
void trace(JSTracer* trc);
};
@@ -548,15 +596,18 @@ class VarScope : public Scope
struct Data
{
// All bindings are vars.
- uint32_t length;
+ uint32_t length = 0;
// Frame slots [firstFrameSlot(), nextFrameSlot) are live when this is
// the innermost scope.
- uint32_t nextFrameSlot;
+ uint32_t nextFrameSlot = 0;
// The array of tagged JSAtom* names, allocated beyond the end of the
// struct.
- BindingName names[1];
+ TrailingNamesArray trailingNames;
+
+ explicit Data(size_t nameCount) : trailingNames(nameCount) {}
+ Data() = delete;
void trace(JSTracer* trc);
};
@@ -638,14 +689,17 @@ class GlobalScope : public Scope
// vars - [varStart, letStart)
// lets - [letStart, constStart)
// consts - [constStart, length)
- uint32_t varStart;
- uint32_t letStart;
- uint32_t constStart;
- uint32_t length;
+ uint32_t varStart = 0;
+ uint32_t letStart = 0;
+ uint32_t constStart = 0;
+ uint32_t length = 0;
// The array of tagged JSAtom* names, allocated beyond the end of the
// struct.
- BindingName names[1];
+ TrailingNamesArray trailingNames;
+
+ explicit Data(size_t nameCount) : trailingNames(nameCount) {}
+ Data() = delete;
void trace(JSTracer* trc);
};
@@ -736,16 +790,19 @@ class EvalScope : public Scope
//
// top-level funcs - [0, varStart)
// vars - [varStart, length)
- uint32_t varStart;
- uint32_t length;
+ uint32_t varStart = 0;
+ uint32_t length = 0;
// Frame slots [0, nextFrameSlot) are live when this is the innermost
// scope.
- uint32_t nextFrameSlot;
+ uint32_t nextFrameSlot = 0;
// The array of tagged JSAtom* names, allocated beyond the end of the
// struct.
- BindingName names[1];
+ TrailingNamesArray trailingNames;
+
+ explicit Data(size_t nameCount) : trailingNames(nameCount) {}
+ Data() = delete;
void trace(JSTracer* trc);
};
@@ -827,7 +884,7 @@ class ModuleScope : public Scope
struct Data
{
// The module of the scope.
- GCPtr<ModuleObject*> module;
+ GCPtr<ModuleObject*> module = {};
// Bindings are sorted by kind.
//
@@ -835,18 +892,21 @@ class ModuleScope : public Scope
// vars - [varStart, letStart)
// lets - [letStart, constStart)
// consts - [constStart, length)
- uint32_t varStart;
- uint32_t letStart;
- uint32_t constStart;
- uint32_t length;
+ uint32_t varStart = 0;
+ uint32_t letStart = 0;
+ uint32_t constStart = 0;
+ uint32_t length = 0;
// Frame slots [0, nextFrameSlot) are live when this is the innermost
// scope.
- uint32_t nextFrameSlot;
+ uint32_t nextFrameSlot = 0;
// The array of tagged JSAtom* names, allocated beyond the end of the
// struct.
- BindingName names[1];
+ TrailingNamesArray trailingNames;
+
+ explicit Data(size_t nameCount) : trailingNames(nameCount) {}
+ Data() = delete;
void trace(JSTracer* trc);
};
diff --git a/js/src/vm/String.h b/js/src/vm/String.h
index 1a0c58575..514e2c205 100644
--- a/js/src/vm/String.h
+++ b/js/src/vm/String.h
@@ -8,7 +8,6 @@
#define vm_String_h
#include "mozilla/MemoryReporting.h"
-#include "mozilla/PodOperations.h"
#include "mozilla/Range.h"
#include "jsapi.h"
@@ -1087,19 +1086,17 @@ class StaticStrings
static const size_t SMALL_CHAR_LIMIT = 128U;
static const size_t NUM_SMALL_CHARS = 64U;
- JSAtom* length2StaticTable[NUM_SMALL_CHARS * NUM_SMALL_CHARS];
+ JSAtom* length2StaticTable[NUM_SMALL_CHARS * NUM_SMALL_CHARS] = {}; // zeroes
public:
/* We keep these public for the JITs. */
static const size_t UNIT_STATIC_LIMIT = 256U;
- JSAtom* unitStaticTable[UNIT_STATIC_LIMIT];
+ JSAtom* unitStaticTable[UNIT_STATIC_LIMIT] = {}; // zeroes
static const size_t INT_STATIC_LIMIT = 256U;
- JSAtom* intStaticTable[INT_STATIC_LIMIT];
+ JSAtom* intStaticTable[INT_STATIC_LIMIT] = {}; // zeroes
- StaticStrings() {
- mozilla::PodZero(this);
- }
+ StaticStrings() = default;
bool init(JSContext* cx);
void trace(JSTracer* trc);
diff --git a/js/src/vm/TypeInference.h b/js/src/vm/TypeInference.h
index 9ba1c3cc8..0e737bad7 100644
--- a/js/src/vm/TypeInference.h
+++ b/js/src/vm/TypeInference.h
@@ -807,12 +807,10 @@ class PreliminaryObjectArray
private:
// All objects with the type which have been allocated. The pointers in
// this array are weak.
- JSObject* objects[COUNT];
+ JSObject* objects[COUNT] = {}; // zeroes
public:
- PreliminaryObjectArray() {
- mozilla::PodZero(this);
- }
+ PreliminaryObjectArray() = default;
void registerNewObject(JSObject* res);
void unregisterObject(JSObject* obj);
@@ -906,11 +904,11 @@ class TypeNewScript
private:
// Scripted function which this information was computed for.
- HeapPtr<JSFunction*> function_;
+ HeapPtr<JSFunction*> function_ = {};
// Any preliminary objects with the type. The analyses are not performed
// until this array is cleared.
- PreliminaryObjectArray* preliminaryObjects;
+ PreliminaryObjectArray* preliminaryObjects = nullptr;
// After the new script properties analyses have been performed, a template
// object to use for newly constructed objects. The shape of this object
@@ -918,7 +916,7 @@ class TypeNewScript
// allocation kind to use. This is null if the new objects have an unboxed
// layout, in which case the UnboxedLayout provides the initial structure
// of the object.
- HeapPtr<PlainObject*> templateObject_;
+ HeapPtr<PlainObject*> templateObject_ = {};
// Order in which definite properties become initialized. We need this in
// case the definite properties are invalidated (such as by adding a setter
@@ -928,21 +926,21 @@ class TypeNewScript
// shape. Property assignments in inner frames are preceded by a series of
// SETPROP_FRAME entries specifying the stack down to the frame containing
// the write.
- Initializer* initializerList;
+ Initializer* initializerList = nullptr;
// If there are additional properties found by the acquired properties
// analysis which were not found by the definite properties analysis, this
// shape contains all such additional properties (plus the definite
// properties). When an object of this group acquires this shape, it is
// fully initialized and its group can be changed to initializedGroup.
- HeapPtr<Shape*> initializedShape_;
+ HeapPtr<Shape*> initializedShape_ = {};
// Group with definite properties set for all properties found by
// both the definite and acquired properties analyses.
- HeapPtr<ObjectGroup*> initializedGroup_;
+ HeapPtr<ObjectGroup*> initializedGroup_ = {};
public:
- TypeNewScript() { mozilla::PodZero(this); }
+ TypeNewScript() = default;
~TypeNewScript() {
js_delete(preliminaryObjects);
js_free(initializerList);
diff --git a/js/src/wasm/AsmJS.cpp b/js/src/wasm/AsmJS.cpp
index 7fade24fb..2237d1d7f 100644
--- a/js/src/wasm/AsmJS.cpp
+++ b/js/src/wasm/AsmJS.cpp
@@ -249,14 +249,14 @@ typedef Vector<AsmJSImport, 0, SystemAllocPolicy> AsmJSImportVector;
// case the function is toString()ed.
class AsmJSExport
{
- uint32_t funcIndex_;
+ uint32_t funcIndex_ = 0;
// All fields are treated as cacheable POD:
- uint32_t startOffsetInModule_; // Store module-start-relative offsets
- uint32_t endOffsetInModule_; // so preserved by serialization.
+ uint32_t startOffsetInModule_ = 0; // Store module-start-relative offsets
+ uint32_t endOffsetInModule_ = 0; // so preserved by serialization.
public:
- AsmJSExport() { PodZero(this); }
+ AsmJSExport() = default;
AsmJSExport(uint32_t funcIndex, uint32_t startOffsetInModule, uint32_t endOffsetInModule)
: funcIndex_(funcIndex),
startOffsetInModule_(startOffsetInModule),
@@ -288,12 +288,12 @@ enum class CacheResult
struct AsmJSMetadataCacheablePod
{
- uint32_t numFFIs;
- uint32_t srcLength;
- uint32_t srcLengthWithRightBrace;
- bool usesSimd;
+ uint32_t numFFIs = 0;
+ uint32_t srcLength = 0;
+ uint32_t srcLengthWithRightBrace = 0;
+ bool usesSimd = false;
- AsmJSMetadataCacheablePod() { PodZero(this); }
+ AsmJSMetadataCacheablePod() = default;
};
struct js::AsmJSMetadata : Metadata, AsmJSMetadataCacheablePod
diff --git a/js/xpconnect/src/XPCJSContext.cpp b/js/xpconnect/src/XPCJSContext.cpp
index f352607d4..82af64520 100644
--- a/js/xpconnect/src/XPCJSContext.cpp
+++ b/js/xpconnect/src/XPCJSContext.cpp
@@ -28,7 +28,6 @@
#include "nsPIDOMWindow.h"
#include "nsPrintfCString.h"
#include "mozilla/Preferences.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Services.h"
#include "mozilla/dom/ScriptSettings.h"
@@ -135,8 +134,6 @@ public:
{
TimeStamp start = TimeStamp::Now();
bool hadSnowWhiteObjects = nsCycleCollector_doDeferredDeletion();
- Telemetry::Accumulate(Telemetry::CYCLE_COLLECTOR_ASYNC_SNOW_WHITE_FREEING,
- uint32_t((TimeStamp::Now() - start).ToMilliseconds()));
if (hadSnowWhiteObjects && !mContinuation) {
mContinuation = true;
if (NS_FAILED(NS_DispatchToCurrentThread(this))) {
@@ -1317,7 +1314,6 @@ XPCJSContext::InterruptCallback(JSContext* cx)
// Accumulate slow script invokation delay.
if (!chrome && !self->mTimeoutAccumulated) {
uint32_t delay = uint32_t(self->mSlowScriptActualWait.ToMilliseconds() - (limit * 1000.0));
- Telemetry::Accumulate(Telemetry::SLOW_SCRIPT_NOTIFY_DELAY, delay);
self->mTimeoutAccumulated = true;
}
@@ -2955,100 +2951,7 @@ JSSizeOfTab(JSObject* objArg, size_t* jsObjectsSize, size_t* jsStringsSize,
static void
AccumulateTelemetryCallback(int id, uint32_t sample, const char* key)
{
- switch (id) {
- case JS_TELEMETRY_GC_REASON:
- Telemetry::Accumulate(Telemetry::GC_REASON_2, sample);
- break;
- case JS_TELEMETRY_GC_IS_ZONE_GC:
- Telemetry::Accumulate(Telemetry::GC_IS_COMPARTMENTAL, sample);
- break;
- case JS_TELEMETRY_GC_MS:
- Telemetry::Accumulate(Telemetry::GC_MS, sample);
- break;
- case JS_TELEMETRY_GC_BUDGET_MS:
- Telemetry::Accumulate(Telemetry::GC_BUDGET_MS, sample);
- break;
- case JS_TELEMETRY_GC_ANIMATION_MS:
- Telemetry::Accumulate(Telemetry::GC_ANIMATION_MS, sample);
- break;
- case JS_TELEMETRY_GC_MAX_PAUSE_MS:
- Telemetry::Accumulate(Telemetry::GC_MAX_PAUSE_MS, sample);
- break;
- case JS_TELEMETRY_GC_MARK_MS:
- Telemetry::Accumulate(Telemetry::GC_MARK_MS, sample);
- break;
- case JS_TELEMETRY_GC_SWEEP_MS:
- Telemetry::Accumulate(Telemetry::GC_SWEEP_MS, sample);
- break;
- case JS_TELEMETRY_GC_COMPACT_MS:
- Telemetry::Accumulate(Telemetry::GC_COMPACT_MS, sample);
- break;
- case JS_TELEMETRY_GC_MARK_ROOTS_MS:
- Telemetry::Accumulate(Telemetry::GC_MARK_ROOTS_MS, sample);
- break;
- case JS_TELEMETRY_GC_MARK_GRAY_MS:
- Telemetry::Accumulate(Telemetry::GC_MARK_GRAY_MS, sample);
- break;
- case JS_TELEMETRY_GC_SLICE_MS:
- Telemetry::Accumulate(Telemetry::GC_SLICE_MS, sample);
- break;
- case JS_TELEMETRY_GC_SLOW_PHASE:
- Telemetry::Accumulate(Telemetry::GC_SLOW_PHASE, sample);
- break;
- case JS_TELEMETRY_GC_MMU_50:
- Telemetry::Accumulate(Telemetry::GC_MMU_50, sample);
- break;
- case JS_TELEMETRY_GC_RESET:
- Telemetry::Accumulate(Telemetry::GC_RESET, sample);
- break;
- case JS_TELEMETRY_GC_RESET_REASON:
- Telemetry::Accumulate(Telemetry::GC_RESET_REASON, sample);
- break;
- case JS_TELEMETRY_GC_INCREMENTAL_DISABLED:
- Telemetry::Accumulate(Telemetry::GC_INCREMENTAL_DISABLED, sample);
- break;
- case JS_TELEMETRY_GC_NON_INCREMENTAL:
- Telemetry::Accumulate(Telemetry::GC_NON_INCREMENTAL, sample);
- break;
- case JS_TELEMETRY_GC_NON_INCREMENTAL_REASON:
- Telemetry::Accumulate(Telemetry::GC_NON_INCREMENTAL_REASON, sample);
- break;
- case JS_TELEMETRY_GC_SCC_SWEEP_TOTAL_MS:
- Telemetry::Accumulate(Telemetry::GC_SCC_SWEEP_TOTAL_MS, sample);
- break;
- case JS_TELEMETRY_GC_SCC_SWEEP_MAX_PAUSE_MS:
- Telemetry::Accumulate(Telemetry::GC_SCC_SWEEP_MAX_PAUSE_MS, sample);
- break;
- case JS_TELEMETRY_GC_MINOR_REASON:
- Telemetry::Accumulate(Telemetry::GC_MINOR_REASON, sample);
- break;
- case JS_TELEMETRY_GC_MINOR_REASON_LONG:
- Telemetry::Accumulate(Telemetry::GC_MINOR_REASON_LONG, sample);
- break;
- case JS_TELEMETRY_GC_MINOR_US:
- Telemetry::Accumulate(Telemetry::GC_MINOR_US, sample);
- break;
- case JS_TELEMETRY_GC_NURSERY_BYTES:
- Telemetry::Accumulate(Telemetry::GC_NURSERY_BYTES, sample);
- break;
- case JS_TELEMETRY_GC_PRETENURE_COUNT:
- Telemetry::Accumulate(Telemetry::GC_PRETENURE_COUNT, sample);
- break;
- case JS_TELEMETRY_DEPRECATED_LANGUAGE_EXTENSIONS_IN_CONTENT:
- Telemetry::Accumulate(Telemetry::JS_DEPRECATED_LANGUAGE_EXTENSIONS_IN_CONTENT, sample);
- break;
- case JS_TELEMETRY_DEPRECATED_LANGUAGE_EXTENSIONS_IN_ADDONS:
- Telemetry::Accumulate(Telemetry::JS_DEPRECATED_LANGUAGE_EXTENSIONS_IN_ADDONS, sample);
- break;
- case JS_TELEMETRY_ADDON_EXCEPTIONS:
- Telemetry::Accumulate(Telemetry::JS_TELEMETRY_ADDON_EXCEPTIONS, nsDependentCString(key), sample);
- break;
- case JS_TELEMETRY_AOT_USAGE:
- Telemetry::Accumulate(Telemetry::JS_AOT_USAGE, sample);
- break;
- default:
- MOZ_ASSERT_UNREACHABLE("Unexpected JS_TELEMETRY id");
- }
+/* STUB */
}
static void
diff --git a/layout/base/nsArenaMemoryStats.h b/layout/base/nsArenaMemoryStats.h
index ba09baaa4..2a872cfe8 100644
--- a/layout/base/nsArenaMemoryStats.h
+++ b/layout/base/nsArenaMemoryStats.h
@@ -18,7 +18,12 @@ public:
Other // Everything else.
};
- nsTabSizes() { mozilla::PodZero(this); }
+ nsTabSizes()
+ : mDom(0)
+ , mStyle(0)
+ , mOther(0)
+ {
+ }
void add(Kind kind, size_t n)
{
diff --git a/layout/base/nsCSSRendering.cpp b/layout/base/nsCSSRendering.cpp
index 054632ad7..71ebfad22 100644
--- a/layout/base/nsCSSRendering.cpp
+++ b/layout/base/nsCSSRendering.cpp
@@ -2516,7 +2516,6 @@ nsCSSRendering::PaintGradient(nsPresContext* aPresContext,
PROFILER_LABEL("nsCSSRendering", "PaintGradient",
js::ProfileEntry::Category::GRAPHICS);
- Telemetry::AutoTimer<Telemetry::GRADIENT_DURATION, Telemetry::Microsecond> gradientTimer;
if (aDest.IsEmpty() || aFillArea.IsEmpty()) {
return;
}
diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp
index cb55bb2da..2bf20144a 100644
--- a/layout/base/nsDisplayList.cpp
+++ b/layout/base/nsDisplayList.cpp
@@ -7491,9 +7491,6 @@ PaintTelemetry::AutoRecordPaint::~AutoRecordPaint()
double totalMs = (TimeStamp::Now() - mStart).ToMilliseconds();
- // Record the total time.
- Telemetry::Accumulate(Telemetry::CONTENT_PAINT_TIME, static_cast<uint32_t>(totalMs));
-
// If the total time was >= 16ms, then it's likely we missed a frame due to
// painting. In this case we'll gather some detailed metrics below.
if (totalMs <= 16.0) {
@@ -7504,9 +7501,6 @@ PaintTelemetry::AutoRecordPaint::~AutoRecordPaint()
MOZ_ASSERT(aDurationMs <= totalMs);
uint32_t amount = static_cast<int32_t>((aDurationMs / totalMs) * 100.0);
-
- nsDependentCString key(aKey);
- Telemetry::Accumulate(Telemetry::CONTENT_LARGE_PAINT_PHASE_WEIGHT, key, amount);
};
double dlMs = sMetrics[Metric::DisplayList];
diff --git a/layout/base/nsDocumentViewer.cpp b/layout/base/nsDocumentViewer.cpp
index 7b8734928..5478c61b0 100644
--- a/layout/base/nsDocumentViewer.cpp
+++ b/layout/base/nsDocumentViewer.cpp
@@ -1206,11 +1206,8 @@ nsDocumentViewer::PermitUnloadInternal(bool *aShouldPrompt,
nsIDocument::PageUnloadingEventTimeStamp timestamp(mDocument);
mInPermitUnload = true;
- {
- Telemetry::AutoTimer<Telemetry::HANDLE_BEFOREUNLOAD_MS> telemetryTimer;
- EventDispatcher::DispatchDOMEvent(window, nullptr, event, mPresContext,
+ EventDispatcher::DispatchDOMEvent(window, nullptr, event, mPresContext,
nullptr);
- }
mInPermitUnload = false;
}
@@ -1275,7 +1272,6 @@ nsDocumentViewer::PermitUnloadInternal(bool *aShouldPrompt,
nsAutoSyncOperation sync(mDocument);
mInPermitUnloadPrompt = true;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::ONBEFOREUNLOAD_PROMPT_COUNT, 1);
rv = prompt->ConfirmEx(title, message, buttonFlags,
leaveLabel, stayLabel, nullptr, nullptr,
&dummy, &buttonPressed);
@@ -1290,15 +1286,12 @@ nsDocumentViewer::PermitUnloadInternal(bool *aShouldPrompt,
// XXX: Are there other cases where prompts can abort? Is it ok to
// prevent unloading the page in those cases?
if (NS_FAILED(rv)) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::ONBEFOREUNLOAD_PROMPT_ACTION, 2);
*aPermitUnload = false;
return NS_OK;
}
// Button 0 == leave, button 1 == stay
*aPermitUnload = (buttonPressed == 0);
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::ONBEFOREUNLOAD_PROMPT_ACTION,
- (*aPermitUnload ? 1 : 0));
// If the user decided to go ahead, make sure not to prompt the user again
// by toggling the internal prompting bool to false:
if (*aPermitUnload) {
@@ -1393,10 +1386,7 @@ nsDocumentViewer::PageHide(bool aIsUnload)
nsIDocument::PageUnloadingEventTimeStamp timestamp(mDocument);
- {
- Telemetry::AutoTimer<Telemetry::HANDLE_UNLOAD_MS> telemetryTimer;
- EventDispatcher::Dispatch(window, mPresContext, &event, nullptr, &status);
- }
+ EventDispatcher::Dispatch(window, mPresContext, &event, nullptr, &status);
}
#ifdef MOZ_XUL
diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp
index 062fbfe15..d0f790a0b 100644
--- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp
@@ -3569,8 +3569,6 @@ nsLayoutUtils::PaintFrame(nsRenderingContext* aRenderingContext, nsIFrame* aFram
}
builder.LeavePresShell(aFrame, &list);
- Telemetry::AccumulateTimeDelta(Telemetry::PAINT_BUILD_DISPLAYLIST_TIME,
- startBuildDisplayList);
bool profilerNeedsDisplayList = profiler_feature_active("displaylistdump");
bool consoleNeedsDisplayList = gfxUtils::DumpDisplayList() || gfxEnv::DumpPaint();
@@ -3651,8 +3649,6 @@ nsLayoutUtils::PaintFrame(nsRenderingContext* aRenderingContext, nsIFrame* aFram
TimeStamp paintStart = TimeStamp::Now();
RefPtr<LayerManager> layerManager
= list.PaintRoot(&builder, aRenderingContext, flags);
- Telemetry::AccumulateTimeDelta(Telemetry::PAINT_RASTERIZE_TIME,
- paintStart);
if (gfxPrefs::GfxLoggingPaintedPixelCountEnabled()) {
TimeStamp now = TimeStamp::Now();
diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp
index 3e5320c22..88539dc4a 100644
--- a/layout/base/nsPresShell.cpp
+++ b/layout/base/nsPresShell.cpp
@@ -1114,17 +1114,6 @@ PresShell::Destroy()
if (mPresContext) {
const bool mayFlushUserFontSet = false;
gfxUserFontSet* fs = mPresContext->GetUserFontSet(mayFlushUserFontSet);
- if (fs) {
- uint32_t fontCount;
- uint64_t fontSize;
- fs->GetLoadStatistics(fontCount, fontSize);
- Telemetry::Accumulate(Telemetry::WEBFONT_PER_PAGE, fontCount);
- Telemetry::Accumulate(Telemetry::WEBFONT_SIZE_PER_PAGE,
- uint32_t(fontSize/1024));
- } else {
- Telemetry::Accumulate(Telemetry::WEBFONT_PER_PAGE, 0);
- Telemetry::Accumulate(Telemetry::WEBFONT_SIZE_PER_PAGE, 0);
- }
}
#ifdef MOZ_REFLOW_PERF
@@ -2276,8 +2265,6 @@ PresShell::ScrollPage(bool aForward)
nsIScrollableFrame* scrollFrame =
GetFrameToScrollAsScrollable(nsIPresShell::eVertical);
if (scrollFrame) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollPage);
scrollFrame->ScrollBy(nsIntPoint(0, aForward ? 1 : -1),
nsIScrollableFrame::PAGES,
nsIScrollableFrame::SMOOTH,
@@ -2294,9 +2281,6 @@ PresShell::ScrollLine(bool aForward)
nsIScrollableFrame* scrollFrame =
GetFrameToScrollAsScrollable(nsIPresShell::eVertical);
if (scrollFrame) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollLine);
-
int32_t lineCount = Preferences::GetInt("toolkit.scrollbox.verticalScrollDistance",
NS_DEFAULT_VERTICAL_SCROLL_DISTANCE);
scrollFrame->ScrollBy(nsIntPoint(0, aForward ? lineCount : -lineCount),
@@ -2315,8 +2299,6 @@ PresShell::ScrollCharacter(bool aRight)
nsIScrollableFrame* scrollFrame =
GetFrameToScrollAsScrollable(nsIPresShell::eHorizontal);
if (scrollFrame) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollCharacter);
int32_t h = Preferences::GetInt("toolkit.scrollbox.horizontalScrollDistance",
NS_DEFAULT_HORIZONTAL_SCROLL_DISTANCE);
scrollFrame->ScrollBy(nsIntPoint(aRight ? h : -h, 0),
@@ -2335,8 +2317,6 @@ PresShell::CompleteScroll(bool aForward)
nsIScrollableFrame* scrollFrame =
GetFrameToScrollAsScrollable(nsIPresShell::eVertical);
if (scrollFrame) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadCompleteScroll);
scrollFrame->ScrollBy(nsIntPoint(0, aForward ? 1 : -1),
nsIScrollableFrame::WHOLE,
nsIScrollableFrame::SMOOTH,
@@ -8231,16 +8211,6 @@ PresShell::HandleEventInternal(WidgetEvent* aEvent,
}
}
- if (Telemetry::CanRecordBase() &&
- !aEvent->mTimeStamp.IsNull() &&
- aEvent->AsInputEvent()) {
- double millis = (TimeStamp::Now() - aEvent->mTimeStamp).ToMilliseconds();
- Telemetry::Accumulate(Telemetry::INPUT_EVENT_RESPONSE_MS, millis);
- if (mDocument && mDocument->GetReadyStateEnum() != nsIDocument::READYSTATE_COMPLETE) {
- Telemetry::Accumulate(Telemetry::LOAD_INPUT_EVENT_RESPONSE_MS, millis);
- }
- }
-
return rv;
}
@@ -9522,16 +9492,6 @@ PresShell::ProcessReflowCommands(bool aInterruptible)
UnsuppressAndInvalidate();
}
- if (mDocument->GetRootElement()) {
- TimeDuration elapsed = TimeStamp::Now() - timerStart;
- int32_t intElapsed = int32_t(elapsed.ToMilliseconds());
-
- if (intElapsed > NS_LONG_REFLOW_TIME_MS) {
- Telemetry::Accumulate(Telemetry::LONG_REFLOW_INTERRUPTIBLE,
- aInterruptible ? 1 : 0);
- }
- }
-
return !interrupted;
}
diff --git a/layout/base/nsRefreshDriver.cpp b/layout/base/nsRefreshDriver.cpp
index 6676bea97..b975a69dd 100644
--- a/layout/base/nsRefreshDriver.cpp
+++ b/layout/base/nsRefreshDriver.cpp
@@ -143,11 +143,7 @@ public:
{
}
- virtual ~RefreshDriverTimer()
- {
- MOZ_ASSERT(mContentRefreshDrivers.Length() == 0, "Should have removed all content refresh drivers from here by now!");
- MOZ_ASSERT(mRootRefreshDrivers.Length() == 0, "Should have removed all root refresh drivers from here by now!");
- }
+ NS_INLINE_DECL_REFCOUNTING(RefreshDriverTimer)
virtual void AddRefreshDriver(nsRefreshDriver* aDriver)
{
@@ -253,6 +249,12 @@ public:
}
protected:
+ virtual ~RefreshDriverTimer()
+ {
+ MOZ_ASSERT(mContentRefreshDrivers.Length() == 0, "Should have removed all content refresh drivers from here by now!");
+ MOZ_ASSERT(mRootRefreshDrivers.Length() == 0, "Should have removed all root refresh drivers from here by now!");
+ }
+
virtual void StartTimer() = 0;
virtual void StopTimer() = 0;
virtual void ScheduleNextTick(TimeStamp aNowTime) = 0;
@@ -335,10 +337,11 @@ protected:
nsTArray<RefPtr<nsRefreshDriver> > mRootRefreshDrivers;
// useful callback for nsITimer-based derived classes, here
- // bacause of c++ protected shenanigans
+ // because of c++ protected shenanigans
static void TimerTick(nsITimer* aTimer, void* aClosure)
{
- RefreshDriverTimer *timer = static_cast<RefreshDriverTimer*>(aClosure);
+ RefPtr<RefreshDriverTimer> timer =
+ static_cast<RefreshDriverTimer*>(aClosure);
timer->Tick();
}
};
@@ -459,9 +462,7 @@ public:
private:
// Since VsyncObservers are refCounted, but the RefreshDriverTimer are
// explicitly shutdown. We create an inner class that has the VsyncObserver
- // and is shutdown when the RefreshDriverTimer is deleted. The alternative is
- // to (a) make all RefreshDriverTimer RefCounted or (b) use different
- // VsyncObserver types.
+ // and is shutdown when the RefreshDriverTimer is deleted.
class RefreshDriverVsyncObserver final : public VsyncObserver
{
public:
@@ -478,6 +479,9 @@ private:
bool NotifyVsync(TimeStamp aVsyncTimestamp) override
{
+ // IMPORTANT: All paths through this method MUST hold a strong ref on
+ // |this| for the duration of the TickRefreshDriver callback.
+
if (!NS_IsMainThread()) {
MOZ_ASSERT(XRE_IsParentProcess());
// Compress vsync notifications such that only 1 may run at a time
@@ -498,6 +502,7 @@ private:
aVsyncTimestamp);
NS_DispatchToMainThread(vsyncEvent);
} else {
+ RefPtr<RefreshDriverVsyncObserver> kungFuDeathGrip(this);
TickRefreshDriver(aVsyncTimestamp);
}
@@ -526,10 +531,6 @@ private:
if (XRE_IsParentProcess()) {
TimeDuration vsyncLatency = TimeStamp::Now() - aVsyncTimestamp;
uint32_t sample = (uint32_t)vsyncLatency.ToMilliseconds();
- Telemetry::Accumulate(Telemetry::FX_REFRESH_DRIVER_CHROME_FRAME_DELAY_MS,
- sample);
- Telemetry::Accumulate(Telemetry::FX_REFRESH_DRIVER_SYNC_SCROLL_FRAME_DELAY_MS,
- sample);
RecordJank(sample);
} else if (mVsyncRate != TimeDuration::Forever()) {
TimeDuration contentDelay = (TimeStamp::Now() - mLastChildTick) - mVsyncRate;
@@ -539,10 +540,6 @@ private:
contentDelay = TimeDuration::FromMilliseconds(0);
}
uint32_t sample = (uint32_t)contentDelay.ToMilliseconds();
- Telemetry::Accumulate(Telemetry::FX_REFRESH_DRIVER_CONTENT_FRAME_DELAY_MS,
- sample);
- Telemetry::Accumulate(Telemetry::FX_REFRESH_DRIVER_SYNC_SCROLL_FRAME_DELAY_MS,
- sample);
RecordJank(sample);
} else {
// Request the vsync rate from the parent process. Might be a few vsyncs
@@ -580,7 +577,9 @@ private:
// the scheduled TickRefreshDriver() runs. Check mVsyncRefreshDriverTimer
// before use.
if (mVsyncRefreshDriverTimer) {
- mVsyncRefreshDriverTimer->RunRefreshDrivers(aVsyncTimestamp);
+ RefPtr<VsyncRefreshDriverTimer> timer = mVsyncRefreshDriverTimer;
+ timer->RunRefreshDrivers(aVsyncTimestamp);
+ // Note: mVsyncRefreshDriverTimer might be null now.
}
}
@@ -833,7 +832,8 @@ protected:
static void TimerTickOne(nsITimer* aTimer, void* aClosure)
{
- InactiveRefreshDriverTimer *timer = static_cast<InactiveRefreshDriverTimer*>(aClosure);
+ RefPtr<InactiveRefreshDriverTimer> timer =
+ static_cast<InactiveRefreshDriverTimer*>(aClosure);
timer->TickOne();
}
@@ -885,8 +885,8 @@ NS_IMPL_ISUPPORTS(VsyncChildCreateCallback, nsIIPCBackgroundChildCreateCallback)
} // namespace mozilla
-static RefreshDriverTimer* sRegularRateTimer;
-static InactiveRefreshDriverTimer* sThrottledRateTimer;
+static StaticRefPtr<RefreshDriverTimer> sRegularRateTimer;
+static StaticRefPtr<InactiveRefreshDriverTimer> sThrottledRateTimer;
#ifdef XP_WIN
static int32_t sHighPrecisionTimerRequests = 0;
@@ -968,8 +968,6 @@ GetFirstFrameDelay(imgIRequest* req)
nsRefreshDriver::Shutdown()
{
// clean up our timers
- delete sRegularRateTimer;
- delete sThrottledRateTimer;
sRegularRateTimer = nullptr;
sThrottledRateTimer = nullptr;
@@ -2027,10 +2025,6 @@ nsRefreshDriver::Tick(int64_t aNowEpoch, TimeStamp aNowTime)
notifyGC = true;
}
-#ifndef ANDROID /* bug 1142079 */
- mozilla::Telemetry::AccumulateTimeDelta(mozilla::Telemetry::REFRESH_DRIVER_TICK, mTickStart);
-#endif
-
nsTObserverArray<nsAPostRefreshObserver*>::ForwardIterator iter(mPostRefreshObservers);
while (iter.HasMore()) {
nsAPostRefreshObserver* observer = iter.GetNext();
@@ -2237,16 +2231,15 @@ nsRefreshDriver::PVsyncActorCreated(VsyncChild* aVsyncChild)
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(!XRE_IsParentProcess());
- auto* vsyncRefreshDriverTimer =
- new VsyncRefreshDriverTimer(aVsyncChild);
+ RefPtr<RefreshDriverTimer> vsyncRefreshDriverTimer =
+ new VsyncRefreshDriverTimer(aVsyncChild);
// If we are using software timer, swap current timer to
// VsyncRefreshDriverTimer.
if (sRegularRateTimer) {
sRegularRateTimer->SwapRefreshDrivers(vsyncRefreshDriverTimer);
- delete sRegularRateTimer;
}
- sRegularRateTimer = vsyncRefreshDriverTimer;
+ sRegularRateTimer = vsyncRefreshDriverTimer.forget();
}
void
diff --git a/layout/forms/nsNumberControlFrame.cpp b/layout/forms/nsNumberControlFrame.cpp
index 74dec2bea..9724109cb 100644
--- a/layout/forms/nsNumberControlFrame.cpp
+++ b/layout/forms/nsNumberControlFrame.cpp
@@ -430,6 +430,8 @@ nsNumberControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
nsContentUtils::AddScriptRunner(focusJob);
}
+ SyncDisabledState();
+
if (StyleDisplay()->mAppearance == NS_THEME_TEXTFIELD) {
// The author has elected to hide the spinner by setting this
// -moz-appearance. We will reframe if it changes.
@@ -461,8 +463,6 @@ nsNumberControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
CSSPseudoElementType::mozNumberSpinDown,
spinBoxCI.mStyleContext);
- SyncDisabledState();
-
return rv;
}
diff --git a/layout/generic/nsSelection.cpp b/layout/generic/nsSelection.cpp
index a2227c39c..ec0fba308 100644
--- a/layout/generic/nsSelection.cpp
+++ b/layout/generic/nsSelection.cpp
@@ -2201,8 +2201,6 @@ nsFrameSelection::CommonPageMove(bool aForward,
return;
// scroll one page
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollPage);
aScrollableFrame->ScrollBy(nsIntPoint(0, aForward ? 1 : -1),
nsIScrollableFrame::PAGES,
nsIScrollableFrame::SMOOTH);
@@ -6202,11 +6200,6 @@ Selection::ScrollIntoView(SelectionRegion aRegion,
flags |= nsIPresShell::SCROLL_OVERFLOW_HIDDEN;
}
- if (aFlags & Selection::SCROLL_FOR_CARET_MOVE) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollCaretIntoView);
- }
-
presShell->ScrollFrameRectIntoView(frame, rect, aVertical, aHorizontal,
flags);
return NS_OK;
diff --git a/layout/reftests/svg/reftest.list b/layout/reftests/svg/reftest.list
index 520adc9e6..096628681 100644
--- a/layout/reftests/svg/reftest.list
+++ b/layout/reftests/svg/reftest.list
@@ -396,6 +396,7 @@ fuzzy-if(skiaContent,1,300) == tspan-xy-05.svg tspan-xy-ref.svg # bug 773482
fuzzy-if(skiaContent,1,300) == tspan-xy-06.svg tspan-xy-ref.svg # bug 773482
fuzzy-if(skiaContent,1,100) == tspan-xy-anchor-middle-01.svg tspan-xy-anchor-middle-ref.svg # bug 773482
fuzzy-if(skiaContent,1,100) == tspan-xy-anchor-end-01.svg tspan-xy-anchor-end-ref.svg # bug 773482
+== use-localRef-link.html pass.svg
== userSpaceOnUse-and-pattern-01.svg userSpaceOnUse-and-pattern-01-ref.svg
== viewBox-and-pattern-01.svg pass.svg
== viewBox-and-pattern-02.svg pass.svg
diff --git a/layout/reftests/svg/use-localRef-link.html b/layout/reftests/svg/use-localRef-link.html
new file mode 100644
index 000000000..672e9ffaa
--- /dev/null
+++ b/layout/reftests/svg/use-localRef-link.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<head>
+<base href="/test">
+</head>
+<body style="background-color: lime;">
+ <svg width="100" height="100">
+ <defs>
+ <rect id="a" x="0" y="0" width="50" height="50" fill="lime"/>
+ </defs>
+ <rect x="0" y="0" width="50" height="50" fill="red"/>
+ <use xlink:href="#a"/>
+ </svg>
+</body>
+</html>
+
+
diff --git a/layout/style/FontFaceSet.cpp b/layout/style/FontFaceSet.cpp
index 550a7d71a..1645adfef 100644
--- a/layout/style/FontFaceSet.cpp
+++ b/layout/style/FontFaceSet.cpp
@@ -1762,18 +1762,10 @@ FontFaceSet::UserFontSet::RecordFontLoadDone(uint32_t aFontSize,
{
mDownloadCount++;
mDownloadSize += aFontSize;
- Telemetry::Accumulate(Telemetry::WEBFONT_SIZE, aFontSize / 1024);
if (!mFontFaceSet) {
return;
}
-
- TimeStamp navStart = mFontFaceSet->GetNavigationStartTimeStamp();
- TimeStamp zero;
- if (navStart != zero) {
- Telemetry::AccumulateTimeDelta(Telemetry::WEBFONT_DOWNLOAD_TIME_AFTER_START,
- navStart, aDoneTime);
- }
}
/* virtual */ nsresult
diff --git a/layout/style/nsFontFaceLoader.cpp b/layout/style/nsFontFaceLoader.cpp
index f5a0a9f34..3082bbf87 100644
--- a/layout/style/nsFontFaceLoader.cpp
+++ b/layout/style/nsFontFaceLoader.cpp
@@ -205,7 +205,6 @@ nsFontFaceLoader::OnStreamComplete(nsIStreamLoader* aLoader,
TimeStamp doneTime = TimeStamp::Now();
TimeDuration downloadTime = doneTime - mStartTime;
uint32_t downloadTimeMS = uint32_t(downloadTime.ToMilliseconds());
- Telemetry::Accumulate(Telemetry::WEBFONT_DOWNLOAD_TIME, downloadTimeMS);
if (GetFontDisplay() == NS_FONT_DISPLAY_FALLBACK) {
uint32_t loadTimeout = GetFallbackDelay();
diff --git a/layout/svg/nsSVGEffects.cpp b/layout/svg/nsSVGEffects.cpp
index eac094a91..e75c973c8 100644
--- a/layout/svg/nsSVGEffects.cpp
+++ b/layout/svg/nsSVGEffects.cpp
@@ -888,24 +888,13 @@ nsSVGEffects::InvalidateDirectRenderingObservers(nsIFrame* aFrame, uint32_t aFla
}
}
-static already_AddRefed<nsIURI>
-ResolveURLUsingLocalRef(nsIFrame* aFrame, const css::URLValueData* aURL)
+already_AddRefed<nsIURI>
+nsSVGEffects::GetBaseURLForLocalRef(nsIContent* content, nsIURI* aDocURI)
{
- MOZ_ASSERT(aFrame);
-
- if (!aURL) {
- return nullptr;
- }
-
- // Non-local-reference URL.
- if (!aURL->IsLocalRef()) {
- nsCOMPtr<nsIURI> result = aURL->GetURI();
- return result.forget();
- }
+ MOZ_ASSERT(content);
// For a local-reference URL, resolve that fragment against the current
// document that relative URLs are resolved against.
- nsIContent* content = aFrame->GetContent();
nsCOMPtr<nsIURI> baseURI = content->OwnerDoc()->GetDocumentURI();
if (content->IsInAnonymousSubtree()) {
@@ -933,12 +922,37 @@ ResolveURLUsingLocalRef(nsIFrame* aFrame, const css::URLValueData* aURL)
}
}
- if (originalURI && aURL->EqualsExceptRef(originalURI)) {
- baseURI = originalURI;
+ if (originalURI) {
+ bool isEqualsExceptRef = false;
+ aDocURI->EqualsExceptRef(originalURI, &isEqualsExceptRef);
+ if (isEqualsExceptRef) {
+ baseURI = originalURI;
+ }
}
}
}
+ return baseURI.forget();
+}
+
+static already_AddRefed<nsIURI>
+ResolveURLUsingLocalRef(nsIFrame* aFrame, const css::URLValueData* aURL)
+{
+ MOZ_ASSERT(aFrame);
+
+ if (!aURL) {
+ return nullptr;
+ }
+
+ // Non-local-reference URL.
+ if (!aURL->IsLocalRef()) {
+ nsCOMPtr<nsIURI> result = aURL->GetURI();
+ return result.forget();
+ }
+
+ nsCOMPtr<nsIURI> baseURI =
+ nsSVGEffects::GetBaseURLForLocalRef(aFrame->GetContent(), aURL->GetURI());
+
return aURL->ResolveLocalRef(baseURI);
}
diff --git a/layout/svg/nsSVGEffects.h b/layout/svg/nsSVGEffects.h
index 9dd92fd31..0cf9b1500 100644
--- a/layout/svg/nsSVGEffects.h
+++ b/layout/svg/nsSVGEffects.h
@@ -626,11 +626,23 @@ public:
static already_AddRefed<nsIURI>
GetPaintURI(nsIFrame* aFrame, nsStyleSVGPaint nsStyleSVG::* aPaint);
- /**
+ /**
* A helper function to resolve SVG mask URL.
*/
static already_AddRefed<nsIURI>
GetMaskURI(nsIFrame* aFrame, uint32_t aIndex);
+
+ /**
+ * Return a baseURL for resolving a local-ref URL.
+ *
+ * @param aContent an element which uses a local-ref property. Here are some
+ * examples:
+ * <rect fill=url(#foo)>
+ * <circle clip-path=url(#foo)>
+ * <use xlink:href="#foo">
+ */
+ static already_AddRefed<nsIURI>
+ GetBaseURLForLocalRef(nsIContent* aContent, nsIURI* aDocURI);
};
#endif /*NSSVGEFFECTS_H_*/
diff --git a/layout/svg/nsSVGOuterSVGFrame.cpp b/layout/svg/nsSVGOuterSVGFrame.cpp
index aeadccbc5..e1b97bb40 100644
--- a/layout/svg/nsSVGOuterSVGFrame.cpp
+++ b/layout/svg/nsSVGOuterSVGFrame.cpp
@@ -241,8 +241,9 @@ nsSVGOuterSVGFrame::GetIntrinsicRatio()
nsSVGLength2 &height = content->mLengthAttributes[SVGSVGElement::ATTR_HEIGHT];
if (!width.IsPercentage() && !height.IsPercentage()) {
- nsSize ratio(NSToCoordRoundWithClamp(width.GetAnimValue(content)),
- NSToCoordRoundWithClamp(height.GetAnimValue(content)));
+ nsSize ratio(
+ nsPresContext::CSSPixelsToAppUnits(width.GetAnimValue(content)),
+ nsPresContext::CSSPixelsToAppUnits(height.GetAnimValue(content)));
if (ratio.width < 0) {
ratio.width = 0;
}
@@ -272,8 +273,8 @@ nsSVGOuterSVGFrame::GetIntrinsicRatio()
if (viewBoxHeight < 0.0f) {
viewBoxHeight = 0.0f;
}
- return nsSize(NSToCoordRoundWithClamp(viewBoxWidth),
- NSToCoordRoundWithClamp(viewBoxHeight));
+ return nsSize(nsPresContext::CSSPixelsToAppUnits(viewBoxWidth),
+ nsPresContext::CSSPixelsToAppUnits(viewBoxHeight));
}
return nsSVGDisplayContainerFrame::GetIntrinsicRatio();
diff --git a/layout/xul/nsScrollbarButtonFrame.cpp b/layout/xul/nsScrollbarButtonFrame.cpp
index 206d9717f..ff757a65f 100644
--- a/layout/xul/nsScrollbarButtonFrame.cpp
+++ b/layout/xul/nsScrollbarButtonFrame.cpp
@@ -171,9 +171,6 @@ nsScrollbarButtonFrame::HandleButtonPress(nsPresContext* aPresContext,
return false;
}
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollbarButtonClick);
-
if (!m) {
sb->MoveToNewPosition();
if (!weakFrame.IsAlive()) {
diff --git a/layout/xul/nsSliderFrame.cpp b/layout/xul/nsSliderFrame.cpp
index 8e083f20c..3c1f9ef91 100644
--- a/layout/xul/nsSliderFrame.cpp
+++ b/layout/xul/nsSliderFrame.cpp
@@ -529,9 +529,6 @@ nsSliderFrame::HandleEvent(nsPresContext* aPresContext,
return NS_OK;
}
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollbarDrag);
-
// take our current position and subtract the start location
pos -= mDragStart;
bool isMouseOutsideThumb = false;
@@ -598,9 +595,6 @@ nsSliderFrame::HandleEvent(nsPresContext* aPresContext,
nsSize thumbSize = thumbFrame->GetSize();
nscoord thumbLength = isHorizontal ? thumbSize.width : thumbSize.height;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadScrollbarTrackClick);
-
// set it
nsWeakFrame weakFrame(this);
// should aMaySnap be true here?
diff --git a/media/ffvpx/README_MCP b/media/ffvpx/README_MCP
index 4555e08da..5ed4d8d94 100644
--- a/media/ffvpx/README_MCP
+++ b/media/ffvpx/README_MCP
@@ -7,10 +7,6 @@ Currently, we only use the vp8 and vp9 portion of the library, and only on x86
based platforms. If this changes, configuration files will most likely
need to be updated.
-AVX2 must be disabled on Linux 32 bits due to the use of yasm 1.1 on the build bots.
-Once yasm is upgraded to 1.2 or later, AVX2 code could be re-enabled.
-Add --disable-avx2 to configure on those platforms.
-
configuration files were generated as follow using the configure script:
./configure --disable-everything --disable-protocols --disable-demuxers --disable-muxers --disable-filters --disable-programs --disable-doc --disable-parsers --enable-parser=vp8 --enable-parser=vp9 --enable-decoder=vp8 --enable-decoder=vp9 --disable-static --enable-shared --disable-debug --disable-sdl2 --disable-libxcb --disable-securetransport --disable-iconv --disable-swresample --disable-swscale --disable-avdevice --disable-avfilter --disable-avformat --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-decoder=flac --enable-asm --enable-x86asm
@@ -18,13 +14,12 @@ config*:
replace: /HAVE_(MALLOC_H|ARC4RANDOM|LOCALTIME_R|MEMALIGN|POSIX_MEMALIGN)/d
config_darwin32.h:
-add to configure command: --disable-asm --disable-yasm --cc='clang -m32'
+add to configure command: --disable-asm --disable-x86asm --cc='clang -m32'
config_unix32.h:
add to configure command: --disable-asm --disable-x86asm --cc='clang -m32'
replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0/ and s/HAVE_MEMALIGN 1/HAVE_MEMALIGN 0/ and s/HAVE_POSIX_MEMALIGN 1/HAVE_POSIX_MEMALIGN 0/
-
config_unix32.h/config_unix64.h/config_unix64.asm:
replace: s/HAVE_SYSCTL 1/HAVE_SYSCTL 0
diff --git a/media/libvpx/bug1480092.patch b/media/libvpx/bug1480092.patch
new file mode 100644
index 000000000..ae774bb20
--- /dev/null
+++ b/media/libvpx/bug1480092.patch
@@ -0,0 +1,36 @@
+From f00fe25d7eb13ceafbea6a6987d45fdef64cffb3 Mon Sep 17 00:00:00 2001
+From: Pale Moon <git-repo@palemoon.org>
+Date: Tue, 11 Sep 2018 08:58:16 +0200
+Subject: [PATCH] Cherry-pick libvpx upstream
+ 52add5896661d186dec284ed646a4b33b607d2c7.
+
+---
+ media/libvpx/vp8/common/postproc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/media/libvpx/vp8/common/postproc.c b/media/libvpx/vp8/common/postproc.c
+index a4e6ae170..3b05bc63e 100644
+--- a/media/libvpx/vp8/common/postproc.c
++++ b/media/libvpx/vp8/common/postproc.c
+@@ -325,17 +325,17 @@ void vp8_deblock(VP8_COMMON *cm,
+ YV12_BUFFER_CONFIG *post,
+ int q,
+ int low_var_thresh,
+ int flag)
+ {
+ double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
+ int ppl = (int)(level + .5);
+
+- const MODE_INFO *mode_info_context = cm->show_frame_mi;
++ const MODE_INFO *mode_info_context = cm->mi;
+ int mbr, mbc;
+
+ /* The pixel thresholds are adjusted according to if or not the macroblock
+ * is a skipped block. */
+ unsigned char *ylimits = cm->pp_limits_buffer;
+ unsigned char *uvlimits = cm->pp_limits_buffer + 16 * cm->mb_cols;
+ (void) low_var_thresh;
+ (void) flag;
+--
+2.16.1.windows.4
+
diff --git a/media/libvpx/update.py b/media/libvpx/update.py
index 85eed5872..1e9d9b478 100755
--- a/media/libvpx/update.py
+++ b/media/libvpx/update.py
@@ -608,6 +608,8 @@ def apply_patches():
os.system("patch -p3 < input_frame_validation.patch")
# Bug 1315288 - Check input frame resolution for vp9
os.system("patch -p3 < input_frame_validation_vp9.patch")
+ # Cherrypick fix from upstream
+ os.system("patch -p3 < bug1480092.patch")
def update_readme(commit):
with open('README_MOZILLA') as f:
diff --git a/media/libvpx/vp8/common/postproc.c b/media/libvpx/vp8/common/postproc.c
index a4e6ae170..3b05bc63e 100644
--- a/media/libvpx/vp8/common/postproc.c
+++ b/media/libvpx/vp8/common/postproc.c
@@ -330,7 +330,7 @@ void vp8_deblock(VP8_COMMON *cm,
double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
int ppl = (int)(level + .5);
- const MODE_INFO *mode_info_context = cm->show_frame_mi;
+ const MODE_INFO *mode_info_context = cm->mi;
int mbr, mbc;
/* The pixel thresholds are adjusted according to if or not the macroblock
diff --git a/media/webrtc/signaling/src/media-conduit/AudioConduit.cpp b/media/webrtc/signaling/src/media-conduit/AudioConduit.cpp
index 2c57431e7..e36b8b6cf 100755
--- a/media/webrtc/signaling/src/media-conduit/AudioConduit.cpp
+++ b/media/webrtc/signaling/src/media-conduit/AudioConduit.cpp
@@ -706,15 +706,6 @@ WebrtcAudioConduit::GetAudioFrame(int16_t speechData[],
if (GetAVStats(&jitter_buffer_delay_ms,
&playout_buffer_delay_ms,
&avsync_offset_ms)) {
-#if !defined(MOZILLA_EXTERNAL_LINKAGE)
- if (avsync_offset_ms < 0) {
- Telemetry::Accumulate(Telemetry::WEBRTC_AVSYNC_WHEN_VIDEO_LAGS_AUDIO_MS,
- -avsync_offset_ms);
- } else {
- Telemetry::Accumulate(Telemetry::WEBRTC_AVSYNC_WHEN_AUDIO_LAGS_VIDEO_MS,
- avsync_offset_ms);
- }
-#endif
CSFLogError(logTag,
"A/V sync: sync delta: %dms, audio jitter delay %dms, playout delay %dms",
avsync_offset_ms, jitter_buffer_delay_ms, playout_buffer_delay_ms);
diff --git a/media/webrtc/signaling/src/media-conduit/CodecStatistics.cpp b/media/webrtc/signaling/src/media-conduit/CodecStatistics.cpp
index eb03c0bf8..da40a59ea 100644
--- a/media/webrtc/signaling/src/media-conduit/CodecStatistics.cpp
+++ b/media/webrtc/signaling/src/media-conduit/CodecStatistics.cpp
@@ -124,8 +124,6 @@ void VideoCodecStatistics::ReceiveStateChange(const int aChannel,
TimeDuration timeDelta = TimeStamp::Now() - mReceiveFailureTime;
CSFLogError(logTag, "Video error duration: %u ms",
static_cast<uint32_t>(timeDelta.ToMilliseconds()));
- Telemetry::Accumulate(Telemetry::WEBRTC_VIDEO_ERROR_RECOVERY_MS,
- static_cast<uint32_t>(timeDelta.ToMilliseconds()));
mRecoveredLosses++; // to calculate losses per minute
mTotalLossTime += timeDelta; // To calculate % time in recovery
@@ -147,16 +145,10 @@ void VideoCodecStatistics::EndOfCallStats()
if (callDelta.ToSeconds() != 0) {
uint32_t recovered_per_min = mRecoveredBeforeLoss/(callDelta.ToSeconds()/60);
CSFLogError(logTag, "Video recovery before error per min %u", recovered_per_min);
- Telemetry::Accumulate(Telemetry::WEBRTC_VIDEO_RECOVERY_BEFORE_ERROR_PER_MIN,
- recovered_per_min);
uint32_t err_per_min = mRecoveredLosses/(callDelta.ToSeconds()/60);
CSFLogError(logTag, "Video recovery after error per min %u", err_per_min);
- Telemetry::Accumulate(Telemetry::WEBRTC_VIDEO_RECOVERY_AFTER_ERROR_PER_MIN,
- err_per_min);
float percent = (mTotalLossTime.ToSeconds()*100)/callDelta.ToSeconds();
CSFLogError(logTag, "Video error time percentage %f%%", percent);
- Telemetry::Accumulate(Telemetry::WEBRTC_VIDEO_DECODE_ERROR_TIME_PERMILLE,
- static_cast<uint32_t>(percent*10));
}
}
#endif
diff --git a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
index 33422ed7a..43d10ca86 100644
--- a/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
+++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp
@@ -2245,22 +2245,6 @@ PeerConnectionImpl::AddIceCandidate(const char* aCandidate, const char* aMid, un
CSFLogDebug(logTag, "AddIceCandidate: %s", aCandidate);
-#if !defined(MOZILLA_EXTERNAL_LINKAGE)
- // When remote candidates are added before our ICE ctx is up and running
- // (the transition to New is async through STS, so this is not impossible),
- // we won't record them as trickle candidates. Is this what we want?
- if(!mIceStartTime.IsNull()) {
- TimeDuration timeDelta = TimeStamp::Now() - mIceStartTime;
- if (mIceConnectionState == PCImplIceConnectionState::Failed) {
- Telemetry::Accumulate(Telemetry::WEBRTC_ICE_LATE_TRICKLE_ARRIVAL_TIME,
- timeDelta.ToMilliseconds());
- } else {
- Telemetry::Accumulate(Telemetry::WEBRTC_ICE_ON_TIME_TRICKLE_ARRIVAL_TIME,
- timeDelta.ToMilliseconds());
- }
- }
-#endif
-
nsresult res = mJsepSession->AddRemoteIceCandidate(aCandidate, aMid, aLevel);
if (NS_SUCCEEDED(res)) {
@@ -3011,49 +2995,7 @@ PeerConnectionImpl::PluginCrash(uint32_t aPluginID,
void
PeerConnectionImpl::RecordEndOfCallTelemetry() const
{
- if (!mJsepSession) {
- return;
- }
-
-#if !defined(MOZILLA_EXTERNAL_LINKAGE)
- // Bitmask used for WEBRTC/LOOP_CALL_TYPE telemetry reporting
- static const uint32_t kAudioTypeMask = 1;
- static const uint32_t kVideoTypeMask = 2;
- static const uint32_t kDataChannelTypeMask = 4;
-
- // Report end-of-call Telemetry
- if (mJsepSession->GetNegotiations() > 0) {
- Telemetry::Accumulate(Telemetry::WEBRTC_RENEGOTIATIONS,
- mJsepSession->GetNegotiations()-1);
- }
- Telemetry::Accumulate(Telemetry::WEBRTC_MAX_VIDEO_SEND_TRACK,
- mMaxSending[SdpMediaSection::MediaType::kVideo]);
- Telemetry::Accumulate(Telemetry::WEBRTC_MAX_VIDEO_RECEIVE_TRACK,
- mMaxReceiving[SdpMediaSection::MediaType::kVideo]);
- Telemetry::Accumulate(Telemetry::WEBRTC_MAX_AUDIO_SEND_TRACK,
- mMaxSending[SdpMediaSection::MediaType::kAudio]);
- Telemetry::Accumulate(Telemetry::WEBRTC_MAX_AUDIO_RECEIVE_TRACK,
- mMaxReceiving[SdpMediaSection::MediaType::kAudio]);
- // DataChannels appear in both Sending and Receiving
- Telemetry::Accumulate(Telemetry::WEBRTC_DATACHANNEL_NEGOTIATED,
- mMaxSending[SdpMediaSection::MediaType::kApplication]);
- // Enumerated/bitmask: 1 = Audio, 2 = Video, 4 = DataChannel
- // A/V = 3, A/V/D = 7, etc
- uint32_t type = 0;
- if (mMaxSending[SdpMediaSection::MediaType::kAudio] ||
- mMaxReceiving[SdpMediaSection::MediaType::kAudio]) {
- type = kAudioTypeMask;
- }
- if (mMaxSending[SdpMediaSection::MediaType::kVideo] ||
- mMaxReceiving[SdpMediaSection::MediaType::kVideo]) {
- type |= kVideoTypeMask;
- }
- if (mMaxSending[SdpMediaSection::MediaType::kApplication]) {
- type |= kDataChannelTypeMask;
- }
- Telemetry::Accumulate(Telemetry::WEBRTC_CALL_TYPE,
- type);
-#endif
+ /* STUB */
}
nsresult
@@ -3109,13 +3051,6 @@ PeerConnectionImpl::ShutdownMedia()
pair.second->RemovePrincipalChangeObserver(this);
}
}
-
- // End of call to be recorded in Telemetry
- if (!mStartTime.IsNull()){
- TimeDuration timeDelta = TimeStamp::Now() - mStartTime;
- Telemetry::Accumulate(Telemetry::WEBRTC_CALL_DURATION,
- timeDelta.ToSeconds());
- }
#endif
// Forget the reference so that we can transfer it to
@@ -3423,33 +3358,6 @@ void PeerConnectionImpl::IceConnectionStateChange(
return;
}
-#if !defined(MOZILLA_EXTERNAL_LINKAGE)
- if (!isDone(mIceConnectionState) && isDone(domState)) {
- // mIceStartTime can be null if going directly from New to Closed, in which
- // case we don't count it as a success or a failure.
- if (!mIceStartTime.IsNull()){
- TimeDuration timeDelta = TimeStamp::Now() - mIceStartTime;
- if (isSucceeded(domState)) {
- Telemetry::Accumulate(Telemetry::WEBRTC_ICE_SUCCESS_TIME,
- timeDelta.ToMilliseconds());
- } else if (isFailed(domState)) {
- Telemetry::Accumulate(Telemetry::WEBRTC_ICE_FAILURE_TIME,
- timeDelta.ToMilliseconds());
- }
- }
-
- if (isSucceeded(domState)) {
- Telemetry::Accumulate(
- Telemetry::WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_SUCCESS,
- mAddCandidateErrorCount);
- } else if (isFailed(domState)) {
- Telemetry::Accumulate(
- Telemetry::WEBRTC_ICE_ADD_CANDIDATE_ERRORS_GIVEN_FAILURE,
- mAddCandidateErrorCount);
- }
- }
-#endif
-
mIceConnectionState = domState;
if (mIceConnectionState == PCImplIceConnectionState::Connected ||
@@ -3467,10 +3375,6 @@ void PeerConnectionImpl::IceConnectionStateChange(
STAMP_TIMECARD(mTimeCard, "Ice state: new");
break;
case PCImplIceConnectionState::Checking:
-#if !defined(MOZILLA_EXTERNAL_LINKAGE)
- // For telemetry
- mIceStartTime = TimeStamp::Now();
-#endif
STAMP_TIMECARD(mTimeCard, "Ice state: checking");
break;
case PCImplIceConnectionState::Connected:
@@ -4067,16 +3971,7 @@ PeerConnectionImpl::IceStreamReady(NrIceMediaStream *aStream)
//Telemetry for when calls start
void
PeerConnectionImpl::startCallTelem() {
- if (!mStartTime.IsNull()) {
- return;
- }
-
- // Start time for calls
- mStartTime = TimeStamp::Now();
-
- // Increment session call counter
- // If we want to track Loop calls independently here, we need two histograms.
- Telemetry::Accumulate(Telemetry::WEBRTC_CALL_COUNT_2, 1);
+ /* STUB */
}
#endif
diff --git a/media/webrtc/signaling/src/peerconnection/WebrtcGlobalInformation.cpp b/media/webrtc/signaling/src/peerconnection/WebrtcGlobalInformation.cpp
index 96bdd5b70..f283d6111 100644
--- a/media/webrtc/signaling/src/peerconnection/WebrtcGlobalInformation.cpp
+++ b/media/webrtc/signaling/src/peerconnection/WebrtcGlobalInformation.cpp
@@ -1194,18 +1194,8 @@ static void GetStatsForLongTermStorage_s(
rate_limit_bit_pattern |= 2;
}
- if (query->failed) {
- Telemetry::Accumulate(
- Telemetry::WEBRTC_STUN_RATE_LIMIT_EXCEEDED_BY_TYPE_GIVEN_FAILURE,
- rate_limit_bit_pattern);
- } else {
- Telemetry::Accumulate(
- Telemetry::WEBRTC_STUN_RATE_LIMIT_EXCEEDED_BY_TYPE_GIVEN_SUCCESS,
- rate_limit_bit_pattern);
- }
-
- // Even if Telemetry::Accumulate is threadsafe, we still need to send the
- // query back to main, since that is where it must be destroyed.
+ // We still need to send the query back to main, since that is where
+ // it must be destroyed.
NS_DispatchToMainThread(
WrapRunnableNM(
&StoreLongTermICEStatisticsImpl_m,
@@ -1216,8 +1206,6 @@ static void GetStatsForLongTermStorage_s(
void WebrtcGlobalInformation::StoreLongTermICEStatistics(
PeerConnectionImpl& aPc) {
- Telemetry::Accumulate(Telemetry::WEBRTC_ICE_FINAL_CONNECTION_STATE,
- static_cast<uint32_t>(aPc.IceConnectionState()));
if (aPc.IceConnectionState() == PCImplIceConnectionState::New) {
// ICE has not started; we won't have any remote candidates, so recording
diff --git a/memory/mozjemalloc/moz.build b/memory/mozjemalloc/moz.build
index feeb4fb07..a7c1e5f2a 100644
--- a/memory/mozjemalloc/moz.build
+++ b/memory/mozjemalloc/moz.build
@@ -37,7 +37,10 @@ LOCAL_INCLUDES += [
]
if CONFIG['GNU_CC']:
- CFLAGS += ['-Wno-unused'] # too many annoying warnings from mfbt/ headers
+ # too many annoying warnings from mfbt/ headers
+ # also too many false positives from functions generated through rb_wrab from rb.h.
+ CFLAGS += ['-Wno-unused',
+ '-Wno-uninitialized']
if CONFIG['_MSC_VER']:
CFLAGS += ['-wd4273'] # inconsistent dll linkage (bug 558163)
diff --git a/mfbt/EnumSet.h b/mfbt/EnumSet.h
index 5282ab30c..b18b5a769 100644
--- a/mfbt/EnumSet.h
+++ b/mfbt/EnumSet.h
@@ -335,7 +335,7 @@ private:
uint32_t mBitField;
#ifdef DEBUG
- uint64_t mVersion;
+ uint64_t mVersion = 0;
#endif
};
diff --git a/mfbt/tests/TestTypeTraits.cpp b/mfbt/tests/TestTypeTraits.cpp
index f0a565142..eb412bc54 100644
--- a/mfbt/tests/TestTypeTraits.cpp
+++ b/mfbt/tests/TestTypeTraits.cpp
@@ -70,8 +70,8 @@ static_assert(!IsPointer<IsPointerTest>::value,
"IsPointerTest not a pointer");
static_assert(IsPointer<IsPointerTest*>::value,
"IsPointerTest* is a pointer");
-static_assert(!IsPointer<bool(IsPointerTest::*)>::value,
- "bool(IsPointerTest::*) not a pointer");
+static_assert(!IsPointer<bool(IsPointerTest::*)()>::value,
+ "bool(IsPointerTest::*)() not a pointer");
static_assert(!IsPointer<void(IsPointerTest::*)(void)>::value,
"void(IsPointerTest::*)(void) not a pointer");
diff --git a/mobile/android/.eslintrc b/mobile/android/.eslintrc
index ce106c2d1..db673a6b7 100644
--- a/mobile/android/.eslintrc
+++ b/mobile/android/.eslintrc
@@ -24,7 +24,6 @@ globals:
strings: false
Strings: false
Task: false
- TelemetryStopwatch: false
UITelemetry: false
UserAgentOverrides: 0
XPCOMUtils: false
diff --git a/mobile/android/chrome/content/aboutLogins.js b/mobile/android/chrome/content/aboutLogins.js
index 99e2af841..b3d003875 100644
--- a/mobile/android/chrome/content/aboutLogins.js
+++ b/mobile/android/chrome/content/aboutLogins.js
@@ -8,7 +8,6 @@ Cu.import("resource://services-common/utils.js"); /*global: CommonUtils */
Cu.import("resource://gre/modules/Messaging.jsm");
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyGetter(window, "gChromeWin", () =>
window.QueryInterface(Ci.nsIInterfaceRequestor)
diff --git a/mobile/android/components/SessionStore.js b/mobile/android/components/SessionStore.js
index 18ac6bf94..a23c52fe3 100644
--- a/mobile/android/components/SessionStore.js
+++ b/mobile/android/components/SessionStore.js
@@ -16,7 +16,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "Messaging", "resource://gre/modules/Mes
XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils", "resource://gre/modules/PrivateBrowsingUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "FormData", "resource://gre/modules/FormData.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ScrollPosition", "resource://gre/modules/ScrollPosition.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch", "resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Log", "resource://gre/modules/AndroidLog.jsm", "AndroidLog");
XPCOMUtils.defineLazyModuleGetter(this, "SharedPreferences", "resource://gre/modules/SharedPreferences.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Utils", "resource://gre/modules/sessionstore/Utils.jsm");
@@ -1053,9 +1052,7 @@ SessionStore.prototype = {
* @param aAsync boolelan used to determine the method of saving the state
*/
_writeFile: function ss_writeFile(aFile, aFileTemp, aData, aAsync) {
- TelemetryStopwatch.start("FX_SESSION_RESTORE_SERIALIZE_DATA_MS");
let state = JSON.stringify(aData);
- TelemetryStopwatch.finish("FX_SESSION_RESTORE_SERIALIZE_DATA_MS");
// Convert data string to a utf-8 encoded array buffer
let buffer = new TextEncoder().encode(state);
diff --git a/modules/libjar/nsJARChannel.cpp b/modules/libjar/nsJARChannel.cpp
index 4b6b78c6d..ee60602da 100644
--- a/modules/libjar/nsJARChannel.cpp
+++ b/modules/libjar/nsJARChannel.cpp
@@ -22,7 +22,6 @@
#include "nsIFileURL.h"
#include "mozilla/Preferences.h"
-#include "mozilla/Telemetry.h"
#include "nsITabChild.h"
#include "private/pprio.h"
#include "nsInputStreamPump.h"
@@ -791,12 +790,6 @@ nsJARChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctx)
return NS_ERROR_UNSAFE_CONTENT_TYPE;
}
- static bool reportedRemoteJAR = false;
- if (!reportedRemoteJAR) {
- reportedRemoteJAR = true;
- Telemetry::Accumulate(Telemetry::REMOTE_JAR_PROTOCOL_USED, 1);
- }
-
// kick off an async download of the base URI...
nsCOMPtr<nsIStreamListener> downloader = new MemoryDownloader(this);
uint32_t loadFlags =
diff --git a/modules/libmar/src/mar.h b/modules/libmar/src/mar.h
index 98b454d94..776daf648 100644
--- a/modules/libmar/src/mar.h
+++ b/modules/libmar/src/mar.h
@@ -48,6 +48,7 @@ typedef struct MarItem_ {
struct MarFile_ {
FILE *fp;
MarItem *item_table[TABLESIZE];
+ int item_table_is_valid;
};
typedef struct MarFile_ MarFile;
diff --git a/modules/libmar/src/mar_read.c b/modules/libmar/src/mar_read.c
index 17744cdfc..378eaea88 100644
--- a/modules/libmar/src/mar_read.c
+++ b/modules/libmar/src/mar_read.c
@@ -114,6 +114,7 @@ static int mar_read_index(MarFile *mar) {
uint32_t offset_to_index, size_of_index;
/* verify MAR ID */
+ fseek(mar->fp, 0, SEEK_SET);
if (fread(id, MAR_ID_SIZE, 1, mar->fp) != 1)
return -1;
if (memcmp(id, MAR_ID, MAR_ID_SIZE) != 0)
@@ -160,11 +161,8 @@ static MarFile *mar_fpopen(FILE *fp)
}
mar->fp = fp;
+ mar->item_table_is_valid = 0;
memset(mar->item_table, 0, sizeof(mar->item_table));
- if (mar_read_index(mar)) {
- mar_close(mar);
- return NULL;
- }
return mar;
}
@@ -490,6 +488,14 @@ const MarItem *mar_find_item(MarFile *mar, const char *name) {
uint32_t hash;
const MarItem *item;
+ if (!mar->item_table_is_valid) {
+ if (mar_read_index(mar)) {
+ return NULL;
+ } else {
+ mar->item_table_is_valid = 1;
+ }
+ }
+
hash = mar_hash_name(name);
item = mar->item_table[hash];
@@ -503,6 +509,14 @@ int mar_enum_items(MarFile *mar, MarItemCallback callback, void *closure) {
MarItem *item;
int i;
+ if (!mar->item_table_is_valid) {
+ if (mar_read_index(mar)) {
+ return -1;
+ } else {
+ mar->item_table_is_valid = 1;
+ }
+ }
+
for (i = 0; i < TABLESIZE; ++i) {
item = mar->item_table[i];
while (item) {
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index ceecaa84e..0ec5f1596 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -247,6 +247,10 @@ pref("dom.compartment_per_addon", true);
// of content viewers to cache based on the amount of available memory.
pref("browser.sessionhistory.max_total_viewers", -1);
+// Whether to store 'about:newtab' in the session history, disabled by default.
+// See https://github.com/MoonchildProductions/UXP/issues/719
+pref("browser.newtabpage.add_to_session_history", false);
+
pref("ui.use_native_colors", true);
pref("ui.click_hold_context_menus", false);
// Duration of timeout of incremental search in menus (ms). 0 means infinite.
@@ -273,6 +277,9 @@ pref("browser.display.show_image_placeholders", true);
pref("browser.display.show_loading_image_placeholder", false);
// min font device pixel size at which to turn on high quality
pref("browser.display.auto_quality_min_font_size", 20);
+// Background color for standalone images; leave empty to use default
+// all CSS colors available: named colors, rgb(..), #rrggbb, ...
+pref("browser.display.standalone_images.background_color", "");
pref("browser.anchor_color", "#0000EE");
pref("browser.active_color", "#EE0000");
pref("browser.visited_color", "#551A8B");
@@ -901,6 +908,7 @@ pref("findbar.highlightAll", false);
pref("findbar.modalHighlight", false);
pref("findbar.entireword", false);
pref("findbar.iteratorTimeout", 100);
+pref("findbar.termPerTab", false);
// use Mac OS X Appearance panel text smoothing setting when rendering text, disabled by default
pref("gfx.use_text_smoothing_setting", false);
@@ -919,16 +927,16 @@ pref("toolkit.scrollbox.clickToScroll.scrollDelay", 150);
// Telemetry settings.
// Server to submit telemetry pings to.
-pref("toolkit.telemetry.server", "https://incoming.telemetry.mozilla.org");
+pref("toolkit.telemetry.server", "");
// Telemetry server owner. Please change if you set toolkit.telemetry.server to a different server
-pref("toolkit.telemetry.server_owner", "Mozilla");
+pref("toolkit.telemetry.server_owner", "");
// Information page about telemetry (temporary ; will be about:telemetry in the end)
-pref("toolkit.telemetry.infoURL", "https://www.mozilla.org/legal/privacy/firefox.html#telemetry");
+pref("toolkit.telemetry.infoURL", "");
// Determines whether full SQL strings are returned when they might contain sensitive info
// i.e. dynamically constructed SQL strings or SQL executed by addons against addon DBs
pref("toolkit.telemetry.debugSlowSql", false);
// Whether to use the unified telemetry behavior, requires a restart.
-pref("toolkit.telemetry.unified", true);
+pref("toolkit.telemetry.unified", false);
// Identity module
pref("toolkit.identity.enabled", false);
@@ -2202,6 +2210,10 @@ pref("ui.key.contentAccess", 5);
pref("ui.key.menuAccessKeyFocuses", false); // overridden below
pref("ui.key.saveLink.shift", true); // true = shift, false = meta
+// When true, overrides OS convention to lock content scrolling
+// if a contextual menu is open.
+pref("ui.menu.allow_content_scroll", false);
+
// Disable page loading activity cursor by default.
pref("ui.use_activity_cursor", false);
diff --git a/netwerk/base/BackgroundFileSaver.cpp b/netwerk/base/BackgroundFileSaver.cpp
index e4bc05826..cfe94e35b 100644
--- a/netwerk/base/BackgroundFileSaver.cpp
+++ b/netwerk/base/BackgroundFileSaver.cpp
@@ -798,8 +798,6 @@ BackgroundFileSaver::NotifySaveComplete()
// during the session in a telemetry histogram, and we reset the maximum
// thread counter for the next download session
if (sThreadCount == 0) {
- Telemetry::Accumulate(Telemetry::BACKGROUNDFILESAVER_THREAD_COUNT,
- sTelemetryMaxThreadCount);
sTelemetryMaxThreadCount = 0;
}
diff --git a/netwerk/base/Predictor.cpp b/netwerk/base/Predictor.cpp
index e97b11d16..12e4eb415 100644
--- a/netwerk/base/Predictor.cpp
+++ b/netwerk/base/Predictor.cpp
@@ -294,26 +294,9 @@ Predictor::Action::OnCacheEntryAvailable(nsICacheEntry *entry, bool isNew,
"Aborting.", this, result));
return NS_OK;
}
- Telemetry::AccumulateTimeDelta(Telemetry::PREDICTOR_WAIT_TIME,
- mStartTime);
- if (mPredict) {
- bool predicted = mPredictor->PredictInternal(mPredictReason, entry, isNew,
- mFullUri, mTargetURI,
- mVerifier, mStackCount);
- Telemetry::AccumulateTimeDelta(
- Telemetry::PREDICTOR_PREDICT_WORK_TIME, mStartTime);
- if (predicted) {
- Telemetry::AccumulateTimeDelta(
- Telemetry::PREDICTOR_PREDICT_TIME_TO_ACTION, mStartTime);
- } else {
- Telemetry::AccumulateTimeDelta(
- Telemetry::PREDICTOR_PREDICT_TIME_TO_INACTION, mStartTime);
- }
- } else {
+ if (!mPredict) {
mPredictor->LearnInternal(mLearnReason, entry, isNew, mFullUri, mTargetURI,
mSourceURI);
- Telemetry::AccumulateTimeDelta(
- Telemetry::PREDICTOR_LEARN_WORK_TIME, mStartTime);
}
return NS_OK;
@@ -1073,8 +1056,6 @@ Predictor::CalculateGlobalDegradation(uint32_t lastLoad)
globalDegradation = mPageDegradationMax;
}
- Telemetry::Accumulate(Telemetry::PREDICTOR_GLOBAL_DEGRADATION,
- globalDegradation);
return globalDegradation;
}
@@ -1139,10 +1120,6 @@ Predictor::CalculateConfidence(uint32_t hitCount, uint32_t hitsPossible,
confidence = std::max(confidence, 0);
confidence = std::min(confidence, maxConfidence);
- Telemetry::Accumulate(Telemetry::PREDICTOR_BASE_CONFIDENCE, baseConfidence);
- Telemetry::Accumulate(Telemetry::PREDICTOR_SUBRESOURCE_DEGRADATION,
- confidenceDegradation);
- Telemetry::Accumulate(Telemetry::PREDICTOR_CONFIDENCE, confidence);
return confidence;
}
@@ -2335,7 +2312,6 @@ Predictor::PrefetchListener::OnStopRequest(nsIRequest *aRequest,
if (NS_FAILED(aStatusCode)) {
return aStatusCode;
}
- Telemetry::AccumulateTimeDelta(Telemetry::PREDICTOR_PREFETCH_TIME, mStartTime);
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(aRequest);
if (!httpChannel) {
diff --git a/netwerk/base/TLSServerSocket.cpp b/netwerk/base/TLSServerSocket.cpp
index 257a7f5da..97c7f5423 100644
--- a/netwerk/base/TLSServerSocket.cpp
+++ b/netwerk/base/TLSServerSocket.cpp
@@ -52,12 +52,12 @@ TLSServerSocket::SetSocketDefaults()
SSL_OptionSet(mFD, SSL_SECURITY, true);
SSL_OptionSet(mFD, SSL_HANDSHAKE_AS_CLIENT, false);
SSL_OptionSet(mFD, SSL_HANDSHAKE_AS_SERVER, true);
-
+ SSL_OptionSet(mFD, SSL_NO_CACHE, true);
+
// We don't currently notify the server API consumer of renegotiation events
// (to revalidate peer certs, etc.), so disable it for now.
SSL_OptionSet(mFD, SSL_ENABLE_RENEGOTIATION, SSL_RENEGOTIATE_NEVER);
- SetSessionCache(true);
SetSessionTickets(true);
SetRequestClientCertificate(REQUEST_NEVER);
@@ -172,18 +172,6 @@ TLSServerSocket::SetServerCert(nsIX509Cert* aCert)
}
NS_IMETHODIMP
-TLSServerSocket::SetSessionCache(bool aEnabled)
-{
- // If AsyncListen was already called (and set mListener), it's too late to set
- // this.
- if (NS_WARN_IF(mListener)) {
- return NS_ERROR_IN_PROGRESS;
- }
- SSL_OptionSet(mFD, SSL_NO_CACHE, !aEnabled);
- return NS_OK;
-}
-
-NS_IMETHODIMP
TLSServerSocket::SetSessionTickets(bool aEnabled)
{
// If AsyncListen was already called (and set mListener), it's too late to set
diff --git a/netwerk/base/nsITLSServerSocket.idl b/netwerk/base/nsITLSServerSocket.idl
index 57485357f..dce54ffe7 100644
--- a/netwerk/base/nsITLSServerSocket.idl
+++ b/netwerk/base/nsITLSServerSocket.idl
@@ -20,15 +20,6 @@ interface nsITLSServerSocket : nsIServerSocket
attribute nsIX509Cert serverCert;
/**
- * setSessionCache
- *
- * Whether the server should use a session cache. Defaults to true. This
- * should be set before calling |asyncListen| if you wish to change the
- * default.
- */
- void setSessionCache(in boolean aSessionCache);
-
- /**
* setSessionTickets
*
* Whether the server should support session tickets. Defaults to true. This
diff --git a/netwerk/base/nsLoadGroup.cpp b/netwerk/base/nsLoadGroup.cpp
index 51d5a9ca7..9981bd698 100644
--- a/netwerk/base/nsLoadGroup.cpp
+++ b/netwerk/base/nsLoadGroup.cpp
@@ -14,7 +14,6 @@
#include "mozilla/Logging.h"
#include "nsString.h"
#include "nsTArray.h"
-#include "mozilla/Telemetry.h"
#include "nsITimedChannel.h"
#include "nsIInterfaceRequestor.h"
#include "nsIRequestObserver.h"
@@ -574,40 +573,6 @@ nsLoadGroup::RemoveRequest(nsIRequest *request, nsISupports* ctxt,
mRequests.RemoveEntry(entry);
- // Collect telemetry stats only when default request is a timed channel.
- // Don't include failed requests in the timing statistics.
- if (mDefaultLoadIsTimed && NS_SUCCEEDED(aStatus)) {
- nsCOMPtr<nsITimedChannel> timedChannel = do_QueryInterface(request);
- if (timedChannel) {
- // Figure out if this request was served from the cache
- ++mTimedRequests;
- TimeStamp timeStamp;
- rv = timedChannel->GetCacheReadStart(&timeStamp);
- if (NS_SUCCEEDED(rv) && !timeStamp.IsNull()) {
- ++mCachedRequests;
- }
- else {
- mTimedNonCachedRequestsUntilOnEndPageLoad++;
- }
-
- rv = timedChannel->GetAsyncOpen(&timeStamp);
- if (NS_SUCCEEDED(rv) && !timeStamp.IsNull()) {
- Telemetry::AccumulateTimeDelta(
- Telemetry::HTTP_SUBITEM_OPEN_LATENCY_TIME,
- mDefaultRequestCreationTime, timeStamp);
- }
-
- rv = timedChannel->GetResponseStart(&timeStamp);
- if (NS_SUCCEEDED(rv) && !timeStamp.IsNull()) {
- Telemetry::AccumulateTimeDelta(
- Telemetry::HTTP_SUBITEM_FIRST_BYTE_LATENCY_TIME,
- mDefaultRequestCreationTime, timeStamp);
- }
-
- TelemetryReportChannel(timedChannel, false);
- }
- }
-
if (mRequests.EntryCount() == 0) {
TelemetryReport();
}
@@ -815,19 +780,7 @@ nsLoadGroup::SetDefaultLoadFlags(uint32_t aFlags)
void
nsLoadGroup::TelemetryReport()
{
- if (mDefaultLoadIsTimed) {
- Telemetry::Accumulate(Telemetry::HTTP_REQUEST_PER_PAGE, mTimedRequests);
- if (mTimedRequests) {
- Telemetry::Accumulate(Telemetry::HTTP_REQUEST_PER_PAGE_FROM_CACHE,
- mCachedRequests * 100 / mTimedRequests);
- }
-
- nsCOMPtr<nsITimedChannel> timedChannel =
- do_QueryInterface(mDefaultLoadRequest);
- if (timedChannel)
- TelemetryReportChannel(timedChannel, true);
- }
-
+ /* STUB */
mTimedRequests = 0;
mCachedRequests = 0;
mDefaultLoadIsTimed = false;
@@ -898,116 +851,6 @@ nsLoadGroup::TelemetryReportChannel(nsITimedChannel *aTimedChannel,
rv = aTimedChannel->GetResponseEnd(&responseEnd);
if (NS_FAILED(rv))
return;
-
-#define HTTP_REQUEST_HISTOGRAMS(prefix) \
- if (!domainLookupStart.IsNull()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_DNS_ISSUE_TIME, \
- asyncOpen, domainLookupStart); \
- } \
- \
- if (!domainLookupStart.IsNull() && !domainLookupEnd.IsNull()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_DNS_LOOKUP_TIME, \
- domainLookupStart, domainLookupEnd); \
- } \
- \
- if (!secureConnectionStart.IsNull() && !connectEnd.IsNull()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_TLS_HANDSHAKE, \
- secureConnectionStart, connectEnd); \
- } \
- \
- if (!connectStart.IsNull() && !connectEnd.IsNull()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_TCP_CONNECTION_2, \
- connectStart, connectEnd); \
- } \
- \
- \
- if (!requestStart.IsNull() && !responseEnd.IsNull()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_OPEN_TO_FIRST_SENT, \
- asyncOpen, requestStart); \
- \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_FIRST_SENT_TO_LAST_RECEIVED, \
- requestStart, responseEnd); \
- \
- if (cacheReadStart.IsNull() && !responseStart.IsNull()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_OPEN_TO_FIRST_RECEIVED, \
- asyncOpen, responseStart); \
- } \
- } \
- \
- if (!cacheReadStart.IsNull() && !cacheReadEnd.IsNull()) { \
- if (!CacheObserver::UseNewCache()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_OPEN_TO_FIRST_FROM_CACHE, \
- asyncOpen, cacheReadStart); \
- } else { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_OPEN_TO_FIRST_FROM_CACHE_V2, \
- asyncOpen, cacheReadStart); \
- } \
- \
- if (!CacheObserver::UseNewCache()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_CACHE_READ_TIME, \
- cacheReadStart, cacheReadEnd); \
- } else { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_CACHE_READ_TIME_V2, \
- cacheReadStart, cacheReadEnd); \
- } \
- \
- if (!requestStart.IsNull() && !responseEnd.IsNull()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_REVALIDATION, \
- requestStart, responseEnd); \
- } \
- } \
- \
- if (!cacheReadEnd.IsNull()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_COMPLETE_LOAD, \
- asyncOpen, cacheReadEnd); \
- \
- if (!CacheObserver::UseNewCache()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_COMPLETE_LOAD_CACHED, \
- asyncOpen, cacheReadEnd); \
- } else { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_COMPLETE_LOAD_CACHED_V2, \
- asyncOpen, cacheReadEnd); \
- } \
- } \
- else if (!responseEnd.IsNull()) { \
- if (!CacheObserver::UseNewCache()) { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_COMPLETE_LOAD, \
- asyncOpen, responseEnd); \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_COMPLETE_LOAD_NET, \
- asyncOpen, responseEnd); \
- } else { \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_COMPLETE_LOAD_V2, \
- asyncOpen, responseEnd); \
- Telemetry::AccumulateTimeDelta( \
- Telemetry::HTTP_##prefix##_COMPLETE_LOAD_NET_V2, \
- asyncOpen, responseEnd); \
- } \
- }
-
- if (aDefaultRequest) {
- HTTP_REQUEST_HISTOGRAMS(PAGE)
- } else {
- HTTP_REQUEST_HISTOGRAMS(SUB)
- }
-#undef HTTP_REQUEST_HISTOGRAMS
}
nsresult nsLoadGroup::MergeLoadFlags(nsIRequest *aRequest,
diff --git a/netwerk/base/nsNetUtil.cpp b/netwerk/base/nsNetUtil.cpp
index d60c909c5..653a9003e 100644
--- a/netwerk/base/nsNetUtil.cpp
+++ b/netwerk/base/nsNetUtil.cpp
@@ -2262,7 +2262,6 @@ NS_ShouldSecureUpgrade(nsIURI* aURI,
nsIScriptError::warningFlag, "CSP",
innerWindowId);
- Telemetry::Accumulate(Telemetry::HTTP_SCHEME_UPGRADE, 4);
aShouldUpgrade = true;
return NS_OK;
}
@@ -2285,17 +2284,10 @@ NS_ShouldSecureUpgrade(nsIURI* aURI,
if (isStsHost) {
LOG(("nsHttpChannel::Connect() STS permissions found\n"));
if (aAllowSTS) {
- Telemetry::Accumulate(Telemetry::HTTP_SCHEME_UPGRADE, 3);
aShouldUpgrade = true;
return NS_OK;
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_SCHEME_UPGRADE, 2);
}
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_SCHEME_UPGRADE, 1);
}
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_SCHEME_UPGRADE, 0);
}
aShouldUpgrade = false;
return NS_OK;
diff --git a/netwerk/base/nsSocketTransport2.cpp b/netwerk/base/nsSocketTransport2.cpp
index 184757d33..f9b55ead4 100644
--- a/netwerk/base/nsSocketTransport2.cpp
+++ b/netwerk/base/nsSocketTransport2.cpp
@@ -1596,17 +1596,6 @@ nsSocketTransport::RecoverFromError()
bool tryAgain = false;
- if ((mState == STATE_CONNECTING) && mDNSRecord &&
- mSocketTransportService->IsTelemetryEnabledAndNotSleepPhase()) {
- if (mNetAddr.raw.family == AF_INET) {
- Telemetry::Accumulate(Telemetry::IPV4_AND_IPV6_ADDRESS_CONNECTIVITY,
- UNSUCCESSFUL_CONNECTING_TO_IPV4_ADDRESS);
- } else if (mNetAddr.raw.family == AF_INET6) {
- Telemetry::Accumulate(Telemetry::IPV4_AND_IPV6_ADDRESS_CONNECTIVITY,
- UNSUCCESSFUL_CONNECTING_TO_IPV6_ADDRESS);
- }
- }
-
if (mConnectionFlags & (DISABLE_IPV6 | DISABLE_IPV4) &&
mCondition == NS_ERROR_UNKNOWN_HOST &&
mState == STATE_RESOLVING &&
@@ -1996,18 +1985,6 @@ nsSocketTransport::OnSocketReady(PRFileDesc *fd, int16_t outFlags)
// we are connected!
//
OnSocketConnected();
-
- if (mSocketTransportService->IsTelemetryEnabledAndNotSleepPhase()) {
- if (mNetAddr.raw.family == AF_INET) {
- Telemetry::Accumulate(
- Telemetry::IPV4_AND_IPV6_ADDRESS_CONNECTIVITY,
- SUCCESSFUL_CONNECTING_TO_IPV4_ADDRESS);
- } else if (mNetAddr.raw.family == AF_INET6) {
- Telemetry::Accumulate(
- Telemetry::IPV4_AND_IPV6_ADDRESS_CONNECTIVITY,
- SUCCESSFUL_CONNECTING_TO_IPV6_ADDRESS);
- }
- }
}
else {
PRErrorCode code = PR_GetError();
@@ -3201,28 +3178,7 @@ nsSocketTransport::SendPRBlockingTelemetry(PRIntervalTime aStart,
Telemetry::ID aIDLinkChange,
Telemetry::ID aIDOffline)
{
- PRIntervalTime now = PR_IntervalNow();
- if (gIOService->IsNetTearingDown()) {
- Telemetry::Accumulate(aIDShutdown,
- PR_IntervalToMilliseconds(now - aStart));
-
- } else if (PR_IntervalToSeconds(now - gIOService->LastConnectivityChange())
- < 60) {
- Telemetry::Accumulate(aIDConnectivityChange,
- PR_IntervalToMilliseconds(now - aStart));
- } else if (PR_IntervalToSeconds(now - gIOService->LastNetworkLinkChange())
- < 60) {
- Telemetry::Accumulate(aIDLinkChange,
- PR_IntervalToMilliseconds(now - aStart));
-
- } else if (PR_IntervalToSeconds(now - gIOService->LastOfflineStateChange())
- < 60) {
- Telemetry::Accumulate(aIDOffline,
- PR_IntervalToMilliseconds(now - aStart));
- } else {
- Telemetry::Accumulate(aIDNormal,
- PR_IntervalToMilliseconds(now - aStart));
- }
+ /* STUB */
}
} // namespace net
diff --git a/netwerk/base/nsSocketTransportService2.cpp b/netwerk/base/nsSocketTransportService2.cpp
index 068bf0eca..72afdc9e1 100644
--- a/netwerk/base/nsSocketTransportService2.cpp
+++ b/netwerk/base/nsSocketTransportService2.cpp
@@ -219,7 +219,6 @@ nsSocketTransportService::CanAttachSocket()
if (mTelemetryEnabledPref &&
(((total >= 900) || !rv) && !reported900FDLimit)) {
reported900FDLimit = true;
- Telemetry::Accumulate(Telemetry::NETWORK_SESSION_AT_900FD, true);
}
return rv;
@@ -898,16 +897,6 @@ nsSocketTransportService::Run()
DoPollIteration(&singlePollDuration);
- if (mTelemetryEnabledPref && !pollCycleStart.IsNull()) {
- Telemetry::Accumulate(Telemetry::STS_POLL_BLOCK_TIME,
- singlePollDuration.ToMilliseconds());
- Telemetry::AccumulateTimeDelta(
- Telemetry::STS_POLL_CYCLE,
- pollCycleStart + singlePollDuration,
- TimeStamp::NowLoRes());
- pollDuration += singlePollDuration;
- }
-
mRawThread->HasPendingEvents(&pendingEvents);
if (pendingEvents) {
if (!mServingPendingQueue) {
@@ -940,22 +929,6 @@ nsSocketTransportService::Run()
((TimeStamp::NowLoRes() -
eventQueueStart).ToMilliseconds() <
mMaxTimePerPollIter));
-
- if (mTelemetryEnabledPref && !mServingPendingQueue &&
- !startOfIteration.IsNull()) {
- Telemetry::AccumulateTimeDelta(
- Telemetry::STS_POLL_AND_EVENTS_CYCLE,
- startOfIteration + pollDuration,
- TimeStamp::NowLoRes());
-
- Telemetry::Accumulate(
- Telemetry::STS_NUMBER_OF_PENDING_EVENTS,
- numberOfPendingEvents);
-
- numberOfPendingEventsLastCycle += numberOfPendingEvents;
- numberOfPendingEvents = 0;
- pollDuration = 0;
- }
}
} while (pendingEvents);
@@ -964,16 +937,6 @@ nsSocketTransportService::Run()
{
MutexAutoLock lock(mLock);
if (mShuttingDown) {
- if (mTelemetryEnabledPref &&
- !startOfCycleForLastCycleCalc.IsNull()) {
- Telemetry::Accumulate(
- Telemetry::STS_NUMBER_OF_PENDING_EVENTS_IN_THE_LAST_CYCLE,
- numberOfPendingEventsLastCycle);
- Telemetry::AccumulateTimeDelta(
- Telemetry::STS_POLL_AND_EVENT_THE_LAST_CYCLE,
- startOfCycleForLastCycleCalc,
- TimeStamp::NowLoRes());
- }
break;
}
if (mGoingOffline) {
@@ -1142,11 +1105,6 @@ nsSocketTransportService::DoPollIteration(TimeDuration *pollDuration)
}
}
}
- if (mTelemetryEnabledPref) {
- Telemetry::Accumulate(
- Telemetry::STS_NUMBER_OF_ONSOCKETREADY_CALLS,
- numberOfOnSocketReadyCalls);
- }
//
// check for "dead" sockets and remove them (need to do this in
@@ -1465,7 +1423,6 @@ nsSocketTransportService::ProbeMaxCount()
if (pfd[index].fd)
PR_Close(pfd[index].fd);
- Telemetry::Accumulate(Telemetry::NETWORK_PROBE_MAXCOUNT, gMaxCount);
SOCKET_LOG(("Socket Limit Test max was confirmed at %d\n", gMaxCount));
}
#endif // windows
diff --git a/netwerk/base/nsUDPSocket.cpp b/netwerk/base/nsUDPSocket.cpp
index 5973a205d..24f3954cb 100644
--- a/netwerk/base/nsUDPSocket.cpp
+++ b/netwerk/base/nsUDPSocket.cpp
@@ -777,33 +777,6 @@ nsUDPSocket::CloseSocket()
}
PR_Close(mFD);
-
- if (gSocketTransportService->IsTelemetryEnabledAndNotSleepPhase()) {
- PRIntervalTime now = PR_IntervalNow();
- if (gIOService->IsNetTearingDown()) {
- Telemetry::Accumulate(Telemetry::PRCLOSE_UDP_BLOCKING_TIME_SHUTDOWN,
- PR_IntervalToMilliseconds(now - closeStarted));
-
- } else if (PR_IntervalToSeconds(now - gIOService->LastConnectivityChange())
- < 60) {
- Telemetry::Accumulate(Telemetry::PRCLOSE_UDP_BLOCKING_TIME_CONNECTIVITY_CHANGE,
- PR_IntervalToMilliseconds(now - closeStarted));
-
- } else if (PR_IntervalToSeconds(now - gIOService->LastNetworkLinkChange())
- < 60) {
- Telemetry::Accumulate(Telemetry::PRCLOSE_UDP_BLOCKING_TIME_LINK_CHANGE,
- PR_IntervalToMilliseconds(now - closeStarted));
-
- } else if (PR_IntervalToSeconds(now - gIOService->LastOfflineStateChange())
- < 60) {
- Telemetry::Accumulate(Telemetry::PRCLOSE_UDP_BLOCKING_TIME_OFFLINE,
- PR_IntervalToMilliseconds(now - closeStarted));
-
- } else {
- Telemetry::Accumulate(Telemetry::PRCLOSE_UDP_BLOCKING_TIME_NORMAL,
- PR_IntervalToMilliseconds(now - closeStarted));
- }
- }
}
mFD = nullptr;
}
diff --git a/netwerk/base/security-prefs.js b/netwerk/base/security-prefs.js
index cfbbf4a45..7d63267a6 100644
--- a/netwerk/base/security-prefs.js
+++ b/netwerk/base/security-prefs.js
@@ -42,6 +42,8 @@ pref("security.ssl3.dhe_rsa_aes_128_sha", false);
pref("security.ssl3.rsa_aes_128_gcm_sha256", false);
pref("security.ssl3.rsa_aes_128_sha256", false);
pref("security.ssl3.rsa_des_ede3_sha", false);
+pref("security.ssl3.rsa_rc4_128_sha", false);
+pref("security.ssl3.rsa_rc4_128_md5", false);
pref("security.content.signature.root_hash",
"97:E8:BA:9C:F1:2F:B3:DE:53:CC:42:A4:E6:57:7E:D6:4D:F4:93:C2:47:B4:14:FE:A0:36:81:8D:38:23:56:0E");
diff --git a/netwerk/cache/nsCacheService.cpp b/netwerk/cache/nsCacheService.cpp
index bab67e104..97b1a71c8 100644
--- a/netwerk/cache/nsCacheService.cpp
+++ b/netwerk/cache/nsCacheService.cpp
@@ -1184,7 +1184,6 @@ nsCacheService::Shutdown()
}
nsCOMPtr<nsIThread> cacheIOThread;
- Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_SHUTDOWN> totalTimer;
bool shouldSanitize = false;
nsCOMPtr<nsIFile> parentDir;
@@ -1261,10 +1260,8 @@ nsCacheService::Shutdown()
if (NS_SUCCEEDED(parentDir->Exists(&exists)) && exists)
nsDeleteDir::DeleteDir(parentDir, false);
}
- Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_SHUTDOWN_CLEAR_PRIVATE> timer;
nsDeleteDir::Shutdown(shouldSanitize);
} else {
- Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_DELETEDIR_SHUTDOWN> timer;
nsDeleteDir::Shutdown(shouldSanitize);
}
}
@@ -2175,7 +2172,6 @@ nsCacheService::ActivateEntry(nsCacheRequest * request,
nsCacheEntry *
nsCacheService::SearchCacheDevices(nsCString * key, nsCacheStoragePolicy policy, bool *collision)
{
- Telemetry::AutoTimer<Telemetry::CACHE_DEVICE_SEARCH_2> timer;
nsCacheEntry * entry = nullptr;
CACHE_LOG_DEBUG(("mMemoryDevice: 0x%p\n", mMemoryDevice));
@@ -2655,18 +2651,7 @@ nsCacheService::Lock(mozilla::Telemetry::ID mainThreadLockerID)
generalID = mozilla::Telemetry::CACHE_SERVICE_LOCK_WAIT_2;
}
- TimeStamp start(TimeStamp::Now());
-
nsCacheService::Lock();
-
- TimeStamp stop(TimeStamp::Now());
-
- // Telemetry isn't thread safe on its own, but this is OK because we're
- // protecting it with the cache lock.
- if (lockerID != mozilla::Telemetry::HistogramCount) {
- mozilla::Telemetry::AccumulateTimeDelta(lockerID, start, stop);
- }
- mozilla::Telemetry::AccumulateTimeDelta(generalID, start, stop);
}
void
diff --git a/netwerk/cache/nsDeleteDir.cpp b/netwerk/cache/nsDeleteDir.cpp
index 1f3f3934e..8c4edf812 100644
--- a/netwerk/cache/nsDeleteDir.cpp
+++ b/netwerk/cache/nsDeleteDir.cpp
@@ -155,7 +155,6 @@ nsDeleteDir::DestroyThread()
void
nsDeleteDir::TimerCallback(nsITimer *aTimer, void *arg)
{
- Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_DELETEDIR> timer;
{
MutexAutoLock lock(gInstance->mLock);
@@ -193,8 +192,6 @@ nsDeleteDir::TimerCallback(nsITimer *aTimer, void *arg)
nsresult
nsDeleteDir::DeleteDir(nsIFile *dirIn, bool moveToTrash, uint32_t delay)
{
- Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_TRASHRENAME> timer;
-
if (!gInstance)
return NS_ERROR_NOT_INITIALIZED;
diff --git a/netwerk/cache/nsDiskCacheDevice.cpp b/netwerk/cache/nsDiskCacheDevice.cpp
index ac91534ff..09089bfb6 100644
--- a/netwerk/cache/nsDiskCacheDevice.cpp
+++ b/netwerk/cache/nsDiskCacheDevice.cpp
@@ -457,7 +457,6 @@ nsDiskCacheDevice::GetDeviceID()
nsCacheEntry *
nsDiskCacheDevice::FindEntry(nsCString * key, bool *collision)
{
- Telemetry::AutoTimer<Telemetry::CACHE_DISK_SEARCH_2> timer;
if (!Initialized()) return nullptr; // NS_ERROR_NOT_INITIALIZED
if (mClearingDiskCache) return nullptr;
nsDiskCacheRecord record;
@@ -955,7 +954,6 @@ nsDiskCacheDevice::EvictEntries(const char * clientID)
nsresult
nsDiskCacheDevice::OpenDiskCache()
{
- Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_OPEN> timer;
// if we don't have a cache directory, create one and open it
bool exists;
nsresult rv = mCacheDirectory->Exists(&exists);
diff --git a/netwerk/cache/nsDiskCacheDeviceSQL.cpp b/netwerk/cache/nsDiskCacheDeviceSQL.cpp
index 56ece5887..f4b1d72c9 100644
--- a/netwerk/cache/nsDiskCacheDeviceSQL.cpp
+++ b/netwerk/cache/nsDiskCacheDeviceSQL.cpp
@@ -1523,7 +1523,6 @@ nsOfflineCacheDevice::FindEntry(nsCString *fullKey, bool *collision)
{
NS_ENSURE_TRUE(Initialized(), nullptr);
- mozilla::Telemetry::AutoTimer<mozilla::Telemetry::CACHE_OFFLINE_SEARCH_2> timer;
LOG(("nsOfflineCacheDevice::FindEntry [key=%s]\n", fullKey->get()));
// SELECT * FROM moz_cache WHERE key = ?
diff --git a/netwerk/cache/nsDiskCacheEntry.h b/netwerk/cache/nsDiskCacheEntry.h
index 3bec33053..506886cb7 100644
--- a/netwerk/cache/nsDiskCacheEntry.h
+++ b/netwerk/cache/nsDiskCacheEntry.h
@@ -32,7 +32,7 @@ struct nsDiskCacheEntry {
mKeySize + mMetaDataSize;
}
- char* Key() { return reinterpret_cast<char*const>(this) +
+ char* Key() { return reinterpret_cast<char*>(this) +
sizeof(nsDiskCacheEntry);
}
diff --git a/netwerk/cache/nsDiskCacheMap.cpp b/netwerk/cache/nsDiskCacheMap.cpp
index d7ce13a35..d3ec1e714 100644
--- a/netwerk/cache/nsDiskCacheMap.cpp
+++ b/netwerk/cache/nsDiskCacheMap.cpp
@@ -19,7 +19,6 @@
#include "mozilla/MemoryReporting.h"
#include "mozilla/Sprintf.h"
-#include "mozilla/Telemetry.h"
#include <algorithm>
using namespace mozilla;
@@ -181,9 +180,6 @@ nsDiskCacheMap::Open(nsIFile * cacheDirectory,
goto error_exit;
}
- Telemetry::Accumulate(Telemetry::HTTP_DISK_CACHE_OVERHEAD,
- (uint32_t)SizeOfExcludingThis(moz_malloc_size_of));
-
*corruptInfo = nsDiskCache::kNotCorrupt;
return NS_OK;
diff --git a/netwerk/cache/nsMemoryCacheDevice.cpp b/netwerk/cache/nsMemoryCacheDevice.cpp
index 042e86022..eb69e8ea8 100644
--- a/netwerk/cache/nsMemoryCacheDevice.cpp
+++ b/netwerk/cache/nsMemoryCacheDevice.cpp
@@ -113,7 +113,6 @@ nsMemoryCacheDevice::GetDeviceID()
nsCacheEntry *
nsMemoryCacheDevice::FindEntry(nsCString * key, bool *collision)
{
- mozilla::Telemetry::AutoTimer<mozilla::Telemetry::CACHE_MEMORY_SEARCH_2> timer;
nsCacheEntry * entry = mMemCacheEntries.GetEntry(key);
if (!entry) return nullptr;
diff --git a/netwerk/cache2/CacheFile.cpp b/netwerk/cache2/CacheFile.cpp
index fa0a89382..ce771c754 100644
--- a/netwerk/cache2/CacheFile.cpp
+++ b/netwerk/cache2/CacheFile.cpp
@@ -14,7 +14,6 @@
#include <algorithm>
#include "nsComponentManagerUtils.h"
#include "nsProxyRelease.h"
-#include "mozilla/Telemetry.h"
// When CACHE_CHUNKS is defined we always cache unused chunks in mCacheChunks.
// When it is not defined, we always release the chunks ASAP, i.e. we cache
@@ -1914,9 +1913,6 @@ CacheFile::RemoveInput(CacheFileInputStream *aInput, nsresult aStatus)
// chunks that won't be used anymore.
CleanUpCachedChunks();
- Telemetry::Accumulate(Telemetry::NETWORK_CACHE_V2_INPUT_STREAM_STATUS,
- StatusToTelemetryEnum(aStatus));
-
return NS_OK;
}
@@ -1952,9 +1948,6 @@ CacheFile::RemoveOutput(CacheFileOutputStream *aOutput, nsresult aStatus)
// Notify close listener as the last action
aOutput->NotifyCloseListener();
- Telemetry::Accumulate(Telemetry::NETWORK_CACHE_V2_OUTPUT_STREAM_STATUS,
- StatusToTelemetryEnum(aStatus));
-
return NS_OK;
}
diff --git a/netwerk/cache2/CacheFileIOManager.cpp b/netwerk/cache2/CacheFileIOManager.cpp
index 1d0d57635..f6b499e47 100644
--- a/netwerk/cache2/CacheFileIOManager.cpp
+++ b/netwerk/cache2/CacheFileIOManager.cpp
@@ -21,7 +21,6 @@
#include "nsIObserverService.h"
#include "nsICacheStorageVisitor.h"
#include "nsISizeOf.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/DebugOnly.h"
#include "mozilla/Services.h"
#include "nsDirectoryServiceUtils.h"
@@ -1173,8 +1172,6 @@ CacheFileIOManager::Shutdown()
return NS_ERROR_NOT_INITIALIZED;
}
- Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE_SHUTDOWN_V2> shutdownTimer;
-
CacheIndex::PreShutdown();
ShutdownMetadataWriteScheduling();
@@ -1192,7 +1189,6 @@ CacheFileIOManager::Shutdown()
CacheIndex::Shutdown();
if (CacheObserver::ClearCacheOnShutdown()) {
- Telemetry::AutoTimer<Telemetry::NETWORK_DISK_CACHE2_SHUTDOWN_CLEAR_PRIVATE> totalTimer;
gInstance->SyncRemoveAllCacheFiles();
}
@@ -3861,7 +3857,6 @@ CacheFileIOManager::CreateCacheTree()
}
#endif
- Telemetry::Accumulate(Telemetry::NETWORK_CACHE_FS_TYPE, fsType);
CacheObserver::SetCacheFSReported();
}
@@ -3917,8 +3912,6 @@ CacheFileIOManager::OpenNSPRHandle(CacheFileHandle *aHandle, bool aCreate)
uint32_t cacheUsage;
if (NS_SUCCEEDED(CacheIndex::GetCacheSize(&cacheUsage))) {
cacheUsage >>= 10;
- Telemetry::Accumulate(Telemetry::NETWORK_CACHE_SIZE_FULL_FAT,
- cacheUsage);
sSizeReported = true;
}
}
diff --git a/netwerk/cache2/CacheFileMetadata.cpp b/netwerk/cache2/CacheFileMetadata.cpp
index 3814b4c87..86fc089aa 100644
--- a/netwerk/cache2/CacheFileMetadata.cpp
+++ b/netwerk/cache2/CacheFileMetadata.cpp
@@ -14,7 +14,6 @@
#include "nsICacheEntry.h" // for nsICacheEntryMetaDataVisitor
#include "../cache/nsCacheUtils.h"
#include "nsIFile.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/DebugOnly.h"
#include "prnetdb.h"
@@ -687,16 +686,6 @@ CacheFileMetadata::OnDataRead(CacheFileHandle *aHandle, char *aBuf,
return NS_OK;
}
- if (mFirstRead) {
- Telemetry::AccumulateTimeDelta(
- Telemetry::NETWORK_CACHE_METADATA_FIRST_READ_TIME_MS, mReadStart);
- Telemetry::Accumulate(
- Telemetry::NETWORK_CACHE_METADATA_FIRST_READ_SIZE, mBufSize);
- } else {
- Telemetry::AccumulateTimeDelta(
- Telemetry::NETWORK_CACHE_METADATA_SECOND_READ_TIME_MS, mReadStart);
- }
-
// check whether we have read all necessary data
uint32_t realOffset = NetworkEndian::readUint32(mBuf + mBufSize -
sizeof(uint32_t));
@@ -776,9 +765,6 @@ CacheFileMetadata::OnDataRead(CacheFileHandle *aHandle, char *aBuf,
return NS_OK;
}
- Telemetry::Accumulate(Telemetry::NETWORK_CACHE_METADATA_SIZE,
- size - realOffset);
-
// We have all data according to offset information at the end of the entry.
// Try to parse it.
rv = ParseMetadata(realOffset, realOffset - usedOffset, true);
diff --git a/netwerk/cache2/CacheFileUtils.cpp b/netwerk/cache2/CacheFileUtils.cpp
index d43e958bf..fe1a53b3d 100644
--- a/netwerk/cache2/CacheFileUtils.cpp
+++ b/netwerk/cache2/CacheFileUtils.cpp
@@ -7,7 +7,6 @@
#include "CacheFileUtils.h"
#include "LoadContextInfo.h"
#include "mozilla/Tokenizer.h"
-#include "mozilla/Telemetry.h"
#include "nsCOMPtr.h"
#include "nsAutoPtr.h"
#include "nsString.h"
@@ -474,19 +473,6 @@ DetailedCacheHitTelemetry::AddRecord(ERecType aType, TimeStamp aLoadStart)
StaticMutexAutoLock lock(sLock);
- if (aType == MISS) {
- mozilla::Telemetry::AccumulateTimeDelta(
- mozilla::Telemetry::NETWORK_CACHE_V2_MISS_TIME_MS,
- aLoadStart);
- } else {
- mozilla::Telemetry::AccumulateTimeDelta(
- mozilla::Telemetry::NETWORK_CACHE_V2_HIT_TIME_MS,
- aLoadStart);
- }
-
- Telemetry::Accumulate(Telemetry::NETWORK_CACHE_HIT_MISS_STAT_PER_CACHE_SIZE,
- hitMissValue);
-
sHRStats[rangeIdx].AddRecord(aType);
++sRecordCnt;
@@ -505,8 +491,6 @@ DetailedCacheHitTelemetry::AddRecord(ERecType aType, TimeStamp aLoadStart)
uint32_t bucketOffset = sHRStats[i].GetHitRateBucket(kHitRateBuckets) *
kNumOfRanges;
- Telemetry::Accumulate(Telemetry::NETWORK_CACHE_HIT_RATE_PER_CACHE_SIZE,
- bucketOffset + i);
sHRStats[i].Reset();
}
}
diff --git a/netwerk/cache2/CacheFileUtils.h b/netwerk/cache2/CacheFileUtils.h
index 3371c3eb5..13acfd71d 100644
--- a/netwerk/cache2/CacheFileUtils.h
+++ b/netwerk/cache2/CacheFileUtils.h
@@ -138,7 +138,7 @@ private:
// 10-%15%, ...
static const uint32_t kHitRateBuckets = 20;
- // Protects sRecordCnt, sHitStats and Telemetry::Accumulated() calls.
+ // Protects sRecordCnt and sHitStats calls.
static StaticMutex sLock;
// Counter of samples that is compared against kTotalSamplesReportLimit.
diff --git a/netwerk/cache2/CacheIOThread.cpp b/netwerk/cache2/CacheIOThread.cpp
index b96f03216..d51f61b0f 100644
--- a/netwerk/cache2/CacheIOThread.cpp
+++ b/netwerk/cache2/CacheIOThread.cpp
@@ -62,8 +62,6 @@ void CacheIOTelemetry::Report(uint32_t aLevel, CacheIOTelemetry::size_type aLeng
// 10 is number of buckets we have in each probe
aLength = std::min<size_type>(aLength, 10);
-
- Telemetry::Accumulate(telemetryID[aLevel], aLength - 1); // counted from 0
}
} // anon
diff --git a/netwerk/cache2/CacheIndex.cpp b/netwerk/cache2/CacheIndex.cpp
index 4525bbe6d..1009aeaf8 100644
--- a/netwerk/cache2/CacheIndex.cpp
+++ b/netwerk/cache2/CacheIndex.cpp
@@ -3757,7 +3757,6 @@ ReportHashSizeMatch(const SHA1Sum::Hash *aHash1, const SHA1Sum::Hash *aHash2)
bitsDiff++;
uint8_t hashSizeMatch = debruijn32[bitsDiff*0x076be629>>27] + (i<<5);
- Telemetry::Accumulate(Telemetry::NETWORK_CACHE_HASH_STATS, hashSizeMatch);
return;
}
diff --git a/netwerk/cache2/CacheStorageService.cpp b/netwerk/cache2/CacheStorageService.cpp
index 67ef4c526..85f364e4e 100644
--- a/netwerk/cache2/CacheStorageService.cpp
+++ b/netwerk/cache2/CacheStorageService.cpp
@@ -2084,8 +2084,6 @@ CacheStorageService::TelemetryRecordEntryCreation(CacheEntry const* entry)
mPurgeTimeStamps.Remove(key);
- Telemetry::AccumulateTimeDelta(Telemetry::HTTP_CACHE_ENTRY_RELOAD_TIME,
- timeStamp, TimeStamp::NowLoRes());
}
void
@@ -2112,9 +2110,6 @@ CacheStorageService::TelemetryRecordEntryRemoval(CacheEntry const* entry)
TelemetryPrune(now);
mPurgeTimeStamps.Put(key, now);
- Telemetry::Accumulate(Telemetry::HTTP_CACHE_ENTRY_REUSE_COUNT, entry->UseCount());
- Telemetry::AccumulateTimeDelta(Telemetry::HTTP_CACHE_ENTRY_ALIVE_TIME,
- entry->LoadStart(), TimeStamp::NowLoRes());
}
// nsIMemoryReporter
diff --git a/netwerk/cache2/OldWrappers.cpp b/netwerk/cache2/OldWrappers.cpp
index 81df88df0..76a4fa6c1 100644
--- a/netwerk/cache2/OldWrappers.cpp
+++ b/netwerk/cache2/OldWrappers.cpp
@@ -21,7 +21,6 @@
#include "nsNetCID.h"
#include "nsNetUtil.h"
#include "nsProxyRelease.h"
-#include "mozilla/Telemetry.h"
static NS_DEFINE_CID(kStreamTransportServiceCID,
NS_STREAMTRANSPORTSERVICE_CID);
@@ -793,24 +792,6 @@ _OldCacheLoad::Run()
return NS_OK;
}
- if (NS_SUCCEEDED(mStatus)) {
- if (mFlags & nsICacheStorage::OPEN_TRUNCATE) {
- mozilla::Telemetry::AccumulateTimeDelta(
- mozilla::Telemetry::NETWORK_CACHE_V1_TRUNCATE_TIME_MS,
- mLoadStart);
- }
- else if (mNew) {
- mozilla::Telemetry::AccumulateTimeDelta(
- mozilla::Telemetry::NETWORK_CACHE_V1_MISS_TIME_MS,
- mLoadStart);
- }
- else {
- mozilla::Telemetry::AccumulateTimeDelta(
- mozilla::Telemetry::NETWORK_CACHE_V1_HIT_TIME_MS,
- mLoadStart);
- }
- }
-
if (!(mFlags & CHECK_MULTITHREADED))
Check();
diff --git a/netwerk/cookie/nsCookieService.cpp b/netwerk/cookie/nsCookieService.cpp
index 1c4e5e740..ea54dbd61 100644
--- a/netwerk/cookie/nsCookieService.cpp
+++ b/netwerk/cookie/nsCookieService.cpp
@@ -954,19 +954,14 @@ nsCookieService::TryInitDB(bool aRecreateDB)
NS_ENSURE_SUCCESS(rv, RESULT_FAILURE);
}
- // This block provides scope for the Telemetry AutoTimer
- {
- Telemetry::AutoTimer<Telemetry::MOZ_SQLITE_COOKIES_OPEN_READAHEAD_MS>
- telemetry;
- ReadAheadFile(mDefaultDBState->cookieFile);
-
- // open a connection to the cookie database, and only cache our connection
- // and statements upon success. The connection is opened unshared to eliminate
- // cache contention between the main and background threads.
- rv = mStorageService->OpenUnsharedDatabase(mDefaultDBState->cookieFile,
- getter_AddRefs(mDefaultDBState->dbConn));
- NS_ENSURE_SUCCESS(rv, RESULT_RETRY);
- }
+ ReadAheadFile(mDefaultDBState->cookieFile);
+
+ // open a connection to the cookie database, and only cache our connection
+ // and statements upon success. The connection is opened unshared to eliminate
+ // cache contention between the main and background threads.
+ rv = mStorageService->OpenUnsharedDatabase(mDefaultDBState->cookieFile,
+ getter_AddRefs(mDefaultDBState->dbConn));
+ NS_ENSURE_SUCCESS(rv, RESULT_RETRY);
// Set up our listeners.
mDefaultDBState->insertListener = new InsertCookieDBListener(mDefaultDBState);
@@ -3325,11 +3320,6 @@ nsCookieService::SetCookieInternal(nsIURI *aHostURI,
// 3 = secure and "https:"
bool isHTTPS;
nsresult rv = aHostURI->SchemeIs("https", &isHTTPS);
- if (NS_SUCCEEDED(rv)) {
- Telemetry::Accumulate(Telemetry::COOKIE_SCHEME_SECURITY,
- ((cookieAttributes.isSecure)? 0x02 : 0x00) |
- ((isHTTPS)? 0x01 : 0x00));
- }
int64_t currentTimeInUsec = PR_Now();
@@ -3480,8 +3470,6 @@ nsCookieService::AddInternal(const nsCookieKey &aKey,
if (mLeaveSecureAlone && aCookie->IsSecure() && !isSecure) {
COOKIE_LOGFAILURE(SET_COOKIE, aHostURI, aCookieHeader,
"non-https cookie can't set secure flag");
- Telemetry::Accumulate(Telemetry::COOKIE_LEAVE_SECURE_ALONE,
- BLOCKED_SECURE_SET_FROM_HTTP);
return;
}
nsListIter exactIter;
@@ -3502,14 +3490,7 @@ nsCookieService::AddInternal(const nsCookieKey &aKey,
if (!isSecure) {
COOKIE_LOGFAILURE(SET_COOKIE, aHostURI, aCookieHeader,
"cookie can't save because older cookie is secure cookie but newer cookie is non-secure cookie");
- Telemetry::Accumulate(Telemetry::COOKIE_LEAVE_SECURE_ALONE,
- BLOCKED_DOWNGRADE_SECURE);
return;
- } else {
- // A secure site is allowed to downgrade a secure cookie
- // but we want to measure anyway
- Telemetry::Accumulate(Telemetry::COOKIE_LEAVE_SECURE_ALONE,
- DOWNGRADE_SECURE_FROM_SECURE);
}
}
}
@@ -3609,8 +3590,6 @@ nsCookieService::AddInternal(const nsCookieKey &aKey,
// It's valid to evict a secure cookie for another secure cookie.
oldestCookieTime = FindStaleCookie(entry, currentTime, aHostURI, Some(true), iter);
} else {
- Telemetry::Accumulate(Telemetry::COOKIE_LEAVE_SECURE_ALONE,
- EVICTING_SECURE_BLOCKED);
COOKIE_LOGEVICTED(aCookie,
"Too many cookies for this domain and the new cookie is not a secure cookie");
return;
@@ -4651,19 +4630,7 @@ void
nsCookieService::TelemetryForEvictingStaleCookie(nsCookie *aEvicted,
int64_t oldestCookieTime)
{
- // We need to record the evicting cookie to telemetry.
- if (!aEvicted->IsSecure()) {
- if (aEvicted->LastAccessed() > oldestCookieTime) {
- Telemetry::Accumulate(Telemetry::COOKIE_LEAVE_SECURE_ALONE,
- EVICTED_NEWER_INSECURE);
- } else {
- Telemetry::Accumulate(Telemetry::COOKIE_LEAVE_SECURE_ALONE,
- EVICTED_OLDEST_COOKIE);
- }
- } else {
- Telemetry::Accumulate(Telemetry::COOKIE_LEAVE_SECURE_ALONE,
- EVICTED_PREFERRED_COOKIE);
- }
+ /* STUB */
}
// count the number of cookies stored by a particular host. this is provided by the
diff --git a/netwerk/dns/nsHostResolver.cpp b/netwerk/dns/nsHostResolver.cpp
index f2e26cadd..c4883ab29 100644
--- a/netwerk/dns/nsHostResolver.cpp
+++ b/netwerk/dns/nsHostResolver.cpp
@@ -225,7 +225,6 @@ nsHostRecord::CopyExpirationTimesAndFlagsFrom(const nsHostRecord *aFromHostRecor
nsHostRecord::~nsHostRecord()
{
- Telemetry::Accumulate(Telemetry::DNS_BLACKLIST_COUNT, mBlacklistedCount);
delete addr_info;
delete addr;
}
@@ -775,7 +774,6 @@ nsHostResolver::ResolveHost(const char *host,
LOG_HOST(host, netInterface)));
// put reference to host record on stack...
result = he->rec;
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2, METHOD_HIT);
// For entries that are in the grace period
// or all cached negative entries, use the cache but start a new
@@ -785,8 +783,6 @@ nsHostResolver::ResolveHost(const char *host,
if (he->rec->negative) {
LOG((" Negative cache entry for host [%s%s%s].\n",
LOG_HOST(host, netInterface)));
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_NEGATIVE_HIT);
status = NS_ERROR_UNKNOWN_HOST;
}
}
@@ -794,8 +790,6 @@ nsHostResolver::ResolveHost(const char *host,
// go ahead and use it.
else if (he->rec->addr) {
LOG((" Using cached address for IP Literal [%s].\n", host));
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_LITERAL);
result = he->rec;
}
// try parsing the host name as an IP address literal to short
@@ -808,8 +802,6 @@ nsHostResolver::ResolveHost(const char *host,
he->rec->addr = new NetAddr();
PRNetAddrToNetAddr(&tempAddr, he->rec->addr);
// put reference to host record on stack...
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_LITERAL);
result = he->rec;
}
else if (mPendingCount >= MAX_NON_PRIORITY_REQUESTS &&
@@ -819,8 +811,6 @@ nsHostResolver::ResolveHost(const char *host,
"host [%s%s%s].\n",
IsMediumPriority(flags) ? "medium" : "low",
LOG_HOST(host, netInterface)));
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_OVERFLOW);
// This is a lower priority request and we are swamped, so refuse it.
rv = NS_ERROR_DNS_LOOKUP_QUEUE_FULL;
}
@@ -885,8 +875,6 @@ nsHostResolver::ResolveHost(const char *host,
if (he->rec->negative) {
status = NS_ERROR_UNKNOWN_HOST;
}
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_HIT);
ConditionallyRefreshRecord(he->rec, host);
}
// For AF_INET6, a new lookup means another AF_UNSPEC
@@ -900,8 +888,6 @@ nsHostResolver::ResolveHost(const char *host,
result = he->rec;
he->rec->negative = true;
status = NS_ERROR_UNKNOWN_HOST;
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_NEGATIVE_HIT);
}
}
}
@@ -915,8 +901,6 @@ nsHostResolver::ResolveHost(const char *host,
PR_APPEND_LINK(callback, &he->rec->callbacks);
he->rec->flags = flags;
rv = IssueLookup(he->rec);
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_NETWORK_FIRST);
if (NS_FAILED(rv)) {
PR_REMOVE_AND_INIT_LINK(callback);
}
@@ -933,8 +917,6 @@ nsHostResolver::ResolveHost(const char *host,
PR_APPEND_LINK(callback, &he->rec->callbacks);
if (he->rec->onQueue) {
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_NETWORK_SHARED);
// Consider the case where we are on a pending queue of
// lower priority than the request is being made at.
@@ -1085,13 +1067,6 @@ nsHostResolver::ConditionallyRefreshRecord(nsHostRecord *rec, const char *host)
LOG((" Using %s cache entry for host [%s] but starting async renewal.",
rec->negative ? "negative" :"positive", host));
IssueLookup(rec);
-
- if (!rec->negative) {
- // negative entries are constantly being refreshed, only
- // track positive grace period induced renewals
- Telemetry::Accumulate(Telemetry::DNS_LOOKUP_METHOD2,
- METHOD_RENEWAL);
- }
}
return NS_OK;
}
@@ -1326,13 +1301,6 @@ nsHostResolver::OnLookupComplete(nsHostRecord* rec, nsresult status, AddrInfo* n
PR_REMOVE_AND_INIT_LINK(head);
mDB.Remove((nsHostKey *) head);
- if (!head->negative) {
- // record the age of the entry upon eviction.
- TimeDuration age = TimeStamp::NowLoRes() - head->mValidStart;
- Telemetry::Accumulate(Telemetry::DNS_CLEANUP_AGE,
- static_cast<uint32_t>(age.ToSeconds() / 60));
- }
-
// release reference to rec owned by mEvictionQ
NS_RELEASE(head);
}
@@ -1467,32 +1435,6 @@ nsHostResolver::ThreadFunc(void *arg)
}
#endif
- { // obtain lock to check shutdown and manage inter-module telemetry
- MutexAutoLock lock(resolver->mLock);
-
- if (!resolver->mShutdown) {
- TimeDuration elapsed = TimeStamp::Now() - startTime;
- uint32_t millis = static_cast<uint32_t>(elapsed.ToMilliseconds());
-
- if (NS_SUCCEEDED(status)) {
- Telemetry::ID histogramID;
- if (!rec->addr_info_gencnt) {
- // Time for initial lookup.
- histogramID = Telemetry::DNS_LOOKUP_TIME;
- } else if (!getTtl) {
- // Time for renewal; categorized by expiration strategy.
- histogramID = Telemetry::DNS_RENEWAL_TIME;
- } else {
- // Time to get TTL; categorized by expiration strategy.
- histogramID = Telemetry::DNS_RENEWAL_TIME_FOR_TTL;
- }
- Telemetry::Accumulate(histogramID, millis);
- } else {
- Telemetry::Accumulate(Telemetry::DNS_FAILED_LOOKUP_TIME, millis);
- }
- }
- }
-
// OnLookupComplete may release "rec", long before we lose it.
LOG(("DNS lookup thread - lookup completed for host [%s%s%s]: %s.\n",
LOG_HOST(rec->host, rec->netInterface),
diff --git a/netwerk/protocol/http/ASpdySession.cpp b/netwerk/protocol/http/ASpdySession.cpp
index f22c326d1..d5d98804d 100644
--- a/netwerk/protocol/http/ASpdySession.cpp
+++ b/netwerk/protocol/http/ASpdySession.cpp
@@ -45,8 +45,6 @@ ASpdySession::NewSpdySession(uint32_t version,
// from a list provided in the SERVER HELLO filtered by our acceptable
// versions, so there is no risk of the server ignoring our prefs.
- Telemetry::Accumulate(Telemetry::SPDY_VERSION2, version);
-
return new Http2Session(aTransport, version, attemptingEarlyData);
}
diff --git a/netwerk/protocol/http/Http2Compression.cpp b/netwerk/protocol/http/Http2Compression.cpp
index 1b4603e1a..64fd05a17 100644
--- a/netwerk/protocol/http/Http2Compression.cpp
+++ b/netwerk/protocol/http/Http2Compression.cpp
@@ -292,12 +292,6 @@ Http2BaseCompressor::Http2BaseCompressor()
Http2BaseCompressor::~Http2BaseCompressor()
{
- if (mPeakSize) {
- Telemetry::Accumulate(mPeakSizeID, mPeakSize);
- }
- if (mPeakCount) {
- Telemetry::Accumulate(mPeakCountID, mPeakCount);
- }
UnregisterStrongMemoryReporter(mDynamicReporter);
mDynamicReporter->mCompressor = nullptr;
mDynamicReporter = nullptr;
@@ -336,16 +330,6 @@ Http2BaseCompressor::MakeRoom(uint32_t amount, const char *direction)
bytesEvicted += mHeaderTable[index]->Size();
mHeaderTable.RemoveElement();
}
-
- if (!strcmp(direction, "decompressor")) {
- Telemetry::Accumulate(Telemetry::HPACK_ELEMENTS_EVICTED_DECOMPRESSOR, countEvicted);
- Telemetry::Accumulate(Telemetry::HPACK_BYTES_EVICTED_DECOMPRESSOR, bytesEvicted);
- Telemetry::Accumulate(Telemetry::HPACK_BYTES_EVICTED_RATIO_DECOMPRESSOR, (uint32_t)((100.0 * (double)bytesEvicted) / (double)amount));
- } else {
- Telemetry::Accumulate(Telemetry::HPACK_ELEMENTS_EVICTED_COMPRESSOR, countEvicted);
- Telemetry::Accumulate(Telemetry::HPACK_BYTES_EVICTED_COMPRESSOR, bytesEvicted);
- Telemetry::Accumulate(Telemetry::HPACK_BYTES_EVICTED_RATIO_COMPRESSOR, (uint32_t)((100.0 * (double)bytesEvicted) / (double)amount));
- }
}
void
diff --git a/netwerk/protocol/http/Http2Session.cpp b/netwerk/protocol/http/Http2Session.cpp
index 4f350af83..4a178f091 100644
--- a/netwerk/protocol/http/Http2Session.cpp
+++ b/netwerk/protocol/http/Http2Session.cpp
@@ -168,13 +168,6 @@ Http2Session::~Http2Session()
this, mDownstreamState));
Shutdown();
-
- Telemetry::Accumulate(Telemetry::SPDY_PARALLEL_STREAMS, mConcurrentHighWater);
- Telemetry::Accumulate(Telemetry::SPDY_REQUEST_PER_CONN, (mNextStreamID - 1) / 2);
- Telemetry::Accumulate(Telemetry::SPDY_SERVER_INITIATED_STREAMS,
- mServerPushedResources);
- Telemetry::Accumulate(Telemetry::SPDY_GOAWAY_LOCAL, mClientGoAwayReason);
- Telemetry::Accumulate(Telemetry::SPDY_GOAWAY_PEER, mPeerGoAwayReason);
}
void
@@ -1508,13 +1501,11 @@ Http2Session::RecvSettings(Http2Session *self)
case SETTINGS_TYPE_MAX_CONCURRENT:
self->mMaxConcurrent = value;
- Telemetry::Accumulate(Telemetry::SPDY_SETTINGS_MAX_STREAMS, value);
self->ProcessPending();
break;
case SETTINGS_TYPE_INITIAL_WINDOW:
{
- Telemetry::Accumulate(Telemetry::SPDY_SETTINGS_IW, value >> 10);
int32_t delta = value - self->mServerInitialStreamWindow;
self->mServerInitialStreamWindow = value;
@@ -2494,8 +2485,6 @@ Http2Session::ReadyToProcessDataFrame(enum internalStateType newState)
newState == DISCARDING_DATA_FRAME_PADDING);
ChangeDownstreamState(newState);
- Telemetry::Accumulate(Telemetry::SPDY_CHUNK_RECVD,
- mInputFrameDataSize >> 10);
mLastDataReadEpoch = mLastReadEpoch;
if (!mInputFrameID) {
diff --git a/netwerk/protocol/http/Http2Stream.cpp b/netwerk/protocol/http/Http2Stream.cpp
index 7a8f96855..3471985dd 100644
--- a/netwerk/protocol/http/Http2Stream.cpp
+++ b/netwerk/protocol/http/Http2Stream.cpp
@@ -21,7 +21,6 @@
#include "Http2Push.h"
#include "TunnelUtils.h"
-#include "mozilla/Telemetry.h"
#include "nsAlgorithm.h"
#include "nsHttp.h"
#include "nsHttpHandler.h"
@@ -658,8 +657,6 @@ Http2Stream::GenerateOpen()
outputOffset += frameLen;
}
- Telemetry::Accumulate(Telemetry::SPDY_SYN_SIZE, compressedData.Length());
-
// The size of the input headers is approximate
uint32_t ratio =
compressedData.Length() * 100 /
@@ -667,7 +664,6 @@ Http2Stream::GenerateOpen()
mFlatHttpRequestHeaders.Length());
mFlatHttpRequestHeaders.Truncate();
- Telemetry::Accumulate(Telemetry::SPDY_SYN_RATIO, ratio);
return NS_OK;
}
@@ -1025,13 +1021,6 @@ Http2Stream::ConvertResponseHeaders(Http2Decompressor *decompressor,
return NS_ERROR_ILLEGAL_VALUE;
}
- if (aHeadersIn.Length() && aHeadersOut.Length()) {
- Telemetry::Accumulate(Telemetry::SPDY_SYN_REPLY_SIZE, aHeadersIn.Length());
- uint32_t ratio =
- aHeadersIn.Length() * 100 / aHeadersOut.Length();
- Telemetry::Accumulate(Telemetry::SPDY_SYN_REPLY_RATIO, ratio);
- }
-
// The decoding went ok. Now we can customize and clean up.
aHeadersIn.Truncate();
diff --git a/netwerk/protocol/http/HttpBaseChannel.cpp b/netwerk/protocol/http/HttpBaseChannel.cpp
index d161f9a43..c4e764d26 100644
--- a/netwerk/protocol/http/HttpBaseChannel.cpp
+++ b/netwerk/protocol/http/HttpBaseChannel.cpp
@@ -49,7 +49,6 @@
#include "LoadInfo.h"
#include "nsNullPrincipal.h"
#include "nsISSLSocketControl.h"
-#include "mozilla/Telemetry.h"
#include "nsIURL.h"
#include "nsIConsoleService.h"
#include "mozilla/BinarySearch.h"
@@ -1006,7 +1005,6 @@ HttpBaseChannel::DoApplyContentConversions(nsIStreamListener* aNextListener,
} else if (from.Equals("br")) {
mode = 3;
}
- Telemetry::Accumulate(Telemetry::HTTP_CONTENT_ENCODING, mode);
}
nextListener = converter;
}
diff --git a/netwerk/protocol/http/nsCORSListenerProxy.cpp b/netwerk/protocol/http/nsCORSListenerProxy.cpp
index c2a624330..b9355c82b 100644
--- a/netwerk/protocol/http/nsCORSListenerProxy.cpp
+++ b/netwerk/protocol/http/nsCORSListenerProxy.cpp
@@ -577,7 +577,7 @@ nsCORSListenerProxy::CheckRequestApproved(nsIRequest* aRequest)
// check for duplicate headers
rv = http->VisitOriginalResponseHeaders(visitor);
if (NS_FAILED(rv)) {
- LogBlockedRequest(aRequest, "CORSAllowOriginNotMatchingOrigin", nullptr);
+ LogBlockedRequest(aRequest, "CORSMultipleAllowOriginNotAllowed", nullptr);
return rv;
}
diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp
index ac855b478..bb0b3ca77 100644
--- a/netwerk/protocol/http/nsHttpChannel.cpp
+++ b/netwerk/protocol/http/nsHttpChannel.cpp
@@ -133,18 +133,7 @@ enum CacheDisposition {
void
AccumulateCacheHitTelemetry(CacheDisposition hitOrMiss)
{
- if (!CacheObserver::UseNewCache()) {
- Telemetry::Accumulate(Telemetry::HTTP_CACHE_DISPOSITION_2, hitOrMiss);
- }
- else {
- Telemetry::Accumulate(Telemetry::HTTP_CACHE_DISPOSITION_2_V2, hitOrMiss);
-
- int32_t experiment = CacheObserver::HalfLifeExperiment();
- if (experiment > 0 && hitOrMiss == kCacheMissed) {
- Telemetry::Accumulate(Telemetry::HTTP_CACHE_MISS_HALFLIFE_EXPERIMENT_2,
- experiment - 1);
- }
- }
+ /* STUB */
}
// Computes and returns a SHA1 hash of the input buffer. The input buffer
@@ -1141,26 +1130,21 @@ EnsureMIMEOfScript(nsIURI* aURI, nsHttpResponseHead* aResponseHead, nsILoadInfo*
if (nsContentUtils::IsJavascriptMIMEType(typeString)) {
// script load has type script
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 1);
return NS_OK;
}
bool block = false;
if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("image/"))) {
// script load has type image
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 2);
block = true;
} else if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("audio/"))) {
// script load has type audio
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 3);
block = true;
} else if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("video/"))) {
// script load has type video
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 4);
block = true;
} else if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("text/csv"))) {
// script load has type text/csv
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 6);
block = true;
}
@@ -1186,42 +1170,35 @@ EnsureMIMEOfScript(nsIURI* aURI, nsHttpResponseHead* aResponseHead, nsILoadInfo*
if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("text/plain"))) {
// script load has type text/plain
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 5);
return NS_OK;
}
if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("text/xml"))) {
// script load has type text/xml
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 7);
return NS_OK;
}
if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("application/octet-stream"))) {
// script load has type application/octet-stream
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 8);
return NS_OK;
}
if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("application/xml"))) {
// script load has type application/xml
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 9);
return NS_OK;
}
if (StringBeginsWith(contentType, NS_LITERAL_CSTRING("text/html"))) {
// script load has type text/html
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 10);
return NS_OK;
}
if (contentType.IsEmpty()) {
// script load has no type
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 11);
return NS_OK;
}
// script load has unknown type
- Telemetry::Accumulate(Telemetry::SCRIPT_BLOCK_INCORRECT_MIME, 0);
return NS_OK;
}
@@ -1867,65 +1844,6 @@ nsHttpChannel::ProcessResponse()
LOG(("nsHttpChannel::ProcessResponse [this=%p httpStatus=%u]\n",
this, httpStatus));
- // do some telemetry
- if (gHttpHandler->IsTelemetryEnabled()) {
- // Gather data on whether the transaction and page (if this is
- // the initial page load) is being loaded with SSL.
- Telemetry::Accumulate(Telemetry::HTTP_TRANSACTION_IS_SSL,
- mConnectionInfo->EndToEndSSL());
- if (mLoadFlags & LOAD_INITIAL_DOCUMENT_URI) {
- Telemetry::Accumulate(Telemetry::HTTP_PAGELOAD_IS_SSL,
- mConnectionInfo->EndToEndSSL());
- }
-
- // how often do we see something like Alternate-Protocol: "443:quic,p=1"
- nsAutoCString alt_protocol;
- mResponseHead->GetHeader(nsHttp::Alternate_Protocol, alt_protocol);
- bool saw_quic = (!alt_protocol.IsEmpty() &&
- PL_strstr(alt_protocol.get(), "quic")) ? 1 : 0;
- Telemetry::Accumulate(Telemetry::HTTP_SAW_QUIC_ALT_PROTOCOL, saw_quic);
-
- // Gather data on how many URLS get redirected
- switch (httpStatus) {
- case 200:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 0);
- break;
- case 301:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 1);
- break;
- case 302:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 2);
- break;
- case 304:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 3);
- break;
- case 307:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 4);
- break;
- case 308:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 5);
- break;
- case 400:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 6);
- break;
- case 401:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 7);
- break;
- case 403:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 8);
- break;
- case 404:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 9);
- break;
- case 500:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 10);
- break;
- default:
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_STATUS_CODE, 11);
- break;
- }
- }
-
// Let the predictor know whether this was a cacheable response or not so
// that it knows whether or not to possibly prefetch this resource in the
// future.
@@ -2204,9 +2122,6 @@ nsHttpChannel::ContinueProcessResponse2(nsresult rv)
}
AccumulateCacheHitTelemetry(cacheDisposition);
- Telemetry::Accumulate(Telemetry::HTTP_RESPONSE_VERSION,
- mResponseHead->Version());
-
if (mResponseHead->Version() == NS_HTTP_VERSION_0_9) {
// DefaultPortTopLevel = 0, DefaultPortSubResource = 1,
// NonDefaultPortTopLevel = 2, NonDefaultPortSubResource = 3
@@ -2217,7 +2132,6 @@ nsHttpChannel::ContinueProcessResponse2(nsresult rv)
if (mConnectionInfo->OriginPort() != mConnectionInfo->DefaultPort()) {
v09Info += 2;
}
- Telemetry::Accumulate(Telemetry::HTTP_09_INFO, v09Info);
}
}
return rv;
@@ -3212,7 +3126,6 @@ nsHttpChannel::ProcessNotModified()
PipelineFeedbackInfo(mConnectionInfo,
nsHttpConnectionMgr::RedCorruptedContent,
nullptr, 0);
- Telemetry::Accumulate(Telemetry::CACHE_LM_INCONSISTENT, true);
}
// merge any new headers with the cached response headers
@@ -3372,10 +3285,6 @@ nsHttpChannel::ContinueProcessFallback(nsresult rv)
}
NS_ENSURE_SUCCESS(rv, rv);
- if (mLoadFlags & LOAD_INITIAL_DOCUMENT_URI) {
- MaybeWarnAboutAppCache();
- }
-
// close down this channel
Cancel(NS_BINDING_REDIRECTED);
@@ -4226,11 +4135,6 @@ nsHttpChannel::OnNormalCacheEntryAvailable(nsICacheEntry *aEntry,
if (NS_SUCCEEDED(aEntryStatus)) {
mCacheEntry = aEntry;
mCacheEntryIsWriteOnly = aNew;
-
- if (mLoadFlags & LOAD_INITIAL_DOCUMENT_URI) {
- Telemetry::Accumulate(Telemetry::HTTP_OFFLINE_CACHE_DOCUMENT_LOAD,
- false);
- }
}
return NS_OK;
@@ -4261,10 +4165,6 @@ nsHttpChannel::OnOfflineCacheEntryAvailable(nsICacheEntry *aEntry,
mCacheEntry = aEntry;
mCacheEntryIsWriteOnly = false;
- if (mLoadFlags & LOAD_INITIAL_DOCUMENT_URI && !mApplicationCacheForWrite) {
- MaybeWarnAboutAppCache();
- }
-
return NS_OK;
}
@@ -5905,17 +5805,13 @@ nsHttpChannel::BeginConnect()
LOG(("nsHttpChannel %p Using connection info from altsvc mapping", this));
mapping->GetConnectionInfo(getter_AddRefs(mConnectionInfo), proxyInfo, originAttributes);
- Telemetry::Accumulate(Telemetry::HTTP_TRANSACTION_USE_ALTSVC, true);
- Telemetry::Accumulate(Telemetry::HTTP_TRANSACTION_USE_ALTSVC_OE, !isHttps);
} else if (mConnectionInfo) {
LOG(("nsHttpChannel %p Using channel supplied connection info", this));
- Telemetry::Accumulate(Telemetry::HTTP_TRANSACTION_USE_ALTSVC, false);
} else {
LOG(("nsHttpChannel %p Using default connection info", this));
mConnectionInfo = new nsHttpConnectionInfo(host, port, EmptyCString(), mUsername, proxyInfo,
originAttributes, isHttps);
- Telemetry::Accumulate(Telemetry::HTTP_TRANSACTION_USE_ALTSVC, false);
}
// Set network interface id only when it's not empty to avoid
@@ -6837,7 +6733,6 @@ nsHttpChannel::OnStopRequest(nsIRequest *request, nsISupports *ctxt, nsresult st
chanDisposition = static_cast<ChannelDisposition>(chanDisposition + kHttpsCanceled);
}
LOG((" nsHttpChannel::OnStopRequest ChannelDisposition %d\n", chanDisposition));
- Telemetry::Accumulate(Telemetry::HTTP_CHANNEL_DISPOSITION, chanDisposition);
// if needed, check cache entry has all data we expect
if (mCacheEntry && mCachePump &&
@@ -8187,21 +8082,6 @@ nsHttpChannel::ResumeInternal()
}
void
-nsHttpChannel::MaybeWarnAboutAppCache()
-{
- // First, accumulate a telemetry ping about appcache usage.
- Telemetry::Accumulate(Telemetry::HTTP_OFFLINE_CACHE_DOCUMENT_LOAD,
- true);
-
- // Then, issue a deprecation warning.
- nsCOMPtr<nsIDeprecationWarner> warner;
- GetCallback(warner);
- if (warner) {
- warner->IssueWarning(nsIDocument::eAppCache, false);
- }
-}
-
-void
nsHttpChannel::SetDoNotTrack()
{
/**
@@ -8223,129 +8103,7 @@ nsHttpChannel::SetDoNotTrack()
void
nsHttpChannel::ReportNetVSCacheTelemetry()
{
- nsresult rv;
- if (!mCacheEntry) {
- return;
- }
-
- // We only report telemetry if the entry is persistent (on disk)
- bool persistent;
- rv = mCacheEntry->GetPersistent(&persistent);
- if (NS_FAILED(rv) || !persistent) {
- return;
- }
-
- nsXPIDLCString tmpStr;
- rv = mCacheEntry->GetMetaDataElement("net-response-time-onstart",
- getter_Copies(tmpStr));
- if (NS_FAILED(rv)) {
- return;
- }
- uint64_t onStartNetTime = tmpStr.ToInteger64(&rv);
- if (NS_FAILED(rv)) {
- return;
- }
-
- tmpStr.Truncate();
- rv = mCacheEntry->GetMetaDataElement("net-response-time-onstop",
- getter_Copies(tmpStr));
- if (NS_FAILED(rv)) {
- return;
- }
- uint64_t onStopNetTime = tmpStr.ToInteger64(&rv);
- if (NS_FAILED(rv)) {
- return;
- }
-
- uint64_t onStartCacheTime = (mOnStartRequestTimestamp - mAsyncOpenTime).ToMilliseconds();
- int64_t onStartDiff = onStartNetTime - onStartCacheTime;
- onStartDiff += 500; // We offset the difference by 500 ms to report positive values in telemetry
-
- uint64_t onStopCacheTime = (mCacheReadEnd - mAsyncOpenTime).ToMilliseconds();
- int64_t onStopDiff = onStopNetTime - onStopCacheTime;
- onStopDiff += 500; // We offset the difference by 500 ms
-
- if (mDidReval) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_REVALIDATED, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_REVALIDATED, onStopDiff);
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_NOTREVALIDATED, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_NOTREVALIDATED, onStopDiff);
- }
-
- if (mDidReval) {
- // We don't report revalidated probes as the data would be skewed.
- return;
- }
-
- uint32_t diskStorageSizeK = 0;
- rv = mCacheEntry->GetDiskStorageSizeInKB(&diskStorageSizeK);
- if (NS_FAILED(rv)) {
- return;
- }
-
- nsAutoCString contentType;
- if (mResponseHead && mResponseHead->HasContentType()) {
- mResponseHead->ContentType(contentType);
- }
- bool isImage = StringBeginsWith(contentType, NS_LITERAL_CSTRING("image/"));
- if (isImage) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_ISIMG, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_ISIMG, onStopDiff);
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_NOTIMG, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_NOTIMG, onStopDiff);
- }
-
- if (mCacheOpenWithPriority) {
- if (mCacheQueueSizeWhenOpen < 5) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_QSMALL_HIGHPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_QSMALL_HIGHPRI, onStopDiff);
- } else if (mCacheQueueSizeWhenOpen < 10) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_QMED_HIGHPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_QMED_HIGHPRI, onStopDiff);
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_QBIG_HIGHPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_QBIG_HIGHPRI, onStopDiff);
- }
- } else { // The limits are higher for normal priority cache queues
- if (mCacheQueueSizeWhenOpen < 10) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_QSMALL_NORMALPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_QSMALL_NORMALPRI, onStopDiff);
- } else if (mCacheQueueSizeWhenOpen < 50) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_QMED_NORMALPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_QMED_NORMALPRI, onStopDiff);
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_QBIG_NORMALPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_QBIG_NORMALPRI, onStopDiff);
- }
- }
-
- if (diskStorageSizeK < 32) {
- if (mCacheOpenWithPriority) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_SMALL_HIGHPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_SMALL_HIGHPRI, onStopDiff);
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_SMALL_NORMALPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_SMALL_NORMALPRI, onStopDiff);
- }
- } else if (diskStorageSizeK < 256) {
- if (mCacheOpenWithPriority) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_MED_HIGHPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_MED_HIGHPRI, onStopDiff);
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_MED_NORMALPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_MED_NORMALPRI, onStopDiff);
- }
- } else {
- if (mCacheOpenWithPriority) {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_LARGE_HIGHPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_LARGE_HIGHPRI, onStopDiff);
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_LARGE_NORMALPRI, onStartDiff);
- Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_LARGE_NORMALPRI, onStopDiff);
- }
- }
+ /* STUB */
}
} // namespace net
diff --git a/netwerk/protocol/http/nsHttpChannel.h b/netwerk/protocol/http/nsHttpChannel.h
index 3a322e8e2..2e24d6e81 100644
--- a/netwerk/protocol/http/nsHttpChannel.h
+++ b/netwerk/protocol/http/nsHttpChannel.h
@@ -452,8 +452,6 @@ private:
void SetPushedStream(Http2PushedStream *stream);
- void MaybeWarnAboutAppCache();
-
void SetDoNotTrack();
private:
diff --git a/netwerk/protocol/http/nsHttpChannelAuthProvider.cpp b/netwerk/protocol/http/nsHttpChannelAuthProvider.cpp
index d04f47ddc..0e7eb55c3 100644
--- a/netwerk/protocol/http/nsHttpChannelAuthProvider.cpp
+++ b/netwerk/protocol/http/nsHttpChannelAuthProvider.cpp
@@ -867,24 +867,6 @@ nsHttpChannelAuthProvider::GetCredentialsForChallenge(const char *challenge,
else if (authFlags & nsIHttpAuthenticator::IDENTITY_ENCRYPTED)
level = nsIAuthPrompt2::LEVEL_PW_ENCRYPTED;
- // Collect statistics on how frequently the various types of HTTP
- // authentication are used over SSL and non-SSL connections.
- if (gHttpHandler->IsTelemetryEnabled()) {
- if (NS_LITERAL_CSTRING("basic").LowerCaseEqualsASCII(authType)) {
- Telemetry::Accumulate(Telemetry::HTTP_AUTH_TYPE_STATS,
- UsingSSL() ? HTTP_AUTH_BASIC_SECURE : HTTP_AUTH_BASIC_INSECURE);
- } else if (NS_LITERAL_CSTRING("digest").LowerCaseEqualsASCII(authType)) {
- Telemetry::Accumulate(Telemetry::HTTP_AUTH_TYPE_STATS,
- UsingSSL() ? HTTP_AUTH_DIGEST_SECURE : HTTP_AUTH_DIGEST_INSECURE);
- } else if (NS_LITERAL_CSTRING("ntlm").LowerCaseEqualsASCII(authType)) {
- Telemetry::Accumulate(Telemetry::HTTP_AUTH_TYPE_STATS,
- UsingSSL() ? HTTP_AUTH_NTLM_SECURE : HTTP_AUTH_NTLM_INSECURE);
- } else if (NS_LITERAL_CSTRING("negotiate").LowerCaseEqualsASCII(authType)) {
- Telemetry::Accumulate(Telemetry::HTTP_AUTH_TYPE_STATS,
- UsingSSL() ? HTTP_AUTH_NEGOTIATE_SECURE : HTTP_AUTH_NEGOTIATE_INSECURE);
- }
- }
-
// Depending on the pref setting, the authentication dialog may be
// blocked for all sub-resources, blocked for cross-origin
// sub-resources, or always allowed for sub-resources.
@@ -991,22 +973,6 @@ nsHttpChannelAuthProvider::BlockPrompt()
}
}
- if (gHttpHandler->IsTelemetryEnabled()) {
- if (topDoc) {
- Telemetry::Accumulate(Telemetry::HTTP_AUTH_DIALOG_STATS,
- HTTP_AUTH_DIALOG_TOP_LEVEL_DOC);
- } else if (xhr) {
- Telemetry::Accumulate(Telemetry::HTTP_AUTH_DIALOG_STATS,
- HTTP_AUTH_DIALOG_XHR);
- } else if (!mCrossOrigin) {
- Telemetry::Accumulate(Telemetry::HTTP_AUTH_DIALOG_STATS,
- HTTP_AUTH_DIALOG_SAME_ORIGIN_SUBRESOURCE);
- } else {
- Telemetry::Accumulate(Telemetry::HTTP_AUTH_DIALOG_STATS,
- HTTP_AUTH_DIALOG_CROSS_ORIGIN_SUBRESOURCE);
- }
- }
-
switch (sAuthAllowPref) {
case SUBRESOURCE_AUTH_DIALOG_DISALLOW_ALL:
// Do not open the http-authentication credentials dialog for
diff --git a/netwerk/protocol/http/nsHttpConnection.cpp b/netwerk/protocol/http/nsHttpConnection.cpp
index c4564cd8b..8ccba76e2 100644
--- a/netwerk/protocol/http/nsHttpConnection.cpp
+++ b/netwerk/protocol/http/nsHttpConnection.cpp
@@ -19,7 +19,6 @@
#include "ASpdySession.h"
#include "mozilla/ChaosMode.h"
-#include "mozilla/Telemetry.h"
#include "nsHttpConnection.h"
#include "nsHttpHandler.h"
#include "nsHttpPipeline.h"
@@ -105,18 +104,12 @@ nsHttpConnection::~nsHttpConnection()
if (!mEverUsedSpdy) {
LOG(("nsHttpConnection %p performed %d HTTP/1.x transactions\n",
this, mHttp1xTransactionCount));
- Telemetry::Accumulate(Telemetry::HTTP_REQUEST_PER_CONN,
- mHttp1xTransactionCount);
}
if (mTotalBytesRead) {
uint32_t totalKBRead = static_cast<uint32_t>(mTotalBytesRead >> 10);
LOG(("nsHttpConnection %p read %dkb on connection spdy=%d\n",
this, totalKBRead, mEverUsedSpdy));
- Telemetry::Accumulate(mEverUsedSpdy ?
- Telemetry::SPDY_KBREAD_PER_CONN :
- Telemetry::HTTP_KBREAD_PER_CONN,
- totalKBRead);
}
if (mForceSendTimer) {
mForceSendTimer->Cancel();
@@ -482,21 +475,6 @@ nsHttpConnection::EnsureNPNComplete(nsresult &aOut0RTTWriteHandshakeValue,
int16_t tlsVersion;
ssl->GetSSLVersionUsed(&tlsVersion);
- // Send the 0RTT telemetry only for tls1.3
- if (tlsVersion > nsISSLSocketControl::TLS_VERSION_1_2) {
- Telemetry::Accumulate(Telemetry::TLS_EARLY_DATA_NEGOTIATED,
- (!mEarlyDataNegotiated) ? TLS_EARLY_DATA_NOT_AVAILABLE
- : ((mWaitingFor0RTTResponse) ? TLS_EARLY_DATA_AVAILABLE_AND_USED
- : TLS_EARLY_DATA_AVAILABLE_BUT_NOT_USED));
- if (mWaitingFor0RTTResponse) {
- Telemetry::Accumulate(Telemetry::TLS_EARLY_DATA_ACCEPTED,
- earlyDataAccepted);
- }
- if (earlyDataAccepted) {
- Telemetry::Accumulate(Telemetry::TLS_EARLY_DATA_BYTES_WRITTEN,
- mContentBytesWritten0RTT);
- }
- }
mWaitingFor0RTTResponse = false;
if (!earlyDataAccepted) {
@@ -518,8 +496,6 @@ nsHttpConnection::EnsureNPNComplete(nsresult &aOut0RTTWriteHandshakeValue,
StartSpdy(mSpdySession->SpdyVersion());
}
}
-
- Telemetry::Accumulate(Telemetry::SPDY_NPN_CONNECT, UsingSpdy());
}
npnComplete:
diff --git a/netwerk/protocol/http/nsHttpConnectionMgr.cpp b/netwerk/protocol/http/nsHttpConnectionMgr.cpp
index 9271b49af..731cdff39 100644
--- a/netwerk/protocol/http/nsHttpConnectionMgr.cpp
+++ b/netwerk/protocol/http/nsHttpConnectionMgr.cpp
@@ -23,7 +23,6 @@
#include "mozilla/net/DNS.h"
#include "nsISocketTransport.h"
#include "nsISSLSocketControl.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/net/DashboardTypes.h"
#include "NullHttpTransaction.h"
#include "nsIDNSRecord.h"
@@ -847,7 +846,6 @@ nsHttpConnectionMgr::GetSpdyPreferredEnt(nsConnectionEntry *aOriginalEntry)
"with %s connections. rv=%x isJoined=%d",
preferred->mConnInfo->Origin(), aOriginalEntry->mConnInfo->Origin(),
rv, isJoined));
- Telemetry::Accumulate(Telemetry::SPDY_NPN_JOIN, false);
return nullptr;
}
@@ -857,7 +855,6 @@ nsHttpConnectionMgr::GetSpdyPreferredEnt(nsConnectionEntry *aOriginalEntry)
"so %s will be coalesced with %s",
preferred->mConnInfo->Origin(), aOriginalEntry->mConnInfo->Origin(),
aOriginalEntry->mConnInfo->Origin(), preferred->mConnInfo->Origin()));
- Telemetry::Accumulate(Telemetry::SPDY_NPN_JOIN, true);
return preferred;
}
@@ -1835,16 +1832,7 @@ nsHttpConnectionMgr::BuildPipeline(nsConnectionEntry *ent,
void
nsHttpConnectionMgr::ReportProxyTelemetry(nsConnectionEntry *ent)
{
- enum { PROXY_NONE = 1, PROXY_HTTP = 2, PROXY_SOCKS = 3, PROXY_HTTPS = 4 };
-
- if (!ent->mConnInfo->UsingProxy())
- Telemetry::Accumulate(Telemetry::HTTP_PROXY_TYPE, PROXY_NONE);
- else if (ent->mConnInfo->UsingHttpsProxy())
- Telemetry::Accumulate(Telemetry::HTTP_PROXY_TYPE, PROXY_HTTPS);
- else if (ent->mConnInfo->UsingHttpProxy())
- Telemetry::Accumulate(Telemetry::HTTP_PROXY_TYPE, PROXY_HTTP);
- else
- Telemetry::Accumulate(Telemetry::HTTP_PROXY_TYPE, PROXY_SOCKS);
+ /* STUB */
}
nsresult
@@ -3107,8 +3095,6 @@ nsHalfOpenSocket::SetupStreams(nsISocketTransport **transport,
rv = socketTransport->SetSecurityCallbacks(this);
NS_ENSURE_SUCCESS(rv, rv);
- Telemetry::Accumulate(Telemetry::HTTP_CONNECTION_ENTRY_CACHE_HIT_1,
- mEnt->mUsedForConnection);
mEnt->mUsedForConnection = true;
nsCOMPtr<nsIOutputStream> sout;
diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp
index f9bcc391d..6d58a7004 100644
--- a/netwerk/protocol/http/nsHttpHandler.cpp
+++ b/netwerk/protocol/http/nsHttpHandler.cpp
@@ -58,7 +58,6 @@
#include "mozilla/net/NeckoChild.h"
#include "mozilla/net/NeckoParent.h"
#include "mozilla/ipc/URIUtils.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Unused.h"
#include "mozilla/BasePrincipal.h"
@@ -203,6 +202,7 @@ nsHttpHandler::nsHttpHandler()
, mCompatFirefoxEnabled(false)
, mCompatFirefoxVersion("52.9")
, mUserAgentIsDirty(true)
+ , mAcceptLanguagesIsDirty(true)
, mPromptTempRedirect(true)
, mEnablePersistentHttpsCaching(false)
, mDoNotTrackEnabled(false)
@@ -419,6 +419,7 @@ nsHttpHandler::Init()
obsService->AddObserver(this, "browser:purge-session-history", true);
obsService->AddObserver(this, NS_NETWORK_LINK_TOPIC, true);
obsService->AddObserver(this, "application-background", true);
+ obsService->AddObserver(this, "string-bundles-have-flushed", true);
}
MakeNewRequestTokenBucket();
@@ -489,8 +490,13 @@ nsHttpHandler::AddStandardRequestHeaders(nsHttpRequestHead *request, bool isSecu
// Add the "Accept-Language" header. This header is also exposed to the
// service worker.
+ if (mAcceptLanguagesIsDirty) {
+ rv = SetAcceptLanguages();
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
+ }
+
+ // Add the "Accept-Language" header
if (!mAcceptLanguages.IsEmpty()) {
- // Add the "Accept-Language" header
rv = request->SetHeader(nsHttp::Accept_Language, mAcceptLanguages,
false,
nsHttpHeaderArray::eVarietyRequestOverride);
@@ -1511,16 +1517,10 @@ nsHttpHandler::PrefsChanged(nsIPrefBranch *prefs, const char *pref)
//
if (PREF_CHANGED(INTL_ACCEPT_LANGUAGES)) {
- nsCOMPtr<nsIPrefLocalizedString> pls;
- prefs->GetComplexValue(INTL_ACCEPT_LANGUAGES,
- NS_GET_IID(nsIPrefLocalizedString),
- getter_AddRefs(pls));
- if (pls) {
- nsXPIDLString uval;
- pls->ToString(getter_Copies(uval));
- if (uval)
- SetAcceptLanguages(NS_ConvertUTF16toUTF8(uval).get());
- }
+ // We don't want to set the new accept languages here since
+ // this pref is a complex type and it may be racy with flushing
+ // string resources.
+ mAcceptLanguagesIsDirty = true;
}
//
@@ -1897,12 +1897,18 @@ PrepareAcceptLanguages(const char *i_AcceptLanguages, nsACString &o_AcceptLangua
}
nsresult
-nsHttpHandler::SetAcceptLanguages(const char *aAcceptLanguages)
+nsHttpHandler::SetAcceptLanguages()
{
+ mAcceptLanguagesIsDirty = false;
+
+ const nsAdoptingCString& acceptLanguages =
+ Preferences::GetLocalizedCString(INTL_ACCEPT_LANGUAGES);
+
nsAutoCString buf;
- nsresult rv = PrepareAcceptLanguages(aAcceptLanguages, buf);
- if (NS_SUCCEEDED(rv))
+ nsresult rv = PrepareAcceptLanguages(acceptLanguages.get(), buf);
+ if (NS_SUCCEEDED(rv)) {
mAcceptLanguages.Assign(buf);
+ }
return rv;
}
@@ -2175,11 +2181,6 @@ nsHttpHandler::Observe(nsISupports *subject,
// depend on this value.
mSessionStartTime = NowInSeconds();
- if (!mDoNotTrackEnabled) {
- Telemetry::Accumulate(Telemetry::DNT_USAGE, 2);
- } else {
- Telemetry::Accumulate(Telemetry::DNT_USAGE, 1);
- }
} else if (!strcmp(topic, "profile-change-net-restore")) {
// initialize connection manager
InitConnectionMgr();
@@ -2233,6 +2234,8 @@ nsHttpHandler::Observe(nsISupports *subject,
if (mConnMgr) {
mConnMgr->DoShiftReloadConnectionCleanup(nullptr);
}
+ } else if (!strcmp(topic, "string-bundles-have-flushed")) {
+ mAcceptLanguagesIsDirty = true;
}
return NS_OK;
diff --git a/netwerk/protocol/http/nsHttpHandler.h b/netwerk/protocol/http/nsHttpHandler.h
index 0904af893..848dd25b1 100644
--- a/netwerk/protocol/http/nsHttpHandler.h
+++ b/netwerk/protocol/http/nsHttpHandler.h
@@ -384,7 +384,7 @@ private:
void PrefsChanged(nsIPrefBranch *prefs, const char *pref);
nsresult SetAccept(const char *);
- nsresult SetAcceptLanguages(const char *);
+ nsresult SetAcceptLanguages();
nsresult SetAcceptEncodings(const char *, bool mIsSecure);
nsresult InitConnectionMgr();
@@ -491,6 +491,7 @@ private:
nsCString mUserAgent;
nsXPIDLCString mUserAgentOverride;
bool mUserAgentIsDirty; // true if mUserAgent should be rebuilt
+ bool mAcceptLanguagesIsDirty;
bool mPromptTempRedirect;
diff --git a/netwerk/protocol/websocket/WebSocketChannel.cpp b/netwerk/protocol/websocket/WebSocketChannel.cpp
index c6dc8d328..1bcdbcacc 100644
--- a/netwerk/protocol/websocket/WebSocketChannel.cpp
+++ b/netwerk/protocol/websocket/WebSocketChannel.cpp
@@ -55,7 +55,6 @@
#include "nsNetUtil.h"
#include "nsINode.h"
#include "mozilla/StaticMutex.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "nsSocketTransportService2.h"
@@ -2989,7 +2988,6 @@ WebSocketChannel::ReportConnectionTelemetry()
(didProxy ? (1 << 0) : 0);
LOG(("WebSocketChannel::ReportConnectionTelemetry() %p %d", this, value));
- Telemetry::Accumulate(Telemetry::WEBSOCKETS_HANDSHAKE_TYPE, value);
}
// nsIDNSListener
diff --git a/netwerk/system/linux/nsNotifyAddrListener_Linux.cpp b/netwerk/system/linux/nsNotifyAddrListener_Linux.cpp
index 4fc36928a..b9f912d1d 100644
--- a/netwerk/system/linux/nsNotifyAddrListener_Linux.cpp
+++ b/netwerk/system/linux/nsNotifyAddrListener_Linux.cpp
@@ -24,7 +24,6 @@
#include "mozilla/Services.h"
#include "mozilla/SHA1.h"
#include "mozilla/Sprintf.h"
-#include "mozilla/Telemetry.h"
/* a shorter name that better explains what it does */
#define EINTR_RETRY(x) MOZ_TEMP_FAILURE_RETRY(x)
@@ -176,12 +175,10 @@ void nsNotifyAddrListener::calculateNetworkId(void)
LOG(("networkid: id %s\n", output.get()));
if (mNetworkId != output) {
// new id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 1);
mNetworkId = output;
}
else {
// same id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 2);
}
found = true;
break;
@@ -195,7 +192,6 @@ void nsNotifyAddrListener::calculateNetworkId(void)
} /* if (froute) */
if (!found) {
// no id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 0);
}
}
diff --git a/netwerk/system/mac/nsNetworkLinkService.mm b/netwerk/system/mac/nsNetworkLinkService.mm
index ac6a015fb..5b2d7575a 100644
--- a/netwerk/system/mac/nsNetworkLinkService.mm
+++ b/netwerk/system/mac/nsNetworkLinkService.mm
@@ -24,7 +24,6 @@
#include "mozilla/Preferences.h"
#include "mozilla/SHA1.h"
#include "mozilla/Base64.h"
-#include "mozilla/Telemetry.h"
#include "nsNetworkLinkService.h"
#import <Cocoa/Cocoa.h>
@@ -274,19 +273,16 @@ void nsNetworkLinkService::calculateNetworkId(void)
LOG(("networkid: id %s\n", output.get()));
if (mNetworkId != output) {
// new id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 1);
mNetworkId = output;
}
else {
// same id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 2);
}
found = true;
}
}
if (!found) {
// no id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 0);
}
}
diff --git a/netwerk/system/win32/nsNotifyAddrListener.cpp b/netwerk/system/win32/nsNotifyAddrListener.cpp
index 5d1ec3a61..58f4345ef 100644
--- a/netwerk/system/win32/nsNotifyAddrListener.cpp
+++ b/netwerk/system/win32/nsNotifyAddrListener.cpp
@@ -35,7 +35,6 @@
#include "mozilla/Preferences.h"
#include "mozilla/SHA1.h"
#include "mozilla/Base64.h"
-#include "mozilla/Telemetry.h"
#include <iptypes.h>
#include <iphlpapi.h>
@@ -218,12 +217,10 @@ bool nsNotifyAddrListener::findMac(char *gateway)
LOG(("networkid: id %s\n", output.get()));
if (mNetworkId != output) {
// new id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 1);
mNetworkId = output;
}
else {
// same id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 2);
}
found = true;
break;
@@ -290,7 +287,6 @@ void nsNotifyAddrListener::calculateNetworkId(void)
}
if (!found) {
// no id
- Telemetry::Accumulate(Telemetry::NETWORK_ID, 0);
}
}
diff --git a/netwerk/test/unit/test_be_conservative.js b/netwerk/test/unit/test_be_conservative.js
index 2c6ac46ad..36b6d3b90 100644
--- a/netwerk/test/unit/test_be_conservative.js
+++ b/netwerk/test/unit/test_be_conservative.js
@@ -140,7 +140,6 @@ function startServer(cert, minServerVersion, maxServerVersion) {
tlsServer.init(-1, true, -1);
tlsServer.serverCert = cert;
tlsServer.setVersionRange(minServerVersion, maxServerVersion);
- tlsServer.setSessionCache(false);
tlsServer.setSessionTickets(false);
tlsServer.asyncListen(new ServerSocketListener());
return tlsServer;
diff --git a/netwerk/test/unit/test_tls_server.js b/netwerk/test/unit/test_tls_server.js
index d805359c7..12154a27f 100644
--- a/netwerk/test/unit/test_tls_server.js
+++ b/netwerk/test/unit/test_tls_server.js
@@ -90,7 +90,6 @@ function startServer(cert, expectingPeerCert, clientCertificateConfig,
onStopListening: function() {}
};
- tlsServer.setSessionCache(false);
tlsServer.setSessionTickets(false);
tlsServer.setRequestClientCertificate(clientCertificateConfig);
diff --git a/netwerk/test/unit/test_tls_server_multiple_clients.js b/netwerk/test/unit/test_tls_server_multiple_clients.js
index b63c0189b..74b814e9c 100644
--- a/netwerk/test/unit/test_tls_server_multiple_clients.js
+++ b/netwerk/test/unit/test_tls_server_multiple_clients.js
@@ -67,7 +67,6 @@ function startServer(cert) {
onStopListening: function() {}
};
- tlsServer.setSessionCache(true);
tlsServer.setSessionTickets(false);
tlsServer.asyncListen(listener);
diff --git a/old-configure.in b/old-configure.in
index d40305309..96bb934e1 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -2044,7 +2044,7 @@ MOZ_ARG_WITH_BOOL(system-nss,
_USE_SYSTEM_NSS=1 )
if test -n "$_USE_SYSTEM_NSS"; then
- AM_PATH_NSS(3.36.4, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
+ AM_PATH_NSS(3.38, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
fi
if test -z "$MOZ_SYSTEM_NSS"; then
@@ -3542,11 +3542,15 @@ dnl = FFmpeg's ffvpx configuration
dnl ========================================================
MOZ_FFVPX=
-case "$CPU_ARCH" in
- x86)
+
+dnl Build ffvpx on 32-bit Windows and all supported 64-bit platforms.
+dnl 32-bit *nix has performance issues due to not supporting assembly decoder.
+
+case "$OS_ARCH:$CPU_ARCH" in
+ WINNT:x86)
MOZ_FFVPX=1
;;
- x86_64)
+ *:x86_64)
MOZ_FFVPX=1
;;
esac
diff --git a/parser/htmlparser/nsScannerString.h b/parser/htmlparser/nsScannerString.h
index 7b722238f..247c04c04 100644
--- a/parser/htmlparser/nsScannerString.h
+++ b/parser/htmlparser/nsScannerString.h
@@ -21,7 +21,7 @@
* to live in xpcom/string. Now that nsAString is limited to representing
* only single fragment strings, nsSlidingString can no longer be used.
*
- * An advantage to this design is that it does not employ any virtual
+ * An advantage to this design is that it does not employ any virtual
* functions.
*
* This file uses SCC-style indenting in deference to the nsSlidingString
@@ -103,12 +103,12 @@ class nsScannerBufferList
public:
Position() {}
-
+
Position( Buffer* buffer, char16_t* position )
: mBuffer(buffer)
, mPosition(position)
{}
-
+
inline
explicit Position( const nsScannerIterator& aIter );
@@ -133,7 +133,7 @@ class nsScannerBufferList
void AddRef() { ++mRefCnt; }
void Release() { if (--mRefCnt == 0) delete this; }
- void Append( Buffer* buf ) { mBuffers.insertBack(buf); }
+ void Append( Buffer* buf ) { mBuffers.insertBack(buf); }
void InsertAfter( Buffer* buf, Buffer* prev ) { prev->setNext(buf); }
void SplitBuffer( const Position& );
void DiscardUnreferencedPrefix( Buffer* );
@@ -223,7 +223,7 @@ class nsScannerSubstring
mBufferList->Release();
}
}
-
+
void init_range_from_buffer_list()
{
mStart.mBuffer = mBufferList->Head();
@@ -340,7 +340,7 @@ class nsScannerIterator
friend class nsScannerSharedSubstring;
public:
- nsScannerIterator() {}
+ // nsScannerIterator(); // auto-generate default constructor is OK
// nsScannerIterator( const nsScannerIterator& ); // auto-generated copy-constructor OK
// nsScannerIterator& operator=( const nsScannerIterator& ); // auto-generated copy-assignment operator OK
@@ -351,7 +351,7 @@ class nsScannerIterator
{
return mPosition;
}
-
+
char16_t operator*() const
{
return *get();
@@ -467,7 +467,7 @@ struct nsCharSourceTraits<nsScannerIterator>
{
return iter.get();
}
-
+
static
void
advance( nsScannerIterator& s, difference_type n )
@@ -593,7 +593,7 @@ RFindInReadable( const nsAString& aPattern,
inline
bool
-CaseInsensitiveFindInReadable( const nsAString& aPattern,
+CaseInsensitiveFindInReadable( const nsAString& aPattern,
nsScannerIterator& aStart,
nsScannerIterator& aEnd )
{
diff --git a/python/mozbuild/mozbuild/action/dump_env.py b/python/mozbuild/mozbuild/action/dump_env.py
index a6fa19f3a..83e420d68 100644
--- a/python/mozbuild/mozbuild/action/dump_env.py
+++ b/python/mozbuild/mozbuild/action/dump_env.py
@@ -6,5 +6,11 @@
# native paths printed on Windows so that these paths can be incorporated
# into Python configure's environment.
import os
+import sys
+
+sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
+
+from shellutil import quote
+
for key, value in os.environ.items():
- print('%s=%s' % (key, value))
+ print('%s=%s' % (key, quote(value)))
diff --git a/python/mozbuild/mozbuild/controller/clobber.py b/python/mozbuild/mozbuild/controller/clobber.py
index 02f75c6ad..d3cdfd596 100644
--- a/python/mozbuild/mozbuild/controller/clobber.py
+++ b/python/mozbuild/mozbuild/controller/clobber.py
@@ -169,6 +169,7 @@ class Clobberer(object):
if not self.clobber_needed():
print('Clobber not needed.', file=fh)
+ fh.flush()
self.ensure_objdir_state()
return False, False, None
@@ -190,6 +191,7 @@ class Clobberer(object):
'Cannot clobber while the shell is inside the object directory.')
print('Automatically clobbering %s' % self.topobjdir, file=fh)
+ fh.flush()
try:
self.remove_objdir(False)
self.ensure_objdir_state()
diff --git a/security/manager/ssl/DataStorage.cpp b/security/manager/ssl/DataStorage.cpp
index 2d9dbf5c4..c765fed00 100644
--- a/security/manager/ssl/DataStorage.cpp
+++ b/security/manager/ssl/DataStorage.cpp
@@ -276,9 +276,6 @@ DataStorage::Reader::Run()
}
}
} while (true);
-
- Telemetry::Accumulate(Telemetry::DATA_STORAGE_ENTRIES,
- mDataStorage->mPersistentDataTable.Count());
}
return NS_OK;
diff --git a/security/manager/ssl/SSLServerCertVerification.cpp b/security/manager/ssl/SSLServerCertVerification.cpp
index 4ef79f54a..757534955 100644
--- a/security/manager/ssl/SSLServerCertVerification.cpp
+++ b/security/manager/ssl/SSLServerCertVerification.cpp
@@ -567,15 +567,12 @@ CertErrorRunnable::CheckCertOverrides()
// want a ballpark answer, we don't care.
if (mErrorCodeTrust != 0) {
uint32_t probeValue = MapOverridableErrorToProbeValue(mErrorCodeTrust);
- Telemetry::Accumulate(Telemetry::SSL_CERT_ERROR_OVERRIDES, probeValue);
}
if (mErrorCodeMismatch != 0) {
uint32_t probeValue = MapOverridableErrorToProbeValue(mErrorCodeMismatch);
- Telemetry::Accumulate(Telemetry::SSL_CERT_ERROR_OVERRIDES, probeValue);
}
if (mErrorCodeTime != 0) {
uint32_t probeValue = MapOverridableErrorToProbeValue(mErrorCodeTime);
- Telemetry::Accumulate(Telemetry::SSL_CERT_ERROR_OVERRIDES, probeValue);
}
// all errors are covered by override rules, so let's accept the cert
@@ -660,7 +657,6 @@ CreateCertErrorRunnable(CertVerifier& certVerifier,
MOZ_ASSERT(cert);
uint32_t probeValue = MapCertErrorToProbeValue(defaultErrorCodeToReport);
- Telemetry::Accumulate(Telemetry::SSL_CERT_VERIFICATION_ERRORS, probeValue);
uint32_t collected_errors = 0;
PRErrorCode errorCodeTrust = 0;
@@ -869,19 +865,11 @@ void
AccumulateSubjectCommonNameTelemetry(const char* commonName,
bool commonNameInSubjectAltNames)
{
- if (!commonName) {
- // 1 means no common name present
- Telemetry::Accumulate(Telemetry::BR_9_2_2_SUBJECT_COMMON_NAME, 1);
- } else if (!commonNameInSubjectAltNames) {
+ if (!commonNameInSubjectAltNames) {
MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
("BR telemetry: common name '%s' not in subject alt. names "
"(or the subject alt. names extension is not present)\n",
commonName));
- // 2 means the common name is not present in subject alt names
- Telemetry::Accumulate(Telemetry::BR_9_2_2_SUBJECT_COMMON_NAME, 2);
- } else {
- // 0 means the common name is present in subject alt names
- Telemetry::Accumulate(Telemetry::BR_9_2_2_SUBJECT_COMMON_NAME, 0);
}
}
@@ -947,8 +935,6 @@ GatherBaselineRequirementsTelemetry(const UniqueCERTCertList& certList)
MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
("BR telemetry: no subject alt names extension for '%s'\n",
commonName.get()));
- // 1 means there is no subject alt names extension
- Telemetry::Accumulate(Telemetry::BR_9_2_1_SUBJECT_ALT_NAMES, 1);
AccumulateSubjectCommonNameTelemetry(commonName.get(), false);
return;
}
@@ -960,8 +946,6 @@ GatherBaselineRequirementsTelemetry(const UniqueCERTCertList& certList)
MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
("BR telemetry: could not decode subject alt names for '%s'\n",
commonName.get()));
- // 2 means the subject alt names extension could not be decoded
- Telemetry::Accumulate(Telemetry::BR_9_2_1_SUBJECT_ALT_NAMES, 2);
AccumulateSubjectCommonNameTelemetry(commonName.get(), false);
return;
}
@@ -1044,24 +1028,6 @@ GatherBaselineRequirementsTelemetry(const UniqueCERTCertList& certList)
currentName = CERT_GetNextGeneralName(currentName);
} while (currentName && currentName != subjectAltNames);
- if (nonDNSNameOrIPAddressPresent) {
- // 3 means there's an entry that isn't an ip address or dns name
- Telemetry::Accumulate(Telemetry::BR_9_2_1_SUBJECT_ALT_NAMES, 3);
- }
- if (malformedDNSNameOrIPAddressPresent) {
- // 4 means there's a malformed ip address or dns name entry
- Telemetry::Accumulate(Telemetry::BR_9_2_1_SUBJECT_ALT_NAMES, 4);
- }
- if (nonFQDNPresent) {
- // 5 means there's a DNS name entry with a non-fully-qualified domain name
- Telemetry::Accumulate(Telemetry::BR_9_2_1_SUBJECT_ALT_NAMES, 5);
- }
- if (!nonDNSNameOrIPAddressPresent && !malformedDNSNameOrIPAddressPresent &&
- !nonFQDNPresent) {
- // 0 means the extension is acceptable
- Telemetry::Accumulate(Telemetry::BR_9_2_1_SUBJECT_ALT_NAMES, 0);
- }
-
AccumulateSubjectCommonNameTelemetry(commonName.get(),
commonNameInSubjectAltNames);
}
@@ -1111,7 +1077,6 @@ GatherEKUTelemetry(const UniqueCERTCertList& certList)
}
if (!foundEKU) {
- Telemetry::Accumulate(Telemetry::SSL_SERVER_AUTH_EKU, 0);
return;
}
@@ -1133,18 +1098,6 @@ GatherEKUTelemetry(const UniqueCERTCertList& certList)
foundOther = true;
}
}
-
- // Cases 3 is included only for completeness. It should never
- // appear in these statistics, because CheckExtendedKeyUsage()
- // should require the EKU extension, if present, to contain the
- // value id_kp_serverAuth.
- if (foundServerAuth && !foundOther) {
- Telemetry::Accumulate(Telemetry::SSL_SERVER_AUTH_EKU, 1);
- } else if (foundServerAuth && foundOther) {
- Telemetry::Accumulate(Telemetry::SSL_SERVER_AUTH_EKU, 2);
- } else if (!foundServerAuth) {
- Telemetry::Accumulate(Telemetry::SSL_SERVER_AUTH_EKU, 3);
- }
}
// Gathers telemetry on which CA is the root of a given cert chain.
@@ -1210,9 +1163,6 @@ GatherEndEntityTelemetry(const UniqueCERTCertList& certList)
if (durationInWeeks > (2 * ONE_YEAR_IN_WEEKS)) {
durationInWeeks = (2 * ONE_YEAR_IN_WEEKS) + 1;
}
-
- Telemetry::Accumulate(Telemetry::SSL_OBSERVED_END_ENTITY_CERTIFICATE_LIFETIME,
- durationInWeeks);
}
// There are various things that we want to measure about certificate
@@ -1229,75 +1179,14 @@ GatherSuccessfulValidationTelemetry(const UniqueCERTCertList& certList)
void
GatherTelemetryForSingleSCT(const ct::SignedCertificateTimestamp& sct)
{
- // See SSL_SCTS_ORIGIN in Histograms.json.
- uint32_t origin = 0;
- switch (sct.origin) {
- case ct::SignedCertificateTimestamp::Origin::Embedded:
- origin = 1;
- break;
- case ct::SignedCertificateTimestamp::Origin::TLSExtension:
- origin = 2;
- break;
- case ct::SignedCertificateTimestamp::Origin::OCSPResponse:
- origin = 3;
- break;
- default:
- MOZ_ASSERT_UNREACHABLE("Unexpected SCT::Origin type");
- }
- Telemetry::Accumulate(Telemetry::SSL_SCTS_ORIGIN, origin);
-
- // See SSL_SCTS_VERIFICATION_STATUS in Histograms.json.
- uint32_t verificationStatus = 0;
- switch (sct.verificationStatus) {
- case ct::SignedCertificateTimestamp::VerificationStatus::OK:
- verificationStatus = 1;
- break;
- case ct::SignedCertificateTimestamp::VerificationStatus::UnknownLog:
- verificationStatus = 2;
- break;
- case ct::SignedCertificateTimestamp::VerificationStatus::InvalidSignature:
- verificationStatus = 3;
- break;
- case ct::SignedCertificateTimestamp::VerificationStatus::InvalidTimestamp:
- verificationStatus = 4;
- break;
- default:
- MOZ_ASSERT_UNREACHABLE("Unexpected SCT::VerificationStatus type");
- }
- Telemetry::Accumulate(Telemetry::SSL_SCTS_VERIFICATION_STATUS,
- verificationStatus);
+/* STUB */
}
void
GatherCertificateTransparencyTelemetry(const UniqueCERTCertList& certList,
const CertificateTransparencyInfo& info)
{
- if (!info.enabled) {
- // No telemetry is gathered when CT is disabled.
- return;
- }
-
- if (!info.processedSCTs) {
- // We didn't receive any SCT data for this connection.
- Telemetry::Accumulate(Telemetry::SSL_SCTS_PER_CONNECTION, 0);
- return;
- }
-
- for (const ct::SignedCertificateTimestamp& sct : info.verifyResult.scts) {
- GatherTelemetryForSingleSCT(sct);
- }
-
- // Decoding errors are reported to the 0th bucket
- // of the SSL_SCTS_VERIFICATION_STATUS enumerated probe.
- for (size_t i = 0; i < info.verifyResult.decodingErrors; ++i) {
- Telemetry::Accumulate(Telemetry::SSL_SCTS_VERIFICATION_STATUS, 0);
- }
-
- // Handle the histogram of SCTs counts.
- uint32_t sctsCount = static_cast<uint32_t>(info.verifyResult.scts.length());
- // Note that sctsCount can be 0 in case we've received SCT binary data,
- // but it failed to parse (e.g. due to unsupported CT protocol version).
- Telemetry::Accumulate(Telemetry::SSL_SCTS_PER_CONNECTION, sctsCount);
+/* STUB */
}
// Note: Takes ownership of |peerCertChain| if SECSuccess is not returned.
@@ -1350,29 +1239,6 @@ AuthCertificate(CertVerifier& certVerifier,
uint32_t evStatus = (rv != Success) ? 0 // 0 = Failure
: (evOidPolicy == SEC_OID_UNKNOWN) ? 1 // 1 = DV
: 2; // 2 = EV
- Telemetry::Accumulate(Telemetry::CERT_EV_STATUS, evStatus);
-
- if (ocspStaplingStatus != CertVerifier::OCSP_STAPLING_NEVER_CHECKED) {
- Telemetry::Accumulate(Telemetry::SSL_OCSP_STAPLING, ocspStaplingStatus);
- }
- if (keySizeStatus != KeySizeStatus::NeverChecked) {
- Telemetry::Accumulate(Telemetry::CERT_CHAIN_KEY_SIZE_STATUS,
- static_cast<uint32_t>(keySizeStatus));
- }
- if (sha1ModeResult != SHA1ModeResult::NeverChecked) {
- Telemetry::Accumulate(Telemetry::CERT_CHAIN_SHA1_POLICY_STATUS,
- static_cast<uint32_t>(sha1ModeResult));
- }
-
- if (pinningTelemetryInfo.accumulateForRoot) {
- Telemetry::Accumulate(Telemetry::CERT_PINNING_FAILURES_BY_CA,
- pinningTelemetryInfo.rootBucket);
- }
-
- if (pinningTelemetryInfo.accumulateResult) {
- Telemetry::Accumulate(pinningTelemetryInfo.certPinningResultHistogram,
- pinningTelemetryInfo.certPinningResultBucket);
- }
if (rv == Success) {
// Certificate verification succeeded. Delete any potential record of
@@ -1517,7 +1383,6 @@ SSLServerCertVerificationJob::Run()
new SSLServerCertVerificationResult(mInfoObject, 0,
successTelemetry, interval));
restart->Dispatch();
- Telemetry::Accumulate(Telemetry::SSL_CERT_ERROR_OVERRIDES, 1);
return NS_OK;
}
@@ -1527,7 +1392,6 @@ SSLServerCertVerificationJob::Run()
{
TimeStamp now = TimeStamp::Now();
MutexAutoLock telemetryMutex(*gSSLVerificationTelemetryMutex);
- Telemetry::AccumulateTimeDelta(failureTelemetry, mJobStartTime, now);
}
if (error != 0) {
RefPtr<CertErrorRunnable> runnable(
@@ -1694,7 +1558,6 @@ AuthCertificateHook(void* arg, PRFileDesc* fd, PRBool checkSig, PRBool isServer)
MOZ_ASSERT(peerCertChain || rv != SECSuccess,
"AuthCertificate() should take ownership of chain on failure");
if (rv == SECSuccess) {
- Telemetry::Accumulate(Telemetry::SSL_CERT_ERROR_OVERRIDES, 1);
return SECSuccess;
}
@@ -1782,10 +1645,6 @@ SSLServerCertVerificationResult::Dispatch()
NS_IMETHODIMP
SSLServerCertVerificationResult::Run()
{
- // TODO: Assert that we're on the socket transport thread
- if (mTelemetryID != Telemetry::HistogramCount) {
- Telemetry::Accumulate(mTelemetryID, mTelemetryValue);
- }
// XXX: This cast will be removed by the next patch
((nsNSSSocketInfo*) mInfoObject.get())
->SetCertVerificationResult(mErrorCode, mErrorMessageType);
diff --git a/security/manager/ssl/nsKeygenHandler.cpp b/security/manager/ssl/nsKeygenHandler.cpp
index c4529f877..9196e200c 100644
--- a/security/manager/ssl/nsKeygenHandler.cpp
+++ b/security/manager/ssl/nsKeygenHandler.cpp
@@ -399,48 +399,7 @@ loser:
void
GatherKeygenTelemetry(uint32_t keyGenMechanism, int keysize, char* curve)
{
- if (keyGenMechanism == CKM_RSA_PKCS_KEY_PAIR_GEN) {
- if (keysize > 8196 || keysize < 0) {
- return;
- }
-
- nsCString telemetryValue("rsa");
- telemetryValue.AppendPrintf("%d", keysize);
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::KEYGEN_GENERATED_KEY_TYPE, telemetryValue);
- } else if (keyGenMechanism == CKM_EC_KEY_PAIR_GEN) {
- nsCString secp384r1 = NS_LITERAL_CSTRING("secp384r1");
- nsCString secp256r1 = NS_LITERAL_CSTRING("secp256r1");
-
- mozilla::UniqueSECItem decoded = DecodeECParams(curve);
- if (!decoded) {
- switch (keysize) {
- case 2048:
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::KEYGEN_GENERATED_KEY_TYPE, secp384r1);
- break;
- case 1024:
- case 512:
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::KEYGEN_GENERATED_KEY_TYPE, secp256r1);
- break;
- }
- } else {
- if (secp384r1.EqualsIgnoreCase(curve, secp384r1.Length())) {
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::KEYGEN_GENERATED_KEY_TYPE, secp384r1);
- } else if (secp256r1.EqualsIgnoreCase(curve, secp256r1.Length())) {
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::KEYGEN_GENERATED_KEY_TYPE, secp256r1);
- } else {
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::KEYGEN_GENERATED_KEY_TYPE, NS_LITERAL_CSTRING("other_ec"));
- }
- }
- } else {
- MOZ_CRASH("Unknown keygen algorithm");
- return;
- }
+/* STUB */
}
nsresult
diff --git a/security/manager/ssl/nsNSSCallbacks.cpp b/security/manager/ssl/nsNSSCallbacks.cpp
index 941101265..6bac59f51 100644
--- a/security/manager/ssl/nsNSSCallbacks.cpp
+++ b/security/manager/ssl/nsNSSCallbacks.cpp
@@ -490,31 +490,6 @@ nsNSSHttpRequestSession::internal_send_receive_attempt(bool &retryable_error,
}
}
- if (!event->mStartTime.IsNull()) {
- if (request_canceled) {
- Telemetry::Accumulate(Telemetry::CERT_VALIDATION_HTTP_REQUEST_RESULT, 0);
- Telemetry::AccumulateTimeDelta(
- Telemetry::CERT_VALIDATION_HTTP_REQUEST_CANCELED_TIME,
- event->mStartTime, TimeStamp::Now());
- }
- else if (NS_SUCCEEDED(mListener->mResultCode) &&
- mListener->mHttpResponseCode == 200) {
- Telemetry::Accumulate(Telemetry::CERT_VALIDATION_HTTP_REQUEST_RESULT, 1);
- Telemetry::AccumulateTimeDelta(
- Telemetry::CERT_VALIDATION_HTTP_REQUEST_SUCCEEDED_TIME,
- event->mStartTime, TimeStamp::Now());
- }
- else {
- Telemetry::Accumulate(Telemetry::CERT_VALIDATION_HTTP_REQUEST_RESULT, 2);
- Telemetry::AccumulateTimeDelta(
- Telemetry::CERT_VALIDATION_HTTP_REQUEST_FAILED_TIME,
- event->mStartTime, TimeStamp::Now());
- }
- }
- else {
- Telemetry::Accumulate(Telemetry::CERT_VALIDATION_HTTP_REQUEST_RESULT, 3);
- }
-
if (request_canceled) {
return Result::ERROR_OCSP_SERVER_ERROR;
}
@@ -996,7 +971,6 @@ PreliminaryHandshakeDone(PRFileDesc* fd)
} else {
infoObject->SetNegotiatedNPN(nullptr, 0);
}
- mozilla::Telemetry::Accumulate(Telemetry::SSL_NPN_TYPE, state);
} else {
infoObject->SetNegotiatedNPN(nullptr, 0);
}
@@ -1091,9 +1065,6 @@ CanFalseStartCallback(PRFileDesc* fd, void* client_data, PRBool *canFalseStart)
}
}
- Telemetry::Accumulate(Telemetry::SSL_REASONS_FOR_NOT_FALSE_STARTING,
- reasonsForNotFalseStarting);
-
if (reasonsForNotFalseStarting == 0) {
*canFalseStart = PR_TRUE;
infoObject->SetFalseStarted();
@@ -1118,7 +1089,6 @@ AccumulateNonECCKeySize(Telemetry::ID probe, uint32_t bits)
: bits < 8192 ? 17 : bits == 8192 ? 18
: bits < 16384 ? 19 : bits == 16384 ? 20
: 0;
- Telemetry::Accumulate(probe, value);
}
// XXX: This attempts to map a bit count to an ECC named curve identifier. In
@@ -1134,7 +1104,6 @@ AccumulateECCCurve(Telemetry::ID probe, uint32_t bits)
: bits == 384 ? 24 // P-384
: bits == 521 ? 25 // P-521
: 0; // Unknown
- Telemetry::Accumulate(probe, value);
}
static void
@@ -1197,7 +1166,6 @@ AccumulateCipherSuite(Telemetry::ID probe, const SSLChannelInfo& channelInfo)
break;
}
MOZ_ASSERT(value != 0);
- Telemetry::Accumulate(probe, value);
}
// In the case of session resumption, the AuthCertificate hook has been bypassed
@@ -1318,7 +1286,6 @@ void HandshakeCallback(PRFileDesc* fd, void* client_data) {
// 1=tls1, 2=tls1.1, 3=tls1.2
unsigned int versionEnum = channelInfo.protocolVersion & 0xFF;
MOZ_ASSERT(versionEnum > 0);
- Telemetry::Accumulate(Telemetry::SSL_HANDSHAKE_VERSION, versionEnum);
AccumulateCipherSuite(
infoObject->IsFullHandshake() ? Telemetry::SSL_CIPHER_SUITE_FULL
: Telemetry::SSL_CIPHER_SUITE_RESUMED,
@@ -1331,13 +1298,6 @@ void HandshakeCallback(PRFileDesc* fd, void* client_data) {
if (rv == SECSuccess) {
usesFallbackCipher = channelInfo.keaType == ssl_kea_dh;
- // keyExchange null=0, rsa=1, dh=2, fortezza=3, ecdh=4
- Telemetry::Accumulate(
- infoObject->IsFullHandshake()
- ? Telemetry::SSL_KEY_EXCHANGE_ALGORITHM_FULL
- : Telemetry::SSL_KEY_EXCHANGE_ALGORITHM_RESUMED,
- channelInfo.keaType);
-
MOZ_ASSERT(infoObject->GetKEAUsed() == channelInfo.keaType);
if (infoObject->IsFullHandshake()) {
@@ -1359,9 +1319,6 @@ void HandshakeCallback(PRFileDesc* fd, void* client_data) {
break;
}
- Telemetry::Accumulate(Telemetry::SSL_AUTH_ALGORITHM_FULL,
- channelInfo.authType);
-
// RSA key exchange doesn't use a signature for auth.
if (channelInfo.keaType != ssl_kea_rsa) {
switch (channelInfo.authType) {
@@ -1380,12 +1337,6 @@ void HandshakeCallback(PRFileDesc* fd, void* client_data) {
}
}
}
-
- Telemetry::Accumulate(
- infoObject->IsFullHandshake()
- ? Telemetry::SSL_SYMMETRIC_CIPHER_FULL
- : Telemetry::SSL_SYMMETRIC_CIPHER_RESUMED,
- cipherInfo.symCipher);
}
}
diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp
index 025f4bda2..4fc8c142e 100644
--- a/security/manager/ssl/nsNSSComponent.cpp
+++ b/security/manager/ssl/nsNSSComponent.cpp
@@ -805,29 +805,22 @@ nsNSSComponent::MaybeEnableFamilySafetyCompatibility()
if (familySafetyMode > 2) {
familySafetyMode = 0;
}
- Telemetry::Accumulate(Telemetry::FAMILY_SAFETY, familySafetyMode);
if (familySafetyMode == 0) {
return;
}
bool familySafetyEnabled;
nsresult rv = AccountHasFamilySafetyEnabled(familySafetyEnabled);
if (NS_FAILED(rv)) {
- Telemetry::Accumulate(Telemetry::FAMILY_SAFETY, 3);
return;
}
if (!familySafetyEnabled) {
- Telemetry::Accumulate(Telemetry::FAMILY_SAFETY, 4);
return;
}
- Telemetry::Accumulate(Telemetry::FAMILY_SAFETY, 5);
if (familySafetyMode == 2) {
rv = LoadFamilySafetyRoot();
if (NS_FAILED(rv)) {
- Telemetry::Accumulate(Telemetry::FAMILY_SAFETY, 6);
MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
("failed to load Family Safety root"));
- } else {
- Telemetry::Accumulate(Telemetry::FAMILY_SAFETY, 7);
}
}
#endif // XP_WIN
@@ -1376,12 +1369,18 @@ static const CipherPref sCipherPrefs[] = {
TLS_RSA_WITH_AES_256_CBC_SHA, true },
// Expensive/deprecated/weak
+// Deprecated
{ "security.ssl3.rsa_aes_128_gcm_sha256",
TLS_RSA_WITH_AES_128_GCM_SHA256, false }, // Deprecated
{ "security.ssl3.rsa_aes_128_sha256",
TLS_RSA_WITH_AES_128_CBC_SHA256, false }, // Deprecated
+// Weak/vulnerable
{ "security.ssl3.rsa_des_ede3_sha",
- TLS_RSA_WITH_3DES_EDE_CBC_SHA, false }, // Weak (3DES)
+ TLS_RSA_WITH_3DES_EDE_CBC_SHA, false, true }, // Weak (3DES)
+ { "security.ssl3.rsa_rc4_128_sha",
+ TLS_RSA_WITH_RC4_128_SHA, false, true }, // RC4
+ { "security.ssl3.rsa_rc4_128_md5",
+ TLS_RSA_WITH_RC4_128_MD5, false, true }, // RC4, HMAC-MD5
// All the rest are disabled
@@ -1391,8 +1390,8 @@ static const CipherPref sCipherPrefs[] = {
// Bit flags indicating what weak ciphers are enabled.
// The bit index will correspond to the index in sCipherPrefs.
// Wrtten by the main thread, read from any threads.
-static Atomic<uint32_t> sEnabledWeakCiphers;
-static_assert(MOZ_ARRAY_LENGTH(sCipherPrefs) - 1 <= sizeof(uint32_t) * CHAR_BIT,
+static uint64_t sEnabledWeakCiphers;
+static_assert(MOZ_ARRAY_LENGTH(sCipherPrefs) - 1 <= sizeof(uint64_t) * CHAR_BIT,
"too many cipher suites");
/*static*/ bool
@@ -1404,10 +1403,10 @@ nsNSSComponent::AreAnyWeakCiphersEnabled()
/*static*/ void
nsNSSComponent::UseWeakCiphersOnSocket(PRFileDesc* fd)
{
- const uint32_t enabledWeakCiphers = sEnabledWeakCiphers;
+ const uint64_t enabledWeakCiphers = sEnabledWeakCiphers;
const CipherPref* const cp = sCipherPrefs;
for (size_t i = 0; cp[i].pref; ++i) {
- if (enabledWeakCiphers & ((uint32_t)1 << i)) {
+ if (enabledWeakCiphers & ((uint64_t)1 << i)) {
SSL_CipherPrefSet(fd, cp[i].id, true);
}
}
@@ -1534,11 +1533,11 @@ CipherSuiteChangeObserver::Observe(nsISupports* aSubject,
// are enabled in prefs. They are only used on specific
// sockets as a part of a fallback mechanism.
// Only the main thread will change sEnabledWeakCiphers.
- uint32_t enabledWeakCiphers = sEnabledWeakCiphers;
+ uint64_t enabledWeakCiphers = sEnabledWeakCiphers;
if (cipherEnabled) {
- enabledWeakCiphers |= ((uint32_t)1 << i);
+ enabledWeakCiphers |= ((uint64_t)1 << i);
} else {
- enabledWeakCiphers &= ~((uint32_t)1 << i);
+ enabledWeakCiphers &= ~((uint64_t)1 << i);
}
sEnabledWeakCiphers = enabledWeakCiphers;
} else {
@@ -1574,13 +1573,6 @@ void nsNSSComponent::setValidationOptions(bool isInitialSetting,
bool ocspRequired = ocspEnabled &&
Preferences::GetBool("security.OCSP.require", false);
- // We measure the setting of the pref at startup only to minimize noise by
- // addons that may muck with the settings, though it probably doesn't matter.
- if (isInitialSetting) {
- Telemetry::Accumulate(Telemetry::CERT_OCSP_ENABLED, ocspEnabled);
- Telemetry::Accumulate(Telemetry::CERT_OCSP_REQUIRED, ocspRequired);
- }
-
bool ocspStaplingEnabled = Preferences::GetBool("security.ssl.enable_ocsp_stapling",
true);
PublicSSLState()->SetOCSPStaplingEnabled(ocspStaplingEnabled);
@@ -1932,20 +1924,6 @@ nsNSSComponent::InitializeNSS()
return NS_ERROR_FAILURE;
}
- // TLSServerSocket may be run with the session cache enabled. It is necessary
- // to call this once before that can happen. This specifies a maximum of 1000
- // cache entries (the default number of cache entries is 10000, which seems a
- // little excessive as there probably won't be that many clients connecting to
- // any TLSServerSockets the browser runs.)
- // Note that this must occur before any calls to SSL_ClearSessionCache
- // (otherwise memory will leak).
- if (SSL_ConfigServerSessionIDCache(1000, 0, 0, nullptr) != SECSuccess) {
-#ifdef ANDROID
- MOZ_RELEASE_ASSERT(false);
-#endif
- return NS_ERROR_FAILURE;
- }
-
// ensure the CertBlocklist is initialised
nsCOMPtr<nsICertBlocklist> certList = do_GetService(NS_CERTBLOCKLIST_CONTRACTID);
#ifdef ANDROID
@@ -1986,9 +1964,6 @@ nsNSSComponent::InitializeNSS()
return NS_ERROR_FAILURE;
}
- if (PK11_IsFIPS()) {
- Telemetry::Accumulate(Telemetry::FIPS_ENABLED, true);
- }
MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("NSS Initialization done\n"));
return NS_OK;
}
@@ -2476,7 +2451,7 @@ InitializeCipherSuite()
}
// Now only set SSL/TLS ciphers we knew about at compile time
- uint32_t enabledWeakCiphers = 0;
+ uint64_t enabledWeakCiphers = 0;
const CipherPref* const cp = sCipherPrefs;
for (size_t i = 0; cp[i].pref; ++i) {
bool cipherEnabled = Preferences::GetBool(cp[i].pref,
@@ -2485,7 +2460,7 @@ InitializeCipherSuite()
// Weak ciphers are not used by default. See the comment
// in CipherSuiteChangeObserver::Observe for details.
if (cipherEnabled) {
- enabledWeakCiphers |= ((uint32_t)1 << i);
+ enabledWeakCiphers |= ((uint64_t)1 << i);
}
} else {
SSL_CipherPrefSetDefault(cp[i].id, cipherEnabled);
diff --git a/security/manager/ssl/nsNSSIOLayer.cpp b/security/manager/ssl/nsNSSIOLayer.cpp
index 2d49540fb..93fca396b 100644
--- a/security/manager/ssl/nsNSSIOLayer.cpp
+++ b/security/manager/ssl/nsNSSIOLayer.cpp
@@ -237,9 +237,6 @@ nsNSSSocketInfo::NoteTimeUntilReady()
mNotedTimeUntilReady = true;
- // This will include TCP and proxy tunnel wait time
- Telemetry::AccumulateTimeDelta(Telemetry::SSL_TIME_UNTIL_READY,
- mSocketCreationTimestamp, TimeStamp::Now());
MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
("[%p] nsNSSSocketInfo::NoteTimeUntilReady\n", mFd));
}
@@ -259,16 +256,6 @@ nsNSSSocketInfo::SetHandshakeCompleted()
: mFalseStarted ? FalseStarted
: mFalseStartCallbackCalled ? ChoseNotToFalseStart
: NotAllowedToFalseStart;
-
- // This will include TCP and proxy tunnel wait time
- Telemetry::AccumulateTimeDelta(Telemetry::SSL_TIME_UNTIL_HANDSHAKE_FINISHED,
- mSocketCreationTimestamp, TimeStamp::Now());
-
- // If the handshake is completed for the first time from just 1 callback
- // that means that TLS session resumption must have been used.
- Telemetry::Accumulate(Telemetry::SSL_RESUMED_SESSION,
- handshakeType == Resumption);
- Telemetry::Accumulate(Telemetry::SSL_HANDSHAKE_TYPE, handshakeType);
}
@@ -623,11 +610,6 @@ nsNSSSocketInfo::SetCertVerificationResult(PRErrorCode errorCode,
SetCanceled(errorCode, errorMessageType);
}
- if (mPlaintextBytesRead && !errorCode) {
- Telemetry::Accumulate(Telemetry::SSL_BYTES_BEFORE_CERT_CALLBACK,
- AssertedCast<uint32_t>(mPlaintextBytesRead));
- }
-
mCertVerificationState = after_cert_verification;
}
@@ -1121,8 +1103,6 @@ retryDueToTLSIntolerance(PRErrorCode err, nsNSSSocketInfo* socketInfo)
PRErrorCode originalReason =
helpers.getIntoleranceReason(socketInfo->GetHostName(),
socketInfo->GetPort());
- Telemetry::Accumulate(Telemetry::SSL_VERSION_FALLBACK_INAPPROPRIATE,
- tlsIntoleranceTelemetryBucket(originalReason));
helpers.forgetIntolerance(socketInfo->GetHostName(),
socketInfo->GetPort());
@@ -1144,11 +1124,8 @@ retryDueToTLSIntolerance(PRErrorCode err, nsNSSSocketInfo* socketInfo)
helpers.mUnrestrictedRC4Fallback) {
if (helpers.rememberStrongCiphersFailed(socketInfo->GetHostName(),
socketInfo->GetPort(), err)) {
- Telemetry::Accumulate(Telemetry::SSL_WEAK_CIPHERS_FALLBACK,
- tlsIntoleranceTelemetryBucket(err));
return true;
}
- Telemetry::Accumulate(Telemetry::SSL_WEAK_CIPHERS_FALLBACK, 0);
}
}
@@ -1191,18 +1168,12 @@ retryDueToTLSIntolerance(PRErrorCode err, nsNSSSocketInfo* socketInfo)
return false;
}
- // The difference between _PRE and _POST represents how often we avoided
- // TLS intolerance fallback due to remembered tolerance.
- Telemetry::Accumulate(pre, reason);
-
if (!helpers.rememberIntolerantAtVersion(socketInfo->GetHostName(),
socketInfo->GetPort(),
range.min, range.max, err)) {
return false;
}
- Telemetry::Accumulate(post, reason);
-
return true;
}
@@ -1242,8 +1213,6 @@ reportHandshakeResult(int32_t bytesTransferred, bool wasReading, PRErrorCode err
} else {
bucket = 671;
}
-
- Telemetry::Accumulate(Telemetry::SSL_HANDSHAKE_RESULT, bucket);
}
int32_t
diff --git a/security/manager/ssl/nsNTLMAuthModule.cpp b/security/manager/ssl/nsNTLMAuthModule.cpp
index a0564118a..46a4a21a0 100644
--- a/security/manager/ssl/nsNTLMAuthModule.cpp
+++ b/security/manager/ssl/nsNTLMAuthModule.cpp
@@ -1009,11 +1009,6 @@ nsNTLMAuthModule::Init(const char *serviceName,
static bool sTelemetrySent = false;
if (!sTelemetrySent) {
- mozilla::Telemetry::Accumulate(
- mozilla::Telemetry::NTLM_MODULE_USED_2,
- serviceFlags & nsIAuthModule::REQ_PROXY_AUTH
- ? NTLM_MODULE_GENERIC_PROXY
- : NTLM_MODULE_GENERIC_DIRECT);
sTelemetrySent = true;
}
diff --git a/security/manager/ssl/nsPKCS11Slot.cpp b/security/manager/ssl/nsPKCS11Slot.cpp
index 780a7c4b2..015f86901 100644
--- a/security/manager/ssl/nsPKCS11Slot.cpp
+++ b/security/manager/ssl/nsPKCS11Slot.cpp
@@ -541,10 +541,6 @@ nsPKCS11ModuleDB::ToggleFIPSMode()
return NS_ERROR_FAILURE;
}
- if (PK11_IsFIPS()) {
- Telemetry::Accumulate(Telemetry::FIPS_ENABLED, true);
- }
-
return NS_OK;
}
diff --git a/security/manager/ssl/nsSTSPreloadList.errors b/security/manager/ssl/nsSTSPreloadList.errors
index fa74755b2..48a20f39b 100644
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -7,15 +7,25 @@
0005pay.com: did not receive HSTS header
00220022.net: could not connect to host
007-preisvergleich.de: could not connect to host
+00778899.com: did not receive HSTS header
007kf.com: could not connect to host
007sascha.de: did not receive HSTS header
00880088.net: could not connect to host
00wbf.com: could not connect to host
01100010011001010111001101110100.com: could not connect to host
+013028.com: did not receive HSTS header
+016028.com: did not receive HSTS header
+016098.com: did not receive HSTS header
016298.com: did not receive HSTS header
+016328.com: did not receive HSTS header
+019328.com: did not receive HSTS header
+019398.com: did not receive HSTS header
020wifi.nl: could not connect to host
+0222.mg: did not receive HSTS header
0222aa.com: could not connect to host
023838.com: did not receive HSTS header
+028718.com: did not receive HSTS header
+029978.com: did not receive HSTS header
029inno.com: could not connect to host
02dl.net: could not connect to host
03-09-2016.wedding: could not connect to host
@@ -23,11 +33,21 @@
040fitvitality.nl: did not receive HSTS header
048.ag: could not connect to host
050508.com: could not connect to host
+0513c.com: did not receive HSTS header
+055268.com: did not receive HSTS header
066318.com: could not connect to host
+066538.com: did not receive HSTS header
066718.com: did not receive HSTS header
066928.com: could not connect to host
066938.com: could not connect to host
070709.net: could not connect to host
+078805.com: did not receive HSTS header
+078810.com: did not receive HSTS header
+078820.com: did not receive HSTS header
+078860.com: did not receive HSTS header
+078890.com: did not receive HSTS header
+081638.com: did not receive HSTS header
+086628.com: did not receive HSTS header
0c.eu: did not receive HSTS header
0cdn.ga: could not connect to host
0day.su: could not connect to host
@@ -42,11 +62,12 @@
0w0.vc: could not connect to host
0x0a.net: could not connect to host
0x1337.eu: could not connect to host
-0x44.net: did not receive HSTS header
+0x44.net: could not connect to host
0x4b0c131e.pub: could not connect to host
0x52.org: could not connect to host
0x539.be: did not receive HSTS header
-0x539.pw: did not receive HSTS header
+0x539.pw: could not connect to host
+0x5f3759df.cf: could not connect to host
0x65.net: did not receive HSTS header
0x90.fi: could not connect to host
0x90.in: could not connect to host
@@ -54,21 +75,24 @@
0xaa55.me: could not connect to host
0xb612.org: could not connect to host
0xcafec0.de: did not receive HSTS header
+0xf00.ch: could not connect to host
1.0.0.1: max-age too low: 0
1000hats.com: did not receive HSTS header
+1000serien.com: could not connect to host
1001.best: could not connect to host
+1001firms.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
100onrainkajino.com: could not connect to host
1017scribes.com: could not connect to host
1018hosting.nl: did not receive HSTS header
1022996493.rsc.cdn77.org: could not connect to host
-1066.io: could not connect to host
1091.jp: could not connect to host
10gbit.ovh: could not connect to host
10tacle.io: could not connect to host
+10v2.com: did not receive HSTS header
10x.ooo: could not connect to host
1116pay.com: did not receive HSTS header
+11bt.cc: did not receive HSTS header
11recruitment.com.au: did not receive HSTS header
-12.net: did not receive HSTS header
120dayweightloss.com: could not connect to host
123110.com: could not connect to host
123movies.fyi: did not receive HSTS header
@@ -81,15 +105,18 @@
127011-networks.ch: could not connect to host
12vpn.org: could not connect to host
12vpnchina.com: could not connect to host
+130978.com: did not receive HSTS header
+13318522.com: could not connect to host
135vv.com: could not connect to host
13826145000.com: could not connect to host
-1396.cc: did not receive HSTS header
-15-10.com: did not receive HSTS header
+1391kj.com: did not receive HSTS header
+1396.cc: could not connect to host
+1396.net: did not receive HSTS header
1536.cf: could not connect to host
160887.com: did not receive HSTS header
16164f.com: could not connect to host
163pwd.com: could not connect to host
-166166.com: could not connect to host
+1689886.com: did not receive HSTS header
168bet9.com: could not connect to host
168esb.com: could not connect to host
16deza.com: did not receive HSTS header
@@ -98,12 +125,15 @@
173vpns.com: could not connect to host
173vpnv.com: could not connect to host
174.net.nz: did not receive HSTS header
-174343.com: did not receive HSTS header
+174343.com: could not connect to host
+17hats.com: did not receive HSTS header
188522.com: did not receive HSTS header
+18888msc.com: could not connect to host
1888zr.com: could not connect to host
188betwarriors.co.uk: could not connect to host
188trafalgar.ca: did not receive HSTS header
1912x.com: could not connect to host
+19216811.online: could not connect to host
1921958389.rsc.cdn77.org: could not connect to host
195gm.com: did not receive HSTS header
1a-jva.de: could not connect to host
@@ -121,10 +151,13 @@
1s.tn: could not connect to host
1st4abounce.co.uk: did not receive HSTS header
1stcapital.com.sg: did not receive HSTS header
+1ststop.co.uk: did not receive HSTS header
1three1.net: did not receive HSTS header
+1upinternet.com: could not connect to host
1xcess.com: did not receive HSTS header
-1years.cc: did not receive HSTS header
+1years.cc: could not connect to host
2-cpu.de: could not connect to host
+2018.wales: could not connect to host
20188088.com: did not receive HSTS header
2048game.co.uk: could not connect to host
206rc.net: max-age too low: 2592000
@@ -133,40 +166,46 @@
20zq.com: could not connect to host
21lg.co: could not connect to host
21stnc.com: could not connect to host
+22bt.cc: did not receive HSTS header
2333.press: could not connect to host
-233boy.com: could not connect to host
+2333666.xyz: did not receive HSTS header
+233ss.net: did not receive HSTS header
+245meadowvistaway.com: did not receive HSTS header
+247a.co.uk: could not connect to host
247quickbooks.com: did not receive HSTS header
2488.ch: did not receive HSTS header
249cq.com: could not connect to host
24hourpaint.com: could not connect to host
-24hrs.shopping: did not receive HSTS header
+24hrs.shopping: could not connect to host
24kbet.com: could not connect to host
24pcr.com: could not connect to host
24sihu.com: could not connect to host
+2566335.xyz: could not connect to host
256k.me: could not connect to host
-256pages.com: did not receive HSTS header
25daysof.io: could not connect to host
260887.com: did not receive HSTS header
+27728522.com: could not connect to host
2859cc.com: could not connect to host
29227.com: could not connect to host
2acbi-asso.fr: did not receive HSTS header
-2au.ru: could not connect to host
2b3b.com: could not connect to host
2bitout.com: could not connect to host
2bizi.ru: could not connect to host
2brokegirls.org: could not connect to host
2carpros.com: did not receive HSTS header
2fl.me: did not receive HSTS header
+2gen.com: could not connect to host
2intermediate.co.uk: did not receive HSTS header
+2mir.com: could not connect to host
2or3.tk: could not connect to host
2smart4food.com: could not connect to host
-2ss.jp: did not receive HSTS header
+2ss.jp: could not connect to host
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
-30hzcollective.com: could not connect to host
+30yearmortgagerates.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
3133780x.com: did not receive HSTS header
314166.com: could not connect to host
314chan.org: could not connect to host
@@ -174,8 +213,8 @@
32ph.com: could not connect to host
330.net: could not connect to host
338da.com: could not connect to host
-33drugstore.com: did not receive HSTS header
-341.mg: did not receive HSTS header
+33drugstore.com: could not connect to host
+341.mg: could not connect to host
34oztonic.eu: did not receive HSTS header
3555500.com: could not connect to host
3555aa.com: could not connect to host
@@ -185,8 +224,11 @@
365beautyworld.com: could not connect to host
365maya.com: did not receive HSTS header
368mibn.com: could not connect to host
-3778xl.com: did not receive HSTS header
+3778vip.com: did not receive HSTS header
+3778xl.com: could not connect to host
3839.ca: could not connect to host
+38888msc.com: could not connect to host
+38blog.com: could not connect to host
38sihu.com: could not connect to host
3candy.com: could not connect to host
3chit.cf: could not connect to host
@@ -197,13 +239,12 @@
3dm.audio: could not connect to host
3dproteinimaging.com: did not receive HSTS header
3fl.com: did not receive HSTS header
-3lot.ru: could not connect to host
3mbo.de: did not receive HSTS header
3sreporting.com: did not receive HSTS header
3vlnaeet.cz: could not connect to host
3wecommerce.com.br: could not connect to host
3xx.link: could not connect to host
-4-it.de: could not connect to host
+40-grad.de: did not receive HSTS header
4036aa.com: did not receive HSTS header
4036bb.com: did not receive HSTS header
4036cc.com: did not receive HSTS header
@@ -213,8 +254,10 @@
404404.info: could not connect to host
404forest.com: did not receive HSTS header
41844.de: could not connect to host
-41studio.com: could not connect to host
420dongstorm.com: could not connect to host
+4237.com: max-age too low: 86400
+42day.info: could not connect to host
+42entrepreneurs.fr: did not receive HSTS header
42ms.org: could not connect to host
42t.ru: could not connect to host
439191.com: did not receive HSTS header
@@ -227,13 +270,15 @@
4455software.com: could not connect to host
445887.com: did not receive HSTS header
44957.com: could not connect to host
+44sec.com: could not connect to host
+4500.co.il: did not receive HSTS header
4679.space: did not receive HSTS header
4706666.com: did not receive HSTS header
4716666.com: did not receive HSTS header
4726666.com: did not receive HSTS header
-4736666.com: did not receive HSTS header
4756666.com: did not receive HSTS header
4786666.com: did not receive HSTS header
+478933.com: did not receive HSTS header
47tech.com: could not connect to host
4997777.com: could not connect to host
4azino777.ru: did not receive HSTS header
@@ -241,7 +286,6 @@
4bike.eu: did not receive HSTS header
4cclothing.com: could not connect to host
4d2.xyz: could not connect to host
-4flex.info: could not connect to host
4hvac.com: did not receive HSTS header
4loc.us: could not connect to host
4miners.net: could not connect to host
@@ -265,60 +309,77 @@
52kb1.com: could not connect to host
52neptune.com: could not connect to host
540.co: did not receive HSTS header
+5432.cc: did not receive HSTS header
54bf.com: could not connect to host
555fl.com: max-age too low: 129600
555xl.com: could not connect to host
+55bt.cc: did not receive HSTS header
56877.com: could not connect to host
56ct.com: could not connect to host
57aromas.com: did not receive HSTS header
-57he.com: did not receive HSTS header
+5chat.it: could not connect to host
+5ece.de: could not connect to host
5piecesofadvice.com: could not connect to host
605508.cc: could not connect to host
605508.com: could not connect to host
60ych.net: did not receive HSTS header
6120.eu: did not receive HSTS header
62755.com: did not receive HSTS header
+645ds.cn: did not receive HSTS header
+645ds.com: did not receive HSTS header
64616e.xyz: could not connect to host
-660011.com: max-age too low: 0
+64bitgaming.de: could not connect to host
+64bitservers.net: could not connect to host
+660011.com: could not connect to host
6677.us: did not receive HSTS header
+67899876.com: did not receive HSTS header
68277.me: could not connect to host
688da.com: could not connect to host
692b8c32.de: could not connect to host
69mentor.com: could not connect to host
69square.com: could not connect to host
+6ird.com: did not receive HSTS header
+6z3.net: could not connect to host
7045h.com: could not connect to host
7183.org: could not connect to host
-721av.com: max-age too low: 2592000
+721av.com: could not connect to host
724go.com: could not connect to host
7261696e626f77.net: could not connect to host
72ty.com: could not connect to host
72ty.net: could not connect to host
73223.com: did not receive HSTS header
-776573.net: could not connect to host
+73info.com: did not receive HSTS header
+771122.tv: did not receive HSTS header
+7717a.com: did not receive HSTS header
+776573.net: did not receive HSTS header
7777av.co: could not connect to host
77890k.com: could not connect to host
77book.cn: could not connect to host
+789zr.com: max-age too low: 86400
7f-wgg.cf: could not connect to host
7links.com.br: did not receive HSTS header
+7nw.eu: could not connect to host
7thheavenrestaurant.com: could not connect to host
-7trade8.com: could not connect to host
8.net.co: could not connect to host
8003pay.com: could not connect to host
-808.lv: could not connect to host
+808.lv: did not receive HSTS header
808phone.net: could not connect to host
+81818app.com: could not connect to host
81uc.com: could not connect to host
+8206688.com: did not receive HSTS header
826468.com: could not connect to host
826498.com: could not connect to host
82ty.com: could not connect to host
83i.net: could not connect to host
8522.am: could not connect to host
8522cn.com: did not receive HSTS header
+8522top.com: could not connect to host
8560.be: could not connect to host
-86metro.ru: could not connect to host
8722.com: did not receive HSTS header
87577.com: could not connect to host
88.to: could not connect to host
887.ag: did not receive HSTS header
+8884553.com: could not connect to host
8887999.com: could not connect to host
8888av.co: could not connect to host
888azino.com: did not receive HSTS header
@@ -326,6 +387,7 @@
88d.com: could not connect to host
88laohu.cc: could not connect to host
88laohu.com: could not connect to host
+8989k3.com: could not connect to host
89955.com: could not connect to host
899699.com: did not receive HSTS header
89he.com: could not connect to host
@@ -336,28 +398,38 @@
8t88.biz: could not connect to host
90smthng.com: could not connect to host
91-freedom.com: could not connect to host
+910kj.com: did not receive HSTS header
9118b.com: could not connect to host
911911.pw: could not connect to host
915ers.com: did not receive HSTS header
-918yy.com: did not receive HSTS header
+919945.com: did not receive HSTS header
91dh.cc: could not connect to host
91lt.info: could not connect to host
922.be: could not connect to host
92bmh.com: did not receive HSTS header
+9454.com: max-age too low: 86400
94cs.cn: did not receive HSTS header
95778.com: could not connect to host
960news.ca: could not connect to host
9617818.com: could not connect to host
9617818.net: could not connect to host
9651678.ru: could not connect to host
+9822.com: did not receive HSTS header
+9822.info: did not receive HSTS header
+987987.com: did not receive HSTS header
+9906753.net: did not receive HSTS header
99511.fi: did not receive HSTS header
99buffets.com: could not connect to host
+9iwan.net: did not receive HSTS header
9jadirect.com: could not connect to host
9point6.com: could not connect to host
-a-intel.com: did not receive HSTS header
+9ss6.com: could not connect to host
+9vies.ca: could not connect to host
+a-intel.com: could not connect to host
a-ix.net: could not connect to host
a-plus.space: could not connect to host
a-rickroll-n.pw: could not connect to host
+a-shafaat.ir: did not receive HSTS header
a-theme.com: could not connect to host
a1-autopartsglasgow.com: could not connect to host
a1798.com: could not connect to host
@@ -365,9 +437,9 @@ a200k.xyz: did not receive HSTS header
a2c-co.net: could not connect to host
a2it.gr: did not receive HSTS header
a3workshop.swiss: could not connect to host
+a8q.org: could not connect to host
a9c.co: could not connect to host
aa7733.com: could not connect to host
-aacfree.com: did not receive HSTS header
aaeblog.com: did not receive HSTS header
aaeblog.net: did not receive HSTS header
aaeblog.org: did not receive HSTS header
@@ -375,10 +447,10 @@ aaoo.net: could not connect to host
aapp.space: could not connect to host
aariefhaafiz.com: could not connect to host
aaron-gustafson.com: did not receive HSTS header
+aaronburt.co.uk: could not connect to host
+aaronhorler.com.au: could not connect to host
aaronmcguire.me: did not receive HSTS header
aarvinproperties.com: could not connect to host
-aati.info: could not connect to host
-abandonedmines.gov: could not connect to host
abareplace.com: did not receive HSTS header
abasky.net: could not connect to host
abcdef.be: could not connect to host
@@ -387,9 +459,11 @@ abcdobebe.com: did not receive HSTS header
abchelp.net: did not receive HSTS header
abearofsoap.com: could not connect to host
abecodes.net: could not connect to host
+abeontech.com: could not connect to host
abi-fvs.de: could not connect to host
abigailstark.com: could not connect to host
abilitylist.org: did not receive HSTS header
+abilma.com: could not connect to host
abioniere.de: could not connect to host
ablogagency.net: could not connect to host
abloop.com: could not connect to host
@@ -403,14 +477,16 @@ aboutassistedliving.org: did not receive HSTS header
aboutmyip.info: did not receive HSTS header
aboutmyproperty.ca: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
aboutyou-deals.de: could not connect to host
+abracadabra.co.jp: max-age too low: 0
absinthium.ch: could not connect to host
+absolutewaterproofingsolutions.com: did not receive HSTS header
abstractbarista.com: could not connect to host
abstractbarista.net: could not connect to host
abt.de: did not receive HSTS header
abtom.de: did not receive HSTS header
abury.fr: did not receive HSTS header
abury.me: did not receive HSTS header
-abyssgaming.eu: could not connect to host
+abyssgaming.eu: did not receive HSTS header
ac.milan.it: did not receive HSTS header
acabadosboston.com: could not connect to host
academialowcost.com.br: did not receive HSTS header
@@ -419,8 +495,8 @@ academy4.net: did not receive HSTS header
acadianapatios.com: did not receive HSTS header
acai51.net: could not connect to host
acaonegocios.com.br: could not connect to host
-acat.io: could not connect to host
acbc.ie: max-age too low: 0
+accbay.com: could not connect to host
accelerate.network: could not connect to host
accelerole.com: did not receive HSTS header
accelight.co.jp: did not receive HSTS header
@@ -428,11 +504,12 @@ accelight.jp: did not receive HSTS header
access-sofia.org: did not receive HSTS header
accolade.com.br: could not connect to host
accoun.technology: could not connect to host
-accountradar.com: max-age too low: 86400
accounts-p.com: could not connect to host
accountsuspended.club: could not connect to host
accwing.com: could not connect to host
aceadvisory.biz: did not receive HSTS header
+acelpb.com: could not connect to host
+acemypaper.com: could not connect to host
acg.mn: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
acg.sb: could not connect to host
acgaudio.com: could not connect to host
@@ -440,8 +517,10 @@ acgmoon.org: did not receive HSTS header
acgpiano.club: could not connect to host
acheirj.com.br: could not connect to host
acheritage.co.uk: did not receive HSTS header
+achmadfamily.com: could not connect to host
achow101.com: did not receive HSTS header
achterhoekseveiligheidsbeurs.nl: could not connect to host
+achterstieg.dedyn.io: could not connect to host
acisonline.net: did not receive HSTS header
acksoft.fr: did not receive HSTS header
acksoftdemo.fr: did not receive HSTS header
@@ -457,6 +536,7 @@ actilove.ch: could not connect to host
actiontowingroundrock.com: could not connect to host
activateplay.com: did not receive HSTS header
active-escape.com: did not receive HSTS header
+activeclearweb.com: could not connect to host
activeweb.top: could not connect to host
activistasconstructivos.org: did not receive HSTS header
activiti.alfresco.com: did not receive HSTS header
@@ -464,6 +544,7 @@ actu-film.com: max-age too low: 0
actu-medias.com: could not connect to host
actualite-videos.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
acuve.jp: could not connect to host
+acy.com: could not connect to host
ad-disruptio.fr: could not connect to host
ada.is: max-age too low: 2592000
adajwells.me: could not connect to host
@@ -471,12 +552,15 @@ adambryant.ca: could not connect to host
adamcoffee.net: could not connect to host
adamdixon.co.uk: could not connect to host
adamricheimer.com: could not connect to host
+adamsfoundationrepair.com: did not receive HSTS header
+adamwallington.co.uk: could not connect to host
adamwk.com: did not receive HSTS header
adastra.re: could not connect to host
adblock.ovh: could not connect to host
adboos.com: could not connect to host
addaxpetroleum.com: could not connect to host
addcrazy.com: did not receive HSTS header
+addiko.net: could not connect to host
addvocate.com: could not connect to host
adec-emsa.ae: could not connect to host
adelaides.com: did not receive HSTS header
@@ -485,17 +569,20 @@ adelinlydia-coach.com: did not receive HSTS header
adequatetechnology.com: could not connect to host
aderal.io: could not connect to host
adesa-asesoria.com: did not receive HSTS header
+adevel.eu: could not connect to host
adfa-1.com: could not connect to host
-adhigamindia.com: did not receive HSTS header
+adhigamindia.com: could not connect to host
adhosting.nl: did not receive HSTS header
adhs-chaoten.net: did not receive HSTS header
adigitali.biz: did not receive HSTS header
adindexr.com: could not connect to host
+adint.net: could not connect to host
adlerweb.info: did not receive HSTS header
admin-forms.co.uk: did not receive HSTS header
admin-numerique.com: did not receive HSTS header
admin.google.com: did not receive HSTS header (error ignored - included regardless)
admins.tech: could not connect to host
+adminwerk.com: did not receive HSTS header
adminwerk.net: did not receive HSTS header
admirable.one: did not receive HSTS header
admiral.dp.ua: did not receive HSTS header
@@ -504,6 +591,7 @@ admsel.ec: could not connect to host
adoal.net: did not receive HSTS header
adoge.me: could not connect to host
adonairelogios.com.br: could not connect to host
+adoniscabaret.co.uk: could not connect to host
adopteunsiteflash.com: could not connect to host
adprospb.com: did not receive HSTS header
adquisitio.de: could not connect to host
@@ -512,6 +600,8 @@ adrenaline-gaming.ru: could not connect to host
adrianajewelry.my: could not connect to host
adriancohea.ninja: did not receive HSTS header
adrianseo.ro: did not receive HSTS header
+adrien.vin: max-age too low: 172800
+adrinet.tk: could not connect to host
adrl.ca: could not connect to host
adsfund.org: could not connect to host
aduedu.de: did not receive HSTS header
@@ -533,6 +623,7 @@ advertisemant.com: could not connect to host
adviespuntklokkenluiders.nl: could not connect to host
adzie.xyz: could not connect to host
adzuna.co.uk: did not receive HSTS header
+aelurus.com: could not connect to host
aemoria.com: could not connect to host
aeon.wiki: could not connect to host
aerialmediapro.net: could not connect to host
@@ -540,6 +631,7 @@ aerolog.co: did not receive HSTS header
aeroparking.es: did not receive HSTS header
aerotheque.fr: did not receive HSTS header
aes256.ru: could not connect to host
+aesthetics-blog.com: did not receive HSTS header
aesym.de: could not connect to host
aether.pw: could not connect to host
aevpn.net: could not connect to host
@@ -547,21 +639,23 @@ aevpn.org: could not connect to host
aeyoun.com: did not receive HSTS header
af-fotografie.net: did not receive HSTS header
afdkompakt.de: max-age too low: 86400
+afeefzarapackages.com: did not receive HSTS header
affily.io: could not connect to host
affinity.vc: did not receive HSTS header
affordablebouncycastle.co.uk: did not receive HSTS header
affordablepapers.com: could not connect to host
aficotroceni.ro: did not receive HSTS header
afiru.net: could not connect to host
+aflamtorrent.com: could not connect to host
afmchandler.com: did not receive HSTS header
afp548.tk: could not connect to host
after.im: did not receive HSTS header
afterstack.net: could not connect to host
-afvallendoeje.nu: could not connect to host
+afvallendoeje.nu: did not receive HSTS header
afyou.co.kr: could not connect to host
agalaxyfarfaraway.co.uk: could not connect to host
agatheetraphael.fr: could not connect to host
-agbremen.de: could not connect to host
+agbremen.de: did not receive HSTS header
agdalieso.com.ba: could not connect to host
agelesscitizen.com: could not connect to host
agelesscitizens.com: could not connect to host
@@ -578,18 +672,17 @@ agowa.eu: did not receive HSTS header
agowa338.de: did not receive HSTS header
agrafix.design: did not receive HSTS header
agrarking.com: could not connect to host
-agrias.com.br: could not connect to host
-agricolo.ch: could not connect to host
+agrias.com.br: did not receive HSTS header
agrikulturchic.com: could not connect to host
agrimap.com: did not receive HSTS header
agro-id.gov.ua: did not receive HSTS header
+agro.rip: did not receive HSTS header
agroglass.com.br: did not receive HSTS header
+agroyard.com.ua: could not connect to host
agtv.com.br: did not receive HSTS header
ahabingo.com: did not receive HSTS header
ahelos.tk: could not connect to host
-ahkubiak.ovh: could not connect to host
ahlz.sk: could not connect to host
-ahmedcharles.com: could not connect to host
aholic.co: did not receive HSTS header
ahoynetwork.com: could not connect to host
ahri.ovh: could not connect to host
@@ -597,21 +690,20 @@ ahsin.online: could not connect to host
ahwah.net: could not connect to host
ahwatukeefoothillsmontessori.com: did not receive HSTS header
ai1989.com: could not connect to host
+aibaoyou.com: could not connect to host
aibsoftware.mx: could not connect to host
-aicial.co.uk: could not connect to host
aicial.com: did not receive HSTS header
aicial.com.au: could not connect to host
aid-web.ch: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
aidanwoods.com: did not receive HSTS header
-aide-admin.com: could not connect to host
+aide-admin.com: did not receive HSTS header
aidikofflaw.com: did not receive HSTS header
aiesecarad.ro: could not connect to host
aifreeze.ru: could not connect to host
aify.eu: could not connect to host
-aignermunich.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-aignermunich.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
aikenorganics.com: could not connect to host
aim-consultants.com: could not connect to host
+aimerworld.com: did not receive HSTS header
aimrom.org: could not connect to host
ainrb.com: could not connect to host
aioboot.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -619,16 +711,22 @@ aip-marine.com: could not connect to host
aiphyron.com: could not connect to host
aiponne.com: could not connect to host
airconsalberton.co.za: did not receive HSTS header
+airconsboksburg.co.za: did not receive HSTS header
+airconsfourways.co.za: did not receive HSTS header
+airconsmidrand.co.za: did not receive HSTS header
+airconssandton.co.za: did not receive HSTS header
airedaleterrier.com.br: could not connect to host
airfax.io: could not connect to host
airlea.com: could not connect to host
airlinecheckins.com: did not receive HSTS header
airmazinginflatables.com: could not connect to host
airproto.com: did not receive HSTS header
+airsick.guide: did not receive HSTS header
airtimefranchise.com: did not receive HSTS header
aishnair.com: could not connect to host
aisle3.space: could not connect to host
aiticon.de: did not receive HSTS header
+aivene.com: could not connect to host
aiw-thkoeln.online: could not connect to host
ajetaci.cz: could not connect to host
ajibot.com: did not receive HSTS header
@@ -646,18 +744,23 @@ akhras.at: did not receive HSTS header
akiba-server.info: could not connect to host
akihiro.xyz: could not connect to host
akita-stream.com: could not connect to host
+akj.io: did not receive HSTS header
akkadia.cc: could not connect to host
+akoch.net: could not connect to host
akombakom.net: could not connect to host
akoww.de: could not connect to host
-akritikos.info: could not connect to host
-akselimedia.fi: did not receive HSTS header
+akracing.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+akselimedia.fi: could not connect to host
akstudentsfirst.org: could not connect to host
+aktan.com.br: could not connect to host
aktivist.in: did not receive HSTS header
+akul.co.in: could not connect to host
al-f.net: could not connect to host
al-shami.net: could not connect to host
alanhuang.name: did not receive HSTS header
alanlee.net: could not connect to host
alanrickmanflipstable.com: did not receive HSTS header
+alanya.law: did not receive HSTS header
alariel.de: did not receive HSTS header
alarme-gps.ch: could not connect to host
alarmegps.ch: could not connect to host
@@ -671,58 +774,67 @@ albertify.xyz: could not connect to host
albertonplumber24-7.co.za: did not receive HSTS header
albertopimienta.com: did not receive HSTS header
alcantarafleuriste.com: did not receive HSTS header
+alcatelonetouch.us: could not connect to host
alcatraz.online: could not connect to host
alcazaar.com: could not connect to host
alchemia.co.il: did not receive HSTS header
alcorao.org: could not connect to host
+aldes.co.za: did not receive HSTS header
aleax.me: could not connect to host
alecvannoten.be: did not receive HSTS header
-aleksejjocic.tk: could not connect to host
alenan.org: could not connect to host
aleph.land: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
alertaenlinea.gov: did not receive HSTS header
alessandro.pw: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
alessandroz.pro: could not connect to host
alethearose.com: did not receive HSTS header
+alexandernorth.ch: could not connect to host
alexandre.sh: did not receive HSTS header
-alexbaker.org: did not receive HSTS header
+alexandros.io: could not connect to host
alexdodge.ca: did not receive HSTS header
alexei.su: could not connect to host
alexfisherhealth.com.au: did not receive HSTS header
alexhaydock.co.uk: did not receive HSTS header
+alexischaussy.xyz: 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
alexkidd.de: did not receive HSTS header
alexmak.net: did not receive HSTS header
alexmol.tk: could not connect to host
alexperry.io: could not connect to host
alfa24.pro: could not connect to host
-alfaperfumes.com.br: could not connect to host
alfaponny.se: could not connect to host
alfirous.com: could not connect to host
alfredxing.com: did not receive HSTS header
algarmatic-automatismos.pt: could not connect to host
algebraaec.com: did not receive HSTS header
-alghaib.com: did not receive HSTS header
+alghaib.com: could not connect to host
alibababee.com: did not receive HSTS header
-alien.bz: could not connect to host
+alicialab.org: could not connect to host
+alien.bz: did not receive HSTS header
+alignrs.com: could not connect to host
alikulov.me: did not receive HSTS header
alilialili.ga: could not connect to host
alinemaciel.adm.br: could not connect to host
alistairpialek.com: max-age too low: 86400
alittlebitcheeky.com: did not receive HSTS header
aliwebstore.com: could not connect to host
-aljammaz.holdings: did not receive HSTS header
+aljammaz.holdings: could not connect to host
aljmz.com: did not receive HSTS header
alkami.com: max-age too low: 0
alkamitech.com: max-age too low: 0
+alkel.info: did not receive HSTS header
all-subtitles.com: could not connect to host
all.tf: could not connect to host
all4os.com: did not receive HSTS header
-allangirvan.net: could not connect to host
+allaboutbelgaum.com: did not receive HSTS header
alldaymonitoring.com: could not connect to host
alldm.ru: could not connect to host
allegro-inc.com: did not receive HSTS header
-allenosgood.com: could not connect to host
+allerbestefreunde.de: did not receive HSTS header
allfreelancers.su: did not receive HSTS header
allgrass.es: did not receive HSTS header
allgrass.net: did not receive HSTS header
@@ -730,6 +842,7 @@ alliance-compacts.com: did not receive HSTS header
allinnote.com: could not connect to host
allinonecyprus.com: did not receive HSTS header
allkindzabeats.com: did not receive HSTS header
+allladyboys.com: could not connect to host
allmbw.com: could not connect to host
allmystery.de: did not receive HSTS header
allods-zone.ru: did not receive HSTS header
@@ -745,10 +858,11 @@ allsortscastles.co.uk: could not connect to host
allstarswithus.com: could not connect to host
allstorebrasil.com.br: could not connect to host
alltheducks.com: max-age too low: 43200
+allthingsblogging.com: could not connect to host
allthingsfpl.com: could not connect to host
allvips.ru: could not connect to host
almagalla.com: could not connect to host
-almatinki.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+almatinki.com: could not connect to host
aloalabs.com: did not receive HSTS header
alocato.com: could not connect to host
alparque.com: did not receive HSTS header
@@ -768,25 +882,32 @@ altailife.ru: did not receive HSTS header
altamarea.se: could not connect to host
altbinaries.com: could not connect to host
alteqnia.com: could not connect to host
-alterbaum.net: could not connect to host
altercpa.ru: did not receive HSTS header
+altered.network: could not connect to host
altfire.ca: could not connect to host
altiacaselight.com: could not connect to host
altitudemoversdenver.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-altmv.com: max-age too low: 7776000
+altoneum.com: could not connect to host
altporn.xyz: could not connect to host
+altruistgroup.net: max-age too low: 300
aluminium-scaffolding.co.uk: could not connect to host
-alunjam.es: did not receive HSTS header
+alunjam.es: could not connect to host
alunonaescola.com.br: could not connect to host
+aluoblog.pw: could not connect to host
+aluoblog.top: could not connect to host
alusta.co: could not connect to host
+alvn.ga: could not connect to host
am8888.top: could not connect to host
-amaderelectronics.com: did not receive HSTS header
-amadilo.de: did not receive HSTS header
+amaderelectronics.com: max-age too low: 2592000
+amadilo.de: could not connect to host
+amadoraslindas.com: could not connect to host
amaforums.org: did not receive HSTS header
amagical.net: did not receive HSTS header
amandaonishi.com: could not connect to host
amaranthus.com.ph: could not connect to host
amartinz.at: could not connect to host
+amateri.com: could not connect to host
+amateurvoicetalent.com: could not connect to host
amatzen.dk: did not receive HSTS header
amavis.org: did not receive HSTS header
amazing-gaming.fr: could not connect to host
@@ -807,13 +928,20 @@ americansforcommunitydevelopment.org: did not receive HSTS header
americansportsinstitute.org: did not receive HSTS header
americanworkwear.nl: did not receive HSTS header
amethystcards.co.uk: 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
amicsdelbus.com: did not receive HSTS header
amigogeek.net: could not connect to host
amihub.com: could not connect to host
amilum.org: could not connect to host
amilx.com: could not connect to host
amilx.org: could not connect to host
-amimoto-ami.com: max-age too low: 3153600
+amimoto-ami.com: did not receive HSTS header
+amin.ga: did not receive HSTS header
+amin.one: could not connect to host
amishsecurity.com: could not connect to host
amitse.com: did not receive HSTS header
amitube.com: did not receive HSTS header
@@ -823,43 +951,39 @@ ammoulianiapartments.com: did not receive HSTS header
amo-entreprise-et-commerce.fr: could not connect to host
amobileway.co.uk: did not receive HSTS header
amoory.com: could not connect to host
-amoozesh98.com: could not connect to host
-amoozesh98.ir: could not connect to host
amorimendes.com.br: could not connect to host
ampledesigners.com: could not connect to host
ampleinfographics.com: could not connect to host
amri.nl: did not receive HSTS header
-amsportuk.com: did not receive HSTS header
amtentertainments.co.uk: could not connect to host
amua.fr: could not connect to host
amunoz.org: could not connect to host
amv-crm.ru: could not connect to host
anabol.nl: could not connect to host
anacruz.es: did not receive HSTS header
+anadoluefessk.org: did not receive HSTS header
anadoluefessporkulubu.org: could not connect to host
-anaethelion.fr: could not connect to host
anagra.ms: could not connect to host
+anaiscoachpersonal.es: did not receive HSTS header
+anaisypirueta.es: did not receive HSTS header
anakros.me: could not connect to host
+analangelsteen.com: could not connect to host
analpantyhose.org: could not connect to host
+analteengirls.net: could not connect to host
analytic-s.ml: could not connect to host
analytics-shop.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
analyticsinmotion.net: could not connect to host
-analyticum.at: could not connect to host
-analyticum.com: could not connect to host
-analyticum.de: could not connect to host
-analyticum.eu: could not connect to host
-analyticum.net: could not connect to host
analyzemyfriends.com: could not connect to host
-anastasiafond.com: could not connect to host
+anastasiafond.com: did not receive HSTS header
ancarda.net: could not connect to host
anchorgrounds.com: did not receive HSTS header
anchorinmarinainc.com: did not receive HSTS header
ancient-gates.de: could not connect to host
-ancientcraft.eu: could not connect to host
ancientkarma.com: could not connect to host
andbraiz.com: did not receive HSTS header
andere-gedanken.net: max-age too low: 10
anderslind.dk: could not connect to host
+andoms.fi: did not receive HSTS header
andreagobetti.com: did not receive HSTS header
andreas-kluge.eu: could not connect to host
andreasanti.net: did not receive HSTS header
@@ -871,19 +995,17 @@ andreastoneman.com: could not connect to host
andrei-coman.com: could not connect to host
andreigec.net: did not receive HSTS header
andrerose.ca: did not receive HSTS header
-andrew.fi: did not receive HSTS header
-andrew.london: did not receive HSTS header
+andrew.fi: could not connect to host
andrewbroekman.com: did not receive HSTS header
andrewdavidwong.com: did not receive HSTS header
andrewdaws.co: could not connect to host
andrewdaws.info: could not connect to host
andrewdaws.me: could not connect to host
andrewdaws.tv: could not connect to host
-andrewhowden.com: could not connect to host
andrewmichaud.beer: could not connect to host
andrewrdaws.com: could not connect to host
andrewregan.me: could not connect to host
-andrewtebert.com: could not connect to host
+andrewtebert.com: did not receive HSTS header
andrewthelott.net: could not connect to host
andrewvoce.com: did not receive HSTS header
andrewyg.net: could not connect to host
@@ -894,6 +1016,8 @@ androidsphone.com: did not receive HSTS header
androled.fr: max-age too low: 5184000
andronika.net: could not connect to host
androoz.se: could not connect to host
+anduril.de: did not receive HSTS header
+anduril.eu: did not receive HSTS header
andyclark.io: could not connect to host
andycraftz.eu: did not receive HSTS header
andymartin.cc: could not connect to host
@@ -911,10 +1035,11 @@ angeloventuri.com: did not receive HSTS header
angervillelorcher.fr: did not receive HSTS header
anghami.com: did not receive HSTS header
anglictinatabor.cz: could not connect to host
+angrut.com: did not receive HSTS header
angry-monk.com: could not connect to host
angrydragonproductions.com: could not connect to host
-angrylab.com: did not receive HSTS header
angryroute.com: could not connect to host
+animal-nature-human.com: could not connect to host
animalnet.de: max-age too low: 7776000
animalstropic.com: could not connect to host
anime1.top: could not connect to host
@@ -929,7 +1054,7 @@ anisekai.com: max-age too low: 2592000
anita-mukorom.hu: did not receive HSTS header
anitklib.ml: could not connect to host
anitube-nocookie.ch: could not connect to host
-anivar.net: could not connect to host
+anivar.net: did not receive HSTS header
ankakaak.com: could not connect to host
ankaraprofesyonelnakliyat.com: did not receive HSTS header
ankaraprofesyonelnakliyat.com.tr: did not receive HSTS header
@@ -940,7 +1065,6 @@ annarbor.group: did not receive HSTS header
annetaan.fi: could not connect to host
annevankesteren.com: could not connect to host
annevankesteren.org: could not connect to host
-annrusnak.com: did not receive HSTS header
annsbouncycastles.com: could not connect to host
anomaly.ws: did not receive HSTS header
anonboards.com: could not connect to host
@@ -960,6 +1084,7 @@ ant.land: could not connect to host
antecim.fr: could not connect to host
antenasmundosat.com.br: did not receive HSTS header
anthenor.co.uk: could not connect to host
+anthony-rouanet.com: could not connect to host
anthonyavon.com: could not connect to host
anthonyloop.com: did not receive HSTS header
anthro.id: did not receive HSTS header
@@ -967,6 +1092,7 @@ antifraud.net.ru: could not connect to host
antimatiere.space: could not connect to host
antimine.kr: could not connect to host
antipa.ch: could not connect to host
+antirayapmalang.com: did not receive HSTS header
antoine-roux.fr: did not receive HSTS header
antoinebetas.be: max-age too low: 0
antoined.fr: did not receive HSTS header
@@ -977,32 +1103,36 @@ antoniorequena.com.ve: could not connect to host
antraxx.ee: could not connect to host
antscript.com: did not receive HSTS header
anttitenhunen.com: could not connect to host
-anulowano.pl: could not connect to host
anunayk.com: could not connect to host
anycoin.me: could not connect to host
anyfood.fi: could not connect to host
anytonetech.com: did not receive HSTS header
+anyways.at: could not connect to host
aobogo.com: could not connect to host
aocast.info: could not connect to host
aojao.cn: could not connect to host
aojf.fr: could not connect to host
aolabs.nz: did not receive HSTS header
aomberg.com: did not receive HSTS header
+aomonk.com: did not receive HSTS header
aooobo.com: could not connect to host
aov.io: could not connect to host
aovcentrum.nl: did not receive HSTS header
aozora.moe: could not connect to host
-apac-tech.com: did not receive HSTS header
apachelounge.com: did not receive HSTS header
apadrinaunolivo.org: did not receive HSTS header
apaginastore.com.br: could not connect to host
apeasternpower.com: could not connect to host
+aperim.com: max-age too low: 43200
aperture-laboratories.science: did not receive HSTS header
api.mega.co.nz: could not connect to host
apibot.de: could not connect to host
apience.com: did not receive HSTS header
+apis.blue: could not connect to host
apis.google.com: did not receive HSTS header (error ignored - included regardless)
apis.world: could not connect to host
+apivia.fr: did not receive HSTS header
+apkdv.com: did not receive HSTS header
apkoyunlar.club: could not connect to host
apkriver.com: did not receive HSTS header
apl2bits.net: did not receive HSTS header
@@ -1010,7 +1140,6 @@ apm.com.tw: did not receive HSTS header
apmg-certified.com: did not receive HSTS header
apmg-cyber.com: did not receive HSTS header
apnakliyat.com: did not receive HSTS header
-apogeephoto.com: did not receive HSTS header
apolloyl.com: could not connect to host
aponkral.site: could not connect to host
aponkralsunucu.com: could not connect to host
@@ -1026,11 +1155,14 @@ appdrinks.com: could not connect to host
appeldorn.me: did not receive HSTS header
appengine.google.com: did not receive HSTS header (error ignored - included regardless)
appimlab.it: could not connect to host
-apple-watch-zubehoer.de: did not receive HSTS header
+apple-watch-zubehoer.de: could not connect to host
apple.ax: could not connect to host
applejacks-bouncy-castles.co.uk: could not connect to host
+applewatch.co.nz: did not receive HSTS header
applez.xyz: could not connect to host
+appliancerepairlosangeles.com: did not receive HSTS header
applic8.com: did not receive HSTS header
+apply55gx.com: could not connect to host
appointed.at: did not receive HSTS header
appraisal-comps.com: could not connect to host
appreciationkards.com: did not receive HSTS header
@@ -1051,34 +1183,42 @@ aquilalab.com: could not connect to host
aquireceitas.com: did not receive HSTS header
ar.al: did not receive HSTS header
arabdigitalexpression.org: did not receive HSTS header
+arabsexi.info: could not connect to host
aradulconteaza.ro: could not connect to host
aran.me.uk: could not connect to host
+aranel.me: could not connect to host
arboineuropa.nl: did not receive HSTS header
arbu.eu: max-age too low: 2419200
arcadiaeng.com: did not receive HSTS header
arcbit.io: could not connect to host
archii.ca: did not receive HSTS header
+architectdirect.nl: did not receive HSTS header
architecte-interieur.be: did not receive HSTS header
archmediamarketing.com: could not connect to host
archsec.info: could not connect to host
arckr.com: could not connect to host
+arctica.io: did not receive HSTS header
ardao.me: could not connect to host
+ardor.noip.me: could not connect to host
ardorlabs.se: could not connect to host
area3.org: could not connect to host
areallyneatwebsite.com: could not connect to host
arent.kz: could not connect to host
arenzanaphotography.com: could not connect to host
+arethsu.se: could not connect to host
arewedubstepyet.com: did not receive HSTS header
areyouever.me: could not connect to host
-argama-nature.com: did not receive HSTS header
argennon.xyz: could not connect to host
argh.io: could not connect to host
arguggi.co.uk: could not connect to host
ariacreations.net: did not receive HSTS header
+ariege-pyrenees.net: did not receive HSTS header
arifburhan.online: could not connect to host
arifp.me: could not connect to host
arinflatablefun.co.uk: could not connect to host
arislight.com: could not connect to host
+aristocrates.co: could not connect to host
+aristocratps.com: did not receive HSTS header
arithxu.com: did not receive HSTS header
arka.gq: did not receive HSTS header
arknodejs.com: could not connect to host
@@ -1094,7 +1234,7 @@ armored.ninja: did not receive HSTS header
armory.consulting: could not connect to host
armory.supplies: could not connect to host
armsday.com: could not connect to host
-armyofbane.com: could not connect to host
+armyofbane.com: did not receive HSTS header
armytricka.cz: did not receive HSTS header
arne-petersen.net: did not receive HSTS header
arnesolutions.com: could not connect to host
@@ -1104,7 +1244,6 @@ aroundme.org: did not receive HSTS header
arpa.ph: did not receive HSTS header
arpr.co: did not receive HSTS header
arrayify.com: could not connect to host
-arresttracker.com: could not connect to host
arrivedconsulting.com: could not connect to host
arrow-cloud.nl: could not connect to host
arrowfunction.com: could not connect to host
@@ -1112,19 +1251,28 @@ arrowgrove.com: could not connect to host
ars-design.net: could not connect to host
arsenal.ru: could not connect to host
arsk1.com: could not connect to host
+arswb.men: could not connect to host
art2web.net: could not connect to host
artaronquieres.com: did not receive HSTS header
artartefatos.com.br: could not connect to host
artbytik.ru: did not receive HSTS header
+artea.ga: could not connect to host
+arteaga.co.uk: could not connect to host
+arteaga.eu: could not connect to host
+arteaga.me: could not connect to host
+arteaga.tech: could not connect to host
+arteaga.uk: could not connect to host
+arteaga.xyz: could not connect to host
artegusto.ru: did not receive HSTS header
artemicroway.com.br: could not connect to host
arteseideias.com.pt: did not receive HSTS header
artesupra.com: did not receive HSTS header
arthan.me: could not connect to host
+arthur.cn: could not connect to host
+arti-group.ml: max-age too low: 2592000
articaexports.com: could not connect to host
artifex21.com: did not receive HSTS header
artifex21.fr: did not receive HSTS header
-artificial.army: could not connect to host
artiming.com: could not connect to host
artisanhd.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
artisavotins.com: could not connect to host
@@ -1137,10 +1285,9 @@ arto.bg: did not receive HSTS header
artofeyes.nl: could not connect to host
artsinthevalley.net.au: did not receive HSTS header
artstopinc.com: did not receive HSTS header
-arturkohut.com: could not connect to host
artyland.ru: could not connect to host
arvamus.eu: could not connect to host
-arvindhariharan.me: did not receive HSTS header
+arxell.com: did not receive HSTS header
arzaroth.com: did not receive HSTS header
as.se: could not connect to host
as9178.net: could not connect to host
@@ -1158,33 +1305,34 @@ ashleakunowski.com: could not connect to host
ashleyadum.com: could not connect to host
ashleyfoley.photography: could not connect to host
ashleymedway.com: could not connect to host
+asian-archi.com.tw: did not receive HSTS header
asianbet77.co: did not receive HSTS header
asianbet77.net: did not receive HSTS header
+asianodor.com: could not connect to host
+asiesvenezuela.com: did not receive HSTS header
asisee.co.il: could not connect to host
-ask.fedoraproject.org: did not receive HSTS header
ask.pe: could not connect to host
-ask.stg.fedoraproject.org: could not connect to host
askfit.cz: did not receive HSTS header
askmagicconch.com: could not connect to host
asm-x.com: could not connect to host
-asmm.cc: did not receive HSTS header
+asmik-armenie.com: did not receive HSTS header
asmui.ga: could not connect to host
asmui.ml: could not connect to host
asoftwareco.com: did not receive HSTS header
asphaltfruehling.de: could not connect to host
-asphyxia.su: could not connect to host
asral7.com: could not connect to host
asryflorist.com: could not connect to host
ass.org.au: could not connect to host
-assadrivesloirecher.com: could not connect to host
+assadrivesloirecher.com: did not receive HSTS header
assdecoeur.org: could not connect to host
assekuranzjobs.de: could not connect to host
asset-alive.com: did not receive HSTS header
-asset-alive.net: did not receive HSTS header
+asset-alive.net: could not connect to host
assetsupervision.com: could not connect to host
assindia.nl: could not connect to host
+assistcart.com: could not connect to host
assurancesmons.be: did not receive HSTS header
-astaninki.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+astaninki.com: could not connect to host
asthon.cn: could not connect to host
astraalivankila.net: could not connect to host
astral.gq: did not receive HSTS header
@@ -1198,9 +1346,10 @@ astutr.co: could not connect to host
asuhe.cc: could not connect to host
asuhe.win: did not receive HSTS header
asuhe.xyz: could not connect to host
-async.be: max-age too low: 0
-at-one.ca: could not connect to host
+async.be: could not connect to host
at1.co: could not connect to host
+ataber.pw: could not connect to host
+atacadodesandalias.com.br: could not connect to host
atacadooptico.com.br: could not connect to host
atavio.at: could not connect to host
atavio.ch: could not connect to host
@@ -1208,25 +1357,30 @@ atavio.de: could not connect to host
atbeckett.com: did not receive HSTS header
atcreform.gov: did not receive HSTS header
atelier-rk.com: did not receive HSTS header
-atelier-viennois-cannes.fr: did not receive HSTS header
+atelier-viennois-cannes.fr: could not connect to host
ateliernihongo.ch: did not receive HSTS header
ateliersantgervasi.com: did not receive HSTS header
+ath0.org: max-age too low: 600
athaliasoft.com: could not connect to host
athenelive.com: could not connect to host
-athensbusinessresources.us: did not receive HSTS header
+athensbusinessresources.us: could not connect to host
athi.pl: did not receive HSTS header
athul.xyz: could not connect to host
+atk.me: could not connect to host
atkdesign.pt: did not receive HSTS header
atlas-5.site: could not connect to host
atlas-staging.ml: could not connect to host
+atlas.co: did not receive HSTS header
atlassian.net: did not receive HSTS header
atlayo.com: did not receive HSTS header
atlex.nl: did not receive HSTS header
atlseccon.com: did not receive HSTS header
+atmocdn.com: could not connect to host
atomic.menu: could not connect to host
atomik.pro: did not receive HSTS header
atop.io: could not connect to host
atracaosexshop.com.br: could not connect to host
+atrevillot.com: could not connect to host
attic118.com: could not connect to host
attimidesigns.com: did not receive HSTS header
attogproductions.com: did not receive HSTS header
@@ -1239,6 +1393,7 @@ audiovisualdevices.com.au: did not receive HSTS header
audividi.shop: did not receive HSTS header
aufmerksamkeitsstudie.com: could not connect to host
aufprise.de: did not receive HSTS header
+augaware.org: could not connect to host
augenblicke-blog.de: could not connect to host
augias.org: could not connect to host
augix.net: could not connect to host
@@ -1249,7 +1404,7 @@ aurainfosec.com: did not receive HSTS header
aurainfosec.com.au: did not receive HSTS header
auraredeye.com: could not connect to host
auraredshield.com: could not connect to host
-aurora-terraria.org: did not receive HSTS header
+aurora-terraria.org: could not connect to host
aurorarecordings.com: could not connect to host
auroratownshipfd.org: could not connect to host
aurugs.com: did not receive HSTS header
@@ -1258,7 +1413,7 @@ auskunftsbegehren.at: did not receive HSTS header
auslandsjahr-usa.de: did not receive HSTS header
ausnah.me: could not connect to host
ausschreibungen-suedtirol.it: did not receive HSTS header
-aussiecable.org: did not receive HSTS header
+aussiecable.org: could not connect to host
aussiehq.com.au: did not receive HSTS header
aussiewebmarketing.com.au: did not receive HSTS header
austinmobilemechanics.net: did not receive HSTS header
@@ -1273,8 +1428,8 @@ authint.com: could not connect to host
authland.com: could not connect to host
author24.ru: did not receive HSTS header
authoritynutrition.com: did not receive HSTS header
+authorsguild.in: did not receive HSTS header
authsrv.nl.eu.org: could not connect to host
-autism-osaka.org: could not connect to host
auto-serwis.zgorzelec.pl: could not connect to host
auto3d.cn: could not connect to host
auto4trade.nl: could not connect to host
@@ -1283,12 +1438,12 @@ autobedrijfschalkoort.nl: did not receive HSTS header
autocarparts.ro: could not connect to host
autodeploy.it: could not connect to host
autoecolebudget.ch: did not receive HSTS header
-autoecoledumontblanc.com: did not receive HSTS header
+autoecoledumontblanc.com: could not connect to host
autoeet.cz: did not receive HSTS header
autojuhos.sk: could not connect to host
automobiles5.com: could not connect to host
autos-retro-plaisir.com: did not receive HSTS header
-autosearch.me: could not connect to host
+autosearch.me: did not receive HSTS header
autosiero.nl: did not receive HSTS header
autostock.me: could not connect to host
autostop-occasions.be: could not connect to host
@@ -1300,23 +1455,25 @@ auvious.com: did not receive HSTS header
auxetek.se: could not connect to host
auxiliumincrementum.co.uk: could not connect to host
av.de: did not receive HSTS header
+av01.tv: could not connect to host
av163.cc: could not connect to host
avadatravel.com: did not receive HSTS header
-avalon-island.ru: could not connect to host
avantmfg.com: did not receive HSTS header
avaq.fr: did not receive HSTS header
avastantivirus.ro: did not receive HSTS header
-avdelivers.com: could not connect to host
+avdelivers.com: did not receive HSTS header
avdh.top: could not connect to host
avec-ou-sans-ordonnance.fr: could not connect to host
aveling-adventure.co.uk: did not receive HSTS header
avg.club: did not receive HSTS header
-avi9526.pp.ua: could not connect to host
aviacao.pt: did not receive HSTS header
avidcruiser.com: did not receive HSTS header
aviodeals.com: could not connect to host
avitres.com: could not connect to host
+avmemo.com: could not connect to host
avmo.pw: could not connect to host
+avmoo.com: could not connect to host
+avnet.ws: could not connect to host
avonlearningcampus.com: could not connect to host
avso.pw: could not connect to host
avspot.net: could not connect to host
@@ -1324,6 +1481,7 @@ avus-automobile.com: did not receive HSTS header
avxo.pw: could not connect to host
awan.tech: could not connect to host
awanderlustadventure.com: did not receive HSTS header
+awccanadianpharmacy.com: could not connect to host
awei.pub: could not connect to host
awf0.xyz: could not connect to host
awg-mode.de: did not receive HSTS header
@@ -1337,36 +1495,42 @@ axel-fischer.science: could not connect to host
axelchv.fr: could not connect to host
axem.co.jp: did not receive HSTS header
axeny.com: did not receive HSTS header
-axfr.it: did not receive HSTS header
+axfr.it: could not connect to host
axg.io: did not receive HSTS header
axialsports.com: did not receive HSTS header
axiumacademy.com: did not receive HSTS header
+axolotlfarm.org: could not connect to host
axolsoft.com: max-age too low: 10540800
+axtux.tk: could not connect to host
axxial.tk: could not connect to host
ayahuascaadvisor.com: could not connect to host
+ayamchikchik.com: could not connect to host
ayatk.com: did not receive HSTS header
+aymericlagier.com: could not connect to host
+ayon.group: could not connect to host
ayor.jp: could not connect to host
ayor.tech: could not connect to host
ayuru.info: could not connect to host
-az-moga.bg: could not connect to host
az-vinyl-boden.de: could not connect to host
-azabani.com: did not receive HSTS header
azamra.com: did not receive HSTS header
azia.info: could not connect to host
azino777.ru: could not connect to host
azirevpn.com: did not receive HSTS header
azlo.com: did not receive HSTS header
azprep.us: could not connect to host
+azun.pl: did not receive HSTS header
+azuxul.fr: could not connect to host
b-entropy.com: could not connect to host
b-pi.duckdns.org: could not connect to host
b-rickroll-e.pw: could not connect to host
-b-space.de: did not receive HSTS header
+b-space.de: could not connect to host
b1236.com: could not connect to host
+b2and.com: could not connect to host
b2b-nestle.com.br: could not connect to host
b2bpromoteit.com: did not receive HSTS header
b3orion.com: could not connect to host
-b72.com: could not connect to host
-b72.net: could not connect to host
+b422edu.com: could not connect to host
+b61688.com: could not connect to host
b8a.me: could not connect to host
b9520.com: could not connect to host
b9568.com: could not connect to host
@@ -1377,6 +1541,10 @@ b9930.com: could not connect to host
b99520.com: could not connect to host
b9970.com: could not connect to host
b9980.com: could not connect to host
+b99881.com: could not connect to host
+b99882.com: could not connect to host
+b99883.com: could not connect to host
+b99885.com: could not connect to host
b9winner.com: could not connect to host
babelfisch.eu: could not connect to host
babursahvizeofisi.com: could not connect to host
@@ -1388,7 +1556,7 @@ babyhouse.xyz: could not connect to host
babyliss-pro.com: could not connect to host
babyliss-pro.net: did not receive HSTS header
babysaying.me: could not connect to host
-babystep.tv: could not connect to host
+babystep.tv: did not receive HSTS header
bacchanallia.com: could not connect to host
bacimg.com: did not receive HSTS header
back-bone.nl: did not receive HSTS header
@@ -1396,7 +1564,10 @@ backenmachtgluecklich.de: max-age too low: 2592000
backgroundchecks.online: did not receive HSTS header
backgroundz.net: could not connect to host
backintomotionphysiotherapy.com: did not receive HSTS header
+backlogapp.io: could not connect to host
+backpacken.org: could not connect to host
backscattering.de: did not receive HSTS header
+backupsinop.com.br: did not receive HSTS header
backyardbbqbash.com: did not receive HSTS header
baconate.com: did not receive HSTS header
bad.show: could not connect to host
@@ -1404,10 +1575,12 @@ badai.at: could not connect to host
badbee.cc: could not connect to host
badcronjob.com: could not connect to host
badenhard.eu: could not connect to host
+badgirlsbible.com: could not connect to host
badkamergigant.com: could not connect to host
badlink.org: could not connect to host
baff.lu: could not connect to host
bagiobella.com: max-age too low: 0
+baglu.com: did not receive HSTS header
baiduaccount.com: could not connect to host
baildonhottubs.co.uk: could not connect to host
bair.io: could not connect to host
@@ -1416,19 +1589,23 @@ baito-j.jp: did not receive HSTS header
baixoutudo.com: did not receive HSTS header
bajic.ch: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
bakabt.info: could not connect to host
+bakanin.ru: could not connect to host
bakaweb.fr: could not connect to host
bakhansen.com: did not receive HSTS header
bakkerdesignandbuild.com: did not receive HSTS header
bakxnet.com: could not connect to host
balatoni-nyar.hu: did not receive HSTS header
balcan-underground.net: could not connect to host
+baldur.cc: could not connect to host
baldwinkoo.com: could not connect to host
baleares.party: could not connect to host
balenciaspa.com: did not receive HSTS header
balihai.com: did not receive HSTS header
-balilingo.ooo: did not receive HSTS header
+balilingo.ooo: could not connect to host
+ballarin.cc: could not connect to host
ballbusting-cbt.com: could not connect to host
balloonphp.com: could not connect to host
+balnearionaturaspa.com: did not receive HSTS header
balonmano.co: could not connect to host
bals.org: did not receive HSTS header
balticer.de: did not receive HSTS header
@@ -1439,18 +1616,22 @@ bananabandy.com: could not connect to host
bananensap.nl: did not receive HSTS header
bananium.fr: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
banbanchs.com: could not connect to host
+banburybid.com: could not connect to host
banchethai.com: could not connect to host
bandally.net: could not connect to host
bandar303.cc: did not receive HSTS header
bandar303.id: did not receive HSTS header
+bandar303.win: did not receive HSTS header
bandarifamily.com: could not connect to host
-bandb.xyz: could not connect to host
-bandrcrafts.com: did not receive HSTS header
+bandb.xyz: did not receive HSTS header
+bandrcrafts.com: could not connect to host
banduhn.com: did not receive HSTS header
bangdream.ga: could not connect to host
bangzafran.com: did not receive HSTS header
bank: could not connect to host
bankcircle.co.in: could not connect to host
+bankersonline.com: did not receive HSTS header
+bankitt.network: could not connect to host
bankmilhas.com.br: did not receive HSTS header
bankofrealty.review: could not connect to host
banksaround.com: did not receive HSTS header
@@ -1459,42 +1640,48 @@ banqingdiao.com: could not connect to host
banri.me: could not connect to host
banxehoi.com: did not receive HSTS header
baosuckhoedoisong.net: could not connect to host
+baptistboard.com: did not receive HSTS header
baptiste-destombes.fr: did not receive HSTS header
baraxolka.ru: could not connect to host
-barbershop-harmony.org: could not connect to host
+barcouniforms.com: did not receive HSTS header
bardiel.de: max-age too low: 0
-bardiharborow.com: did not receive HSTS header
barely.sexy: could not connect to host
bargainmovingcompany.com: could not connect to host
bariller.fr: did not receive HSTS header
barisi.me: could not connect to host
+barnrats.com: could not connect to host
baropkamp.be: did not receive HSTS header
barprive.com: could not connect to host
barqo.co: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
barracuda.blog: could not connect to host
barrelhead.org: could not connect to host
-barrett.ag: did not receive HSTS header
+barrett.ag: 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
+bartelldrugs.com: did not receive HSTS header
barunisystems.com: could not connect to host
+bascht.com: did not receive HSTS header
basculasconfiables.com: could not connect to host
bashc.at: could not connect to host
bashcode.ninja: could not connect to host
basicsolutionsus.com: could not connect to host
+basilicaknights.org: could not connect to host
basilisk.io: could not connect to host
basilm.co: could not connect to host
+basketsbymaurice.com: did not receive HSTS header
baskettemple.com: did not receive HSTS header
basnieuwenhuizen.nl: did not receive HSTS header
bassh.net: did not receive HSTS header
batfoundry.com: could not connect to host
+batonger.com: did not receive HSTS header
+batten.eu.org: could not connect to host
+batteryservice.ru: did not receive HSTS header
baud.ninja: could not connect to host
baudairenergyservices.com: could not connect to host
baum.ga: did not receive HSTS header
baumstark.ca: could not connect to host
-bayer-stefan.com: could not connect to host
-bayerstefan.com: could not connect to host
bayinstruments.com: could not connect to host
bayrisch-fuer-anfaenger.de: did not receive HSTS header
baysse.eu: did not receive HSTS header
@@ -1503,6 +1690,7 @@ bazisszoftver.hu: could not connect to host
bb-shiokaze.jp: did not receive HSTS header
bbb1991.me: could not connect to host
bbdos.ru: could not connect to host
+bbj.io: did not receive HSTS header
bbkanews.com: did not receive HSTS header
bblovess.cn: could not connect to host
bbrinck.eu: could not connect to host
@@ -1513,23 +1701,29 @@ bbwfacesitting.us: could not connect to host
bbwfacesitting.xyz: could not connect to host
bbwfight.xyz: could not connect to host
bbwteens.org: could not connect to host
+bc416.com: did not receive HSTS header
+bc418.com: did not receive HSTS header
+bc419.com: did not receive HSTS header
bcbsmagentprofile.com: could not connect to host
bcchack.com: could not connect to host
bccx.com: could not connect to host
bcheng.cf: did not receive HSTS header
bckp.de: could not connect to host
bcm.com.au: did not receive HSTS header
-bcnet.hk: did not receive HSTS header
+bcmlu.org: could not connect to host
+bcnet.hk: could not connect to host
bcodeur.com: did not receive HSTS header
bcradio.org: could not connect to host
bcsytv.com: could not connect to host
bcweightlifting.ca: could not connect to host
+bdata.cl: could not connect to host
bddemir.com: could not connect to host
bde-epitech.fr: could not connect to host
bdenzer.com: did not receive HSTS header
bdenzer.xyz: could not connect to host
bdsmxxxpics.com: could not connect to host
be-real.life: did not receive HSTS header
+be9966.com: could not connect to host
beach-inspector.com: did not receive HSTS header
beachi.es: could not connect to host
beaglewatch.com: could not connect to host
@@ -1542,6 +1736,7 @@ beardydave.com: did not receive HSTS header
beasel.biz: could not connect to host
beastlog.tk: could not connect to host
beastowner.com: did not receive HSTS header
+beautyconcept.co: did not receive HSTS header
beavers.io: could not connect to host
bebeefy.uk: could not connect to host
bebesurdoue.com: could not connect to host
@@ -1553,6 +1748,7 @@ bedeta.de: could not connect to host
bedouille.com: could not connect to host
bedreid.dk: did not receive HSTS header
bedrijvenadministratie.nl: could not connect to host
+beelen.fr: could not connect to host
beerboutique.com.br: could not connect to host
beermedlar.com: could not connect to host
beersandco.ch: could not connect to host
@@ -1562,7 +1758,6 @@ beforesunrise.de: did not receive HSTS header
befundup.com: could not connect to host
begcykel.com: did not receive HSTS header
behere.be: could not connect to host
-beholdthehurricane.com: could not connect to host
beier.io: could not connect to host
beikeil.de: did not receive HSTS header
beingmad.org: did not receive HSTS header
@@ -1579,13 +1774,16 @@ belwederczykow.eu: could not connect to host
bemcorp.de: did not receive HSTS header
bemvindoaolar.com.br: did not receive HSTS header
bemyvictim.com: max-age too low: 2678400
-ben-energy.com: could not connect to host
bendechrai.com: did not receive HSTS header
+benedikt-tuchen.de: did not receive HSTS header
benediktdichgans.de: did not receive HSTS header
beneffy.com: did not receive HSTS header
benevisim.com: could not connect to host
+benevita.life: could not connect to host
+benevita.live: could not connect to host
benevita.organic: could not connect to host
benfairclough.com: could not connect to host
+benhchuyenkhoa.net: could not connect to host
benjakesjohnson.com: could not connect to host
benjamin-horvath.com: could not connect to host
benjamin-suess.de: could not connect to host
@@ -1594,23 +1792,28 @@ benk.press: could not connect to host
benny003.de: could not connect to host
benohead.com: did not receive HSTS header
bentphotos.se: could not connect to host
-benwattie.com: could not connect to host
+benwattie.com: did not receive HSTS header
benzkosmetik.de: did not receive HSTS header
benzou-space.com: could not connect to host
beourvictim.com: max-age too low: 2678400
bep.gov: did not receive HSTS header
bep362.vn: could not connect to host
beraru.tk: could not connect to host
+beraten-entwickeln-steuern.de: could not connect to host
berdu.id: did not receive HSTS header
-berduri.com: could not connect to host
+berduri.com: did not receive HSTS header
+beretech.fr: could not connect to host
berger.work: could not connect to host
+bergfex.at: did not receive HSTS header
bergland-seefeld.at: did not receive HSTS header
+bergstoneware.com: could not connect to host
berhampore-gateway.tk: could not connect to host
berlatih.com: did not receive HSTS header
berlin-kohlefrei.de: could not connect to host
berlinleaks.com: could not connect to host
bermytraq.bm: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
bernexskiclub.ch: did not receive HSTS header
+bernieware.de: could not connect to host
berrymark.be: did not receive HSTS header
berseb.se: could not connect to host
berthelier.me: could not connect to host
@@ -1624,11 +1827,11 @@ besixdouze.world: could not connect to host
beslider.com: could not connect to host
besnik.de: could not connect to host
besola.de: could not connect to host
-best-wedding-quotes.com: did not receive HSTS header
+best-wedding-quotes.com: could not connect to host
bestattorney.com: did not receive HSTS header
-bestbatteriesonline.com: could not connect to host
bestbeards.ca: could not connect to host
bestbestbitcoin.com: could not connect to host
+bestbonuses.co.uk: did not receive HSTS header
bestellipticalmachinereview.info: could not connect to host
bestfitnesswatchreview.info: could not connect to host
besthost.cz: did not receive HSTS header
@@ -1645,7 +1848,7 @@ betaclean.fr: did not receive HSTS header
betafive.net: could not connect to host
betakah.net: could not connect to host
betamint.org: did not receive HSTS header
-betcafearena.ro: could not connect to host
+betcafearena.ro: did not receive HSTS header
betformular.com: could not connect to host
bethditto.com: did not receive HSTS header
betkoo.com: could not connect to host
@@ -1653,7 +1856,6 @@ betnet.fr: could not connect to host
betonmoney.com: could not connect to host
betplanning.it: did not receive HSTS header
bets.de: did not receive HSTS header
-bets.gg: did not receive HSTS header
betshoot.com: could not connect to host
betsonlinefree.com.au: could not connect to host
betterlifemakers.com: max-age too low: 200
@@ -1662,15 +1864,18 @@ betz.ro: could not connect to host
beulahtabernacle.com: could not connect to host
bevapehappy.com: did not receive HSTS header
bewerbungsfibel.de: did not receive HSTS header
+bewertet.de: could not connect to host
bexit-hosting.nl: could not connect to host
bexit-security.eu: could not connect to host
bexit-security.nl: could not connect to host
+bexithosting.nl: could not connect to host
bey.io: could not connect to host
beylikduzum.com: 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
beyuna.nl: did not receive HSTS header
+bez-energie.de: could not connect to host
bezoomnyville.com: could not connect to host
bezorg.ninja: could not connect to host
bezprawnik.pl: did not receive HSTS header
@@ -1682,10 +1887,14 @@ bfear.com: could not connect to host
bfelob.gov: could not connect to host
bffm.biz: could not connect to host
bfrailwayclub.cf: could not connect to host
+bg16.de: could not connect to host
bgcparkstad.nl: did not receive HSTS header
bgdaddy.com: did not receive HSTS header
+bgenlisted.com: could not connect to host
+bgfashion.net: could not connect to host
bgneuesheim.de: did not receive HSTS header
bhatia.at: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+biancolievito.it: did not receive HSTS header
bianinapiccanovias.com: could not connect to host
biaoqingfuhao.net: did not receive HSTS header
biaoqingfuhao.org: did not receive HSTS header
@@ -1696,6 +1905,7 @@ bichines.es: did not receive HSTS header
bichonfrise.com.br: could not connect to host
bichonmaltes.com.br: could not connect to host
bidon.ca: did not receive HSTS header
+bidorbuy.co.ke: did not receive HSTS header
bieberium.de: could not connect to host
biego.cn: did not receive HSTS header
bielsa.me: did not receive HSTS header
@@ -1709,33 +1919,32 @@ bigbounceentertainment.co.uk: could not connect to host
bigbrownpromotions.com.au: did not receive HSTS header
bigcorporateevents.com: could not connect to host
bigerbio.com: could not connect to host
+bigfunbouncycastles.com: could not connect to host
biglagoonrentals.com: did not receive HSTS header
-biglou.com: max-age too low: 3153600
bigshinylock.minazo.net: could not connect to host
+bigshort.org: could not connect to host
biguixhe.net: could not connect to host
+bijoux.com.br: could not connect to host
bijouxdegriffe.com.br: could not connect to host
bijugeral.com.br: could not connect to host
bikelifetvkidsquads.co.uk: could not connect to host
bikermusic.net: could not connect to host
bilanligne.com: did not receive HSTS header
bildermachr.de: could not connect to host
-biletru.net: could not connect to host
biletua.de: could not connect to host
biletyplus.com: could not connect to host
biletyplus.ru: did not receive HSTS header
bill-nye-the.science: did not receive HSTS header
billdestler.com: did not receive HSTS header
-billgoldstein.name: did not receive HSTS header
billigssl.dk: did not receive HSTS header
-billin.net: did not receive HSTS header
billkiss.com: could not connect to host
billninja.com: did not receive HSTS header
billrobinson.io: could not connect to host
billrusling.com: could not connect to host
binam.center: could not connect to host
+binarization.net: could not connect to host
binarization.org: did not receive HSTS header
binaryabstraction.com: could not connect to host
-binarycreations.scot: could not connect to host
binaryfigments.com: max-age too low: 86400
binderapp.net: could not connect to host
bingcheung.com: could not connect to host
@@ -1751,34 +1960,40 @@ bioespuna.eu: did not receive HSTS header
biofam.ru: did not receive HSTS header
bioknowme.com: did not receive HSTS header
biologis.ch: could not connect to host
+biomax-mep.com.br: did not receive HSTS header
bionicspirit.com: did not receive HSTS header
biophysik-ssl.de: did not receive HSTS header
biopreferred.gov: could not connect to host
+biospeak.solutions: could not connect to host
biou.me: could not connect to host
biovalue.eu: could not connect to host
bip.gov.sa: could not connect to host
birdandbranchnyc.com: max-age too low: 43200
+birkengarten.ch: could not connect to host
birkman.com: did not receive HSTS header
+bischoff-mathey.family: could not connect to host
biscuits-rec.com: could not connect to host
biscuits-shop.com: could not connect to host
bismarck.moe: did not receive HSTS header
bisterfeldt.com: did not receive HSTS header
biswas.me: could not connect to host
-bit.biz.tr: could not connect to host
bitace.com: did not receive HSTS header
bitbit.org: did not receive HSTS header
-bitbr.net: did not receive HSTS header
+bitbr.net: could not connect to host
bitcantor.com: did not receive HSTS header
bitchan.it: could not connect to host
bitcoin-casino-no-deposit-bonus.com: max-age too low: 0
bitcoin-class.com: could not connect to host
bitcoin-daijin.com: could not connect to host
+bitcoin.com: did not receive HSTS header
bitcoinec.info: could not connect to host
+bitcoinfo.jp: did not receive HSTS header
bitcoinhk.org: did not receive HSTS header
bitcoinjpn.com: could not connect to host
bitcoinprivacy.net: did not receive HSTS header
bitcoinworld.me: could not connect to host
bitconcepts.co.uk: could not connect to host
+bitedge.com: did not receive HSTS header
bitenose.net: could not connect to host
bitenose.org: could not connect to host
biteoftech.com: did not receive HSTS header
@@ -1788,22 +2003,24 @@ bitfarm-archiv.com: did not receive HSTS header
bitfarm-archiv.de: did not receive HSTS header
bitheus.com: could not connect to host
bithosting.io: did not receive HSTS header
+bitk.uk: could not connect to host
bitmain.com.ua: could not connect to host
bitmaincare.com.ua: could not connect to host
bitmaincare.ru: could not connect to host
+bitmainwarranty.com.ua: could not connect to host
+bitmainwarranty.ru: could not connect to host
bitmex.com: did not receive HSTS header
bitmexin.com: could not connect to host
-bitmoe.com: did not receive HSTS header
-bitmon.net: did not receive HSTS header
bitnet.io: did not receive HSTS header
bitplay.space: could not connect to host
bitpod.de: could not connect to host
+bitpoll.de: could not connect to host
+bitpoll.org: could not connect to host
bitrage.de: could not connect to host
bitraum.io: could not connect to host
-bitroll.com: did not receive HSTS header
+bitroll.com: could not connect to host
bitsafe.systems: did not receive HSTS header
bitsensor.io: did not receive HSTS header
-bitskins.co: did not receive HSTS header
bitstep.ca: could not connect to host
bittervault.xyz: could not connect to host
bituptick.com: did not receive HSTS header
@@ -1812,30 +2029,32 @@ bitvigor.com: could not connect to host
bitwrought.net: could not connect to host
bityes.org: could not connect to host
bivsi.com: could not connect to host
-bizcms.com: did not receive HSTS header
+bizcms.com: could not connect to host
+bizedge.co.nz: did not receive HSTS header
bizon.sk: did not receive HSTS header
bizpare.com: did not receive HSTS header
-bizzartech.com: could not connect to host
+bizzartech.com: did not receive HSTS header
bizzybeebouncers.co.uk: could not connect to host
bjgongyi.com: could not connect to host
+bjrn.io: could not connect to host
bjtxl.cn: could not connect to host
+bk-wife.com: could not connect to host
bkb-skandal.ch: could not connect to host
-bklaindia.com: could not connect to host
black-armada.com: could not connect to host
black-armada.com.pl: could not connect to host
black-armada.pl: could not connect to host
-black-khat.com: could not connect to host
+black-gay-porn.biz: could not connect to host
black-octopus.ru: could not connect to host
+blackapron.com.br: could not connect to host
blackberrycentral.com: could not connect to host
blackburn.link: could not connect to host
+blackdesertsp.com: could not connect to host
blackdiam.net: did not receive HSTS header
-blackl.net: could not connect to host
blacklane.com: did not receive HSTS header
blacklightparty.be: could not connect to host
blackly.uk: max-age too low: 0
-blackmagic.sk: did not receive HSTS header
+blackmagic.sk: could not connect to host
blackmirror.com.au: did not receive HSTS header
-blacknova.io: could not connect to host
blackpayment.ru: did not receive HSTS header
blackphantom.de: could not connect to host
blackscreen.me: could not connect to host
@@ -1851,12 +2070,12 @@ blendlecdn.com: could not connect to host
blenheimchalcot.com: did not receive HSTS header
blessnet.jp: did not receive HSTS header
blha303.com.au: could not connect to host
+blikund.swedbank.se: did not receive HSTS header
blindaryproduction.tk: could not connect to host
blindsexdate.nl: did not receive HSTS header
blinkenlight.co.uk: could not connect to host
blinkenlight.com.au: could not connect to host
blmiller.com: did not receive HSTS header
-blockchainced.com: could not connect to host
blocksatz-medien.de: could not connect to host
blockshopauto.com: could not connect to host
blog-ritaline.com: could not connect to host
@@ -1865,15 +2084,15 @@ blog.cyveillance.com: did not receive HSTS header
blog.gparent.org: could not connect to host
blog.torproject.org: max-age too low: 1000
blogabout.ru: could not connect to host
-blogarts.net: did not receive HSTS header
blogdieconomia.it: did not receive HSTS header
blogdimoda.com: did not receive HSTS header
blogdimotori.it: did not receive HSTS header
-bloglife-bb.com: did not receive HSTS header
+bloglife-bb.com: could not connect to host
bloglikepro.com: could not connect to host
blognone.com: did not receive HSTS header
blognr.com: could not connect to host
blogonblogspot.com: did not receive HSTS header
+blok56.nl: did not receive HSTS header
blokino.org: did not receive HSTS header
blokuhaka.fr: did not receive HSTS header
bloodyexcellent.com: did not receive HSTS header
@@ -1887,17 +2106,20 @@ blucas.org: did not receive HSTS header
blue17.co.uk: did not receive HSTS header
bluebill.net: did not receive HSTS header
bluecon.eu: did not receive HSTS header
-bluefinger.nl: could not connect to host
+bluedata.ltd: could not connect to host
+bluefinger.nl: did not receive HSTS header
blueglobalmedia.com: could not connect to host
bluehawk.cloud: did not receive HSTS header
blueliv.com: did not receive HSTS header
-bluemosh.com: could not connect to host
-blueoakart.com: could not connect to host
+bluemoonroleplaying.com: could not connect to host
bluepoint.foundation: could not connect to host
bluepoint.institute: could not connect to host
+blueridgesecuritycameras.com: did not receive HSTS header
bluescloud.xyz: could not connect to host
+bluesecure.com.br: did not receive HSTS header
bluetenmeer.com: did not receive HSTS header
bluezonehealth.co.uk: did not receive HSTS header
+blui.cf: max-age too low: 1209600
bluketing.com: did not receive HSTS header
blumen-binder.ch: did not receive HSTS header
blumen-garage.de: could not connect to host
@@ -1906,6 +2128,7 @@ blunderify.se: did not receive HSTS header
bluop.com: did not receive HSTS header
bluserv.net: could not connect to host
bluteklab.com: did not receive HSTS header
+blutopia.xyz: did not receive HSTS header
blutroyal.de: could not connect to host
blvdmb.com: did not receive HSTS header
bm-i.ch: could not connect to host
@@ -1913,12 +2136,15 @@ bm-immo.ch: could not connect to host
bm-trading.nl: did not receive HSTS header
bmet.de: did not receive HSTS header
bmoattachments.org: did not receive HSTS header
+bnb-buddy.nl: could not connect to host
+bnboy.cn: could not connect to host
bngsecure.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
bnhlibrary.com: did not receive HSTS header
board-buy.ru: could not connect to host
bobaobei.net: could not connect to host
bobaobei.org: could not connect to host
-bobiji.com: did not receive HSTS header
+bobep.ru: could not connect to host
+boboates.com: did not receive HSTS header
bodo-wolff.de: could not connect to host
bodrumfarm.com: could not connect to host
bodyblog.nl: did not receive HSTS header
@@ -1927,22 +2153,25 @@ bodybuilding.events: could not connect to host
bodyweightsolution.com: could not connect to host
boel073.nl: did not receive HSTS header
boensou.com: did not receive HSTS header
-bogosity.se: could not connect to host
bohaishibei.com: did not receive HSTS header
+bohan.co: could not connect to host
bohan.life: could not connect to host
bohyn.cz: could not connect to host
boiadeirodeberna.com: could not connect to host
boilesen.com: did not receive HSTS header
bokeyy.com: could not connect to host
bolainfoasia.com: did not receive HSTS header
+bolivarfm.com.ve: did not receive HSTS header
boltdata.io: could not connect to host
boltn.uk: did not receive HSTS header
-bolwerk.com.br: could not connect to host
+bolwerk.com.br: did not receive HSTS header
bomberus.de: could not connect to host
bombsquad.studio: could not connect to host
bonamihome.ro: could not connect to host
bonapp.restaurant: could not connect to host
+bondagefetishstore.com: could not connect to host
bondtofte.dk: did not receive HSTS header
+boneko.de: did not receive HSTS header
bonigo.de: did not receive HSTS header
bonitabrazilian.co.nz: did not receive HSTS header
bonnin.fr: did not receive HSTS header
@@ -1958,30 +2187,36 @@ bookingentertainment.com: did not receive HSTS header
bookmakersfreebets.com.au: could not connect to host
bookofraonlinecasinos.com: could not connect to host
bookreport.ga: could not connect to host
+bookwitty.social: could not connect to host
boomerang.com: did not receive HSTS header
boomsaki.com: did not receive HSTS header
boomsakis.com: did not receive HSTS header
boosterlearnpro.com: did not receive HSTS header
-boostgame.win: could not connect to host
boote.wien: did not receive HSTS header
booter.es: could not connect to host
booth.in.th: could not connect to host
bootikexpress.fr: did not receive HSTS header
boozinyan.com: could not connect to host
bopera.co.uk: could not connect to host
+borchers-media.de: could not connect to host
+borchers.ninja: did not receive HSTS header
borderlinegroup.com: could not connect to host
+borgmestervangen.xyz: could not connect to host
boringsecurity.net: could not connect to host
-boris.one: did not receive HSTS header
+boris.one: could not connect to host
borisavstankovic.rs: could not connect to host
borisbesemer.com: could not connect to host
born-to-learn.com: did not receive HSTS header
borrelioz.com: did not receive HSTS header
borscheid-wenig.com: did not receive HSTS header
boschee.net: could not connect to host
+botlab.ch: could not connect to host
+botmanager.pl: could not connect to host
botox.bz: did not receive HSTS header
+bots.cat: could not connect to host
boueki.jp: did not receive HSTS header
boueki.org: did not receive HSTS header
-boukoubengo.com: did not receive HSTS header
+bouk.co: could not connect to host
bounce-r-us.co.uk: did not receive HSTS header
bounceboxspc.com: did not receive HSTS header
bouncecoffee.com: did not receive HSTS header
@@ -1991,6 +2226,7 @@ bouncemasters.co.uk: could not connect to host
bouncing4joy.co.uk: could not connect to host
bouncingbuzzybees.co.uk: could not connect to host
bouncycastleandparty.co.uk: could not connect to host
+bouncycastlehireauckland.co.nz: could not connect to host
bouncycastlehiremedway.com: did not receive HSTS header
bouwbedrijfpurmerend.nl: did not receive HSTS header
bowlsheet.com: did not receive HSTS header
@@ -2004,11 +2240,13 @@ boxlitepackaging.com: did not receive HSTS header
boxview.com: could not connect to host
boyan.in: could not connect to host
boyfriendhusband.men: did not receive HSTS header
-bozemancarpetcleaningservices.com: could not connect to host
+boypoint.de: could not connect to host
+bozemancarpetcleaningservices.com: did not receive HSTS header
bp-wahl.at: did not receive HSTS header
bpadvisors.eu: could not connect to host
bqcp.net: could not connect to host
bqtoolbox.com: could not connect to host
+braemer-it-consulting.de: could not connect to host
bragasoft.com.br: did not receive HSTS header
bragaweb.com.br: could not connect to host
brainbuxa.com: did not receive HSTS header
@@ -2025,7 +2263,6 @@ brainvation.de: did not receive HSTS header
brakstad.org: could not connect to host
bran.cc: could not connect to host
bran.soy: could not connect to host
-branchtrack.com: did not receive HSTS header
branchzero.com: did not receive HSTS header
brand-foo.com: did not receive HSTS header
brand-foo.jp: did not receive HSTS header
@@ -2038,12 +2275,12 @@ brandred.net: could not connect to host
brandspray.com: could not connect to host
brasilien.guide: could not connect to host
brasilmorar.com: did not receive HSTS header
-bratteng.xyz: did not receive HSTS header
bravz.de: could not connect to host
brb.city: did not receive HSTS header
breatheav.com: did not receive HSTS header
breatheproduction.com: did not receive HSTS header
breeswish.org: did not receive HSTS header
+bremensaki.com: max-age too low: 2592000
brenden.net.au: could not connect to host
bress.cloud: could not connect to host
brettcornwall.com: did not receive HSTS header
@@ -2055,15 +2292,19 @@ brickwerks.io: could not connect to host
brickyardbuffalo.com: did not receive HSTS header
bridgeout.com: could not connect to host
bridholm.se: could not connect to host
+briggsleroux.com: did not receive HSTS header
brightfuturemadebyme.com: could not connect to host
brightstarkids.co.uk: did not receive HSTS header
brightstarkids.com.au: did not receive HSTS header
brightstarkids.net: did not receive HSTS header
brightstarkids.sg: did not receive HSTS header
+brigittebutt.tk: could not connect to host
brilliantbuilders.co.uk: did not receive HSTS header
+brilliantdecisionmaking.com: did not receive HSTS header
brimspark.com: could not connect to host
brinkhu.is: could not connect to host
brinkmann.one: could not connect to host
+brinquedoseducativos.art.br: did not receive HSTS header
brio-ukraine.store: could not connect to host
britishmeat.com: could not connect to host
britzer-toner.de: did not receive HSTS header
@@ -2071,18 +2312,22 @@ brivadois.ovh: did not receive HSTS header
brix.ninja: did not receive HSTS header
brks.xyz: could not connect to host
brmascots.com: could not connect to host
-brmsalescommunity.com: could not connect to host
broerweb.nl: could not connect to host
broken-oak.com: could not connect to host
brookechase.com: did not receive HSTS header
brookframework.org: could not connect to host
+brossman.it: could not connect to host
+brouwerijkoelit.nl: did not receive HSTS header
brownlawoffice.us: did not receive HSTS header
browserid.org: could not connect to host
brplusdigital.com: could not connect to host
brrd.io: could not connect to host
brrr.fr: could not connect to host
-brunix.net: did not receive HSTS header
+brunix.net: could not connect to host
brunoonline.co.uk: could not connect to host
+brunoramos.com: could not connect to host
+brunoramos.org: could not connect to host
+brunosouza.org: could not connect to host
bryancastillo.site: could not connect to host
bryanshearer.accountant: did not receive HSTS header
bryn.xyz: could not connect to host
@@ -2095,10 +2340,14 @@ bsdtips.com: could not connect to host
bsdug.org: could not connect to host
bsklabels.com: did not receive HSTS header
bsktweetup.info: could not connect to host
-bsociabl.com: could not connect to host
bsohoekvanholland.nl: could not connect to host
-bsquared.org: could not connect to host
bsuess.de: could not connect to host
+bt78.cn: did not receive HSTS header
+bt85.cn: did not receive HSTS header
+bt9.cc: did not receive HSTS header
+bt96.cn: did not receive HSTS header
+bt995.com: did not receive HSTS header
+btaoke.com: could not connect to host
btc-e.com: did not receive HSTS header
btcdlc.com: could not connect to host
btcgo.nl: did not receive HSTS header
@@ -2114,10 +2363,10 @@ buchheld.at: could not connect to host
buchverlag-scholz.de: did not receive HSTS header
bucket.tk: could not connect to host
buckmulligans.com: did not receive HSTS header
-buddhistische-weisheiten.org: did not receive HSTS header
+buddhistische-weisheiten.org: could not connect to host
budgetenergievriendenvoordeel.nl: could not connect to host
budgetthostels.nl: did not receive HSTS header
-budskap.eu: did not receive HSTS header
+budskap.eu: could not connect to host
buenosairesestetica.com.ar: could not connect to host
buenotour.ru: did not receive HSTS header
buettgens.net: max-age too low: 2592000
@@ -2139,24 +2388,26 @@ buildsaver.co.za: did not receive HSTS header
builmaker.com: did not receive HSTS header
built.by: did not receive HSTS header
buka.jp: could not connect to host
+bukai.men: did not receive HSTS header
bukatv.cz: could not connect to host
-bulbgenie.com: could not connect to host
buldogueingles.com.br: could not connect to host
bulgarien.guide: could not connect to host
bulkbuy.tech: could not connect to host
bullbits.com: max-age too low: 0
+bulldoghire.co.uk: did not receive HSTS header
bulletbabu.com: could not connect to host
bulletpoint.cz: could not connect to host
bullterrier.me: could not connect to host
bulmafox.com: could not connect to host
bulmastife.com.br: could not connect to host
+bumarkamoda.com: could not connect to host
bumshow.ru: did not receive HSTS header
bunadarbankinn.is: could not connect to host
bunaken.asia: could not connect to host
bunbomenu.de: could not connect to host
+bundaberg.com: did not receive HSTS header
bunsenlabs.org: max-age too low: 2592000
buonventosbt.eu: did not receive HSTS header
-bupu.ml: did not receive HSTS header
burckardtnet.de: did not receive HSTS header
bureaubolster.nl: did not receive HSTS header
bureaugravity.com: did not receive HSTS header
@@ -2182,12 +2433,13 @@ businessloanconnection.org: did not receive HSTS header
businessmodeler.se: could not connect to host
bustabit.com: could not connect to host
bustimes.org.uk: did not receive HSTS header
-busybee360.com: did not receive HSTS header
+busybee360.com: could not connect to host
butchersworkshop.com: did not receive HSTS header
butian518.com: did not receive HSTS header
butt.repair: could not connect to host
buttercoin.com: could not connect to host
butterfieldstraining.com: could not connect to host
+buttermilk.cf: could not connect to host
buturyu.org: did not receive HSTS header
buvinghausen.com: max-age too low: 86400
buybaby.eu: could not connect to host
@@ -2195,7 +2447,7 @@ buybike.shop: could not connect to host
buydesired.com: did not receive HSTS header
buyessay.org: could not connect to host
buyessays.net: could not connect to host
-buyfox.de: did not receive HSTS header
+buyfox.de: could not connect to host
buyharpoon.com: could not connect to host
buyingsellingflorida.com: could not connect to host
buynowdepot.com: did not receive HSTS header
@@ -2208,15 +2460,24 @@ bvexplained.co.uk: could not connect to host
bvionline.eu: did not receive HSTS header
bw81.xyz: could not connect to host
bwear4all.de: could not connect to host
+bwin86.com: did not receive HSTS header
+bwin8601.com: did not receive HSTS header
+bwin8602.com: did not receive HSTS header
+bwin8603.com: did not receive HSTS header
+bwin8604.com: did not receive HSTS header
+bwin8605.com: did not receive HSTS header
+bwin8606.com: did not receive HSTS header
+bwwb.nu: could not connect to host
bx-web.com: did not receive HSTS header
bxdev.me: could not connect to host
by1896.com: could not connect to host
by1898.com: could not connect to host
by1899.com: could not connect to host
by4cqb.cn: could not connect to host
-by77.com: could not connect to host
+by77.com: did not receive HSTS header
by777.com: did not receive HSTS header
byji.com: could not connect to host
+byken.cn: did not receive HSTS header
bynet.cz: could not connect to host
bypass.kr: could not connect to host
bypassed.bid: could not connect to host
@@ -2238,17 +2499,17 @@ bypassed.today: could not connect to host
bypassed.works: could not connect to host
bypassed.world: could not connect to host
bypro.xyz: could not connect to host
-byronwade.com: could not connect to host
+byronwade.com: max-age too low: 7889238
byte.chat: did not receive HSTS header
byte.wtf: did not receive HSTS header
bytelog.org: could not connect to host
-bytepen.com: could not connect to host
bytesatwork.eu: could not connect to host
byteshift.ca: could not connect to host
bytesofcode.de: could not connect to host
bytesund.biz: could not connect to host
byteturtle.eu: did not receive HSTS header
byurudraw.pics: could not connect to host
+bzhub.bid: did not receive HSTS header
c-rickroll-v.pw: could not connect to host
c12discountonline.com: did not receive HSTS header
c16t.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -2258,35 +2519,40 @@ c2o2.xyz: could not connect to host
c3-compose.com: could not connect to host
c3.pm: could not connect to host
c3b.info: could not connect to host
-c3bbs.com: did not receive HSTS header
+c3bbs.com: could not connect to host
c3ie.com: did not receive HSTS header
c4.hk: could not connect to host
-cabaladada.org: could not connect to host
cabsites.com: could not connect to host
cabusar.fr: could not connect to host
+cachethq.io: did not receive HSTS header
caconnect.org: could not connect to host
cadao.me: did not receive HSTS header
cadburymovies.in.net: could not connect to host
cadenadg.gr: did not receive HSTS header
-cadre.com: could not connect to host
caerostris.com: could not connect to host
caesreon.com: could not connect to host
-cafe-murr.de: could not connect to host
+cafe-murr.de: did not receive HSTS header
cafe-scientifique.org.ec: could not connect to host
+cafe-service.ru: could not connect to host
cafechesscourt.com: could not connect to host
+cafefresco.pe: did not receive HSTS header
caferagazzi.de: did not receive HSTS header
cafesg.net: could not connect to host
+caibi.io: could not connect to host
caim.cz: did not receive HSTS header
caipai.fm: could not connect to host
cairnterrier.com.br: could not connect to host
-cajapopcorn.com: did not receive HSTS header
+cais.de: did not receive HSTS header
+cajapopcorn.com: could not connect to host
+cake-time.co.uk: could not connect to host
cake.care: could not connect to host
cal.goip.de: could not connect to host
calcularpagerank.com.br: could not connect to host
calculatoaresecondhand.xyz: could not connect to host
-calebmorris.com: could not connect to host
+calebmorris.com: did not receive HSTS header
calgaryconstructionjobs.com: did not receive HSTS header
callabs.net: could not connect to host
+callanbryant.co.uk: did not receive HSTS header
calleveryday.com: could not connect to host
callision.com: did not receive HSTS header
callmereda.com: did not receive HSTS header
@@ -2296,6 +2562,7 @@ calomel.org: max-age too low: 2764800
calories.org: could not connect to host
caltonnutrition.com: did not receive HSTS header
calvin.me: did not receive HSTS header
+calypso-tour.net: could not connect to host
calypsogames.net: could not connect to host
calyxinstitute.org: could not connect to host
camashop.de: did not receive HSTS header
@@ -2306,6 +2573,7 @@ camda.online: could not connect to host
camisadotorcedor.com.br: could not connect to host
camjackson.net: did not receive HSTS header
cammarkets.com: could not connect to host
+camomile.desi: could not connect to host
campaignelves.com: did not receive HSTS header
campbellsoftware.co.uk: could not connect to host
campfire.co.il: did not receive HSTS header
@@ -2313,8 +2581,8 @@ campfourpaws.com: did not receive HSTS header
campingcarlovers.com: could not connect to host
campingdreams.com: did not receive HSTS header
campus-cybersecurity.team: did not receive HSTS header
-campusportalng.com: did not receive HSTS header
camsanalytics.com: could not connect to host
+camshowhub.com: could not connect to host
canadiangamblingchoice.com: did not receive HSTS header
canarianlegalalliance.com: did not receive HSTS header
cancelmyprofile.com: could not connect to host
@@ -2325,14 +2593,15 @@ candygirl.shop: could not connect to host
candykidsentertainment.co.uk: did not receive HSTS header
canifis.net: did not receive HSTS header
cannarobotics.com: could not connect to host
-canterbury.ws: did not receive HSTS header
+canterbury.ws: could not connect to host
canyonshoa.com: did not receive HSTS header
caodecristachines.com.br: could not connect to host
caoyu.info: did not receive HSTS header
+capacitacionyautoempleo.com: did not receive HSTS header
capecycles.co.za: did not receive HSTS header
capeyorkfire.com.au: did not receive HSTS header
-capitalonecardservice.com: did not receive HSTS header
-caps.is: could not connect to host
+capitalonecardservice.com: could not connect to host
+captainark.net: could not connect to host
captchatheprize.com: could not connect to host
captianseb.de: could not connect to host
captivatedbytabrett.com: could not connect to host
@@ -2340,20 +2609,21 @@ captivationscience.com: could not connect to host
captivationtheory.com: could not connect to host
capturethepen.co.uk: could not connect to host
car-navi.ph: did not receive HSTS header
-car-rental24.com: could not connect to host
+car-rental24.com: did not receive HSTS header
car-shop.top: did not receive HSTS header
carano-service.de: did not receive HSTS header
caraudio69.cz: could not connect to host
card-cashing.com: max-age too low: 0
-card-toka.jp: did not receive HSTS header
+card-toka.jp: could not connect to host
cardloan-manual.net: could not connect to host
cardoni.net: did not receive HSTS header
cardstream.com: did not receive HSTS header
cardurl.com: did not receive HSTS header
+cardwars.hu: could not connect to host
careeraid.in: could not connect to host
careerstuds.com: could not connect to host
careplasticsurgery.com: did not receive HSTS header
-carey.bio: could not connect to host
+carey.bio: did not receive HSTS header
carif-idf.net: did not receive HSTS header
carif-idf.org: did not receive HSTS header
carlgo11.com: did not receive HSTS header
@@ -2365,7 +2635,9 @@ carloshmm.stream: could not connect to host
carlovanwyk.com: could not connect to host
carlsbouncycastlesandhottubs.co.uk: did not receive HSTS header
carlscatering.com: did not receive HSTS header
-carpliyz.com: could not connect to host
+carol-lambert.com: could not connect to host
+caroli.biz: could not connect to host
+carpliyz.com: did not receive HSTS header
carrando.de: could not connect to host
carredejardin.com: could not connect to host
carroarmato0.be: did not receive HSTS header
@@ -2376,6 +2648,7 @@ carterorland.com: could not connect to host
cartesunicef.be: did not receive HSTS header
carun.us: did not receive HSTS header
carwashvapeur.be: could not connect to host
+casadellecose.com: did not receive HSTS header
casajardininsecticidas.com: did not receive HSTS header
casamorelli.com.br: did not receive HSTS header
casashopp.com.br: could not connect to host
@@ -2387,35 +2660,29 @@ cashfortulsahouses.com: could not connect to host
cashless.fr: did not receive HSTS header
cashmyphone.ch: could not connect to host
cashsector.ga: could not connect to host
-casinolegal.pt: did not receive HSTS header
casinolistings.com: could not connect to host
casinoluck.com: could not connect to host
casinoreal.com: could not connect to host
casinostest.com: could not connect to host
+casionova.org: did not receive HSTS header
casioshop.eu: did not receive HSTS header
-casjay.cloud: did not receive HSTS header
-casjay.us: could not connect to host
-casjaygames.com: could not connect to host
casovi.cf: could not connect to host
caspicards.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
castagnonavocats.com: did not receive HSTS header
-castlejackpot.com: could not connect to host
-casusgrillcaribbean.com: could not connect to host
cata.ga: could not connect to host
-catalin.pw: could not connect to host
+catalin.pw: did not receive HSTS header
catarsisvr.com: could not connect to host
-catchers.cc: did not receive HSTS header
catcontent.cloud: could not connect to host
caterkids.com: did not receive HSTS header
catgirl.me: could not connect to host
catgirl.pics: could not connect to host
catharisme.org: could not connect to host
+catherineidylle.com: max-age too low: 0
catherinesarasin.com: did not receive HSTS header
-catinmay.com: could not connect to host
+catinmay.com: did not receive HSTS header
catnapstudios.com: could not connect to host
catnmeow.com: could not connect to host
catsmagic.pp.ua: could not connect to host
-caughtredhanded.co.nz: could not connect to host
causae-fincas.es: did not receive HSTS header
causae.es: did not receive HSTS header
cavaleria.ro: did not receive HSTS header
@@ -2424,11 +2691,14 @@ caveclan.org: did not receive HSTS header
cavedevs.de: could not connect to host
cavedroid.xyz: could not connect to host
cavern.tv: did not receive HSTS header
+cayafashion.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
cayounglab.co.jp: did not receive HSTS header
+cazes.info: did not receive HSTS header
cbamo.org: did not receive HSTS header
cbengineeringinc.com: max-age too low: 86400
cbhq.net: could not connect to host
cbi-epa.gov: could not connect to host
+cc2729.com: did not receive HSTS header
ccayearbook.com: could not connect to host
ccblog.de: did not receive HSTS header
ccl-sti.ch: could not connect to host
@@ -2438,7 +2708,6 @@ cctld.com: could not connect to host
ccv.eu: did not receive HSTS header
cd0.us: could not connect to host
cdcpartners.gov: could not connect to host
-cdeck.net: could not connect to host
cdkeyworld.de: did not receive HSTS header
cdmhp.org.nz: could not connect to host
cdmon.tech: could not connect to host
@@ -2451,19 +2720,17 @@ cdt.org: did not receive HSTS header
ce-agentur.de: did not receive HSTS header
cecilwalker.com.au: did not receive HSTS header
cee.io: could not connect to host
-cefak.org.br: could not connect to host
+cefak.org.br: did not receive HSTS header
cegfw.com: could not connect to host
ceilingpac.org: could not connect to host
+cekaja.com: did not receive HSTS header
celebphotos.blog: could not connect to host
-celebrityhealthcritic.com: did not receive HSTS header
celec.gob.ec: could not connect to host
celeirorural.com.br: did not receive HSTS header
celigo.com: did not receive HSTS header
celina-reads.de: could not connect to host
cellartracker.com: could not connect to host
cellsites.nz: could not connect to host
-cem.pw: could not connect to host
-cemeteriat.com: did not receive HSTS header
cencalvia.org: could not connect to host
centennialrewards.com: did not receive HSTS header
centerforpolicy.org: could not connect to host
@@ -2476,10 +2743,13 @@ centralvacsunlimited.net: did not receive HSTS header
centralvoice.org: could not connect to host
centralync.com: could not connect to host
centrepoint-community.com: could not connect to host
+centricbeats.com: did not receive HSTS header
+centrodoinstalador.com.br: did not receive HSTS header
centrolavoro.org: did not receive HSTS header
centsforchange.net: could not connect to host
ceoimon.com: did not receive HSTS header
cercevelet.com: did not receive HSTS header
+ceres1.space: did not receive HSTS header
ceresia.ch: could not connect to host
ceritamalam.net: could not connect to host
cerize.love: could not connect to host
@@ -2492,22 +2762,27 @@ certifix.eu: did not receive HSTS header
certly.io: could not connect to host
certmgr.org: could not connect to host
ceruleanmainbeach.com.au: did not receive HSTS header
+cervejista.com: could not connect to host
cesal.net: could not connect to host
cesidianroot.eu: could not connect to host
cevrimici.com: could not connect to host
+cf-tm.net: could not connect to host
cf11.de: did not receive HSTS header
cfcnexus.org: could not connect to host
cfcproperties.com: did not receive HSTS header
cfetengineering.com: could not connect to host
cfneia.org: could not connect to host
cfoitplaybook.com: could not connect to host
+cfsh.tk: could not connect to host
cganx.org: could not connect to host
cgerstner.eu: did not receive HSTS header
cgsshelper.tk: could not connect to host
cgtx.us: could not connect to host
+chabaojia.com: did not receive HSTS header
chadklass.com: could not connect to host
chahub.com: could not connect to host
chainmonitor.com: could not connect to host
+chaldeen.pro: did not receive HSTS header
chalker.io: could not connect to host
challengeskins.com: could not connect to host
chameleon-ents.co.uk: could not connect to host
@@ -2516,18 +2791,22 @@ chamilo.org: did not receive HSTS header
champ.dog: did not receive HSTS header
championnat-romand-cuisiniers-amateurs.ch: could not connect to host
championsofregnum.com: did not receive HSTS header
-chancat.blog: did not receive HSTS header
+chancat.blog: could not connect to host
chandlerredding.com: could not connect to host
changelab.cc: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
changetip.com: did not receive HSTS header
channelcards.com: did not receive HSTS header
-channellife.asia: could not connect to host
+channellife.asia: did not receive HSTS header
+channellife.co.nz: did not receive HSTS header
+channellife.com.au: did not receive HSTS header
channyc.com: did not receive HSTS header
+chanoyu-gakkai.jp: could not connect to host
chanshiyu.com: did not receive HSTS header
chaos.fail: could not connect to host
chaospott.de: did not receive HSTS header
chaoswebs.net: did not receive HSTS header
chaouby.com: could not connect to host
+charakato.com: could not connect to host
charge.co: could not connect to host
chargejuice.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
charityclear.com: could not connect to host
@@ -2540,7 +2819,6 @@ charnleyhouse.co.uk: did not receive HSTS header
charonsecurity.com: could not connect to host
charp.eu: could not connect to host
chartstoffarm.de: did not receive HSTS header
-chasafilli.ch: could not connect to host
chaseganey.com: did not receive HSTS header
chasing-coins.com: did not receive HSTS header
chaska.co.za: did not receive HSTS header
@@ -2548,6 +2826,7 @@ chasse-et-plaisir.com: did not receive HSTS header
chat-porc.eu: did not receive HSTS header
chatbot.me: did not receive HSTS header
chatbots.email: could not connect to host
+chateau-belvoir.com: did not receive HSTS header
chateauconstellation.ch: did not receive HSTS header
chateaudevaugrigneuse.com: did not receive HSTS header
chatint.com: did not receive HSTS header
@@ -2557,23 +2836,27 @@ chatxp.com: could not connect to host
chaulootz.com: did not receive HSTS header
chaverde.org: could not connect to host
chcemvediet.sk: max-age too low: 1555200
+chdgaming.xyz: could not connect to host
cheah.xyz: could not connect to host
cheapdns.org: could not connect to host
-cheapssl.com.tr: could not connect to host
+cheapssl.com.tr: did not receive HSTS header
+cheapwritinghelp.com: could not connect to host
cheapwritingservice.com: could not connect to host
cheazey.net: did not receive HSTS header
chebedara.com: could not connect to host
chebwebb.com: could not connect to host
checkhost.org: could not connect to host
-checkmatewebsolutions.com: did not receive HSTS header
+checkmatewebsolutions.com: max-age too low: 0
checkout.google.com: could not connect to host (error ignored - included regardless)
-checkyourmeds.com: did not receive HSTS header
+checkyourmeds.com: could not connect to host
cheekylittlerascals.co.uk: did not receive HSTS header
cheerflow.com: could not connect to host
+cheesefusion.com: could not connect to host
cheesetart.my: could not connect to host
cheesypicsbooths.co.uk: could not connect to host
cheetah85.de: could not connect to host
chefgalles.com.br: could not connect to host
+chehalemgroup.com: did not receive HSTS header
chejianer.cn: could not connect to host
chellame.com: could not connect to host
chellame.fr: could not connect to host
@@ -2589,12 +2872,17 @@ cherylsoleway.com: did not receive HSTS header
chessreporter.nl: did not receive HSTS header
chesterbrass.uk: did not receive HSTS header
chiamata-aiuto.ch: could not connect to host
+chiaramail.com: could not connect to host
chib.chat: could not connect to host
chicorycom.net: could not connect to host
chihiro.xyz: could not connect to host
chijiokeindustries.co.uk: could not connect to host
+chikan-beacon.net: could not connect to host
+chikatomo-ryugaku.com: did not receive HSTS header
+chikory.com: could not connect to host
childcaresolutionscny.org: did not receive HSTS header
childrendeservebetter.org: did not receive HSTS header
+childrens-room.com: did not receive HSTS header
chilli943.info: did not receive HSTS header
chimparoo.ca: did not receive HSTS header
china-dhl.org: could not connect to host
@@ -2602,24 +2890,29 @@ china-line.org: could not connect to host
chinternet.xyz: could not connect to host
chiphell.com: did not receive HSTS header
chirgui.eu: could not connect to host
-chiropracticwpb.com: could not connect to host
chloca.jp: did not receive HSTS header
chloe.re: did not receive HSTS header
chloeallison.co.uk: could not connect to host
+chloehorler.com: could not connect to host
chlouis.net: could not connect to host
chm.vn: did not receive HSTS header
+chmielarz.it: could not connect to host
chocolat-suisse.ch: could not connect to host
chodobien.com: could not connect to host
chodocu.com: did not receive HSTS header
+choe.fi: could not connect to host
choiralberta.ca: did not receive HSTS header
+chonghe.org: did not receive HSTS header
chontalpa.pw: could not connect to host
chopperforums.com: could not connect to host
-chordso.com: could not connect to host
+chordso.com: did not receive HSTS header
chorkley.me: could not connect to host
choruscrowd.com: could not connect to host
chotu.net: could not connect to host
chris-web.info: could not connect to host
chrisandsarahinasia.com: could not connect to host
+chrisb.me: did not receive HSTS header
+chrisb.xyz: did not receive HSTS header
chrisbrakebill.com: did not receive HSTS header
chrisbrown.id.au: could not connect to host
chrisebert.net: could not connect to host
@@ -2633,10 +2926,9 @@ christiaandruif.nl: could not connect to host
christianbro.gq: could not connect to host
christianhoffmann.info: could not connect to host
christianhospitaltank.org: did not receive HSTS header
-christianillies.de: could not connect to host
christiansayswords.com: could not connect to host
-christianscholz.eu: could not connect to host
-christina-quast.de: could not connect to host
+christianscholz.eu: did not receive HSTS header
+christina-quast.de: did not receive HSTS header
christophebarbezat.ch: could not connect to host
christophercolumbusfoundation.gov: could not connect to host
christophersole.com: could not connect to host
@@ -2644,6 +2936,7 @@ christophheich.me: did not receive HSTS header
chrisupjohn.com: could not connect to host
chrisupjohn.xyz: could not connect to host
chrisvicmall.com: did not receive HSTS header
+chriswbarry.com: did not receive HSTS header
chromaryu.net: could not connect to host
chromaxa.com: could not connect to host
chrome: could not connect to host
@@ -2652,8 +2945,10 @@ chrome.google.com: did not receive HSTS header (error ignored - included regardl
chronogram.me: did not receive HSTS header
chronoproject.com: did not receive HSTS header
chrst.ph: could not connect to host
-chs.us: max-age too low: 0
+chs.us: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+chsh.moe: could not connect to host
chua.cf: could not connect to host
+chua.family: did not receive HSTS header
chuckame.fr: did not receive HSTS header
chulado.com: did not receive HSTS header
chundelac.com: could not connect to host
@@ -2662,11 +2957,11 @@ churchwebcanada.ca: did not receive HSTS header
churchwebsupport.com: did not receive HSTS header
churrasqueirafacil.com.br: could not connect to host
ci-labo.com.tw: max-age too low: 7889238
+ci-suite.com: could not connect to host
cianmawhinney.xyz: could not connect to host
cidadedopoker.com.br: did not receive HSTS header
ciderclub.com: could not connect to host
cidr.ml: could not connect to host
-cielly.com: could not connect to host
cienbeaute-lidl.fr: could not connect to host
cigarblogs.net: could not connect to host
cigarterminal.com: could not connect to host
@@ -2676,6 +2971,7 @@ cim2b.de: could not connect to host
cimalando.eu: could not connect to host
cinartelorgu.com: did not receive HSTS header
cinefilia.tk: could not connect to host
+cinelite.club: could not connect to host
cinema5.ru: did not receive HSTS header
cinemaclub.co: could not connect to host
cinerama.com.br: did not receive HSTS header
@@ -2683,6 +2979,7 @@ cintdirect.com: could not connect to host
cioconference.co.nz: did not receive HSTS header
cipher.co.th: did not receive HSTS header
cipher.land: could not connect to host
+cipherboy.com: could not connect to host
cipherli.st: did not receive HSTS header
ciplanutrition.com: could not connect to host
cipriano.nl: did not receive HSTS header
@@ -2694,24 +2991,24 @@ ciscohomeanalytics.com: could not connect to host
ciscommerce.net: could not connect to host
citiagent.cz: could not connect to host
citra-emu.org: did not receive HSTS header
+citroner.blog: could not connect to host
citybusexpress.com: did not receive HSTS header
+cityofeastpointemi.gov: could not connect to host
cityoflaurel.org: did not receive HSTS header
+cityofwadley-ga.gov: could not connect to host
citywalkr.com: could not connect to host
ciuciucadou.ro: could not connect to host
cium.ru: could not connect to host
-ciurcasdan.eu: did not receive HSTS header
civicunicorn.com: could not connect to host
civicunicorn.us: could not connect to host
cjcaron.org: could not connect to host
-cjdpenterprises.com: could not connect to host
-cjdpenterprises.com.au: could not connect to host
cjessett.com: max-age too low: 0
cjtkfan.club: could not connect to host
ckcameron.net: could not connect to host
ckp.io: could not connect to host
claimit.ml: could not connect to host
clan-ww.com: did not receive HSTS header
-clapping-rhymes.com: did not receive HSTS header
+clapping-rhymes.com: could not connect to host
clara-baumert.de: could not connect to host
claralabs.com: did not receive HSTS header
claretandbanter.uk: could not connect to host
@@ -2725,7 +3022,6 @@ classicshop.ua: did not receive HSTS header
classicspublishing.com: could not connect to host
classifiedssa.co.za: could not connect to host
claster.it: did not receive HSTS header
-claude.tech: could not connect to host
claudearpel.fr: did not receive HSTS header
claudio4.com: did not receive HSTS header
claytoncondon.com: could not connect to host
@@ -2737,7 +3033,6 @@ cleanstar.org: could not connect to host
clear.ml: could not connect to host
clearc.tk: could not connect to host
clearchatsandbox.com: could not connect to host
-clearkonjac.com: could not connect to host
clearsky.me: did not receive HSTS header
clearviewwealthprojector.com.au: could not connect to host
clemovementlaw.com: could not connect to host
@@ -2751,8 +3046,9 @@ click2order.co.uk: did not receive HSTS header
clickandgo.com: did not receive HSTS header
clickandshoot.nl: could not connect to host
clickclickphish.com: did not receive HSTS header
+clickforclever.com: did not receive HSTS header
clickgram.biz: could not connect to host
-clickomobile.com: could not connect to host
+clickomobile.com: did not receive HSTS header
clicks.co.za: max-age too low: 1800
clicktenisdemesa.com.br: did not receive HSTS header
clicn.bio: could not connect to host
@@ -2762,12 +3058,14 @@ clinia.ca: did not receive HSTS header
clinicaferrusbratos.com: did not receive HSTS header
clinicasilos.com: did not receive HSTS header
cliniko.com: did not receive HSTS header
+cliniquecomplementaire.com: could not connect to host
clintonbloodworth.com: could not connect to host
clintonbloodworth.io: could not connect to host
clintwilson.technology: max-age too low: 2592000
clipped4u.com: could not connect to host
clod-hacking.com: could not connect to host
cloghercastles.co.uk: did not receive HSTS header
+clorik.com: could not connect to host
closient.com: did not receive HSTS header
closingholding.com: could not connect to host
cloud-crowd.com.au: did not receive HSTS header
@@ -2782,9 +3080,9 @@ cloudbleed.info: could not connect to host
cloudcert.org: did not receive HSTS header
cloudcy.net: could not connect to host
clouddesktop.co.nz: could not connect to host
-cloudfiles.at: could not connect to host
cloudfren.com: did not receive HSTS header
cloudimag.es: could not connect to host
+cloudimproved.com: could not connect to host
cloudimprovedtest.com: could not connect to host
cloudlink.club: could not connect to host
cloudmigrator365.com: did not receive HSTS header
@@ -2808,9 +3106,12 @@ clownish.co.il: could not connect to host
clsimplex.com: did not receive HSTS header
clubcall.com: did not receive HSTS header
clubdeslecteurs.net: could not connect to host
+clubmate.rocks: could not connect to host
clubmix.co.kr: could not connect to host
+cluefulca.com: could not connect to host
+cluefulca.net: could not connect to host
+cluefulca.org: could not connect to host
cluj.apartments: could not connect to host
-cluster.biz.tr: could not connect to host
cluster.id: could not connect to host
clvrwebdesign.com: did not receive HSTS header
clvs7.com: did not receive HSTS header
@@ -2821,9 +3122,10 @@ cmc-versand.de: did not receive HSTS header
cmcc.network: could not connect to host
cmci.dk: did not receive HSTS header
cmdtelecom.net.br: did not receive HSTS header
+cmitao.com: could not connect to host
cmpr.es: could not connect to host
cmrss.com: could not connect to host
-cms-weble.jp: did not receive HSTS header
+cms-weble.jp: could not connect to host
cmsbattle.com: could not connect to host
cmscafe.ru: did not receive HSTS header
cmskh.co.uk: could not connect to host
@@ -2833,19 +3135,21 @@ cnaprograms.online: could not connect to host
cncfraises.fr: did not receive HSTS header
cncn.us: did not receive HSTS header
cnetw.xyz: could not connect to host
-cnitdog.com: did not receive HSTS header
+cnitdog.com: could not connect to host
cnlic.com: could not connect to host
cnrd.me: did not receive HSTS header
cnsyear.com: did not receive HSTS header
cnwage.com: could not connect to host
cnwarn.com: could not connect to host
-co-driversphoto.se: could not connect to host
+co-driversphoto.se: did not receive HSTS header
co-yutaka.com: could not connect to host
coach-sportif.paris: did not receive HSTS header
coachingconsultancy.com: did not receive HSTS header
+coam.co: could not connect to host
coathangerstrangla.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
coathangerstrangler.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
cobaltlp.com: could not connect to host
+cobcode.com: could not connect to host
cobrax.net: could not connect to host
coccinellaskitchen.com: could not connect to host
coccinellaskitchen.de: could not connect to host
@@ -2856,9 +3160,10 @@ cockerspanielamericano.com.br: could not connect to host
cockerspanielingles.com.br: could not connect to host
cocktailfuture.fr: could not connect to host
coco-cool.fr: could not connect to host
+cocodemy.com: did not receive HSTS header
cocolovesdaddy.com: could not connect to host
codabix.com: did not receive HSTS header
-codabix.de: could not connect to host
+codabix.de: did not receive HSTS header
codabix.net: could not connect to host
code-35.com: could not connect to host
code-digsite.com: could not connect to host
@@ -2870,11 +3175,10 @@ codecontrollers.de: could not connect to host
codedelarouteenligne.fr: did not receive HSTS header
codeforce.io: could not connect to host
codeforhakodate.org: did not receive HSTS header
-codejunkie.de: did not receive HSTS header
codelayer.ca: could not connect to host
codelitmus.com: did not receive HSTS header
codeloop.pw: could not connect to host
-codelove.de: could not connect to host
+codelove.de: did not receive HSTS header
codemonkeyrawks.net: did not receive HSTS header
codemperium.com: could not connect to host
codenlife.xyz: could not connect to host
@@ -2883,6 +3187,7 @@ codeplay.org: could not connect to host
codepoet.de: did not receive HSTS header
codeproxy.ddns.net: could not connect to host
codepx.com: did not receive HSTS header
+codercy.com: could not connect to host
coderhangout.com: could not connect to host
codewiththepros.org: could not connect to host
codewiz.xyz: could not connect to host
@@ -2893,18 +3198,19 @@ coffeeetc.co.uk: could not connect to host
coffeestrategies.com: max-age too low: 5184000
cogniflex.com: did not receive HSTS header
cogumelosmagicos.org: could not connect to host
-cohesive.io: could not connect to host
+cohesive.io: did not receive HSTS header
coin-exchange.cz: could not connect to host
coindam.com: could not connect to host
-coins2001.ru: could not connect to host
+coinessa.com: could not connect to host
colarelli.ch: could not connect to host
+coldaddy.com: could not connect to host
coldlostsick.net: could not connect to host
coldwatericecream.com: did not receive HSTS header
colearnr.com: could not connect to host
collablynk.com: could not connect to host
collabra.email: did not receive HSTS header
collard.tk: could not connect to host
-collectiblebeans.com: could not connect to host
+collbox.co: did not receive HSTS header
collectosaurus.com: did not receive HSTS header
colleencornez.com: could not connect to host
collegepulse.org: could not connect to host
@@ -2918,15 +3224,18 @@ colmexpro.com: did not receive HSTS header
colognegaming.net: could not connect to host
coloradocomputernetworking.net: could not connect to host
colorcentertoner.com.br: did not receive HSTS header
+coloringnotebook.com: could not connect to host
colorlib.com: did not receive HSTS header
colorunhas.com.br: did not receive HSTS header
-coltonrb.com: could not connect to host
com.cc: could not connect to host
combatshield.cz: did not receive HSTS header
comchezmeme.com: could not connect to host
-comefollowme2016.com: did not receive HSTS header
+comdotgame.com: could not connect to host
+comefollowme2016.com: could not connect to host
comeoncolleen.com: did not receive HSTS header
comercialtrading.eu: could not connect to host
+cometonovascotia.ca: could not connect to host
+cometrueunlimited.com: could not connect to host
comfortdom.ua: did not receive HSTS header
comfortticket.de: did not receive HSTS header
comfy.cafe: could not connect to host
@@ -2938,16 +3247,18 @@ comicspines.com: could not connect to host
comiq.io: could not connect to host
comitesaustria.at: could not connect to host
comiteshopping.com: could not connect to host
-commania.co.kr: could not connect to host
commencepayments.com: did not receive HSTS header
commerciallocker.com: could not connect to host
commercialplanet.eu: could not connect to host
commune-preuilly.fr: did not receive HSTS header
community-cupboard.org: did not receive HSTS header
-communityflow.info: could not connect to host
comocurarlagastritis24.online: did not receive HSTS header
comocurarlashemorroides.org: could not connect to host
comocurarlashemorroidesya.com: did not receive HSTS header
+comoimportar.net: did not receive HSTS header
+comorecuperaratumujerpdf.com: could not connect to host
+comosecarabarriga.net: did not receive HSTS header
+comoseduzir.net: did not receive HSTS header
comotalk.com: could not connect to host
compalytics.com: could not connect to host
comparamejor.com: did not receive HSTS header
@@ -2959,11 +3270,10 @@ compiledworks.com: could not connect to host
completesportperformance.com: did not receive HSTS header
completionist.audio: could not connect to host
complex-organization.com: could not connect to host
-compliance-systeme.de: could not connect to host
complt.xyz: could not connect to host
complymd.com: did not receive HSTS header
compredietlight.com.br: did not receive HSTS header
-comprefitasadere.com.br: did not receive HSTS header
+comprefitasadere.com.br: could not connect to host
comprehensiveihc.com: could not connect to host
compromised.com: could not connect to host
compsmag.com: did not receive HSTS header
@@ -2979,31 +3289,34 @@ concerts-metal.ch: did not receive HSTS header
conclave.global: could not connect to host
concord-group.co.jp: did not receive HSTS header
concretehermit.com: did not receive HSTS header
-conectalmeria.com: could not connect to host
+conectalmeria.com: did not receive HSTS header
confirm365.com: could not connect to host
+conflux.tw: could not connect to host
conformal.com: could not connect to host
-confucio.cl: could not connect to host
congz.me: could not connect to host
+conkret.ch: could not connect to host
conkret.co.uk: could not connect to host
conkret.eu: could not connect to host
conkret.in: did not receive HSTS header
+conkret.mobi: could not connect to host
connaitre-les-astres.com: did not receive HSTS header
-connect-me.com: did not receive HSTS header
connect.ua: could not connect to host
connected-verhuurservice.nl: did not receive HSTS header
connectfss.com: could not connect to host
connectingconcepts.com: did not receive HSTS header
-conpins.nl: could not connect to host
+conniesacademy.com: could not connect to host
+connorsmith.co: could not connect to host
conrad.am: could not connect to host
consciousandglamorous.com: could not connect to host
consciousbrand.org.au: could not connect to host
consciousbranding.org.au: could not connect to host
consciousbrands.net.au: could not connect to host
+conseil-gli.fr: did not receive HSTS header
consejosdehogar.com: did not receive HSTS header
console.python.org: did not receive HSTS header
console.support: did not receive HSTS header
+construct-trust.com: did not receive HSTS header
constructive.men: could not connect to host
-consultation.biz.tr: could not connect to host
consultcelerity.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
consultingroupitaly.com: did not receive HSTS header
consultorcr.net: did not receive HSTS header
@@ -3014,22 +3327,22 @@ contaimo.com: did not receive HSTS header
container-lion.com: did not receive HSTS header
containerstatistics.com: could not connect to host
contarkos.xyz: could not connect to host
+contents.ga: did not receive HSTS header
continuation.io: could not connect to host
continuumgaming.com: could not connect to host
contraout.com: could not connect to host
controlcenter.gigahost.dk: did not receive HSTS header
-controleer-maar-een-ander.nl: did not receive HSTS header
convergemagazine.com: did not receive HSTS header
convertimg.com: could not connect to host
convoitises.com: did not receive HSTS header
cooink.net: could not connect to host
cookiestudies.cf: could not connect to host
-cool110.tk: could not connect to host
-cool110.xyz: could not connect to host
+cookingbazart.com: did not receive HSTS header
coolaj86.com: did not receive HSTS header
coolbutbroken.com: did not receive HSTS header
coolchevy.org.ua: did not receive HSTS header
coole-meister.de: could not connect to host
+coolerssr.space: could not connect to host
cooljs.me: could not connect to host
coolkidsbouncycastles.co.uk: did not receive HSTS header
coolvox.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -3038,6 +3351,7 @@ cooxa.com: could not connect to host
copshop.com.br: could not connect to host
coptic-treasures.com: max-age too low: 2592000
copycaught.com: could not connect to host
+copytrack.com: did not receive HSTS header
cor-ser.es: could not connect to host
coralproject.net: did not receive HSTS header
coralrosado.com.br: did not receive HSTS header
@@ -3050,16 +3364,16 @@ coreapm.com: could not connect to host
corecdn.org: could not connect to host
coreinfrastructure.org: did not receive HSTS header
corenetworking.de: could not connect to host
+coresos.com: could not connect to host
corex.io: could not connect to host
corgicloud.com: could not connect to host
corinnanese.de: could not connect to host
-coriver.me: could not connect to host
+coriver.me: did not receive HSTS header
corkyoga.site: could not connect to host
cormactagging.ie: could not connect to host
cormilu.com.br: did not receive HSTS header
cornishcamels.com: did not receive HSTS header
cornmachine.com: did not receive HSTS header
-cornodo.com: could not connect to host
coroasdefloresonline.com.br: could not connect to host
corozanu.ro: did not receive HSTS header
corpoatletico.com.br: could not connect to host
@@ -3072,7 +3386,7 @@ corruption-mc.net: could not connect to host
corruption-rsps.net: could not connect to host
corruption-server.net: could not connect to host
corzntin.fr: could not connect to host
-cosmeticosnet.com.br: could not connect to host
+cosmeticosnet.com.br: did not receive HSTS header
cosmiatria.pe: could not connect to host
cosmoluziluminacion.com: did not receive HSTS header
cosmoss-departure.com: did not receive HSTS header
@@ -3083,8 +3397,10 @@ cougarsland.com: did not receive HSTS header
coughlan.de: did not receive HSTS header
counselling.network: could not connect to host
count.sh: could not connect to host
+countryoutlaws.ca: did not receive HSTS header
coup-dun-soir.ch: could not connect to host
couponcodeq.com: could not connect to host
+cour4g3.me: could not connect to host
couragewhispers.ca: could not connect to host
coursdeprogrammation.com: could not connect to host
course.pp.ua: did not receive HSTS header
@@ -3092,7 +3408,6 @@ course.rs: could not connect to host
coursella.com: did not receive HSTS header
courses.nl: could not connect to host
courseworkbank.info: could not connect to host
-cousincouples.com: max-age too low: 0
cove.sh: could not connect to host
covenantbank.net: could not connect to host
coverdat.com: could not connect to host
@@ -3103,10 +3418,11 @@ cozy.io: did not receive HSTS header
cozycloud.cc: did not receive HSTS header
cpaneltips.com: could not connect to host
cpbanq.com: could not connect to host
-cpu.biz.tr: could not connect to host
+cptoon.com: could not connect to host
cpuvinf.eu.org: could not connect to host
+cqchome.com: did not receive HSTS header
cracking.org: did not receive HSTS header
-crackingking.com: did not receive HSTS header
+crackingking.com: could not connect to host
crackpfer.de: could not connect to host
crackslut.eu: could not connect to host
craftbeerbarn.co.uk: could not connect to host
@@ -3115,17 +3431,17 @@ craftination.net: could not connect to host
craftmain.eu: could not connect to host
craftmine.cz: could not connect to host
craftngo.hu: could not connect to host
+craftwmcp.xyz: could not connect to host
craftydev.design: could not connect to host
-craigsimpson.scot: did not receive HSTS header
cranems.com.ua: could not connect to host
cranesafe.com: max-age too low: 7889238
cranioschule.com: did not receive HSTS header
-crashsec.com: could not connect to host
+crashsec.com: did not receive HSTS header
crate.io: did not receive HSTS header
cravelyrics.com: could not connect to host
crazifyngers.com: could not connect to host
crazy-crawler.de: did not receive HSTS header
-crazycen.com: did not receive HSTS header
+crazycen.com: could not connect to host
crazycraftland.de: did not receive HSTS header
crazycraftland.net: did not receive HSTS header
crazyfamily11.de: did not receive HSTS header
@@ -3134,23 +3450,29 @@ crazyker.com: did not receive HSTS header
crbug.com: did not receive HSTS header (error ignored - included regardless)
creaescola.com: did not receive HSTS header
creamybuild.com: could not connect to host
+create-ls.jp: could not connect to host
create-test-publish.co.uk: could not connect to host
creativeapple.ltd: did not receive HSTS header
creativeartifice.com: did not receive HSTS header
creativecommonscatpictures.com: could not connect to host
+creativefolks.co.uk: did not receive HSTS header
creativephysics.ml: could not connect to host
creativeplayuk.com: did not receive HSTS header
creato.top: could not connect to host
+crecips.com: could not connect to host
crecket.me: could not connect to host
credia.jp: did not receive HSTS header
creditclear.com.au: did not receive HSTS header
-creditreporttips.net: could not connect to host
+creditreporttips.net: did not receive HSTS header
crendontech.com: did not receive HSTS header
+creorin.com: did not receive HSTS header
crestoncottage.com: could not connect to host
crewplanner.eu: did not receive HSTS header
+crge.eu: max-age too low: 0
crimewatch.net.za: could not connect to host
crisissurvivalspecialists.com: could not connect to host
cristianhares.com: could not connect to host
+critcola.com: could not connect to host
criticalaim.com: could not connect to host
crizk.com: could not connect to host
crl-autos.com: could not connect to host
@@ -3158,42 +3480,42 @@ crmdemo.website: did not receive HSTS header
crockett.io: did not receive HSTS header
croco.vision: did not receive HSTS header
croeder.net: could not connect to host
+croisieres.discount: did not receive HSTS header
+cromosomax.com: could not connect to host
croods-mt2.fr: did not receive HSTS header
croome.no-ip.org: could not connect to host
crop-alert.com: could not connect to host
crosbug.com: did not receive HSTS header (error ignored - included regardless)
crosspeakoms.com: did not receive HSTS header
crosssec.com: did not receive HSTS header
-crow.tw: could not connect to host
crowd.supply: did not receive HSTS header
crowdcurity.com: did not receive HSTS header
crowdjuris.com: could not connect to host
+crowdwis.com: could not connect to host
crownbouncycastlehire.co.uk: did not receive HSTS header
crownruler.com: did not receive HSTS header
crox.co: could not connect to host
crrev.com: did not receive HSTS header (error ignored - included regardless)
-crt.sh: could not connect to host
+crt.cloud: could not connect to host
crtvmgmt.com: could not connect to host
crudysql.com: could not connect to host
crufad.org: did not receive HSTS header
-cruikshank.com.au: could not connect to host
+cruikshank.com.au: did not receive HSTS header
crushroom.com: max-age too low: 43200
cruzeiropedia.org: did not receive HSTS header
cruzr.xyz: could not connect to host
crypalert.com: could not connect to host
crypt.guru: did not receive HSTS header
cryptify.eu: could not connect to host
+crypto-armory.com: could not connect to host
cryptobells.com: did not receive HSTS header
cryptobin.org: could not connect to host
cryptocaseproject.com: could not connect to host
cryptodash.net: could not connect to host
-cryptoegg.ca: could not connect to host
-cryptofrog.co: could not connect to host
cryptoisnotacrime.org: could not connect to host
cryptojar.io: could not connect to host
cryptolab.pro: could not connect to host
-cryptolab.tk: could not connect to host
-cryptolosophy.io: could not connect to host
+cryptolab.tk: did not receive HSTS header
cryptoparty.dk: could not connect to host
cryptopartyatx.org: could not connect to host
cryptopartynewcastle.org: could not connect to host
@@ -3209,31 +3531,34 @@ csawctf.poly.edu: could not connect to host
cscau.com: did not receive HSTS header
csehnyelv.hu: could not connect to host
cselzer.com: did not receive HSTS header
-cser.me: did not receive HSTS header
+cser.me: could not connect to host
csfs.org.uk: could not connect to host
csgf.ru: did not receive HSTS header
csgo.help: could not connect to host
csgo77.com: could not connect to host
csgodicegame.com: could not connect to host
csgoelemental.com: could not connect to host
-csgogamers.com: could not connect to host
+csgogamers.com: did not receive HSTS header
+csgohandouts.com: did not receive HSTS header
csgokings.eu: could not connect to host
csgoshifter.com: could not connect to host
csilies.de: could not connect to host
csinfo.us: could not connect to host
-csinterstargeneve.ch: could not connect to host
csohack.tk: could not connect to host
-cspbuilder.info: could not connect to host
-cspeti.hu: could not connect to host
+cspbuilder.info: did not receive HSTS header
cssps.org: could not connect to host
cssu.in: did not receive HSTS header
csvape.com: did not receive HSTS header
+cswarzone.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
ct-status.org: could not connect to host
ct-watches.dk: did not receive HSTS header
-ctl.email: could not connect to host
+ctliu.com: could not connect to host
ctrl.blog: did not receive HSTS header
+ctyi.me: did not receive HSTS header
cuanhua3s.com: did not receive HSTS header
cubecart.net: could not connect to host
+cubecraftstore.com: could not connect to host
+cubecraftstore.net: could not connect to host
cubela.tech: could not connect to host
cubeserver.eu: could not connect to host
cubewano.com: could not connect to host
@@ -3244,19 +3569,21 @@ cujanovic.com: did not receive HSTS header
cujba.com: could not connect to host
culinae.nl: could not connect to host
culture-school.top: did not receive HSTS header
+cultureelbeleggen.nl: did not receive HSTS header
cumparama.com: did not receive HSTS header
cumshots-video.ru: could not connect to host
+cunha.be: could not connect to host
cuni-cuni-club.com: did not receive HSTS header
-cuni-rec.com: could not connect to host
-cuntflaps.me: did not receive HSTS header
+cuni-rec.com: did not receive HSTS header
+cuntflaps.me: could not connect to host
cuongquach.com: did not receive HSTS header
cuongthach.com: did not receive HSTS header
cuonic.com: could not connect to host
cupcake.io: did not receive HSTS header
cupcake.is: did not receive HSTS header
+cupofarchitects.net: could not connect to host
curacao-license.com: could not connect to host
curarnosensalud.com: could not connect to host
-curatedgeek.com: did not receive HSTS header
curiouscat.me: max-age too low: 2592000
curlyroots.com: did not receive HSTS header
current.com: did not receive HSTS header
@@ -3268,17 +3595,19 @@ custe.rs: could not connect to host
customadesign.com: did not receive HSTS header
customd.com: did not receive HSTS header
customfilmworks.com: could not connect to host
+customizeyourshower.com: could not connect to host
custompapers.com: could not connect to host
+customromlist.com: could not connect to host
customwritings.com: could not connect to host
cutelariafiveladeouro.com.br: did not receive HSTS header
cutorrent.com: could not connect to host
cuvva.insure: did not receive HSTS header
cvjm-memmingen.de: did not receive HSTS header
-cvsoftub.com: could not connect to host
+cvsoftub.com: did not receive HSTS header
cvtparking.co.uk: did not receive HSTS header
cw-bw.de: could not connect to host
cwage.com: could not connect to host
-cwbw.network: could not connect to host
+cwbw.network: did not receive HSTS header
cwilson.ga: could not connect to host
cy.technology: did not receive HSTS header
cyanogenmod.xxx: could not connect to host
@@ -3289,35 +3618,36 @@ cyber-perikarp.eu: did not receive HSTS header
cybercecurity.com: did not receive HSTS header
cybercloud.cc: did not receive HSTS header
cyberdos.de: did not receive HSTS header
+cyberdyne-industries.net: could not connect to host
cyberlab.kiev.ua: did not receive HSTS header
cyberlab.team: did not receive HSTS header
cyberpeace.nl: could not connect to host
cyberprey.com: did not receive HSTS header
cyberpunk.ca: could not connect to host
-cybersafesolutions.com: did not receive HSTS header
-cyberscan.io: did not receive HSTS header
+cybersantri.com: could not connect to host
+cyberserver.org: could not connect to host
cybershambles.com: could not connect to host
cyberspace.today: could not connect to host
-cybit.io: did not receive HSTS header
cyclehackluxembourgcity.lu: could not connect to host
cyclingjunkies.com: could not connect to host
cydia-search.io: could not connect to host
cyelint.com: could not connect to host
-cygu.ch: did not receive HSTS header
+cygu.ch: could not connect to host
cymtech.net: could not connect to host
cynoshair.com: could not connect to host
cyoda.com: did not receive HSTS header
+cypherpunk.com: could not connect to host
cypherpunk.ws: could not connect to host
cyphertite.com: could not connect to host
+cypressinheritancesaga.com: could not connect to host
cytadel.fr: did not receive HSTS header
-czakey.net: could not connect to host
czaw.org: did not receive HSTS header
czirnich.org: did not receive HSTS header
-czk.mk: could not connect to host
czlx.co: could not connect to host
d-academia.com: did not receive HSTS header
d-macindustries.com: did not receive HSTS header
d-rickroll-e.pw: could not connect to host
+d-toys.com.ua: could not connect to host
d00r.de: did not receive HSTS header
d0xq.net: could not connect to host
d1ves.io: did not receive HSTS header
@@ -3330,11 +3660,10 @@ dabblegoat.com: could not connect to host
dabbot.org: did not receive HSTS header
dad256.tk: could not connect to host
dadtheimpaler.com: could not connect to host
-daemon.xin: did not receive HSTS header
dah5.com: did not receive HSTS header
dahl-pind.dk: did not receive HSTS header
dai-rin.co.jp: could not connect to host
-dailybunda.com: could not connect to host
+dailybunda.com: did not receive HSTS header
dailystormerpodcasts.com: could not connect to host
dailytopix.com: could not connect to host
daimadi.com: could not connect to host
@@ -3349,10 +3678,11 @@ dalfiume.it: did not receive HSTS header
dalingk.co: could not connect to host
daltonedwards.me: could not connect to host
dam74.com.ar: could not connect to host
-damedrogy.cz: could not connect to host
damianuv-blog.cz: did not receive HSTS header
damjanovic.work: could not connect to host
+dan.org.nz: could not connect to host
danbarrett.com.au: could not connect to host
+dancebuzz.co.uk: did not receive HSTS header
dancerdates.net: did not receive HSTS header
dandymrsb.com: could not connect to host
dane-bre.net: max-age too low: 172800
@@ -3364,8 +3694,12 @@ daniel-steuer.de: could not connect to host
danielcowie.me: could not connect to host
danieldk.eu: did not receive HSTS header
danielgraziano.ca: could not connect to host
+danielheal.net: could not connect to host
danieliancu.com: could not connect to host
danielkratz.com: max-age too low: 172800
+danielmarquard.com: could not connect to host
+danielt.co.uk: could not connect to host
+danielthompson.info: could not connect to host
danielverlaan.nl: could not connect to host
danielworthy.com: did not receive HSTS header
danielzuzevich.com: could not connect to host
@@ -3374,20 +3708,22 @@ danishenanigans.com: could not connect to host
dankeblog.com: could not connect to host
danmark.guide: did not receive HSTS header
dannycrichton.com: did not receive HSTS header
-dannystevens.co.uk: could not connect to host
+danova.de: did not receive HSTS header
danrl.de: could not connect to host
+dansage.co: could not connect to host
danskringsporta.be: did not receive HSTS header
danwillenberg.com: did not receive HSTS header
daolerp.xyz: could not connect to host
-daphne.informatik.uni-freiburg.de: did not receive HSTS header
dargasia.is: could not connect to host
+darinjohnson.ca: did not receive HSTS header
dario.im: did not receive HSTS header
dariosirangelo.me: did not receive HSTS header
dark-x.cf: could not connect to host
+dark.ninja: could not connect to host
darkanzali.pl: max-age too low: 0
darkdestiny.ch: could not connect to host
darkfriday.ddns.net: could not connect to host
-darkhole.cn: did not receive HSTS header
+darkhole.cn: could not connect to host
darkishgreen.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
darkkeepers.dk: max-age too low: 172800
darknebula.space: could not connect to host
@@ -3396,9 +3732,9 @@ darkpony.ru: could not connect to host
darksideof.it: could not connect to host
darkstance.org: could not connect to host
darktree.in: could not connect to host
+darkwebkittens.xyz: could not connect to host
darlastudio66.com: did not receive HSTS header
darlo.co.uk: could not connect to host
-daropia.org: could not connect to host
darrenellis.xyz: could not connect to host
darrenm.net: could not connect to host
das-tyrol.at: did not receive HSTS header
@@ -3411,10 +3747,16 @@ data-abundance.com: could not connect to host
data-detox.com: could not connect to host
data.haus: could not connect to host
data.qld.gov.au: did not receive HSTS header
+databeam.de: could not connect to host
datacave.is: could not connect to host
-datacool.tk: could not connect to host
+datacenternews.asia: did not receive HSTS header
+datacenternews.co.nz: did not receive HSTS header
+datacentrenews.eu: did not receive HSTS header
datacubed.com: did not receive HSTS header
+datafd.com: could not connect to host
+datafd.net: could not connect to host
datahoarder.download: could not connect to host
+datahoarderschool.club: did not receive HSTS header
dataisme.com: did not receive HSTS header
datajapan.co.jp: did not receive HSTS header
datamatic.ru: could not connect to host
@@ -3424,7 +3766,7 @@ datasnitch.co.uk: could not connect to host
datatekniikka.com: could not connect to host
datedeposit.com: could not connect to host
datengrab.ws: could not connect to host
-datenlast.de: could not connect to host
+datenlast.de: did not receive HSTS header
datenreiter.cf: could not connect to host
datenreiter.gq: could not connect to host
datenreiter.ml: could not connect to host
@@ -3433,6 +3775,7 @@ datenschutzhelden.org: could not connect to host
datine.com.br: could not connect to host
datorb.com: could not connect to host
datortipsen.se: did not receive HSTS header
+datsound.ru: did not receive HSTS header
datsumou-q.com: did not receive HSTS header
daverandom.com: could not connect to host
davidandkailey.com: could not connect to host
@@ -3441,10 +3784,11 @@ davidglidden.eu: did not receive HSTS header
davidgrudl.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
davidhunter.scot: did not receive HSTS header
davidletellier.com: did not receive HSTS header
-davidmcevoy.org.uk: did not receive HSTS header
+davidlillo.com: could not connect to host
davidnoren.com: did not receive HSTS header
davidreinhardt.de: could not connect to host
davidscherzer.at: could not connect to host
+davimun.org: could not connect to host
davros.eu: could not connect to host
davros.ru: could not connect to host
daw.nz: could not connect to host
@@ -3456,19 +3800,20 @@ daylightcompany.com: did not receive HSTS header
days.one: could not connect to host
daytonaseaside.com: did not receive HSTS header
db.gy: could not connect to host
+dbjc.duckdns.org: could not connect to host
dblx.io: could not connect to host
dbox.ga: could not connect to host
dbpmedia.se: did not receive HSTS header
-dbx.ovh: could not connect to host
+dbx.ovh: did not receive HSTS header
dbyz.co.uk: max-age too low: 43200
dcaracing.nl: could not connect to host
-dcc.moe: did not receive HSTS header
+dcc.moe: could not connect to host
dccode.gov: could not connect to host
dccoffeeproducts.com: did not receive HSTS header
dccraft.net: could not connect to host
dctxf.com: did not receive HSTS header
dcuofriends.net: could not connect to host
-dcw.io: could not connect to host
+dcw.io: did not receive HSTS header
dd.art.pl: could not connect to host
ddatsh.com: did not receive HSTS header
dden.website: could not connect to host
@@ -3482,12 +3827,6 @@ de-servers.de: could not connect to host
deadmann.com: could not connect to host
deadsoul.net: could not connect to host
debank.tv: did not receive HSTS header
-debarrasantony.com: could not connect to host
-debarrasasnieressurseine.com: could not connect to host
-debarrasboulognebillancourt.com: could not connect to host
-debarrasclichy.com: could not connect to host
-debarrascolombes.com: could not connect to host
-debarrasnanterre.com: could not connect to host
debatch.se: could not connect to host
debian-vhost.de: could not connect to host
debiton.dk: could not connect to host
@@ -3500,21 +3839,23 @@ decafu.co: could not connect to host
decentralizedweb.net: did not receive HSTS header
decesus.com: could not connect to host
decibelios.li: could not connect to host
-decloverly.com: did not receive HSTS header
+decloverly.com: could not connect to host
deco.me: could not connect to host
decoboutique.com: did not receive HSTS header
decofire.pl: did not receive HSTS header
decomplify.com: did not receive HSTS header
deconsolutions.com: did not receive HSTS header
decoraid.com: did not receive HSTS header
-decoratore.roma.it: did not receive HSTS header
decorincasa.com.br: could not connect to host
decorland.com.ua: could not connect to host
decormiernissanparts.com: could not connect to host
decoyrouting.com: could not connect to host
-dedeo.tk: did not receive HSTS header
+dedeo.tk: could not connect to host
dedicatutiempo.es: could not connect to host
dedietrich-asia.com: could not connect to host
+deep.club: could not connect to host
+deep.social: did not receive HSTS header
+deeparamaraj.com: did not receive HSTS header
deepcovelabs.net: could not connect to host
deepcreampie.com: could not connect to host
deepearth.uk: could not connect to host
@@ -3525,6 +3866,7 @@ deeps.cat: could not connect to host
deeps.me: did not receive HSTS header
deepvalley.tech: could not connect to host
deepvision.com.ua: did not receive HSTS header
+deer.team: could not connect to host
deetz.nl: did not receive HSTS header
deetzen.de: did not receive HSTS header
defi-metier.com: did not receive HSTS header
@@ -3538,7 +3880,7 @@ defimetier.fr: could not connect to host
defimetier.org: did not receive HSTS header
defimetiers.com: did not receive HSTS header
defimetiers.fr: did not receive HSTS header
-degroetenvanrosaline.nl: did not receive HSTS header
+degroetenvanrosaline.nl: could not connect to host
deight.co: could not connect to host
deight.in: could not connect to host
dekasan.ru: could not connect to host
@@ -3551,16 +3893,18 @@ deloittequant.com: could not connect to host
deltaconcepts.de: could not connect to host
delvj.org: could not connect to host
demandware.com: did not receive HSTS header
-demarche-expresse.com: could not connect to host
+demarche-expresse.com: did not receive HSTS header
+demarle.ch: could not connect to host
demdis.org: could not connect to host
demilitarized.ninja: could not connect to host
demo-server.us: could not connect to host
demo.sb: could not connect to host
+demo.swedbank.se: did not receive HSTS header
+demo9.ovh: did not receive HSTS header
democracy.io: did not receive HSTS header
-democraticdifference.com: did not receive HSTS header
+democraticdifference.com: could not connect to host
demomanca.com: did not receive HSTS header
demotops.com: could not connect to host
-dengchangdong.com: could not connect to host
denh.am: did not receive HSTS header
denisjean.fr: could not connect to host
dennispotter.eu: did not receive HSTS header
@@ -3573,10 +3917,13 @@ denverphilharmonic.org: did not receive HSTS header
denverprophit.us: did not receive HSTS header
depaco.com: did not receive HSTS header
deped.blog: could not connect to host
+depedshs.com: could not connect to host
depedtayo.ph: could not connect to host
depijl-mz.nl: did not receive HSTS header
depixion.agency: could not connect to host
depo.space: could not connect to host
+deprobe.pro: could not connect to host
+depth-co.jp: could not connect to host
dequehablamos.es: could not connect to host
derbyshiredotnet.co.uk: did not receive HSTS header
derchris.me: could not connect to host
@@ -3602,7 +3949,7 @@ despotika.de: could not connect to host
desserteagleselvenar.tk: could not connect to host
destinationbijoux.fr: could not connect to host
destom.be: could not connect to host
-desuperheroes.co: could not connect to host
+desveja.com.br: could not connect to host
detalhecomercio.com.br: could not connect to host
detechnologiecooperatie.nl: did not receive HSTS header
detecte-fuite.ch: could not connect to host
@@ -3614,48 +3961,47 @@ dethikiemtra.com: did not receive HSTS header
detroitrocs.org: did not receive HSTS header
detteflies.com: max-age too low: 7889238
detutorial.com: max-age too low: 36000
-deuchnord.fr: could not connect to host
deusu.de: could not connect to host
deusu.org: 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
deuxvia.com: could not connect to host
dev: could not connect to host
dev-aegon.azurewebsites.net: did not receive HSTS header
dev-bluep.pantheonsite.io: did not receive HSTS header
dev-talk.eu: did not receive HSTS header
-dev-talk.net: could not connect to host
+dev-talk.net: did not receive HSTS header
devafterdark.com: could not connect to host
devdesco.com: could not connect to host
devdom.io: max-age too low: 172800
-devdoodle.net: could not connect to host
+develop.cool: did not receive HSTS header
develop.fitness: could not connect to host
developermail.io: did not receive HSTS header
developersclub.website: could not connect to host
developyourelement.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
devh.de: could not connect to host
-deviltraxxx.de: could not connect to host
devin-balimuhac.de: did not receive HSTS header
devincrow.me: could not connect to host
-devinpacker.com: did not receive HSTS header
+devinpacker.com: could not connect to host
devisonline.ch: could not connect to host
devistravaux.org: did not receive HSTS header
-devkit.cc: could not connect to host
devlux.ch: did not receive HSTS header
-devmsg.com: did not receive HSTS header
+devmsg.com: could not connect to host
devnsec.com: could not connect to host
devnull.team: could not connect to host
devopps.me: did not receive HSTS header
devops.moe: could not connect to host
devopsconnected.com: could not connect to host
-devpsy.info: could not connect to host
devtestfan1.gov: could not connect to host
devtub.com: could not connect to host
devuan.org: did not receive HSTS header
-dewebwerf.nl: did not receive HSTS header
dewin.io: could not connect to host
-dezet-ev.de: could not connect to host
dfixit.com: could not connect to host
dfrance.com.br: did not receive HSTS header
dfviana.com.br: max-age too low: 2592000
+dgby.org: did not receive HSTS header
dggwp.de: did not receive HSTS header
dharamkot.com: could not connect to host
dharma.ai: did not receive HSTS header
@@ -3669,7 +4015,8 @@ diablotine.rocks: could not connect to host
diabolic.chat: could not connect to host
diagnosia.com: did not receive HSTS header
diagonale-deco.fr: did not receive HSTS header
-diamondcare.com.br: could not connect to host
+dialoegue.com: did not receive HSTS header
+diamondcare.com.br: did not receive HSTS header
diamondpkg.org: could not connect to host
diamondt.us: did not receive HSTS header
dianlujitao.com: did not receive HSTS header
@@ -3685,13 +4032,13 @@ dicio.com.br: did not receive HSTS header
dicionariofinanceiro.com: did not receive HSTS header
dicionariopopular.com: did not receive HSTS header
dick.red: could not connect to host
-dickpics.ru: could not connect to host
-didierlaumen.be: could not connect to host
-die-besten-weisheiten.de: did not receive HSTS header
+didierlaumen.be: did not receive HSTS header
+die-besten-weisheiten.de: could not connect to host
die-gruenen-teufel.de: could not connect to host
dieb.photo: could not connect to host
diejanssens.net: did not receive HSTS header
diemogebhardt.com: could not connect to host
+dierencompleet.nl: did not receive HSTS header
dierenkruiden.nl: did not receive HSTS header
dieser.me: could not connect to host
dietagespresse.com: did not receive HSTS header
@@ -3701,14 +4048,17 @@ diferenca.com: did not receive HSTS header
diggable.co: max-age too low: 2592000
digihyp.ch: could not connect to host
digikol.net: could not connect to host
+diginota.com: did not receive HSTS header
digired.xyz: could not connect to host
+digital1world.com: did not receive HSTS header
digitalbank.kz: could not connect to host
digitalcloud.ovh: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
digitalcraftmarketing.co.uk: did not receive HSTS header
digitaldaddy.net: did not receive HSTS header
digitalero.rip: did not receive HSTS header
+digitalewelten.de: could not connect to host
digitalexhale.com: did not receive HSTS header
-digitalhurricane.io: did not receive HSTS header
+digitalhurricane.io: could not connect to host
digitalimpostor.co.uk: could not connect to host
digitaljungle.net: could not connect to host
digitallocker.com: did not receive HSTS header
@@ -3722,17 +4072,20 @@ digiworks.se: did not receive HSTS header
diguass.us: could not connect to host
dijks.com: could not connect to host
dikshant.net: could not connect to host
-diletec.com.br: did not receive HSTS header
+diletec.com.br: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
dillynbarber.com: did not receive HSTS header
dim.lighting: could not connect to host
dimes.com.tr: did not receive HSTS header
dimitrisotiropoulosbooks.com: max-age too low: 7889238
din-tools.com: did not receive HSTS header
dinamoelektrik.com: could not connect to host
-dingcc.me: could not connect to host
+dingcc.com: could not connect to host
dingcc.org: could not connect to host
dingcc.xyz: could not connect to host
+dinge.xyz: could not connect to host
+dingelbob-schuhcreme.gq: could not connect to host
dingss.com: could not connect to host
+dinheirolucrar.com: did not receive HSTS header
dinkum.online: could not connect to host
dinotv.at: could not connect to host
dintillat.fr: could not connect to host
@@ -3741,6 +4094,7 @@ dionysus.se: could not connect to host
dipconsultants.com: could not connect to host
direct2uk.com: could not connect to host
directhskincream.com: could not connect to host
+directinsure.in: did not receive HSTS header
directorinegocis.cat: could not connect to host
directtwo.solutions: could not connect to host
directtwosolutions.org: could not connect to host
@@ -3748,10 +4102,9 @@ directwatertanks.co.uk: did not receive HSTS header
direnv.net: did not receive HSTS header
direwolfsoftware.ca: could not connect to host
dirk-weise.de: could not connect to host
+dirkwolf.de: could not connect to host
dirtycat.ru: could not connect to host
-dirtygeek.ovh: could not connect to host
disadattamentolavorativo.it: could not connect to host
-disarc.com: max-age too low: 0
disclosure.io: did not receive HSTS header
disco-crazy-world.de: could not connect to host
discord-chan.net: could not connect to host
@@ -3772,7 +4125,7 @@ dissieux.com: did not receive HSTS header
dissimulo.me: could not connect to host
distinctivephotography.com.au: could not connect to host
distinguishedwindows.co.uk: did not receive HSTS header
-distractionco.de: could not connect to host
+distractionco.de: did not receive HSTS header
distrilogservices.com: could not connect to host
ditch.ch: could not connect to host
ditrutoancau.vn: could not connect to host
@@ -3780,29 +4133,25 @@ dittvertshus.no: could not connect to host
diva-ey.com: could not connect to host
divegearexpress.com.cn: did not receive HSTS header
diversity-spielzeug.de: did not receive HSTS header
-divingwithnic.com: could not connect to host
divvi.co.nz: did not receive HSTS header
divvyradio.com: did not receive HSTS header
-diwei.vip: did not receive HSTS header
dixiediner.com: did not receive HSTS header
dixmag.com: could not connect to host
diz.in.ua: did not receive HSTS header
dizihocasi.com: could not connect to host
dizorg.net: could not connect to host
dj4et.de: could not connect to host
-djieno.com: could not connect to host
djul.net: could not connect to host
djxmmx.net: did not receive HSTS header
-djz4music.com: did not receive HSTS header
dkniss.de: could not connect to host
dko-steiermark.ml: did not receive HSTS header
dl.google.com: did not receive HSTS header (error ignored - included regardless)
-dlbouncers.co.uk: did not receive HSTS header
+dlbouncers.co.uk: could not connect to host
dlc.viasinc.com: could not connect to host
dlemper.de: did not receive HSTS header
-dlouwrink.nl: could not connect to host
dlyl888.com: could not connect to host
dmarketer.com: did not receive HSTS header
+dmcastles.com: did not receive HSTS header
dmcglobaltravel.com.mx: did not receive HSTS header
dmcibulldog.com: did not receive HSTS header
dmdre.com: did not receive HSTS header
@@ -3822,15 +4171,14 @@ dnsknowledge.com: did not receive HSTS header
dnsql.io: could not connect to host
do-do.tk: could not connect to host
do-it.cz: could not connect to host
-do67.de: could not connect to host
-do67.net: could not connect to host
doak.io: did not receive HSTS header
dobet.in: could not connect to host
-doc-justice.com: could not connect to host
+doc-justice.com: did not receive HSTS header
docid.io: could not connect to host
-dockerturkiye.com: max-age too low: 0
+dockerturkiye.com: could not connect to host
docket.news: could not connect to host
-doclot.io: did not receive HSTS header
+doclassworks.com: could not connect to host
+doclot.io: could not connect to host
docplexus.in: did not receive HSTS header
docset.io: could not connect to host
docufiel.com: could not connect to host
@@ -3842,13 +4190,14 @@ doeswindowssuckforeveryoneorjustme.com: could not connect to host
dogbox.se: could not connect to host
dogcratereview.info: could not connect to host
dogespeed.ga: could not connect to host
-doggedbyirs.com: could not connect to host
doggieholic.net: could not connect to host
dognlife.com: could not connect to host
dogoodbehappyllc.com: did not receive HSTS header
+dogprograms.net: could not connect to host
dohosting.ru: could not connect to host
dojifish.space: could not connect to host
dojin.nagoya: could not connect to host
+dokan-e.com: could not connect to host
dokan.online: did not receive HSTS header
doked.io: could not connect to host
dolarcanadense.com.br: could not connect to host
@@ -3876,12 +4225,12 @@ dong8.top: could not connect to host
donhoward.org: did not receive HSTS header
donmez.uk: could not connect to host
donmez.ws: could not connect to host
+donner-reuschel.de: did not receive HSTS header
donotcall.gov: did not receive HSTS header
donotspampls.me: could not connect to host
donotspellitgav.in: did not receive HSTS header
-donsbach-edv.de: did not receive HSTS header
+donpaginasweb.com: did not receive HSTS header
donthedragonwilson.com: could not connect to host
-dontpayfull.com: did not receive HSTS header
donttrustrobots.nl: could not connect to host
donzelot.co.uk: did not receive HSTS header
doobydude.us: could not connect to host
@@ -3890,25 +4239,22 @@ doodlefinder.de: max-age too low: 600000
dooku.cz: could not connect to host
doomleika.com: did not receive HSTS header
doooonoooob.com: could not connect to host
+door.cards: could not connect to host
dopost.it: could not connect to host
-dorfbaeck.at: did not receive HSTS header
-doridian.com: could not connect to host
-doridian.de: could not connect to host
-doridian.org: could not connect to host
doriginal.es: did not receive HSTS header
dorkfarm.com: did not receive HSTS header
dormebebe.com.br: could not connect to host
dosipe.com: could not connect to host
doska.kz: could not connect to host
dostavkakurierom.ru: could not connect to host
-dot42.no: could not connect to host
dotadata.me: could not connect to host
dotb.dn.ua: did not receive HSTS header
dotbrick.co.th: did not receive HSTS header
-dotconnor.com: could not connect to host
dotkod.com: could not connect to host
dotnetsandbox.ca: could not connect to host
+dotrox.net: could not connect to host
dotspaperie.com: could not connect to host
+doubleaste.com: did not receive HSTS header
doublethink.online: could not connect to host
doubleyummy.uk: did not receive HSTS header
dougferris.id.au: could not connect to host
@@ -3924,11 +4270,11 @@ download.jitsi.org: did not receive HSTS header
downsouthweddings.com.au: did not receive HSTS header
doyoulyft.com: could not connect to host
dpangerl.de: did not receive HSTS header
-dpg.no: could not connect to host
dps.srl: did not receive HSTS header
dpsart.it: did not receive HSTS header
+dr-knirr.de: could not connect to host
dr2dr.ca: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-drabim.org: did not receive HSTS header
+drabbin.com: could not connect to host
draghive.club: did not receive HSTS header
draghive.net: could not connect to host
draghive.photos: did not receive HSTS header
@@ -3938,7 +4284,6 @@ dragons-of-highlands.cz: did not receive HSTS header
dragonsmoke.cloud: could not connect to host
dragonstower.net: could not connect to host
dragonteam.ninja: could not connect to host
-drahcro.uk: could not connect to host
drainagebuizen.nl: did not receive HSTS header
drakefortreasurer.sexy: could not connect to host
drakensberg-tourism.com: did not receive HSTS header
@@ -3948,15 +4293,16 @@ drastosasports.com.br: could not connect to host
drawvesly.ovh: did not receive HSTS header
drdevil.ru: could not connect to host
dreadbyte.com: could not connect to host
-dreadd.org: did not receive HSTS header
+dreadd.org: could not connect to host
dreamaholic.club: could not connect to host
dreamcatcherblog.de: could not connect to host
dreaming.solutions: could not connect to host
dreamlighteyeserum.com: could not connect to host
dreamof.net: could not connect to host
dreamsforabetterworld.com.au: did not receive HSTS header
+dreax.win: could not connect to host
dredgepress.com: did not receive HSTS header
-dreischneidiger.de: did not receive HSTS header
+dreischneidiger.de: could not connect to host
dreizwosechs.de: could not connect to host
drewgle.net: could not connect to host
drhopeson.com: could not connect to host
@@ -3968,6 +4314,7 @@ drive.xyz: could not connect to host
drivewithstatetransit.com.au: did not receive HSTS header
driving-lessons.co.uk: could not connect to host
drixn.cn: could not connect to host
+drixn.com: 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
@@ -3992,7 +4339,7 @@ droomhuisindestadverkopen.nl: could not connect to host
droomhuisophetplattelandverkopen.nl: could not connect to host
dropcam.com: did not receive HSTS header
drostschocolates.com: did not receive HSTS header
-drpure.pw: could not connect to host
+drpure.pw: did not receive HSTS header
drtroyhendrickson.com: could not connect to host
drtti.io: could not connect to host
drturner.com.au: did not receive HSTS header
@@ -4001,18 +4348,19 @@ drumbandesperanto.nl: could not connect to host
drupal123.com: could not connect to host
druznek.rocks: could not connect to host
druznek.xyz: could not connect to host
-dryan.com: did not receive HSTS header
drybasement.com: did not receive HSTS header
drybasementkansas.com: did not receive HSTS header
drycreekapiary.com: could not connect to host
ds-christiansen.de: could not connect to host
-ds67.de: could not connect to host
dshiv.io: could not connect to host
+dsne.com.mx: did not receive HSTS header
+dsouzamusic.com: could not connect to host
+dstvinstallrandburg.co.za: did not receive HSTS header
+dsuinnovation.com: could not connect to host
dsyunmall.com: could not connect to host
-dtg-fonds.com: could not connect to host
-dtg-fonds.de: could not connect to host
-dtg-fonds.net: could not connect to host
+dtp-mstdn.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
dtub.co: could not connect to host
+dualascent.com: did not receive HSTS header
duan.li: could not connect to host
dubik.su: did not receive HSTS header
duckyubuntu.tk: could not connect to host
@@ -4021,10 +4369,6 @@ dudesunderwear.com.br: could not connect to host
duelsow.eu: could not connect to host
duelysthub.com: could not connect to host
duerls.de: could not connect to host
-dugnet.com: could not connect to host
-dugnet.io: could not connect to host
-dugnet.net: could not connect to host
-dugnet.org: could not connect to host
dugnet.tech: could not connect to host
dujsq.com: could not connect to host
dujsq.top: could not connect to host
@@ -4032,18 +4376,20 @@ dukec.me: did not receive HSTS header
dukefox.com: could not connect to host
duks.com.br: did not receive HSTS header
dullsir.com: did not receive HSTS header
+dumbdemo.com: could not connect to host
+dunamiscommunity.com: could not connect to host
dunashoes.com: could not connect to host
-dune.io: could not connect to host
+dune.io: did not receive HSTS header
dunea.nl: did not receive HSTS header
dung-massage.fr: did not receive HSTS header
duo.money: could not connect to host
+duocircle.com: did not receive HSTS header
duole30.com: could not connect to host
-duoluodeyu.com: could not connect to host
duongpho.com: did not receive HSTS header
durangoenergyllc.com: could not connect to host
dushu.cat: could not connect to host
duskopy.top: could not connect to host
-dutchessuganda.com: did not receive HSTS header
+dutchessuganda.com: could not connect to host
dutchrank.com: did not receive HSTS header
dutyfreeonboard.com: did not receive HSTS header
duuu.ch: could not connect to host
@@ -4053,14 +4399,14 @@ dwellstudio.com: did not receive HSTS header
dwhd.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
dwnld.me: could not connect to host
dycem-ns.com: did not receive HSTS header
-dycoa.com: did not receive HSTS header
dycontrol.de: could not connect to host
dylanscott.com.au: did not receive HSTS header
dynamic-innovations.net: could not connect to host
dynamic-networks.be: could not connect to host
dynamize.solutions: did not receive HSTS header
+dyncdn.me: could not connect to host
dynts.pro: could not connect to host
-dzet.de: could not connect to host
+dyz.pw: did not receive HSTS header
dziekonski.com: could not connect to host
dzimejl.sk: did not receive HSTS header
dzlibs.io: could not connect to host
@@ -4071,11 +4417,12 @@ e-baraxolka.ru: could not connect to host
e-deca2.org: did not receive HSTS header
e-isfa.eu: did not receive HSTS header
e-mak.eu: could not connect to host
+e-migration.ch: could not connect to host
e-newshub.com: could not connect to host
e-pokupki.eu: did not receive HSTS header
e-rickroll-r.pw: could not connect to host
e-sa.com: did not receive HSTS header
-e-speak24.pl: did not receive HSTS header
+e-speak24.pl: could not connect to host
e-vau.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
e-vo-linka.cz: did not receive HSTS header
e-wishlist.net: could not connect to host
@@ -4096,8 +4443,6 @@ earga.sm: could not connect to host
earlybirdsnacks.com: could not connect to host
earth-people.org: could not connect to host
earthrise16.com: could not connect to host
-earvinkayonga.com: did not receive HSTS header
-easelforart.com: could not connect to host
easew.com: could not connect to host
eastcoastinflatables.co.uk: did not receive HSTS header
easthokkaido-5airport.jp: did not receive HSTS header
@@ -4107,8 +4452,10 @@ easy-factures.fr: could not connect to host
easychiller.org: could not connect to host
easykonto.de: could not connect to host
easyplane.it: did not receive HSTS header
-easysimplecrm.com: did not receive HSTS header
+easyreal.ru: could not connect to host
+easysimplecrm.com: could not connect to host
eat-the-world.ch: could not connect to host
+eat4happiness.com: did not receive HSTS header
eatfitoutlet.com.br: could not connect to host
eatlowcarb.de: did not receive HSTS header
eattherich.us: did not receive HSTS header
@@ -4122,8 +4469,9 @@ ebiografias.com.br: could not connect to host
ebolsa.com.br: did not receive HSTS header
ebolsas.com.br: did not receive HSTS header
ebooksgratuits.org: could not connect to host
+ebop.ch: could not connect to host
ebp2p.com: did not receive HSTS header
-ebpglobal.com: did not receive HSTS header
+ebpglobal.com: could not connect to host
ebraph.com: could not connect to host
ebrowz.com: could not connect to host
ecake.in: could not connect to host
@@ -4133,8 +4481,8 @@ ecfs.link: could not connect to host
ecg.fr: could not connect to host
echipstore.com: did not receive HSTS header
echo.cc: could not connect to host
-echomanchester.net: did not receive HSTS header
-echoteen.com: did not receive HSTS header
+echoactive.com: could not connect to host
+echomanchester.net: could not connect to host
eckro.com: did not receive HSTS header
ecole-en-danger.fr: could not connect to host
ecole-iaf.fr: could not connect to host
@@ -4144,8 +4492,10 @@ ecology-21.ru: did not receive HSTS header
ecomlane.com: could not connect to host
ecomparemo.com: did not receive HSTS header
econativa.pt: could not connect to host
-economy.st: did not receive HSTS header
+economy.st: could not connect to host
+economycarrentalscyprus.com: could not connect to host
ecorus.eu: did not receive HSTS header
+ecosoftconsult.com: could not connect to host
ecotruck-pooling.com: did not receive HSTS header
ecrimex.net: did not receive HSTS header
ectora.com: could not connect to host
@@ -4163,24 +4513,29 @@ edenvaleplumber24-7.co.za: did not receive HSTS header
edenvalerubbleremovals.co.za: did not receive HSTS header
edgecustomersportal.com: could not connect to host
edgereinvent.com: did not receive HSTS header
+edh.email: did not receive HSTS header
edhrealtor.com: did not receive HSTS header
edilservizi.it: did not receive HSTS header
edilservizivco.it: did not receive HSTS header
-ediscomp.sk: did not receive HSTS header
+edisonchee.com: could not connect to host
edissecurity.sk: did not receive HSTS header
edition-pommern.com: did not receive HSTS header
editoraacademiacrista.com.br: could not connect to host
edix.ru: could not connect to host
edk.com.tr: did not receive HSTS header
edsh.de: did not receive HSTS header
+eduardnikolenko.com: could not connect to host
+eduardnikolenko.ru: could not connect to host
educaid.be: did not receive HSTS header
educatio.tech: could not connect to host
+educators.co.nz: did not receive HSTS header
educatoys.com.br: could not connect to host
educatweb.de: did not receive HSTS header
educnum.fr: did not receive HSTS header
educourse.ga: could not connect to host
eduif.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
eduvance.in: did not receive HSTS header
+edvgarbe.de: could not connect to host
ee-terminals.com: could not connect to host
eeb98.com: could not connect to host
eeetrust.org: could not connect to host
@@ -4198,15 +4553,18 @@ eengezinswoning-in-zuidplas-kopen.nl: could not connect to host
eengezinswoning-in-zwartewaterland-kopen.nl: could not connect to host
eengezinswoningverkopen.nl: could not connect to host
eenhoorn.ga: could not connect to host
+eeqj.com: did not receive HSTS header
eesistumine2017.ee: could not connect to host
eez.ee: could not connect to host
effectiveosgi.com: could not connect to host
effectivepapers.com: could not connect to host
efficienthealth.com: did not receive HSTS header
effortlesshr.com: did not receive HSTS header
+efinity.io: did not receive HSTS header
eftcorp.biz: max-age too low: 0
+egarden.it: did not receive HSTS header
+egfl.org.uk: did not receive HSTS header
egge.com: max-age too low: 0
-eggert.org: could not connect to host
egit.co: could not connect to host
ego-world.org: did not receive HSTS header
egupova.ru: did not receive HSTS header
@@ -4218,22 +4576,25 @@ ehrlichesbier.de: could not connect to host
ehuber.info: could not connect to host
eicfood.com: could not connect to host
eidolonhost.com: did not receive HSTS header
-eidolons.org: could not connect to host
-eifelindex.de: could not connect to host
+eifelindex.de: did not receive HSTS header
eiga-movie.com: max-age too low: 0
eigenbubi.de: could not connect to host
+eightyfour.ca: could not connect to host
eigo.work: could not connect to host
eimanavicius.lt: did not receive HSTS header
+einar.io: max-age too low: 86400
einfachmaldiefressehalten.de: could not connect to host
einhorn.space: could not connect to host
+einmonolog.de: could not connect to host
einsatzstiefel.info: could not connect to host
-einsitapis.com: did not receive HSTS header
+einsit.com: could not connect to host
+einsitapis.com: could not connect to host
ejgconsultancy.co.uk: did not receive HSTS header
ejusu.com: did not receive HSTS header
+ek.network: could not connect to host
ekbanden.nl: could not connect to host
ekobudisantoso.net: could not connect to host
ekong366.com: could not connect to host
-ekpyroticfrood.net: could not connect to host
eksik.com: could not connect to host
el-soul.com: did not receive HSTS header
elaintehtaat.fi: did not receive HSTS header
@@ -4241,18 +4602,20 @@ elan-organics.com: did not receive HSTS header
elanguest.pl: could not connect to host
elanguest.ro: could not connect to host
elanguest.ru: could not connect to host
+elastic7.uk: could not connect to host
elaxy-online.de: could not connect to host
+elbaal.gov: did not receive HSTS header
elblein.de: did not receive HSTS header
+elderoost.com: could not connect to host
elearningpilot.com: did not receive HSTS header
-electicofficial.com: could not connect to host
+electicofficial.com: did not receive HSTS header
electricalcontrolpanels.co.uk: could not connect to host
electricant.com: did not receive HSTS header
electricant.nl: did not receive HSTS header
electriccitysf.com: could not connect to host
-electrician-umhlanga.co.za: could not connect to host
+electrician-umhlanga.co.za: did not receive HSTS header
electricianforum.co.uk: did not receive HSTS header
electricianumhlangarocks.co.za: did not receive HSTS header
-electricienasnieres.fr: could not connect to host
electricoperaduo.com: did not receive HSTS header
electromc.com: could not connect to host
eled.io: could not connect to host
@@ -4279,20 +4642,27 @@ elias-nicolas.com: could not connect to host
eliasojala.me: did not receive HSTS header
elimdengelen.com: did not receive HSTS header
eliott.be: could not connect to host
+elistor6100.xyz: did not receive HSTS header
elite-box.com: did not receive HSTS header
elite-box.org: did not receive HSTS header
+elite-porno.ru: could not connect to host
elitecovering.fr: did not receive HSTS header
elitefishtank.com: could not connect to host
-elitesensual.com.br: did not receive HSTS header
-ellegaard.dk: could not connect to host
+elitesensual.com.br: could not connect to host
+elizeugomes.com.br: did not receive HSTS header
ellen-skye.de: max-age too low: 604800
+elliff.net: did not receive HSTS header
elliotgluck.com: did not receive HSTS header
+elliquiy.com: could not connect to host
elmar-kraamzorg.nl: did not receive HSTS header
elna-service.com.ua: did not receive HSTS header
elnutricionista.es: could not connect to host
+elo.fyi: could not connect to host
elohna.ch: did not receive HSTS header
elonbase.com: could not connect to host
+elpado.de: could not connect to host
elpay.kz: did not receive HSTS header
+elpo.net: 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
@@ -4300,29 +4670,35 @@ elsensohn.ch: did not receive HSTS header
elsitar.com: could not connect to host
elsword.moe: could not connect to host
eltransportquevolem.org: could not connect to host
+eltrox.me: could not connect to host
elyisus.info: could not connect to host
-elytronsecurity.com: could not connect to host
+elytronsecurity.com: did not receive HSTS header
email.lookout.com: could not connect to host
email2rss.net: could not connect to host
+emailcontrol.nl: did not receive HSTS header
emanatepixels.com: could not connect to host
emanga.su: did not receive HSTS header
-emavok.eu: did not receive HSTS header
+emavok.eu: could not connect to host
embellir-aroma.com: could not connect to host
embellir-kyujin.com: could not connect to host
embracethedarkness.co.uk: could not connect to host
embroidered-stuff.com: could not connect to host
+embudospro.net: did not receive HSTS header
emeldi-commerce.com: max-age too low: 0
+emergencyessay.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
emergencymedicinefoundations.com: did not receive HSTS header
emergentvisiontec.com: did not receive HSTS header
emesolutions.net: did not receive HSTS header
emiele.com.br: could not connect to host
emilyhorsman.com: could not connect to host
+emilyjohnson.ga: could not connect to host
emilyshepherd.me: did not receive HSTS header
eminhuseynov.com: could not connect to host
eminovic.me: could not connect to host
emjainteractive.com: did not receive HSTS header
emjimadhu.com: could not connect to host
emmable.com: could not connect to host
+emmaliddell.com: did not receive HSTS header
emmanuelle-et-julien.ch: could not connect to host
emmdy.com: did not receive HSTS header
emmehair.com: could not connect to host
@@ -4339,12 +4715,15 @@ employeestore.org: did not receive HSTS header
emporiovinareal.com.br: could not connect to host
empty-r.com: could not connect to host
emptypath.com: did not receive HSTS header
+emyself.info: could not connect to host
+emyself.org: did not receive HSTS header
en4u.org: could not connect to host
enaia.fr: did not receive HSTS header
encadrer-mon-enfant.com: did not receive HSTS header
encode.space: could not connect to host
encode.uk.com: did not receive HSTS header
encoder.pw: could not connect to host
+encoderx.uk: could not connect to host
encontrebarato.com.br: did not receive HSTS header
encrypted.google.com: did not receive HSTS header (error ignored - included regardless)
encryptedaudience.com: could not connect to host
@@ -4362,29 +4741,38 @@ endohaus.us: could not connect to host
endspamwith.us: could not connect to host
enecoshop.nl: did not receive HSTS header
enefan.jp: could not connect to host
-enginsight.com: did not receive HSTS header
+energethik-tulln.at: did not receive HSTS header
+enersaveapp.org: could not connect to host
+enersec.co.uk: could not connect to host
+enfoqueseguro.com: did not receive HSTS header
+enginx.cn: could not connect to host
englerts.de: did not receive HSTS header
+englishclub.com: did not receive HSTS header
englishdirectory.de: could not connect to host
englishyamal.ru: did not receive HSTS header
enigmacpt.com: did not receive HSTS header
enigmail.net: did not receive HSTS header
-enixgaming.com: could not connect to host
enjen.net: did not receive HSTS header
enjoymayfield.com: max-age too low: 0
enjoystudio.ro: did not receive HSTS header
+enlatte.com: did not receive HSTS header
+enlightened.si: could not connect to host
enoou.com: could not connect to host
-enpalmademallorca.info: did not receive HSTS header
+enpalmademallorca.info: could not connect to host
ensemble-vos-idees.fr: could not connect to host
+enskat.de: could not connect to host
+enskatson-sippe.de: could not connect to host
entaurus.com: could not connect to host
enteente.club: could not connect to host
enteente.com: could not connect to host
enteente.space: could not connect to host
enteente.xyz: could not connect to host
-entercenter.ru: could not connect to host
enterdev.co: did not receive HSTS header
enterprisecarclub.co.uk: did not receive HSTS header
+enterprisechannel.asia: did not receive HSTS header
enterprivacy.com: did not receive HSTS header
entersynapse.com: could not connect to host
+entheorie.net: did not receive HSTS header
entourneebeetle.com: could not connect to host
entrepreneur.or.id: could not connect to host
enum.eu.org: could not connect to host
@@ -4394,6 +4782,8 @@ enviam.de: did not receive HSTS header
enviapresentes.com.br: could not connect to host
enviatufoto.com: max-age too low: 604800
environment.ai: could not connect to host
+envoyglobal.com: did not receive HSTS header
+envoyworld.com: did not receive HSTS header
envygeeks.com: could not connect to host
eol34.com: could not connect to host
eoldb.org: could not connect to host
@@ -4405,9 +4795,16 @@ ephry.com: could not connect to host
epicmc.games: could not connect to host
epitesz.co: did not receive HSTS header
eposcloud.net: could not connect to host
+eposmidlands.co.uk: could not connect to host
+eposnewport.co.uk: could not connect to host
+eposnottingham.co.uk: could not connect to host
+eposreading.co.uk: could not connect to host
+eposreview.co.uk: could not connect to host
+epossurrey.co.uk: could not connect to host
+epossussex.co.uk: could not connect to host
+eposwales.co.uk: could not connect to host
epoxate.com: could not connect to host
eprofitacademy.com: did not receive HSTS header
-epsilon.dk: could not connect to host
eq8.net.au: could not connect to host
eqib.nl: did not receive HSTS header
eqim.me: could not connect to host
@@ -4421,7 +4818,6 @@ equitee.co: did not receive HSTS header
equityflows.com: did not receive HSTS header
er-music.com: could not connect to host
erad.fr: could not connect to host
-erawanarifnugroho.com: did not receive HSTS header
erclab.kr: could not connect to host
erepublik-deutschland.de: did not receive HSTS header
eressea.xyz: could not connect to host
@@ -4431,34 +4827,37 @@ ericloud.tk: could not connect to host
ericorporation.com: did not receive HSTS header
ericyl.com: did not receive HSTS header
eriel.com.br: could not connect to host
+erikwagner.de: did not receive HSTS header
erinlin.com: did not receive HSTS header
eriser.fr: did not receive HSTS header
-ernaehrungsberatung-rapperswil.ch: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
ernaehrungsberatung-zurich.ch: could not connect to host
ernesto.at: could not connect to host
eroimatome.com: could not connect to host
eromixx.com: could not connect to host
erotalia.es: could not connect to host
erotic4me.ch: did not receive HSTS header
-eroticforce.com: could not connect to host
erotische-aanbiedingen.nl: could not connect to host
+erotpo.cz: could not connect to host
errolz.com: did not receive HSTS header
errors.zenpayroll.com: could not connect to host
erspro.net: could not connect to host
eru.me: did not receive HSTS header
+erverydown.ml: could not connect to host
erwinvanlonden.net: did not receive HSTS header
es8888.net: could not connect to host
es888999.com: could not connect to host
-esaborit.ddns.net: could not connect to host
esafar.cz: did not receive HSTS header
esb111.com: could not connect to host
esb111.net: could not connect to host
esb112.com: could not connect to host
esb112.net: could not connect to host
+esb1314.net: could not connect to host
+esb1668.com: could not connect to host
esb16888.com: could not connect to host
esb17888.com: could not connect to host
esb222.net: could not connect to host
esb555.com: could not connect to host
+esb556.com: could not connect to host
esb666.com: could not connect to host
esb666.net: could not connect to host
esb66666.com: could not connect to host
@@ -4485,20 +4884,21 @@ escapees.com: did not receive HSTS header
escolaengenharia.com.br: did not receive HSTS header
escort-fashion.com: could not connect to host
escortdisplay.com: could not connect to host
-escortshotsexy.com: max-age too low: 2592000
+escortshotsexy.com: could not connect to host
escotour.com: did not receive HSTS header
escueladewordpress.com: did not receive HSTS header
esec.rs: did not receive HSTS header
eseth.de: did not receive HSTS header
esh.ink: could not connect to host
-esibun.net: could not connect to host
+eshepperd.com: did not receive HSTS header
+eshtapay.com: could not connect to host
esko.bar: could not connect to host
-eskriett.com: could not connect to host
esln.org: did not receive HSTS header
esn-ypci.com: did not receive HSTS header
esocweb.com: could not connect to host
esoterik.link: could not connect to host
esp-berlin.de: could not connect to host
+esp-desarrolladores.com: could not connect to host
esp.community: did not receive HSTS header
esp8285.store: could not connect to host
espacemontmorency.com: did not receive HSTS header
@@ -4510,6 +4910,7 @@ esprit-cloture.fr: did not receive HSTS header
esquonic.com: could not connect to host
esrs.gov: could not connect to host
essayforum.com: could not connect to host
+essayhave.com: could not connect to host
essaylib.com: could not connect to host
essayscam.org: could not connect to host
essayshark.com: could not connect to host
@@ -4521,13 +4922,15 @@ essenzialeenxovais.com.br: could not connect to host
esseriumani.com: could not connect to host
essexghosthunters.co.uk: did not receive HSTS header
essplusmed.org: could not connect to host
-essteebee.ch: could not connect to host
estaciona.guru: could not connect to host
+estaleiro.org: could not connect to host
+estan.cn: could not connect to host
estebanborges.com: did not receive HSTS header
estespr.com: did not receive HSTS header
estilosapeca.com: could not connect to host
estland.guide: could not connect to host
estoqueinformatica.com.br: could not connect to host
+estudioamazonico.com: could not connect to host
et-buchholz.de: could not connect to host
et180.com: could not connect to host
etangs-magazine.com: could not connect to host
@@ -4538,6 +4941,7 @@ etenendrinken.nu: could not connect to host
eternalsymbols.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
eternitylove.us: could not connect to host
eth9.net: could not connect to host
+etha.nz: max-age too low: 0
ethanfaust.com: did not receive HSTS header
ethanlew.is: could not connect to host
ethantskinner.com: did not receive HSTS header
@@ -4545,6 +4949,7 @@ ether.school: could not connect to host
etheria-software.tk: did not receive HSTS header
ethicalexploiting.com: did not receive HSTS header
ethicall.org.uk: did not receive HSTS header
+ethicaltek.com: could not connect to host
ethil-faer.fr: could not connect to host
ethiobaba.com: could not connect to host
etidni.help: did not receive HSTS header
@@ -4560,7 +4965,7 @@ etula.ga: could not connect to host
etula.me: could not connect to host
etys.no: did not receive HSTS header
euanbaines.com: did not receive HSTS header
-eucl3d.com: could not connect to host
+euanbarrett.com: could not connect to host
euclideanpostulates.xyz: could not connect to host
eucollegetours.com: could not connect to host
euexia.fr: could not connect to host
@@ -4572,14 +4977,15 @@ eung.ga: could not connect to host
eupbor.com: could not connect to host
euph.eu: could not connect to host
eupho.me: could not connect to host
-eupresidency2018.com: did not receive HSTS header
+eupresidency2018.com: could not connect to host
euren.se: could not connect to host
-euroapo.org: max-age too low: 3600
eurocamping.se: could not connect to host
euroescortguide.com: could not connect to host
euroshop24.net: could not connect to host
+euroskano.nl: did not receive HSTS header
eurospecautowerks.com: did not receive HSTS header
eurostrategy.vn.ua: could not connect to host
+euteamo.cn: did not receive HSTS header
evanhandgraaf.nl: did not receive HSTS header
evankurniawan.com: did not receive HSTS header
evasion-energie.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -4587,26 +4993,27 @@ evasioncreole.com: could not connect to host
evdenevenakliyatankara.pw: could not connect to host
evecalm.com: did not receive HSTS header
evedanjailbreak.com: could not connect to host
-evegalaxy.net: did not receive HSTS header
+evegalaxy.net: could not connect to host
+evenstar-gaming.com: could not connect to host
event64.ru: did not receive HSTS header
eventmake.es: could not connect to host
eventplace.me: did not receive HSTS header
events12.com: did not receive HSTS header
-eventsafrica.net: did not receive HSTS header
+eventsafrica.net: could not connect to host
everyarti.st: could not connect to host
everybooks.com: could not connect to host
everydaytherich.com: max-age too low: 7776000
-everygayporn.com: could not connect to host
+everydaywot.com: could not connect to host
everygayporn.xyz: could not connect to host
everylab.org: could not connect to host
everymove.org: could not connect to host
-everything.place: did not receive HSTS header
+everything.place: could not connect to host
everytruckjob.com: did not receive HSTS header
eveseat.net: could not connect to host
eveshaiwu.com: could not connect to host
evi.be: did not receive HSTS header
+evileden.com: could not connect to host
evilnerd.de: did not receive HSTS header
-evilness.nl: could not connect to host
evilsay.com: could not connect to host
evin.ml: could not connect to host
evio.com: did not receive HSTS header
@@ -4621,32 +5028,35 @@ ewex.org: could not connect to host
eworksmedia.com: could not connect to host
exampleessays.com: could not connect to host
excelgum.ca: did not receive HSTS header
-exceptionalbits.com: did not receive HSTS header
-exceptionalservers.com: did not receive HSTS header
+exceptionalbits.com: could not connect to host
exceptionalservices.us: could not connect to host
+excessamerica.com: could not connect to host
exchangecoordinator.com: could not connect to host
-execution.biz.tr: could not connect to host
+exchangeworks.co: did not receive HSTS header
exembit.com: did not receive HSTS header
exfiles.cz: did not receive HSTS header
+exgaywatch.com: could not connect to host
exgravitus.com: could not connect to host
exno.co: could not connect to host
exo.do: could not connect to host
+exoticads.com: could not connect to host
exousiakaidunamis.xyz: could not connect to host
expanddigital.media: did not receive HSTS header
expatads.com: could not connect to host
expatriate.pl: did not receive HSTS header
+expecting.com.br: could not connect to host
experticon.com: did not receive HSTS header
expertmile.com: did not receive HSTS header
-explodie.org: could not connect to host
explodingcamera.com: did not receive HSTS header
exploit-db.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
exploit.cz: did not receive HSTS header
-expo-designers.com: could not connect to host
+expo-designers.com: did not receive HSTS header
+expokohler.com: could not connect to host
expoort.com.br: could not connect to host
-expoundite.net: could not connect to host
+expoundite.net: did not receive HSTS header
expowerhps.com: did not receive HSTS header
+expressemotion.net: could not connect to host
expressfinance.co.za: did not receive HSTS header
-extensibility.biz.tr: could not connect to host
exteriorservices.io: could not connect to host
extramoney.cash: did not receive HSTS header
extrathemeshowcase.net: could not connect to host
@@ -4666,8 +5076,10 @@ eyes-of-universe.eu: did not receive HSTS header
eyesoccer-didikh.rhcloud.com: could not connect to host
eytosh.net: could not connect to host
ez.fi: could not connect to host
+ezgamble.com: could not connect to host
ezimoeko.net: could not connect to host
ezmod.org: could not connect to host
+eznfe.com: could not connect to host
ezorgportaal.nl: could not connect to host
ezrefurb.co.uk: did not receive HSTS header
eztv.ch: did not receive HSTS header
@@ -4675,8 +5087,10 @@ f-rickroll-g.pw: could not connect to host
f-s-u.co.uk: could not connect to host
f00.ca: did not receive HSTS header
f1bigpicture.com: could not connect to host
+f2e.io: did not receive HSTS header
f2f.cash: could not connect to host
f42.net: could not connect to host
+f5movies.top: could not connect to host
f8842.com: could not connect to host
f9digital.com: did not receive HSTS header
faber.io: could not connect to host
@@ -4688,26 +5102,29 @@ fabianmunoz.com: did not receive HSTS header
fabienbaker.com: could not connect to host
fabled.com: did not receive HSTS header
fabriko.fr: did not receive HSTS header
+fabrysociety.org: could not connect to host
fabulouslyyouthfulskin.com: could not connect to host
fabulouslyyouthfulskineyeserum.com: could not connect to host
+facebattle.com: could not connect to host
facebook.ax: could not connect to host
facebooktsukaikata.net: did not receive HSTS header
+facepalmsecurity.com: could not connect to host
facesnf.com: could not connect to host
fachschaft-informatik.de: did not receive HSTS header
facilitrak.com: could not connect to host
+factor.cc: did not receive HSTS header
factorable.net: did not receive HSTS header
factorygw.com: did not receive HSTS header
factorypartsdirect.com: could not connect to host
-factureenlinea.com: did not receive HSTS header
fadednet.com: could not connect to host
fadilus.com: did not receive HSTS header
fads-center.online: could not connect to host
+faeriecakes.be: could not connect to host
faesser.com: did not receive HSTS header
fafatiger.com: could not connect to host
fag.wtf: could not connect to host
fahmed.de: did not receive HSTS header
faidanoi.it: did not receive HSTS header
-fail4free.de: did not receive HSTS header
failproof.be: max-age too low: 604800
faircom.co.za: did not receive HSTS header
fairkey.dk: did not receive HSTS header
@@ -4715,16 +5132,19 @@ fairlyoddtreasures.com: did not receive HSTS header
faisalshuvo.com: did not receive HSTS header
faizan.net: did not receive HSTS header
faizan.xyz: did not receive HSTS header
-fakeletters.org: did not receive HSTS header
+fakeletters.org: could not connect to host
+fakerli.com: could not connect to host
faktura.pl: did not receive HSTS header
falcibiosystems.org: did not receive HSTS header
falconwiz.com: did not receive HSTS header
-falkhusemann.de: could not connect to host
falkp.no: did not receive HSTS header
falkus.net: could not connect to host
+falldennismarketing.com: max-age too low: 2592000
fallenangeldrinks.eu: could not connect to host
fallenangelspirits.uk: could not connect to host
fallingapart.de: could not connect to host
+fallofthecitadel.com: did not receive HSTS header
+false.in.net: could not connect to host
faluninfo.ba: did not receive HSTS header
fame-agency.net: could not connect to host
famep.gov: could not connect to host
@@ -4735,15 +5155,15 @@ familie-sprink.de: could not connect to host
familie-zimmermann.at: could not connect to host
famio.cn: did not receive HSTS header
fan.gov: could not connect to host
+fancy-bridge.com: could not connect to host
fanflow.com: did not receive HSTS header
-fansmade.art: did not receive HSTS header
+fansmade.art: could not connect to host
fant.dk: did not receive HSTS header
fantasticgardenersmelbourne.com.au: did not receive HSTS header
fantasticpestcontrolmelbourne.com.au: did not receive HSTS header
fantasyfootballpundit.com: did not receive HSTS header
fanyl.cn: could not connect to host
faq.lookout.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-faradji.nu: could not connect to host
faraonplay5.com: could not connect to host
faraonplay7.com: could not connect to host
faraonplay8.com: could not connect to host
@@ -4752,13 +5172,15 @@ farces.com: could not connect to host
faretravel.co.uk: could not connect to host
farkas.bz: did not receive HSTS header
farm24.co.uk: could not connect to host
-farmacia-discreto.com: did not receive HSTS header
farmacia.pt: did not receive HSTS header
farmaciaformula.com.br: could not connect to host
farmaciamedicom.com.br: could not connect to host
-fascia.fit: max-age too low: 2592000
+fascia.fit: could not connect to host
fashion.net: did not receive HSTS header
fashioncare.cz: did not receive HSTS header
+fashiondays.bg: max-age too low: 0
+fashiondays.hu: max-age too low: 0
+fashiondays.ro: max-age too low: 0
fashionholic.my: did not receive HSTS header
fashionoutfits24.com: did not receive HSTS header
fasset.jp: could not connect to host
@@ -4774,6 +5196,7 @@ fatdoge.cn: did not receive HSTS header
fatgeekflix.net: could not connect to host
fatherhood.gov: did not receive HSTS header
fatlossguide.xyz: could not connect to host
+fator25.com.br: could not connect to host
fatox.de: could not connect to host
fatwin.pw: could not connect to host
fatzebra.com.au: max-age too low: 0
@@ -4781,6 +5204,7 @@ favorit.club: did not receive HSTS header
fawkex.me: could not connect to host
faxreader.net: could not connect to host
fayolle.info: did not receive HSTS header
+fbi.pw: did not receive HSTS header
fbook.top: could not connect to host
fbox.li: could not connect to host
fcapartsdb.com: could not connect to host
@@ -4788,7 +5212,7 @@ fcp.cn: could not connect to host
fdj.im: could not connect to host
fdt.name: did not receive HSTS header
feard.space: could not connect to host
-fed51.com: did not receive HSTS header
+fed51.com: could not connect to host
fedbizopps.gov: could not connect to host
fedemo.top: did not receive HSTS header
federalregister.gov: did not receive HSTS header
@@ -4796,26 +5220,27 @@ fedn.it: could not connect to host
fedo.moe: could not connect to host
feedstringer.com: could not connect to host
feedthebot.com: did not receive HSTS header
-feelmom.com: could not connect to host
+feegg.com.br: could not connect to host
+feelgood-workouts.de: did not receive HSTS header
fefore.com: did not receive HSTS header
fegans.org.uk: did not receive HSTS header
feirlane.org: could not connect to host
+feisbed.com: could not connect to host
feist.io: could not connect to host
feitobrasilcosmeticos.com.br: did not receive HSTS header
felger-times.fr: could not connect to host
-felicifia.org: could not connect to host
feliwyn.fr: did not receive HSTS header
+felixhefner.de: did not receive HSTS header
felixrr.pro: could not connect to host
femaledom.xyz: could not connect to host
+femdombbw.com: could not connect to host
feminists.co: could not connect to host
fengyadi.com: could not connect to host
-fengyi.tel: did not receive HSTS header
fenixhost.com.br: could not connect to host
fenno.net: could not connect to host
fensdorf.de: did not receive HSTS header
fensterbau-mutscheller.de: could not connect to host
fenteo.com: could not connect to host
-feragon.net: did not receive HSTS header
feras-alhajjaji.com: could not connect to host
feriahuamantla.com: could not connect to host
ferienwohnungen-lastminute.de: could not connect to host
@@ -4826,6 +5251,7 @@ ferrolatino.com: could not connect to host
feschiyan.com: could not connect to host
festember.com: did not receive HSTS header
festival.house: did not receive HSTS header
+festivalxdentro.com: did not receive HSTS header
festrip.com: could not connect to host
fetch.co.uk: did not receive HSTS header
fetclips.se: could not connect to host
@@ -4834,6 +5260,7 @@ fettbrot.tk: did not receive HSTS header
feudaltactics.com: could not connect to host
feuerwehr-dachaufsetzer.de: could not connect to host
fexmen.com: could not connect to host
+ff-bg.xyz: could not connect to host
ffh.me: could not connect to host
ffl123.com: did not receive HSTS header
fgequipamentos.com.br: did not receive HSTS header
@@ -4851,31 +5278,35 @@ fiendishmasterplan.com: did not receive HSTS header
fierman.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
fierman.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
fierman.us: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-fifieldtech.com: could not connect to host
fiftyshadesofluca.ml: could not connect to host
fig.co: did not receive HSTS header
fig.ms: could not connect to host
fightr.co: could not connect to host
+figura.cz: did not receive HSTS header
figura.im: did not receive HSTS header
figuurzagers.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
fiksel.info: could not connect to host
fikt.space: could not connect to host
+filebox.moe: could not connect to host
filebox.space: did not receive HSTS header
filedir.com: did not receive HSTS header
fileio.io: could not connect to host
fileon.com: could not connect to host
filesense.com: could not connect to host
-filewall.de: could not connect to host
+filewall.de: did not receive HSTS header
filey.co.uk: did not receive HSTS header
filhomes.ph: could not connect to host
fillitupchallenge.eu: did not receive HSTS header
fillmysuitca.se: did not receive HSTS header
+film.photography: did not receive HSTS header
+film.photos: did not receive HSTS header
+filmatiporno.xxx: could not connect to host
filme-online.eu.com: did not receive HSTS header
filmesubtitrate2017.online: could not connect to host
filo.xyz: did not receive HSTS header
filoitoupediou.gr: did not receive HSTS header
finalgear.com: could not connect to host
-finalvpn.com: could not connect to host
+finalvpn.com: did not receive HSTS header
financier.io: did not receive HSTS header
financieringsportaal.nl: did not receive HSTS header
finanzkontor.net: could not connect to host
@@ -4893,13 +5324,14 @@ finiteheap.com: did not receive HSTS header
finn.io: did not receive HSTS header
finstererlebnis.de: could not connect to host
finsterlebnis.de: did not receive HSTS header
+fintandunleavy.com: could not connect to host
fiodental.com.br: did not receive HSTS header
fiork.com: did not receive HSTS header
fire-wolf.com: could not connect to host
fireandelectrical.co.uk: did not receive HSTS header
firebaseio-demo.com: could not connect to host
firebaseio.com: could not connect to host (error ignored - included regardless)
-firebird.io: could not connect to host
+firebird.io: did not receive HSTS header
firefall.rocks: could not connect to host
firehost.com: could not connect to host
fireinthedeep.com: could not connect to host
@@ -4909,14 +5341,14 @@ fireorbit.de: did not receive HSTS header
firepeak.ru: could not connect to host
fireworkcoaching.com: did not receive HSTS header
firexarxa.de: could not connect to host
-firmenverzeichnis.nu: could not connect to host
+firmament.space: could not connect to host
+firmenverzeichnis.nu: did not receive HSTS header
first-time-offender.com: could not connect to host
firstchoicepool.com: did not receive HSTS header
firstdogonthemoon.com.au: did not receive HSTS header
firstforex.co.uk: did not receive HSTS header
firstlook.org: did not receive HSTS header
-fischers.it: could not connect to host
-fischers.srv.br: could not connect to host
+fischers.cc: could not connect to host
fiscoeconti.it: did not receive HSTS header
fishfinders.info: did not receive HSTS header
fiskestang.com: did not receive HSTS header
@@ -4928,6 +5360,7 @@ fitnesswerk.de: could not connect to host
fitqbe.com: did not receive HSTS header
fitshop.com.br: could not connect to host
fitsw.com: did not receive HSTS header
+fiuxy.org: could not connect to host
five.vn: did not receive HSTS header
fivestarsitters.com: did not receive HSTS header
fivestepfunnels.com: could not connect to host
@@ -4956,7 +5389,7 @@ fl0666.com: did not receive HSTS header
fl0777.com: did not receive HSTS header
fl0888.com: did not receive HSTS header
fl0999.com: did not receive HSTS header
-flagfic.com: did not receive HSTS header
+flagfic.com: could not connect to host
flags.ninja: could not connect to host
flair.co: max-age too low: 7889238
flairbros.at: could not connect to host
@@ -4972,19 +5405,27 @@ flatbellyreview.com: max-age too low: 2592000
flawcheck.com: could not connect to host
flc111.com: did not receive HSTS header
flc999.com: max-age too low: 129600
+fleetcor.at: could not connect to host
+fleetcor.de: could not connect to host
+fleetcor.fr: could not connect to host
+fleetcor.hu: could not connect to host
+fleetcor.nl: could not connect to host
+fleetcor.pl: could not connect to host
flemingtonaudiparts.com: could not connect to host
+fleurette.me: could not connect to host
fleursdesoleil.fr: did not receive HSTS header
flexdrukker.nl: could not connect to host
flexinvesting.fi: could not connect to host
fliexer.com: could not connect to host
flightschoolusa.com: did not receive HSTS header
+fling.dating: could not connect to host
flipagram.com: did not receive HSTS header
flipbell.com: did not receive HSTS header
flipkey.com: did not receive HSTS header
-flirchi.com: could not connect to host
+flirchi.com: did not receive HSTS header
flixtor.net: could not connect to host
-floless.co.uk: did not receive HSTS header
-flomeyer.de: could not connect to host
+flkrpxl.com: max-age too low: 86400
+floless.co.uk: could not connect to host
floorball-haunwoehr.de: did not receive HSTS header
flopy.club: could not connect to host
florafiora.com.br: did not receive HSTS header
@@ -4996,6 +5437,7 @@ floridaescapes.co.uk: did not receive HSTS header
florinapp.com: could not connect to host
florispoort.nl: did not receive HSTS header
floro.me: did not receive HSTS header
+flosserver.de: could not connect to host
floth.at: could not connect to host
flouartistique.ch: could not connect to host
flow.pe: could not connect to host
@@ -5003,18 +5445,21 @@ flowerandplant.org: did not receive HSTS header
flowersandclouds.com: could not connect to host
floweslawncare.com: could not connect to host
flowlo.me: could not connect to host
+flox.io: could not connect to host
floydm.com: did not receive HSTS header
flugplatz-edvc.de: could not connect to host
+flugsportvereinigungcelle.de: did not receive HSTS header
flugstadplasticsurgery.com: did not receive HSTS header
fluidojobs.com: could not connect to host
fluitbeurt.nl: could not connect to host
flukethoughts.com: did not receive HSTS header
-flurrybridge.com: did not receive HSTS header
+flurrybridge.com: could not connect to host
flushstudios.com: did not receive HSTS header
flyaces.com: could not connect to host
flybunnyfly.dk: did not receive HSTS header
flygpost.com: did not receive HSTS header
flyingdoggy.net: could not connect to host
+flyingspaghettimonsterdonationsfund.nl: could not connect to host
flyp.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
flyspace.ga: did not receive HSTS header
flyss.net: could not connect to host
@@ -5033,15 +5478,15 @@ fohome.ca: could not connect to host
fokan.ch: did not receive HSTS header
foliekonsulenten.dk: did not receive HSTS header
folioapp.io: did not receive HSTS header
-fondanastasia.ru: could not connect to host
+fondanastasia.ru: did not receive HSTS header
+fondy.ru: did not receive HSTS header
foneo.com: could not connect to host
fonetiq.io: could not connect to host
-fonseguin.ca: did not receive HSTS header
fontawesome.com: did not receive HSTS header
foo: could not connect to host
food4health.guide: could not connect to host
+foodacademy.capetown: could not connect to host
foodbuddy.ch: could not connect to host
-foodev.de: could not connect to host
foodiebox.no: did not receive HSTS header
foodies.my: did not receive HSTS header
foodievenues.com: could not connect to host
@@ -5064,27 +5509,26 @@ forestfinance.fr: did not receive HSTS header
foreveralone.io: could not connect to host
foreveryoung.pt: did not receive HSTS header
forex-dan.com: did not receive HSTS header
+forex-plus.com: did not receive HSTS header
forgix.com: could not connect to host
forlagetmarx.dk: did not receive HSTS header
-formadmin.com: could not connect to host
-formaliteo.com: could not connect to host
+formadmin.com: did not receive HSTS header
+formaliteo.com: did not receive HSTS header
formazioneopen.it: could not connect to host
formersessalaries.com: did not receive HSTS header
formula.cf: could not connect to host
forplanetsake.com: could not connect to host
-forschbach-janssen.de: could not connect to host
+forplayers.pl: could not connect to host
forsyththeatre.com: could not connect to host
fortricks.in: did not receive HSTS header
fortuna-loessnitz.de: could not connect to host
fortuna-s.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
fortworth.ch: did not receive HSTS header
-forty-two.nl: did not receive HSTS header
forty2.eu: did not receive HSTS header
forum.linode.com: did not receive HSTS header
forumjuridico.org: did not receive HSTS header
forus.be: could not connect to host
foryoucosmeticos.com.br: could not connect to host
-foshanshequ.com: could not connect to host
fossewayflowers.co.uk: could not connect to host
fossewayflowers.com: could not connect to host
fossewaygardencentre.co.uk: did not receive HSTS header
@@ -5092,13 +5536,16 @@ fossgruppen.se: could not connect to host
fotiu.com: could not connect to host
fotoallerlei.com: did not receive HSTS header
fotocerita.net: could not connect to host
+fotofaerie.net: could not connect to host
fotogiraffe.ru: did not receive HSTS header
fotografosexpertos.com: did not receive HSTS header
+fotonjan.com: could not connect to host
fotopasja.info: could not connect to host
+fotostravestisbr.com: could not connect to host
fourchin.net: could not connect to host
fourwheelpartloanssimple.com: did not receive HSTS header
-foxdev.io: did not receive HSTS header
-foxelbox.com: did not receive HSTS header
+foxdev.io: could not connect to host
+foxelbox.com: could not connect to host
foxes.no: could not connect to host
foxley-farm.co.uk: did not receive HSTS header
foxley-seeds.co.uk: did not receive HSTS header
@@ -5106,15 +5553,21 @@ foxleyseeds.co.uk: could not connect to host
foxmay.co.uk: could not connect to host
foxtrot.pw: could not connect to host
foxyslut.com: could not connect to host
+foyale.io: could not connect to host
+fpki.sh: could not connect to host
+fptravelling.com: could not connect to host
fr0zenbits.io: could not connect to host
fr33d0m.link: could not connect to host
fragilesolar.cf: could not connect to host
-fragnic.com: did not receive HSTS header
+fragnic.com: could not connect to host
fralef.me: did not receive HSTS header
francesca-and-lucas.com: did not receive HSTS header
+francescoservida.ch: could not connect to host
francevpn.xyz: could not connect to host
francois-vidit.com: did not receive HSTS header
frangor.info: did not receive HSTS header
+frankedier.com: did not receive HSTS header
+frankl.in: did not receive HSTS header
franklinhua.com: could not connect to host
franta.biz: did not receive HSTS header
franta.email: did not receive HSTS header
@@ -5133,7 +5586,6 @@ freakyawesome.ca: could not connect to host
freakyawesome.club: could not connect to host
freakyawesome.co: could not connect to host
freakyawesome.co.uk: could not connect to host
-freakyawesome.com: could not connect to host
freakyawesome.company: could not connect to host
freakyawesome.email: could not connect to host
freakyawesome.events: could not connect to host
@@ -5192,19 +5644,24 @@ freakyawesometeam.com: could not connect to host
freakyawesometheme.com: could not connect to host
freakyawesomethemes.com: could not connect to host
freakyawesomewp.com: could not connect to host
-freddythechick.uk: did not receive HSTS header
+freddythechick.uk: could not connect to host
+fredericcote.com: could not connect to host
fredliang.cn: could not connect to host
fredtec.ru: could not connect to host
free8.xyz: could not connect to host
freeasinlliure.org: did not receive HSTS header
-freeassangenow.org: could not connect to host
+freeassangenow.org: did not receive HSTS header
freeben666.fr: could not connect to host
+freeblog.me: could not connect to host
freebookmakerbets.com.au: did not receive HSTS header
freebus.org: could not connect to host
+freecam2cam.site: could not connect to host
+freecookies.nl: did not receive HSTS header
freedomrealtyoftexas.com: did not receive HSTS header
freedomvote.nl: could not connect to host
freeexampapers.com: could not connect to host
freeflow.tv: could not connect to host
+freehao123.cn: could not connect to host
freejidi.com: could not connect to host
freekdevries.nl: did not receive HSTS header
freelanced.co.za: could not connect to host
@@ -5217,8 +5674,10 @@ freesoftwaredriver.com: could not connect to host
freesounding.com: did not receive HSTS header
freesounding.ru: did not receive HSTS header
freesourcestl.org: did not receive HSTS header
+freesquare.net: did not receive HSTS header
freethought.org.au: could not connect to host
freeutopia.org: did not receive HSTS header
+frenzel.dk: could not connect to host
freqlabs.com: did not receive HSTS header
freshfind.xyz: could not connect to host
freshlymind.com: did not receive HSTS header
@@ -5227,7 +5686,6 @@ frforms.com: did not receive HSTS header
frickelboxx.de: could not connect to host
frickenate.com: could not connect to host
fridaperfumaria.com.br: could not connect to host
-fridolinka.cz: did not receive HSTS header
friedhelm-wolf.de: could not connect to host
friendica.ch: could not connect to host
friendlyfiregameshow.com: could not connect to host
@@ -5237,18 +5695,23 @@ frodriguez.xyz: could not connect to host
froehlich.it: did not receive HSTS header
froggstack.de: could not connect to host
frolov.net: could not connect to host
+from-the-net.com: could not connect to host
fromix.de: could not connect to host
fromlemaytoz.com: could not connect to host
front-end.dog: could not connect to host
frontisme.nl: did not receive HSTS header
frontline.cloud: did not receive HSTS header
frontline6.com: did not receive HSTS header
+frontlinemessenger.com: did not receive HSTS header
frontmin.com: did not receive HSTS header
frost-ci.xyz: could not connect to host
-frostbytes.net: did not receive HSTS header
+frostbytes.net: could not connect to host
frosty-gaming.xyz: could not connect to host
frp-roleplay.de: could not connect to host
+frprn.com: could not connect to host
+frprn.xxx: could not connect to host
frsis2017.com: could not connect to host
+fruitscale.com: could not connect to host
fruitusers.com: could not connect to host
frumious.fyi: could not connect to host
frusky.net: could not connect to host
@@ -5256,12 +5719,14 @@ fs-gamenet.de: could not connect to host
fsf.moe: did not receive HSTS header
fsfi.is: could not connect to host
fsinf.at: did not receive HSTS header
+fsk.fo: did not receive HSTS header
fspphoto.com: could not connect to host
fsradio.eu: did not receive HSTS header
fsrs.gov: could not connect to host
fstatic.io: could not connect to host
fstfy.de: could not connect to host
-ftc.gov: did not receive HSTS header
+fsvoboda.cz: could not connect to host
+ftang.de: could not connect to host
ftctele.com: could not connect to host
fteproxy.org: did not receive HSTS header
ftgho.com: could not connect to host
@@ -5275,41 +5740,52 @@ fudanshi.org: could not connect to host
fuelministry.com: did not receive HSTS header
fugle.de: could not connect to host
fuitedeau.ch: could not connect to host
+fujianshipbuilding.com: could not connect to host
fukuko.biz: could not connect to host
fukuko.xyz: could not connect to host
fukuoka-cityliner.jp: did not receive HSTS header
fukushima-web.com: did not receive HSTS header
fuli.am: max-age too low: 129600
fulilingyu.info: could not connect to host
-fuliydys.com: did not receive HSTS header
+fuliydys.com: could not connect to host
+fullpackage.co.uk: did not receive HSTS header
+fulltxt.ml: could not connect to host
fullytrained.co.uk: could not connect to host
fumiware.com: could not connect to host
+fun25.tk: could not connect to host
fun9.cc: could not connect to host
fun99.cc: could not connect to host
funarena.com.ua: did not receive HSTS header
fundacionfranciscofiasco.org: could not connect to host
fundacionhijosdelsol.org: could not connect to host
+fundayltd.com: could not connect to host
funderburg.me: did not receive HSTS header
fungame.eu: did not receive HSTS header
funi4u.com: could not connect to host
funideas.org: could not connect to host
funkes-ferien.de: did not receive HSTS header
-funkner.ru: could not connect to host
funkyweddingideas.com.au: could not connect to host
+funnelweb.xyz: could not connect to host
funny-joke-pictures.com: did not receive HSTS header
funnyang.com: could not connect to host
funrun.com: did not receive HSTS header
funtastic-event-hire.co.uk: did not receive HSTS header
funtastic.ie: could not connect to host
+funtimebourne.co.uk: could not connect to host
fuorifuocogenova.it: did not receive HSTS header
furi.ga: could not connect to host
furiffic.com: did not receive HSTS header
+furikake.xyz: did not receive HSTS header
furnation.com: could not connect to host
furnishedproperty.com.au: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+furry.agency: could not connect to host
furry.be: did not receive HSTS header
furtivelook.com: did not receive HSTS header
+fusa-miyamoto.jp: could not connect to host
fusedrops.com: did not receive HSTS header
fusionmate.com: could not connect to host
+fuskator.com: could not connect to host
+fussell.io: could not connect to host
futbol11.com: did not receive HSTS header
futbolvivo.tv: did not receive HSTS header
futos.de: could not connect to host
@@ -5322,28 +5798,30 @@ futuristarchitecture.com: did not receive HSTS header
fuvpn.com: could not connect to host
fuxwerk.de: could not connect to host
fuzoku-sodan.com: could not connect to host
+fuzoku.jp: could not connect to host
fwei.tk: did not receive HSTS header
fws.gov: did not receive HSTS header
+fwww7.com: did not receive HSTS header
fxgame.online: could not connect to host
fxpig-ib.com: could not connect to host
fxwebstudio.com.au: max-age too low: 0
-fyfywka.com: could not connect to host
fyodorpi.com: did not receive HSTS header
fyol.pw: could not connect to host
-fyol.xyz: did not receive HSTS header
fysiohaenraets.nl: did not receive HSTS header
fzn.io: did not receive HSTS header
-fzslm.me: did not receive HSTS header
+fzslm.me: could not connect to host
g-i-s.vn: did not receive HSTS header
g-rickroll-o.pw: could not connect to host
g01.in.ua: could not connect to host
g1jeu.com: could not connect to host
+g1s.cc: could not connect to host
g2-inc.com: max-age too low: 600
g2a.co: did not receive HSTS header
g2g.com: did not receive HSTS header
g4w.co: could not connect to host (error ignored - included regardless)
g5led.nl: could not connect to host
g77.ca: could not connect to host
+gaanbaksho.com.au: did not receive HSTS header
gaasuper6.com: could not connect to host
gabber.scot: could not connect to host
gabethebabetv.com: could not connect to host
@@ -5354,10 +5832,13 @@ gablaxian.com: max-age too low: 2592000
gabriele-kluge.de: could not connect to host
gaelleetarnaud.com: did not receive HSTS header
gafachi.com: could not connect to host
+gagor.pl: could not connect to host
gaichanh.com: did not receive HSTS header
+gailfellowsphotography.com: could not connect to host
gainesvillegoneaustin.org: did not receive HSTS header
-gaiserik.com: could not connect to host
+gaiserik.com: did not receive HSTS header
gaite.me: did not receive HSTS header
+gajas18.com: could not connect to host
gakkainavi4.com: could not connect to host
galardi.org: could not connect to host
galena.io: could not connect to host
@@ -5378,7 +5859,6 @@ gamebits.net: did not receive HSTS header
gamecave.de: could not connect to host
gamecdn.com: could not connect to host
gamechasm.com: could not connect to host
-gameclue.jp: did not receive HSTS header
gamefund.me: could not connect to host
gamehacks.me: could not connect to host
gameink.net: did not receive HSTS header
@@ -5391,12 +5871,11 @@ gamepader.com: could not connect to host
gameparade.de: could not connect to host
gameparagon.info: could not connect to host
gamepiece.com: did not receive HSTS header
-gamereader.de: could not connect to host
gamerpoets.com: did not receive HSTS header
gamers-life.fr: could not connect to host
gamerslair.org: did not receive HSTS header
gamerz-point.de: could not connect to host
-gamerz-stream.com: could not connect to host
+gamerz-stream.com: did not receive HSTS header
gamesdepartment.co.uk: could not connect to host
gameserver-sponsor.de: did not receive HSTS header
gamesurferapp.com: could not connect to host
@@ -5404,13 +5883,15 @@ gameswitchers.uk: could not connect to host
gametium.com: could not connect to host
gametium.es: could not connect to host
gamhealth.net: could not connect to host
-gamingmedia.eu: could not connect to host
+gamingmedia.eu: did not receive HSTS header
gamingreinvented.com: did not receive HSTS header
gamoice.com: did not receive HSTS header
gampenhof.de: could not connect to host
gangnam-club.com: could not connect to host
gangnam-karaoke.com: could not connect to host
ganhonet.com.br: did not receive HSTS header
+ganzgraph.de: did not receive HSTS header
+gaon.network: could not connect to host
gaphag.ddns.net: could not connect to host
gar-nich.net: could not connect to host
garage-abri-chalet.fr: did not receive HSTS header
@@ -5421,7 +5902,6 @@ garcinia--cambogia.com: could not connect to host
garciniacambogiareviewed.co: did not receive HSTS header
garden.trade: could not connect to host
gardencarezone.com: did not receive HSTS header
-garethkirk.com: did not receive HSTS header
garfieldairlines.net: did not receive HSTS header
garten-bau.ch: did not receive HSTS header
garten-diy.de: could not connect to host
@@ -5429,40 +5909,48 @@ gasbarkenora.com: could not connect to host
gasnews.net: could not connect to host
gasser-daniel.ch: did not receive HSTS header
gastauftritt.net: did not receive HSTS header
+gastritisolucion.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
gatapro.net: could not connect to host
+gatemotorsumhlanga.co.za: could not connect to host
gatemoves.com: could not connect to host
gateworld.fr: did not receive HSTS header
+gatilagata.com.br: could not connect to host
gatomix.net: could not connect to host
gatorsa.es: could not connect to host
gaussorgues.me: could not connect to host
gautham.pro: could not connect to host
gavick.com: did not receive HSTS header
+gay-sissies.com: could not connect to host
gaycc.cc: could not connect to host
gaygeeks.de: could not connect to host
+gaysfisting.com: could not connect to host
+gaytorrent.ru: could not connect to host
+gayxsite.com: could not connect to host
gazflynn.com: did not receive HSTS header
-gc-mc.de: did not receive HSTS header
+gbit.xyz: could not connect to host
gc.net: could not connect to host
gchoic.com: max-age too low: 7889238
gchp.ie: did not receive HSTS header
gdegem.org: did not receive HSTS header
gdevpenze.ru: could not connect to host
gdprhallofshame.com: could not connect to host
+gdutnic.com: could not connect to host
gdz-otvety.com: could not connect to host
gdz.tv: could not connect to host
gear-acquisition-syndrome.community: could not connect to host
+geaskb.nl: could not connect to host
geblitzt.de: did not receive HSTS header
gedankenbude.info: could not connect to host
geekbaba.com: could not connect to host
geekcast.co.uk: did not receive HSTS header
+geekchimp.com: did not receive HSTS header
geekdt.com: could not connect to host
geekmind.org: max-age too low: 172800
-geeks.berlin: did not receive HSTS header
+geeks.berlin: could not connect to host
geeks.lgbt: could not connect to host
-geeks.one: did not receive HSTS header
geektimes.com: did not receive HSTS header
+geeky.software: could not connect to host
geemo.top: could not connect to host
-geertdegraaf.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-gehaowu.com: did not receive HSTS header
gehrke.nrw: could not connect to host
geigr.de: could not connect to host
geiser.io: did not receive HSTS header
@@ -5477,7 +5965,7 @@ generationnext.pl: could not connect to host
genesischangelog.com: could not connect to host
geneve.guide: could not connect to host
genia-life.de: could not connect to host
-genie-seiner-generation.de: could not connect to host
+genie-seiner-generation.de: did not receive HSTS header
genneve.com: did not receive HSTS header
genoog.com: could not connect to host
genossen.ru: could not connect to host
@@ -5501,6 +5989,7 @@ gereon.ch: could not connect to host
geri.be: could not connect to host
germanticz.de: could not connect to host
gers-authentique.com: could not connect to host
+gerum.dynv6.net: did not receive HSTS header
geschenkly.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
geschmackspiloten.de: did not receive HSTS header
gesiwista.net: did not receive HSTS header
@@ -5508,7 +5997,6 @@ gesunde-smoothies.de: did not receive HSTS header
gesundes-im-napf.de: did not receive HSTS header
get-asterisk.ru: could not connect to host
get-cctv.com: could not connect to host
-get-it-live.de: could not connect to host
get.zenpayroll.com: did not receive HSTS header
getable.com: did not receive HSTS header
getblys.com.au: did not receive HSTS header
@@ -5533,7 +6021,6 @@ getgeek.nu: could not connect to host
getgeek.pl: could not connect to host
getgeek.se: did not receive HSTS header
getinternet.de: did not receive HSTS header
-getitlive.de: could not connect to host
getkai.co.nz: did not receive HSTS header
getlantern.org: did not receive HSTS header
getlifti.com: could not connect to host
@@ -5549,46 +6036,48 @@ getremembrall.com: could not connect to host
getronics.care: could not connect to host
getsello.com: could not connect to host
getserum.xyz: could not connect to host
+getsetupfile.com: did not receive HSTS header
getshifter.io: did not receive HSTS header
getspeaker.com: did not receive HSTS header
getspire.com: could not connect to host
-getswadeshi.com: could not connect to host
getwarden.net: could not connect to host
getwashdaddy.com: could not connect to host
-getyeflask.com: could not connect to host
getyourphix.tk: could not connect to host
gevaulug.fr: could not connect to host
gfbouncycastles.co.uk: did not receive HSTS header
gfhgiro.nl: did not receive HSTS header
gfm.tech: could not connect to host
gfoss.gr: could not connect to host
-gfw.moe: did not receive HSTS header
+gfw.moe: could not connect to host
gfwsb.ml: could not connect to host
gglks.com: could not connect to host
+ggobbo.com: could not connect to host
ggrks-asano.com: could not connect to host
ggss.cf: could not connect to host
ggss.ml: could not connect to host
gh16.com.ar: could not connect to host
-ghaglund.se: could not connect to host
-ghcif.de: could not connect to host
+ghcif.de: did not receive HSTS header
gheorghe-sarcov.ga: could not connect to host
gheorghesarcov.ga: could not connect to host
gheorghesarcov.tk: could not connect to host
ghi.gov: could not connect to host
ghibli.studio: did not receive HSTS header
-ghid-pitesti.ro: did not receive HSTS header
ghkim.net: could not connect to host
+ghuntley.com: max-age too low: 0
giakki.eu: could not connect to host
gianlucapartengo.photography: did not receive HSTS header
giant-powerfit.co.uk: did not receive HSTS header
gibraltar-firma.com: did not receive HSTS header
+giddyaunt.net: could not connect to host
gidea.nu: could not connect to host
giegler.software: did not receive HSTS header
giftgofers.com: max-age too low: 2592000
+giftservices.nl: did not receive HSTS header
gifzilla.net: could not connect to host
gigacloud.org: could not connect to host
gigawattz.com: could not connect to host
gigiscloud.servebeer.com: could not connect to host
+gigolodavid.be: could not connect to host
gilcloud.com: could not connect to host
gilgaz.com: did not receive HSTS header
gillet-cros.fr: could not connect to host
@@ -5596,6 +6085,7 @@ gilly.berlin: did not receive HSTS header
gilroywestwood.org: did not receive HSTS header
gincher.net: did not receive HSTS header
gingali.de: did not receive HSTS header
+ginie.de: did not receive HSTS header
ginijony.com: did not receive HSTS header
ginkel.com: did not receive HSTS header
gintenreiter-photography.com: did not receive HSTS header
@@ -5605,7 +6095,6 @@ gip-carif-idf.net: could not connect to host
gip-carif-idf.org: could not connect to host
gipsamsfashion.com: could not connect to host
gipsic.com: did not receive HSTS header
-girlsnet.work: could not connect to host
gis3m.org: did not receive HSTS header
gisac.org: did not receive HSTS header
gistfy.com: could not connect to host
@@ -5622,14 +6111,13 @@ gixtools.uk: could not connect to host
gizzo.sk: could not connect to host
glabiatoren-kst.de: could not connect to host
gladystudio.com: did not receive HSTS header
-glahcks.com: 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
gle: could not connect to host
glenavy.tk: could not connect to host
glentakahashi.com: could not connect to host
-glicerina.online: could not connect to host
+glicerina.online: did not receive HSTS header
glittersjabloon.nl: did not receive HSTS header
glitzmirror.com: could not connect to host
glnpo.gov: could not connect to host
@@ -5648,7 +6136,7 @@ globalsites.nl: did not receive HSTS header
globaltennis.ca: could not connect to host
globalvisions-events.ch: could not connect to host
globalvisions-events.com: could not connect to host
-globuli-info.de: did not receive HSTS header
+globuli-info.de: could not connect to host
gloomyspark.com: could not connect to host
glotter.com: did not receive HSTS header
gloucesterphotographer.com: did not receive HSTS header
@@ -5656,12 +6144,12 @@ glubbforum.de: did not receive HSTS header
glutenfreiheit.at: did not receive HSTS header
glws.org: did not receive HSTS header
glyph.ws: could not connect to host
-gm-assicurazioni.it: did not receive HSTS header
+gm-assicurazioni.it: could not connect to host
gmail.com: did not receive HSTS header (error ignored - included regardless)
-gmantra.org: did not receive HSTS header
gmanukyan.com: could not connect to host
gmat.ovh: could not connect to host
-gmoes.at: could not connect to host
+gmoes.at: did not receive HSTS header
+gmslparking.co.uk: did not receive HSTS header
gnaptracker.tk: could not connect to host
gnom.me: could not connect to host
gnosticjade.net: did not receive HSTS header
@@ -5671,17 +6159,17 @@ go4it.solutions: did not receive HSTS header
goabonga.com: could not connect to host
goalsetup.com: did not receive HSTS header
goaltree.ch: did not receive HSTS header
-goapunks.net: could not connect to host
+goapunks.net: did not receive HSTS header
goarmy.eu: could not connect to host
goat.chat: did not receive HSTS header
goat.xyz: could not connect to host
goben.ch: could not connect to host
goblins.net: did not receive HSTS header
goblinsatwork.com: could not connect to host
+gocardless.com: did not receive HSTS header
godrealms.com: could not connect to host
goedeke.ml: could not connect to host
goerner.me: did not receive HSTS header
-goerres2014.de: could not connect to host
goge.site: could not connect to host
gogenenglish.com: could not connect to host
gogetssl.com: did not receive HSTS header
@@ -5695,22 +6183,24 @@ goldendata.io: could not connect to host
goldfelt.com: could not connect to host
goldminer.ga: could not connect to host
goldpros.com: did not receive HSTS header
+goldsky.com.au: did not receive HSTS header
goldwater.gov: could not connect to host
goldwaterfoundation.gov: could not connect to host
goldwaterscholarship.gov: could not connect to host
golearn.gov: could not connect to host
golfburn.com: could not connect to host
golocal-media.de: could not connect to host
-gomiblog.com: did not receive HSTS header
gong8.win: could not connect to host
+gongjianwei.com: could not connect to host
+gonkar.com: did not receive HSTS header
gonzalosanchez.mx: did not receive HSTS header
goodeats.nyc: did not receive HSTS header
-goodfeels.net: could not connect to host
goodfurday.ca: could not connect to host
goodmengroup.de: did not receive HSTS header
goods-memo.net: did not receive HSTS header
goodsex4all.com.br: could not connect to host
goodtech.com.br: could not connect to host
+goodvibesblog.com: could not connect to host
goodwin43.ru: could not connect to host
goodyearsotn.co.uk: could not connect to host
google: could not connect to host (error ignored - included regardless)
@@ -5723,31 +6213,31 @@ goozz.nl: did not receive HSTS header
gopay.cz: did not receive HSTS header
gopokego.cz: could not connect to host
goranrango.ch: could not connect to host
-gordonobrecht.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
gorognyelv.hu: could not connect to host
gosharewood.com: did not receive HSTS header
goshop.cz: did not receive HSTS header
+goshow.tv: could not connect to host
gostream.asia: could not connect to host
gotgenes.com: could not connect to host
goto.google.com: did not receive HSTS header (error ignored - included regardless)
gotobrno.cz: did not receive HSTS header
gotocloud.ru: could not connect to host
+gotowned.org: could not connect to host
gotspot.com: could not connect to host
gottfridsberg.org: could not connect to host
-gottfriedfeyen.com: could not connect to host
+gottfriedfeyen.com: did not receive HSTS header
goubi.me: did not receive HSTS header
goujianwen.com: did not receive HSTS header
goukon.ru: could not connect to host
gourmettia.com: did not receive HSTS header
-gouthro-goteborg.se: could not connect to host
+gouthro-goteborg.se: did not receive HSTS header
gouv.ovh: did not receive HSTS header
gov.ax: could not connect to host
goverage.org: could not connect to host
govillemo.ca: did not receive HSTS header
-gowe.wang: could not connect to host
gozadentro.com: could not connect to host
gozel.com.tr: did not receive HSTS header
gpalabs.com: could not connect to host
@@ -5757,21 +6247,24 @@ gplintegratedit.com: could not connect to host
gpo.gov: did not receive HSTS header
gpstuner.com: did not receive HSTS header
graavaapi.elasticbeanstalk.com: could not connect to host
+grabi.ga: could not connect to host
gracechurchpc.net: could not connect to host
graceful-project.eu: did not receive HSTS header
gracesofgrief.com: could not connect to host
grachtenpandverkopen.nl: could not connect to host
-grademymac.com: could not connect to host
-grademypc.com: could not connect to host
+grademymac.com: did not receive HSTS header
+grademypc.com: did not receive HSTS header
+gradenotify.com: could not connect to host
grads360.org: could not connect to host
gradsm-ci.net: could not connect to host
grafitec.ru: did not receive HSTS header
graftworld.pw: could not connect to host
-grana.com: did not receive HSTS header
grandchamproofing.com: did not receive HSTS header
grande.coffee: could not connect to host
grandlinecsk.ru: did not receive HSTS header
grandmascookieblog.com: did not receive HSTS header
+grandmasfridge.org: did not receive HSTS header
+grandwailea.com: did not receive HSTS header
grantedby.me: max-age too low: 0
granth.io: could not connect to host
graph.no: did not receive HSTS header
@@ -5781,27 +6274,26 @@ gratis-app.com: did not receive HSTS header
gratisonlinesex.com: could not connect to host
gravitation.pro: did not receive HSTS header
gravito.nl: did not receive HSTS header
-gravity-dev.de: could not connect to host
gravity-net.de: could not connect to host
graycell.net: could not connect to host
grazetech.com: did not receive HSTS header
grcnode.co.uk: could not connect to host
great.nagoya: could not connect to host
+greatergoodoffers.com: did not receive HSTS header
greatfire.kr: could not connect to host
greatideahub.com: did not receive HSTS header
greatnet.de: did not receive HSTS header
greatsong.net: did not receive HSTS header
-green-light.cf: could not connect to host
-green-light.ga: could not connect to host
-green-light.gq: could not connect to host
-green-light.ml: could not connect to host
greencardtalent.com: could not connect to host
+greenconn.ca: could not connect to host
+greenenergysolution.uk: did not receive HSTS header
greenesting.ch: could not connect to host
greenesting.com: could not connect to host
greengov.gov: could not connect to host
greenhillantiques.co.uk: did not receive HSTS header
greenitpark.net: could not connect to host
greensolid.biz: could not connect to host
+greenville.ag: did not receive HSTS header
greenvines.com.tw: did not receive HSTS header
greenvpn.ltd: could not connect to host
greenvpn.pro: did not receive HSTS header
@@ -5818,7 +6310,6 @@ greuel.online: could not connect to host
greve.xyz: could not connect to host
grevesgarten.de: could not connect to host
greyline.se: could not connect to host
-greysky.me: max-age too low: 300
grian-bam.at: did not receive HSTS header
gribani.com: could not connect to host
grid2osm.org: could not connect to host
@@ -5836,7 +6327,7 @@ groentefruitzeep.com: could not connect to host
groentefruitzeep.nl: could not connect to host
groetzner.net: did not receive HSTS header
groseb.net: did not receive HSTS header
-grossberger-ge.org: could not connect to host
+grossell.ru: could not connect to host
grossmann.gr: could not connect to host
grossmisconduct.news: could not connect to host
groupe-cassous.com: did not receive HSTS header
@@ -5846,7 +6337,10 @@ grow-shop.lt: could not connect to host
grow-shop.lv: could not connect to host
growingmetrics.com: could not connect to host
grozip.com: did not receive HSTS header
+grozter.se: did not receive HSTS header
+gruelang.org: could not connect to host
gruenderwoche-dresden.de: did not receive HSTS header
+grumples.biz: did not receive HSTS header
grunex.com: did not receive HSTS header
grupopgn.com.br: could not connect to host
grusig-geil.ch: could not connect to host
@@ -5867,7 +6361,9 @@ gts-schulsoftware.de: did not receive HSTS header
guarajubaimoveis.com.br: did not receive HSTS header
guava.studio: did not receive HSTS header
gudangpangan.id: could not connect to host
+gudrun.ml: could not connect to host
guelphhydropool.com: could not connect to host
+guendra.dedyn.io: could not connect to host
guentherhouse.com: did not receive HSTS header
guenthernoack.de: could not connect to host
guffrits.com: could not connect to host
@@ -5877,10 +6373,12 @@ gugga.dk: could not connect to host
guguke.net: did not receive HSTS header
guidechecking.com: could not connect to host
guides-et-admin.com: did not receive HSTS header
+guidesetc.com: did not receive HSTS header
guilde-vindicta.fr: could not connect to host
guildgearscore.cf: could not connect to host
guillaume-leduc.fr: did not receive HSTS header
guillaumematheron.fr: did not receive HSTS header
+guillaumeperrin.io: could not connect to host
guiltypleasuresroleplaying.com: did not receive HSTS header
guinea-pig.co: could not connect to host
guineafruitcorp.com: could not connect to host
@@ -5898,6 +6396,7 @@ gunnarhafdal.com: did not receive HSTS header
gunnaro.com: could not connect to host
guntbert.net: could not connect to host
guoqiang.info: did not receive HSTS header
+gurochan.ch: could not connect to host
gurom.lv: could not connect to host
gurubetng.com: did not receive HSTS header
gurusupe.com: could not connect to host
@@ -5907,17 +6406,19 @@ guso.ml: could not connect to host
guso.site: could not connect to host
guso.tech: could not connect to host
gussi.is: did not receive HSTS header
-guthabenkarten-billiger.de: did not receive HSTS header
+guthabenkarten-billiger.de: could not connect to host
guts.me: did not receive HSTS header
guts.moe: did not receive HSTS header
guyot-tech.com: did not receive HSTS header
gvchannel.xyz: could not connect to host
-gvi.be: could not connect to host
+gvi.be: did not receive HSTS header
+gvm.io: could not connect to host
gvpt.sk: did not receive HSTS header
gvt2.com: could not connect to host (error ignored - included regardless)
gvt3.com: could not connect to host (error ignored - included regardless)
gw2oracle.com: could not connect to host
gw2reload.eu: could not connect to host
+gwa-verwaltung.de: could not connect to host
gwijaya.com: could not connect to host
gwtest.us: could not connect to host
gxgx.org: could not connect to host
@@ -5925,31 +6426,33 @@ gxlrx.net: could not connect to host
gyboche.com: could not connect to host
gyboche.science: could not connect to host
gylauto.fr: could not connect to host
-gypsycatdreams.com: did not receive HSTS header
+gymjp.com: did not receive HSTS header
+gypsycatdreams.com: could not connect to host
gypthecat.com: did not receive HSTS header
gyz.io: did not receive HSTS header
-gzitech.net: could not connect to host
gzpblog.com: could not connect to host
h-og.com: could not connect to host
h-rickroll-n.pw: could not connect to host
h2cdn.cloud: could not connect to host
-h2check.org: did not receive HSTS header
+h2check.org: could not connect to host
h3x.jp: could not connect to host
+ha6.ru: could not connect to host
haarkliniek.com: did not receive HSTS header
habbixed.tk: could not connect to host
-habbo.life: did not receive HSTS header
+habbo.life: could not connect to host
habbotalk.nl: could not connect to host
habeo.si: could not connect to host
hablemosdetecnologia.com.ve: could not connect to host
hac30.com: could not connect to host
-hack.cz: could not connect to host
+hack.club: could not connect to host
hack.li: could not connect to host
hackbubble.me: could not connect to host
-hackdown.me: could not connect to host
+hacker.club: could not connect to host
hacker.deals: could not connect to host
hacker8.cn: could not connect to host
hackercat.ninja: max-age too low: 2592000
hackerforever.com: could not connect to host
+hackerlite.xyz: did not receive HSTS header
hackerone-ext-adroll.com: could not connect to host
hackerspace-ntnu.no: did not receive HSTS header
hackest.org: did not receive HSTS header
@@ -5958,8 +6461,9 @@ hackit.im: could not connect to host
hackmeplz.com: could not connect to host
hackroyale.xyz: could not connect to host
hacksnack.io: could not connect to host
-hackworx.com: could not connect to host
+hackthissite.org: could not connect to host
hackyourfaceoff.com: could not connect to host
+hackzogtum-coburg.de: did not receive HSTS header
hadaf.pro: could not connect to host
hadzic.co: could not connect to host
haeckdesign.com: did not receive HSTS header
@@ -5968,6 +6472,7 @@ haehnlein.at: could not connect to host
haemmerle.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
haf.gr: could not connect to host
hafoda.com: did not receive HSTS header
+haggeluring.su: could not connect to host
hahayidu.org: could not connect to host
hail2u.net: did not receive HSTS header
hainoni.com: did not receive HSTS header
@@ -5976,8 +6481,6 @@ haitschi.com: could not connect to host
haitschi.de: did not receive HSTS header
haitschi.net: could not connect to host
haitschi.org: could not connect to host
-hajnzic.at: could not connect to host
-hakase.pw: could not connect to host
haktec.de: did not receive HSTS header
haku.moe: could not connect to host
hakugin.me: could not connect to host
@@ -5996,6 +6499,7 @@ hamking.tk: could not connect to host
hammamsayad.com: could not connect to host
hamon.cc: did not receive HSTS header
hamu.blue: could not connect to host
+hanakaraku.com: could not connect to host
hancatemc.com: did not receive HSTS header
hancc.net: could not connect to host
handenafvanhetmedischdossier.nl: could not connect to host
@@ -6003,16 +6507,18 @@ handicapindeles.nl: did not receive HSTS header
handinhandfoundation.org.uk: did not receive HSTS header
handiworker.com: could not connect to host
handmadegobelin.com: did not receive HSTS header
+handmadeshoes.pe: did not receive HSTS header
handmadetutorials.ro: could not connect to host
handsandall.com: did not receive HSTS header
hanfu.la: could not connect to host
-hang333.moe: could not connect to host
hang333.pw: could not connect to host
hangar18-modelismo.com.br: could not connect to host
hanimalis.fr: could not connect to host
hanksservice.com: could not connect to host
hannes-speelgoedencadeautjes.nl: did not receive HSTS header
hans-natur.de: did not receive HSTS header
+hansch.ventures: could not connect to host
+hanys.xyz: could not connect to host
hanzcollection.online: could not connect to host
haobo111.com: could not connect to host
haobo1111.com: could not connect to host
@@ -6035,14 +6541,15 @@ hapsfordmill.co.uk: could not connect to host
hapvm.com: could not connect to host
haqaza.com.br: did not receive HSTS header
harambe.site: could not connect to host
-harbourweb.net: did not receive HSTS header
-hardergayporn.com: could not connect to host
+harbourweb.net: could not connect to host
+hardeman.nu: could not connect to host
hardline.xyz: could not connect to host
+hardtime.ru: could not connect to host
hardyboyplant.com: did not receive HSTS header
+harekaze.info: could not connect to host
haribosupermix.com: could not connect to host
hariome.com: did not receive HSTS header
harlentimberproducts.co.uk: did not receive HSTS header
-harmfarm.nl: could not connect to host
harmonycosmetic.com: max-age too low: 300
harrisonsdirect.co.uk: did not receive HSTS header
harristony.com: could not connect to host
@@ -6053,6 +6560,7 @@ harschnitz.nl: did not receive HSTS header
hartlep.eu: could not connect to host
hartmancpa.com: did not receive HSTS header
harvestrenewal.org: did not receive HSTS header
+harveymilton.com: did not receive HSTS header
harz.cloud: could not connect to host
has.vision: could not connect to host
hasabig.wang: could not connect to host
@@ -6061,25 +6569,28 @@ haschrebellen.de: could not connect to host
hash-list.com: could not connect to host
hashiconf.com: did not receive HSTS header
hashidays.com: did not receive HSTS header
+hashimah.ca: could not connect to host
hashplex.com: could not connect to host
hasinase.de: could not connect to host
haste.ch: could not connect to host
hastherebeenamassshooting.today: could not connect to host
-hatarisecurity.co.ke: could not connect to host
+hatcherlawgroupnm.com: did not receive HSTS header
hatethe.uk: 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
+hauswarteam.com: could not connect to host
hav.com: could not connect to host
haveeruexaminer.com: could not connect to host
+haven-moon.com: could not connect to host
haven-staging.cloud: could not connect to host
haven.cloud: did not receive HSTS header
havenmoon.com: could not connect to host
havenswift-hosting.co.uk: did not receive HSTS header
hawk-la.com: could not connect to host
hawthornharpist.com: could not connect to host
-haxoff.com: could not connect to host
+haxoff.com: did not receive HSTS header
haxon.me: could not connect to host
haxx.hu: did not receive HSTS header
haydenhill.us: could not connect to host
@@ -6105,17 +6616,20 @@ hbvip07.com: could not connect to host
hbvip08.com: could not connect to host
hcfhomelottery.ca: did not receive HSTS header
hcie.pl: did not receive HSTS header
+hcoe.fi: did not receive HSTS header
hcr.io: did not receive HSTS header
hcs-company.com: did not receive HSTS header
hcs-company.nl: did not receive HSTS header
hcstr.com: did not receive HSTS header
hd1tj.org: did not receive HSTS header
+hda.me: could not connect to host
hdm.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
hdrboundless.com: could not connect to host
hdritalyphotos.com: did not receive HSTS header
hdserver.info: did not receive HSTS header
hdsmigrationtool.com: could not connect to host
hduin.xyz: could not connect to host
+hdwallpapers.net: could not connect to host
hdy.nz: could not connect to host
head-shop.lt: could not connect to host
head-shop.lv: could not connect to host
@@ -6128,18 +6642,20 @@ healtious.com: could not connect to host
hearingshofar.com: could not connect to host
heart.ge: did not receive HSTS header
heartlandrentals.com: did not receive HSTS header
-hearty.cf: could not connect to host
+hearty.cf: did not receive HSTS header
hearty.ink: could not connect to host
hearty.space: could not connect to host
hearty.tech: could not connect to host
hearty.tw: did not receive HSTS header
+heartyapp.com: could not connect to host
heartyme.net: could not connect to host
heathmanners.com: could not connect to host
heavenlyseals.com: could not connect to host
heavenlysmokenc.com: could not connect to host
heavystresser.com: could not connect to host
+heayao.com: could not connect to host
hebaus.com: could not connect to host
-hebikhiv.nl: could not connect to host
+hectorj.net: could not connect to host
hedweb.com: could not connect to host
heidilein.info: did not receive HSTS header
heimnetze.org: could not connect to host
@@ -6155,8 +6671,7 @@ hellenicaward.com: did not receive HSTS header
hello-nestor.com: did not receive HSTS header
helloanselm.com: did not receive HSTS header
hellofilters.com: could not connect to host
-hellomouse.cf: did not receive HSTS header
-hellomouse.net: could not connect to host
+hellomouse.cf: could not connect to host
hellomouse.tk: could not connect to host
hellotandem.com: could not connect to host
hellothought.net: could not connect to host
@@ -6181,17 +6696,19 @@ hemlockhillscabinrentals.com: did not receive HSTS header
hencagon.com: could not connect to host
hendersonrealestatepros.com: did not receive HSTS header
hendric.us: did not receive HSTS header
+henhenlu.com: could not connect to host
henningkerstan.org: did not receive HSTS header
henriknoerr.com: could not connect to host
hentai.design: did not receive HSTS header
hentaimaster.net: could not connect to host
+hentaiz.net: could not connect to host
hepteract.us: could not connect to host
heptner24.de: could not connect to host
her25.com: did not receive HSTS header
herbertmouwen.nl: could not connect to host
here.ml: could not connect to host
here4funpartysolutions.ie: did not receive HSTS header
-heribe-maruo.com: could not connect to host
+heribe-maruo.com: did not receive HSTS header
heritagedentistry.ca: did not receive HSTS header
hermes-servizi.it: could not connect to host
heroin.org.uk: could not connect to host
@@ -6200,29 +6717,33 @@ herramientasbazarot.com: did not receive HSTS header
herrenfahrt.com: did not receive HSTS header
hetmeisjeachterpauw.nl: could not connect to host
hetmer.com: did not receive HSTS header
+hetmer.cz: did not receive HSTS header
hetmer.net: did not receive HSTS header
heutger.net: did not receive HSTS header
+heverhagen.rocks: could not connect to host
hex2013.com: did not receive HSTS header
hexacon.io: could not connect to host
-hexadecimal.tech: did not receive HSTS header
+hexadecimal.tech: could not connect to host
hexe.net: did not receive HSTS header
hexhu.com: could not connect to host
hexo.io: did not receive HSTS header
hexobind.com: could not connect to host
+hexstream.net: did not receive HSTS header
heyguevara.com: did not receive HSTS header
heywoodtown.co.uk: did not receive HSTS header
hfbg.nl: did not receive HSTS header
hfcbank.com.gh: could not connect to host
hfi.me: did not receive HSTS header
+hflsdev.org: could not connect to host
hfu.io: could not connect to host
+hg525.com: max-age too low: 86400
hg71839.com: could not connect to host
hg881.com: could not connect to host
-hh-wolke.dedyn.io: did not receive HSTS header
+hgfa.fi: could not connect to host
hi808.net: did not receive HSTS header
hialatv.com: could not connect to host
hibilog.com: could not connect to host
hicn.gq: could not connect to host
-hiddendepth.ie: max-age too low: 0
hiddenmail.xyz: could not connect to host
hiddenprocess.com: did not receive HSTS header
hiddenrefuge.eu.org: could not connect to host
@@ -6231,8 +6752,10 @@ hideftv.deals: could not connect to host
hideout.agency: could not connect to host
hidrofire.com: did not receive HSTS header
hiexmerida-mailing.com: did not receive HSTS header
+hig.gov: could not connect to host
highgrove.org.uk: could not connect to host
highlandparkcog.org: did not receive HSTS header
+highperformancehvac.com: did not receive HSTS header
highseer.com: did not receive HSTS header
highsurf-miyazaki.com: could not connect to host
hightechgadgets.net: could not connect to host
@@ -6248,6 +6771,7 @@ hikagestudios.com: did not receive HSTS header
hikariempire.com: could not connect to host
hikinggearlab.com: did not receive HSTS header
hilaolu.com: could not connect to host
+hilariousbeer.com.mx: could not connect to host
hilinemerchandising.com: did not receive HSTS header
hill.selfip.net: could not connect to host
hillcity.org.nz: did not receive HSTS header
@@ -6259,15 +6783,17 @@ hingle.me: could not connect to host
hinkel-sohn.de: did not receive HSTS header
hinrich.de: did not receive HSTS header
hintergedanken.com: could not connect to host
-hintermeier-rae.at: could not connect to host
+hintermeier-rae.at: did not receive HSTS header
hipercultura.com: did not receive HSTS header
hiphop.ren: could not connect to host
hiphopconvention.nl: could not connect to host
hipnos.net: did not receive HSTS header
hipnoseinstitute.org: did not receive HSTS header
-hiqhub.co.uk: could not connect to host
hiraku.me: did not receive HSTS header
+hireprofs.com: could not connect to host
hiresuccessstaffing.com: did not receive HSTS header
+hiretech.com: did not receive HSTS header
+hirevets.gov: did not receive HSTS header
hirokilog.com: could not connect to host
hisingenrunt.se: did not receive HSTS header
histoire-theatre.com: did not receive HSTS header
@@ -6275,10 +6801,13 @@ history.pe: could not connect to host
hitchunion.org: could not connect to host
hitoy.org: did not receive HSTS header
hittipps.com: could not connect to host
+hivatal-info.hu: could not connect to host
+hiyuki2578.net: could not connect to host
hjes.com.ve: could not connect to host
+hjf-immobilien.de: did not receive HSTS header
+hjkhs.cn: did not receive HSTS header
hknet.at: did not receive HSTS header
hlacosedora.com: max-age too low: 7889238
-hloe0xff.ru: could not connect to host
hlpublicidad.com: could not connect to host
hlyue.com: did not receive HSTS header
hm1ch.com: could not connect to host
@@ -6288,6 +6817,7 @@ hmm.nyc: could not connect to host
hoast.xyz: could not connect to host
hobaugh.social: could not connect to host
hobby-gamerz-community.de: did not receive HSTS header
+hocassian.cn: did not receive HSTS header
hochzeitshelferlein.de: did not receive HSTS header
hodamakade.com: could not connect to host
hodne.io: could not connect to host
@@ -6310,37 +6840,38 @@ holisticdrbright.com: max-age too low: 300
hollandguns.com: did not receive HSTS header
hollerau.de: could not connect to host
holowaty.me: could not connect to host
+holy-hi.com: did not receive HSTS header
holymoly.lu: could not connect to host
-holytransaction.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+holymolycasinos.com: did not receive HSTS header
homa.website: could not connect to host
homads.com: did not receive HSTS header
home-cloud.online: could not connect to host
home-coaching.be: did not receive HSTS header
home-craft.de: could not connect to host
home-v.ind.in: could not connect to host
+home-work-jobs.com: did not receive HSTS header
homeandyarddetailing.com: could not connect to host
homeclouding.de: could not connect to host
+homecoming.city: could not connect to host
homedna.com: did not receive HSTS header
homeexx.com: did not receive HSTS header
-homefacialpro.com: did not receive HSTS header
-homegreenmark.com: did not receive HSTS header
homeownersassociationmanagementla.com: did not receive HSTS header
homeremodelingcontractorsca.com: did not receive HSTS header
homesandal.com: did not receive HSTS header
homeseller.co.uk: could not connect to host
homesfordinner.ca: could not connect to host
-homewatt.co.uk: could not connect to host
homeyantra.com: did not receive HSTS header
homezhi.com.tw: could not connect to host
homoglyph.net: could not connect to host
+honeybeard.co.uk: did not receive HSTS header
honeytracks.com: could not connect to host
-hong.io: could not connect to host
hongyd.online: could not connect to host
hongzhaxiaofendui.com: could not connect to host
hongzu.cc: could not connect to host
hongzuwang.com: could not connect to host
hongzuzhibo.com: could not connect to host
honkhonk.net: could not connect to host
+honkion.net: could not connect to host
honoo.com: could not connect to host
hoodiecrow.com: could not connect to host
hoodoo.io: could not connect to host
@@ -6354,11 +6885,14 @@ hopesb.org: did not receive HSTS header
hopewellproperties.co.uk: did not receive HSTS header
hopglass.eu: could not connect to host
hopglass.net: could not connect to host
+hoponmedia.de: could not connect to host
+hopzone.net: could not connect to host
horace.li: did not receive HSTS header
horisonttimedia.fi: did not receive HSTS header
horizonmoto.fr: did not receive HSTS header
horning.co: did not receive HSTS header
horosho.in: could not connect to host
+horrendous-servers.com: could not connect to host
horror-forum.de: could not connect to host
horrorserv.com: could not connect to host
horseboners.xxx: could not connect to host
@@ -6377,18 +6911,20 @@ hostinaus.com.au: did not receive HSTS header
hostingfirst.nl: could not connect to host
hostingfj.com: could not connect to host
hostisan.com: could not connect to host
+hostworkz.com: could not connect to host
+hosyaku.gr.jp: did not receive HSTS header
hot-spa.ch: did not receive HSTS header
hotartup.com: could not connect to host
hotchillibox.co.za: could not connect to host
hotchoc.io: could not connect to host
hotel-huberhof.at: did not receive HSTS header
-hotel-rosner.at: did not receive HSTS header
hotel-tongruben.de: max-age too low: 0
hotelaustria-wien.at: did not receive HSTS header
hotelmadhuwanvihar.com: could not connect to host
hotelvictoriaoax-mailing.com: did not receive HSTS header
hotelvillahermosa-mailing.com: did not receive HSTS header
hotelvue.nl: could not connect to host
+hotjuice.com: could not connect to host
hotornot.com: could not connect to host
hotpoint-training.com: did not receive HSTS header
hottestwebcamgirls.org: could not connect to host
@@ -6404,18 +6940,20 @@ howtocuremysciatica.com: could not connect to host
howtofreelance.com: did not receive HSTS header
hozinga.de: could not connect to host
hpctecnologias.com: did not receive HSTS header
-hpepub.asia: could not connect to host
+hpeditor.tk: could not connect to host
+hpepub.asia: did not receive HSTS header
hpepub.org: could not connect to host
hppub.info: could not connect to host
hppub.org: could not connect to host
hppub.site: could not connect to host
hqhost.net: did not receive HSTS header
+hqq.tv: could not connect to host
+hqy.moe: did not receive HSTS header
hr-intranet.com: could not connect to host
hr-tech.store: could not connect to host
hr98.tk: could not connect to host
hrackydomino.cz: did not receive HSTS header
hrfhomelottery.com: did not receive HSTS header
-hrk.io: could not connect to host
hrtech.store: could not connect to host
hrtraining.com.au: did not receive HSTS header
hschen.top: could not connect to host
@@ -6424,17 +6962,18 @@ hsir.me: could not connect to host
hsts-preload-test.xyz: could not connect to host
hsts.com.br: could not connect to host
hsts.date: could not connect to host
-hsts.eu: could not connect to host
hstspreload.me: could not connect to host
hszhyy120.com: could not connect to host
htlball.at: could not connect to host
html-lab.tk: could not connect to host
http418.xyz: could not connect to host
httphacker.com: could not connect to host
-https-rulesets.org: could not connect to host
https.ps: could not connect to host
+https.ren: could not connect to host
httpstatuscode418.xyz: could not connect to host
httptest.net: could not connect to host
+hu8hu8.com: could not connect to host
+huang-haitao.com: did not receive HSTS header
huang.nu: could not connect to host
huangguancq.com: could not connect to host
huangh.com: could not connect to host
@@ -6442,26 +6981,32 @@ huangzenghao.com: could not connect to host
huarongdao.com: did not receive HSTS header
hubert.systems: did not receive HSTS header
hubertmoszka.pl: could not connect to host
+hubrick.com: could not connect to host
hudhaifahgoga.co.za: could not connect to host
hudingyuan.cn: could not connect to host
hugocollignon.fr: could not connect to host
huiser.nl: could not connect to host
hukaloh.com: could not connect to host
hukkatavara.com: could not connect to host
-humankode.com: did not receive HSTS header
+humanexperiments.com: could not connect to host
humblefinances.com: could not connect to host
humeurs.net: could not connect to host
+humorce.com: did not receive HSTS header
humortuga.pt: did not receive HSTS header
hump.dk: could not connect to host
humpi.at: could not connect to host
humpteedumptee.in: did not receive HSTS header
hunger.im: could not connect to host
+hunqz.com: could not connect to host
huntshomeinspections.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
huodongweb.com: could not connect to host
+huoduan.com: did not receive HSTS header
huongquynh.com: could not connect to host
-hup.blue: did not receive HSTS header
+hup.blue: could not connect to host
huskybutt.dog: could not connect to host
huskyduvercors.com: did not receive HSTS header
+hustle.com: did not receive HSTS header
+hustle.life: did not receive HSTS header
huwjones.me: could not connect to host
huzu.com: did not receive HSTS header
huzurmetal.net: could not connect to host
@@ -6469,10 +7014,13 @@ hwcine.com: did not receive HSTS header
hwpkasse.de: max-age too low: 2592000
hyakumachi.com: did not receive HSTS header
hyatt.com: did not receive HSTS header
+hybridiyhdistys.fi: could not connect to host
+hybridklubben.fi: could not connect to host
hybula.nl: could not connect to host
hydai.co: could not connect to host
hydra.ws: could not connect to host
hydra.zone: could not connect to host
+hydrabit.nl: did not receive HSTS header
hydrante.ch: could not connect to host
hydrodipcenter.nl: did not receive HSTS header
hydronium.cf: could not connect to host
@@ -6481,10 +7029,12 @@ hydronium.me: could not connect to host
hydronium.ml: could not connect to host
hydronium.tk: could not connect to host
hydronyx.me: could not connect to host
+hydrosight.com: did not receive HSTS header
+hyeok.org: did not receive HSTS header
hymerscollege.co.uk: max-age too low: 43200
hypa.net.au: did not receive HSTS header
hyper-matrix.org: could not connect to host
-hyper69.com: did not receive HSTS header
+hyper69.com: could not connect to host
hyperactive.am: could not connect to host
hyperporn.net: could not connect to host
hyperreal.info: could not connect to host
@@ -6496,16 +7046,17 @@ hyvive.com: could not connect to host
hzh.pub: did not receive HSTS header
hztgzz.com: could not connect to host
i--b.com: did not receive HSTS header
-i-aloks.ru: could not connect to host
i-jp.net: could not connect to host
i-partners.sk: could not connect to host
i-rickroll-n.pw: could not connect to host
i-stats.net: could not connect to host
i10z.com: could not connect to host
+i28s.com: did not receive HSTS header
i496.eu: could not connect to host
i4m1k0su.com: could not connect to host
i95.me: could not connect to host
i9multiequipamentos.com.br: did not receive HSTS header
+ia1000.com: could not connect to host
iacono.com.br: did not receive HSTS header
iadttaveras.com: could not connect to host
iain.tech: did not receive HSTS header
@@ -6522,15 +7073,15 @@ ibestreview.com: did not receive HSTS header
ibizatopcharter.com: did not receive HSTS header
ibna.online: could not connect to host
ibnuwebhost.com: could not connect to host
-ibox.ovh: could not connect to host
+ibnw.de: did not receive HSTS header
+ibox.ovh: did not receive HSTS header
ibps.blog: did not receive HSTS header
+ibpsrecruitment.co.in: could not connect to host
ibron.co: could not connect to host
ibsafrica.co.za: could not connect to host
ibsglobal.co.za: could not connect to host
-icabanken.se: did not receive HSTS header
icaforsakring.se: did not receive HSTS header
icasnetwork.com: did not receive HSTS header
-iccpublisher.com: could not connect to host
ice.yt: could not connect to host
icebat.dyndns.org: could not connect to host
icebound.cc: did not receive HSTS header
@@ -6547,19 +7098,22 @@ ichoosebtec.com: did not receive HSTS header
ichronos.net: did not receive HSTS header
icity.ly: did not receive HSTS header
icloud.net: could not connect to host
+icmshoptrend.com: did not receive HSTS header
icnsoft.ga: did not receive HSTS header
-icnsoft.me: could not connect to host
icntorrent.download: could not connect to host
-icpc.pp.ua: could not connect to host
+ico500.com: did not receive HSTS header
+icondoom.nl: did not receive HSTS header
+icowhitepapers.co: did not receive HSTS header
icpc2016.in.th: could not connect to host
icreative.nl: did not receive HSTS header
+ictinforensics.org: could not connect to host
ictpro.info: did not receive HSTS header
icusignature.com: could not connect to host
icys2017.com: did not receive HSTS header
id-co.in: could not connect to host
id-conf.com: did not receive HSTS header
-id.fedoraproject.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-idblab.tk: did not receive HSTS header
+idafauziyah.com: could not connect to host
+idc.yn.cn: could not connect to host
idcrane.com: could not connect to host
iddconnect.com: could not connect to host
iddconnect.org: could not connect to host
@@ -6575,11 +7129,12 @@ ideasmeetingpoint.com: could not connect to host
ideation-inc.co.jp: could not connect to host
idedr.com: could not connect to host
idemo.in: could not connect to host
-idenamaislami.com: could not connect to host
identity-hash.online: could not connect to host
identitylabs.uk: could not connect to host
identitysandbox.gov: could not connect to host
+identitytheft.gov: did not receive HSTS header
idgsupply.com: did not receive HSTS header
+idid.tk: could not connect to host
idinby.dk: did not receive HSTS header
idiopolis.org: could not connect to host
idisplay.es: could not connect to host
@@ -6588,11 +7143,11 @@ idol-bikes.ru: could not connect to host
idontexist.me: could not connect to host
idsafe.co.za: could not connect to host
idsoccer.com: did not receive HSTS header
-idtheft.gov: could not connect to host
iec.pe: could not connect to host
iemb.cf: could not connect to host
ierna.com: did not receive HSTS header
ies.id.lv: could not connect to host
+ietsdoenofferte.nl: did not receive HSTS header
ievgenialehner.com: did not receive HSTS header
iexpert9.com: did not receive HSTS header
if0.ru: could not connect to host
@@ -6600,6 +7155,7 @@ ifad.org: did not receive HSTS header
ifan.ch: could not connect to host
ifastuniversity.com: did not receive HSTS header
ifcfg.me: could not connect to host
+ifconfig.co: did not receive HSTS header
ifleurs.com: could not connect to host
ifreetion.cn: did not receive HSTS header
ifx.ee: could not connect to host
@@ -6612,9 +7168,8 @@ igforums.com: could not connect to host
igi.codes: did not receive HSTS header
igiftcards.nl: did not receive HSTS header
ignatisd.gr: did not receive HSTS header
-ignatovich.by: could not connect to host
igule.net: could not connect to host
-ihoey.com: could not connect to host
+iha6.com: could not connect to host
ihongzu.com: could not connect to host
ihotel.io: did not receive HSTS header
ihrlotto.de: could not connect to host
@@ -6624,8 +7179,7 @@ ihsbsd.tk: could not connect to host
ihzys.com: could not connect to host
iide.co: did not receive HSTS header
iideaz.org: could not connect to host
-iilin.com: could not connect to host
-iiong.com: did not receive HSTS header
+iilin.com: did not receive HSTS header
iispeed.com: did not receive HSTS header
ijn-dd.nl: could not connect to host
ijoda.com: could not connect to host
@@ -6635,6 +7189,7 @@ ikenmeyer.com: could not connect to host
ikenmeyer.eu: could not connect to host
ikocik.sk: could not connect to host
ikon.name: could not connect to host
+ikraenglish.com: could not connect to host
ikwilguidobellen.nl: could not connect to host
ikzoekeengoedkopeauto.nl: could not connect to host
ikzoekjeugdhulp.nl: did not receive HSTS header
@@ -6642,7 +7197,6 @@ ilbuongiorno.it: did not receive HSTS header
ildomani.it: did not receive HSTS header
ileat.com: could not connect to host
ilgi.work: could not connect to host
-ilhansubasi.com: did not receive HSTS header
ilii.me: could not connect to host
ilikerainbows.co: could not connect to host
ilikerainbows.co.uk: could not connect to host
@@ -6650,9 +7204,13 @@ ilikfreshweedstores.com: did not receive HSTS header
ilmconpm.de: could not connect to host
iloilofit.org: did not receive HSTS header
ilona.graphics: did not receive HSTS header
+iltec-prom.ru: could not connect to host
+iltec.ru: could not connect to host
iluvscotland.co.uk: did not receive HSTS header
im-design.com.ua: did not receive HSTS header
image.tf: could not connect to host
+imagecurl.com: could not connect to host
+imagecurl.org: could not connect to host
imaginarymakings.me: could not connect to host
imakepoems.net: could not connect to host
imanhearts.com: did not receive HSTS header
@@ -6667,22 +7225,24 @@ imfromthefuture.com: did not receive HSTS header
img.ovh: could not connect to host
imgencrypt.com: could not connect to host
imgul.net: could not connect to host
-imgup.co: did not receive HSTS header
+imguoguo.com: could not connect to host
imim.pw: could not connect to host
imjiangtao.com: did not receive HSTS header
imlinan.cn: could not connect to host
imlinan.info: could not connect to host
imlinan.net: could not connect to host
+imlonghao.com: did not receive HSTS header
immanuel60.hu: did not receive HSTS header
+immaternity.com: could not connect to host
immersionwealth.com: could not connect to host
-immigrationdirect.com.au: could not connect to host
+immo-vk.de: did not receive HSTS header
immobilien-wallat.de: could not connect to host
immoprotect.ca: did not receive HSTS header
immortals-co.com: did not receive HSTS header
immoverkauf24.at: did not receive HSTS header
immoverkauf24.de: did not receive HSTS header
immunicity.cc: could not connect to host
-immunicity.date: did not receive HSTS header
+immunicity.date: could not connect to host
immunicity.eu: did not receive HSTS header
immunicity.host: could not connect to host
immunicity.info: could not connect to host
@@ -6697,13 +7257,15 @@ immunicity.works: could not connect to host
immunicity.world: could not connect to host
imoe.ac.cn: did not receive HSTS header
imolug.org: did not receive HSTS header
+imoner.com: could not connect to host
imoner.ga: could not connect to host
imoni-blog.net: could not connect to host
imoto.me: could not connect to host
imperdintechnologies.com: could not connect to host
imperialonlinestore.com: did not receive HSTS header
imperialwebsolutions.com: did not receive HSTS header
-implicitdenial.com: did not receive HSTS header
+implicitdenial.com: could not connect to host
+imprenta-es.com: did not receive HSTS header
improvingwp.com: could not connect to host
impulse-clan.de: could not connect to host
imrejonk.nl: could not connect to host
@@ -6725,7 +7287,9 @@ indieethos.com: did not receive HSTS header
indiemods.com: could not connect to host
indien.guide: could not connect to host
indilens.com: did not receive HSTS header
+indiroyunu.com: did not receive HSTS header
indoorskiassen.nl: did not receive HSTS header
+indostar303.com: did not receive HSTS header
indredouglas.me: could not connect to host
industreiler.com: could not connect to host
industreiler.com.br: could not connect to host
@@ -6735,7 +7299,6 @@ ineed.com.mt: could not connect to host
inexlog.fr: could not connect to host
inexpensivecomputers.net: could not connect to host
infcof.com: did not receive HSTS header
-inference.biz.tr: could not connect to host
infilock.com: could not connect to host
infinether.net: could not connect to host
infinitiofmarinparts.com: could not connect to host
@@ -6751,8 +7314,9 @@ inflation.ml: could not connect to host
influxus.com: could not connect to host
info-bay.com: could not connect to host
info-sys.tk: could not connect to host
+infoamin.com: did not receive HSTS header
+infocoin.es: did not receive HSTS header
infoduv.fr: did not receive HSTS header
-infopagina.es: did not receive HSTS header
inforichjapan.com: did not receive HSTS header
inforisposte.com: did not receive HSTS header
informaticapremium.com: did not receive HSTS header
@@ -6763,7 +7327,9 @@ infosoph.org: could not connect to host
infotics.es: did not receive HSTS header
infovae-idf.com: did not receive HSTS header
infoworm.org: could not connect to host
+infradio.am: could not connect to host
infranix.eu: max-age too low: 7360000
+infrarank.com: could not connect to host
infruction.com: could not connect to host
infura.co.th: could not connect to host
ingalabs.hu: could not connect to host
@@ -6772,8 +7338,6 @@ ingesol.fr: did not receive HSTS header
ingresscode.cn: did not receive HSTS header
inhelix.com: could not connect to host
inhive.group: did not receive HSTS header
-iniiter.com: could not connect to host
-initramfs.io: could not connect to host
injapan.nl: could not connect to host
injertoshorticolas.com: did not receive HSTS header
injigo.com: did not receive HSTS header
@@ -6784,8 +7348,10 @@ injust.gq: could not connect to host
injust.me: could not connect to host
injust.ml: could not connect to host
injust.tk: could not connect to host
+inkbunny.net: could not connect to host
inked-guy.de: could not connect to host
inkedguy.de: could not connect to host
+inkhor.se: could not connect to host
inkstory.gr: did not receive HSTS header
inksupply.com: did not receive HSTS header
inku.ovh: did not receive HSTS header
@@ -6793,21 +7359,25 @@ inkvisual.tk: could not connect to host
inleaked.com: could not connect to host
innerform.com: could not connect to host
innit.be: could not connect to host
+innobatics.com: did not receive HSTS header
innophate-security.nl: could not connect to host
innovamag.ca: did not receive HSTS header
innovativebuildingsolutions.co.za: could not connect to host
innovativeideaz.org: could not connect to host
+innoventure.de: did not receive HSTS header
inobun.jp: could not connect to host
inondation.ch: could not connect to host
+inorder.website: could not connect to host
inox.io: did not receive HSTS header
inoxio.com: did not receive HSTS header
inoxio.de: did not receive HSTS header
inplacers.ru: did not receive HSTS header
-inquisitive.io: could not connect to host
+inquisitive.io: did not receive HSTS header
insane-bullets.com: could not connect to host
insane.zone: could not connect to host
inschrijfformulier.com: could not connect to host
inscript.pl: did not receive HSTS header
+insho.fashion: did not receive HSTS header
insideofgaming.de: could not connect to host
insite-feedback.com: could not connect to host
insouciant.org: could not connect to host
@@ -6819,12 +7389,14 @@ instacart.com: did not receive HSTS header
instant-hack.com: did not receive HSTS header
instant-hack.io: could not connect to host
instantdev.io: could not connect to host
+instantsubs.de: did not receive HSTS header
instaquiz.ru: could not connect to host
instasex.ch: could not connect to host
institutoflordelavida.com: could not connect to host
institutulcultural.ro: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
instruktor.io: could not connect to host
insurance: could not connect to host
+insurethebox.tk: could not connect to host
int-ext-design.fr: could not connect to host
integrationinc.com: did not receive HSTS header
integrityingovernmentidaho.com: could not connect to host
@@ -6833,36 +7405,39 @@ intel.li: could not connect to host
intelbet.es: did not receive HSTS header
intelbet.ro: did not receive HSTS header
intelldynamics.com: could not connect to host
-intelliance.eu: could not connect to host
-interboursegeneva.ch: could not connect to host
-interference.io: could not connect to host
+intensifyrsvp.com.au: could not connect to host
+interboursegeneva.ch: did not receive HSTS header
+interference.io: did not receive HSTS header
+interfug.de: did not receive HSTS header
intergenx.co.uk: could not connect to host
intergenx.com: could not connect to host
intergenx.org: could not connect to host
intergenx.org.uk: could not connect to host
interhosts.co.za: could not connect to host
interim-cto.de: could not connect to host
+interiorcheapo.com: could not connect to host
interiorprofesional.com.ar: max-age too low: 604800
+interiortradingco.com.au: could not connect to host
interleucina.org: did not receive HSTS header
interlocal.co.uk: could not connect to host
interlun.com: could not connect to host
intermezzo-emmerich.de: did not receive HSTS header
intermezzo-emmerich.nl: did not receive HSTS header
+internacao.com: did not receive HSTS header
internaldh.com: could not connect to host
internaut.co.za: did not receive HSTS header
-internet-aukcion.info: could not connect to host
internet-pornografie.de: did not receive HSTS header
internetbugbounty.org: did not receive HSTS header
internetcasinos.de: could not connect to host
internetcensus.org: could not connect to host
internetdentalalliance.com: did not receive HSTS header
internetradiocharts.de: did not receive HSTS header
-internetstaff.com: could not connect to host
internshipandwork.com: did not receive HSTS header
internshipandwork.ru: did not receive HSTS header
interociter-enterprises.com: could not connect to host
intersectraven.net: did not receive HSTS header
interspot.nl: could not connect to host
+interstellarhyperdrive.com: did not receive HSTS header
interviewpipeline.co.uk: could not connect to host
intervisteperstrada.com: could not connect to host
intexplore.org: could not connect to host
@@ -6872,18 +7447,18 @@ intimici.com.br: could not connect to host
intimtoy.com.ua: could not connect to host
intranetsec.fr: could not connect to host
introvertedtravel.space: max-age too low: 0
-intrp.net: did not receive HSTS header
-intxt.net: could not connect to host
+intrp.net: could not connect to host
invenio.software: could not connect to host
inverselink.com: could not connect to host
investcountry.com: could not connect to host
investingdiary.cn: could not connect to host
investingtrader.net: could not connect to host
investnext.com: max-age too low: 43200
+investorloanshub.com: could not connect to host
invictusmc.uk: could not connect to host
-invidio.us: did not receive HSTS header
invinsec.cloud: did not receive HSTS header
invinsec.com: max-age too low: 86400
+invis.net: could not connect to host
invite24.pro: could not connect to host
invuelto.com: did not receive HSTS header
iodice.org: did not receive HSTS header
@@ -6896,6 +7471,7 @@ iop.intuit.com: max-age too low: 86400
iora.fr: could not connect to host
iosmods.com: did not receive HSTS header
iostips.ru: could not connect to host
+iotfen.com: could not connect to host
iotsms.io: could not connect to host
ip-life.net: did not receive HSTS header
ip.or.at: could not connect to host
@@ -6904,12 +7480,13 @@ ipbill.org.uk: could not connect to host
ipcfg.me: could not connect to host
ipfp.pl: did not receive HSTS header
iphonechina.net: could not connect to host
+iplantom.com: could not connect to host
iplife.cn: could not connect to host
iplog.info: could not connect to host
ipmimagazine.com: did not receive HSTS header
ipmotion.ca: could not connect to host
ipnetworking.net: could not connect to host
-ipo-times.com: did not receive HSTS header
+ipo-times.com: could not connect to host
ipop.gr: did not receive HSTS header
iprice.co.id: did not receive HSTS header
iprice.hk: did not receive HSTS header
@@ -6918,11 +7495,13 @@ iprice.ph: did not receive HSTS header
iprice.sg: did not receive HSTS header
iprice.vn: did not receive HSTS header
ipricethailand.com: did not receive HSTS header
+iprody.com: did not receive HSTS header
ipsilon-project.org: did not receive HSTS header
iptel.ro: could not connect to host
ipuservicedesign.com: could not connect to host
ipv6.watch: did not receive HSTS header
ipv6cloud.club: could not connect to host
+ipv6demo.de: could not connect to host
ipv6only.network: could not connect to host
ipvsec.nl: could not connect to host
iqcn.co: could not connect to host
@@ -6935,14 +7514,14 @@ irazimina.ru: could not connect to host
irccloud.com: did not receive HSTS header
irelandesign.com: could not connect to host
irinkeby.nu: could not connect to host
-irische-segenswuensche.info: did not receive HSTS header
+irische-segenswuensche.info: could not connect to host
irisdina.de: could not connect to host
irishmusic.nu: could not connect to host
irland.guide: could not connect to host
irmag.ru: did not receive HSTS header
irmtrudjurke.de: did not receive HSTS header
irodorinet.com: max-age too low: 0
-iron-guard.net: could not connect to host
+iron-guard.net: did not receive HSTS header
irstaxforumsonline.com: did not receive HSTS header
irugs.ch: did not receive HSTS header
irugs.co.uk: did not receive HSTS header
@@ -6951,17 +7530,13 @@ irukandjilabs.com: could not connect to host
irun-telecom.co.uk: could not connect to host
irvinepa.org: max-age too low: 10540800
is-a-furry.org: did not receive HSTS header
-isaackabel.cf: could not connect to host
-isaackabel.ga: could not connect to host
-isaackabel.gq: could not connect to host
-isaackabel.ml: could not connect to host
-isaackabel.tk: could not connect to host
ischool.co.jp: did not receive HSTS header
isdf.me: could not connect to host
isdown.cz: could not connect to host
-isef-eg.com: could not connect to host
+isef-eg.com: did not receive HSTS header
iserv.fr: did not receive HSTS header
iseulde.com: did not receive HSTS header
+isfriday.com: could not connect to host
ishadowsocks.ltd: could not connect to host
ishillaryclintoninprisonyet.com: could not connect to host
ishome.org: could not connect to host
@@ -6971,11 +7546,13 @@ isisfighters.info: could not connect to host
isitamor.pm: could not connect to host
isitnuclearwaryet.com: could not connect to host
iskai.net: did not receive HSTS header
+islam.si: could not connect to host
islandinthenet.com: did not receive HSTS header
islandoilsupply.com: max-age too low: 300
islandpumpandtank.com: did not receive HSTS header
-islandzero.net: could not connect to host
-islief.com: could not connect to host
+islandzero.net: did not receive HSTS header
+islazia.fr: could not connect to host
+isntall.us: did not receive HSTS header
isocom.eu: could not connect to host
isoface33.fr: did not receive HSTS header
isogen5.com: could not connect to host
@@ -6985,31 +7562,41 @@ ispringcloud.ru: [Exception... "Component returned failure code: 0x80004005 (NS_
issala.org: did not receive HSTS header
isscouncil.com: could not connect to host
isslshop.com: could not connect to host
-istanbul.systems: did not receive HSTS header
+istanbul.systems: could not connect to host
istanbultravelguide.info: could not connect to host
istaspirtslietas.lv: did not receive HSTS header
-istgame.com: could not connect to host
+istgame.com: did not receive HSTS header
isthefieldcontrolsystemdown.com: could not connect to host
istherrienstillcoach.com: could not connect to host
+isv.online: did not receive HSTS header
it-cave.com: could not connect to host
it-go.net: did not receive HSTS header
it-labor.info: did not receive HSTS header
it-schwerin.de: could not connect to host
+it-sysoft.com: could not connect to host
itad.top: could not connect to host
+itbrief.co.nz: did not receive HSTS header
+itbrief.com.au: did not receive HSTS header
itchimes.com: did not receive HSTS header
+itchybrainscentral.com: could not connect to host
itechgeek.com: max-age too low: 0
items.lv: did not receive HSTS header
itemton.com: could not connect to host
itfaq.nl: did not receive HSTS header
itfensi.net: max-age too low: 6307200
itforcc.com: did not receive HSTS header
+itilo.de: did not receive HSTS header
itinsight.hu: did not receive HSTS header
+itiomassagem.com.br: did not receive HSTS header
itisjustnot.cricket: could not connect to host
itmanie.cz: could not connect to host
+itnews-bg.com: could not connect to host
itos.asia: did not receive HSTS header
itos.pl: did not receive HSTS header
itpol.dk: did not receive HSTS header
itpro-mg.de: could not connect to host
+itproject.guru: did not receive HSTS header
+itrack.in.th: could not connect to host
itriskltd.com: did not receive HSTS header
its-schindler.de: could not connect to host
its-v.de: could not connect to host
@@ -7022,11 +7609,12 @@ itsg-faq.de: could not connect to host
itshka.rv.ua: max-age too low: 604800
itshost.ru: could not connect to host
itsmejohn.org: could not connect to host
-itspawned.com: max-age too low: 200
itsupport-luzern.ch: could not connect to host
+ittop-gabon.com: could not connect to host
itu2015.de: could not connect to host
ius.io: did not receive HSTS header
iuscommunity.org: did not receive HSTS header
+ivanboi.com: could not connect to host
ivanilla.org: could not connect to host
ivanpolchenko.com: could not connect to host
ivi-co.com: max-age too low: 0
@@ -7035,7 +7623,6 @@ ivi.es: max-age too low: 0
ivk.website: could not connect to host
ivklombard.ru: did not receive HSTS header
ivyshop.com.br: could not connect to host
-ivystech.com: could not connect to host
iwannarefill.com: could not connect to host
iwex.swiss: could not connect to host
iwilcox.me.uk: could not connect to host
@@ -7056,6 +7643,7 @@ j-lsolutions.com: could not connect to host
j-rickroll-a.pw: could not connect to host
j0ng.xyz: could not connect to host
j15t98j.co.uk: did not receive HSTS header
+j8y.de: did not receive HSTS header
ja-publications.com: did not receive HSTS header
jaan.su: could not connect to host
jaaxypro.com: could not connect to host
@@ -7063,26 +7651,28 @@ jackalworks.com: could not connect to host
jackdoan.com: did not receive HSTS header
jackfahnestock.com: could not connect to host
jackops.com: could not connect to host
-jackyyf.com: could not connect to host
-jacobparry.ca: did not receive HSTS header
+jacobparry.ca: max-age too low: 0
jacobsenarquitetura.com: max-age too low: 5184000
jadopado.com: could not connect to host
jaepinformatica.com: did not receive HSTS header
jagido.de: did not receive HSTS header
-jaguarwong.xyz: could not connect to host
jahliveradio.com: could not connect to host
jaimechanaga.com: could not connect to host
jaion.ml: could not connect to host
-jakebeardsley.com: could not connect to host
-jakewalker.xyz: could not connect to host
+jak-na-les.cz: could not connect to host
+jakenbake.com: could not connect to host
+jakewalker.xyz: did not receive HSTS header
jakincode.army: could not connect to host
jaksel.id: could not connect to host
jaksi.io: did not receive HSTS header
+jakubtopic.cz: could not connect to host
jamanji.com.ng: could not connect to host
+jamaware.org: did not receive HSTS header
james-parker.com: did not receive HSTS header
james.je: could not connect to host
jamesandanneke.com: did not receive HSTS header
jamesandpame.la: could not connect to host
+jamesbradach.com: did not receive HSTS header
jamesburton.london: could not connect to host
jamesbywater.co.uk: could not connect to host
jamesbywater.com: could not connect to host
@@ -7109,13 +7699,13 @@ jan-cermak.cz: did not receive HSTS header
jan-daniels.de: did not receive HSTS header
jan27.org: did not receive HSTS header
janario.me: could not connect to host
+janebondsurety.com: did not receive HSTS header
jangho.me: could not connect to host
jangocloud.tk: could not connect to host
janheidler.dynv6.net: could not connect to host
janhermann.cz: did not receive HSTS header
janking.de: could not connect to host
janmachynka.cz: could not connect to host
-janmg.com: could not connect to host
janosh.com: did not receive HSTS header
janssen.fm: could not connect to host
janus-engineering.de: did not receive HSTS header
@@ -7128,21 +7718,26 @@ japanbaths.com: could not connect to host
japaneseemoticons.org: did not receive HSTS header
japanesenames.biz: did not receive HSTS header
japangids.nl: could not connect to host
+japanphilosophy.com: did not receive HSTS header
+japansm.com: could not connect to host
japanwide.net: could not connect to host
japaripark.com: could not connect to host
+jape.today: could not connect to host
japlex.com: could not connect to host
jaqen.ch: could not connect to host
jardins-utopie.net: could not connect to host
jaredbates.net: did not receive HSTS header
+jarl.ninja: could not connect to host
jarnail.ca: could not connect to host
-jaroslavc.eu: did not receive HSTS header
jaroslavtrsek.cz: did not receive HSTS header
+jarrodcastaing.com: did not receive HSTS header
+jarrodcastaing.com.au: did not receive HSTS header
jarsater.com: could not connect to host
jartza.org: could not connect to host
jasmineconseil.com: did not receive HSTS header
jasoncosper.com: did not receive HSTS header
jasonradin.com: did not receive HSTS header
-jasonrobinson.me: max-age too low: 60
+jasonrobinson.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
jasonroe.me: did not receive HSTS header
jasonwindholz.com: could not connect to host
jastoria.pl: did not receive HSTS header
@@ -7153,6 +7748,7 @@ javachip.win: could not connect to host
javan.ga: could not connect to host
javascriptlab.fr: could not connect to host
javelinsms.com: could not connect to host
+javfree.me: could not connect to host
javiermixdjs.com: did not receive HSTS header
javilacat.info: could not connect to host
jawn.ca: could not connect to host
@@ -7174,16 +7770,20 @@ jbfp.dk: could not connect to host
jbj.co.uk: did not receive HSTS header
jbn.mx: could not connect to host
jbrowndesign.me: did not receive HSTS header
+jcaicedo.tk: could not connect to host
jccars-occasions.be: could not connect to host
jcch.de: could not connect to host
jccrew.org: could not connect to host
jcf-office.com: did not receive HSTS header
+jcolideles.com: could not connect to host
jcom-communication-system.biz: could not connect to host
jcor.me: could not connect to host
jcoscia.com: could not connect to host
-jcraft.us: did not receive HSTS header
+jcraft.us: could not connect to host
jctf.io: could not connect to host
+jcyz.cf: could not connect to host
jdav-leipzig.de: could not connect to host
+jdcdirectsales.com.ph: could not connect to host
jdfk.net: could not connect to host
jdgonzalez95.com: did not receive HSTS header
jdh8.org: did not receive HSTS header
@@ -7191,7 +7791,8 @@ jdsf.tk: did not receive HSTS header
jean-remy.ch: could not connect to host
jebengotai.com: did not receive HSTS header
jecho.cn: could not connect to host
-jeepeg.com: could not connect to host
+jeepeg.com: did not receive HSTS header
+jeff.forsale: could not connect to host
jeff.is: did not receive HSTS header
jeff393.com: could not connect to host
jeffersonregan.org: could not connect to host
@@ -7203,18 +7804,24 @@ jekkt.com: max-age too low: 604800
jellow.nl: did not receive HSTS header
jemoticons.com: did not receive HSTS header
jenjoit.de: could not connect to host
+jenniferchan.id.au: could not connect to host
jennifercherniack.com: did not receive HSTS header
+jennybeaned.com: did not receive HSTS header
jens-prangenberg.de: did not receive HSTS header
jens.hk: could not connect to host
jensenbanden.no: could not connect to host
jenssen.org: did not receive HSTS header
+jeremyc.ca: could not connect to host
jeremye77.com: did not receive HSTS header
jeremymade.com: did not receive HSTS header
+jeremyness.com: could not connect to host
jeremywagner.me: did not receive HSTS header
jermann.biz: did not receive HSTS header
-jeroldirvin.com: could not connect to host
+jeroenvanderwal.nl: did not receive HSTS header
+jeroldirvin.com: did not receive HSTS header
jerrypau.ca: could not connect to host
jesorsenville.com: did not receive HSTS header
+jessevictors.com: could not connect to host
jessicah.org: could not connect to host
jesuisformidable.nl: could not connect to host
jesuslucas.com: did not receive HSTS header
@@ -7223,11 +7830,9 @@ jetlagphotography.com: could not connect to host
jeton.com: did not receive HSTS header
jetsetcharge.com: could not connect to host
jetsetpay.com: could not connect to host
-jettlarue.com: could not connect to host
jettravel.com.mt: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
jettshome.org: could not connect to host
jetzt-elektromobil.de: could not connect to host
-jeugdkans.nl: could not connect to host
jevisite.ca: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
jewellerydesignstore.com: could not connect to host
jewellerymarvels.com: did not receive HSTS header
@@ -7245,7 +7850,6 @@ jhermsmeier.de: could not connect to host
jia1hao.com: could not connect to host
jiaidu.com: could not connect to host
jiangzequn.com: could not connect to host
-jiangzm.com: did not receive HSTS header
jianjiantv.com: could not connect to host
jiaqiang.vip: could not connect to host
jichi.me: could not connect to host
@@ -7258,14 +7862,16 @@ jimas.eu: did not receive HSTS header
jimenacocina.com: did not receive HSTS header
jimgao.tk: did not receive HSTS header
jimmehcai.com: could not connect to host
+jimmycai.org: could not connect to host
+jimmynelson.com: did not receive HSTS header
jingyuesi.com: could not connect to host
jinliming.ml: could not connect to host
jinmaguoji.com: could not connect to host
-jinshavip.com: could not connect to host
jiosongs.com: did not receive HSTS header
jira.com: did not receive HSTS header
jirav.io: could not connect to host
jisaku-homepage.com: did not receive HSTS header
+jitlab.org: could not connect to host
jitsi.org: did not receive HSTS header
jiyue.com: did not receive HSTS header
jiyuu-ni.com: could not connect to host
@@ -7276,24 +7882,28 @@ 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
+jkuvw.xyz: could not connect to host
jlhmedia.com: did not receive HSTS header
jm06.com: did not receive HSTS header
jm22.com: could not connect to host
jmb.lc: could not connect to host
jmdekker.it: could not connect to host
-jmoreau.ddns.net: could not connect to host
+jmssg.jp: could not connect to host
jmvbmx.ch: could not connect to host
jn1.me: did not receive HSTS header
-jncde.de: could not connect to host
-joacimeldre.com: did not receive HSTS header
+jncde.de: did not receive HSTS header
+jncie.de: did not receive HSTS header
+jncie.eu: did not receive HSTS header
+jncip.de: did not receive HSTS header
joakimalgroy.com: could not connect to host
joaquimgoliveira.pt: could not connect to host
-job.biz.tr: could not connect to host
+job-offer.de: could not connect to host
jobers.ch: did not receive HSTS header
jobers.pt: did not receive HSTS header
jobflyapp.com: could not connect to host
jobmedic.com: could not connect to host
jobshq.com: did not receive HSTS header
+jobss.co.uk: did not receive HSTS header
jobtestprep.de: max-age too low: 0
jobtestprep.dk: max-age too low: 0
jobtestprep.fr: max-age too low: 0
@@ -7305,13 +7915,12 @@ joe-pagan.com: did not receive HSTS header
joearodriguez.com: could not connect to host
joecod.es: could not connect to host
joelgonewild.com: did not receive HSTS header
-joellombardo.com: could not connect to host
+joepitt.co.uk: could not connect to host
joerg-wellpott.de: did not receive HSTS header
joetyson.io: could not connect to host
johannaojanen.com: could not connect to host
johannes-bugenhagen.de: did not receive HSTS header
johannes-sprink.de: could not connect to host
-johannesen.tv: 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
@@ -7319,12 +7928,11 @@ johngaltgroup.com: did not receive HSTS header
johnhgaunt.com: did not receive HSTS header
johnrom.com: could not connect to host
johnsanchez.io: could not connect to host
-johnsiu.com: could not connect to host
johntomasowa.com: could not connect to host
johnverkerk.com: could not connect to host
+joinamericacorps.gov: could not connect to host
jointoweb.com: could not connect to host
jomp16.tk: could not connect to host
-jonarcher.info: could not connect to host
jonas-keidel.de: did not receive HSTS header
jonasgroth.se: did not receive HSTS header
jonathan.ir: could not connect to host
@@ -7332,15 +7940,19 @@ jonathandowning.uk: did not receive HSTS header
jonathanmassacand.ch: could not connect to host
jonathanreyes.com: did not receive HSTS header
jonathansanchez.pro: could not connect to host
+jonathanselea.se: did not receive HSTS header
jonfor.net: could not connect to host
jongha.me: could not connect to host
jonn.me: could not connect to host
jonnichols.info: could not connect to host
+jons.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
jonsno.ws: could not connect to host
joostbovee.nl: did not receive HSTS header
jooto.com: did not receive HSTS header
jopl.org: did not receive HSTS header
+jordankirby.co.uk: could not connect to host
jordanp.engineer: could not connect to host
+jordanscorporatelaw.com: could not connect to host
jordanstrustcompany.cn: could not connect to host
jordanstrustcompany.ru: could not connect to host
jordikroon.nl: could not connect to host
@@ -7353,7 +7965,6 @@ josahrens.me: could not connect to host
josc.com.au: could not connect to host
joseaveleira.es: did not receive HSTS header
josecage.com: could not connect to host
-josefottosson.se: max-age too low: 2592000
josephre.es: did not receive HSTS header
joshi.su: could not connect to host
joshplant.co.uk: could not connect to host
@@ -7362,6 +7973,7 @@ joto.de: did not receive HSTS header
jotpics.com: could not connect to host
jottit.com: could not connect to host
journalof.tech: could not connect to host
+joworld.net: could not connect to host
joyceclerkx.com: could not connect to host
joyjohnston.ca: did not receive HSTS header
joyqi.com: did not receive HSTS header
@@ -7369,7 +7981,7 @@ jpaglier.com: could not connect to host
jpbike.cz: did not receive HSTS header
jpcrochetapparel.com: could not connect to host
jpeaches.xyz: could not connect to host
-jpod.cc: could not connect to host
+jpgangbang.com: could not connect to host
jproxx.com: did not receive HSTS header
jptun.com: could not connect to host
jrgold.me: could not connect to host
@@ -7390,11 +8002,15 @@ ju1ro.de: did not receive HSTS header
jualautoclave.com: did not receive HSTS header
jualssh.com: could not connect to host
juandesouza.com: did not receive HSTS header
+juanhub.com: did not receive HSTS header
juchheim-methode.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+judge2020.com: did not receive HSTS header
juiced.gs: did not receive HSTS header
juka.pp.ua: could not connect to host
juku-info.top: did not receive HSTS header
+juku-wing.jp: could not connect to host
julegoerke.de: did not receive HSTS header
+julenlanda.com: could not connect to host
juliamweber.de: could not connect to host
julian-kipka.de: did not receive HSTS header
julian-witusch.de: could not connect to host
@@ -7403,6 +8019,8 @@ julianwallmeroth.de: could not connect to host
juliaoantiguidades.com.br: could not connect to host
juliawebber.co.za: could not connect to host
julido.de: did not receive HSTS header
+julio.jamil.nom.br: could not connect to host
+juliohernandezgt.com: could not connect to host
jumba.com.au: did not receive HSTS header
jumbopan.com: could not connect to host
jumbox.xyz: could not connect to host
@@ -7414,39 +8032,41 @@ junaos.com: did not receive HSTS header
junaos.xyz: did not receive HSTS header
jundimax.com.br: could not connect to host
junge-selbsthilfe.info: could not connect to host
-jungleculture.co.za: could not connect to host
+jungleculture.co.za: did not receive HSTS header
junglegoat.xyz: did not receive HSTS header
juniwalk.cz: could not connect to host
junjung.me: could not connect to host
junqtion.com: could not connect to host
-jupp0r.de: did not receive HSTS header
-juridiqueo.com: could not connect to host
-juristas.com.br: did not receive HSTS header
-juristeo.com: could not connect to host
+jupp0r.de: could not connect to host
+juridiqueo.com: did not receive HSTS header
+juristeo.com: did not receive HSTS header
jurke.com: did not receive HSTS header
jurko.cz: could not connect to host
+just-english.online: did not receive HSTS header
just-pools.co.za: could not connect to host
just2trade.com: did not receive HSTS header
justiceforfathers.com: did not receive HSTS header
-justiceo.org: could not connect to host
-justin-tech.com: could not connect to host
+justiceo.org: did not receive HSTS header
justinlemay.com: could not connect to host
justinrudio.com: did not receive HSTS header
justlikethat.hosting: did not receive HSTS header
justmy.website: did not receive HSTS header
justnaw.co.uk: could not connect to host
justonce.net: could not connect to host
+justsome.info: did not receive HSTS header
justudin.com: did not receive HSTS header
justwood.cz: did not receive HSTS header
justzz.xyz: could not connect to host
jutella.de: did not receive HSTS header
juul.xyz: could not connect to host
+juventusclublugano.ch: could not connect to host
juventusmania1897.com: could not connect to host
juwairen.cn: could not connect to host
jvn.com: did not receive HSTS header
-jvoice.net: could not connect to host
+jvoice.net: did not receive HSTS header
jwilsson.me: could not connect to host
jwolt-lx.com: could not connect to host
+jxir.de: could not connect to host
jxm.in: could not connect to host
jysperm.me: did not receive HSTS header
jznet.org: could not connect to host
@@ -7454,12 +8074,16 @@ k-dev.de: could not connect to host
k-rickroll-g.pw: could not connect to host
k-wallet.com: did not receive HSTS header
k1cp.com: could not connect to host
+k33k00.com: could not connect to host
k38.cc: max-age too low: 3600
ka-clan.com: could not connect to host
kaanduman.com: could not connect to host
kaasbijwijn.nl: did not receive HSTS header
-kabinapp.com: could not connect to host
+kabarlinux.id: could not connect to host
+kabat-fans.cz: did not receive HSTS header
+kabinapp.com: did not receive HSTS header
kabuabc.com: could not connect to host
+kabus.org: could not connect to host
kackscharf.de: could not connect to host
kadioglumakina.com.tr: did not receive HSTS header
kadmec.com: did not receive HSTS header
@@ -7468,6 +8092,7 @@ kahopoon.net: could not connect to host
kai.cool: did not receive HSTS header
kaika-facilitymanagement.de: could not connect to host
kaika-hms.de: did not receive HSTS header
+kainetsoft.com: could not connect to host
kainz.bayern: could not connect to host
kainz.be: could not connect to host
kaisers.de: did not receive HSTS header
@@ -7475,15 +8100,13 @@ kaiyuewu.com: could not connect to host
kajlovo.cz: could not connect to host
kakaomilchkuh.de: did not receive HSTS header
kaketalk.com: did not receive HSTS header
+kakie-gobocha.jp: could not connect to host
kalami.nl: could not connect to host
kaleidomarketing.com: did not receive HSTS header
kaleidoskop-freiburg.de: did not receive HSTS header
kalender.goip.de: could not connect to host
kalilinux.tech: could not connect to host
kaloix.de: could not connect to host
-kam-serwis.pl: could not connect to host
-kamagra-comprare.it: did not receive HSTS header
-kamagra-italia.it: max-age too low: 3600
kamalame.co: could not connect to host
kambodja.guide: could not connect to host
kamcvicit.sk: could not connect to host
@@ -7495,19 +8118,18 @@ kanada.guide: could not connect to host
kanagawachuo-hospital.jp: did not receive HSTS header
kanar.nl: could not connect to host
kancolle.me: could not connect to host
-kandalife.com: could not connect to host
kandec.co.jp: did not receive HSTS header
kaneo-gmbh.de: did not receive HSTS header
kanganer.com: could not connect to host
kangzaber.com: could not connect to host
kaniklani.co.za: did not receive HSTS header
-kanmitao.com: did not receive HSTS header
+kanmitao.com: could not connect to host
+kanotijd.nl: could not connect to host
kanr.in: could not connect to host
kanscooking.org: could not connect to host
kantorad.io: could not connect to host
kantv1.com: could not connect to host
kanuvu.de: did not receive HSTS header
-kanzakiranko.jp: could not connect to host
kanzlei-wirtschaftsrecht.berlin: max-age too low: 600000
kaohub.com: could not connect to host
kaomojis.net: did not receive HSTS header
@@ -7519,15 +8141,14 @@ kapucini.si: max-age too low: 0
kaputt.com: could not connect to host
kapverde.guide: could not connect to host
karamna.com: could not connect to host
-karanjthakkar.com: did not receive HSTS header
+karamomo.net: did not receive HSTS header
+karanastic.com: did not receive HSTS header
karaoketonight.com: could not connect to host
karatekit.co.uk: did not receive HSTS header
karatorian.org: did not receive HSTS header
-karenledger.ca: could not connect to host
karjala-ski.ru: could not connect to host
karloskontana.tk: could not connect to host
karlproctor.co.uk: could not connect to host
-karlstabo.se: max-age too low: 86400
karmaflux.com: did not receive HSTS header
karpanhellas.com: could not connect to host
kars.ooo: could not connect to host
@@ -7535,8 +8156,9 @@ karting34.com: did not receive HSTS header
karuneshjohri.com: could not connect to host
kashdash.ca: could not connect to host
kashis.com.au: max-age too low: 0
-kat.al: could not connect to host
+kat.al: max-age too low: 0
katalogakci.cz: did not receive HSTS header
+katata-kango.ac.jp: could not connect to host
kati0.com: could not connect to host
katiaetdavid.fr: could not connect to host
katja-nikolic-design.de: could not connect to host
@@ -7549,11 +8171,13 @@ katproxy.top: could not connect to host
katrinjanke.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
kattenfun.be: did not receive HSTS header
kattenfun.nl: did not receive HSTS header
+katthewaffle.fr: could not connect to host
katzen.me: could not connect to host
kaufkraftkiel.de: could not connect to host
kauperwood.ovh: could not connect to host
kauplusprofesional.com: did not receive HSTS header
kausch.at: could not connect to host
+kausta.me: could not connect to host
kavinvin.me: could not connect to host
kawaiii.link: did not receive HSTS header
kawaiiku.com: could not connect to host
@@ -7561,17 +8185,15 @@ kawaiiku.de: could not connect to host
kaydan.io: could not connect to host
kayipmurekkep.com: could not connect to host
kayon.cf: could not connect to host
-kayscs.com: could not connect to host
+kazamasion.com: did not receive HSTS header
kazanasolutions.de: could not connect to host
kazenojiyu.fr: did not receive HSTS header
-kb3.net: did not receive HSTS header
kbfl.org: could not connect to host
kcluster.io: could not connect to host
kd-plus.pp.ua: could not connect to host
kdata.it: did not receive HSTS header
kdbx.online: could not connect to host
kdm-online.de: did not receive HSTS header
-keaneokelley.com: could not connect to host
kearney.io: could not connect to host
keechain.io: could not connect to host
keeley.gq: could not connect to host
@@ -7587,7 +8209,6 @@ keeprubyweird.com: did not receive HSTS header
kefaloniatoday.com: did not receive HSTS header
keihin-chaplin.jp: did not receive HSTS header
kein-fidget-spinner-werden.de: could not connect to host
-keithws.net: could not connect to host
kejibot.com: could not connect to host
kekehouse.net: could not connect to host
kellyandantony.com: could not connect to host
@@ -7617,9 +8238,9 @@ keshausconsulting.com: could not connect to host
keskeces.com: did not receive HSTS header
kesteren.com: could not connect to host
kevindekoninck.com: could not connect to host
-kevinmeijer.nl: could not connect to host
+kevinfoley.cc: could not connect to host
+kevinfoley.org: could not connect to host
kevinmoreland.com: could not connect to host
-kevinmorssink.nl: could not connect to host
kevinroebert.de: did not receive HSTS header
kevlar.pw: did not receive HSTS header
kewego.co.uk: could not connect to host
@@ -7632,11 +8253,11 @@ kgb.us: could not connect to host
kgregorczyk.pl: could not connect to host
kgxtech.com: max-age too low: 2592000
khaganat.net: did not receive HSTS header
+khmath.com: did not receive HSTS header
khosla.uk: could not connect to host
ki-on.net: did not receive HSTS header
-kiaka.co: did not receive HSTS header
+kiaka.co: could not connect to host
kialo.com: did not receive HSTS header
-kiapps.ovh: could not connect to host
kickass-proxies.org: could not connect to host
kickass.al: could not connect to host
kickasstorrents.gq: could not connect to host
@@ -7644,11 +8265,12 @@ kickerplaza.nl: did not receive HSTS header
kid-dachau.de: did not receive HSTS header
kidbacker.com: could not connect to host
kidkat.cn: could not connect to host
-kiel-kind.de: could not connect to host
+kiehls.pt: could not connect to host
kiel-media.de: did not receive HSTS header
kielderweather.org.uk: did not receive HSTS header
kienlen.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
kieranweightman.me: could not connect to host
+kiesuwcursus.nl: did not receive HSTS header
kievradio.com: could not connect to host
kikuzuki.org: could not connect to host
kiladera.be: did not receive HSTS header
@@ -7658,44 +8280,46 @@ kimberg.co.uk: did not receive HSTS header
kimberlybeautysoapcompany.com: did not receive HSTS header
kimpost.org: could not connect to host
kimscrazeecastles.co.uk: did not receive HSTS header
-kin.life: could not connect to host
kina.guide: could not connect to host
kinderbuecher-kostenlos.de: did not receive HSTS header
kinderjugendfreizeitverein.de: could not connect to host
kinderly.co.uk: did not receive HSTS header
kinderopvangengeltjes.nl: did not receive HSTS header
+kinderopvangzevenbergen.nl: did not receive HSTS header
kinderwagen-test24.de: could not connect to host
kindlyfire.com: could not connect to host
kindof.ninja: could not connect to host
kinepolis-studio.ga: could not connect to host
kineto.space: could not connect to host
kingclass.cn: could not connect to host
+kingdomcrc.org: did not receive HSTS header
kingmanhall.org: could not connect to host
kingpincages.com: could not connect to host
kingqueen.org.uk: did not receive HSTS header
kinkdr.com: could not connect to host
-kinmunity.com: could not connect to host
+kinmunity.com: did not receive HSTS header
kinnon.enterprises: could not connect to host
-kinomoto.me: could not connect to host
kinow.com: did not receive HSTS header
kinsmenhomelottery.com: did not receive HSTS header
-kintawifi.com: could not connect to host
kintoandar.com: max-age too low: 0
kintrip.com: did not receive HSTS header
kintzingerfilm.de: did not receive HSTS header
kionetworks.com: did not receive HSTS header
-kipin.fr: could not connect to host
+kipin.fr: did not receive HSTS header
kipira.com: could not connect to host
kiraboshi.xyz: could not connect to host
kirainmoe.com: did not receive HSTS header
kirara.eu: could not connect to host
kirill.ws: could not connect to host
+kirito.kr: could not connect to host
kirkforsenate.com: could not connect to host
kirkpatrickdavis.com: could not connect to host
+kirstin-peters.de: could not connect to host
kisa.io: could not connect to host
kisalt.im: could not connect to host
kiss-register.org: could not connect to host
kissart.net: could not connect to host
+kisskiss.ch: could not connect to host
kisstyle.ru: did not receive HSTS header
kisun.co.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
kita.id: did not receive HSTS header
@@ -7710,52 +8334,61 @@ kitestar.co.uk: did not receive HSTS header
kitk.at: could not connect to host
kitsostech.com: could not connect to host
kitsta.com: could not connect to host
+kiwi.global: could not connect to host
kiwiirc.com: max-age too low: 5256000
+kiwipayment.com: could not connect to host
+kiwipayments.com: could not connect to host
+kiwiplace.com: could not connect to host
+kix.moe: did not receive HSTS header
kiyo.space: could not connect to host
kizil.net: could not connect to host
-kj1396.net: could not connect to host
+kj1391.com: did not receive HSTS header
kjaermaxi.me: did not receive HSTS header
kjg-bachrain.de: could not connect to host
kjoglum.me: could not connect to host
kkull.tv: could not connect to host
-kkzxak47.com: could not connect to host
+klantenadvies.nl: did not receive HSTS header
klas.or.id: did not receive HSTS header
klatschreime.de: did not receive HSTS header
klausimas.lt: 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
kleberstoff.xyz: could not connect to host
kleertjesvoordelig.nl: could not connect to host
-kleidertauschpartys.de: did not receive HSTS header
+kleidertauschpartys.de: could not connect to host
kleinerarchitekturfuehrer.de: could not connect to host
kleinholding.com: could not connect to host
+kleinserienproduktion.com: 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
klicktojob.de: could not connect to host
klingeletest.de: could not connect to host
klingsundet.no: did not receive HSTS header
-kloentrup.de: did not receive HSTS header
+kliqsd.com: could not connect to host
+kloentrup.de: max-age too low: 604800
klunkergarten.org: could not connect to host
-klva.cz: could not connect to host
+kmdev.me: did not receive HSTS header
knapen.io: max-age too low: 604800
knccloud.com: could not connect to host
kngk-azs.ru: could not connect to host
knigadel.com: did not receive HSTS header
-knightsblog.de: could not connect to host
+knightsbridgegroup.org: could not connect to host
knightsweep.com: could not connect to host
knnet.ch: could not connect to host
knowdebt.org: did not receive HSTS header
+knowledgehook.com: did not receive HSTS header
knowledgesnap.com: could not connect to host
knowledgesnapsites.com: could not connect to host
knownsec.cf: could not connect to host
kobieta.guru: could not connect to host
+kobolya.hu: did not receive HSTS header
koddsson.com: did not receive HSTS header
kodexplorer.ml: could not connect to host
kodiaklabs.org: could not connect to host
kodokushi.fr: could not connect to host
koen.io: max-age too low: 86400
-koenleemans.nl: did not receive HSTS header
koenrouwhorst.nl: did not receive HSTS header
koenvdheuvel.me: could not connect to host
koerperimpuls.ch: did not receive HSTS header
@@ -7763,10 +8396,10 @@ koez-mangal.ch: could not connect to host
koezmangal.ch: could not connect to host
koik.io: could not connect to host
koirala.net: could not connect to host
-kojipkgs.fedoraproject.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
kokenmetaanbiedingen.nl: could not connect to host
kola-entertainments.de: did not receive HSTS header
kolaykaydet.com: could not connect to host
+kolbeck.tk: could not connect to host
kollawat.me: could not connect to host
kolozsvaricsuhe.hu: did not receive HSTS header
komikito.com: could not connect to host
@@ -7774,6 +8407,7 @@ kompetenzwerft.de: did not receive HSTS header
konata.us: could not connect to host
kongbaofang.com: could not connect to host
konicaprinterdriver.com: could not connect to host
+koningskwartiertje.nl: could not connect to host
konkurs.ba: could not connect to host
kontakthuman.hu: did not receive HSTS header
kontaxis.network: could not connect to host
@@ -7784,21 +8418,22 @@ koordinate.net: could not connect to host
koppelvlak.net: could not connect to host
kopular.com: could not connect to host
kori.ml: did not receive HSTS header
+korinar.com: could not connect to host
koriyoukai.net: did not receive HSTS header
kornersafe.com: did not receive HSTS header
korni22.org: could not connect to host
korsanparti.org: could not connect to host
kostuumstore.nl: could not connect to host
kostya.net: did not receive HSTS header
+kotakoo.id: could not connect to host
+kotomei.moe: could not connect to host
kotonehoko.net: could not connect to host
kotorimusic.ga: could not connect to host
kotovstyle.ru: could not connect to host
-kottur.is: could not connect to host
koukni.cz: did not receive HSTS header
kourpe.online: could not connect to host
kousaku.jp: could not connect to host
kouten-jp.com: could not connect to host
-kovals.sk: could not connect to host
kozmik.co: could not connect to host
kpdyer.com: did not receive HSTS header
kpebetka.net: did not receive HSTS header
@@ -7822,7 +8457,7 @@ krestanskydarek.cz: [Exception... "Component returned failure code: 0x80004005 (
kreza.de: could not connect to host
kriegskindernothilfe.de: could not connect to host
kriegt.es: did not receive HSTS header
-krist.club: could not connect to host
+krist.club: did not receive HSTS header
kristjanrang.eu: did not receive HSTS header
kristofferkoch.com: could not connect to host
krizek.cc: did not receive HSTS header
@@ -7833,6 +8468,7 @@ kroodle.nl: did not receive HSTS header
krouzkyliduska.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
kruegerrand-wert.de: did not receive HSTS header
krunut.com: did not receive HSTS header
+kryha.io: 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
@@ -7841,10 +8477,11 @@ ksk-agentur.de: did not receive HSTS header
kstan.me: could not connect to host
kswcosmetics.com: could not connect to host
kswriter.com: could not connect to host
-kteen.info: could not connect to host
+kteen.info: did not receive HSTS header
ktube.yt: could not connect to host
ku.io: did not receive HSTS header
kuba.guide: could not connect to host
+kubiwa.net: could not connect to host
kubusadvocaten.nl: could not connect to host
kuchenfeelisa.de: did not receive HSTS header
kuchenschock.de: did not receive HSTS header
@@ -7855,9 +8492,11 @@ kuehnel.org: max-age too low: 604800
kueulangtahunanak.net: could not connect to host
kuko-crews.org: could not connect to host
kultmobil.se: did not receive HSTS header
+kum.com: could not connect to host
kummerlaender.eu: did not receive HSTS header
kundenerreichen.com: did not receive HSTS header
kundenerreichen.de: did not receive HSTS header
+kunstschule-krabax.de: did not receive HSTS header
kuops.com: did not receive HSTS header
kupdokuchyne.cz: could not connect to host
kupelne-ptacek.sk: did not receive HSTS header
@@ -7866,23 +8505,23 @@ kura.io: could not connect to host
kurehun.org: could not connect to host
kuro346.moe: could not connect to host
kuroisalva.xyz: did not receive HSTS header
-kurrietv.nl: did not receive HSTS header
kursprogramisty.pl: could not connect to host
kurtmclester.com: could not connect to host
kurz.pw: could not connect to host
kurzonline.com.br: could not connect to host
kuwago.io: could not connect to host
kvt.berlin: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-kweddingplanning.com: could not connect to host
+kweddingplanning.com: max-age too low: 0
+kwidz.fr: did not receive HSTS header
kwikmed.eu: could not connect to host
kwipi.com: did not receive HSTS header
-kwok.tv: did not receive HSTS header
+kwok.tv: could not connect to host
kwondratsch.com: could not connect to host
kxind.cn: did not receive HSTS header
kyanite.co: could not connect to host
kyberna.xyz: could not connect to host
kykoonn.net: did not receive HSTS header
-kylapps.com: could not connect to host
+kylapps.com: did not receive HSTS header
kyle.place: could not connect to host
kylebaldw.in: did not receive HSTS header
kylerwood.com: could not connect to host
@@ -7890,12 +8529,15 @@ kylling.io: could not connect to host
kymo.org: did not receive HSTS header
kyochon.fr: could not connect to host
kyonagashima.com: did not receive HSTS header
+kyoto-k9.com: could not connect to host
+kyoto-tomoshibi.jp: could not connect to host
kyouko.nl: could not connect to host
kyujin-office.net: could not connect to host
kzjnet.com: could not connect to host
l-rickroll-i.pw: could not connect to host
l.me.uk: could not connect to host
l18.io: could not connect to host
+l3j.net: could not connect to host
la-flora-negra.de: could not connect to host
la-grande-jaugue.fr: did not receive HSTS header
la-retraite-info.com: did not receive HSTS header
@@ -7906,6 +8548,7 @@ labelleza.com.br: could not connect to host
labfox.de: did not receive HSTS header
labiblioafronebrulepas.com: could not connect to host
labina.com.tr: did not receive HSTS header
+labms.com.au: could not connect to host
laboiteanem.fr: could not connect to host
laboiteapc.fr: did not receive HSTS header
labordata.io: could not connect to host
@@ -7921,9 +8564,7 @@ lacasa.fr: could not connect to host
lacasseroy.com: could not connect to host
lacaverne.nl: could not connect to host
lacentral.com: did not receive HSTS header
-lachlankidson.net: could not connect to host
lacledeslan.ninja: could not connect to host
-lacocinadelila.com: did not receive HSTS header
lacuevadechauvet.com: did not receive HSTS header
ladadate.com: could not connect to host
ladylikeit.com: could not connect to host
@@ -7932,7 +8573,6 @@ laemen.com: did not receive HSTS header
laemen.nl: could not connect to host
laf.in.net: could not connect to host
lafamillemusique.fr: did not receive HSTS header
-lafema.de: could not connect to host
laforetenchantee.ch: could not connect to host
lafr4nc3.xyz: could not connect to host
lagalerievirtuelle.fr: did not receive HSTS header
@@ -7942,9 +8582,10 @@ laharilais.fr: did not receive HSTS header
lainchan.org: did not receive HSTS header
laisashop.com.br: could not connect to host
lajijonencadebarbera.com: could not connect to host
+lakatrop.com: could not connect to host
lakefrontlittleelm.com: did not receive HSTS header
-lakehavasuhouserentals.com: did not receive HSTS header
-lakhesis.net: could not connect to host
+lakehavasuhouserentals.com: could not connect to host
+lakewoodcomputerservices.com: could not connect to host
lalajj.com: could not connect to host
laltroweb.it: did not receive HSTS header
lamaland.ru: did not receive HSTS header
@@ -7953,22 +8594,21 @@ lambdafive.co.uk: could not connect to host
lamomebijou.paris: did not receive HSTS header
lampl.info: could not connect to host
lamtv.com.mx: could not connect to host
-lan.biz.tr: could not connect to host
lan2k.org: max-age too low: 86400
+lana.swedbank.se: did not receive HSTS header
lanauzedesigns.com: did not receive HSTS header
lanboll.com: could not connect to host
-lanbyte.se: could not connect to host
+lanbyte.se: did not receive HSTS header
lancehoteis.com: did not receive HSTS header
lancehoteis.com.br: did not receive HSTS header
-lancork.net: did not receive HSTS header
land-links.org: did not receive HSTS header
landbetweenthelakes.us: did not receive HSTS header
landell.ml: could not connect to host
landgoedverkopen.nl: could not connect to host
landhuisverkopen.nl: could not connect to host
-landinfo.no: max-age too low: 300
landscape.canonical.com: max-age too low: 2592000
landscapingmedic.com: did not receive HSTS header
+langatang.com: could not connect to host
langenbach.rocks: could not connect to host
langendorf-ernaehrung-training.de: could not connect to host
langendries.eu: did not receive HSTS header
@@ -7980,17 +8620,20 @@ lanzainc.xyz: could not connect to host
laobox.fr: could not connect to host
laohei.org: could not connect to host
laospage.com: did not receive HSTS header
+lapetition.be: could not connect to host
laplaceduvillage.net: could not connect to host
laquack.com: could not connect to host
lared.ovh: did not receive HSTS header
laredsemanario.com: could not connect to host
-larky.top: could not connect to host
+larsgujord.no: did not receive HSTS header
+larsmerke.de: did not receive HSTS header
lasepiataca.com: did not receive HSTS header
lasercloud.ml: could not connect to host
lashstuff.com: did not receive HSTS header
lasnaves.com: did not receive HSTS header
-lasst-uns-beten.de: did not receive HSTS header
+lasst-uns-beten.de: could not connect to host
latable-bowling-vire.fr: did not receive HSTS header
+latabledebry.be: could not connect to host
latamarissiere.eu: could not connect to host
lateliercantaldeco.fr: could not connect to host
latelierdekathy.com: could not connect to host
@@ -8002,6 +8645,7 @@ lathamlabs.org: could not connect to host
lathen-wahn.de: did not receive HSTS header
latinred.com: could not connect to host
latitude42technology.com: did not receive HSTS header
+latour-managedcare.ch: could not connect to host
latus.xyz: could not connect to host
laufcampus.com: did not receive HSTS header
laufseminare-laufreisen.com: did not receive HSTS header
@@ -8011,15 +8655,18 @@ laurelspaandlash.com: did not receive HSTS header
laureltv.org: did not receive HSTS header
laurent-e-levy.com: did not receive HSTS header
lausitzer-widerstand.de: could not connect to host
+lavabit.no: could not connect to host
lavapot.com: did not receive HSTS header
laventainnhotel-mailing.com: could not connect to host
lavine.ch: did not receive HSTS header
lavito.cz: could not connect to host
lawly.org: could not connect to host
+lawrence-institute.com: could not connect to host
laxatus.com: could not connect to host
laxiongames.es: did not receive HSTS header
layer8.tk: could not connect to host
laymans911.info: could not connect to host
+lazapateriahandmade.pe: did not receive HSTS header
lazerus.net: could not connect to host
lazulu.com: could not connect to host
lazytux.de: did not receive HSTS header
@@ -8031,8 +8678,10 @@ lbrt.xyz: could not connect to host
lclarkpdx.com: could not connect to host
lcti.biz: could not connect to host
ldarby.me.uk: could not connect to host
+ldcraft.pw: could not connect to host
leadbook.ru: max-age too low: 604800
leadership9.com: could not connect to host
+leadgenie.me: could not connect to host
leakedminecraft.net: could not connect to host
leakreporter.net: could not connect to host
leaks.directory: could not connect to host
@@ -8043,9 +8692,9 @@ learn-smart.uk: did not receive HSTS header
learnedhacker.com: could not connect to host
learnedovo.com: did not receive HSTS header
learnfrenchfluently.com: could not connect to host
-learningman.top: did not receive HSTS header
learningorder.com: could not connect to host
lebal.se: could not connect to host
+lebosse.me: could not connect to host
lebrun.org: could not connect to host
lecourtier.fr: did not receive HSTS header
led-tl-wereld.nl: did not receive HSTS header
@@ -8053,6 +8702,7 @@ leddruckalarm.de: did not receive HSTS header
ledgerscope.net: could not connect to host
ledhouse.sk: did not receive HSTS header
ledlampor365.se: could not connect to host
+ledshop.mx: did not receive HSTS header
leebiblestudycentre.net: could not connect to host
leebiblestudycentre.org: could not connect to host
leefindlow.com: could not connect to host
@@ -8061,6 +8711,7 @@ leen.io: could not connect to host
leerkotte.eu: could not connect to host
leetsaber.com: did not receive HSTS header
legal.farm: could not connect to host
+legalcontrol.info: could not connect to host
legaleus.co.uk: could not connect to host
legalisepeacebloom.com: could not connect to host
legalrobot-uat.com: could not connect to host
@@ -8072,7 +8723,6 @@ legitaxi.com: did not receive HSTS header
legymnase.eu: did not receive HSTS header
lehtinen.xyz: could not connect to host
leighneithardt.com: could not connect to host
-leilautourdumon.de: did not receive HSTS header
leinir.dk: did not receive HSTS header
leitner.com.au: did not receive HSTS header
lelehei.com: could not connect to host
@@ -8081,8 +8731,6 @@ lelongbank.com: did not receive HSTS header
lelubre.info: did not receive HSTS header
lemon.co: could not connect to host
lemonrockbiketours.com: did not receive HSTS header
-lemonthy.ca: could not connect to host
-lemonthy.com: could not connect to host
lemp.io: did not receive HSTS header
lenders.direct: could not connect to host
lengyelnyelvoktatas.hu: could not connect to host
@@ -8111,21 +8759,24 @@ lerlivros.online: could not connect to host
lerner.moscow: could not connect to host
les-corsaires.net: could not connect to host
les-voitures-electriques.com: max-age too low: 2592000
+lesbiansslaves.com: could not connect to host
+lesbofight.com: could not connect to host
lescomptoirsdepierrot.com: could not connect to host
lesdouceursdeliyana.com: could not connect to host
lesecuadors.com: did not receive HSTS header
lesformations.net: did not receive HSTS header
lesh.eu: could not connect to host
-lesliekearney.com: could not connect to host
+lesjardinsdubanchet.fr: could not connect to host
+lesliekearney.com: did not receive HSTS header
lesperlesdunet.fr: could not connect to host
lesquatredauphins.fr: did not receive HSTS header
lesquerda.cat: did not receive HSTS header
lessing.consulting: did not receive HSTS header
+let-go.cc: could not connect to host
letempsdunefleur.be: could not connect to host
leter.io: did not receive HSTS header
lethbridgecoffee.com: did not receive HSTS header
letitfly.me: could not connect to host
-letraba.com: could not connect to host
letras.mus.br: did not receive HSTS header
letreview.ph: could not connect to host
letsgetintouch.com: could not connect to host
@@ -8150,11 +8801,11 @@ lezdomsm.com: could not connect to host
lfaz.org: could not connect to host
lfullerdesign.com: could not connect to host
lg21.co: could not connect to host
+lgbtqventures.com: could not connect to host
lgiswa.com.au: did not receive HSTS header
lgrs.com.au: did not receive HSTS header
lgsg.us: could not connect to host
lgts.se: could not connect to host
-lhalbert.xyz: could not connect to host
lhasaapso.com.br: could not connect to host
lheinrich.com: could not connect to host
lheinrich.de: did not receive HSTS header
@@ -8173,11 +8824,12 @@ lianyexiuchang.in: could not connect to host
liaoshuma.com: could not connect to host
liaozheqi.cn: could not connect to host
liaronce.win: could not connect to host
+liautard.fr: could not connect to host
libanco.com: could not connect to host
libdeer.so: could not connect to host
libertas-tech.com: could not connect to host
libertins.date: did not receive HSTS header
-libertyrp.org: did not receive HSTS header
+libertyrp.org: could not connect to host
libfte.org: did not receive HSTS header
librairie-asie.com: did not receive HSTS header
library.linode.com: did not receive HSTS header
@@ -8189,6 +8841,7 @@ liceo.cn: did not receive HSTS header
liceserv.com: could not connect to host
lichess4545.com: did not receive HSTS header
lichess4545.tv: did not receive HSTS header
+lickmypussy.us: could not connect to host
lidl-selection.at: did not receive HSTS header
liduan.com: could not connect to host
liebach.me: did not receive HSTS header
@@ -8198,12 +8851,14 @@ liehuojun.com: could not connect to host
liemen.net: did not receive HSTS header
lietaer.eu: did not receive HSTS header
life-time.nl: did not receive HSTS header
-lifecoachproviders.com: did not receive HSTS header
+lifecoach.tw: did not receive HSTS header
+lifecoachproviders.com: could not connect to host
lifeguard.aecom.com: did not receive HSTS header
lifeinitsownway.com: could not connect to host
-lifeinsurances.pro: could not connect to host
-lifeinsurances24.com: could not connect to host
+lifeinsurances.pro: did not receive HSTS header
+lifeinsurances24.com: did not receive HSTS header
lifemarque.co.uk: did not receive HSTS header
+lifenexto.com: could not connect to host
lifeng.us: did not receive HSTS header
lifeskillsdirect.com: did not receive HSTS header
lifestyler.me: could not connect to host
@@ -8215,7 +8870,7 @@ lightning-ashe.com: did not receive HSTS header
lightnovelsekai.com: could not connect to host
lightpaste.com: could not connect to host
lighttherapydevice.com: did not receive HSTS header
-lightworx.io: did not receive HSTS header
+lightworx.io: could not connect to host
lignemalin.com: could not connect to host
lignemax.com: did not receive HSTS header
lignenet.com: did not receive HSTS header
@@ -8223,30 +8878,30 @@ like.lgbt: could not connect to host
likenosis.com: could not connect to host
lila.pink: did not receive HSTS header
lilapmedia.com: could not connect to host
+liliang13.com: could not connect to host
lilismartinis.com: could not connect to host
-lillpopp.eu: did not receive HSTS header
+lillpopp.eu: max-age too low: 10
lilpwny.com: could not connect to host
lilycms.com: could not connect to host
lilygreen.co.za: did not receive HSTS header
limalama.eu: max-age too low: 1
limeyeti.com: could not connect to host
-limiteddata.co.uk: did not receive HSTS header
-limitget.com: could not connect to host
+limiteddata.co.uk: could not connect to host
+limitget.com: did not receive HSTS header
limodo-shop.de: did not receive HSTS header
limpens.net: did not receive HSTS header
limpido.it: could not connect to host
+lincsbouncycastlehire.co.uk: did not receive HSTS header
lindberg.io: did not receive HSTS header
-lindholmen.club: did not receive HSTS header
lineauniformes.com.br: could not connect to host
linext.cn: could not connect to host
lingerie.net.br: did not receive HSTS header
lingerielovers.com.br: did not receive HSTS header
-lingerieonline.com.br: did not receive HSTS header
+lingerieonline.com.br: could not connect to host
lingolia.com: did not receive HSTS header
lingros-test.tk: could not connect to host
lingting.vip: could not connect to host
linguaquote.com: did not receive HSTS header
-linguatrip.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
linhaoyi.com: could not connect to host
link.ba: could not connect to host
linkage.ph: did not receive HSTS header
@@ -8258,9 +8913,11 @@ linley.de: could not connect to host
linmi.cc: did not receive HSTS header
linno.me: could not connect to host
linorman1997.me: could not connect to host
+linostassi.net: could not connect to host
linpx.com: could not connect to host
linux-admin-california.com: could not connect to host
linux-mint.cz: could not connect to host
+linux.army: could not connect to host
linux.sb: could not connect to host
linuxandstuff.de: could not connect to host
linuxcode.net: could not connect to host
@@ -8272,9 +8929,10 @@ linuxmint.cz: could not connect to host
linuxmonitoring.net: could not connect to host
linvx.org: did not receive HSTS header
linxmind.eu: could not connect to host
-lionlyrics.com: could not connect to host
+lipo.lol: could not connect to host
liquid.solutions: did not receive HSTS header
liquidcomm.net: could not connect to host
+liquidwarp.net: could not connect to host
liquimoly.market: did not receive HSTS header
liquorsanthe.in: could not connect to host
lisaco.de: could not connect to host
@@ -8293,21 +8951,23 @@ little.pw: could not connect to host
littledisney.ro: did not receive HSTS header
littlefreelibrary.org: did not receive HSTS header
littlelife.co.uk: did not receive HSTS header
-littleqiu.net: could not connect to host
littleservice.cn: could not connect to host
+littleskin.cn: did not receive HSTS header
liud.im: could not connect to host
liujunyang.com: did not receive HSTS header
liukang.tech: could not connect to host
-liushuyu.tk: could not connect to host
liv3ly.com: did not receive HSTS header
livechatlady.info: did not receive HSTS header
livedemo.io: could not connect to host
livej.am: could not connect to host
+livejasmin.dk: could not connect to host
liverewrite.com: could not connect to host
+livesearch-fukuoka.com: did not receive HSTS header
liviababynet.com.br: could not connect to host
livinghealthywithchocolate.com: did not receive HSTS header
livrariahugodesaovitor.com.br: could not connect to host
lixiang.one: could not connect to host
+lixiaojiang.ga: could not connect to host
lixingcong.com: could not connect to host
liyang.pro: did not receive HSTS header
lizzythepooch.com: did not receive HSTS header
@@ -8316,14 +8976,16 @@ llamasweet.tech: could not connect to host
lll.st: could not connect to host
llslb.com: could not connect to host
llvm.us: could not connect to host
+lmcm.io: could not connect to host
lmrcouncil.gov: could not connect to host
ln.io: could not connect to host
lnbeauty.ru: max-age too low: 0
lnoldan.com: could not connect to host
-loacg.com: could not connect to host
+loacg.com: did not receive HSTS header
loadingdeck.com: did not receive HSTS header
loadso.me: could not connect to host
loafbox.com: could not connect to host
+loafhead.me: could not connect to host
loanmatch.sg: could not connect to host
loansonline.today: could not connect to host
loanstreet.be: could not connect to host
@@ -8333,12 +8995,14 @@ lobosdomain.no-ip.info: could not connect to host
lobste.rs: did not receive HSTS header
locais.org: could not connect to host
localchum.com: could not connect to host
+localdata.us: did not receive HSTS header
localdrive.me: could not connect to host
localnetwork.nz: could not connect to host
location-fichier-email.com: could not connect to host
locationvoitureautriche.com: could not connect to host
+locationvoiturecorse.net: could not connect to host
locationvoiturefinlande.com: could not connect to host
-locationvoitureirlande.com: could not connect to host
+locationvoitureirlande.com: did not receive HSTS header
locationvoitureislande.com: could not connect to host
locationvoiturenorvege.com: could not connect to host
locationvoiturepaysbas.com: could not connect to host
@@ -8348,7 +9012,7 @@ locker3.com: could not connect to host
locksmithrandburg24-7.co.za: could not connect to host
locksport.org.nz: could not connect to host
locktheirphone.com: could not connect to host
-lockyourcomputer.pw: did not receive HSTS header
+lockyourcomputer.pw: could not connect to host
locomotive.ca: did not receive HSTS header
locomotive.net.br: could not connect to host
locvis.ru: did not receive HSTS header
@@ -8359,7 +9023,6 @@ loftboard.eu: could not connect to host
log2n.uk: could not connect to host
logario.com.br: could not connect to host
logcat.info: could not connect to host
-logfile.at: did not receive HSTS header
logfile.ch: did not receive HSTS header
logic8.ml: could not connect to host
logicaladvertising.com: could not connect to host
@@ -8378,6 +9041,8 @@ lognot.net: could not connect to host
logymedia.com: could not connect to host
loisircreatif.net: did not receive HSTS header
lojadocristaozinho.com.br: did not receive HSTS header
+lojadoprazer.com.br: could not connect to host
+lojahunamarcenaria.com.br: could not connect to host
lojashowdecozinha.com.br: could not connect to host
lojasviavento.com.br: could not connect to host
lojavalcapelli.com.br: could not connect to host
@@ -8386,13 +9051,18 @@ loli.vip: could not connect to host
lolicon.info: could not connect to host
lolicore.ch: could not connect to host
lolidunno.com: could not connect to host
+lolis.stream: could not connect to host
lollaconcept.com.br: could not connect to host
+lonal.com: could not connect to host
+lonasdigital.com: did not receive HSTS header
lonbali.com: did not receive HSTS header
londoncalling.co: did not receive HSTS header
+londonkan.jp: could not connect to host
londonlanguageexchange.com: could not connect to host
londonseedcentre.co.uk: could not connect to host
lonerwolf.com: did not receive HSTS header
longboarding-ulm.de: could not connect to host
+longtaitouwang.com: did not receive HSTS header
look-at-my.site: could not connect to host
lookout.com: did not receive HSTS header
looktothestars.org: did not receive HSTS header
@@ -8411,10 +9081,10 @@ lostarq.com: could not connect to host
lostg.com: did not receive HSTS header
lostinsecurity.com: could not connect to host
lostinweb.eu: could not connect to host
+lostwithdan.com: could not connect to host
loteks.de: did not receive HSTS header
lothai.re: did not receive HSTS header
lothuytinhsi.com: could not connect to host
-lotl.ru: could not connect to host
lotos-ag.ch: did not receive HSTS header
lotsencafe.de: did not receive HSTS header
lottosonline.com: did not receive HSTS header
@@ -8436,6 +9106,7 @@ lovelycorral.com: did not receive HSTS header
lovelyfriends.org: did not receive HSTS header
lovemen.cc: did not receive HSTS header
lovemysafetynet.com: did not receive HSTS header
+loveread-ec.appspot.com: did not receive HSTS header
loveto.at: could not connect to host
lovingpenguin.com: did not receive HSTS header
lowhangingfruitgrabber.com: could not connect to host
@@ -8444,10 +9115,12 @@ lowtherpavilion.co.uk: did not receive HSTS header
loxis.be: did not receive HSTS header
loyaleco.it: could not connect to host
loyaltech.ch: could not connect to host
+lpacademy.com.br: could not connect to host
lpak.nl: could not connect to host
lpgram.ga: could not connect to host
lpm-uk.com: did not receive HSTS header
lrhsclubs.com: could not connect to host
+lrhstsa.com: could not connect to host
ls-a.org: did not receive HSTS header
ls-reallife.de: did not receive HSTS header
ls-rp.es: did not receive HSTS header
@@ -8467,21 +9140,24 @@ lubot.net: could not connect to host
lucas-garte.com: did not receive HSTS header
lucascantor.com: did not receive HSTS header
lucascodes.com: could not connect to host
-lucasgaland.com: could not connect to host
+lucassoler.com.ar: could not connect to host
lucaterzini.com: could not connect to host
lucidlogs.com: could not connect to host
+luckydog.pw: could not connect to host
luckystarfishing.com: did not receive HSTS header
luclu7.pw: could not connect to host
+lucysan.net: could not connect to host
+ludum.pl: 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
-luisgf.es: could not connect to host
luisv.me: could not connect to host
luk.photo: could not connect to host
lukasunger.cz: could not connect to host
lukasunger.net: could not connect to host
lukaszdolan.com: did not receive HSTS header
lukasztkacz.com: could not connect to host
+lukem.eu: could not connect to host
lukeng.me: could not connect to host
lukonet.com: did not receive HSTS header
luludapomerania.com: could not connect to host
@@ -8490,7 +9166,7 @@ luma.pink: could not connect to host
lumd.me: could not connect to host
lumer.tech: could not connect to host
lumi.do: did not receive HSTS header
-luminancy.com: could not connect to host
+luminancy.com: did not receive HSTS header
lunapatch.com: max-age too low: 7889238
lunarift.com: could not connect to host
lunarrift.net: could not connect to host
@@ -8500,7 +9176,7 @@ lunight.ml: could not connect to host
luno.io: could not connect to host
luody.info: could not connect to host
luoe.ml: could not connect to host
-luolikong.vip: could not connect to host
+luolikong.vip: did not receive HSTS header
luom.net: could not connect to host
luoxiao.im: could not connect to host
luoxingyu.ml: could not connect to host
@@ -8509,28 +9185,31 @@ lusis.fr: did not receive HSTS header
lusis.net: could not connect to host
lustrumxi.nl: could not connect to host
luther.fi: could not connect to host
-luxcraft.eng.br: could not connect to host
luxe-it.co.uk: could not connect to host
luxinmo.com: did not receive HSTS header
-luxonetwork.com: did not receive HSTS header
+luxonetwork.com: could not connect to host
luxus-russen.de: could not connect to host
luzeshomologadas.com.br: could not connect to host
+luzfaltex.com: did not receive HSTS header
+lwhate.com: could not connect to host
lycly.top: could not connect to host
lydia-und-simon.de: could not connect to host
-lydiagorstein.com: could not connect to host
+lydiagorstein.com: did not receive HSTS header
lylares.com: did not receive HSTS header
+lynkos.com: did not receive HSTS header
lyonelkaufmann.ch: did not receive HSTS header
-lyonl.com: could not connect to host
+lyonl.com: did not receive HSTS header
lyscnd.com: could not connect to host
lysergion.com: could not connect to host
lyuba.fr: could not connect to host
-lyukaacom.ru: could not connect to host
+lz.sb: could not connect to host
lzahq.tech: did not receive HSTS header
lzkill.com: did not receive HSTS header
lzqii.cn: could not connect to host
lzzr.me: did not receive HSTS header
m-ali.xyz: did not receive HSTS header
m-generator.com: could not connect to host
+m-idea.jp: could not connect to host
m-rickroll-v.pw: could not connect to host
m-warrior.tk: could not connect to host
m.gparent.org: could not connect to host
@@ -8547,7 +9226,6 @@ maartenprovo.be: did not receive HSTS header
maartenterpstra.xyz: could not connect to host
mac-torrents.me: did not receive HSTS header
mac-world.pl: did not receive HSTS header
-mac.biz.tr: could not connect to host
macandtonic.com: did not receive HSTS header
macbolo.com: could not connect to host
macchaberrycream.com: could not connect to host
@@ -8556,15 +9234,18 @@ 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
+machinelearningjavascript.com: could not connect to host
mack.space: could not connect to host
macleodnc.com: did not receive HSTS header
macsandcheesedreams.com: could not connect to host
+macstore.pe: did not receive HSTS header
macustar.eu: did not receive HSTS header
-madandpissedoff.com: could not connect to host
+madandpissedoff.com: did not receive HSTS header
madcatdesign.de: 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
+madeglobal.com: did not receive HSTS header
madeinorder.com: did not receive HSTS header
madeintucson.org: could not connect to host
mademoiselle-emma.be: could not connect to host
@@ -8572,6 +9253,7 @@ mademoiselle-emma.fr: could not connect to host
maderwin.com: did not receive HSTS header
madesoftware.com.br: could not connect to host
madnetwork.org: could not connect to host
+madokami.net: could not connect to host
madpeople.net: max-age too low: 2592000
madrants.net: could not connect to host
madweb.design: did not receive HSTS header
@@ -8580,17 +9262,17 @@ mafiareturns.com: max-age too low: 2592000
magazinedabeleza.net: could not connect to host
magebankin.com: did not receive HSTS header
magenx.com: did not receive HSTS header
+magi.systems: could not connect to host
magia360.com: did not receive HSTS header
-magical.rocks: could not connect to host
magicball.co: could not connect to host
+magieblanche.fr: did not receive HSTS header
magnacumlaude.co: could not connect to host
magneticanvil.com: did not receive HSTS header
magyarokegyhelyen.hu: did not receive HSTS header
mahamed91.pw: could not connect to host
mahansexcavating.com: did not receive HSTS header
mahfouzadedimeji.com: did not receive HSTS header
-mahraartisan.com: max-age too low: 7889238
-maidofhonorcleaning.net: max-age too low: 200
+mahraartisan.com: could not connect to host
maik-mahlow.de: could not connect to host
mail-settings.google.com: did not receive HSTS header (error ignored - included regardless)
mail.google.com: did not receive HSTS header (error ignored - included regardless)
@@ -8602,6 +9284,7 @@ mailhost.it: could not connect to host
mailing-femprendedores.com: did not receive HSTS header
mailing-jbgg.com: could not connect to host
mailon.ga: could not connect to host
+mailpenny.com: could not connect to host
main-street-seo.com: did not receive HSTS header
main-unit.com: could not connect to host
maintainerheaven.ch: could not connect to host
@@ -8614,11 +9297,13 @@ make-pizza.info: could not connect to host
makedonien.guide: could not connect to host
makeit-so.de: could not connect to host
makeitdynamic.com: could not connect to host
+makemejob.com: could not connect to host
makemyvape.co.uk: max-age too low: 7889238
makerstuff.net: did not receive HSTS header
makeshiftco.de: did not receive HSTS header
makeuplove.nl: could not connect to host
-makeyourank.com: max-age too low: 200
+makeyourlaws.org: could not connect to host
+makinen.ru: could not connect to host
malamutedoalasca.com.br: could not connect to host
maldiverna.guide: could not connect to host
maleexcel.com: did not receive HSTS header
@@ -8629,39 +9314,44 @@ malfait.nl: could not connect to host
malgraph.net: could not connect to host
malibubeachrecoverycenter.com: could not connect to host
maljaars-media.nl: could not connect to host
+malkaso.com.ua: could not connect to host
+mallner.me: could not connect to host
malmstroms-co.se: could not connect to host
malone.link: could not connect to host
+malte-kiefer.de: did not receive HSTS header
maltes.website: could not connect to host
malvy.kiev.ua: could not connect to host
-malware.watch: did not receive HSTS header
-malwaretips.com: did not receive HSTS header
malwre.io: could not connect to host
maly.io: did not receive HSTS header
malya.fr: could not connect to host
mamacobaby.com: could not connect to host
+mamadoma.com.ua: could not connect to host
mamaison.io: could not connect to host
mamastore.eu: could not connect to host
mamaxi.org: did not receive HSTS header
+mammeitalianeavienna.com: could not connect to host
mammothmail.com: could not connect to host
mammothmail.net: could not connect to host
mammothmail.org: could not connect to host
mammut.space: could not connect to host
mamochka.org.ua: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+mamout.xyz: could not connect to host
+manaboutahor.se: could not connect to host
manage.zenpayroll.com: did not receive HSTS header
manage4all.com: could not connect to host
manageall.de: could not connect to host
managed-varnish.de: did not receive HSTS header
manageforall.com: could not connect to host
manageforall.de: could not connect to host
+management-ethics.com: did not receive HSTS header
managemynetsuite.com: did not receive HSTS header
-managewp.org: could not connect to host
-manalu.cz: did not receive HSTS header
+manalu.cz: could not connect to host
manantial.mx: could not connect to host
manav-it.de: could not connect to host
mandala-ausmalbilder.de: did not receive HSTS header
mandm.servebeer.com: could not connect to host
mandpress.com: did not receive HSTS header
-mangazuki.co: did not receive HSTS header
+mangazuki.co: could not connect to host
maniadeprazer.com.br: could not connect to host
manifestbin.com: did not receive HSTS header
manipulatedtme.com: could not connect to host
@@ -8676,25 +9366,31 @@ manova.cz: could not connect to host
mansfieldplacevt.com: did not receive HSTS header
manshop24.com: could not connect to host
mansion-note.com: did not receive HSTS header
+mansiontech.cn: did not receive HSTS header
manududu.com.br: could not connect to host
-manuel-schefczyk.de: could not connect to host
-manylots.ru: could not connect to host
+manuelrueger.de: could not connect to host
+manutrol.com.br: did not receive HSTS header
+maomaobt.com: did not receive HSTS header
maomaofuli.vip: could not connect to host
maosi.xin: could not connect to host
-mapasmundi.com.br: could not connect to host
maple5.com: did not receive HSTS header
maplenorth.co: did not receive HSTS header
mapresidentielle.fr: did not receive HSTS header
+maquillage-permanent-tatoo.com: did not receive HSTS header
maranatha.pl: did not receive HSTS header
marbinvest.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+marc-schlagenhauf.de: could not connect to host
+marcaixala.me: could not connect to host
marcberman.co: could not connect to host
marcbuehlmann.com: did not receive HSTS header
marcelmarnitz.com: could not connect to host
marcelparra.com: could not connect to host
-marcelsiegert.com: could not connect to host
+marcelwiedemeier.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
marchagen.nl: did not receive HSTS header
marche-nordic-jorat.ch: could not connect to host
marchhappy.tech: did not receive HSTS header
+marcianoandtopazio.com: could not connect to host
+marco-kretz.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
marco01809.net: could not connect to host
marcoececilia.it: did not receive HSTS header
marcofinke.de: could not connect to host
@@ -8704,12 +9400,15 @@ marcosteixeira.tk: could not connect to host
marcschlagenhauf.de: could not connect to host
marcus-scheffler.com: did not receive HSTS header
marcush.de: could not connect to host
+marcusserver.synology.me: could not connect to host
mardelcupon.com: could not connect to host
mare92.cz: could not connect to host
+mareklecian.cz: did not receive HSTS header
margaretrosefashions.co.uk: could not connect to host
mariacristinadoces.com.br: did not receive HSTS header
mariannematthew.com: could not connect to host
marianwehlus.de: did not receive HSTS header
+mariaolesen.dk: could not connect to host
marie-curie.fr: could not connect to host
marie-elisabeth.dk: did not receive HSTS header
marie-en-provence.com: did not receive HSTS header
@@ -8721,10 +9420,11 @@ mark-armstrong-gaming.com: could not connect to host
markayapilandirma.com: could not connect to host
markcp.me: could not connect to host
market.android.com: did not receive HSTS header (error ignored - included regardless)
-marketgot.com: could not connect to host
+marketgot.com: did not receive HSTS header
marketing-advertising.eu: could not connect to host
marketingdesignu.cz: could not connect to host
marketingromania.ro: did not receive HSTS header
+marketio.co: could not connect to host
markllego.com: could not connect to host
marko-fenster24.de: did not receive HSTS header
markorszulak.com: did not receive HSTS header
@@ -8734,7 +9434,6 @@ markrobin.de: did not receive HSTS header
marksill.com: could not connect to host
marktboten.de: did not receive HSTS header
markusabraham.com: did not receive HSTS header
-markuskeppeler.no-ip.biz: could not connect to host
markusueberallassetmanagement.de: could not connect to host
markusueberallconsulting.de: could not connect to host
markusweimar.de: did not receive HSTS header
@@ -8743,6 +9442,7 @@ marleyresort.com: did not receive HSTS header
marqperso.ch: could not connect to host
marquepersonnelle.ch: could not connect to host
marriottvetcareers.com: could not connect to host
+marsatapp.com: could not connect to host
marshut.net: could not connect to host
martialc.be: could not connect to host
martiert.com: could not connect to host
@@ -8757,21 +9457,26 @@ martinp.no: could not connect to host
martinrogalla.com: did not receive HSTS header
martins.im: could not connect to host
marumagic.com: did not receive HSTS header
-marvinkeller.de: did not receive HSTS header
+marvinkeller.de: could not connect to host
marxist.party: could not connect to host
marykshoup.com: could not connect to host
+masa-hou.com: did not receive HSTS header
masa-yoga.com: did not receive HSTS header
masa.li: could not connect to host
+masaze-hanka.cz: could not connect to host
+maservant.net: could not connect to host
mashek.net: could not connect to host
mashnew.com: could not connect to host
masjidtawheed.net: did not receive HSTS header
maskinkultur.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
maskt.pw: could not connect to host
+massagelimaperu.com: did not receive HSTS header
massivum.de: did not receive HSTS header
massot.eu: did not receive HSTS header
mastd.fr: could not connect to host
mastd.onl: could not connect to host
masteragenasia.com: did not receive HSTS header
+masteragenasia.net: did not receive HSTS header
masterapi.ninja: did not receive HSTS header
masterhaus.bg: did not receive HSTS header
masteringtheterminal.com: did not receive HSTS header
@@ -8789,6 +9494,7 @@ mastodon.fun: could not connect to host
mastodon.my: could not connect to host
mastodon.org.uk: did not receive HSTS header
mastodon.pl: did not receive HSTS header
+mastodon.top: did not receive HSTS header
mastodones.club: could not connect to host
masty.nl: could not connect to host
masumreza.tk: could not connect to host
@@ -8798,11 +9504,11 @@ matatall.com: did not receive HSTS header
maternalsafety.org: did not receive HSTS header
mateusmeyer.com.br: could not connect to host
mateuszpilszek.pl: could not connect to host
-matheo-schefczyk.de: could not connect to host
mathers.ovh: did not receive HSTS header
mathias.re: did not receive HSTS header
+mathieui.net: could not connect to host
mathijskingma.nl: could not connect to host
-matildajaneclothing.com: did not receive HSTS header
+mathis.com.tr: did not receive HSTS header
matillat.ovh: did not receive HSTS header
matlabjo.ir: could not connect to host
matomeplus.co: could not connect to host
@@ -8812,17 +9518,20 @@ matrip.de: could not connect to host
matrix.ac: could not connect to host
matrixcheats.net: could not connect to host
matsuz.com: did not receive HSTS header
+matt-brooks.com: could not connect to host
matt.tf: did not receive HSTS header
mattandreko.com: did not receive HSTS header
mattberryman.com: did not receive HSTS header
matterconcern.com: could not connect to host
matthew-carson.info: could not connect to host
matthewemes.com: did not receive HSTS header
+matthewgrow.com: did not receive HSTS header
matthewprenger.com: could not connect to host
matthewtester.com: did not receive HSTS header
matthiassteen.be: could not connect to host
matthiasweiler.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-mattisam.com: could not connect to host
+mattia98.org: could not connect to host
+mattisam.com: did not receive HSTS header
mattressinsider.com: max-age too low: 3153600
mattwb65.com: did not receive HSTS header
matty.digital: did not receive HSTS header
@@ -8834,6 +9543,7 @@ maurus-automation.de: did not receive HSTS header
mausi.co: did not receive HSTS header
mavisang.cf: could not connect to host
mawe.red: could not connect to host
+maxhoechtl.at: could not connect to host
maxhorvath.com: could not connect to host
maxibanki.ovh: could not connect to host
maxicore.co.za: could not connect to host
@@ -8847,13 +9557,13 @@ maya.mg: could not connect to host
maybeul.com: could not connect to host
maynardnetworks.com: could not connect to host
mayoristassexshop.com: did not receive HSTS header
+maze.design: did not receive HSTS header
mazurlabs.tk: could not connect to host
mazyun.com: did not receive HSTS header
mazz-tech.com: could not connect to host
mbanq.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
mbconsultancy.nu: did not receive HSTS header
mbdrogenbos-usedcars.be: could not connect to host
-mbsec.net: could not connect to host
mbwemmel-usedcars.be: could not connect to host
mc81.com: did not receive HSTS header
mca2017.org: did not receive HSTS header
@@ -8861,34 +9571,37 @@ mcadmin.net: could not connect to host
mcard.vn: did not receive HSTS header
mcb-bank.com: did not receive HSTS header
mcc.re: could not connect to host
-mccarty.io: did not receive HSTS header
+mccarty.io: could not connect to host
mccordworks.com: did not receive HSTS header
mcdanieldevelopmentservices.com: could not connect to host
mcdonalds.ru: did not receive HSTS header
mcga.media: could not connect to host
mcgavocknissanwichitaparts.com: could not connect to host
-mchopkins.net: could not connect to host
+mchan.us: did not receive HSTS header
mcideas.tk: could not connect to host
mcjackk77.com: could not connect to host
mckinley1.com: could not connect to host
mckinleytk.com: could not connect to host
mclab.su: max-age too low: 2592000
mclist.it: could not connect to host
-mcmillansedationdentistry.com: did not receive HSTS header
mcnoobs.pro: could not connect to host
mcooperlaw.com: did not receive HSTS header
+mcqyy.com: could not connect to host
mcsa-usa.org: could not connect to host
+mcsniper.co: could not connect to host
mcsnovatamabayan.com: could not connect to host
+mctherealm.net: could not connect to host
mcuexchange.com: did not receive HSTS header
mcuong.tk: could not connect to host
md-student.com: did not receive HSTS header
mdfnet.se: did not receive HSTS header
mdscomp.net: did not receive HSTS header
mdwftw.com: could not connect to host
-me-dc.com: did not receive HSTS header
+me-dc.com: could not connect to host
meadowfenfarm.com: could not connect to host
meadowviewfarms.org: could not connect to host
mealz.com: did not receive HSTS header
+meanevo.com: could not connect to host
measuretwice.com: did not receive HSTS header
meat-education.com: could not connect to host
meathealth.com: could not connect to host
@@ -8898,9 +9611,9 @@ mecenat-cassous.com: did not receive HSTS header
mechok.ru: could not connect to host
medallia.io: could not connect to host
media-access.online: did not receive HSTS header
-mediacru.sh: max-age too low: 0
+media-courses.com: could not connect to host
+mediacru.sh: could not connect to host
mediadandy.com: could not connect to host
-mediaexpert.fr: did not receive HSTS header
mediafinancelab.org: could not connect to host
mediamag.am: max-age too low: 0
mediastorm.us: did not receive HSTS header
@@ -8915,22 +9628,20 @@ mediterenopmaandag.nl: did not receive HSTS header
mediumraw.org: did not receive HSTS header
mediweed.tk: could not connect to host
medm-test.com: could not connect to host
-medmarkt24.com: max-age too low: 3600
medpot.net: did not receive HSTS header
+medsindex.com: max-age too low: 2592000
medstreaming.com: did not receive HSTS header
medy-me.com: could not connect to host
medzinenews.com: did not receive HSTS header
meedoenzaanstad.nl: did not receive HSTS header
meetfinch.com: could not connect to host
meetmibaby.co.uk: could not connect to host
-meetscompany.jp: did not receive HSTS header
-mega-aukcion.ru: could not connect to host
+meetscompany.jp: could not connect to host
megadrol.com: could not connect to host
megakiste.de: could not connect to host
megam.host: could not connect to host
-megamarkey.de: did not receive HSTS header
megashur.se: did not receive HSTS header
-megauction.tk: could not connect to host
+megasystem.cl: did not receive HSTS header
meghudson.com: could not connect to host
mego.cloud: could not connect to host
meifrench.com: could not connect to host
@@ -8940,16 +9651,16 @@ meine-reise-gut-versichert.de: did not receive HSTS header
meinebo.it: could not connect to host
meisterritter.de: did not receive HSTS header
meizufans.eu: could not connect to host
+mekongeye.com: could not connect to host
melakaltenegger.at: did not receive HSTS header
melangebrasil.com: could not connect to host
-melaniebilodeau.com: could not connect to host
+melaniebilodeau.com: did not receive HSTS header
melcher.it: did not receive HSTS header
melenchatsmelenchiens.fr: could not connect to host
melf.nl: could not connect to host
melhoresdominios.net: could not connect to host
melhorproduto.com.br: could not connect to host
melikoff.es: could not connect to host
-melina-schefczyk.de: could not connect to host
melodic.com.au: could not connect to host
melody-lyrics.com: could not connect to host
melonstudios.net: could not connect to host
@@ -8962,19 +9673,23 @@ members.mayfirst.org: did not receive HSTS header
memdoc.org: could not connect to host
memeblast.ninja: could not connect to host
memepasmal.org: could not connect to host
+memes.nz: could not connect to host
memetrash.co.uk: could not connect to host
memory-plus-180.com: could not connect to host
memorygame.io: did not receive HSTS header
memorytrace.space: could not connect to host
menaraannonces.com: could not connect to host
menchez.me: could not connect to host
+mennace.com: did not receive HSTS header
menotag.com: did not receive HSTS header
mensachterdepatient.nl: max-age too low: 2592000
mensmaximus.de: did not receive HSTS header
mentax.net: did not receive HSTS header
menthix.net: could not connect to host
menudrivetest.com: could not connect to host
+menuiserie-berard.com: did not receive HSTS header
menzaijia.com: could not connect to host
+meo.de: could not connect to host
meow.cloud: could not connect to host
meozcraft.com: could not connect to host
mercamaris.es: did not receive HSTS header
@@ -8984,26 +9699,33 @@ mercedes-benz-usedcars.be: could not connect to host
mercury-studio.com: did not receive HSTS header
mereckas.com: could not connect to host
meredithkm.info: did not receive HSTS header
+meremobil.dk: did not receive HSTS header
mergozzo.com: did not receive HSTS header
merimatka.fi: could not connect to host
meritz.rocks: could not connect to host
mersinunivercity.com: could not connect to host
merson.me: could not connect to host
+mertak.cz: did not receive HSTS header
meshlab.co: could not connect to host
-meshok.info: could not connect to host
meshotes.com: max-age too low: 8640000
meskdeals.com: could not connect to host
mesmoque.com: could not connect to host
messagescelestes.ca: did not receive HSTS header
+meta-word.com: could not connect to host
metadistribution.com: did not receive HSTS header
+metaether.net: could not connect to host
metagrader.com: could not connect to host
metalsculpture.co.uk: max-age too low: 0
metasyntactic.xyz: could not connect to host
+metaword.com: could not connect to host
+metaword.net: could not connect to host
+metaword.org: could not connect to host
metebalci.com: did not receive HSTS header
-meteosherbrooke.com: did not receive HSTS header
meteosky.net: could not connect to host
meter.md: could not connect to host
+metikam.pl: did not receive HSTS header
metin2blog.de: did not receive HSTS header
+metin2sepeti.com: could not connect to host
metis.pw: could not connect to host
metrans-spedition.de: could not connect to host
metricaid.com: did not receive HSTS header
@@ -9039,15 +9761,15 @@ mht-travel.com: could not connect to host
mhx.pw: could not connect to host
mia.ac: could not connect to host
mia.to: could not connect to host
+miamicityballet.org: did not receive HSTS header
mianfei-vpn.com: could not connect to host
-michael-schefczyk.de: could not connect to host
+miboulot.com: could not connect to host
michael-schilling.de: did not receive HSTS header
-michaelcullen.name: could not connect to host
michaeldemuth.com: could not connect to host
michaelfitzpatrickruth.com: did not receive HSTS header
michaelklos.nl: could not connect to host
michaelmorpurgo.com: did not receive HSTS header
-michaeln.net: did not receive HSTS header
+michaeln.net: could not connect to host
michaelscrivo.com: did not receive HSTS header
michaelsulzer.com: did not receive HSTS header
michaelsulzer.eu: did not receive HSTS header
@@ -9063,10 +9785,11 @@ michiganmetalartwork.com: max-age too low: 7889238
mico.world: could not connect to host
miconware.de: could not connect to host
micro-dv.ru: could not connect to host
-micro-rain-systems.com: could not connect to host
+micro-rain-systems.com: did not receive HSTS header
+microbiote-insectes-vecteurs.group: did not receive HSTS header
microblading.pe: could not connect to host
microdesic.com: could not connect to host
-microme.ga: did not receive HSTS header
+microme.ga: could not connect to host
micropple.net: could not connect to host
microtalk.org: could not connect to host
midirs.org: did not receive HSTS header
@@ -9084,29 +9807,30 @@ mightymillionslottery.com: did not receive HSTS header
mightymillionsraffle.com: did not receive HSTS header
migrantskillsregister.org.uk: could not connect to host
migrator.co: could not connect to host
+miguelgfierro.com: did not receive HSTS header
miguksaram.com: could not connect to host
mijn-email.org: could not connect to host
-mijndiad.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+mijndiad.nl: did not receive HSTS header
mijnkredietpaspoort.nl: could not connect to host
mika.cat: could not connect to host
mikadesign.se: did not receive HSTS header
mikaela.info: did not receive HSTS header
-mikaelemilsson.net: could not connect to host
+mikaelemilsson.net: did not receive HSTS header
mikeburns.com: could not connect to host
mikedugan.org: did not receive HSTS header
mikeg.de: did not receive HSTS header
-mikegarnett.co.uk: could not connect to host
mikek.work: did not receive HSTS header
mikeology.org: could not connect to host
mikepair.net: could not connect to host
mikes.tk: could not connect to host
mikeybot.com: could not connect to host
-mikhirev.ru: could not connect to host
mikii.club: could not connect to host
mikk.cz: could not connect to host
+mikkelscheike.com: could not connect to host
+mikkelvej.dk: could not connect to host
mikro-inwestycje.co.uk: did not receive HSTS header
miku.be: could not connect to host
-miku.hatsune.my: did not receive HSTS header
+miku.hatsune.my: could not connect to host
mikusinec.com: could not connect to host
milahendri.com: did not receive HSTS header
milang.xyz: could not connect to host
@@ -9120,13 +9844,18 @@ millibitcoin.jp: could not connect to host
millionairessecrets.com: could not connect to host
millstep.de: did not receive HSTS header
milonga.tips: could not connect to host
+mim.properties: could not connect to host
mimbeim.com: did not receive HSTS header
-mimithedog.com: could not connect to host
+mimm.gov: could not connect to host
mimoderoupa.pt: could not connect to host
min.kiwi: could not connect to host
+minacssas.com: could not connect to host
minantavla.se: could not connect to host
mind.sh: did not receive HSTS header
+mindbodycontinuum.com: could not connect to host
+mindcell.no: could not connect to host
mindcraft.ga: could not connect to host
+mindturbo.com: did not receive HSTS header
mine.world: could not connect to host
minecraft-forum.cf: could not connect to host
minecraft-forum.ga: could not connect to host
@@ -9144,6 +9873,7 @@ minecraftvoter.com: could not connect to host
minecrell.net: max-age too low: 172800
mineover.es: could not connect to host
minetude.com: could not connect to host
+mingkyaa.com: could not connect to host
mingo.nl: max-age too low: 2592000
mingy.ddns.net: could not connect to host
mingyueli.com: could not connect to host
@@ -9161,12 +9891,15 @@ minnesotadata.com: could not connect to host
minor.news: could not connect to host
minora.io: could not connect to host
minoris.se: did not receive HSTS header
+mintea-noua.ro: could not connect to host
+minu.link: could not connect to host
mipiaci.co.nz: did not receive HSTS header
mipiaci.com.au: did not receive HSTS header
miragrow.com: could not connect to host
mireillewendling.com.br: could not connect to host
mirgleich.dnshome.de: could not connect to host
mirindadomo.ru: did not receive HSTS header
+mirodasilva.be: could not connect to host
mironized.com: did not receive HSTS header
mirrorsedgearchive.ga: could not connect to host
mirrorx.com: did not receive HSTS header
@@ -9174,19 +9907,19 @@ miruc.co: did not receive HSTS header
mirucon.com: did not receive HSTS header
misconfigured.io: could not connect to host
miscreant.me: could not connect to host
-misericordiasegrate.org: did not receive HSTS header
+misericordiasegrate.org: could not connect to host
misgluteosperfectos.com: did not receive HSTS header
misiondelosangeles-mailing.com: did not receive HSTS header
misiru.jp: could not connect to host
+missguidedus.com: did not receive HSTS header
missrain.tw: could not connect to host
missycosmeticos.com.br: could not connect to host
mist.ink: could not connect to host
-mister.hosting: did not receive HSTS header
+mister.hosting: could not connect to host
misterl.net: did not receive HSTS header
misuzu.moe: could not connect to host
mitarbeiter-pc.de: did not receive HSTS header
mitchellrenouf.ca: could not connect to host
-mitchelmore.ca: could not connect to host
mitior.net: could not connect to host
mitm-software.badssl.com: could not connect to host
mittenhacks.com: could not connect to host
@@ -9198,28 +9931,33 @@ miyako-kyoto.jp: could not connect to host
miyoshi-kikaku.co.jp: could not connect to host
mizd.at: could not connect to host
mizi.name: could not connect to host
-mjcaffarattilaw.com: did not receive HSTS header
+mjcaffarattilaw.com: could not connect to host
mjhsc.nl: did not receive HSTS header
mk-dizajn.com: could not connect to host
mkacg.com: could not connect to host
mkakh.xyz: could not connect to host
-mkasu.org: could not connect to host
mkfs.be: could not connect to host
mkfs.fr: could not connect to host
mkg-palais-hanau.de: did not receive HSTS header
+mkg-wiebelskirchen.de: could not connect to host
mkp-deutschland.de: did not receive HSTS header
mkplay.io: could not connect to host
mkw.st: could not connect to host
+mlcambiental.com.br: did not receive HSTS header
mlcdn.co: could not connect to host
+mlm-worldwide.de: did not receive HSTS header
mlpchan.net: could not connect to host
mlpepilepsy.org: could not connect to host
mlpvc-rr.ml: did not receive HSTS header
mlrslateroofing.com.au: did not receive HSTS header
+mlsrv.de: could not connect to host
+mm-wife.com: could not connect to host
+mmarnitz.de: could not connect to host
+mmcc.pe: did not receive HSTS header
mmgazhomeloans.com: did not receive HSTS header
mmilog.hu: could not connect to host
mmmm.com: could not connect to host
mmstick.tk: could not connect to host
-mnd.sc: could not connect to host
mnec.io: could not connect to host
mneeb.de: could not connect to host
mnemotiv.com: could not connect to host
@@ -9227,6 +9965,7 @@ mnetworkingsolutions.co.uk: could not connect to host
mnmt.no: did not receive HSTS header
mnwt.nl: could not connect to host
moar.so: did not receive HSTS header
+moas.design: did not receive HSTS header
moas.photos: did not receive HSTS header
mobaircon.com: did not receive HSTS header
mobile-gesundheit.org: could not connect to host
@@ -9234,14 +9973,15 @@ mobile.eti.br: could not connect to host
mobilebay.top: could not connect to host
mobilecoach.com: did not receive HSTS header
mobilekey.co: could not connect to host
-mobilemalin.com: could not connect to host
+mobilemalin.com: did not receive HSTS header
mobileritelushi.com: could not connect to host
mobilethreat.net: could not connect to host
mobilethreatnetwork.net: could not connect to host
mobilpass.no: could not connect to host
-mobimalin.com: could not connect to host
+mobimalin.com: did not receive HSTS header
+mobisium.com: did not receive HSTS header
mobiwalk.com: could not connect to host
-mobix5.com: did not receive HSTS header
+mobix5.com: could not connect to host
mobmp4.co: could not connect to host
mobmp4.com: could not connect to host
mobmp4.info: could not connect to host
@@ -9251,16 +9991,21 @@ mockmyapp.com: could not connect to host
mocloud.eu: could not connect to host
mocloud.win: could not connect to host
mocsuite.club: could not connect to host
+modalrakyat.com: could not connect to host
+modalrakyat.id: did not receive HSTS header
modaperuimport.com: could not connect to host
+modcentral.pw: max-age too low: 2592000
modded-minecraft-server-list.com: could not connect to host
moddedark.com: could not connect to host
mode-marine.com: could not connect to host
modecaso.com: could not connect to host
+modehaus-marionk.de: could not connect to host
model9.io: did not receive HSTS header
modelsclub.org.ua: could not connect to host
modemagazines.co.uk: could not connect to host
moderatortv.de: did not receive HSTS header
modernibytovytextil.cz: could not connect to host
+moderntld.net: could not connect to host
mododo.de: could not connect to host
modx.by: max-age too low: 31536
modx.io: could not connect to host
@@ -9272,11 +10017,14 @@ moebel-nagel.de: did not receive HSTS header
moebel-vergleichen.com: did not receive HSTS header
moefi.xyz: could not connect to host
moegirl.org: did not receive HSTS header
+moehrke.cc: could not connect to host
moellers.it: could not connect to host
moeloli.pw: did not receive HSTS header
moelord.org: could not connect to host
moen.io: did not receive HSTS header
+moeqing.net: could not connect to host
moevenpick-cafe.com: did not receive HSTS header
+moeyun.net: could not connect to host
mogry.net: did not receive HSTS header
mohio.co.nz: did not receive HSTS header
moho.kr: could not connect to host
@@ -9285,22 +10033,30 @@ moitur.com: did not receive HSTS header
mojapraca.sk: did not receive HSTS header
mojefilmy.xyz: could not connect to host
mojizuri.jp: max-age too low: 86400
+mojnet.eu: could not connect to host
+mojnet.net: could not connect to host
+mojoco.co.za: could not connect to host
mokadev.com: did not receive HSTS header
-mols.me: did not receive HSTS header
+molokai.org: could not connect to host
+mols.me: could not connect to host
+momento.co.id: did not receive HSTS header
momfulfilled.com: could not connect to host
mommel.com: could not connect to host
mommelonline.de: could not connect to host
momoka.moe: could not connect to host
mon-a-lisa.com: did not receive HSTS header
-mon-mobile.com: could not connect to host
+mon-mobile.com: did not receive HSTS header
+mona-antenna.com: did not receive HSTS header
mona.lu: could not connect to host
monalisa.wtf: could not connect to host
monarca.systems: could not connect to host
monasterialis.eu: could not connect to host
monautoneuve.fr: did not receive HSTS header
mondar.io: could not connect to host
+mondedie.fr: could not connect to host
mondopoint.com: did not receive HSTS header
mondwandler.de: could not connect to host
+moneoci.com.br: could not connect to host
moneromerchant.com: could not connect to host
moneycrownmedia.com: could not connect to host
moneyfactory.gov: did not receive HSTS header
@@ -9309,28 +10065,30 @@ mongla88.net: could not connect to host
monicabeckstrom.no: could not connect to host
monika-sokol.de: did not receive HSTS header
monitaure.io: could not connect to host
+monitman.com: did not receive HSTS header
monitman.solutions: could not connect to host
+monitorchain.com: did not receive HSTS header
monitori.ng: could not connect to host
monkieteel.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
monochrometoys.com: could not connect to host
monodukuri.cafe: did not receive HSTS header
monodzukuri.cafe: did not receive HSTS header
-monoseis-monotica.gr: max-age too low: 300
+monokoo.com: could not connect to host
monotsuku.com: could not connect to host
monozukuri.cafe: did not receive HSTS header
-monsieurbureau.com: max-age too low: 0
montanacures.org: could not connect to host
montanana.com: did not receive HSTS header
+montand.com: did not receive HSTS header
monteurzimmerfrei.de: could not connect to host
montonicms.com: could not connect to host
moo.pet: did not receive HSTS header
moobo.xyz: did not receive HSTS header
moodifiers.com: could not connect to host
moon.lc: could not connect to host
-moonagic.io: did not receive HSTS header
moonchart.co.uk: did not receive HSTS header
moonless.net: could not connect to host
moonloupe.com: could not connect to host
+moonrhythm.io: did not receive HSTS header
moonysbouncycastles.co.uk: could not connect to host
moosemanstudios.com: could not connect to host
moov.is: could not connect to host
@@ -9349,11 +10107,10 @@ morethanadream.lv: could not connect to host
morfitronik.pl: could not connect to host
morganestes.com: max-age too low: 0
morganino.eu: could not connect to host
-morhys.com: could not connect to host
morningcalculation.com: could not connect to host
morninglory.com: did not receive HSTS header
-mornings.com: did not receive HSTS header
-morotech.com.br: could not connect to host
+mornings.com: could not connect to host
+morotech.com.br: did not receive HSTS header
morpheusx.at: could not connect to host
morpheusxaut.net: could not connect to host
morpork.xyz: could not connect to host
@@ -9367,11 +10124,14 @@ motherbase.io: could not connect to host
motherboard.services: could not connect to host
motionfreight.com: could not connect to host
motionpicturesolutions.com: did not receive HSTS header
+motocollection.pl: did not receive HSTS header
motocyklovedily.cz: did not receive HSTS header
motomorgen.com: could not connect to host
motorbiketourhanoi.com: could not connect to host
motorcheck.ie: did not receive HSTS header
+motornomaslo.bg: did not receive HSTS header
motoroilinfo.com: did not receive HSTS header
+motorsportdiesel.com: did not receive HSTS header
motovio.de: did not receive HSTS header
motransportinfo.com: did not receive HSTS header
mottvd.com: could not connect to host
@@ -9382,28 +10142,30 @@ moumaobuchiyu.com: could not connect to host
mountainadventureseminars.com: did not receive HSTS header
mountainmusicpromotions.com: did not receive HSTS header
movabletype.net: max-age too low: 3600
-move.mil: did not receive HSTS header
+moveltix.net: could not connect to host
movepin.com: could not connect to host
movie4k.fyi: could not connect to host
movie4k.life: could not connect to host
-moviedollars.com: did not receive HSTS header
+movie4kto.site: could not connect to host
+moviedollars.com: could not connect to host
movienang.com: max-age too low: 0
moviesabout.net: could not connect to host
moviespur.info: did not receive HSTS header
moving-pixtures.de: could not connect to host
movingoklahoma.org: could not connect to host
-movio.ga: did not receive HSTS header
+movio.ga: could not connect to host
mowalls.net: could not connect to host
moy-gorod.od.ua: did not receive HSTS header
moyu.host: did not receive HSTS header
mozart-game.cz: could not connect to host
mozartgame.cz: could not connect to host
-mozgb.ru: did not receive HSTS header
+mozgb.ru: could not connect to host
mozillians.org: did not receive HSTS header
mozoa.net: could not connect to host
mozzilla.cz: could not connect to host
mp3donusturucu.com: did not receive HSTS header
mp3donusturucu.net: did not receive HSTS header
+mp3gratuiti.com: could not connect to host
mp3juices.is: could not connect to host
mpi-sa.fr: did not receive HSTS header
mpkossen.com: did not receive HSTS header
@@ -9411,7 +10173,6 @@ mpn.poker: did not receive HSTS header
mpserver12.org: could not connect to host
mr-coffee.net: could not connect to host
mr-hosting.com: could not connect to host
-mr-nachhilfe.de: did not receive HSTS header
mrafrohead.com: could not connect to host
mrawe.com: could not connect to host
mrburtbox.com: could not connect to host
@@ -9422,7 +10183,6 @@ mrettich.org: did not receive HSTS header
mrhc.ru: could not connect to host
mrhee.com: did not receive HSTS header
mrizzio.com: could not connect to host
-mrjooz.com: did not receive HSTS header
mrksk.com: could not connect to host
mrleonardo.com: did not receive HSTS header
mrliu.me: could not connect to host
@@ -9430,7 +10190,7 @@ mrnh.tk: could not connect to host
mrnonz.com: max-age too low: 0
mrparker.pw: did not receive HSTS header
mrpopat.in: did not receive HSTS header
-mrpropop.com: did not receive HSTS header
+mrpropop.com: max-age too low: 0
mrs-shop.com: did not receive HSTS header
mruganiepodspacja.pl: could not connect to host
msc-seereisen.net: could not connect to host
@@ -9438,39 +10198,42 @@ msgallery.tk: could not connect to host
msp66.de: could not connect to host
mstd.tokyo: did not receive HSTS header
mstdn-tech.jp: could not connect to host
-mstdn.io: did not receive HSTS header
-mstdn.nl: did not receive HSTS header
-mstiles92.com: did not receive HSTS header
+mstdn.nl: could not connect to host
+mstiles92.com: could not connect to host
msz-fotografie.de: could not connect to host
mszaki.com: did not receive HSTS header
mt.me.uk: could not connect to host
mtamaki.com: could not connect to host
mtau.com: max-age too low: 2592000
-mtcgf.com: could not connect to host
+mtcgf.com: did not receive HSTS header
mtd.ovh: could not connect to host
mtdn.jp: could not connect to host
mtfgnettoyage.fr: could not connect to host
mtg-esport.de: did not receive HSTS header
-mtg-tutor.de: could not connect to host
mtirc.co: could not connect to host
mtn.cc: could not connect to host
-muenchberger.com: could not connect to host
+mu3on.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+muchohentai.com: could not connect to host
muffet.pw: could not connect to host
muga.space: could not connect to host
muj-svet.cz: could not connect to host
mujadin.se: did not receive HSTS header
mulenvo.com: did not receive HSTS header
+mulheres18.com: could not connect to host
mullen.net.au: did not receive HSTS header
multiterm.org: did not receive HSTS header
multivpn.cn.com: could not connect to host
multivpn.com.de: could not connect to host
multivpn.com.ua: could not connect to host
multivpn.fr: could not connect to host
+multiworldsoftware.com: did not receive HSTS header
mumei.space: did not receive HSTS header
+mundoadulto.com.br: did not receive HSTS header
mundoalpha.com.br: did not receive HSTS header
mundodapoesia.com: did not receive HSTS header
munecoscabezones.com: did not receive HSTS header
munich-rage.de: did not receive HSTS header
+munirajiwa.com: could not connect to host
munkiepus.com: did not receive HSTS header
munpanel.com: could not connect to host
munrabi.com: could not connect to host
@@ -9487,6 +10250,8 @@ murraycolin.org: could not connect to host
murrayrun.com: did not receive HSTS header
mursu.directory: could not connect to host
murz.tv: could not connect to host
+murzik.space: could not connect to host
+muscleangels.com: could not connect to host
museminder2.com: did not receive HSTS header
museumstreak.com: did not receive HSTS header
musewearflipflops.com: could not connect to host
@@ -9500,6 +10265,7 @@ mustika.cf: did not receive HSTS header
mutamatic.com: could not connect to host
mutuelle-obligatoire-pme.fr: did not receive HSTS header
muzgra.in: did not receive HSTS header
+muzi.cz: could not connect to host
muzykaprzeszladoplay.pl: could not connect to host
mvanmarketing.nl: did not receive HSTS header
mvnet.com.br: did not receive HSTS header
@@ -9518,6 +10284,9 @@ myairshop.gr: could not connect to host
myandroid.tools: could not connect to host
myandroidtools.cc: could not connect to host
myandroidtools.pro: could not connect to host
+myappliancerepairhouston.com: did not receive HSTS header
+myartsway.com: did not receive HSTS header
+mybboard.pl: could not connect to host
mybudget.xyz: could not connect to host
mybuilderinlondon.co.uk: did not receive HSTS header
mybusiness.cm: did not receive HSTS header
@@ -9525,6 +10294,7 @@ mycamda.com: could not connect to host
mychocolateweightloss.com: could not connect to host
myclientsplus.com: did not receive HSTS header
mycollab.net: could not connect to host
+mycolorado.gov: could not connect to host
mycontrolmonitor.com: could not connect to host
mycoted.com: did not receive HSTS header
myday.eu.com: did not receive HSTS header
@@ -9539,7 +10309,8 @@ myepass.de: could not connect to host
myfappening.org: could not connect to host
myfdic.gov: could not connect to host
myfunworld.de: could not connect to host
-mygate.at: could not connect to host
+mygalgame.com: could not connect to host
+mygate.at: did not receive HSTS header
mygaysitges.com: could not connect to host
mygivingcircle.org: did not receive HSTS header
mygooder.com: did not receive HSTS header
@@ -9547,23 +10318,28 @@ mygov.scot: did not receive HSTS header
mygpsite.com: did not receive HSTS header
mygreatjob.eu: could not connect to host
myhair.asia: did not receive HSTS header
-myicare.org: could not connect to host
+myhloli.com: did not receive HSTS header
+myhostname.net: did not receive HSTS header
+myicare.org: did not receive HSTS header
myiocc.org: did not receive HSTS header
myip.tech: max-age too low: 2592000
+myipaddr.de: did not receive HSTS header
mykolab.com: did not receive HSTS header
mykreuzfahrt.de: could not connect to host
mylene-chandelier.me: did not receive HSTS header
mylighthost.com: did not receive HSTS header
mylocalsearch.co.uk: did not receive HSTS header
-mymixtapez.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+mylotto.co.nz: could not connect to host
+mymadina.com: could not connect to host
mymp3singer.co: could not connect to host
mymp3singer.net: could not connect to host
mymp3singer.site: could not connect to host
mymsr.de: did not receive HSTS header
myndcommunication.com: could not connect to host
mynetblog.com: did not receive HSTS header
+mynetworkingbuddy.com: could not connect to host
mynewleaf.co: did not receive HSTS header
-mynewselfbariatrics.com: could not connect to host
+mynewselfbariatrics.com: did not receive HSTS header
myni.io: could not connect to host
mynigma.org: did not receive HSTS header
myon.info: did not receive HSTS header
@@ -9576,13 +10352,16 @@ mypagella.com: could not connect to host
mypagella.eu: could not connect to host
mypagella.it: could not connect to host
mypanier.com: max-age too low: 7889238
+mypaperwriter.com: could not connect to host
+myparfumerie.at: did not receive HSTS header
mypension.ca: could not connect to host
myphonebox.de: could not connect to host
myptsite.com: could not connect to host
myqdu.cn: could not connect to host
myqdu.com: could not connect to host
+myrig.com.ua: did not receive HSTS header
myrig.io: could not connect to host
-myrig.net: could not connect to host
+myrig.ru: did not receive HSTS header
myrsa.in: did not receive HSTS header
myruststats.com: could not connect to host
mysa.is: could not connect to host
@@ -9593,20 +10372,24 @@ mysteryblog.de: did not receive HSTS header
mystown.org: could not connect to host
mystudy.me: could not connect to host
mytc.fr: could not connect to host
+mythemeshop.com: did not receive HSTS header
mythlogic.com: did not receive HSTS header
mythslegendscollection.com: did not receive HSTS header
mytravelblog.de: could not connect to host
+mywallets.io: could not connect to host
myweb360.de: did not receive HSTS header
-myxbox.gr: did not receive HSTS header
+myxbox.gr: max-age too low: 0
myzone.com: did not receive HSTS header
mzlog.win: could not connect to host
mzorn.photography: could not connect to host
n-rickroll-e.pw: could not connect to host
+n-x.info: did not receive HSTS header
n0099.cf: did not receive HSTS header
n0rm.ru: could not connect to host
n0s.de: did not receive HSTS header
n2host.eu: could not connect to host
n2x.in: could not connect to host
+n3twork.net: could not connect to host
n4l.pw: could not connect to host
n64chan.me: did not receive HSTS header
n8ch.net: could not connect to host
@@ -9616,22 +10399,24 @@ nabru.co.uk: did not receive HSTS header
nabu-bad-nauheim.de: did not receive HSTS header
nabytko.cz: could not connect to host
nacktetatsachen.at: did not receive HSTS header
-nadaquenosepas.com: could not connect to host
nadia.pt: could not connect to host
nagaragem.com.br: did not receive HSTS header
nagios.by: did not receive HSTS header
nagoya-kyuyo.com: could not connect to host
naiaspa.fr: did not receive HSTS header
naiharngym.com: did not receive HSTS header
-nais.me: could not connect to host
+nailedithomebuilders.com: could not connect to host
+nais.me: did not receive HSTS header
najedlo.sk: could not connect to host
+nakada4610.com: could not connect to host
nakamastreamingcommunity.com: could not connect to host
+nakanishi-paint.com: could not connect to host
nakhonidc.com: could not connect to host
nakitbonus2.com: could not connect to host
nakliyatsirketi.biz: could not connect to host
nakuro.de: could not connect to host
nalao-company.com: did not receive HSTS header
-nalifornia.com: did not receive HSTS header
+nalifornia.com: could not connect to host
nalinux.cz: did not receive HSTS header
nallon.com.br: could not connect to host
nalukfitness.com.br: could not connect to host
@@ -9641,32 +10426,35 @@ named.ga: could not connect to host
nameme.xyz: could not connect to host
nametaken-cloud.duckdns.org: could not connect to host
namethatbone.com: could not connect to host
+namethatporn.com: could not connect to host
namikawatetsuji.jp: could not connect to host
namorico.me: could not connect to host
nan.ci: did not receive HSTS header
nan.zone: could not connect to host
-nanami.moe: did not receive HSTS header
+nanami.moe: could not connect to host
nanderson.me: could not connect to host
nanfangstone.com: could not connect to host
nani.io: did not receive HSTS header
naniki.co.uk: could not connect to host
nanogeneinc.com: could not connect to host
nanokamo.com: did not receive HSTS header
+nanosingularity.com: could not connect to host
nanrenba.net: could not connect to host
nanto.eu: could not connect to host
naoar.com: could not connect to host
naphex.rocks: could not connect to host
napisynapomniky.cz: did not receive HSTS header
narach.com: did not receive HSTS header
+nargele.eu: could not connect to host
narko.space: could not connect to host
narodniki.com: did not receive HSTS header
narviz.com: did not receive HSTS header
nasarawanewsonline.com: could not connect to host
-nasmocopati.com: could not connect to host
-nasralmabrooka.com: did not receive HSTS header
+nasmocopati.com: did not receive HSTS header
+nasralmabrooka.com: could not connect to host
nastysclaw.com: could not connect to host
natalia-fadeeva.ru: could not connect to host
-natalia.io: could not connect to host
+natalia.io: did not receive HSTS header
natalieandjoshua.com: could not connect to host
natalt.org: did not receive HSTS header
natalydanilova.com: max-age too low: 300
@@ -9675,12 +10463,11 @@ nate.sh: could not connect to host
natenom.com: max-age too low: 7200
natenom.de: max-age too low: 7200
natenom.name: max-age too low: 7200
-nathankonopinski.com: could not connect to host
nathanmfarrugia.com: did not receive HSTS header
nationalmall.gov: could not connect to host
nationwidevehiclecontracts.co.uk: did not receive HSTS header
natur-udvar.hu: could not connect to host
-natural-progesterone.net: did not receive HSTS header
+natural-progesterone.net: could not connect to host
naturalcommission.com: could not connect to host
naturblogg.no: did not receive HSTS header
naturecoaster.com: did not receive HSTS header
@@ -9690,8 +10477,8 @@ nauck.org: did not receive HSTS header
naudles.me: could not connect to host
nav.jobs: could not connect to host
naval.tf: could not connect to host
-navdeep.ca: could not connect to host
naviaddress.io: did not receive HSTS header
+navigate-it-services.de: did not receive HSTS header
naviteq.eu: could not connect to host
navjobs.com: could not connect to host
nawroth.info: could not connect to host
@@ -9701,22 +10488,24 @@ nba2kqq.com: could not connect to host
nbb.io: could not connect to host
nbg-ha.de: could not connect to host
nbis.gov: could not connect to host
+nbl.org.tw: could not connect to host
nbrown.us: could not connect to host
+nbtparse.org: could not connect to host
nc2c.com: could not connect to host
nc99.co: could not connect to host
ncc60205.info: could not connect to host
ncdesigns-studio.com: could not connect to host
-ncea.net.au: did not receive HSTS header
nchristo.com: did not receive HSTS header
+ncloud.freeddns.org: could not connect to host
ncpc.gov: could not connect to host
ncpw.gov: did not receive HSTS header
ncrmnt.org: did not receive HSTS header
-nct.org.uk: could not connect to host
+nct.org.uk: did not receive HSTS header
nctx.co.uk: did not receive HSTS header
ndmath.club: could not connect to host
ndtblog.com: could not connect to host
ndtmarket.place: could not connect to host
-ne1home.dyndns.org: did not receive HSTS header
+ne1home.dyndns.org: could not connect to host
neap.io: could not connect to host
near.st: did not receive HSTS header
nearbiwa.com: did not receive HSTS header
@@ -9729,7 +10518,6 @@ nedcf.org.uk: could not connect to host
nediyor.com: did not receive HSTS header
nedwave.com: did not receive HSTS header
nedzad.me: could not connect to host
-neecist.org: could not connect to host
neels.ch: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
neer.io: could not connect to host
neftaly.com: did not receive HSTS header
@@ -9740,12 +10528,14 @@ neilgreen.net: did not receive HSTS header
nejnamc.org: did not receive HSTS header
neko-life.com: did not receive HSTS header
neko.li: could not connect to host
+neko.ml: could not connect to host
nekoku.io: could not connect to host
nekox.ml: could not connect to host
nellen.it: did not receive HSTS header
+nemanja.top: did not receive HSTS header
nemno.de: could not connect to host
nemovement.org: could not connect to host
-nemunai.re: could not connect to host
+nemplex.win: could not connect to host
neoani.me: did not receive HSTS header
neocyd.com: could not connect to host
neofelhz.space: could not connect to host
@@ -9753,6 +10543,7 @@ neojames.me: could not connect to host
neonisi.com: could not connect to host
neonnuke.tech: did not receive HSTS header
neosolution.ca: did not receive HSTS header
+nephy.jp: could not connect to host
nercp.org.uk: did not receive HSTS header
nerd42.de: could not connect to host
nerdbox.cc: did not receive HSTS header
@@ -9760,10 +10551,7 @@ nerdjokes.de: could not connect to host
nerfroute.com: could not connect to host
neris.io: could not connect to host
neriumhcp.com: did not receive HSTS header
-nerpa-club.ru: did not receive HSTS header
-nerull7.info: could not connect to host
nesantuoka.lt: could not connect to host
-nestedquotes.ca: could not connect to host
nestone.ru: could not connect to host
net-navi.cc: did not receive HSTS header
net-rencontre.com: did not receive HSTS header
@@ -9777,33 +10565,33 @@ netbuzz.ru: could not connect to host
netde.jp: could not connect to host
netdego.jp: could not connect to host
netfs.pl: did not receive HSTS header
+netguide.co.nz: did not receive HSTS header
netherwind.eu: did not receive HSTS header
netlilo.com: could not connect to host
netloanusa.com: could not connect to host
netmagik.com: did not receive HSTS header
netprofile.com.au: did not receive HSTS header
netresourcedesign.com: could not connect to host
-netronome.com: did not receive HSTS header
netsafeid.biz: did not receive HSTS header
netscaler.expert: could not connect to host
netsight.org: could not connect to host
netsparkercloud.com: did not receive HSTS header
netsystems.pro: could not connect to host
+nettacompany.com.tr: did not receive HSTS header
nettefoundation.com: could not connect to host
-networking4all.net: max-age too low: 0
networx-online.de: could not connect to host
netzbit.de: could not connect to host
netzpolitik.org: max-age too low: 2592000
netztest.at: did not receive HSTS header
-netzvieh.de: did not receive HSTS header
+netzvieh.de: could not connect to host
netzzwerg4u.de: did not receive HSTS header
neuch.info: did not receive HSTS header
neueonlinecasino2016.com: could not connect to host
neuralgic.net: could not connect to host
neuro-plus-100.com: could not connect to host
neuronfactor.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-neurotransmitter.net: could not connect to host
neutralvehicle.com: did not receive HSTS header
+neva.li: could not connect to host
nevadafiber.net: could not connect to host
never-afk.de: did not receive HSTS header
neveta.com: could not connect to host
@@ -9813,10 +10601,11 @@ newbieboss.com: did not receive HSTS header
newbownerton.xyz: could not connect to host
newchance.store: could not connect to host
newcityinfo.info: could not connect to host
+newdeveloper.download: could not connect to host
newedivideo.it: could not connect to host
newfacialbeautycream.com: could not connect to host
newgenerationplus.org: could not connect to host
-newhdmovies.io: max-age too low: 0
+newhdmovies.io: could not connect to host
newline.online: did not receive HSTS header
newlooknow.com: did not receive HSTS header
newmelalife.com: did not receive HSTS header
@@ -9829,14 +10618,14 @@ newstarnootropics.com: could not connect to host
newtnote.com: could not connect to host
newtonhaus.com: could not connect to host
newtonwarp.com: could not connect to host
+nexgeneration-solutions.com: could not connect to host
nexlab.org: did not receive HSTS header
next-taxi.ru: could not connect to host
next176.sk: did not receive HSTS header
next47.com: did not receive HSTS header
nextcloud.li: could not connect to host
-nextcloud.nerdpol.ovh: could not connect to host
nextcloud.org: could not connect to host
-nextgenthemes.com: did not receive HSTS header
+nextend.org: could not connect to host
nexth.de: could not connect to host
nexth.net: did not receive HSTS header
nexth.us: could not connect to host
@@ -9845,10 +10634,10 @@ nexthop.co.th: did not receive HSTS header
nextpages.de: could not connect to host
nextproject.us: could not connect to host
nextshutter.com: did not receive HSTS header
-nexus-vienna.at: could not connect to host
nexusbyte.de: could not connect to host
nexuscorporation.in: could not connect to host
nfhome.be: did not receive HSTS header
+nfluence.org: could not connect to host
nfo.so: could not connect to host
ng-firewall.com: did not receive HSTS header
ng-security.com: could not connect to host
@@ -9866,6 +10655,7 @@ nhus.de: max-age too low: 172800
niallator.com: could not connect to host
nibiisclaim.com: could not connect to host
nicestresser.fr: could not connect to host
+nicholasperkins.io: could not connect to host
nicky.io: did not receive HSTS header
nico.one: could not connect to host
nicoborghuis.nl: could not connect to host
@@ -9874,16 +10664,20 @@ nicolaelmer.ch: did not receive HSTS header
nicolasbettag.me: did not receive HSTS header
nicolasdutour.com: did not receive HSTS header
nicolasklotz.de: did not receive HSTS header
+nicoleoquendo.com: max-age too low: 2592000
niconiconi.xyz: could not connect to host
nicorevin.ru: could not connect to host
nidux.com: did not receive HSTS header
niduxcomercial.com: could not connect to host
+niedersetz.de: did not receive HSTS header
nien.chat: could not connect to host
nien.com.tw: could not connect to host
nienfun.com: could not connect to host
nieuwsoverijssel.nl: did not receive HSTS header
+niffler.software: could not connect to host
nifpnet.nl: could not connect to host
nifume.com: could not connect to host
+niggo.eu: could not connect to host
nightsnack.cf: could not connect to host
niho.jp: did not receive HSTS header
nikcub.com: could not connect to host
@@ -9895,6 +10689,7 @@ nikolaichik.photo: did not receive HSTS header
nikolasbradshaw.com: could not connect to host
nilianwo.com: could not connect to host
niloxy.com: did not receive HSTS header
+nimidam.com: could not connect to host
ninchisho-online.com: did not receive HSTS header
ninebytes.xyz: could not connect to host
ning.so: did not receive HSTS header
@@ -9902,12 +10697,13 @@ ninhs.org: could not connect to host
ninjan.co: did not receive HSTS header
ninjaspiders.com: could not connect to host
ninofink.com: could not connect to host
-ninreiei.jp: could not connect to host
niouininon.eu: could not connect to host
nippler.org: could not connect to host
nippombashi.net: did not receive HSTS header
+nippon.fr: could not connect to host
nipponcareers.com: did not receive HSTS header
nirada.info: could not connect to host
+nirjharstudio.com: could not connect to host
nirna.io: did not receive HSTS header
nirvanashop.com: could not connect to host
nishaswonderland.be: did not receive HSTS header
@@ -9918,6 +10714,7 @@ nitaonline.org: [Exception... "Component returned failure code: 0x80004005 (NS_E
niveldron.com: could not connect to host
nixien.fr: could not connect to host
nixmag.net: could not connect to host
+nixne.st: could not connect to host
nkadvertising.online: could not connect to host
nkautoservice.nl: did not receive HSTS header
nkb.in.th: could not connect to host
@@ -9925,42 +10722,50 @@ nlegall.fr: did not receive HSTS header
nll.fi: could not connect to host
nmadda.com: did not receive HSTS header
nmctest.net: could not connect to host
+nmgb.ga: could not connect to host
+nmgb.ml: could not connect to host
nmsnj.com: did not receive HSTS header
nmueller.at: could not connect to host
nnote.net: could not connect to host
nnya.cat: could not connect to host
no17sifangjie.cc: could not connect to host
+noc.wang: could not connect to host
nocallaghan.com: could not connect to host
-nocit.dk: could not connect to host
noclegi-online.pl: did not receive HSTS header
noctinus.tk: could not connect to host
-nodari.com.ar: could not connect to host
node-core-app.com: could not connect to host
nodebrewery.com: could not connect to host
nodechate.xyz: could not connect to host
+nodecompat.com: could not connect to host
nodefiles.com: could not connect to host
+nodefoo.com: could not connect to host
nodepanel.net: did not receive HSTS header
+nodepositcasinouk.com: did not receive HSTS header
nodeselect.com: could not connect to host
nodespin.com: did not receive HSTS header
nodetemple.com: could not connect to host
nodi.at: did not receive HSTS header
+nodum.io: did not receive HSTS header
noegoph.com: did not receive HSTS header
noelblog.ga: could not connect to host
noelssanssoucipensacola.com: did not receive HSTS header
noesberts-weidmoos.de: did not receive HSTS header
noexpect.org: could not connect to host
-noima.com: did not receive HSTS header
noisebridge.social: could not connect to host
-nokia.la: could not connect to host
+nojok.es: could not connect to host
nolag.host: could not connect to host
nolatepayments.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
nolberg.net: did not receive HSTS header
nolimits.net.nz: could not connect to host
nolimitsbook.de: did not receive HSTS header
nolte.work: could not connect to host
+nomagic.software: did not receive HSTS header
nomorebytes.de: could not connect to host
nonemu.ninja: could not connect to host
+noodlecrave.com: did not receive HSTS header
noodlesandwich.com: did not receive HSTS header
+noodleyum.com: did not receive HSTS header
+nootropicpedia.com: could not connect to host
nootropicsource.com: did not receive HSTS header
nope.website: could not connect to host
nopex.no: could not connect to host
@@ -9972,11 +10777,15 @@ norden.eu.org: could not connect to host
nordic-survival.de: did not receive HSTS header
nordiccasinocommunity.com: did not receive HSTS header
nordlicht.photography: did not receive HSTS header
+nordseeblicke.de: did not receive HSTS header
+noref.tk: could not connect to host
norge.guide: could not connect to host
+normalady.com: could not connect to host
normanschwaneberg.de: did not receive HSTS header
north.supply: could not connect to host
northcutt.com: did not receive HSTS header
-northpennvwparts.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+northernmuscle.ca: could not connect to host
+northpennvwparts.com: max-age too low: 604800
northwoodsfish.com: could not connect to host
nosbenevolesontdutalent.com: could not connect to host
nosecretshop.com: could not connect to host
@@ -9987,6 +10796,7 @@ not-a.link: could not connect to host
nota-web.com: could not connect to host
notablog.xyz: did not receive HSTS header
notadd.io: could not connect to host
+notadd.store: could not connect to host
notarankastojkovic.me: could not connect to host
notarobot.fr: did not receive HSTS header
notboring.co.uk: could not connect to host
@@ -9998,12 +10808,14 @@ notevencode.com: could not connect to host
nothing.net.nz: max-age too low: 7776000
nothing.org.uk: could not connect to host
noticia.do: did not receive HSTS header
-notjustbitchy.com: did not receive HSTS header
+notificami.com: could not connect to host
+notjustbitchy.com: could not connect to host
notonprem.com: could not connect to host
nottheonion.net: did not receive HSTS header
+nottori.com: could not connect to host
notypiesni.sk: did not receive HSTS header
nou.si: did not receive HSTS header
-nouma.fr: could not connect to host
+nouma.fr: did not receive HSTS header
nouvelle-vague-saint-cast.fr: did not receive HSTS header
nova-elearning.com: could not connect to host
nova.com.hk: did not receive HSTS header
@@ -10018,19 +10830,23 @@ novelabs.de: could not connect to host
novelabs.eu: could not connect to host
novelshouse.com: could not connect to host
novfishing.ru: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-novinhabucetuda.com: did not receive HSTS header
+novinhabucetuda.com: could not connect to host
novinivo.com: did not receive HSTS header
novtest.ru: did not receive HSTS header
+nowcost.com: could not connect to host
noworrywp.com: could not connect to host
nowprotein.com: did not receive HSTS header
+nowremindme.com: could not connect to host
nozoe.jp: could not connect to host
npm.li: did not receive HSTS header
npol.de: could not connect to host
npool.org: could not connect to host
nq7.pl: could not connect to host
+nrc-gateway.gov: could not connect to host
nrechn.de: could not connect to host
nrizzio.me: could not connect to host
-nrnjn.xyz: did not receive HSTS header
+nrnjn.xyz: could not connect to host
+nrvn.cc: did not receive HSTS header
nrvnastudios.com: could not connect to host
nsbfalconacademy.org: could not connect to host
nsdev.cn: could not connect to host
@@ -10038,7 +10854,6 @@ nsellier.fr: did not receive HSTS header
nshost.ro: did not receive HSTS header
nsmail.cn: could not connect to host
nspeaks.com: did not receive HSTS header
-nstremsdoerfer.ovh: did not receive HSTS header
nstyleintl.ca: did not receive HSTS header
nsure.us: could not connect to host
nsweb.solutions: could not connect to host
@@ -10048,20 +10863,21 @@ ntse.xyz: could not connect to host
nu3.at: did not receive HSTS header
nu3.ch: did not receive HSTS header
nu3.co.uk: could not connect to host
-nu3.com: did not receive HSTS header
nu3.de: did not receive HSTS header
nu3.fr: did not receive HSTS header
nube.ninja: did not receive HSTS header
-nubeslayer.com: did not receive HSTS header
-nuclear-crimes.com: could not connect to host
-nuclearcrimes.com: could not connect to host
-nuclearcrimes1.com: could not connect to host
+nubeslayer.com: could not connect to host
+nuclear-crimes.com: did not receive HSTS header
+nuclearcrimes.com: did not receive HSTS header
+nuclearcrimes1.com: did not receive HSTS header
nudel.ninja: could not connect to host
+nudestpics.com: could not connect to host
nufla.de: could not connect to host
nugetdependencies.com: did not receive HSTS header
nuiguru.me: could not connect to host
nukenet.se: could not connect to host
nukute.com: did not receive HSTS header
+nulap.com: could not connect to host
null-pointer.eu: did not receive HSTS header
null-sec.ru: could not connect to host
null.cat: did not receive HSTS header
@@ -10077,9 +10893,11 @@ nupef.org.br: did not receive HSTS header
nurserybook.co: did not receive HSTS header
nurture.be: did not receive HSTS header
nusatrip-api.com: did not receive HSTS header
+nusku.biz: did not receive HSTS header
nutricuerpo.com: did not receive HSTS header
nutrieduca.com: could not connect to host
nutrienti.eu: did not receive HSTS header
+nutrifyyourself.com: could not connect to host
nutritionculture.com: could not connect to host
nutsandboltsmedia.com: did not receive HSTS header
nuttyveg.com: did not receive HSTS header
@@ -10087,21 +10905,22 @@ nuwaterglobal.com: did not receive HSTS header
nvlop.xyz: did not receive HSTS header
nwa.xyz: could not connect to host
nweb.co.nz: could not connect to host
-nwk1.com: did not receive HSTS header
-nwork.media: could not connect to host
+nwork.media: did not receive HSTS header
nxt.sh: did not receive HSTS header
nyanpasu.tv: could not connect to host
nyatane.com: could not connect to host
nyazeeland.guide: could not connect to host
nycroth.com: could not connect to host
-nydnxs.com: could not connect to host
nyesider.org: could not connect to host
+nyffo.com: did not receive HSTS header
+nylonfeetporn.com: could not connect to host
nyored.com: did not receive HSTS header
nyphox.net: could not connect to host
-nys-hk.com: did not receive HSTS header
nysepho.pw: could not connect to host
nysifclaimcentral.com: did not receive HSTS header
nystart.no: did not receive HSTS header
+nystudio107.com: did not receive HSTS header
+nyuusannkinn.com: did not receive HSTS header
nz.search.yahoo.com: max-age too low: 172800
nzbs.io: could not connect to host
nzmk.cz: could not connect to host
@@ -10127,6 +10946,7 @@ obscuredfiles.com: could not connect to host
observatory.se: could not connect to host
obsydian.org: could not connect to host
oc-minecraft.com: could not connect to host
+ocad.com.au: did not receive HSTS header
ocapic.com: could not connect to host
occ.gov: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
occasion-impro.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -10134,6 +10954,7 @@ occupymedia.org: could not connect to host
ochaken.cf: could not connect to host
ocmeulebeke.be: did not receive HSTS header
ocrami.us: did not receive HSTS header
+octal.es: could not connect to host
octanio.com: could not connect to host
octo.im: could not connect to host
octocat.ninja: could not connect to host
@@ -10143,6 +10964,7 @@ oddmouse.com: could not connect to host
odin.xxx: could not connect to host
odinkapital.no: did not receive HSTS header
odinoffice.no: did not receive HSTS header
+odisealinux.com: did not receive HSTS header
odosblog.de: could not connect to host
odysseyandco.com: could not connect to host
odysseyconservationtrust.com: did not receive HSTS header
@@ -10153,6 +10975,7 @@ ofer.site: did not receive HSTS header
off-the-clock.us: could not connect to host
offenedialoge.de: max-age too low: 2592000
offersgame.com: could not connect to host
+offerstone.cl: could not connect to host
offgames.pro: could not connect to host
office-ruru.com: could not connect to host
officeclub.com.mx: did not receive HSTS header
@@ -10161,18 +10984,18 @@ offshore-unternehmen.com: could not connect to host
offshorefirma-gruenden.com: could not connect to host
offshoremarineparts.com: did not receive HSTS header
offtherails.ie: could not connect to host
+ofggolf.com: could not connect to host
oficinadocelular.com.br: could not connect to host
ofo2.com: could not connect to host
oganek.ie: could not connect to host
oganime.com: did not receive HSTS header
oggw.us: could not connect to host
ogkw.de: could not connect to host
-oglen.ca: could not connect to host
ogogoshop.com: could not connect to host
ogrodywstudniach.pl: did not receive HSTS header
ohayosoro.me: could not connect to host
ohm2013.org: did not receive HSTS header
-ohma.ga: could not connect to host
+ohma.ga: did not receive HSTS header
ohnemusik.com: could not connect to host
ohohrazi.com: did not receive HSTS header
ohreally.de: could not connect to host
@@ -10181,9 +11004,14 @@ oiepoie.nl: could not connect to host
oinky.ddns.net: could not connect to host
oishioffice.com: did not receive HSTS header
ojbk.eu: could not connect to host
+ojeremy.com: could not connect to host
ojls.co: could not connect to host
+okad-center.de: could not connect to host
+okad.de: could not connect to host
+okad.eu: could not connect to host
okane.love: could not connect to host
okashi.me: could not connect to host
+okaz.de: could not connect to host
oklahomamoversassociation.org: could not connect to host
oklahomanotepro.com: could not connect to host
okok-rent.com: could not connect to host
@@ -10191,22 +11019,26 @@ okok.rent: could not connect to host
okutama.in.th: could not connect to host
olafnorge.de: did not receive HSTS header
olcso-vps-szerver.hu: could not connect to host
-oldandyounglesbians.us: did not receive HSTS header
+oldandyounglesbians.us: could not connect to host
oldschool-criminal.com: did not receive HSTS header
oldtimer-trifft-flugplatz.de: did not receive HSTS header
oliverdunk.com: did not receive HSTS header
-oliverfaircliff.com: could not connect to host
ollehbizev.co.kr: could not connect to host
+ols.io: did not receive HSTS header
olswangtrainees.com: could not connect to host
olympe-transport.fr: did not receive HSTS header
omacostudio.com: could not connect to host
+omar.yt: could not connect to host
omarh.net: could not connect to host
+omeuanimal.com: did not receive HSTS header
omgaanmetidealen.com: could not connect to host
ominto.com: did not receive HSTS header
+omise.co: did not receive HSTS header
ommahpost.com: did not receive HSTS header
omnigon.network: could not connect to host
omnilab.tech: could not connect to host
omniti.com: max-age too low: 1
+omorashi.org: could not connect to host
omquote.gq: could not connect to host
omskit.ru: did not receive HSTS header
omyogarishikesh.com: did not receive HSTS header
@@ -10216,11 +11048,11 @@ onearth.one: did not receive HSTS header
oneb4nk.com: could not connect to host
onecycling.my: could not connect to host
onecycling.world: could not connect to host
-onedot.nl: could not connect to host
onefour.co: could not connect to host
onehourloan.com: could not connect to host
onehourloan.sg: did not receive HSTS header
-onelawsuit.com: did not receive HSTS header
+oneiros.cc: could not connect to host
+onelawsuit.com: could not connect to host
oneminutefilm.tv: did not receive HSTS header
onemusou.com: could not connect to host
onepathnetwork.com: max-age too low: 7776000
@@ -10233,22 +11065,25 @@ onetly.com: could not connect to host
onetwentyseven001.com: did not receive HSTS header
onewebdev.info: could not connect to host
oneworldbank.com: did not receive HSTS header
-onewpst.com: did not receive HSTS header
+onewpst.com: could not connect to host
onguardonline.gov: did not receive HSTS header
oniichan.us: did not receive HSTS header
+onionbot.ga: could not connect to host
onioncloud.org: could not connect to host
onionsburg.com: could not connect to host
online-casino.eu: did not receive HSTS header
online-scene.com: did not receive HSTS header
online-wetten.de: did not receive HSTS header
+online.swedbank.se: did not receive HSTS header
onlinebiller.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-onlinebillingform.com: did not receive HSTS header
+onlinebillingform.com: could not connect to host
onlinecasinobluebook.com: could not connect to host
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
onlinepollsph.com: could not connect to host
+onlineporno.tv: 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
@@ -10256,8 +11091,9 @@ only-roses.co.uk: did not receive HSTS header
only-roses.com: max-age too low: 2592000
onlyshopstation.com: did not receive HSTS header
onlyzero.net: could not connect to host
-onmuvo.com: did not receive HSTS header
+onmuvo.com: could not connect to host
onmyoji.biz: could not connect to host
+onnee.ch: could not connect to host
ononpay.com: did not receive HSTS header
onovlena.dn.ua: could not connect to host
onpatient.com: did not receive HSTS header
@@ -10285,10 +11121,10 @@ oopsorup.com: could not connect to host
oost.io: could not connect to host
opatut.de: did not receive HSTS header
opcaobolsas.com.br: could not connect to host
+open-domotics.info: could not connect to host
open-future.be: did not receive HSTS header
open-mx.de: could not connect to host
open-to-repair.fr: max-age too low: 86400
-opencad.io: did not receive HSTS header
openclub24.ru: could not connect to host
openconcept.no: did not receive HSTS header
openconnect.com.au: could not connect to host
@@ -10307,8 +11143,9 @@ opensourcehouse.net: could not connect to host
openspace.xxx: did not receive HSTS header
opensrd.com: could not connect to host
openssf.org: did not receive HSTS header
-opentexon.com: could not connect to host
+opentexon.com: did not receive HSTS header
openxmpp.com: could not connect to host
+operad.fr: could not connect to host
opiates.net: did not receive HSTS header
opic.gov: could not connect to host
opim.ca: did not receive HSTS header
@@ -10316,25 +11153,32 @@ opinion8td.com: did not receive HSTS header
opinionicentrifuga.it: could not connect to host
opinionipannolini.it: could not connect to host
opioids.com: could not connect to host
+oppag.com.br: did not receive HSTS header
opperwall.net: could not connect to host
-opportunitycorps.org: max-age too low: 43200
+opposer.me: could not connect to host
opsafewinter.net: could not connect to host
opsbears.com: did not receive HSTS header
-opstacks.com: did not receive HSTS header
+opsnotepad.com: could not connect to host
+opstacks.com: could not connect to host
optenhoefel.de: could not connect to host
+optiekzien.nl: did not receive HSTS header
optimal-e.com: did not receive HSTS header
-optimist.bg: could not connect to host
optimista.soy: could not connect to host
+optimize-jpg.com: could not connect to host
optometriepunt.nl: did not receive HSTS header
optumrxhealthstore.com: could not connect to host
opunch.org: did not receive HSTS header
oracaodocredo.com.br: could not connect to host
orangekey.tk: could not connect to host
+orangenuts.in: could not connect to host
+oranges.tokyo: could not connect to host
+orangetravel.eu: could not connect to host
oranic.com: did not receive HSTS header
orbiosales.com: could not connect to host
orbitcom.de: did not receive HSTS header
orbitdefence.co.uk: could not connect to host
orbograph-hrcm.com: could not connect to host
+orcahq.com: did not receive HSTS header
order.one: could not connect to host
ordereat.fr: could not connect to host
orderlounge.de: did not receive HSTS header
@@ -10342,31 +11186,29 @@ oref-idf.com: did not receive HSTS header
oref-idf.net: did not receive HSTS header
oref-idf.org: did not receive HSTS header
oregonmu.org: did not receive HSTS header
-oreka.online: could not connect to host
orelavtomaster.ru: did not receive HSTS header
orfeo-engineering.ch: could not connect to host
organic-superfood.net: could not connect to host
+organicae.com: did not receive HSTS header
oricejoc.com: could not connect to host
originalmockups.com: did not receive HSTS header
originalsport.com.br: could not connect to host
-originpc.com: could not connect to host
orioncustompcs.com: could not connect to host
orionfcu.com: did not receive HSTS header
-orionfinancialservices.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
+orui.com.br: could not connect to host
orum.in: could not connect to host
osaiyuwu.com: could not connect to host
-oscarmashauri.com: could not connect to host
+oscarmashauri.com: did not receive HSTS header
oscillation-services.fr: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-oscloud.com: could not connect to host
oscloud.com.ua: could not connect to host
oscreen.me: could not connect to host
oscreen.org: could not connect to host
oscsdp.cz: could not connect to host
-osdls.gov: could not connect to host
+osdls.gov: did not receive HSTS header
osha-kimi.com: did not receive HSTS header
oshanko.de: could not connect to host
oshinagaki.jp: could not connect to host
@@ -10382,29 +11224,30 @@ oswaldmattgroup.com: did not receive HSTS header
otakuworld.de: could not connect to host
other98.com: did not receive HSTS header
othercode.nl: could not connect to host
+otherkinforum.com: could not connect to host
othermedia.cc: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
otherstuff.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
otichi.com: did not receive HSTS header
otinane.eu: could not connect to host
+otmns.net: could not connect to host
otokonna.com: could not connect to host
otrsdemo.hu: did not receive HSTS header
ottospora.nl: could not connect to host
-ouaibe.qc.ca: could not connect to host
ourbank.com: max-age too low: 2592000
ourchoice2016.com: could not connect to host
-outdooradventures.pro: did not receive HSTS header
+ourls.win: could not connect to host
+ourmaster.org: did not receive HSTS header
+outdooradventures.pro: could not connect to host
outdoorproducts.com: max-age too low: 7889238
outreachbuddy.com: could not connect to host
outsider.im: could not connect to host
outurnate.com: could not connect to host
-ouvirmusica.com.br: could not connect to host
+ouvirmusica.com.br: did not receive HSTS header
ovenapp.io: did not receive HSTS header
over25tips.com: did not receive HSTS header
-overclockers.ge: could not connect to host
override.io: could not connect to host
-overrustle.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+overrustle.com: could not connect to host
oversight.io: could not connect to host
-overstockpromote.com: did not receive HSTS header
ovuscloud.de: could not connect to host
ovwane.com: could not connect to host
owennelson.me: max-age too low: 2592000
@@ -10415,9 +11258,9 @@ owngeek.com: could not connect to host
ownmovies.fr: could not connect to host
ownspec.com: could not connect to host
owothisdiz.pw: could not connect to host
+oxanababy.com: could not connect to host
oxro.co: did not receive HSTS header
oxro.io: did not receive HSTS header
-oxygaming.com: could not connect to host
oxygenabsorbers.com: did not receive HSTS header
oxymc.com: did not receive HSTS header
oxynux.fr: could not connect to host
@@ -10430,25 +11273,45 @@ p-rickroll-o.pw: could not connect to host
p.linode.com: could not connect to host
p1c.pw: could not connect to host
p22.co: did not receive HSTS header
+p2av.com: could not connect to host
p3.marketing: did not receive HSTS header
p3in.com: could not connect to host
p3ter.fr: did not receive HSTS header
p8r.de: did not receive HSTS header
paavolastudio.com: did not receive HSTS header
+pablo.im: could not connect to host
+pablo.scot: could not connect to host
+pablo.sh: could not connect to host
+pabloarteaga.co.uk: could not connect to host
+pabloarteaga.com: could not connect to host
+pabloarteaga.com.es: could not connect to host
+pabloarteaga.es: could not connect to host
+pabloarteaga.eu: could not connect to host
+pabloarteaga.info: could not connect to host
+pabloarteaga.me: could not connect to host
+pabloarteaga.name: could not connect to host
+pabloarteaga.net: could not connect to host
+pabloarteaga.nom.es: could not connect to host
+pabloarteaga.org: could not connect to host
+pabloarteaga.science: could not connect to host
+pabloarteaga.tech: could not connect to host
+pabloarteaga.uk: could not connect to host
+pabloarteaga.xyz: could not connect to host
pablocamino.tk: could not connect to host
pablofain.com: did not receive HSTS header
pablorey-art.com: did not receive HSTS header
-pachaiyappas.org: could not connect to host
+pachaiyappas.org: did not receive HSTS header
packair.com: did not receive HSTS header
packetapp.ru: could not connect to host
packetcrash.net: could not connect to host
packlane.com: did not receive HSTS header
-packshot-creator.com: did not receive HSTS header
pacnetwork.io: could not connect to host
pacoda.de: could not connect to host
pactf-flag-4boxdpa21ogonzkcrs9p.com: could not connect to host
pactocore.org: could not connect to host
+padeoe.com: did not receive HSTS header
pader-deko.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+padovani.de: could not connect to host
paestbin.com: could not connect to host
page: could not connect to host
pagerate.io: could not connect to host
@@ -10456,7 +11319,6 @@ pages-tocaven.com: could not connect to host
pagetoimage.com: could not connect to host
paginapolitica.ro: could not connect to host
pagure.org: could not connect to host
-pahlawanpulsa.com: did not receive HSTS header
pahnid.com: could not connect to host
paigeglass.com: did not receive HSTS header
paino.cloud: could not connect to host
@@ -10465,14 +11327,16 @@ paintingat.com: could not connect to host
paio2-rec.com: could not connect to host
paio2.com: did not receive HSTS header
paisaone.com: could not connect to host
+paizinhovirgula.com: did not receive HSTS header
pajonzeck.de: could not connect to host
paket.io: could not connect to host
-paket.ml: could not connect to host
+paket.ml: did not receive HSTS header
+paketkreditsuzuki.com: could not connect to host
paku.me: could not connect to host
palariviera.com: could not connect to host
palationtrade.com: could not connect to host
+palawan.jp: could not connect to host
palazzotalamo.it: did not receive HSTS header
-paleolowcarb.de: did not receive HSTS header
paleosquawk.com: could not connect to host
pallet.io: did not receive HSTS header
palmer.im: could not connect to host
@@ -10492,8 +11356,8 @@ panni.me: could not connect to host
panoranordic.net: could not connect to host
panos.io: did not receive HSTS header
pansu.space: could not connect to host
-pants-off.xyz: could not connect to host
pantsu.cat: did not receive HSTS header
+paolo565.org: did not receive HSTS header
papalytics.com: could not connect to host
papatest24.de: could not connect to host
papeda.net: could not connect to host
@@ -10503,20 +11367,21 @@ papercrunch.io: could not connect to host
paperhaven.com.au: max-age too low: 7889238
papermasters.com: could not connect to host
papersmart.net: could not connect to host
+paperwork.co.za: could not connect to host
papierniak.net: could not connect to host
papygeek.com: could not connect to host
-parabhairavayoga.com: max-age too low: 0
+parabhairavayoga.com: did not receive HSTS header
paradiesgirls.ch: could not connect to host
paradise-engineers.com: could not connect to host
paragon.edu: did not receive HSTS header
parakranov.ru: did not receive HSTS header
paranormalweirdo.com: could not connect to host
+parav.xyz: did not receive HSTS header
pardnoy.com: could not connect to host
parent5446.us: could not connect to host
parentmail.co.uk: did not receive HSTS header
-parfum-baza.ru: did not receive HSTS header
+parfum-baza.ru: could not connect to host
paris-cyber.fr: did not receive HSTS header
-parisbloom.com: did not receive HSTS header
parisdimanche.com: did not receive HSTS header
parishome.jp: could not connect to host
parisvox.info: did not receive HSTS header
@@ -10529,10 +11394,11 @@ parksubaruoemparts.com: could not connect to host
parkwithark.com: could not connect to host
parodybit.net: did not receive HSTS header
parpaing-paillette.net: could not connect to host
+parteaga.com: could not connect to host
+parteaga.net: could not connect to host
particonpsplus.it: could not connect to host
-partiono.com: did not receive HSTS header
partirkyoto.jp: did not receive HSTS header
-partnercardservices.com: did not receive HSTS header
+partnercardservices.com: could not connect to host
partnerwerk.de: did not receive HSTS header
partyhaus.ovh: could not connect to host
partyhireformby.co.uk: did not receive HSTS header
@@ -10543,7 +11409,6 @@ partyvan.it: could not connect to host
partyvan.moe: could not connect to host
partyvan.nl: could not connect to host
partyvan.se: could not connect to host
-parvaneh.fr: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
pascalchristen.ch: did not receive HSTS header
pasportaservo.org: did not receive HSTS header
passpilot.co.uk: did not receive HSTS header
@@ -10553,6 +11418,7 @@ password.codes: could not connect to host
passwordbox.com: did not receive HSTS header
passwordrevelator.net: did not receive HSTS header
passwordscon.com: could not connect to host
+pasta-factory.co.il: could not connect to host
pastaf.com: could not connect to host
pastdream.xyz: could not connect to host
paste.linode.com: could not connect to host
@@ -10563,7 +11429,6 @@ pasteros.io: could not connect to host
pastie.se: could not connect to host
pastorcanadense.com.br: could not connect to host
pataua.kiwi: did not receive HSTS header
-patbatesremodeling.com: could not connect to host
paternitydnatest.com: could not connect to host
patfs.com: did not receive HSTS header
pathwaytofaith.com: could not connect to host
@@ -10572,13 +11437,14 @@ patriaco.net: did not receive HSTS header
patrick.dark.name: could not connect to host
patrickbusch.net: could not connect to host
patrickneuro.de: could not connect to host
+patrickquinn.ca: did not receive HSTS header
+patrickschneider.me: could not connect to host
patt.us: did not receive HSTS header
patterson.mp: could not connect to host
paul-kerebel.pro: could not connect to host
paul-schmidt.de: max-age too low: 0
paulbunyanmls.com: did not receive HSTS header
paulchen.at: did not receive HSTS header
-paulerhof.com: did not receive HSTS header
paulproell.at: did not receive HSTS header
paulrudge.codes: could not connect to host
paulshir.com: could not connect to host
@@ -10587,12 +11453,14 @@ paulyang.cn: did not receive HSTS header
paveljanda.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
pavelkahouseforcisco.com: did not receive HSTS header
pavelstriz.cz: could not connect to host
+pawsru.org: could not connect to host
paxdei.com.br: could not connect to host
paxwinkel.nl: could not connect to host
pay.gigahost.dk: did not receive HSTS header
pay.ubuntu.com: could not connect to host
payclixpayments.com: did not receive HSTS header
payfreez.com: could not connect to host
+paykings.com: did not receive HSTS header
payload.tech: could not connect to host
payments-reference.org: could not connect to host
payments.google.com: did not receive HSTS header (error ignored - included regardless)
@@ -10605,14 +11473,10 @@ pbapp.net: did not receive HSTS header
pbbr.com: did not receive HSTS header
pbcknd.ml: could not connect to host
pbcomp.com.au: did not receive HSTS header
-pbprint.ru: did not receive HSTS header
-pbqs.site: could not connect to host
-pbreen.co.uk: could not connect to host
+pbprint.ru: could not connect to host
pbscreens.com: could not connect to host
pbytes.com: could not connect to host
pc-nf.de: did not receive HSTS header
-pc-servis-brno.com: did not receive HSTS header
-pc-tablet.com: max-age too low: 0
pc-tweak.de: did not receive HSTS header
pcat.io: could not connect to host
pcfun.net: did not receive HSTS header
@@ -10632,16 +11496,16 @@ pecot.fr: did not receive HSTS header
peekops.com: could not connect to host
peerherrmann.de: could not connect to host
peerless.ae: could not connect to host
-peinard.net: could not connect to host
+peinard.net: did not receive HSTS header
peirong.me: could not connect to host
peissen.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
pekkapikkarainen.fi: did not receive HSTS header
pekkarik.ru: could not connect to host
peliculasaudiolatinoonline.com: could not connect to host
+peliseries24.com: could not connect to host
pemagrid.org: could not connect to host
pemberton.at: did not receive HSTS header
penablog.com: did not receive HSTS header
-penfold.fr: could not connect to host
pengisatelier.net: could not connect to host
pengui.uk: could not connect to host
penguinclientsystem.com: did not receive HSTS header
@@ -10650,6 +11514,7 @@ pennyapp.io: did not receive HSTS header
pennylane.me.uk: did not receive HSTS header
pensanisso.com: did not receive HSTS header
penser-electronique.com: did not receive HSTS header
+pension-veldzigt.nl: did not receive HSTS header
pension-waldesruh.de: did not receive HSTS header
pensiunealido.ro: could not connect to host
pentagram.me: max-age too low: 2592000
@@ -10663,10 +11528,12 @@ pepsicoemployeepreferencesurvey.com: could not connect to host
per-pedes.at: did not receive HSTS header
perdel.cn: could not connect to host
pereuda.com: could not connect to host
+perez-marrero.com: could not connect to host
perfect-radiant-wrinkles.com: could not connect to host
perfectionis.me: could not connect to host
-perfectionunite.com: did not receive HSTS header
+perfectionunite.com: could not connect to host
perfectseourl.com: did not receive HSTS header
+performaride.com.au: did not receive HSTS header
performaterm.ro: could not connect to host
performous.org: did not receive HSTS header
perfumista.vn: did not receive HSTS header
@@ -10684,6 +11551,7 @@ personalcommunicationsecurity.com: could not connect to host
personaldatabasen.no: could not connect to host
personalinjurylist.com: could not connect to host
personalizedtouch.co: could not connect to host
+personcar.com.br: could not connect to host
personnedisparue.fr: could not connect to host
persson.im: could not connect to host
perthdevicelab.com: did not receive HSTS header
@@ -10691,21 +11559,25 @@ pestalozzishop.com.br: could not connect to host
pesto.video: could not connect to host
pet-life.top: did not receive HSTS header
pet-nsk.ru: could not connect to host
-petbooking.it: did not receive HSTS header
+petangen.se: could not connect to host
petchart.net: could not connect to host
-peterkshultz.com: did not receive HSTS header
+peterfolta.net: could not connect to host
+petermazur.com: did not receive HSTS header
peternagy.ie: did not receive HSTS header
+peters.consulting: could not connect to host
petersmark.com: did not receive HSTS header
pethelpers.org: did not receive HSTS header
pethub.com: did not receive HSTS header
petit.site: could not connect to host
petlife.od.ua: could not connect to host
petplum.com: could not connect to host
+petrachuk.ru: could not connect to host
+petravdbos.nl: could not connect to host
petrkrapek.cz: did not receive HSTS header
petrolplus.ru: max-age too low: 7776000
petrovsky.pro: could not connect to host
petsittersservices.com: could not connect to host
-pettsy.com: could not connect to host
+pettsy.com: did not receive HSTS header
peuf.shop: could not connect to host
peuterspeelzaalhoekvanholland.nl: could not connect to host
pewboards.com: could not connect to host
@@ -10729,20 +11601,22 @@ phcmembers.com: did not receive HSTS header
phcnetworks.net: did not receive HSTS header
phdsupply.com: could not connect to host
phdwuda.com: could not connect to host
+phelx.de: could not connect to host
phenomeno-porto.com: could not connect to host
phenomeno.nl: could not connect to host
phenomenoporto.com: could not connect to host
phenomenoporto.nl: could not connect to host
-phil.tw: could not connect to host
philadelphiacandies.com: did not receive HSTS header
philadelphiadancefoundation.org: could not connect to host
philipmordue.co.uk: could not connect to host
philippa.cool: could not connect to host
phillippi.me: could not connect to host
phillmoore.com: did not receive HSTS header
-phillprice.com: did not receive HSTS header
+phillprice.com: could not connect to host
philonas.net: did not receive HSTS header
philpropertygroup.com: could not connect to host
+phippsreporting.com: did not receive HSTS header
+phishing.rs: did not receive HSTS header
phoebe.co.nz: did not receive HSTS header
phoenicis.com.ua: did not receive HSTS header
phoenix.dj: did not receive HSTS header
@@ -10755,14 +11629,15 @@ photographyforchange.com: could not connect to host
photographyforchange.org: could not connect to host
photops.fr: could not connect to host
photosoftware.nl: could not connect to host
-phototag.org: could not connect to host
+phototag.org: did not receive HSTS header
php-bach.org: could not connect to host
phperformances.fr: did not receive HSTS header
phpfashion.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+phpinfo.in.th: could not connect to host
+phr34kz.pw: did not receive HSTS header
phrasing.me: could not connect to host
+phumin.in.th: did not receive HSTS header
phuong.faith: could not connect to host
-physicaltherapist.com: did not receive HSTS header
-pi-box.ml: could not connect to host
pi-eng.fr: did not receive HSTS header
pianetaottica.eu: could not connect to host
pianetaottica.info: could not connect to host
@@ -10770,6 +11645,7 @@ pianetaottica.net: could not connect to host
pianetaottica.org: could not connect to host
pias-button.net: did not receive HSTS header
piasto.com.cy: could not connect to host
+piatanoua.md: could not connect to host
picallo.es: could not connect to host
picardiascr.com: could not connect to host
pickr.co: could not connect to host
@@ -10780,45 +11656,53 @@ picscare.co.uk: did not receive HSTS header
picshare.nz: could not connect to host
pidatacenters.com: did not receive HSTS header
pidomex.com: did not receive HSTS header
+piedfeed.com: did not receive HSTS header
piekacz.co.uk: could not connect to host
pierrejeansuau.fr: could not connect to host
pieterjangeeroms.me: could not connect to host
piggott.me.uk: did not receive HSTS header
+pigritia.de: could not connect to host
+piils.fr: did not receive HSTS header
pikmy.com: could not connect to host
pilgermaske.org: did not receive HSTS header
piligrimname.com: could not connect to host
pillowandpepper.com: did not receive HSTS header
+pilotandy.com: could not connect to host
pilotcrowd.nl: did not receive HSTS header
pimpmymac.ru: did not receive HSTS header
+pimpmypaper.com: could not connect to host
pims.global: did not receive HSTS header
pimspage.nl: could not connect to host
pin.net.au: did not receive HSTS header
+pineapplesapp.com: did not receive HSTS header
pinebaylibrary.org: could not connect to host
+pinesandneedles.com: max-age too low: 7889238
pinkfis.ch: did not receive HSTS header
pinkhq.com: did not receive HSTS header
pinkinked.com: could not connect to host
-pinoyonlinetv.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+pinkyf.com: did not receive HSTS header
+pinoylinux.org: did not receive HSTS header
+pintoselectrician.co.za: did not receive HSTS header
pioche.ovh: did not receive HSTS header
-pipenny.net: could not connect to host
pippen.io: could not connect to host
pips.rocks: could not connect to host
pir9.com: did not receive HSTS header
pirata.ga: did not receive HSTS header
pirateahoy.eu: could not connect to host
-piratebit.tech: max-age too low: 0
+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
piratepay.io: could not connect to host
-piratepay.ir: could not connect to host
+piratepay.ir: did not receive HSTS header
pirateproxy.pe: could not connect to host
pirateproxy.sx: did not receive HSTS header
pirateproxy.vip: could not connect to host
pirati.cz: max-age too low: 604800
piratte.net: did not receive HSTS header
pirganj24.com: did not receive HSTS header
-pirlitu.com: could not connect to host
+pirlitu.com: did not receive HSTS header
pisexy.me: did not receive HSTS header
pisidia.de: could not connect to host
pitchup.com: did not receive HSTS header
@@ -10826,23 +11710,35 @@ pitonarms.com: could not connect to host
pitsstop.nu: could not connect to host
pittaya.com: did not receive HSTS header
pittonpreschool.com: did not receive HSTS header
-piwko.co: could not connect to host
pix-geeks.com: max-age too low: 2592000
pixdigital.net: did not receive HSTS header
-pixeame.com: did not receive HSTS header
+pixeame.com: could not connect to host
pixel.google.com: did not receive HSTS header (error ignored - included regardless)
pixelcode.com.au: could not connect to host
+pixelesque.uk: could not connect to host
pixelgliders.de: could not connect to host
pixelhero.co.uk: did not receive HSTS header
+pixelpoint.io: did not receive HSTS header
pixi.chat: could not connect to host
pixi.me: did not receive HSTS header
pixlfox.com: could not connect to host
pizzadoc.ch: could not connect to host
+pj00100.com: did not receive HSTS header
+pj00200.com: did not receive HSTS header
+pj00300.com: did not receive HSTS header
+pj00400.com: did not receive HSTS header
+pj00600.com: did not receive HSTS header
+pj00700.com: did not receive HSTS header
+pj00800.com: could not connect to host
+pj00900.com: did not receive HSTS header
+pj02.com: did not receive HSTS header
pj83.duckdns.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
pj881988.com: could not connect to host
-pjbet.mg: did not receive HSTS header
-pjili.com: did not receive HSTS header
+pjbet.mg: could not connect to host
+pjsec.tk: could not connect to host
pkautodesign.com: did not receive HSTS header
+pkbjateng.or.id: could not connect to host
+pko.ch: could not connect to host
pkschat.com: could not connect to host
plaasprodukte.com: could not connect to host
placefade.com: could not connect to host
@@ -10852,13 +11748,13 @@ plaettliaktion.ch: did not receive HSTS header
plagiarismcheck.org: max-age too low: 604800
plakbak.nl: could not connect to host
planbox.info: could not connect to host
-planespotterblog.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+planeexplanation.com: could not connect to host
planete-secu.com: could not connect to host
planetromeo.com: could not connect to host
planktonholland.com: did not receive HSTS header
planpharmacy.com: could not connect to host
plant.ml: could not connect to host
-plantroon.com: could not connect to host
+plantroon.com: did not receive HSTS header
plass.hamburg: could not connect to host
plasvilledescartaveis.com.br: could not connect to host
platform.lookout.com: could not connect to host
@@ -10868,25 +11764,25 @@ play.google.com: did not receive HSTS header (error ignored - included regardles
playdreamcraft.com.br: did not receive HSTS header
playerhunter.com: did not receive HSTS header
playflick.com: did not receive HSTS header
+playkh.com: did not receive HSTS header
playmaker.io: did not receive HSTS header
playmaza.live: did not receive HSTS header
playmfe.com: could not connect to host
-playnation.io: could not connect to host
+playsoundevents.be: could not connect to host
playsource.co: could not connect to host
playwhyyza.com: could not connect to host
+playyou.be: could not connect to host
please-deny.me: did not receive HSTS header
-pleaseuseansnisupportedbrowser.ml: could not connect to host
pleasure-science.com: could not connect to host
pleasure.forsale: could not connect to host
plen.io: could not connect to host
-plexi.dyndns.tv: could not connect to host
plexpy13.ddns.net: could not connect to host
plexusmd.com: did not receive HSTS header
plfgr.eu.org: could not connect to host
plhdb.org: did not receive HSTS header
plinc.co: could not connect to host
plirt.ru: could not connect to host
-ploader.ru: could not connect to host
+ploader.ru: max-age too low: 604800
plogable.co: could not connect to host
plomberierenga.com: max-age too low: 2592000
plombirator.kz: did not receive HSTS header
@@ -10895,12 +11791,16 @@ ploup.net: could not connect to host
pluff.nl: did not receive HSTS header
plugboard.xyz: could not connect to host
pluggedhead.com: did not receive HSTS header
-plus-digital.net: could not connect to host
+plumbingboksburg.co.za: could not connect to host
+plumbingman.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)
plus1s.tk: could not connect to host
+plushev.com: did not receive HSTS header
plussizereviews.com: could not connect to host
plut.org: did not receive HSTS header
+pluth.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
@@ -10908,13 +11808,14 @@ pmbremer.de: could not connect to host
pmctire.com: did not receive HSTS header
pmemanager.fr: did not receive HSTS header
pmessage.ch: could not connect to host
+pmheart.site: could not connect to host
pmnts.io: could not connect to host
pneusgppremium.com.br: did not receive HSTS header
pnukee.com: did not receive HSTS header
po.gl: could not connect to host
pocakdrops.com: did not receive HSTS header
pocket-lint.com: did not receive HSTS header
-pocketinsure.com: could not connect to host
+pocketfullofapps.com: did not receive HSTS header
pocketmemories.net: could not connect to host
pocketsix.com: could not connect to host
pocloud.homelinux.net: could not connect to host
@@ -10928,6 +11829,7 @@ poinsot.beer: could not connect to host
pointeringles.com: could not connect to host
pointiswunderland.de: did not receive HSTS header
pointpro.de: did not receive HSTS header
+points4unitedway.com: could not connect to host
pointworksacademy.com: could not connect to host
pokeduel.me: did not receive HSTS header
pokomichi.com: did not receive HSTS header
@@ -10950,25 +11852,26 @@ pollpodium.nl: could not connect to host
polsport.live: did not receive HSTS header
polycoise.com: could not connect to host
polycrypt.us: could not connect to host
-polymorph.rs: could not connect to host
polypho.nyc: could not connect to host
polysage.org: could not connect to host
polytechecosystem.vc: could not connect to host
+pomardaserra.com: could not connect to host
pomfe.co: could not connect to host
pompefunebrilariviera.it: could not connect to host
pompompoes.com: did not receive HSTS header
pondof.fish: could not connect to host
-poneytelecom.org: did not receive HSTS header
+poneytelecom.org: could not connect to host
ponteencima.com: could not connect to host
ponteus.com: could not connect to host
pontodogame.com.br: 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
+pony.today: could not connect to host
ponythread.com: did not receive HSTS header
poolinstallers.co.za: could not connect to host
poolsandstuff.com: did not receive HSTS header
poon.tech: could not connect to host
+popcultureshack.com: could not connect to host
popi.se: did not receive HSTS header
popkins.cf: could not connect to host
popkins.ga: could not connect to host
@@ -10977,15 +11880,25 @@ popkins.ml: could not connect to host
popkins.tk: could not connect to host
popupsoftplay.com: could not connect to host
poris.web.id: could not connect to host
+porn77.info: could not connect to host
+pornbay.org: could not connect to host
pornblog.org: could not connect to host
-pornstars.me: could not connect to host
+porncandi.com: could not connect to host
+porno-gif.ru: could not connect to host
+pornohub.su: could not connect to host
+pornolab-net.appspot.com: could not connect to host
+pornoserver.eu: could not connect to host
+pornstars.me: did not receive HSTS header
porschen.fr: could not connect to host
port.social: could not connect to host
+portale-randkowe.pl: did not receive HSTS header
+portalhubnuti.cz: did not receive HSTS header
portalisapres.cl: could not connect to host
portalm.tk: could not connect to host
portalmundo.xyz: could not connect to host
portalplatform.net: could not connect to host
-portaluniversalista.org: could not connect to host
+portaluniversalista.org: did not receive HSTS header
+portalveneza.com.br: did not receive HSTS header
portefeuillesignalen.nl: did not receive HSTS header
poshpak.com: max-age too low: 86400
positivesobrietyinstitute.com: did not receive HSTS header
@@ -10999,18 +11912,14 @@ posylka.de: did not receive HSTS header
potatoheads.net: could not connect to host
potbar.com: could not connect to host
potbox.com: could not connect to host
-potenzmittel-levitra.com: max-age too low: 300
-potenzmittel-webshop.com: max-age too low: 3600
potenzmittelblog.info: could not connect to host
-potenzpillen-kaufen.biz: did not receive HSTS header
-potenzprobleme-info.net: did not receive HSTS header
potlytics.com: could not connect to host
potomania.cz: could not connect to host
potpourrifestival.de: did not receive HSTS header
potsky.com: did not receive HSTS header
pouet.it: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
pouets.ovh: could not connect to host
-poupatempo.org: could not connect to host
+poupatempo.org: did not receive HSTS header
pourmesloisirs.com: could not connect to host
pourout.org: did not receive HSTS header
poussinooz.fr: could not connect to host
@@ -11028,18 +11937,20 @@ powersergunited.com: could not connect to host
powersergunited.org: could not connect to host
powershellmagic.com: could not connect to host
powershift.ne.jp: did not receive HSTS header
-powerxequality.com: could not connect to host
+powerxequality.com: did not receive HSTS header
poy-tech.com: could not connect to host
pozniak.at: did not receive HSTS header
pozyczka-bez-zaswiadczen.pl: did not receive HSTS header
pozytywnyplan.pl: could not connect to host
pozzo-balbi.com: did not receive HSTS header
-ppoozl.com: could not connect to host
+ppembed.com: did not receive HSTS header
pppo.gov: could not connect to host
ppr-truby.ru: could not connect to host
+ppsvcs2.com: did not receive HSTS header
ppuu.org: did not receive HSTS header
ppy3.com: did not receive HSTS header
practicallabs.com: could not connect to host
+practicalprogrammer.tech: could not connect to host
practodev.com: could not connect to host
pratinav.xyz: could not connect to host
prattpokemon.com: could not connect to host
@@ -11047,19 +11958,22 @@ praxis-research.info: did not receive HSTS header
precedecaritas.com.br: could not connect to host
precisionaeroimaging.com: did not receive HSTS header
prediksisydney.com: could not connect to host
+preexport.com: did not receive HSTS header
preezzie.com: could not connect to host
prefis.com: did not receive HSTS header
prefontaine.name: could not connect to host
prego-shop.de: could not connect to host
+preio.cn: could not connect to host
preisser-it.de: did not receive HSTS header
preisser.it: did not receive HSTS header
preissler.co.uk: could not connect to host
prekladysanca.cz: could not connect to host
prelist.org: did not receive HSTS header
+premaritalsex.info: could not connect to host
premioambiente.it: did not receive HSTS header
premiumzweirad.de: max-age too low: 7776000
+prepaidgirl.com: could not connect to host
prepandgo-euro.com: could not connect to host
-preposted.com: did not receive HSTS header
preppertactics.com: did not receive HSTS header
preprodfan.gov: could not connect to host
prescriptionrex.com: did not receive HSTS header
@@ -11069,6 +11983,7 @@ press-presse.ca: did not receive HSTS header
pressenews.net: did not receive HSTS header
pressfreedomfoundation.org: did not receive HSTS header
prestigeeventshire.co.uk: could not connect to host
+prestonapp.com: could not connect to host
prettygrouse.com: did not receive HSTS header
prettyphotoart.de: did not receive HSTS header
prettytunesapp.com: could not connect to host
@@ -11076,27 +11991,30 @@ pretzlaff.info: did not receive HSTS header
preworkout.me: could not connect to host
prgslab.net: could not connect to host
priceholic.com: could not connect to host
+pridetechdesign.com: did not receive HSTS header
pridoc.se: did not receive HSTS header
prifo.se: could not connect to host
prijsvergelijken.ml: could not connect to host
prilock.com: did not receive HSTS header
-primaconsulting.net: could not connect to host
primecaplending.com: could not connect to host
+primordialsnooze.com: could not connect to host
primotiles.co.uk: did not receive HSTS header
-prinbanat.ngo: could not connect to host
+prinbanat.ngo: did not receive HSTS header
princeofwhales.com: did not receive HSTS header
+princesparktouch.com: did not receive HSTS header
princessbackpack.de: could not connect to host
princessmargaretlotto.com: did not receive HSTS header
prinesdoma.at: did not receive HSTS header
printerest.io: could not connect to host
printersonline.be: did not receive HSTS header
printery.be: could not connect to host
+printexpress.cloud: could not connect to host
printfn.com: did not receive HSTS header
+printler.com: did not receive HSTS header
priolkar.com: could not connect to host
prism-communication.com: could not connect to host
pristineevents.co.uk: did not receive HSTS header
pritchett.xyz: could not connect to host
-privacyforjournalists.org.au: could not connect to host
privacylabs.io: did not receive HSTS header
privacymanatee.com: could not connect to host
privacynow.eu: did not receive HSTS header
@@ -11110,6 +12028,7 @@ prmte.com: max-age too low: 2592000
prnt.li: did not receive HSTS header
pro-image.de: did not receive HSTS header
pro-zone.com: could not connect to host
+proact-it.co.uk: could not connect to host
proactive.run: could not connect to host
procode.gq: could not connect to host
prodpad.com: did not receive HSTS header
@@ -11123,9 +12042,10 @@ profloorstl.com: did not receive HSTS header
profpay.com: could not connect to host
profundr.com: could not connect to host
profusion.io: could not connect to host
-progblog.net: could not connect to host
+progblog.net: max-age too low: 0
progolfjourney.com: could not connect to host
program-and.work: could not connect to host
+programmaticmagic.com: could not connect to host
programmingstudent.com: could not connect to host
progress-technologies.com: could not connect to host
progressivecfo.co.nz: could not connect to host
@@ -11134,7 +12054,7 @@ proitconsulting.com.au: could not connect to host
proj.org.cn: could not connect to host
project-rune.tech: could not connect to host
project-sparks.eu: did not receive HSTS header
-project-splash.com: could not connect to host
+project-splash.com: max-age too low: 0
project-stats.com: could not connect to host
projectascension.io: could not connect to host
projectasterk.com: could not connect to host
@@ -11150,7 +12070,6 @@ projektik.cz: did not receive HSTS header
projektzentrisch.de: could not connect to host
projetoresecia.com: could not connect to host
prokop.ovh: could not connect to host
-prolan.pw: did not receive HSTS header
promarketer.net: did not receive HSTS header
promecon-gmbh.de: did not receive HSTS header
promedicalapplications.com: did not receive HSTS header
@@ -11158,6 +12077,7 @@ promesa.net: did not receive HSTS header
promhadan.com: could not connect to host
promocao.email: could not connect to host
promohunt.ru: did not receive HSTS header
+pronostic-king.fr: could not connect to host
prontocleaners.co.uk: could not connect to host
prontolight.com: did not receive HSTS header
prontomovers.co.uk: could not connect to host
@@ -11170,24 +12090,26 @@ proslimdiets.com: could not connect to host
prosocialmachines.com: could not connect to host
prosoft.sk: did not receive HSTS header
prosperident.com: did not receive HSTS header
+prostohobby.ru: could not connect to host
+prostoporno.net: could not connect to host
proteapower.co.za: could not connect to host
protecciondelconsumidor.gov: did not receive HSTS header
proteinnuts.cz: could not connect to host
proteinnuts.sk: could not connect to host
protonmail.ch: did not receive HSTS header
protoyou.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-proveits.me: could not connect to host
-provisionaldriving.com: could not connect to host
-provitacare.com: could not connect to host
+provisionaldriving.com: did not receive HSTS header
+provisionircd.tk: did not receive HSTS header
+provitacare.com: did not receive HSTS header
proweser.de: did not receive HSTS header
prowhisky.de: did not receive HSTS header
-proxbox.net: could not connect to host
+proxbox.net: did not receive HSTS header
proxi.cf: could not connect to host
proximato.com: could not connect to host
proxybay.al: could not connect to host
proxybay.club: could not connect to host
proxybay.info: did not receive HSTS header
-proxybay.top: max-age too low: 0
+proxybay.top: could not connect to host
proxydesk.eu: could not connect to host
proxydesk.net: could not connect to host
proxyowl.pw: could not connect to host
@@ -11195,7 +12117,7 @@ proxyportal.me: could not connect to host
proxyportal.org: did not receive HSTS header
proxyrox.com: could not connect to host
proxyweb.us: did not receive HSTS header
-prpr.cloud: could not connect to host
+proymaganadera.com: did not receive HSTS header
prpsss.com: could not connect to host
prstatic.com: could not connect to host
pruikshop.nl: could not connect to host
@@ -11205,7 +12127,6 @@ ps-qa.com: could not connect to host
ps-x.ru: could not connect to host
pscleaningsolutions.co.uk: could not connect to host
pseudo.coffee: could not connect to host
-pshostpk.com: did not receive HSTS header
psicologia.co.ve: could not connect to host
psicologoforensebarcelona.com: did not receive HSTS header
psicosalud.online: could not connect to host
@@ -11218,7 +12139,8 @@ pstudio.me: max-age too low: 0
psw.academy: could not connect to host
psw.consulting: could not connect to host
psychiatrie-betreuung.ch: did not receive HSTS header
-psychoco.net: could not connect to host
+psylab.re: could not connect to host
+psylab.vip: could not connect to host
psynapse.net.au: could not connect to host
ptn.moscow: could not connect to host
ptonet.com: could not connect to host
@@ -11250,6 +12172,8 @@ punkdns.top: could not connect to host
puppydns.com: did not receive HSTS header
purahealthyliving.com: could not connect to host
purbd.com: did not receive HSTS header
+pureessentialoil.biz: max-age too low: 300
+pureholisticliving.me: could not connect to host
purewebmasters.com: could not connect to host
purplehippie.in: did not receive HSTS header
purplez.pw: did not receive HSTS header
@@ -11285,26 +12209,27 @@ q-rickroll-u.pw: could not connect to host
q2.si: did not receive HSTS header
q8mp3.me: did not receive HSTS header
qadmium.tk: could not connect to host
+qamrulhaque.com: could not connect to host
qazcloud.com: could not connect to host
qbik.de: did not receive HSTS header
qbin.io: did not receive HSTS header
qbnt.ca: could not connect to host
qccqld.org.au: could not connect to host
qe2homelottery.com: did not receive HSTS header
+qensio.com: did not receive HSTS header
qforum.org: could not connect to host
qi0.de: did not receive HSTS header
qiannews.net: could not connect to host
-qikan.net: could not connect to host
+qifu.org.cn: could not connect to host
qimiao.io: did not receive HSTS header
qingxuan.info: could not connect to host
qinxi1992.com: could not connect to host
qionglu.pw: could not connect to host
qipp.com: did not receive HSTS header
qirinus.com: did not receive HSTS header
+qiuxian.ddns.net: could not connect to host
qixxit.de: did not receive HSTS header
-qkmortgage.com: could not connect to host
qldconservation.org: could not connect to host
-qledtech.com: did not receive HSTS header
qnatek.org: could not connect to host
qonqa.de: did not receive HSTS header
qoohoot.com: did not receive HSTS header
@@ -11313,29 +12238,29 @@ qoqo.us: did not receive HSTS header
qorm.co.uk: could not connect to host
qqj.net: could not connect to host
qqq.gg: could not connect to host
+qqvrsmart.cn: could not connect to host
qrara.net: did not receive HSTS header
qredo.com: did not receive HSTS header
qrforex.com: did not receive HSTS header
qrlending.com: could not connect to host
qrlfinancial.com: could not connect to host
-qswoo.org: did not receive HSTS header
-qto.com: could not connect to host
-qto.org: could not connect to host
+qswoo.org: could not connect to host
quail.solutions: could not connect to host
quakerlens.com: did not receive HSTS header
quality1.com.br: did not receive HSTS header
qualityology.com: did not receive HSTS header
quanglepro.com: could not connect to host
quangngaimedia.com: did not receive HSTS header
-quanjinlong.cn: could not connect to host
+quanjinlong.cn: did not receive HSTS header
quantacloud.ch: could not connect to host
quantenteranik.eu: could not connect to host
quantor.dk: did not receive HSTS header
quantum-cloud.xyz: could not connect to host
-quantum-ethics.com: did not receive HSTS header
+quantum-ethics.com: could not connect to host
quantum-lviv.pp.ua: could not connect to host
quantumcore.cn: could not connect to host
quantumcourse.org: did not receive HSTS header
+quanwuji.com: could not connect to host
quarryhillrentals.com: did not receive HSTS header
quebecmailbox.com: could not connect to host
queenbrownie.com.br: could not connect to host
@@ -11355,14 +12280,16 @@ quimsertek.com: [Exception... "Component returned failure code: 0x80004005 (NS_E
quizionic.com: could not connect to host
quizl.io: did not receive HSTS header
quizmemes.org: could not connect to host
+quizstore.net: could not connect to host
quotehex.com: could not connect to host
quotemaster.co.za: could not connect to host
quranserver.net: could not connect to host
qwallet.ca: did not receive HSTS header
+qwaser.fr: could not connect to host
+qwertyatom100.me: could not connect to host
qwilink.me: did not receive HSTS header
qybot.cc: could not connect to host
r-ay.club: did not receive HSTS header
-r-ay.cn: could not connect to host
r-core.org: could not connect to host
r-core.ru: could not connect to host
r-cut.fr: could not connect to host
@@ -11370,64 +12297,71 @@ r-rickroll-u.pw: could not connect to host
r10n.com: did not receive HSTS header
r15.me: did not receive HSTS header
r18.moe: did not receive HSTS header
-r3bl.me: could not connect to host
-r40.us: could not connect to host
raajheshkannaa.com: could not connect to host
rabbitvcactus.eu: did not receive HSTS header
rabota-x.ru: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-rabotaescort.com: could not connect to host
racasdecachorro.org: could not connect to host
rackblue.com: could not connect to host
racktear.com: did not receive HSTS header
-racoo.net: did not receive HSTS header
-rad-route.de: did not receive HSTS header
+raconteur.net: did not receive HSTS header
+rad-route.de: could not connect to host
raddavarden.nu: could not connect to host
radicaleducation.net: could not connect to host
radioheteroglossia.com: did not receive HSTS header
-radiorsvp.com: could not connect to host
+radtke.bayern: did not receive HSTS header
rafaelcz.de: could not connect to host
ragingserenity.com: did not receive HSTS header
ragnaroktop.com.br: could not connect to host
rahadiana.com: could not connect to host
rahamasin.eu: could not connect to host
+rai-co.net: did not receive HSTS header
raiblockscommunity.net: could not connect to host
+raidensnakesden.co.uk: could not connect to host
+raidensnakesden.com: could not connect to host
+raidensnakesden.net: could not connect to host
raidstone.com: could not connect to host
raidstone.rocks: could not connect to host
+raiffeisen-kosovo.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
railgun.com.cn: could not connect to host
+railyardurgentcare.com: did not receive HSTS header
rainbin.com: could not connect to host
rainbowbarracuda.com: could not connect to host
-rainel.at: did not receive HSTS header
+rainel.at: could not connect to host
raisecorp.com: could not connect to host
raitza.de: could not connect to host
rajkapoordas.com: could not connect to host
+rakugaki.cn: could not connect to host
ramarka.de: could not connect to host
-ramezanloo.com: could not connect to host
-ramitmittal.com: could not connect to host
+ramatola.uk: could not connect to host
+rambii.de: could not connect to host
+ramblingrf.tech: could not connect to host
+ramezanloo.com: did not receive HSTS header
ramon-c.nl: could not connect to host
ramonj.nl: could not connect to host
-ramsor-gaming.de: could not connect to host
randomcage.com: did not receive HSTS header
randomcloud.net: could not connect to host
randomhero.cloud: could not connect to host
+randomquotesapp.com: could not connect to host
randomwinpicker.de: could not connect to host
randy.pw: could not connect to host
ranegroup.hosting: could not connect to host
rankthespot.com: could not connect to host
rannseier.org: did not receive HSTS header
ranos.org: could not connect to host
+rantanda.com: could not connect to host
rany.duckdns.org: could not connect to host
rany.io: could not connect to host
rany.pw: could not connect to host
-rapidemobile.com: could not connect to host
+rapidemobile.com: did not receive HSTS header
rapidflow.io: could not connect to host
rapido.nu: could not connect to host
rapidresearch.me: could not connect to host
rapidthunder.io: could not connect to host
-rasing.me: did not receive HSTS header
+rasing.me: could not connect to host
raspass.me: did not receive HSTS header
raspberry.us: could not connect to host
-raspberryultradrops.com: did not receive HSTS header
rastreador.com.es: did not receive HSTS header
+rastreie.net: did not receive HSTS header
ratajczak.fr: could not connect to host
rate-esport.de: could not connect to host
rathorian.fr: could not connect to host
@@ -11443,13 +12377,14 @@ raven.lipetsk.ru: could not connect to host
ravengergaming.ga: could not connect to host
ravengergaming.net: could not connect to host
ravenx.me: could not connect to host
-ravkr.duckdns.org: max-age too low: 360000
+ravkr.duckdns.org: did not receive HSTS header
ravse.dk: could not connect to host
raw-diets.com: did not receive HSTS header
rawet.se: could not connect to host
rawoil.com: could not connect to host
rawr.sexy: could not connect to host
rawstorieslondon.com: could not connect to host
+rayanitco.com: did not receive HSTS header
raycarruthersphotography.co.uk: could not connect to host
raydan.space: could not connect to host
raydobe.me: could not connect to host
@@ -11465,7 +12400,6 @@ rbxcatalog.com: could not connect to host
rc4.io: could not connect to host
rc7.ch: could not connect to host
rcafox.com: could not connect to host
-rcmlinx.com: could not connect to host
rcoliveira.com: could not connect to host
rcpcbd.com: could not connect to host
rcvd.io: did not receive HSTS header
@@ -11481,9 +12415,10 @@ reactdatepicker.com: did not receive HSTS header
reactor92.com: could not connect to host
reader.ga: could not connect to host
readism.io: could not connect to host
-readityourself.net: did not receive HSTS header
+readityourself.net: could not connect to host
readmeeatmedrinkme.com: did not receive HSTS header
readr.pw: could not connect to host
+readtldr.com: could not connect to host
readydok.com: did not receive HSTS header
reagir43.fr: did not receive HSTS header
reaiaer.com: could not connect to host
@@ -11491,17 +12426,17 @@ reakyaweso.me: could not connect to host
real-bits.com: could not connect to host
real-compare.com: did not receive HSTS header
realcli.com: could not connect to host
+realfamilyincest.com: could not connect to host
realhost.name: could not connect to host
+realloc.me: could not connect to host
really.io: could not connect to host
reallyreally.io: did not receive HSTS header
realmic.net: could not connect to host
realmofespionage.com: could not connect to host
realnewhomes.com: could not connect to host
-realum.com: could not connect to host
-realum.de: could not connect to host
-realum.eu: could not connect to host
-realum.net: could not connect to host
-realwoo.com: could not connect to host
+realoteam.ddns.net: could not connect to host
+realraghavgupta.com: could not connect to host
+realwoo.com: did not receive HSTS header
reapdrive.net: did not receive HSTS header
reaper.rip: could not connect to host
reardenporn.com: could not connect to host
@@ -11512,7 +12447,8 @@ receitasdebacalhau.pt: could not connect to host
recetasfacilesdehacer.com: did not receive HSTS header
rechat.com: did not receive HSTS header
rechenwerk.net: could not connect to host
-recommended.reviews: could not connect to host
+recht-freundlich.de: did not receive HSTS header
+rechtenliteratuurleiden.nl: could not connect to host
recompiled.org: max-age too low: 7776000
recruitsecuritytraining.co.uk: could not connect to host
recruitsecuritytraining.com: could not connect to host
@@ -11529,20 +12465,23 @@ redhorsemountainranch.com: did not receive HSTS header
redicabo.de: could not connect to host
redirectman.com: could not connect to host
redizoo.com: did not receive HSTS header
-redlatam.org: could not connect to host
+redlatam.org: did not receive HSTS header
redmbk.com: did not receive HSTS header
+redmind.se: could not connect to host
+redneck-gaming.de: did not receive HSTS header
redner.cc: did not receive HSTS header
rednertv.de: did not receive HSTS header
rednoseday.com: did not receive HSTS header
redoakmedia.net: did not receive HSTS header
redperegrine.com: did not receive HSTS header
+redporno.cz: could not connect to host
redports.org: could not connect to host
redra.ws: did not receive HSTS header
+redsquirrelcampsite.co.uk: could not connect to host
redstarsurf.com: did not receive HSTS header
reducerin.ro: did not receive HSTS header
-redwoodpaddle.es: did not receive HSTS header
-redwoodpaddle.pt: could not connect to host
redy.host: did not receive HSTS header
+reedyforkfarm.com: did not receive HSTS header
reeson.at: could not connect to host
reeson.de: could not connect to host
reeson.info: could not connect to host
@@ -11552,6 +12491,7 @@ refactor.zone: did not receive HSTS header
referenten.org: did not receive HSTS header
refitplanner.com: did not receive HSTS header
reflecton.io: could not connect to host
+reforesttheplanet.com: could not connect to host
reformatreality.com: could not connect to host
refreshingserum.com: could not connect to host
reg.ru: did not receive HSTS header
@@ -11563,7 +12503,9 @@ regendevices.eu: could not connect to host
reggae-cdmx.com: could not connect to host
reginagroffy.com: could not connect to host
regio-salland.nl: could not connect to host
+regionalcoalition.org: did not receive HSTS header
regionale.org: did not receive HSTS header
+register.gov.uk: did not receive HSTS header
registertovoteflorida.gov: did not receive HSTS header
regoul.com: did not receive HSTS header
regsec.com: could not connect to host
@@ -11573,35 +12515,34 @@ reic.me: could not connect to host
reidascuecas.com.br: could not connect to host
reignsphere.net: could not connect to host
reikiqueen.uk: could not connect to host
+reinaertvandecruys.com: could not connect to host
reinaertvandecruys.me: could not connect to host
reineberthe.ch: could not connect to host
reismil.ch: could not connect to host
reisyukaku.org: did not receive HSTS header
reithguard-it.de: did not receive HSTS header
rejo.in: could not connect to host
+rejushiiplotter.ru: could not connect to host
rejuvemedspa.com: did not receive HSTS header
-rekyou.com: could not connect to host
relatic.net: could not connect to host
-relaxhavefun.com: could not connect to host
relayawards.com: could not connect to host
reldoc.com.mx: did not receive HSTS header
reliable-mail.de: could not connect to host
+religiousforums.com: did not receive HSTS header
relisten.nl: did not receive HSTS header
relsak.cz: could not connect to host
rem.pe: did not receive HSTS header
rema.site: did not receive HSTS header
-remaimodern.org: did not receive HSTS header
remain.london: could not connect to host
remedica.fr: could not connect to host
-remedioskaseros.com: did not receive HSTS header
remedium.de: could not connect to host
remedyrehab.com: did not receive HSTS header
rememberthis.co.za: could not connect to host
remodela.com.ve: could not connect to host
remodelwithlegacy.com: did not receive HSTS header
remonttitekniikka.fi: could not connect to host
-remoteham.com: could not connect to host
remotestance.com: did not receive HSTS header
+remrol.ru: could not connect to host
rencaijia.com: did not receive HSTS header
rencontres-erotiques.com: did not receive HSTS header
rengarenkblog.com: could not connect to host
@@ -11611,13 +12552,15 @@ renlong.org: did not receive HSTS header
rennfire.org: could not connect to host
renrenss.com: could not connect to host
rentacarcluj.xyz: did not receive HSTS header
+rentalmed.com.br: did not receive HSTS header
rentbrowser.com: could not connect to host
rentbrowsertrain.me: could not connect to host
rentcarassist.com: could not connect to host
renteater.com: could not connect to host
rentex.com: did not receive HSTS header
renxinge.cn: did not receive HSTS header
-repex.co.il: did not receive HSTS header
+reparo.pe: did not receive HSTS header
+repex.co.il: could not connect to host
replaceits.me: could not connect to host
replacemychina.com: could not connect to host
repo.ml: did not receive HSTS header
@@ -11633,8 +12576,10 @@ reporturi.io: did not receive HSTS header
reporturl.com: did not receive HSTS header
reporturl.io: did not receive HSTS header
reposaarenkuva.fi: could not connect to host
-reprolife.co.uk: could not connect to host
-reputationweaver.com: could not connect to host
+reprolife.co.uk: did not receive HSTS header
+reptilauksjonen.no: did not receive HSTS header
+republicmo.gov: could not connect to host
+repustate.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
reqognize.com: could not connect to host
res-rheingau.de: did not receive HSTS header
res42.com: could not connect to host
@@ -11646,6 +12591,7 @@ residentsinsurance.co.uk: did not receive HSTS header
resl20.servehttp.com: could not connect to host
resoundpro.ca: could not connect to host
respice.xyz: could not connect to host
+ressl.ch: could not connect to host
ressos.com: did not receive HSTS header
restaurace-klokocka.cz: did not receive HSTS header
restaurant-mangal.ch: could not connect to host
@@ -11657,15 +12603,16 @@ restioson.me: could not connect to host
restopro.nyc: did not receive HSTS header
restoreresearchstudy.com: did not receive HSTS header
resultsdate.news: could not connect to host
-retcor.net: could not connect to host
reth.ch: could not connect to host
+reto.io: could not connect to host
+retogroup.com: could not connect to host
retropage.co: did not receive HSTS header
retrowave.eu: could not connect to host
rets.org.br: did not receive HSTS header
retube.ga: did not receive HSTS header
returnofwar.com: could not connect to host
+reussir-ma-fete.fr: could not connect to host
revapost.ch: could not connect to host
-revapost.fr: could not connect to host
revealdata.com: did not receive HSTS header
revelaciones.tv: could not connect to host
revello.org: did not receive HSTS header
@@ -11673,32 +12620,36 @@ reverie.pw: could not connect to host
review.info: did not receive HSTS header
reviewbestseller.com: did not receive HSTS header
reviewjust.com: did not receive HSTS header
-reviewspedia.org: could not connect to host
revistapequenosolhares.com.br: could not connect to host
revolutionhive.com: could not connect to host
revtut.net: could not connect to host
rewopit.net: could not connect to host
rex.st: could not connect to host
+rexhockingkelpies.com.au: did not receive HSTS header
reykjavik.guide: could not connect to host
rezun.cloud: did not receive HSTS header
rf.tn: could not connect to host
+rfxanalyst.com: could not connect to host
+rgservers.com: did not receive HSTS header
rhapsodhy.hu: could not connect to host
rhdigital.pro: could not connect to host
rhering.de: could not connect to host
rhiskiapril.com: did not receive HSTS header
+rhodes.ml: could not connect to host
rhodesianridgeback.com.br: could not connect to host
rhodosdreef.nl: could not connect to host
riaucybersolution.net: did not receive HSTS header
ribopierre.fr: could not connect to host
-ricardo.nu: could not connect to host
riceglue.com: could not connect to host
richamorindonesia.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
richardb.me: could not connect to host
-richardbloomfield.blog: did not receive HSTS header
+richardhicks.us: 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 :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+richie.link: did not receive HSTS header
richiemail.net: could not connect to host
richmondsunlight.com: did not receive HSTS header
-richsiciliano.com: could not connect to host
+richmtdriver.com: could not connect to host
+richsiciliano.com: did not receive HSTS header
richterphilipp.com: could not connect to host
rickmartensen.nl: did not receive HSTS header
ricknox.com: did not receive HSTS header
@@ -11707,11 +12658,11 @@ rideaudiscount.com: did not receive HSTS header
rideforwade.com: could not connect to host
rideforwade.net: could not connect to host
rideforwade.org: could not connect to host
-rideworks.com: did not receive HSTS header
+rideworks.com: could not connect to host
ridingoklahoma.com: could not connect to host
ridwan.co: could not connect to host
rienasemettre.fr: did not receive HSTS header
-riesenmagnete.de: did not receive HSTS header
+riesenmagnete.de: could not connect to host
rievo.net: did not receive HSTS header
right-to-love.name: did not receive HSTS header
right2.org: could not connect to host
@@ -11720,14 +12671,15 @@ righttoknow.ie: did not receive HSTS header
rijndael.xyz: could not connect to host
rijnmondeg.nl: did not receive HSTS header
rika.me: could not connect to host
+rincon-nsn.gov: could not connect to host
ring0.xyz: did not receive HSTS header
ringh.am: could not connect to host
rinj.se: could not connect to host
rionewyork.com.br: could not connect to host
+rioshop.com.br: could not connect to host
ripa.io: did not receive HSTS header
rippleunion.com: could not connect to host
-riqy86.nl: could not connect to host
-ris.fi: could not connect to host
+risi-china.com: could not connect to host
risingsun.red: could not connect to host
riskmgt.com.au: could not connect to host
rissato.com.br: could not connect to host
@@ -11745,27 +12697,30 @@ rjnutrition.consulting: did not receive HSTS header
rk6.cz: could not connect to host
rkc-hygrotherm.de: could not connect to host
rkmantpur.org: did not receive HSTS header
+rkmedia.no: could not connect to host
rmaqequipamentos.com.br: could not connect to host
rmdlingerie.com.br: did not receive HSTS header
rme.li: did not receive HSTS header
+rmit.me: could not connect to host
+rmk.si: could not connect to host
+rmsides.com: did not receive HSTS header
roadfeast.com: could not connect to host
roan24.pl: did not receive HSTS header
+rob.uk.com: could not connect to host
robertabittle.com: could not connect to host
-robertayamashita.com: could not connect to host
-robertayamashita.com.br: could not connect to host
-robertbln.com: could not connect to host
roberto-webhosting.nl: did not receive HSTS header
robertocasares.no-ip.biz: could not connect to host
robi-net.it: could not connect to host
robigalia.org: did not receive HSTS header
robinvdmarkt.nl: could not connect to host
+robjager-fotografie.nl: could not connect to host
robomonkey.org: could not connect to host
robteix.com: did not receive HSTS header
robtex.com: did not receive HSTS header
robtex.net: did not receive HSTS header
robtex.org: did not receive HSTS header
robust.ga: could not connect to host
-rochman.id: could not connect to host
+rochman.id: did not receive HSTS header
rocketnet.ml: could not connect to host
rockeyscrivo.com: did not receive HSTS header
rocksberg.net: could not connect to host
@@ -11774,27 +12729,32 @@ rodarion.pl: could not connect to host
rodehutskors.net: could not connect to host
rodney.id.au: did not receive HSTS header
rodneybrooksjr.com: did not receive HSTS header
+rodomonte.org: did not receive HSTS header
rodosto.com: did not receive HSTS header
+roelbazuin.com: did not receive HSTS header
roelf.org: did not receive HSTS header
roeper.party: could not connect to host
roesemann.email: could not connect to host
rofrank.space: could not connect to host
rogeiro.net: could not connect to host
rogerdat.ovh: could not connect to host
+roguefortgame.com: could not connect to host
+rohanbassett.com: could not connect to host
rohankrishnadev.in: could not connect to host
-rohlik.cz: did not receive HSTS header
roketix.co.uk: did not receive HSTS header
-rolandinsh.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
rolandkolodziej.com: max-age too low: 86400
+rolandreed.cn: did not receive HSTS header
rolandslate.com: did not receive HSTS header
rolemaster.net: could not connect to host
-roleplayhome.com: could not connect to host
rolroer.co.za: could not connect to host
romaimperator.com: did not receive HSTS header
romainmuller.xyz: did not receive HSTS header
romans-place.me.uk: could not connect to host
romanticschemermovie.com: could not connect to host
+romar-bos.nl: did not receive HSTS header
romeoferraris.com: did not receive HSTS header
+romleg.cf: could not connect to host
+roms.fun: could not connect to host
romulusapp.com: could not connect to host
ron2k.za.net: could not connect to host
rondoniatec.com.br: did not receive HSTS header
@@ -11812,9 +12772,8 @@ rootforum.org: did not receive HSTS header
rootrelativity.com: could not connect to host
rootservice.org: did not receive HSTS header
rootwpn.com: could not connect to host
-rop.io: could not connect to host
+rop.io: did not receive HSTS header
roquecenter.org: did not receive HSTS header
-roromendut.online: could not connect to host
rorymcdaniel.com: did not receive HSTS header
rosewoodranch.com: did not receive HSTS header
rosi-royal.com: could not connect to host
@@ -11822,6 +12781,7 @@ rospa100.com: did not receive HSTS header
rossclark.com: did not receive HSTS header
rossen.be: did not receive HSTS header
rossiworld.com: did not receive HSTS header
+rosslug.org.uk: could not connect to host
rotex1840.de: did not receive HSTS header
rotozen.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
rotter-dam.nl: did not receive HSTS header
@@ -11834,12 +12794,14 @@ rous.se: could not connect to host
rouvray.org: could not connect to host
royal-forest.org: max-age too low: 0
royal-mangal.ch: could not connect to host
+royal876.com: could not connect to host
royalhop.co: could not connect to host
royalpub.net: did not receive HSTS header
royalsignaturecruise.com: could not connect to host
roychan.org: max-age too low: 0
royzez.com: could not connect to host
rozalisbengal.ro: could not connect to host
+rozalynne-dawn.ga: could not connect to host
rozeapp.nl: could not connect to host
rpasafrica.com: could not connect to host
rr.in.th: could not connect to host
@@ -11851,27 +12813,25 @@ rsampaio.info: did not receive HSTS header
rsf.io: could not connect to host
rsi.im: did not receive HSTS header
rskuipers.com: did not receive HSTS header
+rsldb.com: could not connect to host
rsmaps.org: could not connect to host
-rstraining.co.uk: could not connect to host
+rsships.com: could not connect to host
+rstraining.co.uk: did not receive HSTS header
rstsecuritygroup.co.uk: could not connect to host
rtc.fun: could not connect to host
-rte.eu: could not connect to host
rtho.me: did not receive HSTS header
rtvi.com: did not receive HSTS header
+ru-music.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
rubbereggs.ca: could not connect to host
rubbix.net: could not connect to host
-rubbleremovalsbenoni.co.za: did not receive HSTS header
rubecodeberg.com: could not connect to host
-ruben.am: did not receive HSTS header
rubendv.be: did not receive HSTS header
rubens.cloud: did not receive HSTS header
rubenschulz.nl: could not connect to host
rubi-ka.net: max-age too low: 0
ruborr.se: did not receive HSTS header
-ruby-auf-schienen.de: could not connect to host
rubysecurity.org: did not receive HSTS header
rubyshop.nl: could not connect to host
-rucnerobene.eu: could not connect to host
rudeotter.com: did not receive HSTS header
rue-de-la-vieille.fr: max-age too low: 0
ruflay.ru: could not connect to host
@@ -11883,29 +12843,31 @@ ruig.jp: could not connect to host
ruitershoponline.nl: did not receive HSTS header
ruja.dk: did not receive HSTS header
rukhaiyar.com: could not connect to host
+rullzer.com: did not receive HSTS header
+rumlager.de: max-age too low: 600000
rummel-platz.de: could not connect to host
rumoterra.com.br: could not connect to host
run-forrest.run: could not connect to host
runawebinar.nl: 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
runhardt.eu: did not receive HSTS header
runtl.com: did not receive HSTS header
runtondev.com: did not receive HSTS header
-ruobiyi.com: could not connect to host
ruqu.nl: could not connect to host
rusadmin.biz: did not receive HSTS header
+rushball.net: could not connect to host
rusl.me: could not connect to host
-rusmolotok.ru: could not connect to host
russmarshall.com: could not connect to host
rustbyexample.com: did not receive HSTS header
rustfanatic.com: did not receive HSTS header
ruurdboomsma.nl: could not connect to host
ruxit.com: did not receive HSTS header
rvg.zone: could not connect to host
+rvolve.net: could not connect to host
rw-solutions.tech: could not connect to host
rwanderlust.com: did not receive HSTS header
+rxgroup.io: could not connect to host
rxprep.com: did not receive HSTS header
rxt.social: could not connect to host
rxv.cc: could not connect to host
@@ -11923,21 +12885,21 @@ s.how: could not connect to host
s0923.com: could not connect to host
s0laris.co.uk: could not connect to host
s1mplescripts.de: could not connect to host
+s1ris.org: did not receive HSTS header
s3cases.com: did not receive HSTS header
s3n.se: could not connect to host
-saabwa.org: did not receive HSTS header
+saabwa.org: could not connect to host
+saba-piserver.info: could not connect to host
sabatek.pl: did not receive HSTS header
-sabine-forschbach.de: could not connect to host
-sabineforschbach.de: could not connect to host
-sabtunes.com: did not receive HSTS header
sac-shop.com: did not receive HSTS header
+sachk.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
saco-ceso.com: could not connect to host
sadiejanehair.com: could not connect to host
safari-afrique.com: did not receive HSTS header
-safe.moe: did not receive HSTS header
safedevice.net: did not receive HSTS header
safelist.eu: did not receive HSTS header
safemovescheme.co.uk: could not connect to host
+safemt.gov: could not connect to host
safepay.io: could not connect to host
saferedirect.link: could not connect to host
saferedirectlink.com: could not connect to host
@@ -11955,7 +12917,7 @@ saint-astier-triathlon.com: did not receive HSTS header
saintjohnlutheran.church: did not receive HSTS header
saintw.com: could not connect to host
sairai.bid: could not connect to host
-saitrance.com: could not connect to host
+saiyasu-search.com: did not receive HSTS header
sakaserver.com: did not receive HSTS header
sakib.ninja: did not receive HSTS header
sakurabuff.com: could not connect to host
@@ -11963,8 +12925,12 @@ salaervergleich.com: did not receive HSTS header
sale.sh: could not connect to host
salearnership.co.za: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
saleslift.pl: did not receive HSTS header
+salishseawhalewatching.ca: could not connect to host
sallysubs.com: could not connect to host
+salmo23.com.br: could not connect to host
+salon-claudia.ch: could not connect to host
salonestella.it: could not connect to host
+salrosadohimalaia.com: did not receive HSTS header
salserocafe.com: did not receive HSTS header
salserototal.com: could not connect to host
saltedskies.com: could not connect to host
@@ -11975,43 +12941,45 @@ salzamt.tk: could not connect to host
samanthahumphreysstudio.com: did not receive HSTS header
samaritan.tech: could not connect to host
samaritansnet.org: did not receive HSTS header
+samenwerkingsportaal.tk: did not receive HSTS header
sametovymesic.cz: could not connect to host
-samkelleher.com: could not connect to host
saml2.com: could not connect to host
samlamac.com: could not connect to host
samm.com.au: did not receive HSTS header
sammyjohnson.com: could not connect to host
samp.im: could not connect to host
sampcup.com: could not connect to host
-sampoznay.ru: did not receive HSTS header
+sampoznay.ru: could not connect to host
samraskauskas.com: could not connect to host
samsen.club: could not connect to host
samsonova.de: could not connect to host
samsungxoa.com: could not connect to host
-samvanderkris.com: did not receive HSTS header
+samvanderkris.com: could not connect to host
+samvanderkris.xyz: did not receive HSTS header
sanael.net: could not connect to host
+sanandreasstories.com: did not receive HSTS header
sanasalud.org: could not connect to host
sanatfilan.com: did not receive HSTS header
sanatrans.com: could not connect to host
sand-islets.de: did not receive HSTS header
+sanderknape.com: did not receive HSTS header
sandviks.com: did not receive HSTS header
-sanglierhurlant.fr: could not connect to host
sanguoxiu.com: could not connect to host
sanhei.ch: did not receive HSTS header
-sanik.my: did not receive HSTS header
+sanik.my: could not connect to host
sanradon.by: did not receive HSTS header
sansage.com.br: could not connect to host
sansdev.com: could not connect to host
sansemea.com: did not receive HSTS header
-santanderideas.com: could not connect to host
santi.eu: did not receive HSTS header
+santing.net: could not connect to host
santmark.com: could not connect to host
santmark.eu: could not connect to host
santmark.fi: could not connect to host
santmark.info: could not connect to host
santmark.net: could not connect to host
santmark.org: could not connect to host
-santodomingocg.org: did not receive HSTS header
+santodomingocg.org: could not connect to host
santorinibbs.com: did not receive HSTS header
santouri.be: could not connect to host
saotn.org: did not receive HSTS header
@@ -12020,14 +12988,16 @@ sapporobeer.com: could not connect to host
sapuncheta.com: could not connect to host
saq.com: could not connect to host
sarah-beckett-harpist.com: did not receive HSTS header
+sarahdoyley.com: could not connect to host
+sarahlouisesearle.com: could not connect to host
sarahsweetlife.com: could not connect to host
sarahsweger.com: could not connect to host
sarakas.com: could not connect to host
sarangsemutbandung.com: could not connect to host
sarindia.com: could not connect to host
sarindia.de: could not connect to host
-sarink.eu: could not connect to host
sarisonproductions.com: did not receive HSTS header
+sarkarikhoj.com: could not connect to host
sarkarischeme.in: could not connect to host
sarkisozleri.us: could not connect to host
sarndipity.com: could not connect to host
@@ -12045,11 +13015,13 @@ satrent.se: did not receive HSTS header
satriyowibowo.my.id: did not receive HSTS header
satsang-uwe.de: did not receive HSTS header
satsukii.moe: did not receive HSTS header
+sattamatkadpboss.mobi: could not connect to host
saturne.tk: could not connect to host
saturngames.co.uk: could not connect to host
saucyfox.net: did not receive HSTS header
saudeeconforto.com.br: did not receive HSTS header
sauenytt.no: could not connect to host
+sauerbrey.eu: did not receive HSTS header
saumon.io: did not receive HSTS header
saumon.xyz: could not connect to host
saunasandstuff.ca: did not receive HSTS header
@@ -12060,23 +13032,22 @@ saveaward.gov: could not connect to host
savecashindia.com: did not receive HSTS header
savekorea.net: max-age too low: 0
savemoneyonenergy.com: did not receive HSTS header
+saveora.shop: could not connect to host
savethedogfishfoundation.org: could not connect to host
saveyour.biz: could not connect to host
-savingbytes.com: could not connect to host
+savingbytes.com: did not receive HSTS header
savinggoliath.com: could not connect to host
savvysuit.com: did not receive HSTS header
saxol-group.com: could not connect to host
+saxotex.de: did not receive HSTS header
say-hanabi.com: could not connect to host
sayhanabi.com: could not connect to host
sazima.ru: did not receive HSTS header
-sbirecruitment.co.in: could not connect to host
sbm.cloud: could not connect to host
sbobetfun.com: did not receive HSTS header
sbox-archives.com: could not connect to host
sby.de: did not receive HSTS header
sc4le.com: could not connect to host
-scaffoldhirefourways.co.za: did not receive HSTS header
-scaffoldhirerandburg.co.za: did not receive HSTS header
scala.click: did not receive HSTS header
scannabi.com: could not connect to host
sch44r0n.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -12087,14 +13058,14 @@ schalkoortbv.nl: did not receive HSTS header
schau-rein.co.at: did not receive HSTS header
schauer.so: could not connect to host
schd.io: did not receive HSTS header
-schefczyk.com: could not connect to host
-schefczyk.de: could not connect to host
-schefczyk.eu: could not connect to host
schermreparatierotterdam.nl: did not receive HSTS header
schlabbi.com: did not receive HSTS header
+schlagenhauf.info: could not connect to host
+schlagma.de: could not connect to host
schmidttulskie.de: could not connect to host
schmitt.ovh: could not connect to host
schmitt.ws: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+schnapke.name: could not connect to host
schneider-electric.tg: could not connect to host
schnell-abnehmen.tips: did not receive HSTS header
schnell-gold.com: did not receive HSTS header
@@ -12105,14 +13076,17 @@ schoolze.com: did not receive HSTS header
schoop.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
schorel.ovh: could not connect to host
schraebanowicz.net: did not receive HSTS header
+schreck-thomas.de: could not connect to host
schreiber-netzwerk.eu: did not receive HSTS header
schreibnacht.de: did not receive HSTS header
schreinerei-wortmann.de: did not receive HSTS header
schrikdraad.net: did not receive HSTS header
+schritt4fit.de: did not receive HSTS header
schrodinger.io: could not connect to host
schroepfglas-versand.de: did not receive HSTS header
schroettle.com: did not receive HSTS header
schulterglatzen-altenwalde.de: could not connect to host
+schur-it.de: could not connect to host
schwarzkopfforyou.de: did not receive HSTS header
schwarzwaldcon.de: could not connect to host
schweiz.guide: could not connect to host
@@ -12148,7 +13122,6 @@ scramble.io: did not receive HSTS header
scrambler.in: could not connect to host
scrapings.net: could not connect to host
screencaster.io: did not receive HSTS header
-screenplay.jp: max-age too low: 0
screenresolution.space: could not connect to host
screensaversplanet.com: did not receive HSTS header
scribbleserver.com: could not connect to host
@@ -12161,8 +13134,7 @@ scriptict.nl: could not connect to host
scriptjunkie.us: could not connect to host
scrollstory.com: did not receive HSTS header
scruffymen.com: could not connect to host
-scrumbleship.com: did not receive HSTS header
-sctm.at: could not connect to host
+scrumplex.net: did not receive HSTS header
sdhmanagementgroup.com: could not connect to host
sdia.ru: could not connect to host
sdl-corporatesite-staging.azurewebsites.net: did not receive HSTS header
@@ -12170,6 +13142,7 @@ sdmoscow.ru: could not connect to host
sdrobs.com: did not receive HSTS header
sdsl-speedtest.de: could not connect to host
se7ensins.com: did not receive HSTS header
+sea-godzilla.com: could not connect to host
seadus.ee: could not connect to host
seanationals.org: did not receive HSTS header
seanchaidh.org: could not connect to host
@@ -12177,8 +13150,8 @@ seans.cc: did not receive HSTS header
seanstrout.com: did not receive HSTS header
seansyardservice.com: did not receive HSTS header
searchgov.gov.il: did not receive HSTS header
+searchshops.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
searx.pw: could not connect to host
-seatshare.co.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
sebastian-bair.de: could not connect to host
sebastian-schmidt.me: did not receive HSTS header
sebastianhampl.de: could not connect to host
@@ -12186,10 +13159,16 @@ sebastianpedersen.com: did not receive HSTS header
sebastiensenechal.com: did not receive HSTS header
sebi.cf: could not connect to host
sebster.com: did not receive HSTS header
+sec44.com: could not connect to host
+sec44.net: could not connect to host
+sec44.org: could not connect to host
secandtech.com: could not connect to host
+secanje.nl: did not receive HSTS header
seccomp.ru: did not receive HSTS header
seceye.cn: could not connect to host
+secitem.at: did not receive HSTS header
secitem.de: could not connect to host
+secitem.eu: did not receive HSTS header
secnet.ga: could not connect to host
secondary-survivor.com: could not connect to host
secondary-survivor.help: could not connect to host
@@ -12203,7 +13182,7 @@ secondpay.nl: could not connect to host
secondspace.ca: could not connect to host
secretnation.net: did not receive HSTS header
secretofanah.com: could not connect to host
-secretsanta.fr: could not connect to host
+secretpanties.com: could not connect to host
sectest.ml: could not connect to host
sectia22.ro: did not receive HSTS header
secur3.us: did not receive HSTS header
@@ -12225,6 +13204,10 @@ security-thoughts.org: could not connect to host
security.google.com: did not receive HSTS header (error ignored - included regardless)
security.xn--q9jyb4c: could not connect to host
securityarena.com: could not connect to host
+securitybrief.asia: did not receive HSTS header
+securitybrief.co.nz: did not receive HSTS header
+securitybrief.com.au: did not receive HSTS header
+securitybrief.eu: 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
@@ -12234,6 +13217,7 @@ securitymap.wiki: could not connect to host
securitysoapbox.com: could not connect to host
securitytalk.pl: could not connect to host
securitytestfan.gov: could not connect to host
+securitywatch.co.nz: did not receive HSTS header
securiviera.ch: did not receive HSTS header
securon.io: could not connect to host
securoswiss.ch: could not connect to host
@@ -12252,7 +13236,6 @@ seele.ca: could not connect to host
seen.life: could not connect to host
sehenderson.com: did not receive HSTS header
seida.at: could not connect to host
-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
@@ -12265,7 +13248,6 @@ seleondar.ru: did not receive HSTS header
selfdefenserx.com: did not receive HSTS header
selfhosters.com: could not connect to host
selfie-france.fr: could not connect to host
-selfmade4u.de: could not connect to host
selfserverx.com: could not connect to host
selitysvideot.fi: did not receive HSTS header
selldorado.com: could not connect to host
@@ -12276,6 +13258,7 @@ semantheme.fr: did not receive HSTS header
semen3325.xyz: could not connect to host
semenkovich.com: did not receive HSTS header
sementes.gratis: could not connect to host
+semjonov.de: could not connect to host
semps-servers.de: could not connect to host
sendash.com: did not receive HSTS header
sendmeback.de: did not receive HSTS header
@@ -12287,31 +13270,34 @@ senseye.io: did not receive HSTS header
sensiblemn.org: could not connect to host
sensibus.com: did not receive HSTS header
sensoft-int.com: could not connect to host
+sensualism.com: could not connect to host
seo-lagniappe.com: did not receive HSTS header
seoarchive.org: could not connect to host
seobot.com.au: could not connect to host
seohochschule.de: could not connect to host
+seolaba.io: could not connect to host
seomarketingdeals.com: did not receive HSTS header
seomen.biz: could not connect to host
seomobo.com: could not connect to host
seosanantonioinc.com: did not receive HSTS header
seoscribe.net: could not connect to host
-seosec.xyz: could not connect to host
+seosec.xyz: did not receive HSTS header
seotronix.net: did not receive HSTS header
seowarp.net: did not receive HSTS header
sep23.ru: could not connect to host
sepakbola.win: could not connect to host
sephr.com: did not receive HSTS header
sepie.gob.es: did not receive HSTS header
-seproco.com: could not connect to host
seq.tf: did not receive HSTS header
+sequatchiecounty-tn.gov: could not connect to host
serafin.tech: could not connect to host
serathius.ovh: could not connect to host
serbien.guide: could not connect to host
serenitycreams.com: did not receive HSTS header
serfdom.io: did not receive HSTS header
+sergeyreznikov.com: could not connect to host
serized.pw: could not connect to host
-serkaneles.com: could not connect to host
+serkaneles.com: did not receive HSTS header
servecrypt.com: could not connect to host
servecrypt.net: could not connect to host
servecrypt.ru: could not connect to host
@@ -12322,29 +13308,41 @@ servercode.ca: did not receive HSTS header
serverdensity.io: did not receive HSTS header
servergno.me: did not receive HSTS header
serverlauget.no: could not connect to host
+serverlog.net: could not connect to host
servermonkey.nl: could not connect to host
servfefe.com: could not connect to host
+service.gov.uk: could not connect to host
servicevie.com: did not receive HSTS header
+servpanel.de: did not receive HSTS header
servu.de: did not receive HSTS header
servx.ru: did not receive HSTS header
+serwusik.pl: did not receive HSTS header
seryo.moe: could not connect to host
seryo.net: could not connect to host
seryovpn.com: could not connect to host
-sesha.co.za: did not receive HSTS header
-setkit.net: did not receive HSTS header
+sesha.co.za: could not connect to host
+sethoedjo.com: could not connect to host
+setkit.net: could not connect to host
setuid.de: could not connect to host
setuid.io: did not receive HSTS header
sevenhearts.online: could not connect to host
+sex-education.com: could not connect to host
+sexgarage.de: could not connect to host
+sexocomgravidas.com: could not connect to host
+sexoyrelax.com: could not connect to host
+sexpay.net: could not connect to host
+sexplicit.co.uk: did not receive HSTS header
sexshopfacil.com.br: could not connect to host
sexshopsgay.com: did not receive HSTS header
+sexwork.net: could not connect to host
+sexymassageoil.com: could not connect to host
seyahatsagliksigortalari.com: could not connect to host
-seydaozcan.com: could not connect to host
+seydaozcan.com: did not receive HSTS header
seyr.it: could not connect to host
-seyr.me: could not connect to host
sfashion.si: did not receive HSTS header
+sfaturiit.ro: could not connect to host
sfhobbies.com.br: could not connect to host
sfsltd.com: did not receive HSTS header
-sgcaccounts.co.uk: did not receive HSTS header
sgovaard.nl: did not receive HSTS header
sgthotshot.com: could not connect to host
sh11.pp.ua: did not receive HSTS header
@@ -12353,7 +13351,7 @@ sha2017.org: did not receive HSTS header
shaamrelief.org: did not receive HSTS header
shadiku.com: could not connect to host
shadow-socks.net: could not connect to host
-shadow-socks.org: could not connect to host
+shadow-socks.org: did not receive HSTS header
shadow-socks.pro: could not connect to host
shadowguardian507-irl.tk: did not receive HSTS header
shadowguardian507.tk: did not receive HSTS header
@@ -12377,16 +13375,19 @@ shagi29.ru: did not receive HSTS header
shahbeat.com: could not connect to host
shaitan.eu: could not connect to host
shakebox.de: could not connect to host
+shaken-kyoto.jp: could not connect to host
shamka.ru: could not connect to host
+shandonsg.co.uk: could not connect to host
+shanekoster.net: did not receive HSTS header
shanesage.com: could not connect to host
shang-yu.cn: could not connect to host
-shankangke.com: did not receive HSTS header
shanxiapark.com: could not connect to host
shanyhs.com: did not receive HSTS header
shapesedinburgh.co.uk: did not receive HSTS header
shardsoft.com: could not connect to host
shareimg.xyz: could not connect to host
sharejoy.cn: did not receive HSTS header
+sharemessage.net: could not connect to host
shareoine.com: did not receive HSTS header
sharepass.pw: could not connect to host
sharepic.xyz: could not connect to host
@@ -12395,6 +13396,7 @@ shareworx.net: could not connect to host
sharezen.de: could not connect to host
sharingcode.com: did not receive HSTS header
sharpe-practice.co.uk: could not connect to host
+sharvey.ca: could not connect to host
shatorin.com: could not connect to host
shauncrowley.co.uk: could not connect to host
shaunwheelhou.se: could not connect to host
@@ -12405,7 +13407,7 @@ shawnstarrcustomhomes.com: did not receive HSTS header
shawnwilson.info: could not connect to host
shellj.me: did not receive HSTS header
shellsec.pw: did not receive HSTS header
-shengrenyu.com: could not connect to host
+shemissed.me: did not receive HSTS header
shentengtu.idv.tw: could not connect to host
shep.co.il: did not receive HSTS header
sheratan.web.id: could not connect to host
@@ -12416,10 +13418,10 @@ shethbox.com: could not connect to host
shevronpatriot.ru: did not receive HSTS header
sheying.tm: could not connect to host
shg-pornographieabhaengigkeit.de: did not receive HSTS header
+shh.sh: could not connect to host
shiatsu-institut.ch: could not connect to host
shibainu.com.br: could not connect to host
shibe.club: could not connect to host
-shieldofachilles.in: could not connect to host
shift.ooo: did not receive HSTS header
shiftins.com: could not connect to host
shiftnrg.org: did not receive HSTS header
@@ -12435,7 +13437,7 @@ shinobi-fansub.ro: 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
+shipping24h.com: could not connect to host
shippingbo.com: did not receive HSTS header
shiroki-k.net: could not connect to host
shirosaki.org: could not connect to host
@@ -12450,7 +13452,6 @@ sho-tanaka.jp: did not receive HSTS header
shocksrv.com: did not receive HSTS header
shooshosha.com: could not connect to host
shootpooloklahoma.com: could not connect to host
-shopatkei.com: could not connect to host
shopdopastor.com.br: could not connect to host
shopherbal.co.za: could not connect to host
shopods.com: did not receive HSTS header
@@ -12460,18 +13461,20 @@ shoppingreview.org: did not receive HSTS header
shoprose.ru: could not connect to host
shoprsc.com: could not connect to host
shops.neonisi.com: could not connect to host
-shorten.ninja: could not connect to host
shortpath.com: could not connect to host
shortr.li: could not connect to host
shota.party: could not connect to host
-shotonwhat.com: could not connect to host
shotpixonline.com.br: did not receive HSTS header
show-stream.tv: could not connect to host
+showdepiscinas.com.br: did not receive HSTS header
shower.im: did not receive HSTS header
showkeeper.tv: did not receive HSTS header
showroom.de: did not receive HSTS header
+showroom113.ru: could not connect to host
+shoxmusic.net: did not receive HSTS header
shred.ch: could not connect to host
shredoptics.ch: could not connect to host
+shrug.ml: could not connect to host
shtorku.com: could not connect to host
shu-kin.net: did not receive HSTS header
shukatsu-note.com: could not connect to host
@@ -12489,15 +13492,19 @@ sianimacion.com: could not connect to host
siao-mei.com: did not receive HSTS header
sichere-kartenakzeptanz.de: could not connect to host
siciliadigitale.pro: could not connect to host
+sicklepod.com: could not connect to host
sictame-tigf.org: did not receive HSTS header
+sidpod.ru: could not connect to host
siebens.net: could not connect to host
+sieh.es: did not receive HSTS header
sifls.com: could not connect to host
sifreuret.com: could not connect to host
signere.com: could not connect to host
-signere.no: could not connect to host
+signere.no: did not receive HSTS header
signoracle.com: could not connect to host
signosquecombinam.com.br: could not connect to host
sigsegv.run: did not receive HSTS header
+sihaizixun.net: could not connect to host
siikarantacamping.fi: did not receive HSTS header
sijimi.cn: could not connect to host
sijmenschoon.nl: could not connect to host
@@ -12508,20 +13515,20 @@ silentcircle.com: did not receive HSTS header
silentcircle.org: could not connect to host
silentexplosion.de: could not connect to host
silentlink.io: could not connect to host
-silentmode.com: max-age too low: 7889238
+silentmode.com: max-age too low: 0
silicagelpackets.ca: did not receive HSTS header
+silke-hunde.de: did not receive HSTS header
silqueskineyeserum.com: could not connect to host
silver-drachenkrieger.de: did not receive HSTS header
silverback.is: did not receive HSTS header
silvergoldbull.ba: could not connect to host
silvergoldbull.md: could not connect to host
+silvergoldbull.ph: could not connect to host
silverhome.ninja: could not connect to host
silverpvp.com: could not connect to host
silverstartup.sk: could not connect to host
silviamacallister.com: did not receive HSTS header
silvistefi.com: could not connect to host
-silvobeat.blog: could not connect to host
-sim-sim.appspot.com: did not receive HSTS header
simbast.com: could not connect to host
simbihaiti.com: max-age too low: 7889238
simbol.id: could not connect to host
@@ -12539,11 +13546,13 @@ simon.butcher.name: max-age too low: 2629743
simon.lc: did not receive HSTS header
simongong.net: did not receive HSTS header
simonsaxon.com: did not receive HSTS header
+simonschmitt.ch: could not connect to host
simonsmh.cc: did not receive HSTS header
simpan.id: could not connect to host
simpeo.fr: did not receive HSTS header
simpeo.org: did not receive HSTS header
simpleai.net: max-age too low: 600
+simplecoding.click: did not receive HSTS header
simplefraud.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
simplelearner.com: could not connect to host
simplepractice.com: did not receive HSTS header
@@ -12560,17 +13569,21 @@ sin30.net: could not connect to host
sincai666.com: could not connect to host
sinclairmoving.com: did not receive HSTS header
sincron.org: could not connect to host
-sinefili.com: did not receive HSTS header
sinful.pw: could not connect to host
singee.site: could not connect to host
+singerwang.com: could not connect to host
+singles-berlin.de: could not connect to host
singul4rity.com: could not connect to host
sinkip.com: could not connect to host
sinneserweiterung.de: could not connect to host
+sinon.org: did not receive HSTS header
sinoscandinavia.se: could not connect to host
sinosky.org: did not receive HSTS header
+sinsojb.me: did not receive HSTS header
sintesysglobal.com: did not receive HSTS header
sinusbot.online: did not receive HSTS header
sion.moe: did not receive HSTS header
+sipc.org: did not receive HSTS header
sipsik.net: did not receive HSTS header
siqi.wang: could not connect to host
sirburton.com: did not receive HSTS header
@@ -12578,7 +13591,10 @@ siriad.com: could not connect to host
sirius-lee.net: could not connect to host
siro.gq: did not receive HSTS header
siroop.ch: max-age too low: 86400
+sisgopro.com: could not connect to host
sistemasespecializados.com: did not receive HSTS header
+sistemlash.com: did not receive HSTS header
+sistemos.net: could not connect to host
sistersurprise.de: did not receive HSTS header
sitecloudify.com: could not connect to host
sitecuatui.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -12589,14 +13605,14 @@ sitennisclub.com: did not receive HSTS header
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
-sitesko.de: did not receive HSTS header
-sitesource101.com: did not receive HSTS header
+sitesource101.com: could not connect to host
sitesten.com: did not receive HSTS header
sittinginoblivion.com: did not receive HSTS header
-sixcorners.info: could not connect to host
sizingservers.be: did not receive HSTS header
sizzle.co.uk: did not receive HSTS header
+sja-se-training.com: could not connect to host
sjdaws.com: could not connect to host
+sjdtaxi.com: did not receive HSTS header
sjhyl11.com: could not connect to host
sjsc.fr: did not receive HSTS header
skandiabanken.no: did not receive HSTS header
@@ -12607,6 +13623,8 @@ skarox.eu: could not connect to host
skarox.net: could not connect to host
skarox.ru: could not connect to host
skates.guru: did not receive HSTS header
+skday.com: did not receive HSTS header
+sketchywebsite.net: max-age too low: 0
ski-insurance.com.au: did not receive HSTS header
skidstresser.com: could not connect to host
skiinstructor.services: did not receive HSTS header
@@ -12623,27 +13641,33 @@ skoda-clever-lead.de: could not connect to host
skoda-im-dialog.de: could not connect to host
skoda-nurdiebesten.de: did not receive HSTS header
skoda-service-team-cup.de: did not receive HSTS header
+skomski.org: did not receive HSTS header
skotty.io: did not receive HSTS header
skpdev.net: could not connect to host
+skrimix.tk: could not connect to host
skrivande.co: could not connect to host
skullhouse.nyc: did not receive HSTS header
sky-aroma.com: could not connect to host
skyasker.cn: could not connect to host
skyasker.com: did not receive HSTS header
+skybloom.com: could not connect to host
+skybound.link: did not receive HSTS header
skyflix.me: could not connect to host
skyline.link: could not connect to host
skyline.tw: did not receive HSTS header
skylocker.net: could not connect to host
+skylocker.nl: could not connect to host
skyoy.com: did not receive HSTS header
skypeassets.com: could not connect to host
skypoker.com: could not connect to host
skyrunners.ch: could not connect to host
+skytec.host: did not receive HSTS header
skyvault.io: could not connect to host
skyveo.ml: did not receive HSTS header
skyway.capital: did not receive HSTS header
skyworldserver.ddns.net: could not connect to host
-sl1pkn07.wtf: could not connect to host
-slab.com: did not receive HSTS header
+sl1pkn07.wtf: max-age too low: 2592000
+slapen17.nl: could not connect to host
slaps.be: could not connect to host
slash-dev.de: did not receive HSTS header
slash64.co.uk: could not connect to host
@@ -12653,8 +13677,9 @@ slashand.co: could not connect to host
slashbits.no: did not receive HSTS header
slashdesign.it: did not receive HSTS header
slashem.me: did not receive HSTS header
-slattery.co: could not connect to host
+slattery.co: did not receive HSTS header
slauber.de: did not receive HSTS header
+sld08.com: did not receive HSTS header
sleeklounge.com: did not receive HSTS header
sleep10.com: could not connect to host
sleepstar.com.mt: did not receive HSTS header
@@ -12663,52 +13688,62 @@ slicketl.com: did not receive HSTS header
slightfuture.click: could not connect to host
slightfuture.com: did not receive HSTS header
slimmerbouwen.be: did not receive HSTS header
+slingo.com: did not receive HSTS header
slix.io: could not connect to host
sln.cloud: could not connect to host
+slo-net.net: could not connect to host
slope.haus: could not connect to host
slovakiana.sk: did not receive HSTS header
+slovenskycestovatel.sk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
slovoice.org: could not connect to host
slowfood.es: did not receive HSTS header
slowsociety.org: could not connect to host
slse.ca: max-age too low: 0
+sluimann.de: could not connect to host
sluplift.com: did not receive HSTS header
-slycurity.de: did not receive HSTS header
+slycurity.de: could not connect to host
slytech.ch: could not connect to host
smallcdn.rocks: could not connect to host
smallchat.nl: could not connect to host
smalldata.tech: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-smallplanet.ch: could not connect to host
+smallpath.me: could not connect to host
+smallplanet.ch: did not receive HSTS header
smallshopit.com: did not receive HSTS header
smart-mirror.de: did not receive HSTS header
smart-ov.nl: could not connect to host
smartbiz.vn: could not connect to host
-smartboleta.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+smartboleta.com: did not receive HSTS header
smartbuyelectric.com: could not connect to host
smartcoin.com.br: could not connect to host
smarterskies.gov: did not receive HSTS header
smarthomedna.com: did not receive HSTS header
+smartietop.com: could not connect to host
smartit.pro: did not receive HSTS header
smartlend.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
smartofficesandsmarthomes.com: did not receive HSTS header
smartofficeusa.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
smartphone.continental.com: could not connect to host
smartrak.co.nz: did not receive HSTS header
+smartshoppers.es: did not receive HSTS header
+smartwritingservice.com: could not connect to host
smcbox.com: did not receive HSTS header
smdev.fr: could not connect to host
smet.us: could not connect to host
smexpt.com: did not receive HSTS header
smi-a.me: could not connect to host
+smiatek.name: could not connect to host
smileawei.com: could not connect to host
-smimea.com: did not receive HSTS header
+smimea.com: could not connect to host
smirkingwhorefromhighgarden.pro: could not connect to host
-smith.is: could not connect to host
+smith.is: did not receive HSTS header
smittix.co.uk: did not receive HSTS header
-smkn1lengkong.sch.id: did not receive HSTS header
+smkn1lengkong.sch.id: could not connect to host
smksi2.com: could not connect to host
smksultanismail2.com: could not connect to host
-smkw.com: did not receive HSTS header
sml.lc: could not connect to host
smmcab.ru: could not connect to host
+smmcab.website: could not connect to host
+smokinghunks.com: could not connect to host
smove.sg: did not receive HSTS header
smplix.com: could not connect to host
smries.com: could not connect to host
@@ -12719,19 +13754,22 @@ smspodmena.ru: could not connect to host
smtp.bz: did not receive HSTS header
smuhelper.cn: could not connect to host
smusg.com: could not connect to host
-smx.net.br: could not connect to host
snafarms.com: did not receive HSTS header
snailing.org: could not connect to host
+snake.dog: could not connect to host
snakehosting.dk: did not receive HSTS header
snapappts.com: could not connect to host
+snaptools.io: could not connect to host
snapworks.net: did not receive HSTS header
snarf.in: could not connect to host
-sneaker.date: did not receive HSTS header
+sneak.berlin: did not receive HSTS header
+sneaker.date: could not connect to host
sneed.company: could not connect to host
snekchat.moe: could not connect to host
snelwerk.be: could not connect to host
sng.my: could not connect to host
snic.website: could not connect to host
+sniderman.pro: could not connect to host
sniderman.xyz: could not connect to host
snip.host: could not connect to host
snippet.host: could not connect to host
@@ -12741,10 +13779,16 @@ snoqualmiefiber.org: could not connect to host
snovey.com: could not connect to host
snowdy.eu: could not connect to host
snowdy.link: could not connect to host
+snowplane.net: did not receive HSTS header
+snowraven.de: did not receive HSTS header
+snowyluma.com: could not connect to host
+snrat.com: did not receive HSTS header
so-healthy.co.uk: did not receive HSTS header
sobabox.ru: could not connect to host
sobinski.pl: did not receive HSTS header
soboleva-pr.com.ua: could not connect to host
+sobreporcentagem.com: did not receive HSTS header
+socal-babes.com: could not connect to host
soccergif.com: could not connect to host
soci.ml: could not connect to host
social-journey.com: could not connect to host
@@ -12755,7 +13799,6 @@ socialfacecook.com: could not connect to host
socialgrowing.cl: did not receive HSTS header
socialhead.io: could not connect to host
socialhub.com: did not receive HSTS header
-socialmirror.app: did not receive HSTS header
socialprize.com: could not connect to host
socialspirit.com.br: did not receive HSTS header
socialworkout.com: could not connect to host
@@ -12769,10 +13812,11 @@ sodacore.com: could not connect to host
soe-server.com: could not connect to host
softballsavings.com: did not receive HSTS header
softclean.pt: did not receive HSTS header
+softplaynation.co.uk: could not connect to host
sogeek.me: could not connect to host
sogravatas.net.br: could not connect to host
-soia.ca: could not connect to host
sojingle.net: could not connect to host
+soju.fi: did not receive HSTS header
sokolka.tv: did not receive HSTS header
sol-3.de: did not receive HSTS header
solarcom.com.br: could not connect to host
@@ -12781,17 +13825,16 @@ soldbygold.net: did not receive HSTS header
solentes.com.br: could not connect to host
solidfuelappliancespares.co.uk: did not receive HSTS header
solidimage.com.br: could not connect to host
-solidus.systems: could not connect to host
+solidtuesday.com: could not connect to host
+solidus.systems: did not receive HSTS header
solidwebnetworks.co.uk: did not receive HSTS header
solinter.com.br: did not receive HSTS header
solisrey.es: could not connect to host
soljem.com: did not receive HSTS header
soll-i.ch: did not receive HSTS header
-solos.im: did not receive HSTS header
solosmusic.xyz: could not connect to host
solsystems.ru: did not receive HSTS header
solutive.fi: did not receive HSTS header
-solve-it.se: did not receive HSTS header
solymar.co: could not connect to host
some.rip: max-age too low: 6307200
somebodycares.org: did not receive HSTS header
@@ -12799,7 +13842,8 @@ someshit.xyz: could not connect to host
something-else.cf: could not connect to host
somethingnew.xyz: could not connect to host
somethingsimilar.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-sonafe.info: did not receive HSTS header
+somewherein.jp: did not receive HSTS header
+sonafe.info: could not connect to host
sonerezh.bzh: did not receive HSTS header
sonialive.com: did not receive HSTS header
sonic.network: did not receive HSTS header
@@ -12814,9 +13858,9 @@ soply.com: could not connect to host
soporte.cc: could not connect to host
sorenam.com: could not connect to host
sorensen-online.com: could not connect to host
-sorincocorada.ro: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+sorex.photo: max-age too low: 0
+sorincocorada.ro: could not connect to host
sorinmuntean.ro: did not receive HSTS header
-sorn.service.gov.uk: did not receive HSTS header
sortaweird.net: could not connect to host
sortingwizard.com: could not connect to host
soruly.moe: did not receive HSTS header
@@ -12825,7 +13869,7 @@ sosaka.ml: could not connect to host
sosecu.red: could not connect to host
sosiolog.com: could not connect to host
sosko.in.rs: could not connect to host
-sotiran.com: could not connect to host
+sotiran.com: did not receive HSTS header
sotor.de: did not receive HSTS header
soucorneteiro.com.br: could not connect to host
sougi-review.top: did not receive HSTS header
@@ -12833,12 +13877,15 @@ soulcraft.bz: could not connect to host
soulema.com: could not connect to host
soulfulglamour.uk: could not connect to host
soulsteer.com: could not connect to host
+soundbytemedia.com: did not receive HSTS header
soundforsound.co.uk: did not receive HSTS header
+soundgasm.net: could not connect to host
soundsecurity.io: could not connect to host
souqtajmeel.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
sourcecode.love: could not connect to host
sourcelair.com: did not receive HSTS header
sourcitec.com: did not receive HSTS header
+sous-surveillance.net: could not connect to host
southcoastkitesurf.co.uk: did not receive HSTS header
southcoastswords.com: did not receive HSTS header
southernjamusa.com: did not receive HSTS header
@@ -12863,7 +13910,6 @@ spacelabs.io: could not connect to host
spacemo.com: did not receive HSTS header
spacountryexplorer.org.au: did not receive HSTS header
spaggel.nl: did not receive HSTS header
-spaldingwall.com: could not connect to host
spam.lol: could not connect to host
spamloco.net: did not receive HSTS header
spangehlassociates.com: did not receive HSTS header
@@ -12879,34 +13925,34 @@ sparta-trade.com: could not connect to host
spartantheatre.org: could not connect to host
spauted.com: could not connect to host
spawn.cz: could not connect to host
-spcx.eu: could not connect to host
+spcx.eu: did not receive HSTS header
spdysync.com: could not connect to host
specialedesigns.com: could not connect to host
specialistnow.com.au: did not receive HSTS header
+spectreattack.com: did not receive HSTS header
speculor.net: could not connect to host
+spedition-transport-umzug.de: could not connect to host
spedplus.com.br: did not receive HSTS header
speed-mailer.com: could not connect to host
speedcounter.net: could not connect to host
speeds.vip: could not connect to host
speedway.com.pl: did not receive HSTS header
+speedychat.it: could not connect to host
speedyprep.com: did not receive HSTS header
speidel.com.tr: did not receive HSTS header
spencerbaer.com: could not connect to host
spendwise.com.au: could not connect to host
sperohub.io: could not connect to host
sperohub.lt: did not receive HSTS header
-spherenix.org: could not connect to host
sphinx.network: could not connect to host
spicydog.tk: could not connect to host
spicywombat.com: could not connect to host
-spidermail.tk: could not connect to host
-spidernet.tk: could not connect to host
-spiegels.nl: could not connect to host
+spiegels.nl: did not receive HSTS header
spielcasinos.com: did not receive HSTS header
-spiet.nl: could not connect to host
spikeykc.me: did not receive HSTS header
spilsbury.io: could not connect to host
spineandscoliosis.com: did not receive HSTS header
+spinner.dnshome.de: could not connect to host
spirit-dev.net: max-age too low: 0
spirit-hunters-germany.de: did not receive HSTS header
spiritbionic.ro: could not connect to host
@@ -12916,17 +13962,20 @@ spitefultowel.com: did not receive HSTS header
spitfireuav.com: could not connect to host
spititout.it: could not connect to host
split.is: could not connect to host
-splunk.zone: could not connect to host
spokonline.com: could not connect to host
spon.cz: did not receive HSTS header
+sponsorowani.pl: did not receive HSTS header
sponsortobias.com: could not connect to host
spontex.org: did not receive HSTS header
+spookyinternet.com: could not connect to host
sporara.com: did not receive HSTS header
-sportakrobatik.at: could not connect to host
+sport247.bet: max-age too low: 2592000
sportchirp-internal.azurewebsites.net: did not receive HSTS header
+sportflash.info: did not receive HSTS header
sporthit.ru: could not connect to host
sportifik.com: did not receive HSTS header
sportingoods.com.br: could not connect to host
+sportressofblogitude.com: did not receive HSTS header
sportscollection.com.br: could not connect to host
sportsmanadvisor.com: could not connect to host
sportwette.eu: did not receive HSTS header
@@ -12943,13 +13992,13 @@ sprk.fitness: did not receive HSTS header
sproing.ca: max-age too low: 0
spron.in: could not connect to host
sproutconnections.com: could not connect to host
-sprueche-zum-valentinstag.de: did not receive HSTS header
-sprueche-zur-geburt.info: did not receive HSTS header
+sprueche-zum-valentinstag.de: could not connect to host
+sprueche-zur-geburt.info: could not connect to host
sprueche-zur-hochzeit.de: did not receive HSTS header
sprueche-zur-konfirmation.de: did not receive HSTS header
sprutech.de: could not connect to host
+spykedigital.com: could not connect to host
sqetsa.com: did not receive HSTS header
-sqroot.eu: could not connect to host
sqshq.de: did not receive HSTS header
squaddraft.com: did not receive HSTS header
square.gs: could not connect to host
@@ -12977,9 +14026,9 @@ ssh.nu: could not connect to host
sshool.at: could not connect to host
ssl.panoramio.com: could not connect to host
ssl.rip: could not connect to host
+sslpoint.com: did not receive HSTS header
sslzilla.de: did not receive HSTS header
ssn1.ru: did not receive HSTS header
-sso.to: could not connect to host
sspanda.com: could not connect to host
ssrvpn.tech: could not connect to host
sss3s.com: could not connect to host
@@ -12992,23 +14041,29 @@ stackhub.cc: could not connect to host
stadionmanager.com: could not connect to host
stadjerspasonline.nl: could not connect to host
stadtbauwerk.at: did not receive HSTS header
-stadtbuecherei-bad-wurzach.de: did not receive HSTS header
+stadtbuecherei-bad-wurzach.de: max-age too low: 0
stadtgartenla.com: could not connect to host
staffjoy.com: did not receive HSTS header
staffjoystaging.com: could not connect to host
stagingjobshq.com: did not receive HSTS header
stahl.xyz: could not connect to host
+stalder.work: could not connect to host
stalkerhispano.com: max-age too low: 0
stalkerteam.pl: did not receive HSTS header
stalkthe.net: could not connect to host
+stall-zur-linde.de: did not receive HSTS header
stalschermer.nl: could not connect to host
+stamboommuller.nl: did not receive HSTS header
+stamboomvanderwal.nl: did not receive HSTS header
stanandjerre.org: could not connect to host
standardssuck.org: did not receive HSTS header
standingmist.com: did not receive HSTS header
-standoutbooks.com: max-age too low: 0
+standoutbooks.com: did not receive HSTS header
standuppaddlesports.com.au: did not receive HSTS header
stannahtrapliften.nl: did not receive HSTS header
+star-killer.net: could not connect to host
star-stuff.de: did not receive HSTS header
+star.do: did not receive HSTS header
starandshield.com: did not receive HSTS header
starapple.nl: did not receive HSTS header
starcafe.me: could not connect to host
@@ -13016,12 +14071,10 @@ stardeeps.net: max-age too low: 0
starease.net: could not connect to host
starfeeling.net: could not connect to host
stargatepartners.com: did not receive HSTS header
-starina.ru: could not connect to host
starklane.com: max-age too low: 300
starmusic.ga: could not connect to host
starplatinum.jp: could not connect to host
starquake.nl: could not connect to host
-starsam80.net: could not connect to host
starsbattle.net: could not connect to host
starteesforsale.co.za: did not receive HSTS header
startup.melbourne: could not connect to host
@@ -13044,23 +14097,25 @@ staticisnoise.com: could not connect to host
stationaryjourney.com: did not receive HSTS header
stationcharlie.com: could not connect to host
stationnementdenuit.ca: did not receive HSTS header
-status-sprueche.de: did not receive HSTS header
+status-sprueche.de: could not connect to host
+status.coffee: could not connect to host
statusbot.io: could not connect to host
statuschecks.net: could not connect to host
stavebnice.net: did not receive HSTS header
staxflax.tk: could not connect to host
stayokhotelscdc-mailing.com: could not connect to host
-stb-schefczyk.de: could not connect to host
stcable.net: did not receive HSTS header
stcomex.com: did not receive HSTS header
-stdrc.cc: did not receive HSTS header
+stdev.org: could not connect to host
steamhours.com: could not connect to host
steampunkrobot.com: did not receive HSTS header
+stedbg.net: could not connect to host
steelbea.ms: could not connect to host
steelrhino.co: could not connect to host
steem.io: did not receive HSTS header
steenackers.be: did not receive HSTS header
stefanweiser.de: did not receive HSTS header
+stefany.eu: could not connect to host
steffi-in-australien.com: could not connect to host
stem.is: did not receive HSTS header
stepbystep3d.com: did not receive HSTS header
@@ -13080,25 +14135,29 @@ stevensheffey.me: could not connect to host
stevensononthe.net: did not receive HSTS header
steventruesdell.com: could not connect to host
stewartremodelingadvantage.com: could not connect to host
+stewonet.nl: did not receive HSTS header
+stge.uk: could not connect to host
sticklerjs.org: could not connect to host
stickmy.cn: could not connect to host
stickswag.cf: could not connect to host
stig.io: did not receive HSTS header
stiger.me: could not connect to host
stigroom.com: could not connect to host
+stigviewer.com: did not receive HSTS header
stijnbelmans.be: max-age too low: 604800
stilettomoda.com.br: could not connect to host
stillblackhat.id: could not connect to host
stillyarts.com: did not receive HSTS header
stinkytrashhound.com: could not connect to host
+stirling.co: could not connect to host
stirlingpoon.net: could not connect to host
stirlingpoon.xyz: could not connect to host
-stitthappens.com: could not connect to host
+stitthappens.com: did not receive HSTS header
stjohnmiami.org: did not receive HSTS header
stjohnsc.com: could not connect to host
stkbn.com: could not connect to host
stkeverneparishcouncil.org.uk: did not receive HSTS header
-stl.news: did not receive HSTS header
+stl.news: max-age too low: 0
stlucasmuseum.org: did not receive HSTS header
stmbgr.com: could not connect to host
stn.me.uk: did not receive HSTS header
@@ -13108,13 +14167,14 @@ stoffe-monster.de: did not receive HSTS header
stoffelen.nl: did not receive HSTS header
stoianlawfirm.com: could not connect to host
stoick.me: could not connect to host
+stoinov.com: could not connect to host
stole-my.bike: could not connect to host
stole-my.tv: could not connect to host
stomadental.com: did not receive HSTS header
stonecutterscommunity.com: could not connect to host
+stonemain.eu: could not connect to host
stonemanbrasil.com.br: could not connect to host
stopakwardhandshakes.org: could not connect to host
-stopbreakupnow.org: did not receive HSTS header
stopwoodfin.org: could not connect to host
storbritannien.guide: could not connect to host
store-host.com: did not receive HSTS header
@@ -13132,7 +14192,6 @@ str0.at: did not receive HSTS header
strangeplace.net: did not receive HSTS header
strangescout.me: did not receive HSTS header
strasweb.fr: did not receive HSTS header
-strathewerd.de: did not receive HSTS header
strbt.de: could not connect to host
strchr.com: did not receive HSTS header
stream-ing.xyz: could not connect to host
@@ -13142,19 +14201,20 @@ streamer.tips: did not receive HSTS header
streamingeverywhere.com: could not connect to host
streamingmagazin.de: could not connect to host
streampanel.net: did not receive HSTS header
+streams.dyndns.org: could not connect to host
streamthemeeting.com: did not receive HSTS header
streamzilla.com: did not receive HSTS header
-streetmarket.ru: could not connect to host
strehl.tk: could not connect to host
-streklhof.at: did not receive HSTS header
strelitzia02.com: could not connect to host
stressfreehousehold.com: could not connect to host
strictlysudo.com: could not connect to host
strife.tk: could not connect to host
strila.me: could not connect to host
-striptizer.tk: did not receive HSTS header
+striptizer.tk: could not connect to host
+strobeto.de: did not receive HSTS header
stroeercrm.de: could not connect to host
strongest-privacy.com: could not connect to host
+struxureon.com: did not receive HSTS header
stuartbaxter.co: could not connect to host
stubbings.eu: could not connect to host
student-scientist.org: did not receive HSTS header
@@ -13166,15 +14226,16 @@ studenttravel.cz: did not receive HSTS header
studer.su: could not connect to host
studinf.xyz: could not connect to host
studio-panic.com: did not receive HSTS header
-studiocn.cn: did not receive HSTS header
+studiocn.cn: could not connect to host
studiodoprazer.com.br: could not connect to host
studiozelden.com: did not receive HSTS header
studport.rv.ua: max-age too low: 604800
studyabroadstation.com: could not connect to host
-studybay.com: did not receive HSTS header
+studybay.com: could not connect to host
studydrive.net: did not receive HSTS header
studyhub.cf: did not receive HSTS header
studying-neet.com: could not connect to host
+stuff-fibre.co.nz: did not receive HSTS header
stugb.de: did not receive HSTS header
stumeta2018.de: could not connect to host
stupidstatetricks.com: could not connect to host
@@ -13184,13 +14245,16 @@ sturge.co.uk: did not receive HSTS header
stuudium.life: could not connect to host
stylenda.com: could not connect to host
stylle.me: could not connect to host
-stytt.com: could not connect to host
+styloeart.com: could not connect to host
+stytt.com: did not receive HSTS header
+suaraangin.com: could not connect to host
suareforma.com: could not connect to host
+suave.io: did not receive HSTS header
subbing.work: could not connect to host
subdimension.org: could not connect to host
subeesu.com: could not connect to host
subhacker.net: could not connect to host
-subrain.com: could not connect to host
+subrain.com: did not receive HSTS header
subrosa.io: could not connect to host
subsys.no: did not receive HSTS header
subtitle.rip: could not connect to host
@@ -13199,14 +14263,14 @@ subzerolosangeles.com: did not receive HSTS header
subzerotech.co.uk: could not connect to host
successwithflora.com: could not connect to host
succubus.network: could not connect to host
+succubus.xxx: could not connect to host
suche.org: could not connect to host
suchprogrammer.net: did not receive HSTS header
sudo.im: could not connect to host
sudo.li: did not receive HSTS header
-sudokian.io: could not connect to host
sudosu.fr: could not connect to host
suempresa.cloud: could not connect to host
-suffts.de: did not receive HSTS header
+suffts.de: could not connect to host
sugarcitycon.com: could not connect to host
sugarsweetorsour.com: did not receive HSTS header
sugartownfarm.com: could not connect to host
@@ -13221,6 +14285,7 @@ sun.re: could not connect to host
suncountrymarine.com: did not receive HSTS header
sundaycooks.com: max-age too low: 2592000
suneilpatel.com: could not connect to host
+sunfeathers.net: could not connect to host
sunfireshop.com.br: could not connect to host
sunlandsg.vn: did not receive HSTS header
sunnyfruit.ru: could not connect to host
@@ -13228,9 +14293,11 @@ sunriseafricarelief.com: did not receive HSTS header
sunshinepress.org: could not connect to host
sunxchina.com: could not connect to host
sunyanzi.tk: could not connect to host
+sunyataherb.com: could not connect to host
suos.io: could not connect to host
supcro.com: could not connect to host
-super-demarche.com: could not connect to host
+super-demarche.com: did not receive HSTS header
+super-erotica.ru: could not connect to host
super-garciniaslim.com: could not connect to host
super-o-blog.com: could not connect to host
super-radiant-skin.com: could not connect to host
@@ -13238,6 +14305,7 @@ super-ripped-power.com: could not connect to host
super-slim-coffee.com: could not connect to host
superbabysitting.ch: could not connect to host
superbike.tw: could not connect to host
+superbshare.com: could not connect to host
supercastlessouthsydney.com.au: could not connect to host
supercreepsvideo.com: did not receive HSTS header
superiorfloridavacation.com: could not connect to host
@@ -13245,28 +14313,33 @@ superklima.ro: did not receive HSTS header
superlandnetwork.de: did not receive HSTS header
superlentes.com.br: could not connect to host
supernovabrasil.com.br: did not receive HSTS header
+supernt.lt: could not connect to host
superpase.com: could not connect to host
+supersahnetorten.de: could not connect to host
supersalescontest.nl: did not receive HSTS header
superschnappchen.de: could not connect to host
+supersec.es: could not connect to host
supersecurefancydomain.com: could not connect to host
supertramp-dafonseca.com: did not receive HSTS header
superuser.fi: could not connect to host
superwally.org: could not connect to host
supes.io: did not receive HSTS header
+supperclub.es: could not connect to host
support4server.de: could not connect to host
supportfan.gov: could not connect to host
suprlink.net: could not connect to host
supweb.ovh: did not receive HSTS header
-surasak.org: could not connect to host
surasak.xyz: could not connect to host
suraya.online: could not connect to host
surfeasy.com: did not receive HSTS header
surfone-leucate.com: did not receive HSTS header
+surgiclinic.gr: did not receive HSTS header
surkatty.org: did not receive HSTS header
-survivalistplanet.com: did not receive HSTS header
+survivebox.fr: did not receive HSTS header
susastudentenjobs.de: could not connect to host
susconam.org: could not connect to host
suseasky.com: did not receive HSTS header
+sushifrick.de: could not connect to host
sushiwereld.be: did not receive HSTS header
suspiciousdarknet.xyz: could not connect to host
sussexwebdesigns.com: could not connect to host
@@ -13280,9 +14353,11 @@ suzukikenichi.com: did not receive HSTS header
svadobkajuvi.sk: did not receive HSTS header
svarovani.tk: could not connect to host
svatba-frantovi.cz: could not connect to host
+sve-hosting.nl: could not connect to host
svenluijten.com: did not receive HSTS header
svenskacasino.com: did not receive HSTS header
svenskaservern.se: could not connect to host
+svetdrzaku.cz: did not receive HSTS header
svetjakonadlani.cz: did not receive HSTS header
sviz.pro: could not connect to host
svj-stochovska.cz: could not connect to host
@@ -13294,17 +14369,17 @@ swallsoft.co.uk: could not connect to host
swallsoft.com: could not connect to host
swanseapartyhire.co.uk: could not connect to host
swarmation.com: did not receive HSTS header
+sway.com: did not receive HSTS header
swdatlantico.pt: could not connect to host
sweep.cards: did not receive HSTS header
sweetlegs.jp: could not connect to host
sweetstreats.ca: could not connect to host
sweetvanilla.jp: could not connect to host
-sweharris.org: could not connect to host
-swerve-media-testbed-03.co.uk: could not connect to host
swfloshatraining.com: could not connect to host
swift-devedge.de: could not connect to host
swiftconf.com: did not receive HSTS header
swiftcrypto.com: could not connect to host
+swiftpk.net: could not connect to host
swiggy.com: did not receive HSTS header
swimming.ca: did not receive HSTS header
swissentreprises.ch: could not connect to host
@@ -13316,24 +14391,28 @@ swite.com: did not receive HSTS header
swmd5c.org: could not connect to host
swordfighting.net: could not connect to host
swu.party: could not connect to host
-swuosa.org: could not connect to host
sx3.no: could not connect to host
sxbk.pw: could not connect to host
+sy-anduril.de: did not receive HSTS header
syam.cc: could not connect to host
+sychov.pro: could not connect to host
sydgrabber.tk: could not connect to host
-syha.org.uk: could not connect to host
sykl.us: could not connect to host
+sylvaincombe.net: could not connect to host
sylvangarden.org: could not connect to host
sylvanorder.com: could not connect to host
+symetria.io: max-age too low: 2592000
synackr.com: did not receive HSTS header
synapticconsulting.co.uk: could not connect to host
syncaddict.net: could not connect to host
syncappate.com: could not connect to host
syncclinicalstudy.com: could not connect to host
syncer.jp: did not receive HSTS header
+synchrocube.com: could not connect to host
+synchtu.be: could not connect to host
syncmylife.net: could not connect to host
syncserve.net: did not receive HSTS header
-syneic.com: did not receive HSTS header
+syneic.com: could not connect to host
synergisticsoccer.com: could not connect to host
syno.gq: could not connect to host
syntaxoff.com: could not connect to host
@@ -13350,6 +14429,7 @@ syspen.space: could not connect to host
sysrq.tech: could not connect to host
syss.de: did not receive HSTS header
systea.net: could not connect to host
+system-online.cz: did not receive HSTS header
systemd.me: could not connect to host
syy.hk: did not receive HSTS header
szaszm.tk: could not connect to host
@@ -13357,7 +14437,7 @@ szerbnyelvkonyv.hu: could not connect to host
szlovaknyelv.hu: could not connect to host
szlovennyelv.hu: could not connect to host
szongott.net: did not receive HSTS header
-szymczak.at: could not connect to host
+szymczak.at: did not receive HSTS header
t-complex.space: could not connect to host
t-ken.xyz: could not connect to host
t-point.eu: did not receive HSTS header
@@ -13376,6 +14456,7 @@ tabla-periodica.com: could not connect to host
tachyonapp.com: could not connect to host
tacoma-games.com: did not receive HSTS header
tacotown.tk: could not connect to host
+tadata.me: could not connect to host
tadcastercircuit.org.uk: did not receive HSTS header
tadigitalstore.com: could not connect to host
tafoma.com: did not receive HSTS header
@@ -13385,6 +14466,7 @@ tahakomat.cz: could not connect to host
tahf.net: could not connect to host
taichi-jade.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
taidu.news: could not connect to host
+tailandfur.com: did not receive HSTS header
tailify.com: did not receive HSTS header
tailpuff.net: did not receive HSTS header
tails.com.ar: could not connect to host
@@ -13394,6 +14476,7 @@ takebackyourstate.net: could not connect to host
takebackyourstate.org: could not connect to host
takebonus.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
takedownthissite.com: could not connect to host
+takemoto-ped.com: could not connect to host
takinet.kr: could not connect to host
takusan.ru: could not connect to host
talenthero.io: did not receive HSTS header
@@ -13405,16 +14488,16 @@ talk.xyz: could not connect to host
talkitup.mx: could not connect to host
talkitup.online: could not connect to host
talklifestyle.nl: could not connect to host
+talktwincities.com: could not connect to host
tallr.se: could not connect to host
tallshoe.com: could not connect to host
+talsi.eu: could not connect to host
tam7t.com: did not receive HSTS header
tamaraboutique.com: could not connect to host
-tamasszabo.net: did not receive HSTS header
tamersunion.org: did not receive HSTS header
tamex.xyz: could not connect to host
tandarts-haarlem.nl: did not receive HSTS header
tandblekningidag.com: could not connect to host
-tandk.com.vn: did not receive HSTS header
tangerine.ga: could not connect to host
tangibilizing.com: could not connect to host
tangiblesecurity.com: did not receive HSTS header
@@ -13424,7 +14507,7 @@ tangzhao.net: could not connect to host
taniesianie.pl: did not receive HSTS header
tankfreunde.de: did not receive HSTS header
tante-bugil.net: could not connect to host
-tantetilli.de: could not connect to host
+tantetilli.de: did not receive HSTS header
tantotiempo.de: did not receive HSTS header
tanze-jetzt.de: could not connect to host
taotuba.net: did not receive HSTS header
@@ -13444,18 +14527,18 @@ taskstats.com: could not connect to host
tasmansecurity.com: could not connect to host
tassup.com: could not connect to host
tasta.ro: did not receive HSTS header
-tasticfilm.com: could not connect to host
+tasticfilm.com: did not receive HSTS header
tastyyy.co: could not connect to host
tasyacherry-anal.com: could not connect to host
tatilbus.com: could not connect to host
tatilmix.com: could not connect to host
-tatort-fanpage.de: did not receive HSTS header
+tatort-fanpage.de: could not connect to host
tatt.io: could not connect to host
tauchkater.de: could not connect to host
tavoittaja.fi: did not receive HSTS header
tavopica.lt: did not receive HSTS header
-taxaudit.com: did not receive HSTS header
taxbench.com: could not connect to host
+taxiindenbosch.nl: did not receive HSTS header
taxmadras.com: could not connect to host
taxsnaps.co.nz: did not receive HSTS header
taxspeaker.com: did not receive HSTS header
@@ -13463,14 +14546,16 @@ tazemama.biz: could not connect to host
tazj.in: did not receive HSTS header
tazz.in: could not connect to host
tbarter.com: did not receive HSTS header
+tbpixel.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
tbrss.com: did not receive HSTS header
+tbtech.cz: did not receive HSTS header
tbys.us: could not connect to host
tc-bonito.de: did not receive HSTS header
tcao.info: could not connect to host
tcby45.xyz: could not connect to host
-tchaka.top: could not connect to host
tcl.ath.cx: did not receive HSTS header
tcp.expert: did not receive HSTS header
+tcspartner.net: did not receive HSTS header
tcwebvn.com: could not connect to host
tdelmas.eu: could not connect to host
tdelmas.ovh: could not connect to host
@@ -13487,7 +14572,6 @@ tdsbhack.tk: could not connect to host
teacherph.net: could not connect to host
teachforcanada.ca: did not receive HSTS header
tealdrones.com: did not receive HSTS header
-team-pancake.eu: could not connect to host
team-teasers.com: could not connect to host
team2fou.cf: did not receive HSTS header
teamassists.com: did not receive HSTS header
@@ -13502,7 +14586,8 @@ teamup.rocks: did not receive HSTS header
teamx-gaming.de: could not connect to host
teamzeus.cz: could not connect to host
teaparty.id: could not connect to host
-tearoy.faith: could not connect to host
+tearoy.faith: did not receive HSTS header
+teasenetwork.com: could not connect to host
tebieer.com: could not connect to host
tech-blog.fr: did not receive HSTS header
tech-finder.fr: could not connect to host
@@ -13511,6 +14596,10 @@ techandtux.de: could not connect to host
techask.it: could not connect to host
techassist.io: did not receive HSTS header
techcavern.ml: did not receive HSTS header
+techday.co.nz: did not receive HSTS header
+techday.com: did not receive HSTS header
+techday.com.au: did not receive HSTS header
+techday.eu: did not receive HSTS header
techelements.co: did not receive HSTS header
techfactslive.com: did not receive HSTS header
techhipster.net: could not connect to host
@@ -13522,6 +14611,8 @@ techmasters.andover.edu: could not connect to host
techmatehq.com: could not connect to host
technicalforensic.com: could not connect to host
technicalpenguins.com: did not receive HSTS header
+techniclab.org: could not connect to host
+techniclab.ru: could not connect to host
technikrom.org: did not receive HSTS header
technogroup.cz: did not receive HSTS header
technosavvyport.com: did not receive HSTS header
@@ -13540,11 +14631,12 @@ tecnidev.com: could not connect to host
tecnimotos.com: did not receive HSTS header
tecnogaming.com: did not receive HSTS header
tecture.de: did not receive HSTS header
-tedovo.com: did not receive HSTS header
+tedovo.com: could not connect to host
tedxkmitl.com: could not connect to host
tee-idf.net: could not connect to host
teedb.de: could not connect to host
teehaus-shila.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+teenerotic.net: could not connect to host
teeplelaw.com: did not receive HSTS header
tefl.io: did not receive HSTS header
tegelsensanitaironline.nl: did not receive HSTS header
@@ -13555,7 +14647,9 @@ teknogeek.id: could not connect to host
teknologi.or.id: max-age too low: 36000
teknotes.co.uk: could not connect to host
tekshrek.com: did not receive HSTS header
+teksuperior.com: could not connect to host
tektoria.de: could not connect to host
+tekuteku.jp: could not connect to host
tel-dithmarschen.de: did not receive HSTS header
teleallarme.ch: could not connect to host
telecharger-itunes.com: could not connect to host
@@ -13572,12 +14666,15 @@ teletechnology.in: did not receive HSTS header
teletra.ru: could not connect to host
telfordwhitehouse.co.uk: did not receive HSTS header
tellingua.com: did not receive HSTS header
+teltonica.com: did not receive HSTS header
+telugu4u.net: could not connect to host
temasa.net: did not receive HSTS header
temehu.com: did not receive HSTS header
tempcraft.net: could not connect to host
tempflix.com: could not connect to host
tempo.co: did not receive HSTS header
tempodecolheita.com.br: could not connect to host
+tempus-aquilae.de: could not connect to host
ten-cafe.com: could not connect to host
tenberg.com: could not connect to host
tendertool.nl: could not connect to host
@@ -13595,9 +14692,9 @@ teodio.cl: did not receive HSTS header
teoleonie.com: did not receive HSTS header
teos.online: could not connect to host
teoskanta.fi: could not connect to host
-tepid.org: could not connect to host
teranga.ch: did not receive HSTS header
-terminalvelocity.co.nz: could not connect to host
+tercerapuertoaysen.cl: could not connect to host
+termino.eu: did not receive HSTS header
terra-x.net: could not connect to host
terra.by: did not receive HSTS header
terrax.berlin: could not connect to host
@@ -13605,6 +14702,7 @@ terrax.info: did not receive HSTS header
terrax.net: could not connect to host
terrazoo.de: did not receive HSTS header
teru.com.br: could not connect to host
+test-dns.eu: could not connect to host
test02.dk: did not receive HSTS header
testadron.com: could not connect to host
testandroid.xyz: could not connect to host
@@ -13628,16 +14726,15 @@ teuniz.nl: did not receive HSTS header
texte-zur-taufe.de: did not receive HSTS header
textoplano.xyz: could not connect to host
textracer.dk: could not connect to host
-tf2stadium.com: could not connect to host
+tf2stadium.com: did not receive HSTS header
tfcoms-sp-tracker-client.azurewebsites.net: could not connect to host
tffans.com: could not connect to host
tfl.lu: did not receive HSTS header
tgbyte.com: did not receive HSTS header
tgod.co: could not connect to host
tgr.re: could not connect to host
-tgtv.tn: did not receive HSTS header
th-bl.de: did not receive HSTS header
-th3nd.com: did not receive HSTS header
+th3nd.com: could not connect to host
thackert.myfirewall.org: could not connect to host
thagki9.com: did not receive HSTS header
thai.land: did not receive HSTS header
@@ -13647,7 +14744,7 @@ thaihostcool.com: did not receive HSTS header
thailandpropertylisting.com: did not receive HSTS header
thailandpropertylistings.com: did not receive HSTS header
thalmann.fr: did not receive HSTS header
-thalskarth.com: could not connect to host
+thalskarth.com: did not receive HSTS header
thatgudstuff.com: could not connect to host
thatpodcast.io: did not receive HSTS header
thatvizsla.life: did not receive HSTS header
@@ -13666,17 +14763,21 @@ theamp.com: did not receive HSTS header
theater.cf: could not connect to host
theavenuegallery.com: did not receive HSTS header
thebakingclass.com: max-age too low: 60
+thebarneystyle.com: did not receive HSTS header
thebasementguys.com: could not connect to host
thebeautifulmusic.net: did not receive HSTS header
thebeginningisnye.com: could not connect to host
-theberkshirescompany.com: did not receive HSTS header
+theberkshirescompany.com: could not connect to host
thebigfail.net: could not connect to host
thebreakhotel.com: did not receive HSTS header
thebrotherswarde.com: could not connect to host
thebte.com: could not connect to host
thebuffalotavern.com: could not connect to host
+thecandidforum.com: could not connect to host
thecapitalbank.com: did not receive HSTS header
thecharlestonwaldorf.com: did not receive HSTS header
+theciderlink.com.au: did not receive HSTS header
+thecitizens.com: did not receive HSTS header
theclementinebutchers.com: could not connect to host
theclimbingunit.com: did not receive HSTS header
thecloudmigrator.com: did not receive HSTS header
@@ -13685,7 +14786,7 @@ theclubjersey.com: did not receive HSTS header
thecodeninja.net: did not receive HSTS header
thecoffeehouse.xyz: could not connect to host
thecoffeepod.co.uk: did not receive HSTS header
-thecskr.in: could not connect to host
+thecskr.in: did not receive HSTS header
thecsw.com: did not receive HSTS header
thedailyupvote.com: could not connect to host
thedarkartsandcrafts.com: could not connect to host
@@ -13695,8 +14796,9 @@ thedrinks.co: did not receive HSTS header
thedrop.pw: did not receive HSTS header
thedrunkencabbage.com: could not connect to host
thedystance.com: could not connect to host
+theel0ja.info: did not receive HSTS header
theelitebuzz.com: could not connect to host
-theendofzion.com: did not receive HSTS header
+theendofzion.com: could not connect to host
theepankar.com: could not connect to host
theescapistswiki.com: could not connect to host
theevergreen.me: could not connect to host
@@ -13704,18 +14806,21 @@ theexpatriate.de: could not connect to host
theeyeopener.com: did not receive HSTS header
thefarbeyond.com: could not connect to host
thefootballanalyst.com: did not receive HSTS header
-thefox.co: could not connect to host
+thefox.co: did not receive HSTS header
+thefox.com.fr: could not connect to host
thefreebirds.in: could not connect to host
thefrk.xyz: could not connect to host
thefrozenfire.com: did not receive HSTS header
thefutureharrills.com: could not connect to host
+thegcccoin.com: max-age too low: 2592000
thegemriverside.com.vn: could not connect to host
thego2swatking.com: could not connect to host
thegoldregister.co.uk: could not connect to host
thegraciousgourmet.com: did not receive HSTS header
+thegreens.us: could not connect to host
thegreenvpn.com: could not connect to host
thehiddenbay.cc: could not connect to host
-thehiddenbay.eu: could not connect to host
+thehiddenbay.eu: max-age too low: 0
thehiddenbay.me: could not connect to host
thehiddenbay.net: could not connect to host
thehighersideclothing.com: did not receive HSTS header
@@ -13725,6 +14830,7 @@ thehoopsarchive.com: could not connect to host
theimagesalon.com: max-age too low: 43200
theinvisibletrailer.com: could not connect to host
theitsage.com: did not receive HSTS header
+thej0lt.com: could not connect to host
thejobauction.com: did not receive HSTS header
thejserver.de: could not connect to host
thekrewserver.com: did not receive HSTS header
@@ -13735,14 +14841,16 @@ thelostyankee.com: could not connect to host
themadmechanic.net: could not connect to host
themanufacturingmarketingagency.com: could not connect to host
themarble.co: could not connect to host
-themaster.site: did not receive HSTS header
themathbehindthe.science: could not connect to host
themathematician.uk: could not connect to host
+themeaudit.com: could not connect to host
themerchandiser.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
themesurgeons.net: could not connect to host
themicrocapital.com: could not connect to host
+themilanlife.com: could not connect to host
themoderate.xyz: could not connect to host
thenextstep.events: could not connect to host
+thenichecast.com: could not connect to host
thenorthschool.org.uk: did not receive HSTS header
thenrdhrd.nl: could not connect to host
theodorejones.info: could not connect to host
@@ -13754,7 +14862,6 @@ theoverfly.co: could not connect to host
thepaffy.de: could not connect to host
thepartywarehouse.co.uk: did not receive HSTS header
thepcweb.tk: could not connect to host
-thepeninsulaires.com: could not connect to host
thepiratebay.al: could not connect to host
thepiratebay.poker: could not connect to host
thepiratebay.tech: could not connect to host
@@ -13766,25 +14873,28 @@ therise.ca: max-age too low: 300
thermique.ch: could not connect to host
theroamingnotary.com: did not receive HSTS header
therockawaysny.com: did not receive HSTS header
+thesassynut.com: did not receive HSTS header
thesearchnerds.co.uk: did not receive HSTS header
thesecurityteam.net: could not connect to host
thesehighsandlows.com: could not connect to host
theserver201.tk: could not connect to host
theshadestore.com: max-age too low: 10368000
-theshopally.com: did not receive HSTS header
thesled.net: could not connect to host
thesplit.is: could not connect to host
thestack.xyz: could not connect to host
thestagchorleywood.co.uk: did not receive HSTS header
thestonegroup.de: could not connect to host
+thestoritplace.com: max-age too low: 0
thetapirsmouth.com: could not connect to host
thethirdroad.com: did not receive HSTS header
+thetradinghall.com: could not connect to host
thetruthhurvitz.com: could not connect to host
theurbanyoga.com: did not receive HSTS header
theuucc.org: did not receive HSTS header
thevintagenews.com: did not receive HSTS header
thevoid.one: could not connect to host
thewallset.com: could not connect to host
+thewaxhouse.shop: did not receive HSTS header
thewebfellas.com: did not receive HSTS header
thewego.com: could not connect to host
theweilai.com: could not connect to host
@@ -13793,18 +14903,19 @@ theworkingeye.nl: [Exception... "Component returned failure code: 0x80004005 (NS
thewp.pro: could not connect to host
thezonders.com: did not receive HSTS header
thgros.fr: could not connect to host
+thibautcharles.net: did not receive HSTS header
+thienteakee.com: did not receive HSTS header
thierfreund.de: did not receive HSTS header
-thierryhayoz.ch: could not connect to host
thinkcash.nl: 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
+thinklikeanentrepreneur.com: did not receive HSTS header
thinkswap.com: did not receive HSTS header
thinlyveiledcontempt.com: could not connect to host
thirdpartytrade.com: did not receive HSTS header
-thirdworld.moe: did not receive HSTS header
thirty5.net: did not receive HSTS header
-thirtyspot.com: did not receive HSTS header
+thirtyspot.com: could not connect to host
thisisacompletetest.ga: could not connect to host
thisisforager.com: could not connect to host
thismumdoesntknowbest.com: could not connect to host
@@ -13814,48 +14925,54 @@ thkb.net: could not connect to host
thomas-ferney.fr: did not receive HSTS header
thomas-gibertie.fr: did not receive HSTS header
thomas-grobelny.de: could not connect to host
-thomas-prior.com: could not connect to host
thomascloud.ddns.net: could not connect to host
-thomasetsophie.fr: could not connect to host
+thomasgriffin.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
thomasharvey.me: did not receive HSTS header
thomaskliszowski.fr: did not receive HSTS header
-thomasmeester.nl: did not receive HSTS header
thomasnet.fr: could not connect to host
thomasscholz.com: max-age too low: 2592000
thomasschweizer.net: could not connect to host
thomasvt.xyz: max-age too low: 2592000
+thompsonfamily.cloud: could not connect to host
thorbis.com: could not connect to host
thorbiswebsitedesign.com: could not connect to host
thorgames.nl: did not receive HSTS header
thorncreek.net: did not receive HSTS header
thot.space: could not connect to host
+thoughtsynth.com: could not connect to host
+thoughtsynth.net: could not connect to host
+thoughtsynth.org: could not connect to host
threatcentral.io: could not connect to host
threebrothersbrewing.com: max-age too low: 2592000
threebulls.be: did not receive HSTS header
+threit.de: did not receive HSTS header
thriveapproach.co.uk: did not receive HSTS header
thrivewellnesshub.co.za: did not receive HSTS header
throughthelookingglasslens.co.uk: could not connect to host
thrx.net: did not receive HSTS header
thumbtack.com: did not receive HSTS header
thundercampaign.com: could not connect to host
-thunderfield-boat.co.uk: could not connect to host
+thuviensoft.net: could not connect to host
+thuybich.com: did not receive HSTS header
thyrex.fr: could not connect to host
ti-js.com: could not connect to host
-ti.blog.br: could not connect to host
+ti.blog.br: did not receive HSTS header
+tiacollection.com: did not receive HSTS header
tianxicaipiao.com: could not connect to host
tianxicaipiao.win: could not connect to host
tianxicp.com: could not connect to host
-tianxing.pro: could not connect to host
+tianxing.pro: did not receive HSTS header
tianxingvpn.pro: could not connect to host
tibbitshall.ca: could not connect to host
tibovanheule.site: could not connect to host
ticketoplichting.nl: did not receive HSTS header
tickopa.co.uk: could not connect to host
tickreport.com: did not receive HSTS header
-ticktock.today: did not receive HSTS header
+ticktock.today: could not connect to host
tictactux.de: could not connect to host
tidmore.us: could not connect to host
tie-online.org: did not receive HSTS header
+tiendafetichista.com: could not connect to host
tiendschuurstraat.nl: could not connect to host
tiensnet.com: could not connect to host
tierarztpraxis-illerwinkel.de: did not receive HSTS header
@@ -13863,15 +14980,16 @@ tierrarp.com: could not connect to host
tiffanytravels.com: did not receive HSTS header
tightlineproductions.com: did not receive HSTS header
tigit.co.nz: could not connect to host
+tiki-god.co.uk: could not connect to host
tikutiku.pl: could not connect to host
tildebot.com: could not connect to host
tilient.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-tilkah.com.au: did not receive HSTS header
+tilkah.com.au: could not connect to host
tillcraft.com: could not connect to host
timbeilby.com: could not connect to host
timbuktutimber.com: did not receive HSTS header
-timcamara.com: did not receive HSTS header
-timco.cloud: could not connect to host
+timcamara.com: could not connect to host
+timdebruijn.nl: did not receive HSTS header
time-river.xyz: could not connect to host
timeatlas.com: did not receive HSTS header
timer.fit: could not connect to host
@@ -13884,24 +15002,26 @@ timeserver2.de: could not connect to host
timeserver3.de: could not connect to host
timestamp.io: did not receive HSTS header
timestamp.uk: could not connect to host
+timhieubenh.net: could not connect to host
timhjalpen.se: could not connect to host
timklefisch.de: did not receive HSTS header
timmy.ws: could not connect to host
-timotrans.de: did not receive HSTS header
-timotrans.eu: did not receive HSTS header
+timotrans.de: could not connect to host
+timotrans.eu: could not connect to host
timowi.de: could not connect to host
timowi.net: could not connect to host
timroes.de: did not receive HSTS header
timschubert.net: max-age too low: 172800
+timtj.ca: could not connect to host
timvandekamp.nl: did not receive HSTS header
+timweb.ca: could not connect to host
timwhite.io: did not receive HSTS header
timwittenberg.com: could not connect to host
-timysewyn.be: could not connect to host
tinchbear.xyz: did not receive HSTS header
tindewen.net: could not connect to host
tink.network: could not connect to host
tipiakers.club: could not connect to host
-tipps-fuer-den-haushalt.de: did not receive HSTS header
+tipps-fuer-den-haushalt.de: could not connect to host
tippspiel.cc: could not connect to host
tipsyk.ru: could not connect to host
tiredofeating.com: could not connect to host
@@ -13911,8 +15031,10 @@ tism.in: could not connect to host
tiste.org: could not connect to host
titanlab.de: could not connect to host
titanleaf.com: could not connect to host
+titanpointe.org: did not receive HSTS header
tittarpuls.se: could not connect to host
titties.ml: could not connect to host
+tjandpals.com: could not connect to host
tjc.wiki: could not connect to host
tjeckien.guide: could not connect to host
tjs.me: could not connect to host
@@ -13924,6 +15046,7 @@ tkonstantopoulos.tk: could not connect to host
tkts.cl: could not connect to host
tlach.cz: did not receive HSTS header
tlcdn.net: could not connect to host
+tlcnet.info: 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
@@ -13933,7 +15056,6 @@ tlshost.net: could not connect to host
tm-solutions.eu: could not connect to host
tm.id.au: did not receive HSTS header
tmaward.net: could not connect to host
-tmdc.ddns.net: could not connect to host
tmhlive.com: could not connect to host
tmin.cf: could not connect to host
tmitchell.io: could not connect to host
@@ -13942,6 +15064,7 @@ tmtradingmorocco.ma: could not connect to host
tnb-plattform.de: could not connect to host
tncnanet.com.br: could not connect to host
tno.io: could not connect to host
+to2mbn.org: could not connect to host
tobaby.com.br: could not connect to host
tobaccore.eu: could not connect to host
tobaccore.sk: could not connect to host
@@ -13951,21 +15074,26 @@ tobiasmathes.com: could not connect to host
tobiasmathes.name: could not connect to host
tobiasofficial.at: could not connect to host
tobiassachs.cf: could not connect to host
-tobiassachs.de: could not connect to host
tobiassachs.tk: could not connect to host
+tobis-webservice.de: did not receive HSTS header
+tobisworld.ch: could not connect to host
tobyx.is: could not connect to host
todesschaf.org: could not connect to host
todo.is: could not connect to host
todobazar.es: could not connect to host
+todokete.ga: could not connect to host
todoscomciro.com: did not receive HSTS header
todosrv.com: could not connect to host
tofa-koeln.de: could not connect to host
+tofilmhub.com: could not connect to host
tofu.im: could not connect to host
togelonlinecommunity.com: did not receive HSTS header
-tojeto.eu: could not connect to host
+tohokufd.com: could not connect to host
+tojeto.eu: did not receive HSTS header
toka.sg: could not connect to host
tokage.me: could not connect to host
tokenloan.com: could not connect to host
+tokfun.com: could not connect to host
tokobungaasryflorist.com: did not receive HSTS header
tokobungadijambi.com: did not receive HSTS header
tokobungadilampung.com: could not connect to host
@@ -13977,10 +15105,12 @@ tokotimbangandigitalmurah.web.id: did not receive HSTS header
tokototech.com: could not connect to host
tokoyo.biz: could not connect to host
tollmanz.com: did not receive HSTS header
-tollsjekk.no: did not receive HSTS header
+tollsjekk.no: could not connect to host
tolud.com: could not connect to host
tom.run: did not receive HSTS header
tomandshirley.com: could not connect to host
+tomaz.eu: could not connect to host
+tomcort.com: could not connect to host
tomeara.net: could not connect to host
tomevans.io: did not receive HSTS header
tomharling.co.uk: could not connect to host
@@ -13992,13 +15122,16 @@ tommy-bordas.fr: did not receive HSTS header
tommyads.com: could not connect to host
tommyweber.de: did not receive HSTS header
tomphill.co.uk: could not connect to host
+tomy.icu: could not connect to host
tonburi.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
tongmu.me: could not connect to host
toniharant.de: could not connect to host
+tono.us: could not connect to host
toomanypillows.com: could not connect to host
-tooolroc.org: could not connect to host
+top-solar-info.de: could not connect to host
top-stage.net: could not connect to host
top10mountainbikes.info: could not connect to host
+top9.fr: did not receive HSTS header
topanlage.de: could not connect to host
topbargains.com.au: did not receive HSTS header
topbestsellerproduct.com: did not receive HSTS header
@@ -14013,15 +15146,15 @@ topnovini.com: did not receive HSTS header
toppik.com.br: could not connect to host
topservercccam.com: did not receive HSTS header
topshelfguild.com: could not connect to host
+topshoptools.com: could not connect to host
toptenthebest.com: did not receive HSTS header
toptranslation.com: did not receive HSTS header
-topwin.la: could not connect to host
topyx.com: did not receive HSTS header
tor2web.org: could not connect to host
torbay.ga: could not connect to host
+torbe.es: could not connect to host
torchl.it: could not connect to host
toretfaction.net: could not connect to host
-torg-room.ru: could not connect to host
torlock.download: could not connect to host
torproject.org.uk: could not connect to host
torproject.ovh: could not connect to host
@@ -14035,6 +15168,7 @@ torv.rocks: did not receive HSTS header
tosecure.link: could not connect to host
toshnix.com: could not connect to host
toshub.com: could not connect to host
+totaku.ru: could not connect to host
totalle.com.br: could not connect to host
totallynotaserver.com: could not connect to host
totalsystemcare.com: could not connect to host
@@ -14047,23 +15181,25 @@ totot.net: did not receive HSTS header
toucedo.de: could not connect to host
touch-up-net.com: could not connect to host
touchbasemail.com: did not receive HSTS header
+touchinformatica.com: did not receive HSTS header
touchpointidg.us: could not connect to host
touchscreen-handy.de: did not receive HSTS header
touchstonefms.co.uk: did not receive HSTS header
-touhou.cc: did not receive HSTS header
touray-enterprise.ch: could not connect to host
tournaire.fr: did not receive HSTS header
tourpeer.com: did not receive HSTS header
toursandtransfers.it: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
tousproducteurs.fr: did not receive HSTS header
towaway.ru: could not connect to host
-town-farm.surrey.sch.uk: could not connect to host
+town-farm.surrey.sch.uk: max-age too low: 0
+townofbridgewater.ca: could not connect to host
tox.im: did not receive HSTS header
toxicboot.com: could not connect to host
toxicip.com: could not connect to host
toxme.se: did not receive HSTS header
toymania.de: could not connect to host
toyotamotala.se: could not connect to host
+tpansino.com: could not connect to host
tpbcdn.com: could not connect to host
tpblist.xyz: could not connect to host
tpbunblocked.org: could not connect to host
@@ -14073,10 +15209,11 @@ tppdebate.org: did not receive HSTS header
trabajarenperu.com: did not receive HSTS header
tracetracker.com: did not receive HSTS header
tracetracker.no: did not receive HSTS header
+tracewind.top: could not connect to host
track.plus: could not connect to host
trackdays4fun.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
tracker-gps.ch: could not connect to host
-trackingstream.com: did not receive HSTS header
+trackmeet.io: did not receive HSTS header
tracktivity.com.au: did not receive HSTS header
trade-smart.ru: could not connect to host
tradietrove.com.au: did not receive HSTS header
@@ -14086,7 +15223,6 @@ tradingcentre.com.au: did not receive HSTS header
tradinghope.com: could not connect to host
tradingrooms.com: did not receive HSTS header
traditional-knowledge.tk: did not receive HSTS header
-tradiz.org: could not connect to host
traeningsprojekt.dk: did not receive HSTS header
trafficquality.org: could not connect to host
traffictigers.com: did not receive HSTS header
@@ -14097,20 +15233,11 @@ trainhorns.us: did not receive HSTS header
training4girls.ru: could not connect to host
traininglist.org: could not connect to host
trainingproviderresults.gov: could not connect to host
-trainline.at: could not connect to host
-trainline.cn: could not connect to host
-trainline.com.br: could not connect to host
-trainline.com.pt: could not connect to host
-trainline.cz: could not connect to host
trainline.dk: could not connect to host
trainline.io: could not connect to host
-trainline.nl: could not connect to host
-trainline.no: could not connect to host
-trainline.pl: could not connect to host
trainline.se: could not connect to host
trainut.com: could not connect to host
trakfusion.com: could not connect to host
-tran.pw: did not receive HSTS header
tranos.de: did not receive HSTS header
transbike.es: did not receive HSTS header
transcendmotor.sg: could not connect to host
@@ -14123,13 +15250,15 @@ translate.googleapis.com: did not receive HSTS header (error ignored - included
transmithe.net: could not connect to host
transportal.sk: did not receive HSTS header
transsexualpantyhose.com: could not connect to host
-trauertexte.info: did not receive HSTS header
+tratamentoparacelulite.biz: did not receive HSTS header
+tratamentoparacelulite.net: did not receive HSTS header
+trauertexte.info: could not connect to host
traumhuetten.de: did not receive HSTS header
travality.ru: could not connect to host
travel-kuban.ru: did not receive HSTS header
-travel1x1.com: could not connect to host
+travel1x1.com: did not receive HSTS header
+traveling-thailand.info: could not connect to host
travelinsightswriter.com: could not connect to host
-travelinsurance.co.nz: did not receive HSTS header
travelling.expert: could not connect to host
travotion.com: could not connect to host
trazosdearte.com: did not receive HSTS header
@@ -14141,7 +15270,7 @@ treeremovaljohannesburg.co.za: could not connect to host
treino.blog.br: could not connect to host
treker.us: could not connect to host
trell.co.in: did not receive HSTS header
-tremoureux.fr: did not receive HSTS header
+tremoureux.fr: could not connect to host
trendberry.ru: could not connect to host
trendingpulse.com: could not connect to host
trendisland.de: did not receive HSTS header
@@ -14162,12 +15291,12 @@ trinitytechdev.com: did not receive HSTS header
tripcombi.com: did not receive HSTS header
tripdelta.com: did not receive HSTS header
tripinsider.club: did not receive HSTS header
-tripp.xyz: did not receive HSTS header
trisportas.lt: did not receive HSTS header
tristanfarkas.one: could not connect to host
trixati.org.ua: did not receive HSTS header
trixies-wish.nz: could not connect to host
trixy.com.br: could not connect to host
+trizone.com.au: did not receive HSTS header
troi.de: did not receive HSTS header
trollme.me: could not connect to host
trollscave.xyz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -14175,6 +15304,7 @@ tronflix.com: did not receive HSTS header
troo.ly: could not connect to host
trouter.io: could not connect to host
trouver-son-chemin.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+trpg.wiki: could not connect to host
truckgpsreviews.com: did not receive HSTS header
true.ink: did not receive HSTS header
truebred-labradors.com: did not receive HSTS header
@@ -14185,6 +15315,8 @@ trush.in: could not connect to host
trustedinnovators.com: could not connect to host
trusteecar.com: did not receive HSTS header
trustmeimfancy.com: could not connect to host
+trustocean.com: did not receive HSTS header
+try2services.cm: did not receive HSTS header
trybind.com: could not connect to host
tryfabulousdiet.com: could not connect to host
tryfm.net: did not receive HSTS header
@@ -14224,15 +15356,17 @@ tubex.ga: could not connect to host
tucidi.net: could not connect to host
tucker.wales: could not connect to host
tucnak.eu: could not connect to host
+tudorapido.com.br: did not receive HSTS header
tueche.com.ar: did not receive HSTS header
-tuingereedschappen.net: did not receive HSTS header
+tufilo.com: could not connect to host
+tugers.com: did not receive HSTS header
tuja.hu: could not connect to host
+tulenceria.es: could not connect to host
tulsameetingroom.com: could not connect to host
-tuminauskas.lt: did not receive HSTS header
-tunai.id: could not connect to host
tunca.it: did not receive HSTS header
tunebitfm.de: could not connect to host
tungstenroyce.com: did not receive HSTS header
+tunity.be: did not receive HSTS header
tupizm.com: could not connect to host
turismo.cl: could not connect to host
turkiet.guide: could not connect to host
@@ -14246,12 +15380,13 @@ turtles.ga: could not connect to host
tusb.ml: did not receive HSTS header
tussengelegenwoningverkopen.nl: could not connect to host
tuthowto.com: did not receive HSTS header
+tutiendaroja.com: did not receive HSTS header
+tutiendarosa.com: did not receive HSTS header
tutorio.ga: could not connect to host
tutu.ro: could not connect to host
tuturulianda.com: did not receive HSTS header
tuvalie.com: did not receive HSTS header
tuxhound.org: could not connect to host
-tuxplace.nl: could not connect to host
tv.search.yahoo.com: could not connect to host
tvc.red: could not connect to host
tverdohleb.com: could not connect to host
@@ -14274,26 +15409,28 @@ twee-onder-een-kap-woning-in-zwartewaterland-kopen.nl: could not connect to host
tweeondereenkapverkopen.nl: could not connect to host
tweeondereenkapwoningverkopen.nl: could not connect to host
tweetify.io: could not connect to host
+twelve.rocks: could not connect to host
twelve.today: could not connect to host
-twelverocks.com: did not receive HSTS header
+twelverocks.com: could not connect to host
+twem.ddns.net: could not connect to host
twillionmas.com: could not connect to host
twinkieman.com: could not connect to host
twinkseason.ca: could not connect to host
twinkseason.co: could not connect to host
twinkseason.co.uk: could not connect to host
-twinkseason.com: could not connect to host
twinkseason.net: could not connect to host
twinkseason.org: could not connect to host
twinkseason.xyz: could not connect to host
twiri.net: could not connect to host
twist.party: could not connect to host
+twisted-brains.org: could not connect to host
twitter.ax: could not connect to host
twogo.com: did not receive HSTS header
+twolanedesign.com: did not receive HSTS header
twolinepassbrewing.com: could not connect to host
twolivelife.com: could not connect to host
twoo.com: could not connect to host
twotube.ie: could not connect to host
-twuni.org: could not connect to host
tx041cap.org: could not connect to host
txbi.de: could not connect to host
txclimbers.com: could not connect to host
@@ -14304,21 +15441,27 @@ ty2u.com: did not receive HSTS header
tycjt.vip: did not receive HSTS header
tykoon.com: could not connect to host
tyler.coach: could not connect to host
-tyler.rs: could not connect to host
tylercoach.com: could not connect to host
tylerharcourt.ca: max-age too low: 86400
tylerharcourt.com: could not connect to host
tylerharcourt.org: did not receive HSTS header
tylerharcourt.xyz: could not connect to host
tylerjharcourt.com: could not connect to host
-tyleromeara.com: could not connect to host
tylian.net: max-age too low: 0
+type1joe.com: could not connect to host
+type1joe.net: could not connect to host
+type1joe.org: could not connect to host
typeofweb.com: did not receive HSTS header
+typeonejoe.net: could not connect to host
+typeonejoe.org: could not connect to host
typingrevolution.com: did not receive HSTS header
-tyreis.com: could not connect to host
+tyreis.com: did not receive HSTS header
tyrelius.com: could not connect to host
tyroproducts.eu: did not receive HSTS header
tyskland.guide: could not connect to host
+tysye.ca: could not connect to host
+tyuo-keibi.co.jp: did not receive HSTS header
+tz56789.com: did not receive HSTS header
tzappa.net: could not connect to host
tzwe.com: could not connect to host
u-master.net: did not receive HSTS header
@@ -14333,15 +15476,19 @@ ubicloud.de: could not connect to host
ubicv.com: could not connect to host
ublox.com: did not receive HSTS header
ubtce.com: could not connect to host
-ubuntuhot.com: could not connect to host
-udruga-point.hr: did not receive HSTS header
+ubuntuhot.com: did not receive HSTS header
+uc.ac.id: did not receive HSTS header
+uclanmasterplan.co.uk: did not receive HSTS header
+udbhav.me: could not connect to host
ueba1085.jp: could not connect to host
uefeng.com: did not receive HSTS header
uega.net: did not receive HSTS header
+uerdingen.info: did not receive HSTS header
uesociedadlimitada.com: could not connect to host
ueu.me: could not connect to host
ufgaming.com: did not receive HSTS header
uflixit.com: did not receive HSTS header
+ufo.moe: did not receive HSTS header
ufotable.uk: could not connect to host
ugcdn.com: could not connect to host
ugisgutless.com: could not connect to host
@@ -14352,7 +15499,7 @@ uhlhosting.ch: [Exception... "Component returned failure code: 0x80004005 (NS_ER
uhm.io: did not receive HSTS header
uhuru-market.com: could not connect to host
uitslagensoftware.nl: did not receive HSTS header
-ukas.com: did not receive HSTS header
+ukas.com: could not connect to host
ukdropshipment.co.uk: did not receive HSTS header
ukdropshipment.com: did not receive HSTS header
ukk.dk: did not receive HSTS header
@@ -14363,18 +15510,20 @@ ulabox.es: did not receive HSTS header
ulalau.com: could not connect to host
ullamodaintima.com.br: could not connect to host
ulmo.dk: could not connect to host
-ulti.gq: could not connect to host
+ulti.gq: did not receive HSTS header
ultimate-garcinia-plus.com: could not connect to host
ultimate-glow-skin.com: could not connect to host
ultimate-memoryplus.com: could not connect to host
ultimate-neuroplus.com: could not connect to host
+ultrasteam.net: could not connect to host
ultros.io: did not receive HSTS header
umaimise.info: did not receive HSTS header
+umassfive.coop: did not receive HSTS header
+umbriel.fr: did not receive HSTS header
umgardi.ca: could not connect to host
umidev.com: could not connect to host
umie.cc: did not receive HSTS header
ump45.moe: did not receive HSTS header
-umsapi.com: could not connect to host
unapolegetic.co: did not receive HSTS header
unart.info: could not connect to host
unbanthe.net: could not connect to host
@@ -14385,8 +15534,10 @@ unblocked.date: could not connect to host
unblocked.faith: could not connect to host
unblocked.host: could not connect to host
unblocked.party: could not connect to host
+unblocked.sh: could not connect to host
unblocked.st: did not receive HSTS header
unblocked.today: could not connect to host
+unblocked.vc: could not connect to host
unblocked.win: could not connect to host
unblocked.works: could not connect to host
unblocked.world: could not connect to host
@@ -14402,9 +15553,10 @@ unblockthe.site: could not connect to host
unblockthe.top: could not connect to host
unccdesign.club: could not connect to host
unclegen.xyz: could not connect to host
+undeadbrains.de: could not connect to host
under30stravelinsurance.com.au: did not receive HSTS header
+undercovercondoms.com: could not connect to host
underkin.com: could not connect to host
-underskatten.tk: could not connect to host
unefuite.ch: could not connect to host
unfiltered.nyc: could not connect to host
ungern.guide: could not connect to host
@@ -14424,23 +15576,23 @@ uniformespousoalegre.com.br: did not receive HSTS header
unikitty-on-tour.com: could not connect to host
unikrn.com: could not connect to host
unionstationapp.com: could not connect to host
-unipig.de: could not connect to host
unirenter.ru: did not receive HSTS header
unison.com: did not receive HSTS header
-unisyssecurity.com: could not connect to host
-uniteasia.org: did not receive HSTS header
+unisyssecurity.com: did not receive HSTS header
unitedcyberdevelopment.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
unitlabs.net: could not connect to host
unitrade-425.co.za: did not receive HSTS header
university4industry.com: did not receive HSTS header
+universogay.com: could not connect to host
univstore.win: could not connect to host
univz.com: could not connect to host
unixtime.pro: could not connect to host
+unknownbreakup.com: max-age too low: 2592000
unknownphenomena.net: could not connect to host
unmanaged.space: could not connect to host
unplugg3r.dk: could not connect to host
+unpossible.xyz: could not connect to host
unravel.ie: could not connect to host
-uns.vn: could not connect to host
unschoolrules.com: did not receive HSTS header
unstockd.org: could not connect to host
unsupervised.ca: did not receive HSTS header
@@ -14454,38 +15606,41 @@ uonstaffhub.com: could not connect to host
uow.ninja: could not connect to host
up1.ca: could not connect to host
upaknship.com: did not receive HSTS header
-upbad.com: did not receive HSTS header
+upandclear.org: max-age too low: 0
upboard.jp: could not connect to host
-upgauged.com: could not connect to host
upldr.pw: could not connect to host
uploadbro.com: could not connect to host
upmchealthsecurity.us: 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
+uptakedigital.com.au: max-age too low: 2592000
uptic.net: did not receive HSTS header
upupming.site: did not receive HSTS header
ur-lauber.de: did not receive HSTS header
urban-garden.lt: could not connect to host
urban-garden.lv: could not connect to host
urbanmic.com: could not connect to host
+urbanstylestaging.com: did not receive HSTS header
urbpic.com: could not connect to host
urcentral.org: could not connect to host
+url.cab: could not connect to host
urlachershop.com.br: did not receive HSTS header
+urlakite.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
urlchomp.com: did not receive HSTS header
urology.wiki: did not receive HSTS header
-urphp.com: could not connect to host
-ursae.co: did not receive HSTS header
-us-immigration.com: could not connect to host
+urphp.com: did not receive HSTS header
+us-immigration.com: did not receive HSTS header
usaab.org: did not receive HSTS header
usafuelservice.com: did not receive HSTS header
usatomotori.com: did not receive HSTS header
usbirthcertificate.com: could not connect to host
usbtypeccompliant.com: could not connect to host
-uscitizenship.info: could not connect to host
+uscitizenship.info: did not receive HSTS header
uscntalk.com: could not connect to host
uscp8.com: could not connect to host
uscurrency.gov: did not receive HSTS header
+use.ci: could not connect to host
used-in.jp: could not connect to host
usedesk.ru: did not receive HSTS header
useevlo.com.br: could not connect to host
@@ -14493,26 +15648,27 @@ user-new.com: did not receive HSTS header
usercare.com: did not receive HSTS header
useresponse.com: did not receive HSTS header
userify.com: max-age too low: 0
-usimmigration.us: could not connect to host
uslab.io: could not connect to host
usparklodging.com: did not receive HSTS header
usportsgo.com: could not connect to host
usr.nz: did not receive HSTS header
+utdscanner.com: did not receive HSTS header
utilitronium-shockwave.com: could not connect to host
utleieplassen.no: could not connect to host
utopiagalaxy.space: could not connect to host
+utopialgb.org.uk: could not connect to host
utopian-surgery.com: could not connect to host
utopianconcept.com: did not receive HSTS header
utopianhomespa.com: did not receive HSTS header
utopianrealms.org: did not receive HSTS header
utopians.dk: did not receive HSTS header
uttnetgroup.fr: could not connect to host
-utumno.ch: did not receive HSTS header
+utumno.ch: could not connect to host
utvbloggen.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
uvarov.pw: did not receive HSTS header
uwesander.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
uwfreelanceopticien.nl: could not connect to host
-uwsoftware.be: did not receive HSTS header
+uwimonacs.org.jm: did not receive HSTS header
uwstartups.com: could not connect to host
uxux.pl: could not connect to host
uygindir.ml: could not connect to host
@@ -14524,9 +15680,10 @@ v-desk.ga: could not connect to host
v0rtex.xyz: could not connect to host
v0tti.com: did not receive HSTS header
v12.co.uk: did not receive HSTS header
+v1sit0r.ru: could not connect to host
v2.pw: did not receive HSTS header
v2ex.us: could not connect to host
-v4s.ro: could not connect to host
+v4s.ro: did not receive HSTS header
v4veedu.com: could not connect to host
v5wz.com: did not receive HSTS header
v5xp.com: did not receive HSTS header
@@ -14545,9 +15702,11 @@ vaddder.com: could not connect to host
vadennissanofhinesvilleparts.com: could not connect to host
vadik.me: could not connect to host
vadodesign.nl: did not receive HSTS header
+vagaerg.com: could not connect to host
+vagaerg.net: could not connect to host
vaibhavchatarkar.com: could not connect to host
+val-sec.com: could not connect to host
valaeris.de: did not receive HSTS header
-valasi.eu: 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
@@ -14571,14 +15730,12 @@ vanderkley.it: could not connect to host
vanderstraeten.dynv6.net: could not connect to host
vanessabalibridal.com: could not connect to host
vanestack.com: could not connect to host
-vanetv.com: did not receive HSTS header
+vanetv.com: could not connect to host
vangeluwedeberlaere.be: did not receive HSTS header
vanitas.xyz: did not receive HSTS header
vanitynailworkz.com: could not connect to host
vanlaanen.com: did not receive HSTS header
vansieleghem.com: could not connect to host
-vante.me: could not connect to host
-vantru.is: could not connect to host
vapecraftinc.com: did not receive HSTS header
vapemania.eu: could not connect to host
vapeshopsupply.com: max-age too low: 7889238
@@ -14587,35 +15744,41 @@ variablyconstant.com: could not connect to host
varta.io: could not connect to host
vasa-webstranka.sk: did not receive HSTS header
vasanth.org: could not connect to host
+vase-eroticke-povidky.cz: could not connect to host
+vastgoedcultuurfonds.nl: did not receive HSTS header
vastkustenrunt.se: did not receive HSTS header
vavai.net: did not receive HSTS header
+vavouchers.com: could not connect to host
vayaport.com: could not connect to host
vbest.net: could not connect to host
vbhelp.org: did not receive HSTS header
vbulletin-russia.com: could not connect to host
vbulletinrussia.com: could not connect to host
+vcdn.xyz: could not connect to host
vcdove.com: could not connect to host
vconcept.ch: could not connect to host
vconcept.me: could not connect to host
vcr.re: could not connect to host
vdhco.be: did not receive HSTS header
+vdownloader.com: could not connect to host
vdrpro.com: could not connect to host
veblen.com: did not receive HSTS header
vechkasov.ru: could not connect to host
vectro.me: could not connect to host
vedatkamer.com: did not receive HSTS header
vega-motor.com.ua: did not receive HSTS header
+vega-rumia.com.pl: max-age too low: 2592000
vega.dyndns.info: could not connect to host
vegalayer.com: did not receive HSTS header
vegalengd.com: did not receive HSTS header
+vegangaymer.blog: could not connect to host
veganosonline.com: could not connect to host
+vegasdocs.com: did not receive HSTS header
veggiefasting.com: could not connect to host
veggiesbourg.fr: did not receive HSTS header
vegis.ro: did not receive HSTS header
veglog.com: did not receive HSTS header
vehent.org: did not receive HSTS header
-vehicleenquiry.service.gov.uk: did not receive HSTS header
-vehicletax.service.gov.uk: did not receive HSTS header
vehicleuplift.co.uk: did not receive HSTS header
vekenz.com: could not connect to host
velasense.com: could not connect to host
@@ -14633,20 +15796,19 @@ venninvestorplatform.com: did not receive HSTS header
venoom.eu: did not receive HSTS header
vensl.org: could not connect to host
venturepro.com: did not receive HSTS header
-venturum.com: could not connect to host
-venturum.de: could not connect to host
-venturum.eu: could not connect to host
-venturum.net: could not connect to host
venzocrm.com: did not receive HSTS header
ver-ooginoog.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
veraandsteve.date: could not connect to host
verdeandco.co.uk: could not connect to host
-verdict.gg: could not connect to host
verifiedinvesting.com: could not connect to host
verifikatorindonesia.com: could not connect to host
+veriny.tf: could not connect to host
+veriomed.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
veristor.com: did not receive HSTS header
+verliefde-jongens.nl: could not connect to host
vermontcareergateway.org: could not connect to host
vernonfishandgame.ca: did not receive HSTS header
+versbeton.nl: max-age too low: 864000
versfin.net: could not connect to host
versia.ru: did not receive HSTS header
versolslapeyre.fr: did not receive HSTS header
@@ -14659,13 +15821,15 @@ veterinaire-cazeres-foucault.fr: could not connect to host
vethouse.com.ua: did not receive HSTS header
vetmgmt.com: could not connect to host
veto.fish: could not connect to host
+vforvendetta.science: could not connect to host
vfree.org: could not connect to host
vgatest.nl: could not connect to host
vglimg.com: could not connect to host
vhost.co.id: could not connect to host
+via-shire-krug.ru: could not connect to host
viabemestar.com.br: could not connect to host
viadeux.com: did not receive HSTS header
-viagra-kaufen.biz: did not receive HSTS header
+vialibido.com.br: could not connect to host
viasinc.com: did not receive HSTS header
vibrashop.com.br: did not receive HSTS header
vicenage.com: could not connect to host
@@ -14674,25 +15838,26 @@ vicianovi.cz: could not connect to host
viciousviscosity.xyz: could not connect to host
victorenxovais.com.br: could not connect to host
victoriapemberton.com: did not receive HSTS header
+victoriaville.ca: did not receive HSTS header
vid.me: did not receive HSTS header
-vidadu.com: did not receive HSTS header
vidb.me: could not connect to host
vidbuchanan.co.uk: did not receive HSTS header
viddiaz.com: did not receive HSTS header
videnskabsklubben.dk: did not receive HSTS header
-videoload.co: could not connect to host
videomuz.com: could not connect to host
videorullen.se: could not connect to host
+videosxgays.com: could not connect to host
videotogel.net: could not connect to host
videoueberwachung-set.de: did not receive HSTS header
vider.ga: could not connect to host
vidid.net: could not connect to host
vidiproject.com: did not receive HSTS header
viditut.com: could not connect to host
+vidkovaomara.si: could not connect to host
vidlyoficial.com: could not connect to host
vidz.ga: could not connect to host
+vieaw.com: could not connect to host
viennan.net: could not connect to host
-vientos.coop: could not connect to host
vietnam-lifer.com: could not connect to host
vietnamchevrolet.net: did not receive HSTS header
vietnamphotographytours.com: did not receive HSTS header
@@ -14703,17 +15868,17 @@ viikko.eu: could not connect to host
vijos.org: did not receive HSTS header
vikasbabyworld.de: could not connect to host
viktor-machnik.de: did not receive HSTS header
-viktorsvantesson.net: could not connect to host
+viktorsvantesson.net: did not receive HSTS header
viladochurrasco.com.br: could not connect to host
vilaydin.com: did not receive HSTS header
vilight.com.br: could not connect to host
+villa-bellarte.de: did not receive HSTS header
villacarmela.com.br: did not receive HSTS header
villainsclothing.com.au: could not connect to host
+villalaskowa.pl: did not receive HSTS header
villasenor.online: could not connect to host
-villekaaria.eu: could not connect to host
vilog.me: could not connect to host
vimeosucks.nyc: could not connect to host
-vinagro.sk: could not connect to host
vinasec.se: could not connect to host
vinbet.org: could not connect to host
vinbet000.com: could not connect to host
@@ -14726,7 +15891,6 @@ vinbet666.com: could not connect to host
vinbet888.com: could not connect to host
vincentkooijman.at: did not receive HSTS header
vincentkooijman.nl: did not receive HSTS header
-vinciconps4.it: could not connect to host
vinesauce.info: could not connect to host
vinetalk.net: could not connect to host
vinicius.sl: could not connect to host
@@ -14735,21 +15899,21 @@ vinogradovka.com: did not receive HSTS header
vio.no: did not receive HSTS header
violenceinterrupted.org: did not receive HSTS header
violet-letter.delivery: could not connect to host
+violetraven.co.uk: could not connect to host
viosey.com: could not connect to host
-vioye.com: did not receive HSTS header
+vioye.com: could not connect to host
viperdns.com: could not connect to host
vipesball.net: could not connect to host
viphospitality.se: could not connect to host
viplentes.com.br: did not receive HSTS header
vipmusic.ga: could not connect to host
-vipnettikasinoklubi.com: could not connect to host
+vipnettikasinoklubi.com: did not receive HSTS header
viral8.jp: could not connect to host
virginiacrimeanalysisnetwork.org: did not receive HSTS header
-virial.de: did not receive HSTS header
viris.si: max-age too low: 536000
-virtualcloud.ddns.net: could not connect to host
virtualhealth.com: did not receive HSTS header
virtualstrongbox.ca: did not receive HSTS header
+virtusaero.com: could not connect to host
visa-shinsei.com: did not receive HSTS header
visanhigia.com: could not connect to host
viserproject.com: did not receive HSTS header
@@ -14758,6 +15922,7 @@ visiongamestudios.com: could not connect to host
visionthroughknowledge.com: could not connect to host
visiontree-beta.eu: could not connect to host
visiontree.eu: could not connect to host
+visistruct.com: max-age too low: 2592000
visitbroadstairs.com: did not receive HSTS header
vispaleistexel.nl: did not receive HSTS header
vissanum.com: did not receive HSTS header
@@ -14770,6 +15935,7 @@ vitalamin.ch: could not connect to host
vitalita.cz: did not receive HSTS header
vitalorange.com: did not receive HSTS header
vitalthings.de: could not connect to host
+vitamaxxi.com.br: could not connect to host
vitapingu.de: could not connect to host
vitta.me: did not receive HSTS header
vitzro.kr: could not connect to host
@@ -14778,57 +15944,63 @@ vivanosports.com.br: did not receive HSTS header
vivasports.com.br: could not connect to host
vivocloud.com: could not connect to host
vivoregularizafacil.com.br: did not receive HSTS header
-vivoseg.com: did not receive HSTS header
+vivoseg.com: could not connect to host
vivremoinscher.fr: did not receive HSTS header
+viza.io: could not connect to host
vizeat.com: did not receive HSTS header
vkino.com: could not connect to host
vkulagin.ru: could not connect to host
vladimiroff.org: did not receive HSTS header
vldkn.net: could not connect to host
vleij.family: could not connect to host
-vlogge.com: could not connect to host
+vlogge.com: did not receive HSTS header
vlzbazar.ru: could not connect to host
vmrdev.com: could not connect to host
vmstan.com: did not receive HSTS header
+vndb.org: could not connect to host
vocab.guru: could not connect to host
+vocalsynth.space: could not connect to host
voceinveste.com: did not receive HSTS header
vogt.tech: could not connect to host
-voice-of-design.com: could not connect to host
voicesuk.co.uk: did not receive HSTS header
void-it.nl: could not connect to host
-voidark.com: did not receive HSTS header
voidi.ca: could not connect to host
voidserv.net: could not connect to host
-voilo.club: did not receive HSTS header
-voilodaisuki.club: did not receive HSTS header
+voidshift.com: could not connect to host
+voilo.club: could not connect to host
+voilodaisuki.club: could not connect to host
voipkb.com: did not receive HSTS header
-voiro.club: did not receive HSTS header
-voirodaisuki.club: did not receive HSTS header
+voiro.club: could not connect to host
+voirodaisuki.club: could not connect to host
volatimer.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
volbyzive.cz: did not receive HSTS header
volcain.io: could not connect to host
-volcrado.com: did not receive HSTS header
+volcrado.com: could not connect to host
volkden.com: could not connect to host
volkswurst.de: did not receive HSTS header
-voltimax.com: could not connect to host
+voltimax.com: did not receive HSTS header
voltotc.com: did not receive HSTS header
voluptueuse.com: did not receive HSTS header
+volvipress.gr: did not receive HSTS header
vonavy-cukor.sk: could not connect to host
vonavycukor.sk: could not connect to host
vonedelmann.de: did not receive HSTS header
vongerlach.at: did not receive HSTS header
-vonterra.us: could not connect to host
+vonterra.us: did not receive HSTS header
vooreenveiligthuis.nl: did not receive HSTS header
voorjou.com: did not receive HSTS header
vorangerie.com: could not connect to host
vorderklier.de: could not connect to host
+vorm2.com: did not receive HSTS header
vortexhobbies.com: did not receive HSTS header
vosjesweb.nl: could not connect to host
-voterstartingpoint.uk: could not connect to host
+votercircle.com: did not receive HSTS header
+voterstartingpoint.uk: did not receive HSTS header
votresiteweb.ch: could not connect to host
vow.vn: could not connect to host
vowsy.club: did not receive HSTS header
vox.vg: did not receive HSTS header
+vozami.com: could not connect to host
vpip.net: could not connect to host
vpl.me: did not receive HSTS header
vpn-byen.dk: did not receive HSTS header
@@ -14851,17 +16023,24 @@ vrijstaandhuis-in-zuid-holland-kopen.nl: could not connect to host
vrijstaandhuis-in-zuidplas-kopen.nl: could not connect to host
vrijstaandhuis-in-zwartewaterland-kopen.nl: could not connect to host
vrijstaandhuisverkopen.nl: could not connect to host
+vrlaid.com: could not connect to host
vrobert.fr: could not connect to host
+vrsgames.com.mx: did not receive HSTS header
+vrtak-cz.net: could not connect to host
vrzl.pro: could not connect to host
+vsamsonov.com: could not connect to host
vsc-don-stocksport.de: did not receive HSTS header
+vsestiralnie.com: did not receive HSTS header
vucdn.com: could not connect to host
+vulndetect.com: did not receive HSTS header
vulnerabilities.io: could not connect to host
-vumetric.com: could not connect to host
vuosaarenmontessoritalo.fi: did not receive HSTS header
vvl.me: did not receive HSTS header
vwoforangeparts.com: could not connect to host
+vwt-event.nl: could not connect to host
vxapps.com: could not connect to host
vxml.club: could not connect to host
+vykup-car.ru: could not connect to host
vynedmusic.com: could not connect to host
vyshivanochka.in.ua: could not connect to host
vysvetluju.cz: could not connect to host
@@ -14872,19 +16051,21 @@ w10club.com: could not connect to host
w2gshop.com.br: could not connect to host
w4.no: did not receive HSTS header
w4a.fr: could not connect to host
+w4b.in: could not connect to host
w4xzr.top: could not connect to host
w4xzr.xyz: could not connect to host
w9rld.com: did not receive HSTS header
wabifoggynuts.com: could not connect to host
wachtwoordencheck.nl: could not connect to host
+waelti.xxx: could not connect to host
wafairhaven.com.au: did not receive HSTS header
wafni.com: could not connect to host
-wahhoi.net: did not receive HSTS header
wai-in.com: could not connect to host
wait.moe: could not connect to host
waixingrenfuli7.vip: could not connect to host
wakapp.de: could not connect to host
wakened.net: did not receive HSTS header
+waldkinder-ilmenau.de: did not receive HSTS header
walkeryoung.ca: could not connect to host
walkingforhealth.org.uk: did not receive HSTS header
wallabag.it: did not receive HSTS header
@@ -14894,7 +16075,6 @@ wallet.google.com: did not receive HSTS header (error ignored - included regardl
wallsblog.dk: could not connect to host
walnutgaming.co.uk: could not connect to host
walterlynnmosley.com: did not receive HSTS header
-wan.pp.ua: could not connect to host
wanashi.com: could not connect to host
wanban.io: could not connect to host
wanda76.com: could not connect to host
@@ -14909,7 +16089,10 @@ wangqiliang.xn--fiqs8s: could not connect to host
wangql.cn: could not connect to host
wanquanojbk.com: did not receive HSTS header
wantshow.com.br: did not receive HSTS header
+wanybug.cn: could not connect to host
+wapgu.cc: could not connect to host
wapjt.cn: could not connect to host
+wapking.co: could not connect to host
wapking.live: could not connect to host
wapt.fr: did not receive HSTS header
warandpeace.xyz: could not connect to host
@@ -14921,18 +16104,20 @@ warekon.dk: could not connect to host
warezaddict.com: could not connect to host
warhistoryonline.com: did not receive HSTS header
warlions.info: could not connect to host
+warnings.xyz: could not connect to host
warped.com: did not receive HSTS header
warren.sh: could not connect to host
warrencreative.com: did not receive HSTS header
-warsentech.com: could not connect to host
+warsentech.com: did not receive HSTS header
warumsuchen.at: did not receive HSTS header
wasatchconstables.com: did not receive HSTS header
wasatchcrest.com: did not receive HSTS header
wasfuereintheater.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
-wassim.is: could not connect to host
+wasserburg.dk: did not receive HSTS header
+wassim.is: did not receive HSTS header
watashi.bid: could not connect to host
watchium.com: did not receive HSTS header
-watchtv-online.pw: could not connect to host
+watchtv-online.pw: max-age too low: 0
watchweasel.com: could not connect to host
waterforlife.net.au: did not receive HSTS header
waterpoint.com.br: could not connect to host
@@ -14941,7 +16126,6 @@ watsonhall.uk: could not connect to host
wattechweb.com: did not receive HSTS header
wavefloatrooms.com: did not receive HSTS header
wavefrontsystemstech.com: could not connect to host
-wavesoftime.com: could not connect to host
waxlrs.com: could not connect to host
waylaydesign.com: did not receive HSTS header
waylee.net: did not receive HSTS header
@@ -14953,14 +16137,13 @@ wdt.io: did not receive HSTS header
we.serveftp.net: could not connect to host
wealthformyhealth.com: did not receive HSTS header
wear2work.nl: could not connect to host
-wearedisneyland.com: did not receive HSTS header
weareincognito.org: could not connect to host
wearewithyou.org: could not connect to host
weaverhairextensions.nl: could not connect to host
+web-advisor.co.uk: could not connect to host
web-demarche.com: could not connect to host
web-industry.fr: could not connect to host
web-insider.net: did not receive HSTS header
-web-mail.info: could not connect to host
web-vision.de: did not receive HSTS header
web4all.fr: did not receive HSTS header
web4pro.fr: could not connect to host
@@ -14971,13 +16154,14 @@ webapps.directory: could not connect to host
webart-factory.de: could not connect to host
webassadors.com: could not connect to host
webbuzz.com.au: did not receive HSTS header
+webbx.se: did not receive HSTS header
webchat.domains: did not receive HSTS header
webcreation.rocks: did not receive HSTS header
webdesign-kronberg.de: did not receive HSTS header
-webdesignsandiego.com: did not receive HSTS header
webdesignssussex.co.uk: could not connect to host
webdev-quiz.de: did not receive HSTS header
webdev.mobi: could not connect to host
+webdevxp.com: could not connect to host
webdosh.com: did not receive HSTS header
webeconomia.it: did not receive HSTS header
webelement.sk: did not receive HSTS header
@@ -14995,6 +16179,7 @@ webm.to: could not connect to host
webmail.mayfirst.org: did not receive HSTS header
webmaniabr.com: did not receive HSTS header
webmarketingfestival.it: did not receive HSTS header
+webmel.com: did not receive HSTS header
webmixseo.com: did not receive HSTS header
webnetmail4u.com: could not connect to host
webneuch.ch: could not connect to host
@@ -15009,7 +16194,11 @@ webnosql.com: could not connect to host
webperformance.ru: could not connect to host
webproshosting.tk: could not connect to host
webpublica.pt: could not connect to host
+webqueens.com: could not connect to host
+webreslist.com: could not connect to host
websandbox.uk: could not connect to host
+websectools.com: could not connect to host
+webseo.de: did not receive HSTS header
websiteadvice.com.au: did not receive HSTS header
websitedesign.bg: did not receive HSTS header
websitesabq.com: did not receive HSTS header
@@ -15017,7 +16206,7 @@ websmartmedia.co.uk: did not receive HSTS header
webspotter.nl: could not connect to host
webstationservice.fr: could not connect to host
webstellung.com: could not connect to host
-webstory.xyz: did not receive HSTS header
+webstory.xyz: could not connect to host
webswitch.io: could not connect to host
webtar.info: could not connect to host
webtech.com.br: could not connect to host
@@ -15025,20 +16214,23 @@ webtechgadgetry.com: could not connect to host
webtek.nu: could not connect to host
webthings.com.br: did not receive HSTS header
webtiles.co.uk: could not connect to host
+webtobesocial.de: could not connect to host
webukhost.com: could not connect to host
webuni.hu: did not receive HSTS header
webveloper.com: did not receive HSTS header
webwork.pw: could not connect to host
webypass.xyz: could not connect to host
+webz.one: could not connect to host
webzanem.com: could not connect to host
wecanfindit.co.za: could not connect to host
+wecanvisit.com: could not connect to host
wedding-m.jp: did not receive HSTS header
weddingenvelopes.co.uk: did not receive HSTS header
weddingibiza.nl: could not connect to host
wedotrains.club: did not receive HSTS header
weebsr.us: could not connect to host
weed.ren: could not connect to host
-week.report: could not connect to host
+weedlandia.org: did not receive HSTS header
weekly.fyi: could not connect to host
weerstationgiethoorn.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
wegenaer.nl: could not connect to host
@@ -15046,32 +16238,35 @@ weicn.org: did not receive HSTS header
weightreviews.com: did not receive HSTS header
weiji.ga: could not connect to host
weiler.xyz: could not connect to host
-weiming.ddns.net: could not connect to host
weinhandel-preissler.de: could not connect to host
+weirdserver.com: could not connect to host
weiyuz.com: max-age too low: 6585555
weizenke.im: could not connect to host
wejumall.com: could not connect to host
wekibe.de: could not connect to host
welby.cat: did not receive HSTS header
-welches-kinderfahrrad.de: did not receive HSTS header
+welches-kinderfahrrad.de: could not connect to host
welkers.org: could not connect to host
wellastore.ru: could not connect to host
wellcomp.com.br: did not receive HSTS header
+welldrake.com: could not connect to host
+wellmarts.com: did not receive HSTS header
wellness.so: could not connect to host
wellopp.com: did not receive HSTS header
wellproducedwines.com: did not receive HSTS header
-wellsolveit.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
wellsplasticsurgery.com: did not receive HSTS header
wellspringcamps.com: did not receive HSTS header
welovejobs.com: did not receive HSTS header
welovemail.com: could not connect to host
+welpo.me: could not connect to host
welpy.com: could not connect to host
weltentreff.com: could not connect to host
weltmeisterschaft.net: could not connect to host
weme.eu: could not connect to host
wendalyncheng.com: did not receive HSTS header
wendigo.pl: could not connect to host
-wenode.net: could not connect to host
+wengebowuguan.com: could not connect to host
+wenode.net: did not receive HSTS header
wentu.ml: could not connect to host
wenz.io: did not receive HSTS header
wer.sh: could not connect to host
@@ -15079,17 +16274,17 @@ werdeeintimo.de: could not connect to host
wereldplanner.nl: could not connect to host
werhatunsverraten.eu: could not connect to host
werken-bij-inwork.nl: could not connect to host
-werkenbijkfc.nl: could not connect to host
+werkenbijkfc.nl: did not receive HSTS header
werkplaatsoost.nl: did not receive HSTS header
werkruimtebottendaal.nl: could not connect to host
werner-schaeffer.de: did not receive HSTS header
wernerschaeffer.de: did not receive HSTS header
+wes-dev.com: did not receive HSTS header
wesayyesprogram.com: could not connect to host
wesleyharris.ca: did not receive HSTS header
wespeakgeek.co.za: could not connect to host
-westcanal.net: could not connect to host
westcoastaggregate.com: could not connect to host
-westendzone.com: max-age too low: 0
+westendzone.com: could not connect to host
westerhoud.nl: did not receive HSTS header
westlinwinds.com: could not connect to host
westsussexconnecttosupport.org: could not connect to host
@@ -15110,19 +16305,22 @@ wevolver.com: did not receive HSTS header
wewillgo.com: could not connect to host
wewillgo.org: did not receive HSTS header
wewlad.me: could not connect to host
+weyland.tech: did not receive HSTS header
wezl.net: did not receive HSTS header
wf-training-master.appspot.com: did not receive HSTS header (error ignored - included regardless)
wftda.com: did not receive HSTS header
wg-tools.de: could not connect to host
+whanau.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
whatisl.ovh: could not connect to host
whats.io: could not connect to host
whatsstalk.me: could not connect to host
-whatsyouroffer.co.uk: could not connect to host
+whatsyouroffer.co.uk: did not receive HSTS header
+wheelwright.org: did not receive HSTS header
when-release.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
when-release.ru: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
whereisjason.com: could not connect to host
whereismyorigin.cf: could not connect to host
-wherephoto.com: could not connect to host
+wherephoto.com: did not receive HSTS header
wheresben.today: could not connect to host
whilsttraveling.com: could not connect to host
whisker.network: could not connect to host
@@ -15132,9 +16330,9 @@ whitehat.id: did not receive HSTS header
whiterabbit.org: did not receive HSTS header
whiterabbitcakery.com: could not connect to host
whiteroom.agency: did not receive HSTS header
-whiteshadowimperium.com: could not connect to host
-whitestagforge.com: could not connect to host
+whitestagforge.com: did not receive HSTS header
whoclicks.net: could not connect to host
+whoisamitsingh.com: did not receive HSTS header
whoisapi.online: could not connect to host
wholebites.com: max-age too low: 7889238
wholikes.us: could not connect to host
@@ -15148,7 +16346,7 @@ wibuw.com: could not connect to host
widdleguy.com: did not receive HSTS header
wideinfo.org: did not receive HSTS header
widenews.org: did not receive HSTS header
-wienerwichtelchallenge.at: could not connect to host
+wienerwichtelchallenge.at: did not receive HSTS header
wieninternational.at: did not receive HSTS header
wificafehosting.com: did not receive HSTS header
wifimapa.cz: could not connect to host
@@ -15163,7 +16361,6 @@ wildbee.org: could not connect to host
wildbirds.dk: did not receive HSTS header
wildcard.hu: could not connect to host
wilddog.com: did not receive HSTS header
-wildewood.ca: could not connect to host
wilf1rst.com: could not connect to host
wilfrid-calixte.fr: could not connect to host
wilhelm-nathan.de: could not connect to host
@@ -15174,6 +16371,7 @@ william.si: did not receive HSTS header
williamboundsltd.com: could not connect to host
williamle.com: did not receive HSTS header
williamsapiens.com: could not connect to host
+williamsonshore.com: max-age too low: 0
williamtm.design: could not connect to host
willkommen-fuerstenberg.de: could not connect to host
willosagiede.com: did not receive HSTS header
@@ -15187,7 +16385,7 @@ windowwellexperts.com: did not receive HSTS header
winds.cf: could not connect to host
windwoodmedia.com: could not connect to host
windwoodweb.com: could not connect to host
-wine-importer.ru: could not connect to host
+wine-importer.ru: did not receive HSTS header
winebid.com: could not connect to host
winecodeavocado.com: could not connect to host
wineworksonline.com: could not connect to host
@@ -15203,12 +16401,14 @@ winsec.nl: could not connect to host
winshiplending.com: could not connect to host
winsufi.biz: could not connect to host
wintercircle.co: max-age too low: 60
-wintermeyer-consulting.de: could not connect to host
wipc.net: did not receive HSTS header
wipply.com: could not connect to host
wirbatz.org: did not receive HSTS header
wirc.gr: could not connect to host
+wiredcut.com: did not receive HSTS header
wireless-emergency-stop.com: did not receive HSTS header
+wirelesswatch.com.au: did not receive HSTS header
+wiretrip.io: did not receive HSTS header
wirkaufendeinau.to: could not connect to host
wisak.eu: could not connect to host
wisdomize.me: could not connect to host
@@ -15237,6 +16437,7 @@ wmawri.com: did not receive HSTS header
wmcuk.net: did not receive HSTS header
wmfinanz.com: could not connect to host
wmoda.com.br: could not connect to host
+wnmed.com.au: did not receive HSTS header
wnmm.nl: could not connect to host
wnnc.co.uk: could not connect to host
wobblylang.org: could not connect to host
@@ -15245,12 +16446,13 @@ wod-stavby.cz: could not connect to host
wodice.com: could not connect to host
wohnungsbau-ludwigsburg.de: did not receive HSTS header
woima.fi: max-age too low: 604800
-wokeai.net: did not receive HSTS header
+wokeai.net: could not connect to host
woktoss.com: could not connect to host
wolfemg.com: could not connect to host
wolfenland.net: did not receive HSTS header
wolfesden.com: could not connect to host
wolfram.io: could not connect to host
+wolkenspeicher.org: could not connect to host
wollekorb.de: could not connect to host
womf.org: did not receive HSTS header
womosale.de: could not connect to host
@@ -15262,43 +16464,47 @@ wondy.com: could not connect to host
woodlandschurch.net: max-age too low: 43200
woodmafia.com.au: could not connect to host
woodworkertip.com: did not receive HSTS header
+woomai.net: did not receive HSTS header
woomu.me: could not connect to host
woording.com: could not connect to host
wootton95.com: could not connect to host
wooviet.com: could not connect to host
wopen.org: could not connect to host
wordbits.net: did not receive HSTS header
+wordlessecho.com: could not connect to host
wordplay.one: could not connect to host
+wordpress-test.site: could not connect to host
wordpresspro.cl: did not receive HSTS header
wordsofamaster.com: could not connect to host
work-and-jockel.de: did not receive HSTS header
-workemy.com: did not receive HSTS header
+workemy.com: could not connect to host
workfone.io: could not connect to host
+workissime.com: did not receive HSTS header
workpermit.com.vn: could not connect to host
-workray.com: did not receive HSTS header
worksofwyoming.org: did not receive HSTS header
workwithgo.com: could not connect to host
world-education-association.org: could not connect to host
worldchess.london: could not connect to host
-worldfree4.org: could not connect to host
+worldfree4.org: did not receive HSTS header
worldlist.org: could not connect to host
worldpovertysolutions.org: did not receive HSTS header
worldsbeststory.com: did not receive HSTS header
worldwhisperer.net: could not connect to host
wormholevpn.net: could not connect to host
-worshapp.com: could not connect to host
+worshapp.com: did not receive HSTS header
wow-travel.eu: could not connect to host
+wow202y5.com: did not receive HSTS header
wowapi.org: could not connect to host
wowinvasion.com: did not receive HSTS header
wp-fastsearch.de: could not connect to host
-wp-rescue.com.au: did not receive HSTS header
+wp-rescue.com.au: could not connect to host
wp-stack.pro: could not connect to host
wp6.pw: could not connect to host
wpblog.com.tw: could not connect to host
wpcarer.pro: could not connect to host
-wpcdn.bid: did not receive HSTS header
wpcheck.io: could not connect to host
wpcontrol.se: could not connect to host
+wpfast.net: could not connect to host
wpfortify.com: could not connect to host
wpg-inc.com: did not receive HSTS header
wphelpwithhomework.tk: could not connect to host
@@ -15321,6 +16527,7 @@ wrfu.co.nz: did not receive HSTS header
wriedts.de: did not receive HSTS header
wrightdoumawedding.com: could not connect to host
writeapp.me: did not receive HSTS header
+writemytermpapers.com: could not connect to host
writing-expert.com: could not connect to host
wrldevelopment.com: did not receive HSTS header
wroffle.com: did not receive HSTS header
@@ -15333,13 +16540,14 @@ wss.com.ve: could not connect to host
wsscompany.com.ve: could not connect to host
wsup.social: could not connect to host
wtwk.com: could not connect to host
-wubify.com: could not connect to host
+wubify.com: did not receive HSTS header
wubocong.com: could not connect to host
wubthecaptain.eu: could not connect to host
wuchipc.com: could not connect to host
wufupay.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
wuhengmin.com: could not connect to host
wulpi.it: did not receive HSTS header
+wumai.cloud: did not receive HSTS header
wumbo.kiwi: could not connect to host
wundtherapie-schulung.de: could not connect to host
wurzelzwerg.net: could not connect to host
@@ -15349,21 +16557,22 @@ wvr-law.de: did not receive HSTS header
wvw698.com: max-age too low: 2592000
www-001133.com: could not connect to host
www-0385.com: could not connect to host
-www-1116.com: did not receive HSTS header
+www-1116.com: could not connect to host
www-1117.com: could not connect to host
www-38978.com: could not connect to host
www-39988.com: did not receive HSTS header
www-507.net: could not connect to host
www-62755.com: did not receive HSTS header
+www-66136.com: did not receive HSTS header
www-68277.com: 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-8003.com: could not connect to host
www-88599.com: did not receive HSTS header
www-8887999.com: could not connect to host
-www-9995.com: did not receive HSTS header
-www-djbet.com: did not receive HSTS header
-www-jinshavip.com: did not receive HSTS header
+www-9995.com: could not connect to host
+www-djbet.com: could not connect to host
+www-jinshavip.com: could not connect to host
www.amazon.ca: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
www.amazon.co.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
www.amazon.co.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
@@ -15400,18 +16609,21 @@ www.viasinc.com: did not receive HSTS header
www.zenpayroll.com: did not receive HSTS header
www3.info: could not connect to host
wxrlab.com: could not connect to host
-wxukang.cn: did not receive HSTS header
+wxukang.cn: could not connect to host
+wxyz.buzz: could not connect to host
wy6.org: did not receive HSTS header
wybmabiity.com: could not connect to host
wygluszanie.eu: could not connect to host
+wylog.ph: could not connect to host
wyu.cc: could not connect to host
wyzphoto.nl: did not receive HSTS header
wyzwaniemilosci.com: could not connect to host
-wzfetish.com.br: could not connect to host
+wzrd.in: did not receive HSTS header
+x-iweb.ru: did not receive HSTS header
x-pertservice.com: did not receive HSTS header
x-power-detox.com: could not connect to host
x-ripped-hd.com: could not connect to host
-x1616.tk: could not connect to host
+x1be.win: could not connect to host
x23.eu: did not receive HSTS header
x2c0.net: did not receive HSTS header
x2w.io: could not connect to host
@@ -15419,20 +16631,25 @@ x3led.com: could not connect to host
x509.pub: could not connect to host
x509.pw: could not connect to host
x64architecture.com: could not connect to host
-xanax.pro: could not connect to host
+x69.biz: could not connect to host
+x69x.net: could not connect to host
xanderweaver.com: did not receive HSTS header
xandocs.com: could not connect to host
xat.re: did not receive HSTS header
-xavierbarroso.com: could not connect to host
+xavierbarroso.com: did not receive HSTS header
+xawen.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
xbc.nz: could not connect to host
xbind.io: could not connect to host
xchangeinfo.com: could not connect to host
xchating.com: could not connect to host
xcompany.one: could not connect to host
xcoop.me: did not receive HSTS header
+xd.fi: did not receive HSTS header
xd.gov: did not receive HSTS header
xdd.io: could not connect to host
xdty.org: could not connect to host
+xecure.zone: could not connect to host
+xecureit.com: could not connect to host
xehoivn.vn: could not connect to host
xellos.ga: could not connect to host
xellos.ml: could not connect to host
@@ -15453,13 +16670,13 @@ xiaolvmu.com: could not connect to host
xiaolvmu.me: could not connect to host
xiaomionline24.pl: could not connect to host
xiaoxiao.im: could not connect to host
-xiaxuejin.cn: did not receive HSTS header
+xiaxuejin.cn: could not connect to host
xilegames.com: could not connect to host
xiliant.com: did not receive HSTS header
-ximage.me: did not receive HSTS header
+ximage.me: could not connect to host
ximens.me: could not connect to host
xinbiji.cn: could not connect to host
-xinex.cz: could not connect to host
+xinex.cz: did not receive HSTS header
xing.ml: could not connect to host
xinghuokeji.xin: could not connect to host
xingiahanvisa.net: did not receive HSTS header
@@ -15471,15 +16688,17 @@ xivpn.com: could not connect to host
xiyu.it: did not receive HSTS header
xiyu.moe: did not receive HSTS header
xjoi.net: could not connect to host
-xjoin.de: could not connect to host
xlaff.com: could not connect to host
xlboo.com: did not receive HSTS header
xlfblog.com: did not receive HSTS header
xlinar.com: could not connect to host
+xmerak.com: could not connect to host
xmiui.com: could not connect to host
xmonk.org: did not receive HSTS header
xmr.my: could not connect to host
+xn-----8kcgbo2bmdgkdacthvjf.xn--p1ai: could not connect to host
xn----7sbmucgqdbgwwc5e9b.xn--p1ai: could not connect to host
+xn--3lqp21gwna.cn: could not connect to host
xn--3lqp21gwna.xn--fiqs8s: could not connect to host
xn--3lqp21gwna.xn--fiqz9s: could not connect to host
xn--3lqt7ir4md4tzwa.cn: did not receive HSTS header
@@ -15490,10 +16709,12 @@ xn--4dbjwf8c.ga: could not connect to host
xn--4dbjwf8c.gq: could not connect to host
xn--4dbjwf8c.ml: could not connect to host
xn--4dbjwf8c.tk: could not connect to host
+xn--68jub.pw: could not connect to host
xn--6cv66l79sp0n0ibo7s9ne.xyz: did not receive HSTS header
xn--7rvz7ku3ppnr.jp: could not connect to host
xn--7v8h.cf: could not connect to host
-xn--80aaihqncaejjobbu6v.xn--p1ai: did not receive HSTS header
+xn--80aaagmgvmvmcuoq7r.xn--p1ai: did not receive HSTS header
+xn--80aaihqncaejjobbu6v.xn--p1ai: max-age too low: 0
xn--80ablh1c.online: could not connect to host
xn--80ac0aqlt.xn--p1ai: could not connect to host
xn--80aocgsfei.xn--p1ai: could not connect to host
@@ -15512,8 +16733,10 @@ xn--e--4h4axau6ld4lna0g.com: could not connect to host
xn--e--ig4a4c3f6bvc5et632i.com: could not connect to host
xn--e--k83a5h244w54gttk.xyz: could not connect to host
xn--ekr87w7se89ay98ezcs.biz: did not receive HSTS header
+xn--gfrr-7qa.li: could not connect to host
xn--gmq92k.nagoya: could not connect to host
xn--grnderlehrstuhl-0vb.de: could not connect to host
+xn--hfk-allgu-schwaben-stb.de: could not connect to host
xn--hwt895j.xn--kpry57d: could not connect to host
xn--internetlnen-1cb.com: could not connect to host
xn--jp-6l5cs1yf3ivjsglphyv.net: could not connect to host
@@ -15530,6 +16753,7 @@ xn--ls8hi7a.tk: could not connect to host
xn--maraa-rta.org: could not connect to host
xn--mensenges-o1a8c.gq: could not connect to host
xn--mhringen-65a.de: did not receive HSTS header
+xn--mhsv04avtt1xi.com: could not connect to host
xn--milchaufschumer-test-lzb.de: could not connect to host
xn--n8jubz39q0g0afpa985c.com: could not connect to host
xn--neb-tma3u8u.xyz: could not connect to host
@@ -15540,11 +16764,12 @@ xn--pckqk6xk43lunk.net: could not connect to host
xn--qckqc0nxbyc4cdb4527err7c.biz: did not receive HSTS header
xn--qckyd1cu698a35zarib.xyz: could not connect to host
xn--r77hya.ga: could not connect to host
-xn--rlcus7b3d.xn--xkc2dl3a5ee0h: could not connect to host
xn--rt-cja.eu: could not connect to host
xn--sdkwa9azd389v01ya.com: did not receive HSTS header
xn--srenpind-54a.dk: could not connect to host
+xn--sz8h.ml: could not connect to host
xn--t8j2a3042d.xyz: could not connect to host
+xn--t8j4aa4nyhxa7duezbl49aqg5546e264d.net: could not connect to host
xn--tda.ml: could not connect to host
xn--thorme-6uaf.ca: could not connect to host
xn--u9jy16ncfao19mo8i.nagoya: could not connect to host
@@ -15557,6 +16782,7 @@ xn--vck8crcu789ajtaj92eura.xyz: could not connect to host
xn--w22a.jp: could not connect to host
xn--werner-schffer-fib.de: did not receive HSTS header
xn--wmq.jp: could not connect to host
+xn--wq9h.ml: could not connect to host
xn--xdtx3pfzbiw3ar8e7yedqrhui.com: could not connect to host
xn--xz1a.jp: could not connect to host
xn--y8j2eb5631a4qf5n0h.com: could not connect to host
@@ -15567,36 +16793,45 @@ xn--yoamomisuasbcn-ynb.com: could not connect to host
xn--zck9a4b352yuua.jp: did not receive HSTS header
xng.io: did not receive HSTS header
xobox.me: could not connect to host
+xoda.pw: could not connect to host
xoffy.com: did not receive HSTS header
xom.party: could not connect to host
xombra.com: could not connect to host
xor-a.net: could not connect to host
+xotika.tv: could not connect to host
xpenology-fr.net: could not connect to host
xperiacodes.com: could not connect to host
xpi.fr: could not connect to host
+xpj.bet: did not receive HSTS header
xpj.sx: could not connect to host
+xpjcunkuan.com: could not connect to host
xpressprint.com.br: max-age too low: 90
xpwn.cz: could not connect to host
-xq55.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+xq55.com: did not receive HSTS header
xqin.net: could not connect to host
xrp.pw: could not connect to host
+xscancun.com: could not connect to host
xscapers.com: did not receive HSTS header
xsstime.nl: could not connect to host
xsyds.cn: did not receive HSTS header
xt.om: did not receive HSTS header
+xtenz.xyz: could not connect to host
xtom.email: could not connect to host
-xtream-hosting.com: did not receive HSTS header
+xtream-hosting.com: could not connect to host
xtream-hosting.de: could not connect to host
xtream-hosting.eu: could not connect to host
xtreamhosting.eu: could not connect to host
xtrim.ru: did not receive HSTS header
xtzone.be: could not connect to host
+xuanmeishe.top: could not connect to host
xuexb.com: did not receive HSTS header
+xujan.com: could not connect to host
xuntaosms.com: could not connect to host
-xupeng.me: could not connect to host
+xupeng.me: did not receive HSTS header
xuyh0120.win: did not receive HSTS header
-xwalck.se: could not connect to host
xxbase.com: did not receive HSTS header
+xxx3dbdsm.com: could not connect to host
+xxxladyboysporn.com: could not connect to host
xy1919.com: could not connect to host
xy6161.com: could not connect to host
xy6262.com: could not connect to host
@@ -15607,11 +16842,12 @@ xy7373.com: could not connect to host
xyndrac.net: max-age too low: 2592000
xynex.us: could not connect to host
xynta.ch: could not connect to host
-xza.fr: could not connect to host
+xzoneadventure.com: did not receive HSTS header
y-o-w.com: did not receive HSTS header
y-s.pw: could not connect to host
y3451.com: could not connect to host
yaay.com.br: could not connect to host
+yabrt.cn: could not connect to host
yaccin.com: could not connect to host
yachts-magazine.com: did not receive HSTS header
yagi2.com: did not receive HSTS header
@@ -15619,18 +16855,19 @@ yahoo.ax: could not connect to host
yalla.jp: did not receive HSTS header
yamamo10.com: could not connect to host
yameveo.com: did not receive HSTS header
+yangmaodang.org: did not receive HSTS header
yanwh.xyz: did not receive HSTS header
-yaoidreams.com: did not receive HSTS header
-yaporn.tv: did not receive HSTS header
+yaoidreams.com: could not connect to host
+yaporn.tv: could not connect to host
yarchives.jp: could not connect to host
yard-fu.com: could not connect to host
yardbird.us: could not connect to host
yarnhookup.com: did not receive HSTS header
+yarogneva.ru: could not connect to host
yasinaydin.net: did not receive HSTS header
yasutomonodokoiko.com: did not receive HSTS header
yaucy.win: could not connect to host
yawen.tw: did not receive HSTS header
-ybresson.com: could not connect to host
ybscareers.co.uk: did not receive HSTS header
ycaaz.com: did not receive HSTS header
ycc.wtf: could not connect to host
@@ -15641,41 +16878,46 @@ yello.website: could not connect to host
yellowcar.website: could not connect to host
yemalu.com: could not connect to host
yemekbaz.az: could not connect to host
+yennhi.co: could not connect to host
yenniferallulli.com: could not connect to host
yenniferallulli.de: could not connect to host
yenniferallulli.es: did not receive HSTS header
yenniferallulli.moda: could not connect to host
yenniferallulli.nl: could not connect to host
+yenpape.com: did not receive HSTS header
yepbitcoin.com: could not connect to host
yesdevnull.net: did not receive HSTS header
yesfone.com.br: could not connect to host
yestees.com: did not receive HSTS header
-yeswecan.co.bw: did not receive HSTS header
yetcore.io: could not connect to host
yetishirt.com: could not connect to host
yffengshi.ml: could not connect to host
ygcdyf.com: did not receive HSTS header
yggdar.ga: could not connect to host
+yh35.net: max-age too low: 86400
yhori.xyz: could not connect to host
+yhrd.org: did not receive HSTS header
yibaoweilong.top: could not connect to host
yibin0831.com: could not connect to host
yikzu.cn: could not connect to host
yin.roma.it: did not receive HSTS header
+yin8888.tv: did not receive HSTS header
ying299.com: could not connect to host
ying299.net: could not connect to host
yinga.ga: did not receive HSTS header
yingsuo.ltd: could not connect to host
yingyj.com: did not receive HSTS header
yinhe12.net: did not receive HSTS header
+yipingguo.com: did not receive HSTS header
yippie.nl: could not connect to host
yizhu.com: could not connect to host
yjsoft.me: could not connect to host
+ylilauta.org: could not connect to host
ylk.io: could not connect to host
ynode.co: did not receive HSTS header
ynsn.nl: could not connect to host
yntongji.com: could not connect to host
yob.vn: could not connect to host
-yobbelwobbel.de: could not connect to host
yobst.tk: could not connect to host
yoga-prive.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
yoga.is-an-engineer.com: could not connect to host
@@ -15687,66 +16929,76 @@ yoimise.net: did not receive HSTS header
yoiyado.info: did not receive HSTS header
yokeepo.com: could not connect to host
yolo-csgo.com: could not connect to host
-yolocelebs.com: did not receive HSTS header
+yolocelebs.com: could not connect to host
yoloprod.fr: could not connect to host
yoloseo.com: could not connect to host
yomena.in: could not connect to host
yomepre.com: could not connect to host
yopers.com: did not receive HSTS header
yorkshireterrier.com.br: could not connect to host
-yorname.ml: could not connect to host
+yorname.ml: did not receive HSTS header
yoru.me: could not connect to host
-yoticonnections.com: could not connect to host
yotilabs.com: could not connect to host
youcaitian.com: did not receive HSTS header
youcancraft.de: could not connect to host
youcanfuckoff.xyz: could not connect to host
youcontrol.ru: could not connect to host
+youdowell.com: could not connect to host
youfencun.com: did not receive HSTS header
+youjizz.bz: could not connect to host
youlend.com: did not receive HSTS header
youlog.net: could not connect to host
+youmiracle.com: could not connect to host
+youmonit.me: could not connect to host
youngandunited.nl: did not receive HSTS header
younl.net: could not connect to host
youon.tokyo: did not receive HSTS header
+youran.me: could not connect to host
yourbapp.ch: could not connect to host
-yourcomputer.expert: did not receive HSTS header
yourgame.co.il: did not receive HSTS header
youri.me: could not connect to host
yourlovesong.com.mx: could not connect to host
-yourname.xyz: did not receive HSTS header
+yourname.xyz: could not connect to host
yoursbookstore.jp: max-age too low: 0
yoursecondphone.co: could not connect to host
yourself.today: could not connect to host
yourstrongbox.com: could not connect to host
+yourtrainingsolutions.com: did not receive HSTS header
youruseragent.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
yourznc.com: could not connect to host
yousite.by: could not connect to host
youth2009.org: did not receive HSTS header
youtube: could not connect to host
youtubeviews.ml: could not connect to host
+youwatchporn.com: could not connect to host
youyoulemon.com: could not connect to host
ypcs.fi: did not receive HSTS header
yryz.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
+ysicing.net: could not connect to host
yslbeauty.com: did not receive HSTS header
+yspeo.com: max-age too low: 2592000
ytcuber.xyz: could not connect to host
ythyth.com: max-age too low: 2592000
ytvwld.de: did not receive HSTS header
yu7.jp: did not receive HSTS header
+yuanbenlian.com: did not receive HSTS header
yudan.com.br: could not connect to host
yude.ml: could not connect to host
-yue2.net: did not receive HSTS header
yuema.net.cn: could not connect to host
yufan.me: did not receive HSTS header
yugege.cf: could not connect to host
yuhen.ru: did not receive HSTS header
-yuhuo.org: max-age too low: 0
yui.cat: did not receive HSTS header
+yuka.one: could not connect to host
yukijinji.moe: did not receive HSTS header
yukiminami.net: could not connect to host
+yukimochi.com: could not connect to host
yukimochi.io: could not connect to host
+yukimochi.jp: could not connect to host
yuko.moe: could not connect to host
yukonrefugees.com: could not connect to host
yum.beer: could not connect to host
+yum0.cn: could not connect to host
yumli.net: could not connect to host
yummyfamilyrecipes.com: could not connect to host
yummylooks.com: did not receive HSTS header
@@ -15757,17 +17009,21 @@ yuntama.xyz: could not connect to host
yunzhan.io: could not connect to host
yunzhu.org: could not connect to host
yuppi.tv: max-age too low: 43200
+yuqi.me: could not connect to host
yurinet.org: could not connect to host
yuriykuzmin.com: did not receive HSTS header
yutabon.com: could not connect to host
yuushou.com: could not connect to host
yux.fr: could not connect to host
yux.io: did not receive HSTS header
+yuxingxin.com: did not receive HSTS header
yuzu.tk: did not receive HSTS header
ywei.org: could not connect to host
ywyz.tech: could not connect to host
z-coder.com: could not connect to host
z0rro.net: could not connect to host
+z33.ch: did not receive HSTS header
+z33.co: could not connect to host
z3liff.com: could not connect to host
z3liff.net: could not connect to host
zacharopoulos.me: could not connect to host
@@ -15776,6 +17032,11 @@ zadieheimlich.com: did not receive HSTS header
zaem.tv: could not connect to host
zahnrechner-staging.azurewebsites.net: could not connect to host
zahyantechnologies.com: did not receive HSTS header
+zaidan.de: could not connect to host
+zaidan.eu: could not connect to host
+zaidanfood.com: could not connect to host
+zaidanfood.eu: could not connect to host
+zaidanlebensmittelhandel.de: could not connect to host
zakoncontrol.com: did not receive HSTS header
zalan.do: could not connect to host
zalohovaniburian.cz: could not connect to host
@@ -15786,7 +17047,8 @@ zaneweb.org: could not connect to host
zao.fi: could not connect to host
zaoext.com: could not connect to host
zaoshanghao-dajia.rhcloud.com: could not connect to host
-zap.yt: did not receive HSTS header
+zap.yt: could not connect to host
+zapatoshechoamano.pe: did not receive HSTS header
zargaripour.com: did not receive HSTS header
zarooba.com: could not connect to host
zavca.com: did not receive HSTS header
@@ -15799,6 +17061,7 @@ zdravotnickasluzba.eu: could not connect to host
zdrowiepaleo.pl: did not receive HSTS header
zdx.ch: max-age too low: 0
zeb.fun: could not connect to host
+zebibyte.cn: did not receive HSTS header
zebrababy.cn: could not connect to host
zebry.nl: did not receive HSTS header
zecrypto.com: could not connect to host
@@ -15810,38 +17073,43 @@ zehntner.ch: max-age too low: 3600
zeitzer-turngala.de: could not connect to host
zelfmoord.ga: could not connect to host
zelfstandigemakelaars.net: could not connect to host
-zellari.ru: did not receive HSTS header
+zellari.ru: could not connect to host
zeloz.xyz: could not connect to host
zenghx.tk: could not connect to host
-zenhaiku.com: did not receive HSTS header
+zenhaiku.com: could not connect to host
zeno-system.com: did not receive HSTS header
zenpayroll.com: did not receive HSTS header
zentience.dk: did not receive HSTS header
zentience.net: did not receive HSTS header
zentience.org: did not receive HSTS header
+zentiweb.nl: did not receive HSTS header
zentraler-kreditausschuss.de: did not receive HSTS header
zentralwolke.de: did not receive HSTS header
zenvite.com: could not connect to host
zenwears.com: could not connect to host
zenycosta.com: could not connect to host
+zeparadox.com: did not receive HSTS header
zepect.com: did not receive HSTS header
zera.com.au: could not connect to host
-zerekin.net: did not receive HSTS header
+zerekin.net: max-age too low: 86400
zero-sum.xyz: could not connect to host
zero-x-baadf00d.com: could not connect to host
zerocool.io: could not connect to host
zeroday.sk: did not receive HSTS header
zerofox.gq: could not connect to host
+zerolab.org: could not connect to host
zeroling.com: could not connect to host
zeroml.ml: could not connect to host
zerosource.net: could not connect to host
zerudi.com: did not receive HSTS header
zetadisseny.es: did not receive HSTS header
zeto365.pl: did not receive HSTS header
+zetrov.pl: did not receive HSTS header
zett4.me: max-age too low: 172800
zeug.co: could not connect to host
zewtie.com: could not connect to host
zeytin.pro: could not connect to host
+zfo.gg: could not connect to host
zgan.ga: could not connect to host
zh1.li: could not connect to host
zhang.wtf: could not connect to host
@@ -15855,7 +17123,7 @@ zhengouwu.com: could not connect to host
zhenmeish.com: could not connect to host
zhh.in: could not connect to host
zhihua-lai.com: did not receive HSTS header
-zhiin.net: did not receive HSTS header
+zhiin.net: could not connect to host
zhikin.com: could not connect to host
zhimajk.com: could not connect to host
zhome.info: could not connect to host
@@ -15865,10 +17133,12 @@ zhuji.com.cn: could not connect to host
zhuji5.com: could not connect to host
zhujicaihong.com: could not connect to host
zhuweiyou.com: did not receive HSTS header
+zi.is: could not connect to host
zi0r.com: did not receive HSTS header
zian.online: could not connect to host
zicklam.com: could not connect to host
zigcore.com.br: could not connect to host
+zii.bz: could not connect to host
zikirakhirzaman.com: could not connect to host
zinc-x.com: did not receive HSTS header
zinenapse.info: could not connect to host
@@ -15899,16 +17169,17 @@ zocken.com: did not receive HSTS header
zoe.vc: could not connect to host
zohar.link: could not connect to host
zohar.shop: could not connect to host
+zoi.jp: could not connect to host
zokster.net: could not connect to host
zolotoy-standart.com.ua: did not receive HSTS header
zombiesecured.com: could not connect to host
zomiac.pp.ua: could not connect to host
zonadebolsa.es: did not receive HSTS header
-zonadigital.co: did not receive HSTS header
zone403.net: 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
+zoo.city: could not connect to host
zoo24.de: did not receive HSTS header
zoofaeth.de: did not receive HSTS header
zoofit.com.au: did not receive HSTS header
@@ -15916,30 +17187,36 @@ zoological-gardens.eu: could not connect to host
zoomingin.net: max-age too low: 5184000
zoommailing.com: did not receive HSTS header
zoorigin.com: did not receive HSTS header
+zooxdata.com: could not connect to host
+zorki.nl: did not receive HSTS header
zortium.report: could not connect to host
zorz.info: could not connect to host
+zouyaoji.top: did not receive HSTS header
zoznamrealit.sk: did not receive HSTS header
+zpy.fun: could not connect to host
zq789.com: could not connect to host
zqhong.com: could not connect to host
zqjs.tk: could not connect to host
+zqwqz.com: could not connect to host
zrkr.de: could not connect to host
zrn.in: did not receive HSTS header
ztan.tk: could not connect to host
ztcaoll222.cn: could not connect to host
ztytian.com: could not connect to host
zuan-in.com: could not connect to host
+zubro.net: could not connect to host
zuckerfloh.de: did not receive HSTS header
zudomc.me: could not connect to host
zuehlcke.de: could not connect to host
zukix.com: could not connect to host
zulu7.com: did not receive HSTS header
-zumazar.ru: could not connect to host
zunftmarke.de: did not receive HSTS header
zutsu-raku.com: did not receive HSTS header
zuviel.space: could not connect to host
+zvejonys.lt: did not receive HSTS header
zvncloud.com: did not receive HSTS header
zvz.im: could not connect to host
-zwembadheeten.nl: could not connect to host
+zwembadheeten.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /home/trava90/REPO/UXP/security/manager/tools/getHSTSPreloadList.js :: processStsHeader :: line 131" data: no]
zx1168.com: could not connect to host
zx2268.com: could not connect to host
zxity.co.uk: could not connect to host
@@ -15954,5 +17231,4 @@ zyso.org: could not connect to host
zzb510.com: could not connect to host
zzb6688.com: could not connect to host
zzb8899.com: could not connect to host
-zzpd.nl: did not receive HSTS header
zzw.ca: could not connect to host
diff --git a/security/manager/ssl/nsSTSPreloadList.inc b/security/manager/ssl/nsSTSPreloadList.inc
index 16dd59d71..8dab9a1ee 100644
--- a/security/manager/ssl/nsSTSPreloadList.inc
+++ b/security/manager/ssl/nsSTSPreloadList.inc
@@ -8,7 +8,7 @@
/*****************************************************************************/
#include <stdint.h>
-const PRTime gPreloadListExpirationTime = INT64_C(1544002174024000);
+const PRTime gPreloadListExpirationTime = INT64_C(1547572131850000);
class nsSTSPreload
{
@@ -32,22 +32,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "00550055.net", true },
{ "00660066.net", true },
{ "00770077.net", true },
- { "00778899.com", true },
+ { "0086286.com", true },
{ "00990099.net", true },
{ "00dani.me", true },
{ "00f.net", true },
{ "0100dev.com", false },
{ "0100dev.nl", false },
- { "013028.com", true },
- { "016028.com", true },
- { "016098.com", true },
- { "016328.com", true },
- { "019328.com", true },
- { "019398.com", true },
+ { "01011970.xyz", true },
+ { "01110000011100110111001001100111.com", true },
{ "01electronica.com.ar", true },
{ "01seguridad.com.ar", true },
{ "01smh.com", true },
- { "0222.mg", true },
{ "022367.com", true },
{ "022379.com", true },
{ "022391.com", true },
@@ -65,9 +60,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "02607.com", true },
{ "026122.com", true },
{ "02638.net", true },
- { "028718.com", true },
- { "029978.com", true },
{ "02smh.com", true },
+ { "0311buy.cn", true },
{ "03170317.com", true },
{ "0391315.com", true },
{ "046569.com", true },
@@ -75,21 +69,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "050.ca", true },
{ "050media.nl", true },
{ "0511315.net", true },
- { "0513c.com", true },
- { "055268.com", true },
{ "0573wk.com", true },
- { "066538.com", true },
+ { "06091994.xyz", true },
{ "06se.com", true },
{ "07733.win", true },
- { "078805.com", true },
- { "078810.com", true },
- { "078820.com", true },
- { "078860.com", true },
- { "078890.com", true },
{ "0788yh.com", true },
{ "0792112.com", true },
{ "0809yh.com", true },
- { "081638.com", true },
{ "081752.com", true },
{ "081763.com", true },
{ "081769.com", true },
@@ -118,7 +104,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "083962.com", true },
{ "083965.com", true },
{ "083967.com", true },
- { "086628.com", true },
{ "09115.com", true },
{ "0916app.com", true },
{ "09892.net", true },
@@ -136,11 +121,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "0wx.org", true },
{ "0x.cx", true },
{ "0x.sk", true },
+ { "0x0.cloud", true },
{ "0x0.li", true },
{ "0x00ff00ff.com", true },
{ "0x17.de", true },
{ "0x52.net", true },
- { "0x5f3759df.cf", true },
{ "0x7d.com", true },
{ "0x7fffffff.net", true },
{ "0x90.io", true },
@@ -150,7 +135,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "0xdc.io", false },
{ "0xdefaced.de", true },
{ "0xee.eu", true },
- { "0xf00.ch", true },
{ "0xfc.de", true },
{ "0xn.de", true },
{ "0yen.org", true },
@@ -158,8 +142,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "100-downloads.com", true },
{ "10000v.ru", true },
{ "1000minds.com", true },
- { "1000serien.com", false },
- { "1001firms.com", true },
+ { "1001carats.fr", true },
+ { "1001kartini.com", true },
{ "1001kerstpakketten.com", false },
{ "1001mv.com", true },
{ "10086.nl", true },
@@ -182,6 +166,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "10439.net", true },
{ "10453.net", true },
{ "10495.net", true },
+ { "1066.io", true },
{ "10774.net", true },
{ "10840.net", true },
{ "10gb.io", true },
@@ -189,7 +174,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "10og.de", true },
{ "10ppm.com", true },
{ "10seos.com", true },
- { "10v2.com", true },
{ "1100.so", true },
{ "110110110.net", true },
{ "112112112.net", true },
@@ -197,8 +181,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "112hz.com", true },
{ "113113113.net", true },
{ "114514ss.com", true },
+ { "1177107.com", true },
{ "118118118.net", true },
- { "11bt.cc", true },
{ "11dzon.com", true },
{ "11loc.de", true },
{ "11scc.com", true },
@@ -214,9 +198,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "123bearing.co.uk", true },
{ "123bearing.com", true },
{ "123bearing.eu", true },
- { "123comparer.fr", false },
+ { "123comparer.fr", true },
{ "123djdrop.com", true },
{ "123midterm.com", true },
+ { "123opstalverzekeringen.nl", true },
{ "123pay.ir", false },
{ "123plons.nl", true },
{ "123roulement.be", true },
@@ -227,18 +212,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "124133.com", true },
{ "124633.com", true },
{ "125m125.de", true },
+ { "1288366.com", true },
{ "1288fc.com", true },
{ "12photos.eu", true },
{ "12thmanrising.com", true },
{ "12vpn.net", true },
{ "130.ua", true },
- { "130978.com", true },
{ "132kv.ch", true },
- { "13318522.com", true },
{ "1359826938.rsc.cdn77.org", true },
- { "1391kj.com", true },
{ "1395kj.com", true },
- { "1396.net", true },
{ "13th-dover.uk", true },
{ "143533.com", true },
{ "143633.com", true },
@@ -266,6 +248,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "149733.com", true },
{ "14it.de", true },
{ "14x3.de", true },
+ { "15-10.com", true },
{ "1511774230.rsc.cdn77.org", true },
{ "152433.com", true },
{ "154233.com", true },
@@ -276,15 +259,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "1600esplanade.com", true },
{ "1644091933.rsc.cdn77.org", true },
{ "1661237.com", true },
- { "1689886.com", true },
+ { "166166.com", true },
{ "168bo9.com", true },
{ "168bo9.net", true },
+ { "16book.org", true },
{ "1750studios.com", false },
- { "17hats.com", true },
{ "1811559.com", true },
{ "1844329061.rsc.cdn77.org", true },
{ "1876996.com", true },
- { "18888msc.com", true },
{ "188da.com", true },
{ "188dv.com", true },
{ "189dv.com", true },
@@ -293,7 +275,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "18celebration.org", true },
{ "18f.gov", true },
{ "18f.gsa.gov", false },
- { "19216811.online", true },
{ "192168ll.repair", true },
{ "192433.com", true },
{ "1972969867.rsc.cdn77.org", true },
@@ -310,6 +291,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "1cover.com.au", true },
{ "1e9.nl", true },
{ "1f123.net", true },
+ { "1fach-digital.de", true },
{ "1hourproofreading.com", true },
{ "1it.click", true },
{ "1js.de", true },
@@ -317,6 +299,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "1km.ro", true },
{ "1kmi.co", true },
{ "1ll.uk", true },
+ { "1lord1faith.com", true },
{ "1m.duckdns.org", true },
{ "1montre.fr", true },
{ "1morebounce.co.uk", true },
@@ -326,8 +309,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "1on1on1.tv", true },
{ "1panorama.ru", true },
{ "1para.net", true },
+ { "1password.ca", true },
{ "1password.com", true },
+ { "1password.eu", true },
{ "1px.tv", true },
+ { "1q2w.nl", true },
{ "1r.is", true },
{ "1rs.nl", true },
{ "1salland.nl", true },
@@ -339,15 +325,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "1stclassbouncycastles.co.uk", true },
{ "1stforfun.co.uk", true },
{ "1stpeninsulabouncers.co.uk", true },
- { "1ststop.co.uk", true },
- { "1upinternet.com", true },
{ "1volcano.ru", true },
{ "1whw.co.uk", true },
{ "1wirelog.de", true },
{ "1wl.uk", true },
{ "2.wtf", true },
+ { "200.network", true },
{ "200fcw.com", true },
- { "2018.wales", true },
{ "2048-spiel.de", true },
{ "20at.com", true },
{ "20denier.com", true },
@@ -356,46 +340,53 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "21sthammersmith.org.uk", true },
{ "21x9.org", true },
{ "2222yh.com", true },
- { "22bt.cc", true },
{ "22digital.agency", true },
{ "22scc.com", true },
{ "230beats.com", true },
- { "2333666.xyz", true },
{ "2333blog.com", true },
{ "233abc.com", true },
{ "233blog.com", true },
- { "233ss.net", true },
+ { "233boy.com", true },
+ { "233bwg.com", true },
+ { "233hugo.com", true },
{ "233vps.com", true },
{ "24-7.jp", true },
- { "245meadowvistaway.com", true },
{ "246060.ru", true },
- { "247a.co.uk", true },
{ "247exchange.com", true },
{ "247healthshop.com", true },
{ "247medplan.com", true },
{ "24dian30.com", true },
+ { "24hour-locksmithsanantonio.com", true },
+ { "24hourlocksmithbaltimore.com", true },
+ { "24hourlocksmithdallastx.com", true },
+ { "24hourlocksmithdetroit.com", true },
{ "24hoursanantoniolocksmiths.com", true },
{ "24hourscienceprojects.com", true },
{ "24ip.com", true },
{ "24ip.de", true },
{ "24ip.fr", true },
{ "24timeravis.dk", true },
+ { "24zpravy.cz", true },
+ { "256pages.com", false },
{ "258da.com", true },
{ "25reinyan25.net", true },
{ "2600edinburgh.org", true },
{ "2600hq.com", true },
{ "263.info", true },
- { "27728522.com", true },
{ "28-industries.com", true },
{ "281180.de", true },
{ "2858958.com", true },
+ { "286.com", true },
{ "288da.com", true },
{ "28peaks.com", true },
{ "28spots.net", true },
+ { "291167.xyz", true },
{ "2912.nl", true },
{ "2948.ca", true },
+ { "297computers.com", true },
{ "298da.com", true },
{ "2991236.com", true },
+ { "2au.ru", true },
{ "2bas.nl", true },
{ "2bcompany.ch", true },
{ "2bis10.de", true },
@@ -411,7 +402,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "2cv-fahrer.de", true },
{ "2fm.ie", true },
{ "2fraud.pro", true },
- { "2gen.com", true },
+ { "2g1s.net", true },
+ { "2h-nagoya.org", true },
{ "2heartsbookings.co.uk", true },
{ "2hypeenterprises.com", true },
{ "2kgwf.fi", true },
@@ -419,9 +411,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "2li.ch", true },
{ "2manydots.nl", true },
{ "2mb.solutions", true },
- { "2mir.com", true },
{ "2nains.ch", true },
{ "2nerds1bit.com", true },
+ { "2nics.net", true },
{ "2pay.fr", true },
{ "2programmers.net", true },
{ "2rsc.com", true },
@@ -429,6 +421,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "2stv.net", true },
{ "2ulcceria.nl", true },
{ "2wheel.com", true },
+ { "2y.fi", true },
{ "3-dot-careapp1-146314.appspot.com", true },
{ "300m.com", false },
{ "302422.com", true },
@@ -439,13 +432,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "304squadron.org", true },
{ "3056999.com", true },
{ "309422.com", true },
- { "30yearmortgagerates.net", true },
+ { "30hzcollective.com", true },
{ "310422.com", true },
{ "313422.com", true },
{ "314022.com", true },
{ "314122.com", true },
{ "314322.com", true },
{ "314522.com", true },
+ { "314553.com", true },
{ "314622.com", true },
{ "314633.com", true },
{ "314922.com", true },
@@ -525,7 +519,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "354933.com", true },
{ "356433.com", true },
{ "360live.fr", true },
+ { "360rail.nl", true },
{ "360woodworking.com", true },
+ { "364553.com", true },
{ "365365.com", true },
{ "365daysreview.com", true },
{ "365healthworld.com", true },
@@ -536,12 +532,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "373422.com", true },
{ "374933.com", true },
{ "375422.com", true },
- { "3778vip.com", true },
{ "379700.com", true },
{ "380422.com", true },
- { "38888msc.com", true },
{ "388da.com", true },
- { "38blog.com", true },
{ "390422.com", true },
{ "392422.com", true },
{ "393335.ml", true },
@@ -550,6 +543,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "394122.com", true },
{ "394322.com", true },
{ "394522.com", true },
+ { "394553.com", true },
{ "394622.com", true },
{ "394922.com", true },
{ "396422.com", true },
@@ -566,6 +560,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "3circlefunding.ch", true },
{ "3countiescastlehire.co.uk", true },
{ "3cs.ch", true },
+ { "3deeplearner.com", true },
{ "3djuegos.com", true },
{ "3dmedium.de", true },
{ "3dmusiclab.nl", true },
@@ -575,8 +570,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "3haeuserprojekt.org", true },
{ "3haueserprojekt.org", true },
{ "3hl0.net", true },
+ { "3ik.us", true },
{ "3james.com", true },
{ "3logic.ru", true },
+ { "3lot.ru", true },
{ "3n5b.com", true },
{ "3os.ooo", true },
{ "3phase.pw", true },
@@ -604,7 +601,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "3v4l.org", true },
{ "3weekdietworks.com", true },
{ "4-1-where.com", true },
- { "40-grad.de", true },
+ { "4-it.de", true },
{ "4000milestare.com", true },
{ "403.ch", true },
{ "404notfound.com.br", true },
@@ -616,30 +613,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "411film.com", true },
{ "411movie.com", true },
{ "414553.com", true },
+ { "41studio.com", true },
{ "41where.com", true },
{ "420java.com", true },
- { "4237.com", true },
- { "42day.info", true },
- { "42entrepreneurs.fr", true },
{ "439050.com", true },
{ "441jj.com", false },
{ "4444yh.com", true },
{ "448da.com", true },
{ "44scc.com", true },
- { "44sec.com", true },
- { "4500.co.il", false },
{ "451.ooo", true },
{ "4553s.com", true },
{ "4553vip.com", true },
- { "478933.com", true },
+ { "4736666.com", true },
{ "47essays.com", true },
{ "491mhz.net", true },
{ "49889.com", true },
{ "49dollaridahoregisteredagent.com", true },
+ { "4c-haircare.com", true },
{ "4decor.org", true },
{ "4everproxy.com", true },
{ "4eyes.ch", true },
{ "4fit.ro", true },
+ { "4flex.info", true },
{ "4freepress.com", true },
{ "4g-server.eu", false },
{ "4garage.com.br", true },
@@ -659,6 +654,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "4x.fi", true },
{ "4x4.lk", true },
{ "4xlabs.co", true },
+ { "50.pe", true },
{ "500a500.com", true },
{ "500b500.com", true },
{ "500c500.com", true },
@@ -692,6 +688,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "504922.com", true },
{ "506422.com", true },
{ "506pay.com", true },
+ { "508088.com", true },
{ "50lakeshore.com", true },
{ "50ma.xyz", true },
{ "50north.de", true },
@@ -705,12 +702,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "51877.net", true },
{ "519422.com", true },
{ "51acg.eu.org", true },
+ { "51tiaojiu.com", true },
{ "5214889.com", true },
{ "5214889.net", true },
{ "524022.com", true },
{ "524622.com", true },
{ "524922.com", true },
{ "525.info", true },
+ { "52hentai.ml", true },
{ "52kb365.com", true },
{ "52ncp.net", true },
{ "52sykb.com", true },
@@ -731,18 +730,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "541622.com", true },
{ "541722.com", true },
{ "541922.com", true },
- { "5432.cc", true },
{ "545922.com", true },
{ "546802.com", true },
{ "54below.com", true },
{ "5518k3.com", true },
{ "5533445.com", true },
{ "5555yh.com", true },
+ { "55797.com", true },
{ "558da.com", true },
- { "55bt.cc", true },
{ "55scc.com", true },
{ "576422.com", true },
{ "579422.com", true },
+ { "57he.com", true },
{ "57wilkie.net", true },
{ "583422.com", true },
{ "585422.com", true },
@@ -760,13 +759,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "5997891.com", true },
{ "5apps.com", true },
{ "5c1fd0f31022cbc40af9f785847baaf9.space", true },
- { "5chat.it", true },
{ "5crowd.com", true },
{ "5dm.tv", true },
- { "5ece.de", true },
{ "5francs.com", true },
{ "5gb.space", true },
{ "5kraceforals.com", true },
+ { "5percentperweek.com", true },
{ "5starbouncycastlehire.co.uk", true },
{ "5thchichesterscouts.org.uk", true },
{ "5w5.la", true },
@@ -827,8 +825,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "645722.com", true },
{ "645822.com", true },
{ "645922.com", true },
- { "645ds.cn", true },
- { "645ds.com", true },
{ "646022.com", true },
{ "646322.com", true },
{ "646722.com", true },
@@ -837,7 +833,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "64970.com", true },
{ "649722.com", true },
{ "649822.com", true },
- { "64bitgaming.de", true },
{ "651422.com", true },
{ "652422.com", true },
{ "6541166.com", true },
@@ -853,7 +848,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "6547766.com", true },
{ "6548855.com", true },
{ "6548877.com", true },
+ { "656088.com", true },
{ "659422.com", true },
+ { "66136.com", true },
{ "6616fc.com", true },
{ "66205.net", true },
{ "6633445.com", true },
@@ -862,13 +859,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "6664553.com", true },
{ "666668722.com", true },
{ "6666yh.com", true },
+ { "666omg.com", true },
{ "668da.com", true },
+ { "66bwf.com", true },
{ "670422.com", true },
{ "671422.com", true },
{ "672422.com", true },
{ "673422.com", true },
{ "676422.com", true },
- { "67899876.com", true },
{ "679422.com", true },
{ "680422.com", true },
{ "686848.com", true },
@@ -884,12 +882,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "6997896.com", true },
{ "69butterfly.com", true },
{ "69fps.gg", true },
- { "6ird.com", true },
{ "6lo.zgora.pl", true },
{ "6pm.com", true },
{ "6t-montjoye.org", true },
{ "6w6.la", true },
- { "6z3.net", true },
{ "700.az", true },
{ "704233.com", true },
{ "704533.com", true },
@@ -913,25 +909,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "736433.com", true },
{ "738433.com", true },
{ "739433.com", true },
- { "73info.com", true },
{ "740833.com", true },
{ "741833.com", true },
{ "742833.com", true },
{ "743833.com", true },
{ "74th.jp", true },
+ { "755k3.com", true },
+ { "7570.com", true },
{ "762.ch", true },
- { "771122.tv", true },
- { "7717a.com", true },
{ "772244.net", true },
{ "7733445.com", true },
{ "7777yh.com", true },
{ "777coin.com", true },
{ "778da.com", true },
+ { "783lab.com", true },
+ { "787k3.com", true },
{ "7885765.com", true },
{ "788da.com", true },
{ "7891553.com", true },
{ "7891997.com", true },
- { "789zr.com", true },
{ "7careconnect.com", true },
{ "7delights.com", true },
{ "7delights.in", true },
@@ -939,31 +935,34 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "7graus.pt", true },
{ "7kicks.com", true },
{ "7kovrikov.ru", true },
- { "7nw.eu", true },
{ "7proxies.com", true },
{ "7sons.de", true },
{ "7thcircledesigns.com", true },
+ { "7trade8.com", true },
{ "7x24servis.com", true },
+ { "80036.com", true },
{ "804322.com", true },
+ { "8086.cf", true },
{ "809422.com", true },
{ "80993.net", true },
{ "814022.com", true },
- { "81818app.com", true },
{ "8189196.com", true },
+ { "818bwf.com", true },
{ "818da.com", true },
- { "8206688.com", true },
{ "8522.com", true },
{ "8522club.com", true },
{ "8522hk.com", true },
{ "8522ph.com", true },
- { "8522top.com", true },
{ "8522tw.com", true },
{ "8522usa.com", true },
+ { "86286286.com", true },
{ "86499.com", true },
{ "8649955.com", true },
{ "8649966.com", true },
{ "8649977.com", true },
{ "8688fc.com", true },
+ { "86metro.ru", true },
+ { "8722.am", true },
{ "8722am.com", true },
{ "8722cn.com", true },
{ "8722hk.com", true },
@@ -977,7 +976,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "88889822.com", true },
{ "8888esb.com", true },
{ "8888yh.com", true },
+ { "888bwf.com", true },
{ "888msc.vip", true },
+ { "88bwf.com", true },
{ "8901178.com", true },
{ "8901178.net", true },
{ "8910899.com", true },
@@ -988,13 +989,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "8917818.net", true },
{ "8951889.com", true },
{ "8951889.net", true },
- { "8989k3.com", true },
{ "8992088.com", true },
{ "8992088.net", true },
{ "8ack.de", true },
{ "8ackprotect.com", true },
{ "8da188.com", true },
{ "8da2017.com", true },
+ { "8da222.com", true },
{ "8da88.com", true },
{ "8da999.com", true },
{ "8dabet.com", true },
@@ -1008,11 +1009,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "8thportsmouth.org.uk", true },
{ "8tuffbeers.com", true },
{ "8ung.online", true },
+ { "8xx.bet", true },
+ { "8xx.io", true },
+ { "8xx888.com", true },
+ { "8xxbet.net", true },
{ "9-11commission.gov", true },
{ "903422.com", true },
{ "905422.com", true },
{ "90r.jp", true },
- { "910kj.com", true },
{ "9118.com", true },
{ "911commission.gov", true },
{ "912422.com", true },
@@ -1020,9 +1024,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "914122.com", true },
{ "918116.com", true },
{ "918gd.com", true },
+ { "918yy.com", true },
{ "919422.com", true },
{ "91966.com", true },
- { "919945.com", true },
{ "91tianmi.com", false },
{ "91travel.info", true },
{ "924122.com", true },
@@ -1035,7 +1039,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "934122.com", true },
{ "943022.com", true },
{ "9449-27a1-22a1-e0d9-4237-dd99-e75e-ac85-2f47-9d34.de", true },
- { "9454.com", true },
{ "946022.com", true },
{ "946422.com", true },
{ "949022.com", true },
@@ -1050,18 +1053,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "972422.com", true },
{ "9788876.com", true },
{ "97bros.com", true },
- { "9822.com", true },
- { "9822.info", true },
+ { "9822.am", true },
+ { "9822.bz", true },
{ "9822am.com", true },
{ "9822cn.com", true },
{ "9822hk.com", true },
{ "9822ph.com", true },
{ "9822tw.com", true },
{ "9822usa.com", true },
- { "987987.com", true },
{ "98laba.com", true },
{ "98laba.net", true },
- { "9906753.net", true },
{ "9918883.com", true },
{ "9933445.com", true },
{ "99599.fi", true },
@@ -1074,13 +1075,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "99rst.org", true },
{ "9bingo.net", true },
{ "9farm.com", true },
- { "9iwan.net", true },
+ { "9fvip.net", true },
{ "9jajuice.com", true },
{ "9pkfz.com", true },
- { "9ss6.com", true },
+ { "9riddles.com", true },
{ "9tolife.be", true },
{ "9uelle.jp", true },
- { "9vies.ca", true },
{ "9vx.org", true },
{ "9won.kr", true },
{ "9y.at", true },
@@ -1092,8 +1092,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "a-little-linux-box.at", true },
{ "a-msystems.com", true },
{ "a-oben.org", true },
- { "a-shafaat.ir", true },
{ "a-starbouncycastles.co.uk", true },
+ { "a-wife.net", true },
{ "a0print.nl", true },
{ "a1bouncycastlehire.com", true },
{ "a1jumpandbounce.co.uk", true },
@@ -1106,14 +1106,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "a4sound.com", true },
{ "a632079.me", true },
{ "a7m2.me", true },
- { "a8q.org", true },
{ "aa-tour.ru", true },
{ "aa1718.net", true },
+ { "aa43d.cn", true },
{ "aa6688.net", true },
{ "aaapl.com", true },
{ "aabanet.com.br", true },
{ "aaben-bank.dk", true },
{ "aabenbank.dk", true },
+ { "aacfree.com", true },
{ "aagetransport.no", true },
{ "aalalbayt.com", true },
{ "aalalbayt.net", true },
@@ -1128,21 +1129,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aapas.org.ar", true },
{ "aardvarksolutions.co.za", true },
{ "aarkue.eu", true },
+ { "aaron.cm", false },
{ "aaron.xin", true },
{ "aaronhorler.com", true },
- { "aaronhorler.com.au", true },
{ "aaronkimmig.de", true },
{ "aaronroyle.com", true },
{ "aaronsilber.me", true },
{ "aatf.us", true },
{ "aati.be", true },
+ { "aati.info", true },
{ "aavienna.com", true },
+ { "ab-bauservice-berlin.de", true },
{ "abaapplianceservice.com", true },
+ { "abaaustin.com", true },
{ "abacus-events.co.uk", true },
{ "abacusbouncycastle.co.uk", true },
{ "abacustech.co.jp", true },
{ "abacustech.net", true },
{ "abacustech.org", true },
+ { "abandonedmines.gov", true },
{ "abbadabbabouncycastles.co.uk", true },
{ "abbas.ch", true },
{ "abborsjo.fi", true },
@@ -1158,13 +1163,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "abckam.com", true },
{ "abcpartyhire.com", true },
{ "abcstudio.com.au", true },
+ { "abdel.me", true },
+ { "abdelsater.net", true },
{ "abdullah.pw", true },
+ { "abdulwahaab.ca", true },
{ "abe-elektro.de", true },
{ "abe-medical.jp", true },
{ "abeestrada.com", false },
{ "abeilles-idapi.fr", true },
{ "abenteuer-ahnenforschung.de", true },
- { "abeontech.com", true },
{ "aberdeenalmeras.com", true },
{ "aberdeencastles.co.uk", true },
{ "aberdeenjudo.co.uk", true },
@@ -1178,7 +1185,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "abilitycaresoftware.com", true },
{ "abilitynet.org.uk", true },
{ "abilityone.gov", true },
- { "abilma.com", true },
{ "abilymp06.net", true },
{ "abimelec.com", true },
{ "abinyah.com", true },
@@ -1215,6 +1221,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "abolitionistsociety.com", true },
{ "abolitionniste.com", true },
{ "abolizionista.com", true },
+ { "abonilla.com", true },
{ "abos.eu", true },
{ "abouncycastleman.co.uk", true },
{ "abouthrm.nl", true },
@@ -1229,20 +1236,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aboutyou.nl", true },
{ "abox-kb.com", true },
{ "abpis.hr", true },
- { "abracadabra.co.jp", false },
{ "abrakidabra.com.br", true },
{ "abraxan.pro", true },
{ "abrilect.com", true },
{ "abristolgeek.co.uk", true },
{ "abseits.org", true },
{ "absolem.cc", true },
+ { "absolutedouble.co.uk", true },
{ "absolutehaitian.com", true },
{ "absolutehosting.co.za", true },
{ "absolutelyinflatables.co.uk", true },
{ "absoluterush.net", true },
- { "absolutewaterproofingsolutions.com", true },
{ "absolutewebdesigns.com", true },
{ "abstraction21.com", true },
+ { "absturztau.be", true },
+ { "absturztaube.ch", true },
{ "absynthe-inquisition.fr", true },
{ "abthorpe.org", true },
{ "abulanov.com", true },
@@ -1263,10 +1271,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "academytv.com.au", true },
{ "acaeum.com", true },
{ "acampar.com.br", true },
+ { "acaptureservices.com", true },
{ "acara-yoga.de", true },
+ { "acareer.in", true },
+ { "acat.io", true },
{ "acbrussels-used.be", true },
{ "accadoro.it", true },
- { "accbay.com", true },
{ "accelaway.com", true },
{ "acceleratenetworks.com", true },
{ "accelerateyourworld.org", true },
@@ -1282,6 +1292,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "accessoirescheveuxchic.com", true },
{ "accessoripersmartphone.it", true },
{ "accme.co", true },
+ { "accoladescreens.com.au", true },
{ "accord-application.com", true },
{ "accordiondoor.com", true },
{ "accounts.firefox.com", true },
@@ -1297,17 +1308,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aceanswering.com", true },
{ "acecerts.co.uk", true },
{ "acecolleges.edu.au", true },
+ { "acedog.co", true },
{ "aceinflatables.com", true },
{ "aceinstituteonline.com", true },
- { "acelpb.com", true },
{ "acem.org.au", true },
{ "acemobileforce.com", true },
- { "acemypaper.com", true },
+ { "acen.eu", true },
{ "acendealuz.com.br", true },
{ "acerentalandsales.com", true },
{ "acerislaw.com", true },
{ "acessoeducacao.com", true },
{ "acevik.de", true },
+ { "acfo.org", true },
+ { "acg.social", true },
{ "acg18.us", false },
{ "acgtalktw.com", true },
{ "achalay.org", true },
@@ -1316,19 +1329,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "acheter-ethylotest.fr", true },
{ "achromatisch.de", true },
{ "achterblog.de", true },
- { "achterstieg.dedyn.io", true },
{ "achtzehn.eu", true },
{ "achtzehnterachter.de", true },
+ { "achtzig20.de", true },
{ "achwo.de", true },
+ { "acid.ninja", true },
{ "acidbin.co", true },
{ "aciety.com", true },
{ "aciksite.com", true },
+ { "ackermann.ch", true },
{ "ackis.duckdns.org", false },
{ "aclu.org", false },
{ "acluva.org", false },
{ "acme.beer", true },
{ "acmexyz123.info", true },
{ "acnpacific.com", true },
+ { "acodess.com", true },
{ "aconnor.xyz", true },
{ "acordes.online", true },
{ "acorncastles.co.uk", true },
@@ -1337,6 +1353,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "acoshift.me", true },
{ "acourse.io", true },
{ "acousti-tech.com", true },
+ { "acousticalsolutions.com", true },
{ "acoustics.network", true },
{ "acoustics.tech", true },
{ "acoustique-tardy.com", true },
@@ -1349,6 +1366,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "acrepairhutto.com", true },
{ "acrepairroundrocktx.com", true },
{ "acrevalue.com", true },
+ { "acriticismlab.org", true },
{ "acrolife.cz", true },
{ "acroso.me", true },
{ "across.ml", true },
@@ -1375,24 +1393,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "active-tluszcz.pl", true },
{ "active.hu", false },
{ "activecare-monitor.com", true },
- { "activeclearweb.com", true },
{ "activehire.co.uk", true },
{ "activeleisure.ie", true },
{ "activeworld.net", false },
+ { "activiteithardenberg.nl", true },
{ "activitesaintnicaise.org", true },
{ "activityeventhire.co.uk", true },
{ "actom.cc", true },
+ { "actonwoodworks.com", true },
{ "actors-cafe.net", true },
{ "actorsroom.com", true },
{ "actserv.co.ke", true },
+ { "actualidadiphone.com", true },
+ { "actualidadmotor.com", true },
{ "acuica.co.uk", false },
{ "acul.me", true },
{ "acupofsalt.tv", true },
{ "acus.gov", true },
{ "acwcerts.co.uk", true },
{ "acwi.gov", true },
- { "acy.com", true },
{ "acyfxasia.com", true },
+ { "acyume.com", true },
{ "ad-notam.asia", true },
{ "ad-notam.ch", true },
{ "ad-notam.co.uk", true },
@@ -1402,6 +1423,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ad-notam.it", true },
{ "ad-notam.pt", true },
{ "ad-notam.us", true },
+ { "ad13.in", true },
{ "ada.gov", true },
{ "adalis.org", true },
{ "adam-ant.co.uk", true },
@@ -1420,10 +1442,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "adamradocz.com", true },
{ "adams.dk", true },
{ "adamsbouncycastles.co.uk", true },
- { "adamsfoundationrepair.com", true },
{ "adamstas.com", true },
- { "adamwallington.co.uk", true },
{ "adamwilcox.org", true },
+ { "adamyuan.xyz", true },
{ "adapt-elektronik.com", true },
{ "adapt.de", true },
{ "adaptablesecurity.org", true },
@@ -1438,9 +1459,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "adderall.space", true },
{ "addicional.com", true },
{ "addictively.com", true },
- { "addiko.net", true },
{ "addisoncrump.info", true },
{ "addnine.com", true },
+ { "addon.watch", true },
{ "addones.net", true },
{ "addtoany.com", true },
{ "adduono.com", true },
@@ -1449,7 +1470,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "adeline.mobi", true },
{ "adentalsolution.com", true },
{ "adept.org.pl", true },
- { "adevel.eu", true },
+ { "adesa.co.uk", true },
+ { "adex.network", true },
{ "adf-safetytools.com", true },
{ "adftrasporti.it", true },
{ "adhd-inattentive.com", true },
@@ -1458,7 +1480,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "adimaja.com", true },
{ "adinariversloveschool.com", true },
{ "adingenierie.fr", true },
- { "adint.net", true },
{ "adiponectinsupplement.info", true },
{ "adiponectinsupplement.net", true },
{ "adjagu.org", true },
@@ -1470,6 +1491,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "adm-sarov.ru", true },
{ "adme.co.il", true },
{ "admin-serv.net", true },
+ { "admin.casa", true },
{ "admin.fedoraproject.org", true },
{ "admin.google.com", true },
{ "admin.stg.fedoraproject.org", true },
@@ -1477,14 +1499,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "administratorserwera.pl", true },
{ "adminlinux.pl", true },
{ "admino.cz", true },
- { "adminwerk.com", true },
{ "adminwiki.fr", true },
{ "admody.com", true },
{ "admongo.gov", true },
{ "adnanotoyedekparca.com", true },
{ "adnot.am", true },
{ "adnseguros.es", true },
- { "adoniscabaret.co.uk", true },
{ "adonnante.com", true },
{ "adoptionlink.co.uk", true },
{ "adora-illustrations.fr", true },
@@ -1493,24 +1513,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "adorecricket.com", true },
{ "adorewe.com", true },
{ "adoriasoft.com", false },
+ { "adorno-gymnasium.de", true },
{ "adoucisseur.shop", true },
{ "adquisitio.co.uk", true },
{ "adquisitio.es", true },
{ "adquisitio.fr", true },
{ "adquisitio.it", true },
{ "adr.gov", true },
+ { "adra.com", true },
{ "adrafinil.wiki", true },
{ "adrianbechtold.de", true },
{ "adriancitu.com", true },
{ "adriancostin.ro", true },
{ "adrianjensen.com", true },
{ "adrianmejias.com", true },
- { "adrien.vin", true },
{ "adrienkohlbecker.com", true },
{ "adriennesmiles.com", true },
- { "adrinet.tk", true },
{ "adrup.com", true },
+ { "adsamcik.com", true },
{ "adsbouncycastles.co.uk", true },
+ { "adsbtc.org", true },
{ "adsl2meg.fr", true },
{ "adtgroup.com", true },
{ "adurra.com", true },
@@ -1544,10 +1566,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "advocate-europe.eu", true },
{ "advocaten-avocats.be", true },
{ "advocatenalkmaar.org", true },
+ { "advocator.ca", true },
{ "advocoeurdehaan.nl", true },
{ "advokat-romanov.com", true },
{ "advtran.com", true },
{ "adware.pl", true },
+ { "adwokatkosterka.pl", true },
+ { "adwokatzdunek.pl", true },
{ "adws.io", true },
{ "adxperience.com", true },
{ "adzuna.at", true },
@@ -1565,6 +1590,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "adzuna.pl", true },
{ "adzuna.ru", true },
{ "adzuna.sg", true },
+ { "ae-construction.co.uk", true },
{ "aebian.org", true },
{ "aecexpert.fr", true },
{ "aegee-utrecht.nl", true },
@@ -1575,21 +1601,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aegrel.ee", true },
{ "aehe.us", true },
{ "aei.co.uk", true },
- { "aelurus.com", true },
+ { "aelisya.ch", true },
{ "aeon.co", true },
{ "aep-digital.com", true },
{ "aeradesign.com", true },
{ "aerandir.fr", true },
+ { "aerapass.io", true },
{ "aereco.com", true },
{ "aergia.eu", true },
{ "aerisnetwork.com", true },
{ "aero-pioneer.com", true },
+ { "aerobasegroup.com", true },
{ "aerobotz.com", true },
{ "aerosimexperience.com", true },
{ "aertel.ie", true },
{ "aessencia.com.br", true },
{ "aestheticdr.org", true },
- { "aesthetics-blog.com", true },
{ "aesthetx.com", true },
{ "aestore.by", true },
{ "aeternus.tech", true },
@@ -1605,7 +1632,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "afb24.de", true },
{ "afbeelding.im", true },
{ "afbeeldinguploaden.nl", true },
- { "afeefzarapackages.com", true },
+ { "afcompany.it", true },
+ { "afcurgentcarelyndhurst.com", true },
{ "affichagepub3.com", true },
{ "affiliatefeatures.com", true },
{ "affiliateroyale.com", true },
@@ -1615,6 +1643,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "affissioni.roma.it", true },
{ "affittacamere.roma.it", true },
{ "affordableazdivorce.com", true },
+ { "affordableblindsexpress.com", true },
+ { "affordableenergyadvocates.com", true },
{ "affordablehealthquotesforyou.com", true },
{ "affordablekilimanjaro.com", true },
{ "affordablemudjacking.com", true },
@@ -1626,7 +1656,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aficionados.com.br", true },
{ "afinadoronline.com.br", true },
{ "afinaudio.com", true },
- { "aflamtorrent.com", true },
{ "aflfreebets.com", true },
{ "aflowershop.ca", true },
{ "afmt.fr", true },
@@ -1650,6 +1679,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "afva.net", true },
{ "afzco.asia", true },
{ "ag-websolutions.de", true },
+ { "ag8-game.com", true },
{ "agalliasis.ch", true },
{ "agamsecurity.ch", true },
{ "agatajanik.de", true },
@@ -1657,10 +1687,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "agechecker.net", true },
{ "ageg.ca", true },
{ "agenceklic.com", true },
+ { "agencewebstreet.com", true },
{ "agenciadeempregosdourados.com.br", true },
{ "agenciafiscal.pe", true },
+ { "agencyinmotion.com", true },
{ "agenda-loto.net", false },
{ "agenda21senden.de", true },
+ { "agendatelefonica.com.br", true },
{ "agent-grow.com", true },
{ "agent6.com.au", true },
{ "agentprocessing.com", true },
@@ -1689,6 +1722,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "agoravox.fr", true },
{ "agoravox.it", true },
{ "agoravox.tv", true },
+ { "agostinhoenascimento.com.br", true },
{ "agotnes.com", true },
{ "agouraelectrical.com", true },
{ "agouraelectrician.com", true },
@@ -1705,29 +1739,34 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "agouraoutdoorlighting.com", true },
{ "agr.asia", true },
{ "agracan.com", true },
+ { "agrajag.nl", true },
{ "agrarking.de", true },
{ "agrarshop4u.de", true },
{ "agrekov.ru", true },
{ "agreor.com", true },
{ "agrichamber.com.ua", true },
+ { "agricolo.ch", true },
{ "agridir.site", true },
{ "agrilinks.org", true },
{ "agrios.de", true },
{ "agro-forestry.net", true },
- { "agro.rip", true },
{ "agroline.by", true },
- { "agroyard.com.ua", true },
+ { "agroxxi.ru", true },
{ "agsb.ch", true },
+ { "agscinemas.com", true },
+ { "agscinemasapp.com", true },
{ "agung-furniture.com", true },
{ "agwa.name", true },
{ "ahd.com", false },
{ "aheng.me", true },
{ "ahero4all.org", true },
{ "ahiru3.com", true },
+ { "ahkubiak.ovh", true },
{ "ahlaejaba.com", true },
{ "ahmad.works", true },
{ "ahmadly.com", true },
{ "ahmedabadflowermall.com", true },
+ { "ahmedcharles.com", true },
{ "ahmerjamilkhan.org", true },
{ "ahmetozer.org", true },
{ "ahosi.com", true },
@@ -1738,9 +1777,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ahxxm.com", true },
{ "ai-english.jp", true },
{ "ai-soft.co.jp", true },
+ { "ai.gov", true },
{ "aia.de", true },
- { "aibaoyou.com", true },
{ "aibenzi.com", true },
+ { "aicial.co.uk", true },
{ "aidanapple.com", true },
{ "aidanmontare.net", true },
{ "aide-valais.ch", true },
@@ -1752,6 +1792,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aifriccampbell.com", true },
{ "aigcev.org", true },
{ "aigenpul.se", true },
+ { "aignermunich.com", true },
+ { "aignermunich.de", true },
{ "aignermunich.jp", true },
{ "aiicy.org", true },
{ "aiida.se", true },
@@ -1763,10 +1805,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aikido-kiel.de", true },
{ "aikido-linz.at", true },
{ "aikido-wels.at", true },
+ { "aimax.com", true },
{ "aimeeandalec.com", true },
- { "aimerworld.com", true },
{ "aimgroup.co.tz", true },
{ "aimotive.com", true },
+ { "aimstoreglobal.com", true },
{ "aintevenmad.ch", true },
{ "aiois.com", true },
{ "aipbarcelona.com", true },
@@ -1774,17 +1817,77 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "air-shots.ch", true },
{ "air-we-go.co.uk", true },
{ "airbly.com", true },
+ { "airbnb.ae", true },
+ { "airbnb.at", true },
+ { "airbnb.be", true },
+ { "airbnb.ca", true },
+ { "airbnb.cat", true },
+ { "airbnb.ch", true },
+ { "airbnb.cl", true },
+ { "airbnb.co.cr", true },
+ { "airbnb.co.id", true },
+ { "airbnb.co.il", true },
+ { "airbnb.co.in", true },
+ { "airbnb.co.kr", true },
+ { "airbnb.co.nz", true },
+ { "airbnb.co.uk", true },
+ { "airbnb.co.ve", true },
{ "airbnb.com", true },
+ { "airbnb.com.ar", true },
+ { "airbnb.com.au", true },
+ { "airbnb.com.bo", true },
+ { "airbnb.com.br", true },
+ { "airbnb.com.bz", true },
+ { "airbnb.com.co", true },
+ { "airbnb.com.ec", true },
+ { "airbnb.com.gt", true },
+ { "airbnb.com.hk", true },
+ { "airbnb.com.hn", true },
+ { "airbnb.com.hr", true },
+ { "airbnb.com.kh", true },
+ { "airbnb.com.mt", true },
+ { "airbnb.com.my", true },
+ { "airbnb.com.ni", true },
+ { "airbnb.com.pa", true },
+ { "airbnb.com.pe", true },
+ { "airbnb.com.ph", true },
+ { "airbnb.com.py", true },
+ { "airbnb.com.sg", true },
+ { "airbnb.com.sv", true },
+ { "airbnb.com.tr", true },
+ { "airbnb.com.tw", true },
+ { "airbnb.com.ua", true },
+ { "airbnb.com.vn", true },
+ { "airbnb.cz", true },
+ { "airbnb.de", true },
+ { "airbnb.dk", true },
+ { "airbnb.es", true },
+ { "airbnb.fi", true },
+ { "airbnb.fr", true },
+ { "airbnb.gr", true },
+ { "airbnb.gy", true },
+ { "airbnb.hu", true },
+ { "airbnb.ie", true },
+ { "airbnb.is", true },
+ { "airbnb.it", true },
+ { "airbnb.jp", true },
+ { "airbnb.la", true },
+ { "airbnb.lu", true },
+ { "airbnb.mx", true },
+ { "airbnb.nl", true },
+ { "airbnb.no", true },
+ { "airbnb.pl", true },
+ { "airbnb.pt", true },
+ { "airbnb.ru", true },
+ { "airbnb.se", true },
{ "airbnbopen.com", true },
{ "airborne-inflatables.co.uk", true },
{ "airclass.com", true },
{ "aircomms.com", true },
- { "airconsboksburg.co.za", true },
- { "airconsfourways.co.za", true },
- { "airconsmidrand.co.za", true },
- { "airconssandton.co.za", true },
{ "airductclean.com", false },
{ "airductcleaning-fresno.com", true },
+ { "airductcleaninggrandprairie.com", true },
+ { "airductcleaningirving.com", true },
{ "airdur.eu", true },
{ "aireaseleaks.org", true },
{ "airetvie.com", true },
@@ -1804,8 +1907,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "airportlimototoronto.com", true },
{ "airpurifierproductsonline.com", true },
{ "airrestoration.ch", true },
- { "airsick.guide", true },
{ "airsoft.ch", true },
+ { "airtimerewards.co.uk", true },
{ "airvpn.org", true },
{ "airvuz.com", true },
{ "airwegobouncycastles.co.uk", true },
@@ -1815,12 +1918,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aisi316l.net", true },
{ "aisr.nl", true },
{ "aistockcharts.com", true },
+ { "aistrope.com", true },
{ "ait.com.ar", true },
{ "aiticon.com", true },
{ "aitosoftware.com", true },
{ "aiutodomestico.ch", true },
{ "aivd.lol", true },
- { "aivene.com", true },
{ "aiwdirect.com", true },
{ "aixvox.com", false },
{ "aixxe.net", true },
@@ -1856,26 +1959,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "akhealthconnection.com", true },
{ "akihito.com", true },
{ "akijo.de", true },
+ { "akilli-devre.com", true },
{ "akita-boutique.com", true },
{ "akiym.com", true },
- { "akj.io", true },
{ "akkbouncycastles.co.uk", true },
{ "akkeylab.com", true },
- { "akoch.net", true },
{ "akostecki.de", true },
{ "akovana.com", true },
{ "akoya.fi", true },
{ "akplates.org", true },
{ "akpwebdesign.com", true },
{ "akr.io", true },
- { "akracing.se", true },
- { "akronet.cz", true },
- { "akropol.cz", true },
+ { "akr.services", true },
+ { "akritikos.info", true },
+ { "akronet.cz", false },
+ { "akropol.cz", false },
{ "akropolis-ravensburg.de", true },
{ "aksehir.bel.tr", true },
{ "akselinurmio.fi", false },
{ "akshi.in", true },
- { "aktan.com.br", true },
{ "aktiv-naturheilmittel.at", true },
{ "aktiv-naturheilmittel.ch", true },
{ "aktiv-naturheilmittel.de", true },
@@ -1884,30 +1986,33 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aktuelle-uhrzeit.at", true },
{ "akuislam.com", true },
{ "akukas.com", true },
- { "akul.co.in", true },
{ "akustik.tech", true },
{ "akutun.cl", true },
{ "akvorrat.at", true },
{ "al3xpro.com", true },
{ "alab.space", true },
+ { "alabamadebtrelief.org", true },
{ "alaboard.com", true },
{ "aladdin.ie", true },
{ "aladdinschools.appspot.com", true },
{ "alainbaechlerphotography.ch", true },
+ { "alainfrancois.eu", true },
+ { "alainfrancois.nl", true },
{ "alainmargot.ch", true },
{ "alainodea.com", true },
{ "alainwolf.ch", true },
{ "alainwolf.net", true },
{ "alair.cn", false },
+ { "alamancetv.com", true },
{ "alamgir.works", true },
{ "alanberger.me.uk", true },
{ "alanhua.ng", true },
{ "alaninkenya.org", true },
- { "alanya.law", true },
{ "alaricfavier.eu", false },
{ "alarmcomplete.co.uk", true },
{ "alarna.de", true },
{ "alasdelalma.com.co", true },
+ { "alaskafishinglodges.net", true },
{ "alaskajewelry.com", true },
{ "alastairs-place.net", true },
{ "alaxyjewellers.co.za", true },
@@ -1923,20 +2028,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alboweb.nl", true },
{ "albuic.tk", true },
{ "alca31.com", true },
- { "alcatelonetouch.us", true },
{ "alchimic.ch", true },
{ "alcnutrition.com", true },
{ "alco-united.com", true },
{ "alcoholapi.com", true },
- { "aldes.co.za", true },
+ { "aldiabcs.com", true },
{ "aldien.com.br", true },
{ "aldo-vandini.de", true },
- { "aldorr.net", true },
+ { "aldomedia.com", true },
+ { "aldorr.net", false },
{ "aldous-huxley.com", true },
{ "aldred.cloud", true },
{ "alecpap.com", true },
{ "alecpapierniak.com", true },
{ "alecrust.com", true },
+ { "aledg.cl", true },
+ { "alek.in", true },
+ { "aleksejjocic.tk", true },
{ "aleksib.fi", true },
{ "alela.fr", true },
{ "alerbon.net", true },
@@ -1946,6 +2054,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alertwire.com", true },
{ "alesia-formation.fr", true },
{ "alessandroonline.com.br", true },
+ { "alessandroz.ddns.net", true },
{ "aletm.it", true },
{ "alex-ross.co.uk", true },
{ "alex97000.de", true },
@@ -1953,13 +2062,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alexanderb.info", true },
{ "alexandermuetzel.de", true },
{ "alexanderneng.de", true },
- { "alexandernorth.ch", true },
{ "alexanderschimpf.de", true },
{ "alexanderzinn.com", true },
{ "alexandra-schulze.de", true },
+ { "alexandrastorm.com", true },
{ "alexandrastylist.com", true },
{ "alexandre-blond.fr", true },
- { "alexandros.io", true },
+ { "alexbaker.org", true },
{ "alexberts.ch", true },
{ "alexbresnahan.com", true },
{ "alexcoman.com", true },
@@ -1968,14 +2077,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alexey-shamara.ru", true },
{ "alexeykopytko.com", true },
{ "alexgaynor.net", true },
+ { "alexgebhard.com", true },
{ "alexhd.de", true },
{ "alexio.ml", true },
{ "alexisabarca.com", true },
- { "alexischaussy.xyz", true },
- { "alexismeza.com", true },
- { "alexismeza.com.mx", true },
- { "alexismeza.es", true },
- { "alexismeza.nl", true },
{ "alexkott.com", true },
{ "alexlouden.com", true },
{ "alexmerkel.com", true },
@@ -1984,7 +2089,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alexmroberts.net", true },
{ "alexn.org", true },
{ "alexpavel.com", true },
- { "alexpotter.net", false },
+ { "alexpotter.net", true },
{ "alexs.de", true },
{ "alexschroeder.ch", true },
{ "alexsergeyev.com", true },
@@ -1999,7 +2104,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alexwardweb.com", true },
{ "alexyang.me", true },
{ "alfa-tech.su", true },
+ { "alfaperfumes.com.br", true },
+ { "alftrain.com", true },
{ "alghanimcatering.com", true },
+ { "algoaware.eu", true },
{ "algoentremanos.com", true },
{ "algofactory.de", true },
{ "algolia.com", true },
@@ -2015,16 +2123,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alicemaywebdesign.com.au", true },
{ "alicestudio.it", true },
{ "alicetone.net", true },
- { "alicialab.org", true },
{ "alienation.biz", true },
{ "alienflight.com", true },
{ "alienslab.net", true },
{ "alienstat.com", true },
- { "alignrs.com", true },
{ "aliim.gdn", true },
{ "alijammusic.com", true },
{ "alinasmusicstudio.com", true },
{ "alinode.com", true },
+ { "aliorange.com", true },
{ "alisonisrealestate.com", true },
{ "alisonlitchfield.com", true },
{ "alistairholland.me", true },
@@ -2036,18 +2143,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aljaspod.hu", true },
{ "aljaspod.net", true },
{ "aljweb.com", true },
- { "alkel.info", true },
{ "all-connect.net", false },
{ "all-markup-news.com", true },
{ "all4hardware4u.de", true },
- { "allaboutbelgaum.com", false },
{ "allaboutfunuk.com", true },
{ "allaboutswing.co.uk", true },
{ "allaboutswing.com", true },
{ "allaboutthekink.org", true },
{ "allactioneventhire.co.uk", true },
{ "allamericanmuslim.com", true },
+ { "allamericanprotection.net", true },
{ "allamericatrans.com", true },
+ { "allangirvan.net", true },
{ "allarmi.roma.it", true },
{ "allbenjoy.de", true },
{ "allbounceandplay.co.uk", true },
@@ -2064,13 +2171,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alldigitalsolutions.com", true },
{ "alle.bg", true },
{ "allemobieleproviders.nl", true },
+ { "allenosgood.com", true },
{ "allenscaravans.co.uk", true },
{ "allensun.org", true },
- { "allerbestefreunde.de", true },
{ "allesisonline.nl", true },
{ "alleskomtgoed.org", true },
{ "allesrocknroll.de", true },
{ "allforyou.at", true },
+ { "allgaragefloors.com", true },
{ "allgreenturf.com.au", true },
{ "alliance-psychiatry.com", true },
{ "alliances-faq.de", true },
@@ -2082,12 +2190,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "allinone-ranking150.com", true },
{ "allis.studio", true },
{ "alljamin.com", true },
- { "allladyboys.com", true },
{ "allmebel.ru", true },
{ "allmend-ru.de", true },
{ "allns.fr", true },
{ "allo-credit.ch", true },
{ "allo-symo.fr", true },
+ { "allofthestops.com", true },
{ "allontanamentovolatili.it", true },
{ "allontanamentovolatili.milano.it", true },
{ "alloverthehill.com", true },
@@ -2096,6 +2204,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "allpointsblog.com", true },
{ "allproptonline.com", true },
{ "allroundpvp.net", true },
+ { "allsaints.church", true },
{ "allsearch.io", true },
{ "allshousedesigns.com", true },
{ "allstakesupply.com.au", true },
@@ -2104,10 +2213,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "allstarquilts.com", true },
{ "allsync.com", true },
{ "allsync.nl", true },
+ { "allteach.co.uk", true },
{ "allthecryptonews.com", true },
{ "allthethings.co.nz", true },
{ "allthings.me", true },
- { "allthingsblogging.com", true },
{ "allthingssquared.com", true },
{ "allthingswild.co.uk", true },
{ "alltubedownload.net", true },
@@ -2118,6 +2227,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aloesoluciones.com.ar", true },
{ "alohapartyevents.co.uk", true },
{ "alonetone.com", true },
+ { "alorenzi.eu", true },
+ { "alp.net.cn", true },
{ "alp.od.ua", true },
{ "alpca.org", true },
{ "alpe-d-or.dyn-o-saur.com", true },
@@ -2136,10 +2247,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alphabouncycastles.co.uk", true },
{ "alphabrock.cn", true },
{ "alphachat.net", true },
+ { "alphadote.com", true },
{ "alphaetomega3d.fr", true },
{ "alphafiduciaryservices.ch", true },
{ "alphafitnesslibya.com", true },
+ { "alphagateanddoor.com", true },
{ "alphainflatablehire.com", true },
+ { "alphaman.ooo", true },
{ "alphapengu.in", true },
{ "alpharotary.com", true },
{ "alphasall.com", true },
@@ -2164,10 +2278,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "alstroemeria.org", true },
{ "alt-three.com", true },
{ "alt.org", true },
+ { "altapina.com", true },
{ "altaplana.be", true },
{ "altedirect.com", true },
{ "alter-news.fr", true },
- { "altered.network", true },
+ { "alterbaum.net", true },
{ "alternador.com.br", true },
{ "alternative.bike", true },
{ "alternativebit.fr", true },
@@ -2181,25 +2296,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "altmaestrat.es", true },
{ "altoa.cz", true },
{ "altonblom.com", true },
- { "altoneum.com", true },
{ "altopartners.com", true },
{ "altopia.com", true },
{ "altphotos.com", true },
- { "altruistgroup.net", true },
{ "alts.li", true },
{ "altstipendiaten.de", true },
{ "alttrackr.com", true },
{ "altunbas.info", true },
{ "alumni-kusa.jp", true },
- { "aluoblog.pw", true },
- { "aluoblog.top", false },
{ "alupferd.de", true },
{ "aluroof.eu", true },
{ "alvcs.com", true },
{ "alviano.com", true },
{ "alvicom.hu", true },
{ "alvis-audio.com", true },
- { "alvn.ga", true },
{ "alvosec.com", true },
{ "alwaysdry.com.au", true },
{ "alwayslookingyourbest.com", true },
@@ -2218,7 +2328,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "am2s.fr", true },
{ "am3.se", true },
{ "ama.ne.jp", true },
- { "amadoraslindas.com", true },
{ "amadvice.com", true },
{ "amaforro.com", true },
{ "amagdic.com", true },
@@ -2232,8 +2341,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "amandasage.ca", true },
{ "amani-kinderdorf.de", true },
{ "amaresq.com", true },
- { "amateri.com", true },
- { "amateurvoicetalent.com", true },
+ { "amateurchef.co.uk", true },
+ { "amateurradionotes.com", true },
+ { "amati.solutions", true },
{ "amato.tk", true },
{ "amatsuka.com", true },
{ "amauf.de", true },
@@ -2264,9 +2374,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "amees.me", false },
{ "amelandadventure.nl", true },
{ "amello.de", true },
+ { "amend-friseur-schwabing.de", true },
{ "america.gov", true },
{ "americafamilylawcenter.org", true },
{ "american.dating", true },
+ { "americandetour.com", true },
{ "americanfoundationbr.com", true },
{ "americanmediainstitute.com", true },
{ "americasbasementcontractor.com", true },
@@ -2276,14 +2388,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "amerika-forum.de", true },
{ "amerimarkdirect.com", true },
{ "amerimex.cc", true },
+ { "ameschristian.net", true },
{ "amesgen.de", true },
{ "amesvacuumrepair.com", true },
{ "amethystdevelopment.co.uk", true },
- { "ameza.co.uk", true },
- { "ameza.com.mx", true },
- { "ameza.io", true },
- { "ameza.me", true },
- { "ameza.net", true },
{ "amf.to", true },
{ "amg-exterieur.fr", true },
{ "amg-microwave.com", true },
@@ -2292,22 +2400,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "amicalecanyon.ch", true },
{ "amiciidogrescue.org.uk", true },
{ "amielucha.com", true },
+ { "amifoundation.net", true },
{ "amikootours.com", true },
- { "amin.ga", true },
- { "amin.one", true },
{ "aminafrance.com", true },
{ "amineptine.com", true },
+ { "aminorth.com", true },
+ { "amionvpn.com", true },
{ "amirautos.com", true },
{ "amirmahdy.com", true },
{ "amisderodin.fr", true },
{ "amisharingstuff.com", true },
+ { "amitabhsirkiclasses.org.in", true },
{ "amitpatra.com", true },
+ { "amiu.org", true },
{ "ammanagingdirectors.com", true },
{ "amministratore.biz", true },
{ "amministratore.roma.it", true },
{ "amministratorecondominio.roma.it", true },
+ { "amnesty-bf.org", true },
{ "amnesty.org.au", true },
{ "amnesy.fr", true },
+ { "amoozesh98.com", true },
+ { "amoozesh98.ir", true },
{ "amorgos-aegialis.com", true },
{ "amorim.ca", true },
{ "amosng.com", true },
@@ -2319,6 +2433,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "amrcaustin.com", true },
{ "amrcla.com", true },
{ "ams.co.rs", true },
+ { "amsportuk.com", true },
{ "amsterdamian.com", true },
{ "amuq.net", true },
{ "amuraimpianti.it", true },
@@ -2329,28 +2444,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "amzn.rocks", true },
{ "anacreon.de", true },
{ "anadiyogacentre.com", true },
- { "anadoluefessk.org", true },
- { "anaiscoachpersonal.es", true },
- { "anaisypirueta.es", true },
+ { "anaethelion.fr", true },
{ "anajianu.ro", true },
- { "analangelsteen.com", true },
{ "analbleachingguide.com", true },
{ "analgesia.net", true },
{ "analisilaica.it", true },
{ "analogist.net", true },
- { "analteengirls.net", true },
{ "analyticsinmotion.com", true },
+ { "analyticum.at", true },
+ { "analyticum.com", true },
+ { "analyticum.de", true },
+ { "analyticum.eu", true },
+ { "analyticum.net", true },
{ "ananas.gq", true },
{ "ananke.io", true },
{ "anankecosmetics.com", true },
{ "anantshri.info", true },
{ "ananyoo.com", true },
{ "anarchistischegroepnijmegen.nl", false },
+ { "anarchyrp.life", true },
{ "anassiriphotography.com", false },
{ "anastasia-shamara.ru", true },
{ "ancestramil.fr", true },
{ "anchev.net", true },
{ "anchovy.nz", false },
+ { "ancientcraft.eu", true },
{ "ancientnorth.com", true },
{ "ancientnorth.nl", true },
{ "ancolies-andre.com", true },
@@ -2368,7 +2486,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "andisadhdspot.com", true },
{ "andiscyber.space", true },
{ "anditi.com", true },
- { "andoms.fi", true },
{ "andre-ballensiefen.de", true },
{ "andre-lategan.com", true },
{ "andre-otto.com", true },
@@ -2376,15 +2493,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "andrea-m.me", true },
{ "andrea-wirthensohn.at", true },
{ "andreaboero.it", true },
+ { "andreadraghetti.it", true },
{ "andreagourmet.it", true },
{ "andreahruby.it", true },
{ "andreamcnett.com", true },
+ { "andreas-hecht.com", true },
{ "andreaseracleous.com", true },
{ "andreasfeusi.ch", true },
+ { "andreashecht-blog.de", true },
{ "andreaskrasa.com", true },
{ "andreaslicht.nl", true },
{ "andreasolsson.se", true },
{ "andreasr.com", true },
+ { "andree.cloud", true },
{ "andrefaber.nl", true },
{ "andrehansen.de", true },
{ "andrei-nakov.org", true },
@@ -2393,9 +2514,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "andrepicard.de", true },
{ "andrespaz.com", true },
{ "andreundnina.de", true },
+ { "andrew.london", true },
{ "andrewbdesign.com", true },
{ "andrewdaws.io", true },
{ "andrewensley.com", true },
+ { "andrewhowden.com", true },
{ "andrewimeson.com", true },
{ "andrewin.ru", true },
{ "andrewmichaud.com", true },
@@ -2416,6 +2539,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "androidkatalog.cz", true },
{ "androidnovinky.cz", true },
{ "androidservicetool.com", true },
+ { "androidsis.com", true },
{ "androidtamer.com", true },
{ "androidtelefony.cz", true },
{ "androidzone.me", true },
@@ -2423,22 +2547,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "androticsdirect.com", true },
{ "andruvision.cz", true },
{ "andsat.org", true },
- { "andschwa.com", true },
+ { "andschwa.com", false },
{ "andso.cn", true },
- { "anduril.de", true },
- { "anduril.eu", true },
{ "andybrett.com", true },
{ "andyc.cc", true },
{ "andycloud.dynu.net", true },
{ "andycrockett.io", true },
{ "andymoore.info", true },
{ "andys-place.co.uk", true },
+ { "andysroom.dynu.net", true },
{ "andyt.eu", true },
{ "andzia.art.pl", true },
{ "anedot-sandbox.com", true },
{ "anedot.com", true },
{ "anedot.space", true },
{ "anedot.xyz", true },
+ { "aneebahmed.com", true },
{ "anegabawa.com", true },
{ "anetaben.nl", true },
{ "anextraordinaryday.net", true },
@@ -2448,6 +2572,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "angelesydemonios.es", true },
{ "angelicare.co.uk", true },
{ "angelinahair.com", true },
+ { "angeloryndon.com", true },
{ "angelremigene.com", true },
{ "angelsgirl.eu.org", true },
{ "anginf.de", true },
@@ -2461,10 +2586,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "angrapa.ru", true },
{ "angristan.fr", true },
{ "angristan.xyz", true },
- { "angrut.com", true },
{ "angry.im", true },
+ { "angrylab.com", true },
{ "angrysnarl.com", true },
- { "angryteeth.net", true },
+ { "angryteeth.net", false },
{ "anguiao.com", true },
{ "angularjs.org", false },
{ "angusmak.com", true },
@@ -2476,11 +2601,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "animacurse.moe", true },
{ "animaemundi.be", true },
{ "animal-liberation.com", true },
- { "animal-nature-human.com", true },
{ "animal-rights.com", true },
{ "animalistic.io", true },
{ "animaltesting.fr", true },
{ "animan.ca", true },
+ { "animatelluris.nl", true },
{ "animationsmusicales.ch", true },
{ "anime-culture.com", true },
{ "anime-rg.com", true },
@@ -2491,20 +2616,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "anime1.pw", true },
{ "animeai.com", true },
{ "animefluxxx.com", true },
+ { "animeinsights.net", true },
{ "animesharp.com", true },
{ "animetriad.com", true },
{ "animojis.es", true },
{ "animorphsfanforum.com", true },
- { "anipassion.com", true },
+ { "anipassion.com", false },
{ "anitaalbersen.nl", true },
{ "anitube.ch", true },
{ "aniwhen.com", true },
+ { "anjoola.com", true },
{ "ankarakart.com.tr", true },
{ "ankaraprofesyonelwebtasarim.com", true },
{ "ankarauzmanlarnakliyat.com", true },
{ "ankarayilmaznakliyat.com", true },
{ "ankarayucelnakliyat.com", true },
{ "ankenbrand.me", true },
+ { "ankitpati.in", true },
{ "ankiuser.net", true },
{ "ankiweb.net", true },
{ "ankwanoma.com", true },
@@ -2525,6 +2653,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "annawagner.pl", true },
{ "annedaniels.co.uk", true },
{ "annejan.com", true },
+ { "anneliesonline.nl", true },
{ "annemakeslovelycandles.co.uk", true },
{ "annetta.com", true },
{ "annettewindlin.ch", true },
@@ -2535,13 +2664,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "annonasoftware.com", true },
{ "annotate.software", true },
{ "annoyingasfuk.com", true },
+ { "annrusnak.com", true },
{ "annuaire-jcb.com", true },
{ "annuaire-photographe.fr", false },
{ "anohana.org", true },
{ "anojan.com", true },
{ "anon-next.de", true },
{ "anoncom.net", true },
- { "anoneko.com", true },
+ { "anoneko.com", false },
{ "anongoth.pl", true },
{ "anons.fr", true },
{ "anonukradio.org", true },
@@ -2561,6 +2691,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ansermet.net", true },
{ "ansgar-sonntag.de", true },
{ "ansgarsonntag.de", true },
+ { "anshar.eu", true },
{ "ansibeast.net", true },
{ "ansichtssache.at", true },
{ "ansogning-sg.dk", true },
@@ -2581,16 +2712,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "anteprima.info", true },
{ "anthedesign.fr", true },
{ "anthisis.tv", true },
- { "anthony-rouanet.com", true },
{ "anthony.codes", true },
{ "anthonyaires.com", true },
{ "anthonycarbonaro.com", true },
+ { "anthonyfontanez.com", true },
{ "anthonygaidot.fr", true },
+ { "anthonyvadala.me", true },
{ "anthropoid.ca", true },
{ "anti-bible.com", true },
{ "anti-radar.org", true },
{ "antibioticshome.com", true },
{ "anticopyright.com", true },
+ { "antiekboerderijgraafland.nl", true },
{ "antihype.space", true },
{ "antik-trodelmarkt.de", true },
{ "antikvariat.ru", true },
@@ -2599,7 +2732,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "antimine.me", true },
{ "antipolygraph.org", true },
{ "antique-pedalcars.ch", true },
- { "antirayapmalang.com", true },
{ "antirepressionbayarea.com", true },
{ "antispeciesism.com", true },
{ "antispeciesist.com", true },
@@ -2618,6 +2750,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "antragsgruen.de", true },
{ "antroposofica.com.br", true },
{ "antyblokada.pl", true },
+ { "anulowano.pl", true },
{ "anvartay.com", true },
{ "anwaltsindex.com", true },
{ "anxietyspace.com", true },
@@ -2631,20 +2764,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "anyprime.net", true },
{ "anyquestions.govt.nz", true },
{ "anystack.xyz", true },
- { "anyways.at", true },
{ "anzeiger.ag", true },
{ "ao-dev.com", true },
{ "ao2.it", true },
+ { "aoa.gov", true },
+ { "aoadatacommunity.us", true },
{ "aoaprograms.net", true },
+ { "aofusa.net", true },
{ "aoku3d.com", true },
- { "aomonk.com", true },
{ "aopedeure.nl", true },
{ "aopsy.de", true },
+ { "aos-llc.com", true },
{ "aosc.io", false },
{ "aosus.org", true },
{ "aotearoa.maori.nz", true },
{ "aotearoaleaks.org", true },
{ "ap-swiss.ch", true },
+ { "apac-tech.com", false },
{ "apache-portal.com", true },
{ "apachehaus.de", false },
{ "apadvantage.com", true },
@@ -2660,7 +2796,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "apdx.com", true },
{ "apef.ch", true },
{ "apercloud.es", true },
- { "aperim.com", true },
{ "apertis.org", true },
{ "aperturesciencelabs.de", true },
{ "apervita.net", true },
@@ -2689,11 +2824,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "apiled.io", true },
{ "apination.com", true },
{ "apio.systems", true },
- { "apis.blue", true },
{ "apis.google.com", true },
{ "apis.moe", true },
{ "apisyouwonthate.com", true },
- { "apivia.fr", true },
{ "apk.li", true },
{ "apk4fun.com", true },
{ "aplikaceproandroid.cz", true },
@@ -2703,7 +2836,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "apmpproject.org", true },
{ "apn-dz.org", true },
{ "apn-einstellungen.de", true },
+ { "apo-deutschland.biz", true },
{ "apobot.de", true },
+ { "apogeephoto.com", true },
{ "apoil.org", true },
{ "apollyon.work", true },
{ "apoly.de", true },
@@ -2712,6 +2847,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aposke.com", true },
{ "aposke.net", true },
{ "aposke.org", true },
+ { "apostilasaprovacao.com", true },
{ "apotheke-ch.org", true },
{ "apothes.is", true },
{ "app-at.work", true },
@@ -2743,12 +2879,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "appleranch.com", true },
{ "applesana.es", true },
{ "applesencia.com", true },
- { "applewatch.co.nz", true },
{ "applian.jp", true },
- { "appliancerepairlosangeles.com", true },
{ "applicationmanager.gov", true },
{ "apply.eu", true },
- { "apply55gx.com", true },
{ "appmeas.co.uk", true },
{ "appmobile.io", true },
{ "appninjas.com", true },
@@ -2784,9 +2917,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aprr.org", true },
{ "aprsdroid.org", true },
{ "aprz.de", true },
+ { "apsa.paris", true },
{ "apstudynotes.org", true },
+ { "aptitudetests.org", true },
{ "apu-board.de", true },
{ "apv-ollon.ch", true },
+ { "aqdun.com", true },
{ "aqilacademy.com.au", true },
{ "aqsiq.net", true },
{ "aqua-fitness-nacht.de", true },
@@ -2795,6 +2931,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aquabio.ch", true },
{ "aquadonis.ch", true },
{ "aquahomo.com", true },
+ { "aquainfo.net", true },
{ "aqualife.com.gr", true },
{ "aqualifeprojects.com", true },
{ "aqualysis.nl", true },
@@ -2805,20 +2942,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aquatechnologygroup.com", true },
{ "aquaundine.net", true },
{ "aquavitaedayspa.com.au", true },
+ { "aquelarreweb.com", true },
{ "aquila.co.uk", true },
{ "aquitainebrasserie.com.au", true },
{ "aquitroc.com", true },
{ "ar-informatique.ch", true },
{ "arab.dating", true },
- { "arabsexi.info", true },
+ { "arabicxz.com", true },
{ "arachina.com", true },
{ "arados.de", true },
{ "arai21.net", true },
{ "araleeniken.com", true },
{ "aramado.com", true },
{ "aramido.de", true },
- { "aranel.me", true },
{ "aranycsillag.net", true },
+ { "araraexpress.com.br", true },
{ "araratour.com", true },
{ "araro.ch", true },
{ "araseifudousan.com", true },
@@ -2826,6 +2964,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "arawaza.com", false },
{ "arawaza.info", true },
{ "araxis.com", true },
+ { "arbeitsch.eu", true },
{ "arbeitskreis-asyl-eningen.de", true },
{ "arbeitslosenverwaltung.de", true },
{ "arbejdsdag.dk", true },
@@ -2838,24 +2977,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "arcenergy.co.uk", true },
{ "archimedicx.com", true },
{ "archined.nl", true },
- { "architectdirect.nl", false },
+ { "architectryan.com", true },
{ "archivero.es", true },
{ "archivesdelavieordinaire.ch", true },
{ "archlinux.de", true },
{ "archlinux.org", true },
+ { "arclandholdings.com.au", true },
{ "arcobalabs.ca", true },
{ "arcridge.ca", true },
{ "arctic.gov", true },
{ "arcueil-cachan.fr", false },
{ "arcusnova.de", true },
{ "arda-audio.pt", true },
- { "ardor.noip.me", true },
{ "ardtrade.ru", true },
{ "area4pro.com", true },
{ "area536.com", true },
{ "areaclienti.net", true },
{ "areafiftylan.nl", true },
{ "areatrend.com", true },
+ { "arefidgetspinnersgay.com", true },
{ "arekatieandchrisgettingmarried.com", true },
{ "arekatieandchrisgettingmarried.today", true },
{ "arekatieandchrismarriedyet.com", true },
@@ -2865,9 +3005,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "arenns.com", true },
{ "areqgaming.com", true },
{ "ares-trading.de", true },
- { "arethsu.se", true },
{ "arfad.ch", true },
{ "arg.zone", true },
+ { "argama-nature.com", true },
{ "arganaderm.ch", true },
{ "argb.de", true },
{ "argekultur.at", true },
@@ -2876,8 +3016,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ariaartgallery.com", true },
{ "ariadermspa.com", true },
{ "arian.io", true },
+ { "arias.re", true },
{ "ariba.info", true },
- { "ariege-pyrenees.net", true },
{ "arieswdd.com", true },
{ "arigato-java.download", true },
{ "arijitdg.net", true },
@@ -2888,11 +3028,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "arise19.com", true },
{ "arisevendor.net", true },
{ "aristilabs.com", true },
- { "aristocrates.co", true },
- { "aristocratps.com", true },
{ "aritec-la.com", true },
{ "arivo.com.br", true },
+ { "arizer.com", true },
{ "arizonaautomobileclub.com", true },
+ { "arizonabondedtitle.com", true },
{ "arjandejong.eu", true },
{ "arjanvaartjes.net", true },
{ "arjunasdaughter.pub", true },
@@ -2906,12 +3046,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "arlen.tv", true },
{ "arlenarmageddon.com", true },
{ "arlet.click", true },
+ { "arletalibrary.com", true },
{ "arm-host.com", true },
{ "armadaquadrat.com", true },
{ "armandsdiscount.com", true },
+ { "armanozak.com", true },
{ "armansfinejewellery.com", true },
{ "armansfinejewellery.com.au", true },
{ "armarinhovirtual.com.br", true },
+ { "armbrust.me", true },
{ "armedpoet.com", true },
{ "armeni-jewellery.gr", true },
{ "armil.it", true },
@@ -2925,6 +3068,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "arnaudb.net", true },
{ "arnaudfeld.de", true },
{ "arnaudminable.net", true },
+ { "arne.codes", true },
+ { "arnevankauter.com", true },
{ "arniescastles.co.uk", true },
{ "arno-klein.de", true },
{ "arno-klein.eu", true },
@@ -2942,31 +3087,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aromacos.ch", true },
{ "aron.host", true },
{ "aroonchande.com", true },
+ { "aros.pl", true },
+ { "arose.io", true },
{ "arox.eu", true },
+ { "arpamip.org", true },
+ { "arpnet.co.jp", true },
{ "arqueo-ecuatoriana.ec", true },
{ "arquitetura.pt", true },
{ "arrakis.se", true },
+ { "arrazane.com.br", true },
+ { "arresttracker.com", true },
{ "arrive.by", true },
{ "arrmaforum.com", true },
{ "arrow-analytics.nl", true },
{ "arrow-api.nl", true },
{ "arrowfastener.com", true },
{ "arrowheadaddict.com", true },
+ { "arrowheadflats.com", true },
{ "arrowwebprojects.nl", true },
{ "arschkrebs.org", true },
- { "arswb.men", true },
{ "art-auction.jp", true },
{ "art-et-culture.ch", true },
{ "artansoft.com", true },
{ "artboja.com", true },
{ "artdeco-photo.com", true },
- { "artea.ga", true },
- { "arteaga.co.uk", true },
- { "arteaga.eu", true },
- { "arteaga.me", true },
- { "arteaga.tech", true },
- { "arteaga.uk", true },
- { "arteaga.xyz", true },
{ "artecat.ch", true },
{ "artedellavetrina.it", true },
{ "artedona.com", true },
@@ -2981,12 +3125,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "artforum.sk", true },
{ "artfullyelegant.com", true },
{ "arthermitage.org", true },
- { "arthur.cn", true },
{ "arthurlaw.ca", true },
+ { "artificial.army", true },
{ "artik.cloud", true },
{ "artimpact.ch", true },
{ "artioml.net", true },
{ "artionet.ch", true },
+ { "artisan-cheminees-poeles-design.fr", true },
{ "artisans-libres.com", true },
{ "artisansoftaste.com", true },
{ "artistagenda.com", true },
@@ -3009,6 +3154,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "arts.gov", true },
{ "artschmidtoptical.com", true },
{ "artspac.es", true },
+ { "arturkohut.com", true },
{ "arturrossa.de", true },
{ "arturszalak.com", true },
{ "artweby.cz", true },
@@ -3017,10 +3163,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "arubasunsetbeach.com", true },
{ "arveron.ch", true },
{ "arvid.io", true },
+ { "arviksa.co.uk", true },
{ "arvindhariharan.com", true },
+ { "arvindhariharan.me", true },
{ "arvutiladu.ee", true },
{ "arw.me", true },
- { "arxell.com", true },
{ "aryan-nation.com", true },
{ "aryasenna.net", true },
{ "arzid.com", true },
@@ -3034,6 +3181,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "asandu.eu", true },
{ "asanger.biz", true },
{ "asato-jewelry.com", true },
+ { "asbestosthedarkarts.com", true },
{ "asbito.de", true },
{ "ascamso.com", true },
{ "ascendprime.com", true },
@@ -3046,6 +3194,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "asdyx.de", true },
{ "asec01.net", true },
{ "aseith.com", true },
+ { "aseko.gr", true },
{ "asenno.com", true },
{ "aserver.co", true },
{ "asexualitat.cat", true },
@@ -3054,6 +3203,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ashd1.goip.de", true },
{ "ashd2.goip.de", true },
{ "ashd3.goip.de", true },
+ { "ashleyedisonuk.com", true },
{ "ashlocklawgroup.com", true },
{ "ashmportfolio.com", true },
{ "ashutoshmishra.org", true },
@@ -3063,11 +3213,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "asiaheavens.com", true },
{ "asialeonding.at", true },
{ "asian-industry.eu", true },
- { "asianodor.com", true },
{ "asianshops.net", true },
{ "asianspa.co.uk", true },
{ "asiba.com.au", true },
- { "asiesvenezuela.com", true },
{ "asile-colis.fr", true },
{ "asinetasima.com", true },
{ "asisee.photography", true },
@@ -3083,7 +3231,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aslinfinity.com", true },
{ "asmbsurvey.com", true },
{ "asmdz.com", true },
- { "asmik-armenie.com", true },
+ { "asmm.cc", true },
{ "asmood.net", true },
{ "asoul.tw", true },
{ "aspargesgaarden.no", true },
@@ -3091,10 +3239,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aspcl.ch", true },
{ "aspectcontext.com", true },
{ "asperti.com", true },
+ { "asphyxia.su", true },
{ "aspiescentral.com", true },
{ "aspirateur-anti-pollution.fr", true },
{ "aspires.co.jp", true },
{ "aspisdata.com", true },
+ { "asproni.it", true },
{ "asr.cloud", true },
{ "asr.li", true },
{ "asr.rocks", true },
@@ -3110,7 +3260,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "assguidesporrentruy.ch", true },
{ "assign-it.co.uk", true },
{ "assistance-personnes-agees.ch", true },
- { "assistcart.com", true },
+ { "assistel.com", true },
{ "assistenzaferrodastiro.org", true },
{ "assistenzafrigorifero.org", true },
{ "assistenzalavatrice.org", true },
@@ -3126,6 +3276,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "astengox.com", true },
{ "astenotarili.online", true },
{ "astenretail.com", true },
+ { "astral-imperium.uk", true },
{ "astral.org.pl", true },
{ "astrology42.com", true },
{ "astroscopy.ch", true },
@@ -3141,10 +3292,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "asvsa.ch", true },
{ "asws.nl", true },
{ "asystent-dzierzawy.pl", true },
+ { "at-one.ca", true },
{ "at.search.yahoo.com", false },
{ "atac.no", true },
{ "atacadocervejeiro.com.br", true },
- { "atacadodesandalias.com.br", true },
{ "ataton.ch", true },
{ "atc.io", true },
{ "atchleyjazz.com", true },
@@ -3163,6 +3314,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "atelierdefrancais.ch", true },
{ "atelierdeloulou.fr", true },
{ "atelierdesflammesnoires.fr", true },
+ { "atelierfantazie.sk", true },
{ "atelierhupsakee.nl", true },
{ "ateliernaruby.cz", true },
{ "ateliers-veronese-nantes.fr", true },
@@ -3175,11 +3327,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "atgroup.gr", true },
{ "atgseed.co.uk", true },
{ "atgseed.uk", true },
- { "ath0.org", true },
{ "atheist-refugees.com", true },
{ "athena-bartholdi.com", true },
{ "athena-garage.co.uk", true },
{ "athenadynamics.com", true },
+ { "athenaneuro.com", true },
{ "atheoryofchange.com", true },
{ "atherosense.ga", true },
{ "athlin.de", true },
@@ -3193,7 +3345,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "atisoft.web.tr", true },
{ "atitude.com", true },
{ "ativapsicologia.com.br", true },
- { "atk.me", true },
{ "atl-paas.net", true },
{ "atlantahairsurgeon.com", true },
{ "atlantareroof.com", true },
@@ -3203,7 +3354,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "atlantischild.hu", true },
{ "atlantishq.de", true },
{ "atlantiswaterproofing.com", true },
- { "atlas.co", true },
{ "atlaschiropractic.org", true },
{ "atlascultural.com", true },
{ "atlasdev.nl", true },
@@ -3211,7 +3361,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "atlassian.io", true },
{ "atlassignsandplaques.com", true },
{ "atletika.hu", true },
- { "atmocdn.com", true },
{ "atmschambly.com", true },
{ "atnis.com", true },
{ "ato4sound.com", true },
@@ -3228,11 +3377,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "atpnutrition.com", true },
{ "atraining.ru", true },
{ "atraverscugy.ch", true },
- { "atrevillot.com", true },
{ "atrinik.org", true },
{ "atsoftware.de", true },
{ "attac.us", true },
{ "atte.fi", true },
+ { "attelage.net", true },
{ "attendantdesign.com", true },
{ "attendu.cz", true },
{ "attention.horse", true },
@@ -3245,7 +3394,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "attwood.org", true },
{ "atulhost.com", true },
{ "atviras.lt", false },
+ { "atvirtual.at", true },
{ "atwonline.org", true },
+ { "atxchirocoverage.com", true },
+ { "atyourprice.net", true },
{ "atypicom.es", true },
{ "atypicom.fr", true },
{ "atypicom.it", true },
@@ -3279,10 +3431,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "audisto.com", true },
{ "auditmatrix.com", true },
{ "auditos.com", true },
+ { "audits.io", true },
{ "auditsquare.com", true },
{ "auerbach-verlag.de", true },
{ "auf-feindgebiet.de", true },
- { "augaware.org", true },
{ "augen-seite.de", true },
{ "augiero.it", true },
{ "augmentable.de", true },
@@ -3310,15 +3462,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "auroraassociationofrealtors.com", true },
{ "aurosa.cz", true },
{ "auroware.com", true },
+ { "auroz.tech", true },
+ { "auroz.video", true },
{ "aus-ryugaku.info", true },
{ "ausmwoid.de", true },
{ "aussiefunadvisor.com", true },
+ { "aussiegreenmarks.com.au", true },
{ "aussieservicedown.com", true },
{ "aussiestoresonline.com", true },
+ { "austenplumbing.com", true },
{ "austin-pearce.com", true },
{ "austin-security-cameras.com", true },
{ "austincardiac.com", true },
- { "austinheap.com", true },
+ { "austinheap.com", false },
+ { "austinlockout.com", true },
+ { "austintxacrepairtoday.com", true },
+ { "austintxlocksmiths.com", true },
{ "austinuniversityhouse.com", true },
{ "australian.dating", true },
{ "australianarmedforces.org", true },
@@ -3333,7 +3492,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "authinity.com", true },
{ "author24.biz", true },
{ "authoritysolutions.com", true },
- { "authorsguild.in", true },
{ "autimatisering.nl", true },
{ "auto-anleitung.de", true },
{ "auto-motor-i-sport.pl", true },
@@ -3342,6 +3500,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "auto.nl", true },
{ "autoauctionsohio.com", true },
{ "autoauctionsvirginia.com", true },
+ { "autobahnco.com", true },
{ "autobedrijfgarant.nl", true },
{ "autobelle.it", true },
{ "autobourcier.com", true },
@@ -3352,6 +3511,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "autocrypt.org", true },
{ "autod.hu", true },
{ "autodalmacija.com", true },
+ { "autodidactic.ai", true },
+ { "autodidacticstudios.com", true },
+ { "autodidacticstudios.net", true },
+ { "autodidacticstudios.org", true },
{ "autoentrepreneurinfo.com", true },
{ "autoepc.ro", true },
{ "autoinsurancehavasu.com", true },
@@ -3364,15 +3527,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "automationpro.me", true },
{ "automotivegroup-usedcars.be", true },
{ "automotivemechanic.org", true },
+ { "automoto-tom.net", true },
{ "autoosijek.com", true },
{ "autopapo.com.br", true },
{ "autoparts.im", true },
{ "autoparts.sh", true },
{ "autoparts.wf", true },
{ "autoprice.info", true },
+ { "autoprogconsortium.ga", true },
{ "autorando.com", true },
{ "autoschadeschreuder.nl", true },
{ "autoscuola.roma.it", true },
+ { "autosecurityfinance.com", true },
{ "autoshinka72.ru", true },
{ "autoshopsolutions.com", true },
{ "autoshun.org", true },
@@ -3392,7 +3558,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aux-arts-de-la-table.com", true },
{ "auxquatrevents.ch", true },
{ "av-yummy.com", true },
- { "av01.tv", true },
{ "av0ndale.de", true },
{ "ava-creative.de", false },
{ "ava-software.at", true },
@@ -3400,6 +3565,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "avabouncehire.co.uk", true },
{ "avacariu.me", true },
{ "availablecastles.com", true },
+ { "avalon-island.ru", true },
{ "avalon-rpg.com", true },
{ "avalon-studios.de", true },
{ "avanet.ch", true },
@@ -3423,17 +3589,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "averen.co.uk", true },
{ "avernis.de", true },
{ "avexon.com", true },
+ { "avi9526.pp.ua", true },
{ "avia-krasnoyarsk.ru", true },
{ "avia-ufa.ru", true },
{ "aviapoisk.kz", true },
{ "aviationstrategy.aero", true },
{ "avid.blue", true },
+ { "avidmode-dev.com", true },
+ { "avidmode-staging.com", true },
+ { "avidmode.com", true },
+ { "avidthink.com", true },
{ "avietech.com", true },
{ "aviv.nyc", true },
{ "avlhostel.com", true },
- { "avmemo.com", true },
- { "avmoo.com", true },
- { "avnet.ws", true },
{ "avocadooo.stream", true },
{ "avocatbeziau.com", true },
{ "avocode.com", true },
@@ -3449,12 +3617,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "avtovokzaly.ru", true },
{ "avv.li", true },
{ "avvcorda.com", true },
+ { "avvocato.bologna.it", true },
{ "awaremi-tai.com", true },
{ "awaresec.com", true },
{ "awaresec.no", true },
{ "awaro.net", true },
{ "awbouncycastlehire.com", true },
- { "awccanadianpharmacy.com", true },
{ "awen.me", true },
{ "awesomebouncycastles.co.uk", true },
{ "awesomesit.es", true },
@@ -3477,12 +3645,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "axiomer.me", true },
{ "axiomer.net", true },
{ "axiomer.org", true },
+ { "axis-stralis.co.uk", true },
+ { "axisfleetmanagement.co.uk", true },
{ "axka.com", false },
- { "axolotlfarm.org", true },
{ "axonholdingse.eu", true },
{ "axrec.de", true },
- { "axtudo.com", true },
- { "axtux.tk", true },
+ { "axtudo.com", false },
{ "ayanomimi.com", true },
{ "aycomba.de", true },
{ "ayesh.me", true },
@@ -3491,18 +3659,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aylak.com", true },
{ "aylesburycastlehire.co.uk", true },
{ "aymerick.fr", true },
- { "aymericlagier.com", true },
- { "ayon.group", true },
{ "ayothemes.com", true },
{ "ayrohq.com", true },
{ "ayrshirebouncycastlehire.co.uk", true },
{ "ayumindev.net", true },
{ "ayurveda-mantry.com", true },
+ { "az-moga.bg", true },
{ "az.search.yahoo.com", false },
+ { "azabani.com", true },
{ "azadliq.info", true },
{ "azazy.net", false },
{ "azgfd.com", true },
+ { "aziende.com.ar", true },
{ "azimut.fr", true },
+ { "azizfirat.com", true },
+ { "azizvicdan.com", true },
{ "azlk-team.ru", true },
{ "azort.com", true },
{ "azrazalea.net", true },
@@ -3511,8 +3682,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "aztrix.me", true },
{ "azu-l.com", true },
{ "azu-l.jp", true },
- { "azun.pl", true },
- { "azuxul.fr", true },
+ { "azuki.cloud", true },
+ { "azurecrimson.com", true },
+ { "azuriasky.com", true },
+ { "azuriasky.net", true },
{ "azzag.co.uk", true },
{ "azzorti.com", true },
{ "azzurrapelletterie.it", true },
@@ -3529,6 +3702,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "b0618.net", true },
{ "b0868.com", true },
{ "b0868.net", true },
+ { "b0k.org", true },
{ "b0rk.com", true },
{ "b1.work", true },
{ "b1758.com", true },
@@ -3541,10 +3715,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "b1rd.tk", true },
{ "b2486.com", true },
{ "b2486.net", true },
- { "b2and.com", false },
{ "b2bmuzikbank.com", true },
{ "b303.me", true },
- { "b422edu.com", true },
{ "b4bouncycastles.co.uk", true },
{ "b4ckbone.de", true },
{ "b4r7.de", true },
@@ -3555,8 +3727,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "b5289.net", true },
{ "b5989.com", true },
{ "b5989.net", true },
- { "b61688.com", true },
{ "b64.club", true },
+ { "b72.com", true },
+ { "b72.net", true },
{ "b8591.com", true },
{ "b8591.net", true },
{ "b8979.com", true },
@@ -3628,10 +3801,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "b9948.com", true },
{ "b9948.net", true },
{ "b9960.com", true },
- { "b99881.com", true },
- { "b99882.com", true },
- { "b99883.com", true },
- { "b99885.com", true },
{ "b99886.com", true },
{ "b9best.cc", true },
{ "b9best.net", true },
@@ -3647,20 +3816,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "babarkata.com", true },
{ "babeleo.com", true },
{ "baby-digne.com", true },
+ { "baby-fotografie-muenchen.de", true },
+ { "babybauch-shooting-muenchen.de", true },
{ "babyboom.pl", true },
{ "babycamapp.com", true },
{ "babyfotograf-schweiz.ch", true },
{ "babymasaze.cz", true },
{ "babyphototime.com", true },
{ "babypibu.com", true },
+ { "babyshoprimini.com", true },
{ "bacgrouppublishing.com", true },
{ "bachata.info", true },
{ "baches-piscines.com", true },
{ "baciu.ch", true },
{ "backeby.eu", true },
- { "backlogapp.io", true },
{ "backmountaingas.com", true },
- { "backpacken.org", true },
{ "backpacker.dating", true },
{ "backschues.com", true },
{ "backschues.de", true },
@@ -3669,11 +3839,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "backterris.com", true },
{ "backtest.org", true },
{ "backupcloud.ru", true },
- { "backupsinop.com.br", true },
{ "bacon-monitoring.org", true },
{ "baconismagic.ca", true },
{ "bacontreeconsulting.com", true },
{ "bacoux.com", true },
+ { "bacsituvansuckhoe.com", true },
{ "bacula.jp", true },
{ "bad.horse", true },
{ "bad.pet", true },
@@ -3682,14 +3852,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "badblock.fr", true },
{ "badboyzclub.de", true },
{ "badf00d.de", true },
+ { "badgersystems.de", true },
{ "badges.fedoraproject.org", true },
{ "badges.stg.fedoraproject.org", true },
{ "badgesenpatches.nl", true },
- { "badgirlsbible.com", true },
{ "badhusky.com", true },
{ "badmania.fr", true },
{ "badmintonbible.com", true },
{ "badoo.com", true },
+ { "badoo.de", true },
+ { "badoo.eu", true },
+ { "badoo.us", true },
{ "badpackets.net", true },
{ "badrequest.me", true },
{ "badseacoffee.com", true },
@@ -3704,14 +3877,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bageluncle.com", true },
{ "baggy.me.uk", true },
{ "bagheera.me.uk", true },
- { "baglu.com", true },
{ "bagsofbounce.co.uk", true },
{ "bagspecialist.nl", true },
{ "bagstage.de", true },
{ "bah.im", false },
{ "bahnbonus-praemienwelt.de", true },
+ { "bahnenimbild.de", true },
+ { "bahnenimbild.eu", true },
{ "bahnhelden.de", true },
{ "bahninrotweissrot.at", true },
+ { "bahnmagazine.de", true },
+ { "baiduo.com", true },
{ "baifubao.com", true },
{ "baiker.info", true },
{ "bailakomigo.com.br", true },
@@ -3736,12 +3912,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "baladecommune.ch", true },
{ "balancascia.com.br", true },
{ "balance7.jp", true },
+ { "balancedbrawl.net", true },
{ "balancenaturalhealthclinic.ca", true },
{ "balboa.io", true },
{ "balcaonet.com.br", true },
{ "balconnr.com", true },
{ "balconsverdun.com", true },
- { "baldur.cc", true },
{ "balia.de", true },
{ "balicekzdravi.cz", true },
{ "balidesignshop.com.br", true },
@@ -3751,28 +3927,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "balivillassanur.com", true },
{ "balkonien.org", true },
{ "ball.holdings", true },
- { "ballarin.cc", true },
+ { "ball3d.es", true },
{ "ballejaune.com", true },
{ "ballinarsl.com.au", true },
+ { "ballitolocksmith.com", true },
{ "ballmerpeak.org", true },
{ "ballonsportclub-erlangen.de", true },
{ "ballotapi.com", true },
{ "ballothero.com", true },
{ "ballparkbuns.com", false },
{ "ballroom.info", true },
- { "balnearionaturaspa.com", true },
{ "balslev.io", true },
{ "balticnetworks.com", true },
{ "bamahammer.com", true },
{ "bambooforest.nl", true },
{ "bamboorelay.com", true },
{ "bambumania.com.br", true },
- { "banburybid.com", true },
+ { "bamily.rocks", true },
+ { "bananavapes.com", true },
{ "bancacrs.it", true },
{ "bancaolhares.com.br", true },
{ "bancobai.ao", true },
{ "bancoctt.pt", true },
- { "bandar303.win", true },
+ { "bancor.network", true },
+ { "bandagastrica.es", true },
{ "bandeira1.com.br", true },
{ "bandgap.io", true },
{ "bandiga.it", true },
@@ -3781,21 +3959,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bangkok-dark-night.com", true },
{ "bangkok.dating", true },
{ "bangkokcity.de", true },
- { "bangorfederal.com", true },
+ { "bangorfederal.com", false },
{ "bangumi.co", true },
+ { "banham.co.uk", true },
+ { "banham.com", true },
{ "bank.simple.com", false },
{ "bankbranchlocator.com", true },
{ "bankcardoffer.com", true },
{ "bankee.us", true },
{ "bankerbuch.de", true },
- { "bankersonline.com", true },
{ "banketbesteld.nl", true },
{ "bankfreeoffers.com", true },
{ "bankgradesecurity.com", true },
{ "bankin.com", true },
{ "bankinter.pt", true },
{ "bankio.se", true },
- { "bankitt.network", true },
{ "banknet.gov", true },
{ "bankofdenton.com", true },
{ "banksiaparkcottages.com.au", true },
@@ -3813,7 +3991,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "baodan666.com", true },
{ "baofengtech.com", true },
{ "baopublishing.it", true },
- { "baptistboard.com", true },
{ "baptistedeleris.fr", true },
{ "bar-harcourt.com", true },
{ "barabrume.fr", true },
@@ -3823,24 +4000,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "barbarians.com", false },
{ "barbaros.info", true },
{ "barbate.fr", true },
+ { "barbershop-harmony.org", true },
+ { "barbershop-lasvillas.com", true },
{ "barbu.family", true },
{ "barburas.com", true },
{ "barcamp.koeln", true },
- { "barcel.com.mx", false },
+ { "barcel.com.mx", true },
{ "barclays.net", true },
{ "barcodeberlin.com", true },
{ "barcoderealty.com", true },
+ { "bardes.org", true },
+ { "bardiharborow.com", true },
{ "bardiharborow.tk", true },
+ { "baresquare.com", true },
{ "barf-alarm.de", true },
{ "baripedia.org", true },
{ "baris-sagdic.com", true },
{ "bariseau-mottrie.be", true },
{ "bariskaragoz.nl", true },
+ { "baristador.com", true },
{ "barkerjr.xyz", true },
{ "barlotta.net", true },
{ "barnabycolby.io", true },
{ "barnel.com", true },
- { "barnrats.com", true },
{ "barpodsosnami.pl", true },
{ "barracuda.com.tr", true },
{ "barrera.io", true },
@@ -3854,15 +4036,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bart-f.com", true },
{ "barta.me", true },
{ "bartel.ws", true },
- { "bartelldrugs.com", true },
{ "bartelt.name", true },
+ { "barter4crypto.com", true },
{ "barthonia-showroom.de", true },
{ "bartlamboo.nl", true },
+ { "bartolomebellido.com", true },
{ "bartula.de", true },
{ "bartzutow.xyz", true },
{ "baruch.me", true },
{ "bas.co.jp", true },
- { "bascht.com", true },
{ "base-autonome-durable.com", true },
{ "baseballrampage.com", true },
{ "baseballsavings.com", true },
@@ -3874,19 +4056,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "basementdoctor.com", true },
{ "basementdoctornorthwest.com", true },
{ "basementfinishingohio.com", true },
+ { "basercap.co.ke", true },
+ { "bashing-battlecats.com", true },
{ "bashstreetband.co.uk", true },
{ "basicapparel.de", true },
{ "basicattentiontoken.org", true },
- { "basilicaknights.org", true },
{ "basketball-brannenburg.de", true },
- { "basketsbymaurice.com", false },
{ "basnoslovno.com.ua", false },
{ "basnoslovno.ru", true },
+ { "basonlinemarketing.nl", true },
{ "bass-pro.ru", true },
{ "bassblog.net", true },
{ "bassment.ph", true },
{ "bassresource.com", true },
{ "bassrider.eu", true },
+ { "bassys.com.co", true },
+ { "bastadigital.com", true },
{ "bastelzauberwelt.de", true },
{ "bastianstalder.ch", true },
{ "bastiv.com", true },
@@ -3907,11 +4092,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "batistareisfloresonline.com.br", true },
{ "batlab.ch", true },
{ "batolis.com", true },
- { "batonger.com", true },
{ "batook.org", true },
{ "batschu.de", true },
- { "batten.eu.org", true },
- { "batteryservice.ru", false },
{ "batterystaple.pw", true },
{ "battle-game.com", true },
{ "battleboxx.com", false },
@@ -3927,24 +4109,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bauthier-occasions.be", true },
{ "bautied.de", true },
{ "bauunternehmen-herr.de", true },
+ { "bauwens.cloud", true },
{ "bayareaenergyevents.com", true },
{ "baychimo.com", true },
{ "bayden.com", true },
+ { "bayer-stefan.com", true },
{ "bayer-stefan.de", true },
{ "bayer-stefan.eu", true },
{ "bayerhazard.de", true },
+ { "bayerstefan.com", true },
{ "bayerstefan.de", true },
{ "bayerstefan.eu", true },
{ "bayherbalist.com", true },
{ "bayilelakiku.com", true },
{ "bayly.eu", true },
{ "baymard.com", true },
+ { "baytalebaa.com", true },
{ "baywatch.io", true },
{ "bayz.de", true },
+ { "bazaarbhaav.com", true },
{ "bazaarcompass.com", true },
- { "bazdell.com", false },
+ { "bazdell.com", true },
{ "bazos.at", true },
{ "bazos.cz", true },
+ { "bazos.pl", true },
{ "bazos.sk", true },
{ "bazziergraphik.com", true },
{ "bb1718.net", true },
@@ -3953,8 +4141,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bbcastles.com", true },
{ "bbgeschenke.ch", true },
{ "bbimarketing.com", true },
- { "bbj.io", true },
{ "bbka.org.uk", true },
+ { "bbkaforum.co.uk", true },
{ "bbkworldwide.jp", true },
{ "bblove.me", true },
{ "bblsa.ch", true },
@@ -3986,15 +4174,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bcmainland.ca", true },
{ "bcmguide.com", true },
{ "bcmhire.co.uk", true },
- { "bcmlu.org", true },
{ "bcnet.com.hk", true },
{ "bcpc-ccgpfcheminots.com", true },
{ "bcrook.com", true },
+ { "bcs.adv.br", true },
{ "bcswampcabins.com", true },
{ "bcvps.com", true },
{ "bd2positivo.com", true },
{ "bda-boulevarddesairs.com", true },
- { "bdata.cl", true },
+ { "bdbxml.net", true },
{ "bdd.fi", true },
{ "bdikaros-network.net", true },
{ "bdpachicago.tech", true },
@@ -4017,7 +4205,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "be958.info", true },
{ "be958.net", true },
{ "be958.org", true },
- { "be9966.com", true },
+ { "beacham.online", true },
{ "beachfutbolclub.com", true },
{ "beacinsight.com", true },
{ "beadare.com", true },
@@ -4025,10 +4213,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "beaglesecurity.com", true },
{ "bealpha.pl", true },
{ "beamer-discount.de", true },
+ { "beamstat.com", true },
{ "beanjuice.me", true },
{ "beans-one.com", false },
{ "bearcosports.com.br", true },
{ "bearded.sexy", true },
+ { "beardic.cn", true },
{ "bearingworks.com", true },
{ "beastowner.li", true },
{ "beatfeld.de", true },
@@ -4040,7 +4230,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "beauty24.de", true },
{ "beautybear.dk", true },
{ "beautyby.tv", true },
- { "beautyconcept.co", false },
{ "beautyevent.fr", true },
{ "beautykat.ru", true },
{ "bebef.de", true },
@@ -4049,8 +4238,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bebest.gov", false },
{ "bebetrotteur.com", true },
{ "bebout.domains", true },
+ { "bebout.pw", true },
{ "beckenhamcastles.co.uk", true },
- { "beckerantiques.com", false },
+ { "beckerantiques.com", true },
{ "beckon.com", true },
{ "becoast.fr", true },
{ "becs.ch", true },
@@ -4063,6 +4253,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bedfordnissanparts.com", true },
{ "bedlingtonterrier.com.br", true },
{ "bednar.co", true },
+ { "bedrijfsportaal.nl", true },
{ "bedrocklinux.org", true },
{ "bedste10.dk", true },
{ "bee-creative.nl", true },
@@ -4070,6 +4261,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bee.clothing", true },
{ "bee.supply", true },
{ "bee.tools", true },
+ { "beechwoodmetalworks.com", true },
{ "beehive.govt.nz", true },
{ "beehive42.com", true },
{ "beehive42.eu", true },
@@ -4086,8 +4278,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "beekeeping.clothing", true },
{ "beekeeping.tools", true },
{ "beeksnetwork.nl", true },
- { "beelen.fr", true },
{ "beelit.com", true },
+ { "beeming.net", true },
{ "beercandle.com", true },
{ "beergazetteer.com", true },
{ "beerians.com", true },
@@ -4096,6 +4288,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "beerjet.ro", true },
{ "beerjet.sk", true },
{ "beerjetcz.cz", true },
+ { "beerly.eu", true },
{ "beerradar.no", true },
{ "beerradar.party", true },
{ "beersconf.com", true },
@@ -4116,10 +4309,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "beginner.nl", true },
{ "beginwp.top", true },
{ "begoodny.co.il", true },
+ { "behamepresrdce.sk", true },
{ "behamzdarma.cz", true },
{ "behindthethrills.com", true },
{ "behna24hodin.cz", true },
{ "behoerden-online-dienste.de", true },
+ { "beholdthehurricane.com", true },
{ "behoreal.cz", true },
{ "bei18.com", true },
{ "beichtgenerator.de", true },
@@ -4154,6 +4349,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "believersweb.org", true },
{ "bell.id.au", true },
{ "bella.network", true },
+ { "bellamodeling.com", true },
{ "belloy.ch", true },
{ "belloy.net", true },
{ "bellthrogh.com", true },
@@ -4166,7 +4362,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "belvoirbouncycastles.co.uk", true },
{ "bely-mishka.by", true },
{ "belyvly.com", true },
+ { "bemindly.com", true },
{ "bemsoft.pl", true },
+ { "ben-energy.com", false },
+ { "ben-jarvis.co.uk", true },
{ "ben-stock.de", true },
{ "ben.ninja", true },
{ "ben2.co.il", true },
@@ -4190,13 +4389,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "benepiscinas.com.br", true },
{ "beneri.se", true },
{ "benevita.bio", true },
- { "benevita.life", true },
- { "benevita.live", true },
{ "bengalurugifts.com", true },
{ "bengisureklam.com", true },
{ "benhaney.com", true },
{ "benhartmann.de", true },
{ "benhavenarchives.org", true },
+ { "benjamin-hering.com", true },
{ "benjamin.pe", true },
{ "benjaminblack.net", true },
{ "benjamindietrich.com", true },
@@ -4239,11 +4437,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bequiia.com", true },
{ "beranovi.com", true },
{ "berasavocate.com", true },
- { "beraten-entwickeln-steuern.de", true },
{ "berdaguermontes.eu", false },
{ "bergenhave.nl", true },
{ "bergevoet-fa.nl", true },
- { "bergfex.at", true },
{ "bergfreunde.de", true },
{ "bergfreunde.dk", true },
{ "bergfreunde.es", true },
@@ -4254,7 +4450,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bergfreunde.no", true },
{ "bergfreunde.se", true },
{ "berglust-pur.de", true },
- { "bergstoneware.com", true },
+ { "bergmann-fotografin-berlin.de", true },
+ { "bergmann-fotografin-dortmund.de", true },
+ { "bergmann-fotografin-duesseldorf.de", true },
+ { "bergmann-fotografin-essen.de", true },
+ { "bergmann-fotografin-frankfurt.de", true },
+ { "bergmann-fotografin-hamburg.de", true },
+ { "bergmann-fotografin-koeln.de", true },
+ { "bergmann-fotografin-muenchen.de", true },
+ { "bergmann-fotografin-stuttgart.de", true },
{ "berichtsheft-vorlage.de", true },
{ "berikod.ru", true },
{ "berliancom.com", false },
@@ -4267,6 +4471,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bernarddickens.com", true },
{ "bernardfischer.fr", true },
{ "bernardgo.com", true },
+ { "bernat.ch", true },
{ "bernat.im", true },
{ "bernd-leitner-fotodesign.com", true },
{ "bernd-leitner-fotodesign.de", true },
@@ -4275,7 +4480,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bernhardkau.de", true },
{ "bernhardluginbuehl.ch", true },
{ "bernhardluginbuehl.com", true },
- { "bernieware.de", true },
{ "berodes.be", true },
{ "berr.yt", true },
{ "berra.se", true },
@@ -4313,11 +4517,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bestattungen-kammerer.de", true },
{ "bestattungshaus-kammerer.de", true },
{ "bestautoinsurance.com", true },
- { "bestbonuses.co.uk", true },
+ { "bestbatteriesonline.com", true },
{ "bestbrakes.com", true },
{ "bestbridal.top", true },
{ "bestbyte.com.br", true },
{ "bestcellular.com", false },
+ { "bestdating.today", true },
{ "bestemailmarketingsoftware.org", true },
{ "bestesb.com", true },
{ "bestesb.net", true },
@@ -4326,14 +4531,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bestfriendsequality.org", true },
{ "bestgiftever.ca", true },
{ "bestgifts4you.com", true },
+ { "bestiahosting.com", true },
{ "bestinductioncooktop.us", true },
+ { "bestinver.es", true },
+ { "bestjumptrampolines.be", true },
{ "bestlashesandbrows.com", true },
{ "bestlashesandbrows.hu", true },
{ "bestmotherfucking.website", true },
{ "bestoffert.club", true },
{ "bestoliveoils.com", true },
+ { "bestparking.xyz", true },
{ "bestpartyhire.com", true },
{ "bestperfumebrands.com", true },
+ { "bestpig.fr", true },
+ { "bestschools.io", true },
{ "bestseries.tv", true },
{ "bestshoesmix.com", true },
{ "bestwebsite.gallery", true },
@@ -4347,15 +4558,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "betacavi.com", true },
{ "betacloud.io", true },
{ "betalenviainternet.nl", true },
+ { "betaprofiles.com", true },
{ "betaworx.de", true },
{ "betaworx.eu", true },
{ "betecnet.de", true },
{ "betgo9.cc", true },
{ "bethanyduke.com", true },
+ { "bethpage.net", true },
{ "betobaccofree.gov", true },
{ "betonbit.com", true },
{ "betpamm.com", true },
{ "betrallyarabia.com", true },
+ { "bets.gg", true },
{ "betseybuckheit.com", true },
{ "betsyshilling.com", true },
{ "bett1.de", true },
@@ -4366,7 +4580,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "betterconsult.com", true },
{ "bettercrypto.org", true },
{ "betterhelp.com", true },
+ { "betterjapanese.blog", true },
+ { "betterjapanese.com", true },
{ "betterjapanese.org", true },
+ { "betterjapanese.xyz", true },
{ "betterna.me", true },
{ "betterscience.org", true },
{ "bettertechinterviews.com", true },
@@ -4396,10 +4613,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bevnut.com", true },
{ "bewegungsfluss.com", false },
{ "bewerbungsfoto-deinfoto.ch", true },
- { "bewertet.de", true },
{ "bewonderen.com", true },
{ "bexit.nl", true },
- { "bexithosting.nl", true },
{ "bexleycastles.co.uk", true },
{ "beybiz.com", true },
{ "beylikduzuvaillant.com", true },
@@ -4414,7 +4629,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "beyondweb.net", true },
{ "beyonic.com", true },
{ "beyours.be", true },
- { "bez-energie.de", true },
{ "bezemkast.nl", true },
{ "bezpecnostsiti.cf", true },
{ "bezr.co.uk", true },
@@ -4429,11 +4643,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bftbradio.com", true },
{ "bfw-online.de", true },
{ "bg-sexologia.com", true },
- { "bg16.de", true },
{ "bgbhsf.top", true },
- { "bgenlisted.com", true },
{ "bgeo.io", true },
- { "bgfashion.net", true },
{ "bgfoto.info", true },
{ "bghost.xyz", true },
{ "bgkoleda.bg", true },
@@ -4442,6 +4653,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bgr34.cz", true },
{ "bgtgames.com", true },
{ "bgtoyou.com", true },
+ { "bgwfans.com", true },
{ "bh-oberland.de", true },
{ "bh.sb", true },
{ "bharath-g.in", true },
@@ -4471,9 +4683,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bicranial.io", true },
{ "bicycle-events.com", true },
{ "biddl.com", true },
- { "bidorbuy.co.ke", true },
+ { "biddle.co", true },
{ "bidu.com.br", true },
{ "bie.edu", false },
+ { "biegal.ski", true },
{ "biegner-technik.de", true },
{ "biehlsoft.info", true },
{ "bielefailed.de", true },
@@ -4481,10 +4694,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bienici.com", true },
{ "bienoubien.org", true },
{ "biensenvue.com", true },
+ { "bienstar.tv", true },
{ "bierbaumer.net", true },
{ "biergaizi.info", true },
{ "bieser.ch", true },
{ "biester.pro", true },
+ { "bieumau.net", true },
{ "bifrost.cz", true },
{ "biftin.net", true },
{ "big-andy.co.uk", true },
@@ -4498,16 +4713,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bigcakes.dk", true },
{ "bigclassaction.com", true },
{ "bigdinosaur.org", true },
- { "bigfunbouncycastles.com", true },
{ "biggreenexchange.com", true },
{ "bigio.com.br", true },
{ "bigjohn.ru", true },
- { "bigshort.org", true },
+ { "biglou.com", false },
+ { "bignumworks.com", true },
{ "bigsisterchannel.com", true },
{ "bigskymontanalandforsale.com", true },
+ { "bigwiseguide.com", true },
{ "bihub.io", true },
{ "biilo.com", true },
- { "bijoux.com.br", true },
{ "bijouxbrasil.com.br", true },
{ "bijouxcherie.com", true },
{ "bijuteriicualint.ro", true },
@@ -4530,6 +4745,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bildiri.ci", true },
{ "bildkomponist.de", true },
{ "bildschirmflackern.de", true },
+ { "biletru.net", true },
{ "biletyplus.by", true },
{ "biletyplus.ua", true },
{ "bilgo.com", true },
@@ -4537,10 +4753,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bilimoe.com", true },
{ "bilke.org", true },
{ "billaud.eu.org", true },
+ { "billgoldstein.name", true },
{ "billhartzer.com", true },
{ "billiger-mietwagen.de", true },
{ "billigerfinder.de", true },
{ "billigpoker.dk", true },
+ { "billin.net", true },
+ { "billionaire365.com", true },
{ "billionairemailinglist.com", false },
{ "billionkiaparts.com", true },
{ "billogram.com", true },
@@ -4567,9 +4786,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "binans.net", true },
{ "binans.xyz", true },
{ "binarization.com", true },
- { "binarization.net", true },
{ "binaryapparatus.com", true },
{ "binaryappdev.com", true },
+ { "binarycreations.scot", true },
{ "binarydream.fi", true },
{ "binaryevolved.com", true },
{ "binaryrebel.net", true },
@@ -4583,6 +4802,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "binhex.net", true },
{ "binkanhada.biz", true },
{ "binkconsulting.be", true },
+ { "binnenmeer.de", true },
{ "binti.com", true },
{ "bintooshoots.com", true },
{ "bio-disinfestazione.it", true },
@@ -4609,7 +4829,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bioharmony.ca", true },
{ "biointelligence-explosion.com", true },
{ "bioligo.ch", true },
- { "biomax-mep.com.br", true },
+ { "biomasscore.com", true },
{ "biometrics.es", true },
{ "biomodra.cz", true },
{ "biopsychiatry.com", true },
@@ -4618,7 +4838,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "biosbits.org", true },
{ "bioshine.com.sg", true },
{ "biosignalanalytics.com", true },
- { "biospeak.solutions", true },
{ "biosphere.cc", true },
{ "biotechware.com", true },
{ "bipyo.com", true },
@@ -4634,19 +4853,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "birgerschwarz.de", true },
{ "birgit-rydlewski.de", true },
{ "birgitandmerlin.com", true },
- { "birkengarten.ch", true },
{ "birkenstab.de", true },
{ "birkhoff.me", true },
{ "birminghamcastlehire.co.uk", true },
{ "birminghamsunset.com", true },
{ "birthdaytip.com", true },
{ "birthmatters.us", true },
+ { "birthright.website", true },
{ "birzan.org", true },
{ "bisa-sis.net", true },
- { "bischoff-mathey.family", true },
{ "biscoint.io", true },
{ "biser-borisov.eu", true },
{ "bismarck-tb.de", true },
+ { "biso.ga", true },
{ "bison.co", true },
{ "bissalama.org", true },
{ "bisschopssteeg.nl", true },
@@ -4655,10 +4874,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bit-cloud.de", true },
{ "bit-rapid.com", true },
{ "bit-sentinel.com", true },
+ { "bit-service-aalter.be", true },
+ { "bit.biz.tr", true },
{ "bit.voyage", true },
{ "bit8.com", true },
+ { "bitaccelerate.com", true },
{ "bitbank.cc", true },
{ "bitbeans.de", true },
+ { "bitbox.me", true },
{ "bitbucket.com", true },
{ "bitbucket.io", true },
{ "bitbucket.org", true },
@@ -4671,7 +4894,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bitcoin.asia", true },
{ "bitcoin.ch", true },
{ "bitcoin.co.nz", true },
- { "bitcoin.com", true },
{ "bitcoin.de", true },
{ "bitcoin.im", true },
{ "bitcoin.info", true },
@@ -4680,7 +4902,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bitcoinbitcoin.com", true },
{ "bitcoinclashic.ninja", true },
{ "bitcoincore.org", true },
- { "bitcoinfo.jp", false },
{ "bitcoinindia.com", true },
{ "bitcoinkarlsruhe.de", true },
{ "bitcoinrealestate.com.au", true },
@@ -4688,7 +4909,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bitcoinwalletscript.tk", true },
{ "bitcoinx.gr", true },
{ "bitcoinx.ro", true },
- { "bitedge.com", true },
{ "bitenose.com", true },
{ "bitex.la", true },
{ "bitfasching.de", false },
@@ -4704,29 +4924,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bitk.co", true },
{ "bitk.co.uk", true },
{ "bitk.eu", true },
- { "bitk.uk", true },
{ "bitlish.com", true },
{ "bitlo.com", true },
{ "bitlo.com.tr", true },
{ "bitlo.io", true },
{ "bitlo.org", true },
{ "bitmainwarranty.com", true },
- { "bitmainwarranty.com.ua", true },
- { "bitmainwarranty.ru", true },
{ "bitmarket.net", true },
{ "bitmarket.pl", true },
{ "bitmessage.ch", true },
{ "bitmidi.com", true },
{ "bitminter.com", true },
+ { "bitmoe.com", true },
+ { "bitmon.net", true },
{ "bitok.com", true },
- { "bitpoll.de", true },
- { "bitpoll.org", true },
{ "bitpumpe.net", true },
{ "bitref.com", true },
{ "bitrush.nl", true },
{ "bitsafe.com.my", true },
{ "bitsburg.ru", true },
{ "bitshaker.net", true },
+ { "bitskins.co", true },
{ "bitskrieg.net", true },
{ "bitstorm.nl", true },
{ "bitstorm.org", true },
@@ -4744,12 +4962,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "biyou-homme.com", true },
{ "biz4x.com", true },
{ "bizeau.ch", true },
- { "bizedge.co.nz", true },
{ "bizniskatalog.mk", true },
{ "biznpro.ru", true },
{ "bizstarter.cz", true },
{ "biztera.com", true },
{ "biztok.eu", true },
+ { "biztouch.work", true },
{ "bizzi.tv", true },
{ "bjarnerest.de", true },
{ "bjl5689.com", true },
@@ -4761,7 +4979,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bkentertainments.co.uk", true },
{ "bkhayes.com", true },
{ "bkhpilates.co.uk", true },
+ { "bklaindia.com", true },
{ "bkositspartytime.co.uk", true },
+ { "bl00.se", true },
{ "bl4ckb0x.biz", true },
{ "bl4ckb0x.com", true },
{ "bl4ckb0x.de", true },
@@ -4788,14 +5008,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blablacar.ro", true },
{ "blablacar.rs", true },
{ "blablacar.ru", true },
- { "black-gay-porn.biz", true },
+ { "black-khat.com", true },
{ "black-mail.nl", true },
{ "black-pool.net", true },
{ "black-raven.fr", true },
{ "black.dating", true },
{ "black.host", true },
{ "blackandpony.de", true },
- { "blackapron.com.br", true },
{ "blackbag.nl", true },
{ "blackbase.de", true },
{ "blackberryforums.be", true },
@@ -4803,7 +5022,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blackcatinformatics.ca", true },
{ "blackcatinformatics.com", true },
{ "blackcicada.com", true },
- { "blackdesertsp.com", true },
{ "blackdotbrewery.com", true },
{ "blackdown.de", true },
{ "blackdragoninc.org", true },
@@ -4818,14 +5036,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blackilli.de", true },
{ "blackislegroup.com", true },
{ "blackkeg.ca", true },
+ { "blackl.net", true },
{ "blackmonday.gr", true },
{ "blacknetwork.eu", true },
+ { "blacknova.io", true },
{ "blackonion.com", true },
{ "blackpapermoon.de", true },
{ "blackphoenix.de", true },
{ "blackroadphotography.de", true },
{ "blackscytheconsulting.com", true },
{ "blackseals.net", true },
+ { "blackyau.cc", true },
{ "blackys-chamber.de", true },
{ "blaise.io", true },
{ "blakecoin.org", true },
@@ -4834,6 +5055,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blancodent.com", true },
{ "blankersfamily.com", true },
{ "blanket.technology", true },
+ { "blantr.com", true },
{ "blasorchester-runkel.de", true },
{ "blastentertainment.com.au", true },
{ "blastersklan.com", true },
@@ -4855,6 +5077,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blendle.com", true },
{ "blendle.nl", true },
{ "blendr.com", true },
+ { "blenheimears.com", true },
{ "blenneros.net", false },
{ "blessedearth.com.au", true },
{ "blessedguy.com", true },
@@ -4864,9 +5087,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blidz.com", true },
{ "blieque.co.uk", true },
{ "bliesekow.net", true },
+ { "bliker.ga", true },
{ "blikk.no", true },
- { "blikund.swedbank.se", true },
{ "blindpigandtheacorn.com", true },
+ { "blinds-unlimited.com", true },
{ "bling9.com", true },
{ "bling999.cc", true },
{ "bling999.com", true },
@@ -4893,8 +5117,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "block65.com", true },
{ "blockchain.com", true },
{ "blockchain.info", true },
+ { "blockchainced.com", true },
{ "blockchaindaigakko.jp", true },
{ "blockchainwhiz.com", true },
+ { "blockcheck.network", true },
{ "blockedyourcar.com", true },
{ "blockedyourcar.net", true },
{ "blockedyourcar.org", true },
@@ -4909,9 +5135,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blog.linode.com", false },
{ "blog.lookout.com", false },
{ "blogaid.net", true },
+ { "blogarts.net", true },
{ "blogbooker.com", true },
{ "blogconcours.net", true },
{ "blogcuaviet.com", true },
+ { "blogdelosjuguetes.com", true },
{ "blogdeyugioh.com", true },
{ "blogexpert.ca", true },
{ "bloggermumofthreeboys.com", true },
@@ -4920,11 +5148,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bloggytalky.com", true },
{ "bloginbeeld.nl", true },
{ "bloglines.co.za", true },
+ { "bloglogistics.com", true },
{ "blogom.at", true },
{ "blogpentrusuflet.ro", true },
{ "blogreen.org", true },
+ { "blogthedayaway.com", true },
{ "blogtroterzy.pl", true },
- { "blok56.nl", true },
+ { "blood4pets.tk", true },
{ "bloodsports.org", true },
{ "bloom-avenue.com", true },
{ "bltc.co.uk", true },
@@ -4935,6 +5165,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bltdirect.com", true },
{ "blubberladen.de", true },
{ "bludnykoren.ml", true },
+ { "blue-gmbh-erfahrungen.de", true },
+ { "blue-gmbh.de", true },
{ "blue-leaf81.net", true },
{ "blue42.net", true },
{ "blueblou.com", true },
@@ -4948,12 +5180,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blueflare.org", true },
{ "bluefrag.com", true },
{ "bluefuzz.nl", true },
+ { "bluehelixmusic.com", true },
{ "blueimp.net", true },
{ "blueliquiddesigns.com.au", true },
{ "bluemeda.web.id", true },
- { "bluemoonroleplaying.com", true },
+ { "bluemosh.com", true },
{ "bluemtnrentalmanagement.ca", true },
{ "bluenote9.com", true },
+ { "blueoakart.com", true },
{ "bluepearl.tk", true },
{ "blueperil.de", true },
{ "bluepoint.one", true },
@@ -4961,17 +5195,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "blueprintloans.co.uk", true },
{ "bluerootsmarketing.com", true },
{ "blues-and-pictures.com", true },
- { "bluesecure.com.br", true },
{ "blueskycoverage.com", true },
{ "bluestardiabetes.com", true },
+ { "bluetexservice.com", true },
{ "bluewavewebdesign.com", true },
{ "bluex.im", true },
{ "bluex.info", true },
{ "bluex.net", true },
{ "bluex.org", true },
{ "blueyed.eu", true },
- { "blui.cf", true },
+ { "blui.ml", true },
{ "bluiandaj.ml", true },
+ { "bluimedia.com", true },
{ "blumenfeldart.com", true },
{ "blumiges-fischbachtal.de", false },
{ "blundell.wedding", true },
@@ -4980,9 +5215,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bluproducts.com.es", true },
{ "blurringexistence.net", true },
{ "blusmurf.net", true },
- { "blutopia.xyz", true },
{ "blyat.science", true },
{ "blyth.me.uk", true },
+ { "blzrk.com", true },
{ "bmhglobal.com.au", true },
{ "bmone.net", true },
{ "bmriv.com", true },
@@ -4991,8 +5226,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bmwcolors.com", true },
{ "bn1digital.co.uk", true },
{ "bn4t.me", true },
- { "bnb-buddy.nl", true },
- { "bnboy.cn", true },
{ "bnbsinflatablehire.co.uk", true },
{ "bngs.pl", true },
{ "bnin.org", true },
@@ -5019,11 +5252,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bobancoamigo.com", true },
{ "bobazar.com", true },
{ "bobcopeland.com", true },
- { "bobep.ru", true },
+ { "bobiji.com", false },
{ "bobkidbob.com", true },
{ "bobkoetsier.nl", true },
{ "bobnbouncedublin.ie", true },
- { "boboates.com", true },
{ "bobobox.net", true },
{ "boboolo.com", true },
{ "bobstronomie.fr", true },
@@ -5042,6 +5274,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bodymusclejournal.com", true },
{ "bodypainter.pl", true },
{ "bodypainting.waw.pl", true },
+ { "bodyweb.com.br", true },
{ "bodyworkbymichael.com", true },
{ "boeddhashop.nl", true },
{ "boekenlegger.nl", true },
@@ -5051,20 +5284,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bogdanepureanu.ro", true },
{ "bogner.sh", true },
{ "bogobeats.com", true },
- { "bohan.co", true },
+ { "bogosity.se", true },
{ "bohramt.de", true },
{ "boimmobilier.ch", true },
{ "boincstats.com", true },
{ "boiseonlinemall.com", true },
{ "boisewaldorf.org", true },
+ { "bokadoktorn-test.net", true },
{ "boke112.com", true },
{ "bokka.com", true },
+ { "bokkeriders.com", true },
{ "bokutake.com", true },
{ "boldmediagroup.com", true },
{ "boldt-metallbau.de", true },
{ "bolektro.de", true },
{ "bolgarnyelv.hu", true },
- { "bolivarfm.com.ve", true },
{ "bollywood.uno", true },
{ "bologna-disinfestazioni.it", true },
{ "bolovegna.it", true },
@@ -5072,6 +5306,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "boltbeat.com", true },
{ "bolte.org", true },
{ "bomb.codes", true },
+ { "bombe-lacrymogene.fr", true },
{ "bonaccorso.eu", true },
{ "bonami.cz", true },
{ "bonami.hu", true },
@@ -5079,19 +5314,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bonami.ro", true },
{ "bonami.sk", true },
{ "bonbonmania.com", true },
- { "bondagefetishstore.com", true },
{ "bondank.com", true },
{ "bondarenko.dn.ua", true },
{ "bondingwithbaby.ca", true },
+ { "bondlink.com", true },
{ "bondoer.fr", true },
{ "bondskampeerder.nl", true },
{ "bonebunny.de", true },
- { "boneko.de", true },
{ "bonesserver.com", true },
{ "bonfi.net", true },
{ "bonibuty.com", true },
{ "bonifacius.be", true },
{ "bonita.com.br", true },
+ { "bonito.pl", true },
{ "bonnant-associes.ch", true },
{ "bonnant-partners.ch", true },
{ "bonnebouffe.fr", true },
@@ -5103,11 +5338,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bonnyprints.fr", true },
{ "bonprix.co.uk", true },
{ "bonqoeur.ca", true },
+ { "bonrecipe.com", true },
{ "bonsaimedia.nl", true },
{ "boodaah.com", true },
{ "boodmo.com", true },
{ "boogiebouncecastles.co.uk", true },
{ "book-in-hotel.com", true },
+ { "booker.ly", true },
{ "bookingapp.be", true },
{ "bookingapp.nl", true },
{ "bookingdeluxesp.com", true },
@@ -5121,7 +5358,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bookshopofindia.com", true },
{ "booksinthefridge.at", true },
{ "booktracker-org.appspot.com", true },
- { "bookwitty.social", true },
{ "bool.be", true },
{ "boomersurf.com", true },
{ "boomshelf.com", true },
@@ -5139,14 +5375,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "booq.org", true },
{ "booquiz.com", true },
{ "boosinflatablegames.co.uk", true },
+ { "boost.fyi", true },
{ "boost.ink", true },
+ { "boostgame.win", true },
{ "booter.pw", true },
{ "bootjp.me", false },
{ "bopiweb.com", true },
{ "bopp.org", true },
{ "borahan.net", true },
- { "borchers-media.de", true },
- { "borchers.ninja", true },
{ "bordadoenpedreria.com", true },
{ "bordes.me", true },
{ "boredhackers.com", true },
@@ -5172,9 +5408,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bosufitness.cz", true },
{ "bosun.io", true },
{ "bosworthdental.co.uk", true },
- { "botlab.ch", true },
- { "botmanager.pl", true },
- { "bots.cat", true },
+ { "bot-manager.pl", true },
+ { "botguard.net", true },
{ "botserver.de", true },
{ "botstack.host", true },
{ "bottaerisposta.net", true },
@@ -5187,7 +5422,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bouckaert-usedcars.be", true },
{ "boudah.pl", true },
{ "bougeret.fr", true },
- { "bouk.co", true },
+ { "boukoubengo.com", true },
{ "boulzicourt.fr", true },
{ "bounce-a-mania.co.uk", true },
{ "bounce-a-roo.co.uk", true },
@@ -5252,7 +5487,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bouncycastle.net.au", true },
{ "bouncycastlehire-norwich.com", true },
{ "bouncycastlehire-sheffield.co.uk", true },
- { "bouncycastlehireauckland.co.nz", true },
+ { "bouncycastlehire.co.uk", true },
{ "bouncycastlehirebarnstaple.co.uk", true },
{ "bouncycastlehirebexley.co.uk", true },
{ "bouncycastlehirechelmsford.org.uk", true },
@@ -5299,6 +5534,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bountyfactory.io", true },
{ "bourasse.fr", true },
{ "bourdon.fr.eu.org", true },
+ { "bourgdepabos.com", true },
{ "bourhis.info", true },
{ "bournefun.co.uk", true },
{ "bourqu.in", true },
@@ -5322,11 +5558,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bownty.it", true },
{ "bownty.nl", true },
{ "bowntycdn.net", true },
+ { "boxmoe.cn", true },
{ "boxpeg.com", true },
{ "boxpirates.to", true },
{ "boxvergelijker.nl", true },
+ { "boyerassoc.com", true },
+ { "boyfriendcookbook.com", true },
{ "boyhost.cn", true },
- { "boypoint.de", true },
+ { "boyinglanguage.com", true },
+ { "boyntonobserver.org", true },
{ "boz.nl", false },
{ "bozdoz.com", true },
{ "bozit.com.au", true },
@@ -5352,7 +5592,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bradler.net", true },
{ "bradlinder.org", true },
{ "bradypatterson.com", true },
- { "braemer-it-consulting.de", true },
{ "braeunlich-gmbh.com", true },
{ "brage.info", true },
{ "brahmins.com", true },
@@ -5372,6 +5611,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "brainvoyagermusic.com", true },
{ "brainwork.space", true },
{ "brakemanpro.com", true },
+ { "brakpanplumber24-7.co.za", true },
{ "bralnik.com", true },
{ "brambogaerts.nl", true },
{ "bramburek.net", true },
@@ -5379,8 +5619,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "brammingfys.dk", true },
{ "bramstaps.nl", true },
{ "bramvanaken.be", true },
+ { "bramygrozy.pl", true },
{ "bran.land", true },
{ "branch-bookkeeper.com", true },
+ { "branchtrack.com", true },
+ { "brandand.co.uk", true },
{ "brandbil.dk", true },
{ "brandbuilderwebsites.com", true },
{ "brandcodeconsulting.com", true },
@@ -5388,6 +5631,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "brando753.xyz", true },
{ "brandongomez.me", true },
{ "brandonhubbard.com", true },
+ { "brandonlui.ml", true },
{ "brandonwalker.me", true },
{ "brandrocket.dk", true },
{ "brandstead.com", true },
@@ -5401,10 +5645,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "brasalcosmetics.com", true },
{ "brashear.me", true },
{ "brasilbombas.com.br", true },
+ { "brasildxn.com.br", true },
{ "brasserie-mino.fr", true },
{ "brasspipedreams.org", true },
{ "bratislava-airport-taxi.com", true },
{ "bratteng.me", true },
+ { "bratteng.xyz", true },
{ "bratvanov.com", true },
{ "brau-ingenieur.de", true },
{ "braudoktor.de", true },
@@ -5449,7 +5695,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "breitbild-beamer.de", true },
{ "brejoc.com", true },
{ "bremen-restaurants.de", true },
- { "bremensaki.com", true },
{ "bremerfriedensforum.de", true },
{ "brendanbatliner.com", true },
{ "brendanscherer.com", true },
@@ -5481,9 +5726,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "briarproject.org", true },
{ "brickftp.com", true },
{ "brickheroes.com", true },
+ { "brickstreettrio.com", true },
{ "brickvortex.com", true },
{ "bricolajeux.ch", true },
{ "brid.gy", false },
+ { "bridalshoes.com", true },
{ "brideandgroomdirect.ie", true },
{ "bridgeglobalmarketing.com", true },
{ "bridgement.com", true },
@@ -5493,19 +5740,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "briefassistant.com", true },
{ "briefhansa.de", true },
{ "briefvorlagen-papierformat.de", true },
- { "briggsleroux.com", true },
{ "brighouse-leisure.co.uk", true },
{ "brightday.bz", true },
+ { "brightendofleasecleaning.com.au", true },
+ { "brightlifedirect.com", true },
{ "brightonbank.com", true },
{ "brightonbouncycastles.net", true },
{ "brightonchilli.org.uk", true },
{ "brightonzhang.com", true },
{ "brigidaarie.com", true },
{ "brilliantbouncyfun.co.uk", true },
- { "brilliantdecisionmaking.com", true },
{ "brilliantproductions.co.nz", true },
{ "brimspark.systems", true },
- { "brinquedoseducativos.art.br", true },
{ "brio-shop.ch", true },
{ "brisbanelogistics.com.au", true },
{ "bristebein.com", true },
@@ -5514,13 +5760,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "britelocate.com", true },
{ "britishbeef.com", true },
{ "britishbookmakers.co.uk", true },
+ { "britishchronicles.com", true },
{ "britishgroupsg.com", true },
{ "britishpearl.com", true },
{ "britishsciencefestival.org", true },
{ "britishscienceweek.org", true },
+ { "britishsnoring.co.uk", true },
{ "britneyclause.com", true },
+ { "brittanyferriesnewsroom.com", true },
{ "britton-photography.com", true },
+ { "brmsalescommunity.com", true },
{ "brn.by", true },
+ { "brnojebozi.cz", true },
{ "bro.hk", true },
{ "broadleft.org", true },
{ "broadsheet.com.au", true },
@@ -5541,17 +5792,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "brookehatton.com", true },
{ "brooklynrealestateblog.com", true },
{ "brookworth.com", true },
- { "brossman.it", true },
{ "brossmanit.com", true },
{ "brother-printsmart.nl", true },
{ "brouillard.ch", true },
- { "brouwerijkoelit.nl", true },
+ { "brouwerijdeblauweijsbeer.nl", true },
{ "brovelton.com", true },
{ "brown-devost.com", true },
{ "brownfieldstsc.org", true },
{ "brownihc.com", true },
+ { "browsemycity.com", true },
{ "brring.com", true },
{ "bru6.de", true },
+ { "brucekovner.com", true },
{ "brucemartin.net", true },
{ "brucemobile.de", false },
{ "bruck.me", true },
@@ -5559,17 +5811,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bruna-cdn.nl", true },
{ "brunick.de", false },
{ "brunn.email", true },
- { "brunner.ninja", false },
+ { "brunner.ninja", true },
{ "brunohenc.from.hr", true },
- { "brunoramos.com", true },
- { "brunoramos.org", true },
- { "brunosouza.org", true },
{ "brush.ninja", true },
{ "bruun.co", true },
{ "bryankaplan.com", true },
{ "bryanquigley.com", true },
{ "bryansmith.net", true },
{ "bryansmith.tech", true },
+ { "brzy-svoji.cz", true },
{ "bs-network.net", true },
{ "bs-security.com", true },
{ "bs.sb", true },
@@ -5596,17 +5846,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bsidessf.com", true },
{ "bsimerch.com", true },
{ "bslim-e-boutique.com", true },
+ { "bsociabl.com", true },
{ "bsp-southpool.com", true },
+ { "bsquared.org", true },
+ { "bst.gg", true },
{ "bstoked.net", true },
+ { "bsuru.xyz", true },
{ "bsw-solution.de", true },
{ "bt123.xyz", true },
- { "bt78.cn", true },
- { "bt85.cn", true },
- { "bt9.cc", true },
- { "bt96.cn", true },
- { "bt995.com", true },
{ "bta.lv", false },
- { "btaoke.com", true },
{ "btc2secure.com", true },
{ "btcarmory.com", true },
{ "btcbolsa.com", true },
@@ -5622,6 +5870,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "btserv.de", true },
{ "btsoft.eu", true },
{ "btsow.com", true },
+ { "bttc.co.uk", true },
{ "btth.live", true },
{ "btth.pl", true },
{ "btth.tv", true },
@@ -5692,31 +5941,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bulario.com", true },
{ "bulario.net", true },
{ "bulbcompare.com", true },
+ { "bulbgenie.com", true },
{ "bulkcandystore.com", true },
{ "bulkingtime.com", true },
{ "bulktrade.de", true },
{ "bulkwholesalesweets.co.uk", true },
{ "bull.id.au", true },
{ "bulldog-hosting.de", true },
- { "bulldoghire.co.uk", true },
{ "bulledair-savons.ch", true },
{ "bullettags.com", true },
{ "bullpay.com", true },
{ "bullshitmail.nl", true },
{ "bullterrier.nu", true },
{ "bulwarkhost.com", true },
- { "bumarkamoda.com", true },
{ "bunbun.be", false },
{ "bund-von-theramore.de", true },
- { "bundaberg.com", true },
{ "bundespolizei-forum.de", true },
{ "bunkyo-life.com", true },
{ "bunny-rabbits.com", true },
{ "bunnyvishal.com", true },
{ "bunzy.ca", true },
{ "bupropion.com", true },
+ { "bupu.ml", true },
{ "buradangonder.com", true },
{ "burcevo.info", true },
+ { "burfordbedandbreakfast.co.uk", true },
{ "burgernet.nl", true },
{ "burgers.io", true },
{ "burghardt.pl", true },
@@ -5725,10 +5974,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "buricloud.fr", true },
{ "burke.services", true },
{ "burlapsac.ca", true },
+ { "burncorp.org", true },
{ "burnerfitness.com", true },
{ "burnhamonseabouncycastles.co.uk", true },
{ "burningbird.net", true },
{ "burningflipside.com", false },
+ { "burningmarket.de", true },
{ "burntfish.com", true },
{ "burnworks.com", true },
{ "buronwater.com", true },
@@ -5741,6 +5992,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "burtrum.name", true },
{ "burtrum.org", true },
{ "burzmali.com", true },
+ { "busanhs.bid", true },
+ { "busanhs.win", true },
{ "buserror.cn", true },
{ "bushbaby.com", true },
{ "bushcraftfriends.com", true },
@@ -5754,6 +6007,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "businessimmigration-eu.ru", true },
{ "businessplanexperts.ca", true },
{ "businessradar.com.au", true },
+ { "businesswebadmin.com", true },
{ "busit.be", true },
{ "busold.ws", true },
{ "bustadice.com", true },
@@ -5764,7 +6018,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "buthowdoyoubuygroceries.com", true },
{ "butikvip.ru", true },
{ "buttercupstraining.co.uk", true },
- { "buttermilk.cf", true },
{ "buttonline.ch", true },
{ "buttonrun.com", true },
{ "buturyu.net", true },
@@ -5774,6 +6027,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "buy-thing.com", true },
{ "buyaccessible.gov", true },
{ "buycarpet.shop", true },
+ { "buycbd.store", true },
{ "buycook.shop", true },
{ "buydissertations.com", true },
{ "buyerdocs.com", true },
@@ -5800,28 +6054,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bw.codes", true },
{ "bwcscorecard.org", true },
{ "bwe-seminare.de", true },
+ { "bwf11.com", true },
+ { "bwf55.com", true },
+ { "bwf6.com", true },
+ { "bwf66.com", true },
+ { "bwf77.com", true },
+ { "bwf99.com", true },
{ "bwfc.nl", true },
{ "bwh1.net", true },
{ "bwilkinson.co.uk", true },
- { "bwin86.com", true },
- { "bwin8601.com", true },
- { "bwin8602.com", true },
- { "bwin8603.com", true },
- { "bwin8604.com", true },
- { "bwin8605.com", true },
- { "bwin8606.com", true },
{ "bwl-earth.club", true },
{ "bws16.de", true },
- { "bwwb.nu", true },
{ "bx-n.de", true },
{ "bxp40.at", true },
{ "by.cx", true },
+ { "byange.pro", true },
{ "byatte.com", true },
{ "bydisk.com", false },
{ "byeskille.no", true },
{ "bygningsregistrering.dk", true },
{ "byiu.info", true },
- { "byken.cn", true },
{ "bymark.co", true },
{ "bymike.co", true },
{ "bynder.com", true },
@@ -5844,8 +6096,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bytema.eu", true },
{ "bytema.re", true },
{ "bytema.sk", true },
+ { "bytemix.cloud", true },
{ "byteowls.com", false },
{ "bytepark.de", true },
+ { "bytepen.com", true },
{ "bytes.co", true },
{ "bytes.fyi", true },
{ "bytesatwork.de", true },
@@ -5858,10 +6112,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "bythisverse.com", true },
{ "byvshie.com", true },
{ "bywin9.com", true },
- { "bzhub.bid", true },
{ "bziaks.xyz", true },
{ "bzsparks.com", true },
{ "bztech.com.br", true },
+ { "bztraveler.com", true },
+ { "bztraveler.net", true },
{ "bzv-fr.eu", true },
{ "c-aeroconsult.com", true },
{ "c-path.org", true },
@@ -5872,6 +6127,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "c-world.co.uk", true },
{ "c.cc", true },
{ "c0rn3j.com", true },
+ { "c0rporation.com", true },
{ "c2design.it", true },
{ "c2o-library.net", true },
{ "c3hv.cn", true },
@@ -5880,16 +6136,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "c3wien.at", true },
{ "c4539.com", true },
{ "c4k3.net", true },
+ { "c5h8no4na.net", true },
{ "c7dn.com", true },
{ "ca-key.de", true },
{ "ca-terminal-multiservices.fr", true },
{ "ca.gparent.org", true },
{ "ca.search.yahoo.com", false },
{ "ca5.de", true },
+ { "caaps.org.au", true },
{ "caarecord.org", true },
{ "caasd.org", true },
+ { "cabaladada.org", true },
{ "cabarave.com", true },
{ "cabforum.org", true },
+ { "cabineritten.nl", true },
{ "cabinet-bedin.com", true },
{ "cablehighspeed.net", true },
{ "cablemod.com", true },
@@ -5902,7 +6162,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "caceis.bank", true },
{ "cachetagalong.com", true },
{ "cachethome.com", true },
- { "cachethq.io", true },
{ "cachetur.no", true },
{ "cackette.com", true },
{ "cad-noerdlingen.de", true },
@@ -5913,30 +6172,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cadooz.com", true },
{ "cadorama.fr", true },
{ "cadoth.net", true },
- { "cadra.nl", true },
+ { "cadra.nl", false },
+ { "cadre.com", true },
{ "cadsys.net", true },
{ "cadusilva.com", true },
{ "caesarkabalan.com", true },
- { "cafe-service.ru", false },
{ "cafedupont.be", true },
{ "cafedupont.co.uk", true },
{ "cafedupont.de", true },
{ "cafedupont.nl", true },
- { "cafefresco.pe", true },
{ "cafeimsueden.de", true },
{ "cafelandia.net", true },
{ "cafeobscura.nl", true },
+ { "cafericoy.com", true },
{ "caffeinatedcode.com", true },
- { "caibi.io", true },
+ { "cagalogluyayinevi.com", true },
{ "cainhosting.com", false },
- { "cais.de", true },
{ "caitcs.com", true },
{ "caiwenjian.xyz", true },
{ "caizx.com", false },
{ "caja-pdf.es", true },
{ "cajio.ru", true },
{ "cajunuk.co.uk", true },
- { "cake-time.co.uk", true },
{ "cakestart.net", true },
{ "caketoindia.com", true },
{ "cakingandbaking.com", true },
@@ -5955,16 +6212,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "calc.pw", true },
{ "calcedge.com", true },
{ "calcinacci.com", true },
+ { "calcoolator.pl", true },
{ "calcularis.ch", true },
{ "calculateaspectratio.com", true },
{ "calculator-imt.com", true },
{ "calculator.tf", true },
{ "calcworkshop.com", true },
{ "caldecotevillagehall.co.uk", true },
+ { "caleb.cx", true },
{ "caleb.host", true },
{ "calebthompson.io", true },
{ "calendarr.com", true },
{ "calendarsnow.com", true },
+ { "calendly.com", true },
{ "caletka.cz", true },
{ "calgoty.com", true },
{ "calibreapp.com", true },
@@ -5973,8 +6233,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "calidoinvierno.com", true },
{ "calixte-concept.fr", true },
{ "call.me", true },
- { "callanbryant.co.uk", true },
- { "callawayracing.se", true },
+ { "callawayracing.se", false },
{ "callear.org", true },
{ "callhub.io", true },
{ "calltoar.ms", true },
@@ -5984,9 +6243,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "calluna.nl", true },
{ "calmtech.com", true },
{ "calotte-academy.com", true },
+ { "calrotaract.org", true },
{ "calvin.my", true },
{ "calvinallen.net", false },
- { "calypso-tour.net", true },
{ "calyxengineers.com", true },
{ "camaradivisas.com", true },
{ "camaras.uno", true },
@@ -6000,12 +6259,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cambier.org", true },
{ "cambiowatch.ch", true },
{ "cambodian.dating", true },
+ { "cambridge-security.com", true },
{ "cambridgebouncers.co.uk", true },
+ { "camcapital.com", true },
{ "camconn.cc", true },
+ { "camdesign.pl", true },
{ "camelservers.com", true },
+ { "cameo-membership.uk", true },
{ "cameraviva.com.br", true },
{ "camerweb.es", true },
{ "camilomodzz.net", true },
+ { "camjobs.net", true },
{ "camolist.com", true },
{ "camp-pleinsoleil.ch", true },
{ "camp.co.uk", true },
@@ -6018,6 +6282,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "campbrainybunch.com", true },
{ "campcambodia.org", true },
{ "campcanada.org", true },
+ { "campeoesdofutebol.com.br", true },
{ "campeonatoalemao.com.br", true },
{ "camperdays.de", true },
{ "camperlist.com", true },
@@ -6033,9 +6298,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "campus-discounts.com", true },
{ "campus-finance.com", true },
{ "campusdrugprevention.gov", true },
+ { "campusportalng.com", true },
{ "campuswire.com", true },
+ { "campvana.com", true },
{ "campwabashi.org", true },
- { "camshowhub.com", true },
+ { "camshowstorage.com", true },
{ "camsky.de", false },
{ "canada-tourisme.ch", true },
{ "canadabread.com", false },
@@ -6070,10 +6337,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "canlidoviz.com", true },
{ "canmipai.com", true },
{ "cannabis-marijuana.com", true },
- { "cannahealth.com", false },
+ { "cannacards.ca", true },
+ { "cannahealth.com", true },
{ "cannoli.london", true },
{ "cannyfoxx.me", true },
{ "canoonic.se", true },
+ { "cant.at", true },
{ "cantatio.ch", true },
{ "canterberry.cc", true },
{ "canterburybouncycastlehire.co.uk", true },
@@ -6085,9 +6354,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cao.gov", true },
{ "cao.la", true },
{ "caodesantohumberto.com.br", true },
+ { "caoshan60.com", true },
{ "capacent.is", true },
{ "capachitos.cl", true },
- { "capacitacionyautoempleo.com", true },
{ "capacityproject.org", true },
{ "capekeen.com", true },
{ "capellidipremoli.com", true },
@@ -6108,10 +6377,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "capper.de", true },
{ "capriccio.to", true },
{ "caprichosdevicky.com", true },
+ { "caps.is", true },
{ "capsogusto.com", true },
{ "capstansecurity.co.uk", true },
{ "capstansecurity.com", true },
- { "captainark.net", true },
+ { "capstoneinsights.com", true },
+ { "captain-dandelion.com", true },
{ "captainsinn.com", true },
{ "captalize.com", true },
{ "capturapp.com", false },
@@ -6133,8 +6404,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "carbon-project.org", true },
{ "carbon12.org", true },
{ "carbon12.software", true },
- { "carboneselectricosnettosl.info", true },
+ { "carboneselectricosnettosl.info", false },
{ "carbonmade.com", false },
+ { "carbonmonoxidelawyer.net", true },
{ "carbono.uy", true },
{ "carbontv.com", true },
{ "carck.co.uk", true },
@@ -6149,11 +6421,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cardelmar.de", true },
{ "cardelmar.es", true },
{ "cardexchangesolutions.com", true },
+ { "cardgames.com", true },
{ "cardios.srv.br", true },
{ "cardranking.jp", true },
{ "cardrecovery.fr", true },
{ "cardse.net", true },
- { "cardwars.hu", true },
+ { "cardsolutionsbh.com.br", true },
{ "cardxl.be", true },
{ "cardxl.de", true },
{ "cardxl.fr", true },
@@ -6162,6 +6435,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "careeapp.com", true },
{ "careeroptionscoach.com", true },
{ "careerpower.co.in", true },
+ { "careers.plus", true },
{ "carefour.nl", true },
{ "caremad.io", true },
{ "carepassport.com", true },
@@ -6171,6 +6445,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "carezone.com", false },
{ "cargobay.net", true },
{ "cargorestraintsystems.com.au", true },
+ { "carhunters.cz", true },
{ "caribbean.dating", true },
{ "caribbeanarthritisfoundation.org", true },
{ "caribbeanexams.com", true },
@@ -6180,27 +6455,34 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "carinthia.eu", true },
{ "cariocacooking.com", true },
{ "carisenda.com", true },
+ { "carkeysanantonio.com", true },
{ "carlandfaith.com", true },
{ "carlife-at.jp", true },
{ "carlili.fr", true },
{ "carlingfordapartments.com.au", true },
{ "carlmjohnson.net", true },
{ "carlobiagi.de", true },
+ { "carlocksmith--dallas.com", true },
+ { "carlocksmithbaltimore.com", true },
+ { "carlocksmithellicottcity.com", true },
{ "carlocksmithfallbrook.com", true },
+ { "carlocksmithlewisville.com", true },
+ { "carlocksmithmesquite.com", true },
+ { "carlocksmithtucson.com", true },
{ "carlosfelic.io", true },
{ "carlosjeurissen.com", true },
+ { "carlot-j.com", true },
{ "carnaticalifornia.com", true },
{ "carnet-du-voyageur.com", true },
{ "carnildo.com", true },
{ "caroes.be", true },
- { "carol-lambert.com", true },
{ "carolcappelletti.com", true },
{ "carolcestas.com", true },
- { "caroli.biz", true },
{ "caroli.com", true },
{ "caroli.info", true },
{ "caroli.name", true },
{ "caroli.net", true },
+ { "carolina.cz", true },
{ "carolinaclimatecontrolsc.com", true },
{ "carolynjoyce.com.au", true },
{ "carpetcleaningtomball.com", true },
@@ -6210,8 +6492,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "carriedin.com", true },
{ "carrierplatform.com", true },
{ "carringtonrealtygroup.com", true },
+ { "carroceriascarluis.com", true },
{ "carrollservicecompany.com", true },
+ { "carseatchecks.ca", true },
{ "carson-aviation-adventures.com", true },
+ { "carsoug.com", true },
{ "carspneu.cz", true },
{ "cartadeviajes.cl", true },
{ "cartadeviajes.co", true },
@@ -6227,9 +6512,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cartadeviajes.uk", true },
{ "carteirasedistintivos.com.br", true },
{ "cartelcircuit.com", true },
+ { "carterstad.se", true },
{ "cartertonscouts.org.nz", true },
{ "cartesentreprises-unicef.fr", true },
{ "carthedral.com", true },
+ { "cartierplan.ga", true },
{ "carto.la", true },
{ "cartongesso.roma.it", true },
{ "cartooncastles.ie", true },
@@ -6246,8 +6533,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "casa-su.casa", true },
{ "casabouquet.com", true },
{ "casacameo.com", false },
+ { "casacochecurro.com", true },
{ "casadasportasejanelas.com", true },
- { "casadellecose.com", true },
{ "casadoarbitro.com.br", true },
{ "casadowifi.com.br", true },
{ "casalindamex.com", true },
@@ -6277,16 +6564,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "casino-trio.com", true },
{ "casinobonuscodes.online", true },
{ "casinocashflow.ru", true },
+ { "casinolegal.pt", true },
+ { "casinomucho.com", true },
{ "casinoonlinesicuri.com", true },
{ "casio-caisses-enregistreuses.fr", true },
+ { "casjay.cloud", true },
{ "casjay.com", true },
{ "casjay.info", true },
+ { "casjay.us", true },
+ { "casjaygames.com", true },
{ "caspar.ai", true },
{ "casperpanel.com", true },
{ "cassimo.com", true },
+ { "castbulletassoc.org", false },
+ { "casteloinformatica.com.br", true },
{ "castible.de", true },
+ { "castle-engine.io", true },
{ "castlecapers.com.au", true },
{ "castlecms.io", true },
+ { "castlejackpot.com", true },
{ "castleking.net", true },
{ "castlekingdomstockport.co.uk", true },
{ "castlekingkent.co.uk", true },
@@ -6296,6 +6592,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "castles4rascalsiow.co.uk", true },
{ "castlesrus-kent.com", true },
{ "castleswa.com.au", true },
+ { "casualdesignsfurniture.com", true },
+ { "casusgrillcaribbean.com", true },
{ "cat-blum.com", true },
{ "cat-box.de", true },
{ "cat.net", true },
@@ -6303,10 +6601,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "catalog.beer", true },
{ "catalogobiblioteca.com", true },
{ "catalogoreina.com", true },
+ { "catalogosvirtualesonline.com", true },
{ "catalystapp.co", true },
{ "catbold.space", true },
{ "catbull.com", true },
{ "catburton.co.uk", true },
+ { "catchers.cc", true },
{ "catchersgear.com", true },
{ "catchfotografie.nl", true },
{ "catchhimandkeephim.com", true },
@@ -6314,20 +6614,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "catdecor.ru", true },
{ "catenacondos.com", true },
{ "catfooddispensersreviews.com", true },
+ { "catgirl.science", true },
{ "catharinesomerville.com", true },
{ "catharisme.eu", true },
{ "catharisme.net", true },
- { "catherineidylle.com", true },
+ { "catherinejf.com", true },
{ "catherinescastles.co.uk", true },
{ "catholics.dating", true },
{ "cathosa.nl", true },
+ { "cathy.guru", true },
+ { "cathy.website", true },
+ { "cathyfitzpatrick.com", true },
+ { "cathyjf.ca", true },
+ { "cathyjf.com", true },
+ { "cathyjf.net", true },
+ { "cathyjf.org", true },
+ { "cathyjfitzpatrick.com", true },
{ "cativa.net", true },
{ "catl.st", true },
{ "catmoose.ca", true },
{ "catnet.dk", false },
+ { "catprog.org", true },
{ "cattivo.nl", false },
{ "catuniverse.org", true },
{ "catveteran.com", true },
+ { "caughtredhanded.co.nz", true },
{ "caulfieldeastapartments.com.au", true },
{ "caulfieldracecourseapartments.com.au", true },
{ "caulong-ao.net", true },
@@ -6336,10 +6647,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cave-reynard.ch", true },
{ "cavevinsdefrance.fr", true },
{ "cavzodiaco.com.br", true },
- { "cayafashion.de", true },
+ { "caxalt.com", true },
{ "caylercapital.com", true },
{ "cazaviajes.es", true },
- { "cazes.info", true },
{ "cb-crochet.com", true },
{ "cbbank.com", true },
{ "cbc-hire.co.uk", true },
@@ -6349,7 +6659,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cbdev.de", true },
{ "cbdmarket.space", true },
{ "cbecrft.net", true },
+ { "cbin168.com", true },
{ "cbintermountainrealty.com", true },
+ { "cbk-connect.com", true },
{ "cbr-xml-daily.ru", true },
{ "cbsdeheidevlinder.nl", true },
{ "cbw.sh", true },
@@ -6363,6 +6675,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ccoooss.com", true },
{ "ccprwebsite.org", true },
{ "ccsource.org", true },
+ { "ccss-cces.com", true },
{ "ccsys.com", true },
{ "cctvview.info", true },
{ "ccu.io", true },
@@ -6370,6 +6683,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ccv-deutschland.de", true },
{ "ccv.ch", true },
{ "ccv.nl", true },
+ { "cd-shopware.de", true },
{ "cd-sport.com", true },
{ "cd.search.yahoo.com", false },
{ "cd5k.net", true },
@@ -6381,6 +6695,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cdbtech.com", true },
{ "cdburnerxp.se", true },
{ "cdda.ch", true },
+ { "cdeck.net", true },
{ "cdepot.eu", true },
{ "cdkeykopen.com", true },
{ "cdlcenter.com", true },
@@ -6391,19 +6706,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cdns.cloud", true },
{ "cdom.de", true },
{ "cdsdigital.de", true },
+ { "cdshining.com", true },
{ "cdu-wilgersdorf.de", true },
+ { "cduckett.net", true },
{ "ce-pimkie.fr", true },
{ "cebz.org", true },
{ "ceciliacolombara.com", true },
{ "cecipu.gob.cl", true },
{ "ced-services.nl", true },
+ { "cedarslodge.com", true },
{ "cedriccassimo.ch", true },
{ "cedriccassimo.com", true },
{ "cedricmartineau.com", true },
{ "ceebee.com", true },
{ "cejhon.cz", false },
- { "cekaja.com", true },
{ "celcomhomefibre.com.my", true },
+ { "celebmasta.com", true },
+ { "celebrityhealthcritic.com", true },
{ "celebrityscope.net", true },
{ "celectro-pro.com", true },
{ "celiendev.ch", true },
@@ -6415,7 +6734,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "celti.ie.eu.org", true },
{ "celti.name", true },
{ "celuliteonline.com", true },
+ { "cem.pw", true },
{ "cementscience.com", true },
+ { "cemeteriat.com", true },
{ "ceml.ch", true },
{ "cenatorium.pl", true },
{ "censurfridns.dk", true },
@@ -6439,13 +6760,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "centrationgame.com", true },
{ "centredaccueil.fr", true },
{ "centreoeil.ch", true },
- { "centricbeats.com", true },
{ "centrobill.com", true },
- { "centrodoinstalador.com.br", true },
{ "centrojovencuenca.es", true },
+ { "centromasterin.com", true },
{ "centrosocialferrel.pt", true },
{ "centrumhodinek.cz", true },
{ "centruvechisv.ro", true },
+ { "centrym.top", true },
{ "centum.no", true },
{ "centura.de", true },
{ "centurialeonina.com", true },
@@ -6466,7 +6787,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cerebelo.info", true },
{ "cerena-silver.ru", true },
{ "ceres-corp.org", true },
- { "ceres1.space", true },
{ "cerivo.co.uk", true },
{ "cermak.photos", true },
{ "cernakova.eu", true },
@@ -6484,6 +6804,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "certfa.com", true },
{ "certible.com", true },
{ "certificatedetails.com", true },
+ { "certificatespending.com", true },
{ "certificatetools.com", true },
{ "certifiednurses.org", true },
{ "certmonitor.com.au", true },
@@ -6491,7 +6812,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "certnazionale.it", true },
{ "certspotter.com", true },
{ "certspotter.org", true },
- { "cervejista.com", true },
+ { "cesantias.co", true },
{ "cesboard.com", true },
{ "cesdb.com", true },
{ "cesipagano.com", true },
@@ -6501,25 +6822,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cesobaly.cz", true },
{ "cestasedelicias.com.br", true },
{ "cestunmetier.ch", true },
+ { "ceta.one", true },
{ "cetamol.com", true },
{ "ceu.edu", false },
{ "cevo.com.hr", true },
{ "ceyizlikelisleri.com", true },
{ "cf-ide.de", true },
- { "cf-tm.net", true },
{ "cfa.gov", true },
{ "cfan.space", true },
{ "cfda.gov", true },
{ "cfdcre5.org", true },
{ "cfh.com", true },
+ { "cflsystems.com", true },
{ "cfno.org", true },
{ "cfo.gov", true },
{ "cfpa-formation.fr", true },
- { "cfsh.tk", true },
{ "cftc.gov", true },
{ "cftcarouge.com", true },
+ { "cfttt.com", true },
+ { "cfurl.cf", true },
{ "cfxdesign.com", true },
{ "cg-systems.hu", true },
+ { "cg.al", true },
{ "cg.search.yahoo.com", false },
{ "cgal.org", true },
{ "cgan.de", true },
@@ -6530,21 +6854,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cgnparts.com", true },
{ "cgpe.com", true },
{ "cgsmart.com", true },
+ { "cgurtner.ch", true },
{ "ch-laborit.fr", true },
{ "ch-sc.de", true },
{ "ch.search.yahoo.com", false },
{ "ch47f.com", true },
- { "chabaojia.com", true },
{ "chabaudparfum.com", true },
{ "chabert-provence.fr", true },
+ { "chabik.com", true },
{ "chad.ch", true },
{ "chadstoneapartments.com.au", true },
+ { "chadtaljaardt.com", true },
{ "chaifeng.com", true },
{ "chainedunion.info", true },
{ "chaip.org", true },
{ "chairinstitute.com", true },
{ "chaisystems.net", true },
- { "chaldeen.pro", true },
{ "chaletdemontagne.org", true },
{ "chaletmanager.com", true },
{ "chaletpierrot.ch", true },
@@ -6553,6 +6878,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "challstrom.com", true },
{ "chamathellawala.com", true },
{ "chambion.ch", true },
+ { "chamicro.com", true },
{ "champdogs.co.uk", true },
{ "champdogs.com", true },
{ "champicreuse.fr", true },
@@ -6564,14 +6890,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "champserver.net", false },
{ "chanddriving.co.uk", true },
{ "chandr1000.ga", true },
+ { "chang-feng.info", true },
{ "changecopyright.ru", true },
{ "changes.jp", true },
{ "changesfor.life", true },
{ "changethislater.com", true },
{ "channeladam.com", true },
- { "channellife.co.nz", true },
- { "channellife.com.au", true },
- { "chanoyu-gakkai.jp", true },
{ "chantalguggenbuhl.ch", true },
{ "chanz.com", true },
{ "chaos-games.org", true },
@@ -6590,11 +6914,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chapelfordbouncers.co.uk", true },
{ "chapiteauxduleman.fr", true },
{ "chaplain.co", true },
- { "charakato.com", true },
{ "charbonnel.eu", true },
{ "charcoal-se.org", true },
{ "charcoalvenice.com", true },
+ { "chargedmonkey.com", true },
{ "chargify.com", true },
+ { "charisma.ai", true },
{ "charissadescande.com", true },
{ "charitylog.co.uk", true },
{ "charl.eu", true },
@@ -6617,6 +6942,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "charlottesvillegolfcommunities.com", true },
{ "charlotteswimmingpoolbuilder.com", true },
{ "charmander.me", true },
+ { "charmanterelefant.at", true },
{ "charmingsaul.com", true },
{ "charmyadesara.com", true },
{ "charr.xyz", true },
@@ -6627,6 +6953,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chartpen.com", true },
{ "chartsy.de", true },
{ "charuru.moe", true },
+ { "chasafilli.ch", true },
{ "chaseandzoey.de", true },
{ "chasetrails.co.uk", true },
{ "chat-libera.org", true },
@@ -6640,7 +6967,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chatbotclick.com", true },
{ "chatbots.systems", true },
{ "chatear.social", true },
- { "chateau-belvoir.com", true },
{ "chateau-de-lisle.fr", true },
{ "chateaudestrainchamps.com", true },
{ "chatfacile.org", true },
@@ -6667,12 +6993,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chazalet.fr", true },
{ "chazay.net", false },
{ "chazgie.se", true },
+ { "chbk.co", true },
{ "chbs.me", true },
{ "chch.it", true },
{ "chcoc.gov", true },
{ "chcsct.com", true },
{ "chd-expert.fr", true },
- { "chdgaming.xyz", true },
{ "cheapalarmparts.com.au", true },
{ "cheapcaribbean.com", true },
{ "cheapessay.net", true },
@@ -6690,12 +7016,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cheapgoa.com", true },
{ "cheapiesystems.com", true },
{ "cheapticket.in", true },
- { "cheapwritinghelp.com", true },
{ "check.torproject.org", false },
{ "checkecert.nl", true },
{ "checkmateshoes.com", false },
{ "checkmyessay.com", true },
{ "checkmyessays.com", true },
+ { "checkmyip.com", true },
{ "checkmypsoriasis.com", true },
{ "checkout.google.com", true },
{ "checkpoint-tshirt.com", true },
@@ -6712,12 +7038,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cheekymonkeysinflatables.co.uk", true },
{ "cheela.org", true },
{ "cheeseemergency.co.uk", true },
- { "cheesefusion.com", true },
{ "cheesehosting.net", true },
{ "cheetahwerx.com", true },
{ "cheez.systems", true },
{ "cheezflix.uk", true },
- { "chehalemgroup.com", true },
+ { "chefwear.com", true },
{ "cheladmin.ru", true },
{ "chelema.xyz", true },
{ "cheltenhambounce.co.uk", true },
@@ -6728,10 +7053,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chenapartment.com", true },
{ "chenkun.pro", true },
{ "chenky.com", true },
+ { "chenna.me", true },
{ "chennien.com", true },
{ "chenqinghua.com", true },
{ "chentianyi.cn", true },
{ "chenzhekl.me", true },
+ { "chenzhipeng.com.cn", true },
{ "cheolguso.com", true },
{ "cherevoiture.com", true },
{ "cherie-belle.com", true },
@@ -6753,9 +7080,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chhory.com", true },
{ "chhy.at", true },
{ "chiaraiuola.com", false },
- { "chiaramail.com", true },
{ "chiaseeds24.com", true },
{ "chiboard.co", true },
+ { "chibr.eu", true },
{ "chic-leather.com", true },
{ "chicagolug.org", true },
{ "chicagostudentactivists.org", true },
@@ -6763,10 +7090,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chicolawfirm.com", true },
{ "chiemgauflirt.de", true },
{ "chif16.at", true },
- { "chikan-beacon.net", true },
- { "chikatomo-ryugaku.com", true },
{ "chikazawa.info", true },
- { "chikory.com", true },
{ "childcare.gov", true },
{ "childcounseling.org", true },
{ "childcustodylegalaid.org", true },
@@ -6774,13 +7098,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "childrenandmedia.org.au", true },
{ "childrenfirstalways.org", true },
{ "childreninadversity.gov", true },
- { "childrens-room.com", true },
{ "childrensentertainmentleicester.co.uk", true },
{ "childrenspartiesrus.com", true },
{ "childstats.gov", true },
{ "childvisitationassistance.org", true },
{ "childwelfare.gov", true },
{ "chilihosting.eu", true },
+ { "chilimath.com", true },
+ { "chilimathwords.com", true },
{ "chilio.net", true },
{ "chillebever.nl", true },
{ "chima.net", true },
@@ -6793,14 +7118,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chinaspaceflight.com", true },
{ "chinatrademarkoffice.com", true },
{ "chinawhale.com", true },
+ { "ching.tv", true },
{ "chint.ai", true },
{ "chinwag.im", true },
{ "chinwag.org", true },
{ "chipcore.com", true },
+ { "chipglobe.com", true },
{ "chippy.ch", false },
+ { "chips-scheduler.de", true },
{ "chiralsoftware.com", true },
{ "chireiden.net", true },
{ "chiro-neuchatel.ch", true },
+ { "chiropractic.gr", true },
+ { "chiropracticwpb.com", true },
{ "chiropraktik-riemann.de", true },
{ "chiropraticien-neuchatel.ch", true },
{ "chiropratique-neuchatel.ch", true },
@@ -6812,7 +7142,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chitoku.jp", false },
{ "chksite.com", true },
{ "chl.la", true },
- { "chloehorler.com", true },
{ "chloescastles.co.uk", true },
{ "chlth.com", true },
{ "chmsoft.com.ua", true },
@@ -6825,12 +7154,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chocolatesandhealth.com", true },
{ "chocolatier-tristan.ch", true },
{ "chocotough.nl", false },
- { "choe.fi", true },
{ "choisirmonerp.com", true },
{ "chokladfantasi.net", true },
{ "chollima.pro", true },
{ "chon.io", true },
- { "chonghe.org", true },
{ "chook.as", true },
{ "choootto.club", true },
{ "choosemypc.net", true },
@@ -6841,11 +7168,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chorpinkpoemps.de", true },
{ "chosenplaintext.org", true },
{ "chourishi-shigoto.com", true },
+ { "chovancova.sk", true },
{ "chowii.com", true },
+ { "choyri.com", true },
+ { "chr0me.sh", true },
{ "chris-edwards.net", true },
{ "chrisaitch.com", true },
- { "chrisb.me", true },
- { "chrisb.xyz", true },
{ "chrisbryant.me.uk", true },
{ "chrisburnell.com", true },
{ "chriscarey.com", true },
@@ -6877,8 +7205,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "christianfaq.org", true },
{ "christianforums.com", true },
{ "christiangehring.org", true },
+ { "christianillies.de", true },
{ "christianjens.com", true },
{ "christianliebel.com", true },
+ { "christianlis.org.uk", true },
+ { "christianlis.uk", true },
{ "christianpeltier.com", true },
{ "christianpilgrimage.com.au", true },
{ "christians.dating", true },
@@ -6898,9 +7229,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "christophertruncer.com", true },
{ "christophkreileder.com", true },
{ "christophsackl.de", true },
+ { "christthekingparish.net", true },
+ { "christtheredeemer.us", true },
{ "chriswald.com", true },
{ "chriswarrick.com", true },
- { "chriswbarry.com", true },
{ "chriswells.io", true },
{ "chromcraft-revington.com", true },
{ "chrome-devtools-frontend.appspot.com", true },
@@ -6916,15 +7248,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chronoshop.cz", true },
{ "chrpaul.de", true },
{ "chrstn.eu", true },
- { "chsh.moe", true },
+ { "chrysanthos.net", true },
{ "chsterz.de", true },
- { "chua.family", true },
{ "chuchote-moi.fr", true },
{ "chuck.ovh", true },
{ "chun.pro", true },
{ "chunche.net", true },
{ "chunk.science", true },
{ "chupadelfrasco.com", true },
+ { "chuppa.com.au", true },
{ "churchlinkpro.com", true },
{ "churchthemes.com", true },
{ "churningtracker.com", true },
@@ -6933,7 +7265,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "chytraauta.cz", true },
{ "chziyue.com", true },
{ "ci-fo.org", true },
- { "ci-suite.com", true },
{ "ci5.me", true },
{ "ciancode.com", true },
{ "cianmawhinney.me", true },
@@ -6943,9 +7274,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cidersus.com.ec", true },
{ "cie-theatre-montfaucon.ch", true },
{ "cielbleu.org", true },
+ { "cielly.com", true },
{ "cifop-numerique.fr", true },
{ "cig-dem.com", true },
{ "cigar-cartel.com", true },
+ { "ciiex.co", true },
{ "cilloc.be", true },
{ "cima-idf.fr", true },
{ "cimballa.com", true },
@@ -6953,11 +7286,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cinafilm.com", true },
{ "cinay.pw", true },
{ "cindey.io", true },
+ { "cindydudley.com", true },
{ "cine-music.de", true },
{ "cine.to", true },
{ "cinefilzonen.se", true },
- { "cinelite.club", true },
{ "cinemarxism.com", true },
+ { "cinemasetfree.com", true },
{ "cinemysticism.com", true },
{ "cineplex.my", true },
{ "ciner.is", true },
@@ -6976,7 +7310,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cip.md", true },
{ "cipartyhire.co.uk", true },
{ "cipher.team", true },
- { "cipherboy.com", true },
{ "ciphersuite.info", true },
{ "ciphrex.com", true },
{ "cipri.com", true },
@@ -6999,8 +7332,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cirujanooral.com", true },
{ "cirurgicagervasio.com.br", true },
{ "cirurgicalucena.com.br", true },
- { "ciscodude.net", false },
+ { "cirurgicasalutar.com.br", true },
+ { "ciscodude.net", true },
{ "cisoaid.com", true },
+ { "cisofy.com", true },
+ { "cispeo.org", true },
{ "ciss.ltd", true },
{ "cisum-cycling.com", true },
{ "cisy.me", true },
@@ -7014,7 +7350,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "citizensleague.org", true },
{ "citizenspact.eu", true },
{ "citizing.org", true },
- { "citroner.blog", true },
{ "citrusui.me", true },
{ "cittadesign.com", false },
{ "citton.com.br", true },
@@ -7029,10 +7364,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "citysportapp.com", true },
{ "cityworksonline.com", true },
{ "ciubotaru.tk", true },
+ { "ciurcasdan.eu", true },
{ "civilg20.org", true },
{ "civillines.nl", true },
+ { "civiltoday.com", true },
{ "cj-espace-vert.fr", true },
{ "cj-jackson.com", true },
+ { "cjdby.net", true },
+ { "cjdpenterprises.com", true },
+ { "cjdpenterprises.com.au", true },
+ { "cjean.fr", true },
{ "cjey.me", true },
{ "cjhzp.net", true },
{ "cjr.host", true },
@@ -7051,6 +7392,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ckostecki.de", true },
{ "cktennis.com", true },
{ "cl.search.yahoo.com", false },
+ { "clacetandil.com.ar", true },
{ "clad.cf", true },
{ "claimconnect.com", true },
{ "claimconnect.us", true },
@@ -7078,6 +7420,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "classroomcountdown.co.nz", true },
{ "classteaching.com.au", true },
{ "claude-leveille.com", true },
+ { "claude.tech", true },
{ "claudia-urio.com", true },
{ "claus-bahr.de", true },
{ "clauseriksen.net", true },
@@ -7088,17 +7431,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "clazzrooms.com", true },
{ "cldfile.com", true },
{ "cldly.com", true },
+ { "cleanapproachnw.com", true },
{ "cleanbeautymarket.com.au", true },
{ "cleanbrowsing.org", true },
{ "cleancode.club", true },
+ { "cleandetroit.org", true },
+ { "cleandogsnederland.nl", true },
{ "cleanhouse2000.us", true },
{ "cleaningservicejulai.com", true },
{ "cleansewellness.com", true },
{ "clearance365.co.uk", true },
{ "clearblueday.co.uk", true },
+ { "clearbookscdn.uk", true },
{ "clearbreezesecuritydoors.com.au", true },
{ "clearip.com", true },
+ { "clearkonjac.com", true },
{ "clearsettle-admin.com", true },
+ { "clearvoice.com", true },
{ "clemenscompanies.com", true },
{ "clement-beaufils.fr", true },
{ "clementfevrier.fr", true },
@@ -7114,7 +7463,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "click-licht.de", true },
{ "clickclock.cc", true },
{ "clickenergy.com.au", true },
- { "clickforclever.com", true },
{ "clickphish.com", true },
{ "clicksaveandprint.com", true },
{ "clien.net", true },
@@ -7132,8 +7480,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "clinicadelogopedia.net", true },
{ "clinicalrehabilitation.info", true },
{ "clinicaltrials.gov", true },
+ { "clinicasmedicas.com.br", true },
{ "clinicminds.com", true },
- { "cliniquecomplementaire.com", true },
{ "cliniquevethuy.be", true },
{ "clintonlibrary.gov", true },
{ "clintonplasticsurgery.com", true },
@@ -7151,7 +7499,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "clojurescript.ru", true },
{ "cloppenburg-autmobil.com", true },
{ "cloppenburg-automobil.com", true },
- { "clorik.com", true },
{ "clorophilla.net", true },
{ "closeli.cn", true },
{ "closelinksecurity.co.uk", true },
@@ -7164,6 +7511,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cloud.google.com", true },
{ "cloud.gov", true },
{ "cloud42.ch", false },
+ { "cloud58.org", true },
{ "cloud9bouncycastlehire.com", true },
{ "cloudapps.digital", true },
{ "cloudbolin.es", true },
@@ -7171,18 +7519,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cloudbrothers.info", true },
{ "cloudcactuar.com", false },
{ "cloudcaprice.net", true },
+ { "cloudcite.net", true },
{ "cloudcloudcloud.cloud", true },
{ "cloudconsulting.net.za", true },
{ "cloudconsulting.org.za", true },
{ "cloudconsulting.web.za", true },
{ "cloudey.net", true },
+ { "cloudfiles.at", true },
{ "cloudflare-dns.com", true },
{ "cloudflare.com", true },
{ "cloudflareonazure.com", true },
{ "cloudia.org", true },
{ "cloudily.com", true },
- { "cloudimproved.com", true },
+ { "cloudkeep.nl", true },
{ "cloudkit.pro", false },
+ { "cloudlessdreams.com", true },
{ "cloudlight.biz", true },
{ "cloudnote.cc", true },
{ "cloudns.net", true },
@@ -7190,9 +7541,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cloudoptimus.com", true },
{ "cloudpengu.in", true },
{ "cloudpipes.com", true },
+ { "cloudse.co.uk", true },
{ "cloudsecurityalliance.org", true },
{ "cloudservice.io", true },
{ "cloudservices.nz", true },
+ { "cloudsign.jp", true },
{ "cloudsocial.io", true },
{ "cloudspace-analytics.com", true },
{ "cloudspeedy.net", true },
@@ -7206,35 +7559,41 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "clownindeklas.nl", true },
{ "cloxy.com", true },
{ "clr3.com", true },
+ { "clsfoundationrepairandwaterproofing.com", true },
{ "clsimage.com", true },
{ "clsoft.ch", true },
{ "clu-in.org", true },
{ "club-adulti.ro", true },
{ "club-corsicana.de", true },
+ { "club-creole.com", true },
{ "club-duomo.com", true },
{ "club-is.ru", true },
+ { "club-premiere.com", true },
{ "club-reduc.com", true },
+ { "club-slow.jp", true },
+ { "club-yy.com", true },
{ "club103.ch", true },
+ { "clubcorsavenezuela.com", true },
{ "clubdelzapato.com", true },
{ "clubedalutashop.com", true },
{ "clubefiel.com.br", true },
{ "clubempleos.com", true },
{ "clubeohara.com", true },
{ "clubfamily.de", true },
+ { "clubgalaxy.futbol", true },
{ "clubiconkenosha.com", true },
- { "clubmate.rocks", true },
{ "clubmini.jp", true },
{ "clubnoetig-ink2g.de", true },
{ "clubon.space", true },
{ "clubscannan.ie", true },
{ "clueful.ca", true },
- { "cluefulca.com", true },
- { "cluefulca.net", true },
- { "cluefulca.org", true },
+ { "cluster.biz.tr", true },
{ "clusteranalyse.net", true },
{ "clusterfuck.nz", true },
{ "clustermaze.net", true },
{ "clweb.ch", true },
+ { "cm.center", true },
+ { "cm3.pw", true },
{ "cmacacias.ch", true },
{ "cmadeangelis.it", true },
{ "cmahy.be", true },
@@ -7244,7 +7603,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cmfaccounting.com", true },
{ "cmftech.com", true },
{ "cmillrehab.com", true },
- { "cmitao.com", true },
{ "cmlachapelle.ch", true },
{ "cmlancy.ch", true },
{ "cmlignon.ch", true },
@@ -7273,6 +7631,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cnet-hosting.com", true },
{ "cni-certing.it", true },
{ "cnre.eu", true },
+ { "cnvt.fr", true },
{ "co-factor.ro", true },
{ "co-founder-stuttgart.de", true },
{ "co.search.yahoo.com", false },
@@ -7283,7 +7642,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "coaching-impulse.ch", true },
{ "coalitionministries.org", true },
{ "coalpointcottage.com", true },
- { "coam.co", true },
{ "coastline.net.au", true },
{ "coathangastrangla.com", true },
{ "coathangastrangler.com", true },
@@ -7302,7 +7660,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "coco-line.ch", true },
{ "cocoaheads.at", false },
{ "cocoamexico.com", true },
- { "cocodemy.com", true },
{ "cocodroid.com", true },
{ "coconutoil24.com", true },
{ "cocoscastles.co.uk", true },
@@ -7331,6 +7688,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "codeine.co.uk", true },
{ "codeit.guru", true },
{ "codeit.us", true },
+ { "codejots.com", true },
+ { "codejunkie.de", false },
{ "codemonster.eu", true },
{ "codenode.io", true },
{ "codeofthenorth.com", true },
@@ -7339,7 +7698,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "codepult.com", true },
{ "codera.co.uk", true },
{ "codercross.com", true },
- { "codercy.com", true },
{ "codereview.appspot.com", false },
{ "codereview.chromium.org", false },
{ "coderme.com", true },
@@ -7359,6 +7717,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "codeventure.de", true },
{ "codeversetech.com", true },
{ "codewild.de", true },
+ { "codexpo.net", true },
{ "codeyellow.nl", true },
{ "codific.com", true },
{ "codific.eu", true },
@@ -7369,11 +7728,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "coding.net", true },
{ "codingforspeed.com", true },
{ "codingfromhell.net", true },
+ { "codinginfinity.me", true },
{ "codingrobots.com", true },
{ "codxg.org", true },
{ "codyevanscomputer.com", true },
{ "codymoniz.com", true },
{ "codyqx4.com", true },
+ { "coentropic.com", true },
{ "coffee-mamenoki.jp", true },
{ "coffeeandteabrothers.com", true },
{ "coffeetocode.me", true },
@@ -7400,7 +7761,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "coincoin.eu.org", true },
{ "coincolors.co", true },
{ "coindatabase.net", true },
- { "coinessa.com", true },
{ "coinf.it", true },
{ "coinflux.com", true },
{ "coingate.com", true },
@@ -7409,6 +7769,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "coinloan.io", true },
{ "coinmewallet.com", true },
{ "coinpit.io", true },
+ { "coins2001.ru", true },
{ "coinx.pro", true },
{ "coisasdemulher.org", true },
{ "cojam.ru", true },
@@ -7418,7 +7779,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "colaborativa.tv", true },
{ "colapsys.net", true },
{ "colasjourdain.fr", true },
- { "coldaddy.com", true },
{ "coldawn.com", false },
{ "coldfff.com", false },
{ "coldhak.ca", true },
@@ -7448,9 +7808,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "collabornation.net", true },
{ "collaction.hk", true },
{ "collada.org", true },
- { "collbox.co", true },
{ "collectdocs.com", true },
{ "collectfood.com", true },
+ { "collectiblebeans.com", true },
{ "collectivesupply.com", true },
{ "collectorknives.net", true },
{ "collectorsystems.com", true },
@@ -7472,18 +7832,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "colorectalcompounding.com", true },
{ "colorfuldots.com", true },
{ "colorhexa.com", true },
- { "coloringnotebook.com", true },
{ "coloristcafe.com", true },
- { "colorlifesupport.com", true },
{ "colorsbycarin.com", true },
{ "colossal-events.co.uk", true },
{ "colourfulcastles.co.uk", true },
{ "colpacpackaging.com", true },
{ "colson-occasions.be", true },
+ { "coltonrb.com", true },
{ "columbuswines.com", true },
{ "colyakootees.com", true },
{ "com-in.de", true },
+ { "com-news.io", true },
{ "comalia.com", true },
+ { "comandofilmes.club", true },
{ "comarkinstruments.net", true },
{ "combatircelulitis.com", true },
{ "combattrecellulite.com", true },
@@ -7492,15 +7853,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "combron.com", true },
{ "combron.nl", true },
{ "comcol.nl", true },
- { "comdotgame.com", true },
{ "comdurav.com", true },
+ { "comeals.com", true },
+ { "comeoishii.com", true },
{ "comercialtpv.com", true },
{ "comerford.net", true },
{ "comestoarra.com", true },
{ "cometbot.cf", true },
{ "cometcache.com", true },
- { "cometonovascotia.ca", true },
- { "cometrueunlimited.com", true },
+ { "comevius.com", true },
+ { "comevius.org", true },
+ { "comevius.xyz", true },
{ "comff.net", true },
{ "comfintouch.com", true },
{ "comflores.com.br", true },
@@ -7512,6 +7875,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "comidasperuanas.net", true },
{ "comiteaintriathlon.fr", true },
{ "comm.cx", true },
+ { "commania.co.kr", true },
{ "commco.nl", true },
{ "commechezvous.ch", true },
{ "commerce.gov", true },
@@ -7524,6 +7888,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "commoncore4kids.com", true },
{ "communityblog.fedoraproject.org", true },
{ "communitycodeofconduct.com", true },
+ { "communityflow.info", true },
{ "communote.net", true },
{ "como-se-escribe.com", true },
{ "comocurarlagastritistratamientonatural.com", true },
@@ -7535,15 +7900,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "comogene.com", true },
{ "comohacerelamoraunhombrenet.com", true },
{ "comohacerpara.com", true },
- { "comoimportar.net", true },
{ "comopuededejardefumar.net", true },
{ "comoquitarlacaspa24.com", true },
{ "comoquitarlasestriasrapidamente.com", true },
- { "comorecuperaratumujerpdf.com", true },
{ "comosatisfaceraunhombreenlacamaydejarloloco.com", true },
- { "comosecarabarriga.net", true },
- { "comoseduzir.net", true },
+ { "comosefazisto.com.br", true },
{ "comp2go.com.au", true },
+ { "compactchess.cc", true },
{ "compagnia-buffo.de", true },
{ "compagniemartin.com", true },
{ "comparatif-moto.fr", true },
@@ -7568,6 +7931,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "complexart.ro", true },
{ "complexsystems.fail", true },
{ "compliance-management.ch", true },
+ { "compliance-systeme.de", true },
{ "compliancedictionary.com", true },
{ "compliancerisksoftware.co.uk", true },
{ "compostatebien.com.ar", true },
@@ -7575,6 +7939,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "compraneta.com", false },
{ "compreautomacao.com.br", true },
{ "compree.com", true },
+ { "compros.me", true },
+ { "compservice.in.ua", true },
+ { "comptu.com", true },
{ "compubench.com", true },
{ "compucastell.ch", true },
{ "compucorner.mx", true },
@@ -7586,6 +7953,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "computerassistance.co.uk", true },
{ "computerbas.nl", true },
{ "computerbase.de", true },
+ { "computercraft.net", true },
{ "computerhilfe-feucht.de", true },
{ "computernetwerkwestland.nl", true },
{ "computerslotopschool.nl", true },
@@ -7594,6 +7962,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "comunidadmontepinar.es", true },
{ "comw.cc", true },
{ "conalcorp.com", true },
+ { "conatus.ai", true },
{ "conaudisa.com", false },
{ "concept-web.ch", true },
{ "concertengine.com", true },
@@ -7601,6 +7970,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "concertsenboite.fr", true },
{ "concertsto.com", true },
{ "conciliumnotaire.ca", true },
+ { "concordsoftwareleasing.com", true },
+ { "concretelevelingsystems.com", true },
{ "concreterepairatlanta.com", true },
{ "concursopublico.com.br", true },
{ "concursos.com.br", true },
@@ -7622,24 +7993,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "conejovalleylandscapelighting.com", true },
{ "conejovalleylighting.com", true },
{ "conejovalleyoutdoorlighting.com", true },
+ { "conexiontransporte.com", true },
{ "confiancefoundation.org", true },
{ "confidential.network", true },
{ "config.schokokeks.org", false },
{ "confiwall.de", true },
- { "conflux.tw", true },
{ "conformax.com.br", true },
{ "conformist.jp", true },
+ { "confucio.cl", true },
{ "confuddledpenguin.com", true },
{ "cong5.net", true },
{ "congineer.com", true },
{ "congobunkering.com", true },
{ "conju.cat", true },
{ "conjugacao.com.br", true },
- { "conkret.ch", true },
{ "conkret.de", true },
- { "conkret.mobi", true },
{ "conmedapps.com", true },
+ { "conn.cx", true },
{ "connect-ed.network", true },
+ { "connect-me.com", true },
{ "connect.dating", true },
{ "connect.facebook.net", true },
{ "connecta.store", true },
@@ -7649,21 +8021,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "connectmy.car", true },
{ "connecto-data.com", true },
{ "connectum.eu", true },
+ { "conner.work", true },
{ "connexas.eu", true },
{ "connext.de", true },
{ "connictro.de", true },
- { "conniesacademy.com", true },
- { "connorsmith.co", true },
+ { "connorhatch.com", true },
{ "connyduck.at", true },
+ { "conociendosalama.com", true },
{ "conocimientosdigitales.com", true },
{ "conory.com", true },
+ { "conpins.nl", true },
{ "conrad-kostecki.de", true },
{ "conradkostecki.de", true },
{ "conrail.blue", true },
+ { "consagracionamariasantisima.org", true },
{ "consciousbrand.co", true },
{ "consciouschoices.net", true },
{ "consec-systems.de", true },
- { "conseil-gli.fr", true },
{ "consejosdenutricion.com", true },
{ "consensoprivacy.it", true },
{ "conservados.com.br", true },
@@ -7679,14 +8053,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "constancechen.me", true },
{ "constant-rough.de", true },
{ "constares.de", true },
- { "construct-trust.com", true },
{ "constructexpres.ro", true },
+ { "constructieve.nl", true },
{ "construction-student.co.uk", true },
{ "constructionjobs.com", true },
{ "consul.io", true },
{ "consulenza.pro", true },
+ { "consultation.biz.tr", true },
{ "consultimator.com", true },
{ "consultimedia.de", true },
+ { "consultoriosodontologicos.com.br", true },
{ "consultpetkov.com", true },
{ "consulvation.com", true },
{ "consumeractionlawgroup.com", true },
@@ -7695,6 +8071,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "consuwijzer.nl", true },
{ "contactsingapore.sg", true },
{ "contaquanto.com.br", true },
+ { "contemplativeeducation.org", true },
{ "content-api-dev.azurewebsites.net", false },
{ "content-design.de", true },
{ "contentcoms.co.uk", true },
@@ -7705,6 +8082,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "conti-profitlink.co.uk", true },
{ "continuum.memorial", true },
{ "contrabass.net", true },
+ { "contractdigital.co.uk", true },
{ "contractormountain.com", true },
{ "contractwriters.com", true },
{ "contraspin.co.nz", true },
@@ -7714,6 +8092,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "controlautocom.com.br", true },
{ "controlbooth.com", true },
{ "controle.net", true },
+ { "controleer-maar-een-ander.nl", true },
{ "controltickets.com.br", true },
{ "contxt-agentur.de", true },
{ "conv2pdf.com", true },
@@ -7737,7 +8116,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cookiecrook.com", true },
{ "cookielab.io", true },
{ "cookiesoft.de", true },
- { "cookingbazart.com", true },
{ "cookingcrusade.com", true },
{ "cookinglife.nl", false },
{ "cookingreporter.com", true },
@@ -7747,15 +8125,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cookwithmanali.com", true },
{ "cool-parties.co.uk", true },
{ "cool-wallpapers.jp", true },
+ { "cool110.tk", true },
+ { "cool110.xyz", true },
{ "coolattractions.co.uk", true },
+ { "coolbitx.com", true },
{ "cooldan.com", true },
{ "coole-fete.de", true },
- { "coolerssr.space", true },
{ "coolgifs.de", true },
{ "coolprylar.se", true },
{ "coolrc.me", true },
{ "coolviewthermostat.com", true },
{ "coolwallet.io", true },
+ { "coonawarrawines.com.au", true },
{ "coopens.com", true },
{ "coor.fun", true },
{ "coore.jp", true },
@@ -7764,7 +8145,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "copinstant.com", true },
{ "copperhead.co", true },
{ "copperheados.com", true },
+ { "coppermein.co.za", true },
{ "copplaw.com", true },
+ { "copta-imagefilme-und-drohnenvideos.de", true },
{ "coptkm.cz", true },
{ "copycaught.co", true },
{ "copycaught.net", true },
@@ -7773,7 +8156,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "copycrafter.net", true },
{ "copypoison.com", true },
{ "copyright-watch.org", true },
- { "copytrack.com", true },
+ { "coquibus.net", true },
{ "corbi.net.au", true },
{ "cordep.biz", true },
{ "corder.tech", true },
@@ -7784,7 +8167,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "core-concepts.de", false },
{ "core-networks.de", true },
{ "core.mx", true },
- { "core.org.pt", false },
+ { "core.org.pt", true },
{ "coreapm.org", true },
{ "corecodec.com", true },
{ "coredump.gr", true },
@@ -7792,11 +8175,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "corelia.net", true },
{ "corepartners.com.ua", true },
{ "coresolutions.ca", true },
- { "coresos.com", true },
{ "coreum.ca", true },
{ "coreyjmahler.com", true },
{ "corgi.party", true },
{ "coribi.com", true },
+ { "corinastefan.ro", true },
{ "corintech.net", true },
{ "corisu.co", true },
{ "corkedwinebar.com", true },
@@ -7808,6 +8191,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cornerstonecmc.org", true },
{ "corniche.com", true },
{ "corningcu.org", true },
+ { "cornodo.com", true },
{ "corona-academy.com", true },
{ "corona-renderer.cloud", true },
{ "corona-renderer.com", true },
@@ -7820,6 +8204,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "corporateclash.net", true },
{ "corporatecomputingsolutions.com", true },
{ "corporateinfluencers.com", true },
+ { "corporativoarval.info", true },
{ "corpsepaint.life", true },
{ "corpulant.coffee", true },
{ "corpulantcoffee.com", true },
@@ -7828,6 +8213,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "corpusslayer.com", true },
{ "corrbee.com", true },
{ "correctiv.org", true },
+ { "corrick.io", true },
{ "corrupted.io", true },
{ "corsa-b.uk", true },
{ "corsectra.com", true },
@@ -7858,6 +8244,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cospol.ch", true },
{ "costa-rica-reisen.ch", true },
{ "costa-rica-reisen.de", true },
+ { "costablanca.villas", true },
{ "costablancavoorjou.com", true },
{ "costcofinance.com", true },
{ "costinstefan.eu", true },
@@ -7872,24 +8259,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "counter-team.ch", true },
{ "counterglobal.com", true },
{ "countermail.com", true },
+ { "countermats.net", true },
+ { "countersolutions.co.uk", true },
{ "countingto.one", true },
{ "countryattire.com", true },
{ "countrybrewer.com.au", true },
{ "countryfrog.uk", true },
{ "countryhouseresort.com", true },
- { "countryoutlaws.ca", true },
{ "countybankdel.com", true },
{ "countyjailinmatesearch.com", true },
{ "coupe-bordure.com", true },
{ "couponcodesme.com", true },
- { "cour4g3.me", true },
{ "couragefound.org", true },
{ "coursables.com", true },
{ "coursera.org", true },
{ "courtlistener.com", true },
{ "couscous.recipes", true },
+ { "cousincouples.com", true },
{ "coussinsky.net", true },
+ { "couvreur-hinault.fr", true },
{ "covbounce.co.uk", true },
+ { "covenantmatrix.com", true },
{ "covenantoftheriver.org", true },
{ "covermytrip.com.au", true },
{ "covershousing.nl", true },
@@ -7918,10 +8308,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cpqcol.gov.co", true },
{ "cprheartcenter.com", true },
{ "cprnearme.com", true },
- { "cptoon.com", true },
+ { "cpu.biz.tr", true },
{ "cpvmatch.eu", true },
{ "cpy.pt", true },
- { "cqchome.com", true },
{ "cqn.ch", true },
{ "cr.search.yahoo.com", false },
{ "cr0nus.net", true },
@@ -7938,7 +8327,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "craftinginredlipstick.com", true },
{ "craftist.de", true },
{ "craftsmandruggets.com", true },
- { "craftwmcp.xyz", true },
{ "craftyguy.net", true },
{ "craftyphotons.net", true },
{ "crag.com.tw", true },
@@ -7952,8 +8340,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cranforddental.com", true },
{ "crapouill.es", true },
{ "crawcial.de", true },
+ { "crawford.cloud", true },
{ "crawfordcountytcc.org", true },
{ "crawl.report", true },
+ { "crawler.ninja", true },
{ "crawleybouncycastles.co.uk", true },
{ "crawlspaceandbasementsolutions.com", true },
{ "crazy-coders.com", true },
@@ -7976,14 +8366,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "crealogix-online.com", true },
{ "creamcastles.co.uk", true },
{ "creared.edu.co", true },
- { "create-ls.jp", true },
{ "create-together.nl", true },
{ "createme.com.pl", true },
{ "createursdefilms.com", true },
{ "creatieven.com", true },
{ "creation-contemporaine.com", true },
{ "creations-edita.com", true },
- { "creative-coder.de", false },
{ "creative-wave.fr", true },
{ "creativebites.de", true },
{ "creativecaptiv.es", true },
@@ -7992,8 +8380,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "creativecommons.org", true },
{ "creativeconceptsvernon.com", true },
{ "creativedigital.co.nz", true },
- { "creativefolks.co.uk", true },
{ "creativefreedom.ca", true },
+ { "creativeglassgifts.com.au", true },
{ "creativeink.de", true },
{ "creativekkids.com", true },
{ "creativelaw.eu", true },
@@ -8008,7 +8396,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "creators.co", true },
{ "creators.direct", true },
{ "creatujoya.com", true },
- { "crecips.com", true },
{ "credential.eu", true },
{ "credex.bg", true },
{ "credigo.se", true },
@@ -8026,7 +8413,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "crem.in", false },
{ "cremepassion.de", true },
{ "crena.ch", true },
- { "creorin.com", true },
{ "crepa.ch", true },
{ "crepererum.net", true },
{ "crescent.gr.jp", true },
@@ -8036,7 +8422,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cretica.no", true },
{ "creusalp.ch", true },
{ "crew505.org", true },
- { "crge.eu", true },
+ { "crgalvin.com", true },
{ "crgm.net", true },
{ "criadorespet.com.br", true },
{ "cribcore.com", true },
@@ -8048,6 +8434,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "criminal-attorney.ru", true },
{ "criminal.enterprises", true },
{ "crimson.no", true },
+ { "crinesdanzantes.be", true },
{ "crip-usk.ba", true },
{ "crisisactual.com", true },
{ "crisisnextdoor.gov", true },
@@ -8059,7 +8446,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cristarta.com", true },
{ "cristau.org", true },
{ "cristiandeluxe.com", false },
- { "critcola.com", true },
{ "critical.today", false },
{ "criticalsurveys.co.uk", true },
{ "crizin.io", true },
@@ -8067,7 +8453,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "croceverdevb.it", true },
{ "crochetnerd.com", true },
{ "croisedanslemetro.com", true },
- { "croisieres.discount", true },
{ "croixblanche-haguenau.fr", true },
{ "cromefire.myds.me", true },
{ "cronberg.ch", true },
@@ -8093,11 +8478,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "crossorig.in", true },
{ "crossoverit.com", true },
{ "crosssellguide.com", true },
+ { "crow.tw", true },
{ "crowdbox.net", true },
{ "crowdcloud.be", true },
{ "crowdliminal.com", true },
+ { "crowdsim3d.com", true },
{ "crowdsupply.com", true },
- { "crowdwis.com", true },
{ "crowncastles.co.uk", true },
{ "crownchessclub.com", true },
{ "crownmarqueehire.co.uk", true },
@@ -8107,12 +8493,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "croydonbouncycastles.co.uk", true },
{ "crrev.com", true },
{ "crstat.ru", true },
+ { "crt.sh", true },
{ "crt2014-2024review.gov", true },
{ "crumbcontrol.com", true },
{ "crunchrapps.com", true },
{ "crunchy.rocks", true },
{ "crustytoothpaste.net", true },
{ "crute.me", true },
+ { "cruzadobalcazarabogados.com", true },
{ "crvv.me", true },
{ "cry.nu", false },
{ "cryoit.com", true },
@@ -8123,20 +8511,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "crypted.chat", true },
{ "crypteianetworks.com", true },
{ "crypticshell.co.uk", true },
- { "crypto-armory.com", true },
{ "crypto-navi.org", true },
{ "crypto.cat", false },
{ "crypto.graphics", true },
{ "crypto.is", false },
+ { "crypto.tube", true },
{ "cryptobin.co", true },
{ "cryptocon.org", true },
+ { "cryptodyno.ninja", true },
+ { "cryptoegg.ca", true },
{ "cryptofan.org", true },
+ { "cryptofrog.co", true },
{ "cryptography.ch", true },
{ "cryptography.io", true },
{ "cryptoguidemap.com", true },
{ "cryptojourney.com", true },
{ "cryptolinc.com", true },
{ "cryptology.ch", true },
+ { "cryptolosophy.io", true },
{ "cryptolosophy.org", true },
{ "cryptonom.org", true },
{ "cryptonym.com", true },
@@ -8155,6 +8547,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "crystalapp.ca", true },
{ "crystalchandelierservices.com", true },
{ "crystalgrid.net", true },
+ { "crystallizedcouture.com", true },
{ "crystone.me", true },
{ "cryz.ru", true },
{ "cs2016.ch", true },
@@ -8170,16 +8563,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "csfloors.co.uk", true },
{ "csfm.com", true },
{ "csgo.su", true },
- { "csgohandouts.com", true },
{ "csgoswap.com", true },
{ "csgotwister.com", true },
{ "csharpmarc.net", true },
{ "cshopify.com", true },
{ "csi.lk", true },
+ { "csinterstargeneve.ch", true },
+ { "cskdoc.com", true },
{ "cskentertainment.co.uk", true },
{ "csmainframe.com", true },
{ "csokolade.hu", true },
{ "csp.ch", true },
+ { "cspeti.hu", true },
{ "cspvalidator.org", true },
{ "csrichter.com", true },
{ "csru.net", true },
@@ -8192,7 +8587,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "csu.st", true },
{ "csuw.net", true },
{ "csvalpha.nl", true },
- { "cswarzone.com", true },
{ "ct.search.yahoo.com", false },
{ "ctc-transportation.com", true },
{ "ctcue.com", true },
@@ -8200,15 +8594,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cthomas.work", true },
{ "cthulhuden.com", true },
{ "ctj.im", true },
- { "ctliu.com", true },
+ { "ctl.email", true },
{ "ctnguyen.de", true },
{ "ctnguyen.net", true },
{ "ctns.de", true },
{ "ctoforhire.com.au", true },
{ "ctomp.io", true },
+ { "ctoresms.com", true },
{ "ctpe.net", true },
{ "ctrld.me", true },
- { "ctyi.me", true },
{ "cu247secure.ie", true },
{ "cub-bouncingcastles.co.uk", true },
{ "cube-cloud.com", true },
@@ -8216,9 +8610,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cubecart-demo.co.uk", true },
{ "cubecart-hosting.co.uk", true },
{ "cubecraft.net", true },
- { "cubecraftstore.com", true },
- { "cubecraftstore.net", true },
{ "cubekrowd.net", true },
+ { "cubetech.co.jp", true },
{ "cubia.de", true },
{ "cubia3.com", true },
{ "cubia4.com", true },
@@ -8242,36 +8635,40 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cultofd50.org", true },
{ "cultofperf.org.uk", true },
{ "culturedcode.com", true },
- { "cultureelbeleggen.nl", true },
{ "culturerain.com", true },
{ "cultureroll.com", true },
+ { "culturesouthwest.org.uk", true },
+ { "cumberlandrivertales.com", true },
{ "cumplegenial.com", true },
- { "cunha.be", true },
{ "cuoc.org.uk", true },
{ "cup.al", true },
{ "cupcakesandcrinoline.com", true },
{ "cupcao.gov", true },
{ "cupi.co", true },
- { "cupofarchitects.net", true },
{ "cupom.net", true },
{ "cuppycakes.fi", true },
{ "cur.by", true },
{ "curacao-firma.com", true },
{ "curamail.co.uk", true },
{ "curareldolordeespalda.com", true },
+ { "curatedgeek.com", true },
{ "curbside.com", true },
{ "curia.fi", true },
{ "curieux.digital", true },
{ "curio-shiki.com", true },
{ "curiosity-driven.org", true },
+ { "curiouspeddler.com", true },
{ "curlybracket.co.uk", true },
{ "currency-strength.com", true },
{ "currentlystreaming.com", true },
+ { "currentlyusa.com", true },
{ "currentobserver.com", true },
{ "currynissanmaparts.com", true },
{ "cursos.com", true },
+ { "cursosforex.com", true },
{ "cursosgratuitos.com.br", true },
{ "cursosingles.com", true },
+ { "cursossena.co", true },
{ "cursuri-de-actorie.ro", true },
{ "curtacircuitos.com.br", false },
{ "curtis-smith.me.uk", true },
@@ -8279,6 +8676,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "curtislinville.net", true },
{ "curtissmith.me.uk", true },
{ "curtissmith.uk", true },
+ { "curva.co", true },
{ "curveprotect.com", true },
{ "curveprotect.cz", true },
{ "curveprotect.net", true },
@@ -8287,14 +8685,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "curvissa.co.uk", true },
{ "custerweb.com", true },
{ "custodyxchange.com", true },
+ { "custombikes.cl", true },
{ "customdissertation.com", true },
{ "customerbox.ir", true },
{ "customfitbymj.net", true },
{ "customfitmarketing.com", true },
{ "customgear.com.au", true },
- { "customizeyourshower.com", true },
{ "customizeyoursink.com", true },
- { "customromlist.com", true },
{ "customshort.link", true },
{ "customwritingservice.com", true },
{ "customwritten.com", true },
@@ -8335,7 +8732,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cwgaming.co.uk", true },
{ "cwinfo.fi", true },
{ "cwmart.in", true },
- { "cwningen.cymru", false },
+ { "cwrau.com", true },
+ { "cwrau.de", true },
+ { "cwrau.info", true },
+ { "cwrau.io", true },
+ { "cwrau.me", true },
+ { "cwrau.name", true },
+ { "cwrau.rocks", true },
+ { "cwrau.tech", true },
{ "cwrcoding.com", true },
{ "cy.ax", true },
{ "cyber.cafe", true },
@@ -8345,8 +8749,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cybercocoon.com", true },
{ "cybercrew.cc", true },
{ "cybercrime-forschung.de", true },
+ { "cybercrime.gov", true },
+ { "cybercymru.co.uk", true },
{ "cyberduck.io", true },
- { "cyberdyne-industries.net", true },
{ "cyberexplained.info", true },
{ "cyberfrancais.ro", true },
{ "cybergrx.com", true },
@@ -8362,12 +8767,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cyberpubonline.com", true },
{ "cyberregister.nl", true },
{ "cyberregister.org", true },
- { "cybersantri.com", true },
+ { "cybersafesolutions.com", true },
+ { "cyberscan.io", true },
{ "cybersecurity.nz", true },
+ { "cybersecurity.run", true },
{ "cybersecuritychallenge.be", true },
{ "cybersecurityketen.nl", true },
{ "cyberseguranca.com.br", true },
- { "cyberserver.org", true },
{ "cybersins.com", true },
{ "cybersmart.co.uk", true },
{ "cybersmartdefence.com", true },
@@ -8380,10 +8786,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cyberwars.dk", true },
{ "cyberwire.nl", true },
{ "cyberxpert.nl", true },
+ { "cybit.io", true },
{ "cybozu.cn", true },
{ "cybozu.com", true },
{ "cybozulive-dev.com", true },
{ "cybozulive.com", true },
+ { "cybrary.it", true },
{ "cyclebeads.com", true },
{ "cycleluxembourg.lu", true },
{ "cyclisjumper.gallery", true },
@@ -8398,6 +8806,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cykelbanor.se", true },
{ "cylindricity.com", true },
{ "cyon.ch", true },
+ { "cypad.cn", true },
{ "cype.dedyn.io", true },
{ "cyph.audio", true },
{ "cyph.com", true },
@@ -8408,8 +8817,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cyph.video", true },
{ "cyph.ws", true },
{ "cypherpunk.at", true },
- { "cypherpunk.com", true },
- { "cypressinheritancesaga.com", true },
+ { "cypherpunk.observer", true },
{ "cypresslegacy.com", true },
{ "cyprus-company-service.com", true },
{ "cyrating.com", true },
@@ -8419,20 +8827,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "cytegic-update-packages.com", true },
{ "cyumus.com", true },
{ "cyyzaid.cn", true },
+ { "czakey.net", true },
{ "czbix.com", true },
+ { "czbtm.com", true },
{ "czc.cz", true },
{ "czechamlp.com", true },
{ "czechvirus.cz", true },
{ "czerno.com", true },
{ "czfa.pl", true },
+ { "czk.mk", true },
{ "d-20.fr", true },
{ "d-designerin.de", true },
{ "d-eisenbahn.com", true },
{ "d-loop.de", true },
{ "d-msg.com", true },
+ { "d-parts.de", true },
{ "d-parts24.de", true },
{ "d-quantum.com", true },
- { "d-toys.com.ua", true },
{ "d-training.de", true },
{ "d.nf", true },
{ "d.nr", true },
@@ -8442,6 +8853,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "d0m41n.name", true },
{ "d0xq.com", true },
{ "d2s.uk", true },
+ { "d3lab.net", true },
{ "d3njjcbhbojbot.cloudfront.net", true },
{ "d3xt3r01.tk", true },
{ "d3xx3r.de", true },
@@ -8453,6 +8865,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "da.hn", true },
{ "da42foripad.com", true },
{ "daallexx.eu", true },
+ { "dabasstacija.lv", true },
+ { "dabneydriveanimalhospital.com", true },
{ "dabuttonfactory.com", true },
{ "dachb0den.net", true },
{ "dachdecker-ranzenberger.de", true },
@@ -8468,6 +8882,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dadrian.io", true },
{ "daduke.org", true },
{ "daemen.org", true },
+ { "daemon.xin", true },
{ "daemonslayer.net", true },
{ "daemwool.ch", true },
{ "daevel.fr", true },
@@ -8480,6 +8895,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dagmar2018.cz", true },
{ "dahlberg.cologne", true },
{ "dai.top", true },
+ { "daigakujuken-plus.com", true },
{ "daikoz.com", true },
{ "dailybits.be", true },
{ "dailyblogged.com", true },
@@ -8489,6 +8905,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dailyxenang.com", true },
{ "daintymeal.com", true },
{ "dairyshrine.org", true },
+ { "daisakuikeda.org", true },
{ "daisidaniels.co.uk", true },
{ "daisy-peanut.com", true },
{ "daisypeanut.com", true },
@@ -8511,6 +8928,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dalmatiersheusden.be", true },
{ "damaged.org", true },
{ "damasexpress.com", true },
+ { "damedrogy.cz", true },
{ "damghaem.ir", true },
{ "damicris.ro", true },
{ "damienoreilly.org", true },
@@ -8521,9 +8939,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "damngoodpepper.com", false },
{ "damongant.de", true },
{ "damonline.dk", true },
+ { "dampedia.com", true },
{ "dan-informacijske-varnosti.si", true },
{ "dan.me.uk", true },
- { "dan.org.nz", true },
{ "danaketh.com", true },
{ "danamica.dk", true },
{ "danandrum.com", true },
@@ -8535,40 +8953,42 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dandenongroadapartments.com.au", true },
{ "daneandthepain.com", true },
{ "danhalliday.com", true },
+ { "danholloway.online", true },
{ "daniel-baumann.ch", true },
{ "daniel-cholewa.de", true },
{ "daniel-du.com", true },
{ "daniel-kulbe.de", true },
{ "daniel-milnes.uk", true },
{ "daniel-ruf.de", true },
+ { "daniel-wildhaber.ch", true },
{ "danielalvarez.net", true },
{ "danielas.boutique", true },
{ "danielehniss.de", true },
{ "danielepestilli.com", true },
{ "danielgorr.de", true },
- { "danielheal.net", true },
{ "danielhinterlechner.eu", true },
{ "danielhochleitner.de", true },
{ "danieljamesscott.org", true },
{ "danieljireh.com", true },
{ "danielkoster.nl", true },
{ "daniellockyer.com", true },
- { "danielmarquard.com", true },
{ "danielmartin.de", true },
{ "danielmoch.com", true },
- { "danielmostertman.com", false },
- { "danielmostertman.nl", false },
+ { "danielmorell.com", true },
+ { "danielmostertman.com", true },
+ { "danielmostertman.nl", true },
{ "danielpeukert.cz", true },
+ { "danielran.com", true },
{ "danielrozenberg.com", true },
{ "danielsblog.org", true },
{ "danielschreurs.com", true },
+ { "danielsfirm.com", true },
{ "danielstach.cz", true },
{ "danielsteiner.net", true },
{ "danielstiner.me", true },
- { "danielt.co.uk", true },
- { "danielthompson.info", true },
{ "danieltollot.de", true },
{ "danielvoogsgerd.nl", true },
+ { "danielwildhaber.ch", true },
{ "danifabi.eu", true },
{ "danilapisarev.com", true },
{ "danjesensky.com", true },
@@ -8586,13 +9006,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "danny.fm", true },
{ "dannycairns.com", true },
{ "dannyrohde.de", true },
+ { "dannystevens.co.uk", true },
{ "danonsecurity.com", true },
{ "danotage.tv", true },
- { "danova.de", true },
{ "danoz.net", true },
{ "danpiel.net", true },
- { "dansage.co", true },
+ { "dansa.com.co", true },
{ "danscomp.com", true },
+ { "dansdiscounttools.com", true },
{ "danselibre.net", true },
{ "danselibre.org", true },
{ "danseressen.nl", true },
@@ -8609,8 +9030,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "danyabanya.com", true },
{ "dao.spb.su", true },
{ "daoro.net", true },
+ { "daphne.informatik.uni-freiburg.de", true },
{ "dapim.co.il", true },
{ "daplie.com", true },
+ { "dappworld.com", true },
{ "daracokorilo.com", true },
{ "daravk.ch", true },
{ "darbi.org", true },
@@ -8621,9 +9044,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "daren.com.br", true },
{ "dareyou.be", true },
{ "dariaburger.de", true },
- { "darinjohnson.ca", true },
{ "darinkotter.com", true },
{ "darioackermann.ch", true },
+ { "darioclip.com", true },
{ "darioturchetti.me", true },
{ "darisni.me", true },
{ "dark-infection.de", true },
@@ -8632,10 +9055,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "darkcores.net", true },
{ "darkengine.io", true },
{ "darkengine.net", true },
+ { "darkerlystormy.com", true },
+ { "darkerstormy.com", true },
{ "darkeststar.org", true },
{ "darkfire.ch", true },
+ { "darknessflickers.com", true },
{ "darknetlive.com", true },
{ "darknight.blog", true },
+ { "darkrisks.com", true },
{ "darkroomsaredead.com", true },
{ "darkserver.fedoraproject.org", true },
{ "darkserver.stg.fedoraproject.org", true },
@@ -8644,10 +9071,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "darkspacelab.com", true },
{ "darktime.ru", true },
{ "darkwater.info", true },
- { "darkwebkittens.xyz", true },
{ "darkx.me", true },
{ "darom.jp", true },
{ "darookee.net", false },
+ { "daropia.org", true },
{ "darshnam.com", true },
{ "dart-tanke.com", true },
{ "dart-tanke.de", true },
@@ -8666,29 +9093,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dashboard.run", true },
{ "dashlane.com", true },
{ "dashnearby.com", true },
+ { "dashwebconsulting.com", true },
+ { "dasignsource.com", true },
{ "dasinternetluegt.at", true },
+ { "dasteichwerk.at", true },
{ "dasug.de", true },
{ "data-detox.de", true },
{ "data.gov", true },
{ "data.govt.nz", true },
{ "data.world", true },
- { "databeam.de", true },
{ "databionix.com", true },
{ "databutlr.com", true },
{ "databutlr.net", true },
{ "datacalle.com", true },
{ "datacandy.com", true },
- { "datacenternews.asia", true },
- { "datacenternews.co.nz", true },
- { "datacentrenews.eu", true },
+ { "datacool.tk", true },
{ "datadit.hu", true },
{ "datadyne.technology", true },
- { "datafd.com", true },
- { "datafd.net", true },
{ "dataformers.at", true },
+ { "datagrail.io", true },
{ "dataharvest.at", true },
{ "datahoarder.xyz", true },
- { "datahoarderschool.club", true },
{ "datakick.org", true },
{ "datalife.gr", true },
{ "datalysis.ch", true },
@@ -8724,7 +9149,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "datingticino.ch", true },
{ "datmancrm.com", true },
{ "datovyaudit.cz", true },
- { "datsound.ru", true },
{ "datumou-osusume.com", true },
{ "datumou-recipe.com", true },
{ "datumstudio.jp", true },
@@ -8738,6 +9162,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "davepage.me.uk", true },
{ "davepearce.com", true },
{ "davescomputertips.com", true },
+ { "davesharpe.com", true },
{ "davesinclair.com.au", true },
{ "davetempleton.com", true },
{ "davevelopment.net", true },
@@ -8756,6 +9181,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "davidbuckell.com", true },
{ "davidcrx.net", true },
{ "daviddever.net", true },
+ { "davidforward.com", true },
+ { "davidforward.net", true },
{ "davidfrancoeur.com", true },
{ "davidgouveia.net", true },
{ "davidgow.net", true },
@@ -8763,9 +9190,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "davidking.xyz", true },
{ "davidlamprea.com", true },
{ "davidlane.io", true },
- { "davidlillo.com", true },
{ "davidlyness.com", true },
+ { "davidmcevoy.org.uk", true },
{ "davidmessenger.co.uk", true },
+ { "davidmn.org", true },
{ "davidnadaski.com", true },
{ "davidpearce.com", true },
{ "davidpearce.org", true },
@@ -8774,13 +9202,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "davidschlachter.com", true },
{ "davidsimner.me.uk", true },
{ "davidsopas.com", true },
+ { "davidtiffany.com", true },
{ "davidundetiwan.com", true },
{ "davie3.com", true },
- { "davimun.org", true },
{ "davisroi.com", true },
{ "davo-usedcars.be", true },
{ "davy-server.com", true },
{ "dawena.de", true },
+ { "dawgs.ga", true },
{ "dawnbringer.eu", true },
{ "dawnbringer.net", true },
{ "dawnofeden.net", true },
@@ -8790,7 +9219,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "daycontactlens.com", true },
{ "daylight-dream.ee", true },
{ "daylightpirates.org", true },
- { "dayman.net", true },
+ { "dayman.net", false },
{ "daymprove.life", true },
{ "dayofdays.be", true },
{ "daysoftheyear.com", true },
@@ -8803,6 +9232,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dbdc.us", true },
{ "dbentertainment.co.uk", true },
{ "dbgamestudio.com", true },
+ { "dbjc.tk", true },
{ "dblcastles.co.uk", true },
{ "dbldub.net", true },
{ "dbmiller.org", true },
@@ -8845,6 +9275,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ddproxy.cf", true },
{ "ddracepro.net", true },
{ "dds.mil", true },
+ { "ddy.tw", true },
{ "de-gucci.com", true },
{ "de-mail.info", true },
{ "de-medici.nl", true },
@@ -8853,6 +9284,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "de.search.yahoo.com", false },
{ "deadbeef.ninja", true },
{ "deadc0de.re", true },
+ { "deadinsi.de", true },
{ "deaf.dating", true },
{ "deaf.eu.org", true },
{ "deai-life.biz", true },
@@ -8868,6 +9300,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dealbanana.it", true },
{ "dealbanana.se", true },
{ "dealcruiser.nl", true },
+ { "dealerselectric.com", true },
{ "dealinflatables.co.uk", true },
{ "dealpass.no", true },
{ "deamuseum.org", true },
@@ -8883,10 +9316,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dearfcc.org", true },
{ "dearktiel.nl", true },
{ "dearnevalleybouncycastles.co.uk", true },
+ { "deathofspring.com", true },
{ "deathy.ro", true },
+ { "debarrasantony.com", true },
+ { "debarrasasnieressurseine.com", true },
+ { "debarrasboulognebillancourt.com", true },
+ { "debarrasclichy.com", true },
+ { "debarrascolombes.com", true },
+ { "debarrasnanterre.com", true },
{ "debbyefurd.com", true },
{ "debie-usedcars.be", true },
{ "debigare.com", true },
+ { "debkleinteam.com", true },
{ "debron-ot.nl", true },
{ "debrusoft.ch", true },
{ "debt.com", true },
@@ -8900,12 +9341,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "decis.fr", true },
{ "decisivetactics.com", true },
{ "deckbuilderamerica.com", true },
+ { "decoating.pl", true },
{ "decock-usedcars.be", true },
{ "decodeanddestroy.com", true },
{ "decoder.link", true },
{ "decompiled.de", true },
{ "decor-d.com", true },
{ "decoratingadvice.co.uk", true },
+ { "decoratore.roma.it", true },
{ "decoratrix.com", true },
{ "decorauvent.ca", true },
{ "decorestilo.com.br", true },
@@ -8925,10 +9368,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "deechtebakkers.nl", true },
{ "deegeeinflatables.co.uk", true },
{ "deelmijnreis.nl", true },
- { "deep.club", true },
- { "deep.social", true },
{ "deepaero.com", true },
- { "deeparamaraj.com", true },
{ "deepbluecrafting.co.uk", true },
{ "deepcode.io", true },
{ "deeperxh.com", true },
@@ -8940,7 +9380,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "deepwealth.institute", true },
{ "deepz.pt", true },
{ "deepzz.com", true },
- { "deer.team", true },
{ "deezeno.com", true },
{ "def-pos.ru", true },
{ "defcon.org", true },
@@ -8960,6 +9399,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "defrax.com", true },
{ "defrax.de", true },
{ "deftek.com", true },
+ { "deftig-und-fein.de", true },
{ "deftnerd.com", true },
{ "defuse.ca", true },
{ "defxing.net", true },
@@ -9020,17 +9460,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "deltafinanceiro.com.br", true },
{ "deltaonlineguards.com", true },
{ "deltaservers.com.br", true },
+ { "deltasigmachi.org", true },
{ "deltasmart.ch", true },
{ "deltava.org", true },
- { "demarle.ch", true },
{ "dementiapraecox.de", true },
{ "demeyere-usedcars.be", true },
{ "demfloro.ru", true },
{ "demijn.nl", true },
{ "demilletech.net", true },
{ "demmer.one", true },
- { "demo.swedbank.se", true },
- { "demo9.ovh", true },
{ "democracychronicles.com", true },
{ "democracyineurope.eu", true },
{ "democraziaineuropa.eu", true },
@@ -9049,6 +9487,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "denaehula.com", true },
{ "denardbrewing.com", true },
{ "denbkh.ru", true },
+ { "dengchangdong.com", true },
{ "dengode.eu", true },
{ "denimio.com", true },
{ "denimtoday.com", true },
@@ -9067,14 +9506,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dent.uy", true },
{ "dentallaborgeraeteservice.de", true },
{ "dentfix.ro", true },
+ { "dentistesdarveauetrioux.com", true },
{ "dentistglasgow.com", true },
{ "dentrassi.de", true },
{ "dentystabirmingham.co.uk", true },
+ { "denwauranailab.com", true },
{ "deontology.com", true },
{ "depaddestoeltjes.be", true },
{ "deparis.me", true },
{ "depechemode-live.com", true },
- { "depedshs.com", true },
{ "depedtayo.com", true },
{ "depicus.com", true },
{ "depone.net", true },
@@ -9082,10 +9522,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "depotsquarekerrville.com", true },
{ "depotter-usedcars.be", true },
{ "deprecate.de", true },
- { "deprobe.pro", true },
- { "depth-co.jp", true },
{ "depthe.gr", true },
{ "der-bank-blog.de", true },
+ { "der-fliesenzauberer.de", true },
{ "der-gardinenmann.de", true },
{ "der-lan.de", true },
{ "der-rudi.eu", true },
@@ -9098,6 +9537,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "derbybouncycastles.com", true },
{ "derdewereldrommelmarkt.nl", true },
{ "derechosdigitales.org", true },
+ { "dereddingsklos.nl", true },
{ "dereferenced.net", true },
{ "derehamcastles.co.uk", true },
{ "derekheld.com", true },
@@ -9127,9 +9567,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "desertsounds.org", true },
{ "desgenst.ch", true },
{ "design-fu.com", false },
+ { "design-in-bad.eu", true },
{ "design-tooning.de", true },
{ "designdevs.eu", true },
{ "designed-cybersecurity.com", true },
+ { "designedbygeniuses.com", true },
{ "designedcybersecurity.com", true },
{ "designer-drug.com", true },
{ "designera.se", true },
@@ -9146,6 +9588,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "deskvip.com", true },
{ "desmaakvanplanten.be", true },
{ "desmo.gg", true },
+ { "desormiers.com", true },
{ "despachomartinyasociados.com", true },
{ "despertadoronline.com.es", true },
{ "desplats.com.ar", true },
@@ -9155,15 +9598,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "destileria.net.br", true },
{ "destinationsofnewyorkstate.com", true },
{ "destinattorneyjohngreene.com", true },
+ { "destinopiriapolis.com", true },
{ "desu.ne.jp", true },
- { "desveja.com.br", true },
+ { "desuperheroes.co", true },
{ "det-te.ch", true },
{ "detalika.ru", true },
{ "detalyedesigngroup.com", true },
{ "detectify.com", false },
+ { "detectivedesk.com.au", true },
{ "detekenmuze.nl", true },
{ "dethemium.com", true },
+ { "detodojuegos.com", true },
{ "detoxetmoi.com", true },
+ { "detoxic.vn", true },
{ "detoxsinutritie.ro", true },
{ "detroit-english.de", true },
{ "detroitstylepizza.com", true },
@@ -9172,6 +9619,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "detskysad.com", true },
{ "detuinmuze.nl", true },
{ "detype.nl", true },
+ { "deuchnord.fr", true },
{ "deude.de", true },
{ "deukie.nl", true },
{ "deurenfabriek.nl", true },
@@ -9183,11 +9631,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "deutscher-rollenspielpreis.de", true },
{ "deutscheshoponline.com", true },
{ "deutschland-dsl.de", true },
- { "deux.solutions", true },
{ "deuxmetrescubes.fr", true },
- { "deuxsol.co", true },
- { "deuxsol.com", true },
- { "deuxsolutions.com", true },
{ "dev-brandywineglobal.com", true },
{ "dev-pulse-mtn.pantheonsite.io", true },
{ "dev-tek.de", true },
@@ -9199,9 +9643,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "devct.cz", false },
{ "devcu.com", true },
{ "devcu.net", true },
+ { "devdoodle.net", true },
{ "devel.cz", true },
- { "develerik.com", true },
- { "develop.cool", true },
+ { "develerik.com", false },
{ "developer.android.com", true },
{ "developer.mydigipass.com", false },
{ "developerdan.com", true },
@@ -9210,6 +9654,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "developfx.com", true },
{ "developmentaid.org", true },
{ "developmentsites.melbourne", true },
+ { "develops.co.il", true },
{ "develux.com", true },
{ "develux.net", true },
{ "devenney.io", true },
@@ -9218,31 +9663,42 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "devillers-occasions.be", true },
{ "devilshakerz.com", true },
{ "deviltracks.net", true },
+ { "deviltraxxx.de", true },
{ "devinfo.net", false },
{ "devirc.net", true },
{ "devisnow.fr", true },
{ "devjack.de", true },
{ "devkid.net", true },
+ { "devkit.cc", false },
{ "devklog.net", true },
{ "devlamvzw.org", false },
{ "devlatron.net", true },
{ "devlogr.com", true },
+ { "devnull.zone", true },
{ "devolution.ws", true },
{ "devonsawatzky.ca", true },
{ "devopers.com.br", true },
{ "devops-survey.com", true },
{ "devpgsv.com", true },
+ { "devpsy.info", true },
+ { "devragu.com", true },
{ "devrandom.net", true },
+ { "devsjournal.com", true },
+ { "devsrvr.ru", true },
{ "devstaff.gr", true },
{ "devyn.ca", true },
{ "devzero.io", true },
{ "dewaard.de", true },
{ "dewalch.net", true },
{ "dewapress.com", true },
+ { "dewebwerf.nl", true },
{ "dewinter.com", true },
+ { "dex.top", true },
{ "dexalo.de", true },
+ { "dexigner.com", true },
{ "deyute.com", true },
{ "dezeregio.nl", true },
+ { "dezet-ev.de", true },
{ "dezintranet.com", true },
{ "dezmembrariromania.ro", true },
{ "dezshop24.de", true },
@@ -9255,9 +9711,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dfmn.berlin", true },
{ "dfranke.com", true },
{ "dg7.in", true },
- { "dgblaw.com.au", true },
+ { "dgblaw.com.au", false },
{ "dgbouncycastlehire.com", true },
- { "dgby.org", true },
{ "dgeex.eu", true },
{ "dggm.ru", true },
{ "dgitup.com", true },
@@ -9278,11 +9733,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dhuy.net", true },
{ "di2pra.com", true },
{ "di2pra.fr", true },
+ { "diablovalleytech.com", true },
{ "diadorafitness.es", true },
{ "diadorafitness.it", true },
{ "diagnocentro.cl", true },
{ "diagnostix.org", true },
- { "dialoegue.com", true },
+ { "diagrammingoutloud.co.uk", true },
+ { "dialapicnic.co.za", true },
+ { "dialectic-og.com", true },
{ "diamante.ro", true },
{ "diamantovaburza.cz", true },
{ "diamondsleepsolutions.com", true },
@@ -9296,6 +9754,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "diario-egipto.com", true },
{ "diasdasemana.com", true },
{ "diasp.org", true },
+ { "diatrofi-ygeia.gr", true },
{ "dibiphp.com", true },
{ "diccionarioabierto.com", true },
{ "diccionariodedudas.com", true },
@@ -9308,6 +9767,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dicionariodesimbolos.com.br", true },
{ "dicionarioetimologico.com.br", true },
{ "dickieslife.com", true },
+ { "dickpics.ru", true },
{ "dicoding.com", true },
{ "dictionaryofnumbers.com", true },
{ "dictzone.com", true },
@@ -9341,7 +9801,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dienstplan.one", true },
{ "dierabenmutti.de", true },
{ "dierenartsdeconinck.be", true },
- { "dierencompleet.nl", true },
{ "dieselanimals.lt", true },
{ "dieselgalleri.com", true },
{ "diesteppenreiter.de", true },
@@ -9370,21 +9829,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "digibull.link", true },
{ "digicert-support.com", true },
{ "digicert.nl", true },
+ { "digicy.cloud", true },
{ "digideli.ee", true },
{ "digidroom.be", true },
{ "digilicious.com", true },
{ "digimagical.com", true },
{ "digimedia.cd", false },
- { "diginota.com", true },
{ "digioccumss.ddns.net", true },
+ { "digipitch.com", true },
{ "digired.ro", true },
{ "digital-compounds.com", true },
{ "digital-eastside.de", true },
{ "digital-liberal.ch", true },
+ { "digital-muscle.com.au", true },
{ "digital.gov", false },
{ "digital.govt.nz", true },
{ "digital1st.co.uk", true },
- { "digital1world.com", true },
{ "digital2web.com", false },
{ "digitalarchitecture.com", true },
{ "digitalbitbox.com", true },
@@ -9403,10 +9863,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "digitaldem.it", true },
{ "digitalehandtekeningen.nl", true },
{ "digitaleoverheid.nl", true },
- { "digitalewelten.de", true },
+ { "digitaletanker.com", true },
{ "digitalezukunft-hagen.de", true },
{ "digitalezukunft.nrw", true },
{ "digitalfishfun.com", true },
+ { "digitalfury.co.uk", true },
{ "digitalfuturenow.com", true },
{ "digitalgov.gov", false },
{ "digitalhabit.at", true },
@@ -9418,6 +9879,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "digitalrights.fund", true },
{ "digitalskillswap.com", true },
{ "digitalsurge.io", true },
+ { "digitaltcertifikat.dk", true },
{ "digitaltechnologies.ltd.uk", true },
{ "digitkon.com", true },
{ "digminecraft.com", true },
@@ -9454,11 +9916,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "din-hkd.jp", true },
{ "dineachook.com.au", true },
{ "dinepont.fr", true },
- { "dingcc.com", true },
- { "dinge.xyz", true },
- { "dingelbob-schuhcreme.gq", true },
+ { "dingcc.me", true },
{ "dingsbums.shop", true },
- { "dinheirolucrar.com", true },
{ "dinkommunikasjon.no", true },
{ "dinmtb.dk", true },
{ "dinocarrozzeria.com", true },
@@ -9467,6 +9926,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "diodeled.com", true },
{ "diodo.me", true },
{ "dionysos-ios.gr", true },
+ { "diozoid.com", true },
{ "dipalma.me", true },
{ "dipling.de", true },
{ "diplona.de", true },
@@ -9477,7 +9937,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "direct-sel.com", true },
{ "directebanking.com", true },
{ "directelectricalltd.co.uk", true },
- { "directinsure.in", true },
{ "directlinkfunding.co.uk", true },
{ "directme.ga", true },
{ "directnews.be", true },
@@ -9487,9 +9946,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "direktvermarktung-schmitzberger.at", true },
{ "dirips.com", true },
{ "dirk-scheele.de", true },
+ { "dirkdoering.de", true },
+ { "dirkjonker.nl", true },
{ "dirko.net", true },
- { "dirkwolf.de", true },
{ "dirtcraft.ca", true },
+ { "dirtygeek.ovh", true },
{ "disability.gov", true },
{ "disabled.dating", true },
{ "disanteimpianti.com", true },
@@ -9514,6 +9975,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "discountplush.com", true },
{ "discover-shaken.com", true },
{ "discoverthreejs.com", true },
+ { "discoverucluelet.com", true },
{ "discoveryaima.com", true },
{ "discoveryottawa.ca", true },
{ "discoveryrom.org", true },
@@ -9584,11 +10046,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "diversityflags.nz", true },
{ "divertiagua.com.br", true },
{ "divi-experte.de", true },
+ { "divinasaiamodas.com.br", true },
{ "divinegames.studio", true },
{ "diving.photo", true },
{ "divorciosmurcia.com", true },
{ "divvymonkey.com", true },
+ { "diwei.vip", true },
{ "dixi.fi", true },
+ { "dixibox.com", true },
{ "diybook.at", true },
{ "diycc.org", true },
{ "diygod.me", true },
@@ -9608,7 +10073,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "djc.me", true },
{ "djcursuszwolle.nl", true },
{ "djdavid98.hu", true },
+ { "djieno.com", true },
{ "djipanov.com", true },
+ { "djleon.net", true },
{ "djlive.pl", true },
{ "djlnetworks.co.uk", true },
{ "djsbouncycastlehire.com", true },
@@ -9616,6 +10083,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "djt-vom-chausseehaus.de", true },
{ "djursland-psykologen.dk", true },
{ "djwaynepryke.com", true },
+ { "djz4music.com", false },
{ "dk-kromeriz.cz", true },
{ "dk.com", true },
{ "dk.search.yahoo.com", false },
@@ -9632,9 +10100,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dlitz.net", true },
{ "dll4free.com", true },
{ "dlld.com", true },
+ { "dlouwrink.nl", true },
{ "dlrsp.org", true },
{ "dlscomputers.com.au", true },
+ { "dlui.xyz", true },
{ "dlunch.net", true },
+ { "dlyanxs.com", true },
{ "dlz149.me", true },
{ "dlzz.net", true },
{ "dm.lookout.com", false },
@@ -9644,7 +10115,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dmailshop.ro", true },
{ "dmarc.dk", true },
{ "dmatrix.xyz", true },
- { "dmcastles.com", true },
{ "dmd.lv", true },
{ "dmdd.org.uk", true },
{ "dmeevalumate.com", true },
@@ -9660,6 +10130,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dn42.us", true },
{ "dna.li", true },
{ "dnacloud.pl", true },
+ { "dnakids.co.uk", true },
{ "dnc.org.nz", true },
{ "dndtools.net", true },
{ "dne.lu", true },
@@ -9679,11 +10150,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dnshallinta.fi", true },
{ "dnsinfo.ml", true },
{ "dnsman.se", true },
+ { "dnspod.ml", true },
{ "dnstwister.report", true },
+ { "dnzz123.com", true },
{ "do-prod.com", true },
{ "do.gd", true },
{ "do.search.yahoo.com", false },
{ "do13.net", true },
+ { "do67.de", true },
+ { "do67.net", true },
+ { "dobraprace.cz", true },
{ "dobrev.family", true },
{ "dobrisan.ro", true },
{ "dobsnet.net", true },
@@ -9699,7 +10175,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dockerbook.com", false },
{ "dockerm.com", true },
{ "dockerup.net", true },
- { "doclassworks.com", true },
{ "docline.gov", true },
{ "docloh.de", true },
{ "docloudu.info", true },
@@ -9712,6 +10187,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "doctafit.com", true },
{ "doctor-locks.co.uk", true },
{ "doctor.dating", true },
+ { "doctorbini.com", true },
{ "doctorfox.co.uk", true },
{ "doctorsonmaps.com", true },
{ "doctorwho.cz", true },
@@ -9731,16 +10207,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dogear.ch", true },
{ "dogfi.sh", true },
{ "dogft.com", true },
+ { "doggedbyirs.com", true },
{ "doggroomingcourse.com", true },
{ "dogmap.jp", true },
{ "dogoo.com", true },
{ "dogpawstudio.com", true },
- { "dogprograms.net", true },
{ "dogrescuegreece.nl", true },
{ "dogworld.com.br", true },
{ "dohanews.co", true },
{ "doihavetoputonpants.com", true },
- { "dokan-e.com", false },
{ "dokelio-idf.fr", true },
{ "dokipy.no", true },
{ "dokspot.cf", true },
@@ -9792,6 +10267,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dominomatrix.com", true },
{ "domix.fun", true },
{ "dommascate.com.br", true },
+ { "domob.eu", true },
{ "domodeco.fr", true },
{ "domodedovo.travel", true },
{ "domprojects.com", true },
@@ -9822,20 +10298,33 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dongxuwang.com", true },
{ "donkennedyandsons.com", true },
{ "donkeytrekkingkefalonia.com", true },
+ { "donlydental.ca", true },
{ "donmaldeamores.com", true },
+ { "donna-bellini-business-fotografie-muenchen.de", true },
+ { "donna-bellini-fotografie-berlin.de", true },
+ { "donna-bellini-fotografie-erfurt.de", true },
+ { "donna-bellini-fotografie-frankfurt.de", true },
+ { "donna-bellini-fotografie-hamburg.de", true },
+ { "donna-bellini-fotografie-koeln.de", true },
+ { "donna-bellini-fotografie-muenchen.de", true },
+ { "donna-bellini-fotografie-nuernberg.de", true },
+ { "donna-bellini-fotografie-stuttgart.de", true },
+ { "donna-bellini-fotografie-wien.de", true },
+ { "donna-bellini-hochzeitsfotograf-frankfurt.de", true },
+ { "donna-bellini-hochzeitsfotograf-muenchen.de", true },
{ "donnacha.blog", true },
{ "donnachie.net", true },
- { "donner-reuschel.de", true },
{ "donnons.org", false },
{ "donnoval.ru", true },
{ "donotlink.it", true },
{ "donovand.info", true },
- { "donpaginasweb.com", true },
{ "donpomodoro.com.co", true },
+ { "donsbach-edv.de", true },
{ "dont.re", true },
{ "dont.watch", true },
{ "dontbubble.me", true },
{ "dontcageus.org", true },
+ { "dontpayfull.com", true },
{ "donttrust.me", true },
{ "donutcompany.co.jp", true },
{ "donzool.es", true },
@@ -9849,7 +10338,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "doooooops.com", true },
{ "doop.im", true },
{ "doopdidoop.com", true },
- { "door.cards", true },
{ "doordecor.bg", true },
{ "doorflow.com", true },
{ "dopesoft.de", true },
@@ -9860,23 +10348,32 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dopsi.ch", true },
{ "dora.moe", true },
{ "dorde.eu", true },
+ { "dorfbaeck.at", true },
{ "dorfbrunnen.eu", true },
{ "dorfzittig.de", true },
{ "doriangirod.ch", true },
{ "dorianharmans.nl", true },
{ "dorianmuthig.com", true },
+ { "doridian.com", true },
+ { "doridian.de", true },
{ "doridian.net", true },
+ { "doridian.org", true },
+ { "dormirmucho.com", true },
{ "dormiu.com", true },
{ "dormiu.com.br", true },
+ { "dornhecker.me", true },
+ { "dorpshuiskesteren.nl", true },
{ "dorquelle.com", true },
{ "dorsetentertainments.co.uk", true },
{ "dorth.nl", true },
+ { "dosdediez.com", true },
{ "dosenbierrepublik.com", true },
{ "dosenkiwi.at", true },
{ "doska.by", true },
{ "doska.ru", true },
{ "dosomeworks.biz", true },
{ "dossplumbing.co.za", true },
+ { "dostlar.fr", true },
{ "dosvientoselectric.com", true },
{ "dosvientoselectrical.com", true },
{ "dosvientoselectrician.com", true },
@@ -9887,13 +10384,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "doswap.com", true },
{ "dosyauzantisi.com", true },
{ "dot.ro", true },
+ { "dot42.no", true },
+ { "dota2huds.com", true },
{ "dotacni-parazit.cz", true },
{ "dotbigbang.com", true },
{ "dotbox.org", true },
{ "dotcircle.co", true },
+ { "dotconnor.com", true },
{ "dotgov.gov", true },
{ "dothebangthingsalon.com", true },
{ "dothydesign.com", true },
+ { "dotjesper.com", true },
+ { "dotjesper.dk", true },
+ { "dotjesper.net", true },
{ "dotjs.party", true },
{ "dotkniseandroida.cz", true },
{ "dotkod.pl", true },
@@ -9901,12 +10404,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dotphoto.com", true },
{ "dotplex.com", true },
{ "dotplex.de", true },
- { "dotrox.net", true },
{ "dotshule.ug", true },
{ "dotsiam.co.th", true },
{ "dotsiam.com", true },
+ { "dotsiam.in.th", true },
{ "douai.me", true },
- { "doubleaste.com", true },
{ "doubleavineyards.com", true },
{ "doublefun.net", true },
{ "doublestat.me", true },
@@ -9918,6 +10420,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "douzer.de", true },
{ "dovenzorgmalawi.nl", true },
{ "dovro.de", true },
+ { "dowell.media", true },
{ "dowellconsulting.com", true },
{ "dowhatmakegood.de", true },
{ "dowling.nz", true },
@@ -9941,6 +10444,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dpd.com.pl", true },
{ "dperson.net", true },
{ "dpfsolutionsfl.com", true },
+ { "dpg.no", true },
{ "dpi-design.de", true },
{ "dpisecuretests.com", true },
{ "dprb.biz", true },
@@ -9951,7 +10455,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dr-bodendorf.de", true },
{ "dr-jakob-zahnaerzte.de", true },
{ "dr-klotz.info", true },
- { "dr-knirr.de", true },
{ "dr-krebs.net", true },
{ "dr-marlen-nystroem.de", true },
{ "dr-moldovan.de", true },
@@ -9963,7 +10466,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dr-www.de", true },
{ "drabadir.com", true },
{ "drabben.be", true },
- { "drabbin.com", true },
+ { "drabim.org", true },
{ "drach.xyz", true },
{ "drachenleder.de", true },
{ "dracisvet.cz", true },
@@ -9973,6 +10476,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "drafton.com", true },
{ "drageeparadise.fr", true },
{ "dragfiles.com", true },
+ { "draghetti.it", true },
{ "draghive.asia", true },
{ "draghive.ca", true },
{ "draghive.co", true },
@@ -9997,6 +10501,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dragonsunited.net", true },
{ "dragonsunited.org", true },
{ "dragonwork.me", true },
+ { "drahcro.uk", true },
{ "drakeluce.com", true },
{ "drakenson.de", true },
{ "dramaticpeople.com", true },
@@ -10007,6 +10512,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "draw.uy", true },
{ "drawesome.uy", true },
{ "drawingcode.net", true },
+ { "drawxp.com", true },
+ { "drbarnabus.com", true },
{ "drbethanybarnes.com", true },
{ "drbriones.com", true },
{ "drchrislivingston.com", true },
@@ -10017,6 +10524,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "drdipilla.com", true },
{ "dreamcreator108.com", true },
{ "dreamday-with-dreamcar.de", true },
+ { "dreamersgiftshopec.com", true },
{ "dreamhack.com", true },
{ "dreamhostremixer.com", true },
{ "dreamithost.com.au", true },
@@ -10027,20 +10535,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dreamonkey.com", true },
{ "dreamrae.net", true },
{ "dreamtechie.com", true },
- { "dreax.win", true },
{ "drei01.com", true },
{ "drei01.de", true },
{ "dreid.org", true },
{ "dreiweiden.de", true },
{ "dress-cons.com", true },
+ { "dressify.co", true },
+ { "dressify.in", true },
+ { "drevanbeale.com", true },
{ "drevo-door.cz", true },
{ "drew.beer", true },
{ "drew.red", true },
+ { "drewapianostudio.com", true },
{ "dreweryinc.com", true },
{ "drewsilcock.co.uk", true },
{ "dreyfussplasticsurgery.com", true },
{ "drezzy.it", true },
+ { "drfranciscofonseca.com.br", true },
{ "drfrey.ch", true },
+ { "drgdrp.com", true },
{ "drgn.no", true },
{ "drhathazi.hu", true },
{ "drheibel.com", true },
@@ -10051,7 +10564,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "drillingsupplystore.com", true },
{ "drillion.net", true },
{ "drillshackresort.com", true },
+ { "drinkcontrolapp.com", true },
{ "drinkplanet.eu", true },
+ { "dripdoctors.com", true },
{ "drive.google.com", false },
{ "driven2shine.eu", true },
{ "drivenes.net", true },
@@ -10064,7 +10579,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "drivinghorror.com", true },
{ "drivingtestpro.com", true },
{ "drivya.com", true },
- { "drixn.com", true },
{ "drjacquesmalan.com", true },
{ "drjenafernandez.com", true },
{ "drjoe.ca", true },
@@ -10072,11 +10586,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "drjulianneil.com", true },
{ "drkhsh.at", false },
{ "drkmtrx.xyz", true },
+ { "drlandis.com", true },
{ "drlangsdon.com", true },
{ "drmayakato.com", true },
{ "drmcdaniel.com", true },
{ "drms.us", true },
{ "drmtransit.com", true },
+ { "drnow.ru", true },
{ "drogueriaelbarco.com", true },
{ "droidapp.nl", true },
{ "droidgyan.com", true },
@@ -10102,12 +10618,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "drown.photography", true },
{ "drpetervoigt.de", true },
{ "drpico.com.au", true },
+ { "drrodina.com", true },
{ "drrr.chat", true },
{ "drrr.wiki", true },
{ "drsajjadian.com", true },
{ "drschruefer.de", true },
{ "drsturgeonfreitas.com", true },
+ { "drtimmarch.com", true },
{ "drubn.de", false },
+ { "druckerei-huesgen.de", true },
{ "drugs.com", true },
{ "drumbe.at", true },
{ "drummondframing.com", true },
@@ -10115,15 +10634,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "drupal-expert.it", true },
{ "drupal.org", true },
{ "drupalspb.org", true },
+ { "drusantia.net", true },
{ "drusillas.co.uk", true },
{ "druwe.net", true },
{ "druznek.me", true },
{ "drvr.xyz", true },
{ "drweissbrot.net", true },
+ { "drwxr.org", true },
+ { "dryan.com", false },
{ "drybjed.net", true },
{ "drycleancoalition.org", true },
{ "drycreekphoto.com", true },
{ "drydrydry.com", true },
+ { "dryerventcleaningarlington.com", true },
+ { "dryerventcleaningcarrollton.com", true },
+ { "ds67.de", true },
{ "dsancomics.com", true },
{ "dsanraffleshangbai.xyz", true },
{ "dsayce.com", true },
@@ -10131,31 +10656,33 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dsdalismerkezi.com", true },
{ "dsebastien.net", true },
{ "dsektionen.se", false },
+ { "dsgarms.com", true },
+ { "dsgholsters.com", true },
+ { "dsgvo.name", true },
{ "dshield.org", true },
{ "dsm5.com", true },
{ "dsmjs.com", true },
{ "dso-imaging.co.uk", true },
+ { "dso-izlake.si", true },
{ "dsol.hu", true },
- { "dsouzamusic.com", true },
{ "dsrw.org", true },
{ "dssale.com", true },
{ "dstamou.de", true },
{ "dsteiner.at", true },
- { "dstvinstallrandburg.co.za", true },
- { "dsuinnovation.com", true },
{ "dt27.org", true },
{ "dtbouncycastles.co.uk", true },
{ "dtdsh.com", true },
{ "dte.co.uk", true },
{ "dtechstore.com.br", true },
+ { "dtg-fonds.com", true },
+ { "dtg-fonds.de", true },
+ { "dtg-fonds.net", true },
{ "dtk-vom-chausseehaus.de", true },
{ "dtnx.eu", true },
{ "dtnx.net", true },
{ "dtnx.org", true },
- { "dtp-mstdn.jp", true },
{ "dtuaarsfest.dk", true },
{ "dtx.sk", true },
- { "dualascent.com", true },
{ "dualias.xyz", false },
{ "dub.cz", true },
{ "dubai-company.ae", true },
@@ -10166,32 +10693,40 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dubrovnik-dental.clinic", true },
{ "dubrovskiy.net", true },
{ "dubrovskiy.pro", true },
+ { "dubtrack.fm", true },
{ "ducalendars.com", true },
{ "duch.cloud", true },
{ "duchyoffeann.com", true },
- { "duckasylum.com", true },
+ { "duckasylum.com", false },
{ "duckbase.com", true },
{ "duckduck.horse", true },
{ "duckduckstart.com", true },
{ "duckinc.net", true },
{ "duct.me", true },
+ { "due-diligence-security.com", true },
+ { "duerlund-falkenberg.dk", true },
{ "duernberg.at", true },
{ "duesee.org", true },
{ "duesterhus.eu", true },
{ "dufrei.com", true },
+ { "dugnet.com", false },
+ { "dugnet.io", false },
+ { "dugnet.net", false },
+ { "dugnet.org", false },
{ "dugunedavet.com", true },
{ "duh.se", true },
{ "duijf.info", true },
{ "duijfathome.nl", true },
{ "duitang.com", true },
{ "dukan-recepty.ru", true },
+ { "dukatek.cz", true },
{ "dukegat.de", false },
{ "dukesatqueens.com", true },
{ "dukun.de", true },
+ { "dulcinela.es", true },
{ "dulei.si", true },
{ "dullapp.com", true },
{ "dumax.xyz", true },
- { "dumbdemo.com", true },
{ "dumbeartech.com", true },
{ "dumberger-bau.de", true },
{ "dumbfunded.co.uk", true },
@@ -10199,24 +10734,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dumino.bg", true },
{ "dumont.ovh", true },
{ "dumpsters.com", true },
- { "dunamiscommunity.com", true },
{ "duncancmt.com", true },
{ "duncanfamilytrust.org", true },
+ { "duncanmoffat.com", true },
{ "duncanwinfrey.com", true },
+ { "duncm.com", true },
{ "dundalkdonnie.com", true },
+ { "dunesadventure.net", true },
{ "dungeon-bbs.de", true },
{ "dunklau.fr", true },
{ "dunkle-seite.org", true },
{ "dunloptrade.com", true },
{ "dunmanelectric.com", true },
{ "duobus.nl", true },
- { "duocircle.com", true },
+ { "duoluodeyu.com", true },
{ "duonganhtuan.com", true },
{ "duoquadragintien.fr", true },
{ "dupisces.com.tw", true },
{ "dupree.co", true },
{ "dupree.pe", true },
{ "durand.tf", true },
+ { "durbanlocksmiths.co.za", true },
{ "durchblick-shop.de", true },
{ "durdle.com", true },
{ "dureuil.info", true },
@@ -10247,14 +10785,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dvorupotocnych.sk", true },
{ "dvwc.org", true },
{ "dvx.cloud", true },
+ { "dw-loewe.de", true },
{ "dwbtoftshit.com", true },
{ "dwgf.xyz", true },
{ "dwi-sued.de", true },
+ { "dwienzek.de", true },
{ "dworzak.ch", true },
{ "dwscdv3.com", true },
{ "dwtm.ch", true },
{ "dwworld.co.uk", true },
{ "dxgl.info", true },
+ { "dxgl.org", true },
{ "dxm.no-ip.biz", true },
{ "dybuster.at", true },
{ "dybuster.ch", true },
@@ -10263,17 +10804,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dybuster.es", true },
{ "dybuster.it", true },
{ "dybuster.se", true },
+ { "dycoa.com", true },
{ "dyeager.org", true },
{ "dyktig.as", true },
{ "dyktig.no", true },
{ "dylanboudro.com", true },
+ { "dylancl.cf", true },
{ "dylankatz.com", true },
{ "dylanknoll.ca", true },
{ "dylanspcrepairs.com", true },
{ "dylanwise.net", true },
{ "dylmye.me", true },
+ { "dym.asia", true },
+ { "dym.bz", true },
+ { "dym2012.com", true },
+ { "dym2013.com", true },
+ { "dym2014.com", true },
+ { "dym2017.com", true },
{ "dymersion.com", true },
{ "dymfbbs.com", true },
+ { "dymmovie.com", true },
{ "dymowski.de", false },
{ "dyn-dnhensel.de", true },
{ "dyn-nserve.net", true },
@@ -10289,7 +10839,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dynamo.city", true },
{ "dynapptic.com", true },
{ "dynastic.co", true },
- { "dyncdn.me", true },
{ "dynn.be", true },
{ "dynorphin.com", true },
{ "dynorphins.com", true },
@@ -10300,8 +10849,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dyscalculia-blog.com", true },
{ "dysthymia.com", true },
{ "dyyn.de", true },
- { "dyz.pw", true },
{ "dzeina.ch", true },
+ { "dzet.de", true },
{ "dziary.com", true },
{ "dziurdzia.pl", true },
{ "dzndk.com", true },
@@ -10311,9 +10860,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "dzomo.org", true },
{ "dzsula.hu", true },
{ "dzyabchenko.com", true },
+ { "dzyszla.pl", true },
{ "e-apack.com.br", true },
{ "e-bikesdirect.co.uk", true },
{ "e-biografias.net", true },
+ { "e-borneoshop.com", true },
{ "e-briancon.com", true },
{ "e-colle.info", true },
{ "e-cottage.com.br", true },
@@ -10324,10 +10875,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "e-lambre.com", true },
{ "e-learningbs.com", true },
{ "e-lifetechnology.com", true },
- { "e-migration.ch", true },
{ "e-planetelec.fr", false },
+ { "e-ptn.com", true },
{ "e-standardstore.org", true },
{ "e-surveillant.nl", true },
+ { "e-sw.co.jp", true },
{ "e-teacher.pl", true },
{ "e-tech-solution.com", true },
{ "e-tech-solution.net", true },
@@ -10361,12 +10913,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "e965.ru", true },
{ "e9a.at", true },
{ "ea2drocks.com", true },
+ { "eacero.com", true },
{ "ead-italia.it", true },
{ "eagle.net", true },
{ "eagleindustriesltd.com", true },
{ "eaglemessaging.com", true },
{ "eaglesecurity.com", true },
{ "eagletechz.com.br", true },
+ { "eaglewreck.info", true },
+ { "eaglexiang.org", true },
{ "eagleyecs.com", true },
{ "eaimty.com", true },
{ "ealev.de", true },
@@ -10377,24 +10932,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "earn.com", true },
{ "earthsystemprediction.gov", true },
{ "earticleblog.com", true },
+ { "earvinkayonga.com", false },
+ { "easelforart.com", true },
{ "easez.net", true },
{ "eashwar.com", true },
{ "eason-yang.com", true },
{ "east-line.su", true },
{ "eastarm.net", true },
+ { "eastblue.org", true },
{ "eastcoastbubbleandbounce.co.uk", true },
{ "easterncapebirding.co.za", true },
{ "eastlothianbouncycastles.co.uk", true },
{ "eastmanbusinessinstitute.com", true },
{ "eastsidecottages.co.uk", true },
{ "easy-rpg.org", false },
+ { "easy2bathe.co.uk", true },
{ "easyadsnbanners.tk", false },
{ "easycoding.org", true },
{ "easyconstat.com", true },
{ "easycontentplan.com", true },
{ "easycosmetic.ch", true },
{ "easycup.com", false },
- { "easydumpsterrental.com", true },
+ { "easydumpsterrental.com", false },
{ "easyfiles.ch", true },
{ "easyhaul.com", true },
{ "easykraamzorg.nl", false },
@@ -10403,16 +10962,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "easypay.bg", true },
{ "easyproperty.com", true },
{ "easypv.ch", true },
- { "easyreal.ru", true },
+ { "easyqr.codes", true },
{ "easyroad.fr", true },
{ "easyschools.org", true },
{ "easyslide.be", true },
+ { "easyssl.com.cn", true },
{ "easystore.co", true },
{ "easytechguides.com", true },
{ "easytechsecurity.com", true },
{ "easyweenies.com", true },
+ { "eat-mine.ml", true },
{ "eat-sleep-code.com", true },
- { "eat4happiness.com", true },
{ "eatery.co.il", true },
{ "eatmebudapest.hu", true },
{ "eaton-works.com", true },
@@ -10443,13 +11003,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "eboek.info", true },
{ "ebonyriddle.com", true },
{ "ebooki.eu.org", true },
- { "ebop.ch", true },
+ { "ebooklaunchers.com", true },
+ { "eboutic.ch", true },
{ "eboyer.com", true },
{ "ebrnd.de", true },
{ "ec-baran.de", true },
{ "ec-current.com", true },
+ { "ec.mine.nu", true },
+ { "eca.edu.au", true },
{ "ecacollege.nsw.edu.au", true },
{ "ecardoo.com", true },
+ { "ecardoo.de", true },
+ { "ecardoo.net", true },
+ { "ecardoo.org", true },
{ "ecchidreams.com", true },
{ "ecclesia-koeln.de", true },
{ "ecco-verde.com", false },
@@ -10460,7 +11026,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "echatta.org", true },
{ "echidna-rocktools.eu", true },
{ "echo-security.co", true },
- { "echoactive.com", true },
{ "echoanalytics.com", true },
{ "echodio.com", true },
{ "echofoxtrot.co", true },
@@ -10468,7 +11033,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "echosim.io", true },
{ "echosixmonkey.com", true },
{ "echosystem.fr", true },
- { "echoteam.gq", false },
+ { "echoteam.gq", true },
+ { "echoteen.com", true },
{ "echoworld.ch", true },
{ "ecir.pro", true },
{ "ecir.ru", true },
@@ -10503,12 +11069,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ecombustibil.ro", true },
{ "ecommercestore.net.br", true },
{ "ecompen.co.za", true },
+ { "ecomycie.com", true },
{ "economias.pt", true },
{ "economic-sanctions.com", true },
{ "economicinclusion.gov", true },
{ "economiefidu.ch", true },
{ "economies.ch", true },
- { "economycarrentalscyprus.com", true },
{ "econsumer.gov", true },
{ "econverter.cloud", true },
{ "ecorp.cc", true },
@@ -10516,7 +11082,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ecos.srl", true },
{ "ecoshare.info", true },
{ "ecoskif.ru", true },
- { "ecosoftconsult.com", true },
{ "ecosound.ch", true },
{ "ecostruxureit.com", true },
{ "ecosystem.atlassian.net", true },
@@ -10544,14 +11109,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "edgeservices.co.uk", true },
{ "edgetalk.net", true },
{ "edgevelder.com", true },
- { "edh.email", true },
{ "edhesive.com", true },
{ "edholm.pub", true },
{ "edibarcode.com", true },
{ "edicct.com", true },
{ "edinburghsportsandoutdoorlearning.com", true },
{ "edincmovie.com", true },
- { "edisonchee.com", true },
+ { "ediscomp.sk", true },
{ "edisonlee55.com", true },
{ "edisonluiz.com", true },
{ "edisonnissanparts.com", true },
@@ -10579,14 +11143,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "edu-kingdom.com", true },
{ "edu6.cloud", true },
{ "eduard-dopler.de", true },
- { "eduardnikolenko.com", true },
- { "eduardnikolenko.ru", true },
{ "edubras.com.br", true },
{ "educationevolving.org", true },
{ "educationfutures.com", true },
{ "educationunlimited.com", true },
{ "educator-one.com", true },
- { "educators.co.nz", true },
{ "eductf.org", true },
{ "eduid.se", false },
{ "edumundo.nl", true },
@@ -10595,10 +11156,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "edusanjal.com", true },
{ "edusantorini.com", true },
{ "eduvpn.no", true },
+ { "eduxpert.in", true },
{ "edv-bv.de", true },
{ "edv-kohls.de", true },
{ "edv-lehrgang.de", true },
- { "edvgarbe.de", true },
{ "edvmesstec.de", true },
{ "edwar.do", true },
{ "edwards.me.uk", true },
@@ -10611,22 +11172,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "edxn.de", true },
{ "edyou.eu", true },
{ "edzilla.info", true },
+ { "eelcapone.nl", true },
{ "eellak.gr", true },
{ "eelsden.net", true },
{ "eelzak.nl", true },
{ "eemcevn.com", true },
{ "eengoedenotaris.nl", true },
- { "eeqj.com", true },
+ { "eentweevijf.be", true },
{ "eer.io", true },
{ "eerlijktransport.nl", true },
{ "eerstejaarsweekend.nl", true },
{ "eery.de", true },
+ { "eesti.xyz", true },
{ "eewna.org", true },
{ "ef-georgia.org", true },
{ "ef.gy", true },
{ "efa-football.com", true },
{ "efaas.nl", true },
{ "efag.com", true },
+ { "efcross.com", true },
{ "efeen.nl", true },
{ "eff-bee-eye.de", true },
{ "eff.org", true },
@@ -10639,20 +11203,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "effizienta.ch", true },
{ "efflam.net", true },
{ "efg-darmstadt.de", false },
- { "efinity.io", true },
{ "efmcredentialing.org", true },
{ "eft.boutique", true },
{ "egablo.black", true },
{ "egamespw.com", true },
{ "egami.ch", true },
{ "eganassociates.com.au", true },
- { "egarden.it", true },
{ "egb.at", false },
{ "egbert.net", true },
{ "egeozcan.com", true },
- { "egfl.org.uk", true },
{ "egg-ortho.ch", true },
{ "eggblast.com", true },
+ { "eggert.org", false },
{ "eggplant.today", true },
{ "egiftcards.be", true },
{ "eglek.com", true },
@@ -10662,6 +11224,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "egoroof.ru", true },
{ "egov4.ch", true },
{ "egovernment-podcast.com", true },
+ { "egres.xyz", true },
{ "egrojsoft.info", true },
{ "egrp365.ru", true },
{ "egumenita.ro", true },
@@ -10670,6 +11233,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ehaccp.it", true },
{ "ehandel.com", true },
{ "ehazi.hu", true },
+ { "ehbssl.com", true },
{ "eheliche-disziplin.schule", true },
{ "ehertz.uk", true },
{ "ehipaa.com", true },
@@ -10678,37 +11242,39 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ehmtheblueline.com", true },
{ "ehne.de", true },
{ "ehomusicgear.com", true },
+ { "ehub.cz", true },
+ { "ehub.hu", true },
+ { "ehub.pl", true },
+ { "ehub.sk", true },
{ "eichel.eu", true },
{ "eichornenterprises.com", true },
{ "eickemeyer.nl", true },
{ "eickhof.co", true },
{ "eickhof.us", true },
{ "eickhofcolumbaria.com", true },
+ { "eidolons.org", true },
{ "eifel.website", true },
{ "eigenpul.se", true },
{ "eigenpulse.com", true },
{ "eighty-aid.com", true },
- { "eightyfour.ca", true },
{ "eigpropertyauctions.co.uk", true },
{ "eihaikyo.com", true },
{ "eilhan.com", true },
{ "eimacs.com", true },
- { "einar.io", true },
{ "einaros.is", true },
{ "einfachbahn.de", true },
{ "einheft.info", true },
{ "einheizpreis.de", true },
- { "einmonolog.de", true },
{ "einrichtwerk.de", true },
{ "einrichtwerk.shop", true },
{ "einsatzstellenverwaltung.de", true },
{ "einser.com", true },
- { "einsit.com", true },
{ "einsteinathome.org", true },
{ "eintageinzug.de", true },
{ "eintragsservice24.de", true },
{ "eipione.com", true },
{ "eirastudios.co.uk", false },
+ { "eirb.fr", true },
{ "eisaev.ru", true },
{ "eiskratzer-bedrucken.de", true },
{ "eit-web.de", false },
@@ -10716,9 +11282,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "eiyoushi-shigoto.com", true },
{ "ejdv-anmeldung.de", true },
{ "ejeff.org", true },
+ { "ejkmedia.nl", true },
+ { "ejkmuseum.nl", true },
+ { "ejknet.nl", true },
+ { "ejkwebdesign.nl", true },
{ "ejuicelab.co.uk", true },
{ "ek-networks.de", true },
- { "ek.network", true },
{ "ekaigotenshoku.com", true },
{ "ekati.ru", true },
{ "ekb-avia.ru", true },
@@ -10731,6 +11300,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ekokontakt.cz", true },
{ "ekonbenefits.com", true },
{ "ekostecki.de", true },
+ { "ekpyroticfrood.net", true },
{ "ekrana.info", true },
{ "eksisozluk.com", true },
{ "ekuatorial.com", true },
@@ -10745,22 +11315,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "elaon.de", true },
{ "elars.de", true },
{ "elarvee.xyz", true },
- { "elastic7.uk", true },
{ "elb500ttl.nl", true },
{ "elbetech.net", true },
{ "elbohlyart.com", true },
{ "elcambiador.es", true },
+ { "elcontadorsac.com", true },
{ "eldapoint.co.uk", true },
- { "elderoost.com", true },
{ "eldertons.co.uk", true },
+ { "eldevo.com", true },
{ "eldietista.es", true },
{ "eldinhadzic.com", true },
{ "eldisagjapi.com", true },
{ "eldisagjapi.de", true },
{ "eldrid.ge", true },
{ "eldritchfiction.net", true },
+ { "eleaut.com.br", true },
{ "electionsbycounty.com", true },
{ "electionsdatabase.com", true },
+ { "electmikewaters.com", true },
{ "electr0sheep.com", true },
{ "electragirl.com", true },
{ "electric-vault.co.uk", true },
@@ -10779,6 +11351,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "electricalmoorpark.com", true },
{ "electricalnewburypark.com", true },
{ "electricaloakpark.com", true },
+ { "electricalpacificpalisades.com", true },
{ "electricalsimivalley.com", true },
{ "electricalthousandoaks.com", true },
{ "electricalwestlakevillage.com", true },
@@ -10788,6 +11361,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "electricdosvientos.com", true },
{ "electricfencealberton.co.za", true },
{ "electricfencebenoni.co.za", true },
+ { "electricfencingballito.co.za", true },
{ "electricgatemotorgermiston.co.za", true },
{ "electricgatemotorrandburg.co.za", true },
{ "electricgatemotorskemptonpark.co.za", true },
@@ -10811,6 +11385,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "electriciansimivalley.com", true },
{ "electricianthousandoaks.com", true },
{ "electricianwestlakevillage.com", true },
+ { "electricienasnieres.fr", true },
{ "electricimagination.co.uk", true },
{ "electriclakesherwood.com", true },
{ "electricmalibu.com", true },
@@ -10830,9 +11405,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "eleicoes2014.com.br", true },
{ "eleicoes2016.com.br", true },
{ "eleicoes2018.com", true },
+ { "elekharris.com", true },
{ "elektro-adam.de", true },
{ "elektro-collee.de", true },
{ "elektro-diehm.de", true },
+ { "elektro-doerr.com", true },
{ "elektro-hammes.net", true },
{ "elektro-hofmann-gmbh.de", true },
{ "elektro-hornetz.de", true },
@@ -10874,6 +11451,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "elexprimidor.com", true },
{ "elfe.de", true },
{ "elfnon.com", true },
+ { "elfring.eu", true },
{ "elgalponazo.com.ar", true },
{ "elglobo.com.mx", false },
{ "elgosblanc.com", false },
@@ -10901,8 +11479,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "elisabethkostecki.de", true },
{ "elisabethrene.com", true },
{ "elisechristie.com", true },
- { "elistor6100.xyz", true },
- { "elite-porno.ru", true },
{ "elite12.de", true },
{ "elitebouncingfun.com", true },
{ "elitegameservers.net", true },
@@ -10912,19 +11488,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "eliyah.co.il", true },
{ "elizabethbuitrago.com", true },
{ "elizabethgreenfield.com", true },
- { "elizeugomes.com.br", true },
+ { "elizabethrominski.com", true },
{ "eljef.me", true },
{ "elkoy.org", true },
{ "ell-net.tokyo", true },
{ "ella-kwikmed.com", false },
{ "ellak.gr", true },
+ { "ellegaard.dk", true },
{ "ellemental.me", true },
{ "ellencorddry.com", true },
{ "ellevit.ch", true },
{ "elliesbouncers.co.uk", true },
- { "elliff.net", true },
{ "elliot.cat", true },
- { "elliquiy.com", true },
{ "elliriehl.at", true },
{ "ellisamusements.co.uk", true },
{ "ellisleisure.co.uk", true },
@@ -10932,15 +11507,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "elmermx.ch", true },
{ "elnan.do", true },
{ "elnoorandelmohanad.com", true },
- { "elo.fyi", true },
{ "elodieclerc.ch", true },
{ "elohellp.com", false },
{ "elonaspitze.de", true },
+ { "elonm.ru", true },
{ "elosrah.com", true },
{ "elosuite.com", true },
{ "eloxt.com", true },
- { "elpado.de", true },
- { "elpo.net", true },
{ "elpoderdelespiritu.org", true },
{ "elrinconderovica.com", true },
{ "elsagradocoran.org", true },
@@ -10954,13 +11527,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "elternbeiratswahl.online", true },
{ "elternforum-birmensdorf.ch", true },
{ "elternverein-utzenstorf.ch", true },
- { "eltrox.me", true },
{ "elucron.com", true },
+ { "eluft.de", true },
{ "eluhome.de", true },
+ { "eluvio.com", true },
{ "elvidence.com.au", true },
{ "elviraszabo.com", true },
{ "elvispresley.net", true },
{ "elvisripley.com", true },
+ { "elvn.tokyo", true },
{ "elwave.org", true },
{ "elwix.com", true },
{ "elxsi.de", true },
@@ -10971,7 +11546,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "emaging-productions.fr", true },
{ "emailalaperformance.fr", true },
{ "emailconfiguration.com", true },
- { "emailcontrol.nl", true },
{ "emailfuermich.de", true },
{ "emailhunter.co", true },
{ "emailing.alsace", true },
@@ -10989,12 +11563,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "embroideryexpress.co.uk", true },
{ "emby.cloud", true },
{ "emcspotlight.com", true },
- { "emedworld.com", true },
+ { "emecew.com", true },
{ "emeliefalk.se", true },
+ { "ememsei.com", true },
+ { "emeraldcbdshop.com", true },
{ "emeraldcityswagger.com", true },
{ "emeraldcoastrideshare.com", true },
{ "emeraldonion.org", true },
- { "emergencyessay.com", true },
{ "emergenzalavoro.com", true },
{ "emero.de", true },
{ "emex.ro", true },
@@ -11007,7 +11582,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "emilong.com", true },
{ "emilstahl.dk", true },
{ "emilvarga.com", true },
- { "emilyjohnson.ga", true },
+ { "emily.moe", true },
{ "emirabiz.com", false },
{ "emirichardson.com", true },
{ "emivauthey.com", true },
@@ -11018,7 +11593,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "emma.ca", true },
{ "emmababy420.com", true },
{ "emmagraystore.com", true },
- { "emmaliddell.com", true },
{ "emobilityforum.org", true },
{ "emoji.bzh", false },
{ "emolafarm.com", true },
@@ -11031,6 +11605,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "emperor-penguins.com", true },
{ "empese.com", true },
{ "empherino.net", true },
+ { "emploi-collectivites.fr", true },
{ "employeeexpress.gov", true },
{ "employer.gov", true },
{ "employer.guru", true },
@@ -11048,6 +11623,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "emtradingacademy.com", true },
{ "emultiagent.pl", true },
{ "emupedia.net", true },
+ { "emvoice.net", true },
{ "emvoiceapp.com", true },
{ "emw3.com", true },
{ "emyr.net", true },
@@ -11057,13 +11633,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "en4rab.co.uk", true },
{ "enaah.de", true },
{ "enaim.de", true },
+ { "enalean.com", true },
{ "enamae.net", true },
{ "enbecom.net", true },
{ "encfs.win", true },
{ "encircleapp.com", true },
{ "encnet.de", true },
{ "encode.host", true },
- { "encoderx.uk", true },
+ { "encore.io", true },
{ "encouragemarketing.com", true },
{ "encredible.de", false },
{ "encredible.org", false },
@@ -11072,6 +11649,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "encryptallthethings.net", true },
{ "encrypted.google.com", true },
{ "encuentraprecios.es", true },
+ { "encycarpedia.com", true },
{ "ende-x.com", true },
{ "endeal.nl", true },
{ "ender.co.at", true },
@@ -11082,10 +11660,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "endlessvideo.com", true },
{ "endoftenancycleaninglondon.co.uk", true },
{ "endoftennancycleaning.co.uk", true },
+ { "endpointsystems.com", true },
{ "enduranceday.be", true },
{ "endzeit-architekten.com", false },
{ "enemiesoflight.de", true },
- { "energethik-tulln.at", true },
{ "energie-sante.ch", true },
{ "energiekeurplus.nl", true },
{ "energisammenslutningen.dk", true },
@@ -11100,13 +11678,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "energyelephant.com", true },
{ "energyled.com.br", true },
{ "energystar.gov", true },
- { "enersaveapp.org", true },
- { "enersec.co.uk", true },
{ "enet-navigator.de", true },
{ "enfantsdelarue.ch", true },
{ "enfield-kitchens.co.uk", true },
{ "enflow.nl", true },
- { "enfoqueseguro.com", true },
{ "enfu.se", true },
{ "engarde.net", true },
{ "engaugetools.com", true },
@@ -11117,11 +11692,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "engiedev.net", true },
{ "engineowning.com", true },
{ "enginepit.com", true },
- { "enginx.cn", true },
+ { "enginsight.com", true },
{ "enginx.net", true },
{ "englishbulgaria.net", true },
{ "englishcast.com.br", true },
- { "englishclub.com", true },
{ "englishforums.com", true },
{ "englishlol.com", true },
{ "englishphonopass.com", true },
@@ -11130,13 +11704,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "enigma.swiss", true },
{ "enijew.com", true },
{ "enitso.de", true },
+ { "enixgaming.com", true },
{ "enjincoin.io", true },
{ "enjinwallet.io", true },
{ "enjinx.io", true },
+ { "enjoy-drive.com", true },
{ "enjoyphoneblog.it", true },
- { "enlatte.com", true },
{ "enlazaresbueno.cl", true },
- { "enlightened.si", true },
+ { "enlighten10x.ga", true },
{ "enlightenedhr.com", true },
{ "enlightenment.org", true },
{ "enlnf.link", true },
@@ -11145,17 +11720,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "enness.co.uk", true },
{ "ennori.jp", true },
{ "enomada.net", true },
+ { "enord.fr", true },
{ "enorekcah.com", true },
{ "enot32.ru", true },
{ "enotecastore.it", true },
+ { "enpasenerji.com.tr", true },
{ "enquos.com", true },
{ "enriquepiraces.com", true },
{ "enrollapp.com", true },
{ "ensage.io", true },
{ "enscosupply.com", true },
{ "ensemble-rubato.de", true },
- { "enskat.de", true },
- { "enskatson-sippe.de", true },
+ { "ensembling.com", true },
{ "ensley.tech", true },
{ "ensons.de", true },
{ "ensured.com", true },
@@ -11165,10 +11741,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "entabe.jp", true },
{ "entactogen.com", true },
{ "entactogens.com", true },
- { "enterprisechannel.asia", true },
+ { "entercenter.ru", true },
{ "enterprisey.enterprises", true },
+ { "entersoftsecurity.com", true },
{ "entheogens.com", true },
- { "entheorie.net", true },
{ "enthusiaformazione.com", true },
{ "entradaweb.cl", true },
{ "entrainr.com", true },
@@ -11187,9 +11763,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "enviroprobasements.com", true },
{ "envirotech.com.au", true },
{ "envoie.moi", true },
+ { "envoutement-desenvoutement.com", true },
{ "envoyez.moi", true },
- { "envoyglobal.com", true },
- { "envoyworld.com", true },
{ "envygeeks.io", true },
{ "eocservices.co.uk", true },
{ "eoitek.com", true },
@@ -11220,7 +11795,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "epicvistas.com", true },
{ "epicvistas.de", true },
{ "epicwalnutcreek.com", true },
+ { "epidauros.be", true },
+ { "epigrafes-led-farmakeia.gr", true },
{ "epilis.gr", true },
+ { "epiphanyofourlordchurch.com", true },
{ "epiphyte.network", true },
{ "episkevh-plaketas.gr", true },
{ "epistas.com", true },
@@ -11238,28 +11816,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "eposbrighton.co.uk", true },
{ "eposbristol.co.uk", true },
{ "eposcardiff.co.uk", true },
+ { "eposig.net", true },
{ "eposkent.co.uk", true },
{ "eposleeds.co.uk", true },
{ "eposleicester.co.uk", true },
{ "eposliverpool.co.uk", true },
{ "eposlondon.co.uk", true },
- { "eposmidlands.co.uk", true },
- { "eposnewport.co.uk", true },
- { "eposnottingham.co.uk", true },
- { "eposreading.co.uk", true },
- { "eposreview.co.uk", true },
{ "epossheffield.co.uk", true },
- { "epossurrey.co.uk", true },
- { "epossussex.co.uk", true },
{ "eposswansea.co.uk", true },
{ "epossystems.co.uk", true },
{ "epostplus.li", true },
- { "eposwales.co.uk", true },
{ "eposyork.co.uk", true },
{ "eppelblei.lu", true },
{ "eppelduerferjugend.lu", true },
{ "eppelpress.lu", true },
{ "epreskripce.cz", true },
+ { "epsilon.dk", true },
{ "epsorting.cz", true },
{ "epublibre.org", true },
{ "epulsar.ru", true },
@@ -11267,6 +11839,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "epyonsuniverse.net", true },
{ "eq-serve.com", true },
{ "equalcloud.com", true },
+ { "equallyy.com", true },
+ { "equeim.ru", true },
{ "equidam.com", true },
{ "equinecoaching.ca", true },
{ "equinetherapy.ca", true },
@@ -11282,6 +11856,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "erasmusplusrooms.com", true },
{ "erate.fi", true },
{ "erath.fr", true },
+ { "erawanarifnugroho.com", false },
{ "erdethamburgeronsdag.no", true },
{ "ereader.uno", true },
{ "erecciontotalal100.com", true },
@@ -11298,6 +11873,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ericabrahamsen.net", true },
{ "ericairwin.com", true },
{ "ericdiao.com", true },
+ { "erichogue.ca", true },
{ "erichorstmanshof.nl", true },
{ "ericisaweso.me", true },
{ "ericjohnltd.com", true },
@@ -11305,15 +11881,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ericleuthardt.com", true },
{ "erico.jp", true },
{ "ericoc.com", true },
+ { "erics.site", true },
+ { "ericvaughn-flam.com", true },
{ "ericwie.se", true },
{ "eridanus.uk", true },
{ "erigrid.eu", true },
{ "eriix.org", true },
{ "erikheemskerk.nl", true },
{ "erikhubers.nl", true },
+ { "erikkruithof.nl", true },
{ "erikserver2.tk", true },
{ "erikseth.de", true },
- { "erikwagner.de", true },
{ "erikwalther.eu", true },
{ "erinaceinae.com", true },
{ "eriner.me", true },
@@ -11321,10 +11899,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "erisrenee.com", true },
{ "erixschueler.de", true },
{ "erkaelderbarenaaben.dk", true },
+ { "ernaehrungsberatung-rapperswil.ch", true },
{ "ernest.ly", true },
{ "eroma.com.au", true },
{ "eron.info", true },
- { "erotpo.cz", false },
+ { "eroskines.com", true },
+ { "eroticforce.com", true },
{ "erp-band.ru", true },
{ "erp.band", true },
{ "erpax.com", true },
@@ -11353,7 +11933,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "erudicia.uk", true },
{ "erudikum.cz", true },
{ "ervaarjapan.nl", true },
- { "erverydown.ml", true },
{ "erwanlepape.com", true },
{ "erwin.saarland", true },
{ "erwinpaal.nl", true },
@@ -11365,6 +11944,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "es888.net", true },
{ "es999.net", true },
{ "es9999.net", true },
+ { "esaborit.ddns.net", true },
{ "esagente.com", true },
{ "esailinggear.com", true },
{ "esalesdata.com", true },
@@ -11374,8 +11954,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "esb-top.com", true },
{ "esb-top.net", true },
{ "esb116.com", true },
- { "esb1314.net", true },
- { "esb1668.com", true },
{ "esb168168.com", true },
{ "esb168168.info", true },
{ "esb168168.net", true },
@@ -11406,7 +11984,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "esb553.com", true },
{ "esb555.biz", true },
{ "esb555.cc", true },
- { "esb556.com", true },
{ "esb5889.com", true },
{ "esb5889.net", true },
{ "esb6.net", true },
@@ -11471,14 +12048,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "eservices-greece.com", true },
{ "esg-abi2001.de", true },
{ "esgr.in", true },
- { "eshepperd.com", true },
{ "eshobe.com", true },
{ "eshop-prices.com", true },
- { "eshtapay.com", true },
+ { "esibun.net", true },
{ "esigmbh.de", true },
{ "esipublications.com", true },
{ "esite.ch", true },
{ "eskdale.net", true },
+ { "eskriett.com", true },
{ "esmoney.cc", true },
{ "esmoney.me", true },
{ "esoa.net", true },
@@ -11506,13 +12083,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "espritrait.com", true },
{ "esquirou-trieves.fr", true },
{ "esquisse.fr", true },
+ { "esrhd.com", true },
+ { "esrinfo.com", true },
{ "ess-cert.ru", true },
{ "essayads.com", true },
{ "essaybrand.com", true },
{ "essaychecker.com", true },
{ "essaydirectory.com", true },
{ "essayforsale.net", true },
- { "essayhave.com", true },
{ "essaynews.com", true },
{ "essaypro.net", true },
{ "essaytalk.com", true },
@@ -11520,13 +12098,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "essaywriting.biz", true },
{ "essenalablog.de", true },
{ "essencesdeprana.org", true },
+ { "essex.cc", true },
{ "essite.net", true },
{ "esslm.sk", true },
{ "essoduke.org", true },
+ { "essteebee.ch", true },
+ { "establo.pro", true },
{ "estafallando.es", true },
{ "estafallando.mx", true },
- { "estaleiro.org", true },
- { "estan.cn", true },
{ "estate360.co.tz", true },
{ "estateczech-eu.ru", true },
{ "estcequejailaflemme.fr", true },
@@ -11541,8 +12120,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "estoic.net", true },
{ "estoniantrade.ee", true },
{ "estonoentraenelexamen.com", true },
- { "estudioamazonico.com", true },
+ { "estudiarparaser.com", true },
{ "estudiserradal.com", true },
+ { "esurety.net", true },
{ "esw00.com", true },
{ "esw06.com", true },
{ "esw07.com", true },
@@ -11556,6 +12136,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "etaoinwu.win", true },
{ "etasigmaphi.org", true },
{ "etath.com", true },
+ { "etax.com.au", true },
{ "etaxi.tn", true },
{ "etccooperative.org", true },
{ "etch.co", true },
@@ -11572,19 +12153,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "etfacta.com", true },
{ "eth-faucet.net", true },
{ "eth0.nl", true },
- { "etha.nz", true },
{ "ethack.org", true },
{ "ethaligan.fr", true },
{ "ethan.pm", true },
{ "ethandelany.me", true },
{ "ethercalc.com", true },
{ "ethercalc.org", true },
+ { "etherderbies.com", true },
{ "ethergeist.de", true },
{ "etherpad.fr", true },
{ "etherpad.nl", true },
{ "ethicaldata.co.uk", true },
{ "ethicalpolitics.org", true },
- { "ethicaltek.com", true },
{ "ethicsburg.gov", true },
{ "ethika.com", true },
{ "ethiopian.dating", true },
@@ -11613,8 +12193,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "eu-gamers.com", true },
{ "eu-stellenangebot.de", true },
{ "euaggelion.blog.br", true },
- { "euanbarrett.com", true },
{ "euchre.us", true },
+ { "eucl3d.com", true },
+ { "eugenechae.com", true },
{ "eugenekay.com", true },
{ "eugenetech.org", true },
{ "eujuicers.bg", true },
@@ -11657,6 +12238,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "europapier.si", true },
{ "europapier.sk", true },
{ "europapier.ua", true },
+ { "europarts-sd.com", true },
{ "europastudien.de", true },
{ "european-agency.org", true },
{ "europeancupinline.eu", true },
@@ -11671,13 +12253,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "euroscot.de", true },
{ "euroservice.com.gr", true },
{ "euroshop.or.at", true },
- { "euroskano.nl", true },
{ "eurotime.ua", true },
{ "eurotramp.com", true },
{ "eurotravelstar.eu", true },
{ "eurousa.us", true },
{ "eurovision.ie", true },
- { "euteamo.cn", true },
{ "eutotal.com", true },
{ "eutram.com", true },
{ "euvo.tk", false },
@@ -11698,10 +12278,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "evanfiddes.com", true },
{ "evangelicalmagazine.com", true },
{ "evangelosm.com", true },
+ { "evanreev.es", true },
{ "evantage.org", true },
{ "evantageglobal.com", true },
+ { "evanwang0.com", true },
{ "evapp.org", true },
{ "evasovova.cz", true },
+ { "evavolfova.cz", true },
{ "eve.ac", true },
{ "eve0s.com", true },
{ "evelienzorgt.nl", true },
@@ -11709,10 +12292,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "evemarketer.com", true },
{ "evemodx.com", true },
{ "evenementenhoekvanholland.nl", true },
- { "evenstar-gaming.com", true },
+ { "evenstargames.com", true },
{ "event4fun.no", true },
{ "eventaro.com", true },
{ "eventive.org", true },
+ { "eventnexus.co.uk", true },
{ "eventosenmendoza.com.ar", true },
{ "events-hire.co.uk", true },
{ "eventtech.com", false },
@@ -11721,19 +12305,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "everfine.com.tw", true },
{ "evergladesrestoration.gov", true },
{ "everhome.de", true },
+ { "everitoken.io", true },
{ "everling.lu", true },
{ "everlong.org", true },
+ { "evermarkstudios.com", true },
{ "everpcpc.com", true },
{ "evertonarentwe.com", true },
{ "everwaking.com", false },
{ "everybodyhertz.co.uk", true },
{ "everyday.eu.org", true },
{ "everydaygary.com", true },
- { "everydaywot.com", true },
{ "everydaywp.com", true },
{ "everyex.com", true },
{ "everyfad.com", true },
+ { "everygayporn.com", false },
+ { "everything-everywhere.com", true },
{ "everythingaccess.com", true },
+ { "everythingstech.com", true },
{ "everytrycounts.gov", false },
{ "everywhere.cloud", true },
{ "eveshamglass.co.uk", true },
@@ -11742,12 +12330,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "evidence-based.review", true },
{ "evidencebased.net", true },
{ "evidenceusa.com.br", true },
+ { "evidencija.ba", true },
{ "evidentiasoftware.com", true },
{ "evilarmy.com", true },
+ { "evilbeasts.ru", true },
+ { "evilbunnyfufu.com", true },
{ "evilcult.me", true },
- { "evileden.com", true },
{ "evilized.de", true },
{ "evilmartians.com", true },
+ { "evilness.nl", true },
{ "evilsite.cf", true },
{ "evilvolcanolairs.com", true },
{ "evion.nl", true },
@@ -11771,6 +12362,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "evoting.ch", true },
{ "evrial.com", true },
{ "evrica.me", true },
+ { "evromandie.ch", true },
{ "evstatus.com", true },
{ "evtripping.com", true },
{ "ewaipiotr.pl", true },
@@ -11795,6 +12387,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "example.wf", true },
{ "examsmate.in", true },
{ "exaplac.com", true },
+ { "exarpy.com", true },
{ "exatmiseis.net", false },
{ "exceed.global", true },
{ "exceedagency.com", true },
@@ -11802,15 +12395,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "exceltechoman.com", true },
{ "exceltobarcode.com", true },
{ "excentos.com", true },
- { "excessamerica.com", true },
+ { "exceptionalservers.com", true },
{ "excesssecurity.com", true },
- { "exchangeworks.co", true },
{ "exchaser.com", true },
{ "exclusivebouncycastles.co.uk", true },
{ "exclusivedesignz.com", true },
{ "exdamo.de", false },
{ "exe-boss.tech", true },
{ "exebouncycastles.co.uk", true },
+ { "execution.biz.tr", true },
{ "exehack.net", true },
{ "exeintel.com", true },
{ "exekutori.com", true },
@@ -11819,26 +12412,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "exerforge.net", true },
{ "exeria.de", true },
{ "exexcarriers.com", true },
- { "exgaywatch.com", true },
{ "exgen.io", true },
{ "exhaledayspa.com.au", true },
{ "exhalespa.com", true },
{ "exhibityour.com", true },
{ "exiahost.com", true },
{ "exit9wineandliquor.com", true },
+ { "exitooutdoor.com", true },
{ "exmoe.com", true },
{ "exocen.com", true },
{ "exon.io", true },
+ { "exoplatform.com", true },
{ "exoscale.ch", true },
{ "exoscale.com", true },
{ "exoten-spezialist.de", true },
- { "exoticads.com", true },
{ "exousiakaidunamis.pw", true },
{ "exp.de", true },
{ "expancio.com", true },
{ "expandeco.com", true },
{ "expatmortgage.uk", true },
- { "expecting.com.br", true },
{ "experienceoutdoors.org.uk", true },
{ "experienceoz.com.au", true },
{ "expert-korovin.ru", true },
@@ -11847,7 +12439,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "expertohomestaging.com", true },
{ "experts-en-gestion.fr", true },
{ "expertsverts.com", true },
+ { "expertviolinteacher.com", true },
{ "expiscor.solutions", true },
+ { "explodie.org", true },
{ "exploflex.com.br", true },
{ "exploit.party", true },
{ "exploit.ph", true },
@@ -11855,12 +12449,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "exploitit.com.au", true },
{ "exploodo.rocks", true },
{ "exploravacations.in", true },
+ { "exploremonero.com", true },
{ "exploringenderby.com", true },
{ "expo-america.ru", true },
{ "expo-asia.ru", true },
{ "expo-europe.ru", true },
{ "expo-larionov.org", true },
- { "expokohler.com", true },
{ "exponentialnews.net", true },
{ "expoort.co.uk", true },
{ "expoort.com", true },
@@ -11872,7 +12466,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "exporta.cz", true },
{ "express-shina.ru", true },
{ "express-vpn.com", true },
- { "expressemotion.net", true },
{ "expresshosting.org", true },
{ "expressmarket.ru", true },
{ "expresstinte.de", true },
@@ -11885,6 +12478,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "extasic.com", true },
{ "extendwings.com", true },
{ "extensia.it", true },
+ { "extensibility.biz.tr", true },
{ "extensiblewebmanifesto.org", true },
{ "extensiblewebreportcard.org", true },
{ "extensiblewebsummit.org", true },
@@ -11938,10 +12532,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ezakazivanje.rs", true },
{ "ezdog.press", true },
{ "ezequiel-garzon.net", true },
- { "ezgamble.com", true },
{ "ezgif.com", true },
{ "ezhik-din.ru", true },
- { "eznfe.com", true },
{ "eztvtorrent.com", true },
{ "ezwritingservice.com", true },
{ "ezzhole.net", true },
@@ -11957,11 +12549,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "f1fever.co.uk", true },
{ "f1fever.net", true },
{ "f1minute.com", true },
- { "f2e.io", true },
{ "f2h.io", true },
{ "f3nws.com", true },
{ "f43.me", true },
- { "f5movies.top", true },
{ "f5nu.com", true },
{ "f5w.de", true },
{ "fa-works.com", true },
@@ -11978,12 +12568,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fabiobier.com", true },
{ "fabjansisters.eu", true },
{ "fableforge.nl", true },
+ { "fabmart.com", true },
{ "fabrica360.com", true },
{ "fabriceleroux.com", true },
{ "fabriziocavaliere.it", true },
{ "fabriziorocca.com", true },
{ "fabriziorocca.it", true },
- { "fabrysociety.org", true },
{ "fabse.net", true },
{ "facanabota.com", true },
{ "facanabota.com.br", true },
@@ -11991,13 +12581,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "facciadastile.it", true },
{ "face-mania.com", true },
{ "facealacrise.fr", true },
- { "facebattle.com", true },
{ "facebook-atom.appspot.com", true },
- { "facebook.com", true },
+ { "facebook.com", false },
{ "facebydrh.com", true },
{ "facebylouise.co.uk", true },
{ "facekungfu.com", true },
- { "facepalmsecurity.com", true },
+ { "facepainting.gr", true },
{ "facepunch.org", true },
{ "facerepo.com", true },
{ "fach-journalist.de", true },
@@ -12017,7 +12606,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fackovec.sk", true },
{ "factbytefactbox.com", true },
{ "factcool.com", true },
- { "factor.cc", false },
+ { "factureenlinea.com", true },
{ "factuur.pro", true },
{ "factuursturen.be", true },
{ "factuursturen.nl", true },
@@ -12027,21 +12616,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "facucosta.com.ar", true },
{ "faderweb.de", true },
{ "faehler.de", true },
+ { "faelix.net", true },
{ "faerb.it", true },
{ "faerie-art.com", true },
- { "faeriecakes.be", true },
+ { "fahnen-fanwelt.de", true },
{ "fahrenwal.de", true },
{ "fahrenwalde.de", true },
{ "fahrschule-laux.de", true },
{ "fahrwerk.io", true },
{ "fai.gov", true },
{ "fail.coach", true },
+ { "fail4free.de", true },
{ "failover.de", true },
{ "failover.eu", true },
{ "failoverplan.it", true },
{ "fairbill.com", true },
{ "fairedeseconomies.info", true },
{ "fairgolfteams.com", true },
+ { "fairmarketing.com", true },
{ "fairplay.im", true },
{ "fairssl.dk", true },
{ "fairssl.se", true },
@@ -12054,7 +12646,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "faithwatch.org", true },
{ "faixaazul.com", true },
{ "fakeapple.nl", true },
- { "fakerli.com", true },
{ "fakti.bg", true },
{ "fakturi.com", true },
{ "fakturoid.cz", true },
@@ -12064,9 +12655,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "falconfrag.com", true },
{ "falconvintners.com", true },
{ "falcoz.co", true },
- { "faldoria.de", false },
+ { "faldoria.de", true },
{ "falegname-roma.it", true },
- { "falldennismarketing.com", true },
+ { "falkhusemann.de", true },
{ "fallenangeldrinks.co.uk", true },
{ "fallenangeldrinks.com", true },
{ "fallenangelspirits.co.uk", true },
@@ -12074,17 +12665,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fallenmystic.com", true },
{ "fallenspirits.co.uk", true },
{ "falling.se", true },
- { "fallofthecitadel.com", true },
- { "false.in.net", true },
{ "falsum.net", true },
{ "fam-kreibich.de", true },
{ "fam-stemmer.de", false },
- { "fam-weyer.de", false },
+ { "fam-weyer.de", true },
{ "famcloud.de", true },
{ "famdouma.nl", true },
{ "fameng.nl", true },
+ { "fameus.fr", true },
{ "famfi.co", true },
{ "familiaperez.net", true },
+ { "familie-kruithof.nl", true },
{ "familie-kupschke.de", true },
{ "familie-leu.ch", true },
{ "familie-monka.de", true },
@@ -12106,8 +12697,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "famvangelder.nl", true },
{ "famvsomeren.nl", true },
{ "fanactu.com", true },
+ { "fanatical.com", true },
{ "fanboi.ch", true },
- { "fancy-bridge.com", true },
{ "fancy.org.uk", true },
{ "fander.it", true },
{ "fandler.cz", true },
@@ -12121,18 +12712,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fantasticcleaners.com.au", true },
{ "fantastichandymanmelbourne.com.au", true },
{ "fantastici.de", true },
+ { "fantasticservices.com", true },
{ "fantasycastles.co.uk", true },
{ "fantasyescortsbirmingham.co.uk", true },
{ "fantasypartyhire.com.au", true },
+ { "fantasyprojections.com", true },
{ "fantasyspectrum.com", true },
{ "fantopia.club", true },
{ "fanvoice.com", true },
+ { "fanyina.cn", true },
+ { "fanyina.com", true },
{ "fanyue123.tk", true },
{ "fanz.pro", true },
{ "fanzlive.com", true },
{ "fap.no", true },
{ "faq.ie", true },
{ "fara.gov", true },
+ { "faradji.nu", true },
{ "faradome.ws", true },
{ "faraslot8.com", true },
{ "farcecrew.de", true },
@@ -12142,6 +12738,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "farhadexchange.com", true },
{ "farhood.org", true },
{ "farid.is", true },
+ { "farmacia-discreto.com", true },
{ "farmacialaboratorio.it", true },
{ "farmer.dating", true },
{ "farmers.gov", false },
@@ -12156,6 +12753,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "farsil.eu", true },
{ "fart.wtf", true },
{ "farwat.ru", true },
+ { "faschingmd.com", true },
{ "fashion-stoff.de", true },
{ "fashion24.de", true },
{ "fashion4ever.pl", true },
@@ -12176,6 +12774,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fashionunited.pl", true },
{ "fashionunited.se", true },
{ "fashionweekweb.com", true },
+ { "fashtic.nl", true },
{ "faspirits.co.uk", true },
{ "faspirits.com", true },
{ "fassaden-selleng.de", true },
@@ -12185,6 +12784,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fastcash.com.br", true },
{ "fastcommerce.org", true },
{ "fastconfirm.com", true },
+ { "fastcp.top", true },
+ { "fastest-hosting.co.uk", true },
{ "fastforwardsociety.nl", true },
{ "fastforwardthemes.com", true },
{ "fastlike.co", true },
@@ -12195,12 +12796,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fastvistorias.com.br", true },
{ "fastwebsites.com.br", true },
{ "faszienrollen-info.de", false },
+ { "fateandirony.com", true },
+ { "fatecdevday.com.br", true },
{ "fatedata.com", true },
{ "fathers4equalrights.org", true },
{ "fatidique.com", true },
{ "fatimamoldes.com.br", true },
- { "fator25.com.br", true },
+ { "fatmixx.com", true },
{ "fatowltees.com", true },
+ { "fattorino.it", true },
{ "faucetbox.com", false },
{ "faui2k17.de", true },
{ "faulty.equipment", true },
@@ -12213,7 +12817,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fb.me", true },
{ "fbcdn.net", true },
{ "fbcopy.com", true },
- { "fbi.pw", true },
{ "fbigame.com", true },
{ "fbiic.gov", true },
{ "fbijobs.gov", true },
@@ -12225,6 +12828,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fca-tools.com", true },
{ "fcburk.de", true },
{ "fcforum.net", true },
+ { "fcingolstadt.de", true },
{ "fcitasc.com", true },
{ "fckd.net", true },
{ "fcosinus.com", true },
@@ -12242,6 +12846,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fdsys.gov", false },
{ "feac.us", true },
{ "feaden.me", true },
+ { "fearby.com", true },
{ "fearghus.org", true },
{ "fearsomegaming.com", true },
{ "feastr-dev.de", true },
@@ -12275,10 +12880,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "feedkovacs.hu", true },
{ "feedough.com", true },
{ "feedthefuture.gov", true },
- { "feegg.com.br", true },
{ "feel-events.com", true },
{ "feel.aero", true },
- { "feelgood-workouts.de", true },
+ { "feelmom.com", true },
{ "feeltennis.net", true },
{ "feen.us", true },
{ "feepod.com", true },
@@ -12294,8 +12898,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fehngarten.de", true },
{ "fehnladen.de", true },
{ "feigling.net", false },
+ { "feildel.fr", true },
{ "feilen.de", true },
- { "feisbed.com", true },
{ "feisim.com", true },
{ "feisim.org", true },
{ "feistyduck.com", true },
@@ -12306,13 +12910,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "feldhousen.com", true },
{ "felett.es", true },
{ "felgitscher.xyz", true },
+ { "felicifia.org", true },
{ "felinepc.com", true },
{ "felisslovakia.sk", true },
{ "felistirnavia.sk", true },
{ "felixbarta.de", true },
{ "felixcrux.com", true },
{ "felixgenicio.com", true },
- { "felixhefner.de", true },
{ "felixkauer.de", true },
{ "felixqu.com", true },
{ "felixsanz.com", true },
@@ -12321,7 +12925,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "felsmalerei.net", true },
{ "femanca.com", true },
{ "femastudios.com", true },
- { "femdombbw.com", true },
+ { "femiluna.com", true },
{ "feminina.pt", true },
{ "femradio.es", true },
{ "femtomind.com", true },
@@ -12329,8 +12933,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "feng-in.com", true },
{ "feng-in.net", true },
{ "feng.si", true },
+ { "fengyi.tel", true },
{ "fenster-bank.at", true },
{ "fenster-bank.de", true },
+ { "feragon.net", true },
{ "ferdies.co.za", true },
{ "fergtm.com", true },
{ "fergusoncastle.com", true },
@@ -12347,6 +12953,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fernandobarata.pt", true },
{ "fernandobarillas.com", true },
{ "fernandomiguel.net", true },
+ { "feross.org", true },
{ "ferrariadvisor.it", true },
{ "ferret.zone", true },
{ "ferreteriaxerez.com", true },
@@ -12358,7 +12965,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "festaprylar.se", true },
{ "festival-tipps.com", true },
{ "festivaljapon.com", true },
- { "festivalxdentro.com", true },
{ "fettlaus.de", true },
{ "feudalisten.de", true },
{ "feuerhuhn.de", true },
@@ -12374,9 +12980,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "feuetgloire.com", true },
{ "fewo-thueringer-wald.de", true },
{ "fexco.com", true },
+ { "feybiblia.com", true },
{ "feyermedia.de", true },
{ "ff-bad-hoehenstadt.de", true },
- { "ff-bg.xyz", true },
{ "ff-getzersdorf.at", true },
{ "ff-obersunzing-niedersunzing.de", true },
{ "ff14-mstdn.xyz", true },
@@ -12427,6 +13033,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fiery.me", true },
{ "fifei.de", true },
{ "fifichachnil.paris", true },
+ { "fifieldtech.com", true },
{ "fifr.nl", true },
{ "fiftynorth.eu", true },
{ "fiftyonetielt.be", true },
@@ -12435,8 +13042,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fight215.org", true },
{ "figinstitute.org", true },
{ "figshare.com", true },
- { "figura.cz", true },
{ "figurasdelinguagem.com.br", true },
+ { "figure.nz", true },
{ "fiilr.com", true },
{ "fiissh.tech", true },
{ "fiix.io", true },
@@ -12444,13 +13051,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fijnewoensdag.nl", true },
{ "fiken.no", true },
{ "fil.fi", true },
+ { "filamentia.nl", true },
{ "filanthropystar.org", true },
{ "file-cloud.eu", true },
{ "file-pdf.it", true },
- { "filebox.moe", false },
{ "filecopa.com", true },
{ "files.from-me.org", true },
{ "filestar.io", true },
+ { "filestartest.io", true },
{ "filetransfer.one", true },
{ "filezilla-project.org", true },
{ "filezilla.cn", true },
@@ -12460,21 +13068,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "filidorwiese.nl", true },
{ "filiio.com", true },
{ "filingsmadeeasy.com", true },
+ { "filiosoft.cloud", true },
{ "filip-prochazka.com", true },
{ "filippo.io", true },
{ "filipsebesta.com", true },
{ "filleritemsindia.com", true },
{ "fillo.sk", true },
+ { "film-storyboards.com", true },
+ { "film-storyboards.fr", true },
{ "film-tutorial.com", true },
- { "film.photography", true },
- { "film.photos", true },
- { "filmatiporno.xxx", true },
{ "filme-onlines.com", true },
+ { "filmers.net", true },
{ "filmesonline.online", true },
{ "filmitis.com", true },
{ "filmreviewonline.com", true },
{ "filmserver.de", true },
{ "filmsite-studio.com", true },
+ { "filmsphoto.com", true },
{ "filoo.de", true },
{ "filstop.com", true },
{ "filterflasche-kaufen.de", true },
@@ -12483,11 +13093,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fimsquad.com", true },
{ "final-expense-quotes.com", true },
{ "finalrewind.org", true },
- { "finalx.nl", false },
+ { "finalx.nl", true },
{ "financejobs.ch", true },
{ "financepark.ch", true },
{ "financniexperti.sk", true },
{ "finansa.no", true },
+ { "finanstilsynet.dk", true },
{ "finch.am", true },
{ "finchi.de", true },
{ "finchnest.co.uk", true },
@@ -12495,6 +13106,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "find-mba.com", true },
{ "find-your-happy-place.de", true },
{ "findapinball.com", true },
+ { "findcarspecs.com", true },
{ "findhoustonseniorcare.com", true },
{ "findingkorea.com", true },
{ "finditez.com", true },
@@ -12522,7 +13134,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "finnwea.com", true },
{ "finpt.com", false },
{ "finsprings.org", true },
- { "fintandunleavy.com", true },
{ "fintechnics.com", false },
{ "fintry.ca", true },
{ "finvantage.com", true },
@@ -12541,12 +13152,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "firefighters.dating", true },
{ "firefly-iii.org", true },
{ "firegoby.jp", true },
+ { "firegore.com", true },
{ "fireleadership.gov", true },
{ "firemudfm.com", true },
+ { "fireplex.co.uk", true },
{ "fireportal.cz", true },
{ "fireportal.sk", true },
{ "fireshellsecurity.team", true },
{ "firesofheaven.org", true },
+ { "firesuite.net", true },
{ "firetotheprisons.org", true },
{ "firevap.org", true },
{ "firewallconsultants.com", true },
@@ -12554,7 +13168,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "firma-cerny.cz", true },
{ "firma-offshore.com", true },
{ "firmale.com", true },
- { "firmament.space", true },
{ "firmapi.com", true },
{ "firmen-assekuranz.de", true },
{ "firmenwerbung-vermarktung.de", true },
@@ -12567,6 +13180,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "firstclasscastles.com", true },
{ "firstclassleisure.co.uk", true },
{ "firstderm.com", true },
+ { "firstdry.com.br", true },
{ "firstfinca.de", true },
{ "firstinnovation.co.jp", true },
{ "firstinnovationltd.com", true },
@@ -12574,7 +13188,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "firstq.xyz", true },
{ "fischer-its.com", false },
{ "fischer-kundendienst.de", true },
- { "fischers.cc", true },
+ { "fischers.it", true },
+ { "fischers.srv.br", true },
{ "fise.cz", true },
{ "fish-hook.ru", true },
{ "fishbattle.io", true },
@@ -12594,7 +13209,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fit365.jp", true },
{ "fitchannel.com", true },
{ "fitfitup.com", true },
+ { "fitinclass.com", true },
{ "fitkram.cz", true },
+ { "fitmeat.at", true },
{ "fitness-challenge.co.uk", true },
{ "fitness.gov", true },
{ "fitseven.ru", true },
@@ -12603,7 +13220,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fiuxy.bz", true },
{ "fiuxy.co", true },
{ "fiuxy.me", true },
- { "fiuxy.org", true },
{ "fiveboosts.xyz", true },
{ "fivethirtyeight.com", true },
{ "fixatom.com", true },
@@ -12623,6 +13239,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fkcdn.de", true },
{ "fkfev.de", true },
{ "fktpm.ru", true },
+ { "flacandmp3.ml", true },
{ "flaemig42.de", false },
{ "flagburningworld.com", true },
{ "flagfox.net", true },
@@ -12635,6 +13252,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "flamme-von-anor.de", true },
{ "flana.com", true },
{ "flanga.io", true },
+ { "flanga.org", true },
{ "flangaapis.com", true },
{ "flapoverspeed.com", true },
{ "flashback.org", true },
@@ -12648,19 +13266,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "flatpackmates.co.uk", true },
{ "flauschig.net", true },
{ "flaviu.co.uk", true },
+ { "flavo.io", true },
{ "flavr.be", true },
{ "flawlesscowboy.xyz", true },
{ "fleamarketgoods.com", true },
{ "fleep.io", true },
- { "fleetcor.at", true },
{ "fleetcor.ch", true },
{ "fleetcor.cz", true },
- { "fleetcor.de", true },
- { "fleetcor.fr", true },
- { "fleetcor.hu", true },
{ "fleetcor.lu", true },
- { "fleetcor.nl", true },
- { "fleetcor.pl", true },
{ "fleetcor.sk", true },
{ "fleetcorcards.be", true },
{ "fleetsmith.com", true },
@@ -12670,11 +13283,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "flers-agglo.fr", true },
{ "flerstourisme.fr", true },
{ "fletchto99.com", true },
+ { "fletemaritimo.online", true },
{ "flets-ms.com", true },
{ "fleurenplume.fr", true },
- { "fleurette.me", true },
{ "fleuryfleury.com", true },
{ "flexapplications.se", true },
+ { "flexfunding.com", true },
{ "fleximaal.com", true },
{ "fleximal.com", true },
{ "fleximus.org", false },
@@ -12683,6 +13297,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "flextrack.dk", true },
{ "flextribly.xyz", true },
{ "fliacuello.com.ar", true },
+ { "flickcritter.com", true },
{ "flight.school", true },
{ "flightdeckfriend.com", true },
{ "flightmedx.com", true },
@@ -12697,7 +13312,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fliio.com", true },
{ "flikmsg.co", true },
{ "flinch.io", true },
- { "fling.dating", true },
+ { "flip.kim", true },
{ "flipneus.net", true },
{ "fliptable.org", true },
{ "flirt-norden.de", true },
@@ -12715,10 +13330,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "floffi.media", true },
{ "floj.tech", true },
{ "flokinet.is", true },
+ { "flomeyer.de", true },
{ "floobits.com", true },
{ "flood.io", true },
+ { "floorballpoint.cz", true },
{ "flooringnightmares.com", true },
{ "flooringsourcetx.com", true },
+ { "floors4lessbay.com", true },
{ "floort.net", false },
{ "florence.uk.net", true },
{ "florenceapp.co.uk", true },
@@ -12726,6 +13344,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "florentynadawn.co.uk", true },
{ "florian-bachelet.fr", true },
{ "florian-thie.de", true },
+ { "florian2833z.de", true },
{ "floriankarmen.com", true },
{ "floriankeller.de", true },
{ "florianmitrea.uk", true },
@@ -12742,7 +13361,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "flosch.at", false },
{ "floseed.fr", true },
{ "floskelwolke.de", true },
- { "flosserver.de", true },
{ "flow.su", true },
{ "flowair24.ru", true },
{ "flowcom.de", true },
@@ -12750,15 +13368,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "flowersbylegacy.com", true },
{ "flowinvoice.com", true },
{ "flowreader.com", true },
- { "flox.io", true },
{ "flra.gov", true },
- { "flucky.xyz", false },
+ { "flucky.xyz", true },
{ "flucto.com", true },
{ "flue-ducting.co.uk", true },
{ "fluffycloud.de", true },
- { "flugsportvereinigungcelle.de", true },
{ "fluhrers.de", true },
{ "fluidmeterusa.com", true },
+ { "fluids.ac.uk", true },
{ "flumble.nl", true },
{ "flunschi.goip.de", true },
{ "fluoxetine.net", true },
@@ -12779,10 +13396,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "flydrivesicilie.nl", true },
{ "flyer.tools", true },
{ "flygon.pink", true },
- { "flyinglocksmiths.com", false },
+ { "flyinglocksmiths.com", true },
{ "flyingpackets.net", true },
{ "flyingrub.me", true },
- { "flyingspaghettimonsterdonationsfund.nl", true },
{ "flymns.fr", true },
{ "flynn.io", true },
{ "flyserver.co.il", true },
@@ -12803,6 +13419,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fmodoux.biz", true },
{ "fmovies.fyi", true },
{ "fmussatmd.com", true },
+ { "fnanen.net", true },
{ "fnb-griffinonline.com", true },
{ "fnbnokomis.com", true },
{ "fnkr.net", true },
@@ -12818,6 +13435,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "foej-aktiv.de", true },
{ "foej.net", true },
{ "fogpublishingph.com", true },
+ { "fogway.net", true },
{ "foia.gov", true },
{ "foiaonline.gov", true },
{ "fojing.com", true },
@@ -12834,6 +13452,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "folkfests.org", true },
{ "follandviolins.com", true },
{ "followback.net", true },
+ { "follower98.ir", true },
{ "followerrocket.com", true },
{ "followersya.com", true },
{ "followings-live.com", true },
@@ -12847,10 +13466,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fondationwiggli.ch", true },
{ "fondsdiscountbroker.de", true },
{ "fondy.eu", true },
- { "fondy.ru", true },
{ "fondy.ua", true },
{ "fonga.ch", true },
{ "fonolo.com", true },
+ { "fonseguin.ca", true },
{ "font-converter.net", true },
{ "fonte-trading.com", true },
{ "fontein.de", true },
@@ -12858,10 +13477,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fonts4free.net", true },
{ "foo.fo", true },
{ "foo.hamburg", true },
- { "foodacademy.capetown", true },
{ "foodattitude.ch", true },
{ "foodblogger.club", true },
{ "foodcowgirls.com", true },
+ { "foodev.de", true },
{ "foodsafety.gov", true },
{ "foodsafetyjobs.gov", true },
{ "foodsouvenirs.it", true },
@@ -12901,6 +13520,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "forexchef.de", true },
{ "forexee.com", true },
{ "forexsignals7.com", true },
+ { "forextickler.com", true },
{ "forextimes.ru", false },
{ "forfunssake.co.uk", true },
{ "forge-goerger.eu", true },
@@ -12919,16 +13539,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "formula-ot.ru", true },
{ "formulacionquimica.com", true },
{ "fornoreason.net.au", true },
+ { "fornwall.net", true },
{ "foro.io", false },
{ "forodeespanol.com", true },
{ "forodieta.com", true },
{ "forologikidilosi.com.gr", true },
{ "forourselves.com", true },
{ "forpc.us", true },
- { "forplayers.pl", true },
+ { "forquilhinhanoticias.com.br", true },
{ "forrestheller.com", true },
{ "forro.info", true },
{ "forsakringsarkivet.se", true },
+ { "forschbach-janssen.de", true },
{ "forsec.nl", true },
{ "forstbetrieb-hennecke.de", true },
{ "forstprodukte.de", true },
@@ -12940,6 +13562,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fortran.io", true },
{ "fortress.no", true },
{ "fortress.sk", true },
+ { "forty-two.nl", true },
{ "forty8creates.com", true },
{ "fortytwo.cloud", true },
{ "forum-bonn.de", true },
@@ -12956,6 +13579,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fosaudit.com", true },
{ "foscamcanada.com", true },
{ "fosdem.org", true },
+ { "foshanshequ.com", false },
{ "fossguard.com", true },
{ "fossilfreeyale.org", true },
{ "fotella.com", true },
@@ -12968,14 +13592,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "foto-robitsch.at", true },
{ "foto-roma.ru", true },
{ "foto.by", true },
- { "fotofaerie.net", true },
{ "fotoflits.net", true },
+ { "fotografechristha.nl", true },
{ "fotografiadellalucerossa.com", true },
{ "fotohome.dk", true },
+ { "fotokomorkomania.pl", true },
{ "fotoleitner.com", true },
{ "fotoleitner.de", true },
- { "fotonjan.com", true },
- { "fotostravestisbr.com", true },
{ "fotostudio-leitner.com", true },
{ "fotostudio-leitner.de", true },
{ "fotostudio-schweiz.ch", true },
@@ -12983,6 +13606,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fotowolfy.com", true },
{ "fougner.co", true },
{ "found.website", true },
+ { "foundationspecialisteast.com", true },
+ { "foundationspecialistmi.com", true },
{ "foundchurch.co.uk", true },
{ "foundsounds.me", true },
{ "fourashesgolfcentre.co.uk", true },
@@ -12992,24 +13617,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "foutrelis.com", true },
{ "fowlervwparts.com", true },
{ "fowlsmurf.net", true },
+ { "fox.my", true },
{ "foxbnc.co.uk", true },
{ "foxdev.co", true },
+ { "foxesare.sexy", true },
{ "foxhound.com.br", true },
{ "foxing.club", true },
+ { "foxo.blue", true },
{ "foxontheinter.net", true },
{ "foxphotography.ch", true },
{ "foxquill.com", true },
{ "foxterrier.com.br", true },
- { "foyale.io", true },
{ "fpc.gov", true },
{ "fpersona.com", true },
- { "fpki.sh", true },
- { "fptravelling.com", false },
+ { "fpgradosuperior.com", true },
{ "fpvr.org", true },
{ "fpy.cz", true },
{ "fr.search.yahoo.com", false },
{ "fr33tux.org", true },
{ "frack.nl", true },
+ { "fracreazioni.it", true },
{ "fraesentest.de", true },
{ "fragmentspuren.de", true },
{ "fragstore.net", true },
@@ -13020,10 +13647,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "framezdakkapellen.nl", true },
{ "fran.cr", true },
{ "francescopalazzo.com", true },
- { "francescoservida.ch", true },
{ "francetraceur.fr", true },
{ "franchini.email", true },
{ "franchini.engineer", true },
+ { "francis.tokyo", true },
{ "francisli.net", false },
{ "franckgirard.net", true },
{ "franckyz.com", true },
@@ -13035,8 +13662,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "francoz.me", true },
{ "frandor.co.uk", true },
{ "frank.fyi", true },
+ { "frankbellamy.co.uk", true },
{ "franke-chemie.de", true },
- { "frankedier.com", true },
{ "franken-lehrmittel.de", true },
{ "frankenhost.de", true },
{ "frankenlehrmittel.de", true },
@@ -13045,8 +13672,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "frankierprofi.de", true },
{ "frankierstar.de", true },
{ "frankinteriordesign.co.uk", true },
- { "frankl.in", true },
{ "frankmorrow.com", true },
+ { "frankopol-sklep.pl", true },
{ "franksiler.com", true },
{ "frankslaughterinsurance.com", true },
{ "frankwei.xyz", true },
@@ -13057,7 +13684,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "franz-vatter.de", true },
{ "franz.beer", true },
{ "franziska-pascal.de", true },
- { "frappant.cc", false },
+ { "franzknoll.de", true },
+ { "frappant.cc", true },
{ "fraselab.ru", true },
{ "frasesdodia.com", true },
{ "frasesparaface.com.br", true },
@@ -13076,6 +13704,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "frdl.ch", true },
{ "freaksites.dk", true },
{ "freaksports.com.au", true },
+ { "freakyawesome.com", true },
{ "frebi.org", true },
{ "frebib.co.uk", true },
{ "frebib.com", true },
@@ -13084,7 +13713,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "freddieonfire.tk", false },
{ "freddyfazbearspizzeria.com", true },
{ "freddysfuncastles.co.uk", true },
- { "fredericcote.com", true },
{ "frederickalcantara.com", true },
{ "frederik-braun.com", false },
{ "frederikvig.com", true },
@@ -13092,19 +13720,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fredriksslekt.se", true },
{ "fredvoyage.fr", true },
{ "free-your-pc.com", true },
+ { "free.ac.cn", true },
{ "free.com.tw", true },
{ "freeasyshop.com", true },
{ "freebarrettbrown.org", true },
{ "freebcard.com", true },
{ "freebetoffers.co.uk", true },
- { "freeblog.me", true },
{ "freebookmakersbetsandbonuses.com.au", true },
{ "freeboson.org", true },
- { "freecam2cam.site", true },
{ "freecloud.at", true },
- { "freecookies.nl", true },
{ "freedev.cz", true },
+ { "freedom.nl", true },
{ "freedom.press", true },
+ { "freedom35.org", true },
{ "freedomfinance.se", true },
{ "freedomflotilla.org", true },
{ "freedomfrontier.tk", true },
@@ -13155,6 +13783,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "freeyourmusic.com", true },
{ "freezion.com", true },
{ "frei.social", true },
+ { "freie-software.net", true },
{ "freifahrt.de", true },
{ "freifamily.ch", true },
{ "freifunk-burgaltendorf.de", true },
@@ -13172,7 +13801,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "freizeitplaza.de", true },
{ "frejasdal.dk", true },
{ "frenchcreekcog.org", true },
- { "frenzel.dk", true },
+ { "frenchmusic.fr", true },
{ "frequencebanane.ch", true },
{ "frequentflyerapp.com", true },
{ "fresh-hotel.org", true },
@@ -13194,6 +13823,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fribourgviking.net", true },
{ "frickelmeister.de", true },
{ "fridayfoucoud.ma", true },
+ { "fridolinka.cz", true },
{ "friederes.lu", true },
{ "friederloch.de", true },
{ "friedrich-foto-art.de", true },
@@ -13228,21 +13858,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "frogsonamission.de", true },
{ "froh.co.jp", true },
{ "frolova.org", true },
- { "from-the-net.com", true },
{ "fromscratch.rocks", true },
{ "fromthesoutherncross.com", true },
{ "fronteers.nl", false },
+ { "frontier-ad.co.jp", true },
+ { "frontierdiscount.com", true },
+ { "frontiers.nl", true },
{ "fropky.com", true },
- { "frosthall.com", true },
{ "frostprotection.co.uk", true },
{ "frostwarning.com", true },
+ { "frostysummers.com", true },
{ "frothy.coffee", true },
{ "froufe.com", true },
{ "frozen-geek.net", true },
{ "frozen-solid.net", true },
- { "frprn.com", true },
{ "frprn.es", true },
- { "frprn.xxx", true },
{ "frtn.com", true },
{ "frtr.gov", true },
{ "frtrains.com", true },
@@ -13254,7 +13884,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "frugalmechanic.com", true },
{ "frugro.be", true },
{ "fruition.co.jp", true },
- { "fruitscale.com", true },
{ "frusky.de", true },
{ "fruttini.de", true },
{ "frydrychit.cz", true },
@@ -13274,15 +13903,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fsdress.com", true },
{ "fsfxpackages.com", true },
{ "fsj4u.ch", true },
- { "fsk.fo", true },
{ "fsky.info", true },
{ "fsm2016.org", true },
{ "fsps.ch", true },
{ "fsstyle.com", true },
- { "fsvoboda.cz", true },
{ "fsvt.ch", true },
{ "ft.com", false },
- { "ftang.de", true },
+ { "ftc.gov", false },
{ "ftccomplaintassistant.gov", true },
{ "ftcefile.gov", true },
{ "ftf.agency", true },
@@ -13312,7 +13939,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fuglede.dk", true },
{ "fuite.ch", true },
{ "fuites.ch", true },
- { "fujianshipbuilding.com", true },
{ "fujiorganics.com", false },
{ "fujiwaraqol.com", true },
{ "fukakukeiba.com", true },
@@ -13326,12 +13952,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "full-stack.ninja", true },
{ "fullautomotivo.com.br", true },
{ "fullbundle.com", true },
+ { "fullereno.com", true },
+ { "fullerlife.org.uk", true },
{ "fullhost.com", true },
{ "fullhub.ru", true },
{ "fullmatch.net", true },
- { "fullpackage.co.uk", true },
{ "fullstacknotes.com", true },
- { "fulltxt.ml", true },
{ "fumblers.ca", true },
{ "fumerolles.ch", true },
{ "fumo.se", false },
@@ -13347,7 +13973,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "funchestra.at", false },
{ "functional.cc", true },
{ "functions-online.com", true },
- { "fundayltd.com", true },
{ "fundays.nl", true },
{ "fundchan.com", true },
{ "fundeego.com", true },
@@ -13356,15 +13981,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "funds.ddns.net", true },
{ "funerariahogardecristo.cl", true },
{ "funfactorleeds.co.uk", true },
+ { "funfair.io", true },
{ "funfoodco.co.uk", true },
{ "funfunmstdn.tokyo", true },
+ { "fungames.com", true },
{ "funhouse-inflatables.co.uk", true },
{ "funinbeds.org.uk", true },
{ "funken-networks.de", true },
+ { "funkner.ru", true },
{ "funktionel.co", true },
{ "funktionsverket.se", true },
{ "funkygamer1.de", true },
- { "funnelweb.xyz", true },
{ "funniestclip.com", true },
{ "funnybikini.com", true },
{ "funoverip.net", true },
@@ -13373,13 +14000,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "funtime-inflatables.co.uk", true },
{ "funtime.com.ua", true },
{ "funtime.kiev.ua", true },
- { "funtimebourne.co.uk", true },
{ "funtimeentertainment.co.uk", true },
{ "funtimesbouncycastles.co.uk", true },
{ "fur.red", true },
+ { "furcity.me", true },
{ "furgo.love", true },
{ "furigana.info", true },
- { "furikake.xyz", true },
{ "furkancaliskan.com", true },
{ "furkot.com", true },
{ "furkot.de", true },
@@ -13391,27 +14017,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "furlog.it", true },
{ "furnfurs.com", true },
{ "furnitureconcept.co.uk", true },
- { "furry.agency", true },
+ { "furry.cat", true },
{ "furry.dk", true },
{ "furry.zone", false },
{ "furrybot.me", true },
{ "furrytech.network", true },
+ { "furrytf.club", true },
{ "furryyiff.site", true },
{ "fursuitbutts.com", true },
{ "furtherfood.com", true },
- { "fusa-miyamoto.jp", true },
{ "fuselight.nl", true },
{ "fuseos.net", true },
{ "fushee.com", true },
{ "fusiongaming.de", true },
- { "fuskator.com", true },
{ "fussball-xxl.de", true },
- { "fussell.io", true },
+ { "futa.agency", true },
{ "futagro.com", true },
+ { "futbomb.com", true },
+ { "futcre.com", true },
{ "futrou.com", true },
{ "future-moves.com", true },
{ "futurefund.com", true },
{ "futurefundapp.com", true },
+ { "futuregrowthva.com", true },
{ "futurehack.io", true },
{ "futurenda.com", true },
{ "futureoceans.org", true },
@@ -13420,14 +14048,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "futurope.com", true },
{ "fuwafuwa.moe", true },
{ "fuyu.moe", true },
- { "fuzoku.jp", true },
{ "fuzzing-project.org", true },
{ "fveevaete.com", true },
{ "fwdx.net", true },
{ "fwest.ovh", true },
{ "fwest98.nl", true },
{ "fwest98.ovh", true },
- { "fwww7.com", true },
{ "fx-rk.com", true },
{ "fx24.uk", true },
{ "fx5.de", true },
@@ -13450,8 +14076,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fxwebsites.com.au", true },
{ "fxwebsites.net.au", true },
{ "fxwebstudio.net.au", true },
+ { "fyfywka.com", true },
{ "fyksen.me", true },
{ "fyn.nl", true },
+ { "fyol.xyz", false },
{ "fyretrine.com", true },
{ "fysesbjerg.dk", true },
{ "fysio123.nl", true },
@@ -13462,16 +14090,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "fysiovdberg.nl", true },
{ "fysuite.com", true },
{ "fzbrweb.cz", true },
+ { "fzhyzamt.com", true },
{ "fzx750.ru", true },
{ "g-m-w.eu", true },
{ "g-marketing.ro", true },
{ "g-o.pl", true },
+ { "g-p-design.com", true },
{ "g-rom.net", true },
{ "g0881.com", true },
+ { "g0man.com", true },
{ "g1.ie", true },
{ "g10e.ch", true },
{ "g2links.com", true },
{ "g2pla.net", true },
+ { "g2ship.com", true },
{ "g2soft.net", true },
{ "g3d.ro", true },
{ "g3dev.ch", true },
@@ -13479,15 +14111,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "g4w.co", true },
{ "g5.gov", true },
{ "g8energysolutions.co.uk", true },
- { "gaanbaksho.com.au", true },
{ "gaaz.fr", true },
{ "gabe565.com", true },
+ { "gabeb1920.com", true },
{ "gabecook.com", true },
{ "gabemack.com", true },
{ "gabinetpsychoterapii.krakow.pl", true },
{ "gabriel.to", true },
{ "gabrielsimonet.ch", true },
{ "gabrielsteens.nl", true },
+ { "gachimuchi.ru", true },
+ { "gachiyase.com", true },
{ "gachter.name", true },
{ "gadabit.pl", true },
{ "gadgethacks.com", true },
@@ -13498,21 +14132,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gaff-rig.co.uk", true },
{ "gaflooring.com", true },
{ "gafunds.com", true },
+ { "gagliarducci.it", true },
{ "gagne-enterprises.com", true },
{ "gagne.tk", true },
{ "gagnerplusdargent.info", true },
{ "gagniard.org", true },
- { "gagor.pl", true },
{ "gagygnole.ch", true },
+ { "gaiavanderzeyp.com", true },
{ "gaichon.com", true },
- { "gailfellowsphotography.com", true },
{ "gaines-sodiamex.fr", true },
{ "gaio-automobiles.fr", true },
{ "gaireg.de", true },
{ "gaitandmobility.com", true },
{ "gaitrehabilitation.com", true },
{ "gaitresearch.com", true },
- { "gajas18.com", true },
{ "gakkainavi-epsilon.jp", true },
{ "gakkainavi-epsilon.net", true },
{ "gakkainavi.jp", true },
@@ -13521,11 +14154,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gakkainavi4.net", true },
{ "gaku-architect.com", true },
{ "gala.kiev.ua", false },
+ { "galabau-maurmann.de", true },
+ { "galacg.me", true },
{ "galactic-crew.org", true },
{ "galak.ch", true },
+ { "galanight.cz", true },
+ { "galecia.com", true },
+ { "galeria42.com", true },
{ "galerieautodirect.com", true },
{ "galeries.photo", true },
{ "galgopersa.com.br", true },
+ { "galilahiskye.com", true },
{ "galileanhome.org", true },
{ "galinas-blog.de", true },
{ "galinos.gr", true },
@@ -13547,10 +14186,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gambitnash.com", true },
{ "gambitprint.com", true },
{ "gamblersgaming.eu", true },
+ { "game4less.com", true },
{ "game7.de", true },
{ "gameblabla.nl", true },
{ "gamebrott.com", true },
{ "gamecard-shop.nl", true },
+ { "gameclue.jp", true },
{ "gamecollector.be", true },
{ "gameconservation.org.uk", true },
{ "gamedevelopers.pl", true },
@@ -13562,7 +14203,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gamenerd.net", true },
{ "gameofpwnz.com", true },
{ "gamepad.com.br", true },
+ { "gameplaysforkids.com", true },
+ { "gamepreorders.com", true },
+ { "gamequest.info", true },
{ "gamercredo.com", true },
+ { "gamereader.de", true },
{ "gamerezo.com", true },
{ "gamerzdot.com", true },
{ "games4theworld.org", true },
@@ -13573,6 +14218,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gamesplanet.com", true },
{ "gamesputnik.ru", true },
{ "gamestats.gg", true },
+ { "gametube.website", true },
{ "gamilab.com", true },
{ "gamilab.no", true },
{ "gamingexodus.com", true },
@@ -13581,6 +14227,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gamingwithcromulent.com", true },
{ "gamingzoneservers.com", true },
{ "gamishou.fr", true },
+ { "gamivo.com", true },
{ "gamoloco.com", true },
{ "gan.wtf", true },
{ "ganado.org", true },
@@ -13593,11 +14240,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gandgliquors.com", true },
{ "ganggalbichler.at", true },
{ "gansleit.com", false },
- { "ganzgraph.de", true },
+ { "ganyouxuan.com", true },
{ "ganztagplus.de", true },
{ "gao.rocks", true },
{ "gaojianli.tk", true },
- { "gaon.network", true },
{ "gaos.org", true },
{ "gapdirect.com", true },
{ "gapfa.org", true },
@@ -13611,6 +14257,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "garanteasy.com", true },
{ "garbage-juice.com", true },
{ "garbomuffin.com", true },
+ { "garciagerman.com", true },
{ "garda-see.mobi", true },
{ "gardedenfantspourtous.fr", true },
{ "garden-life.org", true },
@@ -13620,12 +14267,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gardinte.com", true },
{ "garedtech.com", false },
{ "garethbowker.com", true },
+ { "garethkirk.com", true },
{ "garethkirkreviews.com", true },
{ "garethrhugh.es", true },
{ "garforthgolfclub.co.uk", true },
{ "gargazon.net", true },
{ "garron.net", true },
{ "garrowmediallc.com", true },
+ { "gartenhauszentrum.de", true },
{ "gartenplanung-brendes.de", true },
{ "garycarmell.com", true },
{ "garycwaite.com", true },
@@ -13636,43 +14285,48 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "garywhittington.com", true },
{ "gashalot.com", true },
{ "gastoudererenda.nl", true },
- { "gastritisolucion.com", true },
+ { "gastromedicalcenter.com.br", true },
{ "gastrotiger.at", true },
{ "gastrotiger.de", true },
{ "gate2home.com", true },
{ "gateaucreation.fr", true },
{ "gatewaybridal.com", true },
{ "gatewaybronco.com", true },
- { "gatilagata.com.br", true },
{ "gauche.com", true },
{ "gaudeamus-folklor.cz", true },
{ "gaudere.co.jp", true },
+ { "gaurl.ga", true },
{ "gaussianwaves.com", true },
- { "gautham.it", false },
+ { "gautham.it", true },
{ "gauthier.dk", true },
{ "gautvedt.no", true },
{ "gavins.stream", true },
{ "gavinsblog.com", true },
+ { "gawrimanecuta.com", true },
{ "gay-jays.com", true },
- { "gay-sissies.com", true },
+ { "gaya-sa.org", true },
{ "gayforgenji.com", true },
{ "gayjays.com", true },
+ { "gaymerconnect.net", true },
+ { "gaymerx.com", true },
+ { "gaymerx.net", true },
+ { "gaymerx.org", true },
{ "gaysexpositions.guide", true },
- { "gaysfisting.com", true },
- { "gaytorrent.ru", true },
{ "gayukai.net", true },
- { "gayxsite.com", true },
{ "gazachallenge.org", true },
{ "gazee.net", true },
{ "gazellegames.net", false },
+ { "gazete.org", true },
{ "gazette.govt.nz", true },
{ "gbc-radio.nl", true },
{ "gbcsummercamps.com", true },
- { "gbit.xyz", true },
{ "gbl.selfip.net", true },
{ "gboys.net", true },
+ { "gc-mc.de", true },
{ "gc.gy", true },
+ { "gc.ru.net", true },
{ "gcbit.dk", true },
+ { "gccm-events.com", true },
{ "gcfadvisors.com", true },
{ "gcgeeks.com.au", true },
{ "gcguild.net", true },
@@ -13685,8 +14339,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gdgrzeszow.pl", true },
{ "gdhzcgs.com", true },
{ "gdiary.net", true },
+ { "gdngs.de", true },
{ "gdpr-pohotovost.cz", true },
- { "gdutnic.com", true },
{ "gdv.me", true },
{ "gdz-spishy.com", true },
{ "ge3k.net", false },
@@ -13696,7 +14350,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gearfinder.nl", true },
{ "gearseo.com.br", true },
{ "gearset.com", true },
- { "geaskb.nl", true },
{ "geass.xyz", true },
{ "geba-online.de", true },
{ "gebn.co.uk", true },
@@ -13718,29 +14371,32 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "geekabit.nl", true },
{ "geekandi.com", true },
{ "geekariom.com", true },
- { "geekchimp.com", true },
{ "geekclubbooks.com", true },
{ "geeklair.net", true },
{ "geeklan.co.uk", true },
{ "geekles.net", true },
{ "geeknik.com", true },
{ "geekpad.com", true },
- { "geekseries.fr", true },
+ { "geeks.one", true },
{ "geekshirts.cz", true },
{ "geektopia.es", true },
{ "geekwhack.org", true },
{ "geekwithabudget.com", true },
{ "geekwu.org", true },
- { "geeky.software", true },
{ "geekystudios.us", true },
{ "geekz.sk", true },
{ "geekzone.co.nz", true },
{ "geekzone.fr", true },
{ "geeq.ch", true },
{ "geerdsen.net", true },
+ { "geertdegraaf.nl", true },
{ "geertswei.nl", true },
{ "gegeco.ch", true },
{ "geh.li", true },
+ { "gehaowu.com", true },
+ { "gehas-wein-shop.de", true },
+ { "gehirn.co.jp", true },
+ { "gehirn.jp", true },
{ "gehopft.de", true },
{ "gehreslaw.com", true },
{ "gehrke.in", true },
@@ -13763,6 +14419,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gem-info.fr", true },
{ "gemeentemolenwaard.nl", true },
{ "gemeinsam-ideen-verwirklichen.de", true },
+ { "gemgroups.in", true },
{ "gemini.com", true },
{ "gemquery.com", true },
{ "genchev.io", true },
@@ -13776,10 +14433,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "geneau.net", true },
{ "genehightower.com", true },
{ "genehome.com.au", true },
+ { "generace-id.org", true },
{ "generador-electrico.com", true },
{ "general-anaesthesia.com", true },
{ "general-anaesthetics.com", true },
{ "general-anesthesia.com", true },
+ { "general-insurance.tk", true },
{ "generali-worldwide.com", true },
{ "generalinsuranceservices.com", true },
{ "generationgoat.com", true },
@@ -13795,6 +14454,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "geneve-naturisme.ch", true },
{ "genevoise-entretien.ch", true },
{ "genfaerd.dk", true },
+ { "geniush.ovh", true },
+ { "geniushost.in", true },
{ "geniusteacher.in", true },
{ "geniuszone.biz", true },
{ "genocidediary.org", true },
@@ -13809,6 +14470,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gensicke.de", true },
{ "genslerapps.com", true },
{ "genslerwisp.com", true },
+ { "gensokyo.chat", true },
+ { "gensokyo.re", true },
{ "gensonline.eu", true },
{ "gentianes.ch", true },
{ "gentoo-blog.de", true },
@@ -13826,6 +14489,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "geomex.be", true },
{ "geoponika.gr", true },
{ "geoport.al", true },
+ { "georadar-algerie.com", true },
{ "george-brighton.co.uk", true },
{ "george-orwell.com", true },
{ "georgebrighton.co.uk", true },
@@ -13835,6 +14499,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "georgemaschke.net", true },
{ "georgescarryout.com", true },
{ "georgewbushlibrary.gov", true },
+ { "georgiaautoglass.net", true },
{ "georgiaglassrepair.com", true },
{ "georgiastuartyoga.co.uk", true },
{ "georgioskontaxis.com", true },
@@ -13846,29 +14511,36 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "geosphereservices.com", true },
{ "geotab.com", true },
{ "gepe.ch", true },
+ { "gepgroup.gr", true },
{ "gepps.de", true },
{ "geraintwhite.co.uk", true },
{ "gerald-zojer.com", true },
{ "geraldsonrealty.com", true },
+ { "gerardinden.nl", true },
{ "gerardozamudio.mx", true },
+ { "gerbyte.co.uk", true },
+ { "gerbyte.com", true },
+ { "gerbyte.uk", true },
+ { "germancraft.net", true },
{ "germandarknes.net", true },
{ "germansoldiers.net", true },
{ "germanssky.de", true },
{ "gernert-server.de", true },
{ "gero.io", true },
{ "gerritcodereview.com", true },
- { "gerum.dynv6.net", true },
{ "gerwinvanderkamp.nl", true },
{ "ges-bo.de", true },
{ "geschichtscheck.de", true },
{ "geschmacksache.online", true },
{ "geschwinder.net", true },
+ { "gesica.cloud", true },
{ "gestorehotel.com", true },
{ "gestormensajeria.com", true },
{ "gesundheitmassage.com", true },
{ "gesundheitswelt24.de", true },
{ "get-erp.ru", true },
{ "get-it-live.com", true },
+ { "get-it-live.de", true },
{ "get-link.info", true },
{ "get-on.bid", true },
{ "get-refer.com", true },
@@ -13883,6 +14555,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "getbutterfly.com", true },
{ "getcloak.com", false },
{ "getcolq.com", true },
+ { "getcommande.com", true },
{ "getdash.io", true },
{ "getdeveloper.de", true },
{ "geteckeld.nl", true },
@@ -13891,12 +14564,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "getfirstalert.com", true },
{ "getfittedstore.com", true },
{ "getflorence.co.uk", true },
+ { "getfoundquick.com", true },
{ "getgeek.es", true },
{ "gethow.org", true },
{ "gethttpsforfree.com", true },
{ "geti2p.com", true },
{ "getidmcc.com", true },
{ "getimgs.com", true },
+ { "getinphase.com", true },
+ { "getitlive.de", true },
{ "getitpeople.com", true },
{ "getmango.com", true },
{ "getmdl.io", true },
@@ -13916,11 +14592,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "getsecure.nl", true },
{ "getsensibill.com", true },
{ "getsetbounce.co.uk", true },
- { "getsetupfile.com", true },
{ "getsilknow.com", true },
{ "getsmartaboutdrugs.gov", true },
{ "getsport.mobi", true },
{ "getsubs.net", true },
+ { "getswadeshi.com", true },
{ "getteamninja.com", true },
{ "getthefriendsyouwant.com", true },
{ "getticker.com", true },
@@ -13928,11 +14604,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "getupandbounce.co.uk", true },
{ "getvdownloader.com", true },
{ "getweloop.io", true },
+ { "getwemap.com", true },
{ "getwisdom.io", true },
+ { "getyeflask.com", true },
{ "getyou.onl", true },
{ "getyourlifestraight.com", true },
{ "geyduschek.be", true },
{ "gf-franken.de", true },
+ { "gf5fcalc.com", true },
{ "gfahnen.de", true },
{ "gfast.ru", true },
{ "gfcleisure.co.uk", true },
@@ -13948,30 +14627,34 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gforce.ninja", true },
{ "gfoss.eu", true },
{ "gfournier.ca", true },
+ { "gfwno.win", true },
{ "gfxbench.com", true },
{ "ggdcpt.com", true },
{ "gginin.today", true },
{ "ggl-luzern.ch", true },
{ "ggma.co.uk", true },
{ "ggmmontascale.it", true },
- { "ggobbo.com", true },
{ "ggp2.com", true },
{ "ggs-marschallstrasse.de", true },
{ "ggs.jp", true },
{ "ggservers.com", true },
{ "ggx.us", true },
{ "gha.st", true },
+ { "ghaglund.se", true },
+ { "ghid-pitesti.ro", true },
{ "ghini.com", true },
{ "ghislainphu.fr", true },
{ "ghostblog.info", false },
{ "ghostcir.com", true },
+ { "ghou.me", true },
+ { "ghowell.io", true },
{ "ghrelinblocker.info", true },
{ "ghrelinblocker.org", true },
- { "ghuntley.com", false },
{ "giac.org", true },
{ "giacomodrago.com", true },
{ "giacomodrago.it", true },
{ "giacomopelagatti.it", true },
+ { "giaithich.net", true },
{ "gianproperties.com", true },
{ "giant-panda.com", true },
{ "giant-tortoise.com", true },
@@ -13983,7 +14666,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gibraltar.at", true },
{ "gichigamigames.com", true },
{ "gicl.dk", true },
- { "giddyaunt.net", true },
{ "giduv.com", true },
{ "giebel.it", true },
{ "gierds.de", true },
@@ -13993,8 +14675,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "giftedconsortium.com", true },
{ "giftking.nl", false },
{ "giftmaniabrilhos.com.br", true },
+ { "gifts.best", true },
{ "gifts365.co.uk", true },
- { "giftservices.nl", true },
{ "gig-raiffeisen.de", true },
{ "giga.nl", true },
{ "gigabitz.pw", true },
@@ -14008,7 +14690,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gigis-pizzeria.de", true },
{ "gigis.cloud", true },
{ "giglink.club", true },
- { "gigolodavid.be", true },
{ "gigseekr.com", true },
{ "gigtroll.eu", true },
{ "gijsbertus.com", true },
@@ -14024,14 +14705,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gillyscastles.co.uk", true },
{ "gilmoreid.com.au", true },
{ "gilnet.be", true },
+ { "gimme.money", true },
{ "gina-architektur.design", true },
- { "ginie.de", true },
+ { "gingersutton.com", true },
{ "ginionusedcars.be", true },
{ "ginja.co.th", true },
{ "ginnegappen.nl", true },
{ "ginniemae.gov", true },
+ { "gino-gelati.de", true },
{ "ginza-luce.net", true },
{ "ginzadelunch.jp", true },
+ { "ginzaj.com", true },
{ "giochi-online.ws", true },
{ "giochiecodici.it", true },
{ "gioielleriamolena.com", true },
@@ -14045,19 +14729,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "girlsforum.com", true },
{ "girlsgenerationgoods.com", true },
{ "girlsgonesporty.com", true },
+ { "girlsnet.work", true },
{ "girlz.jp", true },
{ "girsa.org", true },
{ "girvas.ru", true },
+ { "gisch.tk", true },
{ "gisgov.be", true },
+ { "gisher.news", true },
{ "gisher.org", true },
+ { "gisher.video", true },
{ "gistr.io", true },
{ "git.ac.cn", true },
{ "git.market", true },
+ { "git.sb", true },
{ "git.tt", true },
{ "gitep.org.uk", true },
{ "gites-alizea.com", true },
{ "gitesdeshautescourennes.com", true },
{ "github.com", true },
+ { "githubber.com", true },
+ { "githubber.tv", true },
{ "gitla.in", true },
{ "gitstuff.tk", true },
{ "gittigidiyor.com", true },
@@ -14088,9 +14779,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gl.search.yahoo.com", false },
{ "glaciernursery.com", true },
{ "gladwellentertainments.co.uk", true },
+ { "glahcks.com", true },
{ "glamguru.co.il", true },
{ "glamguru.world", true },
{ "glamour4you.de", true },
+ { "glamourdaze.com", true },
{ "glasdon.com", true },
{ "glasen-hardt.de", true },
{ "glasfaser-im-hanseviertel.de", true },
@@ -14098,12 +14791,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "glasner.photo", true },
{ "glass.google.com", true },
{ "glasschmuck-millefiori.de", true },
+ { "glasweld.com", true },
{ "glavsudexpertiza.ru", true },
{ "glazedmag.fr", true },
{ "glcastlekings.co.uk", true },
{ "gleanview.com", true },
{ "gleich-aluminium-shop.de", true },
{ "glenberviegolfclub.com", true },
+ { "glencambria.com", true },
{ "glencarbide.com", true },
{ "glendarraghbouncycastles.co.uk", true },
{ "glenhuntlyapartments.com.au", true },
@@ -14112,6 +14807,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "glidingshop.cz", true },
{ "glidingshop.de", true },
{ "glidingshop.eu", true },
+ { "glitzerstuecke.de", true },
{ "glloq.org", true },
{ "glob-coin.com", true },
{ "global-adult-webcams.com", true },
@@ -14141,10 +14837,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "glocalworks.jp", true },
{ "glofox.com", true },
{ "gloneta.com", false },
+ { "glosiko.com", true },
{ "glossopnorthendafc.co.uk", true },
{ "glotech.co.uk", true },
{ "glotechkitchens.co.uk", true },
{ "glotechrepairs.co.uk", true },
+ { "glu3cifer.rocks", true },
{ "glueck-im-norden.de", true },
{ "gluecksgriff-taschen.de", true },
{ "glueckskindter.de", true },
@@ -14154,8 +14852,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "glutenfreevr.com", true },
{ "glykofridis.nl", true },
{ "glyxins.com", true },
+ { "gm-net.jp", true },
{ "gm.search.yahoo.com", false },
{ "gmail.com", false },
+ { "gmantra.org", true },
{ "gmbh-kiekin.de", true },
{ "gmc.uy", true },
{ "gmccar.it", true },
@@ -14165,7 +14865,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gmod.de", true },
{ "gmpark.dk", true },
{ "gmpartsdb.com", true },
+ { "gmplab.com", true },
{ "gmta.nl", true },
+ { "gmtplus.co.za", true },
{ "gmw-hannover.de", true },
{ "gmw-ingenieurbuero.de", true },
{ "gmx.at", true },
@@ -14178,10 +14880,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gmx.net", true },
{ "gn00.com", true },
{ "gnax.jp", false },
+ { "gndh.net", true },
{ "gnetion.com", true },
{ "gnetwork.eu", true },
+ { "gnfrazier.me", true },
{ "gnhub.org", true },
{ "gnilebein.de", true },
+ { "gnk.io", true },
{ "gnuand.me", true },
{ "gnucashtoqif.us", true },
{ "gnunet.org", true },
@@ -14206,7 +14911,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gobouncy.co.uk", true },
{ "gobouncy.com", true },
{ "gobranding.com.vn", true },
- { "gocardless.com", true },
+ { "gocher.me", true },
{ "gochu.se", true },
{ "gocleanerslondon.co.uk", true },
{ "god-clan.hu", true },
@@ -14228,11 +14933,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "goedverzekerd.net", true },
{ "goemail.me", true },
{ "goerlitz-zgorzelec.org", true },
+ { "goerres2014.de", true },
+ { "goesta-hallenbau.de", true },
{ "goetemp.de", true },
{ "goetic.space", true },
{ "goettinger-biergarten.de", true },
{ "goffrie.com", true },
{ "gofigure.fr", false },
+ { "goflipr.com", true },
{ "goflo.net", true },
{ "gofoiayourself.org", true },
{ "gogle-analytics.com", true },
@@ -14248,8 +14956,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "goingreen.com.au", true },
{ "gokhankesici.com", true },
{ "gokmenguresci.com", true },
+ { "golang.zone", true },
{ "gold24.ru", true },
+ { "goldcoastasian.com", true },
{ "goldcoasthypnotherapyhypnosis.com.au", true },
+ { "goldcoastphotographycourses.com", true },
{ "goldcoaststumpbusters.com", true },
{ "goldegg-training.com", false },
{ "goldenbadger.de", true },
@@ -14257,10 +14968,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "goldenhillsoftware.com", true },
{ "goldenhost.ca", true },
{ "goldenplate.com.sg", true },
+ { "goldfmromania.ro", true },
{ "goldmark.com.au", true },
{ "goldpreisfinder.at", true },
{ "goldsecurity.com", true },
- { "goldsky.com.au", true },
{ "goldstein.tel", true },
{ "golf18network.com", true },
{ "golf18staging.com", true },
@@ -14273,11 +14984,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "golser.info", true },
{ "gomasy.jp", true },
{ "gomelchat.com", true },
+ { "gomena.io", true },
+ { "gomiblog.com", true },
{ "gommista.roma.it", true },
{ "gondawa.com", true },
- { "gongjianwei.com", true },
{ "gongjuhao.com", true },
- { "gonkar.com", true },
{ "gonx.dk", true },
{ "goo.gl", true },
{ "gooby.co", false },
@@ -14285,7 +14996,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gooday.life", true },
{ "gooddomainna.me", true },
{ "goodenough.nz", false },
- { "goodvibesblog.com", true },
+ { "goodfeels.net", true },
+ { "goodhealthtv.com", true },
+ { "goodshepherdmv.com", true },
{ "google", true },
{ "google-analytics.com", true },
{ "googleandroid.cz", true },
@@ -14294,12 +15007,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "googlesource.com", true },
{ "goombi.fr", true },
{ "goonersworld.co.uk", true },
+ { "goooo.info", true },
{ "gootlijsten.nl", true },
{ "goozp.com", true },
{ "gopher.tk", true },
{ "goproallaccess.com", true },
{ "goquiq.com", true },
- { "gorakukai.jp", true },
+ { "gordonobrecht.com", true },
{ "gordonscouts.com.au", true },
{ "gorf.chat", true },
{ "gorf.club", true },
@@ -14312,12 +15026,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gosforthdentalsurgery.co.uk", true },
{ "goshawkdb.io", true },
{ "goshin-group.co.jp", true },
- { "goshow.tv", true },
{ "gospelfollower.com", true },
{ "gospelofmark.ch", true },
{ "gospelvestcination.de", true },
{ "gostaffer.com", true },
- { "gostest.org", true },
+ { "gostest.org", false },
+ { "gosu.pro", true },
{ "gosuland.org", true },
{ "got-tty.de", true },
{ "goteborgsklassikern.se", true },
@@ -14331,7 +15045,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "goto.world", true },
{ "goto10.se", true },
{ "gotomi.info", true },
- { "gotowned.org", false },
{ "gotoxy.at", true },
{ "gotrail.fr", true },
{ "gottcode.org", false },
@@ -14350,6 +15063,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "govtjobs.blog", true },
{ "govtrack.us", true },
{ "govype.com", true },
+ { "gowe.wang", false },
{ "gowildrodeo.co.uk", true },
{ "gowin9.com", true },
{ "gowin9.net", true },
@@ -14373,16 +15087,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gra2.com", true },
{ "graasp.net", false },
{ "grabacabpa.com", true },
- { "grabi.ga", true },
{ "grace-wan.com", true },
{ "gracebaking.com", false },
{ "gracedays.org", true },
{ "gracethrufaith.com", true },
{ "gracetini.com", true },
{ "graciousmay.com", true },
- { "gradenotify.com", true },
+ { "gradecam.com", true },
{ "gradienthosting.co.uk", true },
{ "gradients.com", true },
+ { "gradingcontractornc.com", true },
{ "gradualgram.com", true },
{ "graeber.com", true },
{ "graecum.org", true },
@@ -14396,6 +15110,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "grafoteka.pl", true },
{ "graft.community", true },
{ "graft.observer", true },
+ { "grahamcarruthers.co.za", true },
{ "grahamcluley.com", true },
{ "grahamofthewheels.com", true },
{ "grailians.com", true },
@@ -14405,21 +15120,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gram.tips", true },
{ "gramati.com.br", true },
{ "grammysgrid.com", true },
+ { "grana.com", true },
{ "granary-demo.appspot.com", false },
{ "grancellconsulting.com", true },
+ { "grandcafecineac.nl", true },
{ "grandcafetwist.nl", true },
{ "grandcapital.cn", true },
{ "grandcapital.id", true },
+ { "grandcapital.net", true },
{ "grandcapital.ru", true },
{ "grandcastles.co.uk", true },
{ "grandchene.ch", true },
{ "grandefratellonews.com", true },
{ "grandeto.com", true },
{ "grandjunctionbrewing.com", true },
- { "grandmasfridge.org", true },
{ "grandmusiccentral.com.au", true },
{ "grandpadusercontent.com", true },
- { "grandwailea.com", true },
{ "granfort.es", false },
{ "granian.pro", true },
{ "granishe.com", true },
@@ -14436,11 +15152,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "graphcommons.com", true },
{ "graphene.software", true },
{ "graphic-shot.com", true },
+ { "graphified.nl", false },
{ "graphire.io", true },
{ "grapholio.net", true },
{ "grasmark.com", true },
{ "grassenberg.de", true },
{ "grasshoppervape.com", true },
+ { "grasso.io", true },
{ "grassreinforcement.com.au", true },
{ "gratis-lovecheck.de", true },
{ "gratisgamecards.nl", true },
@@ -14465,7 +15183,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "grazieitalian.com", true },
{ "grc.com", false },
{ "greatagain.gov", true },
- { "greatergoodoffers.com", true },
{ "greatestwebsiteonearth.com", true },
{ "greatfire.org", true },
{ "greatislandarts.ca", true },
@@ -14479,18 +15196,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "greek.dating", true },
{ "green-attitude.be", true },
{ "green-care.nl", true },
+ { "green-light.cf", true },
{ "green-light.co.nz", true },
+ { "green-light.ga", true },
+ { "green-light.gq", true },
+ { "green-light.ml", true },
{ "greenaddress.it", true },
{ "greenapproach.ca", true },
+ { "greenbaysecuritysolutions.com", true },
{ "greencircleplantnursery.com.au", true },
{ "greencircleplantnursery.net.au", true },
- { "greenenergysolution.uk", true },
{ "greener.pl", true },
{ "greenglam.biz", true },
{ "greengoblindev.com", true },
{ "greenhats.de", true },
{ "greenliquidsystem.com", true },
+ { "greenliv.pl", true },
{ "greenlungs.net", true },
+ { "greenmachines.com", true },
{ "greenoutdoor.dk", false },
{ "greenpanda.de", true },
{ "greenpartyofnewmilford.org", true },
@@ -14498,16 +15221,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "greenpeace.berlin", true },
{ "greenroach.ru", true },
{ "greenrushdaily.com", true },
+ { "greensborosecuritycameras.com", true },
{ "greensdictofslang.com", true },
{ "greensquare.tk", true },
{ "greenteamtwente.nl", true },
- { "greenville.ag", true },
{ "greenwithdecor.com", true },
{ "greer.ru", true },
{ "greg.red", true },
+ { "gregbrimble.com", true },
{ "greger.me", true },
+ { "gregmarziomedia.co.za", true },
+ { "gregmarziomedia.com", true },
{ "gregmilton.com", true },
{ "gregmilton.org", true },
+ { "gregmote.com", true },
+ { "grego.pt", true },
{ "gregoirow.be", true },
{ "gregorians.org", true },
{ "gregorkofler.com", true },
@@ -14531,6 +15259,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "greybeards.ca", true },
{ "greyhash.se", true },
{ "greymattertechs.com", true },
+ { "greysky.me", true },
{ "greyskymedia.com", true },
{ "greysolutions.it", true },
{ "greywizard.com", true },
@@ -14548,6 +15277,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "griegshipbrokers.com", true },
{ "griegshipbrokers.no", true },
{ "griesser2.de", true },
+ { "grillen-darf-nicht-gesund-sein.de", true },
{ "grillteller42.de", true },
{ "grimcalc.com", true },
{ "grimm-gastrobedarf.de", true },
@@ -14555,9 +15285,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "grimstveit.no", true },
{ "grinnellplans.com", true },
{ "gripnijmegen.rip", true },
+ { "grippe-impftermin.de", true },
{ "gritte.ch", true },
{ "grizzlys.com", true },
{ "grmp.fr", true },
+ { "grocerybuild.com", true },
{ "grocock.me.uk", true },
{ "groenaquasolutions.nl", true },
{ "groenewoud.me", true },
@@ -14575,11 +15307,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "groovygoldfish.org", true },
{ "gropp.org", true },
{ "gross.business", true },
- { "grossell.ru", true },
+ { "grossberger-ge.org", true },
{ "groszek.pl", true },
{ "groth.im", true },
{ "groth.xyz", true },
{ "grothoff.org", true },
+ { "grottenthaler.eu", true },
{ "grouchysysadmin.com", true },
{ "group4layers.net", true },
{ "groupe-neurologique-nord.lu", true },
@@ -14591,11 +15324,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "growingallthings.co.uk", true },
{ "growit.events", true },
{ "growy.ch", true },
- { "grozter.se", true },
+ { "grrmmll.com", true },
{ "grsecurity.net", true },
{ "gruble.de", true },
{ "gruebebraeu.ch", true },
- { "gruelang.org", true },
{ "gruenderlehrstuhl.de", true },
{ "gruene-im-rvr.de", true },
{ "gruene-wattenscheid.de", true },
@@ -14617,9 +15349,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gs93.de", true },
{ "gsaj114.net", true },
{ "gscloud.xyz", true },
+ { "gsdb.net", true },
{ "gsi-network.com", true },
{ "gsimagebank.co.uk", true },
{ "gslink.me", true },
+ { "gsmbrick.com", true },
{ "gsmsecurity.net", true },
{ "gsrc.io", true },
{ "gst.name", true },
@@ -14637,10 +15371,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gtmasterclub.it", false },
{ "gtmetrix.com", true },
{ "gtopala.com", true },
+ { "gtopala.net", true },
{ "gtour.info", false },
{ "gtravers-basketmaker.co.uk", true },
{ "gts-dp.de", true },
{ "gtts.space", true },
+ { "guajars.cl", true },
{ "guanyembadalona.org", true },
{ "guanzhong.ca", true },
{ "guardian360.nl", true },
@@ -14649,11 +15385,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gubagoo.com", true },
{ "gubagoo.io", true },
{ "gudini.net", true },
- { "gudrun.ml", true },
{ "guegan.de", true },
{ "guelo.ch", true },
- { "guendra.dedyn.io", true },
{ "guenthereder.at", true },
+ { "guerard.info", true },
{ "guerrilla.technology", true },
{ "guesthouse-namaste.com", true },
{ "guevener.de", true },
@@ -14678,13 +15413,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "guideo.ch", true },
{ "guidepointsecurity.com", true },
{ "guides-peche64.com", true },
- { "guidesetc.com", true },
{ "guidetoiceland.is", false },
{ "guildbase.de", true },
{ "guildofmusicsupervisors.co.uk", true },
{ "guillaume-briand.fr", true },
{ "guillaumecote.me", true },
- { "guillaumeperrin.io", true },
{ "guillemaud.me", true },
{ "guim.co.uk", true },
{ "guineapigmustach.es", true },
@@ -14696,6 +15429,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gumballs.com", true },
{ "gume4you.com", true },
{ "gumi.ca", true },
+ { "gunauc.net", true },
{ "gunceloyunhileleri.com", true },
{ "gunwatch.co.uk", true },
{ "gunworld.com.au", true },
@@ -14707,7 +15441,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "guphi.net", false },
{ "gurkan.in", true },
{ "gurmel.ru", true },
- { "gurochan.ch", true },
{ "gurpusmaximus.com", true },
{ "guru-naradi.cz", true },
{ "gurucomi.com", true },
@@ -14723,13 +15456,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "guus-thijssen.nl", true },
{ "guusvandewal.nl", true },
{ "guvernalternativa.ro", true },
+ { "guyeskens.be", true },
{ "gv-neumann.de", true },
+ { "gv-salto.nl", true },
{ "gvatas.in", true },
{ "gveh.de", true },
{ "gvi-timing.ch", true },
{ "gviedu.com", true },
{ "gvitiming.ch", true },
- { "gvm.io", true },
{ "gvobgyn.ca", true },
{ "gvt2.com", true },
{ "gvt3.com", true },
@@ -14737,12 +15471,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gw2efficiency.com", true },
{ "gw2treasures.com", true },
{ "gw2zone.net", true },
- { "gwa-verwaltung.de", true },
{ "gwerder.net", true },
{ "gwhois.org", true },
{ "gwrtech.com", true },
{ "gwsec.co.uk", true },
{ "gxmyqy.net", true },
+ { "gyara.moe", true },
{ "gyas.nl", true },
{ "gycis.me", false },
{ "gymagine.ch", true },
@@ -14753,6 +15487,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gymnasium-hittfeld.de", true },
{ "gympap.de", true },
{ "gynaecology.co", true },
+ { "gynoguide.com", true },
{ "gypsyreel.com", true },
{ "gyre.ch", true },
{ "gyrenens.ch", true },
@@ -14763,12 +15498,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "gz-bmw.com", true },
{ "gza.jp", true },
{ "gzitech.com", true },
+ { "gzitech.net", true },
+ { "gzitech.org", true },
{ "gzom.ru", true },
{ "h-jo.net", true },
{ "h-suppo.com", true },
{ "h001.ru", true },
{ "h09.eu", true },
{ "h0r.st", true },
+ { "h10l.com", true },
{ "h11.io", true },
{ "h11.moe", true },
{ "h1ctf.com", true },
@@ -14777,11 +15515,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "h2s-design.de", true },
{ "h2u.tv", true },
{ "h3artbl33d.nl", true },
- { "h3z.jp", false },
+ { "h3b.nl", true },
+ { "h3z.jp", true },
{ "h404bi.com", true },
{ "ha-kunamatata.de", true },
{ "ha3.eu", true },
- { "ha6.ru", true },
{ "haarlemsesaxofoonschool.nl", true },
{ "haavard.me", true },
{ "haazen.xyz", true },
@@ -14797,18 +15535,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "haccp.bergamo.it", true },
{ "haccp.milano.it", true },
{ "haccp.roma.it", true },
+ { "hacertest.com", true },
{ "hacettepeteknokent.com.tr", true },
{ "hachre.de", false },
- { "hack.club", true },
+ { "hack.cz", true },
{ "hackademix.net", true },
{ "hackanders.com", true },
{ "hackattack.com", true },
{ "hackbarth.guru", true },
{ "hackbeil.name", true },
{ "hackcraft.net", true },
+ { "hackdown.me", true },
{ "hackenkunjeleren.nl", true },
{ "hackenturet.dk", true },
- { "hacker.club", true },
+ { "hacker.holiday", true },
{ "hacker.im", true },
{ "hacker.one", true },
{ "hacker.parts", true },
@@ -14818,13 +15558,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hackerco.com", true },
{ "hackereyes.com", true },
{ "hackergateway.com", true },
- { "hackerlite.xyz", true },
{ "hackernet.se", true },
{ "hackerone-ext-content.com", true },
{ "hackerone-user-content.com", true },
{ "hackerone.at", true },
{ "hackerone.com", true },
{ "hackerone.net", true },
+ { "hackerone.org", true },
{ "hackerpoints.com", true },
{ "hackerschat.net", true },
{ "hackerstxt.org", true },
@@ -14837,13 +15577,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hackreone.com", true },
{ "hacksecu.re", true },
{ "hacksoc.co.uk", true },
- { "hackthissite.org", true },
{ "hacktic.info", true },
{ "hacktivis.me", true },
- { "hackzogtum-coburg.de", true },
+ { "hackworx.com", false },
{ "hadaly.fr", true },
{ "hadleighswimmingclub.co.uk", true },
{ "hadouk.in", true },
+ { "hadret.com", true },
+ { "hadret.sh", true },
{ "hadrons.org", true },
{ "haefligermedia.ch", true },
{ "haens.li", true },
@@ -14851,12 +15592,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "haferman.net", true },
{ "haferman.org", true },
{ "hafniatimes.com", true },
- { "haggeluring.su", true },
+ { "hagiati.gr", true },
{ "hagueaustralia.com.au", true },
{ "haha-raku.com", true },
{ "hahay.es", true },
{ "haiboxu.com", true },
+ { "haidihai.ro", true },
{ "hailer.com", true },
+ { "haim.bio", true },
+ { "haimablog.ooo", true },
{ "hairbeautyartists.it", true },
{ "haircrazy.com", true },
{ "hairplaybychenellekay.com", false },
@@ -14864,10 +15608,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hairtonic-lab.com", true },
{ "haixihui.cn", true },
{ "haizum.pro", true },
+ { "hajekdavid.cz", true },
{ "hajekj.net", true },
+ { "hajnzic.at", true },
{ "hak5.org", true },
{ "hakaru.org", true },
{ "hakase.io", true },
+ { "hakase.pw", true },
{ "hakatabijin-mind.com", true },
{ "hake.me", true },
{ "hal-9th.space", true },
@@ -14893,6 +15640,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "halongbaybackpackertour.com", true },
{ "haloobaloo.com", true },
{ "haloria.com", true },
+ { "haltegame.com", true },
{ "hamacho-kyudo.com", true },
{ "hamali.bg", true },
{ "hamburgerbesteld.nl", true },
@@ -14907,16 +15655,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hampshiretechservices.co.uk", true },
{ "hamsters-uk.org", true },
{ "hana.ondemand.com", true },
- { "hanakaraku.com", true },
{ "hanashi.eu", true },
{ "hanbing.it", true },
{ "handbrake.fr", true },
{ "handcraft.eu.org", true },
{ "handgelenkbandage-test.de", true },
+ { "handknit.com.np", true },
{ "handlecoin.com", true },
{ "handleidingkwijt.com", true },
{ "handmade-workshop.de", true },
- { "handmadeshoes.pe", true },
+ { "handmadehechoamano.com", true },
+ { "handy-center.net", true },
{ "handyglas.com", true },
{ "handymanlondonplease.co.uk", true },
{ "handynummer.online", true },
@@ -14924,15 +15673,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "handyticket.de", true },
{ "hanfox.co.uk", false },
{ "hanfverband-erfurt.de", true },
+ { "hang333.moe", true },
{ "hangar.hosting", true },
{ "hangcapnach.com", true },
{ "hangouts.google.com", true },
{ "hangtenseo.com", true },
+ { "hankr.com", true },
+ { "hanksacservice.com", true },
{ "hannah.link", true },
+ { "hannahi.com", true },
{ "hannoluteijn.nl", true },
+ { "hannover.de", true },
{ "hanoibuffet.com", true },
+ { "hanpenblog.com", true },
+ { "hansahome.ddns.net", true },
{ "hansbijster.nl", true },
- { "hansch.ventures", true },
{ "hanschventures.com", true },
{ "hansen-kronshagen.de", true },
{ "hansen.hn", true },
@@ -14945,7 +15700,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hanu.la", true },
{ "hanxv.pw", true },
{ "hanyibo.com", true },
- { "hanys.xyz", true },
{ "hanzubon.jp", true },
{ "hao-zhang.com", true },
{ "haogoodair.ca", true },
@@ -14980,8 +15734,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "harald-pfeiffer.de", true },
{ "harapecorita.com", true },
{ "harbor-light.net", true },
- { "hardeman.nu", true },
{ "hardenize.com", true },
+ { "hardergayporn.com", true },
{ "hardertimes.com", true },
{ "hardesec.com", true },
{ "hardez.de", true },
@@ -14991,14 +15745,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hardloopfysio.nl", true },
{ "hardrain980.com", true },
{ "hardtfrieden.de", true },
- { "hardtime.ru", true },
- { "harekaze.info", true },
+ { "hardwareschotte.de", true },
{ "haribilalic.com", true },
{ "harilova.fr", true },
+ { "harion.fr", true },
{ "harisht.me", false },
{ "haritsa.co.id", true },
{ "harjitbhogal.com", true },
{ "harlor.de", true },
+ { "harmfarm.nl", true },
{ "harmoney.co.nz", true },
{ "harmoney.com", true },
{ "harmoney.com.au", true },
@@ -15021,22 +15776,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hartzer.com", true },
{ "harukakikuchi.com", true },
{ "haruue.moe", true },
+ { "harvarddharma.org", true },
{ "harvestapp.com", true },
{ "harvester.fr", true },
{ "harveyauzorst.com", true },
- { "harveymilton.com", true },
{ "has-no-email-set.de", false },
+ { "has.work", true },
{ "hasdf.de", true },
{ "hasecuritysolutions.com", true },
{ "haselsteiner.me", true },
{ "hash-archive.org", true },
+ { "hash.army", true },
{ "hash.works", true },
{ "hashcat.net", true },
{ "hashes.org", true },
{ "hashi.dk", true },
{ "hashiconf.eu", true },
{ "hashicorp.com", true },
- { "hashimah.ca", true },
{ "hashimoto-jimusho.com", true },
{ "hashinteractive.com", true },
{ "hashish.net", true },
@@ -15047,7 +15803,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hasilocke.de", true },
{ "haskovec.com", true },
{ "hasselbach-dellwig.de", true },
- { "hatcherlawgroupnm.com", true },
+ { "hatarisecurity.co.ke", true },
+ { "hatpakha.com", true },
{ "hatul.info", true },
{ "haucke.xyz", true },
{ "hauntedfishtank.com", false },
@@ -15057,10 +15814,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "haus-zeitlos.de", true },
{ "hausarztpraxis-linn.de", true },
{ "haushenne.de", true },
+ { "hausjugo.de", true },
{ "haustechnik-breu.de", true },
{ "hausundhof.com", true },
{ "hausverbrauch.de", true },
- { "hauswarteam.com", true },
{ "hautaka.com", true },
{ "hautarztzentrum.ch", true },
{ "hauteslatitudes.com", true },
@@ -15073,7 +15830,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "haveibeenpwned.com", true },
{ "havellab.de", true },
{ "havelland-obstler.de", true },
- { "haven-moon.com", true },
{ "havenstrategies.com", true },
{ "haverstack.com", true },
{ "havetherelationshipyouwant.com", true },
@@ -15089,6 +15845,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hayashi-rin.net", true },
{ "hayden.one", false },
{ "haydenjames.io", true },
+ { "haydentomas.com", true },
{ "hayfordoleary.com", true },
{ "haynes-davis.com", true },
{ "hayvid.com", true },
@@ -15103,13 +15860,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hbpowell.com", true },
{ "hcaz.io", true },
{ "hcbj.io", true },
- { "hcoe.fi", true },
{ "hd-gaming.com", true },
{ "hd-offensive.at", false },
{ "hd-only.org", true },
{ "hd-outillage.com", true },
- { "hda.me", true },
{ "hdc.cz", true },
+ { "hdcamvids.com", true },
{ "hdcenter.cc", true },
{ "hdeaves.uk", true },
{ "hdf.world", true },
@@ -15120,7 +15876,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hdrsource.com", true },
{ "hdrtranscon.com", true },
{ "hds-lan.de", true },
- { "hdwallpapers.net", true },
{ "heaaart.com", true },
{ "head.org", true },
{ "head.ru", true },
@@ -15129,11 +15884,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "headshopinternational.com", true },
{ "headshotharp.de", true },
{ "healey.io", true },
+ { "health-booster.com", true },
{ "health-match.com.au", true },
{ "health-plan-news.com", true },
{ "health.gov", true },
{ "health.graphics", true },
{ "healthcare.gov", false },
+ { "healthcultureexpo.com", true },
{ "healtheals.com", true },
{ "healtheffectsofasbestos.com", true },
{ "healthery.com", true },
@@ -15141,6 +15898,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "healthfoam.com", true },
{ "healthgames.co.uk", true },
{ "healthiercompany.com", true },
+ { "healthiergenerations.co.uk", true },
{ "healthit.gov", true },
{ "healthlabs.com", true },
{ "healthmatchapp.com", true },
@@ -15152,7 +15910,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "healthybeterlife.click", true },
{ "healthyfitfood.com", true },
{ "healthypeople.gov", true },
+ { "healthyteame.com", true },
{ "heap.zone", true },
+ { "heapkeeper.org", true },
{ "hearmeraw.uk", true },
{ "heart.taxi", true },
{ "heartbeat24.de", true },
@@ -15173,15 +15933,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hearty.org.tw", true },
{ "hearty.taipei", true },
{ "hearty.us", true },
- { "heartyapp.com", true },
{ "heartycraft.com", true },
{ "heatershop.co.uk", true },
{ "heatingandairconditioningdallastx.com", true },
{ "heavensattic.co.uk", true },
{ "heavensinferno.net", true },
{ "heavyequipments.org", true },
- { "heayao.com", true },
{ "hebergeurssd.com", true },
+ { "hebikhiv.nl", true },
{ "hebingying.cn", true },
{ "hebocon.nl", true },
{ "hebriff.com", true },
@@ -15191,7 +15950,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "heckelektro.de", true },
{ "heckerundknopp.de", true },
{ "heckticmedia.com", true },
- { "hectorj.net", true },
{ "hedgeschool.ie", true },
{ "hedonism.org", true },
{ "hedonistic-imperative.com", true },
@@ -15257,6 +16015,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hellersgas.com", true },
{ "helles-koepfchen.de", true },
{ "helloacm.com", true },
+ { "hellomouse.net", true },
{ "hellsgamers.pw", true },
{ "hellsh.com", true },
{ "helmut-a-binser.de", true },
@@ -15280,7 +16039,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hendyisaac.com", true },
{ "hengelsportdeal.com", true },
{ "hengstumone.com", true },
- { "henhenlu.com", true },
{ "henkboelman.com", true },
{ "henkbrink.com", true },
{ "henker.net", true },
@@ -15299,10 +16057,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "henrock.net", true },
{ "henry.gg", true },
{ "henryphan.com", false },
- { "hentaiz.net", true },
+ { "hentaiworld.cc", true },
{ "hentschke-bau.de", true },
{ "hentschke-betonfertigteilwerk.de", true },
{ "hentschke-invest.de", true },
+ { "henzenhoning.nl", true },
{ "heppler.net", true },
{ "heptafrogs.de", true },
{ "herbal-id.com", true },
@@ -15317,6 +16076,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "herdserv.de", true },
{ "herebedragons.io", true },
{ "herecsrymy.cz", true },
+ { "heren.fashion", true },
{ "heritagebaptistchurch.com.ph", true },
{ "herkam.pl", true },
{ "hermanbrouwer.nl", true },
@@ -15347,7 +16107,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "herzbotschaft.de", true },
{ "herzfuersoziales.at", true },
{ "herzig.cc", true },
- { "hesa.com", true },
{ "hesaplama.net", true },
{ "hessen-liebe.de", true },
{ "hestervanderheijden.nl", true },
@@ -15358,10 +16117,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hesyifei.com", true },
{ "hetene.nl", true },
{ "hethely.ch", true },
- { "hetmer.cz", true },
{ "heute-kaufen.de", true },
{ "heute.training", true },
- { "heverhagen.rocks", true },
{ "hevertonfreitas.com.br", true },
{ "hex.bz", true },
{ "hex.nl", true },
@@ -15370,12 +16127,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hexclock.io", true },
{ "hexcode.in", true },
{ "hexed.it", true },
+ { "hexiaohu.cn", true },
{ "hexicurity.com", true },
{ "hexid.me", true },
{ "hexieshe.com", true },
{ "hexony.com", true },
{ "hexr.org", true },
- { "hexstream.net", true },
{ "hexstream.xyz", true },
{ "hexstreamsoft.com", true },
{ "hexxagon.com", true },
@@ -15384,15 +16141,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "heywood.cloud", true },
{ "hf-tekst.nl", true },
{ "hf51.nl", true },
- { "hflsdev.org", false },
{ "hfox.org", true },
{ "hg.gg", true },
{ "hg.python.org", true },
- { "hg525.com", true },
{ "hgbet.com", true },
- { "hgfa.fi", true },
+ { "hgvnet.de", true },
{ "hgw168.com", true },
{ "hh-medic.com", true },
+ { "hh-wolke.dedyn.io", true },
{ "hhgdo.de", true },
{ "hhhdb.com", true },
{ "hhidr.org", true },
@@ -15404,6 +16160,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hicl.org", true },
{ "hicoria.com", true },
{ "hidbo.de", true },
+ { "hiddendepth.ie", false },
{ "hiddenhillselectric.com", true },
{ "hiddenhillselectrical.com", true },
{ "hiddenhillselectrician.com", true },
@@ -15425,7 +16182,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "highlevelwoodlands.com", true },
{ "highlightsfootball.com", true },
{ "highlnk.com", true },
- { "highperformancehvac.com", true },
{ "highspeed-arnsberg.de", true },
{ "highspeedinternet.my", true },
{ "highspeedinternetservices.ca", true },
@@ -15437,7 +16193,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hikingguy.com", true },
{ "hilahdih.cz", true },
{ "hilaolu.studio", true },
- { "hilariousbeer.com.mx", true },
{ "hilaryhutler.com", true },
{ "hilchenba.ch", true },
{ "hilde.link", true },
@@ -15459,6 +16214,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hintergrundbewegung.de", true },
{ "hinterhofbu.de", true },
{ "hinterposemuckel.de", true },
+ { "hiojbk.com", true },
{ "hipi.jp", true },
{ "hippies.com.br", true },
{ "hippo.ge", true },
@@ -15468,16 +16224,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hipstercat.fr", true },
{ "hiqfleet.co.uk", true },
{ "hiqfranchise.co.uk", true },
+ { "hiqhub.co.uk", false },
{ "hiqonline.co.uk", true },
+ { "hirakatakoyou.org", true },
{ "hirake55.com", true },
{ "hiratake.xyz", true },
{ "hire-a-coder.de", true },
{ "hireabouncycastle.net", true },
{ "hirefitness.co.uk", true },
- { "hireprofs.com", true },
{ "hiresteve.ca", true },
- { "hiretech.com", true },
- { "hirevets.gov", true },
+ { "hirevo.eu", true },
{ "hirezzportal.com", true },
{ "hiring-process.com", true },
{ "hiromuogawa.com", true },
@@ -15485,6 +16241,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hirte-digital.de", true },
{ "hirzaconsult.ro", true },
{ "hisbrucker.net", true },
+ { "hisgifts.com.au", true },
{ "hisingensck.se", true },
{ "hisnet.de", true },
{ "hispanic.dating", true },
@@ -15496,6 +16253,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hiteco.com", true },
{ "hititgunesi-tr.com", true },
{ "hitmanstat.us", true },
+ { "hitn.at", true },
{ "hitoapi.cc", true },
{ "hitocom.net.br", true },
{ "hitokoto-mania.com", true },
@@ -15508,28 +16266,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hiv-symptome.de", true },
{ "hiv.com.tw", true },
{ "hiv.gov", true },
- { "hivatal-info.hu", true },
{ "hivatalinfo.hu", true },
{ "hiverlune.net", true },
{ "hiwiki.tk", true },
{ "hiyacar.co.uk", true },
{ "hiyobi.me", true },
- { "hiyuki2578.net", true },
{ "hizzacked.xxx", true },
{ "hj-mosaiques.be", true },
{ "hj.rs", true },
+ { "hj2999.com", true },
+ { "hj3455.com", true },
{ "hjartasmarta.se", true },
- { "hjf-immobilien.de", true },
{ "hjkbm.cn", true },
- { "hjkhs.cn", true },
{ "hjort.land", true },
{ "hjortland.org", true },
{ "hjphoto.co.uk", true },
{ "hjtky.cn", true },
{ "hjw-kunstwerk.de", true },
{ "hk.search.yahoo.com", false },
+ { "hkbsurgery.com", true },
{ "hkdobrev.com", true },
+ { "hkr.at", true },
{ "hks.pw", true },
+ { "hktkl.com", true },
{ "hkustmbajp.com", true },
{ "hl7999.com", true },
{ "hl8999.com", true },
@@ -15539,7 +16298,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hledejpravnika.cz", true },
{ "hlfh.space", true },
{ "hlidacnajemneho.cz", true },
+ { "hlin.cloud", true },
{ "hlinformatics.nl", true },
+ { "hloe0xff.ru", true },
{ "hlsmandarincentre.com", true },
{ "hlucas.de", true },
{ "hm773.net", true },
@@ -15558,9 +16319,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hoarding.me", true },
{ "hobby-drechselei.de", true },
{ "hobbyspeed.com", true },
- { "hocassian.cn", true },
{ "hochhaus.us", true },
{ "hochoukikikiraku.com", true },
+ { "hochyi.com", true },
{ "hochzeit-dana-laurens.de", true },
{ "hochzeitsfotograf-deinfoto.ch", true },
{ "hochzeitsgezwitscher.de", true },
@@ -15573,6 +16334,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hoe.re", true },
{ "hoeft-autolackierung.de", true },
{ "hoekvanholland.eu", true },
+ { "hoepli.it", true },
{ "hoeren.club", true },
{ "hoesnelwasik.nl", true },
{ "hoevenstein.nl", true },
@@ -15582,9 +16344,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hofapp.de", true },
{ "hofauer.de", true },
{ "hoflerlawfirm.com", true },
+ { "hogepad.com", true },
{ "hogl.dk", true },
{ "hogrebe.de", true },
{ "hogwarts.io", true },
+ { "hohenleimbach.de", true },
{ "hohm.in", true },
{ "hoiquanadida.com", true },
{ "hoken-wakaru.jp", true },
@@ -15614,11 +16378,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "holoxplor.space", true },
{ "holstphoto.com", true },
{ "holvonix.com", true },
- { "holy-hi.com", true },
{ "holydragoon.jp", true },
{ "holygrail.games", true },
{ "holyhiphopdatabase.com", true },
- { "holymolycasinos.com", true },
+ { "holytransaction.com", true },
{ "holywhite.com", true },
{ "holz.nu", true },
{ "holzheizer-forum.de", true },
@@ -15629,18 +16392,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "holzundgarten.de", true },
{ "holzvergaser-forum.de", true },
{ "homatism.com", true },
- { "home-work-jobs.com", true },
+ { "home-insurance-quotes.tk", true },
{ "homeautomated.com", true },
{ "homebasedsalons.com.au", true },
{ "homebodyalberta.com", true },
{ "homecareassociatespa.com", true },
{ "homecarpetcleaning.co.uk", true },
{ "homecheck.gr", true },
- { "homecoming.city", true },
+ { "homefacialpro.com", false },
{ "homegardeningforum.com", true },
{ "homegardenresort.nl", true },
+ { "homegreenmark.com", true },
{ "homehuntertoronto.com", true },
{ "homehunting.pt", true },
+ { "homeimagician.com.au", true },
+ { "homem-viril.com", true },
{ "homeodynamics.com", true },
{ "homeoesp.org", true },
{ "homeofjones.net", true },
@@ -15651,7 +16417,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "homeprivate.de", true },
{ "homeseller.com", true },
{ "homeserver-kp.de", true },
+ { "homesteadandprepper.com", true },
{ "homesteadfarm.org", true },
+ { "homewatt.co.uk", true },
{ "homeyou.com", true },
{ "hommeatoutfaire.be", true },
{ "homophoni.com", true },
@@ -15663,13 +16431,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hondenoppasfraneker.nl", true },
{ "honey.is", true },
{ "honeybadger.io", false },
- { "honeybeard.co.uk", true },
{ "honeycome.net", true },
{ "honeycreeper.com", true },
{ "honeyhaw.com", true },
{ "honeypot.net", true },
+ { "hong.io", true },
{ "hongoi.com", true },
- { "honkion.net", true },
{ "honovere.de", true },
{ "hontoir.eu", true },
{ "hoodtrader.com", true },
@@ -15685,12 +16452,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hopconseils.ch", true },
{ "hopconseils.com", true },
{ "hope-line-earth.jp", true },
+ { "hopesanddreams.org.uk", true },
{ "hopla.sg", true },
{ "hoplongtech.com", true },
- { "hoponmedia.de", true },
{ "hopps.me", true },
{ "hoppyx.com", true },
- { "hopzone.net", true },
{ "hor.website", true },
{ "horaceli.com", true },
{ "horackova.info", true },
@@ -15707,9 +16473,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hornyforhanzo.com", true },
{ "horodance.dk", true },
{ "horrell.ca", true },
- { "horrendous-servers.com", true },
+ { "horrormovies.gr", true },
{ "horsehunter.co.uk", true },
{ "horstmanshof.eu", true },
+ { "horton-brasses.com", true },
{ "hory.me", true },
{ "horza.org", true },
{ "hoshimaq.com.br", true },
@@ -15742,20 +16509,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hostmodern.com.au", true },
{ "hosts.cf", true },
{ "hostserv.org", true },
- { "hostworkz.com", true },
- { "hosyaku.gr.jp", true },
{ "hotcandlestick.com", true },
{ "hotchillibox.com", true },
+ { "hotcoin.io", true },
+ { "hotdoc.com.au", true },
{ "hotel-kronjuwel.de", true },
{ "hotel-le-vaisseau.ch", true },
{ "hotel-pension-sonnalp.eu", true },
+ { "hotel-rosner.at", true },
{ "hotelamgarnmarkt.at", false },
+ { "hotelarevalo.com", true },
{ "hotelcoliber.pl", true },
{ "hotelflow.com.br", true },
{ "hotelident.de", true },
{ "hotello.io", true },
{ "hotelmap.com", true },
+ { "hotelpostaorvieto.it", true },
{ "hotels-insolites.com", true },
+ { "hotels3d.com", true },
{ "hotels4teams.com", true },
{ "hotelsinbuxton.com", true },
{ "hotelsinformer.com", true },
@@ -15765,7 +16536,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hotesb.com", true },
{ "hotesb.net", true },
{ "hothbricks.com", true },
- { "hotjuice.com", true },
{ "hotnewhiphop.com", true },
{ "hoto.us", true },
{ "hoton.in", true },
@@ -15784,43 +16554,47 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "housekeeperlondon.co.uk", true },
{ "houseofherbs.gr", true },
{ "houseofhouston.com", true },
+ { "houseofyee.com", true },
{ "houser.lu", true },
{ "housese.at", true },
{ "housetalk.ru", true },
{ "houstonapartmentinsiders.com", true },
{ "houstonauthorizedrepair.com", true },
{ "houstoncreditlaw.com", true },
+ { "houstontxlocksmiths.com", true },
{ "houtinee.com", true },
{ "how2play.pl", true },
{ "howa-n.net", true },
{ "howardtyson.com", true },
{ "howbehealthy.com", true },
{ "howbigismybuilding.com", true },
+ { "howellaccounts.co.uk", true },
{ "howgoodwasmysex.com", true },
+ { "howieisawesome.com", true },
{ "howlongtobeatsteam.com", true },
{ "howmanymilesfrom.com", true },
{ "howsecureismypassword.net", true },
{ "howsmyssl.com", true },
{ "howsmytls.com", true },
{ "howsyourhealth.org", true },
+ { "howtocommunicate.com.au", true },
{ "howtogeek.com", true },
{ "howtogeekpro.com", true },
{ "howtogosolar.org", true },
{ "howtoinstall.co", true },
{ "howtolaser.com", true },
+ { "howtoteachviolin.com", true },
{ "howtotech.de", true },
{ "hozana.si", false },
{ "hp-work.net", true },
{ "hp42.de", true },
{ "hpac-portal.com", true },
{ "hpbn.co", true },
- { "hpeditor.tk", true },
- { "hpepub.com", false },
+ { "hpepub.com", true },
{ "hpisavageforum.com", true },
{ "hpkp-faq.de", true },
{ "hpnow.com.br", true },
{ "hps.hu", true },
- { "hqq.tv", true },
{ "hquest.pro.br", true },
{ "hqwebhosting.tk", false },
{ "hr-tech.shop", true },
@@ -15835,6 +16609,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hreflang.info", true },
{ "hrjfeedstock.com", true },
{ "hrjfeedstock.org", true },
+ { "hrk.io", true },
{ "hrobert.hu", true },
{ "hroling.nl", true },
{ "hroschyk.cz", true },
@@ -15846,13 +16621,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hs-arbeitsschutz.de", true },
{ "hs-group.net", true },
{ "hs-umformtechnik.de", true },
+ { "hsappstatic.net", true },
{ "hscorp.de", true },
+ { "hsex.tv", true },
{ "hsivonen.com", true },
{ "hsivonen.fi", true },
{ "hsivonen.iki.fi", true },
{ "hsmr.cc", true },
{ "hsn.com", true },
{ "hsr.gov", false },
+ { "hsts.eu", true },
{ "hsts.me", true },
{ "hstsfail.appspot.com", true },
{ "hstspreload.appspot.com", true },
@@ -15864,6 +16642,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "htaccessbook.com", true },
{ "htaps.com", true },
{ "hte.ovh", true },
+ { "hti.digital", true },
{ "html.moe", true },
{ "html5.org", true },
{ "html5media.info", true },
@@ -15875,9 +16654,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "htsure.ma", true },
{ "http2.eu", true },
{ "http2.pro", true },
+ { "https-rulesets.org", true },
{ "https.dk", true },
{ "https.jetzt", true },
- { "https.ren", true },
{ "https4all.org", true },
{ "httpsecured.net", true },
{ "httpsecurityreport.com", true },
@@ -15894,25 +16673,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hu8588.com", true },
{ "hu8777.com", true },
{ "hu8bet.com", true },
- { "hu8hu8.com", true },
{ "hua-in.com", true },
{ "hua-in.net", true },
{ "hua-li88.com", true },
{ "hua-li88.net", true },
{ "huagati.com", true },
{ "huahinpropertylisting.com", true },
- { "huang-haitao.com", true },
+ { "huangjiaint.com", true },
{ "huangjingjing.com", true },
{ "huangliangbo.com", true },
{ "huangting.me", true },
{ "huangzenghao.cn", false },
+ { "huaqian.art", true },
{ "huashan.co.uk", true },
{ "huaxueba.com", true },
{ "hub.org.ua", true },
{ "hub385.com", true },
+ { "hubapi.com", true },
+ { "huber-informatik.de", true },
{ "hubok.net", true },
{ "hubrecht.at", true },
- { "hubrick.com", true },
+ { "hubspot.com", true },
{ "huchet.me", true },
{ "hudebnibazarmixer.cz", true },
{ "hudrydum.cz", true },
@@ -15920,15 +16701,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "huduser.gov", true },
{ "huendeleskopfhuette.de", true },
{ "huersch.com", true },
+ { "hues-in-lee.de", true },
{ "huffduffer.com", true },
+ { "huffsinsurance.com", true },
{ "hughtodd.ink", true },
{ "hugi.is", true },
{ "hugizrecords.com", true },
{ "huglen.info", true },
+ { "hugo6.com", true },
{ "hugofs.com", true },
{ "hugolynx.fr", true },
{ "huguesblanchard.paris", true },
{ "huguesditciles.com", true },
+ { "huh.gdn", true },
{ "huh.today", true },
{ "hui-in.com", true },
{ "hui-in.net", true },
@@ -15951,8 +16736,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "human-clone.com", true },
{ "humanenrich.com", true },
{ "humanesources.com", true },
- { "humanexperiments.com", true },
{ "humanity.com", true },
+ { "humankode.com", true },
{ "humans.io", true },
{ "humanzee.com", true },
{ "humblebee.at", true },
@@ -15982,9 +16767,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "humblebeeshop.com.au", true },
{ "humbledot.com", true },
{ "humboldtmfg.com", true },
+ { "humeur.de", true },
{ "hummy.tv", true },
{ "humorcaliente.com", true },
- { "humorce.com", true },
{ "humpchies.com", true },
{ "humpen.se", true },
{ "humppakone.com", true },
@@ -15993,14 +16778,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hundesport-psvhalle.de", true },
{ "hundeverwaltung.de", true },
{ "hundter.com", true },
- { "hunqz.com", true },
{ "hunstoncanoeclub.co.uk", true },
+ { "hunter-read.com", true },
{ "hunter.io", true },
{ "hunterkehoe.com", true },
{ "huntexpired.com", true },
{ "huntingdonbouncers.co.uk", true },
{ "huntingdonlifesciences.com", true },
- { "huoduan.com", true },
+ { "huntsmansecurity.com", true },
+ { "huntsvillecottage.ca", true },
+ { "huonit.com.au", true },
{ "hup.hu", true },
{ "hupp.se", true },
{ "hurd.is", true },
@@ -16012,10 +16799,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "husakbau.at", true },
{ "hushfile.it", true },
{ "husic.net", false },
+ { "huskyeye.de", true },
{ "huskyinc.us", true },
{ "hussam.eu.org", true },
- { "hustle.com", true },
- { "hustle.life", true },
{ "hustlehope.com", true },
{ "hustunique.com", true },
{ "huto.ml", true },
@@ -16023,7 +16809,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "huutonauru.net", true },
{ "huwcbjones.co.uk", true },
{ "huwcbjones.uk", true },
+ { "huxcoconstruction.com", true },
{ "huxley.net", true },
+ { "huynhviet.com", true },
{ "huyvu.nl", true },
{ "hvdbox.de", true },
{ "hveradistributions.com", true },
@@ -16039,8 +16827,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hxp.io", true },
{ "hxsf.me", true },
{ "hxying.com", true },
- { "hybridiyhdistys.fi", true },
- { "hybridklubben.fi", true },
+ { "hybridragon.net", true },
{ "hybridworx.com", true },
{ "hybridworx.de", true },
{ "hybridworx.eu", true },
@@ -16050,7 +16837,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hycken.com", true },
{ "hyckenberg.com", true },
{ "hyderabadonlinegifts.com", true },
- { "hydrabit.nl", true },
{ "hydrasolutions.de", true },
{ "hydrazin.pw", true },
{ "hydro17.com", true },
@@ -16060,12 +16846,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hydroturbine.info", true },
{ "hydrozone.fr", true },
{ "hyec.jp", true },
- { "hyeok.org", true },
{ "hygo.com", true },
{ "hyk.me", true },
{ "hylemorphica.org", true },
{ "hylians.com", true },
{ "hynek.me", true },
+ { "hyparia.fr", true },
{ "hype.ru", true },
{ "hypemgmt.com", true },
{ "hyper-text.org", true },
@@ -16075,6 +16861,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hyperion.io", true },
{ "hyperreal.biz", true },
{ "hypersomnia.com", true },
+ { "hyperstack.org", true },
{ "hyperthymia.com", true },
{ "hyphen.co.za", true },
{ "hyphenpda.co.za", true },
@@ -16084,7 +16871,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "hypothes.is", true },
{ "hypothyroidmom.com", true },
{ "hyundai.no", true },
+ { "hyvanilmankampaamo.fi", true },
{ "hyvinvointineuvoja.fi", true },
+ { "i-aloks.ru", true },
{ "i-geld.de", true },
{ "i-hakul.net", true },
{ "i-logic.co.jp", false },
@@ -16098,32 +16887,32 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "i-telligence.de", true },
{ "i-verbi.it", true },
{ "i00.eu", true },
- { "i1314.gdn", true },
+ { "i1314.gdn", false },
{ "i1place.com", true },
- { "i28s.com", true },
{ "i2b.ro", true },
{ "i5y.co.uk", true },
{ "i5y.org", true },
{ "i66.me", true },
{ "i879.com", true },
{ "ia.net", true },
- { "ia1000.com", true },
{ "iaco.li", true },
{ "iactu.info", true },
{ "iaeste.no", true },
{ "iaeste.or.jp", true },
- { "iahemobile.net", true },
+ { "iaf.gov", true },
+ { "iahemobile.net", false },
{ "iainsimms.co.uk", true },
{ "iainsimms.com", true },
{ "iainsimms.me", true },
{ "ialis.me", true },
+ { "iam.lc", true },
{ "iam.soy", true },
{ "iambozboz.co.uk", true },
{ "iamcarrico.com", true },
{ "iamhansen.xyz", true },
{ "iamjoshellis.com", true },
{ "iamlbk.com", true },
- { "iamle.com", true },
+ { "iamlzh.com", true },
{ "iamtheib.me", true },
{ "iamtonyarthur.com", true },
{ "iamusingtheinter.net", true },
@@ -16133,12 +16922,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "iane-ccs.com", true },
{ "ianix.com", true },
{ "ianjmoriarty.com", true },
+ { "ianklug.com", true },
{ "iankmusic.com", true },
{ "ianmooreis.me", true },
{ "ianmoriarty.com.au", true },
- { "ianwalsh.org", true },
+ { "ianwalsh.org", false },
{ "iap.network", true },
{ "ias-gruppe.net", true },
+ { "iassess.eu", true },
{ "iatfei.com", true },
{ "iavian.com", true },
{ "iba.community", true },
@@ -16149,21 +16940,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "iberiaversicherungen.com", true },
{ "ibericaderedes.es", true },
{ "ibexcore.com", true },
+ { "ibigawamizueco.com", true },
{ "ibin.co", true },
{ "ibiz.mk", true },
- { "ibnw.de", true },
+ { "ibodyiq.com", true },
{ "ibpegasus.tk", true },
- { "ibpsrecruitment.co.in", true },
{ "ibrainmedicine.org", true },
{ "ibrom.eu", true },
+ { "ibstyle.tk", true },
+ { "ibuki.run", true },
{ "ibwc.gov", true },
{ "ic-lighting.com.au", true },
+ { "ic-spares.com", true },
{ "ic3.gov", true },
+ { "icabanken.se", true },
{ "icafecash.com", true },
{ "icake.life", true },
{ "icanhasht.ml", true },
{ "icarlos.net", true },
+ { "icasture.top", true },
{ "icbemp.gov", true },
+ { "iccpublisher.com", true },
{ "ice.xyz", true },
{ "iceberg.academy", true },
{ "icebook.co.uk", true },
@@ -16181,14 +16978,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "icloudlogin.com", true },
{ "icmhd.ch", true },
{ "icmp2018.org", true },
- { "icmshoptrend.com", true },
+ { "icnsoft.me", true },
{ "icnsoft.org", true },
- { "ico500.com", true },
+ { "icobench.com", true },
{ "icodeconnect.com", true },
{ "icoh.it", true },
- { "icondoom.nl", true },
{ "iconomi.net", true },
- { "icowhitepapers.co", true },
+ { "icpc.pp.ua", true },
{ "icq-project.net", true },
{ "icsadviseurs.nl", true },
{ "icsfinomornasco.gov.it", true },
@@ -16198,7 +16994,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ict-radar.com", true },
{ "ict-radar.nl", true },
{ "ictcareer.ch", true },
- { "ictinforensics.org", true },
{ "ictl.eu", true },
{ "ictradar.com", true },
{ "icyapril.com", true },
@@ -16212,58 +17007,68 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "id0-rsa.pub", true },
{ "id7.fr", true },
{ "idaeus.eu", true },
- { "idafauziyah.com", true },
{ "idahoansforliberty.net", true },
{ "idarv.com", true },
{ "idaspis.com", true },
{ "idatha.de", true },
+ { "idblab.tk", true },
{ "idc-business.be", true },
- { "idc.yn.cn", true },
{ "idconsult.nl", true },
+ { "idealimplant.com", true },
{ "idealinflatablehire.co.uk", true },
{ "idealninajemce.cz", false },
+ { "idealsegurancaeletronica.com.br", true },
{ "idealtruss.com", true },
{ "idealtruss.com.tw", true },
{ "idealwhite.space", true },
{ "ideaman924.com", true },
{ "ideashop.com", true },
{ "ideaweb.de", true },
+ { "ideiasefinancas.com.br", true },
+ { "idenamaislami.com", true },
{ "idensys.nl", false },
{ "ident-clinic.be", true },
+ { "identassist.com", true },
{ "identifyme.net", true },
+ { "identigraf.center", true },
{ "identity.plus", true },
- { "identitytheft.gov", true },
{ "idered.net", true },
{ "idesignstudio.de", true },
{ "idexxpublicationportal.com", true },
+ { "idfy.io", true },
{ "idgard.de", false },
{ "idgateway.co.uk", true },
{ "idhosts.co.id", true },
- { "idid.tk", true },
{ "idiotentruppe.de", true },
+ { "idisposable.co.uk", true },
{ "idlethoughtsandramblings.com", true },
{ "idmanagement.gov", true },
{ "idmobile.co.uk", true },
{ "idndx.com", true },
{ "idoc24.com", true },
+ { "idodiandina.com", true },
{ "idolf.dk", true },
{ "idolish7.fun", true },
+ { "idolknow.com", true },
{ "idolshop.dk", true },
{ "idolshop.me", true },
{ "idontplaydarts.com", true },
{ "idranktoomuch.coffee", true },
+ { "idratherbequilting.com", true },
{ "idraulico-roma.it", true },
{ "idraulico-roma.org", true },
{ "idraulico.roma.it", true },
{ "idrinktoomuch.coffee", true },
{ "idrissi.eu", true },
{ "idrycleaningi.com", true },
+ { "idtheft.gov", true },
{ "idubaj.cz", true },
{ "idunno.org", true },
{ "idvl.de", true },
{ "ie.search.yahoo.com", false },
{ "iea-annex61.org", true },
{ "ieedes.com", true },
+ { "ieeedeis.org", true },
{ "ieeesb.nl", true },
{ "ieeesbe.nl", true },
{ "ieeespmb.org", true },
@@ -16272,13 +17077,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "iemb.tk", true },
{ "ienakanote.com", false },
{ "ies-italia.it", true },
- { "ietsdoenofferte.nl", true },
{ "ieval.ro", true },
{ "iewar.com", true },
{ "ifamily.top", false },
{ "ifangpei.cn", true },
{ "ifangpei.com.cn", true },
- { "ifconfig.co", true },
+ { "ifcfg.jp", true },
{ "ifelse.io", true },
{ "ifengge.cn", true },
{ "ifengge.me", true },
@@ -16297,6 +17101,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "iftarsaati.org", true },
{ "iftrue.de", true },
{ "ifttl.com", false },
+ { "ifxd.bid", true },
{ "ifyou.live", true },
{ "ig.com", true },
{ "igaryhe.io", true },
@@ -16313,7 +17118,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "igmus.org", true },
{ "ignace72.eu", true },
{ "ignacjanskiednimlodziezy.pl", true },
+ { "ignat-mag.com", true },
{ "ignat.by", true },
+ { "ignatovich.by", true },
{ "ignatovich.me", true },
{ "ignet.gov", true },
{ "ignitedlocal.com", true },
@@ -16324,17 +17131,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "igsmgmt.com", true },
{ "iguana.com.ec", false },
{ "ih8sn0w.com", true },
- { "iha6.com", true },
{ "ihacklabs.com", true },
+ { "ihakkitekin.com", true },
{ "ihatethissh.it", true },
{ "ihc.im", true },
{ "ihkk.net", true },
+ { "ihls.stream", true },
+ { "ihls.world", true },
+ { "ihls.xyz", true },
+ { "ihoey.com", true },
{ "ihollaback.org", true },
{ "ihopeit.works", true },
{ "ihostup.net", true },
{ "ihrhost.com", true },
+ { "ihtdenisjaccard.com", true },
{ "ii74.com", true },
{ "iiit.pl", true },
+ { "iiong.com", false },
{ "iirii.com", true },
{ "iix.se", true },
{ "ijm.io", true },
@@ -16344,7 +17157,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ijunohana.jp", true },
{ "ikachalife.com", true },
{ "ikarate.ru", true },
+ { "ikarr.com", true },
{ "ikeacareers.co.uk", true },
+ { "ikebukuro-shame.com", true },
+ { "ikedaquotes.org", true },
{ "ikespta.com", true },
{ "ikeyless.com", true },
{ "ikigaiweb.com", true },
@@ -16374,6 +17190,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ilektronika-farmakeia-online.gr", true },
{ "ilemonrain.com", false },
{ "ilhan.name", true },
+ { "ilhansubasi.com", true },
{ "iliastsi.net", true },
{ "iligang.cn", true },
{ "iligang.com", true },
@@ -16398,10 +17215,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ilmiobusinessonline.it", true },
{ "ilmiogiardiniere.it", true },
{ "ilmuk.org", false },
+ { "ilookz.nl", true },
{ "ilove.fish", true },
{ "ilrg.com", true },
- { "iltec-prom.ru", true },
- { "iltec.ru", true },
{ "iltisim.ch", true },
{ "ilweb.es", true },
{ "ilya.pp.ua", true },
@@ -16413,8 +17229,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "imadalin.ro", true },
{ "image-drive.de", true },
{ "imagebin.ca", true },
- { "imagecurl.com", true },
- { "imagecurl.org", true },
{ "imagefu.com", true },
{ "imageination.co", true },
{ "imagenesdedibujosalapizfacilesdehacer.com", true },
@@ -16429,6 +17243,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "imanageproducts.co.uk", true },
{ "imanageproducts.uk", true },
{ "imanesdeviaje.com", true },
+ { "imaple.org", true },
{ "imarkethost.co.uk", true },
{ "imask.ml", true },
{ "imawhale.com", true },
@@ -16448,9 +17263,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "imgaa.com", true },
{ "imgbb.com", true },
{ "imgg.es", true },
- { "imguoguo.com", true },
+ { "imgup.co", true },
{ "imguploaden.nl", true },
+ { "imhua.com", true },
{ "imi-rhapsody.eu", true },
+ { "iminshell.com", true },
{ "imirhil.fr", true },
{ "imitza.com", true },
{ "imjad.cn", true },
@@ -16459,15 +17276,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "imkerei-freilinger.de", false },
{ "imkerverein-moenchswald.de", true },
{ "imlinan.com", true },
- { "imlonghao.com", true },
{ "immaterium.de", true },
- { "immaternity.com", true },
{ "immatix.xyz", true },
{ "immersion-pictures.com", true },
{ "immersivewebportal.com", true },
+ { "immigrationdirect.com.au", true },
{ "immo-agentur.com", true },
{ "immo-passion.net", true },
- { "immo-vk.de", true },
{ "immobiliarecapitani.com", true },
{ "immobilien-badlippspringe.de", true },
{ "immobilien-in-istanbul.de", true },
@@ -16478,7 +17293,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "immortal.run", true },
{ "imobile3.com", true },
{ "imokuri123.com", true },
- { "imoner.com", true },
{ "imouto.my", false },
{ "imouyang.com", true },
{ "impact.health.nz", true },
@@ -16504,12 +17318,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "imppac.de", true },
{ "imprendo.co", true },
{ "imprendo.pro", true },
- { "imprenta-es.com", false },
{ "impresa-di-pulizie.org", true },
{ "impresa-pulizie.it", true },
{ "impresadipulizie.roma.it", true },
{ "impresaedile.roma.it", true },
{ "imprimante-3d-store.fr", true },
+ { "improfestival.ee", true },
{ "improklinikken.dk", true },
{ "improved-madness.de", true },
{ "impulsionsa.com", true },
@@ -16520,9 +17334,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "imrunner.ru", true },
{ "ims-sargans.ch", true },
{ "imscompany.com", true },
- { "imwnk.cn", false },
+ { "imwalking.de", true },
+ { "imwnk.cn", true },
{ "imydl.com", true },
{ "imydl.tech", true },
+ { "imyjy.cn", true },
+ { "imyrs.cn", true },
{ "imyunya.com", true },
{ "imyvm.com", true },
{ "imyz.tw", true },
@@ -16541,10 +17358,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "inbox.google.com", true },
{ "inbulgaria.info", true },
{ "incarna.co", true },
+ { "incert.cn", true },
{ "incertint.com", true },
{ "inchcape-fleet-autobid.co.uk", true },
{ "inche-ali.com", true },
{ "inchenaim.com", true },
+ { "inchidi.id", true },
{ "incigma.com", true },
{ "includesubdomains.preloaded.test", true },
{ "includesubdomains2.preloaded.test", true },
@@ -16556,6 +17375,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "incowrimo.org", true },
{ "incparadise.net", true },
{ "incubos.org", true },
+ { "incy.io", true },
{ "ind.ie", true },
{ "indarceky.sk", false },
{ "indecipherable.info", true },
@@ -16568,15 +17388,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "indian-elephant.com", true },
{ "indianaantlersupply.com", true },
{ "indianaberry.com", true },
+ { "indianapolislocksmithinc.com", true },
+ { "indiatrademarkwatch.com", true },
{ "indiawise.co.uk", true },
{ "indiayogastudio.net", true },
{ "indicateurs-flash.fr", true },
{ "indiegame.space", true },
{ "indievelopment.nl", true },
+ { "indigitalagency.com", true },
{ "indigoinflatables.com", true },
{ "indigosakura.com", true },
{ "indiraactive.com", true },
- { "indiroyunu.com", true },
{ "inditip.com", true },
{ "indochina.io", true },
{ "indogerman.de", true },
@@ -16584,12 +17406,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "indogermantrade.de", true },
{ "indoorcomfortteam.com", true },
{ "indoorplantsexpert.com", true },
- { "indostar303.com", true },
{ "indovinabank.com.vn", true },
{ "indusap.com", true },
{ "indusfastremit-us.com", true },
{ "indusfastremit.com", true },
{ "indust.me", true },
+ { "industriafranchini.com", true },
{ "industrialstarter.com", true },
{ "indybay.org", true },
{ "ineardisplay.com", true },
@@ -16604,15 +17426,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "inetsoftware.de", true },
{ "inevitavelbrasil.com.br", true },
{ "inf-fusion.ca", true },
+ { "inference.biz.tr", true },
{ "infermiere.roma.it", true },
+ { "inff.info", true },
{ "inficom.org", true },
{ "infinite.hosting", true },
{ "infinitegroup.info", true },
{ "infinitiofallentownparts.com", true },
{ "infinitiofaugustaparts.com", true },
{ "infinitioflynnwoodparts.com", true },
+ { "infinitomaisum.com", true },
{ "infinity.to", true },
{ "infinitybas.com", true },
+ { "infinitybc.se", true },
{ "infinityengine.org", true },
{ "infinityepos.co.uk", true },
{ "infirmiere-canadienne.com", true },
@@ -16621,6 +17447,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "inflatablesny.com", true },
{ "inflatadays.co.uk", true },
{ "inflatamania.com", true },
+ { "inflationstation.net", true },
{ "inflexsys.com", true },
{ "influencerchampions.com", true },
{ "influo.com", true },
@@ -16629,7 +17456,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "info-d-74.com", true },
{ "info-screen.me", true },
{ "info-screw.com", true },
- { "infoamin.com", true },
{ "infobae.com", true },
{ "infocity-tech.fr", true },
{ "infocommsociety.com", true },
@@ -16637,17 +17463,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "infocusvr.net", true },
{ "infogrfx.com", true },
{ "infomegastore.com", true },
+ { "infomir.eu", true },
{ "infomisto.com", true },
+ { "infopagina.es", true },
{ "infopier.sg", true },
{ "infopulsa.com", true },
+ { "infopuntzorg.nl", true },
{ "infor-allaitement.be", true },
{ "informaciondeciclismo.com", true },
{ "informatiebeveiliging.nl", true },
{ "informatik-handwerk.de", true },
{ "informationrx.org", true },
+ { "informhealth.com", true },
{ "informnapalm.org", true },
{ "infosec-handbook.eu", true },
- { "infosec.exchange", true },
+ { "infosec.exchange", false },
{ "infosec.pizza", true },
{ "infosec.wiki", true },
{ "infosenior.ch", true },
@@ -16657,6 +17487,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "infotune.nl", true },
{ "infovision-france.com", true },
{ "infoweb.ee", true },
+ { "infr.red", true },
{ "infra.land", true },
{ "infra.press", true },
{ "infrafire.com", true },
@@ -16669,9 +17500,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "infranium.net", true },
{ "infranium.org", true },
{ "infranotes.com", true },
+ { "infrapass.com", true },
{ "infrapirtis.lt", true },
- { "infrarank.com", true },
{ "infrarank.net", true },
+ { "infrathink.com", true },
+ { "infuzeit.com.au", true },
{ "ing-buero-junk.de", true },
{ "ing89.cc", true },
{ "ing89.com", true },
@@ -16685,6 +17518,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ingerhy.com", true },
{ "ingi.ga", true },
{ "ingjobs.ch", true },
+ { "inglebycakes.co.uk", true },
{ "inglesnarede.com.br", true },
{ "ingo-schlueter.de", true },
{ "ingoschlueter.de", true },
@@ -16692,16 +17526,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "inhaltsangabe.de", true },
{ "inheritestate.com", true },
{ "inhouseents.co.uk", true },
+ { "iniiter.com", true },
{ "inima.org", true },
{ "inios.fr", true },
{ "inishbofin.ie", true },
{ "initq.net", true },
+ { "initramfs.io", true },
{ "initrd.net", true },
{ "inixal.com", true },
{ "ink.horse", true },
{ "inkable.com.au", true },
- { "inkbunny.net", false },
- { "inkhor.se", true },
+ { "inkeliz.com", true },
{ "inkontriamoci.com", true },
{ "inksay.com", true },
{ "inkspire.co.uk", true },
@@ -16717,8 +17552,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "inmoodforsex.com", true },
{ "inmusrv.de", true },
{ "innerfence.com", true },
+ { "innerlightcrystals.co.uk", true },
{ "innermostparts.org", true },
{ "innersafe.com", true },
+ { "innocenceseekers.net", true },
{ "innohb.com", true },
{ "innolabfribourg.ch", true },
{ "innoloop.com", true },
@@ -16730,12 +17567,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "innovate-indonesia.com", true },
{ "innovation-workshop.ro", true },
{ "innovation.gov", false },
- { "innoventure.de", true },
- { "innovum.cz", true },
+ { "innovum.cz", false },
{ "innsalzachsingles.de", true },
{ "innwan.com", true },
{ "inoa8.com", true },
- { "inorder.website", true },
{ "inovat.ma", true },
{ "inovatec.com", true },
{ "inovatecsystems.com", true },
@@ -16746,11 +17581,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ins1gn1a.com", true },
{ "insblauehinein.nl", true },
{ "inscomers.net", true },
+ { "inscripcionessena.com", true },
{ "insecure.org.je", true },
{ "insertcoins.net", true },
{ "insgesamt.net", true },
{ "inshapenutrition.com.br", true },
- { "insho.fashion", true },
{ "inside19.com", true },
{ "insideaudit.com", true },
{ "insidethefirewall.tk", true },
@@ -16759,6 +17594,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "insighti.eu", true },
{ "insighti.org", true },
{ "insighti.sk", true },
+ { "insignificant.space", true },
{ "insinuator.net", true },
{ "insistel.com", true },
{ "insolent.ch", true },
@@ -16778,9 +17614,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "instant-thinking.de", true },
{ "instant.io", true },
{ "instantkhabar.com", true },
- { "instantsubs.de", true },
{ "instava.cz", true },
{ "instawi.com", true },
+ { "instead.com.au", true },
{ "instela.com", true },
{ "instelikes.com.br", true },
{ "instics.com", true },
@@ -16793,7 +17629,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "insult.es", true },
{ "insurance321.com", true },
{ "insureon.com", true },
- { "insurethebox.tk", true },
{ "insurgentsmustdie.com", true },
{ "int-ma.in", true },
{ "intae.it", true },
@@ -16805,9 +17640,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "integraelchen.de", true },
{ "integralblue.com", true },
{ "integralkk.com", true },
+ { "integratedintegrations.xyz", true },
{ "integratedmedicalonline.com", true },
+ { "integrateur-web-paris.com", true },
{ "integraxor.com.tw", true },
{ "integrity.gov", true },
+ { "integrityokc.com", true },
{ "integrityoklahoma.com", true },
{ "integrogroup.com", true },
{ "integromat.com", true },
@@ -16820,12 +17658,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "intelhost.net", true },
{ "intellar.com", true },
{ "intellectdynamics.com", true },
+ { "intelliance.eu", true },
{ "intelligence-explosion.com", true },
{ "intellinetixvibration.com", true },
{ "intelly.nl", true },
{ "intelly365.nl", true },
{ "intencje.pl", true },
- { "intensifyrsvp.com.au", true },
{ "inter-corporate.com", true },
{ "inter-culinarium.com", true },
{ "interaffairs.com", true },
@@ -16839,29 +17677,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "interfesse.net", true },
{ "interfloraservices.co.uk", true },
{ "interflores.com.br", true },
- { "interfug.de", true },
{ "intergozd.si", true },
{ "interiery-waters.cz", true },
{ "interimages.fr", true },
- { "interiorcheapo.com", true },
{ "interiordesignsconcept.com", true },
- { "interiortradingco.com.au", true },
{ "interisaudit.com", true },
{ "interlingvo.biz", true },
{ "intermax.nl", true },
{ "intermedinet.nl", true },
- { "internacao.com", true },
{ "internalkmc.com", true },
{ "internaluse.net", true },
{ "international-arbitration-attorney.com", true },
+ { "international-books.org", true },
{ "international-nash-day.com", true },
{ "internationalfashionjobs.com", true },
+ { "internationalschoolnewyork.com", true },
{ "internationaltalento.it", true },
{ "internect.co.za", true },
+ { "internet-aukcion.info", true },
{ "internet-software.eu", true },
{ "internetaanbieders.eu", true },
{ "internetbank.swedbank.se", true },
{ "internetbugbounty.com", true },
+ { "internetbusiness-howto.com", true },
{ "internetcom.jp", true },
{ "internetfonden.se", true },
{ "internethealthreport.org", true },
@@ -16874,11 +17712,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "internetofinsecurethings.com", true },
{ "internetovehazardnihry.cz", true },
{ "internetpro.me", true },
+ { "internetstaff.com", true },
{ "internetzentrale.net", true },
{ "interracial.dating", true },
{ "interseller.io", true },
{ "interserved.com", false },
- { "interstellarhyperdrive.com", true },
{ "intertime.services", true },
{ "interview-suite.com", true },
{ "interways.de", true },
@@ -16903,6 +17741,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "intraxia.com", true },
{ "intune.life", true },
{ "intvonline.com", true },
+ { "intxt.net", true },
+ { "inumcoeli.com.br", true },
{ "inup.jp", true },
{ "inusasha.de", true },
{ "inuyasha-petition.tk", true },
@@ -16923,20 +17763,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "investigatore.it", true },
{ "investigazionimoretti.it", true },
{ "investir.ch", true },
+ { "investor-academy.jp", true },
{ "investor.gov", true },
{ "investoren-beteiligung.de", true },
{ "investorforms.com", true },
- { "investorloanshub.com", true },
{ "investosure.com", true },
{ "investpay.ru", true },
{ "invioinc.com", true },
{ "inviosolutions.com", true },
- { "invis.net", true },
{ "invisible-college.com", true },
{ "invisibles.ch", true },
{ "invisionita.com", true },
{ "invisiverse.com", true },
{ "invitacionesytarjetas.gratis", true },
+ { "invitation-factory.tk", true },
{ "invitescene.com", true },
{ "invitethemhome.com", true },
{ "invkao.com", true },
@@ -16947,6 +17787,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "inwestcorp.se", true },
{ "inzdr.com", true },
{ "inzelabs.com", true },
+ { "inzestfreunde.de", true },
+ { "ioactive.com", true },
{ "iobint.com", true },
{ "iocheck.com", false },
{ "iochen.com", true },
@@ -16970,7 +17812,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "iosnoops.com", true },
{ "iossifovlab.com", true },
{ "iostream.by", true },
- { "iotfen.com", true },
{ "iowaschoolofbeauty.com", true },
{ "ip-blacklist.net", true },
{ "ip-hahn.de", true },
@@ -16978,7 +17819,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ip.sb", true },
{ "ip2country.info", true },
{ "ip3office.com", true },
- { "ip6.li", true },
+ { "ip6.li", false },
{ "ipad.li", true },
{ "ipadkaitori.jp", true },
{ "ipadportfolioapp.com", true },
@@ -16999,7 +17840,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "iphonote.com", true },
{ "ipintel.io", true },
{ "iplabs.de", true },
- { "iplantom.com", true },
{ "iplayradio.net", false },
{ "ipleak.net", true },
{ "ipledgeonline.org", false },
@@ -17007,12 +17847,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ipo-times.jp", true },
{ "ipokabu.net", true },
{ "ipomue.com", false },
+ { "iposm.net", true },
{ "ipresent.com", true },
{ "iprim.ru", true },
{ "iproducemusic.com", true },
- { "iprody.com", true },
{ "ipsec.pl", true },
{ "ipssl.li", true },
+ { "ipstoragesolutions.com", true },
{ "ipstream.it", true },
{ "ipswitch.com.tw", true },
{ "iptvzoom.xyz", true },
@@ -17032,6 +17873,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ir1s.com", true },
{ "iramellor.com", true },
{ "iran-geo.com", true },
+ { "irandp.net", true },
{ "iranian.lgbt", true },
{ "iranianholiday.com", true },
{ "iranjeunesse.com", true },
@@ -17039,6 +17881,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "irayo.net", true },
{ "irc-results.com", true },
{ "ircmett.de", true },
+ { "irdvb.com", true },
{ "iready.ro", true },
{ "ireef.tv", true },
{ "iren.ch", true },
@@ -17065,12 +17908,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ironfistdesign.com", true },
{ "ironhide.de", true },
{ "ironpeak.be", true },
+ { "irrewilse.se", true },
{ "irritant.net", true },
{ "iruarts.ch", true },
{ "iruca.co", true },
{ "is-going-to-rickroll.me", true },
{ "is-sw.net", true },
{ "isaacdgoodman.com", true },
+ { "isaackabel.cf", true },
+ { "isaackabel.ga", true },
+ { "isaackabel.gq", true },
+ { "isaackabel.ml", true },
+ { "isaackabel.tk", true },
{ "isaackhor.com", true },
{ "isaacman.tech", true },
{ "isaacmorneau.com", true },
@@ -17095,7 +17944,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "isecrets.se", true },
{ "iservicio.mx", true },
{ "isfff.com", true },
- { "isfriday.com", true },
{ "isgp-studies.com", true },
{ "ishamf.com", true },
{ "ishangirdhar.com", true },
@@ -17110,24 +17958,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "isitchristmas.com", true },
{ "isitcoffeetime.com", true },
{ "isitdoneyet.gov", true },
+ { "isitpatchtuesday.com", true },
+ { "isitrest.info", true },
{ "isitup.org", true },
{ "iskaron.de", true },
{ "iskaz.rs", true },
{ "iskkk.com", true },
{ "iskkk.net", true },
{ "iskogen.nu", true },
- { "islam.si", true },
{ "islamonline.net", true },
{ "islandhosting.com", true },
- { "islazia.fr", true },
{ "isletech.net", true },
{ "isliada.org", true },
+ { "islief.com", true },
+ { "islykaithecutest.cf", true },
+ { "islykaithecutest.ml", true },
+ { "ismailkarsli.com", true },
{ "ismat.com", true },
{ "ismena.bg", true },
{ "ismetroonfiretoday.com", true },
{ "ismywebsitepenalized.com", true },
{ "isn.cz", true },
- { "isntall.us", true },
+ { "iso27032.com", true },
{ "isognattori.com", true },
{ "isolta.com", true },
{ "isolta.de", true },
@@ -17178,7 +18030,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "istschonsolangeinrente.de", true },
{ "istsi.org", true },
{ "isuzupartscenter.com", true },
- { "isv.online", true },
{ "isvbscriptdead.com", true },
{ "isvsecwatch.org", true },
{ "isyu.xyz", true },
@@ -17193,12 +18044,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "it-maker.eu", true },
{ "it-rotter.de", true },
{ "it-schamans.de", true },
+ { "it-seems-to.work", true },
{ "it-service24.at", true },
{ "it-service24.ch", true },
{ "it-service24.com", true },
{ "it-shamans.de", true },
{ "it-shamans.eu", true },
- { "it-sysoft.com", true },
{ "it-ti.me", true },
{ "it-world.eu", true },
{ "it.search.yahoo.com", false },
@@ -17210,6 +18061,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "italia-store.com", true },
{ "italiachegioca.com", true },
{ "italian.dating", true },
+ { "italianjourneys.com.au", true },
{ "italianshoemanufacturers.com", true },
{ "italieflydrive.nl", true },
{ "italserrande.it", true },
@@ -17217,10 +18069,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "itamservices.nl", true },
{ "itb-online.co.uk", true },
{ "itblog.pp.ua", true },
- { "itbrief.co.nz", true },
- { "itbrief.com.au", true },
{ "itchy.nl", true },
- { "itchybrainscentral.com", true },
{ "itcko.sk", true },
{ "itdashboard.gov", true },
{ "itds-consulting.com", true },
@@ -17244,8 +18093,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ithakama.cz", true },
{ "ithenrik.com", true },
{ "ithinc.net", true },
- { "itilo.de", true },
- { "itiomassagem.com.br", true },
+ { "itikon.com", true },
{ "itis.gov", true },
{ "itis4u.ch", true },
{ "itkaufmann.at", true },
@@ -17254,17 +18102,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "itmindscape.com", true },
{ "itn.co.uk", true },
{ "itneeds.tech", true },
- { "itnews-bg.com", true },
{ "itnota.com", true },
{ "itochan.jp", true },
{ "itogoyomi.com", true },
{ "itooky.com", true },
{ "itpro.ua", true },
- { "itproject.guru", false },
- { "itrack.in.th", true },
{ "itraveille.fr", true },
+ { "itreallyaddsup.com", true },
{ "itring.pl", false },
{ "itruss.com.tw", true },
+ { "itruth.tk", true },
{ "its-future.com", true },
{ "its-gutachten.de", true },
{ "its4living.com", true },
@@ -17290,8 +18137,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "itsstefan.eu", true },
{ "itstatic.tech", true },
{ "itswincer.com", true },
- { "ittop-gabon.com", true },
{ "itzap.com.au", true },
+ { "iusedtosmoke.com", true },
+ { "iuyos.com", true },
+ { "ivact.co.jp", true },
{ "ivanbenito.com", true },
{ "ivancacic.com", false },
{ "ivanmeade.com", true },
@@ -17305,6 +18154,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ivi.mx", true },
{ "ivi.net.br", true },
{ "ivi.pt", true },
+ { "ivig.com.br", true },
{ "ivinet.cl", true },
{ "ivitalia.it", true },
{ "ivo.co.za", true },
@@ -17337,6 +18187,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ixquick.info", true },
{ "ixquick.nl", true },
{ "iyassu.com", true },
+ { "iyouewo.com", true },
{ "iyuanbao.net", true },
{ "iz8mbw.net", true },
{ "izaakbeekman.com", true },
@@ -17359,7 +18210,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "j2ee.cz", true },
{ "j2h.de", true },
{ "j3e.de", true },
- { "j8y.de", true },
{ "ja-dyck.de", true },
{ "ja-gps.com.au", true },
{ "ja-publications.agency", false },
@@ -17381,30 +18231,38 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jabjab.de", true },
{ "jaccblog.com", true },
{ "jacekowski.org", true },
+ { "jacik.cz", true },
{ "jackdawphoto.co.uk", true },
{ "jackdelik.de", true },
{ "jackf.me", true },
+ { "jackhoodtransportation.com", true },
{ "jackingramnissanparts.com", true },
{ "jackpothappy.com", true },
{ "jackrusselterrier.com.br", true },
{ "jackson-quon.com", true },
{ "jackson.jp", true },
{ "jacksonvillestation.com", true },
+ { "jacksutton.info", true },
{ "jackyliao123.tk", true },
+ { "jackyyf.com", false },
{ "jaco.by", true },
{ "jacobamunch.com", true },
{ "jacobdevans.com", true },
{ "jacobhaug.com", false },
{ "jacobi-server.de", true },
{ "jacobian.org", true },
+ { "jacobjangles.com", true },
{ "jacobphono.com", true },
{ "jacuzziprozone.com", true },
+ { "jadara.info", true },
{ "jadchaar.me", true },
{ "jaegerlacke.de", true },
+ { "jaetech.org", true },
{ "jagbouncycastles.co.uk", true },
{ "jagerman.com", true },
{ "jaguarlandrover-asse.be", true },
{ "jaguarlandrover-occasions.be", true },
+ { "jaguarwong.xyz", true },
{ "jahanaisamu.com", true },
{ "jahmusic.net", true },
{ "jahner.xyz", true },
@@ -17413,18 +18271,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jaion.tech", true },
{ "jaispirit.com", false },
{ "jaitnetworking.com", false },
- { "jak-na-les.cz", true },
{ "jakarta.dating", true },
{ "jakdelatseo.cz", true },
{ "jake.eu.org", true },
{ "jake.ml", true },
{ "jake.nom.za", true },
+ { "jakebeardsley.com", true },
{ "jakecurtis.de", true },
- { "jakenbake.com", true },
{ "jakereynolds.co", true },
{ "jakerullman.com", true },
{ "jakeslab.tech", true },
{ "jaketremper.com", true },
+ { "jakewestrip.com", true },
{ "jakob-server.tk", true },
{ "jakobejitblokaci.cz", true },
{ "jakobkrigovsky.com", true },
@@ -17434,7 +18292,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jakub-boucek.cz", true },
{ "jakubarbet.eu", true },
{ "jakubboucek.cz", true },
- { "jakubtopic.cz", true },
+ { "jakubklimek.com", true },
{ "jakubvrba.cz", true },
{ "jala.co.jp", true },
{ "jaleo.cn", true },
@@ -17442,7 +18300,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jamaat.hk", true },
{ "jamacha.org", true },
{ "jamalfi.bio", true },
- { "jamaware.org", true },
{ "jamberry.com.mx", true },
{ "jamberrynails.co.uk", true },
{ "james-bell.co.uk", true },
@@ -17451,7 +18308,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jamesachambers.com", true },
{ "jamesaimonetti.com", true },
{ "jamesbillingham.com", true },
- { "jamesbradach.com", false },
{ "jameschorlton.co.uk", true },
{ "jamesdorf.com", true },
{ "jamesgreenfield.com", true },
@@ -17459,14 +18315,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jameshost.net", true },
{ "jameshunt.us", false },
{ "jamesj.me", false },
+ { "jamesjboyer.com", true },
{ "jamesmarsh.net", true },
{ "jamesmilazzo.com", true },
{ "jamesmorrison.me", true },
+ { "jamesmurphy.com.au", true },
{ "jamesrobertson.io", true },
{ "jamesrobertson.net", true },
+ { "jamesross.name", true },
{ "jamesrussellward.co.uk", true },
{ "jamessmith.me.uk", true },
+ { "jamesturnerstickley.com", true },
{ "jamhost.org", true },
+ { "jamie-read-photography.com", true },
{ "jamie.ie", true },
{ "jamielarter.ca", true },
{ "jamielinux.com", true },
@@ -17480,7 +18341,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jammysplodgers.co.uk", true },
{ "jamon.ca", true },
{ "jamonsilva.com", true },
- { "jamstatic.fr", false },
+ { "jamstatic.fr", true },
{ "jan-and-maaret.de", true },
{ "jan-bucher.ch", true },
{ "jan-hill.com", true },
@@ -17500,19 +18361,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "janikrabe.com", true },
{ "janjoris.nl", true },
{ "jankoepsel.com", true },
+ { "janmg.com", true },
{ "jann.is", true },
+ { "jannekekaasjager.nl", true },
{ "jannisfink.de", true },
{ "jannyrijneveld.nl", true },
{ "janoberst.com", true },
{ "janokacer.sk", true },
{ "janschaumann.de", true },
{ "janssenwigman.nl", true },
+ { "janterpstra.eu", true },
+ { "jantinaboelens.nl", true },
{ "jaot.info", true },
{ "japaniac.de", false },
- { "japanphilosophy.com", true },
- { "japansm.com", true },
{ "japanwatches.xyz", true },
- { "jape.today", true },
+ { "japon-japan.com", true },
{ "jardin-exotique-rennes.fr", true },
{ "jardinderline.ch", true },
{ "jardiniersduminotaure.fr", true },
@@ -17520,19 +18383,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jaredfernandez.com", true },
{ "jaredfraser.com", true },
{ "jarivisual.com", true },
- { "jarl.ninja", true },
{ "jarniashop.se", true },
{ "jaroku.com", true },
{ "jarondl.net", true },
+ { "jaroslavc.eu", true },
{ "jarrettgraham.com", true },
{ "jarroba.com", true },
{ "jas-team.net", true },
{ "jasl.works", true },
{ "jasmijnwagenaar.nl", true },
{ "jasminefields.net", true },
+ { "jason.re", true },
{ "jasonamorrow.com", true },
{ "jasongerber.ch", true },
- { "jasonian-photo.com", true },
+ { "jasonian-photo.com", false },
{ "jasonmili.online", true },
{ "jasonsansone.com", true },
{ "jasper.link", true },
@@ -17543,8 +18407,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jaszbereny-vechta.eu", true },
{ "javalestari.com", true },
{ "javamilk.com", true },
- { "javfree.me", true },
{ "javierburgos.net", true },
+ { "jaxxnet.co.uk", true },
+ { "jaxxnet.org", true },
{ "jaycouture.com", true },
{ "jayfreestone.com", true },
{ "jaymecd.rocks", true },
@@ -17569,23 +18434,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jcadg.com", true },
{ "jcai.dk", true },
{ "jcaicedo.com", true },
- { "jcaicedo.tk", true },
+ { "jcb.com", true },
+ { "jcbgolfandcountryclub.com", true },
{ "jci.cc", true },
- { "jcolideles.com", true },
{ "jcra.net", true },
{ "jctf.team", true },
{ "jcwodan.nl", true },
- { "jcyz.cf", true },
{ "jd-group.co.uk", true },
{ "jd1.de", true },
{ "jdassets.com", true },
{ "jdc.io", true },
{ "jdcdirectsales.com", true },
- { "jdcdirectsales.com.ph", true },
{ "jdcgroup.com.ph", true },
{ "jdegbau.com", true },
{ "jdheysupplies.co.uk", true },
{ "jdjohnsonmedia.com", true },
+ { "jdjohnsonwaterproofing.com", true },
{ "jdm.elk.pl", true },
{ "jdncr.com", true },
{ "jdoi.pw", true },
@@ -17614,7 +18478,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jedwarddurrett.com", true },
{ "jeec.ist", true },
{ "jeepmafia.com", true },
- { "jeff.forsale", true },
{ "jeffanderson.me", true },
{ "jeffcasavant.com", false },
{ "jeffcloninger.net", true },
@@ -17629,6 +18492,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jefftickle.com", true },
{ "jeffwebb.com", true },
{ "jefrydco.id", true },
+ { "jej.cz", true },
+ { "jej.sk", true },
{ "jekhar.com", true },
{ "jelena-adeli.com", true },
{ "jelewa.de", true },
@@ -17641,42 +18506,43 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jelleluteijn.nl", true },
{ "jelleluteijn.pro", true },
{ "jelleraaijmakers.nl", true },
+ { "jelleschneiders.com", true },
{ "jelly.cz", true },
{ "jellybeanbooks.com.au", true },
{ "jelmer.co.uk", true },
{ "jelmer.uk", true },
+ { "jelmoli-shop.ch", true },
{ "jem.gov", true },
{ "jemangeducheval.com", true },
{ "jembatankarir.com", true },
+ { "jemefaisdesamis.com", true },
{ "jena.space", true },
{ "jennedebleser.com", false },
- { "jenniferchan.id.au", true },
{ "jenniferengerwingaantrouwen.nl", true },
{ "jennifermason.eu", true },
{ "jennifersauer.nl", true },
- { "jennybeaned.com", true },
{ "jennythebaker.com", true },
{ "jenolson.net", true },
{ "jenprace.cz", true },
{ "jensrex.dk", true },
+ { "jeparamedia.com", true },
{ "jepertinger-itconsulting.de", true },
{ "jeproteste.info", true },
{ "jeremiahbenes.com", true },
{ "jeremy-chen.org", true },
{ "jeremy.hu", true },
{ "jeremybentham.com", true },
- { "jeremyc.ca", true },
{ "jeremycantu.com", true },
{ "jeremycrews.com", true },
{ "jeremynally.com", true },
- { "jeremyness.com", true },
{ "jeremypaul.me", true },
{ "jeremytcd.com", true },
{ "jericamacmillan.com", true },
{ "jeroendeneef.com", true },
{ "jeroenensanne.wedding", true },
- { "jeroenvanderwal.nl", true },
+ { "jeroensangers.com", true },
{ "jerret.de", true },
+ { "jerryweb.org", true },
{ "jerryyu.ca", true },
{ "jerseybikehire.co.uk", true },
{ "jerseyjumpingbeans.co.uk", true },
@@ -17687,8 +18553,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jesseerbach.com", true },
{ "jessekaufman.com", true },
{ "jessesjumpingcastles.co.uk", true },
- { "jessevictors.com", true },
- { "jessgranger.com", true },
+ { "jessgranger.com", false },
{ "jessicabenedictus.nl", false },
{ "jessicahrehor.com", true },
{ "jesters-court.net", true },
@@ -17702,11 +18567,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jetmirshatri.com", true },
{ "jetsetboyz.net", true },
{ "jetsieswerda.nl", true },
+ { "jettlarue.com", true },
{ "jetwhiz.com", true },
{ "jeuxetcodes.fr", true },
{ "jeweet.net", true },
{ "jewishboyscouts.com", true },
{ "jexler.net", true },
+ { "jf-fotos.de", true },
{ "jfbst.net", true },
{ "jfr.im", true },
{ "jfreitag.de", true },
@@ -17726,10 +18593,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jhwestover.com", true },
{ "jiacl.com", true },
{ "jiahao.codes", true },
+ { "jiangzm.com", false },
+ { "jianji.de", true },
{ "jianshu.com", true },
{ "jianyuan.pro", true },
{ "jiazhao.ga", true },
+ { "jicaivvip.com", true },
{ "jichi.io", true },
+ { "jichi000.win", true },
{ "jimbiproducts.com", true },
{ "jimbraaten.com", true },
{ "jimbutlerkiaparts.com", true },
@@ -17737,9 +18608,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jimfranke.com", true },
{ "jimfranke.nl", true },
{ "jimmycai.com", false },
- { "jimmycai.org", true },
{ "jimmycn.com", false },
- { "jimmynelson.com", true },
{ "jimmyroura.ch", true },
{ "jimshaver.net", true },
{ "jimslop.nl", true },
@@ -17766,9 +18635,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jixun.moe", true },
{ "jiyusu.com", true },
{ "jjj.blog", true },
+ { "jjjconnection.com", true },
{ "jjlvk.nl", true },
+ { "jjmarketing.co.uk", true },
{ "jjspartyhire.co.uk", true },
{ "jjspartytime.co.uk", true },
+ { "jjsummerboatparty.co.uk", true },
{ "jjvanoorschot.nl", true },
{ "jk-entertainment.biz", true },
{ "jkchocolate.com", true },
@@ -17776,14 +18648,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jkinteriorspa.com", true },
{ "jkirsche.com", true },
{ "jkrippen.com", true },
- { "jkuvw.xyz", true },
{ "jkyuan.tk", true },
{ "jl-dns.eu", true },
{ "jl-dns.nl", true },
{ "jl-exchange.nl", true },
{ "jl-mail.nl", true },
{ "jldp.org", true },
+ { "jlink.nl", true },
{ "jlkhosting.com", true },
+ { "jloh.codes", true },
{ "jlot.org", true },
{ "jlponsetto.com", true },
{ "jlr-luxembourg.com", true },
@@ -17795,26 +18668,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jmbelloteau.com", true },
{ "jmcashngold.com.au", true },
{ "jmcataffo.com", true },
+ { "jmce.eu", true },
{ "jmcleaning.services", true },
{ "jmedved.com", true },
{ "jmentertainment.co.uk", true },
{ "jmfjltd.com", true },
{ "jmk.hu", true },
+ { "jmoreau.ddns.net", true },
{ "jmotion.co.uk", true },
{ "jmpb.hu", true },
{ "jmpmotorsport.co.uk", true },
{ "jmsolodesigns.com", true },
- { "jmssg.jp", true },
{ "jmvdigital.com", true },
- { "jncie.de", true },
- { "jncie.eu", true },
- { "jncip.de", true },
{ "jnjdj.com", true },
{ "jnm-art.com", true },
{ "joa-ebert.com", true },
+ { "joacimeldre.com", true },
{ "joaoaugusto.net", true },
{ "joaosampaio.com.br", true },
- { "job-offer.de", true },
+ { "job.biz.tr", true },
+ { "jobatus.com.br", true },
+ { "jobatus.es", true },
+ { "jobatus.it", true },
+ { "jobatus.mx", true },
+ { "jobatus.pt", true },
{ "jobbkk.com", true },
{ "jobbsafari.no", true },
{ "jobbsafari.se", true },
@@ -17832,7 +18709,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jobs4sales.ch", true },
{ "jobseekeritalia.it", true },
{ "jobsisbrown.com", true },
- { "jobss.co.uk", true },
{ "jobsuchmaschine.ch", true },
{ "jobwinner.ch", true },
{ "jobzninja.com", true },
@@ -17848,6 +18724,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "joedinardo.com", true },
{ "joedoyle.us", true },
{ "joefixit.co", true },
+ { "joefixit.co.uk", true },
{ "joehenry.co.uk", true },
{ "joejohnson.name", true },
{ "joel.coffee", true },
@@ -17858,11 +18735,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "joelle.me", true },
{ "joelleandpeter.co.uk", true },
{ "joellimberg.com", true },
+ { "joellombardo.com", false },
{ "joelmarkhamphotography.com.au", true },
{ "joelmunch.com", true },
{ "joelnichols.uk", true },
{ "joemotherfuckingjohnson.com", true },
- { "joepitt.co.uk", false },
+ { "joerosca.com", true },
{ "joerss.at", true },
{ "joeskup.com", true },
{ "joespaintingpgh.com", true },
@@ -17884,6 +18762,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "johannes.io", true },
{ "johannes.wtf", true },
{ "johannesburg-escorts.co.za", true },
+ { "johannesen.tv", true },
{ "johanneskonrad.de", true },
{ "johannespichler.com", false },
{ "johansf.tech", true },
@@ -17891,12 +18770,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "johnbeil.com", true },
{ "johnblackbourn.com", true },
{ "johnbpodcast.com", true },
+ { "johncook.ltd.uk", true },
{ "johndball.com", true },
{ "johnfulgenzi.com", true },
{ "johngallias.com", true },
- { "johngo.tk", true },
+ { "johngo.tk", false },
{ "johnguant.com", true },
{ "johnkastler.net", true },
+ { "johnmcc.net", true },
{ "johnmcintosh.pro", true },
{ "johnmh.me", true },
{ "johnmichel.org", true },
@@ -17908,10 +18789,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "johnroberts.me", true },
{ "johnrockefeller.net", true },
{ "johnsegovia.com", true },
+ { "johnsiu.com", true },
{ "johnsonho.net", true },
{ "johnvanhese.nl", true },
{ "johnyytb.be", true },
{ "joi-dhl.ch", true },
+ { "jointotem.com", true },
{ "jojosplaycentreandcafeteria.co.uk", true },
{ "jokedalderup.nl", true },
{ "joker.menu", true },
@@ -17919,13 +18802,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jokewignand.nl", true },
{ "joliettech.com", true },
{ "jollausers.de", true },
+ { "jolle.io", true },
{ "jollygoodspudz.ca", true },
{ "jollykidswobbleworld.co.uk", true },
{ "jolokia.ch", true },
{ "jomo.tv", true },
{ "jomofojo.co", true },
{ "jomofojo.com", true },
+ { "jonahperez.com", true },
{ "jonandnoraswedding.com", true },
+ { "jonarcher.info", true },
{ "jonas-thelemann.de", true },
{ "jonas-wenk.de", false },
{ "jonaskjodt.com", true },
@@ -17936,7 +18822,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jonathanha.as", true },
{ "jonathanj.nl", true },
{ "jonathanschle.de", true },
- { "jonathanselea.se", false },
{ "jonblankenship.com", true },
{ "jondarby.com", true },
{ "jondevin.com", true },
@@ -17958,7 +18843,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jonoalderson.com", true },
{ "jonpads.com", true },
{ "jonpavelich.com", true },
- { "jons.org", true },
{ "jonscaife.com", true },
{ "jooksms.com", true },
{ "jooksuratas.ee", true },
@@ -17968,14 +18852,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "joostvanderlaan.nl", true },
{ "jopsens.de", true },
{ "joran.org", true },
+ { "jorcus.com", true },
{ "jordan-jungk.de", true },
{ "jordanhamilton.me", true },
- { "jordankirby.co.uk", true },
{ "jordankmportal.com", true },
{ "jordans.co.uk", true },
- { "jordanscorporatelaw.com", true },
{ "jordanstrustcompany.com", true },
{ "jordhy.com", true },
+ { "jorgerosales.org", true },
{ "jorisdalderup.nl", true },
{ "jornalalerta.com.br", true },
{ "joscares.com", true },
@@ -17985,7 +18869,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "joseetesser.nl", true },
{ "josef-lotz.de", true },
{ "josefjanosec.com", true },
+ { "josefottosson.se", true },
{ "josegerber.ch", true },
+ { "joseitoda.org", true },
{ "josemikkola.fi", true },
{ "josepbel.com", true },
{ "josephbleroy.com", true },
@@ -17994,15 +18880,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "josephsniderman.org", true },
{ "josephv.website", true },
{ "josericaurte.com", true },
+ { "joshgilson.com", true },
{ "joshgrancell.com", true },
{ "joshharkema.com", true },
{ "joshharmon.me", true },
{ "joshlovephotography.co.uk", true },
{ "joshpanter.com", true },
{ "joshrickert.com", true },
+ { "joshruppe.com", true },
{ "joshschmelzle.com", true },
{ "joshtriplett.org", true },
{ "joshua-kuepper.de", true },
+ { "joshua.bio", true },
{ "joshuadmiller.info", true },
{ "joshuajohnson.ca", true },
{ "joshuarogers.net", true },
@@ -18012,18 +18901,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "journeytomastery.net", true },
{ "jovani.com", false },
{ "jovic.hamburg", true },
- { "joworld.net", true },
{ "joyceseamone.com", true },
{ "joyful.house", true },
{ "joyfulexpressions.gallery", true },
{ "joyofcookingandbaking.com", true },
{ "jpdeharenne.be", true },
{ "jpeg.io", true },
- { "jpgangbang.com", true },
{ "jphandjob.com", true },
{ "jplesbian.com", true },
{ "jpmelos.com", true },
{ "jpmelos.com.br", true },
+ { "jpod.cc", true },
{ "jps-selection.co.uk", true },
{ "jps-selection.com", true },
{ "jps-selection.eu", true },
@@ -18038,12 +18926,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jrc9.ca", true },
{ "jreb.nl", true },
{ "jreinert.com", true },
+ { "jrflorian.com", true },
{ "jross.me", true },
{ "jrtapsell.co.uk", true },
{ "jrxpress.com", true },
+ { "js93029.com", true },
{ "jschoi.org", true },
{ "jschumacher.info", true },
{ "jsd-cog.org", true },
+ { "jsdelivr.com", true },
{ "jselby.net", true },
{ "jsent.co.uk", true },
{ "jsevilleja.org", true },
@@ -18051,6 +18942,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jskoelliken.ch", true },
{ "jslidong.top", true },
{ "jsmetallerie.fr", true },
+ { "jsnfwlr.com", true },
{ "jsnfwlr.io", true },
{ "jsteward.moe", true },
{ "jstore.ch", true },
@@ -18063,9 +18955,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jtp.id", true },
{ "jts3servermod.com", true },
{ "jtslay.com", true },
+ { "ju.io", true },
{ "juan23.edu.uy", true },
{ "juanfrancisco.tech", true },
- { "juanhub.com", true },
{ "juanmaguitar.com", true },
{ "juanxt.ddns.net", true },
{ "jubileum.online", true },
@@ -18074,7 +18966,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "juchit.at", true },
{ "jucktehkeinen.de", true },
{ "judc-ge.ch", true },
- { "judge2020.com", true },
{ "judge2020.me", true },
{ "judoprodeti.cz", true },
{ "judosaintdenis.fr", true },
@@ -18094,14 +18985,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "juhakoho.com", true },
{ "juice.codes", true },
{ "juk.life", true },
- { "juku-wing.jp", true },
{ "jule-spil.dk", true },
- { "julenlanda.com", true },
{ "julian-uphoff.de", true },
{ "julian-weigle.de", true },
{ "juliangonggrijp.com", true },
{ "julianickel.de", true },
{ "julianmeyer.de", true },
+ { "julianmp.info", true },
{ "juliansimioni.com", true },
{ "julianskitchen.ch", true },
{ "julianvmodesto.com", true },
@@ -18119,8 +19009,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "julienc.io", true },
{ "julienpaterne.com", true },
{ "julientartarin.com", true },
- { "julio.jamil.nom.br", true },
- { "juliohernandezgt.com", true },
{ "julius-zoellner.de", true },
{ "jullensgroningen.com", true },
{ "juls.cloud", true },
@@ -18149,6 +19037,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "junethack.net", true },
{ "jungaa.fr", true },
{ "jungesforumkonstanz.de", true },
+ { "junggesellmuc.de", true },
{ "jungleducks.ca", true },
{ "junglejackscastles.co.uk", true },
{ "junglememories.co.uk", true },
@@ -18168,6 +19057,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "juridoc.com.br", true },
{ "jurijbuga.de", true },
{ "jurisprudent.by", true },
+ { "juristas.com.br", true },
{ "jurriaan.ninja", true },
{ "just-a-clanpage.de", true },
{ "just-vet-and-drive.fr", true },
@@ -18184,24 +19074,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "justgalak.org", true },
{ "justice.gov", true },
{ "justice4assange.com", true },
+ { "justin-tech.com", false },
{ "justinellingwood.com", true },
{ "justinharrison.ca", true },
{ "justinho.com", true },
{ "justinstandring.com", true },
+ { "justmensgloves.com", true },
{ "justpaste.it", true },
- { "justsome.info", true },
{ "justthinktwice.gov", true },
{ "justupdate.me", true },
{ "justyy.com", true },
{ "juszkiewicz.com.pl", true },
{ "jutlander-netbank.dk", true },
{ "jutlander.dk", true },
+ { "juttaheitland.com", true },
{ "juusujanar.eu", true },
{ "juvenex.co", true },
- { "juventusclublugano.ch", true },
{ "juwelierstoopman.nl", true },
{ "juzgalo.com", true },
{ "jva-wuerzburg.de", true },
+ { "jvandenbroeck.com", true },
{ "jvanerp.nl", true },
{ "jvbouncycastlehire.co.uk", true },
{ "jvega.me", true },
@@ -18217,13 +19109,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "jwnotifier.org", true },
{ "jwschuepfheim.ch", true },
{ "jwsoft.nl", true },
- { "jxir.de", true },
{ "jydemarked.dk", true },
{ "jyggen.com", true },
{ "jym.fit", true },
{ "jyoti-fairworks.org", true },
{ "jzachpearson.com", true },
{ "jzbk.org", true },
+ { "jzcapital.co", true },
{ "k-homes.net", true },
{ "k-netz.de", true },
{ "k-pan.com", true },
@@ -18233,11 +19125,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "k-tube.com", true },
{ "k258059.net", true },
{ "k2mts.org", true },
- { "k33k00.com", true },
+ { "k3508.com", true },
{ "k3nny.fr", true },
+ { "k4law.com", true },
{ "k4r.ru", true },
{ "k7azx.com", true },
{ "k82.org", true },
+ { "k8n.de", true },
{ "k8r.eu", true },
{ "k9swx.com", true },
{ "kaamoscreations.com", true },
@@ -18247,14 +19141,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kaashosting.nl", true },
{ "kaatha-kamrater.se", true },
{ "kab-s.de", true },
- { "kabarlinux.id", true },
+ { "kabaca.design", true },
{ "kabashop.com.br", true },
- { "kabat-fans.cz", false },
{ "kabeltv.co.nz", true },
{ "kabeuchi.com", true },
{ "kaboom.pw", true },
{ "kabu-abc.com", true },
- { "kabus.org", true },
{ "kachelfm.nl", true },
{ "kachlikova2.cz", true },
{ "kack.website", true },
@@ -18270,25 +19162,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kaigojj.com", true },
{ "kaikei7.com", true },
{ "kaileymslusser.com", true },
- { "kainetsoft.com", true },
{ "kairion.de", false },
{ "kaisakura.net", true },
{ "kaisev.net", true },
{ "kaitol.click", true },
{ "kaiusaltd.com", true },
+ { "kaivac-emea.com", true },
{ "kaizenreporting.com", true },
{ "kaizeronion.com", true },
{ "kajak.land", true },
{ "kaka.farm", true },
{ "kakao-karten.de", true },
{ "kakaravaara.fi", true },
- { "kakie-gobocha.jp", true },
{ "kakie-kolesa.ru", true },
{ "kakolightingmuseum.or.jp", true },
{ "kakoo-media.nl", true },
{ "kakoo.nl", true },
{ "kakoomedia.nl", true },
{ "kakuto.me", true },
+ { "kalakarclub.com", true },
{ "kalamos-psychiatrie.be", true },
{ "kalastus.com", true },
{ "kaleidoscope.co.uk", true },
@@ -18300,25 +19192,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kall.is", true },
{ "kallies-net.de", true },
{ "kalmar.com", true },
+ { "kalolina.com", true },
+ { "kalombo.ru", true },
{ "kalsbouncies.com", true },
{ "kaltenbrunner.it", true },
{ "kalterersee.ch", true },
{ "kalwestelectric.com", true },
+ { "kam-serwis.pl", true },
{ "kamatajisyaku.tokyo.jp", true },
{ "kamikaichimaru.com", false },
{ "kaminbau-laub.de", true },
{ "kamixa.se", true },
{ "kamppailusali.fi", true },
{ "kamui.co.uk", true },
+ { "kan3.de", true },
{ "kana-mono.biz", true },
{ "kana.me", true },
{ "kanaete-uranai.com", true },
{ "kanag.pl", true },
{ "kanal-schaefer.de", true },
{ "kanal-tv-haensch.de", true },
+ { "kandalife.com", true },
{ "kandianshang.com", true },
{ "kanecastles.com", true },
{ "kanehusky.com", true },
+ { "kaneisdi.com", true },
{ "kanetix.ca", true },
{ "kangaroo-bouncycastle.co.uk", true },
{ "kangarooislandholidayaccommodation.com.au", true },
@@ -18336,20 +19234,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kanna.cf", true },
{ "kannchen.de", true },
{ "kanobu.ru", true },
- { "kanotijd.nl", true },
{ "kansaiyamamoto.jp", true },
{ "kantankye.nl", true },
{ "kantanmt.com", true },
{ "kantorkita.net", true },
{ "kantorosobisty.pl", true },
{ "kany.me", false },
+ { "kanzakiranko.jp", true },
{ "kanzashi.com", true },
{ "kanzlei-myca.de", true },
{ "kanzlei-oehler.com", true },
{ "kanzlei-sixt.de", true },
{ "kanzshop.com", true },
{ "kap-genial.de", true },
+ { "kapgy-moto.com", true },
{ "kapiorr.duckdns.org", true },
+ { "kappenstein.org", true },
{ "kapseli.net", true },
{ "kaptadata.com", true },
{ "kaptamedia.com", true },
@@ -18359,13 +19259,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "karachi.dating", true },
{ "karaface.com", true },
{ "karalane.com", true },
- { "karamomo.net", true },
- { "karanastic.com", true },
+ { "karanjthakkar.com", true },
{ "karanlyons.com", true },
{ "karasik.by", true },
{ "karateka.org", true },
{ "karateka.ru", true },
{ "kardize24.pl", true },
+ { "karenledger.ca", true },
{ "kargl.net", true },
{ "karguine.in", true },
{ "karhm.com", true },
@@ -18383,7 +19283,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "karmainsurance.ca", true },
{ "karmaplatform.com", true },
{ "karmaspa.se", true },
- { "karmic.com", true },
{ "karn.nu", true },
{ "karneid.info", true },
{ "karsofsystems.com", true },
@@ -18399,6 +19298,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "karupp-did.net", true },
{ "kasadara.com", true },
{ "kasei.im", true },
+ { "kashinavi.com", true },
{ "kashmirobserver.net", true },
{ "kasko.io", true },
{ "kasnoffskinclinic.com", true },
@@ -18407,14 +19307,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kastelruth.biz", true },
{ "kastemperaturen.ga", true },
{ "kastorsky.ru", true },
+ { "kat.marketing", true },
{ "katagena.com", true },
{ "katalogbutikker.dk", true },
- { "katata-kango.ac.jp", true },
+ { "katcleaning.com.au", true },
{ "katedra.de", true },
{ "kateduggan.net", true },
{ "katekligys.com", true },
{ "katemihalikova.cz", true },
{ "katericke.com", true },
+ { "katex.org", true },
{ "kathardt.de", true },
{ "kathegiraldo.com", true },
{ "kathrinbaumannphotography.com", true },
@@ -18422,20 +19324,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "katiechai.xyz", true },
{ "katieskandy.co.uk", true },
{ "katieskastles.co.uk", true },
+ { "katja-und-ronny.de", true },
{ "katka.info", true },
{ "katnunn.co.uk", true },
{ "kato-yane.com", true },
{ "katscastles.co.uk", true },
{ "kattelans.eu", true },
- { "katthewaffle.fr", true },
{ "katyl.info", false },
{ "katyusha.net", false },
{ "katzenbrunnen-test.de", true },
+ { "katzensklave.me", true },
{ "katzspeech.com", true },
{ "kau-boys.com", true },
{ "kau-boys.de", true },
{ "kaufberatung.community", true },
- { "kausta.me", true },
+ { "kaverti.com", true },
{ "kavik.no", true },
{ "kavovary-kava.cz", true },
{ "kawaii.io", true },
@@ -18443,15 +19346,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kay.la", true },
{ "kayakabovegroundswimmingpools.com", true },
{ "kayleen.net", true },
+ { "kayscs.com", true },
{ "kaysis.gov.tr", true },
{ "kazakov.lt", true },
- { "kazamasion.com", true },
{ "kazand.lt", true },
{ "kazandaemon.ru", true },
+ { "kazek.com.pl", true },
+ { "kazekprzewozy.pl", true },
{ "kazu.click", true },
{ "kazuhirohigashi.com", true },
+ { "kazumi.ooo", true },
{ "kazumi.ro", true },
{ "kazy111.info", true },
+ { "kb3.net", true },
{ "kba-online.de", true },
{ "kbb-ev.de", true },
{ "kbbouncycastlehire.co.uk", true },
@@ -18467,23 +19374,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kcliner.com", true },
{ "kcmicapital.com", true },
{ "kcolford.com", false },
- { "kcore.org", true },
{ "kcptun.com", true },
{ "kcshipping.co.uk", true },
{ "kcsordparticipation.org", true },
{ "kd.net.nz", true },
{ "kdex.de", true },
+ { "kdfans.com", true },
{ "kdw.cloud", true },
{ "kdyby.org", true },
{ "ke7tlf.us", true },
{ "keakon.net", true },
+ { "keane.space", true },
+ { "keaneokelley.com", true },
{ "keaysmillwork.com", true },
{ "keb.com.au", true },
{ "keb.net.au", true },
{ "kebabbesteld.nl", true },
{ "kebabbruce.com", true },
+ { "kecht.at", true },
{ "kedarastudios.com", true },
{ "kedibizworx.com", true },
+ { "keditor.biz", true },
{ "kedv.es", true },
{ "keeleysam.com", true },
{ "keelove.net", true },
@@ -18506,6 +19417,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "keisaku.org", true },
{ "keishiando.com", true },
{ "keithlomax.com", true },
+ { "keithws.net", true },
{ "kejar.id", true },
{ "keke-shop.ch", true },
{ "kekgame.com", true },
@@ -18518,6 +19430,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kelheor.space", true },
{ "kellerlan.org", true },
{ "kelleymcchesney.us", true },
+ { "kellimacconnell.com", true },
{ "kellygrenard.com", true },
{ "kellyskastles.co.uk", true },
{ "kellyssportsbarandgrill.com", true },
@@ -18551,7 +19464,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kensbouncycastles.co.uk", true },
{ "kentec.net", true },
{ "kenterlis.gr", true },
- { "kenvix.com", false },
+ { "kenvix.com", true },
{ "kenx5.eu.org", true },
{ "kenyons.info", true },
{ "keops-spine.fr", true },
@@ -18566,9 +19479,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kernelpanics.nl", true },
{ "kerrfrequencycombs.org", true },
{ "kersbergen.nl", true },
+ { "kersmexico.com", true },
{ "kerstkaart.nl", true },
{ "kersvers.agency", true },
- { "kerus.net", false },
+ { "kerus.net", true },
{ "kerzyte.net", true },
{ "kescher.site", true },
{ "kessawear.com", true },
@@ -18577,6 +19491,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kesteren.org", true },
{ "ketamine.co.uk", true },
{ "ketosecology.co.uk", true },
+ { "ketotadka.com", true },
+ { "kettlebellkrusher.com", true },
{ "kettner.com", true },
{ "ketty-voyance.com", true },
{ "keutel.net", true },
@@ -18584,12 +19500,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kevinbowers.me", true },
{ "kevinbusse.de", true },
{ "kevincox.ca", false },
- { "kevinfoley.cc", true },
- { "kevinfoley.org", true },
{ "kevinhill.nl", true },
{ "kevinhq.com", true },
{ "kevinkla.es", true },
{ "kevinlocke.name", true },
+ { "kevinmeijer.nl", true },
+ { "kevinmorssink.nl", true },
{ "kevinpirnie.com", true },
{ "kevinrandles.com", true },
{ "kevinratcliff.com", true },
@@ -18601,7 +19517,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "keycenter.com.br", true },
{ "keycontainers.co.za", true },
{ "keyerror.com", true },
+ { "keygen.sh", true },
{ "keyholdingservices.co.uk", true },
+ { "keyhomechecker.com", true },
{ "keyihao.cn", true },
{ "keyinfo.io", true },
{ "keylaserinstitute.com", true },
@@ -18612,14 +19530,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "keysupport.org", true },
{ "keywebdesign.nl", true },
{ "kf7joz.com", true },
+ { "kfassessment.com", true },
{ "kffs.ru", true },
{ "kfirba.me", true },
+ { "kfm.ink", true },
{ "kforesund.se", true },
{ "kfv-kiel.de", false },
{ "kfz-hantschel.de", true },
{ "kgm-irm.be", true },
{ "kgnk.ru", true },
- { "khaledgarbaya.net", true },
+ { "khaledgarbaya.net", false },
{ "khanovaskola.cz", true },
{ "khas.co.uk", true },
{ "khasiatmanfaat.com", true },
@@ -18627,7 +19547,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "khetzal.info", true },
{ "khipu.com", true },
{ "khlee.net", true },
- { "khmath.com", true },
{ "khmb.ru", true },
{ "khoury-dulla.ch", true },
{ "khs1994.com", true },
@@ -18637,6 +19556,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kiano.net", true },
{ "kiapartscenter.net", true },
{ "kiapartsdepartment.com", true },
+ { "kiapps.ovh", true },
{ "kibea.net", true },
{ "kibibit.net", true },
{ "kibriscicek.net", true },
@@ -18654,6 +19574,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kids-ok.com", true },
{ "kids2day.in", true },
{ "kidsareatrip.com", true },
+ { "kidsclub.photos", true },
{ "kidsforsavingearth.org", true },
{ "kidsinwoods-interfacesouth.org", true },
{ "kidsmark.net", true },
@@ -18666,12 +19587,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kidzsmile.co.uk", true },
{ "kiebel.de", true },
{ "kiedys.net", true },
- { "kiehls.pt", true },
{ "kiekin.org", true },
{ "kiekko.pro", true },
+ { "kiel-kind.de", true },
{ "kieran.ie", true },
{ "kieranjones.uk", true },
- { "kiesuwcursus.nl", true },
{ "kiesuwkerstkaart.nl", true },
{ "kiffmarks.com", true },
{ "kigmbh.com", true },
@@ -18682,6 +19602,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kilerd.me", true },
{ "kilianvalkhof.com", true },
{ "killaraapartments.com.au", true },
+ { "killdeer.com", true },
{ "killerit.in", true },
{ "killerrobots.com", true },
{ "killymoonbouncycastles.com", true },
@@ -18699,11 +19620,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kimotodental.com", true },
{ "kimsufi-jordi.tk", true },
{ "kimtran.kim", true },
+ { "kin.life", true },
{ "kin.pet", true },
{ "kinautas.com", true },
{ "kinderbasar-luhe.de", true },
{ "kinderchor-bayreuth.de", true },
- { "kinderopvangzevenbergen.nl", true },
+ { "kinderkleding.news", true },
{ "kindertagespflege-rasselbande-halle.de", true },
{ "kinderzahn-bogenhausen.de", true },
{ "kindleworth.com", true },
@@ -18716,7 +19638,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kingant.net", true },
{ "kinganywhere.eu", true },
{ "kingbird.me", true },
- { "kingdomcrc.org", true },
{ "kingdoms.gg", true },
{ "kingiescastles.co.uk", true },
{ "kingofshooting.com", true },
@@ -18728,19 +19649,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kingtecservices.com", true },
{ "kini24.ru", true },
{ "kinkenonline.com", true },
+ { "kinnettmemorial.org", true },
{ "kinnikinnick.com", true },
{ "kinniyaonlus.com", true },
{ "kinocheck.de", true },
{ "kinohled.cz", true },
+ { "kinomoto.me", true },
{ "kinomoto.ovh", false },
{ "kinos.nl", true },
{ "kinozal-tv.appspot.com", true },
{ "kinsights.com", false },
+ { "kintawifi.com", false },
{ "kintone.com", true },
{ "kintore.tv", true },
{ "kiocloud.com", true },
{ "kionetworks.es", true },
{ "kipa.at", true },
+ { "kipiradio.com", true },
{ "kippenbart.gq", true },
{ "kipriakipita.gr", true },
{ "kiragameforum.net", true },
@@ -18756,6 +19681,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kirillaristov.com", true },
{ "kirillpokrovsky.de", true },
{ "kirinas.com", true },
+ { "kirinuki.jp", true },
{ "kirkforcongress.com", true },
{ "kirkforillinois.com", true },
{ "kirkify.com", true },
@@ -18765,7 +19691,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kirschbaum.me", true },
{ "kirslis.com", true },
{ "kirstenbos.ca", true },
- { "kirstin-peters.de", true },
{ "kirwandigital.com", true },
{ "kis-toitoidixi.de", true },
{ "kisallatorvos.hu", true },
@@ -18775,7 +19700,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kissesb.net", true },
{ "kissflow.com", true },
{ "kissgyms.com", true },
- { "kisskiss.ch", true },
{ "kissmycreative.com", true },
{ "kisstube.tv", true },
{ "kitabnamabayi.com", true },
@@ -18800,16 +19724,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kittpress.com", true },
{ "kittyhacker101.tk", true },
{ "kivitelezesbiztositas.hu", true },
+ { "kiwi.com", true },
{ "kiwi.digital", true },
- { "kiwi.global", true },
{ "kiwi.wiki", true },
{ "kiwico.com", true },
- { "kiwipayment.com", true },
- { "kiwipayments.com", true },
- { "kiwiplace.com", true },
{ "kiyotatsu.com", true },
{ "kj-prince.com", true },
- { "kj1391.com", true },
+ { "kj1396.net", true },
{ "kj1397.com", true },
{ "kjaer.io", true },
{ "kjarni.cc", true },
@@ -18825,12 +19746,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kkr-bridal.net", true },
{ "kks-karlstadt.de", true },
{ "kksg.com", true },
+ { "kkws.co", true },
{ "kkyy.me", true },
+ { "kkzxak47.com", true },
{ "kl-diaetist.dk", true },
{ "klaim.us", true },
{ "klamathrestoration.gov", true },
{ "klanggut.at", true },
- { "klantenadvies.nl", true },
{ "klares-licht.de", true },
{ "klarika.com", true },
{ "klarmobil-empfehlen.de", true },
@@ -18842,7 +19764,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "klaxon.me", true },
{ "klcreations.co.uk", true },
{ "kle.cz", true },
- { "klean-ritekc.com", true },
{ "kleaning.by", true },
{ "klebeband.eu", true },
{ "klebetape.de", true },
@@ -18854,7 +19775,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kleineanfragen.de", true },
{ "kleinfein.co", true },
{ "kleinreich.de", true },
- { "kleinserienproduktion.com", true },
{ "kleinsys.com", true },
{ "kleteckova.cz", true },
{ "klicke-gemeinsames.de", true },
@@ -18876,6 +19796,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kloia.com", true },
{ "klosko.net", true },
{ "klotz-labs.com", true },
+ { "kloudboy.com", true },
{ "kls-agency.com.ua", false },
{ "klseet.com", true },
{ "klssn.com", true },
@@ -18883,9 +19804,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "klugemedia.de", true },
{ "klustekeningen.nl", true },
{ "klustermedia.com", true },
+ { "klva.cz", true },
+ { "klzwzhi.com", true },
{ "km-net.pl", true },
{ "kmashworth.co.uk", true },
- { "kmdev.me", true },
{ "kmkz.jp", true },
{ "kmsci.com.ph", true },
{ "kn007.net", true },
@@ -18897,6 +19819,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kncg.pw", true },
{ "kndkv.com", true },
{ "kneblinghausen.de", true },
+ { "knechtology.com", true },
{ "knegten-agilis.com", true },
{ "knep.me", true },
{ "knetterbak.nl", true },
@@ -18905,8 +19828,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kngk.org", true },
{ "kniga.market", false },
{ "knight-industries.org", true },
+ { "knightsblog.de", true },
{ "knightsbridge.net", true },
- { "knightsbridgegroup.org", true },
{ "knightsbridgewine.com", true },
{ "knip.ch", true },
{ "knispel-online.de", true },
@@ -18918,7 +19841,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "knot-store.com", true },
{ "knowarth.com", true },
{ "knowledgeforce.com", true },
- { "knowledgehook.com", true },
{ "knowlevillagecc.co.uk", true },
{ "knthost.com", true },
{ "knuckles.tk", true },
@@ -18933,7 +19855,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kobezda.net", true },
{ "kobofarm.com", true },
{ "koboldcraft.ch", true },
- { "kobolya.hu", true },
{ "kocherev.org", true },
{ "kochereva.com", true },
{ "kochhar.net", true },
@@ -18951,6 +19872,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "koelnmafia.de", true },
{ "koenen-bau.de", true },
{ "koenigsbrunner-tafel.de", true },
+ { "koenleemans.nl", false },
{ "koerper-wie-seele.de", false },
{ "koerperkult.ch", true },
{ "koertner-muth.com", true },
@@ -18977,8 +19899,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kokensupport.com", true },
{ "koketteriet.se", true },
{ "kokoiroworks.com", true },
+ { "kokona.ch", true },
{ "kokumoto.com", true },
- { "kolbeck.tk", true },
+ { "kolania.com", true },
+ { "kolania.de", true },
+ { "kolania.net", true },
{ "kolbeinsson.se", true },
{ "kolcsey.eu", true },
{ "koldanews.com", true },
@@ -18991,11 +19916,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kolmann.at", true },
{ "kolmann.eu", true },
{ "kolonie-am-stadtpark.de", true },
+ { "kolorbon.com", true },
{ "kolpingsfamilie-vechta-maria-frieden.de", true },
{ "koluke.co", true },
{ "koluke.com", true },
{ "komandakovalchuk.com", false },
+ { "kombidorango.com.br", true },
{ "komelin.com", true },
+ { "komenamanda.de", true },
{ "komicloud.com", true },
{ "komidoc.com", true },
{ "komiksbaza.pl", true },
@@ -19016,7 +19944,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "koniecfica.sk", true },
{ "konijntjes.nl", true },
{ "konings.it", true },
- { "koningskwartiertje.nl", true },
{ "koninkrijk.net", true },
{ "konklone.com", true },
{ "konoe.studio", true },
@@ -19050,7 +19977,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "korea.dating", true },
{ "koreaboo.com", true },
{ "koretech.nl", true },
- { "korinar.com", true },
{ "korobi.io", true },
{ "korobkovsky.ru", true },
{ "korono.de", true },
@@ -19076,16 +20002,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kotilinkki.fi", true },
{ "kotitesti.fi", true },
{ "kotly-marten.com.ua", true },
+ { "kotobox.net", true },
{ "kotois.com", true },
- { "kotomei.moe", true },
{ "kotonoha.cafe", true },
{ "kotori.love", true },
+ { "kottur.is", true },
{ "kouki-food.com", true },
{ "koumuwin.com", true },
{ "koushinjo.org", true },
{ "kov.space", true },
{ "koval.io", true },
{ "kovaldo.ru", true },
+ { "kovals.sk", true },
{ "kovehitus.ee", true },
{ "kovnsk.net", true },
{ "kovspace.com", true },
@@ -19134,6 +20062,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "krausoft.hu", true },
{ "krautomat.com", true },
{ "kraynik.com", true },
+ { "krazyboi.com", true },
{ "krazykastles.co.uk", true },
{ "krazykoolkastles.com", true },
{ "krazyphotobooths.co.uk", true },
@@ -19143,34 +20072,40 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kreativstrecke.de", true },
{ "kredigram.com", true },
{ "kredit-abzocke.com", true },
+ { "kredita.dk", true },
{ "kreditkacs.cz", true },
{ "kreen.org", true },
{ "krehl.io", true },
{ "kremalicious.com", true },
{ "kretschmann.consulting", true },
{ "kreuzpfadfinder.de", true },
+ { "krey.is", true },
{ "krfuli.com", true },
{ "kriechel.de", true },
{ "krinetzki.de", true },
{ "kriptosec.com", true },
{ "kris.click", true },
{ "krise-chance.ch", true },
+ { "krishnenduayur.org", true },
{ "krishofer.com", true },
{ "krislamoureux.com", true },
{ "krismurray.co.uk", true },
{ "krisstarkey.co.uk", true },
+ { "kristenpaigejohnson.com", true },
{ "kristiehill.com", true },
{ "kristikala.nl", true },
- { "kristinbailey.com", true },
+ { "kristinbailey.com", false },
+ { "kristofba.ch", true },
{ "kristofdv.be", true },
{ "krizevci.info", true },
- { "krmeni.cz", true },
+ { "krmeni.cz", false },
{ "krokedil.se", true },
{ "krokodent.de", true },
{ "kromamoveis.com.br", true },
{ "kromonos.net", true },
{ "kronaw.it", true },
{ "krony.de", true },
+ { "kronych.cz", true },
{ "kroon.email", true },
{ "kropkait.pl", true },
{ "kroy.io", true },
@@ -19188,11 +20123,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kry.no", true },
{ "kry.se", true },
{ "kryglik.com", true },
- { "kryha.io", true },
{ "krypsys.com", true },
{ "krypt.com", true },
{ "kryptera.se", true },
{ "kryptomodkingz.com", true },
+ { "krytykawszystkiego.com", true },
+ { "krytykawszystkiego.pl", true },
{ "kryx.de", true },
{ "ks-watch.de", true },
{ "kschv-rdeck.de", true },
@@ -19201,6 +20137,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ksero.wroclaw.pl", true },
{ "kshlm.in", true },
{ "kspg.tv", true },
+ { "kssk.de", true },
{ "ksukelife.com", true },
{ "kt-zoe.com", true },
{ "ktbnetbank.com", true },
@@ -19218,11 +20155,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kubica.ch", true },
{ "kubierecki.pl", true },
{ "kubik-rubik.de", false },
- { "kubiwa.net", true },
{ "kubkprf.ru", true },
{ "kublis.ch", true },
{ "kuchentraum.eu", true },
{ "kucnibudzet.com", true },
+ { "kucukayvaz.com", true },
{ "kudo.co.id", true },
{ "kueche-co.de", true },
{ "kuechenprofi-group.de", false },
@@ -19241,7 +20178,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kulde.net", true },
{ "kulickovy-pojezd.cz", true },
{ "kulivps.com", true },
- { "kum.com", true },
{ "kuma.es", true },
{ "kumachan.biz", true },
{ "kumalog.com", true },
@@ -19250,7 +20186,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kungerkueken.de", true },
{ "kunstdrucke-textildruck.de", true },
{ "kunstfehler.at", true },
- { "kunstschule-krabax.de", true },
{ "kunstundunrat.de", true },
{ "kuoruan.com", true },
{ "kupferstichshop.com", true },
@@ -19262,11 +20197,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kuponydoher.cz", true },
{ "kupschke.net", true },
{ "kurashino-mall.com", true },
+ { "kuro.link", true },
{ "kurofuku.me", true },
+ { "kuroha.co.uk", true },
{ "kuroinu.jp", true },
{ "kurona.ga", true },
{ "kuronekogaro.com", true },
{ "kurrende.nrw", true },
+ { "kurrietv.nl", true },
{ "kurschies.de", true },
{ "kurserne.dk", true },
{ "kurswahl-online.de", true },
@@ -19283,9 +20221,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kutukupret.com", true },
{ "kutus.ee", true },
{ "kuzbass-pwl.ru", true },
+ { "kuzdrowiu24.pl", true },
{ "kvadratnimeter.si", true },
{ "kvalita-1a.cz", true },
{ "kvalitnitesneni.cz", true },
+ { "kvantel.no", true },
{ "kvcc.com.au", true },
{ "kvetinymilt.cz", true },
{ "kvhile.com", true },
@@ -19298,7 +20238,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kwcolville.com", true },
{ "kwedo.com", true },
{ "kwench.com", true },
- { "kwidz.fr", true },
+ { "kwiknews.com", true },
{ "kwmr.me", true },
{ "kwok.cc", true },
{ "kwyxz.org", true },
@@ -19319,11 +20259,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "kyobostory-events.com", true },
{ "kyoko.org", true },
{ "kyosaku.org", true },
- { "kyoto-k9.com", true },
{ "kyoto-mic.com", true },
{ "kyoto-sake.net", true },
{ "kyoto-tomikawa.jp", true },
- { "kyoto-tomoshibi.jp", true },
{ "kyprexxo.com", true },
{ "kyras-castles.co.uk", true },
{ "kyunyuki.com", true },
@@ -19352,9 +20290,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "laassari.me", false },
{ "laatikko.io", true },
{ "laatjeniethackmaken.nl", true },
+ { "laballoons.com", true },
{ "labande-annonce.fr", true },
{ "labcoat.jp", true },
- { "labms.com.au", true },
{ "labobooks.com", true },
{ "laboitebio-logique.ca", true },
{ "labortogether.com", true },
@@ -19363,7 +20301,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "laboutiquedejuliette.com", true },
{ "laboxfaitsoncinema.com", true },
{ "labradorpuppiesforsalebyregisteredlabradorbreeders.com", false },
- { "labrat.mobi", true },
+ { "labrat.mobi", false },
+ { "labspack.com", true },
{ "labtest.ltd", true },
{ "lacantine.xyz", true },
{ "lacaserita.org", true },
@@ -19384,6 +20323,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "laclefdor.ch", true },
{ "lacliniquefinanciere.com", true },
{ "lacoast.gov", true },
+ { "lacocinadelila.com", true },
{ "lacoquette.gr", true },
{ "lacyc3.eu", true },
{ "ladbroke.net", true },
@@ -19393,10 +20333,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lady-2.jp", true },
{ "ladyanna.de", true },
{ "ladybugjam.com", true },
+ { "laeso.es", true },
{ "laextra.mx", true },
{ "lafayette-rushford.com", true },
{ "lafcheta.info", true },
{ "lafeemam.fr", true },
+ { "lafema.de", true },
{ "lafillepolyvalente.ca", true },
{ "lafillepolyvalente.com", true },
{ "lafka.org", true },
@@ -19409,7 +20351,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lagerauftrag.info", true },
{ "lagit.in", true },
{ "laglab.org", false },
- { "lagodny.eu", false },
+ { "lagodny.eu", true },
{ "lagout.org", true },
{ "lagriffeduservice.fr", true },
{ "laguiadelvaron.com", true },
@@ -19422,7 +20364,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "laindonleisure.co.uk", true },
{ "lak-berlin.de", true },
{ "lakarwebb.se", true },
- { "lakatrop.com", true },
{ "lakedavid.com.au", true },
{ "lakehavasucityhomebuyerscredit.com", true },
{ "lakehavasucitynews.com", true },
@@ -19440,7 +20381,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lakesherwoodlighting.com", true },
{ "lakesherwoodoutdoorlighting.com", true },
{ "lakeshowlife.com", true },
- { "lakewoodcomputerservices.com", true },
+ { "lakhesis.net", true },
{ "lakonia.com.br", true },
{ "lalalab.com", true },
{ "lalaya.fr", true },
@@ -19450,6 +20391,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lalyre-corcelles.ch", true },
{ "lamaisondelatransformationculturelle.com", true },
{ "lamakat.de", true },
+ { "lamanwebinfo.com", true },
{ "lamapoll.de", true },
{ "lamarieealhonneur.com", false },
{ "lambauer.com", true },
@@ -19461,25 +20403,36 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lamikvah.org", true },
{ "laminine.info", true },
{ "lamp.re", false },
+ { "lamp24.se", true },
+ { "lampade.it", true },
+ { "lampara.es", true },
{ "lampegiganten.dk", true },
{ "lampegiganten.no", true },
{ "lampen24.be", true },
+ { "lampen24.nl", true },
{ "lampenwelt.at", true },
{ "lampenwelt.ch", true },
+ { "lampenwelt.de", true },
{ "lampposthomeschool.com", true },
- { "lana.swedbank.se", true },
+ { "lampy.pl", true },
+ { "lan.biz.tr", true },
+ { "lanahallen.com", true },
{ "lanbroa.eu", true },
{ "lancashirecca.org.uk", true },
{ "lancejames.com", true },
{ "lancelafontaine.com", true },
{ "lanceyip.com", true },
+ { "lancork.net", true },
{ "lancyvbc.ch", true },
{ "land.nrw", false },
{ "landchecker.com.au", true },
{ "landflair-magazin.de", true },
{ "landhaus-christmann.de", true },
+ { "landinfo.no", true },
+ { "landlordy.com", true },
{ "landofelves.net", true },
{ "landrovermerriamparts.com", true },
+ { "landscape-photography.org", true },
{ "landscapelightingagoura.com", true },
{ "landscapelightingagourahills.com", true },
{ "landscapelightingcalabasas.com", true },
@@ -19496,16 +20449,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "landscapelightingsimivalley.com", true },
{ "landscapelightingthousandoaks.com", true },
{ "landscapelightingwestlakevillage.com", true },
+ { "landscapephotography.org.au", true },
{ "landyparts.nl", true },
{ "lanetix.com", true },
{ "lanforalla.se", true },
{ "lang-php.com", true },
- { "langatang.com", true },
{ "langbein.org", true },
{ "langguth.io", true },
{ "langkahteduh.com", true },
{ "langkawitrip.com", true },
+ { "langotie.com.br", true },
{ "langstreckensaufen.de", true },
+ { "languagecourse.net", true },
{ "languageterminal.com", true },
{ "langworth.com", true },
{ "langzijn.nl", true },
@@ -19530,7 +20485,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "laparoscopia.com.mx", true },
{ "lapassiondutrading.com", true },
{ "laperfumista.es", true },
- { "lapetition.be", true },
{ "lapidge.net", true },
{ "lapix.com.co", true },
{ "laplacesicherheit.de", true },
@@ -19538,12 +20492,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lapolla.com", true },
{ "lapotagere.ch", true },
{ "lapparente-aise.ch", true },
+ { "lappari.com", true },
+ { "lara.photography", true },
{ "laracode.eu", true },
{ "laraeph.com", true },
{ "laraigneedusoir.com", true },
{ "laranara.se", true },
{ "laranjada.org", true },
{ "laraveldirectory.com", true },
+ { "laravelsaas.com", true },
{ "larbertbaptist.org", true },
{ "lareclame.fr", true },
{ "larepublicacultural.es", true },
@@ -19551,9 +20508,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "largeviewer.com", true },
{ "lariposte.org", true },
{ "lariscus.eu", true },
+ { "larky.top", true },
{ "larondinedisinfestazione.com", true },
{ "larptreff.de", true },
{ "larraz.es", true },
+ { "larryli.cn", true },
{ "larrysalibra.com", true },
{ "lars-ewald.com", true },
{ "lars-mense.de", true },
@@ -19562,7 +20521,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "larsbauer.xyz", true },
{ "larsklene.nl", true },
{ "larsklint.com", true },
- { "larsmerke.de", true },
{ "laruga.co.uk", true },
{ "lasalle.wa.edu.au", true },
{ "lasarmas.com", true },
@@ -19591,14 +20549,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lastweekinaws.com", true },
{ "lasuzefc.fr", true },
{ "lat.sk", true },
- { "latabledebry.be", true },
{ "latabledemontebello.com", true },
{ "late.am", true },
{ "latecnosfera.com", true },
+ { "latedeals.co.uk", true },
{ "latemodern.com", true },
{ "latenitefilms.com", false },
{ "lateral.dog", true },
{ "lateralsecurity.com", true },
+ { "latestbuy.com.au", true },
{ "latestdeals.co.uk", true },
{ "latiendadelbebefeliz.com", true },
{ "latiendauno.com", true },
@@ -19607,7 +20566,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "latinphone.com", true },
{ "latintoy.com", true },
{ "latitudesign.com", true },
- { "latour-managedcare.ch", true },
{ "latremebunda.com", true },
{ "latrine.cz", true },
{ "latterdaybride.com", true },
@@ -19631,6 +20589,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lauraofrank.com", true },
{ "laurasplacefamilysupport.org.au", true },
{ "laurelblack.com", true },
+ { "laurenceplouffe.com", true },
{ "laurenlobue.com", true },
{ "lauriemilne.com", true },
{ "lauriuc.sk", true },
@@ -19640,7 +20599,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "laut.digital", true },
{ "lauxzahnheilkunde.de", true },
{ "lauzon-hitter.com", true },
- { "lavabit.no", true },
{ "lavalite.de", true },
{ "lavamob.com", true },
{ "lavanderia.roma.it", true },
@@ -19649,6 +20607,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lavenderx.org", true },
{ "laviedalex.ovh", true },
{ "lavinya.net", true },
+ { "lavishlooksstudio.com.au", true },
{ "lavita.de", true },
{ "lavitrine-une-collection.be", true },
{ "lavoieducoeur.be", true },
@@ -19660,7 +20619,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lawformt.com", true },
{ "lawn-seeds.com", true },
{ "lawnuk.com", true },
- { "lawrence-institute.com", true },
{ "lawrenceberg.nl", true },
{ "lawrencemurgatroyd.com", true },
{ "lawyerkf.com", true },
@@ -19668,7 +20626,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "laylo.io", true },
{ "laylo.nl", true },
{ "layoutsatzunddruck.de", true },
- { "lazapateriahandmade.pe", true },
{ "lazowik.pl", true },
{ "lazurit.com", true },
{ "lazyboston.com", true },
@@ -19683,8 +20640,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lbls.me", true },
{ "lbphacker.pw", true },
{ "lbs-logics.com", true },
+ { "lbsi-nordwest.de", true },
{ "lbux.org", true },
- { "lc-cs.com", true },
+ { "lc-cs.com", false },
+ { "lc-promiss.de", true },
{ "lca-pv.de", true },
{ "lca.gov", true },
{ "lcars-sv.info", true },
@@ -19699,8 +20658,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lcybox.com", true },
{ "ld-begunjscica.si", true },
{ "ldc.com.br", false },
- { "ldcraft.pw", true },
{ "ldjb.jp", true },
+ { "ldsun.com", true },
{ "le-bar.org", true },
{ "le-blog.ch", true },
{ "le-controle-parental.fr", true },
@@ -19719,14 +20678,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "leadbox.cz", true },
{ "leaderoftheresistance.com", false },
{ "leaderoftheresistance.net", false },
- { "leadgenie.me", true },
{ "leadinfo.com", true },
{ "leadingsalons.com", true },
{ "leadquest.nl", true },
+ { "leadstart.org", true },
{ "leafandseed.co.uk", true },
{ "leafans.tk", true },
{ "leafinote.com", true },
{ "leakforums.net", true },
+ { "leamsigc.com", true },
{ "leandre.cn", true },
{ "leanplando.com", true },
{ "leap-it.be", true },
@@ -19736,14 +20696,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "learning-id.com", true },
{ "learningis1.st", true },
{ "learninglaw.com", true },
+ { "learningman.top", true },
{ "learnpianogreece.com", true },
{ "learnplayground.com", true },
+ { "learntale.com", true },
{ "learntube.cz", true },
{ "leaseit24.com", true },
{ "leaseit24.de", true },
{ "leasit.at", true },
{ "leasit.de", true },
{ "leastsignificantbit.de", true },
+ { "leatam.fr", true },
{ "leatherfurnitureexpo.com", true },
{ "leatherwood.nl", true },
{ "leavesofchangeweekly.org", true },
@@ -19756,7 +20719,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lebensraum-im-garten.de", true },
{ "lebihan.pl", true },
{ "leblanc.io", true },
- { "lebosse.me", true },
{ "lebourgeo.is", true },
{ "lechaudrondupertuis.ch", true },
{ "leclaire.com.br", true },
@@ -19766,6 +20728,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ledecologie.com.br", true },
{ "ledeguisement.com", true },
{ "lederer-it.com", true },
+ { "ledlight.com", true },
{ "ledscontato.com.br", true },
{ "ledzom.ru", false },
{ "lee-fuller.co.uk", true },
@@ -19773,8 +20736,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "leebiblestudycenter.com", true },
{ "leebiblestudycentre.co.uk", true },
{ "leebiblestudycentre.com", true },
- { "leech360.com", true },
- { "leeclemens.net", true },
+ { "leech360.com", false },
+ { "leeclemens.net", false },
{ "leedev.org", true },
{ "leelaylay.com", true },
{ "leere.me", true },
@@ -19786,6 +20749,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "leetcode.net", true },
{ "leetgamers.asia", true },
{ "leevealdc.com", true },
+ { "lefcoaching.nl", true },
{ "lefebvristes.com", true },
{ "lefebvristes.fr", true },
{ "leflibustier.ru", true },
@@ -19796,7 +20760,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "legacy.bank", true },
{ "legadental.com", true },
{ "legaillart.fr", true },
- { "legalcontrol.info", true },
{ "legalinmotion.es", true },
{ "legalrobot.com", true },
{ "legatofmrc.fr", true },
@@ -19812,6 +20775,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "legjobblogo.hu", true },
{ "legland.fr", true },
{ "legoutdesplantes.be", true },
+ { "legrandvtc.fr", true },
{ "legumefederation.org", true },
{ "legumeinfo.org", true },
{ "lehighmathcircle.org", true },
@@ -19819,6 +20783,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "leibniz-remscheid.de", false },
{ "leideninternationalreview.com", true },
{ "leigh.life", true },
+ { "leilautourdumon.de", true },
{ "leilonorte.com", true },
{ "leiming.co", true },
{ "leinfelder.in", true },
@@ -19839,11 +20804,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lemondrops.xyz", true },
{ "lemonop.com", true },
{ "lemonparty.co", true },
+ { "lemonthy.ca", true },
+ { "lemonthy.com", true },
{ "lemouillour.fr", true },
{ "lemuslimpost.com", true },
{ "lenagroben.de", true },
{ "lenaneva.ru", true },
{ "lence.net", true },
+ { "lendingclub.com", true },
+ { "lenget.com", true },
{ "lenguajedeprogramacion.com", true },
{ "lengzzz.com", true },
{ "lenidh.de", true },
@@ -19869,12 +20838,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "leon.net", true },
{ "leonauto.de", true },
{ "leonax.net", true },
+ { "leonbuitendam.nl", true },
{ "leondenard.com", true },
{ "leonhooijer.nl", false },
{ "leonklingele.de", true },
{ "leowkahman.com", true },
{ "lep.gov", true },
{ "lepenetapeti.com", true },
+ { "lepidum.jp", true },
{ "leponton-lorient.fr", true },
{ "leppis-it.de", true },
{ "leprado.com", true },
@@ -19896,14 +20867,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lesancheslibres.fr", true },
{ "lesarts.com", true },
{ "lesberger.ch", true },
- { "lesbiansslaves.com", true },
- { "lesbofight.com", true },
+ { "lesconteursavis.org", true },
{ "leseditionsbraquage.com", true },
+ { "lesfilmsavivre.com", true },
{ "lesgoodnews.fr", true },
{ "lesharris.com", true },
{ "leshervelines.com", true },
{ "lesjardinsdemathieu.net", true },
- { "lesjardinsdubanchet.fr", true },
{ "lesmamy.ch", true },
{ "lesmontagne.net", true },
{ "lesnet.co.uk", true },
@@ -19917,8 +20887,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lesterchan.net", true },
{ "lesterrassesdusoleil.ch", true },
{ "lesyndicat.info", true },
- { "let-go.cc", true },
{ "letemps.ch", true },
+ { "letraba.com", true },
{ "lets-bounce.com", true },
{ "lets-go-acoustic.de", true },
{ "lets-ktai.jp", true },
@@ -19971,20 +20941,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lezard-com.fr", true },
{ "lfashion.eu", true },
{ "lfgss.com", true },
+ { "lfklzw.com", true },
{ "lfrconseil.com", true },
{ "lgbt.io", true },
{ "lgbt.ventures", true },
- { "lgbtqventures.com", true },
{ "lgbtventures.com", true },
{ "lghfinancialstrategy.ch", true },
{ "lgpecasoriginais.com.br", true },
{ "lhajn.cz", true },
{ "lhakustik.se", true },
+ { "lhalbert.xyz", true },
{ "lhconsult.tk", false },
{ "lhost.su", true },
{ "li-ke.co.jp", true },
{ "li.search.yahoo.com", false },
{ "liam-w.io", true },
+ { "liamelliott.me", true },
+ { "liamlin.me", true },
{ "lian-in.com", true },
{ "lian-in.net", true },
{ "liang-li88.com", true },
@@ -19995,7 +20968,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lianye4.cc", true },
{ "lianye5.cc", true },
{ "lianye6.cc", true },
- { "liautard.fr", true },
{ "lib64.net", true },
{ "libbitcoin.org", true },
{ "libble.eu", true },
@@ -20004,6 +20976,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "libgame.com", true },
{ "libmpq.org", true },
{ "libnull.com", true },
+ { "libra.com", true },
{ "library-quest.com", true },
{ "libraryextension.com", true },
{ "libraryfreedomproject.org", false },
@@ -20029,7 +21002,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lichtspot.de", true },
{ "lichttechnik-tumler.com", true },
{ "lichttraeumer.de", true },
- { "lickmypussy.us", true },
{ "lickthesalt.com", true },
{ "lidavidm.me", true },
{ "lidel.org", true },
@@ -20052,16 +21024,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lieuu.com", true },
{ "lifanov.com", true },
{ "life-emotions.pt", true },
+ { "lifeartstudios.net", true },
{ "lifebetweenlives.com.au", true },
{ "lifecism.com", true },
- { "lifecoach.tw", false },
{ "lifegrip.com.au", true },
{ "lifeinhex.com", true },
{ "lifeinsurancepro.org", true },
{ "lifekiss.ru", true },
{ "lifematenutrition.com", true },
{ "lifemstyle.com", true },
- { "lifenexto.com", true },
{ "lifeqa.net", true },
{ "lifequotes-uk.co.uk", true },
{ "lifesafety.com.br", true },
@@ -20073,6 +21044,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "light-up.xyz", true },
{ "light.mail.ru", true },
{ "lightbox.co", true },
+ { "lightdark.xyz", true },
+ { "lightdream.tech", true },
{ "lighthouseinstruments.com", true },
{ "lighting-centres.co.uk", true },
{ "lightingagoura.com", true },
@@ -20095,10 +21068,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lightning.engineering", true },
{ "lightpics.net", true },
{ "lights.co.uk", true },
+ { "lights.ie", true },
+ { "lightscale.com", true },
+ { "lightsheep.no", true },
{ "lightspeed.com", false },
{ "lightspeedta.co", true },
{ "lighttp.com", true },
{ "lightupcollective.co.uk", true },
+ { "lignite.com", true },
{ "lignoma.com", true },
{ "ligonier.com", true },
{ "lihaul.dnsalias.net", true },
@@ -20107,13 +21084,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "likc.me", true },
{ "likeablehub.com", true },
{ "likeabox.de", true },
+ { "likebee.gr", true },
{ "likegeeks.com", true },
{ "likehifi.de", true },
{ "likemovies.de", true },
{ "likenewhearing.com.au", true },
{ "likere.com", true },
+ { "likesforinsta.com", true },
+ { "likui.me", true },
{ "lilaccakeboutique.com", true },
- { "liliang13.com", true },
{ "lillepuu.com", true },
{ "lily-bearing.com", true },
{ "lily-inn.com", true },
@@ -20125,6 +21104,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "limberg.me", true },
{ "limbo.services", true },
{ "limeburst.net", true },
+ { "limelabs.de", true },
+ { "limelabs.io", true },
{ "limeres.com", true },
{ "limereslaw.com", true },
{ "limitededitioncomputers.com", true },
@@ -20143,15 +21124,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lincolnfinewines.com", true },
{ "lincolnsfh.com", true },
{ "lincolnwayflorist.com", true },
- { "lincsbouncycastlehire.co.uk", true },
{ "lindalap.fi", true },
{ "lindemann.space", true },
{ "linden.me", true },
{ "lindeskar.se", true },
+ { "lindholmen.club", true },
{ "lindnerhof-taktik.de", true },
{ "lindo.ru", true },
{ "lindon.pw", true },
{ "lindsayanderson.com", true },
+ { "lindsaygorski.com", true },
{ "lindskogen.se", true },
{ "lindy.co", false },
{ "line.biz", true },
@@ -20166,6 +21148,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lingeriesilhouette.com", true },
{ "lingotaxi.com", true },
{ "linguamilla.com", true },
+ { "linguatrip.com", false },
{ "lingvo-svoboda.ru", true },
{ "linherest.tk", true },
{ "link-sanitizer.com", true },
@@ -20173,6 +21156,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "linkat4.cz", true },
{ "linkdr.uk", true },
{ "linkedinbackground.com", true },
+ { "linkedpipes.com", true },
{ "linkenheil.org", true },
{ "linklocker.co", true },
{ "linkmaker.co.uk", true },
@@ -20186,19 +21170,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "linkycat.com", true },
{ "linode.com", false },
{ "linost.com", true },
- { "linostassi.net", true },
{ "linqhost.nl", true },
{ "linss.com", true },
{ "lintmx.com", true },
{ "linusdrop.tips", true },
+ { "linux-audit.com", true },
{ "linux-florida.com", true },
{ "linux-mint-czech.cz", true },
{ "linux-vme.org", true },
- { "linux.army", true },
{ "linux.cn", true },
{ "linux.conf.au", true },
{ "linux.fi", true },
{ "linux.im", true },
+ { "linux.pizza", true },
{ "linux3.org", true },
{ "linuxbabe.com", true },
{ "linuxbierwanderung.com", true },
@@ -20212,22 +21196,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "linuxlounge.net", true },
{ "linuxos.org", true },
{ "linuxproperties.com", true },
+ { "linuxsecurity.expert", true },
{ "linx.li", true },
{ "linx.net", true },
{ "linzgau.de", true },
{ "linzyjx.com", true },
{ "lionhosting.nl", true },
+ { "lionlyrics.com", true },
{ "lionsdeal.com", true },
{ "lipartydepot.com", true },
{ "lipex.com", true },
- { "lipo.lol", true },
{ "lipoabaltimore.org", true },
{ "liqd.net", true },
{ "liquid.cz", true },
{ "liquidhost.co", true },
{ "liquidinternet.co", true },
{ "liquidradio.pro", true },
- { "liquidwarp.net", true },
+ { "liquipedia.net", true },
{ "lirion.de", true },
{ "liris-beautywelt.de", true },
{ "lirlandais.ch", true },
@@ -20237,8 +21222,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lisburnhottubnbounce.co.uk", true },
{ "lisieuxarquitetura.com.br", true },
{ "liskgdt.net", true },
+ { "lisky.ru", true },
{ "lislan.org.uk", true },
- { "lisowski-development.com", true },
+ { "lisowski-development.com", false },
{ "listahu.org", true },
{ "listekdo.fr", true },
{ "listen.dk", true },
@@ -20258,6 +21244,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "litsovet.com", true },
{ "little-cake.com", true },
{ "littlebestfriend.de", true },
+ { "littleboutiqueshop.co.uk", true },
+ { "littleboutiqueshop.com", true },
+ { "littleboutiqueshop.uk", true },
{ "littlefairy.no", true },
{ "littlefamilyadventure.com", true },
{ "littlegreece.ae", true },
@@ -20266,10 +21255,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "littlepigcreek.com.au", true },
{ "littlepincha.fr", true },
{ "littleprincessandmascotparties.co.uk", true },
+ { "littleqiu.net", true },
{ "littleredsbakeshop.com", true },
- { "littlericket.me", true },
+ { "littlericket.me", false },
{ "littlescallywagsplay.co.uk", true },
- { "littleskin.cn", true },
{ "littleswitch.co.jp", true },
{ "littlewatcher.com", true },
{ "litvideoserver.de", true },
@@ -20280,8 +21269,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "liufengyu.cn", true },
{ "liul.in", true },
{ "liupeicheng.top", true },
+ { "liushuyu.tk", true },
{ "liv3d.stream", true },
{ "live4k.media", false },
+ { "livebandphotos.com", true },
{ "livebetterwith.com", true },
{ "livebythesun.de", true },
{ "livecards.co.uk", true },
@@ -20292,7 +21283,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "livedesign24.de", true },
{ "liveflightapp.com", true },
{ "liveforspeed.se", true },
- { "livejasmin.dk", true },
{ "livekaarten.be", true },
{ "livekaarten.nl", true },
{ "livekarten.at", true },
@@ -20310,9 +21300,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "livepath.ch", true },
{ "liveperformersmeeting.net", true },
{ "liveregistratie.nl", true },
- { "livesearch-fukuoka.com", true },
+ { "liverider.co.jp", true },
{ "livesheep.com", true },
{ "livesure.com", true },
+ { "livetoride.co.za", true },
{ "livetube.tv", true },
{ "livi.co", true },
{ "living-space.co.nz", true },
@@ -20325,7 +21316,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "livolett.de", true },
{ "livrariacoad.com.br", true },
{ "livroseuniformes.com.br", true },
- { "lixiaojiang.ga", true },
{ "lixtick.com", true },
{ "liyin.date", true },
{ "liyinjia.com", true },
@@ -20340,10 +21330,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lknw.de", true },
{ "lkp111138.me", true },
{ "llamacuba.com", true },
+ { "ller.xyz", true },
{ "llm-guide.com", true },
{ "lloyd-day.me", true },
{ "lm-pumpen.de", false },
- { "lmcm.io", true },
{ "lmddgtfy.net", true },
{ "lmerza.com", true },
{ "lmintlcx.com", true },
@@ -20354,10 +21344,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lnhequipmentltd.com", true },
{ "lntu.org", true },
{ "lnx.li", true },
+ { "lnyltx.cn", true },
{ "load-ev.de", true },
{ "loadlow.me", true },
+ { "loadtraining.com", true },
{ "loadwallet.com", true },
- { "loafhead.me", true },
{ "loanaway.ca", true },
{ "loancompare.co.za", true },
{ "loandolphin.com.au", true },
@@ -20365,6 +21356,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lob-staging.com", true },
{ "lob.com", true },
{ "lobivia.de", true },
+ { "lobosdomain.hopto.org", true },
{ "lobsangstudio.com", true },
{ "lobstr.co", true },
{ "local360.net", true },
@@ -20373,38 +21365,58 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "localblitz.com", true },
{ "localblock.co.za", true },
{ "localbouncycastle.com", true },
- { "localdata.us", true },
{ "localdecor.com.br", true },
{ "localethereum.com", true },
{ "localhorst.duckdns.org", true },
- { "localhorst.xyz", false },
+ { "localhorst.xyz", true },
{ "localhost.ee", true },
+ { "localprideart.com", true },
{ "localspot.pl", true },
{ "locapos.com", true },
{ "locationvoitureallemagne.com", true },
{ "locationvoitureangleterre.com", true },
{ "locationvoitureaustralie.com", true },
{ "locationvoiturebelgique.com", true },
- { "locationvoiturecorse.net", true },
{ "locationvoitureespagne.com", true },
{ "locationvoitureitalie.com", true },
{ "locationvoitureportugal.com", true },
{ "locatorplus.gov", true },
{ "locauxrama.fr", true },
- { "locker.email", true },
+ { "locker.email", false },
{ "locker.plus", true },
{ "lockify.com", true },
{ "lockpick.nl", true },
{ "lockpicks.se", true },
{ "lockr.io", true },
+ { "locksmith-durbannorth.co.za", true },
+ { "locksmith-sanantonio-tx.com", true },
{ "locksmithbalchsprings.com", true },
+ { "locksmithballito.com", true },
+ { "locksmithbluff.co.za", true },
+ { "locksmithdearborn.com", true },
+ { "locksmithedmonds.com", true },
{ "locksmithgarland-tx.com", true },
{ "locksmithgrapevinetx.com", true },
+ { "locksmithhillcrest.co.za", true },
+ { "locksmithindurban.co.za", true },
+ { "locksmithlivoniami.com", true },
+ { "locksmithmadisonheights.com", true },
{ "locksmithmesquitetx.com", true },
+ { "locksmithmissouricity.com", true },
+ { "locksmithopen.com", true },
+ { "locksmithsammamishwa.com", true },
+ { "locksmithsanantoniotexas.com", true },
+ { "locksmithsbluff.com", true },
+ { "locksmithscottsdaleaz.com", true },
+ { "locksmithseattleco.com", true },
+ { "locksmithservice-houston.com", true },
{ "locksmithspring.com", true },
+ { "locksmithspringtx.com", true },
+ { "locksmithswestville.com", true },
{ "locksmiththewoodlands.com", true },
{ "locomore.com", true },
{ "locomotionds.com", true },
+ { "locurimunca.co", true },
{ "lodash.com", false },
{ "loddeke.eu", true },
{ "lodewijkict.nl", true },
@@ -20421,12 +21433,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "logement.com", true },
{ "logentries.com", false },
{ "logexplorer.net", true },
+ { "logfile.at", true },
+ { "logfro.de", true },
{ "logicchen.com", true },
{ "logiciel-entreprise-seurann.fr", true },
{ "logicio.ch", false },
{ "logicio.de", false },
{ "logicio.net", false },
{ "logicne-hise.si", true },
+ { "logicz.top", true },
{ "login.corp.google.com", true },
{ "login.gov", false },
{ "login.launchpad.net", true },
@@ -20450,17 +21465,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "logue.be", true },
{ "logze.nl", true },
{ "lohanaflores.com.br", true },
+ { "lohmeier.it", true },
{ "loichot.ch", true },
+ { "loigiai.net", true },
+ { "loihay.net", true },
{ "lojadamimo.com.br", true },
{ "lojadanidrea.com.br", true },
{ "lojadarenda.com.br", true },
{ "lojadewhisky.com.br", true },
{ "lojadoarcomprimido.com.br", true },
- { "lojadoprazer.com.br", true },
{ "lojadosomautomotivo.com.br", true },
{ "lojafazendoarte.com.br", true },
{ "lojafilipaper.com.br", true },
- { "lojahunamarcenaria.com.br", true },
{ "lojamagicalx.com", true },
{ "lojamascate.com.br", true },
{ "lojamoleco.com.br", true },
@@ -20484,10 +21500,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "loli.net", true },
{ "loli.pet", true },
{ "loli.ski", true },
+ { "loli.tube", true },
{ "loli.world", true },
{ "lolibrary.org", true },
{ "lolicon.eu", true },
- { "lolis.stream", true },
{ "lolkot.ru", true },
{ "lolnames.gg", true },
{ "lolpatrol.de", true },
@@ -20497,22 +21513,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lommyfleet.com", true },
{ "lon-so.com", true },
{ "lona.io", true },
- { "lonal.com", true },
- { "lonasdigital.com", true },
{ "london-transfers.com", true },
{ "london.dating", true },
{ "londongallery.net", true },
{ "londongynaecologist.co", true },
- { "londonkan.jp", true },
{ "londonkeyholdingcompany.co.uk", true },
{ "lonelytweets.com", true },
{ "lonesomecosmonaut.com", true },
+ { "long-journey.com", true },
{ "longhaircareforum.com", true },
{ "longhorn-imports.com", true },
{ "longhorn.id.au", true },
{ "longma.pw", true },
{ "longstride.net", true },
- { "longtaitouwang.com", true },
{ "lonniec.com", true },
{ "lonniemason.net", true },
{ "look.co.il", true },
@@ -20545,16 +21558,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lorenadumitrascu.ro", true },
{ "loreofthenorth.com", true },
{ "loreofthenorth.nl", true },
+ { "lorientlejour.com", true },
{ "loritaboegl.de", true },
+ { "lormansas.com", true },
{ "losangelestown.com", true },
{ "losless.fr", true },
+ { "losrascadoresparagatos.com", true },
{ "losreyesdeldescanso.com.ar", true },
{ "lost.host", true },
{ "lost.report", true },
{ "lostkeys.co.uk", true },
{ "lostserver.com", true },
- { "lostwithdan.com", true },
{ "lothlorien.ca", false },
+ { "lotl.ru", true },
{ "lotn.mobi", true },
{ "lotn.nl", true },
{ "lotnonline.com", true },
@@ -20570,10 +21586,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "louisvillecarguys.com", true },
{ "louisvillevmug.info", true },
{ "loune.net", true },
+ { "loungecafe.net", true },
+ { "loungecafe.org", true },
{ "love4taylor.me", true },
{ "loveandadoreboutique.com", true },
+ { "lovebigisland.com", true },
{ "lovebo9.com", true },
{ "lovebo9.net", true },
+ { "lovecrystal.co.uk", true },
{ "loveislandgames.com", true },
{ "loveisourweapon.com", true },
{ "lovelens.ch", false },
@@ -20585,7 +21605,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lovenwishes.com", true },
{ "loveph.one", true },
{ "lover-bg.com", true },
- { "loveread-ec.appspot.com", true },
{ "loverepublic.ru", true },
{ "lovesmagical.com", true },
{ "lovesupremefestival.com", true },
@@ -20604,17 +21623,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lowson.ca", true },
{ "loxal.net", true },
{ "loxal.org", true },
+ { "loyaltyondemand.club", true },
+ { "loyaltyondemand.eu", true },
{ "lp-support.nl", true },
- { "lpacademy.com.br", true },
{ "lpt-nebreziny.eu", true },
{ "lra-cloud.de", true },
- { "lrhstsa.com", true },
{ "lrssystems.com", true },
{ "ls-alarm.de", true },
{ "lsal.me", true },
{ "lsc-dillingen.de", true },
{ "lsc.gov", true },
{ "lshiy.com", true },
+ { "lsmpx.com", true },
{ "lsquo.com", true },
{ "lsws.de", true },
{ "lsys.ac", true },
@@ -20632,14 +21652,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lubomirkazakov.com", true },
{ "luc-oberson.ch", true },
{ "luca.swiss", true },
- { "lucacastelnuovo.nl", true },
+ { "lucacastelnuovo.nl", false },
+ { "lucafontana.net", true },
{ "lucafrancesca.me", true },
{ "lucakrebs.de", true },
{ "lucasantarella.com", true },
+ { "lucasbergen.ca", true },
+ { "lucascobb.com", true },
{ "lucasem.com", true },
+ { "lucasgaland.com", true },
{ "lucasgymnastics.com", true },
{ "lucaslarson.net", true },
- { "lucassoler.com.ar", true },
{ "luce.life", true },
{ "luchscheider.de", false },
{ "lucid-light.de", true },
@@ -20648,17 +21671,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lucidoccult.com", true },
{ "lucielavickova.com", true },
{ "luckycastles.co.uk", true },
- { "luckydog.pw", true },
{ "luckyfrog.hk", true },
{ "luckyxf.com", true },
{ "lucy.science", true },
{ "lucyparsonslabs.com", true },
- { "lucysan.net", true },
+ { "lucz.co", true },
{ "ludek.biz", true },
{ "ludikovsky.name", true },
{ "ludogue.net", true },
{ "ludovic-muller.fr", true },
- { "ludum.pl", true },
{ "ludwig.im", true },
{ "ludwiggrill.de", true },
{ "ludwigjohnson.se", true },
@@ -20679,11 +21700,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lugui.in", true },
{ "lui.pink", true },
{ "luiscapelo.info", true },
+ { "luisgf.es", true },
{ "luismaier.de", true },
{ "luisyr.com", true },
{ "luizkowalski.net", true },
{ "luk.earth", true },
{ "lukas-gorr.de", true },
+ { "lukas-meixner.com", true },
{ "lukas-oppermann.de", true },
{ "lukas-schauer.de", true },
{ "lukas.im", true },
@@ -20699,18 +21722,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lukaszwojcik.net", true },
{ "lukatz.de", true },
{ "luke.ch", true },
+ { "luke6887.me", true },
{ "lukeistschuld.de", true },
- { "lukem.eu", true },
{ "lukem.net", true },
{ "lukeng.net", true },
{ "lukesbouncycastlehire.com", true },
{ "lukestebbing.com", true },
+ { "lukesutton.info", true },
{ "lukmanulhakim.id", true },
{ "lukull-pizza.de", true },
+ { "lumen.sh", true },
{ "lumi.pw", true },
{ "lumiere.com", true },
+ { "luminaire.fr", true },
{ "luminaires-online.fr", true },
{ "lumitop.com", true },
+ { "lumminary.com", true },
{ "lunafag.ru", true },
{ "lunakit.org", true },
{ "lunanova.moe", true },
@@ -20720,6 +21747,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lunarshark.com", true },
{ "lunartail.nl", true },
{ "lunasqu.ee", true },
+ { "lunastrail.com", true },
{ "lunchbunch.me", true },
{ "lune-indigo.ch", true },
{ "lungta.pro", true },
@@ -20727,13 +21755,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lunidea.com", true },
{ "lunis.net", true },
{ "lunix.io", true },
- { "lunorian.is", false },
+ { "lunorian.is", true },
{ "luoe.me", true },
{ "luoh.cc", true },
{ "luoh.me", true },
{ "luohua.im", true },
{ "luongvu.com", true },
+ { "lupecode.com", true },
{ "lupinencyclopedia.com", true },
+ { "lupinenorthamerica.com", true },
+ { "luqsus.pl", true },
{ "luso-livros.net", true },
{ "lusteniny.cz", false },
{ "lustige-zitate.com", true },
@@ -20751,7 +21782,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "luuppi.fi", true },
{ "luvare.com", true },
{ "luvbridal.com.au", true },
+ { "luxcraft.eng.br", true },
{ "luxescreenprotector.nl", true },
+ { "luxofit.de", true },
{ "luxsci.com", true },
{ "luxurynsight.net", true },
{ "luxurytimepieces.net", true },
@@ -20762,14 +21795,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "luxwatch.com", true },
{ "luyckx.net", true },
{ "luzat.com", true },
- { "luzfaltex.com", true },
{ "lv.search.yahoo.com", false },
{ "lv0.it", true },
{ "lv5.top", true },
{ "lvmoo.com", true },
{ "lvrsystems.com", true },
{ "lw-addons.net", true },
- { "lwhate.com", true },
{ "lwl.moe", true },
{ "lwl12.com", true },
{ "lxd.cc", true },
@@ -20784,7 +21815,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lynero.dk", true },
{ "lyness.io", true },
{ "lyngvaer.no", true },
- { "lynkos.com", true },
{ "lynnlaytonnissanparts.com", true },
{ "lynnmosher.com", true },
{ "lynthium.com", true },
@@ -20798,14 +21828,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "lyricfm.ie", true },
{ "lys.ch", true },
{ "lyst.co.uk", true },
+ { "lyukaacom.ru", true },
{ "lyuly.com", true },
{ "lyx.dk", true },
- { "lz.sb", true },
{ "lzh.one", true },
+ { "lzwc.nl", true },
{ "m-22.com", true },
{ "m-chemical.com.hk", true },
{ "m-edmondson.co.uk", true },
- { "m-idea.jp", true },
+ { "m-gh.info", true },
{ "m-kleinert.de", true },
{ "m-mail.fr", true },
{ "m-orthodontic.com", true },
@@ -20815,6 +21846,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "m.me", true },
{ "m0t0k1ch1.com", true },
{ "m132.eu", true },
+ { "m134.eu", true },
{ "m2epro.com", true },
{ "m2os.com", true },
{ "m4rcus.de", true },
@@ -20830,6 +21862,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mabankonline.com", true },
{ "mabulledu.net", true },
{ "mac-i-tea.ch", true },
+ { "mac.biz.tr", true },
{ "mac1.net", true },
{ "macaw.nl", true },
{ "macaws.org", true },
@@ -20864,8 +21897,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "macosxfilerecovery.com", true },
{ "macoun.de", true },
{ "macros.co.jp", true },
- { "macstore.pe", true },
{ "mactools.com.co", true },
+ { "mad.ninja", true },
{ "madae.nl", true },
{ "madars.org", false },
{ "madbin.com", true },
@@ -20878,7 +21911,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "made-in-earth.co.jp", true },
{ "madebydusk.com", true },
{ "madebyshore.com", true },
- { "madeglobal.com", true },
{ "madeinchezmoi.net", true },
{ "madeinstudio3.com", true },
{ "madeitwor.se", true },
@@ -20890,7 +21922,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "madirc.net", true },
{ "madmar.ee", true },
{ "madoka.nu", true },
- { "madokami.net", true },
{ "madreacqua.org", true },
{ "madridartcollection.com", true },
{ "madtec.de", true },
@@ -20898,6 +21929,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mae-berlinistanbul.com", true },
{ "maedchenflohmarkt.at", true },
{ "maedchenflohmarkt.de", true },
+ { "maeln.com", true },
{ "maelstrom-fury.eu", true },
{ "maelstrom.ninja", true },
{ "maeplasticsurgery.com", true },
@@ -20918,6 +21950,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "magazin3513.com", true },
{ "magazinedotreino.com.br", true },
{ "magdic.eu", true },
+ { "magebit.com", true },
{ "magenda.sk", true },
{ "magentaize.net", true },
{ "magentapinkinteriors.co.uk", true },
@@ -20925,17 +21958,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "magewell.nl", true },
{ "maggie.com", true },
{ "magi-cake.com", true },
- { "magi.systems", true },
+ { "magic-cards.info", true },
{ "magical-secrets.com", true },
+ { "magical.rocks", true },
{ "magicalcircuslv.com", true },
{ "magicbroccoli.de", true },
+ { "magiccards.info", true },
{ "magicdaysomagh.co.uk", true },
{ "magickmoments.co.uk", true },
{ "magiclen.org", true },
{ "magicspaceninjapirates.de", true },
{ "magictable.com", true },
{ "magicvodi.at", true },
+ { "magieamour.com", true },
{ "magilio.com", true },
+ { "magnacarebroker.com", true },
{ "magnatronic.com.br", true },
{ "magneticattraction.com.au", true },
{ "magnetpass.uk", true },
@@ -20944,19 +21981,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "magnificentdata.com", true },
{ "magnoliadoulas.com", true },
{ "magnoliastrong.com", true },
+ { "magnunbaterias.com.br", true },
{ "magonote-nk.com", true },
+ { "magosmedellin.com", true },
+ { "magu.kz", true },
{ "maguire.email", true },
{ "magwin.co.uk", true },
{ "mahai.me", true },
{ "mahatmayoga.org", true },
{ "mahefa.co.uk", true },
+ { "mahjong-navi.com", true },
{ "mahjong.org", true },
+ { "mahjongrush.com", true },
{ "mahrer.net", true },
{ "maiaimobiliare.ro", true },
{ "maidoty.net", true },
{ "maiebanatulfruncea.com", true },
{ "maijia800.com", true },
{ "maikolfish.it", true },
+ { "mail-de.jp", true },
{ "mail-rotter.de", true },
{ "mail-settings.google.com", true },
{ "mail.com", true },
@@ -20974,9 +22017,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mailjet.tech", true },
{ "maillady-susume.com", true },
{ "mailmag.net", false },
- { "mailpenny.com", true },
{ "mailto.space", true },
- { "mailum.org", true },
+ { "mailum.org", false },
{ "mainechiro.com", true },
{ "mainframeserver.space", true },
{ "mainlined.org", true },
@@ -20985,6 +22027,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mainzelmaennchen.net", true },
{ "maioresemelhores.com", true },
{ "maisgasolina.com", true },
+ { "maison-haimard.fr", true },
{ "maisondoree.be", true },
{ "maisonpaulmier.fr", true },
{ "maispa.com", true },
@@ -21002,19 +22045,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "majkassab.org", true },
{ "majkl.me", true },
{ "majkyto.cz", true },
+ { "majolka.com", true },
{ "makaleci.com", true },
+ { "makalu.me", true },
{ "make-your-own-song.com", true },
{ "makeaboldmove.com", true },
{ "makedin.net", true },
{ "makem-bounce.co.uk", true },
- { "makemejob.com", true },
{ "makenaiyo-fx.com", true },
{ "makera.ga", true },
{ "makersatwork.com", true },
{ "maketheneighborsjealous.com", true },
{ "makeurbiz.com", true },
- { "makeyourlaws.org", true },
- { "makinen.ru", true },
+ { "maki-chan.de", true },
{ "makino.games", true },
{ "makkusu.photo", true },
{ "makowitz.cz", true },
@@ -21027,6 +22070,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "malaysian.dating", true },
{ "maldives.cx", true },
{ "malenyflorist.com.au", true },
+ { "maler-marschalleck.de", true },
{ "malermeister-haussmann.de", true },
{ "malesoowki.blog", true },
{ "malezan.com", true },
@@ -21041,7 +22085,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "malinator.net", false },
{ "malinheadview.ie", true },
{ "maljaars-fotografie.nl", true },
- { "malkaso.com.ua", true },
{ "mall.cz", true },
{ "mall.hr", true },
{ "mall.hu", true },
@@ -21049,49 +22092,47 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mall.sk", true },
{ "mallach.net", true },
{ "mallhonda.com", true },
- { "mallner.me", true },
{ "mallonline.com.br", true },
{ "malmoesport.se", true },
{ "malnex.de", true },
{ "malscan.com", true },
{ "malscan.org", true },
{ "malta-firma.com", true },
- { "malte-kiefer.de", true },
{ "malufs.com.br", true },
+ { "malware.watch", true },
{ "malwareinvestigator.gov", true },
{ "malwarekillers.com", true },
+ { "malwaretips.com", false },
{ "malwareverse.us", true },
{ "maly.cz", true },
{ "malyshata.com", true },
{ "malysvet.net", true },
{ "mamaasia.info", true },
{ "mamadea.be", true },
- { "mamadoma.com.ua", true },
{ "mamafit.club", true },
{ "mamamoet.ru", true },
{ "mamanecesitaungintonic.com", true },
{ "mamiecouscous.com", true },
{ "mammals.net", true },
{ "mammaw.com", true },
- { "mammeitalianeavienna.com", true },
{ "mammooc.org", true },
{ "mamospienas.lt", true },
{ "mamot.fr", false },
- { "mamout.xyz", true },
{ "mamuko.nl", true },
- { "man3s.jp", true },
- { "manaboutahor.se", false },
+ { "man3s.jp", false },
+ { "mana.ee", true },
{ "manach.net", true },
{ "manage.cm", true },
{ "manage4all.de", true },
{ "manageathome.co.uk", true },
{ "management-companie.ro", true },
- { "management-ethics.com", true },
{ "managementboek.nl", true },
{ "managementfeedback.com", true },
+ { "managementforstartups.com", true },
{ "manageprojects.com", false },
{ "manager-efficacement.com", true },
{ "manager.linode.com", false },
+ { "managewp.org", true },
{ "manatees.net", true },
{ "manavgabhawala.com", true },
{ "manawill.jp", true },
@@ -21103,6 +22144,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "manfredi.io", true },
{ "manfredimatteo.com", true },
{ "manfredschafer.ch", true },
+ { "mangahigh.com", true },
{ "mangapoi.com", true },
{ "mangaristica.com", true },
{ "manhattanchoralensemble.org", true },
@@ -21113,9 +22155,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "maniorpedi.com", true },
{ "maniosglass.gr", true },
{ "manipil.ch", true },
+ { "maniw.com", true },
{ "manja-und-martin.de", true },
{ "manjaro.ru", true },
{ "mankans.com", true },
+ { "manmeetgill.com", true },
{ "manneguiden.no", true },
{ "mannheimbloggt.tk", true },
{ "manns-solutions.co.uk", true },
@@ -21126,33 +22170,37 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "manowarus.com", true },
{ "mansdell.net", true },
{ "mansfeld.pl", true },
- { "mansiontech.cn", true },
+ { "manski.net", true },
{ "mantabiofuel.com", true },
{ "mantor.org", false },
+ { "mantra.pictures", true },
+ { "manuall.co.uk", true },
{ "manuall.de", true },
+ { "manuall.fr", true },
{ "manuall.info.tr", true },
+ { "manuall.it", true },
{ "manuall.ro", true },
+ { "manuall.se", true },
{ "manualscollection.com", true },
{ "manuel-herrmann.de", true },
+ { "manuel-schefczyk.de", true },
{ "manuel7espejo.com", true },
{ "manuelahidalgo.org", true },
{ "manueldopheide.com", true },
{ "manueli.de", true },
{ "manuelpinto.in", false },
- { "manuelrueger.de", true },
{ "manufacturing.gov", true },
{ "manufacturingusa.com", true },
{ "manuscript.com", true },
{ "manuscriptlink.com", true },
{ "manutd.org.np", true },
{ "manuth.life", true },
- { "manutrol.com.br", true },
{ "manwithavan.co.uk", true },
{ "manyetikboya.com", true },
{ "manyiu.com", true },
+ { "manylots.ru", true },
{ "manyue.org", true },
{ "maoi.re", true },
- { "maomaobt.com", true },
{ "maomihz.com", true },
{ "maone.net", true },
{ "maorseo.com", true },
@@ -21161,13 +22209,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "maozedong.red", true },
{ "map4erfurt.de", true },
{ "map4jena.de", true },
+ { "mapasmundi.com.br", true },
{ "mapblender.com", true },
{ "mapeo.io", true },
{ "maplanetebeaute.fr", true },
{ "mapletime.com", true },
+ { "maps.net", true },
{ "mapservices.nl", true },
+ { "mapstack.org", true },
{ "maquettage.com", true },
- { "maquillage-permanent-tatoo.com", true },
{ "maquinariaspesadas.org", true },
{ "mar-eco.no", true },
{ "marabumadrid.com", false },
@@ -21175,9 +22225,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "marble.com", true },
{ "marbogardenlidkoping.se", true },
{ "marc-hammer.de", true },
- { "marc-schlagenhauf.de", true },
- { "marcaixala.me", true },
{ "marcaudefroy.com", true },
+ { "marcbeije.com", true },
+ { "marcberndtgen.de", true },
+ { "marcceleiro.com", true },
{ "marceau.ovh", true },
{ "marcel-preuss.de", true },
{ "marcel-veronetzki.de", true },
@@ -21187,28 +22238,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "marcelinofranchini.info", true },
{ "marcelinofranchini.net", true },
{ "marcelinofranchini.org", true },
+ { "marcelkooiman.com", true },
{ "marcelpreuss.de", true },
+ { "marcelsiegert.com", true },
{ "marcelwaldvogel.ch", true },
- { "marcelwiedemeier.com", true },
{ "marcelwolf.coach", true },
{ "marcgoertz.de", true },
{ "marche-contre-monsanto.ch", true },
+ { "marchukov.com", true },
+ { "marchwj.pl", true },
{ "marciaimportados.com.br", true },
- { "marcianoandtopazio.com", true },
{ "marclay.co.uk", true },
{ "marco-goltz.de", true },
{ "marco-hegenberg.net", true },
- { "marco-kretz.de", true },
{ "marco-polo-reisen.com", true },
{ "marcocasoni.com", true },
{ "marcohager.de", true },
{ "marcoherten.com", true },
{ "marcuskoh.com", true },
- { "marcusserver.synology.me", true },
{ "marcusstafford.com", true },
{ "marechal-company.com", true },
{ "marek.su", true },
- { "mareklecian.cz", true },
{ "marelijah.org", true },
{ "margagriesser.de", true },
{ "margan.ch", true },
@@ -21216,22 +22266,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "margo-co.ch", true },
{ "margo.ml", true },
{ "margotlondon.co.uk", true },
+ { "marguerite-maison.fr", true },
+ { "mariacorzo.com", true },
{ "mariage-photo.ch", true },
{ "marianatherapy.com", true },
{ "marianelaisashi.com", true },
{ "marianhoenscheid.de", true },
{ "mariannenan.nl", true },
{ "mariannethijssen.nl", true },
- { "mariaolesen.dk", true },
{ "mariapietropola.com", true },
{ "mariehane.com", true },
{ "mariemiramont.fr", true },
{ "mariereichl.cz", true },
+ { "marijnfidder.nl", true },
{ "marikafranke.de", true },
{ "marilsnijders.nl", true },
{ "marilynmartin.com.au", true },
{ "marilynstreats.com", true },
{ "marin-business-center.ch", true },
+ { "marin-dom.ru", true },
{ "marin-tullet.com", true },
{ "marinazarza.es", true },
{ "marinbusinesscenter.ch", true },
@@ -21249,14 +22302,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mariushubatschek.de", true },
{ "mariviolin.com", true },
{ "marix.ro", true },
+ { "marjeta-gurtner.ch", true },
{ "marjoleindens.be", true },
{ "marjoriecarvalho.com.br", true },
+ { "mark-dietzer.de", true },
{ "mark-semmler.de", true },
+ { "mark1998.com", true },
{ "markaconnor.com", true },
+ { "markandrosalind.co.uk", true },
{ "markantoffice.com", true },
{ "markbiesheuvel.nl", true },
{ "markdain.net", true },
{ "markdescande.com", true },
+ { "markel.com.es", true },
{ "markepps.com", true },
{ "market.android.com", true },
{ "marketespace.fr", false },
@@ -21266,15 +22324,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "marketing91.com", true },
{ "marketingco.nl", true },
{ "marketingconverts.com", true },
+ { "marketingforfood.com", true },
{ "marketinggenerators.nl", true },
{ "marketingvirtuales.com", true },
- { "marketio.co", true },
{ "marketizare.ro", true },
{ "marketlinks.org", true },
{ "marketnsight.com", true },
{ "markhaehnel.de", true },
{ "markhenrick.site", true },
{ "markholden.guru", true },
+ { "markhoodphoto.com", true },
{ "markido.com", true },
{ "markitzeroday.com", true },
{ "markkirkforillinois.com", true },
@@ -21283,7 +22342,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "markoh.co.uk", true },
{ "markom.rs", true },
{ "markprof.ru", true },
- { "markri.nl", false },
+ { "markri.nl", true },
+ { "markridgwell.co.uk", true },
{ "markridgwell.com", true },
{ "markridgwellcom.appspot.com", true },
{ "markscastles.co.uk", true },
@@ -21302,6 +22362,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "markus.design", true },
{ "markusehrlicher.de", true },
{ "markusgran.de", true },
+ { "markuskeppeler.no-ip.biz", true },
{ "marl.fr", true },
{ "marloncommunications.com", true },
{ "marlonlosurdopictures.com", true },
@@ -21321,7 +22382,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "marriage-shrine.jp", true },
{ "marrickvilleapartments.com.au", true },
{ "marsanvet.com", true },
- { "marsatapp.com", true },
{ "marsble.com", true },
{ "marseillekiteclub.com", true },
{ "marshallscastles.com", true },
@@ -21339,6 +22399,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "martiestrimsalon.nl", true },
{ "martijn.site", true },
{ "martijnhielema.nl", true },
+ { "martijnvanderzande.nl", true },
+ { "martin-loewer.de", true },
{ "martin-smith.info", true },
{ "martin.vet", true },
{ "martindimitrov.cz", true },
@@ -21366,14 +22428,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "maryeileen90.party", true },
{ "maryjruggles.com", true },
{ "marykatrinaphotography.com", true },
- { "masa-hou.com", true },
+ { "marylandbasementandcrawlspacewaterproofing.com", true },
{ "masarik.sh", true },
{ "masatotaniguchi.jp", true },
{ "masayahost.com", true },
- { "masaze-hanka.cz", true },
{ "mascosolutions.com", true },
{ "masdillah.com", true },
- { "maservant.net", true },
{ "mashandco.it", true },
{ "mashandco.tv", true },
{ "masiniunelte.store.ro", true },
@@ -21391,6 +22451,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "massdrop.com", true },
{ "masse.org", true },
{ "massflix.com", true },
+ { "massfone.com", true },
{ "masshiro.blog", true },
{ "massive.tk", true },
{ "massoni.pl", true },
@@ -21401,7 +22462,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mastellone.us", true },
{ "mastepinnelaand.nl", true },
{ "master-net.org", true },
- { "masteragenasia.net", true },
{ "mastercardpac.com", true },
{ "masterdemolitioninc.com", true },
{ "masterdigitale.com", true },
@@ -21417,7 +22477,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mastodon.at", true },
{ "mastodon.host", true },
{ "mastodon.rocks", true },
- { "mastodon.top", true },
{ "mat.tt", true },
{ "matanz.de", true },
{ "matatabimix.com", true },
@@ -21426,6 +22485,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "matchatea24.com", true },
{ "matchboxdesigngroup.com", true },
{ "matchneedle.com", true },
+ { "matdogs.com", true },
+ { "matejgroma.com", true },
{ "matel.org", true },
{ "materiaischiquinho.com.br", true },
{ "material-ui.com", true },
@@ -21433,17 +22494,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "materialism.com", true },
{ "materialyinzynierskie.pl", true },
{ "maternum.com", true },
+ { "mateuszchyla.pl", true },
{ "math.hamburg", true },
{ "mathalexservice.info", true },
{ "mathematik.rocks", true },
+ { "mathematris.com", true },
{ "mathembedded.com", true },
+ { "matheo-schefczyk.de", true },
+ { "mathfinder.org", true },
{ "mathhire.org", true },
{ "mathias.is", true },
{ "mathiasbynens.be", true },
{ "mathiasgarbe.de", true },
+ { "mathiaswagner.org", true },
{ "mathieuguimond.com", true },
- { "mathieui.net", true },
- { "mathis.com.tr", true },
{ "maths.network", true },
{ "mathsource.ga", true },
{ "mathspace.co", true },
@@ -21451,9 +22515,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mathsweek.org.nz", true },
{ "mathsweek.school.nz", true },
{ "mathys.io", true },
+ { "matildajaneclothing.com", true },
{ "matjaz.it", true },
{ "matlss.com", true },
{ "matmessages.com", true },
+ { "matok.me.uk", true },
+ { "matome-surume.com", true },
{ "matomeathena.com", true },
{ "matoutepetiteboutique.com", true },
{ "matridiana.com", true },
@@ -21463,7 +22530,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "matrixmedia.ro", true },
{ "matrixreq.com", true },
{ "matsu-semi.com", true },
- { "matt-brooks.com", true },
+ { "matsu-walk.com", true },
{ "matt-royal.gr", true },
{ "matt.re", true },
{ "mattandyana.com", true },
@@ -21480,8 +22547,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mattfin.ch", true },
{ "mattforster.ca", true },
{ "matthecat.com", true },
+ { "matthewchapman.co.uk", true },
{ "matthewfells.com", true },
{ "matthewgallagher.co.uk", true },
+ { "matthewj.ca", true },
{ "matthewkenny.co.uk", true },
{ "matthewohare.com", true },
{ "matthewsetter.com", true },
@@ -21495,8 +22564,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "matthiasschwab.de", true },
{ "matthieuschlosser.fr", true },
{ "matthijssen.info", true },
- { "mattia98.org", true },
{ "mattiascibien.net", true },
+ { "mattlaks.com", true },
{ "mattli.us", true },
{ "mattmccutchen.net", true },
{ "mattmcshane.com", true },
@@ -21509,8 +22578,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mauerwerkstag.info", true },
{ "mauldincookfence.com", true },
{ "mauran.me", true },
- { "maurice-walker.com", true },
+ { "maurice-walker.com", false },
{ "mauricedb.nl", true },
+ { "maurovacca.com", true },
{ "maury-moteurs.com", true },
{ "mavenclinic.com", true },
{ "mavensecurity.com", true },
@@ -21537,7 +22607,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "maxdev72.freeboxos.fr", true },
{ "maxfox.me", true },
{ "maxhamon.ovh", true },
- { "maxhoechtl.at", true },
{ "maximdeboiserie.be", true },
{ "maximdens.be", true },
{ "maximeferon.fr", true },
@@ -21573,11 +22642,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mazda-mps.de", true },
{ "mazda-thermote.com", true },
{ "mazda626.net", true },
- { "maze.design", true },
{ "maze.fr", true },
{ "mazternet.ru", true },
{ "mazzotta.me", true },
{ "mb-is.info", true },
+ { "mb300sd.com", true },
+ { "mb300sd.net", true },
{ "mbaasy.com", true },
{ "mbaestlein.de", true },
{ "mbainflatables.co.uk", true },
@@ -21595,14 +22665,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mbr-net.de", true },
{ "mbrooks.info", true },
{ "mbs-journey.com", true },
+ { "mbsec.net", true },
{ "mburns.duckdns.org", true },
{ "mbweir.com", true },
+ { "mbwis.net", true },
{ "mc-jobs.net", true },
{ "mc-venture.net", false },
{ "mc4free.cc", true },
{ "mcatnnlo.org", true },
{ "mccoolesredlioninn.com", true },
+ { "mccordsvillelocksmith.com", true },
{ "mccrackon.com", true },
+ { "mcculloughjchris.com", true },
{ "mcdermottautomotive.com", true },
{ "mcdona1d.me", true },
{ "mcdonalds.be", true },
@@ -21613,11 +22687,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mcea-hld.jp", true },
{ "mceconferencecentre.eu", true },
{ "mcfedries.com", true },
+ { "mcfipvt.com", true },
{ "mcfx.us", true },
{ "mcgaccountancy.co.uk", true },
{ "mcgarderen.nl", true },
{ "mcgovernance.com", true },
- { "mchan.us", true },
+ { "mchel.net", true },
+ { "mchopkins.net", true },
{ "mchristopher.com", true },
{ "mcinterface.de", true },
{ "mcivor.me", true },
@@ -21629,26 +22705,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mclinflatables.co.uk", true },
{ "mclmotors.co.uk", true },
{ "mclyr.com", true },
+ { "mcmillansedationdentistry.com", false },
{ "mcmillanskiclub.com.au", true },
{ "mcneill.io", true },
{ "mcnext.net", true },
+ { "mcon.se", true },
{ "mcpaoffice.com", true },
{ "mcpart.land", true },
{ "mcplayman.de", true },
{ "mcpro.games", true },
{ "mcprocdn.com", true },
- { "mcqyy.com", true },
{ "mcrn.jp", true },
{ "mcsinflatables.co.uk", true },
- { "mcsniper.co", true },
{ "mcsrvstat.us", true },
- { "mctherealm.net", true },
{ "mctools.org", true },
+ { "mcuuid.net", true },
+ { "mcversions.net", true },
{ "mcynews.com", true },
{ "mcyukon.com", true },
{ "md-clinica.com.ua", true },
{ "md5file.com", true },
{ "md5hashing.net", true },
+ { "mdazo.net", true },
{ "mdbouncycastlehirelondon.co.uk", true },
{ "mdcloudpracticesolutions.com", true },
{ "mdcloudps.com", true },
@@ -21664,6 +22742,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mdoering.de", true },
{ "mdosch.de", true },
{ "mdpraha.cz", true },
+ { "mds-paris.com", true },
{ "mdsave.com", true },
{ "mdx.no", true },
{ "mdxdave.de", true },
@@ -21675,11 +22754,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "meadowfen.farm", true },
{ "mealgoo.com", true },
{ "meamod.com", false },
- { "meanevo.com", true },
{ "meany.xyz", true },
{ "meap.xyz", true },
{ "measureyourpenis.today", true },
{ "meat.org.uk", true },
+ { "mebaneattorney.com", true },
+ { "mebanesteakhouse.com", true },
{ "mecanicoautomotriz.org", true },
{ "mechanus.io", true },
{ "mechmk1.me", true },
@@ -21697,16 +22777,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "medhy.fr", true },
{ "medi-link.co.il", true },
{ "medi.com.br", true },
- { "media-courses.com", false },
{ "media-credit.eu", true },
{ "media-instance.ru", true },
{ "media-library.co.uk", true },
{ "media-pi.com", true },
{ "media-serwis.com", true },
{ "mediaarea.net", true },
+ { "mediabackoffice.co.jp", true },
{ "mediablaster.com", true },
+ { "mediabm.jp", true },
{ "mediaburst.co.uk", true },
{ "mediadex.be", true },
+ { "mediaexpert.fr", true },
{ "mediafly.com", true },
{ "mediafocus.biz", true },
{ "mediagenic.ch", true },
@@ -21716,11 +22798,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "medialab.nrw", true },
{ "mediamarkt.pl", true },
{ "mediapart.fr", true },
+ { "mediarithmics.com", true },
{ "mediarocks.de", true },
{ "mediaselection.eu", true },
{ "mediationculturelleclp.ch", true },
{ "mediatorzy.waw.pl", true },
+ { "mediaukkies.nl", true },
{ "mediavault.tech", true },
+ { "mediawijsheid.nl", true },
+ { "mediawijzer.net", true },
{ "mediawiki.org", true },
{ "mediawin.pl", true },
{ "medic-world.com", true },
@@ -21737,13 +22823,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "medifi.com", true },
{ "medigap-quote.net", true },
{ "medikuma.com", true },
+ { "medino.com", true },
{ "medinside.ch", true },
{ "medinside.li", true },
{ "medinsider.ch", true },
{ "medinsider.li", true },
{ "medireport.fr", true },
+ { "meditel.nl", true },
{ "medium.com", true },
+ { "medja.net", true },
{ "medlineplus.gov", true },
+ { "medmarkt24.com", true },
{ "medo64.com", true },
{ "medovea.ru", true },
{ "medpeer.jp", true },
@@ -21754,6 +22844,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "medtehnika.ua", true },
{ "medusa.wtf", true },
{ "meduza.io", true },
+ { "medvedikorenka.cz", true },
{ "medvet.com.es", true },
{ "medwaybouncycastlehire.co.uk", true },
{ "medyotan.ga", true },
@@ -21776,6 +22867,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "meeusen-usedcars.be", true },
{ "meeztertom.nl", true },
{ "meg-a-bounce.co.uk", true },
+ { "mega-aukcion.ru", true },
{ "mega-byte.nl", true },
{ "mega-feeling.de", true },
{ "mega.co.nz", true },
@@ -21788,16 +22880,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "megaflowers.ru", true },
{ "megagifs.de", true },
{ "megainflatables.co.uk", true },
+ { "megamarkey.de", true },
{ "megamisja.pl", true },
{ "meganandmarc.us", true },
- { "meganreel.com", true },
+ { "meganreel.com", false },
{ "megapixel.cz", true },
{ "megaplan.cz", true },
{ "megaplan.ru", true },
{ "megaplonk.com", true },
{ "megarex.jp", true },
{ "megasslstore.com", true },
- { "megasystem.cl", true },
+ { "megauction.tk", true },
{ "megaxchange.com", true },
{ "megumico.net", true },
{ "megustariasaber.com", true },
@@ -21838,7 +22931,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mekesh.net", true },
{ "mekesh.ru", true },
{ "meklon.net", true },
- { "mekongeye.com", true },
{ "melaniebernhardt.com", true },
{ "melaniegruber.de", true },
{ "melbourne.dating", true },
@@ -21850,12 +22942,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "melhoresdominios.com", true },
{ "melhoresmarcasdenotebook.com.br", true },
{ "melillaorienta.es", true },
+ { "melina-schefczyk.de", true },
{ "melissaadkins.com", true },
{ "melissaauclaire.com", true },
{ "melissameuwszen.nl", true },
{ "melitopol.co.ua", true },
{ "melnessgroup.com", true },
{ "melnikov.ch", true },
+ { "melodicprogressivehouse.com", true },
{ "melodiouscode.co.uk", true },
{ "melodiouscode.com", true },
{ "melodiouscode.net", true },
@@ -21874,7 +22968,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "meme.institute", true },
{ "memememememememe.me", true },
{ "memepasmal.net", true },
- { "memes.nz", true },
+ { "memesbee.com", true },
{ "memfrob.org", true },
{ "memind.net", true },
{ "memiux.com", true },
@@ -21892,7 +22986,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "menhera.org", true },
{ "menielias.com", true },
{ "menkyo-blog.com", true },
- { "mennace.com", true },
{ "menntagatt.is", true },
{ "menole.com", true },
{ "menole.de", true },
@@ -21916,7 +23009,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "menuonlineordering.com", true },
{ "menzel-motors.com", true },
{ "menzietti.it", true },
- { "meo.de", true },
{ "mephedrone.org", true },
{ "mer.gd", true },
{ "meransuedtirol.com", true },
@@ -21929,23 +23021,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mercedes-benz.io", true },
{ "mercedes-ig.de", true },
{ "mercedespartscenter.com", true },
+ { "merchant-automotive.com", true },
{ "mercier-auto.com", true },
{ "mercier-cars.co.uk", true },
{ "mercury.photo", true },
{ "mercuryamericas.com", false },
{ "meremeti-online.gr", true },
- { "meremobil.dk", true },
+ { "merenbach.com", true },
{ "merenita.com", true },
{ "merenita.eu", true },
{ "merenita.net", true },
{ "merenita.nl", true },
+ { "meric-graphisme.info", true },
+ { "meridianmetals.com", true },
{ "meridianstore.com.br", true },
{ "merkel.me", true },
{ "merlet.eu", true },
+ { "merlinsoap.com", true },
{ "merloat.club", true },
+ { "merloat.com", true },
{ "merojob.com", true },
{ "meronberry.jp", true },
- { "mertak.cz", true },
+ { "merson.org", true },
+ { "merson.tv", true },
{ "mertarauh.com", true },
{ "mertcangokgoz.com", true },
{ "meruri.com", true },
@@ -21956,13 +23054,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mescaline.com", true },
{ "mescaline.org", true },
{ "mesh.gov", true },
+ { "meshok.info", true },
{ "mesicka.com", true },
{ "messagescelestes-archives.ca", true },
{ "messagevortex.com", true },
{ "messagevortex.net", true },
{ "messdorferfeld.de", true },
{ "messenger.co.tz", true },
- { "messenger.com", true },
+ { "messenger.com", false },
{ "messengerwebbrands.com", true },
{ "messer24.ch", true },
{ "messymom.com", true },
@@ -21970,24 +23069,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mestr.es", true },
{ "mesvt.com", true },
{ "meta-db.com", true },
- { "meta-word.com", true },
{ "meta.sc", true },
{ "metachris.com", true },
{ "metacoda.com", true },
{ "metacode.biz", true },
{ "metadatawiki.com", true },
- { "metaether.net", true },
{ "metafurquest.net", true },
{ "metalu.ch", true },
{ "metanic.org", true },
{ "metanic.services", true },
{ "metanodo.com", true },
{ "metapeen.nl", true },
+ { "metaregistrar.com", true },
{ "metasquare.com.au", true },
{ "metasquare.nyc", true },
- { "metaword.com", true },
- { "metaword.net", true },
- { "metaword.org", true },
{ "meteenonline.nl", true },
{ "meteo-parc.com", true },
{ "meteo-r.ovh", true },
@@ -22000,12 +23095,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "meteobox.pl", true },
{ "meteobox.sk", true },
{ "meteorapp.space", true },
+ { "meteosherbrooke.com", true },
{ "meteosmit.it", true },
{ "meterhost.com", true },
{ "methamphetamine.co.uk", true },
{ "methylone.com", true },
- { "metikam.pl", true },
- { "metin2sepeti.com", true },
{ "metro-lawn-care.com", true },
{ "metro-web.net", true },
{ "metroairvirtual.com", true },
@@ -22016,7 +23110,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "metsasta.com", true },
{ "mettekopp.dk", true },
{ "meu-solutions.com", true },
- { "meujeitodigital.com.br", true },
+ { "meujeitodigital.com.br", false },
+ { "meupainel.me", true },
+ { "meurisse.org", true },
{ "mevo.xyz", true },
{ "mevs.cz", true },
{ "mexican.dating", true },
@@ -22030,13 +23126,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mfits.co.uk", true },
{ "mflodin.se", true },
{ "mfxbe.de", true },
+ { "mfz.mk", true },
+ { "mgcraft.net", true },
{ "mgi.gov", true },
{ "mgknet.com", true },
{ "mgrossklaus.de", true },
{ "mgrt.net", true },
{ "mgsisk.com", true },
{ "mgtbaas.eu", true },
+ { "mhadot.com", true },
{ "mhalfter.de", true },
+ { "mhand.org", true },
+ { "mhatero.com", true },
{ "mhatlaw.com", true },
{ "mheistermann.de", true },
{ "mhermans.nl", true },
@@ -22047,25 +23148,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mi-so-ji.com", true },
{ "mi80.com", true },
{ "miagexport.com", true },
- { "miamicityballet.org", true },
{ "miaonagemi.com", true },
{ "miaoubox.com", true },
{ "miaowo.org", true },
{ "miasarafina.de", true },
- { "miboulot.com", true },
+ { "mibuiin.com", true },
{ "micado-software.com", true },
{ "micaiahparker.com", true },
{ "micalodeal.ch", true },
{ "micasamgmt.com", false },
{ "micbase.com", true },
+ { "michadenheijer.com", true },
+ { "michael-schefczyk.de", true },
{ "michael-steinhauer.eu", true },
{ "michael.band", true },
{ "michaelasawyer.com", true },
{ "michaelband.co", true },
{ "michaelband.com", true },
+ { "michaelcullen.name", true },
{ "michaeleichorn.com", true },
{ "michaelhrehor.com", true },
{ "michaeliscorp.com", true },
+ { "michaelismold.com", true },
{ "michaelizquierdo.com", true },
{ "michaeljdennis.com", true },
{ "michaelkuchta.me", true },
@@ -22101,7 +23205,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "miconcinemas.com", true },
{ "micr.io", true },
{ "micr0lab.org", true },
- { "microbiote-insectes-vecteurs.group", true },
{ "microco.sm", true },
{ "microcomploja.com.br", true },
{ "microdots.de", true },
@@ -22120,12 +23223,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "midlandsphotobooths.co.uk", true },
{ "midlgx.com", true },
{ "midnight-visions.de", true },
+ { "midnightmango.co.uk", true },
+ { "midnightmango.de", true },
{ "midnightmechanism.com", true },
{ "midstatebasement.com", true },
{ "midtowndentistry.com", true },
{ "midwestbloggers.org", true },
{ "midweststructuralrepair.com", true },
{ "miegl.com", true },
+ { "miembarcacion.com", true },
{ "miemus.eu", true },
{ "mietwohnungen-vermietung.com", true },
{ "mieuxgrandir.ch", true },
@@ -22136,7 +23242,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "miguel.pw", true },
{ "migueldemoura.com", true },
{ "migueldominguez.ch", true },
- { "miguelgfierro.com", true },
{ "miguelmartinez.ch", true },
{ "miguelmenendez.pro", true },
{ "miguelmoura.com", true },
@@ -22149,6 +23254,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mijnetickets.nl", false },
{ "mijnetz.nl", true },
{ "mijnkerstkaarten.be", true },
+ { "mijnkinderkleding.com", true },
+ { "mijnpartijhandel.nl", true },
{ "mijnreisoverzicht.nl", true },
{ "mijnsite.ovh", true },
{ "mijnstembureau.nl", true },
@@ -22164,11 +23271,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mikeblog.site", true },
{ "mikebutcher.ca", true },
{ "mikecb.org", true },
+ { "mikegarnett.co.uk", true },
{ "mikegerwitz.com", true },
{ "mikeguy.co.uk", true },
{ "mikehamburg.com", true },
{ "mikehilldesign.co.uk", true },
- { "mikerichards.photography", true },
+ { "mikerichards.photography", false },
{ "miketabor.com", true },
{ "miketheuer.com", true },
{ "mikevesch.com", true },
@@ -22176,11 +23284,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mikewillia.ms", true },
{ "mikewritesstuff.com", true },
{ "mikeybailey.org", true },
+ { "mikhirev.ru", true },
{ "mikhlevich.ru", true },
{ "miki-boras.de", true },
{ "miki.it", true },
- { "mikkelscheike.com", true },
- { "mikkelvej.dk", true },
+ { "mikkonen.bio", true },
{ "miklcct.com", true },
{ "miknight.com", true },
{ "mikonmaa.fi", true },
@@ -22203,6 +23311,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "milesapart.dating", true },
{ "milhoazul.com.br", true },
{ "milionshop.sk", true },
+ { "milkandcookies.ca", true },
{ "milkingit.co.uk", true },
{ "milktea.info", true },
{ "millanova.wedding", false },
@@ -22211,17 +23320,79 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "millefleurs.eu", true },
{ "millennium-thisiswhoweare.net", true },
{ "millenniumweb.com", false },
+ { "millersminibarns.com", true },
+ { "millettable.com", true },
{ "millhousenchurch.com", true },
+ { "million5.com", true },
+ { "million6.com", true },
+ { "million8.com", true },
{ "millionairegames.com", true },
+ { "millions1.com", true },
+ { "millions11.com", true },
+ { "millions13.com", true },
+ { "millions14.com", true },
+ { "millions15.com", true },
+ { "millions16.com", true },
+ { "millions17.com", true },
+ { "millions19.com", true },
+ { "millions20.com", true },
+ { "millions22.com", true },
+ { "millions25.com", true },
+ { "millions26.com", true },
+ { "millions27.com", true },
+ { "millions28.com", true },
+ { "millions29.com", true },
+ { "millions31.com", true },
+ { "millions32.com", true },
+ { "millions33.com", true },
+ { "millions35.com", true },
+ { "millions36.com", true },
+ { "millions37.com", true },
+ { "millions38.com", true },
+ { "millions39.com", true },
+ { "millions40.com", true },
+ { "millions41.com", true },
+ { "millions42.com", true },
+ { "millions43.com", true },
+ { "millions5.com", true },
+ { "millions50.com", true },
+ { "millions51.com", true },
+ { "millions52.com", true },
+ { "millions53.com", true },
+ { "millions55.com", true },
+ { "millions56.com", true },
+ { "millions57.com", true },
+ { "millions58.com", true },
+ { "millions59.com", true },
+ { "millions6.com", true },
+ { "millions60.com", true },
+ { "millions61.com", true },
+ { "millions62.com", true },
+ { "millions63.com", true },
+ { "millions66.com", true },
+ { "millions7.com", true },
+ { "millions70.com", true },
+ { "millions71.com", true },
+ { "millions72.com", true },
+ { "millions77.com", true },
+ { "millions8.com", true },
+ { "millions80.com", true },
+ { "millions81.com", true },
+ { "millions82.com", true },
+ { "millions88.com", true },
+ { "millions9.com", true },
+ { "millions99.com", true },
{ "millistream.com", true },
- { "mim.properties", true },
+ { "milsonhypnotherapyservices.com", true },
+ { "mim.am", true },
{ "mimemo.io", true },
+ { "mimemoriadepez.com", true },
{ "mimeo.digital", true },
+ { "mimithedog.com", true },
{ "mimobile.website", true },
{ "mimocad.io", true },
{ "mimovrste.com", true },
{ "min-sky.no", true },
- { "minacssas.com", true },
{ "minakov.pro", true },
{ "minakova.pro", true },
{ "minami.xyz", true },
@@ -22230,9 +23401,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mind-box.ch", true },
{ "mind-hochschul-netzwerk.de", true },
{ "mind-moves.es", true },
- { "mindbodycontinuum.com", true },
{ "mindbodytherapymn.com", true },
- { "mindcell.no", true },
{ "mindcoding.ro", true },
{ "mindercasso.nl", true },
{ "mindfactory.de", true },
@@ -22240,7 +23409,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mindoktor.se", false },
{ "mindorbs.com", true },
{ "mindstretchers.co.uk", true },
- { "mindturbo.com", true },
{ "mindwork.space", true },
{ "mine-craftlife.com", true },
{ "mine260309.me", true },
@@ -22260,10 +23428,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "minerstat.com", true },
{ "minerva2015.it", true },
{ "minesouls.fr", true },
+ { "minetracker.dk", true },
{ "minez-nightswatch.com", false },
{ "minf3-games.de", true },
{ "mingky.net", true },
- { "mingkyaa.com", true },
{ "mingming.info", true },
{ "mingram.net", true },
{ "mingwah.ch", true },
@@ -22293,20 +23461,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "minpingvin.dk", true },
{ "minschuns.ch", true },
{ "mintclass.com", true },
- { "mintea-noua.ro", true },
{ "mintosherbs.com", true },
{ "mintrak2.com", true },
- { "minu.link", true },
+ { "mintse.com", true },
{ "minube.co.cr", true },
{ "minux.info", true },
{ "mipapo.de", true },
{ "mipla.ch", true },
{ "miproximopaso.org", true },
+ { "mipueblohoy.com", true },
{ "mipymesenlinea.com", true },
{ "mir.pe", true },
{ "mirabalphoto.es", true },
{ "miraheze.org", true },
{ "miraidenshi.com", true },
+ { "miraiex.com", true },
{ "mirch.com", true },
{ "mirco-grams.de", true },
{ "mireiaseuba.com", true },
@@ -22315,8 +23484,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mirfire.com", true },
{ "mirjamderijk.nl", true },
{ "mirkofranz.de", true },
- { "mirodasilva.be", true },
{ "mironet.cz", true },
+ { "mirrorbot.ga", true },
{ "mirrorsedgearchive.de", true },
{ "mirshak.com", true },
{ "mirtes.cz", true },
@@ -22325,6 +23494,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "misanci.cz", true },
{ "misclick.nl", true },
{ "mishkovskyi.net", true },
+ { "misinstrumentos.com", true },
{ "miskatonic.org", true },
{ "misoji-resist.com", true },
{ "misol.kr", true },
@@ -22334,12 +23504,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "miss.com.tw", true },
{ "missdream.org", true },
{ "misseguf.dk", true },
- { "missguidedus.com", true },
+ { "missevent.pl", true },
{ "mission-orange.de", true },
{ "missionsgemeinde.de", true },
{ "missip.nl", true },
{ "missjoias.com.br", true },
- { "misskey.xyz", false },
+ { "misskey.jp", true },
+ { "misskey.site", true },
+ { "misskey.xyz", true },
{ "missoy.me", true },
{ "misssex.de", true },
{ "missualready.com", true },
@@ -22350,17 +23522,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mistybox.com", true },
{ "misupport.dk", true },
{ "misura.re", true },
+ { "mit-dem-rad-zur-arbeit.de", true },
+ { "mit-dem-rad-zur-uni.de", true },
{ "mit-uns.org", true },
{ "mita.me", true },
{ "mitabu.net", true },
{ "mitaines.ch", true },
{ "mitarbeitermotivation-anleitungen.de", true },
{ "mitchellhandymanservices.co.uk", true },
+ { "mitchelmore.ca", true },
{ "miticobikes.com", true },
{ "mitigationcommission.gov", true },
{ "mitnetz-gas.de", true },
{ "mitnetz-strom.de", true },
{ "mitrax.com.br", true },
+ { "mitre10.com.au", true },
{ "mitrecaasd.org", true },
{ "mitremai.org", true },
{ "mitrostudios.com", true },
@@ -22371,6 +23547,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mittagonghomestead.com.au", true },
{ "mittelunsachlich.de", true },
{ "mittenofficesystems.com", true },
+ { "mityinc.com", true },
+ { "mitylite.com", true },
{ "mitzpettel.com", true },
{ "miui-germany.de", true },
{ "mivestuariolaboral.com", true },
@@ -22381,17 +23559,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mivzakim.net", true },
{ "mivzakim.org", true },
{ "mivzakim.tv", true },
+ { "mivzaklive.co.il", true },
{ "miweb.cr", false },
{ "mixinglight.com", true },
{ "mixnshake.com", true },
{ "mixposure.com", true },
+ { "mixrepairs.co.uk", true },
{ "mixtafrica.com", true },
{ "mixtape.moe", true },
+ { "mixx.com.hk", true },
{ "miyatore.com", true },
{ "miyoshi-kikaku.com", true },
{ "miyugirls.com", true },
{ "mizipack.com", true },
{ "mizque.ch", true },
+ { "mizu.coffee", true },
{ "mizuho-trade.net", true },
{ "mizumax.me", true },
{ "mj420.com", true },
@@ -22407,6 +23589,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mk89.de", true },
{ "mkaciuba.com", true },
{ "mkakh.com", true },
+ { "mkasu.org", false },
{ "mkbouncycastles.co.uk", true },
{ "mkbouncyhire.co.uk", true },
{ "mkcert.org", true },
@@ -22415,7 +23598,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mkes.com", true },
{ "mkg-chirurgie-bruchsal.de", true },
{ "mkg-scherer.de", true },
- { "mkg-wiebelskirchen.de", true },
{ "mkhsoft.eu", true },
{ "mkimage.com", true },
{ "mkk.de", true },
@@ -22431,14 +23613,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mktemp.org", true },
{ "mkuznets.com", true },
{ "mlarte.com", true },
- { "mlcambiental.com.br", true },
{ "mlcnfriends.com", true },
{ "mlemay.com", true },
- { "mlm-worldwide.de", true },
+ { "mlfaw.com", true },
{ "mlmjam.com", true },
{ "mlp.ee", true },
{ "mlpvector.club", true },
- { "mlsrv.de", true },
{ "mlundberg.se", true },
{ "mlvbphotography.com", true },
{ "mlytics.com", true },
@@ -22447,9 +23627,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mma-acareporting.com", true },
{ "mmalisz.com", true },
{ "mmaps.ddns.net", true },
- { "mmarnitz.de", true },
{ "mmbb.org", true },
- { "mmcc.pe", true },
{ "mmin.us", false },
{ "mmmarco.com", true },
{ "mmogah.com", true },
@@ -22457,14 +23635,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mms.is", true },
{ "mmt.my", true },
{ "mmucha.de", true },
+ { "mna7e.com", true },
{ "mncloud.de", true },
{ "mncr.nl", true },
+ { "mnd.sc", true },
{ "mne.moe", true },
{ "mnedc.org", true },
{ "mnemonic.ninja", true },
{ "mnguyen.io", true },
{ "mnitro.com", true },
{ "mnium.de", true },
+ { "mnml.art", true },
+ { "mnml.jp", true },
{ "mnnknz.de", true },
{ "mnsure.org", true },
{ "mnt-tech.fr", true },
@@ -22474,9 +23656,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mo2021.de", true },
{ "mo3.club", true },
{ "moa.moe", true },
- { "moas.design", true },
{ "mobag.ru", true },
{ "mobal.com", true },
+ { "mobi4.tk", true },
{ "mobidea.com", true },
{ "mobifinans.ru", true },
{ "mobil-bei-uns.de", true },
@@ -22489,6 +23671,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mobile360.ph", true },
{ "mobilebingoclub.co.uk", true },
{ "mobilecasinoclub.co.uk", true },
+ { "mobilecontractcomparison.com", true },
{ "mobilelooper.com", true },
{ "mobilemedics.com", true },
{ "mobileread.com", true },
@@ -22518,15 +23701,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "modafinil.wiki", true },
{ "modafo.com", true },
{ "modalogi.com", true },
- { "modalrakyat.com", true },
- { "modalrakyat.id", true },
{ "modcasts.video", true },
- { "modcentral.pw", true },
{ "modding-forum.com", true },
{ "modding-welt.com", true },
{ "mode-hautnah.de", true },
{ "mode-individuell.de", true },
- { "modehaus-marionk.de", true },
{ "modelcase.co.jp", false },
{ "modelclub-draveil.eu", true },
{ "modelcube.com", true },
@@ -22540,19 +23719,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "moderatorenpool.org", true },
{ "modernapprenticeships.org", true },
{ "moderncoinmart.com", true },
- { "moderntld.net", true },
{ "modifiedmind.com", true },
{ "modistry.com", true },
{ "modistryusercontent.com", true },
{ "modmountain.com", true },
{ "modosaude.com.br", true },
+ { "modul21.com", true },
+ { "modul21.eu", true },
{ "module.market", true },
+ { "modulex-gmbh.de", true },
{ "moechel.com", true },
{ "moefactory.com", true },
- { "moehrke.cc", true },
{ "moeking.me", true },
{ "moellers.systems", true },
{ "moetrack.com", true },
+ { "moeyoo.net", true },
{ "mofohome.dyndns.org", true },
{ "moha-swiss.com", true },
{ "mohanmekap.com", true },
@@ -22568,9 +23749,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mojeco2.cz", true },
{ "mojefedora.cz", true },
{ "mojilitygroup.com", true },
- { "mojnet.eu", true },
- { "mojnet.net", true },
- { "mojoco.co.za", true },
+ { "mojizuri.com", true },
{ "mojzis.com", true },
{ "mojzis.cz", true },
{ "mojzisova.com", true },
@@ -22582,15 +23761,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "molecularbiosystems.org", true },
{ "molinero.xyz", true },
{ "mollaretsmeningitis.org", true },
- { "molokai.org", true },
{ "molti.hu", true },
{ "molun.net", false },
{ "molunerfinn.com", true },
{ "molwick.com", true },
- { "momento.co.id", true },
+ { "momentum.photos", true },
{ "momentumdash.com", true },
{ "momirfarooq.com", true },
{ "momjoyas.com", true },
+ { "momo0v0.club", true },
{ "momozeit.de", true },
{ "momstableonline.com", true },
{ "momut.org", true },
@@ -22598,7 +23777,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mon-partage.fr", true },
{ "mon-trafic.com", true },
{ "mon22.ch", true },
- { "mona-antenna.com", true },
{ "mona-dress.com", true },
{ "monachatdeco.com", true },
{ "monaco-automaten.de", true },
@@ -22609,11 +23787,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "monbudget.org", true },
{ "moncoach.ch", true },
{ "mondedesnovels.com", true },
- { "mondedie.fr", true },
{ "mondial-movers.nl", true },
{ "mondo-it.ch", true },
{ "moneni.com", true },
{ "moneybird.com", true },
+ { "moneybird.nl", true },
{ "moneychangersoftware.com", true },
{ "moneycredit.eu", true },
{ "moneygo.se", true },
@@ -22624,8 +23802,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "monique.io", true },
{ "moniquedekermadec.com", true },
{ "moniquemunhoz.com.br", true },
- { "monitman.com", true },
- { "monitorchain.com", true },
{ "monitoring.kalisz.pl", true },
{ "monitzer.com", true },
{ "monix.io", true },
@@ -22642,11 +23818,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mono0x.net", true },
{ "monobank.no", true },
{ "monodukuri.com", true },
- { "monokoo.com", true },
{ "monolithapps.com", true },
{ "monolithindustries.com", true },
{ "monolithinteractive.com", true },
{ "monothesis.com", true },
+ { "monotributo.online", true },
{ "monoworks.co.jp", true },
{ "monpc-pro.fr", true },
{ "monpermismoto.com", true },
@@ -22658,7 +23834,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "montage-kaika.de", true },
{ "montagne-tendance.ch", true },
{ "montanasky.tv", true },
- { "montand.com", true },
{ "montanwerk.de", true },
{ "montarfotoaki.com", true },
{ "montas.io", true },
@@ -22682,6 +23857,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "moolah.rocks", true },
{ "moon.fish", true },
{ "moonagic.com", true },
+ { "moonagic.io", true },
+ { "moonbench.xyz", true },
{ "moonbot.io", true },
{ "moondrop.org", true },
{ "moonkin.eu", true },
@@ -22689,8 +23866,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "moonmelo.com", true },
{ "moonraptor.co.uk", true },
{ "moonraptor.com", true },
- { "moonrhythm.info", true },
- { "moonrhythm.io", true },
+ { "moonrhythm.info", false },
{ "moonshyne.org", true },
{ "moontaj.com", true },
{ "moonvpn.org", true },
@@ -22736,6 +23912,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "morganino.it", true },
{ "morgansleisure.co.uk", true },
{ "morgner.com", true },
+ { "morhys.com", true },
{ "moritz-baestlein.de", true },
{ "moritztremmel.de", true },
{ "moriz.de", true },
@@ -22745,6 +23922,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "morningstar.moe", true },
{ "morphy2k.io", true },
{ "morrisby.com", true },
+ { "morrodafumacanoticias.com.br", true },
{ "morteruelo.net", true },
{ "mortgagecalculator.biz", true },
{ "mortgagecentersmo.com", true },
@@ -22758,6 +23936,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mosin.org", true },
{ "moskeedieren.nl", true },
{ "mosos.de", true },
+ { "mosquitojoe.com", true },
{ "mosscade.com", true },
{ "mosshi.be", true },
{ "mosstier.com", true },
@@ -22782,11 +23961,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "motojato.com.br", true },
{ "motonauticaibiza.com", true },
{ "motoreflex.com", true },
- { "motornomaslo.bg", true },
{ "motorpointarenacardiff.co.uk", true },
{ "motorring.ru", true },
{ "motorsplus.com", false },
- { "motorsportdiesel.com", false },
{ "motoryachtclub-radolfzell.de", true },
{ "motosikletevi.com", true },
{ "motostorie.blog", false },
@@ -22798,19 +23975,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "moulinaparoles.ca", true },
{ "mountain-rock.ru", true },
{ "mountainactivitysection.org.uk", true },
+ { "mountainchalet.blue", true },
{ "mountainroseherbs.com", true },
+ { "mountainspringsrentals.ca", true },
{ "mountfarmer.de", true },
{ "mousemessages.com", true },
{ "moutiezhaller.com", true },
+ { "move.mil", true },
{ "moveek.com", true },
{ "moveisfit.com.br", true },
- { "moveltix.net", true },
{ "movember.com", false },
{ "movewellnesslab.com", true },
{ "movie-cross.net", true },
{ "movie-infos.net", true },
{ "movie1000.com", true },
- { "movie4kto.site", true },
{ "movie4kto.stream", true },
{ "movieboost.nl", true },
{ "moviedeposit.com", true },
@@ -22821,9 +23999,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "moviesetc.net", true },
{ "moviko.nz", true },
{ "movil.uno", true },
+ { "moviltronix.com", true },
{ "movimento-terra.it", true },
{ "movinglogistics.nl", false },
{ "movingtohttps.com", true },
+ { "movingtojapan.life", true },
{ "movlib.org", true },
{ "moy.cat", true },
{ "moyer.pub", true },
@@ -22834,7 +24014,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mozektevidi.net", true },
{ "mozilla.cz", true },
{ "mozzez.de", true },
- { "mp3gratuiti.com", true },
{ "mpa-pro.fr", true },
{ "mpac.ca", false },
{ "mpc-hc.org", true },
@@ -22844,6 +24023,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mpg-universal.com", true },
{ "mpg.ovh", true },
{ "mpgaming.pro", true },
+ { "mphoto.at", true },
{ "mpintaamalabanna.it", true },
{ "mpkrachtig.nl", true },
{ "mplanetphl.fr", true },
@@ -22852,15 +24032,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mplusm.eu", true },
{ "mpnpokertour.com", true },
{ "mpodraza.pl", true },
- { "mpreserver.com", true },
+ { "mpreserver.com", false },
{ "mprsco.eu", true },
{ "mpsgarage.com.au", true },
{ "mpsoundcraft.com", true },
+ { "mpu-giessen.com", true },
+ { "mpu-vorbereitung.com", true },
{ "mpy.ovh", true },
{ "mqas.net", true },
{ "mr-anderson.org", true },
{ "mr-designer-oman.com", true },
{ "mr-labo.jp", true },
+ { "mr-nachhilfe.de", true },
{ "mr-wolf.nl", false },
{ "mr3.io", true },
{ "mrazek.biz", true },
@@ -22875,7 +24058,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mrdayman.com", true },
{ "mremallin.ca", true },
{ "mrevolution.eu", true },
+ { "mrgasfires.co.uk", true },
+ { "mrgiveaways.com", true },
{ "mrinalpurohit.in", true },
+ { "mrjhnsn.com", true },
+ { "mrjooz.com", true },
{ "mrkapowski.com", true },
{ "mrketolocksmith.com", true },
{ "mrknee.gr", true },
@@ -22883,11 +24070,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mrmoregame.de", true },
{ "mrnh.de", true },
{ "mrning.com", true },
+ { "mrprintables.com", true },
{ "mrs-labo.jp", true },
{ "mrsbairds.com", false },
{ "mrserge.lv", true },
{ "mrsk.me", true },
{ "mrstat.co.uk", true },
+ { "mrtunnel.club", true },
{ "mrv.li", true },
{ "mrx.one", true },
{ "mrxn.net", true },
@@ -22906,6 +24095,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "msi-zlin.cz", true },
{ "msiegmund.com", true },
{ "msmails.de", true },
+ { "msno.no", true },
{ "msnr.net", true },
{ "msopopop.cn", true },
{ "mspsocial.net", true },
@@ -22915,6 +24105,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mstdn.blue", true },
{ "mstdn.club", true },
{ "mstdn.fr", true },
+ { "mstdn.io", true },
{ "mstdn.onl", false },
{ "msuna.net", true },
{ "msv-limpezas.pt", true },
@@ -22927,6 +24118,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mtasa.hu", true },
{ "mtb.wtf", true },
{ "mtcq.jp", true },
+ { "mtd.org", true },
+ { "mtg-tutor.de", true },
{ "mtgeni.us", true },
{ "mtgenius.com", true },
{ "mtgsuomi.fi", true },
@@ -22935,6 +24128,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mthrbrd.net", true },
{ "mths.be", false },
{ "mticareportal.com", true },
+ { "mtiryaki.com", true },
{ "mtlconcerts.com", true },
{ "mtltransport.com", true },
{ "mtnz.co.za", true },
@@ -22949,27 +24143,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "muabannhanh.com", false },
{ "muahahahaha.co.uk", true },
{ "mubiflex.nl", true },
- { "muchohentai.com", true },
{ "muckingabout.eu", true },
{ "muckrack.com", true },
{ "mucmail.de", true },
{ "muctool.de", true },
{ "mud-status.de", true },
+ { "mudbenesov.cz", true },
{ "mudcrab.us", false },
{ "mudgezero.one", true },
{ "muehlemann.net", true },
{ "muel.io", true },
{ "muell-weg.de", true },
{ "muellapp.com", true },
+ { "muenchberger.com", true },
{ "muenzubi.de", true },
{ "mufibot.net", true },
{ "muguayuan.com", true },
{ "muh.io", true },
+ { "mui.jp", true },
+ { "muitadica.com", true },
{ "muk-kobetsu.com", true },
{ "mulaccosmetics.com", true },
{ "mulaisehat.com", true },
{ "mulej.net", true },
- { "mulheres18.com", true },
{ "muling.lu", true },
{ "mullens-usedcars.be", true },
{ "multi-vpn.biz", true },
@@ -22993,28 +24189,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "multitek.no", true },
{ "multitenantlaravel.com", true },
{ "multitheftauto.com", true },
- { "multiworldsoftware.com", true },
{ "multizone.games", true },
{ "multrier.fr", true },
+ { "mum.ceo", true },
+ { "muma.ml", true },
{ "mumakil.fi", true },
{ "mumbaionlinegifts.com", true },
{ "muminkoykiran.com", true },
{ "mumolabs.com", true },
{ "munch.me", true },
{ "munchcorp.com", true },
- { "mundoadulto.com.br", true },
{ "mundoarabe.com.br", true },
{ "mundodasmensagens.com", true },
{ "mundokinderland.com.br", true },
{ "mundolarraz.es", true },
+ { "mundomagicotv.com", true },
{ "mundschenk.at", true },
{ "mundtec.com.br", true },
{ "munduch.cz", true },
{ "munduch.eu", true },
- { "munirajiwa.com", true },
{ "munki.org", true },
{ "munkibuilds.org", true },
- { "munwr.com", true },
+ { "munwr.com", false },
{ "muqu.co", true },
{ "mur-vegetal-interieur.fr", true },
{ "murakami-sah.com", true },
@@ -23024,9 +24220,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "murgi.de", true },
{ "murmel.it", false },
{ "murof.com.br", true },
- { "murzik.space", true },
+ { "murray.xyz", true },
+ { "murraya.cn", true },
+ { "musaccostore.com", true },
{ "muscle-tg.com", true },
- { "muscleangels.com", true },
{ "musclecarresearch.com", true },
{ "muscolinomusic.com", true },
{ "musearchengine.com", true },
@@ -23038,6 +24235,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mushikabu.net", true },
{ "music-is-my-life.de", true },
{ "music-project.eu", true },
+ { "music-world.pl", true },
{ "music.amazon.com", true },
{ "musicaconleali.it", true },
{ "musicalive.nl", true },
@@ -23083,11 +24281,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "muwatenraqamy.org", true },
{ "muzeumkomiksu.eu", true },
{ "muzhijy.com", true },
- { "muzi.cz", true },
{ "muzikantine.nl", true },
{ "mv-wohnen.de", true },
{ "mvandek.nl", true },
{ "mvbits.com", true },
+ { "mvisioncorp.com", true },
{ "mvno.io", true },
{ "mvp-stars.com", true },
{ "mw.search.yahoo.com", false },
@@ -23096,9 +24294,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mwavuli.co.ke", true },
{ "mwba.org", true },
{ "mwe.st", true },
+ { "mwezi-foundation.org", true },
+ { "mwezi.org", true },
{ "mwohlfarth.de", true },
{ "mwtdev.se", true },
{ "mww.moe", true },
+ { "mx-quad.fr", true },
{ "mx.org.ua", true },
{ "mx.search.yahoo.com", false },
{ "mx5international.com", true },
@@ -23106,6 +24307,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mxn8.com", true },
{ "mxp.tw", true },
{ "my-aftershave-store.co.uk", true },
+ { "my-best-wishes.com", true },
{ "my-cdn.de", true },
{ "my-contract.ch", true },
{ "my-contract.info", true },
@@ -23136,16 +24338,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myaggic.com", true },
{ "myalliancechurch.com", true },
{ "myamend.com", true },
+ { "myamihealth.com", true },
{ "myamity.info", true },
{ "myammo.ru", true },
{ "myanimelist.net", true },
{ "myapexcard.com", true },
- { "myappliancerepairhouston.com", true },
- { "myartsway.com", true },
+ { "myaspenheights.com", true },
{ "mybagofcoffee.com", true },
+ { "mybasementdoctor.com", true },
{ "mybb.com", true },
{ "mybb.de", true },
- { "mybboard.pl", true },
{ "mybeautyjobs.de", true },
{ "mybicc.org", true },
{ "myblockchain.cloud", true },
@@ -23153,11 +24355,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mybodylife.com", true },
{ "mybon.at", false },
{ "mybonfire.com", true },
+ { "mybusiness.wien", true },
{ "mycard.moe", true },
{ "mycareersfuture.sg", true },
{ "mycieokien.info", false },
{ "mycinema.pro", true },
{ "mycircleworks.com", true },
+ { "myclasscam.com", true },
+ { "myclasscam.org", true },
{ "myclinicalstudybuddy.com", true },
{ "mycloud-system.com", true },
{ "mycofairtrade.com", true },
@@ -23206,12 +24411,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myfrenchtattoo.fr", true },
{ "myg21.com", true },
{ "mygadgetguardian.lookout.com", false },
- { "mygalgame.com", true },
{ "mygallery.homelinux.net", true },
{ "mygeneral.org", true },
{ "mygeotrip.com", true },
{ "mygigabitnation.com", true },
{ "mygignation.com", true },
+ { "mygirlfriendshouse.com", true },
{ "mygoldennetwork.com", true },
{ "mygreatjobs.de", true },
{ "mygreatlakes.org", true },
@@ -23222,10 +24427,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myhatsuden.jp", true },
{ "myhealthreviews.com", true },
{ "myhollywoodnews.com", true },
- { "myhostname.net", true },
+ { "myhome-24.pl", true },
{ "myimds.com", true },
{ "myimmitracker.com", true },
- { "myipaddr.de", true },
+ { "myinvite.nl", true },
{ "myipv4.de", true },
{ "myjudo.net", true },
{ "myjumparoo.co.uk", true },
@@ -23236,29 +24441,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mylawyer.be", true },
{ "myleanfactory.de", true },
{ "mylifeabundant.com", true },
+ { "mylittlechat.ru", true },
{ "myliveupdates.com", true },
{ "mylookout.com", false },
{ "mylstrom.com", true },
- { "mymadina.com", true },
{ "mymall.co.jp", true },
{ "mymarketingcourses.com", true },
{ "mymb.pm", true },
{ "mymed.de", true },
{ "mymed.eu", true },
{ "mymedz.nl", true },
+ { "mymixtapez.com", true },
{ "mymommyworld.com", true },
{ "mymotor.nl", true },
{ "myms.eu", true },
+ { "mymun.com", true },
{ "mymun.net", true },
{ "mymusiclist.alwaysdata.net", true },
{ "mymx.lu", true },
{ "myna.go.jp", true },
{ "mynameistavis.com", true },
- { "mynetworkingbuddy.com", true },
{ "mynext.events", true },
{ "mynextmove.org", true },
{ "mynn.io", true },
- { "mynook.info", true },
+ { "mynook.info", false },
{ "mynortherngarden.com", true },
{ "myonline.hu", true },
{ "myoptumhealthcomplexmedical.com", true },
@@ -23266,6 +24472,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myotopie.de", true },
{ "myoueb.fr", true },
{ "myoukochou.com", true },
+ { "myownconference.cloud", true },
{ "myownconference.com", true },
{ "myownconference.com.ua", true },
{ "myownconference.es", true },
@@ -23276,11 +24483,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myowndisk.net", true },
{ "myownwebinar.com", true },
{ "mypaperdone.com", true },
- { "mypaperwriter.com", true },
{ "mypayoffloan.com", true },
{ "mypcqq.cc", true },
{ "myperfecthome.ca", true },
{ "myperfumecollection.com", true },
+ { "myperks.in", true },
{ "myphotoshopbrushes.com", true },
{ "mypillcard.com", true },
{ "myplaceonline.com", true },
@@ -23326,6 +24533,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myrepublic.nz", true },
{ "myrepublic.ph", true },
{ "myrepublic.rocks", true },
+ { "myrepublic.run", true },
{ "myrepublic.tk", true },
{ "myrepublic.tv", true },
{ "myrepublic.tw", true },
@@ -23344,12 +24552,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myrepublictelecom.com", true },
{ "myrepubllc.net", true },
{ "myresearchapp.com", true },
+ { "myrevery.com", true },
{ "myrewardspoints.com", true },
{ "myriadof.com", true },
{ "myrig.com", true },
- { "myrig.com.ua", true },
- { "myrig.ru", true },
+ { "myrig.net", true },
{ "myrotvorets.center", true },
+ { "myrotvorets.news", true },
{ "myrp.co", true },
{ "mysber.ru", true },
{ "myschoolphoto.org", true },
@@ -23358,6 +24567,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mysectools.org", true },
{ "myself5.de", true },
{ "myseo.ga", true },
+ { "myserv.one", true },
{ "myseu.cn", true },
{ "mysexydate24.com", true },
{ "myshirtsize.com", true },
@@ -23375,6 +24585,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myssl.com", true },
{ "mystatus24.com", false },
{ "mysteriouscode.io", true },
+ { "mysterydata.com", true },
{ "mysterymind.ch", true },
{ "mysterysear.ch", true },
{ "mystic-welten.de", true },
@@ -23385,7 +24596,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mysupboard.de", true },
{ "myswissmailaddress.com", true },
{ "mytfg.de", true },
- { "mythemeshop.com", true },
{ "mythengay.ch", true },
{ "mythicdelirium.com", true },
{ "myting.net", true },
@@ -23397,7 +24607,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "mytripcar.fr", true },
{ "mytruecare.org", true },
{ "mytty.net", true },
- { "mytuleap.com", true },
+ { "mytuleap.com", false },
{ "mytun.com", true },
{ "mytweeps.com", true },
{ "myulog.net", true },
@@ -23412,54 +24622,60 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "myvitalhealthsolutions.com.au", true },
{ "myvoipnews.com", true },
{ "myvpl.com", true },
- { "mywallets.io", true },
{ "mywari.com", true },
{ "mywebinar.io", true },
+ { "mywebmanager.co.uk", true },
{ "mywebpanel.eu", true },
{ "mywebpanel.nl", true },
+ { "myweddingreceptionideas.com", true },
{ "myworkinfo.com", false },
{ "myworth.com.au", true },
+ { "myxnr.com", true },
{ "myyubikey.net", true },
{ "myyubikey.org", true },
{ "myzina.cz", false },
{ "mz-mz.net", true },
+ { "mza.com", true },
{ "mzh.io", true },
{ "mziulu.me", false },
{ "mznet.de", true },
{ "mzzj.de", true },
{ "n-a.date", true },
{ "n-design.de", true },
- { "n-kanazawa.jp", true },
{ "n-m.lu", true },
{ "n-man.info", true },
{ "n-pix.com", false },
{ "n-soft.info", true },
{ "n-un.de", false },
- { "n-x.info", true },
{ "n0paste.tk", false },
{ "n0psled.nl", true },
{ "n26.com", true },
{ "n2servers.com", true },
- { "n3twork.net", true },
{ "n4v.eu", true },
{ "n5118.com", true },
{ "n6a.net", true },
{ "n7.education", true },
+ { "n8mgt.com", true },
+ { "n8nvi.com", true },
+ { "n8solutions.net", true },
{ "na-school.nl", true },
{ "naam.me", true },
{ "nabaleka.com", true },
{ "nabankco.com", true },
{ "nabidkamajetku.cz", true },
{ "nabytek-valmo.cz", true },
+ { "nacfit.com", true },
{ "nachsendeauftrag.net", true },
{ "nachsenden.info", true },
{ "nachtmuziek.info", true },
{ "nacin.com", true },
{ "nacktwanderfreunde.de", true },
{ "nacyklo.cz", true },
+ { "nadaquenosepas.com", true },
{ "nadejeproninu.cz", true },
{ "nadelholzkulturen.de", true },
{ "nadine-chaudier.net", true },
+ { "nadsandgams.com", true },
{ "nadyaolcer.fr", true },
{ "nafod.net", true },
{ "naga-semi.com", true },
@@ -23475,20 +24691,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nahura.com", true },
{ "nailattitude.ch", true },
{ "nailchiodo.com", true },
- { "nailedithomebuilders.com", true },
{ "nailsalon-aztplus.com", true },
{ "nairobibusinessreview.com", true },
+ { "naive.network", true },
{ "najany.de", true },
{ "najany.dk", true },
{ "najany.fr", true },
{ "najany.nl", true },
{ "najany.se", true },
- { "nakada4610.com", true },
+ { "nakalabo.jp", true },
{ "nakama.tv", true },
{ "nakandya.com", true },
- { "nakanishi-paint.com", true },
+ { "nakayama.systems", true },
{ "nakedalarmclock.me", true },
{ "nakedtruthbeauty.com", true },
+ { "nakene.com", true },
{ "nakliyatsirketi.biz.tr", true },
{ "nako.no", true },
{ "nalepky-na-zed.cz", true },
@@ -23502,7 +24719,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nameid.org", true },
{ "namepros.com", true },
{ "namereel.com", true },
- { "namethatporn.com", true },
+ { "namethissymbol.com", true },
{ "nametiles.co", true },
{ "nami.bo", true },
{ "nami.exchange", true },
@@ -23519,9 +24736,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nandex.org", true },
{ "nange.co", true },
{ "nankiseamansclub.com", true },
+ { "nannytax.ca", true },
{ "nanofy.org", true },
{ "nanogi.ga", true },
- { "nanosingularity.com", true },
{ "nanotechnologist.com", true },
{ "nanotechtorsion.com", true },
{ "nanovolt.nl", true },
@@ -23537,6 +24754,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "naphogar.com", true },
{ "napisdata.us", true },
{ "napolinissanctparts.com", true },
+ { "nappynko.com", true },
{ "narada.com.ua", true },
{ "narakenkoland.net", true },
{ "naralogics.com", true },
@@ -23545,7 +24763,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "narduin.xyz", true },
{ "narenderchopra.com", true },
{ "narfation.org", true },
- { "nargele.eu", true },
{ "nargileh.nl", true },
{ "narindal.ch", true },
{ "narmos.ch", true },
@@ -23561,6 +24778,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nasbnation.com", false },
{ "nascio.org", true },
{ "naseco.se", true },
+ { "nashdistribution.com", true },
+ { "nashikmatka.com", true },
{ "nashira.cz", true },
{ "nashvillelidsurgery.com", true },
{ "nashzhou.me", true },
@@ -23575,6 +24794,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "natatorium.org", true },
{ "natchmatch.com", true },
{ "natecraun.net", true },
+ { "natgeofreshwater.com", true },
{ "nathaliebaron.ch", true },
{ "nathaliebaroncoaching.ch", true },
{ "nathaliedijkxhoorn.com", true },
@@ -23582,6 +24802,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nathan.io", true },
{ "nathanaeldawe.com", true },
{ "nathancheek.com", false },
+ { "nathankonopinski.com", true },
{ "nathansmetana.com", true },
{ "nathumarket.com.br", true },
{ "nationalbank.gov", true },
@@ -23596,10 +24817,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nationaltrails.ru", true },
{ "nationwiderealtyinvestors.com", true },
{ "natives-team.ch", true },
+ { "nativitynj.org", true },
{ "nativs.ch", true },
{ "natlec.com", true },
{ "natropie.pl", true },
{ "natsumihoshino.com", true },
+ { "natur.com", true },
+ { "natura-sense.com", true },
+ { "naturalfit.co.uk", true },
+ { "naturalhealthcures.net", true },
{ "naturalkitchen.co.uk", true },
{ "naturalspacesdomes.com", true },
{ "naturaum.de", true },
@@ -23619,20 +24845,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nausicaahotel.it", true },
{ "nautiljon.com", true },
{ "nautsch.de", true },
+ { "navarralanparty.org", true },
+ { "navdeep.ca", true },
{ "navenlle.com", true },
{ "navienna.com", true },
{ "navient.com", true },
- { "navigate-it-services.de", false },
{ "navitime.me", true },
{ "navstevnik.sk", true },
{ "navycs.com", true },
{ "nawir.de", true },
{ "nayahe.ru", true },
+ { "nayami64.xyz", true },
{ "nayanaas.com", true },
{ "nazevfirmy.cz", true },
{ "nazigol.com", true },
+ { "nazukebanashi.com", true },
{ "nazuna.blue", true },
{ "nb.zone", true },
+ { "nb01.com", true },
{ "nb6.de", true },
{ "nba-2k.com", true },
{ "nba.christmas", true },
@@ -23691,12 +24921,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nbgrooves.de", true },
{ "nbhorsetraining.com", true },
{ "nbib.gov", true },
- { "nbl.org.tw", true },
{ "nbp.com.pk", true },
{ "nbrain.de", true },
{ "nbrii.com", true },
{ "nbriresearch.com", true },
- { "nbtparse.org", true },
{ "nbur.co.uk", true },
{ "nc-beautypro.fr", true },
{ "nc-formation.fr", true },
@@ -23709,6 +24937,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ncc-qualityandsafety.org", true },
{ "nccemail.net", true },
{ "ncdc.pt", true },
+ { "ncea.net.au", true },
{ "nchangfong.com", true },
{ "nchponline.org", true },
{ "ncic.gg", true },
@@ -23722,6 +24951,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ndcpolipak.com", true },
{ "ndeoffshore.com", true },
{ "nder.be", true },
+ { "ndfa.net", true },
{ "ndhlink.com", true },
{ "ndpbrn-research.org", true },
{ "nds-helicopter.de", true },
@@ -23744,6 +24974,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nebuluxcapital.com", true },
{ "necessaryandproportionate.net", true },
{ "necessaryandproportionate.org", true },
+ { "nechiactua.com", true },
{ "necormansir.com", true },
{ "nectarleaf.com", true },
{ "nedcdata.org", true },
@@ -23751,6 +24982,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nedlinin.com", true },
{ "nedraconsult.ru", true },
{ "nedys.top", true },
+ { "neecist.org", true },
{ "needemand.com", true },
{ "needle.net.nz", true },
{ "needle.nz", true },
@@ -23760,6 +24992,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "neemzy.org", true },
{ "neet-investor.biz", true },
{ "nefertitis.cz", true },
+ { "neffat.si", true },
{ "neflabs.com", true },
{ "neftis.es", true },
{ "neg9.org", false },
@@ -23781,7 +25014,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nejlevnejsi-parapety.cz", true },
{ "neko-nyan-nuko.com", true },
{ "neko-nyan.org", true },
- { "neko.ml", true },
{ "nekodex.net", true },
{ "nekolove.jp", true },
{ "nekomimi.pl", true },
@@ -23795,15 +25027,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nellacms.com", true },
{ "nellacms.org", true },
{ "nellafw.org", true },
- { "nemanja.top", true },
{ "nemcd.com", true },
{ "nemecl.eu", true },
{ "nemez.net", true },
{ "nemo.run", true },
{ "nemopan.com", true },
- { "nemplex.win", true },
+ { "nemopret.dk", true },
{ "nems.no", true },
{ "nemumu.com", true },
+ { "nemunai.re", true },
{ "neo2shyalien.eu", false },
{ "neobits.nl", true },
{ "neocities.org", true },
@@ -23821,8 +25053,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "neonknight.ch", true },
{ "neons.org", true },
{ "neophilus.net", true },
+ { "neos.co.jp", true },
{ "neosdesignstudio.co.uk", true },
{ "neostralis.com", true },
+ { "neotist.com", true },
+ { "neowa.tk", true },
{ "neowlan.net", true },
{ "neoxcrf.com", true },
{ "neoz.com.br", true },
@@ -23830,7 +25065,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nepal-evolution.org", true },
{ "nephelion.org", true },
{ "nephos.xyz", true },
- { "nephy.jp", true },
{ "nepovolenainternetovahazardnihra.cz", true },
{ "nepremicninar.com", true },
{ "nepremicnine.click", true },
@@ -23845,10 +25079,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nerdwallet.com", true },
{ "nerdydev.net", true },
{ "nerot.eu", true },
+ { "nerpa-club.ru", true },
+ { "nerull7.info", true },
{ "nerven.se", false },
{ "nesbase.com", true },
{ "nesolabs.com", true },
{ "nesolabs.de", true },
+ { "nestedquotes.ca", true },
{ "nesterov.pw", true },
{ "nestor.nu", true },
{ "neswec.org.uk", true },
@@ -23874,14 +25111,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "netducks.com", true },
{ "netducks.space", true },
{ "netera.se", true },
+ { "neteraser.de", true },
+ { "netexem.com", true },
{ "netfabb.com", true },
{ "netflixlife.com", true },
{ "netfog.de", true },
{ "netfuture.ch", true },
{ "netfxharmonics.com", true },
- { "netguide.co.nz", true },
{ "nethackwiki.com", true },
{ "nethask.ru", true },
+ { "nethostingtalk.com", true },
{ "nethruster.com", true },
{ "nethunter.top", true },
{ "netki.com", true },
@@ -23897,6 +25136,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "netrider.net.au", false },
{ "netrogue.ninja", true },
{ "netronix.be", true },
+ { "netsec.cloud", true },
{ "netsigna.de", true },
{ "netsite.dk", true },
{ "netsoins.org", true },
@@ -23904,11 +25144,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "netsparker.com.tr", true },
{ "netspeedia.net", true },
{ "netsphere.cz", true },
- { "nettacompany.com.tr", true },
{ "nettamente.com", true },
{ "nette.org", true },
{ "nettegeschenke.de", true },
{ "nettia.fi", true },
+ { "nettilamppu.fi", true },
{ "netto-service.ch", true },
{ "nettools.link", true },
{ "nettopower.dk", true },
@@ -23921,14 +25161,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "netwarc.eu", true },
{ "netwarc.nl", true },
{ "netweaver.uk", true },
+ { "network-midlands.co.uk", true },
+ { "network-midlands.uk", true },
{ "network-notes.com", true },
{ "network23.nl", true },
{ "networkersdiary.com", true },
+ { "networking-groups.co.uk", true },
{ "networking4all.com", true },
{ "networkingnexus.net", true },
{ "networkingphoenix.com", true },
+ { "networkmidlands.co.uk", true },
+ { "networkmidlands.uk", true },
+ { "networkmon.net", true },
{ "networkposting.com", true },
{ "networth.at", true },
+ { "netz-yokohama.co.jp", true },
{ "netzfabrik.com", true },
{ "netzfrauen.org", true },
{ "netzwerkwerk.de", true },
@@ -23944,10 +25191,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "neurolab.no", true },
{ "neuronasdigitales.com", true },
{ "neuropharmacology.com", true },
+ { "neurotransmitter.net", true },
{ "neurozentrum-zentralschweiz.ch", true },
{ "neutralox.com", false },
{ "neuwal.com", true },
- { "neva.li", true },
{ "never.pet", true },
{ "nevergreen.io", true },
{ "nevermore.fi", true },
@@ -23964,6 +25211,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "new-process.eu", true },
{ "new.travel.pl", true },
{ "newaccess.ch", true },
+ { "newbasemedia.us", true },
{ "newbietech.cn", false },
{ "newborncryptocoin.com", false },
{ "newburybouncycastles.co.uk", true },
@@ -23979,8 +25227,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "newcloudwhodis.com", true },
{ "newcreamforface.com", true },
{ "newday.host", true },
- { "newdeveloper.download", true },
{ "newearth.press", true },
+ { "newfangledscoop.com", true },
{ "newfiepedia.ca", true },
{ "newgrowbook.com", true },
{ "newguidance.ch", true },
@@ -23989,12 +25237,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "newjianzhi.com", true },
{ "newkaliningrad.ru", true },
{ "newknd.com", true },
+ { "newlifeband.de", true },
{ "newmarketbouncycastlehire.co.uk", true },
{ "newmed.com.br", true },
{ "newmediaone.net", true },
{ "newmovements.net", true },
+ { "newmusicjackson.org", true },
{ "newodesign.com", true },
{ "newpathintegratedtherapy.com", true },
+ { "newposts.ru", true },
{ "newreleases.io", true },
{ "news47ell.com", true },
{ "newsa2.com", true },
@@ -24007,8 +25258,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "newtonproject.org", true },
{ "newtrackon.com", true },
{ "newvehicle.com", true },
+ { "nex.li", true },
{ "nex.sx", true },
- { "nexgeneration-solutions.com", true },
{ "nexicafiles.com", true },
{ "nexril.net", true },
{ "next-web.ad.jp", true },
@@ -24019,13 +25270,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nextcasino.com", true },
{ "nextcloud.co.za", true },
{ "nextcloud.com", true },
+ { "nextcloud.nerdpol.ovh", true },
{ "nextend.net", true },
- { "nextend.org", true },
{ "nextevolution.co.uk", true },
{ "nextgen.sk", true },
{ "nextgencel.com", true },
+ { "nextgenthemes.com", true },
{ "nextgreatmess.com", true },
{ "nexthop.jp", true },
+ { "nextiot.de", true },
+ { "nextlevel-it.co.uk", true },
{ "nextmbta.com", true },
{ "nextme.se", true },
{ "nextnely.com", true },
@@ -24034,6 +25288,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nextstep-labs.gr", true },
{ "nexttv.co.il", true },
{ "nexus-exit.de", true },
+ { "nexus-vienna.at", true },
{ "nexusconnectinternational.eu", true },
{ "nexwebsites.com", true },
{ "nexxus-sistemas.net.br", true },
@@ -24048,7 +25303,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nfl.duckdns.org", true },
{ "nflmocks.com", true },
{ "nfls.io", true },
- { "nfluence.org", true },
+ { "nflsic.org", true },
{ "nframe.io", true },
{ "nfrost.me", true },
{ "nfsec.pl", true },
@@ -24089,7 +25344,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nicesco.re", true },
{ "nicestudio.co.il", false },
{ "nichijou.com", true },
- { "nicholasperkins.io", true },
{ "nicholaspruss.com", true },
{ "nicholasquigley.com", true },
{ "nicholaswilliams.net", true },
@@ -24100,14 +25354,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nickcraver.com", true },
{ "nickdekruijk.nl", true },
{ "nickguyver.com", true },
+ { "nickhitch.co.uk", true },
{ "nickloose.de", true },
{ "nicklord.com", true },
+ { "nickmertin.ca", true },
{ "nickmorri.com", true },
{ "nickplotnek.co.uk", true },
{ "nickrickard.co.uk", true },
+ { "nicks-autos.com", true },
{ "nickscomputers.nl", true },
{ "nickserve.com", true },
{ "nickstories.de", true },
+ { "nicktheitguy.com", true },
{ "niclasreich.de", true },
{ "nicn.me", true },
{ "nico.st", true },
@@ -24122,7 +25380,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nicolasiung.me", true },
{ "nicolaszambetti.ch", true },
{ "nicolaw.uk", true },
- { "nicoleoquendo.com", true },
+ { "nicolemathew.com", true },
{ "niconico.ooo", true },
{ "niconode.com", false },
{ "nicoobook.com", true },
@@ -24131,7 +25389,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nidro.de", true },
{ "nidsuber.ch", true },
{ "niederohmig.de", true },
- { "niedersetz.de", true },
{ "niehage.name", true },
{ "nielshoogenhout.be", true },
{ "nielshoogenhout.eu", true },
@@ -24153,13 +25410,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "niesstar.com", true },
{ "nietzsche.com", true },
{ "nieuwslagmaat.nl", true },
- { "niffler.software", true },
{ "niftiestsoftware.com", true },
{ "nigelwakefield.com", true },
{ "nigensha.co.jp", true },
{ "niggemeier.cc", true },
{ "nigger.racing", true },
- { "niggo.eu", true },
{ "night2stay.cn", true },
{ "night2stay.com", true },
{ "night2stay.de", true },
@@ -24172,6 +25427,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nightsi.de", true },
{ "nightstand.io", true },
{ "nightwinds.tk", true },
+ { "nigt.cf", true },
{ "nihon-no-sake.net", true },
{ "nijiero-ch.com", false },
{ "nijikata.com", true },
@@ -24190,6 +25446,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nikolasgrottendieck.com", true },
{ "nikomo.fi", false },
{ "nikoninframe.co.uk", true },
+ { "nikonlibrary.co.uk", true },
{ "nikonnps.co.uk", true },
{ "nikonpromotions.co.uk", true },
{ "nikonschool.co.uk", true },
@@ -24199,7 +25456,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "niles.xyz", true },
{ "nilrem.org", true },
{ "nimeshjm.com", true },
- { "nimidam.com", true },
{ "nina-laaf.de", true },
{ "ninaforever.com", true },
{ "ninarinaldi.com.br", true },
@@ -24213,9 +25469,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ninetaillabs.xyz", true },
{ "ninfora.com", true },
{ "ninja-galerie.de", true },
+ { "ninja-skillz.com", true },
{ "ninjaworld.co.uk", true },
{ "ninjio.com", true },
{ "ninov.de", true },
+ { "ninreiei.jp", true },
{ "nintendoforum.no", true },
{ "ninth.cat", true },
{ "ninthfloor.org", true },
@@ -24223,14 +25481,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nipax.cz", true },
{ "nipe-systems.de", true },
{ "nippon-oku.com", true },
- { "nippon.fr", true },
{ "niqex.com", true },
- { "nirjharstudio.com", true },
{ "nirjonmela.com", true },
{ "nirjonmela.net", true },
{ "nirudo.me", true },
{ "nissanofbismarckparts.com", true },
{ "nitifilter.com", true },
+ { "nitix.games", true },
{ "nitrix.me", true },
{ "nitrohorse.com", false },
{ "nitrokey.com", true },
@@ -24238,13 +25495,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nitropur.com", true },
{ "nitropur.de", true },
{ "nitrous-networks.com", true },
+ { "nitschinger.at", true },
{ "niu.moe", true },
{ "niva.synology.me", true },
{ "nivi.ca", true },
{ "nix.black", true },
- { "nixne.st", true },
{ "nixonlibrary.gov", true },
+ { "nixx-gel.cz", true },
{ "niyawe.de", true },
+ { "niyazpoyilan.com", false },
{ "nja.id.au", true },
{ "njast.net", true },
{ "njguardtraining.com", true },
@@ -24255,6 +25514,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nkp-media.de", true },
{ "nl-ix.net", true },
{ "nl.search.yahoo.com", false },
+ { "nl3ehv.nl", true },
{ "nlap.ca", false },
{ "nlbewustgezond.nl", true },
{ "nlfant.eu", true },
@@ -24264,17 +25524,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nlrb.gov", true },
{ "nlt.by", false },
{ "nmd.so", true },
- { "nmgb.ga", true },
- { "nmgb.ml", true },
{ "nmnd.de", true },
{ "nmontag.com", true },
{ "nn.cz", true },
+ { "nn78.com", true },
{ "nna774.net", true },
{ "nnqc.nl", true },
{ "no-ip.cz", true },
{ "no-xice.com", true },
{ "no.search.yahoo.com", false },
{ "noagendahr.org", true },
+ { "noahjacobson.com", true },
{ "noahmodas.com.br", true },
{ "noahsaso.com", true },
{ "nobitakun.com", true },
@@ -24282,22 +25542,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nobleparkapartments.com.au", true },
{ "nobly.de", true },
{ "noc.org", true },
- { "noc.wang", true },
+ { "nocit.dk", true },
{ "nocks.com", true },
{ "nocmd.com", true },
{ "nocs.cn", true },
{ "nodalr.com", true },
+ { "nodari.com.ar", true },
{ "nodariweb.com.ar", true },
- { "nodecompat.com", true },
{ "nodecraft.com", true },
- { "nodefoo.com", true },
{ "nodejs.de", true },
{ "nodelab-it.de", true },
{ "nodelia.com", true },
- { "nodepositcasinouk.com", true },
{ "nodesec.cc", true },
{ "nodesturut.cl", true },
- { "nodum.io", true },
+ { "nodevops.com", true },
{ "noeatnosleep.me", true },
{ "noedidacticos.com", true },
{ "noelclaremont.com", true },
@@ -24315,6 +25573,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nohttps.org", true },
{ "nohup.se", true },
{ "nohup.xyz", true },
+ { "noima.com", true },
{ "noincludesubdomains.preloaded.test", false },
{ "noise.agency", true },
{ "noisetor.net", true },
@@ -24322,7 +25581,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "noisky.cn", true },
{ "noisyfox.cn", true },
{ "nojestorget.se", true },
- { "nojok.es", true },
+ { "nokia.la", true },
{ "nokono.com", true },
{ "nolaviz.org", true },
{ "noleggio-bagni-chimici.it", true },
@@ -24332,7 +25591,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nomesbiblicos.com", true },
{ "nomial.co.uk", true },
{ "nomifensine.com", true },
+ { "nomoondev.azurewebsites.net", true },
{ "nomsy.net", true },
+ { "nonabytes.xyz", true },
{ "noname-ev.de", true },
{ "nonametheme.com", true },
{ "noncombatant.org", true },
@@ -24340,7 +25601,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "noobswhatelse.net", true },
{ "noobunbox.net", true },
{ "noodles.net.nz", true },
- { "noodleyum.com", true },
{ "noodplan.co.za", true },
{ "noodweer.be", true },
{ "noofficewalls.com", true },
@@ -24348,9 +25608,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "noop.ch", true },
{ "noordsee.de", true },
{ "noorsolidarity.com", true },
+ { "noortronic.com", true },
{ "nootronerd.com", true },
{ "nootropic.com", true },
- { "nootropicpedia.com", true },
{ "noovell.com", true },
{ "nopaste.xyz", true },
{ "nopaynocure.com", true },
@@ -24362,20 +25622,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nordlichter-brv.de", true },
{ "nordmoregatebilklubb.com", true },
{ "nordnetz-hamburg.de", true },
- { "nordseeblicke.de", true },
+ { "nordwal.de", true },
{ "nordwaldzendo.de", true },
- { "noref.tk", true },
{ "noreply.mx", true },
+ { "norestfortheweekend.com", true },
+ { "noret.com", true },
{ "norichanmama.com", true },
{ "noriel.ro", true },
{ "normaculta.com.br", true },
- { "normalady.com", true },
{ "norman-preusser-gmbh.de", true },
{ "normanbauer.com", true },
{ "normandgascon.com", true },
{ "normankranich.de", true },
{ "norrkemi.se", true },
{ "norrliden.de", true },
+ { "norsewars.com", true },
{ "norskpensjon.no", true },
{ "northatlantalaw.net", true },
{ "northbrisbaneapartments.com.au", true },
@@ -24387,7 +25648,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "northern-lakes.com", true },
{ "northerngate.net", true },
{ "northernhamsterclub.com", true },
- { "northernmuscle.ca", true },
{ "northernpage.com", true },
{ "northernselfstorage.co.za", true },
{ "northfieldyarn.com", true },
@@ -24413,23 +25673,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nosyu.pe.kr", true },
{ "nota.moe", true },
{ "notabug.org", true },
+ { "notacooldomain.com", true },
{ "notadd.com", true },
- { "notadd.store", true },
{ "notallmine.net", true },
{ "notalone.gov", true },
{ "notar-glagowski.com", true },
{ "notar-glagowski.de", true },
{ "notar-peikert.com", true },
{ "notare-marktplatz24.info", true },
+ { "notarkrauss.de", true },
{ "notarvysocina.cz", true },
{ "notcompletelycorrect.com", true },
{ "notepad.nz", true },
{ "noteskeeper.ru", true },
{ "noticiasdehumor.com", true },
- { "notificami.com", true },
{ "notify.moe", true },
{ "notinglife.com", true },
{ "notjustvacs.com", true },
+ { "notmybox.com", true },
{ "notnize.net", true },
{ "notnl.com", true },
{ "notofilia.com", true },
@@ -24437,11 +25698,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "notoriousdev.com", true },
{ "notrecourrier.net", true },
{ "notsafefor.work", true },
- { "nottori.com", true },
{ "nottres.com", true },
{ "noudjalink.nl", true },
{ "noustique.com", true },
{ "nova-dess.ch", true },
+ { "nova-kultura.org", true },
{ "nova-wd.org.uk", true },
{ "nova.live", true },
{ "novabench.com", true },
@@ -24468,30 +25729,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "novoresume.com", false },
{ "novosibavia.ru", true },
{ "novurania.com", true },
- { "nowcost.com", true },
{ "nowhere.dk", true },
{ "nowitzki.me", true },
{ "nowlas.org", true },
{ "nowloading.co", true },
- { "nowremindme.com", true },
{ "noxi.ga", true },
{ "noxlogic.nl", true },
+ { "noydeen.com", true },
{ "noyocenter.org", true },
{ "np-edv.at", true },
{ "np.search.yahoo.com", false },
{ "npath.de", true },
{ "npcrcss.org", true },
{ "npmcdn.com", true },
+ { "npsas.org", true },
{ "npw.net", true },
{ "nqesh.com", true },
{ "nqeshreviewer.com", true },
- { "nrc-gateway.gov", true },
{ "nrd.li", true },
{ "nrdstd.io", true },
{ "nrev.ch", true },
{ "nrkn.fr", true },
{ "nrsweb.org", true },
- { "nrvn.cc", false },
{ "ns-frontier.com", true },
{ "ns2servers.pw", true },
{ "nsa.lol", true },
@@ -24510,6 +25769,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nsp.ua", true },
{ "nst-maroc.com", true },
{ "nstd.net", true },
+ { "nstremsdoerfer.ovh", true },
+ { "nstrust.co.uk", true },
{ "nsworks.com", true },
{ "ntags.org", true },
{ "ntcoss.org.au", true },
@@ -24522,6 +25783,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ntx360grad-fallakte.de", true },
{ "ntzwrk.org", true },
{ "nu-pogodi.net", true },
+ { "nu3.com", true },
{ "nu3.dk", true },
{ "nu3.fi", true },
{ "nu3.no", true },
@@ -24532,15 +25794,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nuamooreaindonesia.com", true },
{ "nubella.com.au", true },
{ "nubu.at", true },
+ { "nuclea.site", true },
{ "nuclearcat.com", true },
{ "nucleuscore.org", true },
- { "nudestpics.com", true },
+ { "nudevotion.com", true },
{ "nuel.cl", true },
{ "nuevaimagenpublicidad.es", true },
{ "nuffield.nl", true },
{ "nugdev.co", true },
{ "null-life.com", true },
{ "nullday.de", true },
+ { "nulle-part.org", true },
{ "nullonerror.org", true },
{ "nullpointer.io", true },
{ "nullroute.com", true },
@@ -24574,7 +25838,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nurses.dating", true },
{ "nursingschool.network", true },
{ "nuryahan.com.br", true },
- { "nusku.biz", true },
{ "nussadoclub.org", true },
{ "nutikell.com", true },
{ "nutleyeducationalfoundation.org", true },
@@ -24584,7 +25847,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nutri-spec.me", true },
{ "nutricaovegana.com", true },
{ "nutriciametabolics-shop.de", true },
- { "nutrifyyourself.com", true },
{ "nutripedia.gr", true },
{ "nutrishop.com", true },
{ "nutrivisa.com.br", true },
@@ -24599,41 +25861,48 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "nwbc.gov", true },
{ "nwerc.party", true },
{ "nwgh.org", false },
+ { "nwk1.com", true },
{ "nwr-waffenbuch.de", true },
{ "nwra.com", true },
{ "nwuss.okinawa", true },
{ "nwwc.dk", true },
{ "nwwnetwork.net", true },
{ "nxinfo.ch", true },
+ { "nxit.ca", true },
+ { "nxth.io", true },
{ "nya.as", true },
+ { "nyadora.com", true },
+ { "nyadora.moe", true },
{ "nyan.it", true },
{ "nyan.stream", true },
{ "nyanco.space", true },
+ { "nyansparkle.com", true },
{ "nyantec.com", true },
{ "nybiz.nyc", true },
{ "nycoyote.org", true },
- { "nyffo.com", true },
+ { "nydig.com", true },
+ { "nydnxs.com", true },
{ "nyhaoyuan.net", true },
{ "nyiad.edu", true },
{ "nyip.co.uk", true },
{ "nyip.edu", true },
{ "nylevemusic.com", true },
{ "nyloc.de", true },
- { "nylonfeetporn.com", true },
{ "nymphetomania.net", true },
{ "nynex.net", true },
{ "nyoronfansubs.org", true },
{ "nyphox.ovh", true },
- { "nystudio107.com", true },
+ { "nys-hk.com", false },
{ "nytrafficticket.com", true },
- { "nyuusannkinn.com", true },
{ "nyxi.eu", true },
{ "nyyu.tk", true },
{ "nzb.cat", false },
+ { "nzbr.de", true },
{ "nzdmo.govt.nz", true },
{ "nzstudy.ac.nz", true },
{ "nzws.me", true },
{ "o-loska.cz", true },
+ { "o-results.ch", true },
{ "o-sp.com", true },
{ "o2careers.co.uk", true },
{ "o3.wf", true },
@@ -24641,6 +25910,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "o6asan.com", true },
{ "o8b.club", true },
{ "oaic.gov.au", true },
+ { "oakandresin.co", true },
{ "oakesfam.net", true },
{ "oakington.info", true },
{ "oaklands.co.za", true },
@@ -24655,8 +25925,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oatmealdome.me", true },
{ "oauth-dropins.appspot.com", false },
{ "obamalibrary.gov", true },
+ { "obamawhitehouse.gov", true },
{ "oberhofdrinks.com", true },
{ "obermeiers.eu", true },
+ { "obesidadlavega.com", true },
{ "obfuscate.xyz", true },
{ "obg-global.com", true },
{ "obitech.de", true },
@@ -24666,14 +25938,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oblast45.ru", false },
{ "oboeta.com", true },
{ "obono.at", true },
+ { "obs.group", true },
{ "obscur.us", true },
+ { "obsessharness.com", true },
{ "obsidianirc.net", true },
{ "obsproject.com", true },
{ "obtima.org", true },
{ "obud.cz", true },
{ "obyvateleceska.cz", true },
{ "oc-sa.ch", true },
- { "ocad.com.au", true },
+ { "ocarupo.com", true },
{ "occenterprises.org", true },
{ "occentus.net", true },
{ "occmon.net", true },
@@ -24683,6 +25957,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oceandns.eu", true },
{ "oceandns.net", true },
{ "oceandns.nl", true },
+ { "oceanlord.me", true },
{ "oceanvisuals.com", true },
{ "ocelot.help", true },
{ "ocenovani-inspekce.cz", true },
@@ -24701,7 +25976,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ocrn.nl", true },
{ "ocsigroup.fr", true },
{ "ocsr.nl", true },
- { "octal.es", true },
{ "octarineparrot.com", true },
{ "octav.name", false },
{ "octohedralpvp.tk", true },
@@ -24722,6 +25996,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oddtime.net", true },
{ "odensc.me", true },
{ "odifi.com", true },
+ { "odinseye.net", true },
{ "odoo.co.th", true },
{ "odpikedoslike.com", true },
{ "odtu.lu", true },
@@ -24739,15 +26014,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oemspace.net", true },
{ "oemspace.nl", true },
{ "oemwolf.com", true },
+ { "oenings.eu", true },
{ "ofcampuslausanne.ch", true },
{ "ofda.gov", true },
{ "offandonagain.org", true },
{ "offbyinfinity.com", true },
{ "offenekommune.de", true },
{ "offenes-deutschland.de", true },
- { "offerstone.cl", true },
+ { "offertegiuste.com", true },
{ "offfbynight.be", true },
{ "offgames.io", true },
+ { "offgridhub.com", true },
{ "office-discount.at", true },
{ "office-discount.de", true },
{ "office-furniture-direct.co.uk", true },
@@ -24761,12 +26038,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "offroadeq.com", true },
{ "offshoot.rentals", true },
{ "offshore.digital", true },
- { "ofggolf.com", true },
{ "oflow.me", true },
{ "oftamedic.com", true },
{ "oftn.org", true },
{ "oge.ch", true },
{ "ogis.gov", true },
+ { "oglen.ca", true },
{ "ogocare.com", true },
{ "oguya.ch", true },
{ "ogyaa.jp", true },
@@ -24780,10 +26057,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ohhere.xyz", true },
{ "ohiohealthfortune100.com", true },
{ "ohling.org", true },
+ { "ohmayonnaise.com", true },
{ "ohne-name.de", true },
+ { "ohnonotme.com", true },
+ { "ohol.se", true },
{ "ohsohairy.co.uk", true },
{ "ohyooo.com", true },
+ { "oi-wiki.org", true },
{ "oiaio.cn", true },
+ { "oilfieldinjury.attorney", true },
{ "oilpaintingsonly.com", true },
{ "oirealtor.com", true },
{ "oisd.nl", true },
@@ -24793,14 +26075,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ojdip.net", true },
{ "ojomovies.com", true },
{ "ojp.gov", true },
- { "okad-center.de", true },
- { "okad.de", true },
- { "okad.eu", true },
{ "okakuro.org", true },
{ "okanaganrailtrail.ca", true },
{ "okay.cf", true },
{ "okay.coffee", true },
- { "okaz.de", true },
{ "okburrito.com", true },
{ "okchicas.com", true },
{ "okchousebuyer.com", true },
@@ -24809,6 +26087,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "okib.ca", true },
{ "okin-jp.net", true },
{ "okinawa-mag.net", true },
+ { "okmx.cloud", true },
{ "okmx.de", true },
{ "okna-tm.kz", true },
{ "okonetwork.org.uk", true },
@@ -24822,23 +26101,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "olanderflorist.com", true },
{ "olasouris.com", true },
{ "olback.net", true },
+ { "olbat.net", true },
{ "olcayanar.com", true },
{ "oldbrookinflatables.co.uk", true },
{ "oldbrookmarqueehire.co.uk", true },
{ "oldchaphome.nl", true },
{ "oldenglishsheepdog.com.br", true },
+ { "oldita.ru", true },
{ "oldking.net", true },
{ "oldnews.news", true },
+ { "oldno07.com", true },
{ "oldoakflorist.com", true },
{ "oldprop.com", true },
+ { "oldroutetwo.com", true },
{ "oldtimerreifen-moeller.de", true },
{ "olegon.ru", true },
{ "olegs.be", true },
{ "oleksii.name", true },
{ "oleodecopayba.com.br", true },
+ { "oles-hundehaus.de", true },
+ { "olfnewcastle.com", true },
{ "olgiati.org", true },
{ "olgui.net", true },
{ "olgun.eu", true },
+ { "olifant.fr", true },
{ "olightstore.com", true },
{ "olightstore.ro", true },
{ "oliode.tk", true },
@@ -24848,6 +26134,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oliveoiltimes.com", true },
{ "oliveraiedelabastideblanche.fr", true },
{ "oliverclausen.com", true },
+ { "oliverfaircliff.com", true },
{ "olivernaraki.com", true },
{ "oliverniebuhr.de", true },
{ "oliverspringer.eu", true },
@@ -24868,27 +26155,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "olltechjob.com", true },
{ "olmari.fi", true },
{ "olmsted.io", true },
- { "ols.io", true },
{ "olygazoo.com", true },
{ "olymp-arts.world", true },
{ "olympiads.ca", true },
{ "olympic-research.com", true },
{ "om1.com", true },
{ "omanko.porn", true },
- { "omar.yt", true },
+ { "omarsuniagamusic.ga", true },
{ "omdesign.cz", true },
{ "omegahosting.net", true },
{ "omegathermoproducts.nl", true },
{ "omertabeyond.com", true },
{ "omertabeyond.net", true },
{ "ometepeislandinfo.com", true },
- { "omeuanimal.com", true },
{ "omf.link", true },
{ "omfg.exposed", true },
{ "omgbouncycastlehire.co.uk", true },
{ "omi-news.fr", true },
{ "omifind.com", true },
- { "omise.co", true },
{ "omitech.co.uk", true },
{ "omlmetal.co.jp", true },
{ "omniasig.ro", true },
@@ -24901,7 +26185,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "omnisky.dk", true },
{ "omnitrack.org", true },
{ "omniverse.ru", true },
- { "omorashi.org", true },
+ { "omoide-hitokoto.com", true },
{ "omori.ch", true },
{ "omoteura.com", true },
{ "omranic.com", true },
@@ -24918,6 +26202,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oncf.asso.fr", true },
{ "oncodedesign.com", true },
{ "ond-inc.com", true },
+ { "ond-inc.jp", true },
{ "ondcp.gov", true },
{ "onderwijstransparant.nl", true },
{ "ondrej.org", true },
@@ -24931,6 +26216,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "onebigcow.com", true },
{ "oneclic.ch", true },
{ "oneclickonejob.com", true },
+ { "onedegreehealth.com", true },
+ { "onedot.nl", true },
{ "onedottwelve.co.jp", true },
{ "onedottwelve.com", true },
{ "onedrive.com", true },
@@ -24940,7 +26227,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oneheartbali.church", true },
{ "oneidentity.me", true },
{ "oneiroi.co.uk", true },
- { "oneiros.cc", true },
{ "onemid.net", true },
{ "oneminute.io", false },
{ "onemoonmedia.de", true },
@@ -24950,6 +26236,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "onepointsafeband.com", true },
{ "onepointzero.com", true },
{ "oneprediction.com", true },
+ { "onesnzeroes.com", false },
{ "onesports.cz", true },
{ "onestepfootcare.com", true },
{ "onestopcastles.co.uk", true },
@@ -24966,6 +26253,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "onhub1.com", true },
{ "oni.nl", true },
{ "onice.ch", true },
+ { "onionbot.me", true },
{ "onionplay.live", true },
{ "onionplay.org", true },
{ "onionscan.org", true },
@@ -24986,12 +26274,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "online-stopwatch.com", true },
{ "online.marketing", true },
{ "online.net.gr", true },
- { "online.swedbank.se", true },
{ "online24.pt", true },
{ "onlinebizdirect.com", false },
{ "onlinecasino.vlaanderen", true },
{ "onlinecensorship.org", true },
{ "onlinecollegeessay.com", true },
+ { "onlinecorners.com", true },
{ "onlinefashion.it", true },
{ "onlineinfographic.com", true },
{ "onlinekmc.com", true },
@@ -25000,7 +26288,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "onlinelighting.com.au", true },
{ "onlinemarketingtraining.co.uk", true },
{ "onlinepokerspelen.be", true },
- { "onlineporno.tv", true },
+ { "onlineporno.xyz", true },
{ "onlinerollout.de", true },
{ "onlinestoreninjas.com", true },
{ "onlineth.com", false },
@@ -25011,9 +26299,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "onlylebanon.net", true },
{ "onmaps.de", true },
{ "onmarketbookbuilds.com", true },
- { "onnee.ch", true },
+ { "onnaguse.com", true },
{ "onnext.cc", true },
- { "ono.es", true },
{ "onoranze-funebri.biz", true },
{ "onpay.io", true },
{ "onpermit.net", true },
@@ -25026,6 +26313,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ontdekhetzelf.nu", true },
{ "onthebriteside.com", true },
{ "ontras.com", false },
+ { "ontsnappingskamer.nl", true },
{ "onurer.net", true },
{ "onvey.io", true },
{ "onvirt.de", true },
@@ -25045,6 +26333,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oosoo.org", true },
{ "ooyo.be", true },
{ "op11.co.uk", false },
+ { "opadaily.com", true },
{ "opalesurfcasting.net", true },
{ "oparl.org", true },
{ "opcenter.de", true },
@@ -25053,8 +26342,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "open-bs.com", true },
{ "open-bs.ru", true },
{ "open-desk.org", true },
- { "open-domotics.info", true },
{ "open-freax.fr", true },
+ { "open-gaming.net", true },
{ "open-infrastructure.net", true },
{ "open-letters.de", true },
{ "open-mesh.org", true },
@@ -25065,13 +26354,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "openacte.ch", true },
{ "openas.org", true },
{ "openbankproject.com", true },
+ { "openbayes.com", true },
{ "openbeecloud.com", true },
{ "openblox.org", true },
{ "openbsd.id", true },
+ { "opencad.io", true },
{ "opencircuit.nl", true },
{ "openclima.com", true },
{ "opencluster.at", true },
{ "opencrm.co.uk", true },
+ { "opendata.cz", true },
{ "opendataincubator.eu", true },
{ "opendecide.com", true },
{ "openfir.st", true },
@@ -25114,9 +26406,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "openwaveguide.de", true },
{ "openwifi.gr", true },
{ "openwireless.org", true },
- { "operad.fr", true },
{ "operationforever.com", true },
{ "opfin.com", true },
+ { "ophis-phosphoros.com", true },
{ "opiates.ca", true },
{ "opin.me", true },
{ "opioids.co.uk", true },
@@ -25125,26 +26417,36 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oplop.appspot.com", true },
{ "opoleo.com", false },
{ "oportho.com.br", true },
+ { "oportunidadesemfoco.com.br", true },
{ "opp.ag", true },
- { "oppag.com.br", true },
{ "oppaiti.me", true },
{ "oppejoud.ee", true },
{ "opportunis.me", true },
- { "opposer.me", true },
+ { "opportunity.de", true },
+ { "oppwa.com", true },
{ "opq.pw", true },
{ "oprbox.com", true },
{ "oprechtgezegd.nl", true },
{ "oprueba.com", true },
{ "opryshok.com", true },
+ { "ops-com.com", true },
{ "opsmate.com", false },
- { "opsnotepad.com", true },
{ "opti-net.at", true },
{ "opticaltest.com", true },
- { "optiekzien.nl", true },
{ "optik-trosdorff.de", true },
{ "optimalsetup.com", true },
+ { "optimised.cloud", true },
+ { "optimised.io", true },
+ { "optimisedlabs.co.uk", true },
{ "optimisedlabs.com", true },
- { "optimize-jpg.com", true },
+ { "optimisedlabs.info", true },
+ { "optimisedlabs.net", true },
+ { "optimisedlabs.uk", true },
+ { "optimist.bg", true },
+ { "optimizedlabs.co.uk", true },
+ { "optimizedlabs.info", true },
+ { "optimizedlabs.net", true },
+ { "optimizedlabs.uk", true },
{ "optimumwebdesigns.com", true },
{ "optimus.io", true },
{ "optimuscrime.net", true },
@@ -25153,6 +26455,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "optmos.at", true },
{ "optometryscotland.org.uk", true },
{ "optoutday.de", true },
+ { "opure.ru", true },
{ "opus-codium.fr", true },
{ "oraculum.cz", true },
{ "orang-utans.com", true },
@@ -25161,12 +26464,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "orangefinanse.com.pl", true },
{ "orangejetpack.com", true },
{ "orangenbaum.at", true },
- { "orangenuts.in", true },
- { "oranges.tokyo", true },
- { "orangetravel.eu", true },
{ "orangutan-appeal.org.uk", true },
{ "orbu.net", true },
- { "orcahq.com", true },
+ { "orca.pet", true },
{ "orcamoney.com", true },
{ "orchideenettoyage.com", true },
{ "orchidlive.com", true },
@@ -25177,13 +26477,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ordernow.at", true },
{ "orderswift.com", true },
{ "ordr.mobi", true },
+ { "oreka.online", true },
{ "oreshinya.xyz", true },
{ "oreskylaw.com", true },
{ "oreto.de", true },
{ "orf-digitalsatkarte.at", false },
{ "orf-kartentausch.at", false },
{ "organica.co.za", true },
- { "organicae.com", true },
{ "organisatieteam.nl", true },
{ "organisationsberatung-jacobi.de", true },
{ "organix.ma", true },
@@ -25200,11 +26500,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "originalniknihy.cz", true },
{ "origincoffee.com", true },
{ "origincoffee.nz", true },
+ { "originpc.com", false },
{ "orikadabra.nl", true },
{ "orikum.org", true },
{ "orimex-mebel.ru", true },
{ "orion-universe.com", true },
{ "orioncokolada.cz", true },
+ { "orionfinancialservices.com", true },
{ "oriongames.eu", true },
{ "orkestar-krizevci.hr", true },
{ "orkiv.com", true },
@@ -25221,7 +26523,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "orthotictransfers.com", true },
{ "ortlepp.eu", true },
{ "ortodonciaian.com", true },
- { "orui.com.br", true },
{ "orwell1984.today", true },
{ "oryva.com", true },
{ "orz.uno", true },
@@ -25230,8 +26531,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "os-t.de", true },
{ "os24.cz", true },
{ "osacrypt.studio", true },
- { "osaka-fukushi.jp", true },
- { "osaka-jusan.jp", true },
{ "osaka-onakura.com", true },
{ "osakeannit.fi", true },
{ "osao.org", true },
@@ -25241,6 +26540,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "osburn.com", true },
{ "oscamp.eu", true },
{ "oscarvk.ch", true },
+ { "oscloud.com", true },
{ "osepideasthatwork.org", true },
{ "osereso.tn", true },
{ "oses.mobi", true },
@@ -25254,8 +26554,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "oslinux.net", true },
{ "osm.is", true },
{ "osmanlitorunu.com", true },
+ { "osmestres.com", true },
{ "osmosis.org", true },
{ "osmre.gov", true },
+ { "osnova.cz", true },
+ { "osobliwydom.pl", true },
+ { "osomjournal.org", true },
+ { "ospf.sk", true },
{ "ospree.me", true },
{ "osquery.io", true },
{ "ostan-collections.net", true },
@@ -25274,14 +26579,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "otakubox.de", true },
{ "otakurepublic.com", true },
{ "otakurumi.de", true },
+ { "otakuyun.com", true },
{ "otchecker.com", true },
{ "otellio.com", true },
{ "otellio.de", true },
{ "otellio.it", true },
- { "otherkinforum.com", true },
{ "oticasaopaulo.com.br", true },
{ "oticasvisao.net.br", true },
- { "otmns.net", true },
{ "otorrino.pt", true },
{ "otoy.com", true },
{ "otoya.space", true },
@@ -25291,19 +26595,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "otsfreestyle.jp", true },
{ "otsu.beer", true },
{ "ottoproject.io", true },
+ { "ottoversand.at", true },
{ "otus-magnum.com", true },
{ "otvaracie-hodiny.sk", true },
{ "otya.me", true },
+ { "ouaibe.qc.ca", true },
{ "ouattara.ch", true },
{ "ouestsolutions.com", true },
{ "ouglor.com", true },
{ "ouimoove.com", true },
+ { "ouin.land", true },
{ "oulunjujutsu.com", true },
{ "ouowo.gq", true },
+ { "our-box.net", true },
{ "ourai.ws", true },
{ "ourcloud.at", true },
+ { "ourdocuments.gov", true },
{ "ourevents.net", true },
- { "ourls.win", true },
{ "ouruglyfood.com", true },
{ "ourwedding.xyz", true },
{ "ourworldindata.org", true },
@@ -25332,9 +26640,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "outlookonthedesktop.com", true },
{ "outpostinfo.com", true },
{ "outsideconnections.com", true },
+ { "outsiders.paris", true },
{ "ovelhaostra.com", true },
{ "overalglas.nl", true },
{ "overamsteluitgevers.nl", true },
+ { "overclockers.ge", true },
{ "overdrive-usedcars.be", true },
{ "overkillshop.com", true },
{ "overseamusic.de", true },
@@ -25343,6 +26653,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "overstap.deals", true },
{ "overstappen.nl", true },
{ "overstemmen.nl", true },
+ { "overstockpromote.com", true },
{ "overthecloud.it", true },
{ "overthinkingit.com", true },
{ "overtrolls.de", true },
@@ -25362,14 +26673,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "owl-square.com", true },
{ "owl-stat.ch", true },
{ "owl.net", true },
+ { "owlandrabbitgallery.com", true },
{ "owlishmedia.com", true },
{ "own3d.ch", true },
{ "ownc.at", true },
{ "ownmay.com", true },
- { "oxanababy.com", true },
{ "oxborrow.ca", true },
{ "oxelie.com", true },
{ "oxo.cloud", true },
+ { "oxygaming.com", true },
{ "oxygin.net", true },
{ "oxytocin.org", true },
{ "oyosoft.fr", true },
@@ -25388,8 +26700,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "p-t.io", true },
{ "p.ki", true },
{ "p1984.nl", false },
+ { "p1cn.com", true },
{ "p1ratrulezzz.me", true },
{ "p4chivtac.com", true },
+ { "p5118.com", true },
{ "p5r.uk", true },
{ "pa-w.de", true },
{ "pa.search.yahoo.com", false },
@@ -25398,30 +26712,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "paas-inf.net", true },
{ "paass.net", true },
{ "paazmaya.fi", true },
- { "pablo.im", true },
- { "pablo.scot", true },
- { "pablo.sh", true },
- { "pabloarteaga.co.uk", true },
- { "pabloarteaga.com", true },
- { "pabloarteaga.com.es", true },
- { "pabloarteaga.es", true },
- { "pabloarteaga.eu", true },
- { "pabloarteaga.info", true },
- { "pabloarteaga.me", true },
- { "pabloarteaga.name", true },
- { "pabloarteaga.net", true },
- { "pabloarteaga.nom.es", true },
- { "pabloarteaga.org", true },
- { "pabloarteaga.science", true },
- { "pabloarteaga.tech", true },
- { "pabloarteaga.uk", true },
- { "pabloarteaga.xyz", true },
{ "pabuzo.vn", true },
{ "pacatlantic.com", true },
{ "pacco.com.br", true },
{ "pace.car", true },
{ "paceda.nl", true },
{ "pacelink.de", true },
+ { "pacifco.com", true },
+ { "pacificcashforcars.com.au", true },
{ "pacificpalisadeselectric.com", true },
{ "pacificpalisadeselectrical.com", true },
{ "pacificpalisadeselectrician.com", true },
@@ -25437,13 +26735,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "packer.io", true },
{ "packetdigital.com", true },
{ "packetlinux.com", true },
+ { "packshot-creator.com", true },
+ { "pact2017.nl", true },
{ "pactf.com", true },
{ "padam-group.com", true },
{ "padberx-marketing-consultants.de", true },
{ "paddy.rocks", true },
- { "padeoe.com", true },
{ "padianda.com", true },
- { "padovani.de", true },
{ "padpilot.co", true },
{ "padrepio.in", true },
{ "padron.com.es", true },
@@ -25456,6 +26754,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pagalworld.info", true },
{ "pagalworld.la", true },
{ "pagalworld.me", true },
+ { "pagalworld.org", true },
{ "page-builders.com", true },
{ "pageantsnews.com", false },
{ "pagedesignhub.com", true },
@@ -25463,12 +26762,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pagedesignshop.com", true },
{ "pagedesignweb.com", true },
{ "pagefulloflies.io", true },
+ { "pageperform.com", true },
{ "pagewizz.com", true },
{ "pagiamtzis.com", true },
{ "pagina.com.mx", true },
{ "pagure.io", true },
{ "pahae.de", true },
{ "pahealthbilling.com", true },
+ { "pahlawanpulsa.com", true },
{ "paichai.space", false },
{ "paincareehr.com", true },
{ "paindata.dk", true },
@@ -25479,11 +26780,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "paintcolorsbysue.com", true },
{ "paintingindurban.co.za", true },
{ "paipuman.jp", true },
- { "paizinhovirgula.com", true },
{ "pajadam.me", true },
{ "pajuvuo.fi", true },
- { "paketkreditsuzuki.com", true },
{ "paketo.cz", true },
+ { "paketo.sk", true },
{ "paketwatch.de", false },
{ "pakho.xyz", true },
{ "pakistani.dating", true },
@@ -25495,9 +26795,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "palatin.at", true },
{ "palava.tv", true },
{ "palavatv.com", true },
- { "palawan.jp", false },
{ "palazzo.link", true },
{ "palazzo.work", true },
+ { "paleolowcarb.de", true },
{ "paleotraining.com", true },
{ "palladium46.com", true },
{ "pallas.in", true },
@@ -25532,8 +26832,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pandymic.com", true },
{ "paneldewelopera.pl", true },
{ "paneu.de", true },
+ { "panic.tk", true },
{ "panier-legumes.bio", true },
{ "panj.ws", true },
+ { "panjee.fr", true },
{ "panlex.org", true },
{ "panmetro.com", true },
{ "panoma.de", true },
@@ -25552,8 +26854,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "panthur.com.au", false },
{ "pantographe.info", true },
{ "pantou.org", false },
+ { "pants-off.xyz", true },
{ "panzer72.ru", true },
- { "paolo565.org", true },
{ "pap.la", false },
{ "papa-webzeit.de", true },
{ "papadopoulos.me", true },
@@ -25565,11 +26867,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "papelcraft.co.uk", true },
{ "paper-driver.biz", true },
{ "paper-republic.org", true },
+ { "paper.sc", true },
{ "paperhoney.by", true },
+ { "paperlesssolutionsltd.com.ng", true },
{ "papertracker.net", true },
{ "paperturn.com", true },
{ "paperwallets.io", true },
- { "paperwork.co.za", true },
{ "paperwritinghelp.net", true },
{ "papiermakerijdehoop.nl", true },
{ "papiermeteenverhaal.nl", true },
@@ -25587,23 +26890,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "paradiselost.com", true },
{ "paradoxdesigns.org", true },
{ "paragonie.com", false },
+ { "paragonremodeling.com", true },
{ "paragreen.net", true },
+ { "paranoidcrypto.com", true },
{ "paranoidmode.com", true },
{ "paranoidpenguin.net", true },
{ "paranoxer.hu", true },
{ "parasitologyclub.org", true },
{ "paratlan.hu", true },
{ "paratxt.org", true },
- { "parav.xyz", true },
{ "parcelbroker.co.uk", true },
{ "parchcraftaustralia.com", true },
{ "parckwart.de", true },
{ "parcon.it", true },
+ { "parentelement.com", true },
{ "parentheseardenne.be", true },
{ "parentinterview.com", true },
{ "parentsintouch.co.uk", true },
{ "pariga.co.uk", true },
{ "paris-store.com", true },
+ { "parisbloom.com", true },
{ "parisderriere.fr", true },
{ "parisescortgirls.com", true },
{ "parisfranceparking.com", true },
@@ -25612,6 +26918,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "parisfranceparking.nl", true },
{ "parisprovincedemenagements.fr", true },
{ "parkeren.in", true },
+ { "parkfans.net", true },
+ { "parkhost.eu", true },
{ "parkinginparis.fr", true },
{ "parkingpoint.co.uk", true },
{ "parkrunstats.servehttp.com", true },
@@ -25626,21 +26934,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "parolu.io", true },
{ "parquettista.milano.it", true },
{ "parquettista.roma.it", true },
+ { "parroquiasanrafaeldegramalote.com", true },
{ "parry.org", true },
{ "parsemail.org", true },
{ "parser.nu", true },
{ "parsonsfamilyhomes.com", true },
{ "partage.ovh", true },
- { "parteaga.com", true },
- { "parteaga.net", true },
{ "partecipa.tn.it", true },
{ "parthkolekar.me", true },
{ "participatorybudgeting.de", true },
{ "participatorybudgeting.info", true },
+ { "partijhandel.website", true },
{ "partijtjevoordevrijheid.nl", false },
+ { "partiono.com", true },
{ "partiwatch.com", true },
{ "partner.sh", true },
{ "partnerbeam.com", true },
+ { "partnermobil.de", true },
{ "partnersfcu.org", true },
{ "partou.de", true },
{ "partridge.tech", true },
@@ -25664,9 +26974,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "partytownireland.co.uk", true },
{ "partytownmarquees.co.uk", true },
{ "partyvan.io", true },
+ { "partyyy.io", true },
{ "partyzone.ie", true },
+ { "parvaneh.fr", true },
{ "pasadenapooch.org", true },
{ "pasadenasandwich.co", true },
+ { "pasadenasandwich.com", true },
{ "pasadenasandwichcompany.com", true },
{ "pasalt.com", true },
{ "pasarella.eu", true },
@@ -25690,8 +27003,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "passfilesafe.com", true },
{ "passfoto-deinfoto.ch", true },
{ "passieposse.nl", true },
+ { "passionandbalance.com", true },
{ "passionatefoodie.co.uk", true },
{ "passionatehorsemanship.com", true },
+ { "passionatelife.com.au", true },
+ { "passionebenessere.com", true },
{ "passionpictures.eu", true },
{ "passions-art.com", true },
{ "passphrase.today", true },
@@ -25719,7 +27035,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "passwordsecurity.info", true },
{ "passworks.io", true },
{ "passy.pw", true },
- { "pasta-factory.co.il", true },
{ "pastaenprosecco.nl", true },
{ "paste.fedoraproject.org", true },
{ "paste.gg", true },
@@ -25734,8 +27049,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pastormaremanoabruzes.com.br", true },
{ "pastorsuico.com.br", true },
{ "pasztor.at", true },
+ { "patapwn.com", true },
{ "patatbesteld.nl", true },
{ "pataterosviajeros.com", true },
+ { "patbatesremodeling.com", false },
{ "patdorf.com", true },
{ "patechmasters.com", true },
{ "patentados.com", true },
@@ -25754,12 +27071,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "patrickbrosi.de", true },
{ "patricklynch.xyz", true },
{ "patrickmcnamara.xyz", true },
- { "patrickschneider.me", true },
{ "patrikgarten.de", true },
{ "patriksima.cz", true },
{ "patriksimek.cz", true },
{ "patriotstationatchalfont.com", true },
{ "patrz.eu", true },
+ { "patsch-photography.de", true },
{ "patsyforyou.ch", true },
{ "patsytoforyou.ch", true },
{ "pattonfanatic.com", true },
@@ -25774,6 +27091,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "paulbakaus.com", true },
{ "paulbdelaat.nl", true },
{ "paulbramhall.uk", true },
+ { "paulcooper.me.uk", true },
+ { "pauldev.co", true },
+ { "paulerhof.com", true },
{ "paulewen.ca", true },
{ "paulinewesterman.nl", true },
{ "paulmeier.com", false },
@@ -25787,11 +27107,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "paulschreiber.com", true },
{ "paulscustomauto.com", true },
{ "paulswartz.net", true },
- { "paultibbetts.uk", false },
{ "paulus-foto.pl", true },
{ "paulward.net", true },
{ "paulwatabe.com", true },
{ "paulwendelboe.com", true },
+ { "pauly-stahlhandel.com", true },
+ { "pauly-stahlhandel.de", true },
{ "pauspam.net", true },
{ "pautadiaria.com", true },
{ "pavando.com", true },
@@ -25803,9 +27124,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pawel-international.com", true },
{ "pawelnazaruk.com", true },
{ "pawelurbanek.com", true },
+ { "pawfriends.org.za", true },
{ "pawsomebox.co.uk", true },
{ "pawsr.us", true },
- { "pawsru.org", true },
{ "paxerahealth.com", true },
{ "pay.gov", true },
{ "pay8522.com", true },
@@ -25814,7 +27135,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "payboy.rocks", true },
{ "paybro.eu", true },
{ "payfazz.com", true },
- { "paykings.com", true },
{ "paylike.io", true },
{ "payloc.io", true },
{ "payme.uz", true },
@@ -25824,6 +27144,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "paymerang.com", true },
{ "paymill.com", true },
{ "paymill.de", true },
+ { "paynet.com.co", true },
{ "payoff.com", true },
{ "paypal.com", false },
{ "paypaq.com", true },
@@ -25843,11 +27164,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pback.se", true },
{ "pbosquet.com", true },
{ "pbourhis.me", true },
+ { "pbqs.site", true },
{ "pbr.so", true },
{ "pbraunschdash.com", true },
+ { "pbreen.co.uk", true },
{ "pbrumby.com", true },
{ "pbz.im", true },
{ "pc-rescue.me", false },
+ { "pc-servis-brno.com", true },
{ "pcbricole.fr", true },
{ "pccentral.nl", true },
{ "pcdocjim.com", true },
@@ -25873,17 +27197,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pcsetting.com", true },
{ "pctonic.net", true },
{ "pctrouble.net", true },
+ { "pculiar.com", true },
{ "pdf-archive.com", true },
{ "pdfconvert.me", true },
{ "pdfmint.com", true },
{ "pdfpassword.org", true },
{ "pdfpasswort.de", true },
{ "pdfresizer.com", true },
+ { "pdfsearch.org", true },
+ { "pdfsearches.com", true },
{ "pdox.net", true },
{ "pdragt.com", true },
{ "pdthings.net", true },
{ "pdxtowncar.net", true },
{ "pe.search.yahoo.com", false },
+ { "peacedivorce.com", true },
{ "peaceispossible.cc", true },
{ "peaceloveandlabor.com", true },
{ "peak-careers.com", true },
@@ -25946,26 +27274,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pehapkari.cz", true },
{ "peifi.de", false },
{ "peippo.at", true },
+ { "peka.pw", true },
{ "pekkapleppanen.fi", true },
{ "pekoe.se", true },
{ "pelanucto.cz", true },
{ "pelican.ie", true },
- { "peliseries24.com", true },
{ "pelletizermill.com", true },
{ "pelletsprice.com", true },
{ "pelopogrund.com", true },
{ "pelopoplot.com", true },
{ "pelotonimports.com", true },
+ { "pems.gov.au", true },
{ "penaugustin.com", true },
{ "pencepay.com", true },
{ "pencillab.cn", true },
{ "pendriveapps.com", true },
{ "penetrationstest.se", true },
+ { "penfold.fr", true },
{ "pengi.me", true },
{ "penguindrum.moe", true },
{ "penguinprotocols.com", true },
{ "penispumpen.se", true },
{ "pennergold.net", true },
+ { "pennington.io", true },
{ "pennyparkerpaper.com", true },
{ "penrithapartments.com.au", true },
{ "pens.com", true },
@@ -25973,7 +27304,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pensador.com", true },
{ "pensador.info", true },
{ "pensioenfonds-ey.nl", true },
- { "pension-veldzigt.nl", true },
{ "pensionpilot.ca", true },
{ "penslabyrinth.com", true },
{ "pentandra.com", true },
@@ -25986,10 +27316,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "penz.media", true },
{ "peoplelikemeapp.com", true },
{ "peoplesbankal.com", true },
+ { "peoplesdecade.org", true },
{ "peoplesguardian.org", true },
{ "pepemodelismo.com.br", true },
{ "peplog.nl", true },
{ "pepwaterproofing.com", true },
+ { "pequenosfavoritos.com.br", true },
+ { "per-olsson.se", true },
{ "pera.gs", true },
{ "perala.me", true },
{ "peraparker.cz", true },
@@ -25998,7 +27331,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "percy.io", true },
{ "perd.re", true },
{ "perecraft.com", true },
- { "perez-marrero.com", true },
{ "perezdecastro.org", true },
{ "perfect.in.th", true },
{ "perfectbalance.tech", true },
@@ -26009,7 +27341,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "perfektesgewicht.de", true },
{ "performancehealth.com", true },
{ "performancesantafe.org", true },
- { "performaride.com.au", true },
{ "perfumeaz.com", true },
{ "perfumes.com.br", true },
{ "periscope.tv", true },
@@ -26033,8 +27364,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "perroquet-passion.ch", true },
{ "persephone.gr", true },
{ "personal-genome.com", true },
+ { "personal-injury-attorney.co", true },
{ "personaltrainer-senti.de", true },
- { "personcar.com.br", true },
{ "perspectivum.com", true },
{ "perspektivwechsel-coaching.de", true },
{ "persson.me", true },
@@ -26051,7 +27382,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pesyun.cn", true },
{ "pet-hotel-mura.net", true },
{ "petabits.de", true },
- { "petangen.se", true },
+ { "petalkr.com", true },
+ { "petbooking.it", true },
{ "petcarvers.com", true },
{ "petdesign.pet", true },
{ "peteboc.com", true },
@@ -26064,13 +27396,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "peterbruceharvey.com", true },
{ "peterdavehello.org", true },
{ "peterfiorella.com", true },
- { "peterfolta.net", true },
{ "peterhuetz.at", true },
{ "peterhuetz.com", true },
+ { "peterjin.org", true },
{ "peterjohnson.io", true },
+ { "peterkshultz.com", false },
{ "peterlew.is", true },
- { "petermazur.com", true },
- { "peters.consulting", true },
{ "petersontoscano.com", true },
{ "petervanleeuwentweewielers.nl", true },
{ "petfa.ga", true },
@@ -26081,13 +27412,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "petko.me", true },
{ "petlife.vet", true },
{ "petmall.bg", true },
+ { "peto.nl", true },
{ "petofiprogram.hu", true },
{ "petplus.com", true },
{ "petpost.co.nz", false },
{ "petpower.eu", true },
- { "petrachuk.ru", true },
+ { "petr.as", true },
{ "petrasestakova.cz", true },
- { "petravdbos.nl", true },
+ { "petresort.pt", true },
{ "petroscand.eu", true },
{ "petrostathis.com", true },
{ "petrpikora.com", true },
@@ -26097,6 +27429,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pettitcoat.com", true },
{ "petwall.info", true },
{ "pew.ninja", true },
+ { "pewnews.org", true },
{ "pex.digital", true },
{ "peyote.com", true },
{ "pf.dk", true },
@@ -26104,6 +27437,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pfadfinder-aurich.de", true },
{ "pfadfinder-grossauheim.de", true },
{ "pfarchimedes-pensioen123.nl", true },
+ { "pfarre-kremsmuenster.at", true },
{ "pfcafeen.dk", true },
{ "pfd-nz.com", false },
{ "pferdekauf.de", true },
@@ -26117,9 +27451,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pfmeasure.com", true },
{ "pfo.io", true },
{ "pfotentour-berlin.de", true },
+ { "pfrost.me", true },
{ "pfudor.tk", true },
{ "pg-forum.de", true },
{ "pg-mana.net", true },
+ { "pgh-art.com", true },
+ { "pglandscapingpaving.com", true },
{ "pgmann.cf", true },
{ "pgnetwork.net", true },
{ "pgp.guru", true },
@@ -26142,20 +27479,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pharmasana.de", true },
{ "pharmica.co.uk", true },
{ "pharmica.uk", true },
+ { "pharside.dyndns.org", true },
{ "pharynks.com", true },
{ "pharynx.nl", true },
{ "phasersec.com", false },
{ "phasme-2016.com", true },
+ { "phattea.tk", true },
{ "phaux.uno", true },
{ "phcimages.com", true },
{ "phcorner.net", true },
{ "phdhub.it", true },
- { "phelx.de", true },
{ "phenixairsoft.com", true },
{ "phget.com", true },
{ "phi-works.com", true },
{ "phialo.de", true },
+ { "phil-dirt.com", true },
{ "phil-phillies.com", true },
+ { "phil.tw", true },
{ "philadelphia.com.mx", true },
{ "phileas-psychiatrie.be", true },
{ "philia-sa.com", true },
@@ -26173,7 +27513,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "philippinedroneassociation.org", true },
{ "philippkeschl.at", true },
{ "phillipgoldfarb.com", true },
- { "phillipsuk.com", true },
{ "phillyinjurylawyer.com", true },
{ "philna.sh", true },
{ "philosoftware.com.br", true },
@@ -26184,14 +27523,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "philsown.de", true },
{ "philsturgeon.uk", true },
{ "philux.ch", true },
- { "phippsreporting.com", true },
{ "phishing-studie.org", true },
- { "phishing.rs", true },
{ "phishingusertraining.com", true },
{ "phligence.com", true },
{ "phocean.net", true },
{ "phoenixlogan.com", true },
{ "phone-service-center.de", true },
+ { "phonix-company.fr", true },
{ "phormance.com", true },
{ "phosagro.biz", false },
{ "phosagro.com", false },
@@ -26207,6 +27545,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "photodeal.fr", true },
{ "photographe-reims.com", true },
{ "photographersdaydream.com", true },
+ { "photography-workshops.net", true },
{ "photolium.net", true },
{ "photomodelcasting.com", true },
{ "photon.sh", true },
@@ -26220,7 +27559,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "phpbbchinese.com", true },
{ "phpdistribution.com", true },
{ "phpdorset.co.uk", true },
- { "phpinfo.in.th", true },
{ "phpkari.cz", true },
{ "phpliteadmin.org", true },
{ "phpmyadmin.net", true },
@@ -26239,9 +27577,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "phus.lu", true },
{ "physicalism.com", true },
{ "physicalist.com", true },
+ { "physicaltherapist.com", false },
{ "physicpezeshki.com", true },
{ "physiotherapie-seiwald.de", true },
{ "physiovesenaz.ch", true },
+ { "pi-box.ml", true },
{ "pi-control.de", true },
{ "pi-dash.com", true },
{ "pi-net.dedyn.io", true },
@@ -26249,9 +27589,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pianetaottica.com", true },
{ "pianetaottica.it", true },
{ "pianetatatuaggi.it", true },
+ { "pianomover.co.uk", true },
{ "pianyigou.com", true },
{ "piatabrasil.com.br", true },
- { "piatanoua.md", true },
{ "piboubes.me", true },
{ "pic.gov", true },
{ "pic.sr", true },
@@ -26281,8 +27621,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "picturingjordan.com", true },
{ "pidginhost.com", true },
{ "pidjipi.com", true },
+ { "pie-express.xxx", true },
{ "pieces-or.com", true },
- { "piedfeed.com", true },
{ "pieinsurance.com", true },
{ "piekacz.eu.org", true },
{ "piekacz.net", true },
@@ -26305,35 +27645,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pieterhordijk.com", true },
{ "pietermaene.be", false },
{ "pietz.uk", true },
- { "pigritia.de", true },
- { "piils.fr", true },
+ { "pigs.pictures", true },
{ "pijuice.com", true },
{ "pik.bzh", true },
{ "pikeitservices.com.au", true },
{ "pikimusic.moe", true },
{ "pilani.ch", true },
{ "pilarguineagil.com", true },
+ { "pilatescenteraz.com", true },
{ "pildat.org", true },
{ "pileofgarbage.net", true },
{ "piliszek.net", true },
{ "pill.id", true },
{ "pilot.co", true },
- { "pilotandy.com", true },
{ "pilotgrowth.com", true },
{ "pilsoncontracting.com", true },
{ "pilvin.pl", true },
{ "pimhaarsma.nl", true },
{ "pimhaarsmamedia.nl", true },
- { "pimpmypaper.com", true },
{ "pimpmyperf.fr", true },
{ "pinceaux.org", true },
{ "pincha.com.tw", false },
{ "pincodeit.com", true },
{ "pindanutjes.be", false },
- { "pineapplesapp.com", true },
{ "pinemountainnursery.com.au", true },
{ "pinemountbaptistchurch.org", true },
- { "pinesandneedles.com", true },
{ "pingworks.com", true },
{ "pingworks.de", true },
{ "pingworks.eu", true },
@@ -26350,13 +27686,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pinklecfest.org", true },
{ "pinklittlenotebook.com", true },
{ "pinkwalk.co.nz", true },
- { "pinkyf.com", true },
+ { "pinkylam.me", true },
+ { "pinnacleallergy.net", true },
{ "pinnaclelife.co.nz", true },
{ "pinnaclelife.nz", true },
{ "pinnacles.com", true },
{ "pinner.io", true },
{ "pinoydailytvshow.net", true },
- { "pinoylinux.org", true },
+ { "pinoyonlinetv.com", true },
{ "pinoytech.ph", true },
{ "pinpayments.com", true },
{ "pinpointengineer.co.uk", true },
@@ -26370,9 +27707,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pinterest.ie", true },
{ "pinterest.info", true },
{ "pinterest.jp", true },
- { "pintoselectrician.co.za", true },
+ { "pintosplumbing.co.za", true },
{ "pioneer-car.eu", true },
{ "pioneer-rus.ru", true },
+ { "pipenny.net", true },
{ "pipocao.com", true },
{ "piranil.com", true },
{ "pirate.trade", true },
@@ -26382,6 +27720,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pirateproxy.cam", true },
{ "pirateproxy.cat", true },
{ "pirateproxy.cc", true },
+ { "pirateproxy.gdn", true },
{ "pirateproxy.ist", true },
{ "pirateproxy.la", true },
{ "pirateproxy.one", true },
@@ -26396,6 +27735,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pircher.co.uk", true },
{ "pires.ovh", true },
{ "pirman.es", true },
+ { "piroleikki.co.jp", true },
{ "piruchita.com", true },
{ "pirxpilot.me", true },
{ "piscine.roma.it", true },
@@ -26411,26 +27751,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pittmantraffic.co.uk", true },
{ "pivotaltracker.com", true },
{ "pivotanimation.org", true },
+ { "piwko.co", true },
{ "pix5.de", true },
{ "pixabay.com", true },
+ { "pixe2019.org", true },
{ "pixel.facebook.com", false },
{ "pixel.google.com", true },
{ "pixelbash.de", true },
{ "pixelcubed.com", true },
- { "pixelesque.uk", true },
{ "pixelfou.com", true },
{ "pixelminers.net", true },
{ "pixelpirat.ch", true },
- { "pixelpoint.io", true },
{ "pixelrain.info", true },
{ "pixelsquared.us", true },
{ "pixelurbia.com", true },
{ "pixelution.at", true },
+ { "pixelz.cc", true },
{ "pixiv.cat", true },
{ "pixiv.moe", true },
{ "pixivimg.me", true },
{ "pixloc.fr", true },
{ "pizala.de", true },
+ { "pizza-show.fr", true },
{ "pizzabesteld.nl", true },
{ "pizzabottle.com", false },
{ "pizzacook.ch", true },
@@ -26439,28 +27781,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pizzagigant.hu", true },
{ "pizzahut.ru", true },
{ "pizzalongaway.it", true },
+ { "pizzamc.eu", true },
{ "pizzeria-mehrhoog.de", true },
{ "pizzeriaamadeus.hr", true },
{ "pizzeriacolore.com", true },
- { "pj00100.com", true },
- { "pj00200.com", true },
- { "pj00300.com", true },
- { "pj00400.com", true },
- { "pj00600.com", true },
- { "pj00700.com", true },
- { "pj00800.com", true },
- { "pj00900.com", true },
+ { "pj009.com", true },
{ "pj539999.com", true },
{ "pjentertainments.co.uk", true },
+ { "pjili.com", true },
{ "pjleisure.co.uk", true },
{ "pjo.no", true },
{ "pjuu.com", false },
{ "pk.search.yahoo.com", false },
{ "pkbjateng.com", true },
- { "pkbjateng.or.id", true },
{ "pkgt.de", false },
{ "pkirwan.com", true },
- { "pko.ch", true },
+ { "pkisolutions.com", true },
{ "pkov.cz", true },
{ "pkphotobooths.co.uk", true },
{ "pksps.com", true },
@@ -26481,11 +27817,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "plainmark.com", true },
{ "plaintech.net.au", true },
{ "plaintray.com", true },
+ { "plaisirdumouvement.com", true },
{ "plan-immobilier.fr", true },
{ "planboardapp.com", true },
{ "planecon.nz", true },
- { "planeexplanation.com", true },
{ "planer.me", true },
+ { "planespotterblog.de", true },
{ "planet-laas.de", true },
{ "planet-work.com", true },
{ "planetanim.fr", true },
@@ -26500,6 +27837,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "planetknauer.net", true },
{ "planetofthegames.tv", true },
{ "planetromeofoundation.org", true },
+ { "planetsoftware.com.au", true },
{ "planformation.com", true },
{ "planify.io", true },
{ "planitz.com", true },
@@ -26510,6 +27848,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "planmemberpartners.com", true },
{ "plannedlink.com", true },
{ "planningexcellence.com.au", true },
+ { "planolowcarb.com", true },
{ "plant-gift.jp", true },
{ "plantarum.com.br", true },
{ "plantastique.ch", true },
@@ -26519,6 +27858,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "plantezcheznous.com", true },
{ "plantrustler.com", true },
{ "planujemywesele.pl", true },
+ { "planup.fr", true },
{ "plaque-funeraire.fr", true },
{ "plassmann.ws", true },
{ "plasti-pac.ch", true },
@@ -26541,23 +27881,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "playanka.com", true },
{ "playawaycastles.co.uk", true },
{ "playdaysparties.co.uk", true },
+ { "playerdb.co", true },
{ "playerscout.net", true },
{ "playform.cloud", true },
{ "playhappywheelsunblocked.com", true },
- { "playkh.com", true },
{ "playkinder.com", true },
+ { "playnation.io", true },
{ "playocean.net", true },
{ "playpirates.com", true },
{ "playreal.city", true },
{ "playsharp.com", true },
{ "playsnake.org", true },
- { "playsoundevents.be", true },
{ "playtictactoe.org", true },
{ "playtimebouncycastles.co.uk", true },
- { "playyou.be", true },
+ { "playupnow.com", true },
+ { "playviolinmusic.com", true },
{ "playzonecastles.co.uk", true },
+ { "plazasummerlin.com", true },
{ "pld-entertainment.co.uk", true },
{ "pldx.org", true },
+ { "pleaseuseansnisupportedbrowser.ml", true },
{ "plegro.com", true },
{ "pleiades.com.tr", true },
{ "pleier-it.de", false },
@@ -26567,13 +27910,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "plesse.pl", true },
{ "plexa.de", true },
{ "plexhome13.ddns.net", true },
+ { "plexi.dyndns.tv", true },
+ { "plexmark.tk", true },
{ "plextv.de", true },
{ "pliosoft.com", true },
{ "plissee-experte.de", true },
{ "plitu.de", true },
{ "plixer.com", true },
+ { "plny.eu", true },
{ "plob.org", true },
{ "plochka.bg", true },
+ { "plokko.com", true },
{ "plongee-phuket.fr", true },
{ "ploofer.com", true },
{ "plot.ly", true },
@@ -26593,22 +27940,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "plumbingbenoni.co.za", true },
{ "plumbingcentral.com.au", true },
{ "plumbingglenvista.co.za", true },
- { "plumbingman.com.au", true },
{ "plumlocosoft.com", true },
{ "plumnet.ch", true },
{ "plumpie.net", false },
{ "plumplat.com", true },
{ "plur.com.au", true },
{ "plural.cafe", true },
+ { "plurr.me", true },
{ "plus-5.com", true },
{ "plus.google.com", false },
{ "plus.sandbox.google.com", true },
- { "pluscbdoil.com", false },
- { "plushev.com", true },
+ { "plus1s.site", true },
+ { "pluscbdoil.com", true },
{ "pluslink.co.jp", true },
{ "plusstreamfeed.appspot.com", true },
{ "plustech.id", true },
{ "pluta.net", true },
+ { "plutiedev.com", true },
{ "pluto.life", true },
{ "plutokorea.com", true },
{ "plutopia.ch", true },
@@ -26630,6 +27978,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pmarques.info", true },
{ "pmartin.tech", true },
{ "pmbc.org", true },
+ { "pmbtf.com", true },
{ "pmconference.ch", true },
{ "pmf.gov", true },
{ "pmg-offshore-company.com", true },
@@ -26637,6 +27986,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pmg-purchase.net", true },
{ "pmgnet.de", true },
{ "pmklaassen.com", true },
+ { "pmnaish.co.uk", true },
{ "pmoreau.org", true },
{ "pmp-art.com", true },
{ "pmponline.de", true },
@@ -26663,7 +28013,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pochaneko.com", true },
{ "pocitacezababku.cz", true },
{ "pocketfruity.com", true },
- { "pocketfullofapps.com", true },
+ { "pocketinsure.com", true },
{ "podemos.info", true },
{ "podia.com.gr", false },
{ "podroof.com", true },
@@ -26677,12 +28027,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "poezja.com.pl", true },
{ "poezjagala.pl", true },
{ "poffenhouse.ddns.net", true },
+ { "pogera.com", true },
{ "pogrebisky.net", true },
+ { "pohlednice-tap.cz", true },
{ "pohlmann.io", true },
{ "poinsot.info", true },
{ "pointaction.com", true },
{ "pointhost.de", true },
- { "points4unitedway.com", true },
{ "pointsgame.net", true },
{ "pointsixtyfive.com", true },
{ "pointum.com", true },
@@ -26690,15 +28041,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "poitiers-ttacc-86.eu.org", true },
{ "pojer.me", true },
{ "pokalsocial.de", true },
+ { "pokazy-iluzji.pl", true },
{ "pokefarm.com", true },
{ "pokeinthe.io", true },
{ "pokemondb.net", true },
+ { "pokemonlab.com", true },
+ { "pokemonsimulator.com", true },
{ "pokemontabletopadventures.com", true },
{ "pokemori.jp", true },
{ "pokepon.center", true },
{ "pokl.cz", true },
{ "polaire.org", true },
{ "polanda.com", true },
+ { "polar-baer.com", true },
{ "polar.uk.com", true },
{ "pole-emotion.ch", true },
{ "poleacademie.com", true },
@@ -26708,8 +28063,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "policesromandesrecrutement.ch", true },
{ "policyreporter.com", true },
{ "policyreporter.us", true },
+ { "polinet.de", true },
{ "polis.or.at", true },
{ "polis.to", false },
+ { "polis812.ru", true },
{ "polish-dictionary.com", true },
{ "polish-flag.com", true },
{ "polish-translations.com", true },
@@ -26722,6 +28079,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "polishwomen.com", true },
{ "polit.im", true },
{ "politic.org.ua", true },
+ { "politicachubut.com.ar", true },
{ "politiezoneriho.be", true },
{ "politik-bei-uns.de", true },
{ "polizeiwallis.ch", true },
@@ -26735,21 +28093,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "polly.spdns.org", true },
{ "poloniainfo.com", true },
{ "poloniex.co.za", true },
+ { "polska-robota.com.ua", true },
{ "polskiemalzenstwo.org", true },
{ "poly-fast.com", true },
{ "polycraftual.co.uk", true },
{ "polyfill.io", true },
- { "polyfluoroltd.com", true },
+ { "polyfluoroltd.com", false },
{ "polygamer.net", true },
{ "polymake.org", true },
{ "polymathematician.com", true },
+ { "polymorph.rs", true },
{ "polynomapp.com", true },
{ "polypane.rocks", true },
{ "polypet.com.sg", true },
+ { "polyr.xyz", true },
{ "polytarian.com", true },
{ "polytekniskforening.dk", true },
{ "pomar.club", false },
- { "pomardaserra.com", true },
{ "pomelo-paradigm.com", true },
{ "pomfeed.fr", true },
{ "pommedepain.fr", true },
@@ -26769,6 +28129,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ponydesignclub.nl", true },
{ "ponyfoo.com", true },
{ "ponzi.life", true },
+ { "poodlefan.net", true },
{ "pookl.com", true },
{ "poolspondsandwaterscapes.com", true },
{ "poolvilla-margarita.net", false },
@@ -26779,7 +28140,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pop3.jp", true },
{ "popcat.ru", true },
{ "popcornpalacefundraising.com", true },
- { "popcultureshack.com", true },
{ "popeyes.com", true },
{ "popinga.it", true },
{ "popmagz.com", true },
@@ -26793,18 +28153,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "porg.es", true },
{ "pork.org.uk", true },
{ "porkel.de", true },
- { "porn77.info", true },
- { "pornbay.org", true },
- { "porncandi.com", true },
- { "pornfacefinder.com", true },
+ { "pornfacefinder.com", false },
{ "pornhubhd.biz", true },
{ "porniwi.com", true },
{ "pornloupe.com", true },
- { "porno-gif.ru", true },
- { "pornohub.su", true },
- { "pornolab-net.appspot.com", false },
+ { "pornofilmovi.us", true },
{ "pornomens.be", true },
- { "pornoserver.eu", true },
{ "pornspider.to", true },
{ "porpcr.com", true },
{ "pors-sw.cz", true },
@@ -26819,7 +28173,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "portal.tirol.gv.at", true },
{ "portalcarriers.com", true },
{ "portalcentric.net", true },
- { "portalhubnuti.cz", false },
{ "portalkla.com.br", true },
{ "portalzine.de", true },
{ "portamiinpista.it", true },
@@ -26836,6 +28189,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "portsmoutheic.com", true },
{ "portugal-a-programar.pt", true },
{ "portugalsko.net", true },
+ { "portvincentcaravanpark.com.au", true },
{ "porybox.com", true },
{ "pos.co.tz", true },
{ "posalji.me", true },
@@ -26855,6 +28209,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "post-darwinism.com", true },
{ "post.com.ar", true },
{ "post.io", true },
+ { "post.we.bs", true },
{ "postal.dk", true },
{ "postal3.es", true },
{ "postblue.info", true },
@@ -26880,20 +28235,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "potature.rimini.it", true },
{ "potature.roma.it", true },
{ "potentialproject.com", false },
+ { "potenzprobleme-info.net", true },
{ "pothe.com", true },
{ "pothe.de", true },
{ "potolok.am", true },
{ "potrillionaires.com", true },
{ "potterscraftcider.com", true },
{ "pottersheartministry.org", true },
+ { "pottreid.com", true },
{ "pottshome.co.uk", true },
{ "potworowski.de", true },
+ { "potzwonen.nl", true },
{ "poudlard.fr", true },
+ { "poundwholesale.co.uk", true },
{ "pour-la-culture-aulnay.fr", true },
{ "pourlesenfants.info", true },
{ "pouwels-oss.nl", true },
{ "povareschka.ru", true },
{ "povesham.tk", true },
+ { "pow-s.com", true },
+ { "pow.jp", true },
{ "powelljones.co.uk", true },
{ "power-coonies.de", true },
{ "power-fit.org", true },
@@ -26905,13 +28266,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "powerdent.net.br", true },
{ "poweredbyiris.nl", true },
{ "poweredbypurdy.com", true },
+ { "powerfortunes.com", true },
{ "powermatic7.com", true },
{ "powermeter.at", true },
{ "powermint.de", true },
+ { "powerplaywashers.com", true },
{ "powerpointschool.com", true },
{ "powerserg.org", true },
{ "powersergdatasystems.com", true },
{ "powersergholdings.com", true },
+ { "powersergthisisthetunnelfuckyouscott.com", true },
{ "powersergthisisthewebsitefuckyouscott.com", true },
{ "powersergusercontent.com", true },
{ "powertothebuilder.com", true },
@@ -26919,14 +28283,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pozemedicale.org", true },
{ "pozlife.net", true },
{ "pozzitiv.ro", true },
+ { "pp-server.com", true },
{ "pp3345.net", true },
{ "ppcrestaurants.com", true },
- { "ppembed.com", true },
{ "ppipe.net", true },
+ { "pplsoft.nl", true },
{ "pplsvc.com", true },
{ "ppmathis.ch", true },
{ "ppmathis.com", true },
{ "ppmoon.com", true },
+ { "ppoou.co.uk", true },
+ { "ppoozl.com", true },
{ "ppro.com", true },
{ "pptavmdata.org", true },
{ "ppy.la", true },
@@ -26936,7 +28303,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pr2studio.com", true },
{ "prac.to", true },
{ "pracowniatkanin.com", true },
- { "practicalprogrammer.tech", true },
{ "practiceflow.nl", true },
{ "practicepanther.com", true },
{ "practo.com", true },
@@ -26951,9 +28317,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "prakhar.uk", true },
{ "prakharprasad.com", true },
{ "praktijkdevecht.nl", true },
+ { "praktijkpassepartout.nl", true },
{ "praxino.de", true },
{ "praxis-dingeldey.de", true },
{ "praxis-familienglueck.de", true },
+ { "praxis-odermath.de", true },
{ "prayerrequest.com", true },
{ "prazeresdavida.com.br", true },
{ "prazynka.pl", true },
@@ -26964,9 +28332,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "preciscx.com", true },
{ "preciseassemblies.com", true },
{ "precision.st", true },
+ { "precisiondigital-llc.com", true },
{ "precode.eu", true },
{ "predoiu.ro", true },
- { "preexport.com", true },
{ "prefix.eu", true },
{ "pregono.com", true },
{ "pregunteleakaren.gov", true },
@@ -26984,7 +28352,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "prelved.nl", true },
{ "prelved.pl", true },
{ "prelved.se", true },
- { "premaritalsex.info", true },
{ "prematureacceleration.club", true },
{ "premierbouncycastles.co.uk", true },
{ "premieresloges.ca", false },
@@ -26992,23 +28359,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "premierheart.com", true },
{ "premierjewelersjax.com", true },
{ "premiership-predictors.co.uk", true },
+ { "premiumcredit.am", true },
{ "premiumweb.co.id", true },
{ "premiumwebdesign.it", true },
{ "prenatalgeboortekaartjes.nl", true },
{ "prepaid-cards.xyz", true },
{ "prepaid-voip.nl", true },
- { "prepaidgirl.com", true },
{ "prepaidkredietkaart.be", true },
{ "prepare-job-hunting.com", true },
+ { "preposted.com", true },
{ "presbee.com", true },
+ { "presbvm.org", true },
{ "prescotonline.co.uk", true },
{ "present-m.com", true },
{ "presentesdegrife.com.br", true },
{ "president.bg", true },
{ "prespanok.sk", true },
+ { "pressakey.com", true },
+ { "pressakey.de", true },
{ "presscenter.jp", true },
{ "pressertech.com", true },
{ "presses.ch", true },
+ { "presskr.com", true },
{ "pressography.org", true },
{ "pressrush.com", true },
{ "pressup.it", true },
@@ -27020,7 +28392,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "prestigerepairs.com.au", true },
{ "prestigesigns.net", true },
{ "prestonandsons.com.au", true },
- { "prestonapp.com", true },
{ "prestonbrant.com", true },
{ "pretachique.com.br", true },
{ "pretix.eu", true },
@@ -27034,17 +28405,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "priceremoval.net", true },
{ "pricesniffer.co", true },
{ "prideindomination.com", true },
- { "pridetechdesign.com", true },
{ "prielwurmjaeger.de", true },
+ { "primaconsulting.net", true },
{ "primalbase.com", true },
{ "primalinea.pro", true },
{ "primates.com", true },
{ "primewho.org", true },
- { "primordialsnooze.com", true },
+ { "primoloyalty.com", true },
{ "primorus.lt", true },
{ "primotilesandbathrooms.co.uk", false },
{ "princeagency.com", true },
- { "princesparktouch.com", true },
{ "princessefoulard.com", true },
{ "principalsexam.com", true },
{ "principalship.net", true },
@@ -27059,9 +28429,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "prinice.org", true },
{ "printeknologies.com", true },
{ "printerleasing.be", true },
- { "printexpress.cloud", true },
{ "printf.de", true },
- { "printler.com", true },
{ "printmet.com", true },
{ "printus.de", true },
{ "prior-it.be", true },
@@ -27096,6 +28464,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "privacy-week.at", true },
{ "privacy.com", true },
{ "privacybadger.org", true },
+ { "privacychick.com", true },
+ { "privacychick.io", true },
+ { "privacyforjournalists.org.au", true },
{ "privacyinternational.org", true },
{ "privacyscore.org", true },
{ "privacyweek.at", true },
@@ -27115,6 +28486,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "privatewolke.com", true },
{ "privatfrei.de", true },
{ "privatpatient-krankenhaus.de", true },
+ { "privcloud.cc", true },
{ "privea.fr", true },
{ "privelust.nl", true },
{ "priverify.com", true },
@@ -27132,12 +28504,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pro-link.eu", true },
{ "pro-mile.pl", true },
{ "pro-netz.de", false },
+ { "pro-taucher.com", true },
+ { "pro-taucher.de", true },
{ "pro-wiert.pl", true },
+ { "proadvanced.com", true },
{ "proautorepairs.com.au", true },
{ "probase.ph", true },
{ "probely.com", true },
{ "probiv.biz", true },
{ "probiv.cc", true },
+ { "procarservices.com", true },
{ "procens.us", true },
{ "procensus.com", true },
{ "procert.ch", true },
@@ -27145,7 +28521,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "procharter.com", true },
{ "procinorte.net", true },
{ "proclib.org", true },
+ { "procrastinatingengineer.co.uk", true },
{ "procrastinationland.com", true },
+ { "procreditbank-kos.com", true },
{ "procreditbank.com.al", true },
{ "proctorio.com", true },
{ "prodct.info", true },
@@ -27153,6 +28531,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "prodietix.cz", true },
{ "prodigia.com", false },
{ "prodinger.com", true },
+ { "prodottogiusto.com", true },
{ "prodsim.ninja", true },
{ "producepromotions.com", true },
{ "producertools.io", true },
@@ -27196,20 +28575,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "progiscad.com", true },
{ "programistka.com", true },
{ "programlama.tk", true },
- { "programmaticmagic.com", true },
+ { "programsareproofs.com", true },
{ "programsupport300procent.com", true },
{ "progreso.pl", true },
{ "progress-linux.org", true },
{ "progress.photos", true },
{ "progressive.work", true },
{ "progressiveplanning.com", true },
+ { "progressnet.nl", true },
{ "prohrcloud.com", true },
{ "proimpact.it", true },
{ "project.supply", true },
+ { "project86fashion.com", true },
{ "projectarmy.net", false },
{ "projectblackbook.us", true },
+ { "projectborealisgitlab.site", false },
{ "projectcastle.tech", true },
{ "projectforge.org", true },
+ { "projectlinuseasttn.org", true },
{ "projectnom.com", true },
{ "projectsecretidentity.com", true },
{ "projectsecretidentity.org", true },
@@ -27218,22 +28601,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "projest.ch", true },
{ "projet-fly.ch", true },
{ "prok.pw", true },
+ { "prolan.pw", true },
{ "prolearningcentre.com", true },
+ { "prolinos.de", true },
{ "prometheanfire.net", true },
{ "prometheanfire.org", true },
{ "promisesaplus.com", true },
+ { "promo-brille.at", true },
+ { "promo-brille.ch", true },
+ { "promo-brille.de", true },
{ "promo-computers.nl", true },
{ "promo-matelas.com", true },
{ "promods.net", true },
{ "promohulp.nl", true },
{ "promolover.com", true },
{ "promopony.com", true },
+ { "promorder.ru", true },
{ "promoscuola.net", true },
+ { "promoteiq.com", true },
{ "promoterms.com.au", true },
{ "promotioncentre.co.uk", true },
{ "promozione.info", true },
- { "pronostic-king.fr", true },
{ "pronto-intervento.net", true },
+ { "prontointerventoimmediato.it", true },
{ "prontossl.com", true },
{ "proobec.cz", true },
{ "proofwiki.org", true },
@@ -27246,6 +28636,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "properticons.com", true },
{ "property-catalogue.eu", true },
{ "propertygroup.pl", true },
+ { "propertyinside.id", true },
{ "propertyone.mk", true },
{ "prophiler.de", true },
{ "propipesystem.com", true },
@@ -27254,17 +28645,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "proprietairesmaisons.fr", true },
{ "propseller.com", true },
{ "proseandleprechauns.com", true },
+ { "prosharp.com.au", true },
{ "prospanek.cz", true },
+ { "prosperfit.com", true },
{ "prosperontheweb.com", true },
{ "prospo.co", true },
- { "prostohobby.ru", true },
- { "prostoporno.net", true },
{ "prostoporno.sexy", true },
{ "prostye-recepty.com", true },
{ "prosurveillancegear.com", true },
- { "prot.ch", true },
+ { "prot.ch", false },
+ { "protech.ge", true },
+ { "protectedreport.com", true },
{ "protectem.de", true },
{ "protectoraanimalesalicante.org", true },
+ { "protectr.de", true },
{ "protege.moi", true },
{ "protegetudescanso.com", true },
{ "protein-riegel-test.de", true },
@@ -27284,16 +28678,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "proust.media", false },
{ "proustmedia.de", false },
{ "provectus.de", true },
+ { "proveits.me", false },
{ "provence-appartements.com", true },
+ { "providencecmc.com", true },
{ "providerlijst.com", true },
{ "providerlijst.nl", true },
{ "provision-isr.nl", true },
- { "provisionircd.tk", true },
{ "provitec.com", true },
{ "provitec.de", true },
{ "provokator.co.il", true },
{ "prowebcenter.com", true },
{ "prowise.com", true },
+ { "prowise.me", true },
{ "proximityradio.fr", true },
{ "proxybay.bz", true },
{ "proxybay.co", true },
@@ -27303,9 +28699,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "proxybay.tv", true },
{ "proxyportal.eu", true },
{ "proxyportal.net", true },
- { "proymaganadera.com", true },
{ "prpferrara.it", true },
{ "prplz.io", true },
+ { "prpr.cloud", true },
{ "prt.in.th", true },
{ "prtimes.com", true },
{ "prtpe.com", true },
@@ -27314,6 +28710,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pruma.com.br", true },
{ "prvikvadrat.hr", true },
{ "prylarprylar.se", true },
+ { "prynhawn.com", true },
+ { "prynhawn.net", true },
+ { "prynhawn.org", true },
{ "pryspry.com", true },
{ "prytkov.com", true },
{ "przemas.pl", true },
@@ -27329,6 +28728,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "psbarrett.com", true },
{ "psc.gov", true },
{ "pschierl.com", true },
+ { "pscp.tv", true },
{ "pscr.gov", true },
{ "psdreams.com", true },
{ "psdsfn.com", true },
@@ -27336,7 +28736,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pself.net", true },
{ "pseta.ru", true },
{ "psg.bg", true },
+ { "pshostpk.com", true },
+ { "psici.eu", true },
{ "psicoexpansao.com.br", true },
+ { "psicologajanainapresotto.com.br", true },
{ "psicologasandrabernal.es", true },
{ "psicologoforensemadrid.com", true },
{ "psm.org.ph", true },
@@ -27362,18 +28765,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "psycho-lobby.com", true },
{ "psycho.space", true },
{ "psychoactive.com", true },
+ { "psychoco.net", false },
{ "psychologie-hofner.at", true },
{ "psychotherapie-kp.de", true },
{ "psydix.org", true },
{ "psylab.cc", true },
- { "psylab.re", true },
- { "psylab.vip", true },
{ "psytrance-pro.com", true },
+ { "pt-d.ru", true },
{ "pt-server.de", true },
{ "ptal.eu", true },
{ "ptbi.org.pl", true },
{ "ptbx.co", true },
{ "pterodactylus.cz", true },
+ { "ptfiber.com", true },
+ { "ptfiber.ru", true },
+ { "ptfiber.spb.ru", true },
{ "ptgoldensun.com", true },
{ "pthsec.com", true },
{ "ptm.ro", false },
@@ -27381,6 +28787,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ptrbrs.nl", true },
{ "ptrl.ws", true },
{ "ptron.org", true },
+ { "pty.gg", true },
{ "puac.de", true },
{ "pubean.com", true },
{ "pubi.me", true },
@@ -27397,11 +28804,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "publicrea.com", true },
{ "publicsuffix.org", true },
{ "publiq.space", true },
+ { "pubmire.com", true },
{ "pubreview.com.au", true },
{ "pubreviews.com", true },
{ "pucchi.net", true },
{ "pucssa.org", true },
{ "puddis.de", true },
+ { "puggan.se", true },
{ "pugovka72.ru", true },
{ "puhka.me", true },
{ "puissancemac.ch", true },
@@ -27421,11 +28830,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pupboss.com", true },
{ "puppet.pl", true },
{ "puq.moe", true },
+ { "puralps.ch", true },
{ "puravida-estate.com", true },
{ "pure-gmbh.com", true },
{ "purecabo.com", true },
- { "pureessentialoil.biz", true },
- { "pureholisticliving.me", true },
+ { "purefkh.xyz", true },
{ "pureitsolutionsllp.com", true },
{ "purelunch.co.uk", true },
{ "purevapeofficial.com", true },
@@ -27435,6 +28844,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "purplebricks.com", true },
{ "purplebricks.com.au", true },
{ "purplebricksplc.com", true },
+ { "purplegrapegames.com", true },
{ "purplemet.com", true },
{ "purplemoon.ch", true },
{ "purplemoon.mobi", true },
@@ -27447,16 +28857,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "purrfect-box.co.uk", true },
{ "purrfectboudoir.com", true },
{ "purrfectmembersclub.com", true },
+ { "pursuedtirol.com", true },
{ "puryearlaw.com", true },
{ "pusatinkubatorbayi.com", true },
{ "pushers.com.mx", true },
+ { "pushphp.com", true },
{ "pushrax.com", true },
+ { "pusichatka.ddns.net", true },
{ "put.moe", true },
{ "put.re", true },
{ "putatara.net", true },
{ "putman-it.nl", true },
{ "putney.io", true },
{ "putomani.rs", true },
+ { "putrock.be", true },
{ "puurwonengeldrop.nl", false },
{ "puxlit.net", true },
{ "puyallupnissanparts.com", true },
@@ -27472,10 +28886,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pvpcraft.ca", true },
{ "pvpctutorials.de", true },
{ "pvtschlag.com", true },
+ { "pwaresume.com", true },
{ "pwdsafe.com", true },
{ "pwe.vision", true },
+ { "pwnedpass.tk", true },
{ "pwnies.dk", true },
{ "pwolk.com", true },
+ { "pxl.cl", true },
{ "pxx.io", true },
{ "py-amf.org", true },
{ "py.search.yahoo.com", false },
@@ -27488,12 +28905,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "pypi.io", true },
{ "pypi.org", true },
{ "pypi.python.org", true },
+ { "pyramidsofchi.com", true },
+ { "pyrios.pro", true },
{ "pyrotechnologie.de", true },
{ "pysays.net", true },
{ "pyspace.org", true },
{ "python-hyper.org", true },
{ "python.org", false },
+ { "pyxo.net", true },
{ "pyzlnar.com", true },
+ { "pzpittsburgh.com", true },
{ "pzsearch.nl", true },
{ "q-inn.com", true },
{ "q-inn.nl", true },
@@ -27508,7 +28929,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "qaconstrucciones.com", true },
{ "qadmium.com", true },
{ "qambarraza.com", true },
- { "qamrulhaque.com", true },
{ "qapital.com", true },
{ "qaz.cloud", true },
{ "qbeing.info", true },
@@ -27532,29 +28952,34 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "qetesh.de", true },
{ "qetic.co.jp", true },
{ "qewc.com", true },
+ { "qgblog.org", true },
{ "qgustavor.tk", true },
{ "qhse-professionals.nl", true },
{ "qianalysis.com", true },
{ "qianqiao.me", true },
+ { "qiaohong.org", true },
{ "qicomidadeverdade.com.br", true },
{ "qifu.me", true },
- { "qifu.org.cn", true },
{ "qiliang.wang", true },
+ { "qingcao.org", true },
{ "qingpat.com", true },
{ "qingpei.me", true },
{ "qionouu.cn", true },
{ "qis.fr", true },
{ "qitarabutrans.com", true },
{ "qiuri.org", true },
- { "qiuxian.ddns.net", true },
{ "qivonline.pt", true },
{ "qiwi.be", true },
{ "qixi.biz", true },
{ "qkka.org", true },
+ { "qkmortgage.com", true },
{ "qldconservation.org.au", true },
{ "qldformulaford.org", true },
+ { "qledtech.com", false },
+ { "qlix.pl", true },
{ "qlrace.com", false },
{ "qm-marzahnnordwest.de", true },
+ { "qnq.moe", true },
{ "qochealth.com", true },
{ "qoml.net", true },
{ "qonto.eu", true },
@@ -27565,8 +28990,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "qq52o.me", true },
{ "qqrss.com", true },
{ "qqvips.com", true },
- { "qqvrsmart.cn", true },
{ "qr-city.org", true },
+ { "qr.cl", true },
+ { "qrbird.com", true },
{ "qrcontagion.com", true },
{ "qrpth.eu", true },
{ "qruiser.com", true },
@@ -27574,13 +29000,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "qtacairsoft.com", true },
{ "qtl.me", true },
{ "qtn.net", true },
+ { "qto.com", true },
{ "qto.net", true },
+ { "qto.org", true },
{ "qtpass.org", true },
{ "qtpower.co.uk", true },
{ "qtpower.net", true },
{ "qtpower.org", true },
{ "qtvr.com", true },
- { "qtxh.net", false },
+ { "qtxh.net", true },
{ "quackerswaterproofing.com", true },
{ "quaedam.org", true },
{ "quaggan.co", true },
@@ -27589,8 +29017,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "quality-life.gr", true },
{ "qualityedgarsolutions.com", true },
{ "qualityhomesystems.com", true },
+ { "qualityhvacservices.com", true },
{ "qualityofcourse.com", true },
{ "qualitypropertycare.co.uk", true },
+ { "qualpay.biz", true },
{ "qualtrics.com", true },
{ "quant-labs.de", true },
{ "quantaloupe.tech", true },
@@ -27602,13 +29032,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "quantumfurball.net", true },
{ "quantumpair.net", true },
{ "quantumwebs.co", true },
- { "quanwuji.com", true },
{ "quanyin.eu.org", true },
{ "quareal.ru", true },
{ "quarkdose.de", true },
{ "quarterfull.com", true },
{ "quartix.com", true },
{ "quartzclinical.com", true },
+ { "quarus.net", true },
{ "quasarelectronics.co.uk", true },
{ "quasiproxy.com", true },
{ "quasseldroid.info", true },
@@ -27617,17 +29047,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "qubes-os.org", true },
{ "qubyte.codes", true },
{ "quchao.com", true },
+ { "queene.eu", true },
+ { "queens.lgbt", true },
{ "queensrdapartments.com.au", true },
{ "queer.party", true },
{ "queercinema.ch", true },
{ "queercoders.com", false },
+ { "queextensiones.com", true },
{ "quehacerencusco.com", true },
+ { "quelle.at", true },
+ { "quelle.ch", true },
+ { "quelle.de", true },
{ "quelleformation.net", true },
{ "quemeloquitan.com", true },
{ "queminventou.com.br", true },
{ "quemmeliga.com", true },
{ "quenotejodan.cl", true },
{ "quentinchevre.ch", true },
+ { "queo.com.co", true },
{ "quera.ir", true },
{ "querkommentar.de", true },
{ "query-massage.com", true },
@@ -27652,32 +29089,35 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "quire.io", true },
{ "quisido.com", true },
{ "quitarlasmanchasde.com", true },
+ { "quitimes.com", true },
{ "quizogames.com", true },
{ "qul.link", true },
{ "quli.nl", false },
{ "qunzi.la", true },
{ "quocdesign.ch", true },
+ { "quoteidiot.com", true },
{ "quotev.com", true },
+ { "quovadisaustria.com", true },
{ "quppa.net", true },
{ "quuz.org", true },
+ { "qvg.company", true },
{ "qvggroup.com", true },
{ "qvi.st", true },
{ "qvitoo.com", true },
{ "qwans.nl", true },
{ "qwant.com", true },
{ "qwant.fr", true },
- { "qwaser.fr", true },
{ "qwdqwd.de", true },
{ "qwe7002.com", true },
{ "qweepi.de", false },
{ "qwertee.com", true },
{ "qwerty.work", true },
- { "qwertyatom100.me", true },
{ "qwikdash.com", true },
{ "qwq.moe", true },
{ "qx.fi", true },
{ "qx.se", true },
{ "qxy.ch", true },
+ { "r-ay.cn", true },
{ "r-rwebdesign.com", true },
{ "r-t-b.fr", true },
{ "r0t.co", true },
@@ -27685,11 +29125,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "r1ch.net", true },
{ "r2d2pc.com", true },
{ "r33.space", true },
+ { "r3bl.blog", true },
+ { "r3bl.me", true },
{ "r3nt3r.com", true },
{ "r3s1stanc3.me", true },
+ { "r40.us", true },
{ "r6-team.ru", true },
+ { "r7.com.au", true },
{ "r7h.at", true },
{ "r811.de", true },
+ { "ra-joergensen.de", true },
{ "ra-micro-koeln.de", true },
{ "ra-schaal.de", false },
{ "ra.co.ke", true },
@@ -27699,8 +29144,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rabbit.wales", false },
{ "rabbitfinance.com", true },
{ "rabica.de", true },
+ { "rabotaescort.com", true },
{ "rabynska.eu", true },
{ "raccoltarifiuti.com", true },
+ { "racdek.com", true },
+ { "racdek.nl", true },
{ "racermaster.xyz", true },
{ "racesport.nl", false },
{ "raceviewcycles.com", true },
@@ -27716,9 +29164,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rackerlab.com", false },
{ "raclet.co.uk", true },
{ "raconconsulting.co.uk", true },
+ { "racoo.net", true },
+ { "racozo.com", true },
{ "racunovodstvo-prina.si", true },
{ "radar.sx", true },
{ "radaravia.ru", true },
+ { "radarnext.com", true },
{ "radartatska.se", true },
{ "radartek.com", true },
{ "radcube.hu", true },
@@ -27728,6 +29179,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "radicaloptimism.org", true },
{ "radicalsub.com.br", true },
{ "radins.com", true },
+ { "radio-pulsar.eu", true },
{ "radio-utopie.de", true },
{ "radio1.ie", true },
{ "radioafibra.com.br", true },
@@ -27739,12 +29191,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "radionicabg.com", true },
{ "radiopolarniki.spb.ru", true },
{ "radiormi.com", true },
+ { "radiorsvp.com", false },
{ "radiosendungen.com", true },
{ "radis-adopt.com", true },
{ "radiumtree.com", true },
+ { "radom-pack.pl", true },
{ "radondetectionandcontrol.com", true },
{ "radreisetraumtreibstoff.de", true },
- { "radtke.bayern", true },
{ "radyabkhodro.net", true },
{ "radyn.com", true },
{ "raeu.me", true },
@@ -27752,6 +29205,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rafaelmagalhaesweb.com", true },
{ "rafey.xyz", true },
{ "raffaellaosti.com", true },
+ { "raft.pub", true },
{ "rafting-japan.com", true },
{ "ragasto.nl", true },
{ "rage-overload.ch", true },
@@ -27759,17 +29213,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rage4.com", true },
{ "raghavdua.in", true },
{ "rahulpnath.com", true },
- { "rai-co.net", true },
- { "raidensnakesden.co.uk", true },
- { "raidensnakesden.com", true },
- { "raidensnakesden.net", true },
{ "raidstone.net", true },
- { "raiffeisen-kosovo.com", true },
+ { "rail-o-rama.nl", true },
+ { "rail24.nl", true },
+ { "rail360.nl", true },
+ { "railbird.nl", true },
{ "railgun.ac", true },
{ "railjob.cn", true },
+ { "railorama.nl", true },
+ { "railpassie.nl", true },
{ "railtoo.com", true },
+ { "railvideo.co.uk", true },
+ { "railvideo.net", true },
+ { "railvideo.nl", true },
{ "railwaytech.net", true },
- { "railyardurgentcare.com", true },
{ "raimixmotoparts.com.br", true },
{ "rainbowbay.org", true },
{ "rainbowinflatables.co.uk", true },
@@ -27787,10 +29244,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rajivshah.co.uk", true },
{ "rajyogarishikesh.com", true },
{ "rak-business-service.com", true },
- { "rakugaki.cn", true },
{ "rakugokai.net", true },
{ "ralf-huebscher.de", true },
{ "ralfs-zusizone.de", true },
+ { "ralimtek.com", false },
{ "rally-base.com", true },
{ "rally-base.cz", true },
{ "rally-base.eu", true },
@@ -27804,12 +29261,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "raltha.com", true },
{ "ram-it.nl", true },
{ "ram.nl", true },
- { "ramatola.uk", true },
- { "rambii.de", true },
- { "ramblingrf.tech", true },
{ "rambo.codes", true },
+ { "ramitmittal.com", true },
{ "rammstein-portugal.com", true },
{ "ramrecha.com", true },
+ { "ramsor-gaming.de", true },
{ "randc.org", true },
{ "random-samplings.org", true },
{ "randomadversary.com", true },
@@ -27818,7 +29274,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "randomdysfunctions.com", true },
{ "randomkoalafacts.com", true },
{ "randomprecision.co.uk", true },
- { "randomquotesapp.com", true },
+ { "ranfurlychambers.co.nz", true },
{ "rangde.org", true },
{ "rangercollege.edu", true },
{ "rangsmo.se", true },
@@ -27826,7 +29282,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ranking-deli.jp", true },
{ "ranktopay.com", true },
{ "ranson.com.au", true },
- { "rantanda.com", true },
{ "rante.com", true },
{ "ranyeh.co", true },
{ "ranyeh.com", true },
@@ -27838,6 +29293,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "raphael.li", true },
{ "raphaeladdile.com", true },
{ "raphaelcasazza.ch", true },
+ { "raphaelmoura.ddns.net", true },
{ "raphrfg.com", true },
{ "rapidapp.io", true },
{ "rapidhubs.com", true },
@@ -27854,18 +29310,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rascalscastles.co.uk", true },
{ "rascalscastlesdoncaster.co.uk", true },
{ "rasebo.ro", true },
+ { "raspberryultradrops.com", true },
{ "raspii.tech", true },
- { "rastreie.net", true },
{ "rasty.cz", true },
{ "ratd.net", true },
{ "ratebridge.com", true },
{ "rathbonesonline.com", true },
{ "rathgeb.org", true },
+ { "ratinq.co", true },
{ "rationalcreation.com", true },
{ "rationalism.com", true },
{ "rationalops.com", true },
{ "rattenkot.io", true },
{ "raulrivero.es", true },
+ { "rault.io", true },
{ "raum4224.de", true },
{ "rauros.net", true },
{ "rautelow.de", true },
@@ -27879,6 +29337,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "raviparekh.co.uk", true },
{ "ravis.org", true },
{ "rawdutch.nl", true },
+ { "rawinfosec.com", true },
{ "rawsec.net", true },
{ "raxion.cf", true },
{ "raxion.tk", true },
@@ -27899,6 +29358,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "razeen.me", true },
{ "razeencheng.com", true },
{ "raziskovalec-resnice.com", true },
+ { "rbcservicehub-uat.azurewebsites.net", true },
{ "rbensch.com", true },
{ "rbflote.lv", true },
{ "rbltracker.com", true },
@@ -27914,7 +29374,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rcd.cz", true },
{ "rcdocuments.com", true },
{ "rchrdsn.uk", true },
+ { "rcifsgapinsurance.co.uk", true },
{ "rclsm.net", true },
+ { "rcmlinx.com", true },
+ { "rcmpsplib.com", true },
{ "rcmurphy.com", true },
{ "rcnitrotalk.com", true },
{ "rcorporation.be", true },
@@ -27924,10 +29387,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rct.sk", true },
{ "rctalk.com", true },
{ "rdfproject.it", true },
+ { "rdjb2b.com", true },
{ "rdl.at", false },
{ "rdmrotterdam.nl", true },
{ "rdmtaxservice.com", true },
{ "rdns.cc", true },
+ { "rdplumbingsolutions.com.au", true },
{ "rdv-prefecture.com", true },
{ "rdwh.tech", true },
{ "re-curi.com", true },
@@ -27938,6 +29403,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "react-db.com", true },
{ "reactivarte.es", true },
{ "reactive-press.com", true },
+ { "reactpwa.com", true },
{ "read.sc", true },
{ "reades.co.uk", true },
{ "readheadcopywriting.com", true },
@@ -27946,8 +29412,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "readingrats.de", true },
{ "readonly.de", true },
{ "readouble.com", false },
- { "readtldr.com", true },
{ "readysell.net", true },
+ { "readytobattle.net", true },
{ "readytongue.com", true },
{ "readytowear.es", true },
{ "reaganlibrary.gov", true },
@@ -27956,7 +29422,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "realcapoeira.ru", true },
{ "realestateonehowell.com", true },
{ "realestateradioshow.com", true },
- { "realfamilyincest.com", true },
{ "realfreedom.city", true },
{ "realgarant-shop.de", false },
{ "realhorsegirls.net", true },
@@ -27966,14 +29431,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "reality0ne.com", false },
{ "realitycrazy.com", true },
{ "reallifeforums.com", true },
- { "realloc.me", true },
{ "really-simple-plugins.com", true },
{ "really-simple-ssl.com", true },
{ "really.ai", true },
+ { "reallytrusted.com", true },
{ "realme.govt.nz", true },
{ "realmofespionage.xyz", true },
- { "realoteam.ddns.net", true },
- { "realraghavgupta.com", true },
+ { "realum.com", true },
+ { "realum.de", true },
+ { "realum.eu", true },
+ { "realum.net", true },
{ "realvnc.help", true },
{ "realwaycome.com", true },
{ "realwildart.com", true },
@@ -27983,7 +29450,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "reath.me", true },
{ "reaven.nl", true },
{ "rebane2001.com", true },
+ { "rebeagle.com", true },
{ "rebelessex.com", true },
+ { "rebelonline.nl", true },
{ "rebelrebel.com.au", true },
{ "rebelz.se", true },
{ "rebirthia.me", true },
@@ -27993,13 +29462,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "recantoshop.com", true },
{ "recantoshop.com.br", true },
{ "recapp.ch", true },
+ { "recaptcha-demo.appspot.com", true },
{ "receiliart.com", true },
+ { "receptionpoint.com", true },
{ "receptionsbook.com", true },
{ "recepty.eu", false },
{ "recetasdecocinaideal.com", true },
{ "rechenknaecht.de", true },
- { "recht-freundlich.de", true },
- { "rechtenliteratuurleiden.nl", false },
{ "rechtsanwaeltin-vollmer.de", true },
{ "rechtsanwalt-koeppen-feucht.de", true },
{ "rechtschreibpruefung24.de", true },
@@ -28013,6 +29482,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "recmon.hu", true },
{ "reco-studio.de", true },
{ "recolic.net", true },
+ { "recommended.reviews", true },
{ "recon-networks.com", true },
{ "recordeuropa.com", false },
{ "recoveringspirit.com", true },
@@ -28076,10 +29546,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "redlinelap.com", true },
{ "redlink.de", true },
{ "redmore.me", true },
- { "redneck-gaming.de", true },
{ "redneragenturen.org", true },
{ "rednsx.org", true },
- { "redporno.cz", true },
{ "redprice.by", true },
{ "redshield.co", true },
{ "redshiftlabs.com.au", true },
@@ -28089,12 +29557,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "redteam-pentesting.de", true },
{ "redwaterhost.com", true },
{ "redweek.com", true },
+ { "redwoodpaddle.es", true },
+ { "redwoodpaddle.pt", true },
{ "redzurl.com", false },
{ "reed-sensor.com", true },
{ "reedloden.com", true },
{ "reegle.com", true },
{ "reepay.com", true },
{ "rees-carter.net", true },
+ { "reesmichael1.com", true },
{ "reevaappliances.co.uk", true },
{ "reevoo.com", true },
{ "reevu.net", true },
@@ -28102,16 +29573,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "referdell.com", true },
{ "refficience.com", true },
{ "refill-roboter.de", true },
+ { "refinansiering.no", true },
{ "reflectivity.io", true },
{ "reflectores.net", true },
+ { "refletindosaude.com.br", true },
{ "reflexions.co", true },
{ "reflexive-engineering.com", true },
{ "reflexive.xyz", true },
{ "refood-cascaiscpr.eu", true },
- { "reforesttheplanet.com", true },
{ "refresh-media.nl", true },
{ "refreshliving.us", true },
{ "refuelcollective.com", true },
+ { "refuelcreative.com.au", true },
{ "refundo.cz", true },
{ "refundo.sk", true },
{ "regain.us", true },
@@ -28130,12 +29603,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "regimecellulite.com", true },
{ "regiobeveland.nl", true },
{ "regionalbasementandcrawlspacerepair.com", true },
- { "regionalcoalition.org", true },
{ "regiosalland.nl", true },
{ "regiovertrieb.de", false },
{ "regis.tech", true },
{ "regisearch.co.uk", true },
- { "register.gov.uk", true },
{ "registerex.me", true },
{ "registerforevent.co.uk", true },
{ "registerra.nl", true },
@@ -28149,6 +29620,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "regnr.info", true },
{ "regolithmedia.com", true },
{ "regraph.de", true },
+ { "regresionavidaspasadas.com", true },
+ { "regularflolloping.com", true },
{ "regulations.gov", true },
{ "reha-honpo.jp", true },
{ "rehabili-shigoto.com", true },
@@ -28171,7 +29644,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "reimann.me", true },
{ "reimers.de", true },
{ "rein.kr", true },
- { "reinaertvandecruys.com", true },
{ "reinaldudras.ee", true },
{ "reinaldudrasfamily.ee", true },
{ "reinencaressa.be", true },
@@ -28187,43 +29659,53 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "reisenbauer.ee", true },
{ "reiseversicherung-werner-hahn.de", true },
{ "reishunger.de", true },
+ { "reisslittle.com", true },
{ "rejahrehim.com", true },
{ "rejects.email", true },
{ "rejsehuskelisten.dk", true },
- { "rejushiiplotter.ru", true },
{ "rekisuta.com", true },
{ "reklamjog.hu", true },
{ "rekorsanat.com.tr", true },
+ { "rekyou.com", false },
{ "relates.link", true },
{ "relax.hn", true },
{ "relaxdom.net", true },
+ { "relaxhavefun.com", true },
{ "relaxpointhyncice.cz", true },
{ "relaybox.io", true },
{ "release-monitoring.org", true },
{ "releasetimes.io", true },
{ "reliancebank.bank", true },
{ "reliant3sixty.com", true },
- { "religiousforums.com", true },
{ "relocatefeds.gov", false },
{ "relojeriajoyeria.com", true },
+ { "relojes-online.com", true },
+ { "relojesseiko.es", true },
{ "relvan.com", true },
{ "rem0te.net", true },
+ { "remaimodern.org", true },
{ "remambo.jp", true },
+ { "remax.at", true },
{ "remedi.tokyo", true },
+ { "remedionaturales.com", true },
{ "remedioparaherpes.com", true },
{ "remedios-caserospara.com", true },
{ "remedioscaserosparalacistitis.com", true },
+ { "remedioskaseros.com", false },
{ "remejeanne.com", true },
{ "rememberthemilk.com", false },
{ "remi-saurel.com", true },
+ { "remilner.co.uk", true },
+ { "remini.cz", true },
+ { "remirampin.com", true },
{ "remissan.com", true },
{ "remitatm.com", false },
{ "remonti.info", true },
{ "remote.so", true },
+ { "remoteham.com", true },
{ "remoteutilities.com", true },
{ "removalcellulite.com", true },
{ "removedrepo.com", true },
- { "remrol.ru", true },
{ "remszeitung.de", true },
{ "renaissanceplasticsurgery.net", true },
{ "renascentia.asia", true },
@@ -28233,6 +29715,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rene-schwarz.com", true },
{ "rene-stolp.de", true },
{ "renearends.nl", true },
+ { "reneclemens.nl", true },
+ { "renedekoeijer.com", true },
+ { "renedekoeijer.nl", true },
{ "reneleu.ch", true },
{ "renem.net", false },
{ "renemayrhofer.com", true },
@@ -28263,12 +29748,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "repaik.com", true },
{ "repair.by", true },
{ "repaper.org", true },
- { "reparo.pe", true },
{ "repaxan.com", true },
{ "repkord.com", true },
{ "replicaswiss.nl", true },
{ "repology.org", true },
{ "report-uri.com", true },
+ { "report2psb.online", true },
{ "reporting.gov", true },
{ "reproduciblescience.org", true },
{ "reproductive-revolution.com", true },
@@ -28277,14 +29762,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "reprogrammingpredators.com", true },
{ "reprozip.org", true },
{ "repsomelt.com", true },
- { "reptilauksjonen.no", true },
{ "reptrax.com", true },
{ "republic.gr", true },
{ "republictelecom.net", true },
{ "republique.org", true },
{ "repugnant-conclusion.com", true },
{ "repugnantconclusion.com", true },
- { "repustate.com", true },
+ { "reputationweaver.com", true },
{ "reqrut.net", true },
{ "request-trent.com", true },
{ "requestr.co.uk", true },
@@ -28302,12 +29786,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "resfriatech.com.br", true },
{ "residence-simoncelli.com", true },
{ "residentiallocksmithsanantoniotx.com", true },
+ { "resine.roma.it", true },
{ "resist.ca", true },
{ "resistav.com", true },
{ "resolvefa.co.uk", true },
{ "resolvefa.com", true },
{ "resolving.com", true },
{ "resoplus.ch", true },
+ { "resort-islands.net", true },
{ "resortohshima.com", true },
{ "resourceconnect.com", true },
{ "resourceguruapp.com", true },
@@ -28321,7 +29807,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "responsive-shop.com", true },
{ "responsivepaper.com", true },
{ "respostas.com.br", true },
- { "ressl.ch", true },
{ "restaurant-oregano.de", true },
{ "restaurant-rosengarten.at", true },
{ "restaurantguru.com", true },
@@ -28335,7 +29820,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "restoruns.xyz", true },
{ "restrealitaet.de", true },
{ "restrito.org", true },
+ { "resultsatretail.com", true },
{ "resursedigitale.ro", true },
+ { "retcor.net", true },
{ "retefarmaciecostadamalfi.it", true },
{ "retetenoi.net", true },
{ "retetop95.it", true },
@@ -28344,8 +29831,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "retmig.dk", true },
{ "reto.ch", true },
{ "reto.com", true },
- { "reto.io", true },
- { "retogroup.com", true },
{ "retokromer.ch", true },
{ "retractableawningssydney.com.au", true },
{ "retro.rocks", true },
@@ -28355,6 +29840,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "retrocdn.net", true },
{ "retrofitlab.com", true },
{ "retroity.net", true },
+ { "retrojar.top", true },
{ "retronet.nl", true },
{ "retroroundup.com", true },
{ "retrotracks.net", true },
@@ -28363,12 +29849,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "reucon.com", true },
{ "reulitz.de", true },
{ "reuna.me", true },
- { "reussir-ma-fete.fr", true },
{ "reussirsavie.info", true },
{ "reuter-profishop.de", true },
{ "reuter-shop.com", true },
{ "reuter.de", true },
{ "revamed.com", false },
+ { "revapost.fr", true },
{ "revayd.net", true },
{ "revensoftware.com", true },
{ "reverencestudios.com", true },
@@ -28380,6 +29866,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "review.jp", true },
{ "reviewninja.net", true },
{ "reviews.anime.my", false },
+ { "reviewspedia.org", true },
{ "revirt.global", true },
{ "revision.co.zw", true },
{ "revisionnotes.xyz", true },
@@ -28391,9 +29878,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "revthefox.co.uk", true },
{ "rewardingexcellence.com", true },
{ "rewrite3.com", true },
+ { "rewtherealtor.com", true },
{ "rex.tc", true },
{ "rexdf.net", true },
{ "rexskz.info", true },
+ { "reyna.cc", true },
{ "rezept-planer.de", true },
{ "rezexpert.com", true },
{ "rezosup.net", true },
@@ -28401,12 +29890,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rezultant.ru", true },
{ "rfeif.org", true },
{ "rftoon.com", true },
- { "rfxanalyst.com", true },
{ "rga.sh", true },
{ "rgavmf.ru", true },
{ "rgbinnovation.com", true },
{ "rgcomportement.fr", true },
- { "rgservers.com", true },
{ "rhaegal.me", true },
{ "rhd-instruments.com", true },
{ "rhd-instruments.de", true },
@@ -28423,35 +29910,38 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rhinoceroses.org", true },
{ "rhnet.at", true },
{ "rhodenmanorcattery.co.uk", true },
- { "rhodes.ml", true },
{ "rhodri.io", true },
{ "rhowell.io", true },
{ "rhymeswithmogul.com", true },
{ "rhymix.org", true },
{ "rhynl.io", true },
{ "riajenaka.com", true },
+ { "riaki.net", true },
{ "rial.space", true },
{ "ribs.com", true },
+ { "ricardo.nu", true },
{ "ricardobalk.nl", true },
{ "ricaud.me", true },
{ "riccardopiccioni.it", true },
{ "riccy.org", true },
{ "riceadvice.info", true },
+ { "richadams.me", true },
+ { "richardbloomfield.blog", true },
{ "richardcrosby.co.uk", true },
+ { "richardharpur.com", true },
{ "richardhering.de", true },
- { "richardhicks.us", true },
{ "richardjgreen.net", true },
{ "richardlangworth.com", true },
{ "richardlugten.nl", true },
+ { "richardramos.me", true },
{ "richardrblocker.net", true },
+ { "richardson.cam", true },
{ "richardson.engineering", true },
{ "richardson.pictures", true },
{ "richardson.software", true },
{ "richardson.systems", true },
{ "richardwarrender.com", true },
{ "richie.fi", true },
- { "richie.link", true },
- { "richmtdriver.com", true },
{ "richonrails.com", true },
{ "ricketyspace.net", true },
{ "ricki-z.com", true },
@@ -28464,16 +29954,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rico.ovh", true },
{ "ricobaldegger.ch", true },
{ "ricochet.im", true },
+ { "ricoydesign.com", true },
{ "ricozienke.de", true },
{ "riddims.co", true },
{ "ride-up.com", true },
{ "rideyourdamn.bike", true },
+ { "ridgelandchurch.org", true },
{ "ridingboutique.de", true },
{ "riederle.com", true },
{ "riemer.ml", true },
{ "riesenweber.id.au", true },
{ "riesheating.com", true },
{ "riffreporter.de", true },
+ { "rifkivalkry.net", true },
{ "rift.pictures", true },
{ "rigabeerbike.com", true },
{ "rigabeerbike.lv", true },
@@ -28495,18 +29988,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rileyevans.co.uk", true },
{ "rimax.vn", true },
{ "rimcountrymuseum.org", true },
+ { "rimediogiusto.com", true },
{ "rimeto.io", true },
{ "rimo.site", true },
+ { "rimorrecherche.nl", true },
{ "ring.com", true },
{ "ringingliberty.com", true },
{ "ringjewellery.co.uk", true },
{ "rinvex.com", true },
{ "rio-weimar.de", true },
- { "rioshop.com.br", true },
+ { "rioxmarketing.com", true },
{ "rip-sport.cz", true },
{ "ripaton.fr", true },
{ "ripmixmake.org", true },
{ "ripple.com", true },
+ { "riqy86.nl", true },
+ { "ris.fi", true },
{ "risada.nl", true },
{ "risaphuketproperty.com", true },
{ "riscascape.net", true },
@@ -28514,7 +30011,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rise-technologies.com", true },
{ "riseup.net", true },
{ "rishikeshyoga.in", true },
- { "risi-china.com", true },
{ "risiinfo.com", true },
{ "riskmitigation.ch", true },
{ "risparmiare.info", true },
@@ -28523,6 +30019,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ristorantefattoamano.it", true },
{ "ristoviitanen.fi", true },
{ "ristrutturazioneappartamento.roma.it", true },
+ { "rit.space", true },
{ "rittau.biz", true },
{ "rittau.org", true },
{ "ritzlux.com.tw", true },
@@ -28537,6 +30034,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "riverviewcourtapts.com", true },
{ "riverweb.gr", true },
{ "rivierasaints.ch", true },
+ { "rivoflor.it", true },
{ "rivus.net", true },
{ "rivy.org", true },
{ "rix.ninja", true },
@@ -28548,7 +30046,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rj-onderneemt.nl", true },
{ "rkfp.cz", true },
{ "rkkhok.hu", true },
- { "rkmedia.no", true },
+ { "rkmns.edu.in", true },
{ "rlalique.com", true },
{ "rld.org", true },
{ "rlds.ch", true },
@@ -28559,15 +30057,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rm-it.de", true },
{ "rmb.li", true },
{ "rmcbs.de", true },
+ { "rmeuropean.com", true },
{ "rmf.io", true },
- { "rmit.me", true },
- { "rmk.si", true },
{ "rmm-i.com", true },
{ "rmmanfredi.com", true },
{ "rmpsolution.de", true },
{ "rmrig.org", true },
{ "rms.sexy", true },
- { "rmsides.com", true },
{ "rmstudio.tw", true },
{ "rmsupply.nl", true },
{ "rn29.me", true },
@@ -28578,17 +30074,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rnt.cl", true },
{ "ro.search.yahoo.com", false },
{ "roaddoc.de", true },
- { "roadguard.nl", true },
+ { "roadguard.nl", false },
{ "roadtopgm.com", true },
{ "roams.es", true },
{ "roave.com", true },
- { "rob.uk.com", true },
{ "rob006.net", true },
{ "robandjanine.com", true },
{ "robbertt.com", false },
{ "robdavidson.network", true },
{ "robert-flynn.de", true },
{ "robertattfield.com", true },
+ { "robertayamashita.com", true },
+ { "robertayamashita.com.br", true },
+ { "robertbln.com", true },
{ "robertg.me", true },
{ "robertglastra.com", true },
{ "roberthurlbut.com", true },
@@ -28613,13 +30111,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "robinlinden.eu", true },
{ "robinsonstrategy.com", true },
{ "robinsonyu.com", true },
+ { "robinwill.de", true },
{ "robinwinslow.uk", true },
- { "robjager-fotografie.nl", true },
{ "robocop.no", true },
{ "robodeidentidad.gov", true },
{ "robohash.org", true },
{ "robokits.co.in", true },
{ "robot.car", true },
+ { "robot.works", true },
{ "robotattack.org", true },
{ "roboth.am", true },
{ "robotham.org", true },
@@ -28634,6 +30133,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "robu.in", true },
{ "robud.info", true },
{ "robustac.com", true },
+ { "roc.net.au", true },
+ { "rochakhand-knitcraft.com.np", true },
{ "rocka.me", true },
{ "rockagogo.com", true },
{ "rockbankland.com.au", true },
@@ -28644,6 +30145,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rocketevents.com.au", true },
{ "rocketgnomes.com", true },
{ "rocketr.net", true },
+ { "rocketsandtutus.com", true },
{ "rockfax.com", true },
{ "rockhounds.co.za", true },
{ "rockinronniescastles.co.uk", true },
@@ -28664,13 +30166,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rodinnebyvanie.eu", true },
{ "rodinneodpoledne2018.cz", true },
{ "rodolfo.gs", true },
- { "rodomonte.org", true },
{ "rodrigocarvalho.blog.br", true },
{ "rody-design.com", true },
{ "rodzina-kupiec.eu.org", true },
{ "roeckx.be", true },
- { "roeitijd.nl", true },
- { "roelbazuin.com", true },
+ { "roeitijd.nl", false },
{ "roeldevries.me", true },
{ "roeleveld.nl", true },
{ "roelhollander.eu", true },
@@ -28692,14 +30192,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rogoff.xyz", true },
{ "rogue-e.xyz", true },
{ "roguefinancial.com", true },
- { "roguefortgame.com", true },
{ "roguenation.space", true },
{ "roguenetworks.me", true },
{ "roguesignal.net", true },
{ "roguetechhub.org", true },
- { "rohanbassett.com", true },
{ "rohedaten.de", true },
{ "rohitagr.com", true },
+ { "rohlik.cz", true },
{ "rointe.online", true },
{ "roiscroll.com", true },
{ "roka9.de", true },
@@ -28708,8 +30207,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "roksolana.be", true },
{ "rokudenashi.de", true },
{ "roland.io", true },
- { "rolandreed.cn", true },
+ { "rolandinsh.com", true },
{ "rolandszabo.com", true },
+ { "roleplayhome.com", true },
{ "roligprylar.se", true },
{ "rollatorweb.nl", true },
{ "rollercoasteritalia.it", true },
@@ -28720,6 +30220,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "roma-servizi.it", true },
{ "romab.com", true },
{ "roman-pavlik.cz", true },
+ { "romancloud.com", true },
{ "romande-entretien.ch", true },
{ "romanmichel.de", true },
{ "romano.guru", true },
@@ -28732,23 +30233,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "romanticsexshopguatemala.com", true },
{ "romanticvillas.com.au", false },
{ "romapa.com", true },
- { "romar-bos.nl", true },
{ "romarin.es", true },
{ "romaservicegroup.it", true },
{ "romatrip.it", true },
{ "rome.dating", true },
{ "rommelwood.de", true },
- { "roms.fun", true },
{ "ronanrbr.com", true },
{ "rondommen.nl", true },
{ "rondouin.fr", true },
{ "rondreis-amerika.be", true },
{ "rondreis-schotland.nl", true },
{ "roninf.ch", true },
+ { "roninitconsulting.com", true },
{ "ronniegane.kiwi", true },
{ "ronnylindner.de", true },
{ "ronomon.com", true },
+ { "ronzertnert.xyz", true },
{ "roodfruit.studio", true },
+ { "roodhealth.co.uk", true },
{ "roof.ai", false },
{ "roofingomaha.com", true },
{ "roofsandbasements.com", true },
@@ -28774,6 +30276,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rootedlifemontessori.com", true },
{ "rootkea.me", true },
{ "rootlair.com", true },
+ { "rootonline.de", true },
{ "roots-example-project.com", true },
{ "roots.io", true },
{ "rootsandrain.com", true },
@@ -28783,6 +30286,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rootswitch.com", true },
{ "rootusers.com", true },
{ "ropd.info", true },
+ { "roromendut.online", true },
{ "roryneville.com", true },
{ "rosabellas.co.uk", true },
{ "rosalindturner.co.uk", true },
@@ -28804,11 +30308,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rosetiger.life", true },
{ "rosevillefacialplasticsurgery.com", true },
{ "roslynpad.net", true },
+ { "rosnertexte.at", true },
{ "rosset.me", true },
{ "rosset.net", true },
{ "rossfrancis.co.uk", true },
- { "rosslug.org.uk", true },
{ "rossmacphee.com", true },
+ { "rostclub.ro", true },
{ "rostov-avia.ru", true },
{ "rot47.net", true },
{ "rotek.at", true },
@@ -28828,6 +30333,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rounda.it", true },
{ "roundcube.mayfirst.org", false },
{ "roundrock-locksmith.com", true },
+ { "roundtablekzn.co.za", true },
{ "roussos.cc", true },
{ "rout0r.org", true },
{ "route-wird-berechnet.de", true },
@@ -28843,6 +30349,57 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "roxiesbouncycastlehire.co.uk", true },
{ "roxtri.cz", true },
{ "royal-rangers.de", true },
+ { "royal806.com", true },
+ { "royal810.com", true },
+ { "royal811.com", true },
+ { "royal812.com", true },
+ { "royal813.com", true },
+ { "royal816.com", true },
+ { "royal817.com", true },
+ { "royal818.com", true },
+ { "royal830.com", true },
+ { "royal833.com", true },
+ { "royal850.com", true },
+ { "royal851.com", true },
+ { "royal852.com", true },
+ { "royal853.com", true },
+ { "royal855.com", true },
+ { "royal856.com", true },
+ { "royal857.com", true },
+ { "royal859.com", true },
+ { "royal86.com", true },
+ { "royal861.com", true },
+ { "royal862.com", true },
+ { "royal863.com", true },
+ { "royal865.com", true },
+ { "royal867.com", true },
+ { "royal868.com", true },
+ { "royal869.com", true },
+ { "royal871.com", true },
+ { "royal872.com", true },
+ { "royal873.com", true },
+ { "royal875.com", true },
+ { "royal877.com", true },
+ { "royal879.com", true },
+ { "royal88.com", true },
+ { "royal88.tech", true },
+ { "royal881.com", true },
+ { "royal882.com", true },
+ { "royal883.com", true },
+ { "royal885.com", true },
+ { "royal886.com", true },
+ { "royal887.com", true },
+ { "royal888888.com", true },
+ { "royal889.com", true },
+ { "royal890.com", true },
+ { "royal891.com", true },
+ { "royal892.com", true },
+ { "royal893.com", true },
+ { "royal894.com", true },
+ { "royal895.com", true },
+ { "royal896.com", true },
+ { "royal898.com", true },
+ { "royal899.com", true },
{ "royalacademy.org.uk", true },
{ "royalasianescorts.co.uk", true },
{ "royalbluewa3.cc", true },
@@ -28853,11 +30410,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "royalpalacenogent.fr", true },
{ "royalrangers.fi", true },
{ "royalty-market.com", true },
+ { "royalyule.com", true },
{ "royceandsteph.com", true },
{ "roycewilliams.net", true },
- { "rozalynne-dawn.ga", true },
{ "rozhodce.cz", true },
{ "rpadovani.com", true },
+ { "rpauto.ru", true },
+ { "rpgcampaign.website", true },
{ "rpgmaker.es", true },
{ "rpherbig.com", true },
{ "rphl.net", true },
@@ -28875,19 +30434,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rro.rs", true },
{ "rrudnik.com", true },
{ "rrwolfe.com", true },
+ { "rsanahuano.com", true },
{ "rsap.ca", true },
{ "rsauget.fr", true },
{ "rsblake.net", true },
{ "rsgcard.com", true },
{ "rsingermd.com", true },
{ "rsl.gd", true },
- { "rsldb.com", true },
{ "rsm-intern.de", true },
{ "rsm-liga.de", true },
+ { "rsmith.io", true },
{ "rsmmail.com", true },
{ "rsp-blogs.de", true },
+ { "rsridentassist.com", true },
{ "rss.sh", false },
- { "rsships.com", true },
{ "rssr.se", true },
{ "rsttraining.co.uk", true },
{ "rsync.eu", false },
@@ -28896,6 +30456,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rtate.se", true },
{ "rtcx.net", true },
{ "rtd.uk.com", true },
+ { "rte.eu", true },
{ "rte2fm.ie", true },
{ "rteaertel.ie", true },
{ "rtechservices.io", true },
@@ -28910,19 +30471,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rtrappman.com", true },
{ "rtrinflatables.co.uk", true },
{ "rtsr.ch", true },
+ { "rttvvip.com", true },
{ "rtwcourse.com", true },
{ "rtzoeller.com", true },
- { "ru-music.com", true },
{ "ru-sprachstudio.ch", true },
{ "ru.search.yahoo.com", false },
+ { "rua.cx", true },
{ "ruaneattorneys.com", true },
{ "ruanmi.de", true },
{ "rubberfurs.org", true },
{ "rubberlegscastles.co.uk", true },
{ "rubbermaidoutlet.com", true },
+ { "rubbleremovalsbenoni.co.za", true },
+ { "ruben.am", false },
{ "rubenbarbero.com", true },
{ "rubenkruisselbrink.nl", true },
{ "rublacklist.net", true },
+ { "ruby-auf-schienen.de", true },
{ "rubyist.today", true },
{ "rubymartin.com.au", true },
{ "rubyquincunx.com", true },
@@ -28930,12 +30495,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rubytune.com", true },
{ "rucksack-rauf-und-weg.de", true },
{ "ruckzuck-privatpatient.de", true },
+ { "rucnerobene.eu", true },
{ "ruconsole.com", true },
{ "rud.is", true },
{ "rudd-o.com", true },
{ "rudelune.fr", true },
{ "ruderverein-gelsenkirchen.de", true },
{ "rudewiki.com", true },
+ { "rudhaulidirectory.com", true },
{ "rudloff.pro", true },
{ "rudnikas.com", true },
{ "rudolph.life", true },
@@ -28944,7 +30511,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ruediger-voigt.eu", true },
{ "ruedigervoigt.de", true },
{ "ruedirrenggli.ch", true },
- { "rueduparticulier.tk", true },
+ { "rueduparticulier.tk", false },
+ { "rueegger.me", true },
{ "rueg.eu", true },
{ "ruerte.net", true },
{ "rufabula-com.appspot.com", true },
@@ -28960,11 +30528,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ruin.one", true },
{ "ruiruigeblog.com", true },
{ "ruk.ca", true },
- { "rullzer.com", true },
{ "rulu.co", true },
{ "rulu.tv", true },
{ "rulutv.com", true },
- { "rumlager.de", true },
{ "rummage4property.co.uk", true },
{ "rumplesinflatables.co.uk", true },
{ "rumtaste.com", true },
@@ -28973,27 +30539,32 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "runagain.ch", true },
{ "runebet.com", true },
{ "runefake.com", true },
+ { "runementors.com", false },
{ "runklesecurity.com", true },
{ "runnergrapher.com", true },
{ "runreport.fr", true },
{ "runschrauger.com", true },
{ "runvs.io", true },
+ { "ruobiyi.com", true },
{ "ruobr.ru", true },
{ "ruquay.com", true },
+ { "ruralink.com.ar", true },
{ "ruralsuppliesdirect.co.uk", true },
{ "ruri.io", false },
{ "rusempire.ru", true },
- { "rushball.net", true },
{ "rushiiworks.com", true },
{ "rushpoppershop.co.uk", true },
+ { "rushter.com", true },
{ "rushyo.com", true },
{ "rusi-ns.ca", true },
{ "ruska-modra.cz", true },
{ "ruskamodra.cz", true },
{ "ruskod.net", true },
{ "rusl.net", true },
+ { "rusmolotok.ru", true },
{ "russellupevents.co.uk", true },
{ "russia.dating", true },
+ { "russiaeconomy.org", true },
{ "russianorthodoxchurch.co.uk", true },
{ "russpuss.ru", true },
{ "russt.me", true },
@@ -29004,16 +30575,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rustyrambles.com", true },
{ "rusxakep.com", true },
{ "rutgerschimmel.nl", true },
+ { "ruthmontenegro.com", true },
{ "rutiger.com", true },
{ "ruudkoot.nl", true },
{ "ruwhof.net", true },
+ { "ruya.com", true },
{ "ruyatabirleri.com", true },
{ "rv-jpshop.com", true },
{ "rva-asbestgroep.nl", true },
{ "rvender.cz", true },
+ { "rvfu98.com", true },
{ "rvnoel.net", true },
{ "rvoigt.eu", true },
- { "rvolve.net", true },
{ "rvsa2bevestigingen.nl", true },
{ "rvsa4bevestigingen.nl", true },
{ "rvsbevestigingen.nl", true },
@@ -29026,9 +30599,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "rxbn.de", true },
{ "rxbusiness.com", true },
{ "rxcheck.com", true },
- { "rxgroup.io", true },
{ "rxight.com", true },
{ "ryan-design.com", true },
+ { "ryan-gehring.com", true },
{ "ryan-goldstein.com", true },
{ "ryanbritton.com", true },
{ "ryancarter.co.uk", true },
@@ -29039,10 +30612,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ryansmithphotography.com", true },
{ "ryazan-region.ru", true },
{ "rychlikoderi.cz", true },
+ { "rydermais.tk", true },
{ "rynekpierwotny.pl", true },
{ "ryois.me", true },
{ "ryu22e.org", true },
{ "ryuu.es", true },
+ { "ryyule.com", true },
+ { "ryzex.de", true },
{ "ryzhov.me", true },
{ "rzentarzewski.net", true },
{ "s-a.xyz", true },
@@ -29066,9 +30642,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "s404.de", true },
{ "s44.eu", true },
{ "s4db.net", true },
+ { "s4media.org", true },
+ { "s4q.me", true },
{ "s4tips.com", true },
{ "s4ur0n.com", true },
{ "s5118.com", true },
+ { "s64.cz", true },
{ "s8a.us", true },
{ "s95.de", true },
{ "sa-blog.net", true },
@@ -29077,14 +30656,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "saabpartsdistribution.com", true },
{ "saamhorigheidsfonds.nl", false },
{ "saastopankki.fi", true },
- { "saba-piserver.info", true },
{ "sabahattin-gucukoglu.com", true },
{ "sabe.cz", true },
+ { "sabine-forschbach.de", true },
+ { "sabineforschbach.de", true },
{ "sabrinajoias.com.br", true },
{ "sabrinajoiasprontaentrega.com.br", true },
+ { "sabtunes.com", true },
{ "sacaentradas.com", true },
{ "saccani.net", true },
- { "sachk.com", true },
{ "sackers.com", true },
{ "sackmesser.ch", true },
{ "saclier.at", true },
@@ -29105,15 +30685,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "safar.sk", true },
{ "safaritenten.nl", true },
{ "safcstore.com", true },
+ { "safe.moe", true },
{ "safe.space", true },
{ "safebaseflorida.com", true },
{ "safebasements.com", true },
{ "safebasementsnorthdakota.com", true },
+ { "safebasementsofindiana.com", true },
{ "safebuyerscheme.co.uk", true },
{ "safecar.gov", false },
{ "safeex.com", true },
{ "safegold.ca", true },
{ "safegroup.pl", true },
+ { "safeguardcommerce.com", true },
+ { "safeguardhosting.ca", true },
{ "safeinfra.nl", true },
{ "safejourney.education", true },
{ "safematix.com", true },
@@ -29133,6 +30717,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sagedocumentmanager.com", true },
{ "sagemontchurch.org", true },
{ "sagerus.com", true },
+ { "saggiocc.com", true },
{ "sagracefarms.com", true },
{ "sagsmarseille.com", true },
{ "sahajbooks.com", true },
@@ -29152,55 +30737,64 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "saikouji.tokushima.jp", true },
{ "sailingonward.com", true },
{ "sailormoonevents.org", true },
+ { "sailormoonlibrary.org", true },
{ "saimoe.moe", true },
{ "saimoe.org", true },
{ "sainetworks.net", true },
+ { "saint-bernard-gouesch.fr", true },
{ "saintaardvarkthecarpeted.com", true },
{ "saintanthonyscorner.com", true },
{ "sainth.de", true },
+ { "saintmichelqud.com", true },
{ "saintsrobotics.com", true },
{ "saipariwar.com", true },
{ "saiputra.com", true },
- { "saiyasu-search.com", true },
+ { "saitrance.com", true },
+ { "saitv.org", true },
{ "sajamstudija.info", true },
{ "sajdowski.de", true },
{ "sakaki.anime.my", false },
{ "sakostacloud.de", true },
{ "sakura-paris.org", true },
+ { "sakuracommunity.com", true },
{ "sakuraflores.com.br", true },
{ "sakuraplay.com", true },
{ "salamon-it.de", false },
{ "salde.net", true },
{ "sale4ru.ru", true },
{ "saleaks.org", true },
+ { "saleduck.at", true },
+ { "saleduck.ch", true },
{ "saleduck.co.id", true },
{ "saleduck.co.th", true },
{ "saleduck.com.my", true },
{ "saleduck.com.ph", true },
{ "saleduck.com.sg", true },
{ "saleduck.com.vn", true },
+ { "saleduck.dk", true },
+ { "saleduck.fi", true },
+ { "saleduck.se", true },
+ { "salemedia.pro", true },
{ "salensmotors-usedcars.be", true },
{ "salesflare.com", true },
{ "salesmachine.io", true },
{ "salexy.kz", true },
- { "salishseawhalewatching.ca", true },
{ "salixcode.com", true },
{ "salland1.nl", true },
{ "salle-quali.fr", true },
{ "sallydowns.name", true },
- { "salmo23.com.br", true },
{ "salmododia.net", true },
{ "salmonella.co.uk", true },
{ "salmonrecovery.gov", true },
{ "salmonvision.com.tw", true },
{ "salmos91.com", true },
{ "salmotierra-salvatierra.com", true },
- { "salon-claudia.ch", true },
{ "salon-minipli.de", true },
{ "salon.io", false },
{ "salon1.ee", true },
+ { "salonasymetria.com", true },
+ { "salonasymetria.pl", true },
{ "salonsantebienetre.ch", true },
- { "salrosadohimalaia.com", true },
{ "salsa-straubing.de", true },
{ "saltbythesea.com", true },
{ "saltercane.com", false },
@@ -29210,7 +30804,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "salud.top", false },
{ "saludsexualmasculina.org", true },
{ "saludsis.mil.co", true },
+ { "salutethefish.com", true },
+ { "salutethegrains.com", true },
{ "salutethepig.com", true },
+ { "salva.re", true },
{ "salvagedfurnitureparlour.com", true },
{ "sam-football.fr", true },
{ "samanthasgeckos.com", true },
@@ -29228,17 +30825,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "samegoal.org", true },
{ "samel.de", true },
{ "samenwerkingsportaal.nl", true },
- { "samenwerkingsportaal.tk", true },
{ "sameworks.com", true },
{ "samgrayson.me", true },
{ "samhuri.net", true },
{ "samifar.in", true },
+ { "samin.tk", true },
{ "samip.fi", true },
+ { "samitechnic.com", true },
{ "samizdat.cz", true },
+ { "samkelleher.com", true },
{ "saml-gateway.org", true },
+ { "samlivogarv.dk", true },
+ { "sammamish--locksmith.com", true },
{ "sammenlignakasser.dk", true },
{ "sammyservers.com", true },
+ { "sammyservers.net", true },
{ "samnya.cn", true },
+ { "samrobertson.co.uk", true },
{ "samsungmobile.it", true },
{ "samsungphonegenerator.xyz", true },
{ "samtalen.nl", true },
@@ -29249,15 +30852,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "samuirehabcenter.com", true },
{ "samwilberforce.com", true },
{ "samwrigley.co.uk", true },
- { "samwu.tw", false },
+ { "samwu.tw", true },
{ "samyerkes.com", true },
+ { "san-mian-ka.ml", true },
{ "san.ac.th", true },
{ "sana-store.com", true },
{ "sana-store.cz", true },
{ "sana-store.sk", true },
{ "sanalbayrak.com", true },
- { "sanandreasstories.com", true },
{ "sanantoniolocksmithinc.com", true },
+ { "sanantoniolocksmithtx.com", true },
{ "sanasport.cz", true },
{ "sanasport.sk", true },
{ "sanatorii-sverdlovskoy-oblasti.ru", true },
@@ -29268,9 +30872,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sandbox.mydigipass.com", false },
{ "sandburner.net", true },
{ "sanderdorigo.nl", true },
- { "sanderknape.com", true },
{ "sanderkoenders.eu", true },
{ "sanderkoenders.nl", true },
+ { "sandervanderstap.nl", true },
{ "sandervankasteel.nl", false },
{ "sandhaufen.tk", true },
{ "sandiegotown.com", true },
@@ -29288,8 +30892,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sandtonplumber24-7.co.za", true },
{ "sandtonvipcompanions.com", true },
{ "sandyrobsonhypnotherapy.co.uk", true },
+ { "sanemind.eu", true },
{ "sanepsychologen.nl", true },
{ "sanex.ca", false },
+ { "sanglierhurlant.fr", true },
{ "sangwon.io", true },
{ "sanilodge.com", true },
{ "sanipousse.com", true },
@@ -29304,10 +30910,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sanskritiyoga.com", true },
{ "sansonehowell.com", true },
{ "santafemacas.com.br", true },
+ { "santamonicapost123.org", true },
+ { "santanderideas.com", true },
{ "santenatureetcie.com", true },
{ "santensautomatics.be", true },
{ "santevie.ch", true },
- { "santing.net", true },
{ "santojuken.co.jp", true },
{ "santoshpandit.com", true },
{ "sanvitolocapobus.com", true },
@@ -29339,12 +30946,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sarariman.com", true },
{ "sarasturdivant.com", true },
{ "sardegnatirocini.it", true },
- { "sarkarikhoj.com", true },
+ { "sarink.eu", true },
{ "saronno5stelle.it", true },
{ "sarpsb.org", true },
{ "sarumtechnologies.com", true },
{ "sas-snowboarding.sk", true },
{ "sasanika.org", true },
+ { "sascha.io", true },
+ { "sascha.is", true },
+ { "saschaeggenberger.ch", true },
+ { "saschaeggenberger.com", true },
{ "sash.pw", true },
{ "sashaokun.com", true },
{ "sashascollections.com", true },
@@ -29363,7 +30974,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "satmd.de", true },
{ "satoshinumbers.com", true },
{ "sattamatkachart.in", true },
- { "sattamatkadpboss.mobi", true },
{ "sattamatkamobi.mobi", true },
{ "saturn.pl", true },
{ "satyanarayana.xyz", true },
@@ -29372,7 +30982,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "saudeintimadamulher.com.br", true },
{ "saudenoclique.com.br", true },
{ "sauer-systems.net", true },
- { "sauerbrey.eu", true },
{ "sauerland-schnittgruen.de", true },
{ "saulchristie.com", true },
{ "saumon-de-france.com", true },
@@ -29391,7 +31000,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "savecrypto.org", true },
{ "savenet.org", true },
{ "saveora.com", true },
- { "saveora.shop", true },
{ "savetheinternet.eu", true },
{ "saveya.com", true },
{ "savic.com", true },
@@ -29425,11 +31033,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sbf888.com", true },
{ "sbiewald.de", true },
{ "sbir.gov", true },
+ { "sbirecruitment.co.in", true },
{ "sbit.com.br", true },
{ "sblum.de", true },
{ "sbo-dresden.de", true },
{ "sbr.red", true },
{ "sbrouwer.org", true },
+ { "sbrownbourne.com", true },
{ "sbsavings.bank", true },
{ "sbsbaits.com", true },
{ "sbsnursery.co.uk", true },
@@ -29440,6 +31050,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scaarus.com", true },
{ "scaffalature.roma.it", true },
{ "scaffoldhireeastrand.co.za", true },
+ { "scaffoldhirefourways.co.za", true },
+ { "scaffoldhirerandburg.co.za", true },
{ "scaffoldhiresandton.co.za", true },
{ "scalacollege.nl", true },
{ "scalaire.com", true },
@@ -29449,6 +31061,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scallywagsbouncycastles.co.uk", true },
{ "scallywagskids.co.uk", true },
{ "scamblockplus.org", true },
+ { "scan.co.uk", true },
{ "scandicom.fi", true },
{ "scandinavia.dating", true },
{ "scangeo.net", true },
@@ -29456,8 +31069,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scanpay.dk", true },
{ "scarafaggio.it", true },
{ "scatsbouncingcastles.ie", true },
+ { "scbdh.org", true },
{ "scelec.com.au", true },
{ "scenastu.pl", true },
+ { "scene.mx", true },
{ "scenester.tv", true },
{ "scenicbyways.info", true },
{ "scepticism.com", true },
@@ -29469,8 +31084,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "schatmeester.be", true },
{ "schatzibaers.de", true },
{ "schawe.me", true },
+ { "schbebtv.fr", true },
{ "scheduleme.io", true },
{ "scheemadigital.com", true },
+ { "schefczyk.com", true },
+ { "schefczyk.de", true },
+ { "schefczyk.eu", true },
{ "schefczyk.net", true },
{ "scheidtweiler.de", true },
{ "scheinlichter.de", true },
@@ -29491,8 +31110,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "schlachter.ca", true },
{ "schlaf.guru", true },
{ "schlafguru.com", true },
- { "schlagenhauf.info", true },
- { "schlagma.de", false },
{ "schlarp.com", true },
{ "schlechtewitze.com", true },
{ "schlick.wedding", true },
@@ -29508,7 +31125,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "schmidtplasticsurgery.com", true },
{ "schmitt-max.com", true },
{ "schmitz.link", true },
- { "schnapke.name", true },
{ "schneeketten-ratgeber.de", true },
{ "schnegg.name", true },
{ "schneids.me", true },
@@ -29520,6 +31136,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "schoepski.de", true },
{ "schoknecht.net", true },
{ "schoknecht.one", true },
+ { "schokofoto.de", true },
{ "schokokeks.org", true },
{ "scholarly.com.ph", true },
{ "scholarly.ph", true },
@@ -29532,23 +31149,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "school-register.co.za", true },
{ "school.in.th", true },
{ "schoolbus.at", true },
+ { "schoolcafe.com", true },
{ "schoolotzyv.ru", true },
{ "schoolsonice.nl", true },
{ "schopenhauer-institut.de", true },
{ "schorelweb.nl", true },
{ "schorers.org", true },
{ "schoring.com", true },
+ { "schottenland.de", true },
{ "schrauger.com", true },
{ "schrauger.info", true },
{ "schrauger.net", true },
{ "schrauger.org", true },
{ "schrauger.run", true },
{ "schraugerrun.com", true },
- { "schreck-thomas.de", true },
{ "schreibers.ca", true },
{ "schreinerei-jahreis.de", true },
{ "schrenkinzl.at", true },
- { "schritt4fit.de", true },
{ "schrodingersscat.com", true },
{ "schrodingersscat.org", true },
{ "schroeder-immobilien-sundern.de", true },
@@ -29573,8 +31190,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "schummar.de", true },
{ "schunako.ch", true },
{ "schuppentier.org", true },
- { "schur-it.de", true },
{ "schurkenstaat.net", true },
+ { "schutterijschinveld.nl", true },
{ "schutz-vor-schmutz.de", true },
{ "schutznetze24.de", false },
{ "schutzwerk.com", true },
@@ -29600,12 +31217,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "science360.gov", true },
{ "sciencebase.gov", true },
{ "scienceexploits.com", true },
+ { "sciencehouse.jp", true },
{ "scienceminnesota.com", true },
{ "sciencesolutions.eu", true },
{ "sciencex.com", true },
{ "scientific.boston", true },
{ "scifi.fyi", true },
+ { "scigov.xyz", true },
{ "scijinks.gov", true },
+ { "scilifebiosciences.com", true },
{ "scimage.com", true },
{ "scintilla.nl", true },
{ "scis.com.ua", true },
@@ -29614,6 +31234,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scitopia.net", true },
{ "sckc.stream", false },
{ "sclns.co", true },
+ { "scontogiusto.com", true },
{ "scoolcode.com", true },
{ "scoop6.co.uk", true },
{ "scootaloo.co.uk", true },
@@ -29622,6 +31243,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scorobudem.ru", true },
{ "scorocode.ru", true },
{ "scorp13.com", true },
+ { "scottgalvin.com", true },
{ "scottgruber.me", true },
{ "scottgthomas.com", true },
{ "scotthelme.co.uk", true },
@@ -29646,7 +31268,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scratchandscuffs.com", true },
{ "scratchandscuffs.uk", true },
{ "scrayos.net", true },
- { "scredible.com", true },
+ { "scredible.com", false },
{ "screen64.tk", true },
{ "screenlight.tv", true },
{ "screenmachine.com", true },
@@ -29659,7 +31281,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scrisulfacebine.ro", true },
{ "scrod.me", true },
{ "scroll.in", true },
- { "scrumplex.net", true },
+ { "scrumbleship.com", true },
+ { "scrumpus.com", true },
{ "scrumstack.co.uk", true },
{ "scryfall.com", true },
{ "scs-simulatoren.de", true },
@@ -29667,8 +31290,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scswam.com", true },
{ "sctiger.me", true },
{ "sctiger.ml", true },
+ { "sctm.at", true },
{ "sctrainingllc.com", true },
{ "scubadiving-phuket.com", true },
+ { "scubaland.hu", true },
{ "scul.net", true },
{ "sculpture.support", true },
{ "scuolaguidalame.ch", true },
@@ -29678,6 +31303,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "scwilliams.co.uk", true },
{ "scwilliams.uk", true },
{ "sd.af", true },
+ { "sdayman.com", true },
{ "sdcardrecovery.de", true },
{ "sdg-tracker.org", true },
{ "sdho.org", true },
@@ -29693,7 +31319,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "se-theories.org", true },
{ "se.com", true },
{ "se.search.yahoo.com", false },
- { "sea-godzilla.com", false },
{ "seac.me", true },
{ "seacam-store.com", true },
{ "seafood.co.nz", true },
@@ -29706,6 +31331,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sean-wright.com", true },
{ "seanholcroft.co.uk", true },
{ "seankilgarriff.com", true },
+ { "seanrodda.com", true },
{ "seaplayhomes.com", true },
{ "search-job-in.com", true },
{ "search-one.de", true },
@@ -29723,6 +31349,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "searchbrothers.nl", true },
{ "searchbrothers.ru", true },
{ "searchbrothers.uk", true },
+ { "searchcandy.nl", true },
+ { "searchcandy.uk", true },
{ "searchdatalogy.com", true },
{ "seareytraining.com", true },
{ "searx.ru", true },
@@ -29731,6 +31359,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "season.moe", true },
{ "seasons.nu", false },
{ "seatbeltpledge.com", true },
+ { "seatshare.co.uk", true },
{ "seattle-life.net", true },
{ "seattlefabrication.com", true },
{ "seattlemesh.net", true },
@@ -29738,6 +31367,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "seattlewalkinbathtubs.com", true },
{ "seavancouver.com", true },
{ "seb-mgl.de", true },
+ { "sebald.com", true },
+ { "sebald.org", true },
{ "sebascelis.com", true },
{ "sebastiaandouma.co.uk", true },
{ "sebastiaandouma.com", true },
@@ -29751,6 +31382,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sebastiaperis.com", true },
{ "sebasveeke.nl", true },
{ "sebi.org", true },
+ { "seby.io", true },
{ "sec-mails.de", true },
{ "sec-research.com", true },
{ "sec-wiki.com", true },
@@ -29759,13 +31391,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sec.gov", true },
{ "sec.red", true },
{ "sec3ure.co.uk", true },
- { "sec44.com", true },
- { "sec44.net", true },
- { "sec44.org", true },
{ "sec455.com", true },
+ { "sec4share.me", true },
{ "sec530.com", true },
{ "sec555.com", true },
- { "secanje.nl", true },
{ "secbone.com", true },
{ "secboom.com", true },
{ "seccom.ch", true },
@@ -29773,14 +31402,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "secgui.de", true },
{ "sech.me", true },
{ "sechat.one", true },
- { "secitem.at", true },
- { "secitem.eu", true },
+ { "secinto.at", true },
{ "secnews.gr", true },
{ "secomo.org", true },
+ { "secondchancejobsforfelons.com", true },
{ "seconfig.sytes.net", true },
{ "secpatrol.de", true },
{ "secretar.is", true },
- { "secretpanties.com", true },
+ { "secretsanta.fr", true },
{ "secretsdujeu.com", true },
{ "secretserveronline.com", true },
{ "secretum.tech", true },
@@ -29814,6 +31443,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "securethe.news", true },
{ "securetheorem.com", true },
{ "securetronic.ch", true },
+ { "securetrustbank.com", true },
{ "securi-tay.co.uk", true },
{ "securify.nl", true },
{ "securipy.com", true },
@@ -29825,14 +31455,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "security.love", true },
{ "security201.co.uk", true },
{ "security201.com", true },
- { "securitybrief.asia", true },
- { "securitybrief.co.nz", true },
- { "securitybrief.com.au", true },
- { "securitybrief.eu", true },
{ "securitycamerasaustin.net", true },
+ { "securitycamerascincinnati.com", true },
+ { "securitycamerasjohnsoncity.com", true },
{ "securityfest.com", true },
{ "securityheaders.com", true },
{ "securityheaders.io", true },
+ { "securityheaders.nl", true },
{ "securityinet.com", false },
{ "securitykey.co", true },
{ "securitypluspro.com", true },
@@ -29843,7 +31472,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "securitystrata.com", true },
{ "securitystreak.com", true },
{ "securitytrails.com", true },
- { "securitywatch.co.nz", true },
{ "securitywithnick.com", true },
{ "securitywithoutborders.org", true },
{ "securocloud.com", true },
@@ -29881,8 +31509,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "seguroviagem.srv.br", false },
{ "sehnenweh.org", true },
{ "seibert.ninja", true },
+ { "seibu-kikaku.co.jp", true },
{ "seifried.org", true },
{ "seikatu-navi.com", true },
+ { "seiko-dojo.com", true },
{ "seinfeldquote.com", true },
{ "seirei.ne.jp", true },
{ "seiryokuzai-ch.com", true },
@@ -29898,6 +31528,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "selectel.com", false },
{ "selectel.ru", true },
{ "selectorders.com", true },
+ { "selectsplat.com", true },
{ "selegiline.com", true },
{ "selent.me", true },
{ "self-evident.org", true },
@@ -29910,6 +31541,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "selfici.cz", true },
{ "selfishness.com", true },
{ "selfloath.in", true },
+ { "selfmade4u.de", true },
{ "selfoutlet.com", true },
{ "selkiemckatrick.com", true },
{ "sellajoch.com", true },
@@ -29917,16 +31549,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sellme.biz", true },
{ "sellmoretires.com", true },
{ "sello.com", true },
+ { "sellorbuy.uk", true },
+ { "sellorbuy.us", true },
{ "seltendoof.de", true },
{ "semacode.com", true },
{ "semaf.at", true },
{ "semaflex.it", true },
+ { "semantica.cz", true },
{ "semaphore-studios.com", true },
+ { "semdynamics.com", true },
{ "semenov.su", false },
{ "semianalog.com", true },
{ "seminariruum.ee", true },
{ "semiocast.com", true },
- { "semjonov.de", true },
+ { "semiread.com", true },
{ "semmlers.com", true },
{ "semox.de", true },
{ "semps-2fa.de", true },
@@ -29938,6 +31574,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "semyonov.us", true },
{ "senarius.de", true },
{ "sendai-sisters.com", true },
+ { "sendaiouji.com", true },
{ "sendbox.cz", true },
{ "sendc.at", true },
{ "sendcat.com", true },
@@ -29951,13 +31588,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "seniorem.eu", true },
{ "seniors.singles", true },
{ "senmendai-reform.com", true },
+ { "sennase.net", true },
{ "senorcontento.com", true },
{ "sensebridge.com", true },
{ "sensebridge.net", true },
{ "sensepixel.com", true },
{ "senshudo.tv", true },
{ "sensoft-int.net", true },
- { "sensualism.com", true },
{ "sentandsecure.com", true },
{ "sentic.info", true },
{ "sentidosdelatierra.org", true },
@@ -29980,10 +31617,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "seoexperte.berlin", true },
{ "seogeek.nl", true },
{ "seohackers.fr", true },
+ { "seohouston.com", true },
{ "seoinc.com", true },
{ "seoium.com", true },
{ "seokay.com", true },
- { "seolaba.io", true },
{ "seolib.org", true },
{ "seomarketing.bg", true },
{ "seon.me", true },
@@ -29995,7 +31632,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "seouniversity.org", true },
{ "sepalandseed.com", true },
{ "seppelec.com", true },
+ { "seproco.com", true },
{ "septakkordeon.de", true },
+ { "septentrionalist.org", true },
{ "septfinance.ch", true },
{ "septicrepairspecialists.com", true },
{ "septillion.cn", true },
@@ -30005,12 +31644,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sera.jp", true },
{ "seraph.tokyo", true },
{ "serbanpaun.ro", true },
+ { "serbianclimbing.com", true },
{ "sereema.com", true },
{ "serenaden.at", true },
+ { "serendeputy.com", true },
{ "serf.io", true },
{ "sergeemond.ca", true },
{ "sergefonville.nl", true },
- { "sergeyreznikov.com", true },
{ "sergije-stanic.me", true },
{ "sergiosantoro.it", true },
{ "sergiozygmunt.com", true },
@@ -30043,10 +31683,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "serverd.de", true },
{ "serverexpose.com", true },
{ "serverfrog.de", true },
- { "serverlog.net", true },
{ "serveroffline.net", false },
{ "serverpedia.de", true },
{ "servers4all.co.uk", true },
+ { "serversfrom.space", true },
{ "serversftw.com", true },
{ "serverstuff.info", true },
{ "serversuit.com", true },
@@ -30054,7 +31694,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "servethecity-karlsruhe.de", true },
{ "servettorna.com", true },
{ "servgate.jp", true },
- { "service.gov.uk", true },
+ { "service-wueste-vodafone.tk", true },
{ "servicebeaute.fr", true },
{ "serviceboss.de", true },
{ "servida.ch", true },
@@ -30063,7 +31703,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "servious.org", true },
{ "servitek.de", true },
{ "serviziourgente.it", true },
- { "servpanel.de", true },
{ "servx.org", true },
{ "serw.org", true },
{ "serwis-wroclaw.pl", true },
@@ -30075,6 +31714,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "setenforce.one", true },
{ "setfix.de", true },
{ "sethcaplan.com", true },
+ { "sethjust.com", true },
{ "sethvargo.com", true },
{ "setphaserstostun.org", true },
{ "setsailanddive.com", true },
@@ -30090,6 +31730,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sevenhillsapartments.com.au", true },
{ "sevenicealimentos.com.br", true },
{ "sevenmatches.com", true },
+ { "seventwentynine.com", true },
{ "severine-trousselard.com", true },
{ "severntrentinsuranceportal.com", true },
{ "sevinci.ch", true },
@@ -30098,22 +31739,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sewafineseam.com", true },
{ "sewinginsight.com", true },
{ "sewoo.co.uk", true },
- { "sex-education.com", true },
{ "sexaki.com", true },
{ "sexdocka.nu", true },
- { "sexgarage.de", true },
{ "sexmobil.de", true },
- { "sexocomgravidas.com", true },
- { "sexoyrelax.com", true },
- { "sexpay.net", true },
- { "sexplicit.co.uk", true },
{ "sexservice.io", true },
{ "sexshopnet.com.br", true },
- { "sexwork.net", true },
{ "sexy-store.nl", true },
{ "seyfarth.de", true },
+ { "seyr.me", true },
{ "sfa.sk", true },
- { "sfaturiit.ro", true },
+ { "sfaparish.org", true },
{ "sfcomercio.com.br", true },
{ "sfdev.ovh", true },
{ "sfg-nordholz.de", true },
@@ -30126,9 +31761,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sg-elektro.de", true },
{ "sg.search.yahoo.com", false },
{ "sgb.co", true },
+ { "sgcaccounts.co.uk", true },
+ { "sgi.org", true },
{ "sglibellen.de", true },
{ "sgroup-hitoduma.com", true },
{ "sgroup-rec.com", true },
+ { "sgs-systems.de", true },
+ { "sgs.camera", true },
{ "sgsp.nl", true },
{ "sgtcodfish.com", true },
{ "sgtsnookums.net", true },
@@ -30146,6 +31785,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shadigee.org", true },
{ "shadowict.net", true },
{ "shadowict.tech", true },
+ { "shadowkingdomrecords.com", true },
{ "shadowkitsune.net", true },
{ "shadowlurker.com.au", true },
{ "shadowsing.com", true },
@@ -30164,23 +31804,23 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shaicoleman.com", true },
{ "shainessim.com", true },
{ "shakan.ch", true },
- { "shaken-kyoto.jp", true },
{ "shaken110.com", true },
{ "shakepeers.org", false },
{ "shakerwebdesign.net", true },
{ "shakes4u.com", true },
{ "shakespearevet.com", true },
+ { "shakingthehabitual.com", true },
{ "shalazine.com", true },
{ "shalott.org", true },
+ { "shalyapin.by", true },
{ "shamara.info", true },
{ "shamariki.ru", true },
{ "shan.io", false },
{ "shan.si", true },
{ "shanahanstrategy.com", true },
- { "shandonsg.co.uk", true },
- { "shanekoster.net", true },
{ "shanetully.com", true },
{ "shanewadleigh.com", true },
+ { "shankangke.com", true },
{ "shannoneichorn.com", true },
{ "shansing.cn", true },
{ "shansing.com", true },
@@ -30194,7 +31834,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shareeri.com", true },
{ "sharekey.com", false },
{ "sharelovenotsecrets.com", true },
- { "sharemessage.net", true },
{ "shareoffice.ch", true },
{ "sharepointdrive.com", true },
{ "sharescope.co.uk", false },
@@ -30204,12 +31843,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shariahlawcenter.org", true },
{ "sharialawcenter.com", true },
{ "sharialawcenter.org", true },
+ { "sharisharpe.com", true },
{ "shark5060.net", true },
{ "sharkie.org.za", true },
{ "sharperedge.pw", true },
{ "sharperedgecomputers.com", true },
{ "sharu.me", true },
- { "sharvey.ca", true },
{ "shasso.com", true },
{ "shaun.net", true },
{ "shaunandamyswedding.com", true },
@@ -30218,7 +31857,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shaunharker.com", true },
{ "shav.it", true },
{ "shavegazette.com", true },
+ { "shawnalucey.com", true },
{ "shawnhogan.com", true },
+ { "shawnow.com", true },
{ "shawnwilkerson.com", true },
{ "shazbots.org", true },
{ "shazzlemd.com", true },
@@ -30227,6 +31868,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shearcomfort.com", true },
{ "sheaspire.com.tw", true },
{ "sheehyinfinitioftysonsparts.com", true },
+ { "sheekdeveloper.com", true },
+ { "sheekmedia.com", true },
{ "sheepfriends.com", true },
{ "sheet.host", true },
{ "shehaal.com", true },
@@ -30238,25 +31881,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shellfire.de", true },
{ "shellgame.io", true },
{ "shelljuggler.com", false },
+ { "shellot.com", true },
{ "shellshock.eu", true },
{ "shellvatore.us", true },
- { "shemissed.me", true },
{ "shemsconseils.ma", true },
{ "shena.co.uk", true },
{ "shenghaiautoparts.com", true },
{ "shenghaiautoparts.net", true },
+ { "shengrenyu.com", true },
{ "shenyuqi.com", false },
{ "sherbers.de", true },
{ "sherrikehoetherapy.com", true },
{ "shft.cl", true },
+ { "shgroup.xyz", true },
{ "shgt.jp", true },
{ "shh-listen.com", true },
- { "shh.sh", true },
{ "shiawasedo.co.jp", true },
{ "shichibukai.net", true },
{ "shico.org", true },
{ "shieldcomputer.com", true },
{ "shieldfe.com", true },
+ { "shieldofachilles.in", true },
{ "shift-record.com", true },
{ "shift-to.co.jp", true },
{ "shiftdevices.com", true },
@@ -30279,11 +31924,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shipard.com", true },
{ "shipard.cz", true },
{ "shipcloud.io", true },
+ { "shiqi.ca", true },
+ { "shiqisifu.cc", true },
{ "shirakaba-cc.com", true },
+ { "shirao.jp", true },
{ "shirt2go.shop", true },
{ "shirtsdelivered.com", true },
{ "shirtsofholland.com", true },
{ "shishamania.de", true },
+ { "shishkabobnc.com", true },
{ "shishkin.us", true },
{ "shishlik.net", true },
{ "shitagi-shop.com", true },
@@ -30294,6 +31943,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shitsta.in", true },
{ "shivamber.com", true },
{ "shivammaheshwari.com", true },
+ { "shivatattvayoga.com", true },
{ "shlmail.info", true },
{ "shmibbles.me", true },
{ "shmunky.co.uk", true },
@@ -30302,10 +31952,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shockercityservices.com", true },
{ "shodan.io", true },
{ "shoemuse.com", true },
+ { "shoeracks.uk", true },
{ "shoestringeventing.co.uk", true },
{ "shokola.com", true },
{ "shome.de", true },
{ "shooter.dog", true },
+ { "shop-hellsheadbangers.com", true },
{ "shop-s.net", true },
{ "shop.fr", true },
{ "shopadvies.nl", true },
@@ -30321,18 +31973,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shopalike.se", true },
{ "shopalike.sk", true },
{ "shopapi.cz", true },
+ { "shopatkei.com", true },
{ "shopbakersnook.com", true },
{ "shopcoupon.co.za", true },
{ "shopcoupons.co.id", true },
{ "shopcoupons.my", true },
{ "shopcoupons.ph", true },
{ "shopcoupons.sg", true },
+ { "shophisway.com", true },
+ { "shopify.com", true },
{ "shopifycloud.com", true },
{ "shopkini.com", true },
{ "shoplandia.co", true },
{ "shoppia.se", true },
{ "shopping24.de", true },
{ "shoppr.dk", true },
+ { "shopregional.com.br", true },
{ "shopsouthafrican.com", true },
{ "shopstart.dk", true },
{ "shoptec.sk", true },
@@ -30340,15 +31996,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shorehamfort.co.uk", true },
{ "short-biography.com", true },
{ "short-term-plans.com", true },
+ { "shortcut.pw", true },
{ "shortdiary.me", true },
+ { "shorten.ninja", true },
{ "shoshin-aikido.de", true },
+ { "shoshin.technology", true },
{ "shota.vip", true },
{ "shotbow.net", true },
+ { "shotonwhat.com", true },
{ "shouldihookupwithmybarista.com", true },
{ "shouttag.com", true },
+ { "shovonhasan.com", true },
{ "show-saratov.ru", false },
{ "showbits.net", true },
- { "showdepiscinas.com.br", true },
{ "showf.om", true },
{ "showmax.com", true },
{ "showmethemoney.ru", true },
@@ -30356,20 +32016,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "showroom.cam", true },
{ "showroom.co.uk", true },
{ "showroom.uk", true },
- { "showroom113.ru", true },
{ "showsonar.com", true },
- { "shoxmusic.net", false },
{ "shredriteservices.com", true },
{ "shreyansh26.me", true },
{ "shrike.me", false },
{ "shrinidhiclinic.in", true },
{ "shrinkhub.com", true },
{ "shrub.ca", true },
- { "shrug.ml", true },
{ "shteiman.net", true },
{ "shu-fu.net", true },
{ "shuffleradio.nl", true },
{ "shugo.net", true },
+ { "shukatsu-support.jp", true },
{ "shulan.moe", true },
{ "shuletime.ml", true },
{ "shura.eu.org", true },
@@ -30377,6 +32035,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "shuset.dk", true },
{ "shushu.media", true },
{ "shutter-shower.com", true },
+ { "shuvo.rocks", true },
+ { "shuvodeep.de", true },
{ "shux.pro", true },
{ "shwrm.ch", true },
{ "shybynature.com", true },
@@ -30384,8 +32044,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "si-benelux.nl", true },
{ "si.to", true },
{ "si2b.fr", true },
+ { "siaggiusta.com", true },
{ "siamsnus.com", true },
{ "sianbryn.co.uk", true },
+ { "sianjhon.com", true },
{ "sibfk.org", true },
{ "sibiutourguide.com", true },
{ "sibrenvasse.nl", true },
@@ -30395,29 +32057,34 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "siciliapulizie.it", true },
{ "sicken.eu", true },
{ "sickfile.com", true },
- { "sicklepod.com", true },
{ "siconnect.us", true },
+ { "sicurled.com", true },
{ "sidelka-tver.ru", true },
{ "sidema.be", true },
+ { "sidemount-forum.com", true },
+ { "sidemount-tauchen.com", true },
{ "sidepodcast.com", true },
{ "sidepodcastdaily.com", true },
{ "sidepodcastextra.com", true },
+ { "sideropolisnoticias.com.br", true },
{ "sideshowbarker.net", true },
{ "sidium.de", true },
{ "sidnicio.us", true },
{ "sidonge.com", true },
{ "sidongkim.com", true },
- { "sidpod.ru", true },
{ "siegemund-frankfurt.de", true },
- { "sieh.es", true },
{ "siel.nl", true },
+ { "sielsystems.nl", true },
{ "sientemendoza.com.ar", true },
+ { "sierpinska.co", true },
+ { "sierpinska.eu", true },
{ "sieulog.com", true },
{ "siewert-kau.de", true },
{ "sift-tool.org", true },
{ "sig6.org", true },
{ "sigabrt.org", true },
{ "siggerudklatreklubb.no", true },
+ { "sight-sound.com", true },
{ "sightcure.jp", true },
{ "sighup.nz", true },
{ "sigismonda.ch", true },
@@ -30430,11 +32097,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "signal.org", true },
{ "signalmaps.co.uk", true },
{ "signaltransmitter.de", true },
+ { "signdesk.com", true },
{ "significados.com", true },
{ "significados.com.br", true },
{ "significantbanter.com", true },
{ "signing-milter.org", true },
{ "signix.net", true },
+ { "signsdance.uk", true },
{ "signtul.com", false },
{ "sigsrv.net", true },
{ "sigterm.no", true },
@@ -30448,13 +32117,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "silashes.ru", true },
{ "silaslova-ekb.ru", true },
{ "silent-clean.de", true },
+ { "silent-yachts.com", true },
{ "silentkernel.fr", false },
{ "silentundo.org", true },
{ "silerfamily.net", true },
+ { "silicon-north.com", true },
+ { "silicon-vision.com", true },
{ "siliconchip.me", true },
- { "silke-hunde.de", true },
{ "silkebaekken.no", true },
{ "silkebeckmann.de", true },
+ { "silkon.net", true },
{ "sillisalaatti.fi", true },
{ "sillysnapz.co.uk", true },
{ "silo.org.br", true },
@@ -30521,7 +32193,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "silvergoldbull.mw", true },
{ "silvergoldbull.my", true },
{ "silvergoldbull.nz", true },
- { "silvergoldbull.ph", true },
{ "silvergoldbull.pl", true },
{ "silvergoldbull.pt", true },
{ "silvergoldbull.qa", true },
@@ -30539,13 +32210,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "silvergoldbull.uy", true },
{ "silvergoldbull.uz", true },
{ "silvergoldbull.ws", true },
+ { "silverkingalaska.com", true },
{ "silverlinkz.net", true },
{ "silverseen.com", true },
{ "silverwind.io", true },
{ "silvine.xyz", true },
+ { "silvobeat.blog", true },
{ "silvobeat.com", true },
{ "sim-karten.net", true },
{ "sim-minaoshi.jp", true },
+ { "sim-sim.appspot.com", true },
{ "sim4seed.org", true },
{ "simam.de", true },
{ "simark.ca", true },
@@ -30579,11 +32253,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "simonmaddox.com", true },
{ "simonpaarlberg.com", true },
{ "simonreich.de", true },
- { "simonschmitt.ch", true },
{ "simonshine.dk", true },
{ "simonspeich.ch", true },
{ "simonsreich.de", true },
{ "simontaite.com", true },
+ { "simonweil.com", true },
{ "simonwessel.net", true },
{ "simonwoodside.com", true },
{ "simpbx.net", true },
@@ -30592,7 +32266,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "simpip.com", true },
{ "simple.com", false },
{ "simpleclassiclife.com", true },
- { "simplecoding.click", true },
{ "simplecontacts.com", true },
{ "simplednscrypt.org", true },
{ "simpleindianrecipes.com", true },
@@ -30620,6 +32293,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "simplystudio.com", true },
{ "simpte.com", true },
{ "simpul.nl", true },
+ { "simrail.nl", true },
{ "simsnieuws.nl", true },
{ "simukti.net", true },
{ "sin-nombre-alleria.de", true },
@@ -30629,33 +32303,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sinceschool.com", true },
{ "sinclairinat0r.com", true },
{ "sinde.ru", true },
+ { "sinefili.com", true },
{ "sinergy.ch", true },
{ "sinfulforums.net", true },
{ "singaporemint.com", true },
{ "singapurfirma.com", true },
{ "singel.ch", true },
- { "singerwang.com", true },
{ "single-in-stuttgart.de", true },
{ "singles-aus-hamburg.de", true },
- { "singles-berlin.de", true },
{ "singleuse.link", true },
{ "singlu10.org", false },
{ "sinktank.de", true },
{ "sinn.io", true },
{ "sinnersprojects.ro", true },
{ "sinomod.com", true },
- { "sinon.org", true },
{ "sinonimos.com.br", true },
{ "sinonimosonline.com", true },
{ "sinonimosonline.com.br", true },
{ "sinquin.eu", true },
- { "sinsojb.me", true },
+ { "sinronet.com", true },
{ "sint-joris.nl", true },
{ "sintaxis.org", true },
{ "sinterama.biz", true },
{ "sinuelovirtual.com.br", true },
{ "sioeckes.hu", true },
- { "sipc.org", true },
+ { "siratalmustaqim.com", true },
{ "siraweb.org", true },
{ "sirbouncealotcastles.co.uk", true },
{ "sirbouncelot.co.uk", true },
@@ -30668,12 +32340,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sirtaptap.com", true },
{ "sirtuins.com", true },
{ "sirvoy.com", true },
- { "sisgopro.com", true },
{ "sisseastumine.ee", true },
{ "sistel.es", true },
{ "sistem-maklumat.com", true },
{ "sistem-maklumat.com.my", true },
- { "sistemos.net", true },
{ "sistemy48.ru", false },
{ "sistimiki-anaparastasi.gr", true },
{ "sistov.it", true },
@@ -30685,10 +32355,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sitc.sk", true },
{ "sitebuilderreport.com", true },
{ "sitedrive.fi", true },
+ { "sitefactory.com.br", true },
{ "sitehoster.org", true },
{ "sitenv.org", true },
{ "siterencontre.me", true },
{ "sites.google.com", true },
+ { "sitesko.de", true },
{ "sitesuccessful.com", true },
{ "sitevandaag.nl", true },
{ "sitischu.com", true },
@@ -30696,19 +32368,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sivale.mx", true },
{ "sivyerge.com", true },
{ "siw64.com", true },
+ { "sixcorners.info", true },
+ { "sixcorners.net", true },
{ "sixpackholubice.cz", true },
{ "sixtwentyten.com", true },
{ "sj-leisure.com", true },
- { "sja-se-training.com", true },
{ "sjaakgilsingfashion.nl", true },
{ "sjatsh.com", true },
{ "sjd.is", true },
- { "sjdtaxi.com", true },
{ "sjis.me", true },
{ "sjleisure.co.uk", true },
{ "sjoorm.com", true },
{ "sjsmith.id.au", true },
{ "sjv4u.ch", true },
+ { "sjzebs.com", true },
+ { "sjzget.com", true },
+ { "sjzybs.com", true },
{ "sk-net.cz", true },
{ "skala.io", true },
{ "skalarwelle.eu", true },
@@ -30719,7 +32394,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "skatingchina.com", true },
{ "skatn.de", true },
{ "skazka.ru", true },
- { "skday.com", true },
{ "skedda.com", true },
{ "skedr.io", false },
{ "skeeley.com", true },
@@ -30727,7 +32401,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "skepneklaw.com", true },
{ "skepticalsports.com", true },
{ "sketchmyroom.com", true },
- { "sketchywebsite.net", true },
{ "skhaz.io", true },
{ "skhire.co.uk", true },
{ "skhoop.cz", true },
@@ -30738,13 +32411,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "skifttiljutlanderbank.dk", true },
{ "skigebied.nl", true },
{ "skigebiete-test.de", true },
+ { "skill.moe", true },
{ "skilletfood.com", true },
{ "skillled.com", true },
+ { "skillmoe.at", true },
+ { "skillout.org", true },
{ "skills2serve.org", true },
{ "skills2services.com", true },
{ "skillseo.com", true },
{ "skimming.net", true },
{ "skin-cosmetic.eu", true },
+ { "skincare-note.com", true },
{ "skincases.co", true },
{ "skincontracts.co", true },
{ "sking.io", true },
@@ -30759,6 +32436,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "skizzen-zeichnungen.de", true },
{ "skks.cz", true },
{ "sklepsamsung.pl", true },
+ { "sklepwielobranzowymd.com", true },
{ "sklotechnik.cz", true },
{ "sknclinics.co.uk", true },
{ "skogsbruket.fi", true },
@@ -30768,35 +32446,38 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "skolem.de", true },
{ "skoleniphp.cz", true },
{ "skommettiamo.it", true },
- { "skomski.org", true },
{ "skontakt.cz", true },
{ "skontorp-enterprise.no", true },
{ "skortekaas.nl", false },
{ "skory.us", true },
{ "skou.dk", false },
{ "skram.de", true },
- { "skrimix.tk", true },
{ "skryptersi.pl", true },
{ "sksdrivingschool.com.au", true },
{ "sktan.com", true },
{ "skuldwyrm.no", true },
+ { "skutry-levne.cz", true },
+ { "skutry.cz", true },
{ "skwile-cafe.com", true },
{ "skwitko.com", true },
+ { "sky-coach.com", true },
+ { "sky-coach.nl", true },
{ "sky-live.fr", true },
+ { "sky-universe.net", true },
{ "skyanchor.com", true },
- { "skybloom.com", true },
- { "skybloom.io", false },
- { "skybound.link", true },
+ { "skybloom.io", true },
+ { "skycmd.net", true },
{ "skyderby.ru", true },
{ "skydragoness.com", true },
{ "skydrive.live.com", false },
+ { "skyem.co.uk", true },
{ "skylgenet.nl", true },
{ "skylightcreative.com.au", true },
{ "skylinertech.com", true },
{ "skylineservers.com", true },
- { "skylocker.nl", true },
{ "skyloisirs.ch", true },
{ "skyminds.net", true },
+ { "skyn3t.in", true },
{ "skynet233.ch", true },
{ "skynethk.com", true },
{ "skynetnetwork.eu.org", true },
@@ -30806,12 +32487,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "skyris.co", true },
{ "skys-entertainment.com", true },
{ "skysuite.nl", true },
- { "skytec.host", true },
+ { "skyynet.de", true },
{ "skyzimba.com.br", true },
{ "sl-bildermacher.de", true },
{ "sl0.us", true },
{ "sl899.com", true },
{ "sl998.com", true },
+ { "slab.com", false },
{ "slack-files.com", true },
{ "slack.com", true },
{ "sladic.si", false },
@@ -30821,7 +32503,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "slane.cn", false },
{ "slangbellor.com", true },
{ "slanterns.net", true },
- { "slapen17.nl", true },
{ "slash32.co.uk", true },
{ "slashcrypto.org", true },
{ "slate.to", true },
@@ -30831,15 +32512,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "slaughterhouse.fr", true },
{ "slavasveta.info", true },
{ "slaws.io", true },
- { "sld08.com", true },
{ "sleeping.town", true },
{ "sleeplessbeastie.eu", true },
{ "sleepmap.de", true },
+ { "sleeps.jp", true },
{ "sleepstar.co.uk", true },
{ "sleepstar.de", true },
{ "sleepstar.fr", true },
{ "sleestak.net", true },
{ "sleio.com", true },
+ { "sletat.ru", true },
{ "slever.cz", true },
{ "slevermann.de", true },
{ "slevomat.cz", true },
@@ -30848,16 +32530,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "slidebatch.com", true },
{ "slides.zone", true },
{ "slik.ai", true },
+ { "slim-slender.com", true },
{ "slimk1nd.nl", true },
{ "slimspots.com", true },
{ "slingo-sta.com", true },
- { "slingo.com", true },
{ "slingooriginals.com", true },
{ "slingoweb.com", true },
{ "slink.hr", true },
{ "slip-gaming.tk", true },
{ "slneighbors.org", true },
- { "slo-net.net", true },
{ "slo-tech.com", true },
{ "sloancom.com", true },
{ "slonep.net", true },
@@ -30869,14 +32550,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "slotfara.net", true },
{ "sloths.org", true },
{ "slotlist.info", true },
- { "slovenskycestovatel.sk", true },
{ "slow.zone", true },
{ "slowb.ro", true },
{ "slowgames.xyz", true },
{ "slpower.com", true },
{ "slrd-isperih.com", true },
{ "sluciaconstruccion.com", true },
- { "sluimann.de", true },
{ "sluitkampzeist.nl", false },
{ "slusham.com", true },
{ "slvh.fr", true },
@@ -30890,11 +32569,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "smablo.com", true },
{ "smackhappy.com", true },
{ "smadav.ml", true },
+ { "smakassen.no", true },
{ "smallcloudsolutions.co.za", true },
{ "smalldogbreeds.net", true },
{ "smalle-voet.de", true },
{ "smallhadroncollider.com", true },
- { "smallpath.me", true },
{ "smalltalkconsulting.com", true },
{ "smaltimento-rifiuti.org", true },
{ "smaltimento.caserta.it", true },
@@ -30911,6 +32590,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "smart-shapes.co.uk", true },
{ "smart-wohnen.net", true },
{ "smart.gov", true },
+ { "smartacademy.ge", true },
{ "smartairkey.com", true },
{ "smartandcom.ch", true },
{ "smartandhappychild.ro", true },
@@ -30929,6 +32609,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "smartlogreturns.com", true },
{ "smartlogstock.com", true },
{ "smartlogtower.com", true },
+ { "smartmarketingcoaching.com", true },
{ "smartmeal.ru", true },
{ "smartmessages.net", true },
{ "smartmomsmartideas.com", true },
@@ -30936,16 +32617,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "smartphonechecker.co.uk", true },
{ "smartpolicingplatform.com", true },
{ "smartrade.tech", true },
+ { "smartrecruit.ro", true },
{ "smartservices.nl", true },
{ "smartshiftme.com", true },
{ "smartship.co.jp", true },
- { "smartshoppers.es", true },
{ "smartsparrow.com", true },
{ "smartvideo.io", true },
{ "smartviewing.com", true },
+ { "smartwank.com", true },
{ "smartwelve.com", true },
{ "smartwoodczech.cz", true },
- { "smartwritingservice.com", true },
{ "smartwurk.nl", false },
{ "smash-gg.club", true },
{ "smatch.com", true },
@@ -30955,7 +32636,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sme-gmbh.net", true },
{ "smeetsengraas.com", true },
{ "smeso.it", true },
- { "smiatek.name", true },
{ "smileandpay.com", true },
{ "smiledirectsales.com", true },
{ "smilessoftplay.co.uk", true },
@@ -30971,11 +32651,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "smithandcanova.co.uk", false },
{ "smithchow.com", true },
{ "smithfieldbaptist.org", true },
+ { "smkw.com", false },
{ "smm.im", true },
- { "smmcab.website", true },
{ "smmlaba.io", true },
{ "smokeandmirrors.agency", true },
- { "smokinghunks.com", true },
{ "smol.cat", true },
{ "smoo.st", true },
{ "smoothcomp.com", true },
@@ -31000,26 +32679,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "smskeywords.co.uk", true },
{ "smskmail.com", true },
{ "smsprivacy.org", true },
+ { "smtpdev.com", true },
{ "smuncensored.com", true },
{ "smutba.se", true },
{ "smutek.net", true },
+ { "smx.net.br", true },
{ "snackbesteld.nl", true },
{ "snafu.cz", true },
{ "snakafya.com", true },
- { "snake.dog", true },
{ "snap.com", true },
{ "snapappointments.com", true },
{ "snapchat.com", true },
{ "snapfinance.com", true },
{ "snapserv.ch", true },
{ "snapserv.net", true },
- { "snaptools.io", true },
+ { "snaptier.co", true },
{ "snatch.com.ua", true },
{ "snazel.co.uk", true },
{ "snazzie.nl", true },
{ "sncdn.com", true },
{ "sndbouncycastles.co.uk", true },
- { "sneak.berlin", true },
{ "sneakpod.de", true },
{ "sneakynote.com", true },
{ "sneakypaw.com", true },
@@ -31036,8 +32715,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "snelxboxlivegold.nl", true },
{ "snerith.com", true },
{ "snfdata.com", false },
+ { "sngallery.co.uk", true },
+ { "sngeo.com", true },
{ "sniderman.eu.org", true },
- { "sniderman.pro", true },
{ "sniderman.us", true },
{ "sniep.net", true },
{ "snight.co", true },
@@ -31047,6 +32727,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "snl.no", true },
{ "snoerendevelopment.nl", true },
{ "snopyta.com", true },
+ { "snoringhq.com", true },
{ "snote.io", true },
{ "snoupon.com", true },
{ "snow-online.com", true },
@@ -31060,10 +32741,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "snowhaze.ch", true },
{ "snowhaze.com", true },
{ "snowpak.com", true },
- { "snowplane.net", true },
- { "snowraven.de", true },
+ { "snowpaws.de", true },
+ { "snowy.land", true },
{ "snowyluma.me", true },
- { "snrat.com", true },
{ "snrub.co", true },
{ "snuff.porn", true },
{ "snughealth.org.uk", true },
@@ -31074,22 +32754,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "soapitup.com.au", true },
{ "soaringtoglory.com", true },
{ "sobaya-gohei.com", true },
+ { "sobeau.com", true },
{ "sobelift.com", true },
{ "sobersys.com", true },
{ "sobie.ch", true },
{ "sobieray.dyndns.org", true },
{ "sobotkama.eu", true },
- { "sobreporcentagem.com", true },
{ "soc.net", true },
- { "socal-babes.com", true },
- { "soccersavings.com", true },
{ "soccorso-stradale.org", true },
{ "sochi-sochno.ru", true },
{ "sociability.dk", true },
{ "social-events.net", false },
{ "social-media-strategies.it", true },
+ { "social-media-strategy.org.uk", true },
{ "socialhams.net", true },
{ "socializam.com", true },
+ { "socialmarketingday.nl", true },
{ "socialmedia.ro", true },
{ "socialnitro.com", true },
{ "socialnous.co", true },
@@ -31122,9 +32802,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "softanka.com", true },
{ "softart.club", true },
{ "softballrampage.com", true },
+ { "softbebe.com", true },
{ "softcreatr.de", false },
+ { "softonic.com", true },
{ "softplay4hire.co.uk", true },
- { "softplaynation.co.uk", true },
{ "softprayog.in", true },
{ "softrobot.se", true },
{ "softtennis-zenei.com", true },
@@ -31133,13 +32814,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "softwarebetrieb.de", true },
{ "softwaredesign.foundation", false },
{ "softwarevoortherapeuten.nl", true },
+ { "softwaylancing.com", true },
{ "softwerk-edv.de", true },
{ "sogola.com", true },
{ "sogravatas.com.br", true },
{ "sogutma.com.tr", true },
{ "sohamroy.me", true },
+ { "soia.ca", true },
{ "soinvett.com", true },
- { "soju.fi", true },
+ { "sokaissues.info", true },
{ "sokche.com", true },
{ "sokietech.com", true },
{ "sokkenhoek.nl", true },
@@ -31157,6 +32840,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "solarplan-berlin.de", true },
{ "solarstrom.net", true },
{ "soldecom.com", true },
+ { "solden.be", true },
+ { "soldesduck.be", true },
+ { "soldesduck.ch", true },
{ "soldout-app.com", true },
{ "sole-erdwaermetauscher.de", true },
{ "sole-software.de", true },
@@ -31164,29 +32850,33 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "soledadpenades.com", true },
{ "solentbasketball.co.uk", true },
{ "solentbubblesandbounce.co.uk", true },
+ { "solepurposetest.com", true },
{ "soleria.eu", true },
{ "solesoftware.de", true },
{ "soleus.nu", false },
{ "solfegiator.ch", true },
{ "soli.cafe", true },
{ "solicafe.at", true },
+ { "solidarita-kosovo.net", true },
{ "solidshield.com", true },
- { "solidtuesday.com", true },
{ "solihullcarnival.co.uk", true },
{ "solihullinflatables.com", true },
{ "solihulllionsclub.org.uk", true },
{ "solipym.net", true },
{ "solit.systems", true },
+ { "solitairenetwork.com", true },
{ "solmek.co.uk", true },
{ "solmek.com", true },
{ "solomisael.com", true },
{ "solomo.pt", true },
{ "solonotizie24.it", true },
+ { "solos.im", true },
{ "solsocog.de", true },
{ "soluphant.de", true },
{ "solus-project.com", true },
{ "solutionhoisthire.com.au", true },
{ "solvation.de", true },
+ { "solve-it.se", true },
{ "solved.tips", true },
{ "solvemethod.com", true },
{ "solvingproblems.com.au", true },
@@ -31198,9 +32888,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "somanao.com", true },
{ "somcase.com.br", true },
{ "somecrazy.com", true },
+ { "somepills.com", true },
{ "somersetscr.nhs.uk", true },
{ "somersetwellbeing.nhs.uk", true },
- { "somewherein.jp", true },
{ "sommefeldt.com", true },
{ "somosnoticia.com.br", true },
{ "sompani.com", true },
@@ -31217,11 +32907,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "songsmp3.com", true },
{ "songsmp3.info", true },
{ "songsmp3.io", true },
+ { "songsmp3.live", true },
{ "songsmp3.me", true },
{ "songsmp3.net", true },
{ "songsthatsavedyourlife.com", true },
{ "songtianyi.com", true },
{ "songzhuolun.com", true },
+ { "sonia.com.au", true },
{ "soniafauville.com", true },
{ "sonic.studio", true },
{ "sonicdoe.com", true },
@@ -31249,7 +32941,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sorellecollection.com.au", true },
{ "sorenstudios.com", true },
{ "sorever.online", true },
- { "sorex.photo", true },
{ "sorrowfulunfounded.com", true },
{ "sortesim.com.br", true },
{ "soruly.com", true },
@@ -31273,37 +32964,41 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "soukodou.jp", true },
{ "soul-source.co.uk", true },
{ "soulcrazy.org", true },
+ { "soulike.tech", true },
{ "soulmate.dating", true },
{ "soulmating.de", true },
{ "soulogic.com", true },
+ { "souly.cc", true },
{ "soumikghosh.com", true },
{ "soumya92.me", true },
{ "soundabout.nl", true },
- { "soundbytemedia.com", true },
{ "soundedj.com.br", true },
{ "soundeo.com", true },
{ "soundeo.net", true },
- { "soundgasm.net", true },
{ "soundhunter.xyz", false },
+ { "soundonsound.com", true },
+ { "soundprotectionllc.com", true },
{ "soundscrate.com", true },
{ "sour.is", true },
{ "souravsaha.com", true },
- { "sourcebox.be", true },
+ { "sourcebox.be", false },
{ "sourcely.net", true },
{ "sourceway.de", true },
{ "souris.ch", true },
- { "sous-surveillance.net", false },
{ "southafrican.dating", true },
{ "southambouncycastle.co.uk", true },
{ "southamerican.dating", true },
{ "southbankregister.com.au", true },
+ { "southernlights.xyz", true },
{ "southernmost.us", true },
+ { "southernstructuralsolutions.com", true },
{ "southernutahinfluencers.com", true },
{ "southlakenissanparts.com", true },
{ "southmelbourne.apartments", true },
{ "southmorangtownhouses.com.au", true },
{ "southside-crew.com", true },
{ "southside-tuning-day.de", true },
+ { "southsidebargaincenter.com", true },
{ "southwaymotors.com", true },
{ "southwestrda.org.uk", true },
{ "souyidai.com", true },
@@ -31315,10 +33010,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sozai-good.com", true },
{ "sozialy.com", true },
{ "sozon.ca", true },
- { "sp-sephiroth.jp", true },
+ { "sp-sites.com.au", true },
{ "sp.com.pl", true },
{ "sp8ce.co", true },
{ "space-it.de", true },
+ { "space-y.cf", true },
{ "spacebaseapp.com", true },
{ "spacedirectory.org", true },
{ "spacedots.net", true },
@@ -31332,6 +33028,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "spahireleeds.co.uk", true },
{ "spaid.xyz", false },
{ "spakurort.eu", true },
+ { "spaldingwall.com", true },
{ "spamdrain.com", true },
{ "spamwc.de", true },
{ "spanda.io", true },
@@ -31346,6 +33043,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sparklebastard.com", true },
{ "sparkresearch.net", true },
{ "sparkreviewcenter.com", true },
+ { "sparkz.no", true },
{ "sparprofi.at", true },
{ "sparta-en.org", true },
{ "sparta-solutions.de", true },
@@ -31367,9 +33065,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "speargames.net", true },
{ "specialtyalloys.ca", true },
{ "speciesism.com", true },
- { "spectreattack.com", true },
{ "spectrosoftware.de", true },
- { "spedition-transport-umzug.de", true },
{ "speech-balloon.com", true },
{ "speechdrop.net", true },
{ "speechmate.com", true },
@@ -31381,7 +33077,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "speedsportofhull.co.uk", true },
{ "speedtailors.com", true },
{ "speedtest-russia.com", true },
- { "speedychat.it", true },
{ "speeltoneel.nl", true },
{ "speerpunt.info", true },
{ "speets.ca", true },
@@ -31392,29 +33087,36 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "spellcheckci.com", true },
{ "spellchecker.net", true },
{ "spenglerei-shop.de", true },
+ { "sperec.fr", true },
{ "sperohub.com", true },
{ "sperrstun.de", true },
{ "spesys-services.fr", true },
{ "spha.info", true },
{ "sphereblur.com", true },
+ { "spherenix.org", true },
{ "sphido.org", true },
{ "spicydog.org", true },
{ "spicymatch.com", true },
+ { "spidermail.tk", true },
+ { "spidernet.tk", true },
{ "spideroak.com", true },
{ "spiders.org.ua", true },
+ { "spiel-teppich.de", true },
{ "spielezar.ch", true },
{ "spielland.ch", true },
{ "spiellawine.de", true },
+ { "spiet.nl", true },
{ "spiff.eu", true },
{ "spiga.ch", true },
{ "spillersfamily.net", true },
{ "spillmaker.no", false },
{ "spilogkoder.dk", true },
- { "spinalien.net", true },
+ { "spinalien.net", false },
+ { "spinalo.se", true },
{ "spindle.com.ph", true },
{ "spindrift.com", true },
{ "spingenie.com", true },
- { "spinner.dnshome.de", true },
+ { "spinor.im", true },
{ "spins.fedoraproject.org", true },
{ "spinspin.wtf", true },
{ "spiralschneiderkaufen.de", true },
@@ -31435,7 +33137,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "splintermail.com", true },
{ "splitdna.com", true },
{ "splitreflection.com", true },
+ { "splopp.com", true },
{ "splunk.net", true },
+ { "splunk.zone", true },
{ "spodelime.com", true },
{ "spoketwist.com", true },
{ "spoluck.ca", true },
@@ -31445,31 +33149,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "spongepowered.org", true },
{ "sponsor.network", true },
{ "sponsormatch.eu", true },
- { "sponsorowani.pl", true },
{ "spoofhaus.com", true },
{ "spookbook.net", true },
{ "spookquest.com", true },
- { "spookyinternet.com", true },
{ "spoopy.link", true },
+ { "spoorcam.nl", true },
{ "sporcard.com", true },
{ "spornkuller.de", true },
{ "sport-in-sundern.de", true },
{ "sport-potreby.cz", true },
{ "sport-potreby.sk", true },
{ "sport-socken.net", true },
- { "sport247.bet", true },
+ { "sportakrobatik.at", true },
{ "sportbetuwe.nl", true },
{ "sporter.com", true },
- { "sportflash.info", true },
{ "sportnesia.com", true },
{ "sportovnidum.cz", true },
{ "sportparks.com", true },
{ "sportparks.org", true },
- { "sportressofblogitude.com", true },
{ "sports.dating", true },
{ "sportsjaw.com", true },
{ "sportsmansblog.com", true },
{ "sportstraineradvisor.com", true },
+ { "sportstreetstyle.com", true },
{ "sporttown.it", true },
{ "sportugalia.ru", true },
{ "sportvereine.online", true },
@@ -31495,9 +33197,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sprinklermanohio.com", true },
{ "spritmonitor.de", true },
{ "spritsail.io", true },
+ { "sproktz.com", true },
{ "sprucecreekclubs.com", true },
{ "sprucecreekgcc.com", true },
{ "sps-lehrgang.de", true },
+ { "spslawoffice.com", true },
+ { "spsnewengland.org", true },
{ "sptk.org", true },
{ "spuffin.com", true },
{ "spufpowered.com", true },
@@ -31507,7 +33212,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "spydar007.com", true },
{ "spydar007.net", true },
{ "spydersec.com", true },
- { "spykedigital.com", true },
{ "spyprofit.ru", true },
{ "spyroszarzonis.com", true },
{ "sqkaccountancy.co.uk", true },
@@ -31515,6 +33219,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sqlapius.net", true },
{ "sqlfeatures.com", true },
{ "sqr-training.com", true },
+ { "sqroot.eu", true },
{ "squadlinx.com", true },
{ "square-gaming.org", true },
{ "square-src.de", false },
@@ -31533,6 +33238,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "srbija-nekretnine.org", true },
{ "src.fedoraproject.org", true },
{ "srchub.org", true },
+ { "srife.net", true },
+ { "srigc.com", true },
{ "srihash.org", true },
{ "srinivasan.io", true },
{ "sro.center", true },
@@ -31558,7 +33265,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ssc8689.com", true },
{ "ssc8689.net", true },
{ "sscd.no", true },
- { "ssdax.com", true },
+ { "ssdax.com", false },
{ "ssdservers.co.uk", true },
{ "ssenberg.nl", true },
{ "ssh-keys.online", true },
@@ -31583,12 +33290,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sslmate.com", true },
{ "sslok.com", true },
{ "sslping.com", true },
- { "sslpoint.com", true },
{ "ssls.cz", true },
{ "sslsurvey.de", true },
{ "ssmato.me", true },
{ "ssmca.com", true },
{ "ssnet.vip", true },
+ { "sso.to", false },
{ "ssready.io", true },
{ "ssready.org", true },
{ "sstaging.com", true },
@@ -31597,6 +33304,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ssuiteoffice.com", true },
{ "ssuitesoft.com", true },
{ "st-antonius-kuenzell.de", true },
+ { "st-innovationcup.com", true },
{ "st-kilian-markt-erlbach.de", true },
{ "st-news.de", true },
{ "st-shakyo.jp", true },
@@ -31616,40 +33324,41 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stadterneuerung-hwb.de", true },
{ "stadtpapa.de", true },
{ "stadtplan-ilmenau.de", true },
+ { "staer.ro", true },
{ "staff.direct", true },
+ { "staffordlabour.org.uk", true },
{ "stage.wepay.com", false },
{ "stage4.ch", true },
{ "stageirites.com", true },
{ "stageirites.fr", true },
{ "stageirites.org", true },
- { "stahlfors.com", false },
+ { "stahlfors.com", true },
{ "stainedglass.net.au", true },
{ "stair.ch", true },
{ "stairfallgames.com", true },
{ "stairlin.com", true },
+ { "stakestrategy.com", true },
{ "staklim-malang.info", true },
{ "stako.jp", true },
{ "staktrace.com", true },
- { "stalder.work", true },
+ { "staljedevledder.nl", true },
{ "stalker-shop.com", true },
{ "stalkr.net", true },
- { "stall-zur-linde.de", true },
- { "stamboommuller.nl", true },
- { "stamboomvanderwal.nl", true },
{ "stameystreet.com", true },
{ "stamkassa.nl", true },
{ "stammtisch.domains", true },
{ "stamonicatourandtravel.com", true },
{ "stamparmakarije.me", true },
{ "stampederadon.com", true },
+ { "stampsbar.co.uk", true },
{ "standagainstspying.org", true },
{ "standard.co.uk", true },
{ "standardequipment.com", true },
{ "standards.gov", true },
+ { "stanron.com", true },
{ "stanthonymaryclaret.org", true },
{ "star-citizen.wiki", true },
{ "star-clean.it", true },
- { "star-killer.net", true },
{ "starcoachservices.ca", true },
{ "starcomproj.com", true },
{ "stardanceacademy.net", true },
@@ -31660,6 +33369,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stargarder-jungs.de", true },
{ "stargatelrp.co.uk", true },
{ "stargazer.de", true },
+ { "starina.ru", true },
{ "starinvestors.in", true },
{ "starka.st", true },
{ "starkbim.com", true },
@@ -31670,8 +33380,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "starmtech.fr", true },
{ "starpeak.org", true },
{ "starphotoboothsni.co.uk", true },
+ { "starsam80.net", true },
+ { "starsing.bid", true },
{ "starskim.cn", true },
- { "starstreak.net", true },
+ { "starstreak.net", false },
{ "startaninflatablebusiness.com", true },
{ "startergen.com", true },
{ "startlab.sk", true },
@@ -31679,6 +33391,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "startpage.com", true },
{ "startpage.info", true },
{ "startrek.in", true },
+ { "startsamenvitaal.nu", true },
{ "starttraffic.com", true },
{ "starttraffic.uk", true },
{ "startupgenius.org", true },
@@ -31700,22 +33413,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stationatlyndhurst.com", true },
{ "stationatwillowgrove.com", true },
{ "stationcharlie.co.za", true },
+ { "statistik-seminare.de", true },
{ "statistikian.com", true },
{ "statofus.com", true },
{ "stats.g.doubleclick.net", true },
- { "status.coffee", true },
{ "statuscode.ch", true },
{ "stav.io", true },
{ "stavros.ovh", true },
{ "stay.black", true },
{ "stayme.cz", true },
{ "stayschemingco.com", true },
+ { "stb-schefczyk.de", true },
{ "stb-strzyzewski.de", true },
{ "stbennett.org", true },
+ { "stclementmatawan.org", true },
+ { "stclementreligioused.org", true },
+ { "stcplasticsurgery.com", true },
{ "stcu.org", false },
{ "std-home-test.com", true },
{ "stderr.cc", true },
- { "stdev.org", true },
+ { "stdrc.cc", false },
{ "steakhaus-zumdorfbrunnen.de", true },
{ "steakovercooked.com", true },
{ "stealingheather.com", true },
@@ -31732,7 +33449,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "steborio.pw", true },
{ "steckel.cc", true },
{ "stedb.eu", true },
- { "stedbg.net", true },
{ "steef389.eu", true },
{ "steel-roses.de", true },
{ "steelephys.com.au", true },
@@ -31748,7 +33464,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stefanorossi.it", true },
{ "stefanovski.io", true },
{ "stefanvanburen.xyz", true },
- { "stefany.eu", true },
{ "steffentreeservice.com", true },
{ "stegmaier-immobilien.de", true },
{ "steidlewirt.de", true },
@@ -31775,6 +33490,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stephane-huc.net", false },
{ "stephaniedeady.ie", true },
{ "stephanieschreiber.com", true },
+ { "stephansurgicalarts.com", true },
+ { "stephencreilly.com", true },
{ "stephenhaunts.com", true },
{ "stephenhorler.com.au", true },
{ "stephenj.co.uk", true },
@@ -31813,6 +33530,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "steuertipps-sonderausgaben.de", true },
{ "steve.kiwi", true },
{ "steveborba.com", true },
+ { "stevecostar.com", true },
{ "stevedesmond.ca", true },
{ "stevedoggett.com", true },
{ "stevegrav.es", true },
@@ -31831,11 +33549,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stevenz.xyz", true },
{ "stevesdrivingschooltyneside.com", true },
{ "stewartswines.com", true },
- { "stewonet.nl", true },
+ { "stewpolley.com", true },
{ "steyaert.be", false },
- { "stforex.com", true },
+ { "stforex.com", false },
{ "stfw.info", true },
- { "stge.uk", true },
+ { "stian.net", true },
{ "stichtingliab.nl", true },
{ "stichtingscholierenvervoerzeeland.nl", true },
{ "stichtingsticky.nl", true },
@@ -31851,7 +33569,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stift-kremsmuenster.at", true },
{ "stiftemaskinen.no", true },
{ "stigharder.com", true },
- { "stigviewer.com", true },
{ "stijncrevits.be", true },
{ "stijnodink.nl", true },
{ "stikic.me", true },
@@ -31860,6 +33577,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stilecop.com", true },
{ "stillnessproject.com", true },
{ "stilmobil.se", true },
+ { "stiltmedia.com", true },
{ "stimmgabel.lu", true },
{ "stin.hr", true },
{ "stinaspiegelberg.com", true },
@@ -31867,16 +33585,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stintup.com", true },
{ "stipsan.me", true },
{ "stirblaut.de", true },
- { "stirling.co", true },
{ "stirlingpoon.com", true },
{ "stitchfiddle.com", true },
+ { "stitchinprogress.com", true },
{ "stivesbouncycastlehire.co.uk", true },
{ "stjohnin.com", true },
+ { "stjohnsottsville.org", true },
+ { "stjoseph-stcatherine.org", true },
+ { "stjscatholicchurch.org", true },
+ { "stjustin.org", true },
{ "stln.ml", true },
{ "stlu.de", true },
+ { "stlukenh.org", true },
{ "stlukesbrandon.org", true },
{ "stm-net.de", true },
+ { "stma.is", true },
+ { "stmarthachurch.com", true },
{ "stmaryextra.uk", true },
+ { "stmichaellvt.com", true },
+ { "stmkza.net", true },
{ "stmlearning.com", true },
{ "stmsolutions.pl", true },
{ "stneotsbouncycastlehire.co.uk", true },
@@ -31888,7 +33615,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stoebermehl.at", true },
{ "stoffelnet.de", true },
{ "stogiesandmash.com", true },
- { "stoinov.com", true },
{ "stokvistrading.nl", true },
{ "stolin.info", true },
{ "stolina.de", false },
@@ -31896,19 +33622,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stolkschepen.nl", true },
{ "stolpi.is", true },
{ "stomt.com", true },
+ { "stoneagehealth.com.au", true },
{ "stonedworms.de", true },
{ "stonefusion.org.uk", true },
{ "stonehammerhead.org", true },
- { "stonemain.eu", true },
{ "stonewuu.com", true },
{ "stony.com", true },
{ "stonystratford.org", true },
+ { "stopbreakupnow.org", true },
{ "stopbullying.gov", true },
{ "stopfraud.gov", false },
{ "stopthethyroidmadness.com", true },
{ "storageideas.uk", true },
+ { "storageshedsnc.com", true },
{ "stordbatlag.no", true },
{ "storedsafe.com", true },
+ { "storeit.co.uk", true },
{ "storillo.com", true },
{ "storm-family.com", true },
{ "stormi.io", true },
@@ -31936,6 +33665,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "strategiccapital.com", true },
{ "strategiclivingblog.com", true },
{ "strategie-zone.de", true },
+ { "strathewerd.de", true },
{ "stratmann-b.de", true },
{ "stratuscloud.co.za", true },
{ "stratuscloudconsulting.cn", true },
@@ -31949,18 +33679,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "straubis.org", true },
{ "strauser.com", true },
{ "stravers.shoes", true },
+ { "strawberry-laser.gr", true },
{ "streamchan.org", true },
+ { "streamelements.com", true },
+ { "streamkit.gg", true },
{ "streamlineautogroup.com", true },
{ "streampleasure.xyz", true },
- { "streams.dyndns.org", true },
+ { "street-medics.fr", true },
{ "street-smart-home.de", true },
{ "street-tek.com", true },
{ "streetdancecenter.com", true },
+ { "streetmarket.ru", true },
{ "streets.mn", true },
{ "streetshirts.co.uk", true },
{ "streetspotr.com", true },
{ "streetview.wien", true },
{ "strefapi.com", true },
+ { "streklhof.at", true },
+ { "stremio.com", true },
{ "strengthroots.com", true },
{ "stretchmyan.us", true },
{ "stretchpc.com", true },
@@ -31973,38 +33709,42 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "stringtoolbox.com", true },
{ "stringvox.com", true },
{ "stripe.com", true },
+ { "striped.horse", true },
{ "strivephysmed.com", false },
{ "strm.hu", true },
{ "strming.com", true },
{ "strobeltobias.de", true },
- { "strobeto.de", true },
{ "strobotti.com", true },
{ "stroeerdigital.de", true },
{ "stroginohelp.ru", true },
{ "strom.family", true },
+ { "stromaci.sk", true },
{ "stromberger.org", true },
{ "strommenhome.com", true },
+ { "stromzivota.sk", true },
{ "strongpassword.club", true },
{ "strongrandom.com", false },
{ "strongsalpinesucculents.com", true },
{ "strongtowerpc.com", true },
{ "stroomacties.nl", true },
+ { "stroseoflima.com", true },
{ "strozik.de", true },
{ "structurally.net", true },
{ "structure.systems", true },
{ "strugee.net", true },
{ "strutta.me", true },
- { "struxureon.com", true },
{ "strydom.me.uk", true },
{ "stsolarenerji.com", true },
{ "stt.wiki", true },
{ "stuartbell.co.uk", true },
+ { "stuarteggerton.com", true },
{ "stuartmorris.id.au", true },
{ "stuartmorris.me", true },
{ "stuartmorris.name", true },
{ "stuartmorris.tel", true },
{ "stuarts.xyz", false },
{ "stuco.co", true },
+ { "stucorweb.com", true },
{ "stucydee.nl", true },
{ "studenckiemetody.pl", true },
{ "student-eshop.cz", true },
@@ -32024,6 +33764,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "studio-architetto.com", true },
{ "studio-fotografico.ru", true },
{ "studio-webdigi.com", true },
+ { "studiobergaminloja.com.br", true },
{ "studiodentisticosanmarco.it", true },
{ "studiodewit.nl", true },
{ "studiogavioli.com", true },
@@ -32033,6 +33774,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "studiolegalepaternostro.it", true },
{ "studiomarcella.com", true },
{ "studionowystyl.pl", true },
+ { "studiopirrate.com", true },
{ "studiopop.com.br", true },
{ "studioproapp.com", true },
{ "studioriehl.com", true },
@@ -32046,10 +33788,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "studium.cz", true },
{ "studlan.no", true },
{ "studyin.jp", true },
+ { "studyspy.ac.nz", true },
{ "studytactics.com", true },
+ { "studytale.com", true },
{ "stuermer.me", true },
{ "stuetzredli.ch", true },
- { "stuff-fibre.co.nz", true },
{ "stuffi.fr", true },
{ "stuffie.org", true },
{ "stuka-art.de", true },
@@ -32078,12 +33821,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "styles.pm", true },
{ "stylett.ru", true },
{ "stylewish.me", true },
- { "styloeart.com", true },
{ "stypr.com", true },
{ "su1ph3r.io", true },
{ "suaudeau.fr", true },
{ "suaudeau.org", true },
- { "suave.io", true },
{ "sub-net.at", true },
{ "sub.media", true },
{ "subastasdecarros.net", true },
@@ -32105,7 +33846,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "subversive-tech.com", true },
{ "succ.in", true },
{ "succesprojekter.dk", true },
- { "succubus.xxx", true },
{ "suchmaschinen-werkstatt.de", true },
{ "suckmyan.us", false },
{ "sucretown.net", true },
@@ -32115,6 +33855,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sudo-i.net", true },
{ "sudo.org.au", true },
{ "sudo.ws", true },
+ { "sudokian.io", true },
{ "sudoschool.com", true },
{ "suelyonjones.com", true },
{ "suessdeko.de", true },
@@ -32125,15 +33866,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sugarandcloth.com", true },
{ "sugarbrother.com", true },
{ "sugarfactory.cz", true },
+ { "sugarlandkarate.net", true },
+ { "sugarmillmanagement.com", true },
{ "sugarshin.net", true },
{ "suggea.com", true },
{ "suggestim.ch", true },
{ "suisui.stream", true },
+ { "suited21.com", true },
{ "suitesapp.com", true },
+ { "sujal.com", true },
{ "sujatadev.in", true },
{ "sujoydhar.in", true },
+ { "suka.moe", true },
+ { "suke3.jp", true },
{ "suki.moe", true },
{ "suko.pe", true },
+ { "sukoyakapp.com", true },
{ "sukrie.net", true },
{ "suksit.com", true },
{ "sulek.eu", true },
@@ -32153,7 +33901,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sunchasercats.com", true },
{ "sundanceusa.com", true },
{ "sundayfundayjapan.com", true },
- { "sunfeathers.net", true },
+ { "sundayrest.com", true },
+ { "sundragon.se", true },
+ { "sunfiregold.com", true },
{ "sunflyer.cn", false },
{ "sunfox.cz", true },
{ "sunfulong.blog", true },
@@ -32163,22 +33913,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sunlit.cloud", true },
{ "sunn.ie", true },
{ "sunoikisis.org", true },
+ { "sunset.im", true },
{ "sunsetwx.com", true },
{ "sunshinesf.org", true },
{ "sunsmartresorts.com", true },
+ { "sunsong.org", true },
{ "sunstar.bg", true },
{ "sunwolf.studio", true },
- { "sunyataherb.com", true },
{ "suool.net", true },
{ "supa.sexy", true },
{ "supastuds.com", true },
- { "super-erotica.ru", true },
{ "superaficionados.com", true },
{ "superbart.nl", true },
{ "superbdistribute.com", true },
{ "superbouncebouncycastles.com", true },
{ "superbowlkneel.com", true },
- { "superbshare.com", true },
{ "supercalorias.com", true },
{ "supercastlesadelaide.com.au", true },
{ "supercastlesbrisbane.com.au", true },
@@ -32187,19 +33936,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "supercastlessydney.com.au", true },
{ "supercentenarian.com", true },
{ "supercinebattle.fr", true },
+ { "superdaddy.club", true },
{ "supereight.net", true },
{ "superguide.com.au", true },
{ "superhappiness.com", true },
{ "superhome.com.au", true },
+ { "supermae.pt", true },
{ "supermarx.nl", true },
{ "supermercadosdia.com.ar", true },
{ "supermercato24.it", true },
{ "supermil.ch", true },
{ "supern0va.net", true },
{ "supernaut.info", true },
- { "supernt.lt", true },
- { "supersahnetorten.de", true },
- { "supersec.es", true },
{ "supersole.net", true },
{ "supersonnig-festival.de", true },
{ "supersonnigfestival.de", true },
@@ -32211,11 +33959,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "supertechcrew.com", true },
{ "supertutorial.com.br", true },
{ "supervisionassist.com", true },
+ { "superway.es", true },
{ "supeuro.com", true },
- { "supperclub.es", false },
{ "supplementler.com", true },
{ "supplies24.at", true },
{ "supplies24.es", true },
+ { "supplynation.org.au", true },
{ "support.mayfirst.org", false },
{ "supportdesk.nu", true },
{ "supportericking.org", true },
@@ -32226,41 +33975,52 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sur-v.com", true },
{ "surao.cz", true },
{ "surasak.io", true },
+ { "surasak.net", true },
+ { "surasak.org", true },
{ "surdam.casa", false },
{ "sure-it.de", true },
+ { "surefit-oms.com", true },
{ "suretone.co.za", true },
+ { "surfnetkids.com", true },
{ "surfocal.com", true },
{ "surgenet.nl", true },
{ "surgeongeneral.gov", true },
{ "surgicalassociateswny.com", true },
{ "suroil.com", true },
{ "surpreem.com", true },
+ { "surreyheathyc.org.uk", true },
+ { "suruifu.com", true },
+ { "suruifu.tk", true },
{ "survature.com", true },
{ "surveyhealthcare.com", true },
{ "surveyinstrumentsales.com", true },
{ "surveymill.co.uk", true },
+ { "survivalistplanet.com", true },
{ "survivalmonkey.com", true },
- { "survivebox.fr", true },
{ "susanbpilates.co", true },
{ "susanbpilates.com", true },
{ "susann-kerk.de", true },
{ "susanna-komischke.de", true },
+ { "susanvelez.com", true },
{ "susc.org.uk", true },
{ "sush.us", true },
{ "sushi.roma.it", true },
{ "sushibesteld.nl", true },
- { "sushifrick.de", true },
{ "sushikatze.de", true },
+ { "susoccm.org", true },
{ "susosudon.com", true },
{ "suspension-shop.com", true },
{ "sustainabilityknowledgegroup.com", true },
{ "sustainoss.org", true },
{ "sustsol.com", true },
{ "sutas.market", true },
+ { "suttacentral.net", true },
{ "suurhelsinki.cf", true },
{ "suuria.de", true },
+ { "suv4.net", true },
{ "suwalls.com", true },
{ "suzi3d.com", true },
+ { "suziekovner.com", true },
{ "suzukimarinepress.com", true },
{ "sv-1966-medenbach.de", true },
{ "sv-turm-hohenlimburg.de", true },
@@ -32275,7 +34035,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "svc-sitec.org", true },
{ "svdb.co", false },
{ "svdreamcatcher.com", true },
- { "sve-hosting.nl", true },
{ "sveinerik.org", true },
{ "svenbacia.me", true },
{ "svendubbeld.nl", true },
@@ -32286,10 +34045,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "svetandroida.cz", true },
{ "svetlilo.com", true },
{ "svetzitrka.cz", false },
+ { "svht.nl", true },
{ "svijet-medija.hr", true },
{ "svinformatica.es", true },
{ "svm-basketball.de", true },
{ "svm-it.eu", true },
+ { "svobodnyblog.cz", true },
{ "sw-servers.net", true },
{ "sw33tp34.com", true },
{ "swagsocial.net", true },
@@ -32302,8 +34063,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "swat4stats.com", true },
{ "swattransport.ae", true },
{ "sway-cdn.com", true },
- { "sway.com", true },
{ "swd.agency", true },
+ { "sweak.net", true },
{ "swedishhost.com", true },
{ "swedishhost.se", true },
{ "sweep-me.net", true },
@@ -32314,12 +34075,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sweetgood.de", true },
{ "sweets-mimatsu.com", true },
{ "swehack.org", true },
+ { "sweharris.org", true },
+ { "swerve-media-testbed-03.co.uk", true },
{ "swetrust.com", true },
{ "swfmax.com", true },
- { "swiftpk.net", true },
+ { "swiftpcbassembly.com", true },
{ "swiftqueue.com", true },
{ "swilly.org", true },
{ "swimbee.nl", true },
+ { "swimmingpoolaccidentattorney.net", true },
{ "swimready.net", true },
{ "swimwear365.co.uk", true },
{ "swineson.me", true },
@@ -32344,21 +34108,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "switcheo.rocks", true },
{ "switzerland-family-office.com", true },
{ "swordfeng.xyz", true },
+ { "swqa.hu", true },
+ { "swuosa.org", false },
{ "swvaux.com", true },
+ { "swxtd.com", true },
{ "swyn.net", true },
{ "sx8.ovh", true },
{ "sxistolithos.gr", true },
- { "sy-anduril.de", true },
{ "sy24.ru", true },
{ "syajvo.if.ua", true },
+ { "syamutodon.xyz", true },
+ { "syamuwatching.xyz", true },
{ "sycamorememphis.org", true },
- { "sychov.pro", true },
{ "sydney-sehen.com", true },
{ "sydney.dating", true },
{ "sydneyhelicopters.com.au", true },
{ "sydneylawnandturf.com.au", true },
{ "syenar.net", true },
{ "syezd.com.au", true },
+ { "syha.org.uk", true },
{ "syhost.at", true },
{ "syhost.ch", true },
{ "syhost.de", true },
@@ -32367,7 +34135,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "syleam.in", true },
{ "sylfie.net", true },
{ "syllogi.xyz", true },
- { "sylvaincombe.net", true },
{ "sylvaindurand.fr", true },
{ "sylvaindurand.org", true },
{ "sylvaloir.fr", true },
@@ -32382,10 +34149,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "symbiose.com", true },
{ "symbiosecom.ch", true },
{ "symeda.de", true },
- { "symetria.io", true },
{ "symfora-meander.nl", true },
{ "symlnk.de", true },
{ "symphonos.it", true },
+ { "sympmarc.com", true },
+ { "sympraxisconsulting.com", true },
{ "symptome-erklaert.de", true },
{ "synabi.com", true },
{ "synaptickz.me", true },
@@ -32393,10 +34161,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sync-it.no", true },
{ "synccentre.com", true },
{ "syncflare.com", true },
- { "synchrocube.com", true },
{ "synchrolarity.com", true },
{ "synchronyse.com", true },
- { "synchtu.be", true },
{ "syncrise.co.jp", true },
{ "syneart.com", true },
{ "synecek11.cz", true },
@@ -32408,6 +34174,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "synony.me", true },
{ "synotna.eu", true },
{ "syntaxnightmare.com", true },
+ { "syntheticgrassliving.com.au", true },
{ "syntheticurinereview.com", true },
{ "synthetik.com", true },
{ "syoier.com", true },
@@ -32423,7 +34190,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sysmike.de", true },
{ "systea.fr", true },
{ "system-m.de", true },
- { "system-online.cz", true },
{ "system.cf", true },
{ "system.is", true },
{ "system12.pl", true },
@@ -32431,11 +34197,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "systemadmin.uk", true },
{ "systematic-momo.com", true },
{ "systematic-momo.dk", true },
+ { "systemchile.com", true },
{ "systemd.ch", true },
{ "systemd.eu.org", true },
{ "systemeprod.fr", true },
{ "systemintegra.ru", true },
{ "systemli.org", true },
+ { "systemonthego.com", true },
{ "systemreboot.net", true },
{ "systemspace.link", true },
{ "systemweb.no", true },
@@ -32444,19 +34212,24 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "sysystems.cz", true },
{ "syt3.net", true },
{ "sytk.me", true },
+ { "syukatsu-net.jp", true },
{ "syy.im", true },
{ "syzygy-tables.info", true },
{ "szafkirtv.pl", true },
{ "szagun.net", true },
+ { "szaloneigly.com", true },
{ "szamitogepdepo.com", true },
{ "szaydon.me", false },
+ { "szclsya.me", true },
{ "szczot3k.pl", true },
{ "szechenyi2020.hu", true },
{ "szentistvanpt.sk", true },
{ "szerelem.love", true },
+ { "szetowah.org.hk", true },
{ "szunia.com", true },
{ "szybkiebieganie.pl", true },
{ "szyndler.ch", true },
+ { "szzsivf.com", true },
{ "t-hawk.com", true },
{ "t-net.org.hu", true },
{ "t-shirts4less.nl", true },
@@ -32480,6 +34253,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tabarnak.ga", true },
{ "tabernadovinho.com.br", true },
{ "tabhui.com", true },
+ { "tabi-news.com", true },
+ { "tabi-runrun.com", true },
{ "tabithawebb.co.uk", true },
{ "tabledusud.be", true },
{ "tabledusud.nl", true },
@@ -32492,29 +34267,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tachi.uk", true },
{ "tacklinglife.com", true },
{ "tacklog.com", true },
- { "tacomafia.net", false },
+ { "tacomafia.net", true },
{ "tacostea.net", true },
{ "tacticalsquare.com", true },
- { "tadata.me", true },
{ "taddiestales.com", true },
{ "tadeo.ca", true },
+ { "tadiranbatteries.de", true },
{ "tadluedtke.com", true },
{ "tadtadya.com", true },
{ "tadu.de", true },
{ "tagabrand.co.uk", true },
{ "tagdocumentary.com", true },
+ { "tagesmutter-zwitscherlinge.de", true },
{ "taggedpdf.com", false },
{ "taglioepiega.com", true },
{ "taglioepiega.eu", true },
{ "taglioepiega.it", true },
{ "tagpay.com", true },
+ { "tahavu.com", true },
{ "tahosa.co", true },
{ "tahosalodge.org", true },
{ "tai-in.com", true },
{ "tai-in.net", true },
- { "tailandfur.com", true },
{ "tails.boum.org", true },
{ "taimane.com", true },
+ { "taiphanmem.net", true },
{ "taishon.nagoya", true },
{ "taitmacleod.com", true },
{ "taiwan.dating", true },
@@ -32524,7 +34301,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tajper.pl", true },
{ "take1give1.com", false },
{ "takeitoffline.co.uk", true },
- { "takemoto-ped.com", true },
{ "taken.pl", true },
{ "takeshifujimoto.com", true },
{ "takk.pl", true },
@@ -32538,6 +34314,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "talentcast.org", true },
{ "talenthub.co.nz", true },
{ "talentos.pt", true },
+ { "talentwall.io", true },
{ "taler.net", true },
{ "talideon.com", false },
{ "talk.google.com", true },
@@ -32548,7 +34325,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "talktech.com", true },
{ "talktobot.com", true },
{ "talktodarcy.com", true },
- { "talktwincities.com", true },
{ "talkwithyourbaby.org", true },
{ "tallcraft.com", true },
{ "talldude.net", true },
@@ -32556,9 +34332,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tallyfy.com", true },
{ "talon.rip", true },
{ "talroo.com", true },
- { "talsi.eu", true },
{ "talun.de", true },
+ { "tam-moon.com", true },
{ "tamashimx.net", true },
+ { "tamasszabo.net", true },
{ "tambre.ee", true },
{ "tamchunho.com", true },
{ "tamindir.com", true },
@@ -32566,10 +34343,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tampabaybusinesslistings.com", true },
{ "tamposign.fr", true },
{ "tamriel-rebuilt.org", true },
- { "tanak3n.xyz", true },
+ { "tanak3n.xyz", false },
{ "tancredi.nl", true },
{ "tandem-trade.ru", false },
{ "tandempartnerships.com", true },
+ { "tandilmap.com.ar", true },
+ { "tandk.com.vn", true },
{ "tandzorg.link", true },
{ "tangel.me", true },
{ "tangemann.org", true },
@@ -32585,22 +34364,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tankski.co.uk", true },
{ "tannenhof-moelln.de", true },
{ "tannerryan.ca", true },
+ { "tannerwilliamson.com", true },
+ { "tannerwj.com", true },
{ "tantalos.nl", true },
{ "tantei100.net", true },
{ "tanto259.name", false },
{ "tanyanama.com", true },
+ { "tanz-kreativ.de", true },
{ "tanz.info", true },
{ "tanzhijun.com", true },
{ "tanzo.io", true },
{ "taoburee.com", true },
{ "taoways.com", true },
{ "tapakgram.com", true },
+ { "taplamvan.net", true },
{ "taplemon.at", true },
{ "taplemon.com", true },
{ "taprix.org", true },
- { "taqsim.jp", true },
+ { "tapsnapp.co", true },
{ "taquilla.com", true },
{ "taqun.club", true },
+ { "tar-mag.com", true },
{ "tarantul.org.ua", true },
{ "tarasecurity.co.uk", true },
{ "tarasecurity.com", true },
@@ -32612,6 +34396,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tariff.cc", true },
{ "tarik.io", true },
{ "tarmexico.com", true },
+ { "tarots-et-oracles.com", true },
{ "tarsan.cz", true },
{ "tartaneagle.org.uk", true },
{ "tartanhamedshop.com.br", true },
@@ -32627,6 +34412,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "taskutark.ee", true },
{ "tasogarenoinori.net", true },
{ "tass.nu", true },
+ { "tastenewwines.com", true },
{ "tastic.com", true },
{ "tastycake.net", false },
{ "tastystakes.com", true },
@@ -32643,13 +34429,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tavsys.net", true },
{ "tax-guard.com", true },
{ "taxaroo.com", true },
+ { "taxaudit.com", true },
{ "taxi-24std.de", false },
{ "taxi-chamonix.fr", true },
{ "taxi-collectif.ch", true },
{ "taxi-puck.pl", true },
{ "taxi-waregem.be", true },
{ "taxicollectif.ch", true },
- { "taxiindenbosch.nl", true },
+ { "taxid-k.be", true },
{ "taxis-collectifs.ch", true },
{ "taxisafmatosinhos.pt", true },
{ "taxiscollectifs.ch", true },
@@ -32662,24 +34449,25 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tb-devel.de", true },
{ "tb-itf.de", true },
{ "tba.bm", true },
+ { "tbejos.com", true },
{ "tbfocus.com", true },
{ "tbitc.ch", true },
{ "tbonejs.org", true },
- { "tbpixel.com", true },
{ "tbrindus.ca", true },
{ "tbs-certificates.co.uk", true },
{ "tbspace.de", true },
- { "tbtech.cz", true },
{ "tbuchloh.de", true },
{ "tc-st-leonard.ch", true },
{ "tc.nz", true },
{ "tcacademy.co.uk", true },
{ "tcb-a.org", true },
{ "tcb-b.org", true },
+ { "tccmb.com", true },
{ "tcdw.net", true },
{ "tcf.org", true },
{ "tcgforum.pl", true },
{ "tcgrepublic.com", true },
+ { "tchaka.top", true },
{ "tchannels.tv", true },
{ "tchebb.me", true },
{ "tchebotarev.com", true },
@@ -32689,7 +34477,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tcnapplications.com", true },
{ "tcptun.com", true },
{ "tcpweb.net", true },
- { "tcspartner.net", true },
+ { "tcvvip.com", true },
+ { "tcwis.com", true },
{ "tdchrom.com", true },
{ "tdfbfoundation.org", true },
{ "tdrcartuchos.com.br", true },
@@ -32712,6 +34501,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "teahut.net", true },
{ "team-azerty.com", true },
{ "team-bbd.com", true },
+ { "team-pancake.eu", true },
{ "team.house", true },
{ "team3482.com", true },
{ "teambeam.at", true },
@@ -32722,6 +34512,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "teambodyproject.com", true },
{ "teamcombat.com", true },
{ "teamliquidpro.com", true },
+ { "teammateworld.com", true },
{ "teammathics.com", true },
{ "teamnetsol.com", true },
{ "teamninjaapp.com", true },
@@ -32736,7 +34527,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "teamupturn.org", true },
{ "teamusec.de", true },
{ "tearoomlints.be", true },
- { "teasenetwork.com", true },
{ "teaser-trailer.com", true },
{ "teatrarium.com", true },
{ "teb-akademia.pl", true },
@@ -32753,8 +34543,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tech-seminar.jp", true },
{ "tech-value.eu", true },
{ "tech-zealots.com", true },
+ { "techableme.com", true },
{ "techace.jp", true },
{ "techademy.nl", true },
+ { "techamigo.in", true },
{ "techarea.fr", true },
{ "techbelife.com", true },
{ "techbrown.com", true },
@@ -32763,10 +34555,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "techcultivation.de", false },
{ "techcultivation.net", false },
{ "techcultivation.org", false },
- { "techday.co.nz", true },
- { "techday.com", true },
- { "techday.com.au", true },
- { "techday.eu", true },
{ "techdirt.com", true },
{ "techdroid.eu", true },
{ "techendeavors.com", true },
@@ -32778,16 +34566,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "techmajesty.com", true },
{ "techmasters.io", true },
{ "techmunchies.net", false },
+ { "technic3000.com", true },
{ "technicabv.nl", true },
{ "technicalbrothers.cf", true },
{ "technicallyeasy.net", true },
{ "technicalsystemsprocessing.com", true },
{ "techniclab.net", true },
- { "techniclab.org", true },
- { "techniclab.ru", true },
{ "technifocal.com", true },
{ "technik-boeckmann.de", true },
{ "technikblase.fm", true },
+ { "technikman.de", true },
{ "technoinfogroup.it", true },
{ "technologie-innovation.fr", true },
{ "technologyand.me", true },
@@ -32802,12 +34590,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "techosmarcelo.com.ar", true },
{ "techpit.us", true },
{ "techpivot.net", true },
+ { "techpoint.org", true },
{ "techshift.eu", true },
{ "techshift.nl", true },
{ "techshift.se", true },
{ "techsolvency.com", true },
{ "techsys.cz", true },
{ "techtalks.no", true },
+ { "techtrader.ai", true },
+ { "techtrader.io", true },
{ "techtuts.info", true },
{ "techvalue.gr", true },
{ "techview.link", true },
@@ -32816,6 +34607,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "techwithcromulent.com", true },
{ "techwords.io", true },
{ "teckids.org", true },
+ { "tecma.com", true },
{ "tecmarkdig.com", true },
{ "tecne.ws", true },
{ "tecnicoelettrodomestici.roma.it", true },
@@ -32839,7 +34631,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "teemperor.de", true },
{ "teemulintula.fi", true },
{ "teencounseling.com", true },
- { "teenerotic.net", true },
{ "teengirl.pub", true },
{ "teensexgo.com", true },
{ "teesypeesy.com", true },
@@ -32859,9 +34650,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "teknoforums.com", true },
{ "teknolit.com", true },
{ "tekstschrijvers.net", true },
- { "teksuperior.com", true },
{ "tektuts.com", true },
- { "tekuteku.jp", true },
{ "telamon.eu", true },
{ "telamon.fr", true },
{ "tele-alarme.ch", true },
@@ -32889,17 +34678,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "telephonedirectories.us", true },
{ "telepons.com", true },
{ "telework.gov", true },
+ { "tellcorpassessoria.com.br", true },
{ "telling.xyz", true },
{ "tellusaboutus.com", true },
{ "telly.site", true },
{ "tellygames.com", true },
+ { "tellyourtale.com", true },
{ "teloo.pl", true },
{ "telos-analytics.com", true },
- { "teltonica.com", true },
{ "teltru.com", true },
- { "telugu4u.net", true },
{ "tem.li", true },
{ "tematicas.org", true },
+ { "temdu.com", true },
{ "temizmama.com", true },
{ "temnacepel.cz", true },
{ "temp.pm", true },
@@ -32908,7 +34698,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "template-parks.com", true },
{ "templateinvaders.com", true },
{ "templum.com.br", true },
- { "tempus-aquilae.de", true },
{ "tenable.com.au", true },
{ "tenbos.ch", true },
{ "tendance-et-accessoires.com", true },
@@ -32934,6 +34723,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tenthpin.com", true },
{ "tenyx.de", true },
{ "tenzer.dk", true },
+ { "tepid.org", true },
{ "tepitus.de", true },
{ "teplofom.ru", true },
{ "teplomash24.ru", true },
@@ -32943,14 +34733,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "terabyteit.co.uk", true },
{ "teracloud.at", true },
{ "teranacreative.com", true },
- { "tercerapuertoaysen.cl", true },
{ "teriiphotography.com", true },
+ { "teriyakisecret.com", true },
{ "terlindung.com", true },
{ "termax.me", true },
- { "termino.eu", true },
+ { "terminalvelocity.co.nz", true },
+ { "terminsrakning.se", true },
{ "termitemounds.org", true },
{ "termitinitus.org", true },
{ "termografiranje.si", true },
+ { "termux.com", true },
{ "terra.fitness", true },
{ "terrab.de", false },
{ "terracloud.de", false },
@@ -32963,6 +34755,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "terralimno.eu", true },
{ "terraluna.space", true },
{ "terranova-nutrition.dk", true },
+ { "terrapay.com", true },
{ "terrastaffinggroup.com", false },
{ "terraweb.net", true },
{ "terresmagiques.com", true },
@@ -32975,11 +34768,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tescolide.cz", true },
{ "tescoludia.sk", true },
{ "teskalabs.com", true },
+ { "teslamagician.com", true },
{ "tesoro.pr", true },
{ "tessai.ga", true },
{ "test-textbooks.com", true },
{ "test.de", true },
+ { "test.support", true },
{ "testadren.com", true },
+ { "testeveonline.com", true },
{ "testgeomed.ro", true },
{ "testi.info", true },
{ "testomato.com", true },
@@ -32990,6 +34786,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "testuje.net", true },
{ "tetedelacourse.ch", true },
{ "teto.nu", true },
+ { "tetraetc.com", true },
{ "tetraktus.org", true },
{ "tetsugakunomichi.jp", true },
{ "tetsumaki.net", true },
@@ -33040,6 +34837,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tgbyte.de", true },
{ "tgexport.eu", true },
{ "tgmkanis.com", true },
+ { "tgtv.tn", true },
{ "tgui.eu", true },
{ "tgui.net", true },
{ "tgw.com", true },
@@ -33059,6 +34857,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thalgott.net", true },
{ "thalhammer.it", true },
{ "thalia.nu", true },
+ { "thaliagetaway.com.au", true },
{ "thallinger.me", true },
{ "thamesfamilydentistry.com", true },
{ "thanabh.at", true },
@@ -33066,8 +34865,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thanhthinhbui.com", true },
{ "thatdarkplace.com", true },
{ "thatquiz.org", true },
+ { "thatsme.io", true },
{ "thca.ca", true },
{ "thcpbees.co.uk", true },
+ { "the-bermanns.com", true },
{ "the-body-shop.hu", false },
{ "the-fermenter.com", true },
{ "the-gdn.net", true },
@@ -33076,32 +34877,40 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "the-nash-education-program.com", true },
{ "the-pcca.org", true },
{ "the-webmaster.com", true },
+ { "the-woods.org.uk", true },
{ "the-zenti.de", true },
{ "the2f.de", true },
{ "the3musketeers.biz", true },
{ "theactuary.ninja", true },
+ { "theadelaideshow.com.au", true },
{ "theadultswiki.com", true },
{ "thealexandertechnique.co.uk", true },
{ "theankhlife.com", true },
{ "theanticellulitediet.com", true },
+ { "theaps.net", true },
{ "theastrocoach.com", true },
{ "thebakers.com.br", true },
{ "thebakery2go.de", true },
{ "thebannerstore.com", true },
+ { "thebarrens.nu", true },
{ "thebasebk.org", true },
{ "thebcm.co.uk", true },
+ { "thebeginningviolinist.com", true },
{ "thebest.ch", true },
{ "thebestfun.co.uk", true },
+ { "thebestpersonin.ml", true },
{ "thebestsavingsplan.com", true },
{ "thebigbitch.nl", true },
{ "thebigdatacompany.com", true },
{ "thebigwave.de", true },
{ "thebikeinsurer.co.uk", true },
{ "thebimhub.com", true },
+ { "thebinarys.com", true },
{ "thebirthdaysite.co.uk", true },
{ "thebit.link", true },
{ "theblackknightsings.com", true },
{ "theblondeabroad.com", true },
+ { "theblueroofcottage.ca", true },
{ "thebodyprinciple.com", true },
{ "thebonerking.com", true },
{ "thebouncedepartment.co.uk", true },
@@ -33110,16 +34919,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thebreakroom.org", true },
{ "thebrightons.co.uk", true },
{ "thebrightons.uk", true },
+ { "thebulletin.io", true },
{ "thebusinessofgoodfilm.com", true },
{ "thecamels.org", true },
{ "thecameradivision.com", true },
- { "thecandidforum.com", true },
{ "thecarolingconnection.com", true },
{ "thecellulitediet.com", true },
{ "thecherryship.ch", true },
{ "thechunk.net", true },
- { "theciderlink.com.au", true },
- { "thecitizens.com", true },
{ "thecitywarehouse.clothing", true },
{ "thecloudshelter.com", true },
{ "thecoffeecamp.com", true },
@@ -33128,6 +34935,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thecompany.pl", true },
{ "theconcordbridge.azurewebsites.net", true },
{ "thecondobuyers.com", true },
+ { "thecookiejar.me", true },
{ "thecozycastle.com", true },
{ "thecrazytravel.com", true },
{ "thecrew-exchange.com", true },
@@ -33137,14 +34945,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thecuriousdev.com", true },
{ "thecurvyfashionista.com", true },
{ "thecustomdroid.com", true },
- { "thecustomizewindows.com", true },
{ "thedark1337.com", true },
{ "thedebug.life", true },
{ "thederminstitute.com", true },
+ { "thediamondcenter.com", true },
{ "thediaryofadam.com", true },
{ "thedisc.nl", true },
{ "thediscovine.com", true },
{ "thedocumentrefinery.com", true },
+ { "thedom.site", true },
{ "thedreamtravelgroup.co.uk", true },
{ "thedronechart.com", true },
{ "thedutchmarketers.com", true },
@@ -33152,32 +34961,37 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "theeducationchannel.info", true },
{ "theeducationdirectory.org", true },
{ "theeighthbit.com", true },
- { "theel0ja.info", true },
{ "theel0ja.ovh", true },
{ "theemasphere.com", true },
+ { "thefairieswantmedead.com", true },
{ "thefanimatrix.net", true },
+ { "thefashionpolos.com", true },
{ "thefasterweb.com", true },
{ "thefbstalker.com", true },
{ "thefengshuioffice.com", true },
{ "theferrarista.com", true },
+ { "thefilmphotography.com", true },
{ "theflowerbasketonline.com", true },
+ { "theflowershopdeddington.com", true },
{ "theflyingbear.net", true },
{ "thefnafarchive.org", true },
- { "thefox.com.fr", true },
+ { "theforkedspoon.com", true },
+ { "thefourthmoira.com", true },
{ "thefrk.pw", true },
+ { "thefuckingtide.com", true },
{ "thefunfirm.co.uk", true },
{ "thefurnitureco.uk", true },
{ "thegarrowcompany.com", true },
- { "thegcccoin.com", true },
{ "thegeekdiary.com", true },
{ "thegioinano.com", true },
+ { "thegospelforgeeks.org", true },
{ "thegrape.ro", true },
{ "thegreatpakistan.com", true },
{ "thegreatplains.com", true },
{ "thegreenfields.se", true },
{ "thegreenmanpottery.com", true },
{ "thegreenpark.co.uk", true },
- { "thegreens.us", true },
+ { "thegrs.com", true },
{ "theguitarcompany.nl", true },
{ "thegvoffice.net", true },
{ "thegym.org", true },
@@ -33191,6 +35005,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thehivedesign.org", true },
{ "thehomeicreate.com", true },
{ "thehookup.be", true },
+ { "thehoryzon.com", true },
{ "thehotfix.net", true },
{ "thehotness.tech", true },
{ "thehouseofgod.org.nz", true },
@@ -33203,15 +35018,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "theinitium.com", true },
{ "theintercept.com", true },
{ "theinternationalgeekconspiracy.eu", true },
- { "thej0lt.com", true },
{ "thejacksoninstitute.com.au", true },
{ "thekev.in", true },
{ "thekeytobusiness.co.uk", true },
{ "thekindplate.ca", true },
{ "thekingofhate.com", true },
+ { "thekovnerfoundation.org", true },
{ "thelaimlife.com", true },
{ "thelanscape.com", true },
{ "thelastsurprise.com", true },
+ { "thelatedcult.com", true },
+ { "thelearningenterprise.co.uk", true },
{ "thelegionshirley.co.uk", true },
{ "thelinuxtree.net", true },
{ "thelittlecraft.com", true },
@@ -33221,14 +35038,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "themacoaching.nl", true },
{ "themallards.info", true },
{ "themarshallproject.org", true },
- { "themeaudit.com", true },
+ { "themaster.site", true },
{ "themecraft.studio", true },
{ "themefoxx.com", true },
{ "themetacity.com", true },
- { "themilanlife.com", true },
+ { "themigraineinstitute.com", true },
{ "themillerslive.com", true },
{ "themimitoof.fr", true },
{ "themist.cz", true },
+ { "themobilestuffs.com", true },
{ "themoep.at", true },
{ "themoneyconverter.com", true },
{ "themonkeytrail.co.uk", true },
@@ -33238,9 +35056,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "themusicinnoise.net", true },
{ "thenanfang.com", true },
{ "thenarcissisticlife.com", true },
+ { "theneatgadgets.com", true },
{ "thenexwork.com", true },
{ "thenib.com", true },
- { "thenichecast.com", true },
{ "thenocman.com", true },
{ "thenovaclinic.com", true },
{ "thenowheremen.com", true },
@@ -33265,6 +35083,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thepaulagcompany.com", true },
{ "thepaymentscompany.com", true },
{ "thepb.in", true },
+ { "thepeninsulaires.com", true },
{ "thephonecaseplace.com", true },
{ "thephp.cc", true },
{ "thepiabo.ovh", true },
@@ -33275,9 +35094,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "theplaydaysbus.co.uk", true },
{ "theplayspot.co.uk", true },
{ "theploughharborne.co.uk", true },
+ { "thepoplarswines.com.au", true },
{ "thepostoffice.ro", true },
{ "thepriorybandbsyresham.co.uk", true },
+ { "theproductpoet.com", true },
{ "thepromisemusic.com", true },
+ { "thepurem.com", true },
+ { "thepythianseed.com", true },
{ "theragran.co.id", true },
{ "theralino.de", true },
{ "theramo.re", true },
@@ -33287,6 +35110,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "therapysxm.com", true },
{ "therealcost.gov", true },
{ "thereaper.net.au", true },
+ { "theregoesbrian.com", true },
+ { "thereisnocloud.fr", true },
+ { "therepublicofliverpool.com", true },
{ "theresa-mayer.eu", true },
{ "therevenge.me", true },
{ "therewill.be", true },
@@ -33294,17 +35120,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thermity.com", true },
{ "thermolamina.nl", true },
{ "theroks.com", true },
+ { "theropes.nyc", true },
{ "theroyalmarinescharity.org.uk", true },
+ { "therugswarehouse.co.uk", true },
{ "theruizes.com", true },
{ "theruleslawyer.net", true },
{ "therumfordcitizen.com", true },
{ "thesalonthing.com", false },
- { "thesassynut.com", true },
+ { "thesarogroup.com", true },
{ "thesaturdaypaper.com.au", true },
{ "thesaurus.net", true },
{ "theschool.jp", true },
{ "thescientists.nl", true },
- { "thesecondsposts.com", true },
+ { "thesecondsposts.com", false },
{ "theseed.io", true },
{ "theseedbox.xyz", true },
{ "theseletarmall.com", true },
@@ -33317,6 +35145,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thesharepointfarm.com", true },
{ "theshield.in", true },
{ "theshine.pl", true },
+ { "theshopally.com", false },
{ "thesignacademy.co.uk", true },
{ "thesignalco.com.au", true },
{ "thesimplifiers.com", true },
@@ -33327,10 +35156,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thesmokingcuban.com", true },
{ "thesocialmediacentral.com", true },
{ "thesplashlab.com", true },
+ { "thesslstore.com", true },
{ "thestationatwillowgrove.com", true },
{ "thesteins.org", false },
{ "thestoneage.de", true },
- { "thestoritplace.com", true },
{ "thestory.ie", true },
{ "thestoryshack.com", true },
{ "thestral.pro", true },
@@ -33342,11 +35171,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "theswissbay.ch", true },
{ "thetechnical.me", true },
{ "thetenscrolls.com", true },
+ { "thethreepercent.marketing", true },
{ "thetomharling.com", true },
- { "thetradinghall.com", true },
{ "thetree.ro", true },
{ "thetrendspotter.net", true },
{ "thetuxkeeper.de", false },
+ { "thetvtraveler.com", true },
{ "theunitedstates.io", true },
{ "thevacweb.com", true },
{ "thevalentineconstitution.com", true },
@@ -33355,7 +35185,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thewarrencenter.org", true },
{ "thewaxhouse.academy", true },
{ "thewaxhouse.de", true },
- { "thewaxhouse.shop", true },
{ "thewebdexter.com", true },
{ "thewebflash.com", true },
{ "thewebsitedoctors.co.uk", true },
@@ -33366,10 +35195,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thewinstonatlyndhurst.com", true },
{ "thewoodkid.com.au", true },
{ "thewoolroom.com.au", true },
+ { "theworldexchange.com", true },
+ { "theworldexchange.net", true },
+ { "theworldexchange.org", true },
{ "theworldsend.eu", true },
{ "thexfactorgames.com", true },
{ "thexme.de", true },
{ "theyachtteam.com", true },
+ { "theyakshack.co.uk", true },
{ "theyarnhookup.com", false },
{ "theyear199x.org", true },
{ "theyearinpictures.co.uk", true },
@@ -33378,12 +35211,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thezillersathenshotel.com", true },
{ "thiagohersan.com", true },
{ "thibaultwalle.com", true },
- { "thibautcharles.net", true },
- { "thienteakee.com", true },
{ "thiepcuoidep.com", true },
{ "thiepxinh.net", true },
{ "thierry-daellenbach.com", true },
{ "thierrybasset.ch", true },
+ { "thierryhayoz.ch", true },
{ "thijsalders.nl", false },
{ "thijsbekke.nl", true },
{ "thijsslop.nl", true },
@@ -33391,26 +35223,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thinegen.de", true },
{ "thingies.site", true },
{ "thingsimplied.com", true },
+ { "thingsof.org", true },
{ "think-asia.org", true },
{ "think-positive-watches.de", true },
+ { "thinkforwardmedia.com", true },
{ "thinkheaddesign.com", true },
{ "thinkindifferent.net", true },
{ "thinkingandcomputing.com", true },
{ "thinkingliberty.com", true },
{ "thinkingplanet.net", true },
- { "thinklikeanentrepreneur.com", true },
{ "thinkmarketing.ca", true },
{ "thinkquality.nl", true },
{ "thinkrealty.com", true },
{ "thinktux.net", true },
{ "thirdbearsolutions.com", true },
+ { "thirdworld.moe", true },
{ "thiry-automobiles.net", true },
{ "thisbrownman.com", true },
{ "thiscloudiscrap.com", false },
{ "thiscode.works", true },
{ "thisdot.site", true },
{ "thisfreelife.gov", true },
+ { "thisisgrey.com", true },
{ "thisishugo.com", true },
+ { "thisisthefinalact.com", true },
{ "thisistheserver.com", true },
{ "thisiswhywemom.com", true },
{ "thismatter.com", true },
@@ -33423,38 +35259,39 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thomalaudan.de", true },
{ "thomas-bertran.com", true },
{ "thomas-fahle.de", true },
+ { "thomas-prior.com", true },
{ "thomas-sammut.com", true },
{ "thomas-suchon.fr", true },
{ "thomas.love", false },
{ "thomasbeckers.be", true },
{ "thomasbreads.com", false },
+ { "thomasduerlund.com", true },
{ "thomasduerlund.dk", true },
+ { "thomasetsophie.fr", true },
{ "thomaseyck.com", true },
{ "thomasfoster.co", true },
- { "thomasgriffin.io", true },
{ "thomashunter.name", false },
{ "thomasmcfly.com", true },
+ { "thomasmeester.nl", false },
+ { "thomasmerritt.de", true },
{ "thomassen.sh", false },
{ "thomasstevensmusic.com", true },
{ "thomastimepieces.com.au", true },
{ "thomasverhelst.be", true },
{ "thomasvochten.com", true },
{ "thomaswoo.com", true },
- { "thompsonfamily.cloud", true },
{ "thomsonscleaning.co.uk", true },
{ "thomspooren.nl", true },
{ "thomwiggers.nl", true },
{ "thor.edu", true },
{ "thor.re", true },
{ "thoroquel.org", true },
+ { "thoroughbreddiesel.com", true },
{ "thorsten-schaefer.com", true },
{ "thorstenschaefer.name", true },
{ "thosci.com", true },
{ "thotpublicidad.com", true },
{ "thoughtlessleaders.online", true },
- { "thoughtsynth.com", true },
- { "thoughtsynth.net", true },
- { "thoughtsynth.org", true },
{ "thouni.de", true },
{ "thousandgreens.com", true },
{ "thousandoakselectrical.com", true },
@@ -33463,7 +35300,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thousandoakslighting.com", true },
{ "thousandoaksoutdoorlighting.com", true },
{ "thpay.com", true },
+ { "threatcon.io", true },
{ "threatmarket.com", true },
+ { "threatnix.io", true },
{ "threatworking.com", true },
{ "threecrownsllp.com", true },
{ "threedpro.me", true },
@@ -33484,14 +35323,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thuisverpleging-meerdael.be", true },
{ "thullbery.com", true },
{ "thummer.net", true },
+ { "thunderfield-boat.co.uk", true },
{ "thunderkeys.net", true },
{ "thundr.eu", true },
{ "thunraz.com", true },
- { "thusoy.com", false },
+ { "thusoy.com", true },
{ "thuthuatios.com", true },
{ "thuviensoft.com", true },
- { "thuviensoft.net", true },
- { "thuybich.com", true },
{ "thw-bernburg.de", true },
{ "thxandbye.de", true },
{ "thycotic.ru", true },
@@ -33500,7 +35338,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "thzone.net", true },
{ "ti-pla.net", true },
{ "ti-planet.org", true },
- { "tiacollection.com", true },
{ "tiagonunes.pt", true },
{ "tiaki.org", true },
{ "tianeptine.com", true },
@@ -33509,14 +35346,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tibipg.com", true },
{ "tibovanheule.space", true },
{ "ticfleet.com", true },
+ { "tichieru.pw", true },
{ "ticketassist.nl", true },
{ "ticketluck.com", true },
{ "ticketmates.com.au", true },
- { "ticketpro.ca", true },
+ { "ticketmaze.com", true },
+ { "ticketpro.ca", false },
+ { "ticketrunway.com", true },
{ "ticketslover.com", true },
{ "ticketsmate.com", true },
{ "ticketsource.co.uk", true },
{ "ticketsource.eu", true },
+ { "ticketsource.io", true },
{ "ticketsource.us", true },
{ "ticketsourcebeta.co.uk", true },
{ "ticketsvergleichen.de", true },
@@ -33524,13 +35365,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tid.jp", true },
{ "tidycustoms.net", true },
{ "tielectric.ch", true },
- { "tiendafetichista.com", true },
{ "tiendavertigo.com", true },
{ "tiens-ib.cz", true },
{ "tier-1-entrepreneur.com", true },
{ "tierarztpraxis-bogenhausen.de", true },
{ "tierarztpraxis-weinert.de", true },
{ "tiernanx.com", true },
+ { "tierraprohibida.net", true },
{ "ties.com", true },
{ "tiew.pl", true },
{ "tifan.net", true },
@@ -33548,7 +35389,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tijo.ch", true },
{ "tik.edu.ee", true },
{ "tik.help", true },
- { "tiki-god.co.uk", true },
{ "tildes.net", true },
{ "tildesnyder.com", true },
{ "tiledailyshop.com", true },
@@ -33563,12 +35403,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tillberg.us", true },
{ "tilleysbouncycastles.co.uk", true },
{ "tillseasyscore.com", true },
+ { "tilosp.de", true },
+ { "tilta.com", true },
{ "tiltedwindmillcrafts.com", true },
{ "timbarlotta.com", true },
{ "timberkel.com", true },
+ { "timbers.space", true },
{ "timbishopartist.com", true },
{ "timbrust.de", true },
- { "timdebruijn.nl", true },
+ { "timco.cloud", true },
{ "timdeneau.com", true },
{ "timdoug.com", true },
{ "time.gov", true },
@@ -33585,6 +35428,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "timetotrade.com", true },
{ "timewasters.nl", true },
{ "timfiedler.net", true },
+ { "timhieuthuoc.com", true },
{ "timing.com.br", true },
{ "timjk.de", true },
{ "timmersgems.com", true },
@@ -33595,11 +35439,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "timoso.de", true },
{ "timothybjacobs.com", true },
{ "timoxbrow.com", true },
+ { "timsayedmd.com", true },
{ "timtaubert.de", true },
{ "timtelfer.com", true },
- { "timtj.ca", true },
{ "timvivian.ca", true },
- { "timweb.ca", true },
+ { "timysewyn.be", true },
+ { "tina.media", true },
{ "tinastahlschmidt.de", true },
{ "tindallriley.co.uk", true },
{ "tinf15b4.de", true },
@@ -33627,6 +35472,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tioat.net", true },
{ "tipaki.gr", true },
{ "tipbox.is", true },
+ { "tipe.io", true },
{ "tiplanet.org", true },
{ "tipoftheday.tips", true },
{ "tippytoad.com", true },
@@ -33639,15 +35485,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tirlins.com", true },
{ "tiroler-kupferschmiede.com", true },
{ "tirs4ne.ch", true },
+ { "tis.ph", true },
{ "tischlerei-klettke.de", true },
{ "tissot-mayenfisch.com", true },
{ "tit-cdn.de", true },
+ { "tit-dev.de", true },
{ "tit-dns.de", true },
{ "tit-mail.de", true },
{ "tit.systems", true },
{ "titandirect.co.uk", true },
{ "titanous.com", true },
- { "titanpointe.org", true },
{ "titansized.com", true },
{ "titanwaterproofing.com.au", true },
{ "titelseite.ch", true },
@@ -33658,8 +35505,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tivido.nl", true },
{ "tiwag.at", true },
{ "tixeconsulting.com", true },
+ { "tixify.com", true },
{ "tjampoer.com", true },
- { "tjandpals.com", true },
{ "tjenestetorvet.dk", true },
{ "tjkcastles.uk", true },
{ "tjl.rocks", true },
@@ -33676,8 +35523,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tkn.tokyo", true },
{ "tkusano.jp", true },
{ "tkw01536.de", false },
+ { "tl.gg", true },
{ "tlca.org", true },
- { "tlcnet.info", true },
{ "tlehseasyads.com", true },
{ "tleng.de", true },
{ "tlo.xyz", true },
@@ -33690,6 +35537,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tlthings.net", true },
{ "tlumaczenie.com", true },
{ "tlys.de", true },
+ { "tmakiguchi.org", true },
{ "tmberg.cf", true },
{ "tmberg.ga", true },
{ "tmberg.gq", true },
@@ -33700,6 +35548,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tmcpromotions.co.uk", true },
{ "tmcreationweb.com", true },
{ "tmdb.biz", true },
+ { "tmdc.ddns.net", true },
{ "tmf.ru", true },
{ "tmhr.moe", true },
{ "tmi-products.eu", true },
@@ -33709,6 +35558,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tmonitoring.com", true },
{ "tmpraider.net", true },
{ "tmpsantos.com.br", true },
+ { "tmsdiesel.com", true },
{ "tmtopup.com", true },
{ "tn0.club", true },
{ "tndentalwellness.com", true },
@@ -33717,11 +35567,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tnl.cloud", true },
{ "tntmobi.com", true },
{ "tny.link", true },
- { "to2mbn.org", true },
+ { "toabsentfamily.com", true },
{ "toad.ga", true },
{ "toast.al", false },
{ "tob-rulez.de", true },
{ "tobacco.gov", true },
+ { "tobaccolocker.com", true },
{ "tobedo.net", true },
{ "tober-cpag.de", true },
{ "tobi-mayer.de", true },
@@ -33740,12 +35591,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tobiashorvath.de", true },
{ "tobiaskorf.de", true },
{ "tobiaspahlings.de", true },
+ { "tobiassachs.de", true },
{ "tobiassattler.com", true },
+ { "tobiaswiese.com", true },
{ "tobiemilford.com", true },
{ "tobis-rundfluege.de", true },
- { "tobis-webservice.de", true },
{ "tobischo.de", true },
- { "tobisworld.ch", true },
{ "tobyalden.com", true },
{ "tobyx.com", true },
{ "tobyx.de", true },
@@ -33764,30 +35615,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "todocracy.com", true },
{ "todoescine.com", true },
{ "todoist.com", true },
- { "todokete.ga", true },
{ "todon.fr", true },
+ { "todoscheduler.de", true },
+ { "todoscheduler.org", true },
{ "toeglhofer.at", true },
{ "toeightycountries.com", true },
{ "toekomstperspectief.be", true },
{ "toerclub-ing-arnhem.nl", true },
{ "toetsplatform.be", true },
{ "tofe.io", true },
- { "tofilmhub.com", true },
{ "tofu.cf", true },
{ "togech.jp", true },
{ "togetter.com", true },
{ "toheb.de", false },
{ "tohokinemakan.tk", true },
- { "tohokufd.com", true },
{ "tokaido-kun.jp", true },
{ "tokaido.com", true },
{ "tokainafb.net", true },
{ "tokainakurasi.net", true },
{ "tokbijouxs.com.br", true },
+ { "tokenmarket.net", true },
{ "tokens.net", true },
- { "tokfun.com", true },
{ "tokic.hr", true },
{ "tokinoha.net", true },
+ { "tokintu.com", true },
{ "tokio.fi", true },
{ "tokka.com", true },
{ "tokke.dk", true },
@@ -33811,10 +35662,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tom-kunze.de", true },
{ "tom-maxwell.com", true },
{ "tom.horse", true },
+ { "tom.je", true },
{ "tomabrafix.de", true },
+ { "tomahawk.ca", true },
+ { "tomandmara.com", true },
{ "tomarns.nl", true },
{ "tomasjacik.cz", true },
- { "tomaskavalek.cz", true },
+ { "tomaskavalek.cz", false },
{ "tomaspatera.cz", true },
{ "tomaspialek.cz", true },
{ "tomasvecera.cz", true },
@@ -33822,11 +35676,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tomatenaufdenaugen.de", true },
{ "tomatis-nantes.com", true },
{ "tomaw.net", true },
- { "tomaz.eu", true },
{ "tombaker.me", true },
{ "tomberek.info", true },
{ "tombrossman.com", true },
- { "tomcort.com", true },
{ "tomd.ai", true },
{ "tomdudfield.com", true },
{ "tomend.es", true },
@@ -33848,7 +35700,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tommic.eu", true },
{ "tomnatt.com", true },
{ "tomo.gr", false },
- { "tomochun.net", true },
{ "tomosm.net", true },
{ "tomoyaf.com", true },
{ "tomravinmd.com", true },
@@ -33857,6 +35708,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "toms.ovh", true },
{ "tomschlick.com", true },
{ "tomsdevsn.me", true },
+ { "tomspdblog.com", true },
{ "tomssl.com", true },
{ "tomticket.com", true },
{ "tomudding.com", true },
@@ -33866,12 +35718,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tomwassenberg.nl", true },
{ "tomwiggers.nl", false },
{ "tomwilson.io", true },
- { "tomy.icu", true },
{ "tomyork.net", true },
{ "tonabor.ru", true },
{ "tonage.de", true },
{ "toncusters.nl", true },
{ "tondles.com", true },
+ { "tone.tw", true },
{ "tonegidoarchief.nl", true },
{ "toner24.at", true },
{ "toner24.co.uk", true },
@@ -33895,7 +35747,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tonkinson.com", true },
{ "tonkinwilsonvillenissanparts.com", true },
{ "tonnycat.com", true },
- { "tono.us", true },
{ "tonsit.com", true },
{ "tonsit.org", true },
{ "tontonnews.net", true },
@@ -33914,22 +35765,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tools.pro", true },
{ "toolsense.io", true },
{ "toom.io", true },
+ { "toomy.ddns.net", true },
{ "toonpool.com", true },
{ "toonsburgh.com", true },
{ "toool.nl", true },
{ "toool.org", true },
+ { "tooolroc.org", false },
+ { "toot.center", true },
{ "toothdoc.ca", true },
{ "tooti.biz", true },
{ "top-esb.com", true },
{ "top-obaly.cz", true },
{ "top-opakowania.pl", true },
- { "top-solar-info.de", true },
- { "top9.fr", true },
+ { "top5hosting.co.uk", true },
{ "topaxi.ch", true },
{ "topaxi.codes", true },
+ { "topbigdeals.com", true },
{ "topbounce.com", true },
{ "topbouncycastles.co.uk", true },
{ "topbrakes.com", true },
+ { "topciderska-crkva.rs", true },
{ "topclassfun.ie", true },
{ "topdesk.net", true },
{ "topdogsinflatables.co.uk", true },
@@ -33942,27 +35797,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "topicit.net", true },
{ "topirishcasinos.com", true },
{ "topjobs.ch", true },
+ { "topkek.ml", true },
+ { "toplist.cz", true },
{ "toplist.eu", true },
{ "topnotepad.com", true },
{ "topodin.com", true },
{ "toponlinecasinosites.co.uk", true },
+ { "toppointrea.com", true },
{ "topprice.ua", true },
+ { "topsailtechnologies.com", true },
{ "topservercccam.tv", true },
{ "topshelfcommercial.com", true },
- { "topshoptools.com", true },
{ "topsteaks-daun.de", true },
{ "toptec.net.br", true },
{ "toptexture.com", true },
{ "toptheto.com", true },
{ "topvertimai.lt", true },
+ { "topwin.la", true },
{ "topwindowcleaners.co.uk", true },
{ "topworktops.co.uk", true },
{ "toracon.org", true },
{ "torahanytime.com", true },
- { "torbe.es", true },
{ "torchantifa.org", true },
{ "toreni.us", true },
{ "toretame.jp", true },
+ { "torg-room.ru", true },
{ "torkware.com", true },
{ "tormakristof.eu", true },
{ "tormentedradio.com", false },
@@ -33984,9 +35843,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "torsten-schmitz.net", true },
{ "torstensenf.de", true },
{ "torte.roma.it", true },
+ { "tortocan.com", true },
{ "tortoises-turtles.com", true },
{ "tortugan.com.br", true },
{ "tosainu.com.br", true },
+ { "tosamja.net", true },
{ "toscer.me", false },
{ "toschool.com.br", true },
{ "toshen.com", true },
@@ -33995,7 +35856,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tosostav.cz", true },
{ "tosteberg.se", true },
{ "tostu.de", true },
- { "totaku.ru", true },
{ "totalbeauty.co.uk", true },
{ "totalbike.com.br", true },
{ "totalcarcheck.co.uk", true },
@@ -34021,6 +35881,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "touchwoodtrees.com.au", true },
{ "tougetu.com", true },
{ "touhou.ac.cn", true },
+ { "touhou.cc", true },
{ "touhou.fm", true },
{ "touhouwiki.net", true },
{ "toujours-actif.com", true },
@@ -34042,6 +35903,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "toutart.ch", true },
{ "toutenmusic.fr", true },
{ "toutmonexam.fr", true },
+ { "toutvendre.be", true },
+ { "toutvendre.ch", true },
+ { "toutvendre.cm", true },
+ { "toutvendre.es", true },
+ { "toutvendre.fr", true },
+ { "toutvendre.lu", true },
+ { "toutvendre.pics", true },
+ { "toutvendre.uk", true },
+ { "toutvendre.us", true },
{ "tovare.com", true },
{ "toverland-tickets.nl", true },
{ "tovp.org", true },
@@ -34049,7 +35919,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "townandcountryus.com", true },
{ "townhousedevelopments.com.au", true },
{ "townhouseregister.com.au", true },
- { "townofbridgewater.ca", true },
{ "towsonroofers.com", true },
{ "towywebdesigns.uk", true },
{ "tox21.gov", false },
@@ -34060,7 +35929,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tp-kabushiki.com", true },
{ "tp-kyouyufudousan.com", true },
{ "tp-law.jp", true },
- { "tpansino.com", true },
{ "tpbproxy.co", true },
{ "tpci.biz", true },
{ "tpidg.us", true },
@@ -34079,18 +35947,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "trace.moe", true },
{ "traceheatinguk.co.uk", true },
{ "tracelight.io", true },
+ { "tracemyplace.com", true },
{ "traceroute.guru", true },
{ "traceroute.link", true },
{ "traceroute.network", true },
{ "traces.ml", true },
- { "tracewind.top", true },
{ "tracfinancialservices.com", true },
{ "tracinsurance.com", true },
{ "trackchair.com", true },
{ "trackdomains.com", true },
{ "trackersimulator.org", true },
{ "trackeye.dk", true },
- { "trackmeet.io", true },
+ { "trackingstream.com", true },
{ "trackrecordpro.co.uk", true },
{ "tracksa.com.ar", true },
{ "trackyourlogs.com", true },
@@ -34110,6 +35978,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "traditions.nl", true },
{ "traditionskapperscollege.nl", true },
{ "traditionsvivantesenimages.ch", true },
+ { "tradiz.org", false },
{ "trafarm.ro", true },
{ "trafas.nl", true },
{ "traffic.az", true },
@@ -34120,21 +35989,39 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "traffixdevices.com", true },
{ "traficmusik.net", true },
{ "tragmi.ch", true },
+ { "trailcloud.ink", true },
{ "trailerparty.com", true },
{ "trailforks.com", true },
{ "trainex.org", true },
{ "trainhornforums.com", true },
{ "trainiac.com.au", true },
{ "trainings-handschuhe-test.de", true },
+ { "trainline.at", true },
+ { "trainline.cn", true },
+ { "trainline.com.br", true },
+ { "trainline.com.pt", true },
+ { "trainline.cz", true },
{ "trainline.de", true },
{ "trainline.es", true },
{ "trainline.eu", true },
{ "trainline.fr", true },
{ "trainline.it", true },
+ { "trainline.nl", true },
+ { "trainline.no", true },
+ { "trainline.pl", true },
+ { "trainmagazine.be", true },
+ { "trainmagazine.de", true },
+ { "trainmagazine.nl", true },
+ { "trainplaza.be", true },
+ { "trainplaza.net", true },
+ { "trainplaza.nl", true },
{ "trainsgoodplanesbad.com", true },
{ "traista.ru", true },
{ "traiteurpapillonevents.be", true },
{ "trajano.net", true },
+ { "trajectfoto.nl", true },
+ { "trajectvideo.nl", true },
+ { "tran.pw", true },
{ "trance-heal.com", true },
{ "trance-heal.de", true },
{ "trance-heal.me", true },
@@ -34171,6 +36058,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "transhumanist.net", true },
{ "transhumanist.org", true },
{ "transhumanist.uk", true },
+ { "transitmoe.io", true },
{ "transitownplaza.com", true },
{ "transitpoint.us", true },
{ "translate-polish.com", true },
@@ -34182,18 +36070,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "transmarttouring.com", true },
{ "transmisjeonline.pl", true },
{ "transnexus.com", true },
+ { "transoil.co.uk", true },
{ "transparentcorp.com", true },
{ "transport.eu", true },
{ "transporta.it", true },
{ "transporterlock.com", true },
{ "transverify.com", true },
+ { "trappednerve.org", true },
{ "trashnothing.com", true },
{ "trashwagon.club", true },
{ "traslocare.roma.it", true },
{ "traslochi-trasporti-facchinaggio.it", true },
{ "trasloco.milano.it", true },
- { "tratamentoparacelulite.biz", true },
- { "tratamentoparacelulite.net", true },
{ "trattamenti.biz", true },
{ "trattamento-cotto.it", true },
{ "trauer-beileid.de", true },
@@ -34205,13 +36093,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "travel.co.za", true },
{ "travel365.it", true },
{ "travelarmenia.org", true },
- { "traveling-thailand.info", true },
+ { "traveleets.com", true },
+ { "travelinsurance.co.nz", true },
{ "travellers.dating", true },
{ "travellovers.fr", true },
{ "travelmyth.ie", true },
{ "travelogue.jp", true },
{ "travelphoto.cc", true },
{ "travelpricecheck.com", true },
+ { "travelrefund.com", true },
{ "travelshack.com", true },
{ "travi.org", true },
{ "travis.nl", true },
@@ -34232,6 +36122,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "trefcon.cz", true },
{ "trefpuntdemeent.nl", true },
{ "treinaweb.com.br", false },
+ { "treinmagazine.be", true },
+ { "treinmagazine.nl", true },
{ "treinonerd.com", true },
{ "trek-planet.ru", true },
{ "trekfriend.com", true },
@@ -34239,13 +36131,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tremlor.com", true },
{ "tremolosoftware.com", true },
{ "trendkraft.de", true },
+ { "trendus.no", true },
{ "trendykids.cz", true },
{ "trenta.io", true },
{ "trentmaydew.com", true },
+ { "tresor.it", true },
{ "tresorit.com", true },
{ "tresorsecurity.com", true },
{ "tretail.net", true },
{ "tretkowski.de", true },
+ { "trevsanders.co.uk", true },
{ "trezy.me", true },
{ "trezy.net", true },
{ "trhastane.com", true },
@@ -34259,6 +36154,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "trianon.xyz", true },
{ "tribac.de", true },
{ "tribaldos.com", true },
+ { "tribe.rs", true },
+ { "tribetrails.com", true },
{ "tribly.de", true },
{ "tribut.de", true },
{ "tributh.cf", true },
@@ -34274,6 +36171,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "trigardon-rg.de", true },
{ "trik.es", false },
{ "trillian.im", true },
+ { "trilliumvacationrentals.ca", true },
{ "triluxds.com", true },
{ "trim-a-slab.com", true },
{ "trimage.org", true },
@@ -34290,12 +36188,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "triple-mmm.de", true },
{ "triplekeys.net", true },
{ "tripolistars.com", true },
+ { "tripp.xyz", true },
{ "tripseats.com", true },
{ "tripsinc.com", true },
{ "trisect.eu", true },
{ "trixexpressweb.nl", true },
{ "triz.co.uk", true },
- { "trizone.com.au", true },
{ "trkpuls.tk", true },
{ "trockendock.ch", true },
{ "troedel-trolle.de", true },
@@ -34314,16 +36212,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tropicalserver.com", true },
{ "trotec.com", true },
{ "trotina.cz", true },
+ { "trouble-free-employees.com", true },
{ "trouweninoverijssel.nl", true },
{ "trovaprezzi.it", true },
{ "troyfawkes.com", true },
+ { "troyhunt.com", true },
{ "troyhuntsucks.com", true },
{ "troykelly.com", true },
- { "trpg.wiki", true },
{ "trs.tn", true },
{ "trtltravel.com", true },
{ "trtruijens.com", true },
{ "tru.ltd", true },
+ { "trucchibellezza.com", true },
{ "trucchibellezza.it", true },
{ "truckersmp.com", true },
{ "truckerswereld.nl", false },
@@ -34333,6 +36233,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "trueinstincts.ca", true },
{ "truekey.com", true },
{ "truentumvet.it", true },
+ { "trueproxy.net", true },
{ "truerizm.ru", true },
{ "truessl.shop", true },
{ "truestaradvisors.com", true },
@@ -34345,6 +36246,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "trulance.com", true },
{ "truly-madly-happiness.de", true },
{ "trumanlibrary.org", true },
+ { "truncus-encephali.co.uk", true },
{ "trunk-show.net", true },
{ "truong.fi", true },
{ "truqu.com", true },
@@ -34353,13 +36255,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "trustcase.com", true },
{ "trustednetworks.nl", true },
{ "trustfield.ch", true },
- { "trustocean.com", true },
{ "trustserv.de", true },
{ "truthmessages.pw", true },
{ "truvisory.com", true },
{ "trw-reseller.com", true },
{ "try2admin.pw", true },
- { "try2services.cm", true },
{ "trybabyschoice.com", true },
{ "trybooking.com", true },
{ "tryfabulousskincream.com", true },
@@ -34377,12 +36277,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ts-publishers.com", true },
{ "ts3-dns.com", true },
{ "ts3-dns.net", false },
+ { "ts3-legenda.tech", true },
{ "tsa-sucks.com", true },
{ "tsab.moe", true },
+ { "tsai.com.de", true },
{ "tsatestprep.com", true },
{ "tschuermans.be", true },
{ "tscqmalawi.info", true },
{ "tsedryk.ca", true },
+ { "tsgkc1.com", true },
{ "tsicons.com", true },
{ "tsironis-olivenoel.de", true },
{ "tslcontractors.co.uk", true },
@@ -34406,8 +36309,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ttcaarberg.ch", true },
{ "ttcf.ca", true },
{ "ttchan.org", true },
+ { "ttclub.fr", true },
{ "ttdsevaonline.com", true },
{ "ttll.de", true },
+ { "ttrade.ga", true },
{ "ttsoft.pl", true },
{ "ttspttsp.com", true },
{ "ttsweb.org", true },
@@ -34420,6 +36325,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tu-immoprojekt.at", true },
{ "tu6.pm", true },
{ "tuang-tuang.com", true },
+ { "tuasaude.com", true },
{ "tubanten.nl", true },
{ "tube.tools", true },
{ "tubejack.nl", true },
@@ -34433,36 +36339,39 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tudiennhakhoa.com", true },
{ "tudorproject.org", true },
{ "tufashionista.com", true },
- { "tufilo.com", true },
- { "tugers.com", true },
+ { "tuffclassified.com", true },
+ { "tuffsruffs.se", true },
{ "tuincentersnaet.be", true },
+ { "tuingereedschappen.net", false },
{ "tuitle.com", true },
- { "tulenceria.es", true },
{ "tumagiri.net", true },
{ "tumblenfun.com", true },
{ "tumedico.es", true },
{ "tumelum.de", true },
{ "tumutanzi.com", true },
+ { "tunai.id", true },
{ "tunaut.com", true },
{ "tune-web.de", true },
{ "tunefish-entertainment.de", true },
{ "tuner.cloud", true },
{ "tuning-werkstatt-nuernberg.de", true },
{ "tuningblog.eu", false },
- { "tunity.be", true },
{ "tunnelbear.com", true },
{ "tunnelblick.net", true },
{ "tunnelventilation.pro", true },
{ "tunnelwatch.com", true },
{ "tuntitili.fi", true },
{ "tuotteet.org", true },
+ { "tuou.xyz", true },
{ "tupa-germania.ru", true },
{ "tupeuxpastest.ch", true },
{ "tuppenceworth.ie", true },
{ "turbobit.ch", true },
{ "turdnagel.com", true },
+ { "turf-experts.com", true },
{ "turigum.com", true },
{ "turkish.dating", true },
+ { "turl.pl", true },
{ "turnaroundforum.de", true },
{ "turncircles.com", true },
{ "turnoffthelights.com", true },
@@ -34474,10 +36383,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "turtlepwr.com", true },
{ "turunculevye.com", true },
{ "tuscanyleather.it", true },
+ { "tusi.co", false },
{ "tusksol.com", true },
{ "tutanota.com", true },
- { "tutiendaroja.com", true },
- { "tutiendarosa.com", true },
{ "tuto-craft.com", true },
{ "tutoragency.org", true },
{ "tutorat-tect.org", true },
@@ -34494,6 +36402,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tuxie.com", true },
{ "tuxlife.net", true },
{ "tuxpeliculas.com", true },
+ { "tuxplace.nl", true },
{ "tuxtimo.me", true },
{ "tuxz.net", true },
{ "tuza.com.au", true },
@@ -34523,19 +36432,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tweakers.net", true },
{ "tweakersbadge.nl", true },
{ "tweaktown.com", true },
- { "twelve.rocks", true },
- { "twem.ddns.net", true },
+ { "tweetfinity.com", true },
+ { "tweetfinityapp.com", true },
{ "twenty71.com", true },
{ "twentymilliseconds.com", true },
+ { "twilightcookies.ca", true },
{ "twilleys.com", true },
{ "twincitynissantxparts.com", true },
+ { "twinkseason.com", true },
{ "twinztech.com", true },
{ "twisata.com", true },
{ "twistapp.com", true },
{ "twistdevelopment.co.uk", true },
- { "twisted-brains.org", true },
{ "twistedwave.com", true },
{ "twisto.cz", true },
+ { "twisto.pl", true },
+ { "twistopay.com", true },
{ "twit-guide.com", true },
{ "twitchplaysleaderboard.info", true },
{ "twittelzie.nl", true },
@@ -34548,38 +36460,37 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "twofactorauth.org", true },
{ "twohuo.com", true },
{ "twojfaktum.pl", true },
- { "twolanedesign.com", true },
{ "twopif.net", true },
{ "tworaz.net", true },
{ "twun.io", true },
+ { "twuni.org", true },
{ "txcap.org", true },
{ "txdivorce.org", true },
{ "txi.su", true },
{ "txlrs.org", true },
{ "txm.pl", true },
+ { "txtecho.com", true },
{ "tyche.io", true },
{ "tycho.org", true },
{ "tycom.cz", true },
{ "tyil.nl", true },
{ "tyil.work", true },
{ "tyl.io", true },
+ { "tyler.rs", true },
{ "tylerdavies.net", true },
{ "tylerfreedman.com", true },
{ "tylerharcourt.net", true },
+ { "tyleromeara.com", true },
{ "tylerschmidtke.com", true },
{ "typcn.com", true },
- { "type1joe.com", true },
- { "type1joe.net", true },
- { "type1joe.org", true },
{ "typeblog.net", true },
{ "typecodes.com", true },
{ "typehub.net", true },
{ "typeof.pw", true },
{ "typeonejoe.com", true },
- { "typeonejoe.net", true },
- { "typeonejoe.org", true },
{ "typeria.net", true },
{ "typewolf.com", true },
+ { "typewritten.net", true },
{ "typing.com", true },
{ "typist.tech", true },
{ "typo3.com", true },
@@ -34590,9 +36501,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "tyroremotes.nl", true },
{ "tyroremotes.no", true },
{ "tysox.de", true },
- { "tysye.ca", true },
- { "tyuo-keibi.co.jp", true },
+ { "tzermias.gr", true },
{ "tzifas.com", true },
+ { "u-martfoods.com", true },
{ "u-metals.com", true },
{ "u-tokyo.club", true },
{ "u.nu", true },
@@ -34636,41 +36547,89 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ublaboo.org", true },
{ "uborcare.com", true },
{ "ubun.net", true },
- { "uc.ac.id", true },
{ "ucac.nz", false },
{ "ucangiller.com", true },
{ "ucch.be", true },
{ "ucfirst.nl", true },
{ "uchargeapp.com", true },
- { "uclanmasterplan.co.uk", true },
+ { "uclf.de", true },
{ "uclip.club", true },
{ "ucppe.org", true },
{ "ucrdatatool.gov", true },
{ "uctarna.online", true },
- { "udbhav.me", true },
+ { "udancy.com", true },
{ "uddi.ng", true },
{ "udo-luetkemeier.de", true },
{ "udomain.net", true },
{ "udp.sh", false },
+ { "udruga-point.hr", true },
{ "udvoukocek.eu", true },
{ "ueberdosis.io", true },
{ "ueberwachungspaket.at", true },
{ "uedaviolin.com", true },
{ "uel-thompson-okanagan.ca", true },
{ "ueni.com", true },
- { "uerdingen.info", true },
{ "uevan.com", true },
{ "uex.im", true },
{ "ufanisi.mx", true },
{ "ufindme.at", true },
- { "ufo.moe", true },
{ "ufplanets.com", true },
{ "uggedal.com", true },
{ "ugx-mods.com", true },
+ { "uhappy1.com", true },
+ { "uhappy11.com", true },
+ { "uhappy2.com", true },
+ { "uhappy21.com", true },
+ { "uhappy22.com", true },
+ { "uhappy23.com", true },
+ { "uhappy24.com", true },
+ { "uhappy25.com", true },
+ { "uhappy26.com", true },
+ { "uhappy27.com", true },
+ { "uhappy28.com", true },
+ { "uhappy29.com", true },
+ { "uhappy3.com", true },
{ "uhappy30.com", true },
+ { "uhappy31.com", true },
+ { "uhappy33.com", true },
+ { "uhappy50.com", true },
+ { "uhappy55.com", true },
+ { "uhappy56.com", true },
+ { "uhappy57.com", true },
+ { "uhappy58.com", true },
+ { "uhappy59.com", true },
+ { "uhappy6.com", true },
+ { "uhappy60.com", true },
+ { "uhappy61.com", true },
+ { "uhappy62.com", true },
+ { "uhappy66.com", true },
+ { "uhappy67.com", true },
+ { "uhappy69.com", true },
+ { "uhappy70.com", true },
+ { "uhappy71.com", true },
+ { "uhappy72.com", true },
+ { "uhappy73.com", true },
+ { "uhappy74.com", true },
+ { "uhappy75.com", true },
+ { "uhappy76.com", true },
+ { "uhappy77.com", true },
+ { "uhappy78.com", true },
+ { "uhappy79.com", true },
+ { "uhappy8.com", true },
+ { "uhappy80.com", true },
+ { "uhappy81.com", true },
+ { "uhappy82.com", true },
+ { "uhappy83.com", true },
+ { "uhappy85.com", true },
+ { "uhappy86.com", true },
+ { "uhappy88.com", true },
+ { "uhappy9.com", true },
+ { "uhappy90.com", true },
+ { "uhappy99.com", true },
{ "uhasseltodin.be", true },
{ "uhc.gg", true },
{ "uhrenlux.de", true },
+ { "uhssl.com", true },
{ "uhurl.net", true },
{ "ui8.net", true },
{ "uiberlay.cz", true },
@@ -34701,6 +36660,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ulabox.com", true },
{ "uldsh.de", true },
{ "ulen.me", true },
+ { "ulgc.cz", true },
{ "uli-eckhardt.de", true },
{ "ullah.se", true },
{ "ulmer-schneesport.de", true },
@@ -34713,16 +36673,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ultimatemafia.net", true },
{ "ultraseopro.com", true },
{ "ultrasite.tk", true },
- { "ultrasteam.net", true },
{ "ultratech.software", true },
{ "ultratechlp.com", true },
+ { "ultrautoparts.com.au", true },
{ "umanityracing.com", true },
- { "umassfive.coop", true },
{ "umbricht.li", true },
- { "umbriel.fr", true },
{ "umenlisam.com", true },
{ "umisonoda.com", true },
{ "umkmjogja.com", true },
+ { "umsapi.com", true },
{ "umsolugar.com.br", true },
{ "umwandeln-online.de", true },
{ "un-framed.co.za", true },
@@ -34738,6 +36697,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unblocked.bet", true },
{ "unblocked.bid", true },
{ "unblocked.cam", true },
+ { "unblocked.gdn", true },
{ "unblocked.ink", true },
{ "unblocked.lat", true },
{ "unblocked.live", true },
@@ -34746,9 +36706,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unblocked.pl", true },
{ "unblocked.pro", true },
{ "unblocked.pub", true },
- { "unblocked.sh", true },
{ "unblocked.uno", true },
- { "unblocked.vc", true },
{ "unblocked.vet", true },
{ "unblocked.vip", true },
{ "unblockweb.co", true },
@@ -34758,15 +36716,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unccelearn.org", true },
{ "uncensoreddns.dk", true },
{ "uncensoreddns.org", true },
- { "undeadbrains.de", true },
{ "undecidable.de", true },
{ "undeductive.media", true },
+ { "undef.in", true },
{ "underbridgeleisure.co.uk", true },
{ "undercovercondoms.co.uk", true },
- { "undercovercondoms.com", true },
{ "underfloorheating-uk.co.uk", true },
{ "underlined.fr", true },
{ "undernet.uy", false },
+ { "underskatten.tk", true },
{ "underwearoffer.com", true },
{ "undo.co.il", true },
{ "undone.me", true },
@@ -34778,6 +36736,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unfettered.net", false },
{ "unfuddle.cn", true },
{ "unga.dk", true },
+ { "ungeek.eu", true },
+ { "ungeek.fr", true },
{ "ungegamere.dk", true },
{ "unghie.com", true },
{ "unicef-karten.at", true },
@@ -34794,6 +36754,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unicefkepeslapok.hu", true },
{ "unicefvoscilnice.si", true },
{ "unicolabo.jp", true },
+ { "unicorn-systems.net", true },
{ "unicorn.melbourne", true },
{ "unicorntooling.eu", true },
{ "unicredit.ba", true },
@@ -34809,9 +36770,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "uniformebateriasheliar.com.br", true },
{ "unikoingold.com", true },
{ "unila.edu.br", true },
+ { "unimbalr.com", true },
{ "uninet.cf", true },
{ "uniojeda.ml", true },
{ "unionplat.ru", true },
+ { "uniontestprep.com", true },
+ { "unipig.de", true },
{ "uniprimebr.com.br", false },
{ "uniq.site", true },
{ "unique-bouncy-castles.co.uk", true },
@@ -34821,6 +36785,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unit7jazz.com", true },
{ "unit7jazz.org", true },
{ "unite-ka.de", true },
+ { "uniteasia.org", true },
{ "united-coders.com", true },
{ "united-schools.net", true },
{ "united.com", false },
@@ -34831,12 +36796,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unitel2000.de", true },
{ "unityconsciousnessbooks.com", true },
{ "univercite.ch", true },
- { "univeril.com", true },
+ { "univeril.com", false },
+ { "univerpack.net", true },
{ "universal-happiness.com", true },
+ { "universal.at", true },
{ "universalcarremote.com", true },
{ "universalpaymentgateway.com", true },
{ "universeinform.com", true },
- { "universogay.com", true },
{ "univitale.fr", true },
{ "unix.se", true },
{ "unixadm.org", true },
@@ -34845,7 +36811,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unixforum.org", true },
{ "unixfox.eu", true },
{ "unixtime.date", true },
- { "unknownbreakup.com", true },
{ "unkrn.com", true },
{ "unlax.com", true },
{ "unleash.pw", true },
@@ -34862,13 +36827,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unoccupyabq.org", true },
{ "unp.me", true },
{ "unpkg.com", true },
- { "unpossible.xyz", true },
{ "unpr.dk", true },
{ "unquote.li", true },
{ "unrealircd.org", true },
{ "unrelated.net.au", true },
{ "unripple.com", true },
{ "unruh.fr", true },
+ { "uns.vn", true },
{ "unsacsurledos.com", true },
{ "unsee.cc", true },
{ "unseen.is", true },
@@ -34890,14 +36855,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "unworthy.ml", true },
{ "unx.dk", true },
{ "unxicdellum.cat", true },
- { "upandclear.org", true },
{ "upay.ru", true },
+ { "upbad.com", true },
{ "upbeatrobot.com", true },
{ "upbeatrobot.eu", true },
{ "upd.jp", true },
{ "upgamerengine.com", true },
{ "upgamerengine.com.br", true },
{ "upgamerengine.net", true },
+ { "upgauged.com", true },
+ { "upholsterydesign.com.au", true },
{ "upitnik.rs", true },
{ "uplaqui.com.br", true },
{ "uplinklabs.net", true },
@@ -34906,14 +36873,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "uploadbeta.com", true },
{ "uplr.it", true },
{ "upnext.io", true },
+ { "upnorthproperty.com", true },
{ "upperbeaconsfield.org.au", true },
{ "upperroommission.ca", true },
{ "upplevelse.com", true },
{ "upr-info.org", true },
{ "upr.com.ua", true },
+ { "uprint.it", true },
{ "uprouteyou.com", true },
{ "upsettunnel.com", true },
{ "upsiteseo.com", true },
+ { "uptechbrasil.com.br", true },
{ "uptimed.com", true },
{ "uptimenotguaranteed.com", true },
{ "uptodateinteriors.com", true },
@@ -34923,17 +36893,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "uptrends.com", true },
{ "uptrends.de", true },
{ "uptrex.co.uk", true },
+ { "upturn.org", true },
{ "upundit.com", true },
+ { "upwardtraining.co.uk", true },
{ "upwork.com", true },
+ { "upyourfinances.com", true },
{ "ur.nl", true },
{ "ur2.pw", true },
{ "uradisam.rs", true },
+ { "uraimo.com", true },
{ "urbackups.com", true },
{ "urbalex.ch", true },
{ "urban-culture.fr", true },
{ "urban-karuizawa.co.jp", true },
{ "urban.melbourne", true },
{ "urbancreators.dk", true },
+ { "urbandance.club", true },
{ "urbanesecurity.com", true },
{ "urbanfi.sh", true },
{ "urbanguerillas.de", true },
@@ -34942,7 +36917,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "urbanmelbourne.info", true },
{ "urbannewsservice.com", true },
{ "urbansparrow.in", true },
- { "urbanstylestaging.com", true },
{ "urbansurvival.com", true },
{ "urbanwaters.gov", false },
{ "urbanwildlifealliance.org", false },
@@ -34951,11 +36925,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "urcentral.net", true },
{ "urcentral.nl", true },
{ "ureka.org", true },
+ { "urep.us", true },
{ "urgences-valais.ch", true },
{ "urinedrugtesthq.com", true },
{ "uripura.de", true },
{ "urist1011.ru", true },
- { "url.cab", true },
{ "url.fi", true },
{ "url.fm", true },
{ "url.rw", true },
@@ -34967,6 +36941,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "urltodomain.com", true },
{ "urown.net", true },
{ "ursa-minor-beta.org", true },
+ { "ursae.co", true },
{ "urspringer.de", true },
{ "ursuslibris.hu", true },
{ "urth.org", true },
@@ -34979,6 +36954,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "usaestaonline.com", true },
{ "usage.be", true },
{ "usagexchange.com", true },
+ { "usagm.gov", true },
{ "usairlines.us", true },
{ "usajobs.com", true },
{ "usajobs.gov", true },
@@ -34992,7 +36968,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "usd.de", true },
{ "usds.gov", true },
{ "use.be", true },
- { "use.ci", true },
{ "usebean.com", true },
{ "usedoor.jp", true },
{ "usedu.us", true },
@@ -35002,14 +36977,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "usgande.com", true },
{ "ushandbookapp.com", true },
{ "ushare.ch", true },
+ { "usimmigration.us", true },
{ "usipvd.ch", true },
{ "usitcolours.bg", true },
+ { "uskaria.com", true },
{ "usleep.net", true },
{ "usmint.gov", true },
{ "usninosnikrcni.eu", true },
{ "usnti.com", true },
{ "uspsoig.gov", true },
- { "ussm.gov", true },
+ { "ussm.gov", false },
{ "ussuka.com", true },
{ "ust.space", true },
{ "ustensiles-cuisine.boutique", true },
@@ -35017,18 +36994,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "usualbeings.com", true },
{ "usuan.net", true },
{ "usuluddin.ga", true },
+ { "usweme.info", true },
{ "uswitch.com", true },
{ "ut-addicted.com", true },
{ "utahfireinfo.gov", true },
{ "utahlocal.net", true },
+ { "utahtravelcenter.com", true },
{ "utazas-nyaralas.info", true },
{ "utcast-mate.com", true },
- { "utdscanner.com", true },
{ "utdsgda.com", true },
{ "uteam.it", true },
{ "utepils.de", true },
{ "utgifter.no", true },
{ "utilia.tools", true },
+ { "utilio.nl", true },
{ "utilitarian.com", true },
{ "utilitarian.net", true },
{ "utilitarian.org", true },
@@ -35040,37 +37019,46 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "utilityreport.eu", true },
{ "utitreatment.com", true },
{ "utonia.ch", true },
- { "utopialgb.org.uk", true },
{ "utopicestudios.com", true },
{ "utox.io", true },
+ { "utterberry.io", true },
+ { "utube.tw", true },
{ "utugnn.ru", true },
{ "utw.me", true },
{ "utwente.io", true },
{ "utzon.net", true },
+ { "uuid.cf", true },
{ "uuit.nl", true },
+ { "uv.uy", true },
{ "uvenuse.cz", true },
{ "uvocorp.com", true },
{ "uvolejniku.cz", true },
+ { "uw1008.com", true },
{ "uw2333.com", true },
{ "uwac.co.uk", false },
{ "uwekoetter.com", true },
{ "uwelilienthal.de", true },
- { "uwimonacs.org.jm", true },
+ { "uwsoftware.be", true },
{ "uwvloereruit.nl", true },
+ { "uxp-it.nl", true },
+ { "uxteam.com", true },
{ "uxtechnologist.com", true },
{ "uy.search.yahoo.com", false },
{ "uz.search.yahoo.com", false },
{ "uzaymedya.com.tr", true },
+ { "uziregister.nl", true },
{ "uzsvm.cz", true },
{ "v-d-p.net", true },
{ "v-spin.cz", true },
{ "v-tek.fi", true },
{ "v-u-z.ru", true },
- { "v1sit0r.ru", true },
{ "v2bv.net", true },
{ "v2bv.win", true },
{ "v2cn.win", true },
{ "v2ex.com", true },
+ { "v2ray6.com", true },
+ { "v2ray66.com", true },
+ { "v2ray666.com", true },
{ "va-reitartikel.com", true },
{ "va.gov", false },
{ "vacationsbyvip.com", true },
@@ -35081,8 +37069,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vaew.com", true },
{ "vagabond.fr", true },
{ "vagabondgal.com", true },
- { "vagaerg.com", true },
- { "vagaerg.net", true },
{ "vagmour.eu", true },
{ "vagpartsdb.com", true },
{ "vagrantbits.com", true },
@@ -35094,13 +37080,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vakantiedetective.nl", true },
{ "vakantienet.nl", true },
{ "vakuutuskanava.fi", true },
- { "val-sec.com", true },
+ { "valasi.eu", true },
{ "valbonne-consulting.com", true },
{ "valcano-krd.ru", true },
{ "valcano.ru", true },
+ { "valcardiesel.com", true },
{ "valenciadevops.me", true },
{ "valentin-ochs.de", true },
{ "valentin-sundermann.de", true },
+ { "valentin.ml", true },
{ "valentinberclaz.com", true },
{ "valentineapparel.com", true },
{ "valentineforpresident.com", true },
@@ -35122,6 +37110,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "valleyautofair.com", true },
{ "valleyautoloan.com", true },
{ "valleycode.net", true },
+ { "valleydalecottage.com.au", true },
{ "valleyshop.ca", true },
{ "vallutaja.eu", true },
{ "valokuva-albumi.fi", true },
@@ -35139,6 +37128,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "valueseed.net", true },
{ "vampyrium.net", false },
{ "van11y.net", true },
+ { "vanagamsanthai.com", true },
+ { "vanagamseeds.com", true },
{ "vanbinnenuit.nl", true },
{ "vancityconcerts.com", true },
{ "vancouvercosmeticsurgery.ca", true },
@@ -35152,7 +37143,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vandermeer.frl", true },
{ "vanderrijt.nl", false },
{ "vanderziel.org", true },
+ { "vandorenscholars.org", true },
+ { "vandyhacks.org", true },
{ "vaneigenkweek.be", true },
+ { "vangoghcoaching.nl", true },
{ "vanhaos.com", true },
{ "vanhoudt-usedcars.be", true },
{ "vanhoutte.be", false },
@@ -35163,7 +37157,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vanohaker.ru", true },
{ "vanouwerkerk.net", true },
{ "vantagepointpreneed.com", true },
+ { "vantaio.com", true },
+ { "vante.me", true },
{ "vantien.com", true },
+ { "vantru.is", true },
{ "vanvoro.us", false },
{ "vanwunnik.com", true },
{ "vapecom-shop.com", true },
@@ -35172,9 +37169,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vapensiero.co.uk", true },
{ "vaperolles.ch", true },
{ "vapesense.co.uk", true },
+ { "vapesupplies.com.au", true },
{ "vaphone.co", true },
{ "vapor.cloud", false },
{ "vapordepot.jp", true },
+ { "varalwamp.com", true },
{ "varcare.jp", true },
{ "varden.info", true },
{ "vareillefoundation.fr", true },
@@ -35194,7 +37193,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "varztupasaulis.lt", true },
{ "varztupasaulis.net", true },
{ "vascomm.co.id", true },
- { "vase-eroticke-povidky.cz", true },
{ "vasel.de", true },
{ "vasel.eu", true },
{ "vashel.us", true },
@@ -35202,7 +37200,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vasilikieleftheriou.com", true },
{ "vaskulitis-info.de", true },
{ "vasports.com.au", true },
- { "vastgoedcultuurfonds.nl", true },
{ "vasyharan.com", true },
{ "vat-eu.com", true },
{ "vat.direct", true },
@@ -35216,10 +37213,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vaud-fleurs.ch", true },
{ "vaughanrisher.com", true },
{ "vault21.net", true },
+ { "vault81.de", true },
{ "vaultproject.io", true },
{ "vaur.fr", true },
{ "vavel.com", true },
- { "vavouchers.com", true },
{ "vawebsite.co", true },
{ "vawlt.io", true },
{ "vawltstorage.com", true },
@@ -35231,11 +37228,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vbcdn.com", true },
{ "vbestreviews.com", true },
{ "vbh2o.com", true },
+ { "vbql.me", true },
{ "vbwinery.com", true },
{ "vc.gg", true },
{ "vcam.org", true },
{ "vccmurah.net", true },
- { "vcdn.xyz", true },
{ "vcelin-na-doliku.cz", true },
{ "vcf.gov", true },
{ "vcientertainment.com", false },
@@ -35254,7 +37251,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vdesc.com", true },
{ "vdisk24.de", true },
{ "vdmeij.com", true },
- { "vdownloader.com", true },
{ "vdzwan.net", true },
{ "ve.search.yahoo.com", false },
{ "ve3oat.ca", true },
@@ -35270,10 +37266,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vegalitarian.org", true },
{ "vegane-proteine.com", true },
{ "veganforum.org", true },
- { "vegangaymer.blog", true },
{ "veganism.co.uk", true },
{ "veganism.com", true },
- { "vegasdocs.com", true },
+ { "veganmasterrace.com", true },
{ "vegepa.com", true },
{ "vegetariantokyo.net", true },
{ "veggie-treff.de", true },
@@ -35283,10 +37278,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "veit.zone", true },
{ "veke.fi", true },
{ "velen.io", true },
+ { "veloroute.hamburg", true },
{ "venalytics.com", true },
{ "venclave.com", true },
+ { "vendermicasarapido.com.mx", true },
{ "vendigital.com", true },
{ "vendorconnect.nyc", true },
+ { "vendreacheter.be", true },
+ { "vendreacheter.net", true },
{ "vendserve.eu", true },
{ "venenum.org", true },
{ "venev.name", true },
@@ -35299,6 +37298,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "venturavwparts.com", true },
{ "venturebanners.co.uk", true },
{ "venturedisplay.co.uk", true },
+ { "venturum.com", true },
+ { "venturum.de", true },
+ { "venturum.eu", true },
+ { "venturum.net", true },
{ "ventzke.com", true },
{ "ver.ma", true },
{ "vera.bg", true },
@@ -35307,26 +37310,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "verberne.nu", true },
{ "verbier-lechable.com", true },
{ "verbierfestival.com", true },
+ { "verdict.gg", true },
{ "verduccies.com", true },
{ "verein-kiekin.de", true },
{ "vereinlandwege.de", true },
{ "vereinscheck.de", true },
{ "verfassungsklage.at", true },
+ { "verge.capital", true },
{ "vergeaccessories.com", true },
{ "vergelijksimonly.nl", true },
+ { "vergessen.cn", true },
{ "verhovs.ky", true },
{ "verifalia.com", true },
+ { "verifiedjoseph.com", true },
+ { "verifiny.com", true },
{ "verifyos.com", true },
{ "verifyyourip.com", true },
- { "veriny.tf", true },
- { "veriomed.com", true },
{ "veritafineviolins.com", true },
{ "veritas-data.de", true },
{ "verizonconnect.com", false },
{ "verizonguidelines.com", true },
{ "verliebt-in-bw.de", true },
{ "verliebt-in-niedersachsen.de", true },
- { "verliefde-jongens.nl", true },
{ "vermeerdealers.com", true },
{ "vermiliontaxiservice.com", true },
{ "vermogeninkaart.nl", true },
@@ -35347,7 +37352,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vers.one", true },
{ "versagercloud.de", true },
{ "versbesteld.nl", true },
- { "versbeton.nl", true },
{ "versicherungen-werner-hahn.de", true },
{ "versicherungskontor.net", true },
{ "verspai.de", true },
@@ -35357,9 +37361,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vertigo.name", false },
{ "vertner.net", true },
{ "vertrieb-strategie.de", true },
+ { "verustracking.com", true },
{ "verwayen.com", true },
{ "very-kids.fr", true },
{ "veryapt.com", true },
+ { "veryimportantusers.com", true },
{ "verymelon.de", true },
{ "verymetal.nl", true },
{ "verzekeringsacties.nl", true },
@@ -35368,6 +37374,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "veslosada.com", true },
{ "vespacascadia.com", true },
{ "vestingbar.nl", true },
+ { "vestum.ru", true },
+ { "vetbits.com", true },
+ { "veterinarian-hospital.com", true },
{ "veterinario.roma.it", true },
{ "veterinarioaltea.com", true },
{ "vetforum.co", true },
@@ -35377,22 +37386,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "veverusak.cz", true },
{ "vfdworld.com", true },
{ "vfn-nrw.de", true },
- { "vforvendetta.science", true },
{ "vgchat.us", true },
{ "vgerak.com", true },
{ "vgolos.zt.ua", true },
+ { "vgorcum.com", true },
{ "vgropp.de", true },
{ "vh.net", true },
{ "vhummel.nl", true },
{ "vi.photo", true },
- { "via-shire-krug.ru", true },
{ "viacdn.org", true },
{ "viafinance.cz", false },
{ "viaggio-in-cina.it", true },
{ "viagraonlinebestellen.org", true },
+ { "viagusto.pl", true },
{ "viajandoporelmundo.com.ar", true },
{ "viaje-a-china.com", true },
- { "vialibido.com.br", true },
{ "vialorran.com", true },
{ "viaprinto.de", true },
{ "viato.fr", true },
@@ -35403,6 +37411,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vicicode.com", true },
{ "viciousflora.com", true },
{ "vicjuwelen-annelore.be", true },
+ { "victora.com", true },
{ "victorcanera.com", true },
{ "victordiaz.me", true },
{ "victoreriksson.ch", true },
@@ -35420,7 +37429,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "victorhawk.com", true },
{ "victoriaartist.ru", true },
{ "victoriastudio.ru", true },
- { "victoriaville.ca", true },
{ "victorjacobs.com", true },
{ "victornet.de", true },
{ "victornilsson.pw", true },
@@ -35431,10 +37439,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vid-immobilien.de", true },
{ "vida-it.com", true },
{ "vida.es", true },
+ { "vidadu.com", true },
{ "vidbooster.com", true },
+ { "vidcloud.xyz", true },
{ "vide-greniers.org", false },
{ "videogamesartwork.com", true },
{ "videokaufmann.at", true },
+ { "videoload.co", true },
{ "videomail.io", true },
{ "videosdiversosdatv.com", true },
{ "videoseyredin.net", true },
@@ -35442,12 +37453,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "videosqr.com", true },
{ "videov.tk", true },
{ "vidister.de", true },
- { "vidkovaomara.si", true },
- { "vieaw.com", true },
+ { "vidracariaespelhosbh.com.br", true },
{ "vieclam24h.vn", false },
{ "viekelis.lt", false },
{ "viemeister.com", true },
{ "viemontante.be", true },
+ { "vientos.coop", false },
{ "viepixel.at", true },
{ "vierdaagsehotel.nl", true },
{ "vierna.ga", true },
@@ -35459,11 +37470,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vietnamwomenveterans.org", true },
{ "vieux.pro", true },
{ "viewbook.com", true },
+ { "viewey.com", true },
{ "viewmyrecords.com", true },
{ "viga.me", true },
{ "vigenebio.com", true },
{ "vigilantnow.com", true },
{ "vigliano.ovh", true },
+ { "vignoblesdeletat.ch", true },
{ "vigo-krankenversicherung.de", true },
{ "vigo-tarife.de", true },
{ "vigour.us", true },
@@ -35477,6 +37490,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vijverbenodigdheden.nl", true },
{ "vik.im", true },
{ "vikalbino.com.br", true },
+ { "vikalpgupta.com", true },
{ "vikapaula.com", true },
{ "vikashkumar.me", true },
{ "viking-style.ru", true },
@@ -35486,19 +37500,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vilabiamodas.com.br", true },
{ "viljatori.fi", true },
{ "villa-anna-cilento.de", true },
- { "villa-bellarte.de", true },
{ "villa-gockel.de", true },
{ "villa-romantica-zillertal.at", true },
{ "villafiore.com.br", true },
{ "villageunique.com.br", true },
{ "villagockel.de", true },
- { "villalaskowa.pl", true },
{ "villamariaamalfi.it", true },
{ "villasfinistere.fr", true },
{ "villasforsale-bali.com", true },
{ "villasoasissanur.com", true },
{ "villehardouin.fr", true },
{ "villek.fi", true },
+ { "villekaaria.eu", true },
{ "villenavedornon.fr", true },
{ "villenvinkit.com", true },
{ "villerez.fr", true },
@@ -35506,20 +37519,27 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "viltsu.net", true },
{ "vima.ch", true },
{ "vimeo.com", true },
+ { "vinagro.sk", true },
{ "vinarstvimodryhrozen.cz", true },
{ "vincentcox.com", false },
{ "vincentpancol.com", true },
+ { "vincible.space", true },
+ { "vinciconps4.it", true },
{ "vincitraining.com", true },
{ "vineright.com", true },
+ { "vinetech.co.nz", true },
+ { "vinihk.com", true },
{ "vinilosdecorativos.net", true },
{ "vinner.com.au", true },
{ "vinnie.gq", true },
{ "vinolli.de", true },
{ "vinovum.net", true },
+ { "vinsation.com", true },
{ "vinsetchampagne.fr", true },
{ "vintagebandfestival.org", true },
{ "vintagecaskandbarrel.com", true },
{ "vintagejeeps.net", true },
+ { "vintagemakeupguide.com", true },
{ "vintageportgifts.co.uk", true },
{ "vintagesouthernpicks.com", true },
{ "vintagetrailerbuyers.com", true },
@@ -35528,36 +37548,42 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vintock.com", true },
{ "vinyculture.com", true },
{ "vinzite.com", true },
- { "violetraven.co.uk", true },
{ "violin4fun.nl", true },
{ "vionicbeach.com", true },
{ "vionicshoes.com", true },
+ { "vip-9649.com", true },
{ "vip4553.com", true },
{ "vip8522.com", true },
+ { "vip9649.com", true },
{ "vipesball.cc", true },
{ "vipesball.info", true },
{ "vipesball.me", true },
{ "vipi.es", true },
{ "viptamin.eu", true },
{ "viptamol.com", true },
+ { "viqo.pl", true },
{ "vir-tec.eu", true },
{ "vir2.me", true },
{ "viral32111.com", true },
{ "viralboombox.xyz", true },
{ "viralpop.it", true },
{ "viralsouls.in", true },
+ { "viralsv.com", true },
{ "virgopolymer.com", true },
+ { "virial.de", true },
{ "viridis-milites.cz", true },
{ "virtit.fr", true },
+ { "virtualcloud.ddns.net", true },
+ { "virtualcommodities.org", true },
{ "virtuality4d.com", true },
{ "virtuallifestyle.nl", true },
{ "virtualmt2.pl", true },
{ "virtualsanity.com", true },
{ "virtualvaults.com", true },
{ "virtubox.net", true },
- { "virtusaero.com", true },
{ "virvum.ch", true },
{ "visaexpert.co.za", true },
+ { "visalist.io", true },
{ "visalogy.com", true },
{ "visaop.com", true },
{ "visapourailleurs.fr", true },
@@ -35571,15 +37597,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "visioflux-premium.com", true },
{ "visionarymedia.nl", true },
{ "visiondigitalsog.com", true },
+ { "visiondirectionaldrilling.com", true },
{ "visionexpress.com", true },
{ "visionexpress.ie", true },
{ "visionexpresscareers.com", true },
{ "visionless.me", false },
{ "visionnissancanandaiguaparts.com", true },
- { "visistruct.com", true },
{ "visit-montenegro.com", true },
{ "visitcambridgeshirefens.org", true },
{ "visitkangaroovalley.com.au", true },
+ { "visitmaine.com", true },
{ "visor.ph", true },
{ "vistaalmar.es", true },
{ "vistacampus.gov", true },
@@ -35603,7 +37630,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vitalthrills.com", true },
{ "vitalware.com", true },
{ "vitalyzhukphoto.com", true },
- { "vitamaxxi.com.br", true },
{ "vitamineproteine.com", true },
{ "vitaminler.com", true },
{ "vitastic.nl", true },
@@ -35612,6 +37638,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vitkutny.cz", true },
{ "vitoye.com", true },
{ "vitpeyr.com", true },
+ { "vitra-showrooms.co.uk", true },
{ "vitra-vcare.co.uk", true },
{ "vitrado.de", true },
{ "vitsoft.by", true },
@@ -35631,7 +37658,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vivoitaliankitchen.com", true },
{ "vixrapedia.org", true },
{ "viyf.org", true },
- { "viza.io", true },
{ "vizards.cc", true },
{ "vize.ai", false },
{ "vizija-nepremicnine.si", true },
@@ -35678,12 +37704,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vn.search.yahoo.com", false },
{ "vncg.org", true },
{ "vnd.cloud", true },
- { "vndb.org", true },
{ "vnfs-team.com", true },
+ { "vnpem.org", true },
{ "vnvisa.center", true },
{ "vnvisa.ru", true },
+ { "vocalik.com", true },
{ "vocaloid.my", true },
- { "vocalsynth.space", true },
{ "vocalviews.com", true },
{ "vocus.aero", true },
{ "vocustest.aero", true },
@@ -35692,22 +37718,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vodpay.com", true },
{ "vodpay.net", true },
{ "vodpay.org", true },
+ { "vogelbus.ch", true },
{ "vogler.name", true },
+ { "vogue.cz", true },
+ { "voice-of-design.com", true },
{ "voicu.ch", true },
{ "void-zero.com", true },
+ { "voidark.com", true },
{ "voidcore.org", true },
+ { "voidma.in", true },
{ "voidpay.com", true },
{ "voidpay.net", true },
{ "voidpay.org", true },
{ "voidptr.eu", true },
{ "voids.org", true },
- { "voidshift.com", true },
+ { "voidx.top", true },
{ "voidzehn.com", true },
{ "voipsun.com", true },
{ "vojtechpavelka.cz", true },
{ "vokalsystem.com", true },
{ "vokativy.cz", false },
{ "vokeapp.com", true },
+ { "vokurka.net", true },
{ "volcanconcretos.com", true },
{ "volcano-kazan.ru", true },
{ "volcano-spb.ru", true },
@@ -35727,7 +37759,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "volta.io", true },
{ "volto.io", true },
{ "volunteeringmatters.org.uk", true },
- { "volvipress.gr", true },
{ "vomitb.in", true },
{ "von-lien-aluprofile.de", true },
{ "von-lien-dachrinnen.de", true },
@@ -35745,8 +37776,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vorlagen-geburtstagsgruesse.de", true },
{ "vorlicek.de", true },
{ "vorlif.org", true },
- { "vorm2.com", true },
{ "vorodevops.com", true },
+ { "vorte.ga", true },
{ "vos-fleurs.ch", true },
{ "vos-fleurs.com", true },
{ "vosgym.jp", true },
@@ -35757,7 +37788,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vosser.de", true },
{ "vostronet.com", true },
{ "voter-info.uk", true },
- { "votercircle.com", true },
{ "votesandymurman.com", true },
{ "votocek.cz", true },
{ "votockova.cz", true },
@@ -35773,13 +37803,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "voyagesaufildespages.be", true },
{ "voyageschine.com", true },
{ "voyagesdetective.fr", true },
- { "vozami.com", true },
{ "vpc-display.com", true },
{ "vpn.black", true },
{ "vpn.ht", true },
+ { "vpnpro.com", true },
{ "vpnservice.nl", true },
{ "vpsboard.com", true },
{ "vpsdream.dk", true },
+ { "vpsou.com", false },
{ "vpsport.ch", true },
{ "vpsvz.net", true },
{ "vrandopulo.ru", true },
@@ -35787,21 +37818,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vrcholovka.cz", true },
{ "vreaulafacultate.ro", true },
{ "vreeman.com", true },
+ { "vretmaskin.se", true },
{ "vriesdonkow.be", true },
+ { "vrij-links.nl", true },
{ "vrijgezellen-feest.com", true },
{ "vrijgezellenfeestzwolle.com", true },
- { "vrlaid.com", false },
+ { "vrjetpackgame.com", true },
{ "vroedvrouwella.be", true },
- { "vrsgames.com.mx", true },
{ "vrsystem.com.br", true },
- { "vrtak-cz.net", true },
{ "vrtouring.org", true },
- { "vsamsonov.com", true },
{ "vscale.io", true },
{ "vsean.net", true },
{ "vserver-preis-vergleich.de", true },
{ "vsesrazu-raiffeisen.ru", true },
- { "vsestiralnie.com", true },
+ { "vsestoki.com", true },
{ "vsl-defi.ch", true },
{ "vssnederland.nl", true },
{ "vstehn.ru", true },
@@ -35815,36 +37845,40 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "vuilelakens.be", true },
{ "vuljespaarpot.nl", true },
{ "vullriede-multimedia.de", true },
- { "vulndetect.com", true },
- { "vulndetect.org", true },
+ { "vulndetect.org", false },
{ "vulnerability.ch", true },
{ "vulners.com", true },
{ "vulns.sexy", true },
{ "vulnscan.org", true },
{ "vulpine.club", true },
+ { "vumetric.com", true },
+ { "vuojolahti.com", true },
{ "vuojolahti.fi", true },
{ "vuotila.eu", true },
{ "vuvanhon.com", true },
{ "vux.li", true },
{ "vuzi.fr", true },
+ { "vv1234.cn", true },
{ "vvactivia.nl", true },
{ "vvdbronckhorst.nl", true },
{ "vvoip.org.uk", true },
{ "vvw-8522.com", true },
+ { "vvzero.com", true },
{ "vw-touranclub.cz", true },
{ "vwbusje.com", true },
+ { "vwfsrentacar.co.uk", true },
{ "vwhcare.com", true },
{ "vwittich.de", true },
+ { "vwo.com", true },
{ "vwsoft.de", true },
- { "vwt-event.nl", true },
{ "vww-8522.com", true },
{ "vx.hn", true },
{ "vxst.org", true },
{ "vxstream-sandbox.com", true },
+ { "vxz.me", true },
{ "vybeministry.org", true },
{ "vyber-odhadce.cz", true },
{ "vyberodhadce.cz", true },
- { "vykup-car.ru", true },
{ "vyplnto.cz", true },
{ "vysko.cz", true },
{ "vyskocil.eu", true },
@@ -35857,17 +37891,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "w-spotlight.appspot.com", true },
{ "w-w-auto.de", true },
{ "w.wiki", true },
+ { "w1221.com", true },
{ "w2n.me", true },
{ "w3ctag.org", true },
{ "w3n.org", true },
- { "w4b.in", true },
{ "w4eg.de", true },
{ "w4nvu.org", true },
{ "w50.co.uk", true },
{ "w5gfe.org", true },
{ "w7k.de", true },
{ "w84.it", true },
+ { "w95.pw", true },
{ "wa-stromerzeuger.de", true },
+ { "wa.me", true },
{ "waaw.tv", true },
{ "wabatam.com", true },
{ "wachter.biz", true },
@@ -35876,7 +37912,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wadsworth.gallery", true },
{ "wadvisor.com", true },
{ "waelisch.de", true },
- { "waelti.xxx", true },
{ "waf.ninja", true },
{ "waf.sexy", true },
{ "wafa4hw.com", true },
@@ -35884,6 +37919,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "waffle.at", false },
{ "wafuton.com", true },
{ "wagyu-bader.de", true },
+ { "wahhoi.net", true },
{ "wahidhasan.com", true },
{ "wahlman.org", true },
{ "wahrnehmungswelt.de", true },
@@ -35896,11 +37932,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "waigel.org", true },
{ "waikatowebdesigners.com", true },
{ "wail.net", true },
- { "wains.be", true },
+ { "wains.be", false },
{ "wait.jp", true },
{ "waiterwheels.com", true },
{ "waits.io", true },
- { "waixingrenfuli.vip", true },
+ { "wajtc.com", true },
{ "wak.io", true },
{ "waka-mono.com", true },
{ "waka168.com", true },
@@ -35915,11 +37951,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "waldvogel.family", true },
{ "walent.in", true },
{ "walentin.co", true },
+ { "waligorska.pl", true },
{ "walk.onl", true },
{ "walkera-fans.de", true },
{ "walkhighlandsandislands.com", true },
{ "walkingrehabilitation.com", true },
{ "walksedona.com", true },
+ { "walksfourpaws.co.uk", true },
{ "wallabet.fr", true },
{ "wallabies.org", true },
{ "wallace-group.net", true },
@@ -35945,18 +37983,26 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "walshbanks.com", true },
{ "waltellis.com", true },
{ "walter.lc", true },
+ { "waltervictor.com", true },
{ "waltzmanplasticsurgery.com", true },
{ "walvi.nl", true },
+ { "wan.pp.ua", false },
{ "wanda.ch", true },
{ "wandelreizen.eu", true },
{ "wander.al", true },
{ "wandercue.com", true },
{ "wandervoll.ch", true },
{ "wanderzoom.co", true },
+ { "wandystan.eu", true },
{ "wane.co", true },
+ { "wangbangyu.cf", true },
+ { "wangbangyu.ga", true },
+ { "wangbangyu.gq", true },
+ { "wangbangyu.ml", true },
+ { "wangbangyu.tk", true },
{ "wangjun.me", true },
- { "wangqiliang.cn", false },
- { "wangqiliang.com", false },
+ { "wangqiliang.cn", true },
+ { "wangqiliang.com", true },
{ "wangqiliang.org", true },
{ "wangql.net", true },
{ "wangqr.tk", true },
@@ -35964,11 +38010,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wangyubao.cn", true },
{ "wangyue.blog", true },
{ "wangzuan168.cc", true },
+ { "wanlieyan.com", true },
{ "wannaridecostarica.com", true },
- { "wanybug.cn", true },
+ { "wanybug.cf", true },
{ "wanybug.com", true },
+ { "wanybug.ga", true },
+ { "wanybug.gq", true },
+ { "wanybug.tk", true },
+ { "wanzenbug.xyz", true },
{ "waonui.io", true },
- { "wapgu.cc", true },
{ "wardow.com", true },
{ "warebouncycastles.co.uk", true },
{ "warekit.io", true },
@@ -35978,7 +38028,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "warhaggis.com", true },
{ "warmestwishes.ca", true },
{ "warmservers.com", true },
- { "warnings.xyz", true },
{ "warofelements.de", true },
{ "warp-radio.com", true },
{ "warp-radio.net", true },
@@ -35998,7 +38047,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wasielewski.com.de", true },
{ "wasil.org", true },
{ "waslh.com", true },
- { "wasserburg.dk", true },
{ "wasserspucker.de", true },
{ "wassibauer.com", true },
{ "wastrel.ch", true },
@@ -36011,6 +38059,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "watchpci.com", true },
{ "watchstyle.com", true },
{ "water-addict.com", true },
+ { "waterbrook.com.au", true },
+ { "waterdogsmokedfish.com", true },
{ "waterdrop.tk", true },
{ "waterfedpole.com", true },
{ "waterleeftinbeek.nl", true },
@@ -36029,17 +38079,22 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "waukeect.com", true },
{ "wave-ola.es", true },
{ "wave.is", true },
+ { "waverlysecuritycameras.com", true },
{ "wavesboardshop.com", true },
+ { "wavesoftime.com", true },
{ "waveum.com", true },
{ "wawak.pl", true },
{ "waxdramatic.com", true },
+ { "waycraze.com", true },
{ "wayfair.de", true },
{ "wayohoo.com", true },
{ "wayohoo.net", true },
{ "waytt.cf", true },
{ "waze.com", true },
+ { "wb256.com", true },
{ "wbci.us", false },
{ "wbg-vs.de", true },
+ { "wblinks.com", true },
{ "wbt-solutions.ch", true },
{ "wbt-solutions.net", true },
{ "wbudd.com", true },
@@ -36047,8 +38102,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wbvb.nl", true },
{ "wbx.support", true },
{ "wby.gd", true },
+ { "wby.tw", true },
{ "wcbook.ru", false },
{ "wcn.life", false },
+ { "wcwcg.net", true },
{ "wd627.com", true },
{ "wd976.com", true },
{ "wdbflowersevents.co.uk", true },
@@ -36069,29 +38126,39 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wearandcare.net", true },
{ "weare1inspirit.com", true },
{ "wearebfi.co.uk", true },
+ { "wearedisneyland.com", true },
{ "wearegenki.com", true },
{ "wearehackerone.com", true },
{ "wearepapermill.co", true },
{ "wearesouthafricans.com", true },
{ "wearvr.com", true },
+ { "weaspireusa.com", true },
{ "weather-and-climate.com", false },
{ "weathermyway.rocks", true },
{ "web-adminy.co.uk", true },
- { "web-advisor.co.uk", true },
{ "web-art.cz", true },
{ "web-design.co.il", true },
{ "web-dl.cc", true },
{ "web-hotel.gr", true },
+ { "web-jive.com", true },
{ "web-kouza.com", true },
+ { "web-mail.info", true },
+ { "web-odyssey.com", true },
{ "web-redacteuren.nl", true },
+ { "web-siena.it", true },
+ { "web-smart.com", true },
{ "web-wave.jp", true },
{ "web.bzh", true },
{ "web.cc", false },
{ "web.de", true },
+ { "web1n.com", true },
{ "web2033.com", true },
{ "web2ldap.de", true },
{ "web2screen.tv", true },
{ "web404.net", true },
+ { "webadiccion.net", true },
+ { "webadicta.net", true },
+ { "webadicto.net", true },
{ "webaeon.org", true },
{ "webaholic.co.in", true },
{ "webais.ru", true },
@@ -36100,9 +38167,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "webandmore.de", false },
{ "webappky.cz", true },
{ "webartex.ru", true },
+ { "webauthority.co.uk", true },
{ "webbiz.co.uk", true },
{ "webbson.net", false },
- { "webbx.se", true },
{ "webcamtoy.com", true },
{ "webcatchers.nl", true },
{ "webcatechism.com", false },
@@ -36111,16 +38178,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "webcontentspinning.com", true },
{ "webcookies.org", true },
{ "webcrm.com", true },
+ { "webcurtaincall.com", true },
{ "webdeflect.com", true },
+ { "webdemaestrias.com", true },
{ "webdesign-st.de", true },
{ "webdesigneauclaire.com", true },
{ "webdesignerinwarwickshire.co.uk", true },
{ "webdesignlabor.ch", true },
{ "webdesignplay.com", true },
{ "webdesignplayground.io", true },
+ { "webdesignsandiego.com", true },
{ "webdevops.io", true },
- { "webdevxp.com", true },
{ "webdl.org", true },
+ { "webdollarvpn.io", true },
{ "webduck.nl", false },
{ "webeast.eu", true },
{ "webeau.com", true },
@@ -36129,12 +38199,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "webev.ru", true },
{ "webexample.win", true },
{ "webexp.biz", true },
+ { "webexpertsdirect.com.au", true },
{ "webfilings-eu-mirror.appspot.com", true },
{ "webfilings-eu.appspot.com", true },
{ "webfilings-mirror-hrd.appspot.com", true },
{ "webfilings.appspot.com", true },
{ "webfixers.nl", true },
{ "webfox.com.br", true },
+ { "webgap.io", true },
{ "webgarten.ch", true },
{ "webgears.com", true },
{ "webharvest.gov", true },
@@ -36160,11 +38232,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "webmandesign.eu", true },
{ "webmax.com.tr", true },
{ "webmedpharmacy.co.uk", true },
- { "webmel.com", true },
{ "webmetering.at", true },
{ "webministeriet.net", true },
{ "webmotelli.fi", true },
{ "webnames.ca", true },
+ { "webnexty.com", true },
{ "webogram.org", false },
{ "webpinoytambayan.net", true },
{ "webpinoytv.info", true },
@@ -36175,14 +38247,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "webproxy.pw", true },
{ "webpubsub.com", true },
{ "webqualitat.com.br", true },
- { "webqueens.com", true },
{ "webrebels.org", false },
{ "webrentcars.com", true },
{ "webreport.fr", true },
- { "webreslist.com", true },
{ "webscale.nl", false },
{ "websec.nl", true },
- { "websectools.com", true },
{ "websecurity.is", true },
{ "webseitendesigner.com", false },
{ "webseitenserver.com", true },
@@ -36198,6 +38267,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "websitesdallas.com", true },
{ "websiteservice.pro", true },
{ "webslake.com", true },
+ { "websouthdesign.com", true },
{ "webspiral.jp", true },
{ "webspire.tech", true },
{ "webstijlen.nl", true },
@@ -36209,7 +38279,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "webtalis.nl", true },
{ "webtasarim.pw", true },
{ "webtheapp.com", true },
- { "webtobesocial.de", true },
{ "webtorrent.io", true },
{ "webtrh.cz", true },
{ "webtropia.com", false },
@@ -36221,31 +38290,31 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "webwolf.co.za", true },
{ "webworkshop.ltd", true },
{ "webyazilimankara.com", true },
- { "webz.one", true },
- { "wecanvisit.com", true },
{ "wechatify.com", true },
{ "wecleanbins.com", true },
{ "wecobble.com", true },
{ "weddingalbumsdesign.com", true },
{ "weddingfantasy.ru", true },
+ { "weddingofficiantwilmington.com", true },
{ "weddingsbynoon.co.uk", true },
{ "weddywood.ru", false },
{ "wedos.com", true },
{ "weeblr.com", true },
{ "weeblrpress.com", true },
{ "weedcircles.com", true },
- { "weedlandia.org", true },
{ "weedlife.com", true },
{ "weednews.co", true },
{ "weedupdate.com", true },
{ "weedworthy.com", true },
{ "weedypedia.de", true },
+ { "week.report", true },
{ "weekdone.com", true },
{ "weekendinitaly.com", true },
{ "weekly-residence.com", true },
{ "weeklycenter.co.jp", true },
{ "weeknummers.be", true },
{ "weeknummers.nl", true },
+ { "weekvandemediawijsheid.nl", true },
{ "weemake.fr", true },
{ "weemakers.fr", true },
{ "weepycat.com", true },
@@ -36271,17 +38340,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "weils.net", true },
{ "weiltoast.de", true },
{ "weimaraner.com.br", true },
+ { "weiming.ddns.net", true },
{ "weimz.com", true },
{ "wein.cc", true },
{ "wein.co.kr", true },
{ "weinbergerlawgroup.com", true },
{ "weinundsein.com", true },
{ "weirdesigns.com", true },
- { "weirdserver.com", true },
{ "weisse-liste.de", true },
{ "weissman.agency", true },
{ "weiterbildung-vdz.de", true },
{ "weitergedacht.eu", true },
+ { "weixiaojun.org", true },
{ "weizenspr.eu", true },
{ "welcome-tahiti.com", true },
{ "welcome-werkstatt.com", true },
@@ -36295,15 +38365,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wellacapability.com", true },
{ "wellbeing360.com.au", true },
{ "wellcom.co.il", true },
- { "welldrake.com", true },
{ "wellensteyn.ru", true },
{ "weller.pm", true },
{ "wellist.com", true },
- { "wellmarts.com", true },
{ "wellness-gutschein.de", true },
{ "wellnesscheck.net", true },
+ { "wellsolveit.com", false },
{ "welovecatsandkittens.com", true },
- { "welpo.me", true },
{ "welsh.com.br", true },
{ "welshccf.org.uk", true },
{ "welteneroberer.de", true },
@@ -36321,7 +38389,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wendlberger.net", true },
{ "wendu.me", true },
{ "wener.me", false },
- { "wengebowuguan.com", true },
{ "wenger-shop.ch", true },
{ "wenjs.me", true },
{ "wensing-und-koenig.de", true },
@@ -36341,6 +38408,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "werbik.at", true },
{ "werehub.org", true },
{ "wereldkoffie.eu", true },
+ { "wereoutthere.nl", true },
{ "werepairit.com.au", true },
{ "werk-34.de", true },
{ "werk32.net", false },
@@ -36363,7 +38431,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wertheimer-burgrock.de", true },
{ "wertpapiertreuhand.de", true },
{ "werwolf-live.de", true },
- { "wes-dev.com", true },
{ "wesecom.com", true },
{ "wesell.asia", true },
{ "weserv.nl", true },
@@ -36376,6 +38443,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "west-contemporary.com", true },
{ "west-trans.com.au", true },
{ "west-wind.net", true },
+ { "westcanal.net", true },
{ "westcarrollton.org", true },
{ "westcentenaryscouts.org.au", true },
{ "westcentralaor.org", true },
@@ -36409,7 +38477,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wexfordbouncycastles.ie", true },
{ "wexilapp.com", true },
{ "weyland-yutani.org", true },
- { "weyland.tech", true },
+ { "weynaphotography.com", true },
+ { "wezartt.com", true },
{ "wf-bigsky-master.appspot.com", true },
{ "wf-demo-eu.appspot.com", true },
{ "wf-demo-hrd.appspot.com", true },
@@ -36430,7 +38499,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wgraphics.ru", true },
{ "wgsi-friesland.nl", true },
{ "wh-guide.de", true },
- { "whanau.org", true },
{ "what-wood.servehttp.com", true },
{ "whatagreatwebsite.net", true },
{ "whatanime.ga", true },
@@ -36443,7 +38511,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "whatclinic.ru", true },
{ "whateveraspidercan.com", true },
{ "whatismycountry.com", true },
- { "whatismyip.net", true },
+ { "whatismyip.net", false },
{ "whatismyipaddress.ca", true },
{ "whatisthe.cloud", true },
{ "whatnext.limited", true },
@@ -36454,6 +38522,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "whatsupgold.com.tw", true },
{ "whatsupoutdoor.com", true },
{ "whatthingsweigh.com", true },
+ { "whatusb.com", true },
{ "whatwebcando.today", true },
{ "whatwg.org", true },
{ "whd-guide.de", true },
@@ -36462,7 +38531,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wheeler.kiwi.nz", true },
{ "wheelwide.co.uk", true },
{ "wheelwork.org", true },
- { "wheelwright.org", true },
+ { "wheezie.be", true },
{ "when.fm", false },
{ "where2trip.com", true },
{ "whereiszakir.com", true },
@@ -36482,6 +38551,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "whistleb.com", true },
{ "whistleblower.gov", true },
{ "whitby-brewery.com", true },
+ { "white-ibiza.com", true },
{ "whitealps.at", true },
{ "whitealps.be", true },
{ "whitealps.ch", true },
@@ -36493,16 +38563,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "whitehathackers.com.br", true },
{ "whitehouse.gov", true },
{ "whitehousedrugpolicy.gov", true },
- { "whiteink.com", true },
+ { "whiteink.com", false },
{ "whitejaguars.com", true },
{ "whitelabelcashback.nl", true },
{ "whitelabeltickets.com", false },
{ "whitepharmacy.co.uk", true },
{ "whiteready.it", true },
{ "whiterose.goip.de", true },
+ { "whiteshadowimperium.com", true },
{ "whitewebhosting.co.za", true },
{ "whitewebhosting.com", true },
{ "whitewinterwolf.com", true },
+ { "whitkirk.com", true },
{ "whitkirkartsguild.com", true },
{ "whitkirkchurch.org.uk", true },
{ "whittome.com", true },
@@ -36517,7 +38589,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "whocalled.us", true },
{ "whocybered.me", true },
{ "whoimg.com", true },
- { "whoisamitsingh.com", true },
+ { "whoiscuter.ml", true },
+ { "whoiscutest.ml", true },
{ "whoisthenightking.com", true },
{ "whoiswp.com", true },
{ "wholelotofbounce.co.uk", false },
@@ -36532,6 +38605,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "whub.io", true },
{ "why-brexit.uk", true },
{ "whychoosebob.net.au", true },
+ { "whynohttps.com", true },
{ "whyopencomputing.ch", true },
{ "whyopencomputing.com", true },
{ "whytls.com", true },
@@ -36597,10 +38671,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wild-turtles.com", false },
{ "wildboaratvparts.com", true },
{ "wilddogdesign.co.uk", true },
+ { "wildewood.ca", true },
{ "wildlifeadaptationstrategy.gov", true },
{ "wildnisfamilie.net", true },
{ "wildtrip.blog", true },
{ "wildwildtravel.com", true },
+ { "wildwind.world", true },
{ "wildzoopark.co.uk", true },
{ "wildzoopark.com", true },
{ "wili.li", true },
@@ -36618,12 +38694,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "williamboulton.co.uk", true },
{ "williamfeely.info", true },
{ "williamjohngauthier.net", true },
- { "williamsonshore.com", true },
+ { "williamscomposer.com", true },
+ { "williamsflintlocks.com", true },
{ "williamsportmortgages.com", true },
{ "williamsroom.com", true },
{ "williamtm.com", true },
{ "willnorris.com", true },
{ "willow.technology", true },
+ { "willowbrook.co.uk", true },
{ "willowdalechurch.ca", true },
{ "willowtree.school", true },
{ "wills.co.tt", true },
@@ -36642,6 +38720,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "winbignow.click", true },
{ "winbuzzer.com", true },
{ "wincasinowin.click", true },
+ { "winch-center.de", true },
{ "wind.moe", true },
{ "winddan.nz", true },
{ "windelnkaufen24.de", true },
@@ -36676,20 +38755,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wintercam.nl", true },
{ "winterfeldt.de", true },
{ "winterhillbank.com", true },
+ { "wintermeyer-consulting.de", true },
{ "wintermeyer.de", true },
{ "winterschoen.nl", true },
{ "wintodoor.com", true },
+ { "winwitharval.co.uk", true },
{ "wipswiss.ch", true },
{ "wir-bewegen.sh", true },
{ "wircon-int.net", true },
{ "wire.com", true },
- { "wiredcut.com", true },
{ "wireframesoftware.com", true },
{ "wireheading.com", true },
- { "wirelesswatch.com.au", true },
{ "wireshark.org", true },
{ "wiretime.de", true },
- { "wiretrip.io", false },
{ "wirhabenspass.de", true },
{ "wirkstoffreich.de", true },
{ "wirralbouncycastles.co.uk", true },
@@ -36698,6 +38776,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wis.no", true },
{ "wisak.me", true },
{ "wisal.org", true },
+ { "wischu.com", true },
+ { "wisedog.eu", true },
{ "wiseflat.com", true },
{ "wispapp.com", false },
{ "wisper.net.au", true },
@@ -36725,6 +38805,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wizzr.nl", true },
{ "wj0666.com", true },
{ "wjbolles.com", true },
+ { "wjcainc.com", true },
{ "wjci.com", true },
{ "wje-online.de", true },
{ "wjg.ca", true },
@@ -36751,11 +38832,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wmfusercontent.org", true },
{ "wmkowa.de", true },
{ "wmustore.com", true },
- { "wnmed.com.au", true },
{ "wnu.com", true },
{ "wo-ist-elvira.net", true },
{ "wo2forum.nl", true },
{ "woah.how", true },
+ { "woaiuhd.com", true },
{ "wobble.ninja", true },
{ "wobblywotnotz.co.uk", true },
{ "wochennummern.de", true },
@@ -36787,7 +38868,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wolfsden.cz", true },
{ "wolfwings.us", true },
{ "wolfy1339.com", false },
- { "wolkenspeicher.org", true },
{ "wolkoopjes.nl", true },
{ "wollgredel.de", true },
{ "wollongongbaptist.hopto.org", true },
@@ -36797,6 +38877,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "womb.city", true },
{ "wombatalla.com.au", true },
{ "wombats.net", true },
+ { "womcom.nl", true },
{ "women-only.net", true },
{ "womensalespros.com", true },
{ "womenshairlossproject.com", true },
@@ -36816,7 +38897,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "woodcoin.org", true },
{ "woodev.us", true },
{ "woodlandhillselectrical.com", true },
- { "woodlandsmetro.church", true },
+ { "woodlandsmetro.church", false },
{ "woodlandsvale.uk", true },
{ "woodlandwindows.com", true },
{ "woodomat.com", true },
@@ -36824,7 +38905,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "woof.gq", true },
{ "woofsbakery.com", true },
{ "woohooyeah.nl", true },
- { "woomai.net", true },
{ "woonboulevardvolendam.nl", true },
{ "woontegelwinkel.nl", true },
{ "wooplagaming.com", true },
@@ -36837,7 +38917,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "word-grabber.com", true },
{ "wordcounter.net", true },
{ "wordher.com", true },
- { "wordlessecho.com", true },
{ "wordpress.com", false },
{ "wordsmart.it", true },
{ "wordspy.com", true },
@@ -36852,16 +38931,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "workingclassmedia.com", true },
{ "workinginsync.co.uk", true },
{ "workingmachine.info", true },
- { "workissime.com", true },
{ "workmart.mx", true },
{ "workoptions.com", true },
{ "workplaces.online", true },
{ "workraw.com", true },
+ { "workray.com", true },
{ "works-ginan.jp", true },
{ "workshopszwolle.nl", true },
{ "workshopzwolle.com", true },
{ "worksitevr.com", true },
{ "world-in-my-eyes.com", true },
+ { "world-lolo.com", true },
{ "worldcareers.dk", true },
{ "worldcigars.com.br", true },
{ "worldcrafts.org", true },
@@ -36877,6 +38957,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "worldofvnc.net", true },
{ "worldofwobble.co.uk", true },
{ "worldpeacetechnology.com", true },
+ { "worldrecipes.eu", true },
{ "worldsgreatestazuredemo.com", true },
{ "worldsoccerclips.com", true },
{ "worldstone777.com", true },
@@ -36889,6 +38970,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wot-tudasbazis.hu", true },
{ "wotra-register.com", true },
{ "woudenberg.nl", true },
+ { "woudenbergsedrukkerij.nl", true },
{ "woufbox.com", true },
{ "woutergeraedts.nl", true },
{ "wouterslop.com", true },
@@ -36896,7 +38978,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wouterslop.nl", true },
{ "wow-foederation.de", true },
{ "wow-screenshots.net", true },
- { "wow202y5.com", true },
{ "wowaffixes.info", true },
{ "wowbouncycastles.co.uk", true },
{ "wowhelp.it", true },
@@ -36916,14 +38997,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wpac.de", true },
{ "wpandup.org", true },
{ "wpcanban.com", true },
+ { "wpccu.org", true },
+ { "wpcdn.bid", true },
{ "wpcharged.nz", true },
{ "wpdesigner.ir", true },
{ "wpdirecto.com", true },
{ "wpdublin.com", true },
{ "wpenhance.com", true },
{ "wpexplorer.com", true },
- { "wpfast.net", true },
{ "wpformation.com", true },
+ { "wpgoblin.com", true },
{ "wphostingblog.nl", true },
{ "wpinter.com", true },
{ "wpldn.uk", true },
@@ -36948,6 +39031,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wq.ro", true },
{ "wr.su", true },
{ "wrara.org", true },
+ { "wrathofgeek.com", true },
{ "wrc-results.com", true },
{ "wrdcfiles.ca", true },
{ "wrdx.io", true },
@@ -36962,7 +39046,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "writemyessay.today", true },
{ "writemyessays.com", true },
{ "writemypaperhub.com", true },
- { "writemytermpapers.com", true },
{ "writeoff.me", true },
{ "writepride.com", true },
{ "writepro.net", true },
@@ -36999,6 +39082,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wtfismyip.com", true },
{ "wtfnope.org", true },
{ "wth.in", true },
+ { "wtp.co.jp", true },
{ "wtpdive.jp", true },
{ "wtpmj.com", true },
{ "wtw.io", true },
@@ -37010,7 +39094,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wuifan.com", true },
{ "wuji.cz", true },
{ "wumai-p.cn", true },
- { "wumai.cloud", true },
{ "wumbo.cf", true },
{ "wumbo.co.nz", true },
{ "wumbo.ga", true },
@@ -37043,11 +39126,15 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "wwv-8722.com", true },
{ "www-33445.com", true },
{ "www-49889.com", true },
+ { "www-7570.com", true },
+ { "www-80036.com", true },
{ "www-8522.am", true },
{ "www-8522.com", true },
{ "www-86499.com", true },
{ "www-8722.com", true },
+ { "www-9649.com", true },
{ "www-9822.com", true },
+ { "www-pj009.com", true },
{ "www.aclu.org", false },
{ "www.airbnb.com", true },
{ "www.amazon.cn", true },
@@ -37110,45 +39197,48 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "www.wordpress.com", false },
{ "www.zdnet.com", true },
{ "www68277.com", true },
+ { "wwww.is", true },
+ { "wwww.me.uk", true },
{ "wxcafe.net", true },
+ { "wxdisco.com", true },
+ { "wxforums.com", true },
{ "wxh.jp", true },
{ "wxster.com", true },
- { "wxyz.buzz", true },
+ { "wxzm.sx", true },
{ "wyam.io", true },
{ "wybar.uk", true },
+ { "wycrow.com", true },
{ "wyday.com", true },
{ "wygibanki.pl", true },
{ "wygodnie.pl", true },
{ "wynterhill.co.uk", true },
{ "wyo.cam", true },
{ "wypemagazine.se", true },
+ { "wyrickstaxidermy.com", true },
{ "wyrihaximus.net", true },
{ "wyrimaps.net", true },
{ "wyssmuller.ch", true },
+ { "wzfetish.com.br", true },
{ "wzfou.com", true },
- { "wzrd.in", true },
{ "wzyboy.org", true },
- { "x-iweb.ru", true },
{ "x-lan.be", true },
{ "x-one.co.jp", true },
{ "x.io", true },
{ "x.st", true },
{ "x0r.be", true },
{ "x13.com", true },
- { "x1be.win", true },
+ { "x1616.tk", true },
{ "x2d2.de", true },
{ "x378.ch", true },
{ "x509.io", true },
- { "x69.biz", true },
- { "x69x.net", true },
{ "x7plus.com", true },
{ "xa.search.yahoo.com", false },
{ "xa1.uk", true },
{ "xanadu-taxi.cz", true },
+ { "xanax.pro", false },
{ "xants.de", true },
{ "xatr0z.org", false },
{ "xavier.is", true },
- { "xawen.net", true },
{ "xbb.hk", true },
{ "xbb.li", true },
{ "xbertschy.com", true },
@@ -37167,15 +39257,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xcorpsolutions.com", true },
{ "xcvb.xyz", true },
{ "xd.cm", true },
- { "xd.fi", true },
{ "xdavidhu.me", true },
{ "xdawn.cn", true },
{ "xdeftor.com", true },
- { "xecure.zone", true },
- { "xecureit.com", true },
+ { "xdos.io", true },
{ "xeedbeam.me", true },
{ "xega.org", true },
{ "xehost.com", true },
+ { "xeiropraktiki.gr", true },
{ "xelesante.jp", true },
{ "xendo.net", true },
{ "xenomedia.nl", true },
@@ -37187,6 +39276,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xentox.com", true },
{ "xerblade.com", true },
{ "xerhost.de", true },
+ { "xerkus.pro", true },
{ "xerownia.eu", true },
{ "xetown.com", true },
{ "xf-liam.com", true },
@@ -37199,6 +39289,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xgclan.com", true },
{ "xgn.es", true },
{ "xhadius.de", true },
+ { "xhily.com", true },
{ "xhmikosr.io", true },
{ "xho.me", true },
{ "xia.de", true },
@@ -37213,6 +39304,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xiaofengsky.com", true },
{ "xiaoguo.net", false },
{ "xiaolanglang.net", true },
+ { "xiaolong.link", true },
+ { "xiaomao.tk", true },
{ "xiaomi.eu", true },
{ "xiaoniaoyou.com", true },
{ "xiaoyu.net", true },
@@ -37231,6 +39324,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xin-in.com", true },
{ "xin-in.net", true },
{ "xing-in.net", true },
+ { "xinj.com", true },
{ "xinnixdeuren-shop.be", true },
{ "xinuspeed.com", true },
{ "xinuspeedtest.com", true },
@@ -37238,7 +39332,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xiongx.cn", true },
{ "xj8876.com", true },
{ "xjd.vision", true },
+ { "xjf6.com", true },
{ "xjjeeps.com", true },
+ { "xjoin.de", true },
{ "xjpvictor.info", true },
{ "xkblog.xyz", true },
{ "xkcd.pw", true },
@@ -37251,15 +39347,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xmedius.com", false },
{ "xmedius.eu", true },
{ "xmenrevolution.com", true },
- { "xmerak.com", true },
{ "xmlbeam.org", true },
+ { "xmlogin288.com", true },
{ "xmpp.dk", true },
{ "xmppwocky.net", true },
{ "xmr.to", true },
{ "xmtpro.com", true },
{ "xmusic.live", true },
{ "xmv.cz", false },
- { "xn-----8kcgbo2bmdgkdacthvjf.xn--p1ai", true },
{ "xn----7sbfl2alf8a.xn--p1ai", true },
{ "xn----8hcdn2ankm1bfq.com", true },
{ "xn----zmcaltpp1mdh16i.com", true },
@@ -37267,7 +39362,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xn--0kq33cz5c8wmwrqqw1d.com", true },
{ "xn--24-6kch4bfqee.xn--p1ai", true },
{ "xn--24-glcia8dc.xn--p1ai", true },
- { "xn--3lqp21gwna.cn", true },
+ { "xn--48jwg508p.net", true },
+ { "xn--4kro7fswi.xn--6qq986b3xl", true },
{ "xn--4pv80kkz8auzf.jp", true },
{ "xn--5dbkjqb0d.com", true },
{ "xn--5dbkjqb0d.net", true },
@@ -37276,8 +39372,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xn--79q87uvkclvgd56ahq5a.net", true },
{ "xn--7ca.co", true },
{ "xn--7xa.google.com", true },
- { "xn--80aaagmgvmvmcuoq7r.xn--p1ai", true },
{ "xn--80adb4aeode.xn--p1ai", true },
+ { "xn--80adbevek3air0ee9b8d.com", true },
{ "xn--80aejljbfwxn.xn--p1ai", true },
{ "xn--80anogxed.xn--p1ai", true },
{ "xn--80azelb.xn--p1ai", true },
@@ -37308,18 +39404,18 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xn--e1aoahhqgn.xn--p1ai", true },
{ "xn--ecki0cd0bu9a4nsjb.com", true },
{ "xn--eckle6c0exa0b0modc7054g7h8ajw6f.com", true },
+ { "xn--ehq13kgw4e.ml", true },
{ "xn--elsignificadodesoar-c4b.com", true },
{ "xn--erklderbarenben-slbh.dk", true },
{ "xn--f9jh4f4b4993b66s.tokyo", true },
{ "xn--familie-pppinghaus-l3b.de", true },
{ "xn--feuerlscher-arten-4zb.de", true },
+ { "xn--fiqwix98h.jp", true },
{ "xn--fischereiverein-mnsterhausen-i7c.de", true },
{ "xn--fp8h58f.ws", true },
{ "xn--frankierknig-djb.de", true },
{ "xn--fs5ak3f.com", true },
- { "xn--gfrr-7qa.li", true },
{ "xn--gfrrli-yxa.ch", true },
- { "xn--hfk-allgu-schwaben-stb.de", true },
{ "xn--hgbk4a00a.com", true },
{ "xn--hllrigl-90a.at", true },
{ "xn--i2ru8q2qg.com", true },
@@ -37330,7 +39426,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xn--jp8hx8f.ws", true },
{ "xn--kckd0bd4a8tp27yee2e.com", true },
{ "xn--kda.tk", true },
+ { "xn--keditr-0xa.biz", true },
+ { "xn--klmek-0sa.com", true },
{ "xn--knstler-n2a.tips", false },
+ { "xn--krpto-lva.de", true },
{ "xn--ktha-kamrater-pfba.se", true },
{ "xn--lckwg.net", true },
{ "xn--love-un4c7e0d4a.com", true },
@@ -37345,7 +39444,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xn--mgbbh2a9fub.xn--ngbc5azd", false },
{ "xn--mgbmmp7eub.com", true },
{ "xn--mgbpkc7fz3awhe.com", true },
- { "xn--mhsv04avtt1xi.com", false },
{ "xn--mllers-wxa.info", true },
{ "xn--myrepubic-wub.net", true },
{ "xn--myrepublc-x5a.net", true },
@@ -37355,15 +39453,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xn--nf1a578axkh.xn--fiqs8s", true },
{ "xn--nrrdetval-v2ab.se", true },
{ "xn--o38h.tk", true },
+ { "xn--obt757c.com", true },
+ { "xn--p8j9a0d9c9a.xn--q9jyb4c", true },
{ "xn--pbt947am3ab71g.com", true },
{ "xn--pe-bka.ee", true },
{ "xn--pq1a637b.xn--6qq986b3xl", true },
{ "xn--q9jb1h5dvcspke3218b9mn4p0c.com", true },
+ { "xn--q9ji3c6d.xn--q9jyb4c", true },
{ "xn--qckss0j.tk", true },
{ "xn--qfun83b.ga", true },
{ "xn--r8jzaf7977b09e.com", true },
{ "xn--rdiger-kuhlmann-zvb.de", true },
{ "xn--reisebro-herrsching-bbc.de", true },
+ { "xn--rlcus7b3d.xn--xkc2dl3a5ee0h", true },
{ "xn--roselire-60a.ch", true },
{ "xn--roselire-60a.com", true },
{ "xn--rt-cja.ie", true },
@@ -37372,19 +39474,17 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xn--s-1gaa.fi", true },
{ "xn--seelenwchter-mcb.eu", true },
{ "xn--spenijmazania-yhc.pl", true },
- { "xn--sz8h.ml", true },
{ "xn--t-oha.lv", true },
{ "xn--t8j4aa4nkg1h9bwcvud.com", true },
- { "xn--t8j4aa4nyhxa7duezbl49aqg5546e264d.net", true },
{ "xn--t8j4aa4nzg3a5euoxcwee.xyz", true },
{ "xn--tigreray-i1a.org", true },
+ { "xn--trdler-xxa.xyz", true },
{ "xn--u8jwd.ga", true },
{ "xn--u9j0ia6hb7347cg8wavz0avb0e.com", true },
{ "xn--u9jv84l7ea468b.com", true },
{ "xn--v-wfa35g.ro", true },
{ "xn--v6q426ishax2a.xyz", true },
{ "xn--woistdermlleimer-rzb.de", true },
- { "xn--wq9h.ml", true },
{ "xn--y-5ga.com", true },
{ "xn--y8j148r.xn--q9jyb4c", true },
{ "xn--y8ja6lb.xn--q9jyb4c", true },
@@ -37403,19 +39503,16 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xnu.kr", true },
{ "xo.tc", true },
{ "xo7.ovh", true },
- { "xoda.pw", true },
{ "xolphin.nl", true },
{ "xombitgames.com", true },
{ "xombitmusic.com", true },
{ "xone.cz", true },
{ "xonn.de", true },
- { "xotika.tv", true },
+ { "xoonth.net", true },
{ "xp2.de", true },
{ "xpbytes.com", true },
{ "xpd.se", true },
{ "xperidia.com", true },
- { "xpj.bet", true },
- { "xpjcunkuan.com", true },
{ "xpletus.nl", true },
{ "xplore-dna.net", true },
{ "xpoc.pro", true },
@@ -37424,12 +39521,13 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xps2pdf.info", true },
{ "xqk7.com", true },
{ "xr.cx", true },
+ { "xrg.cz", true },
{ "xrippedhd.com", true },
{ "xrockx.de", true },
{ "xroot.org", false },
{ "xrwracing-france.com", true },
{ "xs2a.no", true },
- { "xscancun.com", true },
+ { "xs74.com", true },
{ "xsec.me", true },
{ "xserownia.com.pl", true },
{ "xserownia.eu", true },
@@ -37441,6 +39539,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xsz.jp", true },
{ "xtarget.ru", true },
{ "xtips.us", true },
+ { "xtom.africa", true },
{ "xtom.chat", true },
{ "xtom.com", true },
{ "xtom.com.hk", true },
@@ -37460,30 +39559,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "xubo666.com", true },
{ "xuc.me", true },
{ "xuedianshang.com", true },
- { "xujan.com", true },
{ "xuming.studio", true },
{ "xunn.io", true },
{ "xuntier.ch", true },
{ "xviimusic.com", true },
{ "xvt-blog.tk", true },
+ { "xwalck.se", true },
{ "xwaretech.info", true },
{ "xx0r.eu", true },
{ "xxffo.com", true },
{ "xxiz.com", true },
- { "xxx3dbdsm.com", true },
- { "xxxladyboysporn.com", true },
{ "xxxlbox.com", true },
- { "xyfun.net", true },
+ { "xyenon.bid", true },
+ { "xyfun.net", false },
{ "xyngular-health.com", true },
{ "xywing.com", true },
{ "xyyp.mn", true },
{ "xyzulu.hosting", true },
+ { "xza.fr", true },
{ "xzclip.cn", true },
- { "xzoneadventure.com", true },
{ "xzy.es", true },
{ "xzy.one", true },
{ "y11n.net", true },
- { "yabrt.cn", true },
{ "yabuisha.jp", true },
{ "yachigoya.com", true },
{ "yacineboumaza.fr", true },
@@ -37512,9 +39609,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yanbao.xyz", true },
{ "yandere.moe", true },
{ "yangjingwen.cn", true },
- { "yangmaodang.org", true },
{ "yanngraf.ch", true },
{ "yanngraf.com", true },
+ { "yannic.world", true },
{ "yannick.cloud", true },
{ "yannik-buerkle.de", true },
{ "yannikbloscheck.com", true },
@@ -37526,12 +39623,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yao-in.net", true },
{ "yapbreak.fr", true },
{ "yarcom.ru", false },
- { "yarogneva.ru", true },
{ "yarravilletownhouses.com.au", true },
{ "yaru.one", true },
{ "yassine-ayari.com", true },
{ "yatesun.com", true },
{ "yatorie.net", true },
+ { "yatstudios.com", true },
{ "yatsuenpoon.com", true },
{ "yaup.tk", true },
{ "yawen.me", true },
@@ -37539,7 +39636,9 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yaxim.org", true },
{ "yazaral.com", true },
{ "ybin.me", true },
+ { "ybresson.com", true },
{ "ybsul.com", true },
+ { "ybt520.com", true },
{ "ybti.net", true },
{ "ybzhao.com", true },
{ "ych.art", true },
@@ -37547,11 +39646,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ychon.com", true },
{ "ychong.com", true },
{ "yclan.net", true },
+ { "ycnrg.org", true },
{ "yd.io", true },
{ "yeapdata.com", true },
{ "yeesker.com", true },
{ "yell.ml", true },
+ { "yellowfly.co.uk", true },
{ "yellowpages.ee", true },
+ { "yellowtree.co.za", true },
{ "yelon.hu", true },
{ "yelp.at", true },
{ "yelp.be", true },
@@ -37587,11 +39689,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yelp.se", true },
{ "yemektarifleri.com", true },
{ "yenibilgi.net", true },
- { "yennhi.co", true },
{ "yep-pro.ch", true },
{ "yephy.com", true },
{ "yeshu.org", true },
{ "yesiammaisey.me", true },
+ { "yeswecan.co.bw", true },
{ "yeswehack.com", true },
{ "yetanalytics.io", true },
{ "yetii.net", true },
@@ -37599,44 +39701,46 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yeu.io", true },
{ "yex.nz", true },
{ "yex.trade", true },
+ { "yeyi.site", true },
{ "yfengs.moe", true },
{ "ygobbs.com", true },
- { "yh35.net", true },
{ "yh599.cc", true },
{ "yhaupenthal.org", true },
{ "yhb.io", true },
{ "yhe.me", true },
+ { "yhfou.com", true },
{ "yhndnzj.com", true },
{ "yhong.me", true },
- { "yhrd.org", true },
{ "yhwj.top", false },
{ "yicknam.my", true },
{ "yiffy.tips", false },
{ "yiffy.zone", false },
{ "yigujin.cn", true },
+ { "yiheng.moe", true },
{ "yii2.cc", true },
{ "yikeyong.com", true },
{ "yimgo.fr", true },
- { "yin8888.tv", true },
{ "yinfor.com", true },
{ "yingatech.com", true },
{ "yinglinda.love", true },
{ "yinlei.org", true },
- { "yipingguo.com", true },
{ "yiyuanzhong.com", true },
{ "yiyueread.com", true },
{ "yiz96.com", true },
{ "yjsw.sh.cn", true },
{ "yksityisyydensuoja.fi", true },
{ "ylde.de", true },
- { "ylilauta.org", true },
{ "ylinternal.com", true },
{ "ymarion.de", true },
{ "ymblaw.com", true },
+ { "ymoah.nl", true },
{ "ymtsonline.org", true },
{ "ynnovasport.be", true },
+ { "ynxfh.cn", true },
+ { "yoast.com", true },
{ "yobai-grouprec.jp", true },
{ "yobai28.com", true },
+ { "yobbelwobbel.de", false },
{ "yobify.com", true },
{ "yocchan1513.net", true },
{ "yoga-alliance-teacher-training.com", true },
@@ -37647,6 +39751,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yoga-zentrum-narayani.de", true },
{ "yogabhawnamission.com", true },
{ "yogacentric.co.uk", true },
+ { "yogahealsinc.org", true },
{ "yogananda-roma.org", true },
{ "yogaschoolrishikesh.com", true },
{ "yoibyoin.info", true },
@@ -37655,12 +39760,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yokohama-legaloffice.jp", true },
{ "yolo.jetzt", true },
{ "yolobert.de", true },
- { "yoloboatrentals.com", false },
+ { "yoloboatrentals.com", true },
{ "yolops.net", true },
{ "yombo.net", true },
+ { "yon.co.il", true },
{ "yongbin.org", true },
{ "yoonas.com", true },
{ "yooooex.com", true },
+ { "yoppoy.com", true },
{ "yopuedo.co", true },
{ "yoramvandevelde.net", true },
{ "yorcom.nl", false },
@@ -37673,28 +39780,28 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yoshibaworks.com", true },
{ "yoshitsugu.net", true },
{ "yospos.org", true },
+ { "yoticonnections.com", true },
{ "yotilab.com", true },
{ "yotta-zetta.com", true },
{ "yotubaiotona.net", true },
{ "you.com.br", true },
+ { "you2you.fr", true },
{ "youareme.ca", true },
{ "youc.ir", true },
{ "youcanmakeit.at", true },
{ "youcruit.com", true },
- { "youdowell.com", true },
{ "youdungoofd.com", true },
{ "youftp.tk", true },
{ "yougee.ml", true },
+ { "yougot.pw", true },
{ "youhacked.me", true },
{ "youhavewords.com", true },
{ "youhua.ru", true },
- { "youjizz.bz", true },
{ "youkaryote.com", true },
{ "youkaryote.org", true },
{ "youked.com", true },
{ "youkok2.com", true },
{ "youlovehers.com", true },
- { "youmonit.me", true },
{ "youms.de", true },
{ "young-sheldon.com", true },
{ "youngdogs.org", true },
@@ -37705,27 +39812,30 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "youpark.no", true },
{ "your-erotic-stories.com", true },
{ "your-out.com", true },
- { "youran.me", true },
+ { "youracnepro.com", true },
{ "yourbonus.click", true },
{ "yourciso.com", true },
+ { "yourcomputer.expert", true },
{ "yourcopywriter.it", true },
{ "yourforex.org", true },
{ "yourfriendlytech.com", true },
{ "yourfuturestrategy.com.au", true },
{ "yourgames.tv", true },
{ "yourhair.net", true },
+ { "yourmemorykeeper.co.uk", true },
{ "yourneighborhub.com", true },
{ "yourskin.nl", true },
+ { "yourstake.org", true },
{ "yourticketbooking.com", true },
{ "yousei.ne.jp", true },
{ "yout.com", true },
{ "youth.gov", true },
+ { "youthovation.org", true },
{ "youtous.me", true },
{ "youtsuu-raku.com", true },
{ "youtube.com", true },
{ "youtubedownloader.com", true },
{ "youtuberis.lt", true },
- { "youwatchporn.com", true },
{ "yoxall.me.uk", true },
{ "yoyoost.duckdns.org", true },
{ "ypart.eu", true },
@@ -37734,9 +39844,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yplanapp.com", true },
{ "yqjf68.com", true },
{ "yr166166.com", true },
+ { "yrjanheikki.com", true },
{ "ys-shop.biz", true },
- { "ysicing.net", true },
{ "ysicorp.com", true },
+ { "yspeo.biz", true },
{ "ysun.xyz", true },
{ "ysx.me.uk", true },
{ "ytb.zone", true },
@@ -37747,11 +39858,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "ytpak.pk", true },
{ "ytreza.fr", true },
{ "ytuquelees.net", true },
+ { "ytx588.com", true },
{ "yu.gg", false },
{ "yu.vc", true },
{ "yuan.ga", true },
{ "yuanben.io", true },
- { "yuanbenlian.com", true },
+ { "yuanjiazhao.com", true },
{ "yuanjiazhao.tk", true },
{ "yubi.co", true },
{ "yubicloud.io", true },
@@ -37808,21 +39920,21 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yubikeyservices.eu", true },
{ "yubiking.com", true },
{ "yue.la", true },
- { "yuka.one", true },
+ { "yue2.net", true },
+ { "yugasun.com", true },
{ "yukari.cafe", true },
+ { "yukari.cloud", true },
{ "yuki-nagato.com", true },
+ { "yuki-portfolio.com", true },
{ "yuki.xyz", true },
- { "yukimochi.com", true },
- { "yukimochi.jp", true },
{ "yukonconnector.com", true },
{ "yukonlip.com", true },
{ "yukontec.com", true },
- { "yum0.cn", true },
{ "yumeconcert.com", true },
{ "yunity.org", true },
{ "yunjishou.pro", true },
+ { "yuntong.tw", true },
{ "yunzhu.li", true },
- { "yuqi.me", true },
{ "yuricarlenzoli.it", true },
{ "yurikirin.me", true },
{ "yurimoens.be", true },
@@ -37833,11 +39945,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yutakato.net", true },
{ "yutang.vn", true },
{ "yutangyun.com", true },
+ { "yutaron.tokyo", true },
{ "yutuo.net", true },
{ "yuwei.org", true },
{ "yuweiyang.xyz", true },
- { "yuxingxin.com", true },
{ "yuxuan.org", true },
+ { "yuyo.com", true },
{ "yuyu.io", true },
{ "yuzei.tk", true },
{ "yveshield.com", true },
@@ -37852,6 +39965,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yya.me", true },
{ "yya.men", true },
{ "yyc.city", true },
+ { "yyrss.com", false },
{ "yyyy.xyz", true },
{ "yzal.io", true },
{ "yzcloud.me", true },
@@ -37859,11 +39973,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "yzimroni.net", true },
{ "z-konzept-nutrition.ru", true },
{ "z-latko.info", true },
+ { "z-to-a.com", true },
{ "z-vector.com", true },
{ "z.ai", true },
{ "z1h.de", true },
- { "z33.ch", true },
- { "z33.co", true },
{ "z4k.de", true },
{ "z99944x.xyz", true },
{ "za.search.yahoo.com", false },
@@ -37875,11 +39988,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zacadam.com", true },
{ "zacarias.com.ar", true },
{ "zacavi.com.br", true },
+ { "zacchaeus.co.uk", true },
+ { "zacco.site", true },
{ "zach.codes", true },
{ "zacharopoulos.eu", true },
{ "zacharopoulos.org", false },
{ "zacharydubois.me", true },
{ "zacharyschneider.com", true },
+ { "zacharyseguin.ca", true },
{ "zachaysan.com", true },
{ "zachborboa.com", true },
{ "zachgibbens.org", true },
@@ -37895,12 +40011,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zahnarzt-hofer.de", true },
{ "zahnarzt-kramer.ch", true },
{ "zahnarzt-muenich.de", true },
- { "zaidan.de", true },
- { "zaidan.eu", true },
- { "zaidanfood.com", true },
- { "zaidanfood.eu", true },
- { "zaidanlebensmittelhandel.de", true },
{ "zajazd.biz", true },
+ { "zakariya.blog", true },
{ "zakcutner.uk", true },
{ "zakladam.cz", true },
{ "zakmccrac.de", true },
@@ -37909,6 +40021,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zakspartiesandevents.com", true },
{ "zalamea.ph", true },
{ "zaloghaz.ro", true },
+ { "zalvus.com", true },
{ "zamalektoday.com", true },
{ "zamocosmeticos.com.br", true },
{ "zamow.co", true },
@@ -37917,8 +40030,8 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zanellidesigns.co.uk", true },
{ "zanthra.com", true },
{ "zanzabar.it", true },
- { "zapatoshechoamano.pe", true },
{ "zapier.com", true },
+ { "zapmaster14.com", true },
{ "zappbuildapps.com", false },
{ "zappos.com", true },
{ "zaptan.info", false },
@@ -37940,16 +40053,20 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zberger.com", true },
{ "zbetcheck.in", true },
{ "zbrane-doplnky.cz", true },
+ { "zbut.bg", true },
{ "zbyga.cz", true },
{ "zbyte.it", true },
{ "zcarot.com", true },
{ "zcarrot.com", true },
{ "zcgram.com", true },
{ "zcon.nl", true },
+ { "zcore.org", true },
{ "zcr.ca", true },
{ "zdbl.de", true },
{ "zdenekspacek.cz", true },
{ "zdorovayasimya.com", true },
+ { "zdrave-konzultace.cz", true },
+ { "zdravekonzultace.cz", true },
{ "zdravesteny.cz", true },
{ "zdrojak.cz", true },
{ "ze3kr.com", true },
@@ -37957,7 +40074,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zealworks.jp", true },
{ "zebbra.ro", true },
{ "zebedeescastles.co.uk", true },
- { "zebibyte.cn", true },
{ "zebulon.fr", true },
{ "zeds-official.com", true },
{ "zeebrieshoekvanholland.nl", true },
@@ -37977,6 +40093,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zemlova.cz", true },
{ "zen-diez.de", true },
{ "zen-ume.com", true },
+ { "zena.cx", false },
{ "zenchain.com", true },
{ "zenevents.ro", true },
{ "zenfusion.fr", true },
@@ -37986,25 +40103,29 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zenk-security.com", true },
{ "zenlogic.com", true },
{ "zenmate.com.tr", true },
+ { "zennzimie.be", true },
+ { "zennzimie.com", true },
{ "zenofa.co.id", true },
{ "zentask.io", true },
{ "zenti.cloud", true },
- { "zentiweb.nl", true },
{ "zenvideocloud.com", true },
{ "zephyrbk.com", true },
{ "zephyrbookkeeping.com", true },
+ { "zephyretcoraline.com", true },
{ "zeplin.io", true },
{ "zer0-day.pw", true },
{ "zer0.de", false },
{ "zerg.uk", true },
{ "zerobounce.net", true },
{ "zerofy.de", true },
- { "zerolab.org", true },
{ "zeronet.io", true },
{ "zeropoint.bg", true },
{ "zeropush.com", true },
{ "zeroseteatacado.com.br", true },
{ "zerossl.com", true },
+ { "zerosync.com", true },
+ { "zerotoone.de", true },
+ { "zerowastesavvy.com", true },
{ "zertif.info", true },
{ "zertitude.com", true },
{ "zeryn.net", true },
@@ -38012,14 +40133,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zestylemon.co.uk", true },
{ "zetamode.com", true },
{ "zetorzeszow.pl", false },
- { "zetrov.pl", true },
{ "zettaplan.ru", true },
{ "zettlmeissl.de", true },
{ "zevelev.net", true },
{ "zfast.com.br", true },
{ "zfg.li", true },
{ "zfly.me", true },
- { "zfo.gg", true },
{ "zfree.co.nz", true },
{ "zg-dyw.net", true },
{ "zgrep.org", true },
@@ -38038,17 +40157,19 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zhcexo.com", true },
{ "zhen-chen.com", true },
{ "zhengjie.com", true },
+ { "zhenyan.org", true },
+ { "zhi.ci", true },
{ "zhiku8.com", true },
{ "zhima.io", true },
{ "zhitanska.com", true },
{ "zhiwei.me", true },
{ "zhl123.com", true },
+ { "zhongzicili.ws", true },
{ "zhoushuo.me", true },
{ "zhoutiancai.cn", true },
{ "zhovner.com", true },
{ "zhthings.com", true },
{ "zhuihoude.com", true },
- { "zi.is", true },
{ "ziegler-family.com", true },
{ "ziegler-heizung-frankfurt.de", true },
{ "zielonakarta.com", true },
@@ -38059,7 +40180,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zigottos.fr", true },
{ "zigzagmart.com", true },
{ "zihao.me", false },
- { "zii.bz", true },
{ "zijung.me", true },
{ "zikinf.com", true },
{ "ziktime.com", true },
@@ -38076,11 +40196,14 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zinniamay.com", true },
{ "zinoui.com", true },
{ "ziondrive.com.br", true },
+ { "zionnationalpark.net", true },
+ { "zionsvillelocksmiths.com", true },
{ "zip.ch", true },
{ "zipkey.de", true },
{ "ziptie.com", true },
{ "zircode.com", true },
{ "ziroh.be", true },
+ { "zirtek.ie", true },
{ "zirtual.com", true },
{ "zitrone44.de", true },
{ "zitseng.com", true },
@@ -38089,8 +40212,10 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zivmergers.com", true },
{ "zivyruzenec.cz", false },
{ "zixiao.wang", true },
+ { "zjv.me", true },
{ "zk.gd", true },
{ "zk9.nl", true },
+ { "zkontrolujsiauto.cz", true },
{ "zkrypt.cc", true },
{ "zkzone.net", true },
{ "zlatakus.cz", true },
@@ -38113,6 +40238,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zmartagroup.se", true },
{ "znation.nl", true },
{ "zny.pw", true },
+ { "zoarcampsite.uk", true },
{ "zobraz.cz", true },
{ "zobworks.com", true },
{ "zoccarato.ovh", true },
@@ -38128,6 +40254,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zollihood.ch", true },
{ "zolokar.xyz", true },
{ "zomerschoen.nl", true },
+ { "zonadigital.co", true },
{ "zone-produkte.de", false },
{ "zone39.com", true },
{ "zonecb.com", true },
@@ -38139,12 +40266,12 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zonglovani.info", true },
{ "zonky.cz", true },
{ "zonkysetkani.cz", true },
- { "zoo.city", false },
{ "zooish.net", true },
{ "zook.systems", true },
{ "zoola.io", true },
{ "zoolaboo.de", true },
{ "zoom.earth", true },
+ { "zoomcar.pro", true },
{ "zoomek.com", true },
{ "zoomseoservices.com", false },
{ "zooom.azurewebsites.net", true },
@@ -38154,7 +40281,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zootime.net", true },
{ "zootime.org", true },
{ "zoowiki.us", true },
- { "zooxdata.com", true },
{ "zopy.com.br", true },
{ "zopyx.com", true },
{ "zor.com", true },
@@ -38162,13 +40288,11 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zorgclustertool.nl", true },
{ "zorig.ch", true },
{ "zorium.org", true },
- { "zorki.nl", true },
{ "zorntt.fr", true },
{ "zotero.org", true },
{ "zouk.info", true },
- { "zouyaoji.top", true },
+ { "zozo.com", true },
{ "zozzle.co.uk", true },
- { "zqwqz.com", true },
{ "zravypapir.cz", true },
{ "zrhdwz.cn", true },
{ "zrniecka-pre-sny.sk", true },
@@ -38187,7 +40311,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zuan-in.net", true },
{ "zubel.it", false },
{ "zubora.co", true },
- { "zubro.net", true },
{ "zuefle.net", true },
{ "zug-anwalt.de", true },
{ "zug.fr", true },
@@ -38198,6 +40321,7 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zula.africa", true },
{ "zulu.ro", true },
{ "zum-baur.de", true },
+ { "zumazar.ru", true },
{ "zund-app.com", true },
{ "zundapp529.nl", true },
{ "zundappachterhoek.nl", true },
@@ -38240,5 +40364,6 @@ static const nsSTSPreload kSTSPreloadList[] = {
{ "zyul.ddns.net", true },
{ "zyzardx.com", true },
{ "zzekj.net", true },
+ { "zzpd.nl", false },
{ "zzsec.org", true },
};
diff --git a/security/manager/ssl/tests/unit/test_weak_crypto.js b/security/manager/ssl/tests/unit/test_weak_crypto.js
index effedf8e3..3367e9067 100644
--- a/security/manager/ssl/tests/unit/test_weak_crypto.js
+++ b/security/manager/ssl/tests/unit/test_weak_crypto.js
@@ -77,7 +77,6 @@ function startServer(cert, rc4only) {
onStopListening: function() {}
};
- tlsServer.setSessionCache(false);
tlsServer.setSessionTickets(false);
tlsServer.setRequestClientCertificate(Ci.nsITLSServerSocket.REQUEST_NEVER);
if (rc4only) {
diff --git a/security/nss/TAG-INFO b/security/nss/TAG-INFO
index 1d96321b3..a004fa449 100644
--- a/security/nss/TAG-INFO
+++ b/security/nss/TAG-INFO
@@ -1 +1 @@
-NSS_3_36_4_RTM
+NSS_3_38_RTM
diff --git a/security/nss/automation/abi-check/expected-report-libnssutil3.so.txt b/security/nss/automation/abi-check/expected-report-libnssutil3.so.txt
index e69de29bb..efc7d6d67 100644
--- a/security/nss/automation/abi-check/expected-report-libnssutil3.so.txt
+++ b/security/nss/automation/abi-check/expected-report-libnssutil3.so.txt
@@ -0,0 +1,4 @@
+
+1 Added function:
+
+ 'function SECStatus SECITEM_MakeItem(PLArenaPool*, SECItem*, unsigned char*, unsigned int)' {SECITEM_MakeItem@@NSSUTIL_3.38}
diff --git a/security/nss/automation/abi-check/expected-report-libssl3.so.txt b/security/nss/automation/abi-check/expected-report-libssl3.so.txt
index ad818d0aa..e69de29bb 100644
--- a/security/nss/automation/abi-check/expected-report-libssl3.so.txt
+++ b/security/nss/automation/abi-check/expected-report-libssl3.so.txt
@@ -1,28 +0,0 @@
-
-1 function with some indirect sub-type change:
-
- [C]'function SECStatus SSL_GetChannelInfo(PRFileDesc*, SSLChannelInfo*, PRUintn)' at sslinfo.c:12:1 has some indirect sub-type changes:
- parameter 2 of type 'SSLChannelInfo*' has sub-type changes:
- in pointed to type 'typedef SSLChannelInfo' at sslt.h:318:1:
- underlying type 'struct SSLChannelInfoStr' at sslt.h:251:1 changed:
- type size hasn't changed
- 1 data member change:
- type of 'SSLSignatureScheme SSLChannelInfoStr::signatureScheme' changed:
- underlying type 'enum __anonymous_enum__' at sslt.h:115:1 changed:
- type size hasn't changed
- 3 enumerator deletions:
- '__anonymous_enum__::ssl_sig_rsa_pss_sha256' value '2052'
- '__anonymous_enum__::ssl_sig_rsa_pss_sha384' value '2053'
- '__anonymous_enum__::ssl_sig_rsa_pss_sha512' value '2054'
-
- 6 enumerator insertions:
- '__anonymous_enum__::ssl_sig_rsa_pss_rsae_sha256' value '2052'
- '__anonymous_enum__::ssl_sig_rsa_pss_rsae_sha384' value '2053'
- '__anonymous_enum__::ssl_sig_rsa_pss_rsae_sha512' value '2054'
- '__anonymous_enum__::ssl_sig_rsa_pss_pss_sha256' value '2057'
- '__anonymous_enum__::ssl_sig_rsa_pss_pss_sha384' value '2058'
- '__anonymous_enum__::ssl_sig_rsa_pss_pss_sha512' value '2059'
-
-
-
-
diff --git a/security/nss/automation/abi-check/previous-nss-release b/security/nss/automation/abi-check/previous-nss-release
index c213ca3f8..c52061e7e 100644
--- a/security/nss/automation/abi-check/previous-nss-release
+++ b/security/nss/automation/abi-check/previous-nss-release
@@ -1 +1 @@
-NSS_3_35_BRANCH
+NSS_3_37_BRANCH
diff --git a/security/nss/automation/taskcluster/docker-hacl/Dockerfile b/security/nss/automation/taskcluster/docker-hacl/Dockerfile
index 63f9a24e2..50f2be239 100644
--- a/security/nss/automation/taskcluster/docker-hacl/Dockerfile
+++ b/security/nss/automation/taskcluster/docker-hacl/Dockerfile
@@ -5,11 +5,11 @@ MAINTAINER Franziskus Kiefer <franziskuskiefer@gmail.com>
# the original F* formula with Daniel Fabian
# Pinned versions of HACL* (F* and KreMLin are pinned as submodules)
-ENV haclrepo https://github.com/franziskuskiefer/hacl-star.git
+ENV haclrepo https://github.com/mitls/hacl-star.git
# Define versions of dependencies
-ENV opamv 4.04.2
-ENV haclversion 668d6cf274c33bbe2e951e3a84b73f2b6442a51f
+ENV opamv 4.05.0
+ENV haclversion 1da331f9ef30e13269e45ae73bbe4a4bca679ae6
# Install required packages and set versions
ADD setup.sh /tmp/setup.sh
diff --git a/security/nss/automation/taskcluster/docker-hacl/setup-user.sh b/security/nss/automation/taskcluster/docker-hacl/setup-user.sh
index b8accaf58..e2c0b857b 100644
--- a/security/nss/automation/taskcluster/docker-hacl/setup-user.sh
+++ b/security/nss/automation/taskcluster/docker-hacl/setup-user.sh
@@ -16,7 +16,6 @@ git -C hacl-star checkout ${haclversion}
# This caches the extracted c code (pins the HACL* version). All we need to do
# on CI now is comparing the code in this docker image with the one in NSS.
opam config exec -- make -C hacl-star prepare -j$(nproc)
-make -C hacl-star verify-nss -j$(nproc)
make -C hacl-star -f Makefile.build snapshots/nss -j$(nproc)
KOPTS="-funroll-loops 5" make -C hacl-star/code/curve25519 test -j$(nproc)
make -C hacl-star/code/salsa-family test -j$(nproc)
diff --git a/security/nss/automation/taskcluster/docker-saw/Dockerfile b/security/nss/automation/taskcluster/docker-saw/Dockerfile
index a481ba048..d67787010 100644
--- a/security/nss/automation/taskcluster/docker-saw/Dockerfile
+++ b/security/nss/automation/taskcluster/docker-saw/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:latest
+FROM ubuntu:16.04
MAINTAINER Tim Taubert <ttaubert@mozilla.com>
RUN useradd -d /home/worker -s /bin/bash -m worker
diff --git a/security/nss/automation/taskcluster/docker/Dockerfile b/security/nss/automation/taskcluster/docker/Dockerfile
index 8a2256d12..b3c2516ba 100644
--- a/security/nss/automation/taskcluster/docker/Dockerfile
+++ b/security/nss/automation/taskcluster/docker/Dockerfile
@@ -12,9 +12,6 @@ RUN chmod +x /home/worker/bin/*
ADD setup.sh /tmp/setup.sh
RUN bash /tmp/setup.sh
-# Change user.
-USER worker
-
# Env variables.
ENV HOME /home/worker
ENV SHELL /bin/bash
diff --git a/security/nss/automation/taskcluster/graph/src/extend.js b/security/nss/automation/taskcluster/graph/src/extend.js
index ee9ac9b74..5305325c5 100644
--- a/security/nss/automation/taskcluster/graph/src/extend.js
+++ b/security/nss/automation/taskcluster/graph/src/extend.js
@@ -995,13 +995,13 @@ async function scheduleTools() {
}));
queue.scheduleTask(merge(base, {
- symbol: "scan-build-5.0",
- name: "scan-build-5.0",
- image: LINUX_IMAGE,
+ symbol: "scan-build",
+ name: "scan-build",
+ image: FUZZ_IMAGE,
env: {
USE_64: "1",
- CC: "clang-5.0",
- CCC: "clang++-5.0",
+ CC: "clang",
+ CCC: "clang++",
},
artifacts: {
public: {
@@ -1092,5 +1092,17 @@ async function scheduleTools() {
]
}));
+ queue.scheduleTask(merge(base, {
+ symbol: "Coverage",
+ name: "Coverage",
+ image: FUZZ_IMAGE,
+ features: ["allowPtrace"],
+ command: [
+ "/bin/bash",
+ "-c",
+ "bin/checkout.sh && nss/automation/taskcluster/scripts/gen_coverage_report.sh"
+ ]
+ }));
+
return queue.submit();
}
diff --git a/security/nss/automation/taskcluster/graph/src/try_syntax.js b/security/nss/automation/taskcluster/graph/src/try_syntax.js
index 1c06dde13..214793bd5 100644
--- a/security/nss/automation/taskcluster/graph/src/try_syntax.js
+++ b/security/nss/automation/taskcluster/graph/src/try_syntax.js
@@ -51,7 +51,7 @@ function parseOptions(opts) {
}
// Parse tools.
- let allTools = ["clang-format", "scan-build", "hacl", "saw", "abi"];
+ let allTools = ["clang-format", "scan-build", "hacl", "saw", "abi", "coverage"];
let tools = intersect(opts.tools.split(/\s*,\s*/), allTools);
// If the given value is "all" run all tools.
diff --git a/security/nss/automation/taskcluster/scripts/gen_coverage_report.sh b/security/nss/automation/taskcluster/scripts/gen_coverage_report.sh
new file mode 100644
index 000000000..3907c72e8
--- /dev/null
+++ b/security/nss/automation/taskcluster/scripts/gen_coverage_report.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+source $(dirname "$0")/tools.sh
+
+# Clone NSPR.
+hg_clone https://hg.mozilla.org/projects/nspr ./nspr default
+
+out=/home/worker/artifacts
+mkdir -p $out
+
+# Generate coverage report.
+cd nss && ./mach coverage --outdir=$out ssl_gtests
diff --git a/security/nss/automation/taskcluster/scripts/run_hacl.sh b/security/nss/automation/taskcluster/scripts/run_hacl.sh
index 281075eef..6cbda49b4 100644
--- a/security/nss/automation/taskcluster/scripts/run_hacl.sh
+++ b/security/nss/automation/taskcluster/scripts/run_hacl.sh
@@ -12,8 +12,8 @@ set -e -x -v
# The extracted C code from HACL* is already generated and the HACL* tests were
# successfully executed.
-# Verify Poly1305 (doesn't work in docker image build)
-make verify -C ~/hacl-star/code/poly1305 -j$(nproc)
+# Verify HACL*. Taskcluster fails when we do this in the image build.
+make -C hacl-star verify-nss -j$(nproc)
# Add license header to specs
spec_files=($(find ~/hacl-star/specs -type f -name '*.fst'))
diff --git a/security/nss/automation/taskcluster/scripts/tools.sh b/security/nss/automation/taskcluster/scripts/tools.sh
index 46d567e3a..534cb32ce 100644
--- a/security/nss/automation/taskcluster/scripts/tools.sh
+++ b/security/nss/automation/taskcluster/scripts/tools.sh
@@ -3,11 +3,16 @@
set -v -e -x
if [[ $(id -u) -eq 0 ]]; then
+ # Stupid Docker. It works without sometimes... But not always.
+ echo "127.0.0.1 localhost.localdomain" >> /etc/hosts
+
# Drop privileges by re-running this script.
# Note: this mangles arguments, better to avoid running scripts as root.
exec su worker -c "$0 $*"
fi
+export PATH="${PATH}:/home/worker/.cargo/bin/:/usr/lib/go-1.6/bin"
+
# Usage: hg_clone repo dir [revision=@]
hg_clone() {
repo=$1
diff --git a/security/nss/cmd/bltest/blapitest.c b/security/nss/cmd/bltest/blapitest.c
index ca3d6f314..ef8fdd802 100644
--- a/security/nss/cmd/bltest/blapitest.c
+++ b/security/nss/cmd/bltest/blapitest.c
@@ -3724,7 +3724,7 @@ main(int argc, char **argv)
/* test the RSA_PopulatePrivateKey function */
if (bltest.commands[cmd_RSAPopulate].activated) {
unsigned int keySize = 1024;
- unsigned long exponent = 65537;
+ unsigned long keyExponent = 65537;
int rounds = 1;
int ret = -1;
@@ -3735,12 +3735,12 @@ main(int argc, char **argv)
rounds = PORT_Atoi(bltest.options[opt_Rounds].arg);
}
if (bltest.options[opt_Exponent].activated) {
- exponent = PORT_Atoi(bltest.options[opt_Exponent].arg);
+ keyExponent = PORT_Atoi(bltest.options[opt_Exponent].arg);
}
for (i = 0; i < rounds; i++) {
printf("Running RSA Populate test round %d\n", i);
- ret = doRSAPopulateTest(keySize, exponent);
+ ret = doRSAPopulateTest(keySize, keyExponent);
if (ret != 0) {
break;
}
diff --git a/security/nss/cmd/certutil/certutil.c b/security/nss/cmd/certutil/certutil.c
index 20722ae78..dbb93c922 100644
--- a/security/nss/cmd/certutil/certutil.c
+++ b/security/nss/cmd/certutil/certutil.c
@@ -36,9 +36,11 @@
#include "certdb.h"
#include "nss.h"
#include "certutil.h"
+#include "basicutil.h"
+#include "ssl.h"
#define MIN_KEY_BITS 512
-/* MAX_KEY_BITS should agree with MAX_RSA_MODULUS in freebl */
+/* MAX_KEY_BITS should agree with RSA_MAX_MODULUS_BITS in freebl */
#define MAX_KEY_BITS 8192
#define DEFAULT_KEY_BITS 2048
@@ -447,7 +449,8 @@ ChangeTrustAttributes(CERTCertDBHandle *handle, PK11SlotInfo *slot,
}
static SECStatus
-DumpChain(CERTCertDBHandle *handle, char *name, PRBool ascii)
+DumpChain(CERTCertDBHandle *handle, char *name, PRBool ascii,
+ PRBool simpleSelfSigned)
{
CERTCertificate *the_cert;
CERTCertificateList *chain;
@@ -458,6 +461,14 @@ DumpChain(CERTCertDBHandle *handle, char *name, PRBool ascii)
SECU_PrintError(progName, "Could not find: %s\n", name);
return SECFailure;
}
+ if (simpleSelfSigned &&
+ SECEqual == SECITEM_CompareItem(&the_cert->derIssuer,
+ &the_cert->derSubject)) {
+ printf("\"%s\" [%s]\n\n", the_cert->nickname, the_cert->subjectName);
+ CERT_DestroyCertificate(the_cert);
+ return SECSuccess;
+ }
+
chain = CERT_CertChainFromCert(the_cert, 0, PR_TRUE);
CERT_DestroyCertificate(the_cert);
if (!chain) {
@@ -782,17 +793,17 @@ ValidateCert(CERTCertDBHandle *handle, char *name, char *date,
fprintf(stdout, "%s: certificate is valid\n", progName);
GEN_BREAK(SECSuccess)
} else {
- char *name;
+ char *nick;
CERTVerifyLogNode *node;
node = log->head;
while (node) {
if (node->cert->nickname != NULL) {
- name = node->cert->nickname;
+ nick = node->cert->nickname;
} else {
- name = node->cert->subjectName;
+ nick = node->cert->subjectName;
}
- fprintf(stderr, "%s : %s\n", name,
+ fprintf(stderr, "%s : %s\n", nick,
SECU_Strerror(node->error));
CERT_DestroyCertificate(node->cert);
node = node->next;
@@ -845,7 +856,7 @@ SECItemToHex(const SECItem *item, char *dst)
}
static const char *const keyTypeName[] = {
- "null", "rsa", "dsa", "fortezza", "dh", "kea", "ec"
+ "null", "rsa", "dsa", "fortezza", "dh", "kea", "ec", "rsaPss"
};
#define MAX_CKA_ID_BIN_LEN 20
@@ -999,7 +1010,7 @@ DeleteKey(char *nickname, secuPWData *pwdata)
slot = PK11_GetInternalKeySlot();
if (PK11_NeedLogin(slot)) {
- SECStatus rv = PK11_Authenticate(slot, PR_TRUE, pwdata);
+ rv = PK11_Authenticate(slot, PR_TRUE, pwdata);
if (rv != SECSuccess) {
SECU_PrintError(progName, "could not authenticate to token %s.",
PK11_GetTokenName(slot));
@@ -1066,7 +1077,7 @@ PrintBuildFlags()
}
static void
-PrintSyntax(char *progName)
+PrintSyntax()
{
#define FPS fprintf(stderr,
FPS "Type %s -H for more detailed descriptions\n", progName);
@@ -1115,7 +1126,9 @@ PrintSyntax(char *progName)
FPS "\t%s --build-flags\n", progName);
FPS "\t%s -M -n cert-name -t trustargs [-d certdir] [-P dbprefix]\n",
progName);
- FPS "\t%s -O -n cert-name [-X] [-d certdir] [-a] [-P dbprefix]\n", progName);
+ FPS "\t%s -O -n cert-name [-X] [-d certdir] [-a] [-P dbprefix]\n"
+ "\t\t [--simple-self-signed]\n",
+ progName);
FPS "\t%s -R -s subj -o cert-request-file [-d certdir] [-P dbprefix] [-p phone] [-a]\n"
"\t\t [-7 emailAddrs] [-k key-type-or-id] [-h token-name] [-f pwfile]\n"
"\t\t [-g key-size] [-Z hashAlg]\n",
@@ -1542,6 +1555,8 @@ luO(enum usage_level ul, const char *command)
" -P dbprefix");
FPS "%-20s force the database to open R/W\n",
" -X");
+ FPS "%-20s don't search for a chain if issuer name equals subject name\n",
+ " --simple-self-signed");
FPS "\n");
}
@@ -1560,7 +1575,7 @@ luR(enum usage_level ul, const char *command)
" -o output-req");
FPS "%-20s Type of key pair to generate (\"dsa\", \"ec\", \"rsa\" (default))\n",
" -k key-type-or-id");
- FPS "%-20s or nickname of the cert key to use \n",
+ FPS "%-20s or nickname of the cert key to use, or key id obtained using -K\n",
"");
FPS "%-20s Name of token in which to generate key (default is internal)\n",
" -h token-name");
@@ -1838,7 +1853,7 @@ luBuildFlags(enum usage_level ul, const char *command)
}
static void
-LongUsage(char *progName, enum usage_level ul, const char *command)
+LongUsage(enum usage_level ul, const char *command)
{
luA(ul, command);
luB(ul, command);
@@ -1866,14 +1881,14 @@ LongUsage(char *progName, enum usage_level ul, const char *command)
}
static void
-Usage(char *progName)
+Usage()
{
PR_fprintf(PR_STDERR,
"%s - Utility to manipulate NSS certificate databases\n\n"
"Usage: %s <command> -d <database-directory> <options>\n\n"
"Valid commands:\n",
progName, progName);
- LongUsage(progName, usage_selected, NULL);
+ LongUsage(usage_selected, NULL);
PR_fprintf(PR_STDERR, "\n"
"%s -H <command> : Print available options for the given command\n"
"%s -H : Print complete help output of all commands and options\n"
@@ -2269,10 +2284,10 @@ flagArray opFlagsArray[] =
{ NAME_SIZE(verify_recover), CKF_VERIFY_RECOVER },
{ NAME_SIZE(wrap), CKF_WRAP },
{ NAME_SIZE(unwrap), CKF_UNWRAP },
- { NAME_SIZE(derive), CKF_DERIVE },
+ { NAME_SIZE(derive), CKF_DERIVE }
};
-int opFlagsCount = sizeof(opFlagsArray) / sizeof(flagArray);
+int opFlagsCount = PR_ARRAY_SIZE(opFlagsArray);
flagArray attrFlagsArray[] =
{
@@ -2286,14 +2301,13 @@ flagArray attrFlagsArray[] =
{ NAME_SIZE(insensitive), PK11_ATTR_INSENSITIVE },
{ NAME_SIZE(extractable), PK11_ATTR_EXTRACTABLE },
{ NAME_SIZE(unextractable), PK11_ATTR_UNEXTRACTABLE }
-
};
-int attrFlagsCount = sizeof(attrFlagsArray) / sizeof(flagArray);
+int attrFlagsCount = PR_ARRAY_SIZE(attrFlagsArray);
#define MAX_STRING 30
CK_ULONG
-GetFlags(char *flagsString, flagArray *flagArray, int count)
+GetFlags(char *flagsString, flagArray *flags, int count)
{
CK_ULONG flagsValue = strtol(flagsString, NULL, 0);
int i;
@@ -2303,10 +2317,10 @@ GetFlags(char *flagsString, flagArray *flagArray, int count)
}
while (*flagsString) {
for (i = 0; i < count; i++) {
- if (strncmp(flagsString, flagArray[i].name, flagArray[i].nameSize) ==
+ if (strncmp(flagsString, flags[i].name, flags[i].nameSize) ==
0) {
- flagsValue |= flagArray[i].value;
- flagsString += flagArray[i].nameSize;
+ flagsValue |= flags[i].value;
+ flagsString += flags[i].nameSize;
if (*flagsString != 0) {
flagsString++;
}
@@ -2499,6 +2513,7 @@ enum certutilOpts {
opt_NewNickname,
opt_Pss,
opt_PssSign,
+ opt_SimpleSelfSigned,
opt_Help
};
@@ -2623,6 +2638,8 @@ static const secuCommandFlag options_init[] =
"pss" },
{ /* opt_PssSign */ 0, PR_FALSE, 0, PR_FALSE,
"pss-sign" },
+ { /* opt_SimpleSelfSigned */ 0, PR_FALSE, 0, PR_FALSE,
+ "simple-self-signed" },
};
#define NUM_OPTIONS ((sizeof options_init) / (sizeof options_init[0]))
@@ -2691,14 +2708,13 @@ certutil_main(int argc, char **argv, PRBool initialize)
rv = SECU_ParseCommandLine(argc, argv, progName, &certutil);
if (rv != SECSuccess)
- Usage(progName);
+ Usage();
if (certutil.commands[cmd_PrintSyntax].activated) {
- PrintSyntax(progName);
+ PrintSyntax();
}
if (certutil.commands[cmd_PrintHelp].activated) {
- int i;
char buf[2];
const char *command = NULL;
for (i = 0; i < max_cmd; i++) {
@@ -2715,7 +2731,7 @@ certutil_main(int argc, char **argv, PRBool initialize)
break;
}
}
- LongUsage(progName, (command ? usage_selected : usage_all), command);
+ LongUsage((command ? usage_selected : usage_all), command);
exit(1);
}
@@ -2823,7 +2839,7 @@ certutil_main(int argc, char **argv, PRBool initialize)
if (certutil.options[opt_DBPrefix].arg) {
certPrefix = certutil.options[opt_DBPrefix].arg;
} else {
- Usage(progName);
+ Usage();
}
}
@@ -2832,7 +2848,7 @@ certutil_main(int argc, char **argv, PRBool initialize)
if (certutil.options[opt_SourcePrefix].arg) {
srcCertPrefix = certutil.options[opt_SourcePrefix].arg;
} else {
- Usage(progName);
+ Usage();
}
}
@@ -2916,7 +2932,7 @@ certutil_main(int argc, char **argv, PRBool initialize)
return 255;
}
if (commandsEntered == 0) {
- Usage(progName);
+ Usage();
}
if (certutil.commands[cmd_ListCerts].activated ||
@@ -3124,6 +3140,8 @@ certutil_main(int argc, char **argv, PRBool initialize)
}
initialized = PR_TRUE;
SECU_RegisterDynamicOids();
+ /* Ensure the SSL error code table has been registered. Bug 1460284. */
+ SSL_OptionSetDefault(-1, 0);
}
certHandle = CERT_GetDefaultCertDB();
@@ -3350,7 +3368,8 @@ certutil_main(int argc, char **argv, PRBool initialize)
}
if (certutil.commands[cmd_DumpChain].activated) {
rv = DumpChain(certHandle, name,
- certutil.options[opt_ASCIIForIO].activated);
+ certutil.options[opt_ASCIIForIO].activated,
+ certutil.options[opt_SimpleSelfSigned].activated);
goto shutdown;
}
/* XXX needs work */
@@ -3444,37 +3463,80 @@ certutil_main(int argc, char **argv, PRBool initialize)
keycert = CERT_FindCertByNicknameOrEmailAddr(certHandle, keysource);
if (!keycert) {
keycert = PK11_FindCertFromNickname(keysource, NULL);
- if (!keycert) {
- SECU_PrintError(progName,
- "%s is neither a key-type nor a nickname", keysource);
+ }
+
+ if (keycert) {
+ privkey = PK11_FindKeyByDERCert(slot, keycert, &pwdata);
+ } else {
+ PLArenaPool *arena = NULL;
+ SECItem keyidItem = { 0 };
+ char *keysourcePtr = keysource;
+ /* Interpret keysource as CKA_ID */
+ if (PK11_NeedLogin(slot)) {
+ rv = PK11_Authenticate(slot, PR_TRUE, &pwdata);
+ if (rv != SECSuccess) {
+ SECU_PrintError(progName, "could not authenticate to token %s.",
+ PK11_GetTokenName(slot));
+ return SECFailure;
+ }
+ }
+ if (0 == PL_strncasecmp("0x", keysource, 2)) {
+ keysourcePtr = keysource + 2; // skip leading "0x"
+ }
+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
+ if (!arena) {
+ SECU_PrintError(progName, "unable to allocate arena");
return SECFailure;
}
+ if (SECU_HexString2SECItem(arena, &keyidItem, keysourcePtr)) {
+ privkey = PK11_FindKeyByKeyID(slot, &keyidItem, &pwdata);
+ }
+ PORT_FreeArena(arena, PR_FALSE);
+ }
+
+ if (!privkey) {
+ SECU_PrintError(
+ progName,
+ "%s is neither a key-type nor a nickname nor a key-id", keysource);
+ return SECFailure;
}
- privkey = PK11_FindKeyByDERCert(slot, keycert, &pwdata);
- if (privkey)
- pubkey = CERT_ExtractPublicKey(keycert);
+
+ pubkey = SECKEY_ConvertToPublicKey(privkey);
if (!pubkey) {
SECU_PrintError(progName,
"Could not get keys from cert %s", keysource);
+ if (keycert) {
+ CERT_DestroyCertificate(keycert);
+ }
rv = SECFailure;
- CERT_DestroyCertificate(keycert);
goto shutdown;
}
keytype = privkey->keyType;
+
/* On CertReq for renewal if no subject has been
* specified obtain it from the certificate.
*/
if (certutil.commands[cmd_CertReq].activated && !subject) {
- subject = CERT_AsciiToName(keycert->subjectName);
- if (!subject) {
- SECU_PrintError(progName,
- "Could not get subject from certificate %s", keysource);
- CERT_DestroyCertificate(keycert);
+ if (keycert) {
+ subject = CERT_AsciiToName(keycert->subjectName);
+ if (!subject) {
+ SECU_PrintError(
+ progName,
+ "Could not get subject from certificate %s",
+ keysource);
+ CERT_DestroyCertificate(keycert);
+ rv = SECFailure;
+ goto shutdown;
+ }
+ } else {
+ SECU_PrintError(progName, "Subject name not provided");
rv = SECFailure;
goto shutdown;
}
}
- CERT_DestroyCertificate(keycert);
+ if (keycert) {
+ CERT_DestroyCertificate(keycert);
+ }
} else {
privkey =
CERTUTIL_GeneratePrivateKey(keytype, slot, keysize,
@@ -3537,6 +3599,14 @@ certutil_main(int argc, char **argv, PRBool initialize)
}
}
+ if (certutil.options[opt_SimpleSelfSigned].activated &&
+ !certutil.commands[cmd_DumpChain].activated) {
+ PR_fprintf(PR_STDERR,
+ "%s -%c: --simple-self-signed only works with -O.\n",
+ progName, commandToRun);
+ return 255;
+ }
+
/* If we need a list of extensions convert the flags into list format */
if (certutil.commands[cmd_CertReq].activated ||
certutil.commands[cmd_CreateAndAddCert].activated ||
diff --git a/security/nss/cmd/crlutil/crlutil.c b/security/nss/cmd/crlutil/crlutil.c
index c008ecc01..c5527fc93 100644
--- a/security/nss/cmd/crlutil/crlutil.c
+++ b/security/nss/cmd/crlutil/crlutil.c
@@ -770,7 +770,7 @@ loser:
}
static void
-Usage(char *progName)
+Usage()
{
fprintf(stderr,
"Usage: %s -L [-n nickname] [-d keydir] [-P dbprefix] [-t crlType]\n"
@@ -908,7 +908,7 @@ main(int argc, char **argv)
while ((status = PL_GetNextOpt(optstate)) == PL_OPT_OK) {
switch (optstate->option) {
case '?':
- Usage(progName);
+ Usage();
break;
case 'T':
@@ -1038,17 +1038,17 @@ main(int argc, char **argv)
}
if (deleteCRL && !nickName)
- Usage(progName);
+ Usage();
if (importCRL && !inFile)
- Usage(progName);
+ Usage();
if (showFileCRL && !inFile)
- Usage(progName);
+ Usage();
if ((generateCRL && !nickName) ||
(modifyCRL && !inFile && !nickName))
- Usage(progName);
+ Usage();
if (!(listCRL || deleteCRL || importCRL || showFileCRL || generateCRL ||
modifyCRL || test || erase))
- Usage(progName);
+ Usage();
if (listCRL || showFileCRL) {
readonly = PR_TRUE;
diff --git a/security/nss/cmd/crmftest/testcrmf.c b/security/nss/cmd/crmftest/testcrmf.c
index cbc680b08..1c1359b1b 100644
--- a/security/nss/cmd/crmftest/testcrmf.c
+++ b/security/nss/cmd/crmftest/testcrmf.c
@@ -577,7 +577,6 @@ Decode(void)
printf("WARNING: The DER contained %d messages.\n", numMsgs);
}
for (i = 0; i < numMsgs; i++) {
- SECStatus rv;
printf("crmftest: Processing cert request %d\n", i);
certReqMsg = CRMF_CertReqMessagesGetCertReqMsgAtIndex(certReqMsgs, i);
if (certReqMsg == NULL) {
diff --git a/security/nss/cmd/dbtest/dbtest.c b/security/nss/cmd/dbtest/dbtest.c
index 9a6a034a6..11713c23f 100644
--- a/security/nss/cmd/dbtest/dbtest.c
+++ b/security/nss/cmd/dbtest/dbtest.c
@@ -58,7 +58,7 @@ getPassword(PK11SlotInfo *slot, PRBool retry, void *arg)
}
static void
-Usage(const char *progName)
+Usage()
{
printf("Usage: %s [-r] [-f] [-i] [-d dbdir ] \n",
progName);
@@ -96,7 +96,7 @@ main(int argc, char **argv)
switch (optstate->option) {
case 'h':
default:
- Usage(progName);
+ Usage();
break;
case 'r':
@@ -122,7 +122,7 @@ main(int argc, char **argv)
}
PL_DestroyOptState(optstate);
if (optstatus == PL_OPT_BAD)
- Usage(progName);
+ Usage();
if (dbDir) {
char *tmp = dbDir;
@@ -181,7 +181,6 @@ main(int argc, char **argv)
ret = SUCCESS;
if (doInitTest) {
PK11SlotInfo *slot = PK11_GetInternalKeySlot();
- SECStatus rv;
int passwordSuccess = 0;
int type = CKM_DES3_CBC;
SECItem keyid = { 0, NULL, 0 };
diff --git a/security/nss/cmd/httpserv/httpserv.c b/security/nss/cmd/httpserv/httpserv.c
index 7cf28c65a..71e2ab88d 100644
--- a/security/nss/cmd/httpserv/httpserv.c
+++ b/security/nss/cmd/httpserv/httpserv.c
@@ -682,6 +682,7 @@ handle_connection(
}
if (arena) {
PORT_FreeArena(arena, PR_FALSE);
+ arena = NULL;
}
if (!request || !request->tbsRequest ||
!request->tbsRequest->requestList ||
@@ -753,11 +754,11 @@ handle_connection(
{
PRTime now = PR_Now();
- PLArenaPool *arena = NULL;
CERTOCSPSingleResponse *sr;
CERTOCSPSingleResponse **singleResponses;
SECItem *ocspResponse;
+ PORT_Assert(!arena);
arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
if (unknown) {
@@ -787,8 +788,8 @@ handle_connection(
} else {
PR_Write(ssl_sock, outOcspHeader, strlen(outOcspHeader));
PR_Write(ssl_sock, ocspResponse->data, ocspResponse->len);
- PORT_FreeArena(arena, PR_FALSE);
}
+ PORT_FreeArena(arena, PR_FALSE);
}
CERT_DestroyOCSPRequest(request);
break;
@@ -1357,7 +1358,6 @@ main(int argc, char **argv)
caRevoIter = &caRevoInfos->link;
do {
PRFileDesc *inFile;
- int rv = SECFailure;
SECItem crlDER;
crlDER.data = NULL;
@@ -1413,11 +1413,9 @@ main(int argc, char **argv)
if (provideOcsp) {
if (caRevoInfos) {
- PRCList *caRevoIter;
-
caRevoIter = &caRevoInfos->link;
do {
- caRevoInfo *revoInfo = (caRevoInfo *)caRevoIter;
+ revoInfo = (caRevoInfo *)caRevoIter;
if (revoInfo->nickname)
PORT_Free(revoInfo->nickname);
if (revoInfo->crlFilename)
diff --git a/security/nss/cmd/lib/secutil.c b/security/nss/cmd/lib/secutil.c
index 2b33f8963..6be2df432 100644
--- a/security/nss/cmd/lib/secutil.c
+++ b/security/nss/cmd/lib/secutil.c
@@ -1528,9 +1528,9 @@ SECU_PrintDumpDerIssuerAndSerial(FILE *out, SECItem *der, char *m,
unsigned int i;
for (i = 0; i < c->serialNumber.len; ++i) {
unsigned char *chardata = (unsigned char *)(c->serialNumber.data);
- unsigned char c = *(chardata + i);
+ unsigned char ch = *(chardata + i);
- fprintf(out, "\\x%02x", c);
+ fprintf(out, "\\x%02x", ch);
}
fprintf(out, "\" }\n");
}
@@ -3137,7 +3137,7 @@ typedef enum {
static int
secu_PrintSignedDataSigOpt(FILE *out, SECItem *der, const char *m,
int level, SECU_PPFunc inner,
- SignatureOptionType withSignature)
+ SignatureOptionType signatureOption)
{
PLArenaPool *arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
CERTSignedData *sd;
@@ -3164,7 +3164,7 @@ secu_PrintSignedDataSigOpt(FILE *out, SECItem *der, const char *m,
}
rv = (*inner)(out, &sd->data, "Data", level + 1);
- if (withSignature) {
+ if (signatureOption == withSignature) {
SECU_PrintAlgorithmID(out, &sd->signatureAlgorithm, "Signature Algorithm",
level + 1);
DER_ConvertBitString(&sd->signature);
diff --git a/security/nss/cmd/listsuites/listsuites.c b/security/nss/cmd/listsuites/listsuites.c
index 8eb2c3553..b49f2d8cf 100644
--- a/security/nss/cmd/listsuites/listsuites.c
+++ b/security/nss/cmd/listsuites/listsuites.c
@@ -64,9 +64,7 @@ main(int argc, char **argv)
/* disable all the SSL3 cipher suites */
for (i = 0; i < SSL_NumImplementedCiphers; i++) {
PRUint16 suite = cipherSuites[i];
- SECStatus rv;
PRBool enabled;
- PRErrorCode err;
SSLCipherSuiteInfo info;
rv = SSL_CipherPrefGetDefault(suite, &enabled);
diff --git a/security/nss/cmd/lowhashtest/lowhashtest.c b/security/nss/cmd/lowhashtest/lowhashtest.c
index 29d6ff4fd..fcc06a86e 100644
--- a/security/nss/cmd/lowhashtest/lowhashtest.c
+++ b/security/nss/cmd/lowhashtest/lowhashtest.c
@@ -390,7 +390,7 @@ testSHA512(NSSLOWInitContext *initCtx)
}
static void
-Usage(char *progName)
+Usage()
{
fprintf(stderr, "Usage: %s [algorithm]\n",
progName);
@@ -436,7 +436,7 @@ main(int argc, char **argv)
rv += testSHA512(initCtx);
} else {
SECU_PrintError(progName, "Unsupported hash type %s\n", argv[0]);
- Usage(progName);
+ Usage();
}
NSSLOW_Shutdown(initCtx);
diff --git a/security/nss/cmd/modutil/install-ds.c b/security/nss/cmd/modutil/install-ds.c
index 030568762..576839f8f 100644
--- a/security/nss/cmd/modutil/install-ds.c
+++ b/security/nss/cmd/modutil/install-ds.c
@@ -88,11 +88,11 @@ static const char* errString[] = {
static char* PR_Strdup(const char* str);
-#define PAD(x) \
- { \
- int i; \
- for (i = 0; i < x; i++) \
- printf(" "); \
+#define PAD(x) \
+ { \
+ int pad_i; \
+ for (pad_i = 0; pad_i < (x); pad_i++) \
+ printf(" "); \
}
#define PADINC 4
diff --git a/security/nss/cmd/mpitests/mpi-test.c b/security/nss/cmd/mpitests/mpi-test.c
index 3a1f5d6c2..b7953b6f6 100644
--- a/security/nss/cmd/mpitests/mpi-test.c
+++ b/security/nss/cmd/mpitests/mpi-test.c
@@ -375,14 +375,14 @@ void reason(char *fmt, ...);
char g_intbuf[4096]; /* buffer for integer comparison */
char a_intbuf[4096]; /* buffer for integer comparison */
int g_verbose = 1; /* print out reasons for failure? */
-int res;
-
-#define IFOK(x) \
- { \
- if (MP_OKAY > (res = (x))) { \
- reason("test %s failed: error %d\n", #x, res); \
- return 1; \
- } \
+
+#define IFOK(x) \
+ { \
+ int ifok_res = (x); \
+ if (MP_OKAY > ifok_res) { \
+ reason("test %s failed: error %d\n", #x, ifok_res); \
+ return 1; \
+ } \
}
int
diff --git a/security/nss/cmd/ocspclnt/ocspclnt.c b/security/nss/cmd/ocspclnt/ocspclnt.c
index afcb7e13f..0927f8ef6 100644
--- a/security/nss/cmd/ocspclnt/ocspclnt.c
+++ b/security/nss/cmd/ocspclnt/ocspclnt.c
@@ -38,7 +38,7 @@
char *program_name;
static void
-synopsis(char *program_name)
+synopsis(char *progname)
{
PRFileDesc *pr_stderr;
@@ -46,44 +46,44 @@ synopsis(char *program_name)
PR_fprintf(pr_stderr, "Usage:");
PR_fprintf(pr_stderr,
"\t%s -p [-d <dir>]\n",
- program_name);
+ progname);
PR_fprintf(pr_stderr,
"\t%s -P [-d <dir>]\n",
- program_name);
+ progname);
PR_fprintf(pr_stderr,
"\t%s -r <name> [-a] [-L] [-s <name>] [-d <dir>]\n",
- program_name);
+ progname);
PR_fprintf(pr_stderr,
"\t%s -R <name> [-a] [-l <location>] [-s <name>] [-d <dir>]\n",
- program_name);
+ progname);
PR_fprintf(pr_stderr,
"\t%s -S <name> [-a] [-l <location> -t <name>]\n",
- program_name);
+ progname);
PR_fprintf(pr_stderr,
"\t\t [-s <name>] [-w <time>] [-d <dir>]\n");
PR_fprintf(pr_stderr,
"\t%s -V <name> [-a] -u <usage> [-l <location> -t <name>]\n",
- program_name);
+ progname);
PR_fprintf(pr_stderr,
"\t\t [-s <name>] [-w <time>] [-d <dir>]\n");
}
static void
-short_usage(char *program_name)
+short_usage(char *progname)
{
PR_fprintf(PR_STDERR,
"Type %s -H for more detailed descriptions\n",
- program_name);
- synopsis(program_name);
+ progname);
+ synopsis(progname);
}
static void
-long_usage(char *program_name)
+long_usage(char *progname)
{
PRFileDesc *pr_stderr;
pr_stderr = PR_STDERR;
- synopsis(program_name);
+ synopsis(progname);
PR_fprintf(pr_stderr, "\nCommands (must specify exactly one):\n");
PR_fprintf(pr_stderr,
" %-13s Pretty-print a binary request read from stdin\n",
diff --git a/security/nss/cmd/ocspresp/ocspresp.c b/security/nss/cmd/ocspresp/ocspresp.c
index 632623c97..d18d32e18 100644
--- a/security/nss/cmd/ocspresp/ocspresp.c
+++ b/security/nss/cmd/ocspresp/ocspresp.c
@@ -194,8 +194,8 @@ main(int argc, char **argv)
&obtainedSignerCert, caCert));
#ifdef DEBUG
{
- SECStatus rv = CERT_GetOCSPStatusForCertID(certHandle, decodedRev, cid,
- obtainedSignerCert, now);
+ rv = CERT_GetOCSPStatusForCertID(certHandle, decodedRev, cid,
+ obtainedSignerCert, now);
PORT_Assert(rv == SECFailure);
PORT_Assert(PORT_GetError() == SEC_ERROR_REVOKED_CERTIFICATE);
}
@@ -211,7 +211,7 @@ main(int argc, char **argv)
decodedFail = CERT_DecodeOCSPResponse(encodedFail);
#ifdef DEBUG
{
- SECStatus rv = CERT_GetOCSPResponseStatus(decodedFail);
+ rv = CERT_GetOCSPResponseStatus(decodedFail);
PORT_Assert(rv == SECFailure);
PORT_Assert(PORT_GetError() == SEC_ERROR_OCSP_TRY_SERVER_LATER);
}
diff --git a/security/nss/cmd/pk12util/pk12util.c b/security/nss/cmd/pk12util/pk12util.c
index 70454a0d8..5884713e3 100644
--- a/security/nss/cmd/pk12util/pk12util.c
+++ b/security/nss/cmd/pk12util/pk12util.c
@@ -28,7 +28,7 @@ static PRBool pk12uForceUnicode;
PRIntn pk12uErrno = 0;
static void
-Usage(char *progName)
+Usage()
{
#define FPS PR_fprintf(PR_STDERR,
FPS "Usage: %s -i importfile [-d certdir] [-P dbprefix] [-h tokenname]\n",
@@ -1020,26 +1020,26 @@ main(int argc, char **argv)
rv = SECU_ParseCommandLine(argc, argv, progName, &pk12util);
if (rv != SECSuccess)
- Usage(progName);
+ Usage();
pk12_debugging = pk12util.options[opt_Debug].activated;
if ((pk12util.options[opt_Import].activated +
pk12util.options[opt_Export].activated +
pk12util.options[opt_List].activated) != 1) {
- Usage(progName);
+ Usage();
}
if (pk12util.options[opt_Export].activated &&
!pk12util.options[opt_Nickname].activated) {
- Usage(progName);
+ Usage();
}
rv = NSS_OptionGet(__NSS_PKCS12_DECODE_FORCE_UNICODE, &forceUnicode);
if (rv != SECSuccess) {
SECU_PrintError(progName,
"Failed to get NSS_PKCS12_DECODE_FORCE_UNICODE option");
- Usage(progName);
+ Usage();
}
pk12uForceUnicode = forceUnicode;
@@ -1144,7 +1144,7 @@ main(int argc, char **argv)
P12U_ListPKCS12File(import_file, slot, &slotPw, &p12FilePw);
} else {
- Usage(progName);
+ Usage();
pk12uErrno = PK12UERR_USAGE;
}
diff --git a/security/nss/cmd/pk1sign/pk1sign.c b/security/nss/cmd/pk1sign/pk1sign.c
index 085aa1659..d5524c149 100644
--- a/security/nss/cmd/pk1sign/pk1sign.c
+++ b/security/nss/cmd/pk1sign/pk1sign.c
@@ -178,7 +178,7 @@ loser:
SECKEY_DestroyPrivateKey(privKey);
}
if (data) {
- PORT_Free(data);
+ PR_Free(data);
}
PORT_FreeArena(arena, PR_FALSE);
diff --git a/security/nss/cmd/rsaperf/rsaperf.c b/security/nss/cmd/rsaperf/rsaperf.c
index 2bb23856e..7762a465b 100644
--- a/security/nss/cmd/rsaperf/rsaperf.c
+++ b/security/nss/cmd/rsaperf/rsaperf.c
@@ -313,7 +313,7 @@ main(int argc, char **argv)
char *slotname = NULL;
long keybits = 0;
RSAOp fn;
- void *rsaKey = NULL;
+ void *rsaKeyPtr = NULL;
PLOptState *optstate;
PLOptStatus optstatus;
long iters = DEFAULT_ITERS;
@@ -464,7 +464,7 @@ main(int argc, char **argv)
if (doPub) {
/* do public key ops */
fn = (RSAOp)PK11_PublicKeyOp;
- rsaKey = (void *)pubHighKey;
+ rsaKeyPtr = (void *)pubHighKey;
kh = PK11_ImportPublicKey(cert->slot, pubHighKey, PR_FALSE);
if (CK_INVALID_HANDLE == kh) {
@@ -489,7 +489,7 @@ main(int argc, char **argv)
fn = (RSAOp)PK11_PrivateKeyOp;
keys.privKey = privHighKey;
keys.pubKey = pubHighKey;
- rsaKey = (void *)&keys;
+ rsaKeyPtr = (void *)&keys;
printf("Using PKCS#11 for RSA decryption with token %s.\n",
PK11_GetTokenName(privHighKey->pkcs11Slot));
}
@@ -537,13 +537,13 @@ main(int argc, char **argv)
if (doPub) {
/* do public key operations */
fn = (RSAOp)PK11_PublicKeyOp;
- rsaKey = (void *)pubHighKey;
+ rsaKeyPtr = (void *)pubHighKey;
} else {
/* do private key operations */
fn = (RSAOp)PK11_PrivateKeyOp;
keys.privKey = privHighKey;
keys.pubKey = pubHighKey;
- rsaKey = (void *)&keys;
+ rsaKeyPtr = (void *)&keys;
}
} else
@@ -574,7 +574,7 @@ main(int argc, char **argv)
pe.data = &pubEx[0];
pe.type = siBuffer;
- rsaKey = RSA_NewKey(keybits, &pe);
+ rsaKeyPtr = RSA_NewKey(keybits, &pe);
fprintf(stderr, "Keygen completed.\n");
} else {
/* use a hardcoded key */
@@ -589,31 +589,31 @@ main(int argc, char **argv)
if (doPub) {
/* do public key operations */
fn = (RSAOp)RSA_PublicKeyOp;
- if (rsaKey) {
+ if (rsaKeyPtr) {
/* convert the RSAPrivateKey to RSAPublicKey */
pubKeyStr.arena = NULL;
- pubKeyStr.modulus = ((RSAPrivateKey *)rsaKey)->modulus;
+ pubKeyStr.modulus = ((RSAPrivateKey *)rsaKeyPtr)->modulus;
pubKeyStr.publicExponent =
- ((RSAPrivateKey *)rsaKey)->publicExponent;
- rsaKey = &pubKeyStr;
+ ((RSAPrivateKey *)rsaKeyPtr)->publicExponent;
+ rsaKeyPtr = &pubKeyStr;
} else {
/* convert NSSLOWKeyPublicKey to RSAPublicKey */
- rsaKey = (void *)(&pubKey->u.rsa);
+ rsaKeyPtr = (void *)(&pubKey->u.rsa);
}
- PORT_Assert(rsaKey);
+ PORT_Assert(rsaKeyPtr);
} else {
/* do private key operations */
fn = (RSAOp)RSA_PrivateKeyOp;
if (privKey) {
/* convert NSSLOWKeyPrivateKey to RSAPrivateKey */
- rsaKey = (void *)(&privKey->u.rsa);
+ rsaKeyPtr = (void *)(&privKey->u.rsa);
}
- PORT_Assert(rsaKey);
+ PORT_Assert(rsaKeyPtr);
}
}
memset(buf, 1, sizeof buf);
- rv = fn(rsaKey, buf2, buf);
+ rv = fn(rsaKeyPtr, buf2, buf);
if (rv != SECSuccess) {
PRErrorCode errNum;
const char *errStr = NULL;
@@ -638,7 +638,7 @@ main(int argc, char **argv)
runDataArr[i]->fn = fn;
runDataArr[i]->buf = buf;
runDataArr[i]->doIters = &doIters;
- runDataArr[i]->rsaKey = rsaKey;
+ runDataArr[i]->rsaKey = rsaKeyPtr;
runDataArr[i]->seconds = seconds;
runDataArr[i]->iters = iters;
threadsArr[i] =
diff --git a/security/nss/cmd/selfserv/selfserv.c b/security/nss/cmd/selfserv/selfserv.c
index fac428e10..c372ec9b8 100644
--- a/security/nss/cmd/selfserv/selfserv.c
+++ b/security/nss/cmd/selfserv/selfserv.c
@@ -57,7 +57,7 @@
int NumSidCacheEntries = 1024;
-static int handle_connection(PRFileDesc *, PRFileDesc *, int);
+static int handle_connection(PRFileDesc *, PRFileDesc *);
static const char envVarName[] = { SSL_ENV_VAR_NAME };
static const char inheritableSockName[] = { "SELFSERV_LISTEN_SOCKET" };
@@ -509,7 +509,6 @@ typedef struct jobStr {
PRCList link;
PRFileDesc *tcp_sock;
PRFileDesc *model_sock;
- int requestCert;
} JOB;
static PZLock *qLock; /* this lock protects all data immediately below */
@@ -541,7 +540,7 @@ setupJobs(int maxJobs)
return SECSuccess;
}
-typedef int startFn(PRFileDesc *a, PRFileDesc *b, int c);
+typedef int startFn(PRFileDesc *a, PRFileDesc *b);
typedef enum { rs_idle = 0,
rs_running = 1,
@@ -550,7 +549,6 @@ typedef enum { rs_idle = 0,
typedef struct perThreadStr {
PRFileDesc *a;
PRFileDesc *b;
- int c;
int rv;
startFn *startFunc;
PRThread *prThread;
@@ -564,7 +562,7 @@ thread_wrapper(void *arg)
{
perThread *slot = (perThread *)arg;
- slot->rv = (*slot->startFunc)(slot->a, slot->b, slot->c);
+ slot->rv = (*slot->startFunc)(slot->a, slot->b);
/* notify the thread exit handler. */
PZ_Lock(qLock);
@@ -575,7 +573,7 @@ thread_wrapper(void *arg)
}
int
-jobLoop(PRFileDesc *a, PRFileDesc *b, int c)
+jobLoop(PRFileDesc *a, PRFileDesc *b)
{
PRCList *myLink = 0;
JOB *myJob;
@@ -595,8 +593,7 @@ jobLoop(PRFileDesc *a, PRFileDesc *b, int c)
/* myJob will be null when stopping is true and jobQ is empty */
if (!myJob)
break;
- handle_connection(myJob->tcp_sock, myJob->model_sock,
- myJob->requestCert);
+ handle_connection(myJob->tcp_sock, myJob->model_sock);
PZ_Lock(qLock);
PR_APPEND_LINK(myLink, &freeJobs);
PZ_NotifyCondVar(freeListNotEmptyCv);
@@ -609,7 +606,6 @@ launch_threads(
startFn *startFunc,
PRFileDesc *a,
PRFileDesc *b,
- int c,
PRBool local)
{
int i;
@@ -645,7 +641,6 @@ launch_threads(
slot->state = rs_running;
slot->a = a;
slot->b = b;
- slot->c = c;
slot->startFunc = startFunc;
slot->prThread = PR_CreateThread(PR_USER_THREAD,
thread_wrapper, slot, PR_PRIORITY_NORMAL,
@@ -893,8 +888,7 @@ int /* returns count */
int
do_writes(
PRFileDesc *ssl_sock,
- PRFileDesc *model_sock,
- int requestCert)
+ PRFileDesc *model_sock)
{
int sent = 0;
int count = 0;
@@ -925,8 +919,7 @@ do_writes(
static int
handle_fdx_connection(
PRFileDesc *tcp_sock,
- PRFileDesc *model_sock,
- int requestCert)
+ PRFileDesc *model_sock)
{
PRFileDesc *ssl_sock = NULL;
SECStatus result;
@@ -960,8 +953,7 @@ handle_fdx_connection(
lockedVars_AddToCount(&lv, 1);
/* Attempt to launch the writer thread. */
- result = launch_thread(do_writes, ssl_sock, (PRFileDesc *)&lv,
- requestCert);
+ result = launch_thread(do_writes, ssl_sock, (PRFileDesc *)&lv);
if (result == SECSuccess)
do {
@@ -1093,7 +1085,7 @@ makeCorruptedOCSPResponse(PLArenaPool *arena)
}
SECItemArray *
-makeSignedOCSPResponse(PLArenaPool *arena, ocspStaplingModeType osm,
+makeSignedOCSPResponse(PLArenaPool *arena,
CERTCertificate *cert, secuPWData *pwdata)
{
SECItemArray *result = NULL;
@@ -1117,7 +1109,7 @@ makeSignedOCSPResponse(PLArenaPool *arena, ocspStaplingModeType osm,
nextUpdate = now + (PRTime)60 * 60 * 24 * PR_USEC_PER_SEC; /* plus 1 day */
- switch (osm) {
+ switch (ocspStaplingMode) {
case osm_good:
case osm_badsig:
sr = CERT_CreateOCSPSingleResponseGood(arena, cid, now,
@@ -1150,7 +1142,7 @@ makeSignedOCSPResponse(PLArenaPool *arena, ocspStaplingModeType osm,
singleResponses[1] = NULL;
ocspResponse = CERT_CreateEncodedOCSPSuccessResponse(arena,
- (osm == osm_badsig)
+ (ocspStaplingMode == osm_badsig)
? NULL
: ca,
ocspResponderID_byName, now, singleResponses,
@@ -1175,7 +1167,7 @@ makeSignedOCSPResponse(PLArenaPool *arena, ocspStaplingModeType osm,
}
void
-setupCertStatus(PLArenaPool *arena, enum ocspStaplingModeEnum ocspStaplingMode,
+setupCertStatus(PLArenaPool *arena,
CERTCertificate *cert, int index, secuPWData *pwdata)
{
if (ocspStaplingMode == osm_random) {
@@ -1213,7 +1205,7 @@ setupCertStatus(PLArenaPool *arena, enum ocspStaplingModeEnum ocspStaplingMode,
case osm_unknown:
case osm_badsig:
multiOcspResponses =
- makeSignedOCSPResponse(arena, ocspStaplingMode, cert,
+ makeSignedOCSPResponse(arena, cert,
pwdata);
break;
case osm_corrupted:
@@ -1236,10 +1228,7 @@ setupCertStatus(PLArenaPool *arena, enum ocspStaplingModeEnum ocspStaplingMode,
}
int
-handle_connection(
- PRFileDesc *tcp_sock,
- PRFileDesc *model_sock,
- int requestCert)
+handle_connection(PRFileDesc *tcp_sock, PRFileDesc *model_sock)
{
PRFileDesc *ssl_sock = NULL;
PRFileDesc *local_file_fd = NULL;
@@ -1272,7 +1261,6 @@ handle_connection(
VLOG(("selfserv: handle_connection: starting\n"));
if (useModelSocket && model_sock) {
- SECStatus rv;
ssl_sock = SSL_ImportFD(model_sock, tcp_sock);
if (!ssl_sock) {
errWarn("SSL_ImportFD with model");
@@ -1588,8 +1576,7 @@ sigusr1_handler(int sig)
SECStatus
do_accepts(
PRFileDesc *listen_sock,
- PRFileDesc *model_sock,
- int requestCert)
+ PRFileDesc *model_sock)
{
PRNetAddr addr;
PRErrorCode perr;
@@ -1659,7 +1646,6 @@ do_accepts(
JOB *myJob = (JOB *)myLink;
myJob->tcp_sock = tcp_sock;
myJob->model_sock = model_sock;
- myJob->requestCert = requestCert;
}
PR_APPEND_LINK(myLink, &jobQ);
@@ -1818,7 +1804,6 @@ handshakeCallback(PRFileDesc *fd, void *client_data)
void
server_main(
PRFileDesc *listen_sock,
- int requestCert,
SECKEYPrivateKey **privKey,
CERTCertificate **cert,
const char *expectedHostNameVal)
@@ -2021,7 +2006,7 @@ server_main(
/* end of ssl configuration. */
/* Now, do the accepting, here in the main thread. */
- rv = do_accepts(listen_sock, model_sock, requestCert);
+ rv = do_accepts(listen_sock, model_sock);
terminateWorkerThreads();
@@ -2654,9 +2639,8 @@ main(int argc, char **argv)
}
}
if (cipher > 0) {
- SECStatus status;
- status = SSL_CipherPrefSetDefault(cipher, SSL_ALLOWED);
- if (status != SECSuccess)
+ rv = SSL_CipherPrefSetDefault(cipher, SSL_ALLOWED);
+ if (rv != SECSuccess)
SECU_PrintError(progName, "SSL_CipherPrefSet()");
} else {
fprintf(stderr,
@@ -2684,7 +2668,7 @@ main(int argc, char **argv)
exit(11);
}
if (privKey[i]->keyType != ecKey)
- setupCertStatus(certStatusArena, ocspStaplingMode, cert[i], i, &pwdata);
+ setupCertStatus(certStatusArena, cert[i], i, &pwdata);
}
if (configureWeakDHE > 0) {
@@ -2697,7 +2681,7 @@ main(int argc, char **argv)
}
/* allocate the array of thread slots, and launch the worker threads. */
- rv = launch_threads(&jobLoop, 0, 0, requestCert, useLocalThreads);
+ rv = launch_threads(&jobLoop, 0, 0, useLocalThreads);
if (rv == SECSuccess && logStats) {
loggerThread = PR_CreateThread(PR_SYSTEM_THREAD,
@@ -2712,7 +2696,7 @@ main(int argc, char **argv)
}
if (rv == SECSuccess) {
- server_main(listen_sock, requestCert, privKey, cert,
+ server_main(listen_sock, privKey, cert,
expectedHostNameVal);
}
@@ -2731,7 +2715,6 @@ cleanup:
}
{
- int i;
for (i = 0; i < certNicknameIndex; i++) {
if (cert[i]) {
CERT_DestroyCertificate(cert[i]);
diff --git a/security/nss/cmd/shlibsign/shlibsign.c b/security/nss/cmd/shlibsign/shlibsign.c
index d93fc422d..221d1e67e 100644
--- a/security/nss/cmd/shlibsign/shlibsign.c
+++ b/security/nss/cmd/shlibsign/shlibsign.c
@@ -148,7 +148,7 @@ writeItem(PRFileDesc *fd, CK_VOID_PTR pValue,
return PR_FAILURE;
}
bytesWritten = PR_Write(fd, pValue, ulValueLen);
- if (bytesWritten != ulValueLen) {
+ if (bytesWritten < 0 || (CK_ULONG)bytesWritten != ulValueLen) {
lperror(file);
return PR_FAILURE;
}
diff --git a/security/nss/cmd/signtool/javascript.c b/security/nss/cmd/signtool/javascript.c
index ffff2db59..58869aa61 100644
--- a/security/nss/cmd/signtool/javascript.c
+++ b/security/nss/cmd/signtool/javascript.c
@@ -1300,7 +1300,6 @@ extract_js(char *filename)
* Now we have a stream of tags and text. Go through and deal with each.
*/
for (curitem = head; curitem; curitem = curitem->next) {
- TagItem *tagp = NULL;
AVPair *pairp = NULL;
char *src = NULL, *id = NULL, *codebase = NULL;
PRBool hasEventHandler = PR_FALSE;
@@ -1669,11 +1668,14 @@ loser:
* Returns PR_SUCCESS if the directory is present, PR_FAILURE otherwise.
*/
static PRStatus
-ensureExists(char *base, char *path)
+ensureExists(char *basepath, char *path)
{
char fn[FNSIZE];
PRDir *dir;
- sprintf(fn, "%s/%s", base, path);
+ int c = snprintf(fn, sizeof(fn), "%s/%s", basepath, path);
+ if (c >= sizeof(fn)) {
+ return PR_FAILURE;
+ }
/*PR_fprintf(outputFD, "Trying to open directory %s.\n", fn);*/
diff --git a/security/nss/cmd/signtool/sign.c b/security/nss/cmd/signtool/sign.c
index 6f8e43946..534530947 100644
--- a/security/nss/cmd/signtool/sign.c
+++ b/security/nss/cmd/signtool/sign.c
@@ -175,16 +175,16 @@ typedef struct {
*
*/
int
-SignAllArc(char *jartree, char *keyName, int javascript, char *metafile,
- char *install_script, int optimize, PRBool recurse)
+SignAllArc(char *jartree, char *keyName, int javascript, char *metafilename,
+ char *install_script, int optimize_level, PRBool recurse)
{
SignArcInfo info;
info.keyName = keyName;
info.javascript = javascript;
- info.metafile = metafile;
+ info.metafile = metafilename;
info.install_script = install_script;
- info.optimize = optimize;
+ info.optimize = optimize_level;
return foreach (jartree, "", sign_all_arc_fn, recurse,
PR_TRUE /*include dirs*/, (void *)&info);
@@ -194,7 +194,7 @@ static int
sign_all_arc_fn(char *relpath, char *basedir, char *reldir, char *filename,
void *arg)
{
- char *zipfile = NULL;
+ char *zipfilename = NULL;
char *arc = NULL, *archive = NULL;
int retval = 0;
SignArcInfo *infop = (SignArcInfo *)arg;
@@ -212,8 +212,8 @@ sign_all_arc_fn(char *relpath, char *basedir, char *reldir, char *filename,
}
archive = PR_smprintf("%s/%s", basedir, relpath);
- zipfile = PL_strdup(archive);
- arc = PORT_Strrchr(zipfile, '.');
+ zipfilename = PL_strdup(archive);
+ arc = PORT_Strrchr(zipfilename, '.');
if (arc == NULL) {
PR_fprintf(errorFD, "%s: Internal failure\n", PROGRAM_NAME);
@@ -225,17 +225,17 @@ sign_all_arc_fn(char *relpath, char *basedir, char *reldir, char *filename,
PL_strcpy(arc, ".jar");
if (verbosity >= 0) {
- PR_fprintf(outputFD, "\nsigning: %s\n", zipfile);
+ PR_fprintf(outputFD, "\nsigning: %s\n", zipfilename);
}
- retval = SignArchive(archive, infop->keyName, zipfile,
+ retval = SignArchive(archive, infop->keyName, zipfilename,
infop->javascript, infop->metafile, infop->install_script,
infop->optimize, PR_TRUE /* recurse */);
}
finish:
if (archive)
PR_Free(archive);
- if (zipfile)
- PR_Free(zipfile);
+ if (zipfilename)
+ PR_Free(zipfilename);
return retval;
}
@@ -707,8 +707,8 @@ SignFile(FILE *outFile, FILE *inFile, CERTCertificate *cert)
static int
generate_SF_file(char *manifile, char *who)
{
- FILE *sf;
- FILE *mf;
+ FILE *sfFile;
+ FILE *mfFile;
long r1, r2, r3;
char whofile[FNSIZE];
char *buf, *name = NULL;
@@ -718,12 +718,12 @@ generate_SF_file(char *manifile, char *who)
strcpy(whofile, who);
- if ((mf = fopen(manifile, "rb")) == NULL) {
+ if ((mfFile = fopen(manifile, "rb")) == NULL) {
perror(manifile);
exit(ERRX);
}
- if ((sf = fopen(whofile, "wb")) == NULL) {
+ if ((sfFile = fopen(whofile, "wb")) == NULL) {
perror(who);
exit(ERRX);
}
@@ -736,11 +736,11 @@ generate_SF_file(char *manifile, char *who)
if (buf == NULL || name == NULL)
out_of_memory();
- fprintf(sf, "Signature-Version: 1.0\n");
- fprintf(sf, "Created-By: %s\n", CREATOR);
- fprintf(sf, "Comments: %s\n", BREAKAGE);
+ fprintf(sfFile, "Signature-Version: 1.0\n");
+ fprintf(sfFile, "Created-By: %s\n", CREATOR);
+ fprintf(sfFile, "Comments: %s\n", BREAKAGE);
- if (fgets(buf, BUFSIZ, mf) == NULL) {
+ if (fgets(buf, BUFSIZ, mfFile) == NULL) {
PR_fprintf(errorFD, "%s: empty manifest file!\n", PROGRAM_NAME);
errorCount++;
exit(ERRX);
@@ -752,15 +752,15 @@ generate_SF_file(char *manifile, char *who)
exit(ERRX);
}
- fseek(mf, 0L, SEEK_SET);
+ fseek(mfFile, 0L, SEEK_SET);
/* Process blocks of headers, and calculate their hashen */
while (1) {
/* Beginning range */
- r1 = ftell(mf);
+ r1 = ftell(mfFile);
- if (fgets(name, BUFSIZ, mf) == NULL)
+ if (fgets(name, BUFSIZ, mfFile) == NULL)
break;
line++;
@@ -774,46 +774,46 @@ generate_SF_file(char *manifile, char *who)
}
r2 = r1;
- while (fgets(buf, BUFSIZ, mf)) {
+ while (fgets(buf, BUFSIZ, mfFile)) {
if (*buf == 0 || *buf == '\n' || *buf == '\r')
break;
line++;
/* Ending range for hashing */
- r2 = ftell(mf);
+ r2 = ftell(mfFile);
}
- r3 = ftell(mf);
+ r3 = ftell(mfFile);
if (r1) {
- fprintf(sf, "\n");
- fprintf(sf, "%s", name);
+ fprintf(sfFile, "\n");
+ fprintf(sfFile, "%s", name);
}
- calculate_MD5_range(mf, r1, r2, &dig);
+ calculate_MD5_range(mfFile, r1, r2, &dig);
if (optimize == 0) {
- fprintf(sf, "Digest-Algorithms: MD5 SHA1\n");
+ fprintf(sfFile, "Digest-Algorithms: MD5 SHA1\n");
md5 = BTOA_DataToAscii(dig.md5, MD5_LENGTH);
- fprintf(sf, "MD5-Digest: %s\n", md5);
+ fprintf(sfFile, "MD5-Digest: %s\n", md5);
PORT_Free(md5);
}
sha1 = BTOA_DataToAscii(dig.sha1, SHA1_LENGTH);
- fprintf(sf, "SHA1-Digest: %s\n", sha1);
+ fprintf(sfFile, "SHA1-Digest: %s\n", sha1);
PORT_Free(sha1);
/* restore normalcy after changing offset position */
- fseek(mf, r3, SEEK_SET);
+ fseek(mfFile, r3, SEEK_SET);
}
PORT_Free(buf);
PORT_Free(name);
- fclose(sf);
- fclose(mf);
+ fclose(sfFile);
+ fclose(mfFile);
return 0;
}
diff --git a/security/nss/cmd/signtool/zip.c b/security/nss/cmd/signtool/zip.c
index 35d5f5733..aeb5d6c54 100644
--- a/security/nss/cmd/signtool/zip.c
+++ b/security/nss/cmd/signtool/zip.c
@@ -129,7 +129,7 @@ handle_zerror(int err, char *msg)
* been opened with JzipOpen.
*/
int
-JzipAdd(char *fullname, char *filename, ZIPfile *zipfile, int compression_level)
+JzipAdd(char *fullname, char *filename, ZIPfile *zipfile, int lvl)
{
ZIPentry *entry;
PRFileDesc *readfp;
@@ -319,7 +319,7 @@ JzipAdd(char *fullname, char *filename, ZIPfile *zipfile, int compression_level)
* It causes zlib to leave out its headers and footers, which don't
* work in PKZIP files.
*/
- err = deflateInit2(&zstream, compression_level, Z_DEFLATED,
+ err = deflateInit2(&zstream, lvl, Z_DEFLATED,
-MAX_WBITS, 8 /*default*/, Z_DEFAULT_STRATEGY);
if (err != Z_OK) {
handle_zerror(err, zstream.msg);
diff --git a/security/nss/cmd/smimetools/cmsutil.c b/security/nss/cmd/smimetools/cmsutil.c
index fe17f26a4..7106521c1 100644
--- a/security/nss/cmd/smimetools/cmsutil.c
+++ b/security/nss/cmd/smimetools/cmsutil.c
@@ -68,7 +68,7 @@ DigestFile(PLArenaPool *poolp, SECItem ***digests, SECItem *input,
}
static void
-Usage(char *progName)
+Usage(void)
{
fprintf(stderr,
"Usage: %s [-C|-D|-E|-O|-S] [<options>] [-d dbdir] [-u certusage]\n"
@@ -280,7 +280,6 @@ decode(FILE *out, SECItem *input, const struct decodeOptionsStr *decodeOptions)
** or might be an invalid message, such as a QA test message
** or a message from an attacker.
*/
- SECStatus rv;
rv = NSS_CMSSignedData_VerifyCertsOnly(sigd,
decodeOptions->options->certHandle,
decodeOptions->options->certUsage);
@@ -1127,7 +1126,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -G only supported with option -S.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
signOptions.signingTime = PR_TRUE;
@@ -1137,7 +1136,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -H only supported with option -S.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
decodeOptions.suppressContent = PR_TRUE;
@@ -1167,7 +1166,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -N only supported with option -S.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
signOptions.nickname = PORT_Strdup(optstate->value);
@@ -1180,7 +1179,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -P only supported with option -S.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
signOptions.smimeProfile = PR_TRUE;
@@ -1193,7 +1192,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -T only supported with option -S.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
signOptions.detached = PR_TRUE;
@@ -1203,7 +1202,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -Y only supported with option -S.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
signOptions.encryptionKeyPreferenceNick = strdup(optstate->value);
@@ -1214,7 +1213,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -b only supported with option -D.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
batch = PR_TRUE;
@@ -1225,7 +1224,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -c only supported with option -D.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
contentFile = PR_Open(optstate->value, PR_RDONLY, 006600);
@@ -1261,7 +1260,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -h only supported with option -D.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
decodeOptions.headerLevel = atoi(optstate->value);
@@ -1288,7 +1287,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -k only supported with option -D.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
decodeOptions.keepCerts = PR_TRUE;
@@ -1299,7 +1298,7 @@ main(int argc, char **argv)
fprintf(stderr,
"%s: option -n only supported with option -D.\n",
progName);
- Usage(progName);
+ Usage();
exit(1);
}
decodeOptions.suppressContent = PR_TRUE;
@@ -1315,7 +1314,7 @@ main(int argc, char **argv)
case 'p':
if (!optstate->value) {
fprintf(stderr, "%s: option -p must have a value.\n", progName);
- Usage(progName);
+ Usage();
exit(1);
}
@@ -1325,7 +1324,7 @@ main(int argc, char **argv)
case 'f':
if (!optstate->value) {
fprintf(stderr, "%s: option -f must have a value.\n", progName);
- Usage(progName);
+ Usage();
exit(1);
}
@@ -1335,7 +1334,7 @@ main(int argc, char **argv)
case 'r':
if (!optstate->value) {
fprintf(stderr, "%s: option -r must have a value.\n", progName);
- Usage(progName);
+ Usage();
exit(1);
}
envelopeOptions.recipients = ptrarray;
@@ -1368,11 +1367,11 @@ main(int argc, char **argv)
}
}
if (status == PL_OPT_BAD)
- Usage(progName);
+ Usage();
PL_DestroyOptState(optstate);
if (mode == UNKNOWN)
- Usage(progName);
+ Usage();
if (mode != CERTSONLY && !batch) {
rv = SECU_FileToItem(&input, inFile);
@@ -1529,7 +1528,7 @@ main(int argc, char **argv)
break;
default:
fprintf(stderr, "One of options -D, -S or -E must be set.\n");
- Usage(progName);
+ Usage();
exitstatus = 1;
}
diff --git a/security/nss/cmd/strsclnt/strsclnt.c b/security/nss/cmd/strsclnt/strsclnt.c
index 7d259bd0a..bba53efac 100644
--- a/security/nss/cmd/strsclnt/strsclnt.c
+++ b/security/nss/cmd/strsclnt/strsclnt.c
@@ -137,7 +137,7 @@ SECItem bigBuf;
fprintf
static void
-Usage(const char *progName)
+Usage(void)
{
fprintf(stderr,
"Usage: %s [-n nickname] [-p port] [-d dbdir] [-c connections]\n"
@@ -260,7 +260,6 @@ void
printSecurityInfo(PRFileDesc *fd)
{
CERTCertificate *cert = NULL;
- SSL3Statistics *ssl3stats = SSL_GetStatistics();
SECStatus result;
SSLChannelInfo channel;
SSLCipherSuiteInfo suite;
@@ -1095,7 +1094,6 @@ client_main(
while (0 != (ndx = *cipherString)) {
const char *startCipher = cipherString++;
int cipher = 0;
- SECStatus rv;
if (ndx == ':') {
cipher = hexchar_to_int(*cipherString++);
@@ -1353,7 +1351,7 @@ main(int argc, char **argv)
enabledVersions, &enabledVersions) !=
SECSuccess) {
fprintf(stderr, "Bad version specified.\n");
- Usage(progName);
+ Usage();
}
break;
@@ -1431,27 +1429,27 @@ main(int argc, char **argv)
case 0: /* positional parameter */
if (hostName) {
- Usage(progName);
+ Usage();
}
hostName = PL_strdup(optstate->value);
break;
default:
case '?':
- Usage(progName);
+ Usage();
break;
}
}
PL_DestroyOptState(optstate);
if (!hostName || status == PL_OPT_BAD)
- Usage(progName);
+ Usage();
if (fullhs != NO_FULLHS_PERCENTAGE && (fullhs < 0 || fullhs > 100 || NoReuse))
- Usage(progName);
+ Usage();
if (port == 0)
- Usage(progName);
+ Usage();
if (fileName)
readBigFile(fileName);
diff --git a/security/nss/cmd/symkeyutil/symkeyutil.c b/security/nss/cmd/symkeyutil/symkeyutil.c
index 444456808..31ab4dda4 100644
--- a/security/nss/cmd/symkeyutil/symkeyutil.c
+++ b/security/nss/cmd/symkeyutil/symkeyutil.c
@@ -1034,10 +1034,10 @@ main(int argc, char **argv)
char *targetName = symKeyUtil.options[opt_TargetToken].arg;
PK11SymKey *newKey;
PK11SymKey *symKey = FindKey(slot, name, &keyID, &pwdata);
- char *keyName = PK11_GetSymKeyNickname(symKey);
+ char *keyName;
if (!symKey) {
- char *keyName = keyID.data ? BufToHex(&keyID) : PORT_Strdup(name);
+ keyName = keyID.data ? BufToHex(&keyID) : PORT_Strdup(name);
PR_fprintf(PR_STDERR, "%s: Couldn't find key %s on %s\n",
progName, keyName, PK11_GetTokenName(slot));
PORT_Free(keyName);
@@ -1061,6 +1061,7 @@ main(int argc, char **argv)
PR_fprintf(PR_STDERR, "%s: Couldn't move the key \n", progName);
goto shutdown;
}
+ keyName = PK11_GetSymKeyNickname(symKey);
if (keyName) {
rv = PK11_SetSymKeyNickname(newKey, keyName);
if (rv != SECSuccess) {
diff --git a/security/nss/cmd/tstclnt/tstclnt.c b/security/nss/cmd/tstclnt/tstclnt.c
index 1ad99502b..6f5a43146 100644
--- a/security/nss/cmd/tstclnt/tstclnt.c
+++ b/security/nss/cmd/tstclnt/tstclnt.c
@@ -51,6 +51,7 @@
#define MAX_WAIT_FOR_SERVER 600
#define WAIT_INTERVAL 100
+#define ZERO_RTT_MAX (2 << 16)
#define EXIT_CODE_HANDSHAKE_FAILED 254
@@ -99,6 +100,7 @@ int renegotiationsDone = 0;
PRBool initializedServerSessionCache = PR_FALSE;
static char *progName;
+static const char *requestFile;
secuPWData pwdata = { PW_NONE, 0 };
@@ -172,7 +174,7 @@ printSecurityInfo(PRFileDesc *fd)
}
static void
-PrintUsageHeader(const char *progName)
+PrintUsageHeader()
{
fprintf(stderr,
"Usage: %s -h host [-a 1st_hs_name ] [-a 2nd_hs_name ] [-p port]\n"
@@ -186,7 +188,7 @@ PrintUsageHeader(const char *progName)
}
static void
-PrintParameterUsage(void)
+PrintParameterUsage()
{
fprintf(stderr, "%-20s Send different SNI name. 1st_hs_name - at first\n"
"%-20s handshake, 2nd_hs_name - at second handshake.\n"
@@ -259,17 +261,17 @@ PrintParameterUsage(void)
}
static void
-Usage(const char *progName)
+Usage()
{
- PrintUsageHeader(progName);
+ PrintUsageHeader();
PrintParameterUsage();
exit(1);
}
static void
-PrintCipherUsage(const char *progName)
+PrintCipherUsage()
{
- PrintUsageHeader(progName);
+ PrintUsageHeader();
fprintf(stderr, "%-20s Letter(s) chosen from the following list\n",
"-c ciphers");
fprintf(stderr,
@@ -303,7 +305,7 @@ milliPause(PRUint32 milli)
}
void
-disableAllSSLCiphers(void)
+disableAllSSLCiphers()
{
const PRUint16 *cipherSuites = SSL_GetImplementedCiphers();
int i = SSL_GetNumImplementedCiphers();
@@ -711,12 +713,18 @@ void
thread_main(void *arg)
{
PRFileDesc *ps = (PRFileDesc *)arg;
- PRFileDesc *std_in = PR_GetSpecialFD(PR_StandardInput);
+ PRFileDesc *std_in;
int wc, rc;
char buf[256];
+ if (requestFile) {
+ std_in = PR_Open(requestFile, PR_RDONLY, 0);
+ } else {
+ std_in = PR_GetSpecialFD(PR_StandardInput);
+ }
+
#ifdef WIN32
- {
+ if (!requestFile) {
/* Put stdin into O_BINARY mode
** or else incoming \r\n's will become \n's.
*/
@@ -737,6 +745,9 @@ thread_main(void *arg)
wc = PR_Send(ps, buf, rc, 0, maxInterval);
} while (wc == rc);
PR_Close(ps);
+ if (requestFile) {
+ PR_Close(std_in);
+ }
}
#endif
@@ -844,7 +855,7 @@ separateReqHeader(const PRFileDesc *outFd, const char *buf, const int nb,
} else if (((c) >= 'A') && ((c) <= 'F')) { \
i = (c) - 'A' + 10; \
} else { \
- Usage(progName); \
+ Usage(); \
}
static SECStatus
@@ -915,22 +926,22 @@ char *hs1SniHostName = NULL;
char *hs2SniHostName = NULL;
PRUint16 portno = 443;
int override = 0;
-char *requestString = NULL;
-PRInt32 requestStringLen = 0;
-PRBool requestSent = PR_FALSE;
PRBool enableZeroRtt = PR_FALSE;
+PRUint8 *zeroRttData;
+unsigned int zeroRttLen = 0;
PRBool enableAltServerHello = PR_FALSE;
PRBool useDTLS = PR_FALSE;
PRBool actAsServer = PR_FALSE;
PRBool stopAfterHandshake = PR_FALSE;
PRBool requestToExit = PR_FALSE;
char *versionString = NULL;
+PRBool handshakeComplete = PR_FALSE;
static int
-writeBytesToServer(PRFileDesc *s, const char *buf, int nb)
+writeBytesToServer(PRFileDesc *s, const PRUint8 *buf, int nb)
{
SECStatus rv;
- const char *bufp = buf;
+ const PRUint8 *bufp = buf;
PRPollDesc pollDesc;
pollDesc.in_flags = PR_POLL_WRITE | PR_POLL_EXCEPT;
@@ -944,12 +955,20 @@ writeBytesToServer(PRFileDesc *s, const char *buf, int nb)
if (cc < 0) {
PRErrorCode err = PR_GetError();
if (err != PR_WOULD_BLOCK_ERROR) {
- SECU_PrintError(progName,
- "write to SSL socket failed");
+ SECU_PrintError(progName, "write to SSL socket failed");
return 254;
}
cc = 0;
}
+ FPRINTF(stderr, "%s: %d bytes written\n", progName, cc);
+ if (enableZeroRtt && !handshakeComplete) {
+ if (zeroRttLen + cc > ZERO_RTT_MAX) {
+ SECU_PrintError(progName, "too much early data to save");
+ return -1;
+ }
+ PORT_Memcpy(zeroRttData + zeroRttLen, bufp, cc);
+ zeroRttLen += cc;
+ }
bufp += cc;
nb -= cc;
if (nb <= 0)
@@ -969,8 +988,7 @@ writeBytesToServer(PRFileDesc *s, const char *buf, int nb)
progName);
cc = PR_Poll(&pollDesc, 1, PR_INTERVAL_NO_TIMEOUT);
if (cc < 0) {
- SECU_PrintError(progName,
- "PR_Poll failed");
+ SECU_PrintError(progName, "PR_Poll failed");
return -1;
}
FPRINTF(stderr,
@@ -993,7 +1011,7 @@ handshakeCallback(PRFileDesc *fd, void *client_data)
SSL_ReHandshake(fd, (renegotiationsToDo < 2));
++renegotiationsDone;
}
- if (requestString && requestSent) {
+ if (zeroRttLen) {
/* This data was sent in 0-RTT. */
SSLChannelInfo info;
SECStatus rv;
@@ -1003,29 +1021,30 @@ handshakeCallback(PRFileDesc *fd, void *client_data)
return;
if (!info.earlyDataAccepted) {
- FPRINTF(stderr, "Early data rejected. Re-sending\n");
- writeBytesToServer(fd, requestString, requestStringLen);
+ FPRINTF(stderr, "Early data rejected. Re-sending %d bytes\n",
+ zeroRttLen);
+ writeBytesToServer(fd, zeroRttData, zeroRttLen);
+ zeroRttLen = 0;
}
}
if (stopAfterHandshake) {
requestToExit = PR_TRUE;
}
+ handshakeComplete = PR_TRUE;
}
-#define REQUEST_WAITING (requestString && !requestSent)
-
static SECStatus
-installServerCertificate(PRFileDesc *s, char *nickname)
+installServerCertificate(PRFileDesc *s, char *nick)
{
CERTCertificate *cert;
SECKEYPrivateKey *privKey = NULL;
- if (!nickname) {
+ if (!nick) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
- cert = PK11_FindCertFromNickname(nickname, &pwdata);
+ cert = PK11_FindCertFromNickname(nick, &pwdata);
if (cert == NULL) {
return SECFailure;
}
@@ -1129,20 +1148,19 @@ connectToServer(PRFileDesc *s, PRPollDesc *pollset)
}
static int
-run(void)
+run()
{
int headerSeparatorPtrnId = 0;
int error = 0;
SECStatus rv;
PRStatus status;
PRInt32 filesReady;
- int npds;
PRFileDesc *s = NULL;
PRFileDesc *std_out;
- PRPollDesc pollset[2];
+ PRPollDesc pollset[2] = { { 0 }, { 0 } };
PRBool wrStarted = PR_FALSE;
- requestSent = PR_FALSE;
+ handshakeComplete = PR_FALSE;
/* Create socket */
if (useDTLS) {
@@ -1225,19 +1243,18 @@ run(void)
cipherString++;
} else {
if (!isalpha(ndx))
- Usage(progName);
+ Usage();
ndx = tolower(ndx) - 'a';
if (ndx < PR_ARRAY_SIZE(ssl3CipherSuites)) {
cipher = ssl3CipherSuites[ndx];
}
}
if (cipher > 0) {
- SECStatus status;
- status = SSL_CipherPrefSet(s, cipher, SSL_ALLOWED);
- if (status != SECSuccess)
+ rv = SSL_CipherPrefSet(s, cipher, SSL_ALLOWED);
+ if (rv != SECSuccess)
SECU_PrintError(progName, "SSL_CipherPrefSet()");
} else {
- Usage(progName);
+ Usage();
}
}
PORT_Free(cstringSaved);
@@ -1394,7 +1411,6 @@ run(void)
/* Try to connect to the server */
rv = connectToServer(s, pollset);
if (rv != SECSuccess) {
- ;
error = 1;
goto done;
}
@@ -1406,13 +1422,18 @@ run(void)
pollset[SSOCK_FD].in_flags |= (clientSpeaksFirst ? 0 : PR_POLL_READ);
else
pollset[SSOCK_FD].in_flags |= PR_POLL_READ;
- pollset[STDIN_FD].fd = PR_GetSpecialFD(PR_StandardInput);
- if (!REQUEST_WAITING) {
- pollset[STDIN_FD].in_flags = PR_POLL_READ;
- npds = 2;
+ if (requestFile) {
+ pollset[STDIN_FD].fd = PR_Open(requestFile, PR_RDONLY, 0);
+ if (!pollset[STDIN_FD].fd) {
+ fprintf(stderr, "%s: unable to open input file: %s\n",
+ progName, requestFile);
+ error = 1;
+ goto done;
+ }
} else {
- npds = 1;
+ pollset[STDIN_FD].fd = PR_GetSpecialFD(PR_StandardInput);
}
+ pollset[STDIN_FD].in_flags = PR_POLL_READ;
std_out = PR_GetSpecialFD(PR_StandardOutput);
#if defined(WIN32) || defined(OS2)
@@ -1458,10 +1479,9 @@ run(void)
requestToExit = PR_FALSE;
FPRINTF(stderr, "%s: ready...\n", progName);
while (!requestToExit &&
- ((pollset[SSOCK_FD].in_flags | pollset[STDIN_FD].in_flags) ||
- REQUEST_WAITING)) {
- char buf[4000]; /* buffer for stdin */
- int nb; /* num bytes read from stdin. */
+ (pollset[SSOCK_FD].in_flags || pollset[STDIN_FD].in_flags)) {
+ PRUint8 buf[4000]; /* buffer for stdin */
+ int nb; /* num bytes read from stdin. */
rv = restartHandshakeAfterServerCertIfNeeded(s, &serverCertAuth,
override);
@@ -1475,7 +1495,8 @@ run(void)
pollset[STDIN_FD].out_flags = 0;
FPRINTF(stderr, "%s: about to call PR_Poll !\n", progName);
- filesReady = PR_Poll(pollset, npds, PR_INTERVAL_NO_TIMEOUT);
+ filesReady = PR_Poll(pollset, PR_ARRAY_SIZE(pollset),
+ PR_INTERVAL_NO_TIMEOUT);
if (filesReady < 0) {
SECU_PrintError(progName, "select failed");
error = 1;
@@ -1497,14 +1518,6 @@ run(void)
"%s: PR_Poll returned 0x%02x for socket out_flags.\n",
progName, pollset[SSOCK_FD].out_flags);
}
- if (REQUEST_WAITING) {
- error = writeBytesToServer(s, requestString, requestStringLen);
- if (error) {
- goto done;
- }
- requestSent = PR_TRUE;
- pollset[SSOCK_FD].in_flags = PR_POLL_READ;
- }
if (pollset[STDIN_FD].out_flags & PR_POLL_READ) {
/* Read from stdin and write to socket */
nb = PR_Read(pollset[STDIN_FD].fd, buf, sizeof(buf));
@@ -1518,6 +1531,8 @@ run(void)
} else if (nb == 0) {
/* EOF on stdin, stop polling stdin for read. */
pollset[STDIN_FD].in_flags = 0;
+ if (actAsServer)
+ requestToExit = PR_TRUE;
} else {
error = writeBytesToServer(s, buf, nb);
if (error) {
@@ -1532,12 +1547,12 @@ run(void)
"%s: PR_Poll returned 0x%02x for socket out_flags.\n",
progName, pollset[SSOCK_FD].out_flags);
}
- if ((pollset[SSOCK_FD].out_flags & PR_POLL_READ) ||
- (pollset[SSOCK_FD].out_flags & PR_POLL_ERR)
#ifdef PR_POLL_HUP
- || (pollset[SSOCK_FD].out_flags & PR_POLL_HUP)
+#define POLL_RECV_FLAGS (PR_POLL_READ | PR_POLL_ERR | PR_POLL_HUP)
+#else
+#define POLL_RECV_FLAGS (PR_POLL_READ | PR_POLL_ERR)
#endif
- ) {
+ if (pollset[SSOCK_FD].out_flags & POLL_RECV_FLAGS) {
/* Read from socket and write to stdout */
nb = PR_Recv(pollset[SSOCK_FD].fd, buf, sizeof buf, 0, maxInterval);
FPRINTF(stderr, "%s: Read from server %d bytes\n", progName, nb);
@@ -1554,7 +1569,7 @@ run(void)
if (skipProtoHeader != PR_TRUE || wrStarted == PR_TRUE) {
PR_Write(std_out, buf, nb);
} else {
- separateReqHeader(std_out, buf, nb, &wrStarted,
+ separateReqHeader(std_out, (char *)buf, nb, &wrStarted,
&headerSeparatorPtrnId);
}
if (verbose)
@@ -1568,42 +1583,10 @@ done:
if (s) {
PR_Close(s);
}
-
- return error;
-}
-
-PRInt32
-ReadFile(const char *filename, char **data)
-{
- char *ret = NULL;
- char buf[8192];
- unsigned int len = 0;
- PRStatus rv;
-
- PRFileDesc *fd = PR_Open(filename, PR_RDONLY, 0);
- if (!fd)
- return -1;
-
- for (;;) {
- rv = PR_Read(fd, buf, sizeof(buf));
- if (rv < 0) {
- PR_Free(ret);
- return rv;
- }
-
- if (!rv)
- break;
-
- ret = PR_Realloc(ret, len + rv);
- if (!ret) {
- return -1;
- }
- PORT_Memcpy(ret + len, buf, rv);
- len += rv;
+ if (requestFile && pollset[STDIN_FD].fd) {
+ PR_Close(pollset[STDIN_FD].fd);
}
-
- *data = ret;
- return len;
+ return error;
}
int
@@ -1653,26 +1636,22 @@ main(int argc, char **argv)
switch (optstate->option) {
case '?':
default:
- Usage(progName);
+ Usage();
break;
case '4':
allowIPv6 = PR_FALSE;
if (!allowIPv4)
- Usage(progName);
+ Usage();
break;
case '6':
allowIPv4 = PR_FALSE;
if (!allowIPv6)
- Usage(progName);
+ Usage();
break;
case 'A':
- requestStringLen = ReadFile(optstate->value, &requestString);
- if (requestStringLen < 0) {
- fprintf(stderr, "Couldn't read file %s\n", optstate->value);
- exit(1);
- }
+ requestFile = PORT_Strdup(optstate->value);
break;
case 'C':
@@ -1735,7 +1714,7 @@ main(int argc, char **argv)
actAsServer = 1;
} else {
if (strcmp(optstate->value, "client")) {
- Usage(progName);
+ Usage();
}
}
break;
@@ -1768,16 +1747,21 @@ main(int argc, char **argv)
if (!strcmp(optstate->value, "alt-server-hello")) {
enableAltServerHello = PR_TRUE;
} else {
- Usage(progName);
+ Usage();
}
break;
case 'Y':
- PrintCipherUsage(progName);
+ PrintCipherUsage();
exit(0);
break;
case 'Z':
enableZeroRtt = PR_TRUE;
+ zeroRttData = PORT_ZAlloc(ZERO_RTT_MAX);
+ if (!zeroRttData) {
+ fprintf(stderr, "Unable to allocate buffer for 0-RTT\n");
+ exit(1);
+ }
break;
case 'a':
@@ -1786,7 +1770,7 @@ main(int argc, char **argv)
} else if (!hs2SniHostName) {
hs2SniHostName = PORT_Strdup(optstate->value);
} else {
- Usage(progName);
+ Usage();
}
break;
@@ -1875,7 +1859,7 @@ main(int argc, char **argv)
if (rv != SECSuccess) {
PL_DestroyOptState(optstate);
fprintf(stderr, "Bad group specified.\n");
- Usage(progName);
+ Usage();
}
break;
}
@@ -1889,18 +1873,18 @@ main(int argc, char **argv)
enabledVersions, &enabledVersions) !=
SECSuccess) {
fprintf(stderr, "Bad version specified.\n");
- Usage(progName);
+ Usage();
}
PORT_Free(versionString);
}
if (optstatus == PL_OPT_BAD) {
- Usage(progName);
+ Usage();
}
if (!host || !portno) {
fprintf(stderr, "%s: parameters -h and -p are mandatory\n", progName);
- Usage(progName);
+ Usage();
}
if (serverCertAuth.testFreshStatusFromSideChannel &&
@@ -2060,20 +2044,13 @@ done:
PR_Close(s);
}
- if (hs1SniHostName) {
- PORT_Free(hs1SniHostName);
- }
- if (hs2SniHostName) {
- PORT_Free(hs2SniHostName);
- }
- if (nickname) {
- PORT_Free(nickname);
- }
- if (pwdata.data) {
- PORT_Free(pwdata.data);
- }
+ PORT_Free((void *)requestFile);
+ PORT_Free(hs1SniHostName);
+ PORT_Free(hs2SniHostName);
+ PORT_Free(nickname);
+ PORT_Free(pwdata.data);
PORT_Free(host);
- PORT_Free(requestString);
+ PORT_Free(zeroRttData);
if (enabledGroups) {
PORT_Free(enabledGroups);
diff --git a/security/nss/cmd/vfyserv/vfyserv.c b/security/nss/cmd/vfyserv/vfyserv.c
index aa648ad8c..4234ecd09 100644
--- a/security/nss/cmd/vfyserv/vfyserv.c
+++ b/security/nss/cmd/vfyserv/vfyserv.c
@@ -327,9 +327,7 @@ do_connects(void *a, int connection)
}
void
-client_main(unsigned short port,
- int connections,
- const char *hostName)
+client_main(int connections)
{
int i;
SECStatus secStatus;
@@ -553,7 +551,7 @@ main(int argc, char **argv)
}
}
- client_main(port, connections, hostName);
+ client_main(connections);
cleanup:
if (doOcspCheck) {
diff --git a/security/nss/cmd/vfyserv/vfyutil.c b/security/nss/cmd/vfyserv/vfyutil.c
index 2f1b53262..d3d8a206e 100644
--- a/security/nss/cmd/vfyserv/vfyutil.c
+++ b/security/nss/cmd/vfyserv/vfyutil.c
@@ -310,13 +310,13 @@ myHandshakeCallback(PRFileDesc *socket, void *arg)
void
disableAllSSLCiphers(void)
{
- const PRUint16 *cipherSuites = SSL_ImplementedCiphers;
+ const PRUint16 *allSuites = SSL_ImplementedCiphers;
int i = SSL_NumImplementedCiphers;
SECStatus rv;
/* disable all the SSL3 cipher suites */
while (--i >= 0) {
- PRUint16 suite = cipherSuites[i];
+ PRUint16 suite = allSuites[i];
rv = SSL_CipherPrefSetDefault(suite, PR_FALSE);
if (rv != SECSuccess) {
fprintf(stderr,
diff --git a/security/nss/coreconf/Werror.mk b/security/nss/coreconf/Werror.mk
index 69155eb14..a569a497c 100644
--- a/security/nss/coreconf/Werror.mk
+++ b/security/nss/coreconf/Werror.mk
@@ -48,9 +48,11 @@ ifndef WARNING_CFLAGS
else
# This tests to see if enabling the warning is possible before
# setting an option to disable it.
- disable_warning = $(shell $(CC) -x c -E -Werror -W$(1) /dev/null >/dev/null 2>&1 && echo -Wno-$(1))
+ set_warning = $(shell $(CC) -x c -E -Werror -W$(1) /dev/null >/dev/null 2>&1 && echo -W$(2)$(1))
+ enable_warning = $(call set_warning,$(1),)
+ disable_warning = $(call set_warning,$(1),no-)
- WARNING_CFLAGS = -Wall
+ WARNING_CFLAGS = -Wall $(call enable_warning,shadow)
ifdef CC_IS_CLANG
# -Qunused-arguments : clang objects to arguments that it doesn't understand
# and fixing this would require rearchitecture
diff --git a/security/nss/coreconf/config.mk b/security/nss/coreconf/config.mk
index 55d95c30e..b62f6cef4 100644
--- a/security/nss/coreconf/config.mk
+++ b/security/nss/coreconf/config.mk
@@ -181,6 +181,10 @@ ifndef NSS_FORCE_FIPS
DEFINES += -DNSS_NO_INIT_SUPPORT
endif
+ifdef NSS_SEED_ONLY_DEV_URANDOM
+DEFINES += -DSEED_ONLY_DEV_URANDOM
+endif
+
# Avoid building object leak test code for optimized library
ifndef BUILD_OPT
ifdef PKIX_OBJECT_LEAK_TEST
diff --git a/security/nss/coreconf/coreconf.dep b/security/nss/coreconf/coreconf.dep
index 5182f7555..590d1bfae 100644
--- a/security/nss/coreconf/coreconf.dep
+++ b/security/nss/coreconf/coreconf.dep
@@ -10,3 +10,4 @@
*/
#error "Do not include this header file."
+
diff --git a/security/nss/coreconf/nsinstall/pathsub.c b/security/nss/coreconf/nsinstall/pathsub.c
index a42a9f30a..c31a946f0 100644
--- a/security/nss/coreconf/nsinstall/pathsub.c
+++ b/security/nss/coreconf/nsinstall/pathsub.c
@@ -212,7 +212,7 @@ reversepath(char *inpath, char *name, int len, char *outpath)
xchdir("..");
} else {
cp -= 3;
- strncpy(cp, "../", 3);
+ memcpy(cp, "../", 3);
xchdir(buf);
}
}
diff --git a/security/nss/coreconf/werror.py b/security/nss/coreconf/werror.py
index c469c4002..0e2d41c63 100644
--- a/security/nss/coreconf/werror.py
+++ b/security/nss/coreconf/werror.py
@@ -54,7 +54,7 @@ def main():
set_warning(w, 'no-')
print('-Qunused-arguments')
- # set_warning('shadow') # Bug 1309068
+ set_warning('shadow')
if __name__ == '__main__':
main()
diff --git a/security/nss/cpputil/databuffer.cc b/security/nss/cpputil/databuffer.cc
index d60ebccb3..1420d76b4 100644
--- a/security/nss/cpputil/databuffer.cc
+++ b/security/nss/cpputil/databuffer.cc
@@ -18,12 +18,12 @@
namespace nss_test {
-void DataBuffer::Assign(const uint8_t* data, size_t len) {
- if (data) {
- Allocate(len);
- memcpy(static_cast<void*>(data_), static_cast<const void*>(data), len);
+void DataBuffer::Assign(const uint8_t* d, size_t l) {
+ if (d) {
+ Allocate(l);
+ memcpy(static_cast<void*>(data_), static_cast<const void*>(d), l);
} else {
- assert(len == 0);
+ assert(l == 0);
data_ = nullptr;
len_ = 0;
}
diff --git a/security/nss/cpputil/databuffer.h b/security/nss/cpputil/databuffer.h
index 58e07efe1..5ec035098 100644
--- a/security/nss/cpputil/databuffer.h
+++ b/security/nss/cpputil/databuffer.h
@@ -17,8 +17,8 @@ namespace nss_test {
class DataBuffer {
public:
DataBuffer() : data_(nullptr), len_(0) {}
- DataBuffer(const uint8_t* data, size_t len) : data_(nullptr), len_(0) {
- Assign(data, len);
+ DataBuffer(const uint8_t* d, size_t l) : data_(nullptr), len_(0) {
+ Assign(d, l);
}
DataBuffer(const DataBuffer& other) : data_(nullptr), len_(0) {
Assign(other);
@@ -32,17 +32,17 @@ class DataBuffer {
return *this;
}
- void Allocate(size_t len) {
+ void Allocate(size_t l) {
delete[] data_;
- data_ = new uint8_t[len ? len : 1]; // Don't depend on new [0].
- len_ = len;
+ data_ = new uint8_t[l ? l : 1]; // Don't depend on new [0].
+ len_ = l;
}
- void Truncate(size_t len) { len_ = (std::min)(len_, len); }
+ void Truncate(size_t l) { len_ = (std::min)(len_, l); }
void Assign(const DataBuffer& other) { Assign(other.data(), other.len()); }
- void Assign(const uint8_t* data, size_t len);
+ void Assign(const uint8_t* d, size_t l);
// Write will do a new allocation and expand the size of the buffer if needed.
// Returns the offset of the end of the write.
diff --git a/security/nss/cpputil/scoped_ptrs.h b/security/nss/cpputil/scoped_ptrs.h
index 8a0b4f5ab..6ffef4dd3 100644
--- a/security/nss/cpputil/scoped_ptrs.h
+++ b/security/nss/cpputil/scoped_ptrs.h
@@ -45,6 +45,7 @@ struct ScopedDelete {
void operator()(SEC_PKCS12DecoderContext* dcx) {
SEC_PKCS12DecoderFinish(dcx);
}
+ void operator()(CERTDistNames* names) { CERT_FreeDistNames(names); }
};
template <class T>
@@ -78,6 +79,7 @@ SCOPED(PK11Context);
SCOPED(PK11GenericObject);
SCOPED(SSLResumptionTokenInfo);
SCOPED(SEC_PKCS12DecoderContext);
+SCOPED(CERTDistNames);
#undef SCOPED
diff --git a/security/nss/cpputil/tls_parser.cc b/security/nss/cpputil/tls_parser.cc
index e4c06aa91..efedd7a65 100644
--- a/security/nss/cpputil/tls_parser.cc
+++ b/security/nss/cpputil/tls_parser.cc
@@ -46,6 +46,21 @@ bool TlsParser::Read(DataBuffer* val, size_t len) {
return true;
}
+bool TlsParser::ReadFromMark(DataBuffer* val, size_t len, size_t mark) {
+ auto saved = offset_;
+ offset_ = mark;
+
+ if (remaining() < len) {
+ offset_ = saved;
+ return false;
+ }
+
+ val->Assign(ptr(), len);
+
+ offset_ = saved;
+ return true;
+}
+
bool TlsParser::ReadVariable(DataBuffer* val, size_t len_size) {
uint32_t len;
if (!Read(&len, len_size)) {
diff --git a/security/nss/cpputil/tls_parser.h b/security/nss/cpputil/tls_parser.h
index 436c11e76..56f562e07 100644
--- a/security/nss/cpputil/tls_parser.h
+++ b/security/nss/cpputil/tls_parser.h
@@ -123,6 +123,7 @@ class TlsParser {
bool Read(uint32_t* val, size_t size);
// Reads len bytes into dest buffer, overwriting it.
bool Read(DataBuffer* dest, size_t len);
+ bool ReadFromMark(DataBuffer* val, size_t len, size_t mark);
// Reads bytes into dest buffer, overwriting it. The number of bytes is
// determined by reading from len_size bytes from the stream first.
bool ReadVariable(DataBuffer* dest, size_t len_size);
diff --git a/security/nss/fuzz/fuzz.gyp b/security/nss/fuzz/fuzz.gyp
index ed1f53d58..69e178319 100644
--- a/security/nss/fuzz/fuzz.gyp
+++ b/security/nss/fuzz/fuzz.gyp
@@ -44,6 +44,9 @@
# This is a static build of pk11wrap, softoken, and freebl.
'<(DEPTH)/lib/pk11wrap/pk11wrap.gyp:pk11wrap_static',
],
+ 'cflags_cc': [
+ '-Wno-error=shadow',
+ ],
'conditions': [
['fuzz_oss==0', {
'sources': [
diff --git a/security/nss/fuzz/tls_client_target.cc b/security/nss/fuzz/tls_client_target.cc
index e59550984..a5b2a2c5f 100644
--- a/security/nss/fuzz/tls_client_target.cc
+++ b/security/nss/fuzz/tls_client_target.cc
@@ -87,15 +87,12 @@ static void SetupCallbacks(PRFileDesc* fd, ClientConfig* config) {
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t len) {
- static std::unique_ptr<NSSDatabase> db(new NSSDatabase());
+ std::unique_ptr<NSSDatabase> db(new NSSDatabase());
assert(db != nullptr);
EnableAllProtocolVersions();
std::unique_ptr<ClientConfig> config(new ClientConfig(data, len));
- // Clear the cache. We never want to resume as we couldn't reproduce that.
- SSL_ClearSessionCache();
-
// Reset the RNG state.
assert(RNG_RandomUpdate(NULL, 0) == SECSuccess);
@@ -114,6 +111,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t len) {
SetupCallbacks(ssl_fd, config.get());
DoHandshake(ssl_fd, false);
+ // Release all SIDs.
+ SSL_ClearSessionCache();
+
return 0;
}
diff --git a/security/nss/gtests/freebl_gtest/blake2b_unittest.cc b/security/nss/gtests/freebl_gtest/blake2b_unittest.cc
index e6b0c1157..ac9cca83f 100644
--- a/security/nss/gtests/freebl_gtest/blake2b_unittest.cc
+++ b/security/nss/gtests/freebl_gtest/blake2b_unittest.cc
@@ -50,7 +50,7 @@ TEST_P(Blake2BKATUnkeyed, Unkeyed) {
TEST_P(Blake2BKATKeyed, Keyed) {
std::vector<uint8_t> values(BLAKE2B512_LENGTH);
SECStatus rv = BLAKE2B_MAC_HashBuf(values.data(), kat_data.data(),
- std::get<0>(GetParam()), key.data(),
+ std::get<0>(GetParam()), kat_key.data(),
BLAKE2B_KEY_SIZE);
ASSERT_EQ(SECSuccess, rv);
EXPECT_EQ(values, std::get<1>(GetParam()));
@@ -139,7 +139,7 @@ TEST_F(Blake2BTests, NullTest) {
EXPECT_EQ(std::get<1>(TestcasesUnkeyed[0]), digest);
digest = std::vector<uint8_t>(BLAKE2B512_LENGTH);
- rv = BLAKE2B_MAC_HashBuf(digest.data(), nullptr, 0, key.data(),
+ rv = BLAKE2B_MAC_HashBuf(digest.data(), nullptr, 0, kat_key.data(),
BLAKE2B_KEY_SIZE);
ASSERT_EQ(SECSuccess, rv);
EXPECT_EQ(std::get<1>(TestcasesKeyed[0]), digest);
diff --git a/security/nss/gtests/freebl_gtest/kat/blake2b_kat.h b/security/nss/gtests/freebl_gtest/kat/blake2b_kat.h
index 28921cc94..2d73a4ab5 100644
--- a/security/nss/gtests/freebl_gtest/kat/blake2b_kat.h
+++ b/security/nss/gtests/freebl_gtest/kat/blake2b_kat.h
@@ -7,7 +7,7 @@
#include <vector>
#include <stdint.h>
-const std::vector<uint8_t> key = {
+const std::vector<uint8_t> kat_key = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
diff --git a/security/nss/gtests/nss_bogo_shim/config.cc b/security/nss/gtests/nss_bogo_shim/config.cc
index 2e6f7f775..603bb6029 100644
--- a/security/nss/gtests/nss_bogo_shim/config.cc
+++ b/security/nss/gtests/nss_bogo_shim/config.cc
@@ -9,26 +9,37 @@
#include <queue>
#include <string>
-bool ConfigEntryBase::ParseInternal(std::queue<const char *> *args,
- std::string *out) {
- if (args->empty()) return false;
- *out = args->front();
- args->pop();
+bool ConfigEntryBase::ParseInternal(std::queue<const char *> &args,
+ std::vector<int> &out) {
+ if (args.empty()) return false;
+
+ char *endptr;
+ out.push_back(strtol(args.front(), &endptr, 10));
+ args.pop();
+
+ return !*endptr;
+}
+
+bool ConfigEntryBase::ParseInternal(std::queue<const char *> &args,
+ std::string &out) {
+ if (args.empty()) return false;
+ out = args.front();
+ args.pop();
return true;
}
-bool ConfigEntryBase::ParseInternal(std::queue<const char *> *args, int *out) {
- if (args->empty()) return false;
+bool ConfigEntryBase::ParseInternal(std::queue<const char *> &args, int &out) {
+ if (args.empty()) return false;
char *endptr;
- *out = strtol(args->front(), &endptr, 10);
- args->pop();
+ out = strtol(args.front(), &endptr, 10);
+ args.pop();
return !*endptr;
}
-bool ConfigEntryBase::ParseInternal(std::queue<const char *> *args, bool *out) {
- *out = true;
+bool ConfigEntryBase::ParseInternal(std::queue<const char *> &args, bool &out) {
+ out = true;
return true;
}
@@ -51,7 +62,7 @@ Config::Status Config::ParseArgs(int argc, char **argv) {
if (e == entries_.end()) {
return kUnknownFlag;
}
- if (!e->second->Parse(&args)) return kMalformedArgument;
+ if (!e->second->Parse(args)) return kMalformedArgument;
}
return kOK;
diff --git a/security/nss/gtests/nss_bogo_shim/config.h b/security/nss/gtests/nss_bogo_shim/config.h
index 822df65b3..0e7fb5ed5 100644
--- a/security/nss/gtests/nss_bogo_shim/config.h
+++ b/security/nss/gtests/nss_bogo_shim/config.h
@@ -23,18 +23,19 @@
// Abstract base class for a given config flag.
class ConfigEntryBase {
public:
- ConfigEntryBase(const std::string& name, const std::string& type)
- : name_(name), type_(type) {}
+ ConfigEntryBase(const std::string& nm, const std::string& typ)
+ : name_(nm), type_(typ) {}
virtual ~ConfigEntryBase() {}
const std::string& type() const { return type_; }
- virtual bool Parse(std::queue<const char*>* args) = 0;
+ virtual bool Parse(std::queue<const char*>& args) = 0;
protected:
- bool ParseInternal(std::queue<const char*>* args, std::string* out);
- bool ParseInternal(std::queue<const char*>* args, int* out);
- bool ParseInternal(std::queue<const char*>* args, bool* out);
+ bool ParseInternal(std::queue<const char*>& args, std::vector<int>& out);
+ bool ParseInternal(std::queue<const char*>& args, std::string& out);
+ bool ParseInternal(std::queue<const char*>& args, int& out);
+ bool ParseInternal(std::queue<const char*>& args, bool& out);
const std::string name_;
const std::string type_;
@@ -48,8 +49,8 @@ class ConfigEntry : public ConfigEntryBase {
: ConfigEntryBase(name, typeid(T).name()), value_(init) {}
T get() const { return value_; }
- bool Parse(std::queue<const char*>* args) {
- return ParseInternal(args, &value_);
+ bool Parse(std::queue<const char*>& args) {
+ return ParseInternal(args, value_);
}
private:
diff --git a/security/nss/gtests/nss_bogo_shim/config.json b/security/nss/gtests/nss_bogo_shim/config.json
index 03f875466..6dc155bef 100644
--- a/security/nss/gtests/nss_bogo_shim/config.json
+++ b/security/nss/gtests/nss_bogo_shim/config.json
@@ -1,69 +1,16 @@
{
"DisabledTests": {
"### These tests break whenever we rev versions, so just leave them here for easy uncommenting":"",
- "SendWarningAlerts-Pass":"BoringSSL updated",
- "SendBogusAlertType":"BoringSSL updated",
- "SendEmptyRecords-Pass":"BoringSSL updated",
- "ExtraCompressionMethods-TLS12":"BoringSSL updated",
- "SendSNIWarningAlert":"BoringSSL updated",
- "NoNullCompression-TLS12":"BoringSSL updated",
- "InvalidCompressionMethod":"BoringSSL updated",
- "SupportTicketsWithSessionID":"BoringSSL updated",
- "NoSharedCipher":"BoringSSL updated",
- "ServerHelloBogusCipher":"BoringSSL updated",
- "ClientHelloVersionTooHigh":"BoringSSL updated",
- "ServerAuth-SignatureType":"BoringSSL updated",
- "ECDSACurveMismatch-Verify-TLS12":"BoringSSL updated",
- "UnknownExtension-Client":"BoringSSL updated",
- "UnofferedExtension-Client":"BoringSSL updated",
- "SendClientVersion-RSA":"BoringSSL updated",
- "SupportedCurves-ServerHello-TLS12":"BoringSSL updated",
- "Basic-Client*Sync":"BoringSSL updated",
- "Resume-Client-CipherMismatch":"BoringSSL updated",
- "ClientAuth-SignatureType":"BoringSSL updated",
- "Agree-Digest-Default":"BoringSSL updated",
- "Basic-Server*Sync":"BoringSSL updated",
- "ClientAuth-*-Sync":"BoringSSL updated",
- "RSA-PSS-Default*":"BoringSSL updated",
- "Renegotiate-Server-NoExt*":"BoringSSL updated",
- "Downgrade-TLS12*":"BoringSSL updated",
- "MaxCBCPadding":"BoringSSL updated",
- "UnknownCipher":"BoringSSL updated",
- "LargeMessage":"BoringSSL updated",
- "NoCommonCurves":"BoringSSL updated",
- "UnknownCurve":"BoringSSL updated",
- "SessionTicketsDisabled*":"BoringSSL updated",
- "BadFinished-*":"BoringSSL updated",
- "ServerSkipCertificateVerify":"BoringSSL updated",
- "*VersionTolerance":"BoringSSL updated",
- "ConflictingVersionNegotiation*":"BoringSSL updated",
- "Ed25519DefaultDisable*":"BoringSSL updated",
- "*SHA1-Fallback*":"BoringSSL updated",
- "ExtendedMasterSecret-NoToNo*":"BoringSSL updated",
- "ServerNameExtensionClientMissing*":"BoringSSL updated",
- "NoClientCertificate*":"BoringSSL updated",
- "ServerCipherFilter*":"BoringSSL updated",
- "*FallbackSCSV*":"BoringSSL updated",
- "LooseInitialRecordVersion*":"BoringSSL updated",
- "ALPNClient*":"BoringSSL updated",
- "MinimumVersion*":"BoringSSL updated",
- "VersionNegotiation*":"BoringSSL updated",
- "*Client-ClientAuth*":"BoringSSL updated",
- "*Server-ClientAuth*":"BoringSSL updated",
- "NoExtendedMasterSecret*":"BoringSSL updated",
- "PointFormat*":"BoringSSL updated",
- "*Sync-SplitHandshakeRecords*":"BoringSSL updated",
- "*Sync-PackHandshakeFlight*":"BoringSSL updated",
- "TicketSessionIDLength*":"BoringSSL updated",
- "*LargeRecord*":"BoringSSL updated",
- "WrongMessageType-NewSessionTicket":"BoringSSL updated",
- "WrongMessageType*Certificate*":"BoringSSL updated",
- "WrongMessageType*Client*":"BoringSSL updated",
- "WrongMessageType*Server*":"BoringSSL updated",
- "WrongMessageType*DTLS":"BoringSSL updated",
- "GarbageCertificate*":"BoringSSL updated",
- "EmptyExtensions*":"BoringSSL updated",
- "*OmitExtensions*":"BoringSSL updated",
+ "ServerBogusVersion":"Check that SH.legacy_version=TLS12 when the server picks TLS 1.3 (Bug 1443761)",
+ "DummyPQPadding-Server*":"Boring is testing a dummy PQ padding extension",
+ "VerifyPreferences-Enforced":"NSS sends alerts in response to errors in protected handshake messages in the clear",
+ "Draft-Downgrade-Server":"Boring implements a draft downgrade sentinel used for measurements.",
+ "FilterExtraAlgorithms":"NSS doesn't allow sending unsupported signature algorithms",
+ "SendBogusAlertType":"Unexpected TLS alerts should abort connections (Bug 1438263)",
+ "VerifyPreferences-Ed25519":"Add Ed25519 support (Bug 1325335)",
+ "Ed25519DefaultDisable*":"Add Ed25519 support (Bug 1325335)",
+ "ServerCipherFilter*":"Add Ed25519 support (Bug 1325335)",
+ "GarbageCertificate*":"Send bad_certificate alert when certificate parsing fails (Bug 1441565)",
"SupportedVersionSelection-TLS12":"Should maybe reject TLS 1.2 in SH.supported_versions (Bug 1438266)",
"*TLS13*":"(NSS=19, BoGo=18)",
"*HelloRetryRequest*":"(NSS=19, BoGo=18)",
@@ -108,7 +55,6 @@
"WrongMessageType-TLS13-ServerCertificateVerify":"nss updated/broken",
"WrongMessageType-TLS13-ServerCertificate":"nss updated/broken",
"WrongMessageType-TLS13-ServerFinished":"nss updated/broken",
- "EncryptedExtensionsWithKeyShare":"nss updated/broken",
"EmptyEncryptedExtensions":"nss updated/broken",
"TrailingMessageData-*": "Bug 1304575",
"DuplicateKeyShares":"Bug 1304578",
diff --git a/security/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc b/security/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
index e12714e8d..72dbd5771 100644
--- a/security/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
+++ b/security/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
@@ -5,6 +5,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "config.h"
+#include <algorithm>
#include <cstdlib>
#include <iostream>
#include <memory>
@@ -90,9 +91,14 @@ class TestAgent {
PRStatus prv;
PRNetAddr addr;
- prv = PR_StringToNetAddr("127.0.0.1", &addr);
+ // Try IPv6 first.
+ prv = PR_StringToNetAddr("::1", &addr);
if (prv != PR_SUCCESS) {
- return false;
+ // If that fails, try IPv4.
+ prv = PR_StringToNetAddr("127.0.0.1", &addr);
+ if (prv != PR_SUCCESS) {
+ return false;
+ }
}
addr.inet.port = PR_htons(cfg_.get<int>("port"));
@@ -256,7 +262,11 @@ class TestAgent {
}
bool SetupOptions() {
- SECStatus rv = SSL_OptionSet(ssl_fd_, SSL_ENABLE_SESSION_TICKETS, PR_TRUE);
+ SECStatus rv =
+ SSL_OptionSet(ssl_fd_, SSL_ENABLE_TLS13_COMPAT_MODE, PR_TRUE);
+ if (rv != SECSuccess) return false;
+
+ rv = SSL_OptionSet(ssl_fd_, SSL_ENABLE_SESSION_TICKETS, PR_TRUE);
if (rv != SECSuccess) return false;
SSLVersionRange vrange;
@@ -287,6 +297,26 @@ class TestAgent {
if (rv != SECSuccess) return false;
}
+ // Set supported signature schemes.
+ auto sign_prefs = cfg_.get<std::vector<int>>("signing-prefs");
+ auto verify_prefs = cfg_.get<std::vector<int>>("verify-prefs");
+ if (sign_prefs.empty()) {
+ sign_prefs = verify_prefs;
+ } else if (!verify_prefs.empty()) {
+ return false; // Both shouldn't be set.
+ }
+ if (!sign_prefs.empty()) {
+ std::vector<SSLSignatureScheme> sig_schemes;
+ std::transform(
+ sign_prefs.begin(), sign_prefs.end(), std::back_inserter(sig_schemes),
+ [](int scheme) { return static_cast<SSLSignatureScheme>(scheme); });
+
+ rv = SSL_SignatureSchemePrefSet(
+ ssl_fd_, sig_schemes.data(),
+ static_cast<unsigned int>(sig_schemes.size()));
+ if (rv != SECSuccess) return false;
+ }
+
if (cfg_.get<bool>("fallback-scsv")) {
rv = SSL_OptionSet(ssl_fd_, SSL_ENABLE_FALLBACK_SCSV, PR_TRUE);
if (rv != SECSuccess) return false;
@@ -410,7 +440,7 @@ class TestAgent {
size_t left = sizeof(block);
while (left) {
- int32_t rv = PR_Read(ssl_fd_, block, left);
+ rv = PR_Read(ssl_fd_, block, left);
if (rv < 0) {
std::cerr << "Failure reading\n";
return SECFailure;
@@ -481,6 +511,24 @@ class TestAgent {
}
}
+ auto sig_alg = cfg_.get<int>("expect-peer-signature-algorithm");
+ if (sig_alg) {
+ SSLChannelInfo info;
+ rv = SSL_GetChannelInfo(ssl_fd_, &info, sizeof(info));
+ if (rv != SECSuccess) {
+ PRErrorCode err = PR_GetError();
+ std::cerr << "SSL_GetChannelInfo failed with error=" << FormatError(err)
+ << std::endl;
+ return SECFailure;
+ }
+
+ auto expected = static_cast<SSLSignatureScheme>(sig_alg);
+ if (info.signatureScheme != expected) {
+ std::cerr << "Unexpected signature scheme" << std::endl;
+ return SECFailure;
+ }
+ }
+
return SECSuccess;
}
@@ -513,6 +561,9 @@ std::unique_ptr<const Config> ReadConfig(int argc, char** argv) {
cfg->AddEntry<bool>("verify-peer", false);
cfg->AddEntry<std::string>("advertise-alpn", "");
cfg->AddEntry<std::string>("expect-alpn", "");
+ cfg->AddEntry<std::vector<int>>("signing-prefs", std::vector<int>());
+ cfg->AddEntry<std::vector<int>>("verify-prefs", std::vector<int>());
+ cfg->AddEntry<int>("expect-peer-signature-algorithm", 0);
auto rv = cfg->ParseArgs(argc, argv);
switch (rv) {
diff --git a/security/nss/gtests/pk11_gtest/pk11_signature_test.h b/security/nss/gtests/pk11_gtest/pk11_signature_test.h
index b14104371..8a12171a0 100644
--- a/security/nss/gtests/pk11_gtest/pk11_signature_test.h
+++ b/security/nss/gtests/pk11_gtest/pk11_signature_test.h
@@ -25,8 +25,8 @@ struct Pkcs11SignatureTestParams {
class Pk11SignatureTest : public ::testing::Test {
protected:
- Pk11SignatureTest(CK_MECHANISM_TYPE mechanism, SECOidTag hash_oid)
- : mechanism_(mechanism), hash_oid_(hash_oid) {}
+ Pk11SignatureTest(CK_MECHANISM_TYPE mech, SECOidTag hash_oid)
+ : mechanism_(mech), hash_oid_(hash_oid) {}
virtual const SECItem* parameters() const { return nullptr; }
CK_MECHANISM_TYPE mechanism() const { return mechanism_; }
diff --git a/security/nss/gtests/ssl_gtest/libssl_internals.c b/security/nss/gtests/ssl_gtest/libssl_internals.c
index 17b4ffe49..e43113de4 100644
--- a/security/nss/gtests/ssl_gtest/libssl_internals.c
+++ b/security/nss/gtests/ssl_gtest/libssl_internals.c
@@ -237,22 +237,23 @@ SECStatus SSLInt_AdvanceReadSeqNum(PRFileDesc *fd, PRUint64 to) {
if (!ss) {
return SECFailure;
}
- if (to >= RECORD_SEQ_MAX) {
+ if (to > RECORD_SEQ_MAX) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
ssl_GetSpecWriteLock(ss);
spec = ss->ssl3.crSpec;
- spec->seqNum = to;
+ spec->nextSeqNum = to;
/* For DTLS, we need to fix the record sequence number. For this, we can just
* scrub the entire structure on the assumption that the new sequence number
* is far enough past the last received sequence number. */
- if (spec->seqNum <= spec->recvdRecords.right + DTLS_RECVD_RECORDS_WINDOW) {
+ if (spec->nextSeqNum <=
+ spec->recvdRecords.right + DTLS_RECVD_RECORDS_WINDOW) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
- dtls_RecordSetRecvd(&spec->recvdRecords, spec->seqNum);
+ dtls_RecordSetRecvd(&spec->recvdRecords, spec->nextSeqNum - 1);
ssl_ReleaseSpecWriteLock(ss);
return SECSuccess;
@@ -270,7 +271,7 @@ SECStatus SSLInt_AdvanceWriteSeqNum(PRFileDesc *fd, PRUint64 to) {
return SECFailure;
}
ssl_GetSpecWriteLock(ss);
- ss->ssl3.cwSpec->seqNum = to;
+ ss->ssl3.cwSpec->nextSeqNum = to;
ssl_ReleaseSpecWriteLock(ss);
return SECSuccess;
}
@@ -284,7 +285,7 @@ SECStatus SSLInt_AdvanceWriteSeqByAWindow(PRFileDesc *fd, PRInt32 extra) {
return SECFailure;
}
ssl_GetSpecReadLock(ss);
- to = ss->ssl3.cwSpec->seqNum + DTLS_RECVD_RECORDS_WINDOW + extra;
+ to = ss->ssl3.cwSpec->nextSeqNum + DTLS_RECVD_RECORDS_WINDOW + extra;
ssl_ReleaseSpecReadLock(ss);
return SSLInt_AdvanceWriteSeqNum(fd, to);
}
diff --git a/security/nss/gtests/ssl_gtest/manifest.mn b/security/nss/gtests/ssl_gtest/manifest.mn
index 5d893bab3..8547e56d1 100644
--- a/security/nss/gtests/ssl_gtest/manifest.mn
+++ b/security/nss/gtests/ssl_gtest/manifest.mn
@@ -36,6 +36,7 @@ CPPSRCS = \
ssl_loopback_unittest.cc \
ssl_misc_unittest.cc \
ssl_record_unittest.cc \
+ ssl_recordsize_unittest.cc \
ssl_resumption_unittest.cc \
ssl_renegotiation_unittest.cc \
ssl_skip_unittest.cc \
diff --git a/security/nss/gtests/ssl_gtest/rsa8193.h b/security/nss/gtests/ssl_gtest/rsa8193.h
new file mode 100644
index 000000000..626516389
--- /dev/null
+++ b/security/nss/gtests/ssl_gtest/rsa8193.h
@@ -0,0 +1,209 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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/. */
+
+// openssl req -nodes -x509 -newkey rsa:8193 -out cert.pem -days 365
+static const uint8_t rsa8193[] = {
+ 0x30, 0x82, 0x09, 0x61, 0x30, 0x82, 0x05, 0x48, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x09, 0x00, 0xaf, 0xff, 0x37, 0x91, 0x3e, 0x44, 0xae, 0x57,
+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
+ 0x0b, 0x05, 0x00, 0x30, 0x45, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
+ 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
+ 0x55, 0x04, 0x08, 0x0c, 0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74,
+ 0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a,
+ 0x0c, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
+ 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c,
+ 0x74, 0x64, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x35, 0x31, 0x37,
+ 0x30, 0x39, 0x34, 0x32, 0x32, 0x39, 0x5a, 0x17, 0x0d, 0x31, 0x39, 0x30,
+ 0x35, 0x31, 0x37, 0x30, 0x39, 0x34, 0x32, 0x32, 0x39, 0x5a, 0x30, 0x45,
+ 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41,
+ 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a,
+ 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21,
+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x18, 0x49, 0x6e, 0x74,
+ 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74,
+ 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x30, 0x82, 0x04,
+ 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
+ 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x04, 0x0f, 0x00, 0x30, 0x82, 0x04,
+ 0x0a, 0x02, 0x82, 0x04, 0x01, 0x01, 0x77, 0xd6, 0xa9, 0x93, 0x4e, 0x15,
+ 0xb5, 0x67, 0x70, 0x8e, 0xc3, 0x77, 0x4f, 0xc9, 0x8a, 0x06, 0xd9, 0xb9,
+ 0xa6, 0x41, 0xb8, 0xfa, 0x4a, 0x13, 0x26, 0xdc, 0x2b, 0xc5, 0x82, 0xa0,
+ 0x74, 0x8c, 0x1e, 0xe9, 0xc0, 0x70, 0x15, 0x56, 0xec, 0x1f, 0x7e, 0x91,
+ 0x6e, 0x31, 0x42, 0x8b, 0xd5, 0xe2, 0x0e, 0x9c, 0xeb, 0xff, 0xbc, 0xf9,
+ 0x42, 0xd3, 0xb9, 0x1c, 0x5e, 0x46, 0x80, 0x90, 0x5f, 0xe1, 0x59, 0x22,
+ 0x13, 0x71, 0xd3, 0xd6, 0x66, 0x7a, 0xe0, 0x56, 0x04, 0x10, 0x59, 0x01,
+ 0xb3, 0xb6, 0xd2, 0xc7, 0xa7, 0x3b, 0xbc, 0xe6, 0x38, 0x44, 0xd5, 0x71,
+ 0x66, 0x1d, 0xb2, 0x63, 0x2f, 0xa9, 0x5e, 0x80, 0x92, 0x3c, 0x21, 0x0e,
+ 0xe1, 0xda, 0xd6, 0x1d, 0xcb, 0xce, 0xac, 0xe1, 0x5f, 0x97, 0x45, 0x8f,
+ 0xc1, 0x64, 0x16, 0xa6, 0x88, 0x2a, 0x36, 0x4a, 0x76, 0x64, 0x8f, 0x83,
+ 0x7a, 0x1d, 0xd8, 0x91, 0x90, 0x7b, 0x58, 0xb8, 0x1c, 0x7f, 0x56, 0x57,
+ 0x35, 0xfb, 0xf3, 0x1a, 0xcb, 0x7c, 0x66, 0x66, 0x04, 0x95, 0xee, 0x3a,
+ 0x80, 0xf0, 0xd4, 0x12, 0x3a, 0x7e, 0x7e, 0x5e, 0xb8, 0x55, 0x29, 0x23,
+ 0x06, 0xd3, 0x85, 0x0c, 0x99, 0x91, 0x42, 0xee, 0x5a, 0x30, 0x7f, 0x52,
+ 0x20, 0xb3, 0xe2, 0xe7, 0x39, 0x69, 0xb6, 0xfc, 0x42, 0x1e, 0x98, 0xd3,
+ 0x31, 0xa2, 0xfa, 0x81, 0x52, 0x69, 0x6d, 0x23, 0xf8, 0xc4, 0xc3, 0x3c,
+ 0x9b, 0x48, 0x75, 0xa8, 0xc7, 0xe7, 0x61, 0x81, 0x1f, 0xf7, 0xce, 0x10,
+ 0xaa, 0x13, 0xcb, 0x6e, 0x19, 0xc0, 0x4f, 0x6f, 0x90, 0xa8, 0x41, 0xea,
+ 0x49, 0xdf, 0xe4, 0xef, 0x84, 0x54, 0xb5, 0x37, 0xaf, 0x12, 0x75, 0x1a,
+ 0x11, 0x4b, 0x58, 0x7f, 0x63, 0x22, 0x33, 0xb1, 0xc8, 0x4d, 0xf2, 0x41,
+ 0x10, 0xbc, 0x37, 0xb5, 0xd5, 0xb2, 0x21, 0x32, 0x35, 0x9d, 0xf3, 0x8d,
+ 0xab, 0x66, 0x9d, 0x19, 0x12, 0x71, 0x45, 0xb3, 0x82, 0x5a, 0x5c, 0xff,
+ 0x2d, 0xcf, 0xf4, 0x5b, 0x56, 0xb8, 0x08, 0xb3, 0xd2, 0x43, 0x8c, 0xac,
+ 0xd2, 0xf8, 0xcc, 0x6d, 0x90, 0x97, 0xff, 0x12, 0x74, 0x97, 0xf8, 0xa4,
+ 0xe3, 0x95, 0xae, 0x92, 0xdc, 0x7e, 0x9d, 0x2b, 0xb4, 0x94, 0xc3, 0x8d,
+ 0x80, 0xe7, 0x77, 0x5c, 0x5b, 0xbb, 0x43, 0xdc, 0xa6, 0xe9, 0xbe, 0x20,
+ 0xcc, 0x9d, 0x8e, 0xa4, 0x2b, 0xf2, 0x72, 0xdc, 0x44, 0x61, 0x0f, 0xad,
+ 0x1a, 0x5e, 0xa5, 0x48, 0xe4, 0x42, 0xc5, 0xe4, 0xf1, 0x6d, 0x33, 0xdb,
+ 0xb2, 0x1b, 0x9f, 0xb2, 0xff, 0x18, 0x0e, 0x62, 0x35, 0x99, 0xed, 0x22,
+ 0x19, 0x4a, 0x5e, 0xb3, 0x3c, 0x07, 0x8f, 0x6e, 0x22, 0x5b, 0x16, 0x4a,
+ 0x9f, 0xef, 0xf3, 0xe7, 0xd6, 0x48, 0xe1, 0xb4, 0x3b, 0xab, 0x1b, 0x9e,
+ 0x53, 0xd7, 0x1b, 0xd9, 0x2d, 0x51, 0x8f, 0xe4, 0x1c, 0xab, 0xdd, 0xb9,
+ 0xe2, 0xee, 0xe4, 0xdd, 0x60, 0x04, 0x86, 0x6b, 0x4e, 0x7a, 0xc8, 0x09,
+ 0x51, 0xd1, 0x9b, 0x36, 0x9a, 0x36, 0x7f, 0xe8, 0x6b, 0x09, 0x6c, 0xee,
+ 0xad, 0x3a, 0x2f, 0xa8, 0x63, 0x92, 0x23, 0x2f, 0x7e, 0x00, 0xe2, 0xd1,
+ 0xbb, 0xd9, 0x5b, 0x5b, 0xfa, 0x4b, 0x83, 0x00, 0x19, 0x28, 0xfb, 0x7e,
+ 0xfe, 0x58, 0xab, 0xb7, 0x33, 0x45, 0x8f, 0x75, 0x9a, 0x54, 0x3d, 0x77,
+ 0x06, 0x75, 0x61, 0x4f, 0x5c, 0x93, 0xa0, 0xf9, 0xe8, 0xcf, 0xf6, 0x04,
+ 0x14, 0xda, 0x1b, 0x2e, 0x79, 0x35, 0xb8, 0xb4, 0xfa, 0x08, 0x27, 0x9a,
+ 0x03, 0x70, 0x78, 0x97, 0x8f, 0xae, 0x2e, 0xd5, 0x1c, 0xe0, 0x4d, 0x91,
+ 0x3a, 0xfe, 0x1a, 0x64, 0xd8, 0x49, 0xdf, 0x6c, 0x66, 0xac, 0xc9, 0x57,
+ 0x06, 0x72, 0xc0, 0xc0, 0x09, 0x71, 0x6a, 0xd0, 0xb0, 0x7d, 0x35, 0x3f,
+ 0x53, 0x17, 0x49, 0x38, 0x92, 0x22, 0x55, 0xf6, 0x58, 0x56, 0xa2, 0x42,
+ 0x77, 0x94, 0xb7, 0x28, 0x0a, 0xa0, 0xd2, 0xda, 0x25, 0xc1, 0xcc, 0x52,
+ 0x51, 0xd6, 0xba, 0x18, 0x0f, 0x0d, 0xe3, 0x7d, 0xd1, 0xda, 0xd9, 0x0c,
+ 0x5e, 0x3a, 0xca, 0xe9, 0xf1, 0xf5, 0x65, 0xfc, 0xc3, 0x99, 0x72, 0x25,
+ 0xf2, 0xc0, 0xa1, 0x8c, 0x43, 0x9d, 0xb2, 0xc9, 0xb1, 0x1a, 0x24, 0x34,
+ 0x57, 0xd8, 0xa7, 0x52, 0xa3, 0x39, 0x6e, 0x0b, 0xec, 0xbd, 0x5e, 0xc9,
+ 0x1f, 0x74, 0xed, 0xae, 0xe6, 0x4e, 0x49, 0xe8, 0x87, 0x3e, 0x46, 0x0d,
+ 0x40, 0x30, 0xda, 0x9d, 0xcf, 0xf5, 0x03, 0x1f, 0x38, 0x29, 0x3b, 0x66,
+ 0xe5, 0xc0, 0x89, 0x4c, 0xfc, 0x09, 0x62, 0x37, 0x01, 0xf9, 0x01, 0xab,
+ 0x8d, 0x53, 0x9c, 0x36, 0x5d, 0x36, 0x66, 0x8d, 0x87, 0xf4, 0xab, 0x37,
+ 0xb7, 0xf7, 0xe3, 0xdf, 0xc1, 0x52, 0xc0, 0x1d, 0x09, 0x92, 0x21, 0x47,
+ 0x49, 0x9a, 0x19, 0x38, 0x05, 0x62, 0xf3, 0x47, 0x80, 0x89, 0x1e, 0x70,
+ 0xa1, 0x57, 0xb7, 0x72, 0xd0, 0x41, 0x7a, 0x5c, 0x6a, 0x13, 0x8b, 0x6c,
+ 0xda, 0xdf, 0x6b, 0x01, 0x15, 0x20, 0xfa, 0xc8, 0x67, 0xee, 0xb2, 0x13,
+ 0xd8, 0x5f, 0x84, 0x30, 0x44, 0x8e, 0xf9, 0x2a, 0xae, 0x17, 0x53, 0x49,
+ 0xaa, 0x34, 0x31, 0x12, 0x31, 0xec, 0xf3, 0x25, 0x27, 0x53, 0x6b, 0xb5,
+ 0x63, 0xa6, 0xbc, 0xf1, 0x77, 0xd4, 0xb4, 0x77, 0xd1, 0xee, 0xad, 0x62,
+ 0x9d, 0x2c, 0x2e, 0x11, 0x0a, 0xd1, 0x87, 0xfe, 0xef, 0x77, 0x0e, 0xd1,
+ 0x38, 0xfe, 0xcc, 0x88, 0xaa, 0x1c, 0x06, 0x93, 0x25, 0x56, 0xfe, 0x0c,
+ 0x52, 0xe9, 0x7f, 0x4c, 0x3b, 0x2a, 0xfb, 0x40, 0x62, 0x29, 0x0a, 0x1d,
+ 0x58, 0x78, 0x8b, 0x09, 0x25, 0xaa, 0xc6, 0x8f, 0x66, 0x8f, 0xd1, 0x93,
+ 0x5a, 0xd6, 0x68, 0x35, 0x69, 0x13, 0x5d, 0x42, 0x35, 0x95, 0xcb, 0xc4,
+ 0xec, 0x17, 0x92, 0x96, 0xcb, 0x4a, 0xb9, 0x8f, 0xe5, 0xc4, 0x4a, 0xe7,
+ 0x54, 0x52, 0x4c, 0x64, 0x06, 0xac, 0x2f, 0x13, 0x32, 0x02, 0x47, 0x13,
+ 0x5c, 0xa2, 0x66, 0xdc, 0x36, 0x0c, 0x4f, 0xbb, 0x89, 0x58, 0x85, 0x16,
+ 0xf1, 0xf1, 0xff, 0xd2, 0x86, 0x54, 0x29, 0xb3, 0x7e, 0x2a, 0xbd, 0xf9,
+ 0x53, 0x8c, 0xa0, 0x60, 0x60, 0xb2, 0x90, 0x7f, 0x3a, 0x11, 0x5f, 0x2a,
+ 0x50, 0x74, 0x2a, 0xd1, 0x68, 0x78, 0xdb, 0x31, 0x1b, 0x8b, 0xee, 0xee,
+ 0x18, 0x97, 0xf3, 0x50, 0x84, 0xc1, 0x8f, 0xe1, 0xc6, 0x01, 0xb4, 0x16,
+ 0x65, 0x25, 0x0c, 0x03, 0xab, 0xed, 0x4f, 0xd6, 0xe6, 0x16, 0x23, 0xcc,
+ 0x42, 0x93, 0xff, 0xfa, 0x92, 0x63, 0x33, 0x9e, 0x36, 0xb0, 0xdc, 0x9a,
+ 0xb6, 0xaa, 0xd7, 0x48, 0xfe, 0x27, 0x01, 0xcf, 0x67, 0xc0, 0x75, 0xa0,
+ 0x86, 0x9a, 0xec, 0xa7, 0x2e, 0xb8, 0x7b, 0x00, 0x7f, 0xd4, 0xe3, 0xb3,
+ 0xfc, 0x48, 0xab, 0x50, 0x20, 0xd4, 0x0d, 0x58, 0x26, 0xc0, 0x3c, 0x09,
+ 0x0b, 0x80, 0x9e, 0xaf, 0x14, 0x3c, 0x0c, 0x6e, 0x69, 0xbc, 0x6c, 0x4e,
+ 0x50, 0x33, 0xb0, 0x07, 0x64, 0x6e, 0x77, 0x96, 0xc2, 0xe6, 0x3b, 0xd7,
+ 0xfe, 0xdc, 0xa4, 0x2f, 0x18, 0x5b, 0x53, 0xe5, 0xdd, 0xb6, 0xce, 0xeb,
+ 0x16, 0xb4, 0x25, 0xc6, 0xcb, 0xf2, 0x65, 0x3c, 0x4f, 0x94, 0xa5, 0x11,
+ 0x18, 0xeb, 0x7b, 0x62, 0x1d, 0xd5, 0x02, 0x35, 0x76, 0xf6, 0xb5, 0x20,
+ 0x27, 0x21, 0x9b, 0xab, 0xf4, 0xb6, 0x8f, 0x1a, 0x70, 0x1d, 0x12, 0xe3,
+ 0xb9, 0x8e, 0x29, 0x52, 0x25, 0xf4, 0xba, 0xb4, 0x25, 0x2c, 0x91, 0x11,
+ 0xf2, 0xae, 0x7b, 0xbe, 0xb6, 0x67, 0xd6, 0x08, 0xf8, 0x6f, 0xe7, 0xb0,
+ 0x16, 0xc5, 0xf6, 0xd5, 0xfb, 0x07, 0x71, 0x5b, 0x0e, 0xe1, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x1d, 0x06, 0x03, 0x55,
+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xaa, 0xe7, 0x7f, 0xcf, 0xf8, 0xb4,
+ 0xe0, 0x8d, 0x39, 0x9a, 0x1d, 0x4f, 0x86, 0xa2, 0xac, 0x56, 0x32, 0xd9,
+ 0x58, 0xe3, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0xaa, 0xe7, 0x7f, 0xcf, 0xf8, 0xb4, 0xe0, 0x8d, 0x39,
+ 0x9a, 0x1d, 0x4f, 0x86, 0xa2, 0xac, 0x56, 0x32, 0xd9, 0x58, 0xe3, 0x30,
+ 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30,
+ 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x04, 0x02, 0x00,
+ 0x00, 0x0a, 0x0a, 0x81, 0xb5, 0x2e, 0xac, 0x52, 0xab, 0x0f, 0xeb, 0xad,
+ 0x96, 0xd6, 0xd6, 0x59, 0x8f, 0x55, 0x15, 0x56, 0x70, 0xda, 0xd5, 0x75,
+ 0x47, 0x12, 0x9a, 0x0e, 0xd1, 0x65, 0x68, 0xe0, 0x51, 0x89, 0x59, 0xcc,
+ 0xe3, 0x5a, 0x1b, 0x85, 0x14, 0xa3, 0x1d, 0x9b, 0x3f, 0xd1, 0xa4, 0x42,
+ 0xb0, 0x89, 0x12, 0x93, 0xd3, 0x54, 0x19, 0x04, 0xa2, 0xaf, 0xaa, 0x60,
+ 0xca, 0x03, 0xc2, 0xae, 0x62, 0x8c, 0xb6, 0x31, 0x03, 0xd6, 0xa5, 0xf3,
+ 0x5e, 0x8d, 0x5c, 0x69, 0x4c, 0x7d, 0x81, 0x49, 0x20, 0x25, 0x41, 0xa4,
+ 0x2a, 0x95, 0x87, 0x36, 0xa3, 0x9b, 0x9e, 0x9f, 0xed, 0x85, 0xf3, 0xb1,
+ 0xf1, 0xe9, 0x1b, 0xbb, 0xe3, 0xbc, 0x3b, 0x11, 0x36, 0xca, 0xb9, 0x5f,
+ 0xee, 0x64, 0xde, 0x2a, 0x99, 0x27, 0x91, 0xc0, 0x54, 0x9e, 0x7a, 0xd4,
+ 0x89, 0x8c, 0xa0, 0xe3, 0xfd, 0x44, 0x6f, 0x02, 0x38, 0x3c, 0xee, 0x52,
+ 0x48, 0x1b, 0xd4, 0x25, 0x2b, 0xcb, 0x8e, 0xa8, 0x1b, 0x09, 0xd6, 0x30,
+ 0x51, 0x15, 0x6c, 0x5c, 0x03, 0x76, 0xad, 0x64, 0x45, 0x50, 0xa2, 0xe1,
+ 0x3c, 0x5a, 0x67, 0x87, 0xff, 0x8c, 0xed, 0x9a, 0x8d, 0x04, 0xc1, 0xac,
+ 0xf9, 0xca, 0xf5, 0x2a, 0x05, 0x9c, 0xdd, 0x78, 0xce, 0x99, 0x78, 0x7b,
+ 0xcd, 0x43, 0x10, 0x40, 0xf7, 0xb5, 0x27, 0x12, 0xec, 0xe9, 0xb2, 0x3f,
+ 0xf4, 0x5d, 0xd9, 0xbb, 0xf8, 0xc4, 0xc9, 0xa4, 0x46, 0x20, 0x41, 0x7f,
+ 0xeb, 0x79, 0xb0, 0x51, 0x8c, 0xf7, 0xc3, 0x2c, 0x16, 0xfe, 0x42, 0x59,
+ 0x77, 0xfe, 0x53, 0xfe, 0x19, 0x57, 0x58, 0x44, 0x6d, 0x12, 0xe2, 0x95,
+ 0xd0, 0xd3, 0x5a, 0xb5, 0x2d, 0xe5, 0x7e, 0xb4, 0xb3, 0xa9, 0xcc, 0x7d,
+ 0x53, 0x77, 0x81, 0x01, 0x0f, 0x0a, 0xf6, 0x86, 0x3c, 0x7d, 0xb5, 0x2c,
+ 0xbf, 0x62, 0xc3, 0xf5, 0x38, 0x89, 0x13, 0x84, 0x1f, 0x44, 0x2d, 0x87,
+ 0x5c, 0x23, 0x9e, 0x05, 0x62, 0x56, 0x3d, 0x71, 0x4d, 0xd0, 0xe3, 0x15,
+ 0xe9, 0x09, 0x9c, 0x1a, 0xc0, 0x9a, 0x19, 0x8b, 0x9c, 0xe9, 0xae, 0xde,
+ 0x62, 0x05, 0x23, 0xe2, 0xd0, 0x3f, 0xf5, 0xef, 0x04, 0x96, 0x4c, 0x87,
+ 0x34, 0x2f, 0xd5, 0x90, 0xde, 0xbf, 0x4b, 0x56, 0x12, 0x5f, 0xc6, 0xdc,
+ 0xa4, 0x1c, 0xc4, 0x53, 0x0c, 0xf9, 0xb4, 0xe4, 0x2c, 0xe7, 0x48, 0xbd,
+ 0xb1, 0xac, 0xf1, 0xc1, 0x8d, 0x53, 0x47, 0x84, 0xc0, 0x78, 0x0a, 0x5e,
+ 0xc2, 0x16, 0xff, 0xef, 0x97, 0x5b, 0x33, 0x85, 0x92, 0xcd, 0xd4, 0xbb,
+ 0x64, 0xee, 0xed, 0x17, 0x18, 0x43, 0x32, 0x99, 0x32, 0x36, 0x25, 0xf4,
+ 0x21, 0x3c, 0x2f, 0x55, 0xdc, 0x16, 0x06, 0x4d, 0x86, 0xa3, 0xa9, 0x34,
+ 0x22, 0xd5, 0xc3, 0xc8, 0x64, 0x3c, 0x4e, 0x3a, 0x69, 0xbd, 0xcf, 0xd7,
+ 0xee, 0x3f, 0x0d, 0x15, 0xeb, 0xfb, 0xbd, 0x91, 0x7f, 0xef, 0x48, 0xec,
+ 0x86, 0xb2, 0x78, 0xf7, 0x53, 0x90, 0x38, 0xb5, 0x04, 0x9c, 0xb7, 0xd7,
+ 0x9e, 0xaa, 0x15, 0xf7, 0xcd, 0xc2, 0x17, 0xd5, 0x8f, 0x82, 0x98, 0xa3,
+ 0xaf, 0x59, 0xf1, 0x71, 0xda, 0x6e, 0xaf, 0x97, 0x6d, 0x77, 0x72, 0xfd,
+ 0xa8, 0x80, 0x25, 0xce, 0x46, 0x04, 0x6e, 0x40, 0x15, 0x24, 0xc0, 0xf9,
+ 0xbf, 0x13, 0x16, 0x72, 0xcb, 0xb7, 0x10, 0xc7, 0x0a, 0xd6, 0x66, 0x96,
+ 0x5b, 0x27, 0x4d, 0x66, 0xc4, 0x2f, 0x21, 0x90, 0x9f, 0x8c, 0x24, 0xa0,
+ 0x0e, 0xa2, 0x89, 0x92, 0xd2, 0x44, 0x63, 0x06, 0xb2, 0xab, 0x07, 0x26,
+ 0xde, 0x03, 0x1d, 0xdb, 0x2a, 0x42, 0x5b, 0x4c, 0xf6, 0xfe, 0x53, 0xfa,
+ 0x80, 0x45, 0x8d, 0x75, 0xf6, 0x0e, 0x1d, 0xcc, 0x4c, 0x3b, 0xb0, 0x80,
+ 0x6d, 0x4c, 0xed, 0x7c, 0xe0, 0xd2, 0xe7, 0x62, 0x59, 0xb1, 0x5a, 0x5d,
+ 0x3a, 0xec, 0x86, 0x04, 0xfe, 0x26, 0xd1, 0x18, 0xed, 0x56, 0x7d, 0x67,
+ 0x56, 0x24, 0x6d, 0x7c, 0x6e, 0x8f, 0xc8, 0xa0, 0xba, 0x42, 0x0a, 0x33,
+ 0x38, 0x7a, 0x09, 0x03, 0xc2, 0xbf, 0x9b, 0x01, 0xdd, 0x03, 0x5a, 0xba,
+ 0x76, 0x04, 0xb1, 0xc3, 0x40, 0x23, 0x53, 0xbd, 0x64, 0x4e, 0x0f, 0xe7,
+ 0xc3, 0x4e, 0x48, 0xea, 0x19, 0x2b, 0x1c, 0xe4, 0x3d, 0x93, 0xd8, 0xf6,
+ 0xfb, 0xda, 0x3d, 0xeb, 0xed, 0xc2, 0xbd, 0x14, 0x57, 0x40, 0xde, 0xd1,
+ 0x74, 0x54, 0x1b, 0xa8, 0x39, 0xda, 0x73, 0x56, 0xd4, 0xbe, 0xab, 0xec,
+ 0xc7, 0x17, 0x4f, 0x91, 0xb6, 0xf6, 0xcb, 0x24, 0xc6, 0x1c, 0x07, 0xc4,
+ 0xf3, 0xd0, 0x5e, 0x8d, 0xfa, 0x44, 0x98, 0x5c, 0x87, 0x36, 0x75, 0xb6,
+ 0xa5, 0x31, 0xaa, 0xab, 0x7d, 0x38, 0x66, 0xb3, 0x18, 0x58, 0x65, 0x97,
+ 0x06, 0xfd, 0x61, 0x81, 0x71, 0xc5, 0x17, 0x8b, 0x19, 0x03, 0xc8, 0x58,
+ 0xec, 0x05, 0xca, 0x7b, 0x0f, 0xec, 0x9d, 0xb4, 0xbc, 0xa3, 0x20, 0x2e,
+ 0xf8, 0xe4, 0xb1, 0x82, 0xdc, 0x5a, 0xd2, 0x92, 0x9c, 0x43, 0x5d, 0x16,
+ 0x5b, 0x90, 0x80, 0xe4, 0xfb, 0x6e, 0x24, 0x6b, 0x8c, 0x1a, 0x35, 0xab,
+ 0xbd, 0x77, 0x7f, 0xf9, 0x61, 0x80, 0xa5, 0xab, 0xa3, 0x39, 0xc2, 0xc9,
+ 0x69, 0x3c, 0xfc, 0xb3, 0x9a, 0x05, 0x45, 0x03, 0x88, 0x8f, 0x8e, 0x23,
+ 0xf2, 0x0c, 0x4c, 0x54, 0xb9, 0x40, 0x3a, 0x31, 0x1a, 0x22, 0x67, 0x43,
+ 0x4a, 0x3e, 0xa0, 0x8c, 0x2d, 0x4d, 0x4f, 0xfc, 0xb5, 0x9b, 0x1f, 0xe1,
+ 0xef, 0x02, 0x54, 0xab, 0x8d, 0x75, 0x4d, 0x93, 0xba, 0x76, 0xe1, 0xbc,
+ 0x42, 0x7f, 0x6c, 0xcb, 0xf5, 0x47, 0xd6, 0x8a, 0xac, 0x5d, 0xe9, 0xbb,
+ 0x3a, 0x65, 0x2c, 0x81, 0xe5, 0xff, 0x27, 0x7e, 0x60, 0x64, 0x80, 0x42,
+ 0x8d, 0x36, 0x6b, 0x07, 0x76, 0x6a, 0xf1, 0xdf, 0x96, 0x17, 0x93, 0x21,
+ 0x5d, 0xe4, 0x6c, 0xce, 0x1c, 0xb9, 0x82, 0x45, 0x05, 0x61, 0xe2, 0x41,
+ 0x96, 0x03, 0x7d, 0x10, 0x8b, 0x3e, 0xc7, 0xe5, 0xcf, 0x08, 0xeb, 0x81,
+ 0xd3, 0x82, 0x1b, 0x04, 0x96, 0x93, 0x5a, 0xe2, 0x8c, 0x8e, 0x50, 0x33,
+ 0xf6, 0xf9, 0xf0, 0xfb, 0xb1, 0xd7, 0xc6, 0x97, 0xaa, 0xef, 0x0b, 0x87,
+ 0xe1, 0x34, 0x97, 0x78, 0x2e, 0x7c, 0x46, 0x11, 0xd5, 0x3c, 0xec, 0x38,
+ 0x70, 0x59, 0x14, 0x65, 0x4d, 0x0e, 0xd1, 0xeb, 0x49, 0xb3, 0x99, 0x6f,
+ 0x87, 0xf1, 0x79, 0x21, 0xd9, 0x5c, 0x37, 0xb2, 0xfe, 0xc4, 0x7a, 0xc1,
+ 0x67, 0xbd, 0x02, 0xfc, 0x02, 0xab, 0x2f, 0xf5, 0x0f, 0xa7, 0xae, 0x90,
+ 0xc2, 0xaf, 0xdb, 0xd1, 0x96, 0xb2, 0x92, 0x5a, 0xfb, 0xca, 0x28, 0x74,
+ 0x17, 0xed, 0xda, 0x2c, 0x9f, 0xb4, 0x2d, 0xf5, 0x71, 0x20, 0x64, 0x2d,
+ 0x44, 0xe5, 0xa3, 0xa0, 0x94, 0x6f, 0x20, 0xb3, 0x73, 0x96, 0x40, 0x06,
+ 0x9b, 0x25, 0x47, 0x4b, 0xe0, 0x63, 0x91, 0xd9, 0xda, 0xf3, 0xc3, 0xe5,
+ 0x3a, 0x3c, 0xb7, 0x5f, 0xab, 0x1e, 0x51, 0x17, 0x4f, 0xec, 0xc1, 0x6d,
+ 0x82, 0x79, 0x8e, 0xba, 0x7c, 0x47, 0x8e, 0x99, 0x00, 0x17, 0x9e, 0xda,
+ 0x10, 0x42, 0x70, 0x25, 0x42, 0x84, 0xc8, 0xb1, 0x95, 0x56, 0xb2, 0x08,
+ 0xa0, 0x4f, 0xdc, 0xcd, 0x9e, 0x31, 0x4b, 0x0c, 0x0b, 0x03, 0x5d, 0x2c,
+ 0x26, 0xbc, 0xa9, 0x4b, 0x19, 0xdf, 0x90, 0x01, 0x9a, 0xe0, 0x06, 0x05,
+ 0x13, 0x34, 0x9d, 0x34, 0xb8, 0xef, 0x13, 0x3a, 0x20, 0xf5, 0x74, 0x02,
+ 0x70, 0x3b, 0x41, 0x60, 0x1f, 0x5e, 0x76, 0x0a, 0xb1, 0x17, 0xd5, 0xcf,
+ 0x79, 0xef, 0xf7, 0xab, 0xe7, 0xd6, 0x0f, 0xad, 0x85, 0x2c, 0x52, 0x67,
+ 0xb5, 0xa0, 0x4a, 0xfd, 0xaf}; \ No newline at end of file
diff --git a/security/nss/gtests/ssl_gtest/ssl_0rtt_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_0rtt_unittest.cc
index 08781af71..28fdc6631 100644
--- a/security/nss/gtests/ssl_gtest/ssl_0rtt_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_0rtt_unittest.cc
@@ -345,8 +345,8 @@ TEST_P(TlsConnectTls13, TestTls13ZeroRttNoAlpnClient) {
TEST_P(TlsConnectTls13, TestTls13ZeroRttAlpnChangeBoth) {
EnableAlpn();
SetupForZeroRtt();
- static const uint8_t alpn[] = {0x01, 0x62}; // "b"
- EnableAlpn(alpn, sizeof(alpn));
+ static const std::vector<uint8_t> alpn({0x01, 0x62}); // "b"
+ EnableAlpn(alpn);
client_->Set0RttEnabled(true);
server_->Set0RttEnabled(true);
ExpectResumption(RESUME_TICKET);
diff --git a/security/nss/gtests/ssl_gtest/ssl_agent_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_agent_unittest.cc
index f0c57e8b1..6be3b61f8 100644
--- a/security/nss/gtests/ssl_gtest/ssl_agent_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_agent_unittest.cc
@@ -8,9 +8,6 @@
#include "sslerr.h"
#include "sslproto.h"
-// This is an internal header, used to get TLS_1_3_DRAFT_VERSION.
-#include "ssl3prot.h"
-
#include <memory>
#include "databuffer.h"
@@ -21,7 +18,6 @@
namespace nss_test {
-static const uint8_t kD13 = TLS_1_3_DRAFT_VERSION;
// This is a 1-RTT ClientHello with ECDHE.
const static uint8_t kCannedTls13ClientHello[] = {
0x01, 0x00, 0x00, 0xcf, 0x03, 0x03, 0x6c, 0xb3, 0x46, 0x81, 0xc8, 0x1a,
@@ -42,16 +38,7 @@ const static uint8_t kCannedTls13ClientHello[] = {
0x1e, 0x04, 0x03, 0x05, 0x03, 0x06, 0x03, 0x02, 0x03, 0x08, 0x04, 0x08,
0x05, 0x08, 0x06, 0x04, 0x01, 0x05, 0x01, 0x06, 0x01, 0x02, 0x01, 0x04,
0x02, 0x05, 0x02, 0x06, 0x02, 0x02, 0x02};
-
-const static uint8_t kCannedTls13ServerHello[] = {
- 0x03, 0x03, 0x9c, 0xbc, 0x14, 0x9b, 0x0e, 0x2e, 0xfa, 0x0d, 0xf3,
- 0xf0, 0x5c, 0x70, 0x7a, 0xe0, 0xd1, 0x9b, 0x3e, 0x5a, 0x44, 0x6b,
- 0xdf, 0xe5, 0xc2, 0x28, 0x64, 0xf7, 0x00, 0xc1, 0x9c, 0x08, 0x76,
- 0x08, 0x00, 0x13, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x33, 0x00, 0x24,
- 0x00, 0x1d, 0x00, 0x20, 0xc2, 0xcf, 0x23, 0x17, 0x64, 0x23, 0x03,
- 0xf0, 0xfb, 0x45, 0x98, 0x26, 0xd1, 0x65, 0x24, 0xa1, 0x6c, 0xa9,
- 0x80, 0x8f, 0x2c, 0xac, 0x0a, 0xea, 0x53, 0x3a, 0xcb, 0xe3, 0x08,
- 0x84, 0xae, 0x19, 0x00, 0x2b, 0x00, 0x02, 0x7f, kD13};
+static const size_t kFirstFragmentSize = 20;
static const char *k0RttData = "ABCDEF";
TEST_P(TlsAgentTest, EarlyFinished) {
@@ -74,8 +61,9 @@ TEST_P(TlsAgentTestClient13, CannedHello) {
DataBuffer buffer;
EnsureInit();
DataBuffer server_hello;
- MakeHandshakeMessage(kTlsHandshakeServerHello, kCannedTls13ServerHello,
- sizeof(kCannedTls13ServerHello), &server_hello);
+ auto sh = MakeCannedTls13ServerHello();
+ MakeHandshakeMessage(kTlsHandshakeServerHello, sh.data(), sh.len(),
+ &server_hello);
MakeRecord(kTlsHandshakeType, SSL_LIBRARY_VERSION_TLS_1_3,
server_hello.data(), server_hello.len(), &buffer);
ProcessMessage(buffer, TlsAgent::STATE_CONNECTING);
@@ -83,8 +71,9 @@ TEST_P(TlsAgentTestClient13, CannedHello) {
TEST_P(TlsAgentTestClient13, EncryptedExtensionsInClear) {
DataBuffer server_hello;
- MakeHandshakeMessage(kTlsHandshakeServerHello, kCannedTls13ServerHello,
- sizeof(kCannedTls13ServerHello), &server_hello);
+ auto sh = MakeCannedTls13ServerHello();
+ MakeHandshakeMessage(kTlsHandshakeServerHello, sh.data(), sh.len(),
+ &server_hello);
DataBuffer encrypted_extensions;
MakeHandshakeMessage(kTlsHandshakeEncryptedExtensions, nullptr, 0,
&encrypted_extensions, 1);
@@ -100,19 +89,21 @@ TEST_P(TlsAgentTestClient13, EncryptedExtensionsInClear) {
TEST_F(TlsAgentStreamTestClient, EncryptedExtensionsInClearTwoPieces) {
DataBuffer server_hello;
- MakeHandshakeMessage(kTlsHandshakeServerHello, kCannedTls13ServerHello,
- sizeof(kCannedTls13ServerHello), &server_hello);
+ auto sh = MakeCannedTls13ServerHello();
+ MakeHandshakeMessage(kTlsHandshakeServerHello, sh.data(), sh.len(),
+ &server_hello);
DataBuffer encrypted_extensions;
MakeHandshakeMessage(kTlsHandshakeEncryptedExtensions, nullptr, 0,
&encrypted_extensions, 1);
server_hello.Append(encrypted_extensions);
DataBuffer buffer;
MakeRecord(kTlsHandshakeType, SSL_LIBRARY_VERSION_TLS_1_3,
- server_hello.data(), 20, &buffer);
+ server_hello.data(), kFirstFragmentSize, &buffer);
DataBuffer buffer2;
MakeRecord(kTlsHandshakeType, SSL_LIBRARY_VERSION_TLS_1_3,
- server_hello.data() + 20, server_hello.len() - 20, &buffer2);
+ server_hello.data() + kFirstFragmentSize,
+ server_hello.len() - kFirstFragmentSize, &buffer2);
EnsureInit();
agent_->SetVersionRange(SSL_LIBRARY_VERSION_TLS_1_3,
@@ -124,15 +115,15 @@ TEST_F(TlsAgentStreamTestClient, EncryptedExtensionsInClearTwoPieces) {
}
TEST_F(TlsAgentDgramTestClient, EncryptedExtensionsInClearTwoPieces) {
+ auto sh = MakeCannedTls13ServerHello();
DataBuffer server_hello_frag1;
- MakeHandshakeMessageFragment(
- kTlsHandshakeServerHello, kCannedTls13ServerHello,
- sizeof(kCannedTls13ServerHello), &server_hello_frag1, 0, 0, 20);
+ MakeHandshakeMessageFragment(kTlsHandshakeServerHello, sh.data(), sh.len(),
+ &server_hello_frag1, 0, 0, kFirstFragmentSize);
DataBuffer server_hello_frag2;
- MakeHandshakeMessageFragment(
- kTlsHandshakeServerHello, kCannedTls13ServerHello + 20,
- sizeof(kCannedTls13ServerHello), &server_hello_frag2, 0, 20,
- sizeof(kCannedTls13ServerHello) - 20);
+ MakeHandshakeMessageFragment(kTlsHandshakeServerHello,
+ sh.data() + kFirstFragmentSize, sh.len(),
+ &server_hello_frag2, 0, kFirstFragmentSize,
+ sh.len() - kFirstFragmentSize);
DataBuffer encrypted_extensions;
MakeHandshakeMessage(kTlsHandshakeEncryptedExtensions, nullptr, 0,
&encrypted_extensions, 1);
@@ -154,6 +145,35 @@ TEST_F(TlsAgentDgramTestClient, EncryptedExtensionsInClearTwoPieces) {
SSL_ERROR_RX_UNEXPECTED_HANDSHAKE);
}
+TEST_F(TlsAgentDgramTestClient, AckWithBogusLengthField) {
+ EnsureInit();
+ // Length doesn't match
+ const uint8_t ackBuf[] = {0x00, 0x08, 0x00};
+ DataBuffer record;
+ MakeRecord(variant_, kTlsAckType, SSL_LIBRARY_VERSION_TLS_1_2, ackBuf,
+ sizeof(ackBuf), &record, 0);
+ agent_->SetVersionRange(SSL_LIBRARY_VERSION_TLS_1_3,
+ SSL_LIBRARY_VERSION_TLS_1_3);
+ ExpectAlert(kTlsAlertDecodeError);
+ ProcessMessage(record, TlsAgent::STATE_ERROR,
+ SSL_ERROR_RX_MALFORMED_DTLS_ACK);
+}
+
+TEST_F(TlsAgentDgramTestClient, AckWithNonEvenLength) {
+ EnsureInit();
+ // Length isn't a multiple of 8
+ const uint8_t ackBuf[] = {0x00, 0x01, 0x00};
+ DataBuffer record;
+ MakeRecord(variant_, kTlsAckType, SSL_LIBRARY_VERSION_TLS_1_2, ackBuf,
+ sizeof(ackBuf), &record, 0);
+ agent_->SetVersionRange(SSL_LIBRARY_VERSION_TLS_1_3,
+ SSL_LIBRARY_VERSION_TLS_1_3);
+ // Because we haven't negotiated the version,
+ // ssl3_DecodeError() sends an older (pre-TLS error).
+ ExpectAlert(kTlsAlertIllegalParameter);
+ ProcessMessage(record, TlsAgent::STATE_ERROR, SSL_ERROR_BAD_SERVER);
+}
+
TEST_F(TlsAgentStreamTestClient, Set0RttOptionThenWrite) {
EnsureInit();
agent_->SetVersionRange(SSL_LIBRARY_VERSION_TLS_1_1,
diff --git a/security/nss/gtests/ssl_gtest/ssl_auth_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_auth_unittest.cc
index 7f2b2840d..e2a30e6bc 100644
--- a/security/nss/gtests/ssl_gtest/ssl_auth_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_auth_unittest.cc
@@ -155,8 +155,8 @@ TEST_P(TlsConnectTls12, ClientAuthBigRsaCheckSigAlg) {
class TlsZeroCertificateRequestSigAlgsFilter : public TlsHandshakeFilter {
public:
- TlsZeroCertificateRequestSigAlgsFilter(const std::shared_ptr<TlsAgent>& agent)
- : TlsHandshakeFilter(agent, {kTlsHandshakeCertificateRequest}) {}
+ TlsZeroCertificateRequestSigAlgsFilter(const std::shared_ptr<TlsAgent>& a)
+ : TlsHandshakeFilter(a, {kTlsHandshakeCertificateRequest}) {}
virtual PacketFilter::Action FilterHandshake(
const TlsHandshakeFilter::HandshakeHeader& header,
const DataBuffer& input, DataBuffer* output) {
@@ -366,6 +366,50 @@ TEST_P(TlsConnectTls12, SignatureAlgorithmDrop) {
server_->CheckErrorCode(SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE);
}
+// Replaces the signature scheme in a TLS 1.3 CertificateVerify message.
+class TlsReplaceSignatureSchemeFilter : public TlsHandshakeFilter {
+ public:
+ TlsReplaceSignatureSchemeFilter(const std::shared_ptr<TlsAgent>& a,
+ SSLSignatureScheme scheme)
+ : TlsHandshakeFilter(a, {kTlsHandshakeCertificateVerify}),
+ scheme_(scheme) {
+ EnableDecryption();
+ }
+
+ protected:
+ virtual PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
+ const DataBuffer& input,
+ DataBuffer* output) {
+ *output = input;
+ output->Write(0, scheme_, 2);
+ return CHANGE;
+ }
+
+ private:
+ SSLSignatureScheme scheme_;
+};
+
+TEST_P(TlsConnectTls13, UnsupportedSignatureSchemeAlert) {
+ EnsureTlsSetup();
+ MakeTlsFilter<TlsReplaceSignatureSchemeFilter>(server_, ssl_sig_none);
+
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+ server_->CheckErrorCode(SSL_ERROR_ILLEGAL_PARAMETER_ALERT);
+ client_->CheckErrorCode(SSL_ERROR_RX_MALFORMED_CERT_VERIFY);
+}
+
+TEST_P(TlsConnectTls13, InconsistentSignatureSchemeAlert) {
+ EnsureTlsSetup();
+
+ // This won't work because we use an RSA cert by default.
+ MakeTlsFilter<TlsReplaceSignatureSchemeFilter>(
+ server_, ssl_sig_ecdsa_secp256r1_sha256);
+
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+ server_->CheckErrorCode(SSL_ERROR_ILLEGAL_PARAMETER_ALERT);
+ client_->CheckErrorCode(SSL_ERROR_INCORRECT_SIGNATURE_ALGORITHM);
+}
+
TEST_P(TlsConnectTls12Plus, RequestClientAuthWithSha384) {
server_->SetSignatureSchemes(SignatureSchemeRsaSha384,
PR_ARRAY_SIZE(SignatureSchemeRsaSha384));
diff --git a/security/nss/gtests/ssl_gtest/ssl_ciphersuite_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_ciphersuite_unittest.cc
index fa2238be7..ec289bdd6 100644
--- a/security/nss/gtests/ssl_gtest/ssl_ciphersuite_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_ciphersuite_unittest.cc
@@ -166,8 +166,8 @@ class TlsCipherSuiteTestBase : public TlsConnectTestBase {
case ssl_calg_seed:
break;
}
- EXPECT_TRUE(false) << "No limit for " << csinfo_.cipherSuiteName;
- return 1ULL < 48;
+ ADD_FAILURE() << "No limit for " << csinfo_.cipherSuiteName;
+ return 0;
}
uint64_t last_safe_write() const {
@@ -246,12 +246,13 @@ TEST_P(TlsCipherSuiteTest, ReadLimit) {
client_->SendData(10, 10);
server_->ReadBytes(); // This should be OK.
+ server_->ReadBytes(); // Read twice to flush any 1,N-1 record splitting.
} else {
// In TLS 1.3, reading or writing triggers a KeyUpdate. That would mean
// that the sequence numbers would reset and we wouldn't hit the limit. So
- // we move the sequence number to one less than the limit directly and don't
- // test sending and receiving just before the limit.
- uint64_t last = record_limit() - 1;
+ // move the sequence number to the limit directly and don't test sending and
+ // receiving just before the limit.
+ uint64_t last = record_limit();
EXPECT_EQ(SECSuccess, SSLInt_AdvanceReadSeqNum(server_->ssl_fd(), last));
}
diff --git a/security/nss/gtests/ssl_gtest/ssl_custext_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_custext_unittest.cc
index c2f582a93..5be62e506 100644
--- a/security/nss/gtests/ssl_gtest/ssl_custext_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_custext_unittest.cc
@@ -68,6 +68,7 @@ static const uint16_t kManyExtensions[] = {
ssl_next_proto_nego_xtn,
ssl_renegotiation_info_xtn,
ssl_tls13_short_header_xtn,
+ ssl_record_size_limit_xtn,
1,
0xffff};
// The list here includes all extensions we expect to use (SSL_MAX_EXTENSIONS),
diff --git a/security/nss/gtests/ssl_gtest/ssl_dhe_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_dhe_unittest.cc
index cdafa7a84..b99461632 100644
--- a/security/nss/gtests/ssl_gtest/ssl_dhe_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_dhe_unittest.cc
@@ -103,8 +103,8 @@ TEST_P(TlsConnectGenericPre13, ConnectFfdheServer) {
class TlsDheServerKeyExchangeDamager : public TlsHandshakeFilter {
public:
- TlsDheServerKeyExchangeDamager(const std::shared_ptr<TlsAgent>& agent)
- : TlsHandshakeFilter(agent, {kTlsHandshakeServerKeyExchange}) {}
+ TlsDheServerKeyExchangeDamager(const std::shared_ptr<TlsAgent>& a)
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerKeyExchange}) {}
virtual PacketFilter::Action FilterHandshake(
const TlsHandshakeFilter::HandshakeHeader& header,
const DataBuffer& input, DataBuffer* output) {
@@ -141,9 +141,9 @@ class TlsDheSkeChangeY : public TlsHandshakeFilter {
kYZeroPad
};
- TlsDheSkeChangeY(const std::shared_ptr<TlsAgent>& agent,
- uint8_t handshake_type, ChangeYTo change)
- : TlsHandshakeFilter(agent, {handshake_type}), change_Y_(change) {}
+ TlsDheSkeChangeY(const std::shared_ptr<TlsAgent>& a, uint8_t handshake_type,
+ ChangeYTo change)
+ : TlsHandshakeFilter(a, {handshake_type}), change_Y_(change) {}
protected:
void ChangeY(const DataBuffer& input, DataBuffer* output, size_t offset,
@@ -208,9 +208,9 @@ class TlsDheSkeChangeY : public TlsHandshakeFilter {
class TlsDheSkeChangeYServer : public TlsDheSkeChangeY {
public:
- TlsDheSkeChangeYServer(const std::shared_ptr<TlsAgent>& agent,
- ChangeYTo change, bool modify)
- : TlsDheSkeChangeY(agent, kTlsHandshakeServerKeyExchange, change),
+ TlsDheSkeChangeYServer(const std::shared_ptr<TlsAgent>& a, ChangeYTo change,
+ bool modify)
+ : TlsDheSkeChangeY(a, kTlsHandshakeServerKeyExchange, change),
modify_(modify),
p_() {}
@@ -247,9 +247,9 @@ class TlsDheSkeChangeYServer : public TlsDheSkeChangeY {
class TlsDheSkeChangeYClient : public TlsDheSkeChangeY {
public:
TlsDheSkeChangeYClient(
- const std::shared_ptr<TlsAgent>& agent, ChangeYTo change,
+ const std::shared_ptr<TlsAgent>& a, ChangeYTo change,
std::shared_ptr<const TlsDheSkeChangeYServer> server_filter)
- : TlsDheSkeChangeY(agent, kTlsHandshakeClientKeyExchange, change),
+ : TlsDheSkeChangeY(a, kTlsHandshakeClientKeyExchange, change),
server_filter_(server_filter) {}
protected:
@@ -357,8 +357,8 @@ INSTANTIATE_TEST_CASE_P(
class TlsDheSkeMakePEven : public TlsHandshakeFilter {
public:
- TlsDheSkeMakePEven(const std::shared_ptr<TlsAgent>& agent)
- : TlsHandshakeFilter(agent, {kTlsHandshakeServerKeyExchange}) {}
+ TlsDheSkeMakePEven(const std::shared_ptr<TlsAgent>& a)
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerKeyExchange}) {}
virtual PacketFilter::Action FilterHandshake(
const TlsHandshakeFilter::HandshakeHeader& header,
@@ -390,8 +390,8 @@ TEST_P(TlsConnectGenericPre13, MakeDhePEven) {
class TlsDheSkeZeroPadP : public TlsHandshakeFilter {
public:
- TlsDheSkeZeroPadP(const std::shared_ptr<TlsAgent>& agent)
- : TlsHandshakeFilter(agent, {kTlsHandshakeServerKeyExchange}) {}
+ TlsDheSkeZeroPadP(const std::shared_ptr<TlsAgent>& a)
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerKeyExchange}) {}
virtual PacketFilter::Action FilterHandshake(
const TlsHandshakeFilter::HandshakeHeader& header,
@@ -475,6 +475,45 @@ TEST_P(TlsConnectTls13, NamedGroupMismatch13) {
client_->CheckErrorCode(SSL_ERROR_NO_CYPHER_OVERLAP);
}
+// Replace the key share in the server key exchange message with one that's
+// larger than 8192 bits.
+class TooLongDHEServerKEXFilter : public TlsHandshakeFilter {
+ public:
+ TooLongDHEServerKEXFilter(const std::shared_ptr<TlsAgent>& server)
+ : TlsHandshakeFilter(server, {kTlsHandshakeServerKeyExchange}) {}
+
+ protected:
+ virtual PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
+ const DataBuffer& input,
+ DataBuffer* output) {
+ // Replace the server key exchange message very large DH shares that are
+ // not supported by NSS.
+ const uint32_t share_len = 0x401;
+ const uint8_t zero_share[share_len] = {0x80};
+ size_t offset = 0;
+ // Write dh_p.
+ offset = output->Write(offset, share_len, 2);
+ offset = output->Write(offset, zero_share, share_len);
+ // Write dh_g.
+ offset = output->Write(offset, share_len, 2);
+ offset = output->Write(offset, zero_share, share_len);
+ // Write dh_Y.
+ offset = output->Write(offset, share_len, 2);
+ offset = output->Write(offset, zero_share, share_len);
+
+ return CHANGE;
+ }
+};
+
+TEST_P(TlsConnectGenericPre13, TooBigDHGroup) {
+ EnableOnlyDheCiphers();
+ MakeTlsFilter<TooLongDHEServerKEXFilter>(server_);
+ client_->SetOption(SSL_REQUIRE_DH_NAMED_GROUPS, PR_FALSE);
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+ server_->CheckErrorCode(SSL_ERROR_ILLEGAL_PARAMETER_ALERT);
+ client_->CheckErrorCode(SSL_ERROR_DH_KEY_TOO_LONG);
+}
+
// Even though the client doesn't have DHE groups enabled the server assumes it
// does. The client requires named groups and thus does not accept FF3072 as
// custom group in contrast to the previous test.
@@ -546,9 +585,9 @@ TEST_P(TlsConnectTls13, ResumeFfdhe) {
class TlsDheSkeChangeSignature : public TlsHandshakeFilter {
public:
- TlsDheSkeChangeSignature(const std::shared_ptr<TlsAgent>& agent,
- uint16_t version, const uint8_t* data, size_t len)
- : TlsHandshakeFilter(agent, {kTlsHandshakeServerKeyExchange}),
+ TlsDheSkeChangeSignature(const std::shared_ptr<TlsAgent>& a, uint16_t version,
+ const uint8_t* data, size_t len)
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerKeyExchange}),
version_(version),
data_(data),
len_(len) {}
diff --git a/security/nss/gtests/ssl_gtest/ssl_drop_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_drop_unittest.cc
index ee8906deb..e5b52ff06 100644
--- a/security/nss/gtests/ssl_gtest/ssl_drop_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_drop_unittest.cc
@@ -66,7 +66,8 @@ TEST_P(TlsConnectDatagramPre13, DropServerSecondFlightThrice) {
Connect();
}
-class TlsDropDatagram13 : public TlsConnectDatagram13 {
+class TlsDropDatagram13 : public TlsConnectDatagram13,
+ public ::testing::WithParamInterface<bool> {
public:
TlsDropDatagram13()
: client_filters_(),
@@ -77,6 +78,9 @@ class TlsDropDatagram13 : public TlsConnectDatagram13 {
void SetUp() override {
TlsConnectDatagram13::SetUp();
ConfigureSessionCache(RESUME_NONE, RESUME_NONE);
+ int short_header = GetParam() ? PR_TRUE : PR_FALSE;
+ client_->SetOption(SSL_ENABLE_DTLS_SHORT_HEADER, short_header);
+ server_->SetOption(SSL_ENABLE_DTLS_SHORT_HEADER, short_header);
SetFilters();
}
@@ -138,10 +142,13 @@ class TlsDropDatagram13 : public TlsConnectDatagram13 {
void CheckAcks(const DropAckChain& chain, size_t index,
std::vector<uint64_t> acks) {
const DataBuffer& buf = chain.ack_->record(index).buffer;
- size_t offset = 0;
+ size_t offset = 2;
+ uint64_t len;
- EXPECT_EQ(acks.size() * 8, buf.len());
- if ((acks.size() * 8) != buf.len()) {
+ EXPECT_EQ(2 + acks.size() * 8, buf.len());
+ ASSERT_TRUE(buf.Read(0, 2, &len));
+ ASSERT_EQ(static_cast<size_t>(len + 2), buf.len());
+ if ((2 + acks.size() * 8) != buf.len()) {
while (offset < buf.len()) {
uint64_t ack;
ASSERT_TRUE(buf.Read(offset, 8, &ack));
@@ -186,7 +193,7 @@ class TlsDropDatagram13 : public TlsConnectDatagram13 {
// to the client upon receiving the client Finished.
// Dropping complete first and second flights does not produce
// ACKs
-TEST_F(TlsDropDatagram13, DropClientFirstFlightOnce) {
+TEST_P(TlsDropDatagram13, DropClientFirstFlightOnce) {
client_filters_.drop_->Reset({0});
StartConnect();
client_->Handshake();
@@ -195,7 +202,7 @@ TEST_F(TlsDropDatagram13, DropClientFirstFlightOnce) {
CheckAcks(server_filters_, 0, {0x0002000000000000ULL});
}
-TEST_F(TlsDropDatagram13, DropServerFirstFlightOnce) {
+TEST_P(TlsDropDatagram13, DropServerFirstFlightOnce) {
server_filters_.drop_->Reset(0xff);
StartConnect();
client_->Handshake();
@@ -209,7 +216,7 @@ TEST_F(TlsDropDatagram13, DropServerFirstFlightOnce) {
// Dropping the server's first record also does not produce
// an ACK because the next record is ignored.
// TODO(ekr@rtfm.com): We should generate an empty ACK.
-TEST_F(TlsDropDatagram13, DropServerFirstRecordOnce) {
+TEST_P(TlsDropDatagram13, DropServerFirstRecordOnce) {
server_filters_.drop_->Reset({0});
StartConnect();
client_->Handshake();
@@ -221,7 +228,7 @@ TEST_F(TlsDropDatagram13, DropServerFirstRecordOnce) {
// Dropping the second packet of the server's flight should
// produce an ACK.
-TEST_F(TlsDropDatagram13, DropServerSecondRecordOnce) {
+TEST_P(TlsDropDatagram13, DropServerSecondRecordOnce) {
server_filters_.drop_->Reset({1});
StartConnect();
client_->Handshake();
@@ -235,7 +242,7 @@ TEST_F(TlsDropDatagram13, DropServerSecondRecordOnce) {
// Drop the server ACK and verify that the client retransmits
// the ClientHello.
-TEST_F(TlsDropDatagram13, DropServerAckOnce) {
+TEST_P(TlsDropDatagram13, DropServerAckOnce) {
StartConnect();
client_->Handshake();
server_->Handshake();
@@ -263,7 +270,7 @@ TEST_F(TlsDropDatagram13, DropServerAckOnce) {
}
// Drop the client certificate verify.
-TEST_F(TlsDropDatagram13, DropClientCertVerify) {
+TEST_P(TlsDropDatagram13, DropClientCertVerify) {
StartConnect();
client_->SetupClientAuth();
server_->RequestClientAuth(true);
@@ -284,7 +291,7 @@ TEST_F(TlsDropDatagram13, DropClientCertVerify) {
}
// Shrink the MTU down so that certs get split and drop the first piece.
-TEST_F(TlsDropDatagram13, DropFirstHalfOfServerCertificate) {
+TEST_P(TlsDropDatagram13, DropFirstHalfOfServerCertificate) {
server_filters_.drop_->Reset({2});
StartConnect();
ShrinkPostServerHelloMtu();
@@ -311,7 +318,7 @@ TEST_F(TlsDropDatagram13, DropFirstHalfOfServerCertificate) {
}
// Shrink the MTU down so that certs get split and drop the second piece.
-TEST_F(TlsDropDatagram13, DropSecondHalfOfServerCertificate) {
+TEST_P(TlsDropDatagram13, DropSecondHalfOfServerCertificate) {
server_filters_.drop_->Reset({3});
StartConnect();
ShrinkPostServerHelloMtu();
@@ -524,11 +531,11 @@ class TlsFragmentationAndRecoveryTest : public TlsDropDatagram13 {
size_t cert_len_;
};
-TEST_F(TlsFragmentationAndRecoveryTest, DropFirstHalf) { RunTest(0); }
+TEST_P(TlsFragmentationAndRecoveryTest, DropFirstHalf) { RunTest(0); }
-TEST_F(TlsFragmentationAndRecoveryTest, DropSecondHalf) { RunTest(1); }
+TEST_P(TlsFragmentationAndRecoveryTest, DropSecondHalf) { RunTest(1); }
-TEST_F(TlsDropDatagram13, NoDropsDuringZeroRtt) {
+TEST_P(TlsDropDatagram13, NoDropsDuringZeroRtt) {
SetupForZeroRtt();
SetFilters();
std::cerr << "Starting second handshake" << std::endl;
@@ -546,7 +553,7 @@ TEST_F(TlsDropDatagram13, NoDropsDuringZeroRtt) {
0x0002000000000000ULL}); // Finished
}
-TEST_F(TlsDropDatagram13, DropEEDuringZeroRtt) {
+TEST_P(TlsDropDatagram13, DropEEDuringZeroRtt) {
SetupForZeroRtt();
SetFilters();
std::cerr << "Starting second handshake" << std::endl;
@@ -591,7 +598,7 @@ class TlsReorderDatagram13 : public TlsDropDatagram13 {
// Reorder the server records so that EE comes at the end
// of the flight and will still produce an ACK.
-TEST_F(TlsDropDatagram13, ReorderServerEE) {
+TEST_P(TlsDropDatagram13, ReorderServerEE) {
server_filters_.drop_->Reset({1});
StartConnect();
client_->Handshake();
@@ -647,7 +654,7 @@ class TlsSendCipherSpecCapturer {
std::vector<std::shared_ptr<TlsCipherSpec>> send_cipher_specs_;
};
-TEST_F(TlsDropDatagram13, SendOutOfOrderAppWithHandshakeKey) {
+TEST_P(TlsDropDatagram13, SendOutOfOrderAppWithHandshakeKey) {
StartConnect();
TlsSendCipherSpecCapturer capturer(client_);
client_->Handshake();
@@ -662,9 +669,9 @@ TEST_F(TlsDropDatagram13, SendOutOfOrderAppWithHandshakeKey) {
auto spec = capturer.spec(0);
ASSERT_NE(nullptr, spec.get());
ASSERT_EQ(2, spec->epoch());
- ASSERT_TRUE(client_->SendEncryptedRecord(
- spec, SSL_LIBRARY_VERSION_DTLS_1_2_WIRE, 0x0002000000000002,
- kTlsApplicationDataType, DataBuffer(buf, sizeof(buf))));
+ ASSERT_TRUE(client_->SendEncryptedRecord(spec, 0x0002000000000002,
+ kTlsApplicationDataType,
+ DataBuffer(buf, sizeof(buf))));
// Now have the server consume the bogus message.
server_->ExpectSendAlert(illegal_parameter, kTlsAlertFatal);
@@ -673,7 +680,7 @@ TEST_F(TlsDropDatagram13, SendOutOfOrderAppWithHandshakeKey) {
EXPECT_EQ(SSL_ERROR_RX_UNKNOWN_RECORD_TYPE, PORT_GetError());
}
-TEST_F(TlsDropDatagram13, SendOutOfOrderHsNonsenseWithHandshakeKey) {
+TEST_P(TlsDropDatagram13, SendOutOfOrderHsNonsenseWithHandshakeKey) {
StartConnect();
TlsSendCipherSpecCapturer capturer(client_);
client_->Handshake();
@@ -688,9 +695,9 @@ TEST_F(TlsDropDatagram13, SendOutOfOrderHsNonsenseWithHandshakeKey) {
auto spec = capturer.spec(0);
ASSERT_NE(nullptr, spec.get());
ASSERT_EQ(2, spec->epoch());
- ASSERT_TRUE(client_->SendEncryptedRecord(
- spec, SSL_LIBRARY_VERSION_DTLS_1_2_WIRE, 0x0002000000000002,
- kTlsHandshakeType, DataBuffer(buf, sizeof(buf))));
+ ASSERT_TRUE(client_->SendEncryptedRecord(spec, 0x0002000000000002,
+ kTlsHandshakeType,
+ DataBuffer(buf, sizeof(buf))));
server_->Handshake();
EXPECT_EQ(2UL, server_filters_.ack_->count());
// The server acknowledges client Finished twice.
@@ -700,7 +707,7 @@ TEST_F(TlsDropDatagram13, SendOutOfOrderHsNonsenseWithHandshakeKey) {
// Shrink the MTU down so that certs get split and then swap the first and
// second pieces of the server certificate.
-TEST_F(TlsReorderDatagram13, ReorderServerCertificate) {
+TEST_P(TlsReorderDatagram13, ReorderServerCertificate) {
StartConnect();
ShrinkPostServerHelloMtu();
client_->Handshake();
@@ -722,7 +729,7 @@ TEST_F(TlsReorderDatagram13, ReorderServerCertificate) {
CheckAcks(server_filters_, 0, {0x0002000000000000ULL});
}
-TEST_F(TlsReorderDatagram13, DataAfterEOEDDuringZeroRtt) {
+TEST_P(TlsReorderDatagram13, DataAfterEOEDDuringZeroRtt) {
SetupForZeroRtt();
SetFilters();
std::cerr << "Starting second handshake" << std::endl;
@@ -761,7 +768,7 @@ TEST_F(TlsReorderDatagram13, DataAfterEOEDDuringZeroRtt) {
EXPECT_EQ(PR_WOULD_BLOCK_ERROR, PORT_GetError());
}
-TEST_F(TlsReorderDatagram13, DataAfterFinDuringZeroRtt) {
+TEST_P(TlsReorderDatagram13, DataAfterFinDuringZeroRtt) {
SetupForZeroRtt();
SetFilters();
std::cerr << "Starting second handshake" << std::endl;
@@ -812,12 +819,17 @@ static void GetCipherAndLimit(uint16_t version, uint16_t* cipher,
*cipher = TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256;
*limit = (1ULL << 48) - 1;
} else {
+ // This test probably isn't especially useful for TLS 1.3, which has a much
+ // shorter sequence number encoding. That space can probably be searched in
+ // a reasonable amount of time.
*cipher = TLS_CHACHA20_POLY1305_SHA256;
- *limit = (1ULL << 48) - 1;
+ // Assume that we are starting with an expected sequence number of 0.
+ *limit = (1ULL << 29) - 1;
}
}
// This simulates a huge number of drops on one side.
+// See Bug 12965514 where a large gap was handled very inefficiently.
TEST_P(TlsConnectDatagram, MissLotsOfPackets) {
uint16_t cipher;
uint64_t limit;
@@ -834,6 +846,17 @@ TEST_P(TlsConnectDatagram, MissLotsOfPackets) {
SendReceive();
}
+// Send a sequence number of 0xfffffffd and it should be interpreted as that
+// (and not -3 or UINT64_MAX - 2).
+TEST_F(TlsConnectDatagram13, UnderflowSequenceNumber) {
+ Connect();
+ // This is only valid if short headers are disabled.
+ client_->SetOption(SSL_ENABLE_DTLS_SHORT_HEADER, PR_FALSE);
+ EXPECT_EQ(SECSuccess,
+ SSLInt_AdvanceWriteSeqNum(client_->ssl_fd(), (1ULL << 30) - 3));
+ SendReceive();
+}
+
class TlsConnectDatagram12Plus : public TlsConnectDatagram {
public:
TlsConnectDatagram12Plus() : TlsConnectDatagram() {}
@@ -861,9 +884,54 @@ TEST_P(TlsConnectDatagram12Plus, MissAWindowAndOne) {
SendReceive();
}
+// This filter replaces the first record it sees with junk application data.
+class TlsReplaceFirstRecordWithJunk : public TlsRecordFilter {
+ public:
+ TlsReplaceFirstRecordWithJunk(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a), replaced_(false) {}
+
+ protected:
+ PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
+ const DataBuffer& record, size_t* offset,
+ DataBuffer* output) override {
+ if (replaced_) {
+ return KEEP;
+ }
+ replaced_ = true;
+ TlsRecordHeader out_header(header.variant(), header.version(),
+ kTlsApplicationDataType,
+ header.sequence_number());
+
+ static const uint8_t junk[] = {1, 2, 3, 4};
+ *offset = out_header.Write(output, *offset, DataBuffer(junk, sizeof(junk)));
+ return CHANGE;
+ }
+
+ private:
+ bool replaced_;
+};
+
+// DTLS needs to discard application_data that it receives prior to handshake
+// completion, not generate an error.
+TEST_P(TlsConnectDatagram, ReplaceFirstServerRecordWithApplicationData) {
+ MakeTlsFilter<TlsReplaceFirstRecordWithJunk>(server_);
+ Connect();
+}
+
+TEST_P(TlsConnectDatagram, ReplaceFirstClientRecordWithApplicationData) {
+ MakeTlsFilter<TlsReplaceFirstRecordWithJunk>(client_);
+ Connect();
+}
+
INSTANTIATE_TEST_CASE_P(Datagram12Plus, TlsConnectDatagram12Plus,
TlsConnectTestBase::kTlsV12Plus);
INSTANTIATE_TEST_CASE_P(DatagramPre13, TlsConnectDatagramPre13,
TlsConnectTestBase::kTlsV11V12);
+INSTANTIATE_TEST_CASE_P(DatagramDrop13, TlsDropDatagram13,
+ ::testing::Values(true, false));
+INSTANTIATE_TEST_CASE_P(DatagramReorder13, TlsReorderDatagram13,
+ ::testing::Values(true, false));
+INSTANTIATE_TEST_CASE_P(DatagramFragment13, TlsFragmentationAndRecoveryTest,
+ ::testing::Values(true, false));
} // namespace nss_test
diff --git a/security/nss/gtests/ssl_gtest/ssl_ecdh_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_ecdh_unittest.cc
index 3c7cd2ecf..12c6e8516 100644
--- a/security/nss/gtests/ssl_gtest/ssl_ecdh_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_ecdh_unittest.cc
@@ -192,8 +192,8 @@ TEST_P(TlsConnectGenericPre13, P384PriorityFromModelSocket) {
class TlsKeyExchangeGroupCapture : public TlsHandshakeFilter {
public:
- TlsKeyExchangeGroupCapture(const std::shared_ptr<TlsAgent> &agent)
- : TlsHandshakeFilter(agent, {kTlsHandshakeServerKeyExchange}),
+ TlsKeyExchangeGroupCapture(const std::shared_ptr<TlsAgent> &a)
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerKeyExchange}),
group_(ssl_grp_none) {}
SSLNamedGroup group() const { return group_; }
@@ -559,6 +559,113 @@ TEST_P(TlsConnectGenericPre13, ConnectECDHEmptyClientPoint) {
server_->CheckErrorCode(SSL_ERROR_RX_MALFORMED_CLIENT_KEY_EXCH);
}
+// Damage ECParams/ECPoint of a SKE.
+class ECCServerKEXDamager : public TlsHandshakeFilter {
+ public:
+ ECCServerKEXDamager(const std::shared_ptr<TlsAgent> &server, ECType ec_type,
+ SSLNamedGroup named_curve)
+ : TlsHandshakeFilter(server, {kTlsHandshakeServerKeyExchange}),
+ ec_type_(ec_type),
+ named_curve_(named_curve) {}
+
+ protected:
+ virtual PacketFilter::Action FilterHandshake(const HandshakeHeader &header,
+ const DataBuffer &input,
+ DataBuffer *output) {
+ size_t offset = 0;
+ output->Allocate(5);
+ offset = output->Write(offset, ec_type_, 1);
+ offset = output->Write(offset, named_curve_, 2);
+ // Write a point with fmt != EC_POINT_FORM_UNCOMPRESSED.
+ offset = output->Write(offset, 1U, 1);
+ (void)output->Write(offset, 0x02, 1); // EC_POINT_FORM_COMPRESSED_Y0
+ return CHANGE;
+ }
+
+ private:
+ ECType ec_type_;
+ SSLNamedGroup named_curve_;
+};
+
+TEST_P(TlsConnectGenericPre13, ConnectUnsupportedCurveType) {
+ EnsureTlsSetup();
+ client_->DisableAllCiphers();
+ client_->EnableCiphersByKeyExchange(ssl_kea_ecdh);
+
+ MakeTlsFilter<ECCServerKEXDamager>(server_, ec_type_explicitPrime,
+ ssl_grp_none);
+ ConnectExpectAlert(client_, kTlsAlertHandshakeFailure);
+ client_->CheckErrorCode(SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE);
+}
+
+TEST_P(TlsConnectGenericPre13, ConnectUnsupportedCurve) {
+ EnsureTlsSetup();
+ client_->DisableAllCiphers();
+ client_->EnableCiphersByKeyExchange(ssl_kea_ecdh);
+
+ MakeTlsFilter<ECCServerKEXDamager>(server_, ec_type_named,
+ ssl_grp_ffdhe_2048);
+ ConnectExpectAlert(client_, kTlsAlertHandshakeFailure);
+ client_->CheckErrorCode(SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE);
+}
+
+TEST_P(TlsConnectGenericPre13, ConnectUnsupportedPointFormat) {
+ EnsureTlsSetup();
+ client_->DisableAllCiphers();
+ client_->EnableCiphersByKeyExchange(ssl_kea_ecdh);
+
+ MakeTlsFilter<ECCServerKEXDamager>(server_, ec_type_named,
+ ssl_grp_ec_secp256r1);
+ ConnectExpectAlert(client_, kTlsAlertHandshakeFailure);
+ client_->CheckErrorCode(SEC_ERROR_UNSUPPORTED_EC_POINT_FORM);
+}
+
+// Replace SignatureAndHashAlgorithm of a SKE.
+class ECCServerKEXSigAlgReplacer : public TlsHandshakeFilter {
+ public:
+ ECCServerKEXSigAlgReplacer(const std::shared_ptr<TlsAgent> &server,
+ SSLSignatureScheme sig_scheme)
+ : TlsHandshakeFilter(server, {kTlsHandshakeServerKeyExchange}),
+ sig_scheme_(sig_scheme) {}
+
+ protected:
+ virtual PacketFilter::Action FilterHandshake(const HandshakeHeader &header,
+ const DataBuffer &input,
+ DataBuffer *output) {
+ *output = input;
+
+ uint32_t point_len;
+ EXPECT_TRUE(output->Read(3, 1, &point_len));
+ output->Write(4 + point_len, sig_scheme_, 2);
+
+ return CHANGE;
+ }
+
+ private:
+ SSLSignatureScheme sig_scheme_;
+};
+
+TEST_P(TlsConnectTls12, ConnectUnsupportedSigAlg) {
+ EnsureTlsSetup();
+ client_->DisableAllCiphers();
+ client_->EnableCiphersByKeyExchange(ssl_kea_ecdh);
+
+ MakeTlsFilter<ECCServerKEXSigAlgReplacer>(server_, ssl_sig_none);
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+ client_->CheckErrorCode(SSL_ERROR_UNSUPPORTED_SIGNATURE_ALGORITHM);
+}
+
+TEST_P(TlsConnectTls12, ConnectIncorrectSigAlg) {
+ EnsureTlsSetup();
+ client_->DisableAllCiphers();
+ client_->EnableCiphersByKeyExchange(ssl_kea_ecdh);
+
+ MakeTlsFilter<ECCServerKEXSigAlgReplacer>(server_,
+ ssl_sig_ecdsa_secp256r1_sha256);
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+ client_->CheckErrorCode(SSL_ERROR_INCORRECT_SIGNATURE_ALGORITHM);
+}
+
INSTANTIATE_TEST_CASE_P(KeyExchangeTest, TlsKeyExchangeTest,
::testing::Combine(TlsConnectTestBase::kTlsVariantsAll,
TlsConnectTestBase::kTlsV11Plus));
diff --git a/security/nss/gtests/ssl_gtest/ssl_extension_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_extension_unittest.cc
index 0453dabdb..6965e9ca7 100644
--- a/security/nss/gtests/ssl_gtest/ssl_extension_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_extension_unittest.cc
@@ -19,9 +19,9 @@ namespace nss_test {
class TlsExtensionTruncator : public TlsExtensionFilter {
public:
- TlsExtensionTruncator(const std::shared_ptr<TlsAgent>& agent,
- uint16_t extension, size_t length)
- : TlsExtensionFilter(agent), extension_(extension), length_(length) {}
+ TlsExtensionTruncator(const std::shared_ptr<TlsAgent>& a, uint16_t extension,
+ size_t length)
+ : TlsExtensionFilter(a), extension_(extension), length_(length) {}
virtual PacketFilter::Action FilterExtension(uint16_t extension_type,
const DataBuffer& input,
DataBuffer* output) {
@@ -43,9 +43,9 @@ class TlsExtensionTruncator : public TlsExtensionFilter {
class TlsExtensionDamager : public TlsExtensionFilter {
public:
- TlsExtensionDamager(const std::shared_ptr<TlsAgent>& agent,
- uint16_t extension, size_t index)
- : TlsExtensionFilter(agent), extension_(extension), index_(index) {}
+ TlsExtensionDamager(const std::shared_ptr<TlsAgent>& a, uint16_t extension,
+ size_t index)
+ : TlsExtensionFilter(a), extension_(extension), index_(index) {}
virtual PacketFilter::Action FilterExtension(uint16_t extension_type,
const DataBuffer& input,
DataBuffer* output) {
@@ -65,11 +65,9 @@ class TlsExtensionDamager : public TlsExtensionFilter {
class TlsExtensionAppender : public TlsHandshakeFilter {
public:
- TlsExtensionAppender(const std::shared_ptr<TlsAgent>& agent,
+ TlsExtensionAppender(const std::shared_ptr<TlsAgent>& a,
uint8_t handshake_type, uint16_t ext, DataBuffer& data)
- : TlsHandshakeFilter(agent, {handshake_type}),
- extension_(ext),
- data_(data) {}
+ : TlsHandshakeFilter(a, {handshake_type}), extension_(ext), data_(data) {}
virtual PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
const DataBuffer& input,
@@ -323,7 +321,15 @@ TEST_P(TlsExtensionTestGeneric, AlpnMissingValue) {
TEST_P(TlsExtensionTestGeneric, AlpnZeroLength) {
EnableAlpn();
- const uint8_t val[] = {0x01, 0x61, 0x00};
+ const uint8_t val[] = {0x00, 0x03, 0x01, 0x61, 0x00};
+ DataBuffer extension(val, sizeof(val));
+ ClientHelloErrorTest(std::make_shared<TlsExtensionReplacer>(
+ client_, ssl_app_layer_protocol_xtn, extension));
+}
+
+TEST_P(TlsExtensionTestGeneric, AlpnLengthOverflow) {
+ EnableAlpn();
+ const uint8_t val[] = {0x00, 0x03, 0x01, 0x61, 0x01};
DataBuffer extension(val, sizeof(val));
ClientHelloErrorTest(std::make_shared<TlsExtensionReplacer>(
client_, ssl_app_layer_protocol_xtn, extension));
@@ -628,12 +634,9 @@ typedef std::function<void(TlsPreSharedKeyReplacer*)>
class TlsPreSharedKeyReplacer : public TlsExtensionFilter {
public:
- TlsPreSharedKeyReplacer(const std::shared_ptr<TlsAgent>& agent,
+ TlsPreSharedKeyReplacer(const std::shared_ptr<TlsAgent>& a,
TlsPreSharedKeyReplacerFunc function)
- : TlsExtensionFilter(agent),
- identities_(),
- binders_(),
- function_(function) {}
+ : TlsExtensionFilter(a), identities_(), binders_(), function_(function) {}
static size_t CopyAndMaybeReplace(TlsParser* parser, size_t size,
const std::unique_ptr<DataBuffer>& replace,
diff --git a/security/nss/gtests/ssl_gtest/ssl_fragment_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_fragment_unittest.cc
index f4940bf28..92947c2c7 100644
--- a/security/nss/gtests/ssl_gtest/ssl_fragment_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_fragment_unittest.cc
@@ -20,14 +20,16 @@ namespace nss_test {
// This class cuts every unencrypted handshake record into two parts.
class RecordFragmenter : public PacketFilter {
public:
- RecordFragmenter() : sequence_number_(0), splitting_(true) {}
+ RecordFragmenter(bool is_dtls13)
+ : is_dtls13_(is_dtls13), sequence_number_(0), splitting_(true) {}
private:
class HandshakeSplitter {
public:
- HandshakeSplitter(const DataBuffer& input, DataBuffer* output,
- uint64_t* sequence_number)
- : input_(input),
+ HandshakeSplitter(bool is_dtls13, const DataBuffer& input,
+ DataBuffer* output, uint64_t* sequence_number)
+ : is_dtls13_(is_dtls13),
+ input_(input),
output_(output),
cursor_(0),
sequence_number_(sequence_number) {}
@@ -35,9 +37,9 @@ class RecordFragmenter : public PacketFilter {
private:
void WriteRecord(TlsRecordHeader& record_header,
DataBuffer& record_fragment) {
- TlsRecordHeader fragment_header(record_header.version(),
- record_header.content_type(),
- *sequence_number_);
+ TlsRecordHeader fragment_header(
+ record_header.variant(), record_header.version(),
+ record_header.content_type(), *sequence_number_);
++*sequence_number_;
if (::g_ssl_gtest_verbose) {
std::cerr << "Fragment: " << fragment_header << ' ' << record_fragment
@@ -88,7 +90,7 @@ class RecordFragmenter : public PacketFilter {
while (parser.remaining()) {
TlsRecordHeader header;
DataBuffer record;
- if (!header.Parse(0, &parser, &record)) {
+ if (!header.Parse(is_dtls13_, 0, &parser, &record)) {
ADD_FAILURE() << "bad record header";
return false;
}
@@ -118,6 +120,7 @@ class RecordFragmenter : public PacketFilter {
}
private:
+ bool is_dtls13_;
const DataBuffer& input_;
DataBuffer* output_;
size_t cursor_;
@@ -132,7 +135,7 @@ class RecordFragmenter : public PacketFilter {
}
output->Allocate(input.len());
- HandshakeSplitter splitter(input, output, &sequence_number_);
+ HandshakeSplitter splitter(is_dtls13_, input, output, &sequence_number_);
if (!splitter.Split()) {
// If splitting fails, we obviously reached encrypted packets.
// Stop splitting from that point onward.
@@ -144,18 +147,21 @@ class RecordFragmenter : public PacketFilter {
}
private:
+ bool is_dtls13_;
uint64_t sequence_number_;
bool splitting_;
};
TEST_P(TlsConnectDatagram, FragmentClientPackets) {
- client_->SetFilter(std::make_shared<RecordFragmenter>());
+ bool is_dtls13 = version_ >= SSL_LIBRARY_VERSION_TLS_1_3;
+ client_->SetFilter(std::make_shared<RecordFragmenter>(is_dtls13));
Connect();
SendReceive();
}
TEST_P(TlsConnectDatagram, FragmentServerPackets) {
- server_->SetFilter(std::make_shared<RecordFragmenter>());
+ bool is_dtls13 = version_ >= SSL_LIBRARY_VERSION_TLS_1_3;
+ server_->SetFilter(std::make_shared<RecordFragmenter>(is_dtls13));
Connect();
SendReceive();
}
diff --git a/security/nss/gtests/ssl_gtest/ssl_fuzz_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_fuzz_unittest.cc
index 99448321c..f0afc9118 100644
--- a/security/nss/gtests/ssl_gtest/ssl_fuzz_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_fuzz_unittest.cc
@@ -27,8 +27,8 @@ class TlsFuzzTest : public ::testing::Test {};
// Record the application data stream.
class TlsApplicationDataRecorder : public TlsRecordFilter {
public:
- TlsApplicationDataRecorder(const std::shared_ptr<TlsAgent>& agent)
- : TlsRecordFilter(agent), buffer_() {}
+ TlsApplicationDataRecorder(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a), buffer_() {}
virtual PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
const DataBuffer& input,
diff --git a/security/nss/gtests/ssl_gtest/ssl_gtest.gyp b/security/nss/gtests/ssl_gtest/ssl_gtest.gyp
index e2a8d830a..17677713d 100644
--- a/security/nss/gtests/ssl_gtest/ssl_gtest.gyp
+++ b/security/nss/gtests/ssl_gtest/ssl_gtest.gyp
@@ -37,6 +37,7 @@
'ssl_loopback_unittest.cc',
'ssl_misc_unittest.cc',
'ssl_record_unittest.cc',
+ 'ssl_recordsize_unittest.cc',
'ssl_resumption_unittest.cc',
'ssl_renegotiation_unittest.cc',
'ssl_skip_unittest.cc',
diff --git a/security/nss/gtests/ssl_gtest/ssl_hrr_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_hrr_unittest.cc
index 05ae87034..77b335e86 100644
--- a/security/nss/gtests/ssl_gtest/ssl_hrr_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_hrr_unittest.cc
@@ -69,8 +69,8 @@ TEST_P(TlsConnectTls13, HelloRetryRequestAbortsZeroRtt) {
// handshake packets, this will break.
class CorrectMessageSeqAfterHrrFilter : public TlsRecordFilter {
public:
- CorrectMessageSeqAfterHrrFilter(const std::shared_ptr<TlsAgent>& agent)
- : TlsRecordFilter(agent) {}
+ CorrectMessageSeqAfterHrrFilter(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a) {}
protected:
PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
@@ -81,8 +81,9 @@ class CorrectMessageSeqAfterHrrFilter : public TlsRecordFilter {
}
DataBuffer buffer(record);
- TlsRecordHeader new_header = {header.version(), header.content_type(),
- header.sequence_number() + 1};
+ TlsRecordHeader new_header(header.variant(), header.version(),
+ header.content_type(),
+ header.sequence_number() + 1);
// Correct message_seq.
buffer.Write(4, 1U, 2);
@@ -151,8 +152,8 @@ TEST_P(TlsConnectTls13, SecondClientHelloRejectEarlyDataXtn) {
class KeyShareReplayer : public TlsExtensionFilter {
public:
- KeyShareReplayer(const std::shared_ptr<TlsAgent>& agent)
- : TlsExtensionFilter(agent) {}
+ KeyShareReplayer(const std::shared_ptr<TlsAgent>& a)
+ : TlsExtensionFilter(a) {}
virtual PacketFilter::Action FilterExtension(uint16_t extension_type,
const DataBuffer& input,
@@ -567,6 +568,28 @@ void TriggerHelloRetryRequest(std::shared_ptr<TlsAgent>& client,
client->Handshake();
server->Handshake();
EXPECT_EQ(1U, cb_called);
+ // Stop the callback from being called in future handshakes.
+ EXPECT_EQ(SECSuccess,
+ SSL_HelloRetryRequestCallback(server->ssl_fd(), nullptr, nullptr));
+}
+
+TEST_P(TlsConnectTls13, VersionNumbersAfterRetry) {
+ ConfigureSelfEncrypt();
+ EnsureTlsSetup();
+ auto r = MakeTlsFilter<TlsRecordRecorder>(client_);
+ TriggerHelloRetryRequest(client_, server_);
+ Handshake();
+ ASSERT_GT(r->count(), 1UL);
+ auto ch1 = r->record(0);
+ if (ch1.header.is_dtls()) {
+ ASSERT_EQ(SSL_LIBRARY_VERSION_TLS_1_1, ch1.header.version());
+ } else {
+ ASSERT_EQ(SSL_LIBRARY_VERSION_TLS_1_0, ch1.header.version());
+ }
+ auto ch2 = r->record(1);
+ ASSERT_EQ(SSL_LIBRARY_VERSION_TLS_1_2, ch2.header.version());
+
+ CheckConnected();
}
TEST_P(TlsConnectTls13, RetryStateless) {
@@ -577,6 +600,7 @@ TEST_P(TlsConnectTls13, RetryStateless) {
MakeNewServer();
Handshake();
+ CheckConnected();
SendReceive();
}
@@ -593,6 +617,68 @@ TEST_P(TlsConnectTls13, RetryStatefulDropCookie) {
server_->CheckErrorCode(SSL_ERROR_MISSING_COOKIE_EXTENSION);
}
+class TruncateHrrCookie : public TlsExtensionFilter {
+ public:
+ TruncateHrrCookie(const std::shared_ptr<TlsAgent>& a)
+ : TlsExtensionFilter(a) {}
+ virtual PacketFilter::Action FilterExtension(uint16_t extension_type,
+ const DataBuffer& input,
+ DataBuffer* output) {
+ if (extension_type != ssl_tls13_cookie_xtn) {
+ return KEEP;
+ }
+
+ // Claim a zero-length cookie.
+ output->Allocate(2);
+ output->Write(0, static_cast<uint32_t>(0), 2);
+ return CHANGE;
+ }
+};
+
+TEST_P(TlsConnectTls13, RetryCookieEmpty) {
+ ConfigureSelfEncrypt();
+ EnsureTlsSetup();
+
+ TriggerHelloRetryRequest(client_, server_);
+ MakeTlsFilter<TruncateHrrCookie>(client_);
+
+ ExpectAlert(server_, kTlsAlertHandshakeFailure);
+ Handshake();
+ client_->CheckErrorCode(SSL_ERROR_NO_CYPHER_OVERLAP);
+ server_->CheckErrorCode(SSL_ERROR_RX_MALFORMED_CLIENT_HELLO);
+}
+
+class AddJunkToCookie : public TlsExtensionFilter {
+ public:
+ AddJunkToCookie(const std::shared_ptr<TlsAgent>& a) : TlsExtensionFilter(a) {}
+ virtual PacketFilter::Action FilterExtension(uint16_t extension_type,
+ const DataBuffer& input,
+ DataBuffer* output) {
+ if (extension_type != ssl_tls13_cookie_xtn) {
+ return KEEP;
+ }
+
+ *output = input;
+ // Add junk after the cookie.
+ static const uint8_t junk[2] = {1, 2};
+ output->Append(DataBuffer(junk, sizeof(junk)));
+ return CHANGE;
+ }
+};
+
+TEST_P(TlsConnectTls13, RetryCookieWithExtras) {
+ ConfigureSelfEncrypt();
+ EnsureTlsSetup();
+
+ TriggerHelloRetryRequest(client_, server_);
+ MakeTlsFilter<AddJunkToCookie>(client_);
+
+ ExpectAlert(server_, kTlsAlertHandshakeFailure);
+ Handshake();
+ client_->CheckErrorCode(SSL_ERROR_NO_CYPHER_OVERLAP);
+ server_->CheckErrorCode(SSL_ERROR_RX_MALFORMED_CLIENT_HELLO);
+}
+
// Stream only because DTLS drops bad packets.
TEST_F(TlsConnectStreamTls13, RetryStatelessDamageFirstClientHello) {
ConfigureSelfEncrypt();
@@ -907,7 +993,10 @@ class HelloRetryRequestAgentTest : public TlsAgentTestClient {
hrr_data.Allocate(len + 6);
size_t i = 0;
- i = hrr_data.Write(i, 0x0303, 2);
+ i = hrr_data.Write(i, variant_ == ssl_variant_datagram
+ ? SSL_LIBRARY_VERSION_DTLS_1_2_WIRE
+ : SSL_LIBRARY_VERSION_TLS_1_2,
+ 2);
i = hrr_data.Write(i, ssl_hello_retry_random,
sizeof(ssl_hello_retry_random));
i = hrr_data.Write(i, static_cast<uint32_t>(0), 1); // session_id
@@ -973,6 +1062,39 @@ TEST_P(HelloRetryRequestAgentTest, HandleNoopHelloRetryRequest) {
SSL_ERROR_RX_MALFORMED_HELLO_RETRY_REQUEST);
}
+class ReplaceRandom : public TlsHandshakeFilter {
+ public:
+ ReplaceRandom(const std::shared_ptr<TlsAgent>& a, const DataBuffer& r)
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerHello}), random_(r) {}
+
+ PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
+ const DataBuffer& input,
+ DataBuffer* output) override {
+ output->Assign(input);
+ output->Write(2, random_);
+ return CHANGE;
+ }
+
+ private:
+ DataBuffer random_;
+};
+
+// Make sure that the TLS 1.3 special value for the ServerHello.random
+// is rejected by earlier versions.
+TEST_P(TlsConnectStreamPre13, HrrRandomOnTls10) {
+ static const uint8_t hrr_random[] = {
+ 0xCF, 0x21, 0xAD, 0x74, 0xE5, 0x9A, 0x61, 0x11, 0xBE, 0x1D, 0x8C,
+ 0x02, 0x1E, 0x65, 0xB8, 0x91, 0xC2, 0xA2, 0x11, 0x16, 0x7A, 0xBB,
+ 0x8C, 0x5E, 0x07, 0x9E, 0x09, 0xE2, 0xC8, 0xA8, 0x33, 0x9C};
+
+ EnsureTlsSetup();
+ MakeTlsFilter<ReplaceRandom>(server_,
+ DataBuffer(hrr_random, sizeof(hrr_random)));
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+ client_->CheckErrorCode(SSL_ERROR_RX_MALFORMED_SERVER_HELLO);
+ server_->CheckErrorCode(SSL_ERROR_ILLEGAL_PARAMETER_ALERT);
+}
+
INSTANTIATE_TEST_CASE_P(HelloRetryRequestAgentTests, HelloRetryRequestAgentTest,
::testing::Combine(TlsConnectTestBase::kTlsVariantsAll,
TlsConnectTestBase::kTlsV13));
diff --git a/security/nss/gtests/ssl_gtest/ssl_loopback_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_loopback_unittest.cc
index f1b78f52f..5adbd9dc7 100644
--- a/security/nss/gtests/ssl_gtest/ssl_loopback_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_loopback_unittest.cc
@@ -56,8 +56,8 @@ TEST_P(TlsConnectGeneric, CipherSuiteMismatch) {
class TlsAlertRecorder : public TlsRecordFilter {
public:
- TlsAlertRecorder(const std::shared_ptr<TlsAgent>& agent)
- : TlsRecordFilter(agent), level_(255), description_(255) {}
+ TlsAlertRecorder(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a), level_(255), description_(255) {}
PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
const DataBuffer& input,
@@ -87,9 +87,9 @@ class TlsAlertRecorder : public TlsRecordFilter {
class HelloTruncator : public TlsHandshakeFilter {
public:
- HelloTruncator(const std::shared_ptr<TlsAgent>& agent)
+ HelloTruncator(const std::shared_ptr<TlsAgent>& a)
: TlsHandshakeFilter(
- agent, {kTlsHandshakeClientHello, kTlsHandshakeServerHello}) {}
+ a, {kTlsHandshakeClientHello, kTlsHandshakeServerHello}) {}
PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
const DataBuffer& input,
DataBuffer* output) override {
@@ -149,6 +149,27 @@ TEST_P(TlsConnectGeneric, ConnectAlpn) {
CheckAlpn("a");
}
+TEST_P(TlsConnectGeneric, ConnectAlpnPriorityA) {
+ // "alpn" "npn"
+ // alpn is the fallback here. npn has the highest priority and should be
+ // picked.
+ const std::vector<uint8_t> alpn = {0x04, 0x61, 0x6c, 0x70, 0x6e,
+ 0x03, 0x6e, 0x70, 0x6e};
+ EnableAlpn(alpn);
+ Connect();
+ CheckAlpn("npn");
+}
+
+TEST_P(TlsConnectGeneric, ConnectAlpnPriorityB) {
+ // "alpn" "npn" "http"
+ // npn has the highest priority and should be picked.
+ const std::vector<uint8_t> alpn = {0x04, 0x61, 0x6c, 0x70, 0x6e, 0x03, 0x6e,
+ 0x70, 0x6e, 0x04, 0x68, 0x74, 0x74, 0x70};
+ EnableAlpn(alpn);
+ Connect();
+ CheckAlpn("npn");
+}
+
TEST_P(TlsConnectGeneric, ConnectAlpnClone) {
EnsureModelSockets();
client_model_->EnableAlpn(alpn_dummy_val_, sizeof(alpn_dummy_val_));
@@ -157,6 +178,33 @@ TEST_P(TlsConnectGeneric, ConnectAlpnClone) {
CheckAlpn("a");
}
+TEST_P(TlsConnectGeneric, ConnectAlpnWithCustomCallbackA) {
+ // "ab" "alpn"
+ const std::vector<uint8_t> client_alpn = {0x02, 0x61, 0x62, 0x04,
+ 0x61, 0x6c, 0x70, 0x6e};
+ EnableAlpnWithCallback(client_alpn, "alpn");
+ Connect();
+ CheckAlpn("alpn");
+}
+
+TEST_P(TlsConnectGeneric, ConnectAlpnWithCustomCallbackB) {
+ // "ab" "alpn"
+ const std::vector<uint8_t> client_alpn = {0x02, 0x61, 0x62, 0x04,
+ 0x61, 0x6c, 0x70, 0x6e};
+ EnableAlpnWithCallback(client_alpn, "ab");
+ Connect();
+ CheckAlpn("ab");
+}
+
+TEST_P(TlsConnectGeneric, ConnectAlpnWithCustomCallbackC) {
+ // "cd" "npn" "alpn"
+ const std::vector<uint8_t> client_alpn = {0x02, 0x63, 0x64, 0x03, 0x6e, 0x70,
+ 0x6e, 0x04, 0x61, 0x6c, 0x70, 0x6e};
+ EnableAlpnWithCallback(client_alpn, "npn");
+ Connect();
+ CheckAlpn("npn");
+}
+
TEST_P(TlsConnectDatagram, ConnectSrtp) {
EnableSrtp();
Connect();
@@ -171,8 +219,8 @@ TEST_P(TlsConnectGeneric, ConnectSendReceive) {
class SaveTlsRecord : public TlsRecordFilter {
public:
- SaveTlsRecord(const std::shared_ptr<TlsAgent>& agent, size_t index)
- : TlsRecordFilter(agent), index_(index), count_(0), contents_() {}
+ SaveTlsRecord(const std::shared_ptr<TlsAgent>& a, size_t index)
+ : TlsRecordFilter(a), index_(index), count_(0), contents_() {}
const DataBuffer& contents() const { return contents_; }
@@ -227,8 +275,8 @@ TEST_F(TlsConnectStreamTls13, DecryptRecordServer) {
class DropTlsRecord : public TlsRecordFilter {
public:
- DropTlsRecord(const std::shared_ptr<TlsAgent>& agent, size_t index)
- : TlsRecordFilter(agent), index_(index), count_(0) {}
+ DropTlsRecord(const std::shared_ptr<TlsAgent>& a, size_t index)
+ : TlsRecordFilter(a), index_(index), count_(0) {}
protected:
PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
@@ -373,8 +421,8 @@ TEST_P(TlsHolddownTest, TestDtlsHolddownExpiryResumption) {
class TlsPreCCSHeaderInjector : public TlsRecordFilter {
public:
- TlsPreCCSHeaderInjector(const std::shared_ptr<TlsAgent>& agent)
- : TlsRecordFilter(agent) {}
+ TlsPreCCSHeaderInjector(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a) {}
virtual PacketFilter::Action FilterRecord(
const TlsRecordHeader& record_header, const DataBuffer& input,
size_t* offset, DataBuffer* output) override {
@@ -383,7 +431,8 @@ class TlsPreCCSHeaderInjector : public TlsRecordFilter {
std::cerr << "Injecting Finished header before CCS\n";
const uint8_t hhdr[] = {kTlsHandshakeFinished, 0x00, 0x00, 0x0c};
DataBuffer hhdr_buf(hhdr, sizeof(hhdr));
- TlsRecordHeader nhdr(record_header.version(), kTlsHandshakeType, 0);
+ TlsRecordHeader nhdr(record_header.variant(), record_header.version(),
+ kTlsHandshakeType, 0);
*offset = nhdr.Write(output, *offset, hhdr_buf);
*offset = record_header.Write(output, *offset, input);
return CHANGE;
diff --git a/security/nss/gtests/ssl_gtest/ssl_record_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_record_unittest.cc
index 3b8727850..53b11c61a 100644
--- a/security/nss/gtests/ssl_gtest/ssl_record_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_record_unittest.cc
@@ -103,16 +103,14 @@ TEST_P(TlsPaddingTest, LastByteOfPadWrong) {
class RecordReplacer : public TlsRecordFilter {
public:
- RecordReplacer(const std::shared_ptr<TlsAgent>& agent, size_t size)
- : TlsRecordFilter(agent), enabled_(false), size_(size) {}
+ RecordReplacer(const std::shared_ptr<TlsAgent>& a, size_t size)
+ : TlsRecordFilter(a), size_(size) {
+ Disable();
+ }
PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
const DataBuffer& data,
DataBuffer* changed) override {
- if (!enabled_) {
- return KEEP;
- }
-
EXPECT_EQ(kTlsApplicationDataType, header.content_type());
changed->Allocate(size_);
@@ -120,17 +118,33 @@ class RecordReplacer : public TlsRecordFilter {
changed->data()[i] = i & 0xff;
}
- enabled_ = false;
+ Disable();
return CHANGE;
}
- void Enable() { enabled_ = true; }
-
private:
- bool enabled_;
size_t size_;
};
+TEST_P(TlsConnectStream, BadRecordMac) {
+ EnsureTlsSetup();
+ Connect();
+ client_->SetFilter(std::make_shared<TlsRecordLastByteDamager>(client_));
+ ExpectAlert(server_, kTlsAlertBadRecordMac);
+ client_->SendData(10);
+
+ // Read from the client, get error.
+ uint8_t buf[10];
+ PRInt32 rv = PR_Read(server_->ssl_fd(), buf, sizeof(buf));
+ EXPECT_GT(0, rv);
+ EXPECT_EQ(SSL_ERROR_BAD_MAC_READ, PORT_GetError());
+
+ // Read the server alert.
+ rv = PR_Read(client_->ssl_fd(), buf, sizeof(buf));
+ EXPECT_GT(0, rv);
+ EXPECT_EQ(SSL_ERROR_BAD_MAC_ALERT, PORT_GetError());
+}
+
TEST_F(TlsConnectStreamTls13, LargeRecord) {
EnsureTlsSetup();
@@ -168,6 +182,29 @@ TEST_F(TlsConnectStreamTls13, TooLargeRecord) {
EXPECT_EQ(SSL_ERROR_RECORD_OVERFLOW_ALERT, PORT_GetError());
}
+class ShortHeaderChecker : public PacketFilter {
+ public:
+ PacketFilter::Action Filter(const DataBuffer& input, DataBuffer* output) {
+ // The first octet should be 0b001xxxxx.
+ EXPECT_EQ(1, input.data()[0] >> 5);
+ return KEEP;
+ }
+};
+
+TEST_F(TlsConnectDatagram13, ShortHeadersClient) {
+ Connect();
+ client_->SetOption(SSL_ENABLE_DTLS_SHORT_HEADER, PR_TRUE);
+ client_->SetFilter(std::make_shared<ShortHeaderChecker>());
+ SendReceive();
+}
+
+TEST_F(TlsConnectDatagram13, ShortHeadersServer) {
+ Connect();
+ server_->SetOption(SSL_ENABLE_DTLS_SHORT_HEADER, PR_TRUE);
+ server_->SetFilter(std::make_shared<ShortHeaderChecker>());
+ SendReceive();
+}
+
const static size_t kContentSizesArr[] = {
1, kMacSize - 1, kMacSize, 30, 31, 32, 36, 256, 257, 287, 288};
diff --git a/security/nss/gtests/ssl_gtest/ssl_recordsize_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_recordsize_unittest.cc
new file mode 100644
index 000000000..00651aec5
--- /dev/null
+++ b/security/nss/gtests/ssl_gtest/ssl_recordsize_unittest.cc
@@ -0,0 +1,431 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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/. */
+
+#include "secerr.h"
+#include "ssl.h"
+#include "sslerr.h"
+#include "sslproto.h"
+
+#include "gtest_utils.h"
+#include "scoped_ptrs.h"
+#include "tls_connect.h"
+#include "tls_filter.h"
+#include "tls_parser.h"
+
+namespace nss_test {
+
+// This class tracks the maximum size of record that was sent, both cleartext
+// and plain. It only tracks records that have an outer type of
+// application_data. In TLS 1.3, this includes handshake messages.
+class TlsRecordMaximum : public TlsRecordFilter {
+ public:
+ TlsRecordMaximum(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a), max_ciphertext_(0), max_plaintext_(0) {}
+
+ size_t max_ciphertext() const { return max_ciphertext_; }
+ size_t max_plaintext() const { return max_plaintext_; }
+
+ protected:
+ PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
+ const DataBuffer& record, size_t* offset,
+ DataBuffer* output) override {
+ std::cerr << "max: " << record << std::endl;
+ // Ignore unprotected packets.
+ if (header.content_type() != kTlsApplicationDataType) {
+ return KEEP;
+ }
+
+ max_ciphertext_ = (std::max)(max_ciphertext_, record.len());
+ return TlsRecordFilter::FilterRecord(header, record, offset, output);
+ }
+
+ PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
+ const DataBuffer& data,
+ DataBuffer* changed) override {
+ max_plaintext_ = (std::max)(max_plaintext_, data.len());
+ return KEEP;
+ }
+
+ private:
+ size_t max_ciphertext_;
+ size_t max_plaintext_;
+};
+
+void CheckRecordSizes(const std::shared_ptr<TlsAgent>& agent,
+ const std::shared_ptr<TlsRecordMaximum>& record_max,
+ size_t config) {
+ uint16_t cipher_suite;
+ ASSERT_TRUE(agent->cipher_suite(&cipher_suite));
+
+ size_t expansion;
+ size_t iv;
+ switch (cipher_suite) {
+ case TLS_AES_128_GCM_SHA256:
+ case TLS_AES_256_GCM_SHA384:
+ case TLS_CHACHA20_POLY1305_SHA256:
+ expansion = 16;
+ iv = 0;
+ break;
+
+ case TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:
+ expansion = 16;
+ iv = 8;
+ break;
+
+ case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:
+ // Expansion is 20 for the MAC. Maximum block padding is 16. Maximum
+ // padding is added when the input plus the MAC is an exact multiple of
+ // the block size.
+ expansion = 20 + 16 - ((config + 20) % 16);
+ iv = 16;
+ break;
+
+ default:
+ ADD_FAILURE() << "No expansion set for ciphersuite "
+ << agent->cipher_suite_name();
+ return;
+ }
+
+ switch (agent->version()) {
+ case SSL_LIBRARY_VERSION_TLS_1_3:
+ EXPECT_EQ(0U, iv) << "No IV for TLS 1.3";
+ // We only have decryption in TLS 1.3.
+ EXPECT_EQ(config - 1, record_max->max_plaintext())
+ << "bad plaintext length for " << agent->role_str();
+ break;
+
+ case SSL_LIBRARY_VERSION_TLS_1_2:
+ case SSL_LIBRARY_VERSION_TLS_1_1:
+ expansion += iv;
+ break;
+
+ case SSL_LIBRARY_VERSION_TLS_1_0:
+ break;
+
+ default:
+ ADD_FAILURE() << "Unexpected version " << agent->version();
+ return;
+ }
+
+ EXPECT_EQ(config + expansion, record_max->max_ciphertext())
+ << "bad ciphertext length for " << agent->role_str();
+}
+
+TEST_P(TlsConnectGeneric, RecordSizeMaximum) {
+ uint16_t max_record_size =
+ (version_ >= SSL_LIBRARY_VERSION_TLS_1_3) ? 16385 : 16384;
+ size_t send_size = (version_ >= SSL_LIBRARY_VERSION_TLS_1_3)
+ ? max_record_size
+ : max_record_size + 1;
+
+ EnsureTlsSetup();
+ auto client_max = MakeTlsFilter<TlsRecordMaximum>(client_);
+ client_max->EnableDecryption();
+ auto server_max = MakeTlsFilter<TlsRecordMaximum>(server_);
+ server_max->EnableDecryption();
+
+ Connect();
+ client_->SendData(send_size, send_size);
+ server_->SendData(send_size, send_size);
+ server_->ReadBytes(send_size);
+ client_->ReadBytes(send_size);
+
+ CheckRecordSizes(client_, client_max, max_record_size);
+ CheckRecordSizes(server_, server_max, max_record_size);
+}
+
+TEST_P(TlsConnectGeneric, RecordSizeMinimumClient) {
+ EnsureTlsSetup();
+ auto server_max = MakeTlsFilter<TlsRecordMaximum>(server_);
+ server_max->EnableDecryption();
+
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 64);
+ Connect();
+ SendReceive(127); // Big enough for one record, allowing for 1+N splitting.
+
+ CheckRecordSizes(server_, server_max, 64);
+}
+
+TEST_P(TlsConnectGeneric, RecordSizeMinimumServer) {
+ EnsureTlsSetup();
+ auto client_max = MakeTlsFilter<TlsRecordMaximum>(client_);
+ client_max->EnableDecryption();
+
+ server_->SetOption(SSL_RECORD_SIZE_LIMIT, 64);
+ Connect();
+ SendReceive(127);
+
+ CheckRecordSizes(client_, client_max, 64);
+}
+
+TEST_P(TlsConnectGeneric, RecordSizeAsymmetric) {
+ EnsureTlsSetup();
+ auto client_max = MakeTlsFilter<TlsRecordMaximum>(client_);
+ client_max->EnableDecryption();
+ auto server_max = MakeTlsFilter<TlsRecordMaximum>(server_);
+ server_max->EnableDecryption();
+
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 64);
+ server_->SetOption(SSL_RECORD_SIZE_LIMIT, 100);
+ Connect();
+ SendReceive(127);
+
+ CheckRecordSizes(client_, client_max, 100);
+ CheckRecordSizes(server_, server_max, 64);
+}
+
+// This just modifies the encrypted payload so to include a few extra zeros.
+class TlsRecordExpander : public TlsRecordFilter {
+ public:
+ TlsRecordExpander(const std::shared_ptr<TlsAgent>& a, size_t expansion)
+ : TlsRecordFilter(a), expansion_(expansion) {}
+
+ protected:
+ virtual PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
+ const DataBuffer& data,
+ DataBuffer* changed) {
+ if (header.content_type() != kTlsApplicationDataType) {
+ return KEEP;
+ }
+ changed->Allocate(data.len() + expansion_);
+ changed->Write(0, data.data(), data.len());
+ return CHANGE;
+ }
+
+ private:
+ size_t expansion_;
+};
+
+// Tweak the plaintext of server records so that they exceed the client's limit.
+TEST_P(TlsConnectTls13, RecordSizePlaintextExceed) {
+ EnsureTlsSetup();
+ auto server_expand = MakeTlsFilter<TlsRecordExpander>(server_, 1);
+ server_expand->EnableDecryption();
+
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 64);
+ Connect();
+
+ server_->SendData(100);
+
+ client_->ExpectReadWriteError();
+ ExpectAlert(client_, kTlsAlertRecordOverflow);
+ client_->ReadBytes(100);
+ EXPECT_EQ(SSL_ERROR_RX_RECORD_TOO_LONG, client_->error_code());
+
+ // Consume the alert at the server.
+ server_->Handshake();
+ server_->CheckErrorCode(SSL_ERROR_RECORD_OVERFLOW_ALERT);
+}
+
+// Tweak the ciphertext of server records so that they greatly exceed the limit.
+// This requires a much larger expansion than for plaintext to trigger the
+// guard, which runs before decryption (current allowance is 304 octets).
+TEST_P(TlsConnectTls13, RecordSizeCiphertextExceed) {
+ EnsureTlsSetup();
+
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 64);
+ Connect();
+
+ auto server_expand = MakeTlsFilter<TlsRecordExpander>(server_, 320);
+ server_->SendData(100);
+
+ client_->ExpectReadWriteError();
+ ExpectAlert(client_, kTlsAlertRecordOverflow);
+ client_->ReadBytes(100);
+ EXPECT_EQ(SSL_ERROR_RX_RECORD_TOO_LONG, client_->error_code());
+
+ // Consume the alert at the server.
+ server_->Handshake();
+ server_->CheckErrorCode(SSL_ERROR_RECORD_OVERFLOW_ALERT);
+}
+
+// This indiscriminately adds padding to application data records.
+class TlsRecordPadder : public TlsRecordFilter {
+ public:
+ TlsRecordPadder(const std::shared_ptr<TlsAgent>& a, size_t padding)
+ : TlsRecordFilter(a), padding_(padding) {}
+
+ protected:
+ PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
+ const DataBuffer& record, size_t* offset,
+ DataBuffer* output) override {
+ if (header.content_type() != kTlsApplicationDataType) {
+ return KEEP;
+ }
+
+ uint8_t inner_content_type;
+ DataBuffer plaintext;
+ if (!Unprotect(header, record, &inner_content_type, &plaintext)) {
+ return KEEP;
+ }
+
+ if (inner_content_type != kTlsApplicationDataType) {
+ return KEEP;
+ }
+
+ DataBuffer ciphertext;
+ bool ok =
+ Protect(header, inner_content_type, plaintext, &ciphertext, padding_);
+ EXPECT_TRUE(ok);
+ if (!ok) {
+ return KEEP;
+ }
+ *offset = header.Write(output, *offset, ciphertext);
+ return CHANGE;
+ }
+
+ private:
+ size_t padding_;
+};
+
+TEST_P(TlsConnectTls13, RecordSizeExceedPad) {
+ EnsureTlsSetup();
+ auto server_max = std::make_shared<TlsRecordMaximum>(server_);
+ auto server_expand = std::make_shared<TlsRecordPadder>(server_, 1);
+ server_->SetFilter(std::make_shared<ChainedPacketFilter>(
+ ChainedPacketFilterInit({server_max, server_expand})));
+ server_expand->EnableDecryption();
+
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 64);
+ Connect();
+
+ server_->SendData(100);
+
+ client_->ExpectReadWriteError();
+ ExpectAlert(client_, kTlsAlertRecordOverflow);
+ client_->ReadBytes(100);
+ EXPECT_EQ(SSL_ERROR_RX_RECORD_TOO_LONG, client_->error_code());
+
+ // Consume the alert at the server.
+ server_->Handshake();
+ server_->CheckErrorCode(SSL_ERROR_RECORD_OVERFLOW_ALERT);
+}
+
+TEST_P(TlsConnectGeneric, RecordSizeBadValues) {
+ EnsureTlsSetup();
+ EXPECT_EQ(SECFailure,
+ SSL_OptionSet(client_->ssl_fd(), SSL_RECORD_SIZE_LIMIT, 63));
+ EXPECT_EQ(SECFailure,
+ SSL_OptionSet(client_->ssl_fd(), SSL_RECORD_SIZE_LIMIT, -1));
+ EXPECT_EQ(SECFailure,
+ SSL_OptionSet(server_->ssl_fd(), SSL_RECORD_SIZE_LIMIT, 16386));
+ Connect();
+}
+
+TEST_P(TlsConnectGeneric, RecordSizeGetValues) {
+ EnsureTlsSetup();
+ int v;
+ EXPECT_EQ(SECSuccess,
+ SSL_OptionGet(client_->ssl_fd(), SSL_RECORD_SIZE_LIMIT, &v));
+ EXPECT_EQ(16385, v);
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 300);
+ EXPECT_EQ(SECSuccess,
+ SSL_OptionGet(client_->ssl_fd(), SSL_RECORD_SIZE_LIMIT, &v));
+ EXPECT_EQ(300, v);
+ Connect();
+}
+
+// The value of the extension is capped by the maximum version of the client.
+TEST_P(TlsConnectGeneric, RecordSizeCapExtensionClient) {
+ EnsureTlsSetup();
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 16385);
+ auto capture =
+ MakeTlsFilter<TlsExtensionCapture>(client_, ssl_record_size_limit_xtn);
+ capture->EnableDecryption();
+ Connect();
+
+ uint64_t val = 0;
+ EXPECT_TRUE(capture->extension().Read(0, 2, &val));
+ if (version_ < SSL_LIBRARY_VERSION_TLS_1_3) {
+ EXPECT_EQ(16384U, val) << "Extension should be capped";
+ } else {
+ EXPECT_EQ(16385U, val);
+ }
+}
+
+// The value of the extension is capped by the maximum version of the server.
+TEST_P(TlsConnectGeneric, RecordSizeCapExtensionServer) {
+ EnsureTlsSetup();
+ server_->SetOption(SSL_RECORD_SIZE_LIMIT, 16385);
+ auto capture =
+ MakeTlsFilter<TlsExtensionCapture>(server_, ssl_record_size_limit_xtn);
+ capture->EnableDecryption();
+ Connect();
+
+ uint64_t val = 0;
+ EXPECT_TRUE(capture->extension().Read(0, 2, &val));
+ if (version_ < SSL_LIBRARY_VERSION_TLS_1_3) {
+ EXPECT_EQ(16384U, val) << "Extension should be capped";
+ } else {
+ EXPECT_EQ(16385U, val);
+ }
+}
+
+// Damage the client extension and the handshake fails, but the server
+// doesn't generate a validation error.
+TEST_P(TlsConnectGenericPre13, RecordSizeClientExtensionInvalid) {
+ EnsureTlsSetup();
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 1000);
+ static const uint8_t v[] = {0xf4, 0x1f};
+ MakeTlsFilter<TlsExtensionReplacer>(client_, ssl_record_size_limit_xtn,
+ DataBuffer(v, sizeof(v)));
+ ConnectExpectAlert(server_, kTlsAlertDecryptError);
+}
+
+// Special handling for TLS 1.3, where the alert isn't read.
+TEST_F(TlsConnectStreamTls13, RecordSizeClientExtensionInvalid) {
+ EnsureTlsSetup();
+ client_->SetOption(SSL_RECORD_SIZE_LIMIT, 1000);
+ static const uint8_t v[] = {0xf4, 0x1f};
+ MakeTlsFilter<TlsExtensionReplacer>(client_, ssl_record_size_limit_xtn,
+ DataBuffer(v, sizeof(v)));
+ client_->ExpectSendAlert(kTlsAlertBadRecordMac);
+ server_->ExpectSendAlert(kTlsAlertBadRecordMac);
+ ConnectExpectFail();
+}
+
+TEST_P(TlsConnectGeneric, RecordSizeServerExtensionInvalid) {
+ EnsureTlsSetup();
+ server_->SetOption(SSL_RECORD_SIZE_LIMIT, 1000);
+ static const uint8_t v[] = {0xf4, 0x1f};
+ auto replace = MakeTlsFilter<TlsExtensionReplacer>(
+ server_, ssl_record_size_limit_xtn, DataBuffer(v, sizeof(v)));
+ replace->EnableDecryption();
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+}
+
+class RecordSizeDefaultsTest : public ::testing::Test {
+ public:
+ void SetUp() {
+ EXPECT_EQ(SECSuccess,
+ SSL_OptionGetDefault(SSL_RECORD_SIZE_LIMIT, &default_));
+ }
+ void TearDown() {
+ // Make sure to restore the default value at the end.
+ EXPECT_EQ(SECSuccess,
+ SSL_OptionSetDefault(SSL_RECORD_SIZE_LIMIT, default_));
+ }
+
+ private:
+ PRIntn default_ = 0;
+};
+
+TEST_F(RecordSizeDefaultsTest, RecordSizeBadValues) {
+ EXPECT_EQ(SECFailure, SSL_OptionSetDefault(SSL_RECORD_SIZE_LIMIT, 63));
+ EXPECT_EQ(SECFailure, SSL_OptionSetDefault(SSL_RECORD_SIZE_LIMIT, -1));
+ EXPECT_EQ(SECFailure, SSL_OptionSetDefault(SSL_RECORD_SIZE_LIMIT, 16386));
+}
+
+TEST_F(RecordSizeDefaultsTest, RecordSizeGetValue) {
+ int v;
+ EXPECT_EQ(SECSuccess, SSL_OptionGetDefault(SSL_RECORD_SIZE_LIMIT, &v));
+ EXPECT_EQ(16385, v);
+ EXPECT_EQ(SECSuccess, SSL_OptionSetDefault(SSL_RECORD_SIZE_LIMIT, 3000));
+ EXPECT_EQ(SECSuccess, SSL_OptionGetDefault(SSL_RECORD_SIZE_LIMIT, &v));
+ EXPECT_EQ(3000, v);
+}
+
+} // namespace nss_test
diff --git a/security/nss/gtests/ssl_gtest/ssl_resumption_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_resumption_unittest.cc
index eb78c0585..2cc98a327 100644
--- a/security/nss/gtests/ssl_gtest/ssl_resumption_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_resumption_unittest.cc
@@ -484,10 +484,8 @@ TEST_P(TlsConnectStream, TestResumptionOverrideCipher) {
class SelectedVersionReplacer : public TlsHandshakeFilter {
public:
- SelectedVersionReplacer(const std::shared_ptr<TlsAgent>& agent,
- uint16_t version)
- : TlsHandshakeFilter(agent, {kTlsHandshakeServerHello}),
- version_(version) {}
+ SelectedVersionReplacer(const std::shared_ptr<TlsAgent>& a, uint16_t version)
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerHello}), version_(version) {}
protected:
PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
diff --git a/security/nss/gtests/ssl_gtest/ssl_skip_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_skip_unittest.cc
index e4a9e5aed..9ef19653b 100644
--- a/security/nss/gtests/ssl_gtest/ssl_skip_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_skip_unittest.cc
@@ -22,11 +22,9 @@ namespace nss_test {
class TlsHandshakeSkipFilter : public TlsRecordFilter {
public:
// A TLS record filter that skips handshake messages of the identified type.
- TlsHandshakeSkipFilter(const std::shared_ptr<TlsAgent>& agent,
+ TlsHandshakeSkipFilter(const std::shared_ptr<TlsAgent>& a,
uint8_t handshake_type)
- : TlsRecordFilter(agent),
- handshake_type_(handshake_type),
- skipped_(false) {}
+ : TlsRecordFilter(a), handshake_type_(handshake_type), skipped_(false) {}
protected:
// Takes a record; if it is a handshake record, it removes the first handshake
diff --git a/security/nss/gtests/ssl_gtest/ssl_staticrsa_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_staticrsa_unittest.cc
index e5fccc12b..ff4091b9a 100644
--- a/security/nss/gtests/ssl_gtest/ssl_staticrsa_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_staticrsa_unittest.cc
@@ -21,6 +21,7 @@ extern "C" {
#include "tls_connect.h"
#include "tls_filter.h"
#include "tls_parser.h"
+#include "rsa8193.h"
namespace nss_test {
@@ -100,4 +101,39 @@ TEST_P(TlsConnectStreamPre13,
Connect();
}
+// Replace the server certificate with one that uses 8193-bit RSA.
+class TooLargeRSACertFilter : public TlsHandshakeFilter {
+ public:
+ TooLargeRSACertFilter(const std::shared_ptr<TlsAgent> &server)
+ : TlsHandshakeFilter(server, {kTlsHandshakeCertificate}) {}
+
+ protected:
+ virtual PacketFilter::Action FilterHandshake(const HandshakeHeader &header,
+ const DataBuffer &input,
+ DataBuffer *output) {
+ const uint32_t cert_len = sizeof(rsa8193);
+ const uint32_t outer_len = cert_len + 3;
+ size_t offset = 0;
+ offset = output->Write(offset, outer_len, 3);
+ offset = output->Write(offset, cert_len, 3);
+ offset = output->Write(offset, rsa8193, cert_len);
+
+ return CHANGE;
+ }
+};
+
+TEST_P(TlsConnectGenericPre13, TooLargeRSAKeyInCert) {
+ EnableOnlyStaticRsaCiphers();
+ MakeTlsFilter<TooLargeRSACertFilter>(server_);
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+ client_->CheckErrorCode(SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE);
+ server_->CheckErrorCode(SSL_ERROR_ILLEGAL_PARAMETER_ALERT);
+}
+
+TEST_P(TlsConnectGeneric, ServerAuthBiggestRsa) {
+ Reset(TlsAgent::kRsa8192);
+ Connect();
+ CheckKeys();
+}
+
} // namespace nss_test
diff --git a/security/nss/gtests/ssl_gtest/ssl_tls13compat_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_tls13compat_unittest.cc
index f5ccf096b..42f1065f6 100644
--- a/security/nss/gtests/ssl_gtest/ssl_tls13compat_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_tls13compat_unittest.cc
@@ -214,6 +214,98 @@ TEST_F(Tls13CompatTest, EnabledHrrZeroRtt) {
CheckForCompatHandshake();
}
+class TlsSessionIDEchoFilter : public TlsHandshakeFilter {
+ public:
+ TlsSessionIDEchoFilter(const std::shared_ptr<TlsAgent>& a)
+ : TlsHandshakeFilter(
+ a, {kTlsHandshakeClientHello, kTlsHandshakeServerHello}) {}
+
+ protected:
+ virtual PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
+ const DataBuffer& input,
+ DataBuffer* output) {
+ TlsParser parser(input);
+
+ // Skip version + random.
+ EXPECT_TRUE(parser.Skip(2 + 32));
+
+ // Capture CH.legacy_session_id.
+ if (header.handshake_type() == kTlsHandshakeClientHello) {
+ EXPECT_TRUE(parser.ReadVariable(&sid_, 1));
+ return KEEP;
+ }
+
+ // Check that server sends one too.
+ uint32_t sid_len = 0;
+ EXPECT_TRUE(parser.Read(&sid_len, 1));
+ EXPECT_EQ(sid_len, sid_.len());
+
+ // Echo the one we captured.
+ *output = input;
+ output->Write(parser.consumed(), sid_.data(), sid_.len());
+
+ return CHANGE;
+ }
+
+ private:
+ DataBuffer sid_;
+};
+
+TEST_F(TlsConnectTest, EchoTLS13CompatibilitySessionID) {
+ ConfigureSessionCache(RESUME_SESSIONID, RESUME_SESSIONID);
+
+ client_->SetOption(SSL_ENABLE_TLS13_COMPAT_MODE, PR_TRUE);
+
+ client_->SetVersionRange(SSL_LIBRARY_VERSION_TLS_1_2,
+ SSL_LIBRARY_VERSION_TLS_1_3);
+
+ server_->SetVersionRange(SSL_LIBRARY_VERSION_TLS_1_2,
+ SSL_LIBRARY_VERSION_TLS_1_2);
+
+ server_->SetFilter(MakeTlsFilter<TlsSessionIDEchoFilter>(client_));
+ ConnectExpectAlert(client_, kTlsAlertIllegalParameter);
+
+ client_->CheckErrorCode(SSL_ERROR_RX_MALFORMED_SERVER_HELLO);
+ server_->CheckErrorCode(SSL_ERROR_ILLEGAL_PARAMETER_ALERT);
+}
+
+class TlsSessionIDInjectFilter : public TlsHandshakeFilter {
+ public:
+ TlsSessionIDInjectFilter(const std::shared_ptr<TlsAgent>& a)
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerHello}) {}
+
+ protected:
+ virtual PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
+ const DataBuffer& input,
+ DataBuffer* output) {
+ TlsParser parser(input);
+
+ // Skip version + random.
+ EXPECT_TRUE(parser.Skip(2 + 32));
+
+ *output = input;
+
+ // Inject a Session ID.
+ const uint8_t fake_sid[SSL3_SESSIONID_BYTES] = {0xff};
+ output->Write(parser.consumed(), sizeof(fake_sid), 1);
+ output->Splice(fake_sid, sizeof(fake_sid), parser.consumed() + 1, 0);
+
+ return CHANGE;
+ }
+};
+
+TEST_F(TlsConnectTest, TLS13NonCompatModeSessionID) {
+ ConfigureVersion(SSL_LIBRARY_VERSION_TLS_1_3);
+
+ MakeTlsFilter<TlsSessionIDInjectFilter>(server_);
+ client_->ExpectSendAlert(kTlsAlertIllegalParameter);
+ server_->ExpectSendAlert(kTlsAlertBadRecordMac);
+ ConnectExpectFail();
+
+ client_->CheckErrorCode(SSL_ERROR_RX_MALFORMED_SERVER_HELLO);
+ server_->CheckErrorCode(SSL_ERROR_BAD_MAC_READ);
+}
+
static const uint8_t kCannedCcs[] = {
kTlsChangeCipherSpecType,
SSL_LIBRARY_VERSION_TLS_1_2 >> 8,
diff --git a/security/nss/gtests/ssl_gtest/ssl_versionpolicy_unittest.cc b/security/nss/gtests/ssl_gtest/ssl_versionpolicy_unittest.cc
index 7f3c4a896..09d7801e9 100644
--- a/security/nss/gtests/ssl_gtest/ssl_versionpolicy_unittest.cc
+++ b/security/nss/gtests/ssl_gtest/ssl_versionpolicy_unittest.cc
@@ -50,12 +50,12 @@ inline std::ostream& operator<<(std::ostream& stream,
class VersionRangeWithLabel {
public:
- VersionRangeWithLabel(const std::string& label, const SSLVersionRange& vr)
- : label_(label), vr_(vr) {}
- VersionRangeWithLabel(const std::string& label, uint16_t min, uint16_t max)
- : label_(label) {
- vr_.min = min;
- vr_.max = max;
+ VersionRangeWithLabel(const std::string& txt, const SSLVersionRange& vr)
+ : label_(txt), vr_(vr) {}
+ VersionRangeWithLabel(const std::string& txt, uint16_t start, uint16_t end)
+ : label_(txt) {
+ vr_.min = start;
+ vr_.max = end;
}
VersionRangeWithLabel(const std::string& label) : label_(label) {
vr_.min = vr_.max = SSL_LIBRARY_VERSION_NONE;
diff --git a/security/nss/gtests/ssl_gtest/test_io.cc b/security/nss/gtests/ssl_gtest/test_io.cc
index 728217851..d76b3526c 100644
--- a/security/nss/gtests/ssl_gtest/test_io.cc
+++ b/security/nss/gtests/ssl_gtest/test_io.cc
@@ -99,8 +99,8 @@ int32_t DummyPrSocket::Write(PRFileDesc *f, const void *buf, int32_t length) {
return -1;
}
- auto peer = peer_.lock();
- if (!peer) {
+ auto dst = peer_.lock();
+ if (!dst) {
PR_SetError(PR_IO_ERROR, 0);
return -1;
}
@@ -116,14 +116,14 @@ int32_t DummyPrSocket::Write(PRFileDesc *f, const void *buf, int32_t length) {
case PacketFilter::CHANGE:
LOG("Original packet: " << packet);
LOG("Filtered packet: " << filtered);
- peer->PacketReceived(filtered);
+ dst->PacketReceived(filtered);
break;
case PacketFilter::DROP:
LOG("Droppped packet: " << packet);
break;
case PacketFilter::KEEP:
LOGV("Packet: " << packet);
- peer->PacketReceived(packet);
+ dst->PacketReceived(packet);
break;
}
// libssl can't handle it if this reports something other than the length
diff --git a/security/nss/gtests/ssl_gtest/test_io.h b/security/nss/gtests/ssl_gtest/test_io.h
index dbeb6b9d4..8327373ce 100644
--- a/security/nss/gtests/ssl_gtest/test_io.h
+++ b/security/nss/gtests/ssl_gtest/test_io.h
@@ -59,9 +59,9 @@ class PacketFilter {
class DummyPrSocket : public DummyIOLayerMethods {
public:
- DummyPrSocket(const std::string& name, SSLProtocolVariant variant)
+ DummyPrSocket(const std::string& name, SSLProtocolVariant var)
: name_(name),
- variant_(variant),
+ variant_(var),
peer_(),
input_(),
filter_(nullptr),
@@ -73,7 +73,7 @@ class DummyPrSocket : public DummyIOLayerMethods {
ScopedPRFileDesc CreateFD();
std::weak_ptr<DummyPrSocket>& peer() { return peer_; }
- void SetPeer(const std::shared_ptr<DummyPrSocket>& peer) { peer_ = peer; }
+ void SetPeer(const std::shared_ptr<DummyPrSocket>& p) { peer_ = p; }
void SetPacketFilter(const std::shared_ptr<PacketFilter>& filter) {
filter_ = filter;
}
diff --git a/security/nss/gtests/ssl_gtest/tls_agent.cc b/security/nss/gtests/ssl_gtest/tls_agent.cc
index 2f71caedb..9bed1ce1b 100644
--- a/security/nss/gtests/ssl_gtest/tls_agent.cc
+++ b/security/nss/gtests/ssl_gtest/tls_agent.cc
@@ -33,6 +33,7 @@ const char* TlsAgent::states[] = {"INIT", "CONNECTING", "CONNECTED", "ERROR"};
const std::string TlsAgent::kClient = "client"; // both sign and encrypt
const std::string TlsAgent::kRsa2048 = "rsa2048"; // bigger
+const std::string TlsAgent::kRsa8192 = "rsa8192"; // biggest allowed
const std::string TlsAgent::kServerRsa = "rsa"; // both sign and encrypt
const std::string TlsAgent::kServerRsaSign = "rsa_sign";
const std::string TlsAgent::kServerRsaPss = "rsa_pss";
@@ -44,13 +45,22 @@ const std::string TlsAgent::kServerEcdhRsa = "ecdh_rsa";
const std::string TlsAgent::kServerEcdhEcdsa = "ecdh_ecdsa";
const std::string TlsAgent::kServerDsa = "dsa";
-TlsAgent::TlsAgent(const std::string& name, Role role,
- SSLProtocolVariant variant)
- : name_(name),
- variant_(variant),
- role_(role),
+static const uint8_t kCannedTls13ServerHello[] = {
+ 0x03, 0x03, 0x9c, 0xbc, 0x14, 0x9b, 0x0e, 0x2e, 0xfa, 0x0d, 0xf3,
+ 0xf0, 0x5c, 0x70, 0x7a, 0xe0, 0xd1, 0x9b, 0x3e, 0x5a, 0x44, 0x6b,
+ 0xdf, 0xe5, 0xc2, 0x28, 0x64, 0xf7, 0x00, 0xc1, 0x9c, 0x08, 0x76,
+ 0x08, 0x00, 0x13, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x33, 0x00, 0x24,
+ 0x00, 0x1d, 0x00, 0x20, 0xc2, 0xcf, 0x23, 0x17, 0x64, 0x23, 0x03,
+ 0xf0, 0xfb, 0x45, 0x98, 0x26, 0xd1, 0x65, 0x24, 0xa1, 0x6c, 0xa9,
+ 0x80, 0x8f, 0x2c, 0xac, 0x0a, 0xea, 0x53, 0x3a, 0xcb, 0xe3, 0x08,
+ 0x84, 0xae, 0x19, 0x00, 0x2b, 0x00, 0x02, 0x7f, kD13};
+
+TlsAgent::TlsAgent(const std::string& nm, Role rl, SSLProtocolVariant var)
+ : name_(nm),
+ variant_(var),
+ role_(rl),
server_key_bits_(0),
- adapter_(new DummyPrSocket(role_str(), variant)),
+ adapter_(new DummyPrSocket(role_str(), var)),
ssl_fd_(nullptr),
state_(STATE_INIT),
timer_handle_(nullptr),
@@ -103,11 +113,11 @@ TlsAgent::~TlsAgent() {
}
}
-void TlsAgent::SetState(State state) {
- if (state_ == state) return;
+void TlsAgent::SetState(State s) {
+ if (state_ == s) return;
- LOG("Changing state from " << state_ << " to " << state);
- state_ = state;
+ LOG("Changing state from " << state_ << " to " << s);
+ state_ = s;
}
/*static*/ bool TlsAgent::LoadCertificate(const std::string& name,
@@ -124,11 +134,11 @@ void TlsAgent::SetState(State state) {
return true;
}
-bool TlsAgent::ConfigServerCert(const std::string& name, bool updateKeyBits,
+bool TlsAgent::ConfigServerCert(const std::string& id, bool updateKeyBits,
const SSLExtraServerCertData* serverCertData) {
ScopedCERTCertificate cert;
ScopedSECKEYPrivateKey priv;
- if (!TlsAgent::LoadCertificate(name, &cert, &priv)) {
+ if (!TlsAgent::LoadCertificate(id, &cert, &priv)) {
return false;
}
@@ -175,6 +185,10 @@ bool TlsAgent::EnsureTlsSetup(PRFileDesc* modelSocket) {
if (rv != SECSuccess) return false;
}
+ ScopedCERTCertList anchors(CERT_NewCertList());
+ rv = SSL_SetTrustAnchors(ssl_fd(), anchors.get());
+ if (rv != SECSuccess) return false;
+
if (role_ == SERVER) {
EXPECT_TRUE(ConfigServerCert(name_, true));
@@ -182,10 +196,6 @@ bool TlsAgent::EnsureTlsSetup(PRFileDesc* modelSocket) {
EXPECT_EQ(SECSuccess, rv);
if (rv != SECSuccess) return false;
- ScopedCERTCertList anchors(CERT_NewCertList());
- rv = SSL_SetTrustAnchors(ssl_fd(), anchors.get());
- if (rv != SECSuccess) return false;
-
rv = SSL_SetMaxEarlyDataSize(ssl_fd(), 1024);
EXPECT_EQ(SECSuccess, rv);
if (rv != SECSuccess) return false;
@@ -246,6 +256,17 @@ void TlsAgent::SetupClientAuth() {
reinterpret_cast<void*>(this)));
}
+void CheckCertReqAgainstDefaultCAs(const CERTDistNames* caNames) {
+ ScopedCERTDistNames expected(CERT_GetSSLCACerts(nullptr));
+
+ ASSERT_EQ(expected->nnames, caNames->nnames);
+
+ for (size_t i = 0; i < static_cast<size_t>(expected->nnames); ++i) {
+ EXPECT_EQ(SECEqual,
+ SECITEM_CompareItem(&(expected->names[i]), &(caNames->names[i])));
+ }
+}
+
SECStatus TlsAgent::GetClientAuthDataHook(void* self, PRFileDesc* fd,
CERTDistNames* caNames,
CERTCertificate** clientCert,
@@ -254,6 +275,9 @@ SECStatus TlsAgent::GetClientAuthDataHook(void* self, PRFileDesc* fd,
ScopedCERTCertificate peerCert(SSL_PeerCertificate(agent->ssl_fd()));
EXPECT_TRUE(peerCert) << "Client should be able to see the server cert";
+ // See bug 1457716
+ // CheckCertReqAgainstDefaultCAs(caNames);
+
ScopedCERTCertificate cert;
ScopedSECKEYPrivateKey priv;
if (!TlsAgent::LoadCertificate(agent->name(), &cert, &priv)) {
@@ -282,8 +306,8 @@ bool TlsAgent::GetPeerChainLength(size_t* count) {
return true;
}
-void TlsAgent::CheckCipherSuite(uint16_t cipher_suite) {
- EXPECT_EQ(csinfo_.cipherSuite, cipher_suite);
+void TlsAgent::CheckCipherSuite(uint16_t suite) {
+ EXPECT_EQ(csinfo_.cipherSuite, suite);
}
void TlsAgent::RequestClientAuth(bool requireAuth) {
@@ -442,9 +466,7 @@ void TlsAgent::GetVersionRange(uint16_t* minver, uint16_t* maxver) {
*maxver = vrange_.max;
}
-void TlsAgent::SetExpectedVersion(uint16_t version) {
- expected_version_ = version;
-}
+void TlsAgent::SetExpectedVersion(uint16_t ver) { expected_version_ = ver; }
void TlsAgent::SetServerKeyBits(uint16_t bits) { server_key_bits_ = bits; }
@@ -491,10 +513,10 @@ void TlsAgent::SetSignatureSchemes(const SSLSignatureScheme* schemes,
EXPECT_EQ(i, configuredCount) << "schemes in use were all set";
}
-void TlsAgent::CheckKEA(SSLKEAType kea_type, SSLNamedGroup kea_group,
+void TlsAgent::CheckKEA(SSLKEAType kea, SSLNamedGroup kea_group,
size_t kea_size) const {
EXPECT_EQ(STATE_CONNECTED, state_);
- EXPECT_EQ(kea_type, info_.keaType);
+ EXPECT_EQ(kea, info_.keaType);
if (kea_size == 0) {
switch (kea_group) {
case ssl_grp_ec_curve25519:
@@ -515,7 +537,7 @@ void TlsAgent::CheckKEA(SSLKEAType kea_type, SSLNamedGroup kea_group,
case ssl_grp_ffdhe_custom:
break;
default:
- if (kea_type == ssl_kea_rsa) {
+ if (kea == ssl_kea_rsa) {
kea_size = server_key_bits_;
} else {
EXPECT_TRUE(false) << "need to update group sizes";
@@ -534,13 +556,13 @@ void TlsAgent::CheckOriginalKEA(SSLNamedGroup kea_group) const {
}
}
-void TlsAgent::CheckAuthType(SSLAuthType auth_type,
+void TlsAgent::CheckAuthType(SSLAuthType auth,
SSLSignatureScheme sig_scheme) const {
EXPECT_EQ(STATE_CONNECTED, state_);
- EXPECT_EQ(auth_type, info_.authType);
+ EXPECT_EQ(auth, info_.authType);
EXPECT_EQ(server_key_bits_, info_.authKeyBits);
if (expected_version_ < SSL_LIBRARY_VERSION_TLS_1_2) {
- switch (auth_type) {
+ switch (auth) {
case ssl_auth_rsa_sign:
sig_scheme = ssl_sig_rsa_pkcs1_sha1md5;
break;
@@ -558,9 +580,8 @@ void TlsAgent::CheckAuthType(SSLAuthType auth_type,
}
// Check authAlgorithm, which is the old value for authType. This is a second
- // switch
- // statement because default label is different.
- switch (auth_type) {
+ // switch statement because default label is different.
+ switch (auth) {
case ssl_auth_rsa_sign:
EXPECT_EQ(ssl_auth_rsa_decrypt, csinfo_.authAlgorithm)
<< "authAlgorithm for RSA is always decrypt";
@@ -574,7 +595,7 @@ void TlsAgent::CheckAuthType(SSLAuthType auth_type,
<< "authAlgorithm for ECDH_ECDSA is ECDSA (i.e., wrong)";
break;
default:
- EXPECT_EQ(auth_type, csinfo_.authAlgorithm)
+ EXPECT_EQ(auth, csinfo_.authAlgorithm)
<< "authAlgorithm is (usually) the same as authType";
break;
}
@@ -593,22 +614,20 @@ void TlsAgent::ExpectResumption() { expect_resumption_ = true; }
void TlsAgent::EnableAlpn(const uint8_t* val, size_t len) {
EXPECT_TRUE(EnsureTlsSetup());
-
- SetOption(SSL_ENABLE_ALPN, PR_TRUE);
EXPECT_EQ(SECSuccess, SSL_SetNextProtoNego(ssl_fd(), val, len));
}
void TlsAgent::CheckAlpn(SSLNextProtoState expected_state,
const std::string& expected) const {
- SSLNextProtoState state;
+ SSLNextProtoState alpn_state;
char chosen[10];
unsigned int chosen_len;
- SECStatus rv = SSL_GetNextProto(ssl_fd(), &state,
+ SECStatus rv = SSL_GetNextProto(ssl_fd(), &alpn_state,
reinterpret_cast<unsigned char*>(chosen),
&chosen_len, sizeof(chosen));
EXPECT_EQ(SECSuccess, rv);
- EXPECT_EQ(expected_state, state);
- if (state == SSL_NEXT_PROTO_NO_SUPPORT) {
+ EXPECT_EQ(expected_state, alpn_state);
+ if (alpn_state == SSL_NEXT_PROTO_NO_SUPPORT) {
EXPECT_EQ("", expected);
} else {
EXPECT_NE("", expected);
@@ -840,10 +859,10 @@ void TlsAgent::CheckSecretsDestroyed() {
ASSERT_EQ(PR_TRUE, SSLInt_CheckSecretsDestroyed(ssl_fd()));
}
-void TlsAgent::SetDowngradeCheckVersion(uint16_t version) {
+void TlsAgent::SetDowngradeCheckVersion(uint16_t ver) {
ASSERT_TRUE(EnsureTlsSetup());
- SECStatus rv = SSL_SetDowngradeCheckVersion(ssl_fd(), version);
+ SECStatus rv = SSL_SetDowngradeCheckVersion(ssl_fd(), ver);
ASSERT_EQ(SECSuccess, rv);
}
@@ -920,9 +939,9 @@ static bool ErrorIsNonFatal(PRErrorCode code) {
}
void TlsAgent::SendData(size_t bytes, size_t blocksize) {
- uint8_t block[4096];
+ uint8_t block[16385]; // One larger than the maximum record size.
- ASSERT_LT(blocksize, sizeof(block));
+ ASSERT_LE(blocksize, sizeof(block));
while (bytes) {
size_t tosend = std::min(blocksize, bytes);
@@ -951,12 +970,13 @@ void TlsAgent::SendBuffer(const DataBuffer& buf) {
}
bool TlsAgent::SendEncryptedRecord(const std::shared_ptr<TlsCipherSpec>& spec,
- uint16_t wireVersion, uint64_t seq,
- uint8_t ct, const DataBuffer& buf) {
- LOGV("Writing " << buf.len() << " bytes");
- // Ensure we are a TLS 1.3 cipher agent.
+ uint64_t seq, uint8_t ct,
+ const DataBuffer& buf) {
+ LOGV("Encrypting " << buf.len() << " bytes");
+ // Ensure that we are doing TLS 1.3.
EXPECT_GE(expected_version_, SSL_LIBRARY_VERSION_TLS_1_3);
- TlsRecordHeader header(wireVersion, kTlsApplicationDataType, seq);
+ TlsRecordHeader header(variant_, expected_version_, kTlsApplicationDataType,
+ seq);
DataBuffer padded = buf;
padded.Write(padded.len(), ct, 1);
DataBuffer ciphertext;
@@ -1078,15 +1098,20 @@ void TlsAgentTestBase::ProcessMessage(const DataBuffer& buffer,
void TlsAgentTestBase::MakeRecord(SSLProtocolVariant variant, uint8_t type,
uint16_t version, const uint8_t* buf,
size_t len, DataBuffer* out,
- uint64_t seq_num) {
+ uint64_t sequence_number) {
size_t index = 0;
index = out->Write(index, type, 1);
if (variant == ssl_variant_stream) {
index = out->Write(index, version, 2);
+ } else if (version >= SSL_LIBRARY_VERSION_TLS_1_3 &&
+ type == kTlsApplicationDataType) {
+ uint32_t epoch = (sequence_number >> 48) & 0x3;
+ uint32_t seqno = sequence_number & ((1ULL << 30) - 1);
+ index = out->Write(index, (epoch << 30) | seqno, 4);
} else {
index = out->Write(index, TlsVersionToDtlsVersion(version), 2);
- index = out->Write(index, seq_num >> 32, 4);
- index = out->Write(index, seq_num & PR_UINT32_MAX, 4);
+ index = out->Write(index, sequence_number >> 32, 4);
+ index = out->Write(index, sequence_number & PR_UINT32_MAX, 4);
}
index = out->Write(index, len, 2);
out->Write(index, buf, len);
@@ -1144,4 +1169,12 @@ void TlsAgentTestBase::MakeTrivialHandshakeRecord(uint8_t hs_type,
}
}
+DataBuffer TlsAgentTestBase::MakeCannedTls13ServerHello() {
+ DataBuffer sh(kCannedTls13ServerHello, sizeof(kCannedTls13ServerHello));
+ if (variant_ == ssl_variant_datagram) {
+ sh.Write(0, SSL_LIBRARY_VERSION_DTLS_1_2_WIRE, 2);
+ }
+ return sh;
+}
+
} // namespace nss_test
diff --git a/security/nss/gtests/ssl_gtest/tls_agent.h b/security/nss/gtests/ssl_gtest/tls_agent.h
index 6cd6d5073..a93d0c6ee 100644
--- a/security/nss/gtests/ssl_gtest/tls_agent.h
+++ b/security/nss/gtests/ssl_gtest/tls_agent.h
@@ -10,6 +10,9 @@
#include "prio.h"
#include "ssl.h"
+// This is an internal header, used to get TLS_1_3_DRAFT_VERSION.
+#include "ssl3prot.h"
+
#include <functional>
#include <iostream>
@@ -57,6 +60,8 @@ typedef std::function<int32_t(TlsAgent* agent, const SECItem* srvNameArr,
PRUint32 srvNameArrSize)>
SniCallbackFunction;
+static const uint8_t kD13 = TLS_1_3_DRAFT_VERSION;
+
class TlsAgent : public PollTarget {
public:
enum Role { CLIENT, SERVER };
@@ -64,6 +69,7 @@ class TlsAgent : public PollTarget {
static const std::string kClient; // the client key is sign only
static const std::string kRsa2048; // bigger sign and encrypt for either
+ static const std::string kRsa8192; // biggest sign and encrypt for either
static const std::string kServerRsa; // both sign and encrypt
static const std::string kServerRsaSign;
static const std::string kServerRsaPss;
@@ -143,8 +149,7 @@ class TlsAgent : public PollTarget {
void SendData(size_t bytes, size_t blocksize = 1024);
void SendBuffer(const DataBuffer& buf);
bool SendEncryptedRecord(const std::shared_ptr<TlsCipherSpec>& spec,
- uint16_t wireVersion, uint64_t seq, uint8_t ct,
- const DataBuffer& buf);
+ uint64_t seq, uint8_t ct, const DataBuffer& buf);
// Send data directly to the underlying socket, skipping the TLS layer.
void SendDirect(const DataBuffer& buf);
void SendRecordDirect(const TlsRecord& record);
@@ -209,10 +214,10 @@ class TlsAgent : public PollTarget {
return info_.protocolVersion;
}
- bool cipher_suite(uint16_t* cipher_suite) const {
+ bool cipher_suite(uint16_t* suite) const {
if (state_ != STATE_CONNECTED) return false;
- *cipher_suite = info_.cipherSuite;
+ *suite = info_.cipherSuite;
return true;
}
@@ -227,17 +232,17 @@ class TlsAgent : public PollTarget {
info_.sessionID + info_.sessionIDLength);
}
- bool auth_type(SSLAuthType* auth_type) const {
+ bool auth_type(SSLAuthType* a) const {
if (state_ != STATE_CONNECTED) return false;
- *auth_type = info_.authType;
+ *a = info_.authType;
return true;
}
- bool kea_type(SSLKEAType* kea_type) const {
+ bool kea_type(SSLKEAType* k) const {
if (state_ != STATE_CONNECTED) return false;
- *kea_type = info_.keaType;
+ *k = info_.keaType;
return true;
}
@@ -264,6 +269,8 @@ class TlsAgent : public PollTarget {
void ExpectReceiveAlert(uint8_t alert, uint8_t level = 0);
void ExpectSendAlert(uint8_t alert, uint8_t level = 0);
+ std::string alpn_value_to_use_ = "";
+
private:
const static char* states[];
@@ -443,6 +450,7 @@ class TlsAgentTestBase : public ::testing::Test {
size_t hs_len, DataBuffer* out,
uint64_t seq_num, uint32_t fragment_offset,
uint32_t fragment_length) const;
+ DataBuffer MakeCannedTls13ServerHello();
static void MakeTrivialHandshakeRecord(uint8_t hs_type, size_t hs_len,
DataBuffer* out);
static inline TlsAgent::Role ToRole(const std::string& str) {
diff --git a/security/nss/gtests/ssl_gtest/tls_connect.cc b/security/nss/gtests/ssl_gtest/tls_connect.cc
index 8567b392f..68f6d21e9 100644
--- a/security/nss/gtests/ssl_gtest/tls_connect.cc
+++ b/security/nss/gtests/ssl_gtest/tls_connect.cc
@@ -571,14 +571,57 @@ void TlsConnectTestBase::CheckResumption(SessionResumptionMode expected) {
}
}
+static SECStatus NextProtoCallbackServer(void* arg, PRFileDesc* fd,
+ const unsigned char* protos,
+ unsigned int protos_len,
+ unsigned char* protoOut,
+ unsigned int* protoOutLen,
+ unsigned int protoMaxLen) {
+ EXPECT_EQ(protoMaxLen, 255U);
+ TlsAgent* agent = reinterpret_cast<TlsAgent*>(arg);
+ // Check that agent->alpn_value_to_use_ is in protos.
+ if (protos_len < 1) {
+ return SECFailure;
+ }
+ for (size_t i = 0; i < protos_len;) {
+ size_t l = protos[i];
+ EXPECT_LT(i + l, protos_len);
+ if (i + l >= protos_len) {
+ return SECFailure;
+ }
+ std::string protos_s(reinterpret_cast<const char*>(protos + i + 1), l);
+ if (protos_s == agent->alpn_value_to_use_) {
+ size_t s_len = agent->alpn_value_to_use_.size();
+ EXPECT_LE(s_len, 255U);
+ memcpy(protoOut, &agent->alpn_value_to_use_[0], s_len);
+ *protoOutLen = s_len;
+ return SECSuccess;
+ }
+ i += l + 1;
+ }
+ return SECFailure;
+}
+
void TlsConnectTestBase::EnableAlpn() {
client_->EnableAlpn(alpn_dummy_val_, sizeof(alpn_dummy_val_));
server_->EnableAlpn(alpn_dummy_val_, sizeof(alpn_dummy_val_));
}
-void TlsConnectTestBase::EnableAlpn(const uint8_t* val, size_t len) {
- client_->EnableAlpn(val, len);
- server_->EnableAlpn(val, len);
+void TlsConnectTestBase::EnableAlpnWithCallback(
+ const std::vector<uint8_t>& client_vals, std::string server_choice) {
+ EnsureTlsSetup();
+ server_->alpn_value_to_use_ = server_choice;
+ EXPECT_EQ(SECSuccess,
+ SSL_SetNextProtoNego(client_->ssl_fd(), client_vals.data(),
+ client_vals.size()));
+ SECStatus rv = SSL_SetNextProtoCallback(
+ server_->ssl_fd(), NextProtoCallbackServer, server_.get());
+ EXPECT_EQ(SECSuccess, rv);
+}
+
+void TlsConnectTestBase::EnableAlpn(const std::vector<uint8_t>& vals) {
+ client_->EnableAlpn(vals.data(), vals.size());
+ server_->EnableAlpn(vals.data(), vals.size());
}
void TlsConnectTestBase::EnsureModelSockets() {
diff --git a/security/nss/gtests/ssl_gtest/tls_connect.h b/security/nss/gtests/ssl_gtest/tls_connect.h
index 7dffe7f8a..000494501 100644
--- a/security/nss/gtests/ssl_gtest/tls_connect.h
+++ b/security/nss/gtests/ssl_gtest/tls_connect.h
@@ -110,7 +110,9 @@ class TlsConnectTestBase : public ::testing::Test {
void ConfigureSessionCache(SessionResumptionMode client,
SessionResumptionMode server);
void EnableAlpn();
- void EnableAlpn(const uint8_t* val, size_t len);
+ void EnableAlpnWithCallback(const std::vector<uint8_t>& client,
+ std::string server_choice);
+ void EnableAlpn(const std::vector<uint8_t>& vals);
void EnsureModelSockets();
void CheckAlpn(const std::string& val);
void EnableSrtp();
diff --git a/security/nss/gtests/ssl_gtest/tls_filter.cc b/security/nss/gtests/ssl_gtest/tls_filter.cc
index d34b13bcb..aa03cba70 100644
--- a/security/nss/gtests/ssl_gtest/tls_filter.cc
+++ b/security/nss/gtests/ssl_gtest/tls_filter.cc
@@ -30,11 +30,9 @@ void TlsVersioned::WriteStream(std::ostream& stream) const {
case SSL_LIBRARY_VERSION_TLS_1_0:
stream << "1.0";
break;
- case SSL_LIBRARY_VERSION_DTLS_1_0_WIRE:
case SSL_LIBRARY_VERSION_TLS_1_1:
stream << (is_dtls() ? "1.0" : "1.1");
break;
- case SSL_LIBRARY_VERSION_DTLS_1_2_WIRE:
case SSL_LIBRARY_VERSION_TLS_1_2:
stream << "1.2";
break;
@@ -67,8 +65,14 @@ void TlsRecordFilter::CipherSpecChanged(void* arg, PRBool sending,
return;
}
- self->in_sequence_number_ = 0;
- self->out_sequence_number_ = 0;
+ uint64_t seq_no;
+ if (self->agent()->variant() == ssl_variant_datagram) {
+ seq_no = static_cast<uint64_t>(SSLInt_CipherSpecToEpoch(newSpec)) << 48;
+ } else {
+ seq_no = 0;
+ }
+ self->in_sequence_number_ = seq_no;
+ self->out_sequence_number_ = seq_no;
self->dropped_record_ = false;
self->cipher_spec_.reset(new TlsCipherSpec());
bool ret = self->cipher_spec_->Init(
@@ -77,33 +81,59 @@ void TlsRecordFilter::CipherSpecChanged(void* arg, PRBool sending,
EXPECT_EQ(true, ret);
}
+bool TlsRecordFilter::is_dtls13() const {
+ if (agent()->variant() != ssl_variant_datagram) {
+ return false;
+ }
+ if (agent()->state() == TlsAgent::STATE_CONNECTED) {
+ return agent()->version() >= SSL_LIBRARY_VERSION_TLS_1_3;
+ }
+ SSLPreliminaryChannelInfo info;
+ EXPECT_EQ(SECSuccess, SSL_GetPreliminaryChannelInfo(agent()->ssl_fd(), &info,
+ sizeof(info)));
+ return (info.protocolVersion >= SSL_LIBRARY_VERSION_TLS_1_3) ||
+ info.canSendEarlyData;
+}
+
PacketFilter::Action TlsRecordFilter::Filter(const DataBuffer& input,
DataBuffer* output) {
+ // Disable during shutdown.
+ if (!agent()) {
+ return KEEP;
+ }
+
bool changed = false;
size_t offset = 0U;
- output->Allocate(input.len());
+ output->Allocate(input.len());
TlsParser parser(input);
while (parser.remaining()) {
TlsRecordHeader header;
DataBuffer record;
- if (!header.Parse(in_sequence_number_, &parser, &record)) {
+ if (!header.Parse(is_dtls13(), in_sequence_number_, &parser, &record)) {
ADD_FAILURE() << "not a valid record";
return KEEP;
}
- // Track the sequence number, which is necessary for stream mode (the
- // sequence number is in the header for datagram).
+ // Track the sequence number, which is necessary for stream mode when
+ // decrypting and for TLS 1.3 datagram to recover the sequence number.
+ //
+ // We reset the counter when the cipher spec changes, but that notification
+ // appears before a record is sent. If multiple records are sent with
+ // different cipher specs, this would fail. This filters out cleartext
+ // records, so we don't get confused by handshake messages that are sent at
+ // the same time as encrypted records. Sequence numbers are therefore
+ // likely to be incorrect for cleartext records.
//
- // This isn't perfectly robust. If there is a change from an active cipher
+ // This isn't perfectly robust: if there is a change from an active cipher
// spec to another active cipher spec (KeyUpdate for instance) AND writes
- // are consolidated across that change AND packets were dropped from the
- // older epoch, we will not correctly re-encrypt records in the old epoch to
- // update their sequence numbers.
- if (cipher_spec_ && header.content_type() == kTlsApplicationDataType) {
- ++in_sequence_number_;
+ // are consolidated across that change, this code could use the wrong
+ // sequence numbers when re-encrypting records with the old keys.
+ if (header.content_type() == kTlsApplicationDataType) {
+ in_sequence_number_ =
+ (std::max)(in_sequence_number_, header.sequence_number() + 1);
}
if (FilterRecord(header, record, &offset, output) != KEEP) {
@@ -131,11 +161,14 @@ PacketFilter::Action TlsRecordFilter::FilterRecord(
DataBuffer plaintext;
if (!Unprotect(header, record, &inner_content_type, &plaintext)) {
+ if (g_ssl_gtest_verbose) {
+ std::cerr << "unprotect failed: " << header << ":" << record << std::endl;
+ }
return KEEP;
}
- TlsRecordHeader real_header = {header.version(), inner_content_type,
- header.sequence_number()};
+ TlsRecordHeader real_header(header.variant(), header.version(),
+ inner_content_type, header.sequence_number());
PacketFilter::Action action = FilterRecord(real_header, plaintext, &filtered);
// In stream mode, even if something doesn't change we need to re-encrypt if
@@ -166,8 +199,8 @@ PacketFilter::Action TlsRecordFilter::FilterRecord(
} else {
seq_num = out_sequence_number_++;
}
- TlsRecordHeader out_header = {header.version(), header.content_type(),
- seq_num};
+ TlsRecordHeader out_header(header.variant(), header.version(),
+ header.content_type(), seq_num);
DataBuffer ciphertext;
bool rv = Protect(out_header, inner_content_type, filtered, &ciphertext);
@@ -179,20 +212,119 @@ PacketFilter::Action TlsRecordFilter::FilterRecord(
return CHANGE;
}
-bool TlsRecordHeader::Parse(uint64_t sequence_number, TlsParser* parser,
+size_t TlsRecordHeader::header_length() const {
+ // If we have a header, return it's length.
+ if (header_.len()) {
+ return header_.len();
+ }
+
+ // Otherwise make a dummy header and return the length.
+ DataBuffer buf;
+ return WriteHeader(&buf, 0, 0);
+}
+
+uint64_t TlsRecordHeader::RecoverSequenceNumber(uint64_t expected,
+ uint32_t partial,
+ size_t partial_bits) {
+ EXPECT_GE(32U, partial_bits);
+ uint64_t mask = (1 << partial_bits) - 1;
+ // First we determine the highest possible value. This is half the
+ // expressible range above the expected value.
+ uint64_t cap = expected + (1ULL << (partial_bits - 1));
+ // Add the partial piece in. e.g., xxxx789a and 1234 becomes xxxx1234.
+ uint64_t seq_no = (cap & ~mask) | partial;
+ // If the partial value is higher than the same partial piece from the cap,
+ // then the real value has to be lower. e.g., xxxx1234 can't become xxxx5678.
+ if (partial > (cap & mask)) {
+ seq_no -= 1ULL << partial_bits;
+ }
+ return seq_no;
+}
+
+// Determine the full epoch and sequence number from an expected and raw value.
+// The expected and output values are packed as they are in DTLS 1.2 and
+// earlier: with 16 bits of epoch and 48 bits of sequence number.
+uint64_t TlsRecordHeader::ParseSequenceNumber(uint64_t expected, uint32_t raw,
+ size_t seq_no_bits,
+ size_t epoch_bits) {
+ uint64_t epoch_mask = (1ULL << epoch_bits) - 1;
+ uint64_t epoch = RecoverSequenceNumber(
+ expected >> 48, (raw >> seq_no_bits) & epoch_mask, epoch_bits);
+ if (epoch > (expected >> 48)) {
+ // If the epoch has changed, reset the expected sequence number.
+ expected = 0;
+ } else {
+ // Otherwise, retain just the sequence number part.
+ expected &= (1ULL << 48) - 1;
+ }
+ uint64_t seq_no_mask = (1ULL << seq_no_bits) - 1;
+ uint64_t seq_no =
+ RecoverSequenceNumber(expected, raw & seq_no_mask, seq_no_bits);
+ return (epoch << 48) | seq_no;
+}
+
+bool TlsRecordHeader::Parse(bool is_dtls13, uint64_t seqno, TlsParser* parser,
DataBuffer* body) {
+ auto mark = parser->consumed();
+
if (!parser->Read(&content_type_)) {
return false;
}
- uint32_t version;
- if (!parser->Read(&version, 2)) {
+ if (is_dtls13) {
+ variant_ = ssl_variant_datagram;
+ version_ = SSL_LIBRARY_VERSION_TLS_1_3;
+
+#ifndef UNSAFE_FUZZER_MODE
+ // Deal with the 7 octet header.
+ if (content_type_ == kTlsApplicationDataType) {
+ uint32_t tmp;
+ if (!parser->Read(&tmp, 4)) {
+ return false;
+ }
+ sequence_number_ = ParseSequenceNumber(seqno, tmp, 30, 2);
+ if (!parser->ReadFromMark(&header_, parser->consumed() + 2 - mark,
+ mark)) {
+ return false;
+ }
+ return parser->ReadVariable(body, 2);
+ }
+
+ // The short, 2 octet header.
+ if ((content_type_ & 0xe0) == 0x20) {
+ uint32_t tmp;
+ if (!parser->Read(&tmp, 1)) {
+ return false;
+ }
+ // Need to use the low 5 bits of the first octet too.
+ tmp |= (content_type_ & 0x1f) << 8;
+ content_type_ = kTlsApplicationDataType;
+ sequence_number_ = ParseSequenceNumber(seqno, tmp, 12, 1);
+
+ if (!parser->ReadFromMark(&header_, parser->consumed() - mark, mark)) {
+ return false;
+ }
+ return parser->Read(body, parser->remaining());
+ }
+
+ // The full 13 octet header can only be used for a few types.
+ EXPECT_TRUE(content_type_ == kTlsAlertType ||
+ content_type_ == kTlsHandshakeType ||
+ content_type_ == kTlsAckType);
+#endif
+ }
+
+ uint32_t ver;
+ if (!parser->Read(&ver, 2)) {
return false;
}
- version_ = version;
+ if (!is_dtls13) {
+ variant_ = IsDtls(ver) ? ssl_variant_datagram : ssl_variant_stream;
+ }
+ version_ = NormalizeTlsVersion(ver);
- // If this is DTLS, overwrite the sequence number.
- if (IsDtls(version)) {
+ if (is_dtls()) {
+ // If this is DTLS, read the sequence number.
uint32_t tmp;
if (!parser->Read(&tmp, 4)) {
return false;
@@ -203,21 +335,40 @@ bool TlsRecordHeader::Parse(uint64_t sequence_number, TlsParser* parser,
}
sequence_number_ |= static_cast<uint64_t>(tmp);
} else {
- sequence_number_ = sequence_number;
+ sequence_number_ = seqno;
+ }
+ if (!parser->ReadFromMark(&header_, parser->consumed() + 2 - mark, mark)) {
+ return false;
}
return parser->ReadVariable(body, 2);
}
-size_t TlsRecordHeader::Write(DataBuffer* buffer, size_t offset,
- const DataBuffer& body) const {
+size_t TlsRecordHeader::WriteHeader(DataBuffer* buffer, size_t offset,
+ size_t body_len) const {
offset = buffer->Write(offset, content_type_, 1);
- offset = buffer->Write(offset, version_, 2);
- if (is_dtls()) {
- // write epoch (2 octet), and seqnum (6 octet)
- offset = buffer->Write(offset, sequence_number_ >> 32, 4);
- offset = buffer->Write(offset, sequence_number_ & 0xffffffff, 4);
+ if (is_dtls() && version_ >= SSL_LIBRARY_VERSION_TLS_1_3 &&
+ content_type() == kTlsApplicationDataType) {
+ // application_data records in TLS 1.3 have a different header format.
+ // Always use the long header here for simplicity.
+ uint32_t e = (sequence_number_ >> 48) & 0x3;
+ uint32_t seqno = sequence_number_ & ((1ULL << 30) - 1);
+ offset = buffer->Write(offset, (e << 30) | seqno, 4);
+ } else {
+ uint16_t v = is_dtls() ? TlsVersionToDtlsVersion(version_) : version_;
+ offset = buffer->Write(offset, v, 2);
+ if (is_dtls()) {
+ // write epoch (2 octet), and seqnum (6 octet)
+ offset = buffer->Write(offset, sequence_number_ >> 32, 4);
+ offset = buffer->Write(offset, sequence_number_ & 0xffffffff, 4);
+ }
}
- offset = buffer->Write(offset, body.len(), 2);
+ offset = buffer->Write(offset, body_len, 2);
+ return offset;
+}
+
+size_t TlsRecordHeader::Write(DataBuffer* buffer, size_t offset,
+ const DataBuffer& body) const {
+ offset = WriteHeader(buffer, offset, body.len());
offset = buffer->Write(offset, body);
return offset;
}
@@ -259,7 +410,7 @@ bool TlsRecordFilter::Unprotect(const TlsRecordHeader& header,
bool TlsRecordFilter::Protect(const TlsRecordHeader& header,
uint8_t inner_content_type,
const DataBuffer& plaintext,
- DataBuffer* ciphertext) {
+ DataBuffer* ciphertext, size_t padding) {
if (!cipher_spec_ || header.content_type() != kTlsApplicationDataType) {
*ciphertext = plaintext;
return true;
@@ -267,8 +418,10 @@ bool TlsRecordFilter::Protect(const TlsRecordHeader& header,
if (g_ssl_gtest_verbose) {
std::cerr << "protect: " << header.sequence_number() << std::endl;
}
- DataBuffer padded = plaintext;
- padded.Write(padded.len(), inner_content_type, 1);
+ DataBuffer padded;
+ padded.Allocate(plaintext.len() + 1 + padding);
+ size_t offset = padded.Write(0, plaintext.data(), plaintext.len());
+ padded.Write(offset, inner_content_type, 1);
return cipher_spec_->Protect(header, padded, ciphertext);
}
@@ -406,6 +559,7 @@ bool TlsHandshakeFilter::HandshakeHeader::Parse(
const DataBuffer& preceding_fragment, DataBuffer* body, bool* complete) {
*complete = false;
+ variant_ = record_header.variant();
version_ = record_header.version();
if (!parser->Read(&handshake_type_)) {
return false; // malformed
@@ -487,10 +641,10 @@ PacketFilter::Action TlsConversationRecorder::FilterRecord(
return KEEP;
}
-PacketFilter::Action TlsHeaderRecorder::FilterRecord(
- const TlsRecordHeader& header, const DataBuffer& input,
- DataBuffer* output) {
- headers_.push_back(header);
+PacketFilter::Action TlsHeaderRecorder::FilterRecord(const TlsRecordHeader& hdr,
+ const DataBuffer& input,
+ DataBuffer* output) {
+ headers_.push_back(hdr);
return KEEP;
}
diff --git a/security/nss/gtests/ssl_gtest/tls_filter.h b/security/nss/gtests/ssl_gtest/tls_filter.h
index 1bbe190ab..effda4aa0 100644
--- a/security/nss/gtests/ssl_gtest/tls_filter.h
+++ b/security/nss/gtests/ssl_gtest/tls_filter.h
@@ -11,7 +11,7 @@
#include <memory>
#include <set>
#include <vector>
-
+#include "sslt.h"
#include "test_io.h"
#include "tls_agent.h"
#include "tls_parser.h"
@@ -27,43 +27,57 @@ class TlsCipherSpec;
class TlsVersioned {
public:
- TlsVersioned() : version_(0) {}
- explicit TlsVersioned(uint16_t version) : version_(version) {}
+ TlsVersioned() : variant_(ssl_variant_stream), version_(0) {}
+ TlsVersioned(SSLProtocolVariant var, uint16_t ver)
+ : variant_(var), version_(ver) {}
- bool is_dtls() const { return IsDtls(version_); }
+ bool is_dtls() const { return variant_ == ssl_variant_datagram; }
+ SSLProtocolVariant variant() const { return variant_; }
uint16_t version() const { return version_; }
void WriteStream(std::ostream& stream) const;
protected:
+ SSLProtocolVariant variant_;
uint16_t version_;
};
class TlsRecordHeader : public TlsVersioned {
public:
- TlsRecordHeader() : TlsVersioned(), content_type_(0), sequence_number_(0) {}
- TlsRecordHeader(uint16_t version, uint8_t content_type,
- uint64_t sequence_number)
- : TlsVersioned(version),
- content_type_(content_type),
- sequence_number_(sequence_number) {}
+ TlsRecordHeader()
+ : TlsVersioned(), content_type_(0), sequence_number_(0), header_() {}
+ TlsRecordHeader(SSLProtocolVariant var, uint16_t ver, uint8_t ct,
+ uint64_t seqno)
+ : TlsVersioned(var, ver),
+ content_type_(ct),
+ sequence_number_(seqno),
+ header_() {}
uint8_t content_type() const { return content_type_; }
uint64_t sequence_number() const { return sequence_number_; }
uint16_t epoch() const {
return static_cast<uint16_t>(sequence_number_ >> 48);
}
- size_t header_length() const { return is_dtls() ? 13 : 5; }
+ size_t header_length() const;
+ const DataBuffer& header() const { return header_; }
// Parse the header; return true if successful; body in an outparam if OK.
- bool Parse(uint64_t sequence_number, TlsParser* parser, DataBuffer* body);
+ bool Parse(bool is_dtls13, uint64_t sequence_number, TlsParser* parser,
+ DataBuffer* body);
// Write the header and body to a buffer at the given offset.
// Return the offset of the end of the write.
size_t Write(DataBuffer* buffer, size_t offset, const DataBuffer& body) const;
+ size_t WriteHeader(DataBuffer* buffer, size_t offset, size_t body_len) const;
private:
+ static uint64_t RecoverSequenceNumber(uint64_t expected, uint32_t partial,
+ size_t partial_bits);
+ static uint64_t ParseSequenceNumber(uint64_t expected, uint32_t raw,
+ size_t seq_no_bits, size_t epoch_bits);
+
uint8_t content_type_;
uint64_t sequence_number_;
+ DataBuffer header_;
};
struct TlsRecord {
@@ -83,8 +97,8 @@ inline std::shared_ptr<T> MakeTlsFilter(const std::shared_ptr<TlsAgent>& agent,
// Abstract filter that operates on entire (D)TLS records.
class TlsRecordFilter : public PacketFilter {
public:
- TlsRecordFilter(const std::shared_ptr<TlsAgent>& agent)
- : agent_(agent),
+ TlsRecordFilter(const std::shared_ptr<TlsAgent>& a)
+ : agent_(a),
count_(0),
cipher_spec_(),
dropped_record_(false),
@@ -106,7 +120,8 @@ class TlsRecordFilter : public PacketFilter {
bool Unprotect(const TlsRecordHeader& header, const DataBuffer& cipherText,
uint8_t* inner_content_type, DataBuffer* plaintext);
bool Protect(const TlsRecordHeader& header, uint8_t inner_content_type,
- const DataBuffer& plaintext, DataBuffer* ciphertext);
+ const DataBuffer& plaintext, DataBuffer* ciphertext,
+ size_t padding = 0);
protected:
// There are two filter functions which can be overriden. Both are
@@ -130,6 +145,8 @@ class TlsRecordFilter : public PacketFilter {
return KEEP;
}
+ bool is_dtls13() const;
+
private:
static void CipherSpecChanged(void* arg, PRBool sending,
ssl3CipherSpec* newSpec);
@@ -183,13 +200,11 @@ inline std::ostream& operator<<(std::ostream& stream,
// records and that they don't span records or anything crazy like that.
class TlsHandshakeFilter : public TlsRecordFilter {
public:
- TlsHandshakeFilter(const std::shared_ptr<TlsAgent>& agent)
- : TlsRecordFilter(agent), handshake_types_(), preceding_fragment_() {}
- TlsHandshakeFilter(const std::shared_ptr<TlsAgent>& agent,
+ TlsHandshakeFilter(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a), handshake_types_(), preceding_fragment_() {}
+ TlsHandshakeFilter(const std::shared_ptr<TlsAgent>& a,
const std::set<uint8_t>& types)
- : TlsRecordFilter(agent),
- handshake_types_(types),
- preceding_fragment_() {}
+ : TlsRecordFilter(a), handshake_types_(types), preceding_fragment_() {}
// This filter can be set to be selective based on handshake message type. If
// this function isn't used (or the set is empty), then all handshake messages
@@ -243,12 +258,12 @@ class TlsHandshakeFilter : public TlsRecordFilter {
// Make a copy of the first instance of a handshake message.
class TlsHandshakeRecorder : public TlsHandshakeFilter {
public:
- TlsHandshakeRecorder(const std::shared_ptr<TlsAgent>& agent,
+ TlsHandshakeRecorder(const std::shared_ptr<TlsAgent>& a,
uint8_t handshake_type)
- : TlsHandshakeFilter(agent, {handshake_type}), buffer_() {}
- TlsHandshakeRecorder(const std::shared_ptr<TlsAgent>& agent,
+ : TlsHandshakeFilter(a, {handshake_type}), buffer_() {}
+ TlsHandshakeRecorder(const std::shared_ptr<TlsAgent>& a,
const std::set<uint8_t>& handshake_types)
- : TlsHandshakeFilter(agent, handshake_types), buffer_() {}
+ : TlsHandshakeFilter(a, handshake_types), buffer_() {}
virtual PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
const DataBuffer& input,
@@ -265,10 +280,10 @@ class TlsHandshakeRecorder : public TlsHandshakeFilter {
// Replace all instances of a handshake message.
class TlsInspectorReplaceHandshakeMessage : public TlsHandshakeFilter {
public:
- TlsInspectorReplaceHandshakeMessage(const std::shared_ptr<TlsAgent>& agent,
+ TlsInspectorReplaceHandshakeMessage(const std::shared_ptr<TlsAgent>& a,
uint8_t handshake_type,
const DataBuffer& replacement)
- : TlsHandshakeFilter(agent, {handshake_type}), buffer_(replacement) {}
+ : TlsHandshakeFilter(a, {handshake_type}), buffer_(replacement) {}
virtual PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
const DataBuffer& input,
@@ -281,10 +296,10 @@ class TlsInspectorReplaceHandshakeMessage : public TlsHandshakeFilter {
// Make a copy of each record of a given type.
class TlsRecordRecorder : public TlsRecordFilter {
public:
- TlsRecordRecorder(const std::shared_ptr<TlsAgent>& agent, uint8_t ct)
- : TlsRecordFilter(agent), filter_(true), ct_(ct), records_() {}
- TlsRecordRecorder(const std::shared_ptr<TlsAgent>& agent)
- : TlsRecordFilter(agent),
+ TlsRecordRecorder(const std::shared_ptr<TlsAgent>& a, uint8_t ct)
+ : TlsRecordFilter(a), filter_(true), ct_(ct), records_() {}
+ TlsRecordRecorder(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a),
filter_(false),
ct_(content_handshake), // dummy (<optional> is C++14)
records_() {}
@@ -306,9 +321,9 @@ class TlsRecordRecorder : public TlsRecordFilter {
// Make a copy of the complete conversation.
class TlsConversationRecorder : public TlsRecordFilter {
public:
- TlsConversationRecorder(const std::shared_ptr<TlsAgent>& agent,
+ TlsConversationRecorder(const std::shared_ptr<TlsAgent>& a,
DataBuffer& buffer)
- : TlsRecordFilter(agent), buffer_(buffer) {}
+ : TlsRecordFilter(a), buffer_(buffer) {}
virtual PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
const DataBuffer& input,
@@ -321,8 +336,7 @@ class TlsConversationRecorder : public TlsRecordFilter {
// Make a copy of the records
class TlsHeaderRecorder : public TlsRecordFilter {
public:
- TlsHeaderRecorder(const std::shared_ptr<TlsAgent>& agent)
- : TlsRecordFilter(agent) {}
+ TlsHeaderRecorder(const std::shared_ptr<TlsAgent>& a) : TlsRecordFilter(a) {}
virtual PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
const DataBuffer& input,
DataBuffer* output);
@@ -359,15 +373,15 @@ typedef std::function<bool(TlsParser* parser, const TlsVersioned& header)>
class TlsExtensionFilter : public TlsHandshakeFilter {
public:
- TlsExtensionFilter(const std::shared_ptr<TlsAgent>& agent)
- : TlsHandshakeFilter(agent,
+ TlsExtensionFilter(const std::shared_ptr<TlsAgent>& a)
+ : TlsHandshakeFilter(a,
{kTlsHandshakeClientHello, kTlsHandshakeServerHello,
kTlsHandshakeHelloRetryRequest,
kTlsHandshakeEncryptedExtensions}) {}
- TlsExtensionFilter(const std::shared_ptr<TlsAgent>& agent,
+ TlsExtensionFilter(const std::shared_ptr<TlsAgent>& a,
const std::set<uint8_t>& types)
- : TlsHandshakeFilter(agent, types) {}
+ : TlsHandshakeFilter(a, types) {}
static bool FindExtensions(TlsParser* parser, const HandshakeHeader& header);
@@ -388,9 +402,9 @@ class TlsExtensionFilter : public TlsHandshakeFilter {
class TlsExtensionCapture : public TlsExtensionFilter {
public:
- TlsExtensionCapture(const std::shared_ptr<TlsAgent>& agent, uint16_t ext,
+ TlsExtensionCapture(const std::shared_ptr<TlsAgent>& a, uint16_t ext,
bool last = false)
- : TlsExtensionFilter(agent),
+ : TlsExtensionFilter(a),
extension_(ext),
captured_(false),
last_(last),
@@ -413,9 +427,9 @@ class TlsExtensionCapture : public TlsExtensionFilter {
class TlsExtensionReplacer : public TlsExtensionFilter {
public:
- TlsExtensionReplacer(const std::shared_ptr<TlsAgent>& agent,
- uint16_t extension, const DataBuffer& data)
- : TlsExtensionFilter(agent), extension_(extension), data_(data) {}
+ TlsExtensionReplacer(const std::shared_ptr<TlsAgent>& a, uint16_t extension,
+ const DataBuffer& data)
+ : TlsExtensionFilter(a), extension_(extension), data_(data) {}
PacketFilter::Action FilterExtension(uint16_t extension_type,
const DataBuffer& input,
DataBuffer* output) override;
@@ -427,9 +441,8 @@ class TlsExtensionReplacer : public TlsExtensionFilter {
class TlsExtensionDropper : public TlsExtensionFilter {
public:
- TlsExtensionDropper(const std::shared_ptr<TlsAgent>& agent,
- uint16_t extension)
- : TlsExtensionFilter(agent), extension_(extension) {}
+ TlsExtensionDropper(const std::shared_ptr<TlsAgent>& a, uint16_t extension)
+ : TlsExtensionFilter(a), extension_(extension) {}
PacketFilter::Action FilterExtension(uint16_t extension_type,
const DataBuffer&, DataBuffer*) override;
@@ -439,9 +452,9 @@ class TlsExtensionDropper : public TlsExtensionFilter {
class TlsExtensionInjector : public TlsHandshakeFilter {
public:
- TlsExtensionInjector(const std::shared_ptr<TlsAgent>& agent, uint16_t ext,
+ TlsExtensionInjector(const std::shared_ptr<TlsAgent>& a, uint16_t ext,
const DataBuffer& data)
- : TlsHandshakeFilter(agent), extension_(ext), data_(data) {}
+ : TlsHandshakeFilter(a), extension_(ext), data_(data) {}
protected:
PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
@@ -453,7 +466,6 @@ class TlsExtensionInjector : public TlsHandshakeFilter {
const DataBuffer data_;
};
-class TlsAgent;
typedef std::function<void(void)> VoidFunction;
class AfterRecordN : public TlsRecordFilter {
@@ -495,6 +507,22 @@ class TlsClientHelloVersionChanger : public TlsHandshakeFilter {
std::weak_ptr<TlsAgent> server_;
};
+// Damage a record.
+class TlsRecordLastByteDamager : public TlsRecordFilter {
+ public:
+ TlsRecordLastByteDamager(const std::shared_ptr<TlsAgent>& a)
+ : TlsRecordFilter(a) {}
+
+ protected:
+ PacketFilter::Action FilterRecord(const TlsRecordHeader& header,
+ const DataBuffer& data,
+ DataBuffer* changed) override {
+ *changed = data;
+ changed->data()[changed->len() - 1]++;
+ return CHANGE;
+ }
+};
+
// This class selectively drops complete writes. This relies on the fact that
// writes in libssl are on record boundaries.
class SelectiveDropFilter : public PacketFilter {
@@ -515,16 +543,16 @@ class SelectiveDropFilter : public PacketFilter {
// datagram, we just drop one.
class SelectiveRecordDropFilter : public TlsRecordFilter {
public:
- SelectiveRecordDropFilter(const std::shared_ptr<TlsAgent>& agent,
+ SelectiveRecordDropFilter(const std::shared_ptr<TlsAgent>& a,
uint32_t pattern, bool enabled = true)
- : TlsRecordFilter(agent), pattern_(pattern), counter_(0) {
+ : TlsRecordFilter(a), pattern_(pattern), counter_(0) {
if (!enabled) {
Disable();
}
}
- SelectiveRecordDropFilter(const std::shared_ptr<TlsAgent>& agent,
+ SelectiveRecordDropFilter(const std::shared_ptr<TlsAgent>& a,
std::initializer_list<size_t> records)
- : SelectiveRecordDropFilter(agent, ToPattern(records), true) {}
+ : SelectiveRecordDropFilter(a, ToPattern(records), true) {}
void Reset(uint32_t pattern) {
counter_ = 0;
@@ -551,10 +579,9 @@ class SelectiveRecordDropFilter : public TlsRecordFilter {
// Set the version number in the ClientHello.
class TlsClientHelloVersionSetter : public TlsHandshakeFilter {
public:
- TlsClientHelloVersionSetter(const std::shared_ptr<TlsAgent>& agent,
+ TlsClientHelloVersionSetter(const std::shared_ptr<TlsAgent>& a,
uint16_t version)
- : TlsHandshakeFilter(agent, {kTlsHandshakeClientHello}),
- version_(version) {}
+ : TlsHandshakeFilter(a, {kTlsHandshakeClientHello}), version_(version) {}
virtual PacketFilter::Action FilterHandshake(const HandshakeHeader& header,
const DataBuffer& input,
@@ -567,8 +594,8 @@ class TlsClientHelloVersionSetter : public TlsHandshakeFilter {
// Damages the last byte of a handshake message.
class TlsLastByteDamager : public TlsHandshakeFilter {
public:
- TlsLastByteDamager(const std::shared_ptr<TlsAgent>& agent, uint8_t type)
- : TlsHandshakeFilter(agent), type_(type) {}
+ TlsLastByteDamager(const std::shared_ptr<TlsAgent>& a, uint8_t type)
+ : TlsHandshakeFilter(a), type_(type) {}
PacketFilter::Action FilterHandshake(
const TlsHandshakeFilter::HandshakeHeader& header,
const DataBuffer& input, DataBuffer* output) override {
@@ -588,9 +615,9 @@ class TlsLastByteDamager : public TlsHandshakeFilter {
class SelectedCipherSuiteReplacer : public TlsHandshakeFilter {
public:
- SelectedCipherSuiteReplacer(const std::shared_ptr<TlsAgent>& agent,
+ SelectedCipherSuiteReplacer(const std::shared_ptr<TlsAgent>& a,
uint16_t suite)
- : TlsHandshakeFilter(agent, {kTlsHandshakeServerHello}),
+ : TlsHandshakeFilter(a, {kTlsHandshakeServerHello}),
cipher_suite_(suite) {}
protected:
diff --git a/security/nss/gtests/ssl_gtest/tls_protect.cc b/security/nss/gtests/ssl_gtest/tls_protect.cc
index 6c945f66e..c715a36a6 100644
--- a/security/nss/gtests/ssl_gtest/tls_protect.cc
+++ b/security/nss/gtests/ssl_gtest/tls_protect.cc
@@ -54,17 +54,17 @@ bool AeadCipher::AeadInner(bool decrypt, void *params, size_t param_length,
return rv == SECSuccess;
}
-bool AeadCipherAesGcm::Aead(bool decrypt, uint64_t seq, const uint8_t *in,
- size_t inlen, uint8_t *out, size_t *outlen,
- size_t maxlen) {
+bool AeadCipherAesGcm::Aead(bool decrypt, const uint8_t *hdr, size_t hdr_len,
+ uint64_t seq, const uint8_t *in, size_t inlen,
+ uint8_t *out, size_t *outlen, size_t maxlen) {
CK_GCM_PARAMS aeadParams;
unsigned char nonce[12];
memset(&aeadParams, 0, sizeof(aeadParams));
aeadParams.pIv = nonce;
aeadParams.ulIvLen = sizeof(nonce);
- aeadParams.pAAD = NULL;
- aeadParams.ulAADLen = 0;
+ aeadParams.pAAD = const_cast<uint8_t *>(hdr);
+ aeadParams.ulAADLen = hdr_len;
aeadParams.ulTagBits = 128;
FormatNonce(seq, nonce);
@@ -72,7 +72,8 @@ bool AeadCipherAesGcm::Aead(bool decrypt, uint64_t seq, const uint8_t *in,
in, inlen, out, outlen, maxlen);
}
-bool AeadCipherChacha20Poly1305::Aead(bool decrypt, uint64_t seq,
+bool AeadCipherChacha20Poly1305::Aead(bool decrypt, const uint8_t *hdr,
+ size_t hdr_len, uint64_t seq,
const uint8_t *in, size_t inlen,
uint8_t *out, size_t *outlen,
size_t maxlen) {
@@ -82,8 +83,8 @@ bool AeadCipherChacha20Poly1305::Aead(bool decrypt, uint64_t seq,
memset(&aeadParams, 0, sizeof(aeadParams));
aeadParams.pNonce = nonce;
aeadParams.ulNonceLen = sizeof(nonce);
- aeadParams.pAAD = NULL;
- aeadParams.ulAADLen = 0;
+ aeadParams.pAAD = const_cast<uint8_t *>(hdr);
+ aeadParams.ulAADLen = hdr_len;
aeadParams.ulTagLen = 16;
FormatNonce(seq, nonce);
@@ -91,9 +92,9 @@ bool AeadCipherChacha20Poly1305::Aead(bool decrypt, uint64_t seq,
in, inlen, out, outlen, maxlen);
}
-bool TlsCipherSpec::Init(uint16_t epoch, SSLCipherAlgorithm cipher,
+bool TlsCipherSpec::Init(uint16_t epoc, SSLCipherAlgorithm cipher,
PK11SymKey *key, const uint8_t *iv) {
- epoch_ = epoch;
+ epoch_ = epoc;
switch (cipher) {
case ssl_calg_aes_gcm:
aead_.reset(new AeadCipherAesGcm());
@@ -114,10 +115,12 @@ bool TlsCipherSpec::Unprotect(const TlsRecordHeader &header,
// Make space.
plaintext->Allocate(ciphertext.len());
+ auto header_bytes = header.header();
size_t len;
bool ret =
- aead_->Aead(true, header.sequence_number(), ciphertext.data(),
- ciphertext.len(), plaintext->data(), &len, plaintext->len());
+ aead_->Aead(true, header_bytes.data(), header_bytes.len(),
+ header.sequence_number(), ciphertext.data(), ciphertext.len(),
+ plaintext->data(), &len, plaintext->len());
if (!ret) return false;
plaintext->Truncate(len);
@@ -133,9 +136,13 @@ bool TlsCipherSpec::Protect(const TlsRecordHeader &header,
ciphertext->Allocate(plaintext.len() +
32); // Room for any plausible auth tag
size_t len;
+
+ DataBuffer header_bytes;
+ (void)header.WriteHeader(&header_bytes, 0, plaintext.len() + 16);
bool ret =
- aead_->Aead(false, header.sequence_number(), plaintext.data(),
- plaintext.len(), ciphertext->data(), &len, ciphertext->len());
+ aead_->Aead(false, header_bytes.data(), header_bytes.len(),
+ header.sequence_number(), plaintext.data(), plaintext.len(),
+ ciphertext->data(), &len, ciphertext->len());
if (!ret) return false;
ciphertext->Truncate(len);
diff --git a/security/nss/gtests/ssl_gtest/tls_protect.h b/security/nss/gtests/ssl_gtest/tls_protect.h
index 93ffd6322..6f129a4eb 100644
--- a/security/nss/gtests/ssl_gtest/tls_protect.h
+++ b/security/nss/gtests/ssl_gtest/tls_protect.h
@@ -23,8 +23,9 @@ class AeadCipher {
virtual ~AeadCipher();
bool Init(PK11SymKey *key, const uint8_t *iv);
- virtual bool Aead(bool decrypt, uint64_t seq, const uint8_t *in, size_t inlen,
- uint8_t *out, size_t *outlen, size_t maxlen) = 0;
+ virtual bool Aead(bool decrypt, const uint8_t *hdr, size_t hdr_len,
+ uint64_t seq, const uint8_t *in, size_t inlen, uint8_t *out,
+ size_t *outlen, size_t maxlen) = 0;
protected:
void FormatNonce(uint64_t seq, uint8_t *nonce);
@@ -42,8 +43,9 @@ class AeadCipherChacha20Poly1305 : public AeadCipher {
AeadCipherChacha20Poly1305() : AeadCipher(CKM_NSS_CHACHA20_POLY1305) {}
protected:
- bool Aead(bool decrypt, uint64_t seq, const uint8_t *in, size_t inlen,
- uint8_t *out, size_t *outlen, size_t maxlen);
+ bool Aead(bool decrypt, const uint8_t *hdr, size_t hdr_len, uint64_t seq,
+ const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen,
+ size_t maxlen);
};
class AeadCipherAesGcm : public AeadCipher {
@@ -51,8 +53,9 @@ class AeadCipherAesGcm : public AeadCipher {
AeadCipherAesGcm() : AeadCipher(CKM_AES_GCM) {}
protected:
- bool Aead(bool decrypt, uint64_t seq, const uint8_t *in, size_t inlen,
- uint8_t *out, size_t *outlen, size_t maxlen);
+ bool Aead(bool decrypt, const uint8_t *hdr, size_t hdr_len, uint64_t seq,
+ const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen,
+ size_t maxlen);
};
// Our analog of ssl3CipherSpec
diff --git a/security/nss/lib/certdb/crl.c b/security/nss/lib/certdb/crl.c
index d1c48dfba..63adcad46 100644
--- a/security/nss/lib/certdb/crl.c
+++ b/security/nss/lib/certdb/crl.c
@@ -898,13 +898,13 @@ static PLHashAllocOps preAllocOps = { PreAllocTable, PreFreeTable,
/* destructor for PreAllocator object */
void
-PreAllocator_Destroy(PreAllocator* PreAllocator)
+PreAllocator_Destroy(PreAllocator* allocator)
{
- if (!PreAllocator) {
+ if (!allocator) {
return;
}
- if (PreAllocator->arena) {
- PORT_FreeArena(PreAllocator->arena, PR_TRUE);
+ if (allocator->arena) {
+ PORT_FreeArena(allocator->arena, PR_TRUE);
}
}
diff --git a/security/nss/lib/ckfw/Makefile b/security/nss/lib/ckfw/Makefile
index 484dbb511..2902bef48 100644
--- a/security/nss/lib/ckfw/Makefile
+++ b/security/nss/lib/ckfw/Makefile
@@ -33,7 +33,3 @@ ifdef NSS_BUILD_CAPI
DIRS += capi
endif
endif
-
-#ifeq ($(OS_ARCH), Darwin)
-#DIRS += nssmkey
-#endif
diff --git a/security/nss/lib/ckfw/builtins/certdata.txt b/security/nss/lib/ckfw/builtins/certdata.txt
index 5d2baf3a5..d291f28a5 100644
--- a/security/nss/lib/ckfw/builtins/certdata.txt
+++ b/security/nss/lib/ckfw/builtins/certdata.txt
@@ -7241,163 +7241,6 @@ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
#
-# Certificate "TC TrustCenter Class 3 CA II"
-#
-# Issuer: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE
-# Serial Number:4a:47:00:01:00:02:e5:a0:5d:d6:3f:00:51:bf
-# Subject: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE
-# Not Valid Before: Thu Jan 12 14:41:57 2006
-# Not Valid After : Wed Dec 31 22:59:59 2025
-# Fingerprint (MD5): 56:5F:AA:80:61:12:17:F6:67:21:E6:2B:6D:61:56:8E
-# Fingerprint (SHA1): 80:25:EF:F4:6E:70:C8:D4:72:24:65:84:FE:40:3B:8A:8D:6A:DB:F5
-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "TC TrustCenter Class 3 CA II"
-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
-CKA_SUBJECT MULTILINE_OCTAL
-\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061
-\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165
-\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060
-\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164
-\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103
-\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124
-\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163
-\040\063\040\103\101\040\111\111
-END
-CKA_ID UTF8 "0"
-CKA_ISSUER MULTILINE_OCTAL
-\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061
-\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165
-\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060
-\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164
-\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103
-\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124
-\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163
-\040\063\040\103\101\040\111\111
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\016\112\107\000\001\000\002\345\240\135\326\077\000\121\277
-END
-CKA_VALUE MULTILINE_OCTAL
-\060\202\004\252\060\202\003\222\240\003\002\001\002\002\016\112
-\107\000\001\000\002\345\240\135\326\077\000\121\277\060\015\006
-\011\052\206\110\206\367\015\001\001\005\005\000\060\166\061\013
-\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006
-\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145
-\156\164\145\162\040\107\155\142\110\061\042\060\040\006\003\125
-\004\013\023\031\124\103\040\124\162\165\163\164\103\145\156\164
-\145\162\040\103\154\141\163\163\040\063\040\103\101\061\045\060
-\043\006\003\125\004\003\023\034\124\103\040\124\162\165\163\164
-\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103
-\101\040\111\111\060\036\027\015\060\066\060\061\061\062\061\064
-\064\061\065\067\132\027\015\062\065\061\062\063\061\062\062\065
-\071\065\071\132\060\166\061\013\060\011\006\003\125\004\006\023
-\002\104\105\061\034\060\032\006\003\125\004\012\023\023\124\103
-\040\124\162\165\163\164\103\145\156\164\145\162\040\107\155\142
-\110\061\042\060\040\006\003\125\004\013\023\031\124\103\040\124
-\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163
-\040\063\040\103\101\061\045\060\043\006\003\125\004\003\023\034
-\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040\103
-\154\141\163\163\040\063\040\103\101\040\111\111\060\202\001\042
-\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003
-\202\001\017\000\060\202\001\012\002\202\001\001\000\264\340\273
-\121\273\071\134\213\004\305\114\171\034\043\206\061\020\143\103
-\125\047\077\306\105\307\244\075\354\011\015\032\036\040\302\126
-\036\336\033\067\007\060\042\057\157\361\006\361\253\255\326\310
-\253\141\243\057\103\304\260\262\055\374\303\226\151\173\176\212
-\344\314\300\071\022\220\102\140\311\314\065\150\356\332\137\220
-\126\137\315\034\115\133\130\111\353\016\001\117\144\372\054\074
-\211\130\330\057\056\342\260\150\351\042\073\165\211\326\104\032
-\145\362\033\227\046\035\050\155\254\350\275\131\035\053\044\366
-\326\204\003\146\210\044\000\170\140\361\370\253\376\002\262\153
-\373\042\373\065\346\026\321\255\366\056\022\344\372\065\152\345
-\031\271\135\333\073\036\032\373\323\377\025\024\010\330\011\152
-\272\105\235\024\171\140\175\257\100\212\007\163\263\223\226\323
-\164\064\215\072\067\051\336\134\354\365\356\056\061\302\040\334
-\276\361\117\177\043\122\331\133\342\144\331\234\252\007\010\265
-\105\275\321\320\061\301\253\124\237\251\322\303\142\140\003\361
-\273\071\112\222\112\075\012\271\235\305\240\376\067\002\003\001
-\000\001\243\202\001\064\060\202\001\060\060\017\006\003\125\035
-\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125
-\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125
-\035\016\004\026\004\024\324\242\374\237\263\303\330\003\323\127
-\134\007\244\320\044\247\300\362\000\324\060\201\355\006\003\125
-\035\037\004\201\345\060\201\342\060\201\337\240\201\334\240\201
-\331\206\065\150\164\164\160\072\057\057\167\167\167\056\164\162
-\165\163\164\143\145\156\164\145\162\056\144\145\057\143\162\154
-\057\166\062\057\164\143\137\143\154\141\163\163\137\063\137\143
-\141\137\111\111\056\143\162\154\206\201\237\154\144\141\160\072
-\057\057\167\167\167\056\164\162\165\163\164\143\145\156\164\145
-\162\056\144\145\057\103\116\075\124\103\045\062\060\124\162\165
-\163\164\103\145\156\164\145\162\045\062\060\103\154\141\163\163
-\045\062\060\063\045\062\060\103\101\045\062\060\111\111\054\117
-\075\124\103\045\062\060\124\162\165\163\164\103\145\156\164\145
-\162\045\062\060\107\155\142\110\054\117\125\075\162\157\157\164
-\143\145\162\164\163\054\104\103\075\164\162\165\163\164\143\145
-\156\164\145\162\054\104\103\075\144\145\077\143\145\162\164\151
-\146\151\143\141\164\145\122\145\166\157\143\141\164\151\157\156
-\114\151\163\164\077\142\141\163\145\077\060\015\006\011\052\206
-\110\206\367\015\001\001\005\005\000\003\202\001\001\000\066\140
-\344\160\367\006\040\103\331\043\032\102\362\370\243\262\271\115
-\212\264\363\302\232\125\061\174\304\073\147\232\264\337\115\016
-\212\223\112\027\213\033\215\312\211\341\317\072\036\254\035\361
-\234\062\264\216\131\166\242\101\205\045\067\240\023\320\365\174
-\116\325\352\226\342\156\162\301\273\052\376\154\156\370\221\230
-\106\374\311\033\127\133\352\310\032\073\077\260\121\230\074\007
-\332\054\131\001\332\213\104\350\341\164\375\247\150\335\124\272
-\203\106\354\310\106\265\370\257\227\300\073\011\034\217\316\162
-\226\075\063\126\160\274\226\313\330\325\175\040\232\203\237\032
-\334\071\361\305\162\243\021\003\375\073\102\122\051\333\350\001
-\367\233\136\214\326\215\206\116\031\372\274\034\276\305\041\245
-\207\236\170\056\066\333\011\161\243\162\064\370\154\343\006\011
-\362\136\126\245\323\335\230\372\324\346\006\364\360\266\040\143
-\113\352\051\275\252\202\146\036\373\201\252\247\067\255\023\030
-\346\222\303\201\301\063\273\210\036\241\347\342\264\275\061\154
-\016\121\075\157\373\226\126\200\342\066\027\321\334\344
-END
-CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
-
-# Trust for Certificate "TC TrustCenter Class 3 CA II"
-# Issuer: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE
-# Serial Number:4a:47:00:01:00:02:e5:a0:5d:d6:3f:00:51:bf
-# Subject: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE
-# Not Valid Before: Thu Jan 12 14:41:57 2006
-# Not Valid After : Wed Dec 31 22:59:59 2025
-# Fingerprint (MD5): 56:5F:AA:80:61:12:17:F6:67:21:E6:2B:6D:61:56:8E
-# Fingerprint (SHA1): 80:25:EF:F4:6E:70:C8:D4:72:24:65:84:FE:40:3B:8A:8D:6A:DB:F5
-CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "TC TrustCenter Class 3 CA II"
-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
-\200\045\357\364\156\160\310\324\162\044\145\204\376\100\073\212
-\215\152\333\365
-END
-CKA_CERT_MD5_HASH MULTILINE_OCTAL
-\126\137\252\200\141\022\027\366\147\041\346\053\155\141\126\216
-END
-CKA_ISSUER MULTILINE_OCTAL
-\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061
-\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165
-\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060
-\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164
-\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103
-\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124
-\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163
-\040\063\040\103\101\040\111\111
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\016\112\107\000\001\000\002\345\240\135\326\077\000\121\277
-END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-
-#
# Certificate "Deutsche Telekom Root CA 2"
#
# Issuer: CN=Deutsche Telekom Root CA 2,OU=T-TeleSec Trust Center,O=Deutsche Telekom AG,C=DE
@@ -17883,155 +17726,6 @@ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
#
-# Certificate "S-TRUST Universal Root CA"
-#
-# Issuer: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE
-# Serial Number:60:56:c5:4b:23:40:5b:64:d4:ed:25:da:d9:d6:1e:1e
-# Subject: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE
-# Not Valid Before: Tue Oct 22 00:00:00 2013
-# Not Valid After : Thu Oct 21 23:59:59 2038
-# Fingerprint (SHA-256): D8:0F:EF:91:0A:E3:F1:04:72:3B:04:5C:EC:2D:01:9F:44:1C:E6:21:3A:DF:15:67:91:E7:0C:17:90:11:0A:31
-# Fingerprint (SHA1): 1B:3D:11:14:EA:7A:0F:95:58:54:41:95:BF:6B:25:82:AB:40:CE:9A
-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "S-TRUST Universal Root CA"
-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
-CKA_SUBJECT MULTILINE_OCTAL
-\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105
-\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163
-\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040
-\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006
-\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145
-\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166
-\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123
-\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154
-\040\122\157\157\164\040\103\101
-END
-CKA_ID UTF8 "0"
-CKA_ISSUER MULTILINE_OCTAL
-\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105
-\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163
-\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040
-\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006
-\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145
-\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166
-\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123
-\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154
-\040\122\157\157\164\040\103\101
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\020\140\126\305\113\043\100\133\144\324\355\045\332\331\326
-\036\036
-END
-CKA_VALUE MULTILINE_OCTAL
-\060\202\003\330\060\202\002\300\240\003\002\001\002\002\020\140
-\126\305\113\043\100\133\144\324\355\045\332\331\326\036\036\060
-\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201
-\205\061\013\060\011\006\003\125\004\006\023\002\104\105\061\051
-\060\047\006\003\125\004\012\023\040\104\145\165\164\163\143\150
-\145\162\040\123\160\141\162\153\141\163\163\145\156\040\126\145
-\162\154\141\147\040\107\155\142\110\061\047\060\045\006\003\125
-\004\013\023\036\123\055\124\122\125\123\124\040\103\145\162\164
-\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143
-\145\163\061\042\060\040\006\003\125\004\003\023\031\123\055\124
-\122\125\123\124\040\125\156\151\166\145\162\163\141\154\040\122
-\157\157\164\040\103\101\060\036\027\015\061\063\061\060\062\062
-\060\060\060\060\060\060\132\027\015\063\070\061\060\062\061\062
-\063\065\071\065\071\132\060\201\205\061\013\060\011\006\003\125
-\004\006\023\002\104\105\061\051\060\047\006\003\125\004\012\023
-\040\104\145\165\164\163\143\150\145\162\040\123\160\141\162\153
-\141\163\163\145\156\040\126\145\162\154\141\147\040\107\155\142
-\110\061\047\060\045\006\003\125\004\013\023\036\123\055\124\122
-\125\123\124\040\103\145\162\164\151\146\151\143\141\164\151\157
-\156\040\123\145\162\166\151\143\145\163\061\042\060\040\006\003
-\125\004\003\023\031\123\055\124\122\125\123\124\040\125\156\151
-\166\145\162\163\141\154\040\122\157\157\164\040\103\101\060\202
-\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005
-\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000\250
-\343\013\337\021\067\205\202\232\265\154\146\174\141\077\300\107
-\032\035\106\343\260\125\144\345\270\202\071\050\007\176\027\377
-\364\233\212\360\221\201\352\070\077\041\170\154\110\354\153\057
-\242\323\212\162\262\247\327\331\352\177\264\300\111\153\060\045
-\211\214\353\267\325\100\141\230\342\334\074\040\222\315\145\112
-\162\237\032\216\214\372\045\025\277\363\041\203\050\015\213\257
-\131\021\202\103\134\233\115\045\121\177\130\030\143\140\073\263
-\265\212\213\130\143\067\110\110\220\104\302\100\335\135\367\103
-\151\051\230\134\022\145\136\253\220\222\113\146\337\325\165\022
-\123\124\030\246\336\212\326\273\127\003\071\131\231\030\005\014
-\371\375\025\306\220\144\106\027\202\327\302\112\101\075\375\000
-\276\127\162\030\224\167\033\123\132\211\001\366\063\162\016\223
-\072\334\350\036\375\005\005\326\274\163\340\210\334\253\117\354
-\265\030\206\117\171\204\016\110\052\146\052\335\062\310\170\145
-\310\013\235\130\001\005\161\355\201\365\150\027\156\313\015\264
-\113\330\241\354\256\070\353\034\130\057\241\145\003\064\057\002
-\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023\001
-\001\377\004\005\060\003\001\001\377\060\016\006\003\125\035\017
-\001\001\377\004\004\003\002\001\006\060\035\006\003\125\035\016
-\004\026\004\024\232\175\327\353\353\177\124\230\105\051\264\040
-\253\155\013\226\043\031\244\302\060\015\006\011\052\206\110\206
-\367\015\001\001\013\005\000\003\202\001\001\000\116\226\022\333
-\176\167\136\222\047\236\041\027\030\202\166\330\077\274\245\011
-\004\146\210\211\255\333\125\263\063\152\306\145\304\217\115\363
-\062\066\334\171\004\226\251\167\062\321\227\365\030\153\214\272
-\355\316\021\320\104\307\222\361\264\104\216\355\210\122\110\236
-\325\375\131\370\243\036\121\373\001\122\345\137\345\172\335\252
-\044\117\042\213\335\166\106\366\245\240\017\065\330\312\017\230
-\271\060\135\040\157\302\201\036\275\275\300\376\025\323\070\052
-\011\223\230\047\033\223\173\320\053\064\136\150\245\025\117\321
-\122\303\240\312\240\203\105\035\365\365\267\131\163\135\131\001
-\217\252\302\107\057\024\161\325\051\343\020\265\107\223\045\314
-\043\051\332\267\162\330\221\324\354\033\110\212\042\344\301\052
-\367\072\150\223\237\105\031\156\103\267\314\376\270\221\232\141
-\032\066\151\143\144\222\050\363\157\141\222\205\023\237\311\007
-\054\213\127\334\353\236\171\325\302\336\010\325\124\262\127\116
-\052\062\215\241\342\072\321\020\040\042\071\175\064\105\157\161
-\073\303\035\374\377\262\117\250\342\366\060\036
-END
-CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
-
-# Trust for "S-TRUST Universal Root CA"
-# Issuer: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE
-# Serial Number:60:56:c5:4b:23:40:5b:64:d4:ed:25:da:d9:d6:1e:1e
-# Subject: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE
-# Not Valid Before: Tue Oct 22 00:00:00 2013
-# Not Valid After : Thu Oct 21 23:59:59 2038
-# Fingerprint (SHA-256): D8:0F:EF:91:0A:E3:F1:04:72:3B:04:5C:EC:2D:01:9F:44:1C:E6:21:3A:DF:15:67:91:E7:0C:17:90:11:0A:31
-# Fingerprint (SHA1): 1B:3D:11:14:EA:7A:0F:95:58:54:41:95:BF:6B:25:82:AB:40:CE:9A
-CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "S-TRUST Universal Root CA"
-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
-\033\075\021\024\352\172\017\225\130\124\101\225\277\153\045\202
-\253\100\316\232
-END
-CKA_CERT_MD5_HASH MULTILINE_OCTAL
-\130\366\101\001\256\365\133\121\231\116\134\041\350\117\324\146
-END
-CKA_ISSUER MULTILINE_OCTAL
-\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105
-\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163
-\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040
-\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006
-\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145
-\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166
-\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123
-\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154
-\040\122\157\157\164\040\103\101
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\020\140\126\305\113\043\100\133\144\324\355\045\332\331\326
-\036\036
-END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-
-#
# Certificate "Entrust Root Certification Authority - G2"
#
# Issuer: CN=Entrust Root Certification Authority - G2,OU="(c) 2009 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US
@@ -18509,167 +18203,6 @@ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
#
-# Certificate "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
-#
-# Issuer: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR
-# Serial Number:00:8e:17:fe:24:20:81
-# Subject: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR
-# Not Valid Before: Tue Apr 30 08:07:01 2013
-# Not Valid After : Fri Apr 28 08:07:01 2023
-# Fingerprint (SHA-256): 49:35:1B:90:34:44:C1:85:CC:DC:5C:69:3D:24:D8:55:5C:B2:08:D6:A8:14:13:07:69:9F:4A:F0:63:19:9D:78
-# Fingerprint (SHA1): C4:18:F6:4D:46:D1:DF:00:3D:27:30:13:72:43:A9:12:11:C6:75:FB
-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
-CKA_SUBJECT MULTILINE_OCTAL
-\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122
-\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162
-\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122
-\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154
-\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305
-\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040
-\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056
-\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113
-\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153
-\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145
-\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304
-\261\040\110\065
-END
-CKA_ID UTF8 "0"
-CKA_ISSUER MULTILINE_OCTAL
-\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122
-\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162
-\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122
-\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154
-\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305
-\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040
-\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056
-\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113
-\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153
-\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145
-\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304
-\261\040\110\065
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\007\000\216\027\376\044\040\201
-END
-CKA_VALUE MULTILINE_OCTAL
-\060\202\004\047\060\202\003\017\240\003\002\001\002\002\007\000
-\216\027\376\044\040\201\060\015\006\011\052\206\110\206\367\015
-\001\001\013\005\000\060\201\261\061\013\060\011\006\003\125\004
-\006\023\002\124\122\061\017\060\015\006\003\125\004\007\014\006
-\101\156\153\141\162\141\061\115\060\113\006\003\125\004\012\014
-\104\124\303\234\122\113\124\122\125\123\124\040\102\151\154\147
-\151\040\304\260\154\145\164\151\305\237\151\155\040\166\145\040
-\102\151\154\151\305\237\151\155\040\107\303\274\166\145\156\154
-\151\304\237\151\040\110\151\172\155\145\164\154\145\162\151\040
-\101\056\305\236\056\061\102\060\100\006\003\125\004\003\014\071
-\124\303\234\122\113\124\122\125\123\124\040\105\154\145\153\164
-\162\157\156\151\153\040\123\145\162\164\151\146\151\153\141\040
-\110\151\172\155\145\164\040\123\141\304\237\154\141\171\304\261
-\143\304\261\163\304\261\040\110\065\060\036\027\015\061\063\060
-\064\063\060\060\070\060\067\060\061\132\027\015\062\063\060\064
-\062\070\060\070\060\067\060\061\132\060\201\261\061\013\060\011
-\006\003\125\004\006\023\002\124\122\061\017\060\015\006\003\125
-\004\007\014\006\101\156\153\141\162\141\061\115\060\113\006\003
-\125\004\012\014\104\124\303\234\122\113\124\122\125\123\124\040
-\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151\155
-\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303\274
-\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164\154
-\145\162\151\040\101\056\305\236\056\061\102\060\100\006\003\125
-\004\003\014\071\124\303\234\122\113\124\122\125\123\124\040\105
-\154\145\153\164\162\157\156\151\153\040\123\145\162\164\151\146
-\151\153\141\040\110\151\172\155\145\164\040\123\141\304\237\154
-\141\171\304\261\143\304\261\163\304\261\040\110\065\060\202\001
-\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000
-\003\202\001\017\000\060\202\001\012\002\202\001\001\000\244\045
-\031\341\145\236\353\110\041\120\112\010\345\021\360\132\272\046
-\377\203\131\316\104\052\057\376\341\316\140\003\374\215\003\245
-\355\377\153\250\272\314\064\006\237\131\065\366\354\054\273\235
-\373\215\122\151\343\234\047\020\123\363\244\002\305\247\371\021
-\032\151\165\156\303\035\213\321\230\215\223\207\247\161\227\015
-\041\307\231\371\122\323\054\143\135\125\274\350\037\001\110\271
-\140\376\102\112\366\310\200\256\315\146\172\236\105\212\150\167
-\342\110\150\237\242\332\361\341\301\020\237\353\074\051\201\247
-\341\062\010\324\240\005\261\214\373\215\226\000\016\076\045\337
-\123\206\042\073\374\364\275\363\011\176\167\354\206\353\017\063
-\345\103\117\364\124\165\155\051\231\056\146\132\103\337\313\134
-\312\310\345\070\361\176\073\065\235\017\364\305\132\241\314\363
-\040\200\044\323\127\354\025\272\165\045\233\350\144\113\263\064
-\204\357\004\270\366\311\154\252\002\076\266\125\342\062\067\137
-\374\146\227\137\315\326\236\307\040\277\115\306\254\077\165\137
-\034\355\062\234\174\151\000\151\221\343\043\030\123\351\002\003
-\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026
-\004\024\126\231\007\036\323\254\014\151\144\264\014\120\107\336
-\103\054\276\040\300\373\060\016\006\003\125\035\017\001\001\377
-\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377
-\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367
-\015\001\001\013\005\000\003\202\001\001\000\236\105\166\173\027
-\110\062\362\070\213\051\275\356\226\112\116\201\030\261\121\107
-\040\315\320\144\261\016\311\331\001\331\011\316\310\231\334\150
-\045\023\324\134\362\243\350\004\376\162\011\307\013\252\035\045
-\125\176\226\232\127\267\272\305\021\172\031\346\247\176\075\205
-\016\365\371\056\051\057\347\371\154\130\026\127\120\045\366\076
-\056\076\252\355\167\161\252\252\231\226\106\012\256\216\354\052
-\121\026\260\136\315\352\147\004\034\130\060\365\140\212\275\246
-\275\115\345\226\264\374\102\211\001\153\366\160\310\120\071\014
-\055\325\146\331\310\322\263\062\267\033\031\155\313\063\371\337
-\245\346\025\204\067\360\302\362\145\226\222\220\167\360\255\364
-\220\351\021\170\327\223\211\300\075\013\272\051\364\350\231\235
-\162\216\355\235\057\356\222\175\241\361\377\135\272\063\140\205
-\142\376\007\002\241\204\126\106\276\226\012\232\023\327\041\114
-\267\174\007\237\116\116\077\221\164\373\047\235\021\314\335\346
-\261\312\161\115\023\027\071\046\305\051\041\053\223\051\152\226
-\372\253\101\341\113\266\065\013\300\233\025
-END
-CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
-
-# Trust for "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
-# Issuer: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR
-# Serial Number:00:8e:17:fe:24:20:81
-# Subject: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR
-# Not Valid Before: Tue Apr 30 08:07:01 2013
-# Not Valid After : Fri Apr 28 08:07:01 2023
-# Fingerprint (SHA-256): 49:35:1B:90:34:44:C1:85:CC:DC:5C:69:3D:24:D8:55:5C:B2:08:D6:A8:14:13:07:69:9F:4A:F0:63:19:9D:78
-# Fingerprint (SHA1): C4:18:F6:4D:46:D1:DF:00:3D:27:30:13:72:43:A9:12:11:C6:75:FB
-CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
-CKA_TOKEN CK_BBOOL CK_TRUE
-CKA_PRIVATE CK_BBOOL CK_FALSE
-CKA_MODIFIABLE CK_BBOOL CK_FALSE
-CKA_LABEL UTF8 "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
-\304\030\366\115\106\321\337\000\075\047\060\023\162\103\251\022
-\021\306\165\373
-END
-CKA_CERT_MD5_HASH MULTILINE_OCTAL
-\332\160\216\360\042\337\223\046\366\137\237\323\025\006\122\116
-END
-CKA_ISSUER MULTILINE_OCTAL
-\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122
-\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162
-\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122
-\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154
-\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305
-\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040
-\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056
-\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113
-\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153
-\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145
-\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304
-\261\040\110\065
-END
-CKA_SERIAL_NUMBER MULTILINE_OCTAL
-\002\007\000\216\027\376\044\040\201
-END
-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
-
-#
# Certificate "Certinomis - Root CA"
#
# Issuer: CN=Certinomis - Root CA,OU=0002 433998903,O=Certinomis,C=FR
diff --git a/security/nss/lib/ckfw/builtins/nssckbi.h b/security/nss/lib/ckfw/builtins/nssckbi.h
index 0189369b1..d40c8080e 100644
--- a/security/nss/lib/ckfw/builtins/nssckbi.h
+++ b/security/nss/lib/ckfw/builtins/nssckbi.h
@@ -32,7 +32,7 @@
* - whenever possible, if older branches require a modification to the
* list, these changes should be made on the main line of development (trunk),
* and the older branches should update to the most recent list.
- *
+ *
* - ODD minor version numbers are reserved to indicate a snapshot that has
* deviated from the main line of development, e.g. if it was necessary
* to modify the list on a stable branch.
@@ -46,8 +46,8 @@
* It's recommend to switch back to 0 after having reached version 98/99.
*/
#define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 2
-#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 22
-#define NSS_BUILTINS_LIBRARY_VERSION "2.22"
+#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 24
+#define NSS_BUILTINS_LIBRARY_VERSION "2.24"
/* These version numbers detail the semantic changes to the ckfw engine. */
#define NSS_BUILTINS_HARDWARE_VERSION_MAJOR 1
diff --git a/security/nss/lib/ckfw/nssmkey/Makefile b/security/nss/lib/ckfw/nssmkey/Makefile
deleted file mode 100644
index e630e84b0..000000000
--- a/security/nss/lib/ckfw/nssmkey/Makefile
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-include manifest.mn
-include $(CORE_DEPTH)/coreconf/config.mk
-include config.mk
-
-EXTRA_LIBS = \
- $(DIST)/lib/$(LIB_PREFIX)nssckfw.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \
- $(NULL)
-
-# can't do this in manifest.mn because OS_TARGET isn't defined there.
-ifeq (,$(filter-out WIN%,$(OS_TARGET)))
-
-ifdef NS_USE_GCC
-EXTRA_LIBS += \
- -L$(NSPR_LIB_DIR) \
- -lplc4 \
- -lplds4 \
- -lnspr4 \
- $(NULL)
-else
-EXTRA_SHARED_LIBS += \
- $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plc4.lib \
- $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plds4.lib \
- $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)nspr4.lib \
- $(NULL)
-endif # NS_USE_GCC
-else
-
-EXTRA_LIBS += \
- -L$(NSPR_LIB_DIR) \
- -lplc4 \
- -lplds4 \
- -lnspr4 \
- -framework Security \
- -framework CoreServices \
- $(NULL)
-endif
-
-
-include $(CORE_DEPTH)/coreconf/rules.mk
-
-# Generate certdata.c.
-generate:
- perl certdata.perl < certdata.txt
-
-# This'll need some help from a build person.
-
-
-ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.1)
-DSO_LDOPTS = -bM:SRE -bh:4 -bnoentry
-EXTRA_DSO_LDOPTS = -lc
-MKSHLIB = xlC $(DSO_LDOPTS)
-
-$(SHARED_LIBRARY): $(OBJS)
- @$(MAKE_OBJDIR)
- rm -f $@
- $(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(EXTRA_DSO_LDOPTS)
- chmod +x $@
-
-endif
-
-ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.2)
-LD += -G
-endif
-
-
diff --git a/security/nss/lib/ckfw/nssmkey/README b/security/nss/lib/ckfw/nssmkey/README
deleted file mode 100644
index c060d9c3c..000000000
--- a/security/nss/lib/ckfw/nssmkey/README
+++ /dev/null
@@ -1,21 +0,0 @@
-This Cryptoki module provides acces to certs and keys stored in
-Macintosh key Ring.
-
-- It does not yet export PKCS #12 keys. To get this to work should be
- implemented using exporting the key object in PKCS #8 wrapped format.
- PSM work needs to happen before this can be completed.
-- It does not import or export CA Root trust from the mac keychain.
-- It does not handle S/MIME objects (pkcs #7 in mac keychain terms?).
-- The AuthRoots don't show up on the default list.
-- Only RSA keys are supported currently.
-
-There are a number of things that have not been tested that other PKCS #11
-apps may need:
-- reading Modulus and Public Exponents from private keys and public keys.
-- storing public keys.
-- setting attributes other than CKA_ID and CKA_LABEL.
-
-Other TODOs:
-- Check for and plug memory leaks.
-- Need to map mac errors into something more intellegible than
- CKR_GENERAL_ERROR.
diff --git a/security/nss/lib/ckfw/nssmkey/ckmk.h b/security/nss/lib/ckfw/nssmkey/ckmk.h
deleted file mode 100644
index 4f3ab82d7..000000000
--- a/security/nss/lib/ckfw/nssmkey/ckmk.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef CKMK_H
-#define CKMK_H 1
-
-#include <Security/SecKeychainSearch.h>
-#include <Security/SecKeychainItem.h>
-#include <Security/SecKeychain.h>
-#include <Security/cssmtype.h>
-#include <Security/cssmapi.h>
-#include <Security/SecKey.h>
-#include <Security/SecCertificate.h>
-
-#define NTO
-
-#include "nssckmdt.h"
-#include "nssckfw.h"
-/*
- * I'm including this for access to the arena functions.
- * Looks like we should publish that API.
- */
-#ifndef BASE_H
-#include "base.h"
-#endif /* BASE_H */
-/*
- * This is where the Netscape extensions live, at least for now.
- */
-#ifndef CKT_H
-#include "ckt.h"
-#endif /* CKT_H */
-
-/*
- * statically defined raw objects. Allows us to data description objects
- * to this PKCS #11 module.
- */
-struct ckmkRawObjectStr {
- CK_ULONG n;
- const CK_ATTRIBUTE_TYPE *types;
- const NSSItem *items;
-};
-typedef struct ckmkRawObjectStr ckmkRawObject;
-
-/*
- * Key/Cert Items
- */
-struct ckmkItemObjectStr {
- SecKeychainItemRef itemRef;
- SecItemClass itemClass;
- PRBool hasID;
- NSSItem modify;
- NSSItem private;
- NSSItem encrypt;
- NSSItem decrypt;
- NSSItem derive;
- NSSItem sign;
- NSSItem signRecover;
- NSSItem verify;
- NSSItem verifyRecover;
- NSSItem wrap;
- NSSItem unwrap;
- NSSItem label;
- NSSItem subject;
- NSSItem issuer;
- NSSItem serial;
- NSSItem derCert;
- NSSItem id;
- NSSItem modulus;
- NSSItem exponent;
- NSSItem privateExponent;
- NSSItem prime1;
- NSSItem prime2;
- NSSItem exponent1;
- NSSItem exponent2;
- NSSItem coefficient;
-};
-typedef struct ckmkItemObjectStr ckmkItemObject;
-
-typedef enum {
- ckmkRaw,
- ckmkItem,
-} ckmkObjectType;
-
-/*
- * all the various types of objects are abstracted away in cobject and
- * cfind as ckmkInternalObjects.
- */
-struct ckmkInternalObjectStr {
- ckmkObjectType type;
- union {
- ckmkRawObject raw;
- ckmkItemObject item;
- } u;
- CK_OBJECT_CLASS objClass;
- NSSItem hashKey;
- unsigned char hashKeyData[128];
- NSSCKMDObject mdObject;
-};
-typedef struct ckmkInternalObjectStr ckmkInternalObject;
-
-/* our raw object data array */
-NSS_EXTERN_DATA ckmkInternalObject nss_ckmk_data[];
-NSS_EXTERN_DATA const PRUint32 nss_ckmk_nObjects;
-
-NSS_EXTERN_DATA const CK_VERSION nss_ckmk_CryptokiVersion;
-NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_ManufacturerID;
-NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_LibraryDescription;
-NSS_EXTERN_DATA const CK_VERSION nss_ckmk_LibraryVersion;
-NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_SlotDescription;
-NSS_EXTERN_DATA const CK_VERSION nss_ckmk_HardwareVersion;
-NSS_EXTERN_DATA const CK_VERSION nss_ckmk_FirmwareVersion;
-NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenLabel;
-NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenModel;
-NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenSerialNumber;
-
-NSS_EXTERN_DATA const NSSCKMDInstance nss_ckmk_mdInstance;
-NSS_EXTERN_DATA const NSSCKMDSlot nss_ckmk_mdSlot;
-NSS_EXTERN_DATA const NSSCKMDToken nss_ckmk_mdToken;
-NSS_EXTERN_DATA const NSSCKMDMechanism nss_ckmk_mdMechanismRSA;
-
-NSS_EXTERN NSSCKMDSession *
-nss_ckmk_CreateSession(
- NSSCKFWSession *fwSession,
- CK_RV *pError);
-
-NSS_EXTERN NSSCKMDFindObjects *
-nss_ckmk_FindObjectsInit(
- NSSCKFWSession *fwSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- CK_RV *pError);
-
-/*
- * Object Utilities
- */
-NSS_EXTERN NSSCKMDObject *
-nss_ckmk_CreateMDObject(
- NSSArena *arena,
- ckmkInternalObject *io,
- CK_RV *pError);
-
-NSS_EXTERN NSSCKMDObject *
-nss_ckmk_CreateObject(
- NSSCKFWSession *fwSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- CK_RV *pError);
-
-NSS_EXTERN const NSSItem *
-nss_ckmk_FetchAttribute(
- ckmkInternalObject *io,
- CK_ATTRIBUTE_TYPE type,
- CK_RV *pError);
-
-NSS_EXTERN void
-nss_ckmk_DestroyInternalObject(
- ckmkInternalObject *io);
-
-unsigned char *
-nss_ckmk_DERUnwrap(
- unsigned char *src,
- int size,
- int *outSize,
- unsigned char **next);
-
-CK_ULONG
-nss_ckmk_GetULongAttribute(
- CK_ATTRIBUTE_TYPE type,
- CK_ATTRIBUTE *template,
- CK_ULONG templateSize,
- CK_RV *pError);
-
-#define NSS_CKMK_ARRAY_SIZE(x) ((sizeof(x)) / (sizeof((x)[0])))
-
-#ifdef DEBUG
-#define CKMK_MACERR(str, err) cssmPerror(str, err)
-#else
-#define CKMK_MACERR(str, err)
-#endif
-
-#endif
diff --git a/security/nss/lib/ckfw/nssmkey/ckmkver.c b/security/nss/lib/ckfw/nssmkey/ckmkver.c
deleted file mode 100644
index 2b99f1e22..000000000
--- a/security/nss/lib/ckfw/nssmkey/ckmkver.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-/* Library identity and versioning */
-
-#include "nssmkey.h"
-
-#if defined(DEBUG)
-#define _DEBUG_STRING " (debug)"
-#else
-#define _DEBUG_STRING ""
-#endif
-
-/*
- * Version information
- */
-const char __nss_ckmk_version[] = "Version: NSS Access to the MAC OS X Key Ring " NSS_CKMK_LIBRARY_VERSION _DEBUG_STRING;
diff --git a/security/nss/lib/ckfw/nssmkey/config.mk b/security/nss/lib/ckfw/nssmkey/config.mk
deleted file mode 100644
index 709691067..000000000
--- a/security/nss/lib/ckfw/nssmkey/config.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-ifdef BUILD_IDG
-DEFINES += -DNSSDEBUG
-endif
-
-ifdef NS_USE_CKFW_TRACE
-DEFINES += -DTRACE
-endif
-
-#
-# Override TARGETS variable so that only static libraries
-# are specifed as dependencies within rules.mk.
-#
-
-TARGETS = $(LIBRARY)
-SHARED_LIBRARY =
-IMPORT_LIBRARY =
-PROGRAM =
-
-
diff --git a/security/nss/lib/ckfw/nssmkey/manchor.c b/security/nss/lib/ckfw/nssmkey/manchor.c
deleted file mode 100644
index 3b8bc2dbb..000000000
--- a/security/nss/lib/ckfw/nssmkey/manchor.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/*
- * nssmkey/manchor.c
- *
- * This file "anchors" the actual cryptoki entry points in this module's
- * shared library, which is required for dynamic loading. See the
- * comments in nssck.api for more information.
- */
-
-#include "ckmk.h"
-
-#define MODULE_NAME ckmk
-#define INSTANCE_NAME (NSSCKMDInstance *)&nss_ckmk_mdInstance
-#include "nssck.api"
diff --git a/security/nss/lib/ckfw/nssmkey/manifest.mn b/security/nss/lib/ckfw/nssmkey/manifest.mn
deleted file mode 100644
index 036d9bc3f..000000000
--- a/security/nss/lib/ckfw/nssmkey/manifest.mn
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-CORE_DEPTH = ../../../..
-
-MODULE = nss
-MAPFILE = $(OBJDIR)/nssmkey.def
-
-EXPORTS = \
- nssmkey.h \
- $(NULL)
-
-CSRCS = \
- manchor.c \
- mconstants.c \
- mfind.c \
- minst.c \
- mobject.c \
- mrsa.c \
- msession.c \
- mslot.c \
- mtoken.c \
- ckmkver.c \
- staticobj.c \
- $(NULL)
-
-REQUIRES = nspr
-
-LIBRARY_NAME = nssmkey
-
-#EXTRA_SHARED_LIBS = -L$(DIST)/lib -lnssckfw -lnssb -lplc4 -lplds4
diff --git a/security/nss/lib/ckfw/nssmkey/mconstants.c b/security/nss/lib/ckfw/nssmkey/mconstants.c
deleted file mode 100644
index c26298ada..000000000
--- a/security/nss/lib/ckfw/nssmkey/mconstants.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/*
- * nssmkey/constants.c
- *
- * Identification and other constants, all collected here in one place.
- */
-
-#ifndef NSSBASET_H
-#include "nssbaset.h"
-#endif /* NSSBASET_H */
-
-#ifndef NSSCKT_H
-#include "nssckt.h"
-#endif /* NSSCKT_H */
-
-#include "nssmkey.h"
-
-NSS_IMPLEMENT_DATA const CK_VERSION
- nss_ckmk_CryptokiVersion = {
- NSS_CKMK_CRYPTOKI_VERSION_MAJOR,
- NSS_CKMK_CRYPTOKI_VERSION_MINOR
- };
-
-NSS_IMPLEMENT_DATA const NSSUTF8 *
- nss_ckmk_ManufacturerID = (NSSUTF8 *)"Mozilla Foundation";
-
-NSS_IMPLEMENT_DATA const NSSUTF8 *
- nss_ckmk_LibraryDescription = (NSSUTF8 *)"NSS Access to Mac OS X Key Ring";
-
-NSS_IMPLEMENT_DATA const CK_VERSION
- nss_ckmk_LibraryVersion = {
- NSS_CKMK_LIBRARY_VERSION_MAJOR,
- NSS_CKMK_LIBRARY_VERSION_MINOR
- };
-
-NSS_IMPLEMENT_DATA const NSSUTF8 *
- nss_ckmk_SlotDescription = (NSSUTF8 *)"Mac OS X Key Ring";
-
-NSS_IMPLEMENT_DATA const CK_VERSION
- nss_ckmk_HardwareVersion = {
- NSS_CKMK_HARDWARE_VERSION_MAJOR,
- NSS_CKMK_HARDWARE_VERSION_MINOR
- };
-
-NSS_IMPLEMENT_DATA const CK_VERSION
- nss_ckmk_FirmwareVersion = {
- NSS_CKMK_FIRMWARE_VERSION_MAJOR,
- NSS_CKMK_FIRMWARE_VERSION_MINOR
- };
-
-NSS_IMPLEMENT_DATA const NSSUTF8 *
- nss_ckmk_TokenLabel = (NSSUTF8 *)"Mac OS X Key Ring";
-
-NSS_IMPLEMENT_DATA const NSSUTF8 *
- nss_ckmk_TokenModel = (NSSUTF8 *)"1";
-
-NSS_IMPLEMENT_DATA const NSSUTF8 *
- nss_ckmk_TokenSerialNumber = (NSSUTF8 *)"1";
diff --git a/security/nss/lib/ckfw/nssmkey/mfind.c b/security/nss/lib/ckfw/nssmkey/mfind.c
deleted file mode 100644
index d193a8de7..000000000
--- a/security/nss/lib/ckfw/nssmkey/mfind.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef CKMK_H
-#include "ckmk.h"
-#endif /* CKMK_H */
-
-/*
- * nssmkey/mfind.c
- *
- * This file implements the NSSCKMDFindObjects object for the
- * "nssmkey" cryptoki module.
- */
-
-struct ckmkFOStr {
- NSSArena *arena;
- CK_ULONG n;
- CK_ULONG i;
- ckmkInternalObject **objs;
-};
-
-static void
-ckmk_mdFindObjects_Final(
- NSSCKMDFindObjects *mdFindObjects,
- NSSCKFWFindObjects *fwFindObjects,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- struct ckmkFOStr *fo = (struct ckmkFOStr *)mdFindObjects->etc;
- NSSArena *arena = fo->arena;
- PRUint32 i;
-
- /* walk down an free the unused 'objs' */
- for (i = fo->i; i < fo->n; i++) {
- nss_ckmk_DestroyInternalObject(fo->objs[i]);
- }
-
- nss_ZFreeIf(fo->objs);
- nss_ZFreeIf(fo);
- nss_ZFreeIf(mdFindObjects);
- if ((NSSArena *)NULL != arena) {
- NSSArena_Destroy(arena);
- }
-
- return;
-}
-
-static NSSCKMDObject *
-ckmk_mdFindObjects_Next(
- NSSCKMDFindObjects *mdFindObjects,
- NSSCKFWFindObjects *fwFindObjects,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- NSSArena *arena,
- CK_RV *pError)
-{
- struct ckmkFOStr *fo = (struct ckmkFOStr *)mdFindObjects->etc;
- ckmkInternalObject *io;
-
- if (fo->i == fo->n) {
- *pError = CKR_OK;
- return (NSSCKMDObject *)NULL;
- }
-
- io = fo->objs[fo->i];
- fo->i++;
-
- return nss_ckmk_CreateMDObject(arena, io, pError);
-}
-
-static CK_BBOOL
-ckmk_attrmatch(
- CK_ATTRIBUTE_PTR a,
- ckmkInternalObject *o)
-{
- PRBool prb;
- const NSSItem *b;
- CK_RV error;
-
- b = nss_ckmk_FetchAttribute(o, a->type, &error);
- if (b == NULL) {
- return CK_FALSE;
- }
-
- if (a->ulValueLen != b->size) {
- /* match a decoded serial number */
- if ((a->type == CKA_SERIAL_NUMBER) && (a->ulValueLen < b->size)) {
- int len;
- unsigned char *data;
-
- data = nss_ckmk_DERUnwrap(b->data, b->size, &len, NULL);
- if ((len == a->ulValueLen) &&
- nsslibc_memequal(a->pValue, data, len, (PRStatus *)NULL)) {
- return CK_TRUE;
- }
- }
- return CK_FALSE;
- }
-
- prb = nsslibc_memequal(a->pValue, b->data, b->size, (PRStatus *)NULL);
-
- if (PR_TRUE == prb) {
- return CK_TRUE;
- } else {
- return CK_FALSE;
- }
-}
-
-static CK_BBOOL
-ckmk_match(
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- ckmkInternalObject *o)
-{
- CK_ULONG i;
-
- for (i = 0; i < ulAttributeCount; i++) {
- if (CK_FALSE == ckmk_attrmatch(&pTemplate[i], o)) {
- return CK_FALSE;
- }
- }
-
- /* Every attribute passed */
- return CK_TRUE;
-}
-
-#define CKMK_ITEM_CHUNK 20
-
-#define PUT_OBJECT(obj, err, size, count, list) \
- { \
- if (count >= size) { \
- (list) = (list) ? nss_ZREALLOCARRAY(list, ckmkInternalObject *, \
- ((size) + \
- CKMK_ITEM_CHUNK)) \
- : nss_ZNEWARRAY(NULL, ckmkInternalObject *, \
- ((size) + \
- CKMK_ITEM_CHUNK)); \
- if ((ckmkInternalObject **)NULL == list) { \
- err = CKR_HOST_MEMORY; \
- goto loser; \
- } \
- (size) += CKMK_ITEM_CHUNK; \
- } \
- (list)[count] = (obj); \
- count++; \
- }
-
-/* find all the certs that represent the appropriate object (cert, priv key, or
- * pub key) in the cert store.
- */
-static PRUint32
-collect_class(
- CK_OBJECT_CLASS objClass,
- SecItemClass itemClass,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- ckmkInternalObject ***listp,
- PRUint32 *sizep,
- PRUint32 count,
- CK_RV *pError)
-{
- ckmkInternalObject *next = NULL;
- SecKeychainSearchRef searchRef = 0;
- SecKeychainItemRef itemRef = 0;
- OSStatus error;
-
- /* future, build the attribute list based on the template
- * so we can refine the search */
- error = SecKeychainSearchCreateFromAttributes(
- NULL, itemClass, NULL, &searchRef);
-
- while (noErr == SecKeychainSearchCopyNext(searchRef, &itemRef)) {
- /* if we don't have an internal object structure, get one */
- if ((ckmkInternalObject *)NULL == next) {
- next = nss_ZNEW(NULL, ckmkInternalObject);
- if ((ckmkInternalObject *)NULL == next) {
- *pError = CKR_HOST_MEMORY;
- goto loser;
- }
- }
- /* fill in the relevant object data */
- next->type = ckmkItem;
- next->objClass = objClass;
- next->u.item.itemRef = itemRef;
- next->u.item.itemClass = itemClass;
-
- /* see if this is one of the objects we are looking for */
- if (CK_TRUE == ckmk_match(pTemplate, ulAttributeCount, next)) {
- /* yes, put it on the list */
- PUT_OBJECT(next, *pError, *sizep, count, *listp);
- next = NULL; /* this one is on the list, need to allocate a new one now */
- } else {
- /* no , release the current item and clear out the structure for reuse */
- CFRelease(itemRef);
- /* don't cache the values we just loaded */
- nsslibc_memset(next, 0, sizeof(*next));
- }
- }
-loser:
- if (searchRef) {
- CFRelease(searchRef);
- }
- nss_ZFreeIf(next);
- return count;
-}
-
-static PRUint32
-collect_objects(
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- ckmkInternalObject ***listp,
- CK_RV *pError)
-{
- PRUint32 i;
- PRUint32 count = 0;
- PRUint32 size = 0;
- CK_OBJECT_CLASS objClass;
-
- /*
- * first handle the static build in objects (if any)
- */
- for (i = 0; i < nss_ckmk_nObjects; i++) {
- ckmkInternalObject *o = (ckmkInternalObject *)&nss_ckmk_data[i];
-
- if (CK_TRUE == ckmk_match(pTemplate, ulAttributeCount, o)) {
- PUT_OBJECT(o, *pError, size, count, *listp);
- }
- }
-
- /*
- * now handle the various object types
- */
- objClass = nss_ckmk_GetULongAttribute(CKA_CLASS,
- pTemplate, ulAttributeCount, pError);
- if (CKR_OK != *pError) {
- objClass = CK_INVALID_HANDLE;
- }
- *pError = CKR_OK;
- switch (objClass) {
- case CKO_CERTIFICATE:
- count = collect_class(objClass, kSecCertificateItemClass,
- pTemplate, ulAttributeCount, listp,
- &size, count, pError);
- break;
- case CKO_PUBLIC_KEY:
- count = collect_class(objClass, CSSM_DL_DB_RECORD_PUBLIC_KEY,
- pTemplate, ulAttributeCount, listp,
- &size, count, pError);
- break;
- case CKO_PRIVATE_KEY:
- count = collect_class(objClass, CSSM_DL_DB_RECORD_PRIVATE_KEY,
- pTemplate, ulAttributeCount, listp,
- &size, count, pError);
- break;
- /* all of them */
- case CK_INVALID_HANDLE:
- count = collect_class(CKO_CERTIFICATE, kSecCertificateItemClass,
- pTemplate, ulAttributeCount, listp,
- &size, count, pError);
- count = collect_class(CKO_PUBLIC_KEY, CSSM_DL_DB_RECORD_PUBLIC_KEY,
- pTemplate, ulAttributeCount, listp,
- &size, count, pError);
- count = collect_class(CKO_PUBLIC_KEY, CSSM_DL_DB_RECORD_PRIVATE_KEY,
- pTemplate, ulAttributeCount, listp,
- &size, count, pError);
- break;
- default:
- break;
- }
- if (CKR_OK != *pError) {
- goto loser;
- }
-
- return count;
-loser:
- nss_ZFreeIf(*listp);
- return 0;
-}
-
-NSS_IMPLEMENT NSSCKMDFindObjects *
-nss_ckmk_FindObjectsInit(
- NSSCKFWSession *fwSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- CK_RV *pError)
-{
- /* This could be made more efficient. I'm rather rushed. */
- NSSArena *arena;
- NSSCKMDFindObjects *rv = (NSSCKMDFindObjects *)NULL;
- struct ckmkFOStr *fo = (struct ckmkFOStr *)NULL;
- ckmkInternalObject **temp = (ckmkInternalObject **)NULL;
-
- arena = NSSArena_Create();
- if ((NSSArena *)NULL == arena) {
- goto loser;
- }
-
- rv = nss_ZNEW(arena, NSSCKMDFindObjects);
- if ((NSSCKMDFindObjects *)NULL == rv) {
- *pError = CKR_HOST_MEMORY;
- goto loser;
- }
-
- fo = nss_ZNEW(arena, struct ckmkFOStr);
- if ((struct ckmkFOStr *)NULL == fo) {
- *pError = CKR_HOST_MEMORY;
- goto loser;
- }
-
- fo->arena = arena;
- /* fo->n and fo->i are already zero */
-
- rv->etc = (void *)fo;
- rv->Final = ckmk_mdFindObjects_Final;
- rv->Next = ckmk_mdFindObjects_Next;
- rv->null = (void *)NULL;
-
- fo->n = collect_objects(pTemplate, ulAttributeCount, &temp, pError);
- if (*pError != CKR_OK) {
- goto loser;
- }
-
- fo->objs = nss_ZNEWARRAY(arena, ckmkInternalObject *, fo->n);
- if ((ckmkInternalObject **)NULL == fo->objs) {
- *pError = CKR_HOST_MEMORY;
- goto loser;
- }
-
- (void)nsslibc_memcpy(fo->objs, temp, sizeof(ckmkInternalObject *) * fo->n);
- nss_ZFreeIf(temp);
- temp = (ckmkInternalObject **)NULL;
-
- return rv;
-
-loser:
- nss_ZFreeIf(temp);
- nss_ZFreeIf(fo);
- nss_ZFreeIf(rv);
- if ((NSSArena *)NULL != arena) {
- NSSArena_Destroy(arena);
- }
- return (NSSCKMDFindObjects *)NULL;
-}
diff --git a/security/nss/lib/ckfw/nssmkey/minst.c b/security/nss/lib/ckfw/nssmkey/minst.c
deleted file mode 100644
index fcb96c652..000000000
--- a/security/nss/lib/ckfw/nssmkey/minst.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "ckmk.h"
-
-/*
- * nssmkey/minstance.c
- *
- * This file implements the NSSCKMDInstance object for the
- * "nssmkey" cryptoki module.
- */
-
-/*
- * NSSCKMDInstance methods
- */
-
-static CK_ULONG
-ckmk_mdInstance_GetNSlots(
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (CK_ULONG)1;
-}
-
-static CK_VERSION
-ckmk_mdInstance_GetCryptokiVersion(
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return nss_ckmk_CryptokiVersion;
-}
-
-static NSSUTF8 *
-ckmk_mdInstance_GetManufacturerID(
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSUTF8 *)nss_ckmk_ManufacturerID;
-}
-
-static NSSUTF8 *
-ckmk_mdInstance_GetLibraryDescription(
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSUTF8 *)nss_ckmk_LibraryDescription;
-}
-
-static CK_VERSION
-ckmk_mdInstance_GetLibraryVersion(
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return nss_ckmk_LibraryVersion;
-}
-
-static CK_RV
-ckmk_mdInstance_GetSlots(
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- NSSCKMDSlot *slots[])
-{
- slots[0] = (NSSCKMDSlot *)&nss_ckmk_mdSlot;
- return CKR_OK;
-}
-
-static CK_BBOOL
-ckmk_mdInstance_ModuleHandlesSessionObjects(
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- /* we don't want to allow any session object creation, at least
- * until we can investigate whether or not we can use those objects
- */
- return CK_TRUE;
-}
-
-NSS_IMPLEMENT_DATA const NSSCKMDInstance
- nss_ckmk_mdInstance = {
- (void *)NULL, /* etc */
- NULL, /* Initialize */
- NULL, /* Finalize */
- ckmk_mdInstance_GetNSlots,
- ckmk_mdInstance_GetCryptokiVersion,
- ckmk_mdInstance_GetManufacturerID,
- ckmk_mdInstance_GetLibraryDescription,
- ckmk_mdInstance_GetLibraryVersion,
- ckmk_mdInstance_ModuleHandlesSessionObjects,
- /*NULL, /* HandleSessionObjects */
- ckmk_mdInstance_GetSlots,
- NULL, /* WaitForSlotEvent */
- (void *)NULL /* null terminator */
- };
diff --git a/security/nss/lib/ckfw/nssmkey/mobject.c b/security/nss/lib/ckfw/nssmkey/mobject.c
deleted file mode 100644
index b19a8fdbd..000000000
--- a/security/nss/lib/ckfw/nssmkey/mobject.c
+++ /dev/null
@@ -1,1861 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "ckmk.h"
-#include "nssbase.h"
-
-#include "secdert.h" /* for DER_INTEGER */
-#include "string.h"
-
-/* asn1 encoder (to build pkcs#8 blobs) */
-#include <seccomon.h>
-#include <secitem.h>
-#include <blapit.h>
-#include <secoid.h>
-#include <secasn1.h>
-
-/* for importing the keys */
-#include <CoreFoundation/CoreFoundation.h>
-#include <security/SecImportExport.h>
-
-/*
- * nssmkey/mobject.c
- *
- * This file implements the NSSCKMDObject object for the
- * "nssmkey" cryptoki module.
- */
-
-const CK_ATTRIBUTE_TYPE certAttrs[] = {
- CKA_CLASS,
- CKA_TOKEN,
- CKA_PRIVATE,
- CKA_MODIFIABLE,
- CKA_LABEL,
- CKA_CERTIFICATE_TYPE,
- CKA_SUBJECT,
- CKA_ISSUER,
- CKA_SERIAL_NUMBER,
- CKA_VALUE
-};
-const PRUint32 certAttrsCount = NSS_CKMK_ARRAY_SIZE(certAttrs);
-
-/* private keys, for now only support RSA */
-const CK_ATTRIBUTE_TYPE privKeyAttrs[] = {
- CKA_CLASS,
- CKA_TOKEN,
- CKA_PRIVATE,
- CKA_MODIFIABLE,
- CKA_LABEL,
- CKA_KEY_TYPE,
- CKA_DERIVE,
- CKA_LOCAL,
- CKA_SUBJECT,
- CKA_SENSITIVE,
- CKA_DECRYPT,
- CKA_SIGN,
- CKA_SIGN_RECOVER,
- CKA_UNWRAP,
- CKA_EXTRACTABLE,
- CKA_ALWAYS_SENSITIVE,
- CKA_NEVER_EXTRACTABLE,
- CKA_MODULUS,
- CKA_PUBLIC_EXPONENT,
-};
-const PRUint32 privKeyAttrsCount = NSS_CKMK_ARRAY_SIZE(privKeyAttrs);
-
-/* public keys, for now only support RSA */
-const CK_ATTRIBUTE_TYPE pubKeyAttrs[] = {
- CKA_CLASS,
- CKA_TOKEN,
- CKA_PRIVATE,
- CKA_MODIFIABLE,
- CKA_LABEL,
- CKA_KEY_TYPE,
- CKA_DERIVE,
- CKA_LOCAL,
- CKA_SUBJECT,
- CKA_ENCRYPT,
- CKA_VERIFY,
- CKA_VERIFY_RECOVER,
- CKA_WRAP,
- CKA_MODULUS,
- CKA_PUBLIC_EXPONENT,
-};
-const PRUint32 pubKeyAttrsCount = NSS_CKMK_ARRAY_SIZE(pubKeyAttrs);
-static const CK_BBOOL ck_true = CK_TRUE;
-static const CK_BBOOL ck_false = CK_FALSE;
-static const CK_CERTIFICATE_TYPE ckc_x509 = CKC_X_509;
-static const CK_KEY_TYPE ckk_rsa = CKK_RSA;
-static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE;
-static const CK_OBJECT_CLASS cko_private_key = CKO_PRIVATE_KEY;
-static const CK_OBJECT_CLASS cko_public_key = CKO_PUBLIC_KEY;
-static const NSSItem ckmk_trueItem = {
- (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL)
-};
-static const NSSItem ckmk_falseItem = {
- (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL)
-};
-static const NSSItem ckmk_x509Item = {
- (void *)&ckc_x509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE)
-};
-static const NSSItem ckmk_rsaItem = {
- (void *)&ckk_rsa, (PRUint32)sizeof(CK_KEY_TYPE)
-};
-static const NSSItem ckmk_certClassItem = {
- (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS)
-};
-static const NSSItem ckmk_privKeyClassItem = {
- (void *)&cko_private_key, (PRUint32)sizeof(CK_OBJECT_CLASS)
-};
-static const NSSItem ckmk_pubKeyClassItem = {
- (void *)&cko_public_key, (PRUint32)sizeof(CK_OBJECT_CLASS)
-};
-static const NSSItem ckmk_emptyItem = {
- (void *)&ck_true, 0
-};
-
-/*
- * these are utilities. The chould be moved to a new utilities file.
- */
-#ifdef DEBUG
-static void
-itemdump(char *str, void *data, int size, CK_RV error)
-{
- unsigned char *ptr = (unsigned char *)data;
- int i;
- fprintf(stderr, str);
- for (i = 0; i < size; i++) {
- fprintf(stderr, "%02x ", (unsigned int)ptr[i]);
- }
- fprintf(stderr, " (error = %d)\n", (int)error);
-}
-#endif
-
-/*
- * unwrap a single DER value
- * now that we have util linked in, we should probably use
- * the ANS1_Decoder for this work...
- */
-unsigned char *
-nss_ckmk_DERUnwrap(
- unsigned char *src,
- int size,
- int *outSize,
- unsigned char **next)
-{
- unsigned char *start = src;
- unsigned int len = 0;
-
- /* initialize error condition return values */
- *outSize = 0;
- if (next) {
- *next = src;
- }
-
- if (size < 2) {
- return start;
- }
- src++; /* skip the tag -- should check it against an expected value! */
- len = (unsigned)*src++;
- if (len & 0x80) {
- int count = len & 0x7f;
- len = 0;
-
- if (count + 2 > size) {
- return start;
- }
- while (count-- > 0) {
- len = (len << 8) | (unsigned)*src++;
- }
- }
- if (len + (src - start) > (unsigned int)size) {
- return start;
- }
- if (next) {
- *next = src + len;
- }
- *outSize = len;
-
- return src;
-}
-
-/*
- * get an attribute from a template. Value is returned in NSS item.
- * data for the item is owned by the template.
- */
-CK_RV
-nss_ckmk_GetAttribute(
- CK_ATTRIBUTE_TYPE type,
- CK_ATTRIBUTE *template,
- CK_ULONG templateSize,
- NSSItem *item)
-{
- CK_ULONG i;
-
- for (i = 0; i < templateSize; i++) {
- if (template[i].type == type) {
- item->data = template[i].pValue;
- item->size = template[i].ulValueLen;
- return CKR_OK;
- }
- }
- return CKR_TEMPLATE_INCOMPLETE;
-}
-
-/*
- * get an attribute which is type CK_ULONG.
- */
-CK_ULONG
-nss_ckmk_GetULongAttribute(
- CK_ATTRIBUTE_TYPE type,
- CK_ATTRIBUTE *template,
- CK_ULONG templateSize,
- CK_RV *pError)
-{
- NSSItem item;
-
- *pError = nss_ckmk_GetAttribute(type, template, templateSize, &item);
- if (CKR_OK != *pError) {
- return (CK_ULONG)0;
- }
- if (item.size != sizeof(CK_ULONG)) {
- *pError = CKR_ATTRIBUTE_VALUE_INVALID;
- return (CK_ULONG)0;
- }
- return *(CK_ULONG *)item.data;
-}
-
-/*
- * get an attribute which is type CK_BBOOL.
- */
-CK_BBOOL
-nss_ckmk_GetBoolAttribute(
- CK_ATTRIBUTE_TYPE type,
- CK_ATTRIBUTE *template,
- CK_ULONG templateSize,
- CK_BBOOL defaultBool)
-{
- NSSItem item;
- CK_RV error;
-
- error = nss_ckmk_GetAttribute(type, template, templateSize, &item);
- if (CKR_OK != error) {
- return defaultBool;
- }
- if (item.size != sizeof(CK_BBOOL)) {
- return defaultBool;
- }
- return *(CK_BBOOL *)item.data;
-}
-
-/*
- * get an attribute as a NULL terminated string. Caller is responsible to
- * free the string.
- */
-char *
-nss_ckmk_GetStringAttribute(
- CK_ATTRIBUTE_TYPE type,
- CK_ATTRIBUTE *template,
- CK_ULONG templateSize,
- CK_RV *pError)
-{
- NSSItem item;
- char *str;
-
- /* get the attribute */
- *pError = nss_ckmk_GetAttribute(type, template, templateSize, &item);
- if (CKR_OK != *pError) {
- return (char *)NULL;
- }
- /* make sure it is null terminated */
- str = nss_ZNEWARRAY(NULL, char, item.size + 1);
- if ((char *)NULL == str) {
- *pError = CKR_HOST_MEMORY;
- return (char *)NULL;
- }
-
- nsslibc_memcpy(str, item.data, item.size);
- str[item.size] = 0;
-
- return str;
-}
-
-/*
- * Apple doesn't seem to have a public interface to the DER encoder,
- * wip out a quick one for integers only (anything more complicated,
- * we should use one of the 3 in lib/util). -- especially since we
- * now link with it.
- */
-static CK_RV
-ckmk_encodeInt(NSSItem *dest, void *src, int srcLen)
-{
- int dataLen = srcLen;
- int lenLen = 1;
- int encLen;
- int isSigned = 0;
- int offset = 0;
- unsigned char *data = NULL;
- int i;
-
- if (*(unsigned char *)src & 0x80) {
- dataLen++;
- isSigned = 1;
- }
-
- /* calculate the length of the length specifier */
- /* (NOTE: destroys dataLen value) */
- if (dataLen > 0x7f) {
- do {
- lenLen++;
- dataLen >>= 8;
- } while (dataLen);
- }
-
- /* calculate our total length */
- dataLen = isSigned + srcLen;
- encLen = 1 + lenLen + dataLen;
- data = nss_ZNEWARRAY(NULL, unsigned char, encLen);
- if ((unsigned char *)NULL == data) {
- return CKR_HOST_MEMORY;
- }
- data[0] = DER_INTEGER;
- if (1 == lenLen) {
- data[1] = dataLen;
- } else {
- data[1] = 0x80 + lenLen;
- for (i = 0; i < lenLen; i++) {
- data[i + 1] = ((dataLen >> ((lenLen -
- i - 1) *
- 8)) &
- 0xff);
- }
- }
- offset = lenLen + 1;
-
- if (isSigned) {
- data[offset++] = 0;
- }
- nsslibc_memcpy(&data[offset], src, srcLen);
- dest->data = data;
- dest->size = encLen;
- return CKR_OK;
-}
-
-/*
- * Get a Keyring attribute. If content is set to true, then we get the
- * content, not the attribute.
- */
-static CK_RV
-ckmk_GetCommonAttribute(
- ckmkInternalObject *io,
- SecItemAttr itemAttr,
- PRBool content,
- NSSItem *item,
- char *dbString)
-{
- SecKeychainAttributeList *attrList = NULL;
- SecKeychainAttributeInfo attrInfo;
- PRUint32 len = 0;
- PRUint32 dataLen = 0;
- PRUint32 attrFormat = 0;
- void *dataVal = 0;
- void *out = NULL;
- CK_RV error = CKR_OK;
- OSStatus macErr;
-
- attrInfo.count = 1;
- attrInfo.tag = &itemAttr;
- attrInfo.format = &attrFormat;
-
- macErr = SecKeychainItemCopyAttributesAndData(io->u.item.itemRef,
- &attrInfo, NULL, &attrList, &len, &out);
- if (noErr != macErr) {
- CKMK_MACERR(dbString, macErr);
- return CKR_ATTRIBUTE_TYPE_INVALID;
- }
- dataLen = content ? len : attrList->attr->length;
- dataVal = content ? out : attrList->attr->data;
-
- /* Apple's documentation says this value is DER Encoded, but it clearly isn't
- * der encode it before we ship it back off to NSS
- */
- if (kSecSerialNumberItemAttr == itemAttr) {
- error = ckmk_encodeInt(item, dataVal, dataLen);
- goto loser; /* logically 'done' if error == CKR_OK */
- }
- item->data = nss_ZNEWARRAY(NULL, char, dataLen);
- if (NULL == item->data) {
- error = CKR_HOST_MEMORY;
- goto loser;
- }
- nsslibc_memcpy(item->data, dataVal, dataLen);
- item->size = dataLen;
-
-loser:
- SecKeychainItemFreeAttributesAndData(attrList, out);
- return error;
-}
-
-/*
- * change an attribute (does not operate on the content).
- */
-static CK_RV
-ckmk_updateAttribute(
- SecKeychainItemRef itemRef,
- SecItemAttr itemAttr,
- void *data,
- PRUint32 len,
- char *dbString)
-{
- SecKeychainAttributeList attrList;
- SecKeychainAttribute attrAttr;
- OSStatus macErr;
- CK_RV error = CKR_OK;
-
- attrList.count = 1;
- attrList.attr = &attrAttr;
- attrAttr.tag = itemAttr;
- attrAttr.data = data;
- attrAttr.length = len;
- macErr = SecKeychainItemModifyAttributesAndData(itemRef, &attrList, 0, NULL);
- if (noErr != macErr) {
- CKMK_MACERR(dbString, macErr);
- error = CKR_ATTRIBUTE_TYPE_INVALID;
- }
- return error;
-}
-
-/*
- * get an attribute (does not operate on the content)
- */
-static CK_RV
-ckmk_GetDataAttribute(
- ckmkInternalObject *io,
- SecItemAttr itemAttr,
- NSSItem *item,
- char *dbString)
-{
- return ckmk_GetCommonAttribute(io, itemAttr, PR_FALSE, item, dbString);
-}
-
-/*
- * get an attribute we know is a BOOL.
- */
-static CK_RV
-ckmk_GetBoolAttribute(
- ckmkInternalObject *io,
- SecItemAttr itemAttr,
- NSSItem *item,
- char *dbString)
-{
- SecKeychainAttribute attr;
- SecKeychainAttributeList attrList;
- CK_BBOOL *boolp = NULL;
- PRUint32 len = 0;
- ;
- void *out = NULL;
- CK_RV error = CKR_OK;
- OSStatus macErr;
-
- attr.tag = itemAttr;
- attr.length = 0;
- attr.data = NULL;
- attrList.count = 1;
- attrList.attr = &attr;
-
- boolp = nss_ZNEW(NULL, CK_BBOOL);
- if ((CK_BBOOL *)NULL == boolp) {
- error = CKR_HOST_MEMORY;
- goto loser;
- }
-
- macErr = SecKeychainItemCopyContent(io->u.item.itemRef, NULL,
- &attrList, &len, &out);
- if (noErr != macErr) {
- CKMK_MACERR(dbString, macErr);
- error = CKR_ATTRIBUTE_TYPE_INVALID;
- goto loser;
- }
- if (sizeof(PRUint32) != attr.length) {
- error = CKR_ATTRIBUTE_TYPE_INVALID;
- goto loser;
- }
- *boolp = *(PRUint32 *)attr.data ? 1 : 0;
- item->data = boolp;
- boolp = NULL;
- item->size = sizeof(CK_BBOOL);
-
-loser:
- nss_ZFreeIf(boolp);
- SecKeychainItemFreeContent(&attrList, out);
- return error;
-}
-
-/*
- * macros for fetching attributes into a cache and returning the
- * appropriate value. These operate inside switch statements
- */
-#define CKMK_HANDLE_ITEM(func, io, type, loc, item, error, str) \
- if (0 == (item)->loc.size) { \
- error = func(io, type, &(item)->loc, str); \
- } \
- return (CKR_OK == (error)) ? &(item)->loc : NULL;
-
-#define CKMK_HANDLE_OPT_ITEM(func, io, type, loc, item, error, str) \
- if (0 == (item)->loc.size) { \
- (void)func(io, type, &(item)->loc, str); \
- } \
- return &(item)->loc;
-
-#define CKMK_HANDLE_BOOL_ITEM(io, type, loc, item, error, str) \
- CKMK_HANDLE_ITEM(ckmk_GetBoolAttribute, io, type, loc, item, error, str)
-#define CKMK_HANDLE_DATA_ITEM(io, type, loc, item, error, str) \
- CKMK_HANDLE_ITEM(ckmk_GetDataAttribute, io, type, loc, item, error, str)
-#define CKMK_HANDLE_OPT_DATA_ITEM(io, type, loc, item, error, str) \
- CKMK_HANDLE_OPT_ITEM(ckmk_GetDataAttribute, io, type, loc, item, error, str)
-
-/*
- * fetch the unique identifier for each object type.
- */
-static void
-ckmk_FetchHashKey(
- ckmkInternalObject *io)
-{
- NSSItem *key = &io->hashKey;
-
- if (io->objClass == CKO_CERTIFICATE) {
- ckmk_GetCommonAttribute(io, kSecCertEncodingItemAttr,
- PR_TRUE, key, "Fetching HashKey (cert)");
- } else {
- ckmk_GetCommonAttribute(io, kSecKeyLabel,
- PR_FALSE, key, "Fetching HashKey (key)");
- }
-}
-
-/*
- * Apple mucks with the actual subject and issuer, so go fetch
- * the real ones ourselves.
- */
-static void
-ckmk_fetchCert(
- ckmkInternalObject *io)
-{
- CK_RV error;
- unsigned char *cert, *next;
- int certSize, thisEntrySize;
-
- error = ckmk_GetCommonAttribute(io, kSecCertEncodingItemAttr, PR_TRUE,
- &io->u.item.derCert, "Fetching Value (cert)");
- if (CKR_OK != error) {
- return;
- }
- /* unwrap the cert bundle */
- cert = nss_ckmk_DERUnwrap((unsigned char *)io->u.item.derCert.data,
- io->u.item.derCert.size,
- &certSize, NULL);
- /* unwrap the cert itself */
- /* cert == certdata */
- cert = nss_ckmk_DERUnwrap(cert, certSize, &certSize, NULL);
-
- /* skip the optional version */
- if ((cert[0] & 0xa0) == 0xa0) {
- nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next);
- certSize -= next - cert;
- cert = next;
- }
- /* skip the serial number */
- nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next);
- certSize -= next - cert;
- cert = next;
-
- /* skip the OID */
- nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next);
- certSize -= next - cert;
- cert = next;
-
- /* save the (wrapped) issuer */
- io->u.item.issuer.data = cert;
- nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next);
- io->u.item.issuer.size = next - cert;
- certSize -= io->u.item.issuer.size;
- cert = next;
-
- /* skip the OID */
- nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next);
- certSize -= next - cert;
- cert = next;
-
- /* save the (wrapped) subject */
- io->u.item.subject.data = cert;
- nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next);
- io->u.item.subject.size = next - cert;
- certSize -= io->u.item.subject.size;
- cert = next;
-}
-
-static void
-ckmk_fetchModulus(
- ckmkInternalObject *io)
-{
- NSSItem item;
- PRInt32 modLen;
- CK_RV error;
-
- /* we can't reliably get the modulus for private keys through CSSM (sigh).
- * For NSS this is OK because we really only use this to get the modulus
- * length (unless we are trying to get a public key from a private keys,
- * something CSSM ALSO does not do!).
- */
- error = ckmk_GetDataAttribute(io, kSecKeyKeySizeInBits, &item,
- "Key Fetch Modulus");
- if (CKR_OK != error) {
- return;
- }
-
- modLen = *(PRInt32 *)item.data;
- modLen = modLen / 8; /* convert from bits to bytes */
-
- nss_ZFreeIf(item.data);
- io->u.item.modulus.data = nss_ZNEWARRAY(NULL, char, modLen);
- if (NULL == io->u.item.modulus.data) {
- return;
- }
- *(char *)io->u.item.modulus.data = 0x80; /* fake NSS out or it will
- * drop the first byte */
- io->u.item.modulus.size = modLen;
- return;
-}
-
-const NSSItem *
-ckmk_FetchCertAttribute(
- ckmkInternalObject *io,
- CK_ATTRIBUTE_TYPE type,
- CK_RV *pError)
-{
- ckmkItemObject *item = &io->u.item;
- *pError = CKR_OK;
- switch (type) {
- case CKA_CLASS:
- return &ckmk_certClassItem;
- case CKA_TOKEN:
- case CKA_MODIFIABLE:
- return &ckmk_trueItem;
- case CKA_PRIVATE:
- return &ckmk_falseItem;
- case CKA_CERTIFICATE_TYPE:
- return &ckmk_x509Item;
- case CKA_LABEL:
- CKMK_HANDLE_OPT_DATA_ITEM(io, kSecLabelItemAttr, label, item, *pError,
- "Cert:Label attr")
- case CKA_SUBJECT:
- /* OK, well apple does provide an subject and issuer attribute, but they
- * decided to cannonicalize that value. Probably a good move for them,
- * but makes it useless for most users of PKCS #11.. Get the real subject
- * from the certificate */
- if (0 == item->derCert.size) {
- ckmk_fetchCert(io);
- }
- return &item->subject;
- case CKA_ISSUER:
- if (0 == item->derCert.size) {
- ckmk_fetchCert(io);
- }
- return &item->issuer;
- case CKA_SERIAL_NUMBER:
- CKMK_HANDLE_DATA_ITEM(io, kSecSerialNumberItemAttr, serial, item, *pError,
- "Cert:Serial Number attr")
- case CKA_VALUE:
- if (0 == item->derCert.size) {
- ckmk_fetchCert(io);
- }
- return &item->derCert;
- case CKA_ID:
- CKMK_HANDLE_OPT_DATA_ITEM(io, kSecPublicKeyHashItemAttr, id, item, *pError,
- "Cert:ID attr")
- default:
- *pError = CKR_ATTRIBUTE_TYPE_INVALID;
- break;
- }
- return NULL;
-}
-
-const NSSItem *
-ckmk_FetchPubKeyAttribute(
- ckmkInternalObject *io,
- CK_ATTRIBUTE_TYPE type,
- CK_RV *pError)
-{
- ckmkItemObject *item = &io->u.item;
- *pError = CKR_OK;
-
- switch (type) {
- case CKA_CLASS:
- return &ckmk_pubKeyClassItem;
- case CKA_TOKEN:
- case CKA_LOCAL:
- return &ckmk_trueItem;
- case CKA_KEY_TYPE:
- return &ckmk_rsaItem;
- case CKA_LABEL:
- CKMK_HANDLE_OPT_DATA_ITEM(io, kSecKeyPrintName, label, item, *pError,
- "PubKey:Label attr")
- case CKA_ENCRYPT:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyEncrypt, encrypt, item, *pError,
- "PubKey:Encrypt attr")
- case CKA_VERIFY:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyVerify, verify, item, *pError,
- "PubKey:Verify attr")
- case CKA_VERIFY_RECOVER:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyVerifyRecover, verifyRecover,
- item, *pError, "PubKey:VerifyRecover attr")
- case CKA_PRIVATE:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyPrivate, private, item, *pError,
- "PubKey:Private attr")
- case CKA_MODIFIABLE:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyModifiable, modify, item, *pError,
- "PubKey:Modify attr")
- case CKA_DERIVE:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyDerive, derive, item, *pError,
- "PubKey:Derive attr")
- case CKA_WRAP:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyWrap, wrap, item, *pError,
- "PubKey:Wrap attr")
- case CKA_SUBJECT:
- CKMK_HANDLE_OPT_DATA_ITEM(io, kSecSubjectItemAttr, subject, item, *pError,
- "PubKey:Subect attr")
- case CKA_MODULUS:
- return &ckmk_emptyItem;
- case CKA_PUBLIC_EXPONENT:
- return &ckmk_emptyItem;
- case CKA_ID:
- CKMK_HANDLE_OPT_DATA_ITEM(io, kSecKeyLabel, id, item, *pError,
- "PubKey:ID attr")
- default:
- *pError = CKR_ATTRIBUTE_TYPE_INVALID;
- break;
- }
- return NULL;
-}
-
-const NSSItem *
-ckmk_FetchPrivKeyAttribute(
- ckmkInternalObject *io,
- CK_ATTRIBUTE_TYPE type,
- CK_RV *pError)
-{
- ckmkItemObject *item = &io->u.item;
- *pError = CKR_OK;
-
- switch (type) {
- case CKA_CLASS:
- return &ckmk_privKeyClassItem;
- case CKA_TOKEN:
- case CKA_LOCAL:
- return &ckmk_trueItem;
- case CKA_SENSITIVE:
- case CKA_EXTRACTABLE: /* will probably move in the future */
- case CKA_ALWAYS_SENSITIVE:
- case CKA_NEVER_EXTRACTABLE:
- return &ckmk_falseItem;
- case CKA_KEY_TYPE:
- return &ckmk_rsaItem;
- case CKA_LABEL:
- CKMK_HANDLE_OPT_DATA_ITEM(io, kSecKeyPrintName, label, item, *pError,
- "PrivateKey:Label attr")
- case CKA_DECRYPT:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyDecrypt, decrypt, item, *pError,
- "PrivateKey:Decrypt attr")
- case CKA_SIGN:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeySign, sign, item, *pError,
- "PrivateKey:Sign attr")
- case CKA_SIGN_RECOVER:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeySignRecover, signRecover, item, *pError,
- "PrivateKey:Sign Recover attr")
- case CKA_PRIVATE:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyPrivate, private, item, *pError,
- "PrivateKey:Private attr")
- case CKA_MODIFIABLE:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyModifiable, modify, item, *pError,
- "PrivateKey:Modify attr")
- case CKA_DERIVE:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyDerive, derive, item, *pError,
- "PrivateKey:Derive attr")
- case CKA_UNWRAP:
- CKMK_HANDLE_BOOL_ITEM(io, kSecKeyUnwrap, unwrap, item, *pError,
- "PrivateKey:Unwrap attr")
- case CKA_SUBJECT:
- CKMK_HANDLE_OPT_DATA_ITEM(io, kSecSubjectItemAttr, subject, item, *pError,
- "PrivateKey:Subject attr")
- case CKA_MODULUS:
- if (0 == item->modulus.size) {
- ckmk_fetchModulus(io);
- }
- return &item->modulus;
- case CKA_PUBLIC_EXPONENT:
- return &ckmk_emptyItem;
-#ifdef notdef
- /* the following are sensitive attributes. We could implement them for
- * sensitive keys using the key export function, but it's better to
- * just support wrap through this token. That will more reliably allow us
- * to export any private key that is truly exportable.
- */
- case CKA_PRIVATE_EXPONENT:
- CKMK_HANDLE_DATA_ITEM(io, kSecPrivateExponentItemAttr, privateExponent,
- item, *pError)
- case CKA_PRIME_1:
- CKMK_HANDLE_DATA_ITEM(io, kSecPrime1ItemAttr, prime1, item, *pError)
- case CKA_PRIME_2:
- CKMK_HANDLE_DATA_ITEM(io, kSecPrime2ItemAttr, prime2, item, *pError)
- case CKA_EXPONENT_1:
- CKMK_HANDLE_DATA_ITEM(io, kSecExponent1ItemAttr, exponent1, item, *pError)
- case CKA_EXPONENT_2:
- CKMK_HANDLE_DATA_ITEM(io, kSecExponent2ItemAttr, exponent2, item, *pError)
- case CKA_COEFFICIENT:
- CKMK_HANDLE_DATA_ITEM(io, kSecCoefficientItemAttr, coefficient,
- item, *pError)
-#endif
- case CKA_ID:
- CKMK_HANDLE_OPT_DATA_ITEM(io, kSecKeyLabel, id, item, *pError,
- "PrivateKey:ID attr")
- default:
- *pError = CKR_ATTRIBUTE_TYPE_INVALID;
- return NULL;
- }
-}
-
-const NSSItem *
-nss_ckmk_FetchAttribute(
- ckmkInternalObject *io,
- CK_ATTRIBUTE_TYPE type,
- CK_RV *pError)
-{
- CK_ULONG i;
- const NSSItem *value = NULL;
-
- if (io->type == ckmkRaw) {
- for (i = 0; i < io->u.raw.n; i++) {
- if (type == io->u.raw.types[i]) {
- return &io->u.raw.items[i];
- }
- }
- *pError = CKR_ATTRIBUTE_TYPE_INVALID;
- return NULL;
- }
- /* deal with the common attributes */
- switch (io->objClass) {
- case CKO_CERTIFICATE:
- value = ckmk_FetchCertAttribute(io, type, pError);
- break;
- case CKO_PRIVATE_KEY:
- value = ckmk_FetchPrivKeyAttribute(io, type, pError);
- break;
- case CKO_PUBLIC_KEY:
- value = ckmk_FetchPubKeyAttribute(io, type, pError);
- break;
- default:
- *pError = CKR_OBJECT_HANDLE_INVALID;
- return NULL;
- }
-
-#ifdef DEBUG
- if (CKA_ID == type) {
- itemdump("id: ", value->data, value->size, *pError);
- }
-#endif
- return value;
-}
-
-static void
-ckmk_removeObjectFromHash(
- ckmkInternalObject *io);
-
-/*
- *
- * These are the MSObject functions we need to implement
- *
- * Finalize - unneeded (actually we should clean up the hashtables)
- * Destroy
- * IsTokenObject - CK_TRUE
- * GetAttributeCount
- * GetAttributeTypes
- * GetAttributeSize
- * GetAttribute
- * SetAttribute
- * GetObjectSize
- */
-
-static CK_RV
-ckmk_mdObject_Destroy(
- NSSCKMDObject *mdObject,
- NSSCKFWObject *fwObject,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc;
- OSStatus macErr;
-
- if (ckmkRaw == io->type) {
- /* there is not 'object write protected' error, use the next best thing */
- return CKR_TOKEN_WRITE_PROTECTED;
- }
-
- /* This API is done well. The following 4 lines are the complete apple
- * specific part of this implementation */
- macErr = SecKeychainItemDelete(io->u.item.itemRef);
- if (noErr != macErr) {
- CKMK_MACERR("Delete object", macErr);
- }
-
- /* remove it from the hash */
- ckmk_removeObjectFromHash(io);
-
- /* free the puppy.. */
- nss_ckmk_DestroyInternalObject(io);
-
- return CKR_OK;
-}
-
-static CK_BBOOL
-ckmk_mdObject_IsTokenObject(
- NSSCKMDObject *mdObject,
- NSSCKFWObject *fwObject,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return CK_TRUE;
-}
-
-static CK_ULONG
-ckmk_mdObject_GetAttributeCount(
- NSSCKMDObject *mdObject,
- NSSCKFWObject *fwObject,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc;
-
- if (ckmkRaw == io->type) {
- return io->u.raw.n;
- }
- switch (io->objClass) {
- case CKO_CERTIFICATE:
- return certAttrsCount;
- case CKO_PUBLIC_KEY:
- return pubKeyAttrsCount;
- case CKO_PRIVATE_KEY:
- return privKeyAttrsCount;
- default:
- break;
- }
- return 0;
-}
-
-static CK_RV
-ckmk_mdObject_GetAttributeTypes(
- NSSCKMDObject *mdObject,
- NSSCKFWObject *fwObject,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_ATTRIBUTE_TYPE_PTR typeArray,
- CK_ULONG ulCount)
-{
- ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc;
- CK_ULONG i;
- CK_RV error = CKR_OK;
- const CK_ATTRIBUTE_TYPE *attrs = NULL;
- CK_ULONG size = ckmk_mdObject_GetAttributeCount(
- mdObject, fwObject, mdSession, fwSession,
- mdToken, fwToken, mdInstance, fwInstance, &error);
-
- if (size != ulCount) {
- return CKR_BUFFER_TOO_SMALL;
- }
- if (io->type == ckmkRaw) {
- attrs = io->u.raw.types;
- } else
- switch (io->objClass) {
- case CKO_CERTIFICATE:
- attrs =
- certAttrs;
- break;
- case CKO_PUBLIC_KEY:
- attrs =
- pubKeyAttrs;
- break;
- case CKO_PRIVATE_KEY:
- attrs =
- privKeyAttrs;
- break;
- default:
- return CKR_OK;
- }
-
- for (i = 0; i < size; i++) {
- typeArray[i] = attrs[i];
- }
-
- return CKR_OK;
-}
-
-static CK_ULONG
-ckmk_mdObject_GetAttributeSize(
- NSSCKMDObject *mdObject,
- NSSCKFWObject *fwObject,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_ATTRIBUTE_TYPE attribute,
- CK_RV *pError)
-{
- ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc;
-
- const NSSItem *b;
-
- b = nss_ckmk_FetchAttribute(io, attribute, pError);
-
- if ((const NSSItem *)NULL == b) {
- return 0;
- }
- return b->size;
-}
-
-static CK_RV
-ckmk_mdObject_SetAttribute(
- NSSCKMDObject *mdObject,
- NSSCKFWObject *fwObject,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_ATTRIBUTE_TYPE attribute,
- NSSItem *value)
-{
- ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc;
- SecKeychainItemRef itemRef;
-
- if (io->type == ckmkRaw) {
- return CKR_TOKEN_WRITE_PROTECTED;
- }
- itemRef = io->u.item.itemRef;
-
- switch (io->objClass) {
- case CKO_PRIVATE_KEY:
- case CKO_PUBLIC_KEY:
- switch (attribute) {
- case CKA_ID:
- ckmk_updateAttribute(itemRef, kSecKeyLabel,
- value->data, value->size, "Set Attr Key ID");
-#ifdef DEBUG
- itemdump("key id: ", value->data, value->size, CKR_OK);
-#endif
- break;
- case CKA_LABEL:
- ckmk_updateAttribute(itemRef, kSecKeyPrintName, value->data,
- value->size, "Set Attr Key Label");
- break;
- default:
- break;
- }
- break;
-
- case CKO_CERTIFICATE:
- switch (attribute) {
- case CKA_ID:
- ckmk_updateAttribute(itemRef, kSecPublicKeyHashItemAttr,
- value->data, value->size, "Set Attr Cert ID");
- break;
- case CKA_LABEL:
- ckmk_updateAttribute(itemRef, kSecLabelItemAttr, value->data,
- value->size, "Set Attr Cert Label");
- break;
- default:
- break;
- }
- break;
-
- default:
- break;
- }
- return CKR_OK;
-}
-
-static NSSCKFWItem
-ckmk_mdObject_GetAttribute(
- NSSCKMDObject *mdObject,
- NSSCKFWObject *fwObject,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_ATTRIBUTE_TYPE attribute,
- CK_RV *pError)
-{
- NSSCKFWItem mdItem;
- ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc;
-
- mdItem.needsFreeing = PR_FALSE;
- mdItem.item = (NSSItem *)nss_ckmk_FetchAttribute(io, attribute, pError);
-
- return mdItem;
-}
-
-static CK_ULONG
-ckmk_mdObject_GetObjectSize(
- NSSCKMDObject *mdObject,
- NSSCKFWObject *fwObject,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- CK_ULONG rv = 1;
-
- /* size is irrelevant to this token */
- return rv;
-}
-
-static const NSSCKMDObject
- ckmk_prototype_mdObject = {
- (void *)NULL, /* etc */
- NULL, /* Finalize */
- ckmk_mdObject_Destroy,
- ckmk_mdObject_IsTokenObject,
- ckmk_mdObject_GetAttributeCount,
- ckmk_mdObject_GetAttributeTypes,
- ckmk_mdObject_GetAttributeSize,
- ckmk_mdObject_GetAttribute,
- NULL, /* FreeAttribute */
- ckmk_mdObject_SetAttribute,
- ckmk_mdObject_GetObjectSize,
- (void *)NULL /* null terminator */
- };
-
-static nssHash *ckmkInternalObjectHash = NULL;
-
-NSS_IMPLEMENT NSSCKMDObject *
-nss_ckmk_CreateMDObject(
- NSSArena *arena,
- ckmkInternalObject *io,
- CK_RV *pError)
-{
- if ((nssHash *)NULL == ckmkInternalObjectHash) {
- ckmkInternalObjectHash = nssHash_CreateItem(NULL, 10);
- }
- if (ckmkItem == io->type) {
- /* the hash key, not a cryptographic key */
- NSSItem *key = &io->hashKey;
- ckmkInternalObject *old_o = NULL;
-
- if (key->size == 0) {
- ckmk_FetchHashKey(io);
- }
- old_o = (ckmkInternalObject *)
- nssHash_Lookup(ckmkInternalObjectHash, key);
- if (!old_o) {
- nssHash_Add(ckmkInternalObjectHash, key, io);
- } else if (old_o != io) {
- nss_ckmk_DestroyInternalObject(io);
- io = old_o;
- }
- }
-
- if ((void *)NULL == io->mdObject.etc) {
- (void)nsslibc_memcpy(&io->mdObject, &ckmk_prototype_mdObject,
- sizeof(ckmk_prototype_mdObject));
- io->mdObject.etc = (void *)io;
- }
- return &io->mdObject;
-}
-
-static void
-ckmk_removeObjectFromHash(
- ckmkInternalObject *io)
-{
- NSSItem *key = &io->hashKey;
-
- if ((nssHash *)NULL == ckmkInternalObjectHash) {
- return;
- }
- if (key->size == 0) {
- ckmk_FetchHashKey(io);
- }
- nssHash_Remove(ckmkInternalObjectHash, key);
- return;
-}
-
-void
-nss_ckmk_DestroyInternalObject(
- ckmkInternalObject *io)
-{
- switch (io->type) {
- case ckmkRaw:
- return;
- case ckmkItem:
- nss_ZFreeIf(io->u.item.modify.data);
- nss_ZFreeIf(io->u.item.private.data);
- nss_ZFreeIf(io->u.item.encrypt.data);
- nss_ZFreeIf(io->u.item.decrypt.data);
- nss_ZFreeIf(io->u.item.derive.data);
- nss_ZFreeIf(io->u.item.sign.data);
- nss_ZFreeIf(io->u.item.signRecover.data);
- nss_ZFreeIf(io->u.item.verify.data);
- nss_ZFreeIf(io->u.item.verifyRecover.data);
- nss_ZFreeIf(io->u.item.wrap.data);
- nss_ZFreeIf(io->u.item.unwrap.data);
- nss_ZFreeIf(io->u.item.label.data);
- /*nss_ZFreeIf(io->u.item.subject.data); */
- /*nss_ZFreeIf(io->u.item.issuer.data); */
- nss_ZFreeIf(io->u.item.serial.data);
- nss_ZFreeIf(io->u.item.modulus.data);
- nss_ZFreeIf(io->u.item.exponent.data);
- nss_ZFreeIf(io->u.item.privateExponent.data);
- nss_ZFreeIf(io->u.item.prime1.data);
- nss_ZFreeIf(io->u.item.prime2.data);
- nss_ZFreeIf(io->u.item.exponent1.data);
- nss_ZFreeIf(io->u.item.exponent2.data);
- nss_ZFreeIf(io->u.item.coefficient.data);
- break;
- }
- nss_ZFreeIf(io);
- return;
-}
-
-static ckmkInternalObject *
-nss_ckmk_NewInternalObject(
- CK_OBJECT_CLASS objClass,
- SecKeychainItemRef itemRef,
- SecItemClass itemClass,
- CK_RV *pError)
-{
- ckmkInternalObject *io = nss_ZNEW(NULL, ckmkInternalObject);
-
- if ((ckmkInternalObject *)NULL == io) {
- *pError = CKR_HOST_MEMORY;
- return io;
- }
- io->type = ckmkItem;
- io->objClass = objClass;
- io->u.item.itemRef = itemRef;
- io->u.item.itemClass = itemClass;
- return io;
-}
-
-/*
- * Apple doesn't alway have a default keyChain set by the OS, use the
- * SearchList to try to find one.
- */
-static CK_RV
-ckmk_GetSafeDefaultKeychain(
- SecKeychainRef *keychainRef)
-{
- OSStatus macErr;
- CFArrayRef searchList = 0;
- CK_RV error = CKR_OK;
-
- macErr = SecKeychainCopyDefault(keychainRef);
- if (noErr != macErr) {
- int searchCount = 0;
- if (errSecNoDefaultKeychain != macErr) {
- CKMK_MACERR("Getting default key chain", macErr);
- error = CKR_GENERAL_ERROR;
- goto loser;
- }
- /* ok, we don't have a default key chain, find one */
- macErr = SecKeychainCopySearchList(&searchList);
- if (noErr != macErr) {
- CKMK_MACERR("failed to find a keyring searchList", macErr);
- error = CKR_DEVICE_REMOVED;
- goto loser;
- }
- searchCount = CFArrayGetCount(searchList);
- if (searchCount < 1) {
- error = CKR_DEVICE_REMOVED;
- goto loser;
- }
- *keychainRef =
- (SecKeychainRef)CFRetain(CFArrayGetValueAtIndex(searchList, 0));
- if (0 == *keychainRef) {
- error = CKR_DEVICE_REMOVED;
- goto loser;
- }
- /* should we set it as default? */
- }
-loser:
- if (0 != searchList) {
- CFRelease(searchList);
- }
- return error;
-}
-static ckmkInternalObject *
-nss_ckmk_CreateCertificate(
- NSSCKFWSession *fwSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- CK_RV *pError)
-{
- NSSItem value;
- ckmkInternalObject *io = NULL;
- OSStatus macErr;
- SecCertificateRef certRef;
- SecKeychainItemRef itemRef;
- SecKeychainRef keychainRef;
- CSSM_DATA certData;
-
- *pError = nss_ckmk_GetAttribute(CKA_VALUE, pTemplate,
- ulAttributeCount, &value);
- if (CKR_OK != *pError) {
- goto loser;
- }
-
- certData.Data = value.data;
- certData.Length = value.size;
- macErr = SecCertificateCreateFromData(&certData, CSSM_CERT_X_509v3,
- CSSM_CERT_ENCODING_BER, &certRef);
- if (noErr != macErr) {
- CKMK_MACERR("Create cert from data Failed", macErr);
- *pError = CKR_GENERAL_ERROR; /* need to map macErr */
- goto loser;
- }
-
- *pError = ckmk_GetSafeDefaultKeychain(&keychainRef);
- if (CKR_OK != *pError) {
- goto loser;
- }
-
- macErr = SecCertificateAddToKeychain(certRef, keychainRef);
- itemRef = (SecKeychainItemRef)certRef;
- if (errSecDuplicateItem != macErr) {
- NSSItem keyID = { NULL, 0 };
- char *nickname = NULL;
- CK_RV dummy;
-
- if (noErr != macErr) {
- CKMK_MACERR("Add cert to keychain Failed", macErr);
- *pError = CKR_GENERAL_ERROR; /* need to map macErr */
- goto loser;
- }
- /* these two are optional */
- nickname = nss_ckmk_GetStringAttribute(CKA_LABEL, pTemplate,
- ulAttributeCount, &dummy);
- /* we've added a new one, update the attributes in the key ring */
- if (nickname) {
- ckmk_updateAttribute(itemRef, kSecLabelItemAttr, nickname,
- strlen(nickname) + 1, "Modify Cert Label");
- nss_ZFreeIf(nickname);
- }
- dummy = nss_ckmk_GetAttribute(CKA_ID, pTemplate,
- ulAttributeCount, &keyID);
- if (CKR_OK == dummy) {
- dummy = ckmk_updateAttribute(itemRef, kSecPublicKeyHashItemAttr,
- keyID.data, keyID.size, "Modify Cert ID");
- }
- }
-
- io = nss_ckmk_NewInternalObject(CKO_CERTIFICATE, itemRef,
- kSecCertificateItemClass, pError);
- if ((ckmkInternalObject *)NULL != io) {
- itemRef = 0;
- }
-
-loser:
- if (0 != itemRef) {
- CFRelease(itemRef);
- }
- if (0 != keychainRef) {
- CFRelease(keychainRef);
- }
-
- return io;
-}
-
-/*
- * PKCS #8 attributes
- */
-struct ckmk_AttributeStr {
- SECItem attrType;
- SECItem *attrValue;
-};
-typedef struct ckmk_AttributeStr ckmk_Attribute;
-
-/*
- ** A PKCS#8 private key info object
- */
-struct PrivateKeyInfoStr {
- PLArenaPool *arena;
- SECItem version;
- SECAlgorithmID algorithm;
- SECItem privateKey;
- ckmk_Attribute **attributes;
-};
-typedef struct PrivateKeyInfoStr PrivateKeyInfo;
-
-const SEC_ASN1Template ckmk_RSAPrivateKeyTemplate[] = {
- { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(RSAPrivateKey) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, version) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, modulus) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, publicExponent) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, privateExponent) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, prime1) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, prime2) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, exponent1) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, exponent2) },
- { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, coefficient) },
- { 0 }
-};
-
-const SEC_ASN1Template ckmk_AttributeTemplate[] = {
- { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(ckmk_Attribute) },
- { SEC_ASN1_OBJECT_ID, offsetof(ckmk_Attribute, attrType) },
- { SEC_ASN1_SET_OF, offsetof(ckmk_Attribute, attrValue),
- SEC_AnyTemplate },
- { 0 }
-};
-
-const SEC_ASN1Template ckmk_SetOfAttributeTemplate[] = {
- { SEC_ASN1_SET_OF, 0, ckmk_AttributeTemplate },
-};
-
-SEC_ASN1_MKSUB(SECOID_AlgorithmIDTemplate)
-
-/* ASN1 Templates for new decoder/encoder */
-const SEC_ASN1Template ckmk_PrivateKeyInfoTemplate[] = {
- { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(PrivateKeyInfo) },
- { SEC_ASN1_INTEGER, offsetof(PrivateKeyInfo, version) },
- { SEC_ASN1_INLINE | SEC_ASN1_XTRN, offsetof(PrivateKeyInfo, algorithm),
- SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
- { SEC_ASN1_OCTET_STRING, offsetof(PrivateKeyInfo, privateKey) },
- { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 0,
- offsetof(PrivateKeyInfo, attributes), ckmk_SetOfAttributeTemplate },
- { 0 }
-};
-
-#define CKMK_PRIVATE_KEY_INFO_VERSION 0
-static CK_RV
-ckmk_CreateRSAKeyBlob(
- RSAPrivateKey *lk,
- NSSItem *keyBlob)
-{
- PrivateKeyInfo *pki = NULL;
- PLArenaPool *arena = NULL;
- SECOidTag algorithm = SEC_OID_UNKNOWN;
- void *dummy;
- SECStatus rv;
- SECItem *encodedKey = NULL;
- CK_RV error = CKR_OK;
-
- arena = PORT_NewArena(2048); /* XXX different size? */
- if (!arena) {
- error = CKR_HOST_MEMORY;
- goto loser;
- }
-
- pki = (PrivateKeyInfo *)PORT_ArenaZAlloc(arena, sizeof(PrivateKeyInfo));
- if (!pki) {
- error = CKR_HOST_MEMORY;
- goto loser;
- }
- pki->arena = arena;
-
- dummy = SEC_ASN1EncodeItem(arena, &pki->privateKey, lk,
- ckmk_RSAPrivateKeyTemplate);
- algorithm = SEC_OID_PKCS1_RSA_ENCRYPTION;
-
- if (!dummy) {
- error = CKR_DEVICE_ERROR; /* should map NSS SECError */
- goto loser;
- }
-
- rv = SECOID_SetAlgorithmID(arena, &pki->algorithm, algorithm,
- (SECItem *)NULL);
- if (rv != SECSuccess) {
- error = CKR_DEVICE_ERROR; /* should map NSS SECError */
- goto loser;
- }
-
- dummy = SEC_ASN1EncodeInteger(arena, &pki->version,
- CKMK_PRIVATE_KEY_INFO_VERSION);
- if (!dummy) {
- error = CKR_DEVICE_ERROR; /* should map NSS SECError */
- goto loser;
- }
-
- encodedKey = SEC_ASN1EncodeItem(NULL, NULL, pki,
- ckmk_PrivateKeyInfoTemplate);
- if (!encodedKey) {
- error = CKR_DEVICE_ERROR;
- goto loser;
- }
-
- keyBlob->data = nss_ZNEWARRAY(NULL, char, encodedKey->len);
- if (NULL == keyBlob->data) {
- error = CKR_HOST_MEMORY;
- goto loser;
- }
- nsslibc_memcpy(keyBlob->data, encodedKey->data, encodedKey->len);
- keyBlob->size = encodedKey->len;
-
-loser:
- if (arena) {
- PORT_FreeArena(arena, PR_TRUE);
- }
- if (encodedKey) {
- SECITEM_FreeItem(encodedKey, PR_TRUE);
- }
-
- return error;
-}
-/*
- * There MUST be a better way to do this. For now, find the key based on the
- * default name Apple gives it once we import.
- */
-#define IMPORTED_NAME "Imported Private Key"
-static CK_RV
-ckmk_FindImportedKey(
- SecKeychainRef keychainRef,
- SecItemClass itemClass,
- SecKeychainItemRef *outItemRef)
-{
- OSStatus macErr;
- SecKeychainSearchRef searchRef = 0;
- SecKeychainItemRef newItemRef;
-
- macErr = SecKeychainSearchCreateFromAttributes(keychainRef, itemClass,
- NULL, &searchRef);
- if (noErr != macErr) {
- CKMK_MACERR("Can't search for Key", macErr);
- return CKR_GENERAL_ERROR;
- }
- while (noErr == SecKeychainSearchCopyNext(searchRef, &newItemRef)) {
- SecKeychainAttributeList *attrList = NULL;
- SecKeychainAttributeInfo attrInfo;
- SecItemAttr itemAttr = kSecKeyPrintName;
- PRUint32 attrFormat = 0;
- OSStatus macErr;
-
- attrInfo.count = 1;
- attrInfo.tag = &itemAttr;
- attrInfo.format = &attrFormat;
-
- macErr = SecKeychainItemCopyAttributesAndData(newItemRef,
- &attrInfo, NULL, &attrList, NULL, NULL);
- if (noErr == macErr) {
- if (nsslibc_memcmp(attrList->attr->data, IMPORTED_NAME,
- attrList->attr->length, NULL) == 0) {
- *outItemRef = newItemRef;
- CFRelease(searchRef);
- SecKeychainItemFreeAttributesAndData(attrList, NULL);
- return CKR_OK;
- }
- SecKeychainItemFreeAttributesAndData(attrList, NULL);
- }
- CFRelease(newItemRef);
- }
- CFRelease(searchRef);
- return CKR_GENERAL_ERROR; /* we can come up with something better! */
-}
-
-static ckmkInternalObject *
-nss_ckmk_CreatePrivateKey(
- NSSCKFWSession *fwSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- CK_RV *pError)
-{
- NSSItem attribute;
- RSAPrivateKey lk;
- NSSItem keyID;
- char *nickname = NULL;
- ckmkInternalObject *io = NULL;
- CK_KEY_TYPE keyType;
- OSStatus macErr;
- SecKeychainItemRef itemRef = 0;
- NSSItem keyBlob = { NULL, 0 };
- CFDataRef dataRef = 0;
- SecExternalFormat inputFormat = kSecFormatBSAFE;
- /*SecExternalFormat inputFormat = kSecFormatOpenSSL; */
- SecExternalItemType itemType = kSecItemTypePrivateKey;
- SecKeyImportExportParameters keyParams;
- SecKeychainRef targetKeychain = 0;
- unsigned char zero = 0;
- CK_RV error;
-
- keyParams.version = SEC_KEY_IMPORT_EXPORT_PARAMS_VERSION;
- keyParams.flags = 0;
- keyParams.passphrase = 0;
- keyParams.alertTitle = 0;
- keyParams.alertPrompt = 0;
- keyParams.accessRef = 0; /* default */
- keyParams.keyUsage = 0; /* will get filled in */
- keyParams.keyAttributes = CSSM_KEYATTR_PERMANENT; /* will get filled in */
- keyType = nss_ckmk_GetULongAttribute(CKA_KEY_TYPE, pTemplate, ulAttributeCount, pError);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- if (CKK_RSA != keyType) {
- *pError = CKR_ATTRIBUTE_VALUE_INVALID;
- return (ckmkInternalObject *)NULL;
- }
- if (nss_ckmk_GetBoolAttribute(CKA_DECRYPT,
- pTemplate, ulAttributeCount, CK_TRUE)) {
- keyParams.keyUsage |= CSSM_KEYUSE_DECRYPT;
- }
- if (nss_ckmk_GetBoolAttribute(CKA_UNWRAP,
- pTemplate, ulAttributeCount, CK_TRUE)) {
- keyParams.keyUsage |= CSSM_KEYUSE_UNWRAP;
- }
- if (nss_ckmk_GetBoolAttribute(CKA_SIGN,
- pTemplate, ulAttributeCount, CK_TRUE)) {
- keyParams.keyUsage |= CSSM_KEYUSE_SIGN;
- }
- if (nss_ckmk_GetBoolAttribute(CKA_DERIVE,
- pTemplate, ulAttributeCount, CK_FALSE)) {
- keyParams.keyUsage |= CSSM_KEYUSE_DERIVE;
- }
- if (nss_ckmk_GetBoolAttribute(CKA_SENSITIVE,
- pTemplate, ulAttributeCount, CK_TRUE)) {
- keyParams.keyAttributes |= CSSM_KEYATTR_SENSITIVE;
- }
- if (nss_ckmk_GetBoolAttribute(CKA_EXTRACTABLE,
- pTemplate, ulAttributeCount, CK_TRUE)) {
- keyParams.keyAttributes |= CSSM_KEYATTR_EXTRACTABLE;
- }
-
- lk.version.type = siUnsignedInteger;
- lk.version.data = &zero;
- lk.version.len = 1;
-
- *pError = nss_ckmk_GetAttribute(CKA_MODULUS, pTemplate,
- ulAttributeCount, &attribute);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- lk.modulus.type = siUnsignedInteger;
- lk.modulus.data = attribute.data;
- lk.modulus.len = attribute.size;
-
- *pError = nss_ckmk_GetAttribute(CKA_PUBLIC_EXPONENT, pTemplate,
- ulAttributeCount, &attribute);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- lk.publicExponent.type = siUnsignedInteger;
- lk.publicExponent.data = attribute.data;
- lk.publicExponent.len = attribute.size;
-
- *pError = nss_ckmk_GetAttribute(CKA_PRIVATE_EXPONENT, pTemplate,
- ulAttributeCount, &attribute);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- lk.privateExponent.type = siUnsignedInteger;
- lk.privateExponent.data = attribute.data;
- lk.privateExponent.len = attribute.size;
-
- *pError = nss_ckmk_GetAttribute(CKA_PRIME_1, pTemplate,
- ulAttributeCount, &attribute);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- lk.prime1.type = siUnsignedInteger;
- lk.prime1.data = attribute.data;
- lk.prime1.len = attribute.size;
-
- *pError = nss_ckmk_GetAttribute(CKA_PRIME_2, pTemplate,
- ulAttributeCount, &attribute);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- lk.prime2.type = siUnsignedInteger;
- lk.prime2.data = attribute.data;
- lk.prime2.len = attribute.size;
-
- *pError = nss_ckmk_GetAttribute(CKA_EXPONENT_1, pTemplate,
- ulAttributeCount, &attribute);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- lk.exponent1.type = siUnsignedInteger;
- lk.exponent1.data = attribute.data;
- lk.exponent1.len = attribute.size;
-
- *pError = nss_ckmk_GetAttribute(CKA_EXPONENT_2, pTemplate,
- ulAttributeCount, &attribute);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- lk.exponent2.type = siUnsignedInteger;
- lk.exponent2.data = attribute.data;
- lk.exponent2.len = attribute.size;
-
- *pError = nss_ckmk_GetAttribute(CKA_COEFFICIENT, pTemplate,
- ulAttributeCount, &attribute);
- if (CKR_OK != *pError) {
- return (ckmkInternalObject *)NULL;
- }
- lk.coefficient.type = siUnsignedInteger;
- lk.coefficient.data = attribute.data;
- lk.coefficient.len = attribute.size;
-
- /* ASN1 Encode the pkcs8 structure... look at softoken to see how this
- * is done... */
- error = ckmk_CreateRSAKeyBlob(&lk, &keyBlob);
- if (CKR_OK != error) {
- goto loser;
- }
-
- dataRef = CFDataCreate(NULL, (UInt8 *)keyBlob.data, keyBlob.size);
- if (0 == dataRef) {
- *pError = CKR_HOST_MEMORY;
- goto loser;
- }
-
- *pError == ckmk_GetSafeDefaultKeychain(&targetKeychain);
- if (CKR_OK != *pError) {
- goto loser;
- }
-
- /* the itemArray that is returned is useless. the item does not
- * is 'not on the key chain' so none of the modify calls work on it.
- * It also has a key that isn't the same key as the one in the actual
- * key chain. In short it isn't the item we want, and it gives us zero
- * information about the item we want, so don't even bother with it...
- */
- macErr = SecKeychainItemImport(dataRef, NULL, &inputFormat, &itemType, 0,
- &keyParams, targetKeychain, NULL);
- if (noErr != macErr) {
- CKMK_MACERR("Import Private Key", macErr);
- *pError = CKR_GENERAL_ERROR;
- goto loser;
- }
-
- *pError = ckmk_FindImportedKey(targetKeychain,
- CSSM_DL_DB_RECORD_PRIVATE_KEY,
- &itemRef);
- if (CKR_OK != *pError) {
-#ifdef DEBUG
- fprintf(stderr, "couldn't find key in keychain \n");
-#endif
- goto loser;
- }
-
- /* set the CKA_ID and the CKA_LABEL */
- error = nss_ckmk_GetAttribute(CKA_ID, pTemplate,
- ulAttributeCount, &keyID);
- if (CKR_OK == error) {
- error = ckmk_updateAttribute(itemRef, kSecKeyLabel,
- keyID.data, keyID.size, "Modify Key ID");
-#ifdef DEBUG
- itemdump("key id: ", keyID.data, keyID.size, error);
-#endif
- }
- nickname = nss_ckmk_GetStringAttribute(CKA_LABEL, pTemplate,
- ulAttributeCount, &error);
- if (nickname) {
- ckmk_updateAttribute(itemRef, kSecKeyPrintName, nickname,
- strlen(nickname) + 1, "Modify Key Label");
- } else {
-#define DEFAULT_NICKNAME "NSS Imported Key"
- ckmk_updateAttribute(itemRef, kSecKeyPrintName, DEFAULT_NICKNAME,
- sizeof(DEFAULT_NICKNAME), "Modify Key Label");
- }
-
- io = nss_ckmk_NewInternalObject(CKO_PRIVATE_KEY, itemRef,
- CSSM_DL_DB_RECORD_PRIVATE_KEY, pError);
- if ((ckmkInternalObject *)NULL == io) {
- CFRelease(itemRef);
- }
-
- return io;
-
-loser:
- /* free the key blob */
- if (keyBlob.data) {
- nss_ZFreeIf(keyBlob.data);
- }
- if (0 != targetKeychain) {
- CFRelease(targetKeychain);
- }
- if (0 != dataRef) {
- CFRelease(dataRef);
- }
- return io;
-}
-
-NSS_EXTERN NSSCKMDObject *
-nss_ckmk_CreateObject(
- NSSCKFWSession *fwSession,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- CK_RV *pError)
-{
- CK_OBJECT_CLASS objClass;
- ckmkInternalObject *io = NULL;
- CK_BBOOL isToken;
-
- /*
- * only create token objects
- */
- isToken = nss_ckmk_GetBoolAttribute(CKA_TOKEN, pTemplate,
- ulAttributeCount, CK_FALSE);
- if (!isToken) {
- *pError = CKR_ATTRIBUTE_VALUE_INVALID;
- return (NSSCKMDObject *)NULL;
- }
-
- /*
- * only create keys and certs.
- */
- objClass = nss_ckmk_GetULongAttribute(CKA_CLASS, pTemplate,
- ulAttributeCount, pError);
- if (CKR_OK != *pError) {
- return (NSSCKMDObject *)NULL;
- }
-#ifdef notdef
- if (objClass == CKO_PUBLIC_KEY) {
- return CKR_OK; /* fake public key creation, happens as a side effect of
- * private key creation */
- }
-#endif
- if (objClass == CKO_CERTIFICATE) {
- io = nss_ckmk_CreateCertificate(fwSession, pTemplate,
- ulAttributeCount, pError);
- } else if (objClass == CKO_PRIVATE_KEY) {
- io = nss_ckmk_CreatePrivateKey(fwSession, pTemplate,
- ulAttributeCount, pError);
- } else {
- *pError = CKR_ATTRIBUTE_VALUE_INVALID;
- }
-
- if ((ckmkInternalObject *)NULL == io) {
- return (NSSCKMDObject *)NULL;
- }
- return nss_ckmk_CreateMDObject(NULL, io, pError);
-}
diff --git a/security/nss/lib/ckfw/nssmkey/mrsa.c b/security/nss/lib/ckfw/nssmkey/mrsa.c
deleted file mode 100644
index 00175b47a..000000000
--- a/security/nss/lib/ckfw/nssmkey/mrsa.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "ckmk.h"
-
-/* Sigh, For all the talk about 'ease of use', apple has hidden the interfaces
- * needed to be able to truly use CSSM. These came from their modification
- * to NSS's S/MIME code. The following two functions currently are not
- * part of the SecKey.h interface.
- */
-OSStatus
-SecKeyGetCredentials(
- SecKeyRef keyRef,
- CSSM_ACL_AUTHORIZATION_TAG authTag,
- int type,
- const CSSM_ACCESS_CREDENTIALS **creds);
-
-/* this function could be implemented using 'SecKeychainItemCopyKeychain' and
- * 'SecKeychainGetCSPHandle' */
-OSStatus
-SecKeyGetCSPHandle(
- SecKeyRef keyRef,
- CSSM_CSP_HANDLE *cspHandle);
-
-typedef struct ckmkInternalCryptoOperationRSAPrivStr
- ckmkInternalCryptoOperationRSAPriv;
-struct ckmkInternalCryptoOperationRSAPrivStr {
- NSSCKMDCryptoOperation mdOperation;
- NSSCKMDMechanism *mdMechanism;
- ckmkInternalObject *iKey;
- NSSItem *buffer;
- CSSM_CC_HANDLE cssmContext;
-};
-
-typedef enum {
- CKMK_DECRYPT,
- CKMK_SIGN
-} ckmkRSAOpType;
-
-/*
- * ckmk_mdCryptoOperationRSAPriv_Create
- */
-static NSSCKMDCryptoOperation *
-ckmk_mdCryptoOperationRSAPriv_Create(
- const NSSCKMDCryptoOperation *proto,
- NSSCKMDMechanism *mdMechanism,
- NSSCKMDObject *mdKey,
- ckmkRSAOpType type,
- CK_RV *pError)
-{
- ckmkInternalObject *iKey = (ckmkInternalObject *)mdKey->etc;
- const NSSItem *classItem = nss_ckmk_FetchAttribute(iKey, CKA_CLASS, pError);
- const NSSItem *keyType = nss_ckmk_FetchAttribute(iKey, CKA_KEY_TYPE, pError);
- ckmkInternalCryptoOperationRSAPriv *iOperation;
- SecKeyRef privateKey;
- OSStatus macErr;
- CSSM_RETURN cssmErr;
- const CSSM_KEY *cssmKey;
- CSSM_CSP_HANDLE cspHandle;
- const CSSM_ACCESS_CREDENTIALS *creds = NULL;
- CSSM_CC_HANDLE cssmContext;
- CSSM_ACL_AUTHORIZATION_TAG authType;
-
- /* make sure we have the right objects */
- if (((const NSSItem *)NULL == classItem) ||
- (sizeof(CK_OBJECT_CLASS) != classItem->size) ||
- (CKO_PRIVATE_KEY != *(CK_OBJECT_CLASS *)classItem->data) ||
- ((const NSSItem *)NULL == keyType) ||
- (sizeof(CK_KEY_TYPE) != keyType->size) ||
- (CKK_RSA != *(CK_KEY_TYPE *)keyType->data)) {
- *pError = CKR_KEY_TYPE_INCONSISTENT;
- return (NSSCKMDCryptoOperation *)NULL;
- }
-
- privateKey = (SecKeyRef)iKey->u.item.itemRef;
- macErr = SecKeyGetCSSMKey(privateKey, &cssmKey);
- if (noErr != macErr) {
- CKMK_MACERR("Getting CSSM Key", macErr);
- *pError = CKR_KEY_HANDLE_INVALID;
- return (NSSCKMDCryptoOperation *)NULL;
- }
- macErr = SecKeyGetCSPHandle(privateKey, &cspHandle);
- if (noErr != macErr) {
- CKMK_MACERR("Getting CSP for Key", macErr);
- *pError = CKR_KEY_HANDLE_INVALID;
- return (NSSCKMDCryptoOperation *)NULL;
- }
- switch (type) {
- case CKMK_DECRYPT:
- authType = CSSM_ACL_AUTHORIZATION_DECRYPT;
- break;
- case CKMK_SIGN:
- authType = CSSM_ACL_AUTHORIZATION_SIGN;
- break;
- default:
- *pError = CKR_GENERAL_ERROR;
-#ifdef DEBUG
- fprintf(stderr, "RSAPriv_Create: bad type = %d\n", type);
-#endif
- return (NSSCKMDCryptoOperation *)NULL;
- }
-
- macErr = SecKeyGetCredentials(privateKey, authType, 0, &creds);
- if (noErr != macErr) {
- CKMK_MACERR("Getting Credentials for Key", macErr);
- *pError = CKR_KEY_HANDLE_INVALID;
- return (NSSCKMDCryptoOperation *)NULL;
- }
-
- switch (type) {
- case CKMK_DECRYPT:
- cssmErr = CSSM_CSP_CreateAsymmetricContext(cspHandle, CSSM_ALGID_RSA,
- creds, cssmKey, CSSM_PADDING_PKCS1, &cssmContext);
- break;
- case CKMK_SIGN:
- cssmErr = CSSM_CSP_CreateSignatureContext(cspHandle, CSSM_ALGID_RSA,
- creds, cssmKey, &cssmContext);
- break;
- default:
- *pError = CKR_GENERAL_ERROR;
-#ifdef DEBUG
- fprintf(stderr, "RSAPriv_Create: bad type = %d\n", type);
-#endif
- return (NSSCKMDCryptoOperation *)NULL;
- }
- if (noErr != cssmErr) {
- CKMK_MACERR("Getting Context for Key", cssmErr);
- *pError = CKR_GENERAL_ERROR;
- return (NSSCKMDCryptoOperation *)NULL;
- }
-
- iOperation = nss_ZNEW(NULL, ckmkInternalCryptoOperationRSAPriv);
- if ((ckmkInternalCryptoOperationRSAPriv *)NULL == iOperation) {
- *pError = CKR_HOST_MEMORY;
- return (NSSCKMDCryptoOperation *)NULL;
- }
- iOperation->mdMechanism = mdMechanism;
- iOperation->iKey = iKey;
- iOperation->cssmContext = cssmContext;
-
- nsslibc_memcpy(&iOperation->mdOperation,
- proto, sizeof(NSSCKMDCryptoOperation));
- iOperation->mdOperation.etc = iOperation;
-
- return &iOperation->mdOperation;
-}
-
-static void
-ckmk_mdCryptoOperationRSAPriv_Destroy(
- NSSCKMDCryptoOperation *mdOperation,
- NSSCKFWCryptoOperation *fwOperation,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- ckmkInternalCryptoOperationRSAPriv *iOperation =
- (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
-
- if (iOperation->buffer) {
- nssItem_Destroy(iOperation->buffer);
- }
- if (iOperation->cssmContext) {
- CSSM_DeleteContext(iOperation->cssmContext);
- }
- nss_ZFreeIf(iOperation);
- return;
-}
-
-static CK_ULONG
-ckmk_mdCryptoOperationRSA_GetFinalLength(
- NSSCKMDCryptoOperation *mdOperation,
- NSSCKFWCryptoOperation *fwOperation,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- ckmkInternalCryptoOperationRSAPriv *iOperation =
- (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
- const NSSItem *modulus =
- nss_ckmk_FetchAttribute(iOperation->iKey, CKA_MODULUS, pError);
-
- return modulus->size;
-}
-
-/*
- * ckmk_mdCryptoOperationRSADecrypt_GetOperationLength
- * we won't know the length until we actually decrypt the
- * input block. Since we go to all the work to decrypt the
- * the block, we'll save if for when the block is asked for
- */
-static CK_ULONG
-ckmk_mdCryptoOperationRSADecrypt_GetOperationLength(
- NSSCKMDCryptoOperation *mdOperation,
- NSSCKFWCryptoOperation *fwOperation,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- const NSSItem *input,
- CK_RV *pError)
-{
- ckmkInternalCryptoOperationRSAPriv *iOperation =
- (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
- CSSM_DATA cssmInput;
- CSSM_DATA cssmOutput = { 0, NULL };
- PRUint32 bytesDecrypted;
- CSSM_DATA remainder = { 0, NULL };
- NSSItem output;
- CSSM_RETURN cssmErr;
-
- if (iOperation->buffer) {
- return iOperation->buffer->size;
- }
-
- cssmInput.Data = input->data;
- cssmInput.Length = input->size;
-
- cssmErr = CSSM_DecryptData(iOperation->cssmContext,
- &cssmInput, 1, &cssmOutput, 1,
- &bytesDecrypted, &remainder);
- if (CSSM_OK != cssmErr) {
- CKMK_MACERR("Decrypt Failed", cssmErr);
- *pError = CKR_DATA_INVALID;
- return 0;
- }
- /* we didn't suppy any buffers, so it should all be in remainder */
- output.data = nss_ZNEWARRAY(NULL, char, bytesDecrypted + remainder.Length);
- if (NULL == output.data) {
- free(cssmOutput.Data);
- free(remainder.Data);
- *pError = CKR_HOST_MEMORY;
- return 0;
- }
- output.size = bytesDecrypted + remainder.Length;
-
- if (0 != bytesDecrypted) {
- nsslibc_memcpy(output.data, cssmOutput.Data, bytesDecrypted);
- free(cssmOutput.Data);
- }
- if (0 != remainder.Length) {
- nsslibc_memcpy(((char *)output.data) + bytesDecrypted,
- remainder.Data, remainder.Length);
- free(remainder.Data);
- }
-
- iOperation->buffer = nssItem_Duplicate(&output, NULL, NULL);
- nss_ZFreeIf(output.data);
- if ((NSSItem *)NULL == iOperation->buffer) {
- *pError = CKR_HOST_MEMORY;
- return 0;
- }
-
- return iOperation->buffer->size;
-}
-
-/*
- * ckmk_mdCryptoOperationRSADecrypt_UpdateFinal
- *
- * NOTE: ckmk_mdCryptoOperationRSADecrypt_GetOperationLength is presumed to
- * have been called previously.
- */
-static CK_RV
-ckmk_mdCryptoOperationRSADecrypt_UpdateFinal(
- NSSCKMDCryptoOperation *mdOperation,
- NSSCKFWCryptoOperation *fwOperation,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- const NSSItem *input,
- NSSItem *output)
-{
- ckmkInternalCryptoOperationRSAPriv *iOperation =
- (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
- NSSItem *buffer = iOperation->buffer;
-
- if ((NSSItem *)NULL == buffer) {
- return CKR_GENERAL_ERROR;
- }
- nsslibc_memcpy(output->data, buffer->data, buffer->size);
- output->size = buffer->size;
- return CKR_OK;
-}
-
-/*
- * ckmk_mdCryptoOperationRSASign_UpdateFinal
- *
- */
-static CK_RV
-ckmk_mdCryptoOperationRSASign_UpdateFinal(
- NSSCKMDCryptoOperation *mdOperation,
- NSSCKFWCryptoOperation *fwOperation,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- const NSSItem *input,
- NSSItem *output)
-{
- ckmkInternalCryptoOperationRSAPriv *iOperation =
- (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
- CSSM_DATA cssmInput;
- CSSM_DATA cssmOutput = { 0, NULL };
- CSSM_RETURN cssmErr;
-
- cssmInput.Data = input->data;
- cssmInput.Length = input->size;
-
- cssmErr = CSSM_SignData(iOperation->cssmContext, &cssmInput, 1,
- CSSM_ALGID_NONE, &cssmOutput);
- if (CSSM_OK != cssmErr) {
- CKMK_MACERR("Signed Failed", cssmErr);
- return CKR_FUNCTION_FAILED;
- }
- if (cssmOutput.Length > output->size) {
- free(cssmOutput.Data);
- return CKR_BUFFER_TOO_SMALL;
- }
- nsslibc_memcpy(output->data, cssmOutput.Data, cssmOutput.Length);
- free(cssmOutput.Data);
- output->size = cssmOutput.Length;
-
- return CKR_OK;
-}
-
-NSS_IMPLEMENT_DATA const NSSCKMDCryptoOperation
- ckmk_mdCryptoOperationRSADecrypt_proto = {
- NULL, /* etc */
- ckmk_mdCryptoOperationRSAPriv_Destroy,
- NULL, /* GetFinalLengh - not needed for one shot Decrypt/Encrypt */
- ckmk_mdCryptoOperationRSADecrypt_GetOperationLength,
- NULL, /* Final - not needed for one shot operation */
- NULL, /* Update - not needed for one shot operation */
- NULL, /* DigetUpdate - not needed for one shot operation */
- ckmk_mdCryptoOperationRSADecrypt_UpdateFinal,
- NULL, /* UpdateCombo - not needed for one shot operation */
- NULL, /* DigetKey - not needed for one shot operation */
- (void *)NULL /* null terminator */
- };
-
-NSS_IMPLEMENT_DATA const NSSCKMDCryptoOperation
- ckmk_mdCryptoOperationRSASign_proto = {
- NULL, /* etc */
- ckmk_mdCryptoOperationRSAPriv_Destroy,
- ckmk_mdCryptoOperationRSA_GetFinalLength,
- NULL, /* GetOperationLengh - not needed for one shot Sign/Verify */
- NULL, /* Final - not needed for one shot operation */
- NULL, /* Update - not needed for one shot operation */
- NULL, /* DigetUpdate - not needed for one shot operation */
- ckmk_mdCryptoOperationRSASign_UpdateFinal,
- NULL, /* UpdateCombo - not needed for one shot operation */
- NULL, /* DigetKey - not needed for one shot operation */
- (void *)NULL /* null terminator */
- };
-
-/********** NSSCKMDMechansim functions ***********************/
-/*
- * ckmk_mdMechanismRSA_Destroy
- */
-static void
-ckmk_mdMechanismRSA_Destroy(
- NSSCKMDMechanism *mdMechanism,
- NSSCKFWMechanism *fwMechanism,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- nss_ZFreeIf(fwMechanism);
-}
-
-/*
- * ckmk_mdMechanismRSA_GetMinKeySize
- */
-static CK_ULONG
-ckmk_mdMechanismRSA_GetMinKeySize(
- NSSCKMDMechanism *mdMechanism,
- NSSCKFWMechanism *fwMechanism,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return 384;
-}
-
-/*
- * ckmk_mdMechanismRSA_GetMaxKeySize
- */
-static CK_ULONG
-ckmk_mdMechanismRSA_GetMaxKeySize(
- NSSCKMDMechanism *mdMechanism,
- NSSCKFWMechanism *fwMechanism,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return 16384;
-}
-
-/*
- * ckmk_mdMechanismRSA_DecryptInit
- */
-static NSSCKMDCryptoOperation *
-ckmk_mdMechanismRSA_DecryptInit(
- NSSCKMDMechanism *mdMechanism,
- NSSCKFWMechanism *fwMechanism,
- CK_MECHANISM *pMechanism,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- NSSCKMDObject *mdKey,
- NSSCKFWObject *fwKey,
- CK_RV *pError)
-{
- return ckmk_mdCryptoOperationRSAPriv_Create(
- &ckmk_mdCryptoOperationRSADecrypt_proto,
- mdMechanism, mdKey, CKMK_DECRYPT, pError);
-}
-
-/*
- * ckmk_mdMechanismRSA_SignInit
- */
-static NSSCKMDCryptoOperation *
-ckmk_mdMechanismRSA_SignInit(
- NSSCKMDMechanism *mdMechanism,
- NSSCKFWMechanism *fwMechanism,
- CK_MECHANISM *pMechanism,
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- NSSCKMDObject *mdKey,
- NSSCKFWObject *fwKey,
- CK_RV *pError)
-{
- return ckmk_mdCryptoOperationRSAPriv_Create(
- &ckmk_mdCryptoOperationRSASign_proto,
- mdMechanism, mdKey, CKMK_SIGN, pError);
-}
-
-NSS_IMPLEMENT_DATA const NSSCKMDMechanism
- nss_ckmk_mdMechanismRSA = {
- (void *)NULL, /* etc */
- ckmk_mdMechanismRSA_Destroy,
- ckmk_mdMechanismRSA_GetMinKeySize,
- ckmk_mdMechanismRSA_GetMaxKeySize,
- NULL, /* GetInHardware - default false */
- NULL, /* EncryptInit - default errs */
- ckmk_mdMechanismRSA_DecryptInit,
- NULL, /* DigestInit - default errs*/
- ckmk_mdMechanismRSA_SignInit,
- NULL, /* VerifyInit - default errs */
- ckmk_mdMechanismRSA_SignInit, /* SignRecoverInit */
- NULL, /* VerifyRecoverInit - default errs */
- NULL, /* GenerateKey - default errs */
- NULL, /* GenerateKeyPair - default errs */
- NULL, /* GetWrapKeyLength - default errs */
- NULL, /* WrapKey - default errs */
- NULL, /* UnwrapKey - default errs */
- NULL, /* DeriveKey - default errs */
- (void *)NULL /* null terminator */
- };
diff --git a/security/nss/lib/ckfw/nssmkey/msession.c b/security/nss/lib/ckfw/nssmkey/msession.c
deleted file mode 100644
index e6a29244a..000000000
--- a/security/nss/lib/ckfw/nssmkey/msession.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "ckmk.h"
-
-/*
- * nssmkey/msession.c
- *
- * This file implements the NSSCKMDSession object for the
- * "nssmkey" cryptoki module.
- */
-
-static NSSCKMDFindObjects *
-ckmk_mdSession_FindObjectsInit(
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- CK_RV *pError)
-{
- return nss_ckmk_FindObjectsInit(fwSession, pTemplate, ulAttributeCount, pError);
-}
-
-static NSSCKMDObject *
-ckmk_mdSession_CreateObject(
- NSSCKMDSession *mdSession,
- NSSCKFWSession *fwSession,
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- NSSArena *arena,
- CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount,
- CK_RV *pError)
-{
- return nss_ckmk_CreateObject(fwSession, pTemplate, ulAttributeCount, pError);
-}
-
-NSS_IMPLEMENT NSSCKMDSession *
-nss_ckmk_CreateSession(
- NSSCKFWSession *fwSession,
- CK_RV *pError)
-{
- NSSArena *arena;
- NSSCKMDSession *rv;
-
- arena = NSSCKFWSession_GetArena(fwSession, pError);
- if ((NSSArena *)NULL == arena) {
- return (NSSCKMDSession *)NULL;
- }
-
- rv = nss_ZNEW(arena, NSSCKMDSession);
- if ((NSSCKMDSession *)NULL == rv) {
- *pError = CKR_HOST_MEMORY;
- return (NSSCKMDSession *)NULL;
- }
-
- /*
- * rv was zeroed when allocated, so we only
- * need to set the non-zero members.
- */
-
- rv->etc = (void *)fwSession;
- /* rv->Close */
- /* rv->GetDeviceError */
- /* rv->Login */
- /* rv->Logout */
- /* rv->InitPIN */
- /* rv->SetPIN */
- /* rv->GetOperationStateLen */
- /* rv->GetOperationState */
- /* rv->SetOperationState */
- rv->CreateObject = ckmk_mdSession_CreateObject;
- /* rv->CopyObject */
- rv->FindObjectsInit = ckmk_mdSession_FindObjectsInit;
- /* rv->SeedRandom */
- /* rv->GetRandom */
- /* rv->null */
-
- return rv;
-}
diff --git a/security/nss/lib/ckfw/nssmkey/mslot.c b/security/nss/lib/ckfw/nssmkey/mslot.c
deleted file mode 100644
index b2747ff7b..000000000
--- a/security/nss/lib/ckfw/nssmkey/mslot.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "ckmk.h"
-
-/*
- * nssmkey/mslot.c
- *
- * This file implements the NSSCKMDSlot object for the
- * "nssmkey" cryptoki module.
- */
-
-static NSSUTF8 *
-ckmk_mdSlot_GetSlotDescription(
- NSSCKMDSlot *mdSlot,
- NSSCKFWSlot *fwSlot,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSUTF8 *)nss_ckmk_SlotDescription;
-}
-
-static NSSUTF8 *
-ckmk_mdSlot_GetManufacturerID(
- NSSCKMDSlot *mdSlot,
- NSSCKFWSlot *fwSlot,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSUTF8 *)nss_ckmk_ManufacturerID;
-}
-
-static CK_VERSION
-ckmk_mdSlot_GetHardwareVersion(
- NSSCKMDSlot *mdSlot,
- NSSCKFWSlot *fwSlot,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return nss_ckmk_HardwareVersion;
-}
-
-static CK_VERSION
-ckmk_mdSlot_GetFirmwareVersion(
- NSSCKMDSlot *mdSlot,
- NSSCKFWSlot *fwSlot,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return nss_ckmk_FirmwareVersion;
-}
-
-static NSSCKMDToken *
-ckmk_mdSlot_GetToken(
- NSSCKMDSlot *mdSlot,
- NSSCKFWSlot *fwSlot,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSCKMDToken *)&nss_ckmk_mdToken;
-}
-
-NSS_IMPLEMENT_DATA const NSSCKMDSlot
- nss_ckmk_mdSlot = {
- (void *)NULL, /* etc */
- NULL, /* Initialize */
- NULL, /* Destroy */
- ckmk_mdSlot_GetSlotDescription,
- ckmk_mdSlot_GetManufacturerID,
- NULL, /* GetTokenPresent -- defaults to true */
- NULL, /* GetRemovableDevice -- defaults to false */
- NULL, /* GetHardwareSlot -- defaults to false */
- ckmk_mdSlot_GetHardwareVersion,
- ckmk_mdSlot_GetFirmwareVersion,
- ckmk_mdSlot_GetToken,
- (void *)NULL /* null terminator */
- };
diff --git a/security/nss/lib/ckfw/nssmkey/mtoken.c b/security/nss/lib/ckfw/nssmkey/mtoken.c
deleted file mode 100644
index e18d61240..000000000
--- a/security/nss/lib/ckfw/nssmkey/mtoken.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "ckmk.h"
-
-/*
- * nssmkey/mtoken.c
- *
- * This file implements the NSSCKMDToken object for the
- * "nssmkey" cryptoki module.
- */
-
-static NSSUTF8 *
-ckmk_mdToken_GetLabel(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSUTF8 *)nss_ckmk_TokenLabel;
-}
-
-static NSSUTF8 *
-ckmk_mdToken_GetManufacturerID(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSUTF8 *)nss_ckmk_ManufacturerID;
-}
-
-static NSSUTF8 *
-ckmk_mdToken_GetModel(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSUTF8 *)nss_ckmk_TokenModel;
-}
-
-static NSSUTF8 *
-ckmk_mdToken_GetSerialNumber(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_RV *pError)
-{
- return (NSSUTF8 *)nss_ckmk_TokenSerialNumber;
-}
-
-static CK_BBOOL
-ckmk_mdToken_GetIsWriteProtected(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return CK_FALSE;
-}
-
-/* fake out Mozilla so we don't try to initialize the token */
-static CK_BBOOL
-ckmk_mdToken_GetUserPinInitialized(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return CK_TRUE;
-}
-
-static CK_VERSION
-ckmk_mdToken_GetHardwareVersion(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return nss_ckmk_HardwareVersion;
-}
-
-static CK_VERSION
-ckmk_mdToken_GetFirmwareVersion(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return nss_ckmk_FirmwareVersion;
-}
-
-static NSSCKMDSession *
-ckmk_mdToken_OpenSession(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- NSSCKFWSession *fwSession,
- CK_BBOOL rw,
- CK_RV *pError)
-{
- return nss_ckmk_CreateSession(fwSession, pError);
-}
-
-static CK_ULONG
-ckmk_mdToken_GetMechanismCount(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance)
-{
- return (CK_ULONG)1;
-}
-
-static CK_RV
-ckmk_mdToken_GetMechanismTypes(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_MECHANISM_TYPE types[])
-{
- types[0] = CKM_RSA_PKCS;
- return CKR_OK;
-}
-
-static NSSCKMDMechanism *
-ckmk_mdToken_GetMechanism(
- NSSCKMDToken *mdToken,
- NSSCKFWToken *fwToken,
- NSSCKMDInstance *mdInstance,
- NSSCKFWInstance *fwInstance,
- CK_MECHANISM_TYPE which,
- CK_RV *pError)
-{
- if (which != CKM_RSA_PKCS) {
- *pError = CKR_MECHANISM_INVALID;
- return (NSSCKMDMechanism *)NULL;
- }
- return (NSSCKMDMechanism *)&nss_ckmk_mdMechanismRSA;
-}
-
-NSS_IMPLEMENT_DATA const NSSCKMDToken
- nss_ckmk_mdToken = {
- (void *)NULL, /* etc */
- NULL, /* Setup */
- NULL, /* Invalidate */
- NULL, /* InitToken -- default errs */
- ckmk_mdToken_GetLabel,
- ckmk_mdToken_GetManufacturerID,
- ckmk_mdToken_GetModel,
- ckmk_mdToken_GetSerialNumber,
- NULL, /* GetHasRNG -- default is false */
- ckmk_mdToken_GetIsWriteProtected,
- NULL, /* GetLoginRequired -- default is false */
- ckmk_mdToken_GetUserPinInitialized,
- NULL, /* GetRestoreKeyNotNeeded -- irrelevant */
- NULL, /* GetHasClockOnToken -- default is false */
- NULL, /* GetHasProtectedAuthenticationPath -- default is false */
- NULL, /* GetSupportsDualCryptoOperations -- default is false */
- NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */
- NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */
- NULL, /* GetMaxPinLen -- irrelevant */
- NULL, /* GetMinPinLen -- irrelevant */
- NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */
- NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */
- NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */
- NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */
- ckmk_mdToken_GetHardwareVersion,
- ckmk_mdToken_GetFirmwareVersion,
- NULL, /* GetUTCTime -- no clock */
- ckmk_mdToken_OpenSession,
- ckmk_mdToken_GetMechanismCount,
- ckmk_mdToken_GetMechanismTypes,
- ckmk_mdToken_GetMechanism,
- (void *)NULL /* null terminator */
- };
diff --git a/security/nss/lib/ckfw/nssmkey/nssmkey.def b/security/nss/lib/ckfw/nssmkey/nssmkey.def
deleted file mode 100644
index 45d307ff0..000000000
--- a/security/nss/lib/ckfw/nssmkey/nssmkey.def
+++ /dev/null
@@ -1,26 +0,0 @@
-;+#
-;+# This Source Code Form is subject to the terms of the Mozilla Public
-;+# License, v. 2.0. If a copy of the MPL was not distributed with this
-;+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-;+#
-;+# OK, this file is meant to support SUN, LINUX, AIX and WINDOWS
-;+# 1. For all unix platforms, the string ";-" means "remove this line"
-;+# 2. For all unix platforms, the string " DATA " will be removed from any
-;+# line on which it occurs.
-;+# 3. Lines containing ";+" will have ";+" removed on SUN and LINUX.
-;+# On AIX, lines containing ";+" will be removed.
-;+# 4. For all unix platforms, the string ";;" will thave the ";;" removed.
-;+# 5. For all unix platforms, after the above processing has taken place,
-;+# all characters after the first ";" on the line will be removed.
-;+# And for AIX, the first ";" will also be removed.
-;+# This file is passed directly to windows. Since ';' is a comment, all UNIX
-;+# directives are hidden behind ";", ";+", and ";-"
-;+
-;+NSSMKEY_3.0 { # First release of nssmkey
-;+ global:
-LIBRARY nssmkey ;-
-EXPORTS ;-
-C_GetFunctionList;
-;+ local:
-;+*;
-;+};
diff --git a/security/nss/lib/ckfw/nssmkey/nssmkey.h b/security/nss/lib/ckfw/nssmkey/nssmkey.h
deleted file mode 100644
index ba58233e6..000000000
--- a/security/nss/lib/ckfw/nssmkey/nssmkey.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef NSSMKEY_H
-#define NSSMKEY_H
-
-/*
- * NSS CKMK Version numbers.
- *
- * These are the version numbers for the nssmkey module packaged with
- * this release on NSS. To determine the version numbers of the builtin
- * module you are using, use the appropriate PKCS #11 calls.
- *
- * These version numbers detail changes to the PKCS #11 interface. They map
- * to the PKCS #11 spec versions.
- */
-#define NSS_CKMK_CRYPTOKI_VERSION_MAJOR 2
-#define NSS_CKMK_CRYPTOKI_VERSION_MINOR 20
-
-/* These version numbers detail the changes
- * to the list of trusted certificates.
- *
- * NSS_CKMK_LIBRARY_VERSION_MINOR is a CK_BYTE. It's not clear
- * whether we may use its full range (0-255) or only 0-99 because
- * of the comment in the CK_VERSION type definition.
- */
-#define NSS_CKMK_LIBRARY_VERSION_MAJOR 1
-#define NSS_CKMK_LIBRARY_VERSION_MINOR 1
-#define NSS_CKMK_LIBRARY_VERSION "1.1"
-
-/* These version numbers detail the semantic changes to the ckfw engine. */
-#define NSS_CKMK_HARDWARE_VERSION_MAJOR 1
-#define NSS_CKMK_HARDWARE_VERSION_MINOR 0
-
-/* These version numbers detail the semantic changes to ckbi itself
- * (new PKCS #11 objects), etc. */
-#define NSS_CKMK_FIRMWARE_VERSION_MAJOR 1
-#define NSS_CKMK_FIRMWARE_VERSION_MINOR 0
-
-#endif /* NSSMKEY_H */
diff --git a/security/nss/lib/ckfw/nssmkey/staticobj.c b/security/nss/lib/ckfw/nssmkey/staticobj.c
deleted file mode 100644
index 5f3bb7c72..000000000
--- a/security/nss/lib/ckfw/nssmkey/staticobj.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef CKMK_H
-#include "ckmk.h"
-#endif /* CKMK_H */
-
-static const CK_TRUST ckt_netscape_valid = CKT_NETSCAPE_VALID;
-static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE;
-static const CK_TRUST ckt_netscape_trusted_delegator = CKT_NETSCAPE_TRUSTED_DELEGATOR;
-static const CK_OBJECT_CLASS cko_netscape_trust = CKO_NETSCAPE_TRUST;
-static const CK_BBOOL ck_true = CK_TRUE;
-static const CK_OBJECT_CLASS cko_data = CKO_DATA;
-static const CK_CERTIFICATE_TYPE ckc_x_509 = CKC_X_509;
-static const CK_BBOOL ck_false = CK_FALSE;
-static const CK_OBJECT_CLASS cko_netscape_builtin_root_list = CKO_NETSCAPE_BUILTIN_ROOT_LIST;
-
-/* example of a static object */
-static const CK_ATTRIBUTE_TYPE nss_ckmk_types_1[] = {
- CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL
-};
-
-static const NSSItem nss_ckmk_items_1[] = {
- { (void *)&cko_data, (PRUint32)sizeof(CK_OBJECT_CLASS) },
- { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
- { (void *)"Mozilla Mac Key Ring Access", (PRUint32)28 }
-};
-
-ckmkInternalObject nss_ckmk_data[] = {
- { ckmkRaw, { { 5, nss_ckmk_types_1, nss_ckmk_items_1 } }, CKO_DATA, { NULL } },
-};
-
-const PRUint32 nss_ckmk_nObjects = 1;
diff --git a/security/nss/lib/ckfw/session.c b/security/nss/lib/ckfw/session.c
index a3119345c..7efedf403 100644
--- a/security/nss/lib/ckfw/session.c
+++ b/security/nss/lib/ckfw/session.c
@@ -1419,9 +1419,8 @@ nssCKFWSession_CopyObject(
/* use create object */
NSSArena *tmpArena;
CK_ATTRIBUTE_PTR newTemplate;
- CK_ULONG i, j, n, newLength, k;
+ CK_ULONG j, n, newLength, k;
CK_ATTRIBUTE_TYPE_PTR oldTypes;
- NSSCKFWObject *rv;
n = nssCKFWObject_GetAttributeCount(fwObject, pError);
if ((0 == n) && (CKR_OK != *pError)) {
diff --git a/security/nss/lib/dev/devtoken.c b/security/nss/lib/dev/devtoken.c
index 0d4c3b5a7..41ffe86da 100644
--- a/security/nss/lib/dev/devtoken.c
+++ b/security/nss/lib/dev/devtoken.c
@@ -528,7 +528,9 @@ nssToken_ImportCertificate(
*/
NSS_CK_TEMPLATE_START(cert_tmpl, attr, ctsize);
NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ID, id);
- NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_LABEL, nickname);
+ if (!rvObject->label && nickname) {
+ NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_LABEL, nickname);
+ }
NSS_CK_TEMPLATE_FINISH(cert_tmpl, attr, ctsize);
/* reset the mutable attributes on the token */
nssCKObject_SetAttributes(rvObject->handle,
diff --git a/security/nss/lib/freebl/Makefile b/security/nss/lib/freebl/Makefile
index a4b1a86ae..bff11c7c8 100644
--- a/security/nss/lib/freebl/Makefile
+++ b/security/nss/lib/freebl/Makefile
@@ -517,13 +517,13 @@ ifndef NSS_DISABLE_CHACHAPOLY
ifdef HAVE_INT128_SUPPORT
EXTRA_SRCS += Hacl_Poly1305_64.c
else
- EXTRA_SRCS += poly1305.c
+ EXTRA_SRCS += Hacl_Poly1305_32.c
endif
else
ifeq ($(CPU_ARCH),aarch64)
EXTRA_SRCS += Hacl_Poly1305_64.c
else
- EXTRA_SRCS += poly1305.c
+ EXTRA_SRCS += Hacl_Poly1305_32.c
endif
endif # x86_64
@@ -535,12 +535,16 @@ ifeq (,$(filter-out i386 x386 x86 x86_64 aarch64,$(CPU_ARCH)))
# All intel architectures get the 64 bit version
# With custom uint128 if necessary (faster than generic 32 bit version).
ECL_SRCS += curve25519_64.c
- VERIFIED_SRCS += Hacl_Curve25519.c FStar.c
+ VERIFIED_SRCS += Hacl_Curve25519.c
else
# All non intel architectures get the generic 32 bit implementation (slow!)
ECL_SRCS += curve25519_32.c
endif
+ifndef HAVE_INT128_SUPPORT
+ VERIFIED_SRCS += FStar.c
+endif
+
#######################################################################
# (5) Execute "global" rules. (OPTIONAL) #
#######################################################################
diff --git a/security/nss/lib/freebl/blake2b.c b/security/nss/lib/freebl/blake2b.c
index 4099c67e0..b4a0442c9 100644
--- a/security/nss/lib/freebl/blake2b.c
+++ b/security/nss/lib/freebl/blake2b.c
@@ -180,7 +180,7 @@ blake2b_Begin(BLAKE2BContext* ctx, uint8_t outlen, const uint8_t* key,
return SECSuccess;
failure:
- PORT_Memset(&ctx, 0, sizeof(ctx));
+ PORT_Memset(ctx, 0, sizeof(*ctx));
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
diff --git a/security/nss/lib/freebl/chacha20poly1305.c b/security/nss/lib/freebl/chacha20poly1305.c
index 859d05316..302f0db9e 100644
--- a/security/nss/lib/freebl/chacha20poly1305.c
+++ b/security/nss/lib/freebl/chacha20poly1305.c
@@ -24,36 +24,60 @@ extern void Hacl_Chacha20_Vec128_chacha20(uint8_t *output, uint8_t *plain,
extern void Hacl_Chacha20_chacha20(uint8_t *output, uint8_t *plain, uint32_t len,
uint8_t *k, uint8_t *n1, uint32_t ctr);
-/* Poly1305Do writes the Poly1305 authenticator of the given additional data
- * and ciphertext to |out|. */
#if defined(HAVE_INT128_SUPPORT) && (defined(NSS_X86_OR_X64) || defined(__aarch64__))
/* Use HACL* Poly1305 on 64-bit Intel and ARM */
#include "verified/Hacl_Poly1305_64.h"
+#define NSS_POLY1305_64 1
+#define Hacl_Poly1305_update Hacl_Poly1305_64_update
+#define Hacl_Poly1305_mk_state Hacl_Poly1305_64_mk_state
+#define Hacl_Poly1305_init Hacl_Poly1305_64_init
+#define Hacl_Poly1305_finish Hacl_Poly1305_64_finish
+typedef Hacl_Impl_Poly1305_64_State_poly1305_state Hacl_Impl_Poly1305_State_poly1305_state;
+#else
+/* All other platforms get the 32-bit poly1305 HACL* implementation. */
+#include "verified/Hacl_Poly1305_32.h"
+#define NSS_POLY1305_32 1
+#define Hacl_Poly1305_update Hacl_Poly1305_32_update
+#define Hacl_Poly1305_mk_state Hacl_Poly1305_32_mk_state
+#define Hacl_Poly1305_init Hacl_Poly1305_32_init
+#define Hacl_Poly1305_finish Hacl_Poly1305_32_finish
+typedef Hacl_Impl_Poly1305_32_State_poly1305_state Hacl_Impl_Poly1305_State_poly1305_state;
+#endif /* HAVE_INT128_SUPPORT */
static void
-Poly1305PadUpdate(Hacl_Impl_Poly1305_64_State_poly1305_state state,
+Poly1305PadUpdate(Hacl_Impl_Poly1305_State_poly1305_state state,
unsigned char *block, const unsigned char *p,
const unsigned int pLen)
{
unsigned int pRemLen = pLen % 16;
- Hacl_Poly1305_64_update(state, (uint8_t *)p, (pLen / 16));
+ Hacl_Poly1305_update(state, (uint8_t *)p, (pLen / 16));
if (pRemLen > 0) {
memcpy(block, p + (pLen - pRemLen), pRemLen);
- Hacl_Poly1305_64_update(state, block, 1);
+ Hacl_Poly1305_update(state, block, 1);
}
}
+/* Poly1305Do writes the Poly1305 authenticator of the given additional data
+ * and ciphertext to |out|. */
static void
Poly1305Do(unsigned char *out, const unsigned char *ad, unsigned int adLen,
const unsigned char *ciphertext, unsigned int ciphertextLen,
const unsigned char key[32])
{
- uint64_t tmp1[6U] = { 0U };
- Hacl_Impl_Poly1305_64_State_poly1305_state state =
- Hacl_Poly1305_64_mk_state(tmp1, tmp1 + 3);
+#ifdef NSS_POLY1305_64
+ uint64_t stateStack[6U] = { 0U };
+ size_t offset = 3;
+#elif defined NSS_POLY1305_32
+ uint32_t stateStack[10U] = { 0U };
+ size_t offset = 5;
+#else
+#error "This can't happen."
+#endif
+ Hacl_Impl_Poly1305_State_poly1305_state state =
+ Hacl_Poly1305_mk_state(stateStack, stateStack + offset);
unsigned char block[16] = { 0 };
- Hacl_Poly1305_64_init(state, (uint8_t *)key);
+ Hacl_Poly1305_init(state, (uint8_t *)key);
Poly1305PadUpdate(state, block, ad, adLen);
memset(block, 0, 16);
@@ -68,49 +92,11 @@ Poly1305Do(unsigned char *out, const unsigned char *ad, unsigned int adLen,
block[i] = j;
}
- Hacl_Poly1305_64_update(state, block, 1);
- Hacl_Poly1305_64_finish(state, out, (uint8_t *)(key + 16));
+ Hacl_Poly1305_update(state, block, 1);
+ Hacl_Poly1305_finish(state, out, (uint8_t *)(key + 16));
+#undef NSS_POLY1305_64
+#undef NSS_POLY1305_32
}
-#else
-/* All other platforms get the 32-bit poly1305 reference implementation. */
-#include "poly1305.h"
-
-static void
-Poly1305Do(unsigned char *out, const unsigned char *ad, unsigned int adLen,
- const unsigned char *ciphertext, unsigned int ciphertextLen,
- const unsigned char key[32])
-{
- poly1305_state state;
- unsigned int j;
- unsigned char lengthBytes[8];
- static const unsigned char zeros[15];
- unsigned int i;
-
- Poly1305Init(&state, key);
- Poly1305Update(&state, ad, adLen);
- if (adLen % 16 > 0) {
- Poly1305Update(&state, zeros, 16 - adLen % 16);
- }
- Poly1305Update(&state, ciphertext, ciphertextLen);
- if (ciphertextLen % 16 > 0) {
- Poly1305Update(&state, zeros, 16 - ciphertextLen % 16);
- }
- j = adLen;
- for (i = 0; i < sizeof(lengthBytes); i++) {
- lengthBytes[i] = j;
- j >>= 8;
- }
- Poly1305Update(&state, lengthBytes, sizeof(lengthBytes));
- j = ciphertextLen;
- for (i = 0; i < sizeof(lengthBytes); i++) {
- lengthBytes[i] = j;
- j >>= 8;
- }
- Poly1305Update(&state, lengthBytes, sizeof(lengthBytes));
- Poly1305Finish(&state, out);
-}
-
-#endif /* HAVE_INT128_SUPPORT */
#endif /* NSS_DISABLE_CHACHAPOLY */
SECStatus
diff --git a/security/nss/lib/freebl/dsa.c b/security/nss/lib/freebl/dsa.c
index 9324d306b..aef353967 100644
--- a/security/nss/lib/freebl/dsa.c
+++ b/security/nss/lib/freebl/dsa.c
@@ -16,14 +16,11 @@
#include "blapi.h"
#include "nssilock.h"
#include "secitem.h"
-#include "blapi.h"
+#include "blapit.h"
#include "mpi.h"
#include "secmpi.h"
#include "pqg.h"
-/* XXX to be replaced by define in blapit.h */
-#define NSS_FREEBL_DSA_DEFAULT_CHUNKSIZE 2048
-
/*
* FIPS 186-2 requires result from random output to be reduced mod q when
* generating random numbers for DSA.
@@ -168,7 +165,7 @@ dsa_NewKeyExtended(const PQGParams *params, const SECItem *seed,
return SECFailure;
}
/* Initialize an arena for the DSA key. */
- arena = PORT_NewArena(NSS_FREEBL_DSA_DEFAULT_CHUNKSIZE);
+ arena = PORT_NewArena(NSS_FREEBL_DEFAULT_CHUNKSIZE);
if (!arena) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
return SECFailure;
@@ -213,8 +210,9 @@ cleanup:
mp_clear(&g);
mp_clear(&x);
mp_clear(&y);
- if (key)
+ if (key) {
PORT_FreeArena(key->params.arena, PR_TRUE);
+ }
if (err) {
translate_mpi_error(err);
return SECFailure;
@@ -321,6 +319,7 @@ dsa_SignDigest(DSAPrivateKey *key, SECItem *signature, const SECItem *digest,
mp_int x, k; /* private key & pseudo-random integer */
mp_int r, s; /* tuple (r, s) is signature) */
mp_int t; /* holding tmp values */
+ mp_int ar; /* holding blinding values */
mp_err err = MP_OKAY;
SECStatus rv = SECSuccess;
unsigned int dsa_subprime_len, dsa_signature_len, offset;
@@ -364,6 +363,7 @@ dsa_SignDigest(DSAPrivateKey *key, SECItem *signature, const SECItem *digest,
MP_DIGITS(&r) = 0;
MP_DIGITS(&s) = 0;
MP_DIGITS(&t) = 0;
+ MP_DIGITS(&ar) = 0;
CHECK_MPI_OK(mp_init(&p));
CHECK_MPI_OK(mp_init(&q));
CHECK_MPI_OK(mp_init(&g));
@@ -372,6 +372,7 @@ dsa_SignDigest(DSAPrivateKey *key, SECItem *signature, const SECItem *digest,
CHECK_MPI_OK(mp_init(&r));
CHECK_MPI_OK(mp_init(&s));
CHECK_MPI_OK(mp_init(&t));
+ CHECK_MPI_OK(mp_init(&ar));
/*
** Convert stored PQG and private key into MPI integers.
*/
@@ -397,14 +398,28 @@ dsa_SignDigest(DSAPrivateKey *key, SECItem *signature, const SECItem *digest,
rv = SECFailure;
goto cleanup;
}
- SECITEM_TO_MPINT(t2, &t); /* t <-$ Zq */
+ SECITEM_TO_MPINT(t2, &t); /* t <-$ Zq */
+ SECITEM_FreeItem(&t2, PR_FALSE);
+ if (DSA_NewRandom(NULL, &key->params.subPrime, &t2) != SECSuccess) {
+ PORT_SetError(SEC_ERROR_NEED_RANDOM);
+ rv = SECFailure;
+ goto cleanup;
+ }
+ SECITEM_TO_MPINT(t2, &ar); /* ar <-$ Zq */
+ SECITEM_FreeItem(&t2, PR_FALSE);
+
+ /* Using mp_invmod on k directly would leak bits from k. */
+ CHECK_MPI_OK(mp_mul(&k, &ar, &k)); /* k = k * ar */
CHECK_MPI_OK(mp_mulmod(&k, &t, &q, &k)); /* k = k * t mod q */
CHECK_MPI_OK(mp_invmod(&k, &q, &k)); /* k = k**-1 mod q */
CHECK_MPI_OK(mp_mulmod(&k, &t, &q, &k)); /* k = k * t mod q */
SECITEM_TO_MPINT(localDigest, &s); /* s = HASH(M) */
- CHECK_MPI_OK(mp_mulmod(&x, &r, &q, &x)); /* x = x * r mod q */
- CHECK_MPI_OK(mp_addmod(&s, &x, &q, &s)); /* s = s + x mod q */
- CHECK_MPI_OK(mp_mulmod(&s, &k, &q, &s)); /* s = s * k mod q */
+ /* To avoid leaking secret bits here the addition is blinded. */
+ CHECK_MPI_OK(mp_mul(&x, &ar, &x)); /* x = x * ar */
+ CHECK_MPI_OK(mp_mulmod(&x, &r, &q, &x)); /* x = x * r mod q */
+ CHECK_MPI_OK(mp_mulmod(&s, &ar, &q, &t)); /* t = s * ar mod q */
+ CHECK_MPI_OK(mp_add(&t, &x, &s)); /* s = t + x */
+ CHECK_MPI_OK(mp_mulmod(&s, &k, &q, &s)); /* s = s * k mod q */
/*
** verify r != 0 and s != 0
** mentioned as optional in FIPS 186-1.
@@ -438,7 +453,7 @@ cleanup:
mp_clear(&r);
mp_clear(&s);
mp_clear(&t);
- SECITEM_FreeItem(&t2, PR_FALSE);
+ mp_clear(&ar);
if (err) {
translate_mpi_error(err);
rv = SECFailure;
diff --git a/security/nss/lib/freebl/ec.c b/security/nss/lib/freebl/ec.c
index b28815ade..6468a10d6 100644
--- a/security/nss/lib/freebl/ec.c
+++ b/security/nss/lib/freebl/ec.c
@@ -653,6 +653,7 @@ ECDSA_SignDigestWithSeed(ECPrivateKey *key, SECItem *signature,
mp_int r, s; /* tuple (r, s) is the signature */
mp_int t; /* holding tmp values */
mp_int n;
+ mp_int ar; /* blinding value */
mp_err err = MP_OKAY;
ECParams *ecParams = NULL;
SECItem kGpoint = { siBuffer, NULL, 0 };
@@ -674,6 +675,7 @@ ECDSA_SignDigestWithSeed(ECPrivateKey *key, SECItem *signature,
MP_DIGITS(&s) = 0;
MP_DIGITS(&n) = 0;
MP_DIGITS(&t) = 0;
+ MP_DIGITS(&ar) = 0;
/* Check args */
if (!key || !signature || !digest || !kb || (kblen < 0)) {
@@ -700,6 +702,7 @@ ECDSA_SignDigestWithSeed(ECPrivateKey *key, SECItem *signature,
CHECK_MPI_OK(mp_init(&s));
CHECK_MPI_OK(mp_init(&n));
CHECK_MPI_OK(mp_init(&t));
+ CHECK_MPI_OK(mp_init(&ar));
SECITEM_TO_MPINT(ecParams->order, &n);
SECITEM_TO_MPINT(key->privateValue, &d);
@@ -815,12 +818,25 @@ ECDSA_SignDigestWithSeed(ECPrivateKey *key, SECItem *signature,
goto cleanup;
}
CHECK_MPI_OK(mp_read_unsigned_octets(&t, t2, 2 * ecParams->order.len)); /* t <-$ Zn */
- CHECK_MPI_OK(mp_mulmod(&k, &t, &n, &k)); /* k = k * t mod n */
- CHECK_MPI_OK(mp_invmod(&k, &n, &k)); /* k = k**-1 mod n */
- CHECK_MPI_OK(mp_mulmod(&k, &t, &n, &k)); /* k = k * t mod n */
- CHECK_MPI_OK(mp_mulmod(&d, &r, &n, &d)); /* d = d * r mod n */
- CHECK_MPI_OK(mp_addmod(&s, &d, &n, &s)); /* s = s + d mod n */
- CHECK_MPI_OK(mp_mulmod(&s, &k, &n, &s)); /* s = s * k mod n */
+ PORT_Memset(t2, 0, 2 * ecParams->order.len);
+ if (RNG_GenerateGlobalRandomBytes(t2, 2 * ecParams->order.len) != SECSuccess) {
+ PORT_SetError(SEC_ERROR_NEED_RANDOM);
+ rv = SECFailure;
+ goto cleanup;
+ }
+ CHECK_MPI_OK(mp_read_unsigned_octets(&ar, t2, 2 * ecParams->order.len)); /* ar <-$ Zn */
+
+ /* Using mp_invmod on k directly would leak bits from k. */
+ CHECK_MPI_OK(mp_mul(&k, &ar, &k)); /* k = k * ar */
+ CHECK_MPI_OK(mp_mulmod(&k, &t, &n, &k)); /* k = k * t mod n */
+ CHECK_MPI_OK(mp_invmod(&k, &n, &k)); /* k = k**-1 mod n */
+ CHECK_MPI_OK(mp_mulmod(&k, &t, &n, &k)); /* k = k * t mod n */
+ /* To avoid leaking secret bits here the addition is blinded. */
+ CHECK_MPI_OK(mp_mul(&d, &ar, &t)); /* t = d * ar */
+ CHECK_MPI_OK(mp_mulmod(&t, &r, &n, &d)); /* d = t * r mod n */
+ CHECK_MPI_OK(mp_mulmod(&s, &ar, &n, &t)); /* t = s * ar mod n */
+ CHECK_MPI_OK(mp_add(&t, &d, &s)); /* s = t + d */
+ CHECK_MPI_OK(mp_mulmod(&s, &k, &n, &s)); /* s = s * k mod n */
#if EC_DEBUG
mp_todecimal(&s, mpstr);
@@ -858,6 +874,7 @@ cleanup:
mp_clear(&s);
mp_clear(&n);
mp_clear(&t);
+ mp_clear(&ar);
if (t2) {
PORT_Free(t2);
diff --git a/security/nss/lib/freebl/freebl.gyp b/security/nss/lib/freebl/freebl.gyp
index fae56f709..004807483 100644
--- a/security/nss/lib/freebl/freebl.gyp
+++ b/security/nss/lib/freebl/freebl.gyp
@@ -272,28 +272,15 @@
},
}],
[ 'cc_use_gnu_ld==1 and OS=="win" and target_arch=="x64"', {
+ # mingw x64
'defines': [
'MP_IS_LITTLE_ENDIAN',
- 'NSS_BEVAND_ARCFOUR',
- 'MPI_AMD64',
- 'MP_ASSEMBLY_MULTIPLY',
- 'NSS_USE_COMBA',
- 'USE_HW_AES',
- 'INTEL_GCM',
],
}],
- [ 'OS!="win"', {
- 'conditions': [
- [ 'target_arch=="x64" or target_arch=="arm64" or target_arch=="aarch64"', {
- 'defines': [
- # The Makefile does version-tests on GCC, but we're not doing that here.
- 'HAVE_INT128_SUPPORT',
- ],
- }, {
- 'defines': [
- 'KRML_NOUINT128',
- ],
- }],
+ [ 'have_int128_support==1', {
+ 'defines': [
+ # The Makefile does version-tests on GCC, but we're not doing that here.
+ 'HAVE_INT128_SUPPORT',
],
}, {
'defines': [
@@ -355,5 +342,18 @@
},
'variables': {
'module': 'nss',
+ 'conditions': [
+ [ 'OS!="win"', {
+ 'conditions': [
+ [ 'target_arch=="x64" or target_arch=="arm64" or target_arch=="aarch64"', {
+ 'have_int128_support%': 1,
+ }, {
+ 'have_int128_support%': 0,
+ }],
+ ],
+ }, {
+ 'have_int128_support%': 0,
+ }],
+ ],
}
}
diff --git a/security/nss/lib/freebl/freebl_base.gypi b/security/nss/lib/freebl/freebl_base.gypi
index ebd1018d8..1372994f4 100644
--- a/security/nss/lib/freebl/freebl_base.gypi
+++ b/security/nss/lib/freebl/freebl_base.gypi
@@ -59,7 +59,7 @@
'sha_fast.c',
'shvfy.c',
'sysrand.c',
- 'tlsprfalg.c'
+ 'tlsprfalg.c',
],
'conditions': [
[ 'OS=="linux" or OS=="android"', {
@@ -122,6 +122,11 @@
'intel-gcm-x86-masm.asm',
],
}],
+ [ 'cc_use_gnu_ld==1', {
+ # mingw
+ 'sources': [
+ ],
+ }],
[ 'cc_is_clang!=1', {
# MSVC
'sources': [
@@ -135,7 +140,6 @@
# All intel and 64-bit ARM architectures get the 64 bit version.
'ecl/curve25519_64.c',
'verified/Hacl_Curve25519.c',
- 'verified/FStar.c',
],
}, {
'sources': [
@@ -167,7 +171,7 @@
}, {
# !Windows & !x64 & !arm64 & !aarch64
'sources': [
- 'poly1305.c',
+ 'verified/Hacl_Poly1305_32.c',
],
}],
],
@@ -176,7 +180,7 @@
}, {
# Windows
'sources': [
- 'poly1305.c',
+ 'verified/Hacl_Poly1305_32.c',
],
}],
],
@@ -215,6 +219,9 @@
}],
],
}],
+ [ 'have_int128_support==0', {
+ 'sources': [ 'verified/FStar.c' ],
+ }],
],
'ldflags': [
'-Wl,-Bsymbolic'
diff --git a/security/nss/lib/freebl/loader.c b/security/nss/lib/freebl/loader.c
index fe5e0a668..6d200e6dd 100644
--- a/security/nss/lib/freebl/loader.c
+++ b/security/nss/lib/freebl/loader.c
@@ -2164,12 +2164,12 @@ BLAKE2B_NewContext(void)
}
void
-BLAKE2B_DestroyContext(BLAKE2BContext *BLAKE2BContext, PRBool freeit)
+BLAKE2B_DestroyContext(BLAKE2BContext *ctx, PRBool freeit)
{
if (!vector && PR_SUCCESS != freebl_RunLoaderOnce()) {
return;
}
- (vector->p_BLAKE2B_DestroyContext)(BLAKE2BContext, freeit);
+ (vector->p_BLAKE2B_DestroyContext)(ctx, freeit);
}
SECStatus
diff --git a/security/nss/lib/freebl/mpi/mpi.c b/security/nss/lib/freebl/mpi/mpi.c
index ae404019d..8c893fb5f 100644
--- a/security/nss/lib/freebl/mpi/mpi.c
+++ b/security/nss/lib/freebl/mpi/mpi.c
@@ -2657,10 +2657,10 @@ mp_toradix(mp_int *mp, char *str, int radix)
/* Reverse the digits and sign indicator */
ix = 0;
while (ix < pos) {
- char tmp = str[ix];
+ char tmpc = str[ix];
str[ix] = str[pos];
- str[pos] = tmp;
+ str[pos] = tmpc;
++ix;
--pos;
}
@@ -3313,13 +3313,14 @@ s_mp_div_d(mp_int *mp, mp_digit d, mp_digit *r)
/* could check for power of 2 here, but mp_div_d does that. */
if (MP_USED(mp) == 1) {
mp_digit n = MP_DIGIT(mp, 0);
- mp_digit rem;
+ mp_digit remdig;
q = n / d;
- rem = n % d;
+ remdig = n % d;
MP_DIGIT(mp, 0) = q;
- if (r)
- *r = rem;
+ if (r) {
+ *r = remdig;
+ }
return MP_OKAY;
}
diff --git a/security/nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c b/security/nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c
deleted file mode 100644
index 3c803c167..000000000
--- a/security/nss/lib/freebl/poly1305-donna-x64-sse2-incremental-source.c
+++ /dev/null
@@ -1,881 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/* This implementation of poly1305 is by Andrew Moon
- * (https://github.com/floodyberry/poly1305-donna) and released as public
- * domain. It implements SIMD vectorization based on the algorithm described in
- * http://cr.yp.to/papers.html#neoncrypto. Unrolled to 2 powers, i.e. 64 byte
- * block size. */
-
-#include <emmintrin.h>
-#include <stdint.h>
-
-#include "poly1305.h"
-#include "blapii.h"
-
-#define ALIGN(x) __attribute__((aligned(x)))
-#define INLINE inline
-#define U8TO64_LE(m) (*(uint64_t *)(m))
-#define U8TO32_LE(m) (*(uint32_t *)(m))
-#define U64TO8_LE(m, v) (*(uint64_t *)(m)) = v
-
-typedef __m128i xmmi;
-typedef unsigned __int128 uint128_t;
-
-static const uint32_t ALIGN(16) poly1305_x64_sse2_message_mask[4] = { (1 << 26) - 1, 0, (1 << 26) - 1, 0 };
-static const uint32_t ALIGN(16) poly1305_x64_sse2_5[4] = { 5, 0, 5, 0 };
-static const uint32_t ALIGN(16) poly1305_x64_sse2_1shl128[4] = { (1 << 24), 0, (1 << 24), 0 };
-
-static uint128_t INLINE
-add128(uint128_t a, uint128_t b)
-{
- return a + b;
-}
-
-static uint128_t INLINE
-add128_64(uint128_t a, uint64_t b)
-{
- return a + b;
-}
-
-static uint128_t INLINE
-mul64x64_128(uint64_t a, uint64_t b)
-{
- return (uint128_t)a * b;
-}
-
-static uint64_t INLINE
-lo128(uint128_t a)
-{
- return (uint64_t)a;
-}
-
-static uint64_t INLINE
-shr128(uint128_t v, const int shift)
-{
- return (uint64_t)(v >> shift);
-}
-
-static uint64_t INLINE
-shr128_pair(uint64_t hi, uint64_t lo, const int shift)
-{
- return (uint64_t)((((uint128_t)hi << 64) | lo) >> shift);
-}
-
-typedef struct poly1305_power_t {
- union {
- xmmi v;
- uint64_t u[2];
- uint32_t d[4];
- } R20, R21, R22, R23, R24, S21, S22, S23, S24;
-} poly1305_power;
-
-typedef struct poly1305_state_internal_t {
- poly1305_power P[2]; /* 288 bytes, top 32 bit halves unused = 144 bytes of free storage */
- union {
- xmmi H[5]; /* 80 bytes */
- uint64_t HH[10];
- };
- /* uint64_t r0,r1,r2; [24 bytes] */
- /* uint64_t pad0,pad1; [16 bytes] */
- uint64_t started; /* 8 bytes */
- uint64_t leftover; /* 8 bytes */
- uint8_t buffer[64]; /* 64 bytes */
-} poly1305_state_internal; /* 448 bytes total + 63 bytes for alignment = 511 bytes raw */
-
-static poly1305_state_internal INLINE
- *
- poly1305_aligned_state(poly1305_state *state)
-{
- return (poly1305_state_internal *)(((uint64_t)state + 63) & ~63);
-}
-
-/* copy 0-63 bytes */
-static void INLINE NO_SANITIZE_ALIGNMENT
-poly1305_block_copy(uint8_t *dst, const uint8_t *src, size_t bytes)
-{
- size_t offset = src - dst;
- if (bytes & 32) {
- _mm_storeu_si128((xmmi *)(dst + 0), _mm_loadu_si128((xmmi *)(dst + offset + 0)));
- _mm_storeu_si128((xmmi *)(dst + 16), _mm_loadu_si128((xmmi *)(dst + offset + 16)));
- dst += 32;
- }
- if (bytes & 16) {
- _mm_storeu_si128((xmmi *)dst, _mm_loadu_si128((xmmi *)(dst + offset)));
- dst += 16;
- }
- if (bytes & 8) {
- *(uint64_t *)dst = *(uint64_t *)(dst + offset);
- dst += 8;
- }
- if (bytes & 4) {
- *(uint32_t *)dst = *(uint32_t *)(dst + offset);
- dst += 4;
- }
- if (bytes & 2) {
- *(uint16_t *)dst = *(uint16_t *)(dst + offset);
- dst += 2;
- }
- if (bytes & 1) {
- *(uint8_t *)dst = *(uint8_t *)(dst + offset);
- }
-}
-
-/* zero 0-15 bytes */
-static void INLINE
-poly1305_block_zero(uint8_t *dst, size_t bytes)
-{
- if (bytes & 8) {
- *(uint64_t *)dst = 0;
- dst += 8;
- }
- if (bytes & 4) {
- *(uint32_t *)dst = 0;
- dst += 4;
- }
- if (bytes & 2) {
- *(uint16_t *)dst = 0;
- dst += 2;
- }
- if (bytes & 1) {
- *(uint8_t *)dst = 0;
- }
-}
-
-static size_t INLINE
-poly1305_min(size_t a, size_t b)
-{
- return (a < b) ? a : b;
-}
-
-void
-Poly1305Init(poly1305_state *state, const unsigned char key[32])
-{
- poly1305_state_internal *st = poly1305_aligned_state(state);
- poly1305_power *p;
- uint64_t r0, r1, r2;
- uint64_t t0, t1;
-
- /* clamp key */
- t0 = U8TO64_LE(key + 0);
- t1 = U8TO64_LE(key + 8);
- r0 = t0 & 0xffc0fffffff;
- t0 >>= 44;
- t0 |= t1 << 20;
- r1 = t0 & 0xfffffc0ffff;
- t1 >>= 24;
- r2 = t1 & 0x00ffffffc0f;
-
- /* store r in un-used space of st->P[1] */
- p = &st->P[1];
- p->R20.d[1] = (uint32_t)(r0);
- p->R20.d[3] = (uint32_t)(r0 >> 32);
- p->R21.d[1] = (uint32_t)(r1);
- p->R21.d[3] = (uint32_t)(r1 >> 32);
- p->R22.d[1] = (uint32_t)(r2);
- p->R22.d[3] = (uint32_t)(r2 >> 32);
-
- /* store pad */
- p->R23.d[1] = U8TO32_LE(key + 16);
- p->R23.d[3] = U8TO32_LE(key + 20);
- p->R24.d[1] = U8TO32_LE(key + 24);
- p->R24.d[3] = U8TO32_LE(key + 28);
-
- /* H = 0 */
- st->H[0] = _mm_setzero_si128();
- st->H[1] = _mm_setzero_si128();
- st->H[2] = _mm_setzero_si128();
- st->H[3] = _mm_setzero_si128();
- st->H[4] = _mm_setzero_si128();
-
- st->started = 0;
- st->leftover = 0;
-}
-
-static void
-poly1305_first_block(poly1305_state_internal *st, const uint8_t *m)
-{
- const xmmi MMASK = _mm_load_si128((xmmi *)poly1305_x64_sse2_message_mask);
- const xmmi FIVE = _mm_load_si128((xmmi *)poly1305_x64_sse2_5);
- const xmmi HIBIT = _mm_load_si128((xmmi *)poly1305_x64_sse2_1shl128);
- xmmi T5, T6;
- poly1305_power *p;
- uint128_t d[3];
- uint64_t r0, r1, r2;
- uint64_t r20, r21, r22, s22;
- uint64_t pad0, pad1;
- uint64_t c;
- uint64_t i;
-
- /* pull out stored info */
- p = &st->P[1];
-
- r0 = ((uint64_t)p->R20.d[3] << 32) | (uint64_t)p->R20.d[1];
- r1 = ((uint64_t)p->R21.d[3] << 32) | (uint64_t)p->R21.d[1];
- r2 = ((uint64_t)p->R22.d[3] << 32) | (uint64_t)p->R22.d[1];
- pad0 = ((uint64_t)p->R23.d[3] << 32) | (uint64_t)p->R23.d[1];
- pad1 = ((uint64_t)p->R24.d[3] << 32) | (uint64_t)p->R24.d[1];
-
- /* compute powers r^2,r^4 */
- r20 = r0;
- r21 = r1;
- r22 = r2;
- for (i = 0; i < 2; i++) {
- s22 = r22 * (5 << 2);
-
- d[0] = add128(mul64x64_128(r20, r20), mul64x64_128(r21 * 2, s22));
- d[1] = add128(mul64x64_128(r22, s22), mul64x64_128(r20 * 2, r21));
- d[2] = add128(mul64x64_128(r21, r21), mul64x64_128(r22 * 2, r20));
-
- r20 = lo128(d[0]) & 0xfffffffffff;
- c = shr128(d[0], 44);
- d[1] = add128_64(d[1], c);
- r21 = lo128(d[1]) & 0xfffffffffff;
- c = shr128(d[1], 44);
- d[2] = add128_64(d[2], c);
- r22 = lo128(d[2]) & 0x3ffffffffff;
- c = shr128(d[2], 42);
- r20 += c * 5;
- c = (r20 >> 44);
- r20 = r20 & 0xfffffffffff;
- r21 += c;
-
- p->R20.v = _mm_shuffle_epi32(_mm_cvtsi32_si128((uint32_t)(r20)&0x3ffffff), _MM_SHUFFLE(1, 0, 1, 0));
- p->R21.v = _mm_shuffle_epi32(_mm_cvtsi32_si128((uint32_t)((r20 >> 26) | (r21 << 18)) & 0x3ffffff), _MM_SHUFFLE(1, 0, 1, 0));
- p->R22.v = _mm_shuffle_epi32(_mm_cvtsi32_si128((uint32_t)((r21 >> 8)) & 0x3ffffff), _MM_SHUFFLE(1, 0, 1, 0));
- p->R23.v = _mm_shuffle_epi32(_mm_cvtsi32_si128((uint32_t)((r21 >> 34) | (r22 << 10)) & 0x3ffffff), _MM_SHUFFLE(1, 0, 1, 0));
- p->R24.v = _mm_shuffle_epi32(_mm_cvtsi32_si128((uint32_t)((r22 >> 16))), _MM_SHUFFLE(1, 0, 1, 0));
- p->S21.v = _mm_mul_epu32(p->R21.v, FIVE);
- p->S22.v = _mm_mul_epu32(p->R22.v, FIVE);
- p->S23.v = _mm_mul_epu32(p->R23.v, FIVE);
- p->S24.v = _mm_mul_epu32(p->R24.v, FIVE);
- p--;
- }
-
- /* put saved info back */
- p = &st->P[1];
- p->R20.d[1] = (uint32_t)(r0);
- p->R20.d[3] = (uint32_t)(r0 >> 32);
- p->R21.d[1] = (uint32_t)(r1);
- p->R21.d[3] = (uint32_t)(r1 >> 32);
- p->R22.d[1] = (uint32_t)(r2);
- p->R22.d[3] = (uint32_t)(r2 >> 32);
- p->R23.d[1] = (uint32_t)(pad0);
- p->R23.d[3] = (uint32_t)(pad0 >> 32);
- p->R24.d[1] = (uint32_t)(pad1);
- p->R24.d[3] = (uint32_t)(pad1 >> 32);
-
- /* H = [Mx,My] */
- T5 = _mm_unpacklo_epi64(_mm_loadl_epi64((xmmi *)(m + 0)), _mm_loadl_epi64((xmmi *)(m + 16)));
- T6 = _mm_unpacklo_epi64(_mm_loadl_epi64((xmmi *)(m + 8)), _mm_loadl_epi64((xmmi *)(m + 24)));
- st->H[0] = _mm_and_si128(MMASK, T5);
- st->H[1] = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));
- T5 = _mm_or_si128(_mm_srli_epi64(T5, 52), _mm_slli_epi64(T6, 12));
- st->H[2] = _mm_and_si128(MMASK, T5);
- st->H[3] = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));
- st->H[4] = _mm_or_si128(_mm_srli_epi64(T6, 40), HIBIT);
-}
-
-static void
-poly1305_blocks(poly1305_state_internal *st, const uint8_t *m, size_t bytes)
-{
- const xmmi MMASK = _mm_load_si128((xmmi *)poly1305_x64_sse2_message_mask);
- const xmmi FIVE = _mm_load_si128((xmmi *)poly1305_x64_sse2_5);
- const xmmi HIBIT = _mm_load_si128((xmmi *)poly1305_x64_sse2_1shl128);
-
- poly1305_power *p;
- xmmi H0, H1, H2, H3, H4;
- xmmi T0, T1, T2, T3, T4, T5, T6;
- xmmi M0, M1, M2, M3, M4;
- xmmi C1, C2;
-
- H0 = st->H[0];
- H1 = st->H[1];
- H2 = st->H[2];
- H3 = st->H[3];
- H4 = st->H[4];
-
- while (bytes >= 64) {
- /* H *= [r^4,r^4] */
- p = &st->P[0];
- T0 = _mm_mul_epu32(H0, p->R20.v);
- T1 = _mm_mul_epu32(H0, p->R21.v);
- T2 = _mm_mul_epu32(H0, p->R22.v);
- T3 = _mm_mul_epu32(H0, p->R23.v);
- T4 = _mm_mul_epu32(H0, p->R24.v);
- T5 = _mm_mul_epu32(H1, p->S24.v);
- T6 = _mm_mul_epu32(H1, p->R20.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H2, p->S23.v);
- T6 = _mm_mul_epu32(H2, p->S24.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H3, p->S22.v);
- T6 = _mm_mul_epu32(H3, p->S23.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H4, p->S21.v);
- T6 = _mm_mul_epu32(H4, p->S22.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H1, p->R21.v);
- T6 = _mm_mul_epu32(H1, p->R22.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H2, p->R20.v);
- T6 = _mm_mul_epu32(H2, p->R21.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H3, p->S24.v);
- T6 = _mm_mul_epu32(H3, p->R20.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H4, p->S23.v);
- T6 = _mm_mul_epu32(H4, p->S24.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H1, p->R23.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H2, p->R22.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H3, p->R21.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H4, p->R20.v);
- T4 = _mm_add_epi64(T4, T5);
-
- /* H += [Mx,My]*[r^2,r^2] */
- T5 = _mm_unpacklo_epi64(_mm_loadl_epi64((xmmi *)(m + 0)), _mm_loadl_epi64((xmmi *)(m + 16)));
- T6 = _mm_unpacklo_epi64(_mm_loadl_epi64((xmmi *)(m + 8)), _mm_loadl_epi64((xmmi *)(m + 24)));
- M0 = _mm_and_si128(MMASK, T5);
- M1 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));
- T5 = _mm_or_si128(_mm_srli_epi64(T5, 52), _mm_slli_epi64(T6, 12));
- M2 = _mm_and_si128(MMASK, T5);
- M3 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));
- M4 = _mm_or_si128(_mm_srli_epi64(T6, 40), HIBIT);
-
- p = &st->P[1];
- T5 = _mm_mul_epu32(M0, p->R20.v);
- T6 = _mm_mul_epu32(M0, p->R21.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(M1, p->S24.v);
- T6 = _mm_mul_epu32(M1, p->R20.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(M2, p->S23.v);
- T6 = _mm_mul_epu32(M2, p->S24.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(M3, p->S22.v);
- T6 = _mm_mul_epu32(M3, p->S23.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(M4, p->S21.v);
- T6 = _mm_mul_epu32(M4, p->S22.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(M0, p->R22.v);
- T6 = _mm_mul_epu32(M0, p->R23.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(M1, p->R21.v);
- T6 = _mm_mul_epu32(M1, p->R22.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(M2, p->R20.v);
- T6 = _mm_mul_epu32(M2, p->R21.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(M3, p->S24.v);
- T6 = _mm_mul_epu32(M3, p->R20.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(M4, p->S23.v);
- T6 = _mm_mul_epu32(M4, p->S24.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(M0, p->R24.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(M1, p->R23.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(M2, p->R22.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(M3, p->R21.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(M4, p->R20.v);
- T4 = _mm_add_epi64(T4, T5);
-
- /* H += [Mx,My] */
- T5 = _mm_unpacklo_epi64(_mm_loadl_epi64((xmmi *)(m + 32)), _mm_loadl_epi64((xmmi *)(m + 48)));
- T6 = _mm_unpacklo_epi64(_mm_loadl_epi64((xmmi *)(m + 40)), _mm_loadl_epi64((xmmi *)(m + 56)));
- M0 = _mm_and_si128(MMASK, T5);
- M1 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));
- T5 = _mm_or_si128(_mm_srli_epi64(T5, 52), _mm_slli_epi64(T6, 12));
- M2 = _mm_and_si128(MMASK, T5);
- M3 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));
- M4 = _mm_or_si128(_mm_srli_epi64(T6, 40), HIBIT);
-
- T0 = _mm_add_epi64(T0, M0);
- T1 = _mm_add_epi64(T1, M1);
- T2 = _mm_add_epi64(T2, M2);
- T3 = _mm_add_epi64(T3, M3);
- T4 = _mm_add_epi64(T4, M4);
-
- /* reduce */
- C1 = _mm_srli_epi64(T0, 26);
- C2 = _mm_srli_epi64(T3, 26);
- T0 = _mm_and_si128(T0, MMASK);
- T3 = _mm_and_si128(T3, MMASK);
- T1 = _mm_add_epi64(T1, C1);
- T4 = _mm_add_epi64(T4, C2);
- C1 = _mm_srli_epi64(T1, 26);
- C2 = _mm_srli_epi64(T4, 26);
- T1 = _mm_and_si128(T1, MMASK);
- T4 = _mm_and_si128(T4, MMASK);
- T2 = _mm_add_epi64(T2, C1);
- T0 = _mm_add_epi64(T0, _mm_mul_epu32(C2, FIVE));
- C1 = _mm_srli_epi64(T2, 26);
- C2 = _mm_srli_epi64(T0, 26);
- T2 = _mm_and_si128(T2, MMASK);
- T0 = _mm_and_si128(T0, MMASK);
- T3 = _mm_add_epi64(T3, C1);
- T1 = _mm_add_epi64(T1, C2);
- C1 = _mm_srli_epi64(T3, 26);
- T3 = _mm_and_si128(T3, MMASK);
- T4 = _mm_add_epi64(T4, C1);
-
- /* H = (H*[r^4,r^4] + [Mx,My]*[r^2,r^2] + [Mx,My]) */
- H0 = T0;
- H1 = T1;
- H2 = T2;
- H3 = T3;
- H4 = T4;
-
- m += 64;
- bytes -= 64;
- }
-
- st->H[0] = H0;
- st->H[1] = H1;
- st->H[2] = H2;
- st->H[3] = H3;
- st->H[4] = H4;
-}
-
-static size_t
-poly1305_combine(poly1305_state_internal *st, const uint8_t *m, size_t bytes)
-{
- const xmmi MMASK = _mm_load_si128((xmmi *)poly1305_x64_sse2_message_mask);
- const xmmi HIBIT = _mm_load_si128((xmmi *)poly1305_x64_sse2_1shl128);
- const xmmi FIVE = _mm_load_si128((xmmi *)poly1305_x64_sse2_5);
-
- poly1305_power *p;
- xmmi H0, H1, H2, H3, H4;
- xmmi M0, M1, M2, M3, M4;
- xmmi T0, T1, T2, T3, T4, T5, T6;
- xmmi C1, C2;
-
- uint64_t r0, r1, r2;
- uint64_t t0, t1, t2, t3, t4;
- uint64_t c;
- size_t consumed = 0;
-
- H0 = st->H[0];
- H1 = st->H[1];
- H2 = st->H[2];
- H3 = st->H[3];
- H4 = st->H[4];
-
- /* p = [r^2,r^2] */
- p = &st->P[1];
-
- if (bytes >= 32) {
- /* H *= [r^2,r^2] */
- T0 = _mm_mul_epu32(H0, p->R20.v);
- T1 = _mm_mul_epu32(H0, p->R21.v);
- T2 = _mm_mul_epu32(H0, p->R22.v);
- T3 = _mm_mul_epu32(H0, p->R23.v);
- T4 = _mm_mul_epu32(H0, p->R24.v);
- T5 = _mm_mul_epu32(H1, p->S24.v);
- T6 = _mm_mul_epu32(H1, p->R20.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H2, p->S23.v);
- T6 = _mm_mul_epu32(H2, p->S24.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H3, p->S22.v);
- T6 = _mm_mul_epu32(H3, p->S23.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H4, p->S21.v);
- T6 = _mm_mul_epu32(H4, p->S22.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H1, p->R21.v);
- T6 = _mm_mul_epu32(H1, p->R22.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H2, p->R20.v);
- T6 = _mm_mul_epu32(H2, p->R21.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H3, p->S24.v);
- T6 = _mm_mul_epu32(H3, p->R20.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H4, p->S23.v);
- T6 = _mm_mul_epu32(H4, p->S24.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H1, p->R23.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H2, p->R22.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H3, p->R21.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H4, p->R20.v);
- T4 = _mm_add_epi64(T4, T5);
-
- /* H += [Mx,My] */
- T5 = _mm_unpacklo_epi64(_mm_loadl_epi64((xmmi *)(m + 0)), _mm_loadl_epi64((xmmi *)(m + 16)));
- T6 = _mm_unpacklo_epi64(_mm_loadl_epi64((xmmi *)(m + 8)), _mm_loadl_epi64((xmmi *)(m + 24)));
- M0 = _mm_and_si128(MMASK, T5);
- M1 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));
- T5 = _mm_or_si128(_mm_srli_epi64(T5, 52), _mm_slli_epi64(T6, 12));
- M2 = _mm_and_si128(MMASK, T5);
- M3 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26));
- M4 = _mm_or_si128(_mm_srli_epi64(T6, 40), HIBIT);
-
- T0 = _mm_add_epi64(T0, M0);
- T1 = _mm_add_epi64(T1, M1);
- T2 = _mm_add_epi64(T2, M2);
- T3 = _mm_add_epi64(T3, M3);
- T4 = _mm_add_epi64(T4, M4);
-
- /* reduce */
- C1 = _mm_srli_epi64(T0, 26);
- C2 = _mm_srli_epi64(T3, 26);
- T0 = _mm_and_si128(T0, MMASK);
- T3 = _mm_and_si128(T3, MMASK);
- T1 = _mm_add_epi64(T1, C1);
- T4 = _mm_add_epi64(T4, C2);
- C1 = _mm_srli_epi64(T1, 26);
- C2 = _mm_srli_epi64(T4, 26);
- T1 = _mm_and_si128(T1, MMASK);
- T4 = _mm_and_si128(T4, MMASK);
- T2 = _mm_add_epi64(T2, C1);
- T0 = _mm_add_epi64(T0, _mm_mul_epu32(C2, FIVE));
- C1 = _mm_srli_epi64(T2, 26);
- C2 = _mm_srli_epi64(T0, 26);
- T2 = _mm_and_si128(T2, MMASK);
- T0 = _mm_and_si128(T0, MMASK);
- T3 = _mm_add_epi64(T3, C1);
- T1 = _mm_add_epi64(T1, C2);
- C1 = _mm_srli_epi64(T3, 26);
- T3 = _mm_and_si128(T3, MMASK);
- T4 = _mm_add_epi64(T4, C1);
-
- /* H = (H*[r^2,r^2] + [Mx,My]) */
- H0 = T0;
- H1 = T1;
- H2 = T2;
- H3 = T3;
- H4 = T4;
-
- consumed = 32;
- }
-
- /* finalize, H *= [r^2,r] */
- r0 = ((uint64_t)p->R20.d[3] << 32) | (uint64_t)p->R20.d[1];
- r1 = ((uint64_t)p->R21.d[3] << 32) | (uint64_t)p->R21.d[1];
- r2 = ((uint64_t)p->R22.d[3] << 32) | (uint64_t)p->R22.d[1];
-
- p->R20.d[2] = (uint32_t)(r0)&0x3ffffff;
- p->R21.d[2] = (uint32_t)((r0 >> 26) | (r1 << 18)) & 0x3ffffff;
- p->R22.d[2] = (uint32_t)((r1 >> 8)) & 0x3ffffff;
- p->R23.d[2] = (uint32_t)((r1 >> 34) | (r2 << 10)) & 0x3ffffff;
- p->R24.d[2] = (uint32_t)((r2 >> 16));
- p->S21.d[2] = p->R21.d[2] * 5;
- p->S22.d[2] = p->R22.d[2] * 5;
- p->S23.d[2] = p->R23.d[2] * 5;
- p->S24.d[2] = p->R24.d[2] * 5;
-
- /* H *= [r^2,r] */
- T0 = _mm_mul_epu32(H0, p->R20.v);
- T1 = _mm_mul_epu32(H0, p->R21.v);
- T2 = _mm_mul_epu32(H0, p->R22.v);
- T3 = _mm_mul_epu32(H0, p->R23.v);
- T4 = _mm_mul_epu32(H0, p->R24.v);
- T5 = _mm_mul_epu32(H1, p->S24.v);
- T6 = _mm_mul_epu32(H1, p->R20.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H2, p->S23.v);
- T6 = _mm_mul_epu32(H2, p->S24.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H3, p->S22.v);
- T6 = _mm_mul_epu32(H3, p->S23.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H4, p->S21.v);
- T6 = _mm_mul_epu32(H4, p->S22.v);
- T0 = _mm_add_epi64(T0, T5);
- T1 = _mm_add_epi64(T1, T6);
- T5 = _mm_mul_epu32(H1, p->R21.v);
- T6 = _mm_mul_epu32(H1, p->R22.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H2, p->R20.v);
- T6 = _mm_mul_epu32(H2, p->R21.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H3, p->S24.v);
- T6 = _mm_mul_epu32(H3, p->R20.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H4, p->S23.v);
- T6 = _mm_mul_epu32(H4, p->S24.v);
- T2 = _mm_add_epi64(T2, T5);
- T3 = _mm_add_epi64(T3, T6);
- T5 = _mm_mul_epu32(H1, p->R23.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H2, p->R22.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H3, p->R21.v);
- T4 = _mm_add_epi64(T4, T5);
- T5 = _mm_mul_epu32(H4, p->R20.v);
- T4 = _mm_add_epi64(T4, T5);
-
- C1 = _mm_srli_epi64(T0, 26);
- C2 = _mm_srli_epi64(T3, 26);
- T0 = _mm_and_si128(T0, MMASK);
- T3 = _mm_and_si128(T3, MMASK);
- T1 = _mm_add_epi64(T1, C1);
- T4 = _mm_add_epi64(T4, C2);
- C1 = _mm_srli_epi64(T1, 26);
- C2 = _mm_srli_epi64(T4, 26);
- T1 = _mm_and_si128(T1, MMASK);
- T4 = _mm_and_si128(T4, MMASK);
- T2 = _mm_add_epi64(T2, C1);
- T0 = _mm_add_epi64(T0, _mm_mul_epu32(C2, FIVE));
- C1 = _mm_srli_epi64(T2, 26);
- C2 = _mm_srli_epi64(T0, 26);
- T2 = _mm_and_si128(T2, MMASK);
- T0 = _mm_and_si128(T0, MMASK);
- T3 = _mm_add_epi64(T3, C1);
- T1 = _mm_add_epi64(T1, C2);
- C1 = _mm_srli_epi64(T3, 26);
- T3 = _mm_and_si128(T3, MMASK);
- T4 = _mm_add_epi64(T4, C1);
-
- /* H = H[0]+H[1] */
- H0 = _mm_add_epi64(T0, _mm_srli_si128(T0, 8));
- H1 = _mm_add_epi64(T1, _mm_srli_si128(T1, 8));
- H2 = _mm_add_epi64(T2, _mm_srli_si128(T2, 8));
- H3 = _mm_add_epi64(T3, _mm_srli_si128(T3, 8));
- H4 = _mm_add_epi64(T4, _mm_srli_si128(T4, 8));
-
- t0 = _mm_cvtsi128_si32(H0);
- c = (t0 >> 26);
- t0 &= 0x3ffffff;
- t1 = _mm_cvtsi128_si32(H1) + c;
- c = (t1 >> 26);
- t1 &= 0x3ffffff;
- t2 = _mm_cvtsi128_si32(H2) + c;
- c = (t2 >> 26);
- t2 &= 0x3ffffff;
- t3 = _mm_cvtsi128_si32(H3) + c;
- c = (t3 >> 26);
- t3 &= 0x3ffffff;
- t4 = _mm_cvtsi128_si32(H4) + c;
- c = (t4 >> 26);
- t4 &= 0x3ffffff;
- t0 = t0 + (c * 5);
- c = (t0 >> 26);
- t0 &= 0x3ffffff;
- t1 = t1 + c;
-
- st->HH[0] = ((t0) | (t1 << 26)) & 0xfffffffffffull;
- st->HH[1] = ((t1 >> 18) | (t2 << 8) | (t3 << 34)) & 0xfffffffffffull;
- st->HH[2] = ((t3 >> 10) | (t4 << 16)) & 0x3ffffffffffull;
-
- return consumed;
-}
-
-void
-Poly1305Update(poly1305_state *state, const unsigned char *m, size_t bytes)
-{
- poly1305_state_internal *st = poly1305_aligned_state(state);
- size_t want;
-
- /* need at least 32 initial bytes to start the accelerated branch */
- if (!st->started) {
- if ((st->leftover == 0) && (bytes > 32)) {
- poly1305_first_block(st, m);
- m += 32;
- bytes -= 32;
- } else {
- want = poly1305_min(32 - st->leftover, bytes);
- poly1305_block_copy(st->buffer + st->leftover, m, want);
- bytes -= want;
- m += want;
- st->leftover += want;
- if ((st->leftover < 32) || (bytes == 0))
- return;
- poly1305_first_block(st, st->buffer);
- st->leftover = 0;
- }
- st->started = 1;
- }
-
- /* handle leftover */
- if (st->leftover) {
- want = poly1305_min(64 - st->leftover, bytes);
- poly1305_block_copy(st->buffer + st->leftover, m, want);
- bytes -= want;
- m += want;
- st->leftover += want;
- if (st->leftover < 64)
- return;
- poly1305_blocks(st, st->buffer, 64);
- st->leftover = 0;
- }
-
- /* process 64 byte blocks */
- if (bytes >= 64) {
- want = (bytes & ~63);
- poly1305_blocks(st, m, want);
- m += want;
- bytes -= want;
- }
-
- if (bytes) {
- poly1305_block_copy(st->buffer + st->leftover, m, bytes);
- st->leftover += bytes;
- }
-}
-
-void
-Poly1305Finish(poly1305_state *state, unsigned char mac[16])
-{
- poly1305_state_internal *st = poly1305_aligned_state(state);
- size_t leftover = st->leftover;
- uint8_t *m = st->buffer;
- uint128_t d[3];
- uint64_t h0, h1, h2;
- uint64_t t0, t1;
- uint64_t g0, g1, g2, c, nc;
- uint64_t r0, r1, r2, s1, s2;
- poly1305_power *p;
-
- if (st->started) {
- size_t consumed = poly1305_combine(st, m, leftover);
- leftover -= consumed;
- m += consumed;
- }
-
- /* st->HH will either be 0 or have the combined result */
- h0 = st->HH[0];
- h1 = st->HH[1];
- h2 = st->HH[2];
-
- p = &st->P[1];
- r0 = ((uint64_t)p->R20.d[3] << 32) | (uint64_t)p->R20.d[1];
- r1 = ((uint64_t)p->R21.d[3] << 32) | (uint64_t)p->R21.d[1];
- r2 = ((uint64_t)p->R22.d[3] << 32) | (uint64_t)p->R22.d[1];
- s1 = r1 * (5 << 2);
- s2 = r2 * (5 << 2);
-
- if (leftover < 16)
- goto poly1305_donna_atmost15bytes;
-
-poly1305_donna_atleast16bytes:
- t0 = U8TO64_LE(m + 0);
- t1 = U8TO64_LE(m + 8);
- h0 += t0 & 0xfffffffffff;
- t0 = shr128_pair(t1, t0, 44);
- h1 += t0 & 0xfffffffffff;
- h2 += (t1 >> 24) | ((uint64_t)1 << 40);
-
-poly1305_donna_mul:
- d[0] = add128(add128(mul64x64_128(h0, r0), mul64x64_128(h1, s2)), mul64x64_128(h2, s1));
- d[1] = add128(add128(mul64x64_128(h0, r1), mul64x64_128(h1, r0)), mul64x64_128(h2, s2));
- d[2] = add128(add128(mul64x64_128(h0, r2), mul64x64_128(h1, r1)), mul64x64_128(h2, r0));
- h0 = lo128(d[0]) & 0xfffffffffff;
- c = shr128(d[0], 44);
- d[1] = add128_64(d[1], c);
- h1 = lo128(d[1]) & 0xfffffffffff;
- c = shr128(d[1], 44);
- d[2] = add128_64(d[2], c);
- h2 = lo128(d[2]) & 0x3ffffffffff;
- c = shr128(d[2], 42);
- h0 += c * 5;
-
- m += 16;
- leftover -= 16;
- if (leftover >= 16)
- goto poly1305_donna_atleast16bytes;
-
-/* final bytes */
-poly1305_donna_atmost15bytes:
- if (!leftover)
- goto poly1305_donna_finish;
-
- m[leftover++] = 1;
- poly1305_block_zero(m + leftover, 16 - leftover);
- leftover = 16;
-
- t0 = U8TO64_LE(m + 0);
- t1 = U8TO64_LE(m + 8);
- h0 += t0 & 0xfffffffffff;
- t0 = shr128_pair(t1, t0, 44);
- h1 += t0 & 0xfffffffffff;
- h2 += (t1 >> 24);
-
- goto poly1305_donna_mul;
-
-poly1305_donna_finish:
- c = (h0 >> 44);
- h0 &= 0xfffffffffff;
- h1 += c;
- c = (h1 >> 44);
- h1 &= 0xfffffffffff;
- h2 += c;
- c = (h2 >> 42);
- h2 &= 0x3ffffffffff;
- h0 += c * 5;
-
- g0 = h0 + 5;
- c = (g0 >> 44);
- g0 &= 0xfffffffffff;
- g1 = h1 + c;
- c = (g1 >> 44);
- g1 &= 0xfffffffffff;
- g2 = h2 + c - ((uint64_t)1 << 42);
-
- c = (g2 >> 63) - 1;
- nc = ~c;
- h0 = (h0 & nc) | (g0 & c);
- h1 = (h1 & nc) | (g1 & c);
- h2 = (h2 & nc) | (g2 & c);
-
- /* pad */
- t0 = ((uint64_t)p->R23.d[3] << 32) | (uint64_t)p->R23.d[1];
- t1 = ((uint64_t)p->R24.d[3] << 32) | (uint64_t)p->R24.d[1];
- h0 += (t0 & 0xfffffffffff);
- c = (h0 >> 44);
- h0 &= 0xfffffffffff;
- t0 = shr128_pair(t1, t0, 44);
- h1 += (t0 & 0xfffffffffff) + c;
- c = (h1 >> 44);
- h1 &= 0xfffffffffff;
- t1 = (t1 >> 24);
- h2 += (t1) + c;
-
- U64TO8_LE(mac + 0, ((h0) | (h1 << 44)));
- U64TO8_LE(mac + 8, ((h1 >> 20) | (h2 << 24)));
-}
diff --git a/security/nss/lib/freebl/poly1305.c b/security/nss/lib/freebl/poly1305.c
deleted file mode 100644
index eb3e3cd55..000000000
--- a/security/nss/lib/freebl/poly1305.c
+++ /dev/null
@@ -1,314 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/* This implementation of poly1305 is by Andrew Moon
- * (https://github.com/floodyberry/poly1305-donna) and released as public
- * domain. */
-
-#include <string.h>
-
-#include "poly1305.h"
-
-#if defined(_MSC_VER) && _MSC_VER < 1600
-#include "prtypes.h"
-typedef PRUint32 uint32_t;
-typedef PRUint64 uint64_t;
-#else
-#include <stdint.h>
-#endif
-
-#if defined(NSS_X86) || defined(NSS_X64)
-/* We can assume little-endian. */
-static uint32_t
-U8TO32_LE(const unsigned char *m)
-{
- uint32_t r;
- memcpy(&r, m, sizeof(r));
- return r;
-}
-
-static void
-U32TO8_LE(unsigned char *m, uint32_t v)
-{
- memcpy(m, &v, sizeof(v));
-}
-#else
-static uint32_t
-U8TO32_LE(const unsigned char *m)
-{
- return (uint32_t)m[0] |
- (uint32_t)m[1] << 8 |
- (uint32_t)m[2] << 16 |
- (uint32_t)m[3] << 24;
-}
-
-static void
-U32TO8_LE(unsigned char *m, uint32_t v)
-{
- m[0] = v;
- m[1] = v >> 8;
- m[2] = v >> 16;
- m[3] = v >> 24;
-}
-#endif
-
-static uint64_t
-mul32x32_64(uint32_t a, uint32_t b)
-{
- return (uint64_t)a * b;
-}
-
-struct poly1305_state_st {
- uint32_t r0, r1, r2, r3, r4;
- uint32_t s1, s2, s3, s4;
- uint32_t h0, h1, h2, h3, h4;
- unsigned char buf[16];
- unsigned int buf_used;
- unsigned char key[16];
-};
-
-/* update updates |state| given some amount of input data. This function may
- * only be called with a |len| that is not a multiple of 16 at the end of the
- * data. Otherwise the input must be buffered into 16 byte blocks. */
-static void
-update(struct poly1305_state_st *state, const unsigned char *in,
- size_t len)
-{
- uint32_t t0, t1, t2, t3;
- uint64_t t[5];
- uint32_t b;
- uint64_t c;
- size_t j;
- unsigned char mp[16];
-
- if (len < 16)
- goto poly1305_donna_atmost15bytes;
-
-poly1305_donna_16bytes:
- t0 = U8TO32_LE(in);
- t1 = U8TO32_LE(in + 4);
- t2 = U8TO32_LE(in + 8);
- t3 = U8TO32_LE(in + 12);
-
- in += 16;
- len -= 16;
-
- state->h0 += t0 & 0x3ffffff;
- state->h1 += ((((uint64_t)t1 << 32) | t0) >> 26) & 0x3ffffff;
- state->h2 += ((((uint64_t)t2 << 32) | t1) >> 20) & 0x3ffffff;
- state->h3 += ((((uint64_t)t3 << 32) | t2) >> 14) & 0x3ffffff;
- state->h4 += (t3 >> 8) | (1 << 24);
-
-poly1305_donna_mul:
- t[0] = mul32x32_64(state->h0, state->r0) +
- mul32x32_64(state->h1, state->s4) +
- mul32x32_64(state->h2, state->s3) +
- mul32x32_64(state->h3, state->s2) +
- mul32x32_64(state->h4, state->s1);
- t[1] = mul32x32_64(state->h0, state->r1) +
- mul32x32_64(state->h1, state->r0) +
- mul32x32_64(state->h2, state->s4) +
- mul32x32_64(state->h3, state->s3) +
- mul32x32_64(state->h4, state->s2);
- t[2] = mul32x32_64(state->h0, state->r2) +
- mul32x32_64(state->h1, state->r1) +
- mul32x32_64(state->h2, state->r0) +
- mul32x32_64(state->h3, state->s4) +
- mul32x32_64(state->h4, state->s3);
- t[3] = mul32x32_64(state->h0, state->r3) +
- mul32x32_64(state->h1, state->r2) +
- mul32x32_64(state->h2, state->r1) +
- mul32x32_64(state->h3, state->r0) +
- mul32x32_64(state->h4, state->s4);
- t[4] = mul32x32_64(state->h0, state->r4) +
- mul32x32_64(state->h1, state->r3) +
- mul32x32_64(state->h2, state->r2) +
- mul32x32_64(state->h3, state->r1) +
- mul32x32_64(state->h4, state->r0);
-
- state->h0 = (uint32_t)t[0] & 0x3ffffff;
- c = (t[0] >> 26);
- t[1] += c;
- state->h1 = (uint32_t)t[1] & 0x3ffffff;
- b = (uint32_t)(t[1] >> 26);
- t[2] += b;
- state->h2 = (uint32_t)t[2] & 0x3ffffff;
- b = (uint32_t)(t[2] >> 26);
- t[3] += b;
- state->h3 = (uint32_t)t[3] & 0x3ffffff;
- b = (uint32_t)(t[3] >> 26);
- t[4] += b;
- state->h4 = (uint32_t)t[4] & 0x3ffffff;
- b = (uint32_t)(t[4] >> 26);
- state->h0 += b * 5;
-
- if (len >= 16)
- goto poly1305_donna_16bytes;
-
-/* final bytes */
-poly1305_donna_atmost15bytes:
- if (!len)
- return;
-
- for (j = 0; j < len; j++)
- mp[j] = in[j];
- mp[j++] = 1;
- for (; j < 16; j++)
- mp[j] = 0;
- len = 0;
-
- t0 = U8TO32_LE(mp + 0);
- t1 = U8TO32_LE(mp + 4);
- t2 = U8TO32_LE(mp + 8);
- t3 = U8TO32_LE(mp + 12);
-
- state->h0 += t0 & 0x3ffffff;
- state->h1 += ((((uint64_t)t1 << 32) | t0) >> 26) & 0x3ffffff;
- state->h2 += ((((uint64_t)t2 << 32) | t1) >> 20) & 0x3ffffff;
- state->h3 += ((((uint64_t)t3 << 32) | t2) >> 14) & 0x3ffffff;
- state->h4 += (t3 >> 8);
-
- goto poly1305_donna_mul;
-}
-
-void
-Poly1305Init(poly1305_state *statep, const unsigned char key[32])
-{
- struct poly1305_state_st *state = (struct poly1305_state_st *)statep;
- uint32_t t0, t1, t2, t3;
-
- t0 = U8TO32_LE(key + 0);
- t1 = U8TO32_LE(key + 4);
- t2 = U8TO32_LE(key + 8);
- t3 = U8TO32_LE(key + 12);
-
- /* precompute multipliers */
- state->r0 = t0 & 0x3ffffff;
- t0 >>= 26;
- t0 |= t1 << 6;
- state->r1 = t0 & 0x3ffff03;
- t1 >>= 20;
- t1 |= t2 << 12;
- state->r2 = t1 & 0x3ffc0ff;
- t2 >>= 14;
- t2 |= t3 << 18;
- state->r3 = t2 & 0x3f03fff;
- t3 >>= 8;
- state->r4 = t3 & 0x00fffff;
-
- state->s1 = state->r1 * 5;
- state->s2 = state->r2 * 5;
- state->s3 = state->r3 * 5;
- state->s4 = state->r4 * 5;
-
- /* init state */
- state->h0 = 0;
- state->h1 = 0;
- state->h2 = 0;
- state->h3 = 0;
- state->h4 = 0;
-
- state->buf_used = 0;
- memcpy(state->key, key + 16, sizeof(state->key));
-}
-
-void
-Poly1305Update(poly1305_state *statep, const unsigned char *in,
- size_t in_len)
-{
- unsigned int i;
- struct poly1305_state_st *state = (struct poly1305_state_st *)statep;
-
- if (state->buf_used) {
- unsigned int todo = 16 - state->buf_used;
- if (todo > in_len)
- todo = in_len;
- for (i = 0; i < todo; i++)
- state->buf[state->buf_used + i] = in[i];
- state->buf_used += todo;
- in_len -= todo;
- in += todo;
-
- if (state->buf_used == 16) {
- update(state, state->buf, 16);
- state->buf_used = 0;
- }
- }
-
- if (in_len >= 16) {
- size_t todo = in_len & ~0xf;
- update(state, in, todo);
- in += todo;
- in_len &= 0xf;
- }
-
- if (in_len) {
- for (i = 0; i < in_len; i++)
- state->buf[i] = in[i];
- state->buf_used = in_len;
- }
-}
-
-void
-Poly1305Finish(poly1305_state *statep, unsigned char mac[16])
-{
- struct poly1305_state_st *state = (struct poly1305_state_st *)statep;
- uint64_t f0, f1, f2, f3;
- uint32_t g0, g1, g2, g3, g4;
- uint32_t b, nb;
-
- if (state->buf_used)
- update(state, state->buf, state->buf_used);
-
- b = state->h0 >> 26;
- state->h0 = state->h0 & 0x3ffffff;
- state->h1 += b;
- b = state->h1 >> 26;
- state->h1 = state->h1 & 0x3ffffff;
- state->h2 += b;
- b = state->h2 >> 26;
- state->h2 = state->h2 & 0x3ffffff;
- state->h3 += b;
- b = state->h3 >> 26;
- state->h3 = state->h3 & 0x3ffffff;
- state->h4 += b;
- b = state->h4 >> 26;
- state->h4 = state->h4 & 0x3ffffff;
- state->h0 += b * 5;
-
- g0 = state->h0 + 5;
- b = g0 >> 26;
- g0 &= 0x3ffffff;
- g1 = state->h1 + b;
- b = g1 >> 26;
- g1 &= 0x3ffffff;
- g2 = state->h2 + b;
- b = g2 >> 26;
- g2 &= 0x3ffffff;
- g3 = state->h3 + b;
- b = g3 >> 26;
- g3 &= 0x3ffffff;
- g4 = state->h4 + b - (1 << 26);
-
- b = (g4 >> 31) - 1;
- nb = ~b;
- state->h0 = (state->h0 & nb) | (g0 & b);
- state->h1 = (state->h1 & nb) | (g1 & b);
- state->h2 = (state->h2 & nb) | (g2 & b);
- state->h3 = (state->h3 & nb) | (g3 & b);
- state->h4 = (state->h4 & nb) | (g4 & b);
-
- f0 = ((state->h0) | (state->h1 << 26)) + (uint64_t)U8TO32_LE(&state->key[0]);
- f1 = ((state->h1 >> 6) | (state->h2 << 20)) + (uint64_t)U8TO32_LE(&state->key[4]);
- f2 = ((state->h2 >> 12) | (state->h3 << 14)) + (uint64_t)U8TO32_LE(&state->key[8]);
- f3 = ((state->h3 >> 18) | (state->h4 << 8)) + (uint64_t)U8TO32_LE(&state->key[12]);
-
- U32TO8_LE(&mac[0], (uint32_t)f0);
- f1 += (f0 >> 32);
- U32TO8_LE(&mac[4], (uint32_t)f1);
- f2 += (f1 >> 32);
- U32TO8_LE(&mac[8], (uint32_t)f2);
- f3 += (f2 >> 32);
- U32TO8_LE(&mac[12], (uint32_t)f3);
-}
diff --git a/security/nss/lib/freebl/poly1305.h b/security/nss/lib/freebl/poly1305.h
deleted file mode 100644
index 125f49b3b..000000000
--- a/security/nss/lib/freebl/poly1305.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * poly1305.h - header file for Poly1305 implementation.
- *
- * 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/. */
-
-#ifndef FREEBL_POLY1305_H_
-#define FREEBL_POLY1305_H_
-
-#include "stddef.h"
-
-typedef unsigned char poly1305_state[512];
-
-/* Poly1305Init sets up |state| so that it can be used to calculate an
- * authentication tag with the one-time key |key|. Note that |key| is a
- * one-time key and therefore there is no `reset' method because that would
- * enable several messages to be authenticated with the same key. */
-extern void Poly1305Init(poly1305_state* state, const unsigned char key[32]);
-
-/* Poly1305Update processes |in_len| bytes from |in|. It can be called zero or
- * more times after poly1305_init. */
-extern void Poly1305Update(poly1305_state* state, const unsigned char* in,
- size_t inLen);
-
-/* Poly1305Finish completes the poly1305 calculation and writes a 16 byte
- * authentication tag to |mac|. */
-extern void Poly1305Finish(poly1305_state* state, unsigned char mac[16]);
-
-#endif /* FREEBL_POLY1305_H_ */
diff --git a/security/nss/lib/freebl/unix_urandom.c b/security/nss/lib/freebl/unix_urandom.c
index 25e6ad91c..869a5ed8c 100644
--- a/security/nss/lib/freebl/unix_urandom.c
+++ b/security/nss/lib/freebl/unix_urandom.c
@@ -4,10 +4,14 @@
#include <fcntl.h>
#include <unistd.h>
+#include <errno.h>
#include "secerr.h"
#include "secrng.h"
#include "prprf.h"
+/* syscall getentropy() is limited to retrieving 256 bytes */
+#define GETENTROPY_MAX_BYTES 256
+
void
RNG_SystemInfoForRNG(void)
{
@@ -28,6 +32,35 @@ RNG_SystemRNG(void *dest, size_t maxLen)
size_t fileBytes = 0;
unsigned char *buffer = dest;
+#if defined(__OpenBSD__) || (defined(LINUX) && defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 25))))
+ int result;
+
+ while (fileBytes < maxLen) {
+ size_t getBytes = maxLen - fileBytes;
+ if (getBytes > GETENTROPY_MAX_BYTES) {
+ getBytes = GETENTROPY_MAX_BYTES;
+ }
+ result = getentropy(buffer, getBytes);
+ if (result == 0) { /* success */
+ fileBytes += getBytes;
+ buffer += getBytes;
+ } else {
+ break;
+ }
+ }
+ if (fileBytes == maxLen) { /* success */
+ return maxLen;
+ }
+ /* If we failed with an error other than ENOSYS, it means the destination
+ * buffer is not writeable. We don't need to try writing to it again. */
+ if (errno != ENOSYS) {
+ PORT_SetError(SEC_ERROR_NEED_RANDOM);
+ return 0;
+ }
+ /* ENOSYS means the kernel doesn't support getentropy()/getrandom().
+ * Reset the number of bytes to get and fall back to /dev/urandom. */
+ fileBytes = 0;
+#endif
fd = open("/dev/urandom", O_RDONLY);
if (fd < 0) {
PORT_SetError(SEC_ERROR_NEED_RANDOM);
diff --git a/security/nss/lib/freebl/verified/Hacl_Poly1305_32.c b/security/nss/lib/freebl/verified/Hacl_Poly1305_32.c
new file mode 100644
index 000000000..246a41af3
--- /dev/null
+++ b/security/nss/lib/freebl/verified/Hacl_Poly1305_32.c
@@ -0,0 +1,578 @@
+/* Copyright 2016-2017 INRIA and Microsoft Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Hacl_Poly1305_32.h"
+
+inline static void
+Hacl_Bignum_Modulo_reduce(uint32_t *b)
+{
+ uint32_t b0 = b[0U];
+ b[0U] = (b0 << (uint32_t)2U) + b0;
+}
+
+inline static void
+Hacl_Bignum_Modulo_carry_top(uint32_t *b)
+{
+ uint32_t b4 = b[4U];
+ uint32_t b0 = b[0U];
+ uint32_t b4_26 = b4 >> (uint32_t)26U;
+ b[4U] = b4 & (uint32_t)0x3ffffffU;
+ b[0U] = (b4_26 << (uint32_t)2U) + b4_26 + b0;
+}
+
+inline static void
+Hacl_Bignum_Modulo_carry_top_wide(uint64_t *b)
+{
+ uint64_t b4 = b[4U];
+ uint64_t b0 = b[0U];
+ uint64_t b4_ = b4 & (uint64_t)(uint32_t)0x3ffffffU;
+ uint32_t b4_26 = (uint32_t)(b4 >> (uint32_t)26U);
+ uint64_t b0_ = b0 + (uint64_t)((b4_26 << (uint32_t)2U) + b4_26);
+ b[4U] = b4_;
+ b[0U] = b0_;
+}
+
+inline static void
+Hacl_Bignum_Fproduct_copy_from_wide_(uint32_t *output, uint64_t *input)
+{
+ for (uint32_t i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U) {
+ uint64_t xi = input[i];
+ output[i] = (uint32_t)xi;
+ }
+}
+
+inline static void
+Hacl_Bignum_Fproduct_sum_scalar_multiplication_(uint64_t *output, uint32_t *input, uint32_t s)
+{
+ for (uint32_t i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U) {
+ uint64_t xi = output[i];
+ uint32_t yi = input[i];
+ uint64_t x_wide = (uint64_t)yi;
+ uint64_t y_wide = (uint64_t)s;
+ output[i] = xi + x_wide * y_wide;
+ }
+}
+
+inline static void
+Hacl_Bignum_Fproduct_carry_wide_(uint64_t *tmp)
+{
+ for (uint32_t i = (uint32_t)0U; i < (uint32_t)4U; i = i + (uint32_t)1U) {
+ uint32_t ctr = i;
+ uint64_t tctr = tmp[ctr];
+ uint64_t tctrp1 = tmp[ctr + (uint32_t)1U];
+ uint32_t r0 = (uint32_t)tctr & (uint32_t)0x3ffffffU;
+ uint64_t c = tctr >> (uint32_t)26U;
+ tmp[ctr] = (uint64_t)r0;
+ tmp[ctr + (uint32_t)1U] = tctrp1 + c;
+ }
+}
+
+inline static void
+Hacl_Bignum_Fproduct_carry_limb_(uint32_t *tmp)
+{
+ for (uint32_t i = (uint32_t)0U; i < (uint32_t)4U; i = i + (uint32_t)1U) {
+ uint32_t ctr = i;
+ uint32_t tctr = tmp[ctr];
+ uint32_t tctrp1 = tmp[ctr + (uint32_t)1U];
+ uint32_t r0 = tctr & (uint32_t)0x3ffffffU;
+ uint32_t c = tctr >> (uint32_t)26U;
+ tmp[ctr] = r0;
+ tmp[ctr + (uint32_t)1U] = tctrp1 + c;
+ }
+}
+
+inline static void
+Hacl_Bignum_Fmul_shift_reduce(uint32_t *output)
+{
+ uint32_t tmp = output[4U];
+ for (uint32_t i = (uint32_t)0U; i < (uint32_t)4U; i = i + (uint32_t)1U) {
+ uint32_t ctr = (uint32_t)5U - i - (uint32_t)1U;
+ uint32_t z = output[ctr - (uint32_t)1U];
+ output[ctr] = z;
+ }
+ output[0U] = tmp;
+ Hacl_Bignum_Modulo_reduce(output);
+}
+
+static void
+Hacl_Bignum_Fmul_mul_shift_reduce_(uint64_t *output, uint32_t *input, uint32_t *input2)
+{
+ for (uint32_t i = (uint32_t)0U; i < (uint32_t)4U; i = i + (uint32_t)1U) {
+ uint32_t input2i = input2[i];
+ Hacl_Bignum_Fproduct_sum_scalar_multiplication_(output, input, input2i);
+ Hacl_Bignum_Fmul_shift_reduce(input);
+ }
+ uint32_t i = (uint32_t)4U;
+ uint32_t input2i = input2[i];
+ Hacl_Bignum_Fproduct_sum_scalar_multiplication_(output, input, input2i);
+}
+
+inline static void
+Hacl_Bignum_Fmul_fmul(uint32_t *output, uint32_t *input, uint32_t *input2)
+{
+ uint32_t tmp[5U] = { 0U };
+ memcpy(tmp, input, (uint32_t)5U * sizeof input[0U]);
+ uint64_t t[5U] = { 0U };
+ Hacl_Bignum_Fmul_mul_shift_reduce_(t, tmp, input2);
+ Hacl_Bignum_Fproduct_carry_wide_(t);
+ Hacl_Bignum_Modulo_carry_top_wide(t);
+ Hacl_Bignum_Fproduct_copy_from_wide_(output, t);
+ uint32_t i0 = output[0U];
+ uint32_t i1 = output[1U];
+ uint32_t i0_ = i0 & (uint32_t)0x3ffffffU;
+ uint32_t i1_ = i1 + (i0 >> (uint32_t)26U);
+ output[0U] = i0_;
+ output[1U] = i1_;
+}
+
+inline static void
+Hacl_Bignum_AddAndMultiply_add_and_multiply(uint32_t *acc, uint32_t *block, uint32_t *r)
+{
+ for (uint32_t i = (uint32_t)0U; i < (uint32_t)5U; i = i + (uint32_t)1U) {
+ uint32_t xi = acc[i];
+ uint32_t yi = block[i];
+ acc[i] = xi + yi;
+ }
+ Hacl_Bignum_Fmul_fmul(acc, acc, r);
+}
+
+inline static void
+Hacl_Impl_Poly1305_32_poly1305_update(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m)
+{
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut0 = st;
+ uint32_t *h = scrut0.h;
+ uint32_t *acc = h;
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut = st;
+ uint32_t *r = scrut.r;
+ uint32_t *r5 = r;
+ uint32_t tmp[5U] = { 0U };
+ uint8_t *s0 = m;
+ uint8_t *s1 = m + (uint32_t)3U;
+ uint8_t *s2 = m + (uint32_t)6U;
+ uint8_t *s3 = m + (uint32_t)9U;
+ uint8_t *s4 = m + (uint32_t)12U;
+ uint32_t i0 = load32_le(s0);
+ uint32_t i1 = load32_le(s1);
+ uint32_t i2 = load32_le(s2);
+ uint32_t i3 = load32_le(s3);
+ uint32_t i4 = load32_le(s4);
+ uint32_t r0 = i0 & (uint32_t)0x3ffffffU;
+ uint32_t r1 = i1 >> (uint32_t)2U & (uint32_t)0x3ffffffU;
+ uint32_t r2 = i2 >> (uint32_t)4U & (uint32_t)0x3ffffffU;
+ uint32_t r3 = i3 >> (uint32_t)6U & (uint32_t)0x3ffffffU;
+ uint32_t r4 = i4 >> (uint32_t)8U;
+ tmp[0U] = r0;
+ tmp[1U] = r1;
+ tmp[2U] = r2;
+ tmp[3U] = r3;
+ tmp[4U] = r4;
+ uint32_t b4 = tmp[4U];
+ uint32_t b4_ = (uint32_t)0x1000000U | b4;
+ tmp[4U] = b4_;
+ Hacl_Bignum_AddAndMultiply_add_and_multiply(acc, tmp, r5);
+}
+
+inline static void
+Hacl_Impl_Poly1305_32_poly1305_process_last_block_(
+ uint8_t *block,
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m,
+ uint64_t rem_)
+{
+ uint32_t tmp[5U] = { 0U };
+ uint8_t *s0 = block;
+ uint8_t *s1 = block + (uint32_t)3U;
+ uint8_t *s2 = block + (uint32_t)6U;
+ uint8_t *s3 = block + (uint32_t)9U;
+ uint8_t *s4 = block + (uint32_t)12U;
+ uint32_t i0 = load32_le(s0);
+ uint32_t i1 = load32_le(s1);
+ uint32_t i2 = load32_le(s2);
+ uint32_t i3 = load32_le(s3);
+ uint32_t i4 = load32_le(s4);
+ uint32_t r0 = i0 & (uint32_t)0x3ffffffU;
+ uint32_t r1 = i1 >> (uint32_t)2U & (uint32_t)0x3ffffffU;
+ uint32_t r2 = i2 >> (uint32_t)4U & (uint32_t)0x3ffffffU;
+ uint32_t r3 = i3 >> (uint32_t)6U & (uint32_t)0x3ffffffU;
+ uint32_t r4 = i4 >> (uint32_t)8U;
+ tmp[0U] = r0;
+ tmp[1U] = r1;
+ tmp[2U] = r2;
+ tmp[3U] = r3;
+ tmp[4U] = r4;
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut0 = st;
+ uint32_t *h = scrut0.h;
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut = st;
+ uint32_t *r = scrut.r;
+ Hacl_Bignum_AddAndMultiply_add_and_multiply(h, tmp, r);
+}
+
+inline static void
+Hacl_Impl_Poly1305_32_poly1305_process_last_block(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m,
+ uint64_t rem_)
+{
+ uint8_t zero1 = (uint8_t)0U;
+ KRML_CHECK_SIZE(zero1, (uint32_t)16U);
+ uint8_t block[16U];
+ for (uint32_t _i = 0U; _i < (uint32_t)16U; ++_i)
+ block[_i] = zero1;
+ uint32_t i0 = (uint32_t)rem_;
+ uint32_t i = (uint32_t)rem_;
+ memcpy(block, m, i * sizeof m[0U]);
+ block[i0] = (uint8_t)1U;
+ Hacl_Impl_Poly1305_32_poly1305_process_last_block_(block, st, m, rem_);
+}
+
+static void
+Hacl_Impl_Poly1305_32_poly1305_last_pass(uint32_t *acc)
+{
+ Hacl_Bignum_Fproduct_carry_limb_(acc);
+ Hacl_Bignum_Modulo_carry_top(acc);
+ uint32_t t0 = acc[0U];
+ uint32_t t10 = acc[1U];
+ uint32_t t20 = acc[2U];
+ uint32_t t30 = acc[3U];
+ uint32_t t40 = acc[4U];
+ uint32_t t1_ = t10 + (t0 >> (uint32_t)26U);
+ uint32_t mask_261 = (uint32_t)0x3ffffffU;
+ uint32_t t0_ = t0 & mask_261;
+ uint32_t t2_ = t20 + (t1_ >> (uint32_t)26U);
+ uint32_t t1__ = t1_ & mask_261;
+ uint32_t t3_ = t30 + (t2_ >> (uint32_t)26U);
+ uint32_t t2__ = t2_ & mask_261;
+ uint32_t t4_ = t40 + (t3_ >> (uint32_t)26U);
+ uint32_t t3__ = t3_ & mask_261;
+ acc[0U] = t0_;
+ acc[1U] = t1__;
+ acc[2U] = t2__;
+ acc[3U] = t3__;
+ acc[4U] = t4_;
+ Hacl_Bignum_Modulo_carry_top(acc);
+ uint32_t t00 = acc[0U];
+ uint32_t t1 = acc[1U];
+ uint32_t t2 = acc[2U];
+ uint32_t t3 = acc[3U];
+ uint32_t t4 = acc[4U];
+ uint32_t t1_0 = t1 + (t00 >> (uint32_t)26U);
+ uint32_t t0_0 = t00 & (uint32_t)0x3ffffffU;
+ uint32_t t2_0 = t2 + (t1_0 >> (uint32_t)26U);
+ uint32_t t1__0 = t1_0 & (uint32_t)0x3ffffffU;
+ uint32_t t3_0 = t3 + (t2_0 >> (uint32_t)26U);
+ uint32_t t2__0 = t2_0 & (uint32_t)0x3ffffffU;
+ uint32_t t4_0 = t4 + (t3_0 >> (uint32_t)26U);
+ uint32_t t3__0 = t3_0 & (uint32_t)0x3ffffffU;
+ acc[0U] = t0_0;
+ acc[1U] = t1__0;
+ acc[2U] = t2__0;
+ acc[3U] = t3__0;
+ acc[4U] = t4_0;
+ Hacl_Bignum_Modulo_carry_top(acc);
+ uint32_t i0 = acc[0U];
+ uint32_t i1 = acc[1U];
+ uint32_t i0_ = i0 & (uint32_t)0x3ffffffU;
+ uint32_t i1_ = i1 + (i0 >> (uint32_t)26U);
+ acc[0U] = i0_;
+ acc[1U] = i1_;
+ uint32_t a0 = acc[0U];
+ uint32_t a1 = acc[1U];
+ uint32_t a2 = acc[2U];
+ uint32_t a3 = acc[3U];
+ uint32_t a4 = acc[4U];
+ uint32_t mask0 = FStar_UInt32_gte_mask(a0, (uint32_t)0x3fffffbU);
+ uint32_t mask1 = FStar_UInt32_eq_mask(a1, (uint32_t)0x3ffffffU);
+ uint32_t mask2 = FStar_UInt32_eq_mask(a2, (uint32_t)0x3ffffffU);
+ uint32_t mask3 = FStar_UInt32_eq_mask(a3, (uint32_t)0x3ffffffU);
+ uint32_t mask4 = FStar_UInt32_eq_mask(a4, (uint32_t)0x3ffffffU);
+ uint32_t mask = (((mask0 & mask1) & mask2) & mask3) & mask4;
+ uint32_t a0_ = a0 - ((uint32_t)0x3fffffbU & mask);
+ uint32_t a1_ = a1 - ((uint32_t)0x3ffffffU & mask);
+ uint32_t a2_ = a2 - ((uint32_t)0x3ffffffU & mask);
+ uint32_t a3_ = a3 - ((uint32_t)0x3ffffffU & mask);
+ uint32_t a4_ = a4 - ((uint32_t)0x3ffffffU & mask);
+ acc[0U] = a0_;
+ acc[1U] = a1_;
+ acc[2U] = a2_;
+ acc[3U] = a3_;
+ acc[4U] = a4_;
+}
+
+static Hacl_Impl_Poly1305_32_State_poly1305_state
+Hacl_Impl_Poly1305_32_mk_state(uint32_t *r, uint32_t *h)
+{
+ return ((Hacl_Impl_Poly1305_32_State_poly1305_state){.r = r, .h = h });
+}
+
+static void
+Hacl_Standalone_Poly1305_32_poly1305_blocks(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m,
+ uint64_t len1)
+{
+ if (!(len1 == (uint64_t)0U)) {
+ uint8_t *block = m;
+ uint8_t *tail1 = m + (uint32_t)16U;
+ Hacl_Impl_Poly1305_32_poly1305_update(st, block);
+ uint64_t len2 = len1 - (uint64_t)1U;
+ Hacl_Standalone_Poly1305_32_poly1305_blocks(st, tail1, len2);
+ }
+}
+
+static void
+Hacl_Standalone_Poly1305_32_poly1305_partial(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *input,
+ uint64_t len1,
+ uint8_t *kr)
+{
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut = st;
+ uint32_t *r = scrut.r;
+ uint32_t *x0 = r;
+ FStar_UInt128_t k1 = load128_le(kr);
+ FStar_UInt128_t
+ k_clamped =
+ FStar_UInt128_logand(k1,
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)0x0ffffffc0ffffffcU),
+ (uint32_t)64U),
+ FStar_UInt128_uint64_to_uint128((uint64_t)0x0ffffffc0fffffffU)));
+ uint32_t r0 = (uint32_t)FStar_UInt128_uint128_to_uint64(k_clamped) & (uint32_t)0x3ffffffU;
+ uint32_t
+ r1 =
+ (uint32_t)FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(k_clamped, (uint32_t)26U)) & (uint32_t)0x3ffffffU;
+ uint32_t
+ r2 =
+ (uint32_t)FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(k_clamped, (uint32_t)52U)) & (uint32_t)0x3ffffffU;
+ uint32_t
+ r3 =
+ (uint32_t)FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(k_clamped, (uint32_t)78U)) & (uint32_t)0x3ffffffU;
+ uint32_t
+ r4 =
+ (uint32_t)FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(k_clamped, (uint32_t)104U)) & (uint32_t)0x3ffffffU;
+ x0[0U] = r0;
+ x0[1U] = r1;
+ x0[2U] = r2;
+ x0[3U] = r3;
+ x0[4U] = r4;
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut0 = st;
+ uint32_t *h = scrut0.h;
+ uint32_t *x00 = h;
+ x00[0U] = (uint32_t)0U;
+ x00[1U] = (uint32_t)0U;
+ x00[2U] = (uint32_t)0U;
+ x00[3U] = (uint32_t)0U;
+ x00[4U] = (uint32_t)0U;
+ Hacl_Standalone_Poly1305_32_poly1305_blocks(st, input, len1);
+}
+
+static void
+Hacl_Standalone_Poly1305_32_poly1305_complete(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m,
+ uint64_t len1,
+ uint8_t *k1)
+{
+ uint8_t *kr = k1;
+ uint64_t len16 = len1 >> (uint32_t)4U;
+ uint64_t rem16 = len1 & (uint64_t)0xfU;
+ uint8_t *part_input = m;
+ uint8_t *last_block = m + (uint32_t)((uint64_t)16U * len16);
+ Hacl_Standalone_Poly1305_32_poly1305_partial(st, part_input, len16, kr);
+ if (!(rem16 == (uint64_t)0U))
+ Hacl_Impl_Poly1305_32_poly1305_process_last_block(st, last_block, rem16);
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut = st;
+ uint32_t *h = scrut.h;
+ uint32_t *acc = h;
+ Hacl_Impl_Poly1305_32_poly1305_last_pass(acc);
+}
+
+static void
+Hacl_Standalone_Poly1305_32_crypto_onetimeauth_(
+ uint8_t *output,
+ uint8_t *input,
+ uint64_t len1,
+ uint8_t *k1)
+{
+ uint32_t buf[10U] = { 0U };
+ uint32_t *r = buf;
+ uint32_t *h = buf + (uint32_t)5U;
+ Hacl_Impl_Poly1305_32_State_poly1305_state st = Hacl_Impl_Poly1305_32_mk_state(r, h);
+ uint8_t *key_s = k1 + (uint32_t)16U;
+ Hacl_Standalone_Poly1305_32_poly1305_complete(st, input, len1, k1);
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut = st;
+ uint32_t *h5 = scrut.h;
+ uint32_t *acc = h5;
+ FStar_UInt128_t k_ = load128_le(key_s);
+ uint32_t h0 = acc[0U];
+ uint32_t h1 = acc[1U];
+ uint32_t h2 = acc[2U];
+ uint32_t h3 = acc[3U];
+ uint32_t h4 = acc[4U];
+ FStar_UInt128_t
+ acc_ =
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)h4),
+ (uint32_t)104U),
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)h3),
+ (uint32_t)78U),
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)h2),
+ (uint32_t)52U),
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)h1),
+ (uint32_t)26U),
+ FStar_UInt128_uint64_to_uint128((uint64_t)h0)))));
+ FStar_UInt128_t mac_ = FStar_UInt128_add_mod(acc_, k_);
+ store128_le(output, mac_);
+}
+
+static void
+Hacl_Standalone_Poly1305_32_crypto_onetimeauth(
+ uint8_t *output,
+ uint8_t *input,
+ uint64_t len1,
+ uint8_t *k1)
+{
+ Hacl_Standalone_Poly1305_32_crypto_onetimeauth_(output, input, len1, k1);
+}
+
+void *
+Hacl_Poly1305_32_op_String_Access(FStar_Monotonic_HyperStack_mem h, uint8_t *b)
+{
+ return (void *)(uint8_t)0U;
+}
+
+Hacl_Impl_Poly1305_32_State_poly1305_state
+Hacl_Poly1305_32_mk_state(uint32_t *r, uint32_t *acc)
+{
+ return Hacl_Impl_Poly1305_32_mk_state(r, acc);
+}
+
+void
+Hacl_Poly1305_32_init(Hacl_Impl_Poly1305_32_State_poly1305_state st, uint8_t *k1)
+{
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut = st;
+ uint32_t *r = scrut.r;
+ uint32_t *x0 = r;
+ FStar_UInt128_t k10 = load128_le(k1);
+ FStar_UInt128_t
+ k_clamped =
+ FStar_UInt128_logand(k10,
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)0x0ffffffc0ffffffcU),
+ (uint32_t)64U),
+ FStar_UInt128_uint64_to_uint128((uint64_t)0x0ffffffc0fffffffU)));
+ uint32_t r0 = (uint32_t)FStar_UInt128_uint128_to_uint64(k_clamped) & (uint32_t)0x3ffffffU;
+ uint32_t
+ r1 =
+ (uint32_t)FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(k_clamped, (uint32_t)26U)) & (uint32_t)0x3ffffffU;
+ uint32_t
+ r2 =
+ (uint32_t)FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(k_clamped, (uint32_t)52U)) & (uint32_t)0x3ffffffU;
+ uint32_t
+ r3 =
+ (uint32_t)FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(k_clamped, (uint32_t)78U)) & (uint32_t)0x3ffffffU;
+ uint32_t
+ r4 =
+ (uint32_t)FStar_UInt128_uint128_to_uint64(FStar_UInt128_shift_right(k_clamped, (uint32_t)104U)) & (uint32_t)0x3ffffffU;
+ x0[0U] = r0;
+ x0[1U] = r1;
+ x0[2U] = r2;
+ x0[3U] = r3;
+ x0[4U] = r4;
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut0 = st;
+ uint32_t *h = scrut0.h;
+ uint32_t *x00 = h;
+ x00[0U] = (uint32_t)0U;
+ x00[1U] = (uint32_t)0U;
+ x00[2U] = (uint32_t)0U;
+ x00[3U] = (uint32_t)0U;
+ x00[4U] = (uint32_t)0U;
+}
+
+void *Hacl_Poly1305_32_empty_log = (void *)(uint8_t)0U;
+
+void
+Hacl_Poly1305_32_update_block(Hacl_Impl_Poly1305_32_State_poly1305_state st, uint8_t *m)
+{
+ Hacl_Impl_Poly1305_32_poly1305_update(st, m);
+}
+
+void
+Hacl_Poly1305_32_update(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m,
+ uint32_t len1)
+{
+ if (!(len1 == (uint32_t)0U)) {
+ uint8_t *block = m;
+ uint8_t *m_ = m + (uint32_t)16U;
+ uint32_t len2 = len1 - (uint32_t)1U;
+ Hacl_Poly1305_32_update_block(st, block);
+ Hacl_Poly1305_32_update(st, m_, len2);
+ }
+}
+
+void
+Hacl_Poly1305_32_update_last(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m,
+ uint32_t len1)
+{
+ if (!((uint64_t)len1 == (uint64_t)0U))
+ Hacl_Impl_Poly1305_32_poly1305_process_last_block(st, m, (uint64_t)len1);
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut = st;
+ uint32_t *h = scrut.h;
+ uint32_t *acc = h;
+ Hacl_Impl_Poly1305_32_poly1305_last_pass(acc);
+}
+
+void
+Hacl_Poly1305_32_finish(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *mac,
+ uint8_t *k1)
+{
+ Hacl_Impl_Poly1305_32_State_poly1305_state scrut = st;
+ uint32_t *h = scrut.h;
+ uint32_t *acc = h;
+ FStar_UInt128_t k_ = load128_le(k1);
+ uint32_t h0 = acc[0U];
+ uint32_t h1 = acc[1U];
+ uint32_t h2 = acc[2U];
+ uint32_t h3 = acc[3U];
+ uint32_t h4 = acc[4U];
+ FStar_UInt128_t
+ acc_ =
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)h4),
+ (uint32_t)104U),
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)h3),
+ (uint32_t)78U),
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)h2),
+ (uint32_t)52U),
+ FStar_UInt128_logor(FStar_UInt128_shift_left(FStar_UInt128_uint64_to_uint128((uint64_t)h1),
+ (uint32_t)26U),
+ FStar_UInt128_uint64_to_uint128((uint64_t)h0)))));
+ FStar_UInt128_t mac_ = FStar_UInt128_add_mod(acc_, k_);
+ store128_le(mac, mac_);
+}
+
+void
+Hacl_Poly1305_32_crypto_onetimeauth(
+ uint8_t *output,
+ uint8_t *input,
+ uint64_t len1,
+ uint8_t *k1)
+{
+ Hacl_Standalone_Poly1305_32_crypto_onetimeauth(output, input, len1, k1);
+}
diff --git a/security/nss/lib/freebl/verified/Hacl_Poly1305_32.h b/security/nss/lib/freebl/verified/Hacl_Poly1305_32.h
new file mode 100644
index 000000000..4dd070026
--- /dev/null
+++ b/security/nss/lib/freebl/verified/Hacl_Poly1305_32.h
@@ -0,0 +1,103 @@
+/* Copyright 2016-2017 INRIA and Microsoft Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "kremlib.h"
+#ifndef __Hacl_Poly1305_32_H
+#define __Hacl_Poly1305_32_H
+
+typedef uint32_t Hacl_Bignum_Constants_limb;
+
+typedef uint64_t Hacl_Bignum_Constants_wide;
+
+typedef uint64_t Hacl_Bignum_Wide_t;
+
+typedef uint32_t Hacl_Bignum_Limb_t;
+
+typedef void *Hacl_Impl_Poly1305_32_State_log_t;
+
+typedef uint8_t *Hacl_Impl_Poly1305_32_State_uint8_p;
+
+typedef uint32_t *Hacl_Impl_Poly1305_32_State_bigint;
+
+typedef void *Hacl_Impl_Poly1305_32_State_seqelem;
+
+typedef uint32_t *Hacl_Impl_Poly1305_32_State_elemB;
+
+typedef uint8_t *Hacl_Impl_Poly1305_32_State_wordB;
+
+typedef uint8_t *Hacl_Impl_Poly1305_32_State_wordB_16;
+
+typedef struct
+{
+ uint32_t *r;
+ uint32_t *h;
+} Hacl_Impl_Poly1305_32_State_poly1305_state;
+
+typedef void *Hacl_Impl_Poly1305_32_log_t;
+
+typedef uint32_t *Hacl_Impl_Poly1305_32_bigint;
+
+typedef uint8_t *Hacl_Impl_Poly1305_32_uint8_p;
+
+typedef uint32_t *Hacl_Impl_Poly1305_32_elemB;
+
+typedef uint8_t *Hacl_Impl_Poly1305_32_wordB;
+
+typedef uint8_t *Hacl_Impl_Poly1305_32_wordB_16;
+
+typedef uint8_t *Hacl_Poly1305_32_uint8_p;
+
+typedef uint64_t Hacl_Poly1305_32_uint64_t;
+
+void *Hacl_Poly1305_32_op_String_Access(FStar_Monotonic_HyperStack_mem h, uint8_t *b);
+
+typedef uint8_t *Hacl_Poly1305_32_key;
+
+typedef Hacl_Impl_Poly1305_32_State_poly1305_state Hacl_Poly1305_32_state;
+
+Hacl_Impl_Poly1305_32_State_poly1305_state
+Hacl_Poly1305_32_mk_state(uint32_t *r, uint32_t *acc);
+
+void Hacl_Poly1305_32_init(Hacl_Impl_Poly1305_32_State_poly1305_state st, uint8_t *k1);
+
+extern void *Hacl_Poly1305_32_empty_log;
+
+void Hacl_Poly1305_32_update_block(Hacl_Impl_Poly1305_32_State_poly1305_state st, uint8_t *m);
+
+void
+Hacl_Poly1305_32_update(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m,
+ uint32_t len1);
+
+void
+Hacl_Poly1305_32_update_last(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *m,
+ uint32_t len1);
+
+void
+Hacl_Poly1305_32_finish(
+ Hacl_Impl_Poly1305_32_State_poly1305_state st,
+ uint8_t *mac,
+ uint8_t *k1);
+
+void
+Hacl_Poly1305_32_crypto_onetimeauth(
+ uint8_t *output,
+ uint8_t *input,
+ uint64_t len1,
+ uint8_t *k1);
+#endif
diff --git a/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c b/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
index 9954f0ca6..f73b95f68 100644
--- a/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
+++ b/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
@@ -70,7 +70,7 @@ static const PKIX_UInt32 httpprotocolLen = 5; /* strlen(httpprotocol) */
* The address at which the Boolean state machine flag is stored to
* indicate whether processing can continue without further input.
* Must be non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -85,7 +85,7 @@ pkix_pl_HttpDefaultClient_HdrCheckComplete(
PKIX_PL_HttpDefaultClient *client,
PKIX_UInt32 bytesRead,
PKIX_Boolean *pKeepGoing,
- void *plContext)
+ void *plCtx)
{
PKIX_UInt32 alreadyScanned = 0;
PKIX_UInt32 comp = 0;
@@ -142,7 +142,7 @@ pkix_pl_HttpDefaultClient_HdrCheckComplete(
headerLength = (eoh - client->rcvBuf);
/* allocate space to copy header (and for the NULL terminator) */
- PKIX_CHECK(PKIX_PL_Malloc(headerLength + 1, (void **)&copy, plContext),
+ PKIX_CHECK(PKIX_PL_Malloc(headerLength + 1, (void **)&copy, plCtx),
PKIX_MALLOCFAILED);
/* copy header data before we corrupt it (by storing NULLs) */
@@ -301,7 +301,7 @@ pkix_pl_HttpDefaultClient_HdrCheckComplete(
if (contentLength > 0) {
/* allocate a buffer of size contentLength for the content */
- PKIX_CHECK(PKIX_PL_Malloc(contentLength, (void **)&body, plContext),
+ PKIX_CHECK(PKIX_PL_Malloc(contentLength, (void **)&body, plCtx),
PKIX_MALLOCFAILED);
/* copy any remaining bytes in current buffer into new buffer */
@@ -311,7 +311,7 @@ pkix_pl_HttpDefaultClient_HdrCheckComplete(
}
}
- PKIX_CHECK(PKIX_PL_Free(client->rcvBuf, plContext),
+ PKIX_CHECK(PKIX_PL_Free(client->rcvBuf, plCtx),
PKIX_FREEFAILED);
client->rcvBuf = body;
@@ -340,7 +340,7 @@ cleanup:
* "pClient"
* The address at which the created HttpDefaultClient is to be stored.
* Must be non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -355,7 +355,7 @@ pkix_pl_HttpDefaultClient_Create(
const char *host,
PRUint16 portnum,
PKIX_PL_HttpDefaultClient **pClient,
- void *plContext)
+ void *plCtx)
{
PKIX_PL_HttpDefaultClient *client = NULL;
@@ -367,7 +367,7 @@ pkix_pl_HttpDefaultClient_Create(
(PKIX_HTTPDEFAULTCLIENT_TYPE,
sizeof (PKIX_PL_HttpDefaultClient),
(PKIX_PL_Object **)&client,
- plContext),
+ plCtx),
PKIX_COULDNOTCREATEHTTPDEFAULTCLIENTOBJECT);
/* Client timeout is overwritten in HttpDefaultClient_RequestCreate
@@ -408,10 +408,10 @@ pkix_pl_HttpDefaultClient_Create(
client->socket = NULL;
/*
- * The HttpClient API does not include a plContext argument in its
+ * The HttpClient API does not include a plCtx argument in its
* function calls. Save it here.
*/
- client->plContext = plContext;
+ client->plContext = plCtx;
*pClient = client;
@@ -430,7 +430,7 @@ cleanup:
static PKIX_Error *
pkix_pl_HttpDefaultClient_Destroy(
PKIX_PL_Object *object,
- void *plContext)
+ void *plCtx)
{
PKIX_PL_HttpDefaultClient *client = NULL;
@@ -438,13 +438,13 @@ pkix_pl_HttpDefaultClient_Destroy(
PKIX_NULLCHECK_ONE(object);
PKIX_CHECK(pkix_CheckType
- (object, PKIX_HTTPDEFAULTCLIENT_TYPE, plContext),
+ (object, PKIX_HTTPDEFAULTCLIENT_TYPE, plCtx),
PKIX_OBJECTNOTANHTTPDEFAULTCLIENT);
client = (PKIX_PL_HttpDefaultClient *)object;
if (client->rcvHeaders) {
- PKIX_PL_Free(client->rcvHeaders, plContext);
+ PKIX_PL_Free(client->rcvHeaders, plCtx);
client->rcvHeaders = NULL;
}
if (client->rcvContentType) {
@@ -456,11 +456,11 @@ pkix_pl_HttpDefaultClient_Destroy(
client->GETBuf = NULL;
}
if (client->POSTBuf != NULL) {
- PKIX_PL_Free(client->POSTBuf, plContext);
+ PKIX_PL_Free(client->POSTBuf, plCtx);
client->POSTBuf = NULL;
}
if (client->rcvBuf != NULL) {
- PKIX_PL_Free(client->rcvBuf, plContext);
+ PKIX_PL_Free(client->rcvBuf, plCtx);
client->rcvBuf = NULL;
}
if (client->host) {
@@ -493,7 +493,7 @@ cleanup:
* thread-safe.
*/
PKIX_Error *
-pkix_pl_HttpDefaultClient_RegisterSelf(void *plContext)
+pkix_pl_HttpDefaultClient_RegisterSelf(void *plCtx)
{
extern pkix_ClassTable_Entry systemClasses[PKIX_NUMTYPES];
pkix_ClassTable_Entry *entry =
@@ -529,7 +529,7 @@ pkix_pl_HttpDefaultClient_RegisterSelf(void *plContext)
* The address at which the Boolean state machine flag is stored to
* indicate whether processing can continue without further input.
* Must be non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -543,7 +543,7 @@ static PKIX_Error *
pkix_pl_HttpDefaultClient_ConnectContinue(
PKIX_PL_HttpDefaultClient *client,
PKIX_Boolean *pKeepGoing,
- void *plContext)
+ void *plCtx)
{
PRErrorCode status;
PKIX_Boolean keepGoing = PKIX_FALSE;
@@ -557,7 +557,7 @@ pkix_pl_HttpDefaultClient_ConnectContinue(
callbackList = (PKIX_PL_Socket_Callback *)client->callbackList;
PKIX_CHECK(callbackList->connectcontinueCallback
- (client->socket, &status, plContext),
+ (client->socket, &status, plCtx),
PKIX_SOCKETCONNECTCONTINUEFAILED);
if (status == 0) {
@@ -595,7 +595,7 @@ cleanup:
* "pBytesTransferred"
* The address at which the number of bytes sent is stored. Must be
* non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -610,7 +610,7 @@ pkix_pl_HttpDefaultClient_Send(
PKIX_PL_HttpDefaultClient *client,
PKIX_Boolean *pKeepGoing,
PKIX_UInt32 *pBytesTransferred,
- void *plContext)
+ void *plCtx)
{
PKIX_Int32 bytesWritten = 0;
PKIX_Int32 lenToWrite = 0;
@@ -640,7 +640,7 @@ pkix_pl_HttpDefaultClient_Send(
dataToWrite,
lenToWrite,
&bytesWritten,
- plContext),
+ plCtx),
PKIX_SOCKETSENDFAILED);
client->rcvBuf = NULL;
@@ -690,7 +690,7 @@ cleanup:
* "pBytesTransferred"
* The address at which the number of bytes sent is stored. Must be
* non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -705,7 +705,7 @@ pkix_pl_HttpDefaultClient_SendContinue(
PKIX_PL_HttpDefaultClient *client,
PKIX_Boolean *pKeepGoing,
PKIX_UInt32 *pBytesTransferred,
- void *plContext)
+ void *plCtx)
{
PKIX_Int32 bytesWritten = 0;
PKIX_PL_Socket_Callback *callbackList = NULL;
@@ -718,7 +718,7 @@ pkix_pl_HttpDefaultClient_SendContinue(
callbackList = (PKIX_PL_Socket_Callback *)client->callbackList;
PKIX_CHECK(callbackList->pollCallback
- (client->socket, &bytesWritten, NULL, plContext),
+ (client->socket, &bytesWritten, NULL, plCtx),
PKIX_SOCKETPOLLFAILED);
/*
@@ -752,7 +752,7 @@ cleanup:
* The address at which the Boolean state machine flag is stored to
* indicate whether processing can continue without further input.
* Must be non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -766,7 +766,7 @@ static PKIX_Error *
pkix_pl_HttpDefaultClient_RecvHdr(
PKIX_PL_HttpDefaultClient *client,
PKIX_Boolean *pKeepGoing,
- void *plContext)
+ void *plCtx)
{
PKIX_UInt32 bytesToRead = 0;
PKIX_Int32 bytesRead = 0;
@@ -787,7 +787,7 @@ pkix_pl_HttpDefaultClient_RecvHdr(
(client->rcvBuf,
client->capacity,
(void **)&(client->rcvBuf),
- plContext),
+ plCtx),
PKIX_REALLOCFAILED);
bytesToRead = client->capacity - client->filledupBytes;
@@ -799,7 +799,7 @@ pkix_pl_HttpDefaultClient_RecvHdr(
(void *)&(client->rcvBuf[client->filledupBytes]),
bytesToRead,
&bytesRead,
- plContext),
+ plCtx),
PKIX_SOCKETRECVFAILED);
if (bytesRead > 0) {
@@ -808,7 +808,7 @@ pkix_pl_HttpDefaultClient_RecvHdr(
PKIX_CHECK(
pkix_pl_HttpDefaultClient_HdrCheckComplete(client, bytesRead,
pKeepGoing,
- plContext),
+ plCtx),
PKIX_HTTPDEFAULTCLIENTHDRCHECKCOMPLETEFAILED);
} else {
client->connectStatus = HTTP_RECV_HDR_PENDING;
@@ -834,7 +834,7 @@ cleanup:
* The address at which the Boolean state machine flag is stored to
* indicate whether processing can continue without further input.
* Must be non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -848,7 +848,7 @@ static PKIX_Error *
pkix_pl_HttpDefaultClient_RecvHdrContinue(
PKIX_PL_HttpDefaultClient *client,
PKIX_Boolean *pKeepGoing,
- void *plContext)
+ void *plCtx)
{
PKIX_Int32 bytesRead = 0;
PKIX_PL_Socket_Callback *callbackList = NULL;
@@ -861,14 +861,14 @@ pkix_pl_HttpDefaultClient_RecvHdrContinue(
callbackList = (PKIX_PL_Socket_Callback *)client->callbackList;
PKIX_CHECK(callbackList->pollCallback
- (client->socket, NULL, &bytesRead, plContext),
+ (client->socket, NULL, &bytesRead, plCtx),
PKIX_SOCKETPOLLFAILED);
if (bytesRead > 0) {
client->filledupBytes += bytesRead;
PKIX_CHECK(pkix_pl_HttpDefaultClient_HdrCheckComplete
- (client, bytesRead, pKeepGoing, plContext),
+ (client, bytesRead, pKeepGoing, plCtx),
PKIX_HTTPDEFAULTCLIENTHDRCHECKCOMPLETEFAILED);
} else {
@@ -897,7 +897,7 @@ cleanup:
* The address at which the Boolean state machine flag is stored to
* indicate whether processing can continue without further input.
* Must be non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -911,7 +911,7 @@ static PKIX_Error *
pkix_pl_HttpDefaultClient_RecvBody(
PKIX_PL_HttpDefaultClient *client,
PKIX_Boolean *pKeepGoing,
- void *plContext)
+ void *plCtx)
{
PKIX_Int32 bytesRead = 0;
PKIX_Int32 bytesToRead = 0;
@@ -952,7 +952,7 @@ pkix_pl_HttpDefaultClient_RecvBody(
client->capacity = newLength;
PKIX_CHECK(
PKIX_PL_Realloc(client->rcvBuf, newLength,
- (void**)&client->rcvBuf, plContext),
+ (void**)&client->rcvBuf, plCtx),
PKIX_REALLOCFAILED);
freeBuffSize = client->capacity -
client->filledupBytes;
@@ -964,7 +964,7 @@ pkix_pl_HttpDefaultClient_RecvBody(
/* Use poll callback if waiting on non-blocking IO */
if (client->connectStatus == HTTP_RECV_BODY_PENDING) {
PKIX_CHECK(callbackList->pollCallback
- (client->socket, NULL, &bytesRead, plContext),
+ (client->socket, NULL, &bytesRead, plCtx),
PKIX_SOCKETPOLLFAILED);
} else {
PKIX_CHECK(callbackList->recvCallback
@@ -972,7 +972,7 @@ pkix_pl_HttpDefaultClient_RecvBody(
(void *)&(client->rcvBuf[client->filledupBytes]),
bytesToRead,
&bytesRead,
- plContext),
+ plCtx),
PKIX_SOCKETRECVFAILED);
}
@@ -1026,7 +1026,7 @@ cleanup:
* PARAMETERS:
* "client"
* The address of the HttpDefaultClient object. Must be non-NULL.
- * "plContext"
+ * "plCtx"
* Platform-specific context pointer.
* THREAD SAFETY:
* Thread Safe (see Thread Safety Definitions in Programmer's Guide)
@@ -1039,7 +1039,7 @@ cleanup:
static PKIX_Error *
pkix_pl_HttpDefaultClient_Dispatch(
PKIX_PL_HttpDefaultClient *client,
- void *plContext)
+ void *plCtx)
{
PKIX_UInt32 bytesTransferred = 0;
PKIX_Boolean keepGoing = PKIX_TRUE;
@@ -1051,33 +1051,33 @@ pkix_pl_HttpDefaultClient_Dispatch(
switch (client->connectStatus) {
case HTTP_CONNECT_PENDING:
PKIX_CHECK(pkix_pl_HttpDefaultClient_ConnectContinue
- (client, &keepGoing, plContext),
+ (client, &keepGoing, plCtx),
PKIX_HTTPDEFAULTCLIENTCONNECTCONTINUEFAILED);
break;
case HTTP_CONNECTED:
PKIX_CHECK(pkix_pl_HttpDefaultClient_Send
- (client, &keepGoing, &bytesTransferred, plContext),
+ (client, &keepGoing, &bytesTransferred, plCtx),
PKIX_HTTPDEFAULTCLIENTSENDFAILED);
break;
case HTTP_SEND_PENDING:
PKIX_CHECK(pkix_pl_HttpDefaultClient_SendContinue
- (client, &keepGoing, &bytesTransferred, plContext),
+ (client, &keepGoing, &bytesTransferred, plCtx),
PKIX_HTTPDEFAULTCLIENTSENDCONTINUEFAILED);
break;
case HTTP_RECV_HDR:
PKIX_CHECK(pkix_pl_HttpDefaultClient_RecvHdr
- (client, &keepGoing, plContext),
+ (client, &keepGoing, plCtx),
PKIX_HTTPDEFAULTCLIENTRECVHDRFAILED);
break;
case HTTP_RECV_HDR_PENDING:
PKIX_CHECK(pkix_pl_HttpDefaultClient_RecvHdrContinue
- (client, &keepGoing, plContext),
+ (client, &keepGoing, plCtx),
PKIX_HTTPDEFAULTCLIENTRECVHDRCONTINUEFAILED);
break;
case HTTP_RECV_BODY:
case HTTP_RECV_BODY_PENDING:
PKIX_CHECK(pkix_pl_HttpDefaultClient_RecvBody
- (client, &keepGoing, plContext),
+ (client, &keepGoing, plCtx),
PKIX_HTTPDEFAULTCLIENTRECVBODYFAILED);
break;
case HTTP_ERROR:
@@ -1106,7 +1106,7 @@ pkix_pl_HttpDefaultClient_CreateSession(
const char *host,
PRUint16 portnum,
SEC_HTTP_SERVER_SESSION *pSession,
- void *plContext)
+ void *plCtx)
{
PKIX_PL_HttpDefaultClient *client = NULL;
@@ -1115,7 +1115,7 @@ pkix_pl_HttpDefaultClient_CreateSession(
PKIX_NULLCHECK_TWO(host, pSession);
PKIX_CHECK(pkix_pl_HttpDefaultClient_Create
- (host, portnum, &client, plContext),
+ (host, portnum, &client, plCtx),
PKIX_HTTPDEFAULTCLIENTCREATEFAILED);
*pSession = (SEC_HTTP_SERVER_SESSION)client;
@@ -1130,7 +1130,7 @@ PKIX_Error *
pkix_pl_HttpDefaultClient_KeepAliveSession(
SEC_HTTP_SERVER_SESSION session,
PRPollDesc **pPollDesc,
- void *plContext)
+ void *plCtx)
{
PKIX_ENTER
(HTTPDEFAULTCLIENT,
@@ -1140,7 +1140,7 @@ pkix_pl_HttpDefaultClient_KeepAliveSession(
PKIX_CHECK(pkix_CheckType
((PKIX_PL_Object *)session,
PKIX_HTTPDEFAULTCLIENT_TYPE,
- plContext),
+ plCtx),
PKIX_SESSIONNOTANHTTPDEFAULTCLIENT);
/* XXX Not implemented */
@@ -1159,7 +1159,7 @@ pkix_pl_HttpDefaultClient_RequestCreate(
const char *http_request_method,
const PRIntervalTime timeout,
SEC_HTTP_REQUEST_SESSION *pRequest,
- void *plContext)
+ void *plCtx)
{
PKIX_PL_HttpDefaultClient *client = NULL;
PKIX_PL_Socket *socket = NULL;
@@ -1174,7 +1174,7 @@ pkix_pl_HttpDefaultClient_RequestCreate(
PKIX_CHECK(pkix_CheckType
((PKIX_PL_Object *)session,
PKIX_HTTPDEFAULTCLIENT_TYPE,
- plContext),
+ plCtx),
PKIX_SESSIONNOTANHTTPDEFAULTCLIENT);
client = (PKIX_PL_HttpDefaultClient *)session;
@@ -1212,7 +1212,7 @@ pkix_pl_HttpDefaultClient_RequestCreate(
2001, /* client->portnum, */
&status,
&socket,
- plContext),
+ plCtx),
PKIX_HTTPCERTSTOREFINDSOCKETCONNECTIONFAILED);
#else
PKIX_CHECK(pkix_HttpCertStore_FindSocketConnection
@@ -1221,20 +1221,20 @@ pkix_pl_HttpDefaultClient_RequestCreate(
client->portnum,
&status,
&socket,
- plContext),
+ plCtx),
PKIX_HTTPCERTSTOREFINDSOCKETCONNECTIONFAILED);
#endif
client->socket = socket;
PKIX_CHECK(pkix_pl_Socket_GetCallbackList
- (socket, &callbackList, plContext),
+ (socket, &callbackList, plCtx),
PKIX_SOCKETGETCALLBACKLISTFAILED);
client->callbackList = (void *)callbackList;
PKIX_CHECK(pkix_pl_Socket_GetPRFileDesc
- (socket, &fileDesc, plContext),
+ (socket, &fileDesc, plCtx),
PKIX_SOCKETGETPRFILEDESCFAILED);
client->pollDesc.fd = fileDesc;
@@ -1264,7 +1264,7 @@ pkix_pl_HttpDefaultClient_SetPostData(
const char *http_data,
const PRUint32 http_data_len,
const char *http_content_type,
- void *plContext)
+ void *plCtx)
{
PKIX_PL_HttpDefaultClient *client = NULL;
@@ -1276,7 +1276,7 @@ pkix_pl_HttpDefaultClient_SetPostData(
PKIX_CHECK(pkix_CheckType
((PKIX_PL_Object *)request,
PKIX_HTTPDEFAULTCLIENT_TYPE,
- plContext),
+ plCtx),
PKIX_REQUESTNOTANHTTPDEFAULTCLIENT);
client = (PKIX_PL_HttpDefaultClient *)request;
@@ -1307,7 +1307,7 @@ pkix_pl_HttpDefaultClient_TrySendAndReceive(
PRUint32 *http_response_data_len,
PRPollDesc **pPollDesc,
SECStatus *pSECReturn,
- void *plContext)
+ void *plCtx)
{
PKIX_PL_HttpDefaultClient *client = NULL;
PKIX_UInt32 postLen = 0;
@@ -1324,7 +1324,7 @@ pkix_pl_HttpDefaultClient_TrySendAndReceive(
PKIX_CHECK(pkix_CheckType
((PKIX_PL_Object *)request,
PKIX_HTTPDEFAULTCLIENT_TYPE,
- plContext),
+ plCtx),
PKIX_REQUESTNOTANHTTPDEFAULTCLIENT);
client = (PKIX_PL_HttpDefaultClient *)request;
@@ -1380,7 +1380,7 @@ pkix_pl_HttpDefaultClient_TrySendAndReceive(
PKIX_CHECK(PKIX_PL_Malloc
(client->POSTLen,
(void **)&(client->POSTBuf),
- plContext),
+ plCtx),
PKIX_MALLOCFAILED);
/* copy header into postBuffer */
@@ -1407,7 +1407,7 @@ pkix_pl_HttpDefaultClient_TrySendAndReceive(
}
/* continue according to state */
- PKIX_CHECK(pkix_pl_HttpDefaultClient_Dispatch(client, plContext),
+ PKIX_CHECK(pkix_pl_HttpDefaultClient_Dispatch(client, plCtx),
PKIX_HTTPDEFAULTCLIENTDISPATCHFAILED);
switch (client->connectStatus) {
@@ -1478,7 +1478,7 @@ cleanup:
PKIX_Error *
pkix_pl_HttpDefaultClient_Cancel(
SEC_HTTP_REQUEST_SESSION request,
- void *plContext)
+ void *plCtx)
{
PKIX_ENTER(HTTPDEFAULTCLIENT, "pkix_pl_HttpDefaultClient_Cancel");
PKIX_NULLCHECK_ONE(request);
@@ -1486,7 +1486,7 @@ pkix_pl_HttpDefaultClient_Cancel(
PKIX_CHECK(pkix_CheckType
((PKIX_PL_Object *)request,
PKIX_HTTPDEFAULTCLIENT_TYPE,
- plContext),
+ plCtx),
PKIX_REQUESTNOTANHTTPDEFAULTCLIENT);
/* XXX Not implemented */
diff --git a/security/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c b/security/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
index 9fa8e9260..09b54a2be 100644
--- a/security/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
+++ b/security/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
@@ -23,8 +23,8 @@
* PARAMETERS
* "method"
* The UInt32 value to be stored as the method field of the InfoAccess.
- * "generalName"
- * The GeneralName to be stored as the generalName field of the InfoAccess.
+ * "gName"
+ * The GeneralName to be stored as the gName field of the InfoAccess.
* Must be non-NULL.
* "pInfoAccess"
* Address where the result is stored. Must be non-NULL.
@@ -39,7 +39,7 @@
static PKIX_Error *
pkix_pl_InfoAccess_Create(
PKIX_UInt32 method,
- PKIX_PL_GeneralName *generalName,
+ PKIX_PL_GeneralName *gName,
PKIX_PL_InfoAccess **pInfoAccess,
void *plContext)
{
@@ -47,7 +47,7 @@ pkix_pl_InfoAccess_Create(
PKIX_PL_InfoAccess *infoAccess = NULL;
PKIX_ENTER(INFOACCESS, "pkix_pl_InfoAccess_Create");
- PKIX_NULLCHECK_TWO(generalName, pInfoAccess);
+ PKIX_NULLCHECK_TWO(gName, pInfoAccess);
PKIX_CHECK(PKIX_PL_Object_Alloc
(PKIX_INFOACCESS_TYPE,
@@ -58,8 +58,8 @@ pkix_pl_InfoAccess_Create(
infoAccess->method = method;
- PKIX_INCREF(generalName);
- infoAccess->location = generalName;
+ PKIX_INCREF(gName);
+ infoAccess->location = gName;
*pInfoAccess = infoAccess;
infoAccess = NULL;
@@ -678,7 +678,7 @@ pkix_pl_UnescapeURL(
* [binary|<other-type>]]*
*
* PARAMETERS
- * "generalName"
+ * "gName"
* Address of the GeneralName whose LDAPLocation is to be parsed. Must be
* non-NULL.
* "arena"
@@ -700,7 +700,7 @@ pkix_pl_UnescapeURL(
*/
PKIX_Error *
pkix_pl_InfoAccess_ParseLocation(
- PKIX_PL_GeneralName *generalName,
+ PKIX_PL_GeneralName *gName,
PLArenaPool *arena,
LDAPRequestParams *request,
char **pDomainName,
@@ -722,9 +722,9 @@ pkix_pl_InfoAccess_ParseLocation(
LDAPNameComponent *nameComponent = NULL;
PKIX_ENTER(INFOACCESS, "pkix_pl_InfoAccess_ParseLocation");
- PKIX_NULLCHECK_FOUR(generalName, arena, request, pDomainName);
+ PKIX_NULLCHECK_FOUR(gName, arena, request, pDomainName);
- PKIX_TOSTRING(generalName, &locationString, plContext,
+ PKIX_TOSTRING(gName, &locationString, plContext,
PKIX_GENERALNAMETOSTRINGFAILED);
PKIX_CHECK(PKIX_PL_String_GetEncoded
diff --git a/security/nss/lib/nss/nss.h b/security/nss/lib/nss/nss.h
index d62f4957b..efb0827c5 100644
--- a/security/nss/lib/nss/nss.h
+++ b/security/nss/lib/nss/nss.h
@@ -22,10 +22,10 @@
* The format of the version string should be
* "<major version>.<minor version>[.<patch level>[.<build number>]][ <ECC>][ <Beta>]"
*/
-#define NSS_VERSION "3.36.4" _NSS_CUSTOMIZED
+#define NSS_VERSION "3.38" _NSS_CUSTOMIZED
#define NSS_VMAJOR 3
-#define NSS_VMINOR 36
-#define NSS_VPATCH 4
+#define NSS_VMINOR 38
+#define NSS_VPATCH 0
#define NSS_VBUILD 0
#define NSS_BETA PR_FALSE
diff --git a/security/nss/lib/pk11wrap/pk11akey.c b/security/nss/lib/pk11wrap/pk11akey.c
index c45901ec3..346e473a9 100644
--- a/security/nss/lib/pk11wrap/pk11akey.c
+++ b/security/nss/lib/pk11wrap/pk11akey.c
@@ -804,12 +804,30 @@ PK11_MakePrivKey(PK11SlotInfo *slot, KeyType keyType,
/* don't know? look it up */
if (keyType == nullKey) {
CK_KEY_TYPE pk11Type = CKK_RSA;
+ SECItem info;
pk11Type = PK11_ReadULongAttribute(slot, privID, CKA_KEY_TYPE);
isTemp = (PRBool)!PK11_HasAttributeSet(slot, privID, CKA_TOKEN, PR_FALSE);
switch (pk11Type) {
case CKK_RSA:
keyType = rsaKey;
+ /* determine RSA key type from the CKA_PUBLIC_KEY_INFO if present */
+ rv = PK11_ReadAttribute(slot, privID, CKA_PUBLIC_KEY_INFO, NULL, &info);
+ if (rv == SECSuccess) {
+ CERTSubjectPublicKeyInfo *spki;
+
+ spki = SECKEY_DecodeDERSubjectPublicKeyInfo(&info);
+ if (spki) {
+ SECOidTag tag;
+
+ tag = SECOID_GetAlgorithmTag(&spki->algorithm);
+ if (tag == SEC_OID_PKCS1_RSA_PSS_SIGNATURE)
+ keyType = rsaPssKey;
+ SECKEY_DestroySubjectPublicKeyInfo(spki);
+ }
+ SECITEM_FreeItem(&info, PR_FALSE);
+ }
+
break;
case CKK_DSA:
keyType = dsaKey;
diff --git a/security/nss/lib/pk11wrap/pk11pars.c b/security/nss/lib/pk11wrap/pk11pars.c
index fc30222b3..c165e1ef2 100644
--- a/security/nss/lib/pk11wrap/pk11pars.c
+++ b/security/nss/lib/pk11wrap/pk11pars.c
@@ -547,16 +547,16 @@ secmod_applyCryptoPolicy(const char *policyString,
for (i = 0; i < PR_ARRAY_SIZE(algOptList); i++) {
const oidValDef *algOpt = &algOptList[i];
unsigned name_size = algOpt->name_size;
- PRBool newValue = PR_FALSE;
+ PRBool newOption = PR_FALSE;
if ((length >= name_size) && (cipher[name_size] == '/')) {
- newValue = PR_TRUE;
+ newOption = PR_TRUE;
}
- if ((newValue || algOpt->name_size == length) &&
+ if ((newOption || algOpt->name_size == length) &&
PORT_Strncasecmp(algOpt->name, cipher, name_size) == 0) {
PRUint32 value = algOpt->val;
PRUint32 enable, disable;
- if (newValue) {
+ if (newOption) {
value = secmod_parsePolicyValue(&cipher[name_size] + 1,
length - name_size - 1);
}
diff --git a/security/nss/lib/pkcs12/p12e.c b/security/nss/lib/pkcs12/p12e.c
index 4a21d8955..c42c4d2e2 100644
--- a/security/nss/lib/pkcs12/p12e.c
+++ b/security/nss/lib/pkcs12/p12e.c
@@ -884,7 +884,9 @@ sec_PKCS12AddAttributeToBag(SEC_PKCS12ExportContext *p12ctxt,
unsigned int nItems = 0;
SECStatus rv;
- if (!safeBag || !p12ctxt) {
+ PORT_Assert(p12ctxt->arena == safeBag->arena);
+ if (!safeBag || !p12ctxt || p12ctxt->arena != safeBag->arena) {
+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
@@ -1589,6 +1591,7 @@ sec_pkcs12_encoder_start_context(SEC_PKCS12ExportContext *p12exp)
params = PK11_CreatePBEParams(salt, &pwd,
NSS_PBE_DEFAULT_ITERATION_COUNT);
SECITEM_ZfreeItem(salt, PR_TRUE);
+ salt = NULL;
SECITEM_ZfreeItem(&pwd, PR_FALSE);
/* get the PBA Mechanism to generate the key */
diff --git a/security/nss/lib/pkcs7/p7decode.c b/security/nss/lib/pkcs7/p7decode.c
index 4f17b8e84..ba51955ab 100644
--- a/security/nss/lib/pkcs7/p7decode.c
+++ b/security/nss/lib/pkcs7/p7decode.c
@@ -1596,7 +1596,6 @@ sec_pkcs7_verify_signature(SEC_PKCS7ContentInfo *cinfo,
} else {
SECItem *sig;
SECItem holder;
- SECStatus rv;
/*
* No authenticated attributes.
diff --git a/security/nss/lib/pki/pki3hack.c b/security/nss/lib/pki/pki3hack.c
index fb3110a23..fab3a7a02 100644
--- a/security/nss/lib/pki/pki3hack.c
+++ b/security/nss/lib/pki/pki3hack.c
@@ -1143,8 +1143,8 @@ STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust)
(PRBool)(trust->sslFlags & CERTDB_GOVT_APPROVED_CA);
if (c->object.cryptoContext != NULL) {
/* The cert is in a context, set the trust there */
- NSSCryptoContext *cc = c->object.cryptoContext;
- nssrv = nssCryptoContext_ImportTrust(cc, nssTrust);
+ NSSCryptoContext *cctx = c->object.cryptoContext;
+ nssrv = nssCryptoContext_ImportTrust(cctx, nssTrust);
if (nssrv != PR_SUCCESS) {
goto done;
}
diff --git a/security/nss/lib/smime/cmsrecinfo.c b/security/nss/lib/smime/cmsrecinfo.c
index 2efb6b1f2..8cab288d2 100644
--- a/security/nss/lib/smime/cmsrecinfo.c
+++ b/security/nss/lib/smime/cmsrecinfo.c
@@ -82,7 +82,7 @@ nss_cmsrecipientinfo_create(NSSCMSMessage *cmsg,
if (DERinput) {
/* decode everything from DER */
SECItem newinput;
- SECStatus rv = SECITEM_CopyItem(poolp, &newinput, DERinput);
+ rv = SECITEM_CopyItem(poolp, &newinput, DERinput);
if (SECSuccess != rv)
goto loser;
rv = SEC_QuickDERDecodeItem(poolp, ri, NSSCMSRecipientInfoTemplate, &newinput);
diff --git a/security/nss/lib/softoken/legacydb/pcertdb.c b/security/nss/lib/softoken/legacydb/pcertdb.c
index 2e8b650ee..47778190d 100644
--- a/security/nss/lib/softoken/legacydb/pcertdb.c
+++ b/security/nss/lib/softoken/legacydb/pcertdb.c
@@ -2577,14 +2577,13 @@ ReadDBSubjectEntry(NSSLOWCERTCertDBHandle *handle, SECItem *derSubject)
SECItem dbentry;
SECStatus rv;
+ PORT_InitCheapArena(&tmpArena, DER_DEFAULT_CHUNKSIZE);
arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
if (arena == NULL) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
- PORT_InitCheapArena(&tmpArena, DER_DEFAULT_CHUNKSIZE);
-
entry = (certDBEntrySubject *)PORT_ArenaAlloc(arena,
sizeof(certDBEntrySubject));
if (entry == NULL) {
diff --git a/security/nss/lib/softoken/lowkey.c b/security/nss/lib/softoken/lowkey.c
index 295d55f40..a28a3a55e 100644
--- a/security/nss/lib/softoken/lowkey.c
+++ b/security/nss/lib/softoken/lowkey.c
@@ -45,6 +45,23 @@ const SEC_ASN1Template nsslowkey_PrivateKeyInfoTemplate[] = {
{ 0 }
};
+const SEC_ASN1Template nsslowkey_SubjectPublicKeyInfoTemplate[] = {
+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(NSSLOWKEYSubjectPublicKeyInfo) },
+ { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
+ offsetof(NSSLOWKEYSubjectPublicKeyInfo, algorithm),
+ SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
+ { SEC_ASN1_BIT_STRING,
+ offsetof(NSSLOWKEYSubjectPublicKeyInfo, subjectPublicKey) },
+ { 0 }
+};
+
+const SEC_ASN1Template nsslowkey_RSAPublicKeyTemplate[] = {
+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(NSSLOWKEYPublicKey) },
+ { SEC_ASN1_INTEGER, offsetof(NSSLOWKEYPublicKey, u.rsa.modulus) },
+ { SEC_ASN1_INTEGER, offsetof(NSSLOWKEYPublicKey, u.rsa.publicExponent) },
+ { 0 }
+};
+
const SEC_ASN1Template nsslowkey_PQGParamsTemplate[] = {
{ SEC_ASN1_SEQUENCE, 0, NULL, sizeof(PQGParams) },
{ SEC_ASN1_INTEGER, offsetof(PQGParams, prime) },
@@ -135,6 +152,13 @@ prepare_low_rsa_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
}
void
+prepare_low_rsa_pub_key_for_asn1(NSSLOWKEYPublicKey *key)
+{
+ key->u.rsa.modulus.type = siUnsignedInteger;
+ key->u.rsa.publicExponent.type = siUnsignedInteger;
+}
+
+void
prepare_low_pqg_params_for_asn1(PQGParams *params)
{
params->prime.type = siUnsignedInteger;
diff --git a/security/nss/lib/softoken/lowkeyi.h b/security/nss/lib/softoken/lowkeyi.h
index f9ba3a75f..e599f01fa 100644
--- a/security/nss/lib/softoken/lowkeyi.h
+++ b/security/nss/lib/softoken/lowkeyi.h
@@ -27,6 +27,7 @@ extern void prepare_low_dsa_priv_key_export_for_asn1(NSSLOWKEYPrivateKey *key);
extern void prepare_low_dh_priv_key_for_asn1(NSSLOWKEYPrivateKey *key);
extern void prepare_low_ec_priv_key_for_asn1(NSSLOWKEYPrivateKey *key);
extern void prepare_low_ecparams_for_asn1(ECParams *params);
+extern void prepare_low_rsa_pub_key_for_asn1(NSSLOWKEYPublicKey *key);
/*
** Destroy a private key object.
diff --git a/security/nss/lib/softoken/lowkeyti.h b/security/nss/lib/softoken/lowkeyti.h
index c048b33e7..7e77592c5 100644
--- a/security/nss/lib/softoken/lowkeyti.h
+++ b/security/nss/lib/softoken/lowkeyti.h
@@ -25,6 +25,8 @@ extern const SEC_ASN1Template nsslowkey_ECPrivateKeyTemplate[];
extern const SEC_ASN1Template nsslowkey_PrivateKeyInfoTemplate[];
extern const SEC_ASN1Template nsslowkey_EncryptedPrivateKeyInfoTemplate[];
+extern const SEC_ASN1Template nsslowkey_SubjectPublicKeyInfoTemplate[];
+extern const SEC_ASN1Template nsslowkey_RSAPublicKeyTemplate[];
/*
* PKCS #8 attributes
@@ -48,6 +50,13 @@ struct NSSLOWKEYPrivateKeyInfoStr {
typedef struct NSSLOWKEYPrivateKeyInfoStr NSSLOWKEYPrivateKeyInfo;
#define NSSLOWKEY_PRIVATE_KEY_INFO_VERSION 0 /* what we *create* */
+struct NSSLOWKEYSubjectPublicKeyInfoStr {
+ PLArenaPool *arena;
+ SECAlgorithmID algorithm;
+ SECItem subjectPublicKey;
+};
+typedef struct NSSLOWKEYSubjectPublicKeyInfoStr NSSLOWKEYSubjectPublicKeyInfo;
+
typedef enum {
NSSLOWKEYNullKey = 0,
NSSLOWKEYRSAKey = 1,
diff --git a/security/nss/lib/softoken/lowpbe.c b/security/nss/lib/softoken/lowpbe.c
index 0a47804bf..4a101c68c 100644
--- a/security/nss/lib/softoken/lowpbe.c
+++ b/security/nss/lib/softoken/lowpbe.c
@@ -1073,15 +1073,15 @@ sec_pkcs5_rc2(SECItem *key, SECItem *iv, SECItem *src, PRBool dummy,
}
if (encrypt != PR_FALSE) {
- void *dummy;
+ void *v;
- dummy = CBC_PadBuffer(NULL, dup_src->data,
- dup_src->len, &dup_src->len, 8 /* RC2_BLOCK_SIZE */);
- if (dummy == NULL) {
+ v = CBC_PadBuffer(NULL, dup_src->data,
+ dup_src->len, &dup_src->len, 8 /* RC2_BLOCK_SIZE */);
+ if (v == NULL) {
SECITEM_FreeItem(dup_src, PR_TRUE);
return NULL;
}
- dup_src->data = (unsigned char *)dummy;
+ dup_src->data = (unsigned char *)v;
}
dest = (SECItem *)PORT_ZAlloc(sizeof(SECItem));
diff --git a/security/nss/lib/softoken/pkcs11.c b/security/nss/lib/softoken/pkcs11.c
index 77882a274..34f25a9d0 100644
--- a/security/nss/lib/softoken/pkcs11.c
+++ b/security/nss/lib/softoken/pkcs11.c
@@ -1343,7 +1343,6 @@ sftk_handleSecretKeyObject(SFTKSession *session, SFTKObject *object,
if (sftk_isTrue(object, CKA_TOKEN)) {
SFTKSlot *slot = session->slot;
SFTKDBHandle *keyHandle = sftk_getKeyDB(slot);
- CK_RV crv;
if (keyHandle == NULL) {
return CKR_TOKEN_WRITE_PROTECTED;
@@ -3807,12 +3806,12 @@ NSC_SetPIN(CK_SESSION_HANDLE hSession, CK_CHAR_PTR pOldPin,
PZ_Unlock(slot->slotLock);
/* Reset login flags. */
if (ulNewLen == 0) {
- PRBool tokenRemoved = PR_FALSE;
PZ_Lock(slot->slotLock);
slot->isLoggedIn = PR_FALSE;
slot->ssoLoggedIn = PR_FALSE;
PZ_Unlock(slot->slotLock);
+ tokenRemoved = PR_FALSE;
rv = sftkdb_CheckPassword(handle, "", &tokenRemoved);
if (tokenRemoved) {
sftk_CloseAllSessions(slot, PR_FALSE);
@@ -4422,6 +4421,44 @@ NSC_GetObjectSize(CK_SESSION_HANDLE hSession,
return CKR_OK;
}
+static CK_RV
+nsc_GetTokenAttributeValue(SFTKSession *session, CK_OBJECT_HANDLE hObject,
+ CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
+{
+ SFTKSlot *slot = sftk_SlotFromSession(session);
+ SFTKDBHandle *dbHandle = sftk_getDBForTokenObject(slot, hObject);
+ SFTKDBHandle *keydb = NULL;
+ CK_RV crv;
+
+ if (dbHandle == NULL) {
+ return CKR_OBJECT_HANDLE_INVALID;
+ }
+
+ crv = sftkdb_GetAttributeValue(dbHandle, hObject, pTemplate, ulCount);
+
+ /* make sure we don't export any sensitive information */
+ keydb = sftk_getKeyDB(slot);
+ if (dbHandle == keydb) {
+ CK_ULONG i;
+ for (i = 0; i < ulCount; i++) {
+ if (sftk_isSensitive(pTemplate[i].type, CKO_PRIVATE_KEY)) {
+ crv = CKR_ATTRIBUTE_SENSITIVE;
+ if (pTemplate[i].pValue && (pTemplate[i].ulValueLen != -1)) {
+ PORT_Memset(pTemplate[i].pValue, 0,
+ pTemplate[i].ulValueLen);
+ }
+ pTemplate[i].ulValueLen = -1;
+ }
+ }
+ }
+
+ sftk_freeDB(dbHandle);
+ if (keydb) {
+ sftk_freeDB(keydb);
+ }
+ return crv;
+}
+
/* NSC_GetAttributeValue obtains the value of one or more object attributes. */
CK_RV
NSC_GetAttributeValue(CK_SESSION_HANDLE hSession,
@@ -4450,37 +4487,8 @@ NSC_GetAttributeValue(CK_SESSION_HANDLE hSession,
/* short circuit everything for token objects */
if (sftk_isToken(hObject)) {
- SFTKSlot *slot = sftk_SlotFromSession(session);
- SFTKDBHandle *dbHandle = sftk_getDBForTokenObject(slot, hObject);
- SFTKDBHandle *keydb = NULL;
-
- if (dbHandle == NULL) {
- sftk_FreeSession(session);
- return CKR_OBJECT_HANDLE_INVALID;
- }
-
- crv = sftkdb_GetAttributeValue(dbHandle, hObject, pTemplate, ulCount);
-
- /* make sure we don't export any sensitive information */
- keydb = sftk_getKeyDB(slot);
- if (dbHandle == keydb) {
- for (i = 0; i < (int)ulCount; i++) {
- if (sftk_isSensitive(pTemplate[i].type, CKO_PRIVATE_KEY)) {
- crv = CKR_ATTRIBUTE_SENSITIVE;
- if (pTemplate[i].pValue && (pTemplate[i].ulValueLen != -1)) {
- PORT_Memset(pTemplate[i].pValue, 0,
- pTemplate[i].ulValueLen);
- }
- pTemplate[i].ulValueLen = -1;
- }
- }
- }
-
+ crv = nsc_GetTokenAttributeValue(session, hObject, pTemplate, ulCount);
sftk_FreeSession(session);
- sftk_freeDB(dbHandle);
- if (keydb) {
- sftk_freeDB(keydb);
- }
return crv;
}
diff --git a/security/nss/lib/softoken/pkcs11c.c b/security/nss/lib/softoken/pkcs11c.c
index d675d7331..385d3c144 100644
--- a/security/nss/lib/softoken/pkcs11c.c
+++ b/security/nss/lib/softoken/pkcs11c.c
@@ -5324,7 +5324,52 @@ sftk_PackagePrivateKey(SFTKObject *key, CK_RV *crvp)
prepare_low_rsa_priv_key_for_asn1(lk);
dummy = SEC_ASN1EncodeItem(arena, &pki->privateKey, lk,
nsslowkey_RSAPrivateKeyTemplate);
- algorithm = SEC_OID_PKCS1_RSA_ENCRYPTION;
+
+ /* determine RSA key type from the CKA_PUBLIC_KEY_INFO if present */
+ attribute = sftk_FindAttribute(key, CKA_PUBLIC_KEY_INFO);
+ if (attribute) {
+ NSSLOWKEYSubjectPublicKeyInfo *publicKeyInfo;
+ SECItem spki;
+
+ spki.data = attribute->attrib.pValue;
+ spki.len = attribute->attrib.ulValueLen;
+
+ publicKeyInfo = PORT_ArenaZAlloc(arena,
+ sizeof(NSSLOWKEYSubjectPublicKeyInfo));
+ if (!publicKeyInfo) {
+ sftk_FreeAttribute(attribute);
+ *crvp = CKR_HOST_MEMORY;
+ rv = SECFailure;
+ goto loser;
+ }
+ rv = SEC_QuickDERDecodeItem(arena, publicKeyInfo,
+ nsslowkey_SubjectPublicKeyInfoTemplate,
+ &spki);
+ if (rv != SECSuccess) {
+ sftk_FreeAttribute(attribute);
+ *crvp = CKR_KEY_TYPE_INCONSISTENT;
+ goto loser;
+ }
+ algorithm = SECOID_GetAlgorithmTag(&publicKeyInfo->algorithm);
+ if (algorithm != SEC_OID_PKCS1_RSA_ENCRYPTION &&
+ algorithm != SEC_OID_PKCS1_RSA_PSS_SIGNATURE) {
+ sftk_FreeAttribute(attribute);
+ rv = SECFailure;
+ *crvp = CKR_KEY_TYPE_INCONSISTENT;
+ goto loser;
+ }
+ param = SECITEM_DupItem(&publicKeyInfo->algorithm.parameters);
+ if (!param) {
+ sftk_FreeAttribute(attribute);
+ rv = SECFailure;
+ *crvp = CKR_HOST_MEMORY;
+ goto loser;
+ }
+ sftk_FreeAttribute(attribute);
+ } else {
+ /* default to PKCS #1 */
+ algorithm = SEC_OID_PKCS1_RSA_ENCRYPTION;
+ }
break;
case NSSLOWKEYDSAKey:
prepare_low_dsa_priv_key_export_for_asn1(lk);
@@ -5803,6 +5848,53 @@ sftk_unwrapPrivateKey(SFTKObject *key, SECItem *bpki)
break;
}
+ if (crv != CKR_OK) {
+ goto loser;
+ }
+
+ /* For RSA-PSS, record the original algorithm parameters so
+ * they can be encrypted altoghether when wrapping */
+ if (SECOID_GetAlgorithmTag(&pki->algorithm) == SEC_OID_PKCS1_RSA_PSS_SIGNATURE) {
+ NSSLOWKEYSubjectPublicKeyInfo spki;
+ NSSLOWKEYPublicKey pubk;
+ SECItem *publicKeyInfo;
+
+ memset(&spki, 0, sizeof(NSSLOWKEYSubjectPublicKeyInfo));
+ rv = SECOID_CopyAlgorithmID(arena, &spki.algorithm, &pki->algorithm);
+ if (rv != SECSuccess) {
+ crv = CKR_HOST_MEMORY;
+ goto loser;
+ }
+
+ prepare_low_rsa_pub_key_for_asn1(&pubk);
+
+ rv = SECITEM_CopyItem(arena, &pubk.u.rsa.modulus, &lpk->u.rsa.modulus);
+ if (rv != SECSuccess) {
+ crv = CKR_HOST_MEMORY;
+ goto loser;
+ }
+ rv = SECITEM_CopyItem(arena, &pubk.u.rsa.publicExponent, &lpk->u.rsa.publicExponent);
+ if (rv != SECSuccess) {
+ crv = CKR_HOST_MEMORY;
+ goto loser;
+ }
+
+ if (SEC_ASN1EncodeItem(arena, &spki.subjectPublicKey,
+ &pubk, nsslowkey_RSAPublicKeyTemplate) == NULL) {
+ crv = CKR_HOST_MEMORY;
+ goto loser;
+ }
+
+ publicKeyInfo = SEC_ASN1EncodeItem(arena, NULL,
+ &spki, nsslowkey_SubjectPublicKeyInfoTemplate);
+ if (!publicKeyInfo) {
+ crv = CKR_HOST_MEMORY;
+ goto loser;
+ }
+ crv = sftk_AddAttributeType(key, CKA_PUBLIC_KEY_INFO,
+ sftk_item_expand(publicKeyInfo));
+ }
+
loser:
if (lpk) {
nsslowkey_DestroyPrivateKey(lpk);
@@ -7575,13 +7667,13 @@ NSC_DeriveKey(CK_SESSION_HANDLE hSession,
(const CK_NSS_HKDFParams *)pMechanism->pParameter;
const SECHashObject *rawHash;
unsigned hashLen;
- CK_BYTE buf[HASH_LENGTH_MAX];
+ CK_BYTE hashbuf[HASH_LENGTH_MAX];
CK_BYTE *prk; /* psuedo-random key */
CK_ULONG prkLen;
CK_BYTE *okm; /* output keying material */
rawHash = HASH_GetRawHashObject(hashType);
- if (rawHash == NULL || rawHash->length > sizeof buf) {
+ if (rawHash == NULL || rawHash->length > sizeof(hashbuf)) {
crv = CKR_FUNCTION_FAILED;
break;
}
@@ -7615,7 +7707,7 @@ NSC_DeriveKey(CK_SESSION_HANDLE hSession,
saltLen = params->ulSaltLen;
if (salt == NULL) {
saltLen = hashLen;
- salt = buf;
+ salt = hashbuf;
memset(salt, 0, saltLen);
}
hmac = HMAC_Create(rawHash, salt, saltLen, isFIPS);
@@ -7626,10 +7718,10 @@ NSC_DeriveKey(CK_SESSION_HANDLE hSession,
HMAC_Begin(hmac);
HMAC_Update(hmac, (const unsigned char *)att->attrib.pValue,
att->attrib.ulValueLen);
- HMAC_Finish(hmac, buf, &bufLen, sizeof(buf));
+ HMAC_Finish(hmac, hashbuf, &bufLen, sizeof(hashbuf));
HMAC_Destroy(hmac, PR_TRUE);
PORT_Assert(bufLen == rawHash->length);
- prk = buf;
+ prk = hashbuf;
prkLen = bufLen;
} else {
/* PRK = base key value */
@@ -7646,24 +7738,24 @@ NSC_DeriveKey(CK_SESSION_HANDLE hSession,
* key material = T(1) | ... | T(n)
*/
HMACContext *hmac;
- CK_BYTE i;
+ CK_BYTE bi;
unsigned iterations = PR_ROUNDUP(keySize, hashLen) / hashLen;
hmac = HMAC_Create(rawHash, prk, prkLen, isFIPS);
if (hmac == NULL) {
crv = CKR_HOST_MEMORY;
break;
}
- for (i = 1; i <= iterations; ++i) {
+ for (bi = 1; bi <= iterations; ++bi) {
unsigned len;
HMAC_Begin(hmac);
- if (i > 1) {
- HMAC_Update(hmac, key_block + ((i - 2) * hashLen), hashLen);
+ if (bi > 1) {
+ HMAC_Update(hmac, key_block + ((bi - 2) * hashLen), hashLen);
}
if (params->ulInfoLen != 0) {
HMAC_Update(hmac, params->pInfo, params->ulInfoLen);
}
- HMAC_Update(hmac, &i, 1);
- HMAC_Finish(hmac, key_block + ((i - 1) * hashLen), &len,
+ HMAC_Update(hmac, &bi, 1);
+ HMAC_Finish(hmac, key_block + ((bi - 1) * hashLen), &len,
hashLen);
PORT_Assert(len == hashLen);
}
diff --git a/security/nss/lib/softoken/pkcs11u.c b/security/nss/lib/softoken/pkcs11u.c
index 27e411759..7b5fe732f 100644
--- a/security/nss/lib/softoken/pkcs11u.c
+++ b/security/nss/lib/softoken/pkcs11u.c
@@ -1193,7 +1193,7 @@ sftk_DeleteObject(SFTKSession *session, SFTKObject *object)
/* Handle Token case */
if (so && so->session) {
- SFTKSession *session = so->session;
+ session = so->session;
PZ_Lock(session->objectLock);
sftkqueue_delete(&so->sessionList, 0, session->objects, 0);
PZ_Unlock(session->objectLock);
@@ -1269,7 +1269,7 @@ static const CK_ULONG ecPubKeyAttrsCount =
static const CK_ATTRIBUTE_TYPE commonPrivKeyAttrs[] = {
CKA_DECRYPT, CKA_SIGN, CKA_SIGN_RECOVER, CKA_UNWRAP, CKA_SUBJECT,
- CKA_SENSITIVE, CKA_EXTRACTABLE, CKA_NETSCAPE_DB
+ CKA_SENSITIVE, CKA_EXTRACTABLE, CKA_NETSCAPE_DB, CKA_PUBLIC_KEY_INFO
};
static const CK_ULONG commonPrivKeyAttrsCount =
sizeof(commonPrivKeyAttrs) / sizeof(commonPrivKeyAttrs[0]);
diff --git a/security/nss/lib/softoken/sdb.c b/security/nss/lib/softoken/sdb.c
index 96717cb26..fb897d68c 100644
--- a/security/nss/lib/softoken/sdb.c
+++ b/security/nss/lib/softoken/sdb.c
@@ -37,6 +37,10 @@
#elif defined(XP_UNIX)
#include <unistd.h>
#endif
+#if defined(LINUX) && !defined(ANDROID)
+#include <linux/magic.h>
+#include <sys/vfs.h>
+#endif
#include "utilpars.h"
#ifdef SQLITE_UNSAFE_THREADS
@@ -154,7 +158,8 @@ static const CK_ATTRIBUTE_TYPE known_attributes[] = {
CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_IPSEC_END_SYSTEM,
CKA_TRUST_IPSEC_TUNNEL, CKA_TRUST_IPSEC_USER, CKA_TRUST_TIME_STAMPING,
CKA_TRUST_STEP_UP_APPROVED, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH,
- CKA_NETSCAPE_DB, CKA_NETSCAPE_TRUST, CKA_NSS_OVERRIDE_EXTENSIONS
+ CKA_NETSCAPE_DB, CKA_NETSCAPE_TRUST, CKA_NSS_OVERRIDE_EXTENSIONS,
+ CKA_PUBLIC_KEY_INFO
};
static int known_attributes_size = sizeof(known_attributes) /
@@ -643,13 +648,18 @@ static int
sdb_openDB(const char *name, sqlite3 **sqlDB, int flags)
{
int sqlerr;
- /*
- * in sqlite3 3.5.0, there is a new open call that allows us
- * to specify read only. Most new OS's are still on 3.3.x (including
- * NSS's internal version and the version shipped with Firefox).
- */
+ int openFlags;
+
*sqlDB = NULL;
- sqlerr = sqlite3_open(name, sqlDB);
+
+ if (flags & SDB_RDONLY) {
+ openFlags = SQLITE_OPEN_READONLY;
+ } else {
+ openFlags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
+ }
+
+ /* Requires SQLite 3.5.0 or newer. */
+ sqlerr = sqlite3_open_v2(name, sqlDB, openFlags, NULL);
if (sqlerr != SQLITE_OK) {
return sqlerr;
}
@@ -1757,6 +1767,8 @@ sdb_init(char *dbname, char *table, sdbDataType type, int *inUpdate,
PRIntervalTime now = 0;
char *env;
PRBool enableCache = PR_FALSE;
+ PRBool checkFSType = PR_FALSE;
+ PRBool measureSpeed = PR_FALSE;
PRBool create;
int flags = inFlags & 0x7;
@@ -1917,11 +1929,48 @@ sdb_init(char *dbname, char *table, sdbDataType type, int *inUpdate,
env = PR_GetEnvSecure("NSS_SDB_USE_CACHE");
- if (!env || PORT_Strcasecmp(env, "no") == 0) {
- enableCache = PR_FALSE;
+ /* Variables enableCache, checkFSType, measureSpeed are PR_FALSE by default,
+ * which is the expected behavior for NSS_SDB_USE_CACHE="no".
+ * We don't need to check for "no" here. */
+ if (!env) {
+ /* By default, with no variable set, we avoid expensive measuring for
+ * most FS types. We start with inexpensive FS type checking, and
+ * might perform measuring for some types. */
+ checkFSType = PR_TRUE;
} else if (PORT_Strcasecmp(env, "yes") == 0) {
enableCache = PR_TRUE;
- } else {
+ } else if (PORT_Strcasecmp(env, "no") != 0) { /* not "no" => "auto" */
+ measureSpeed = PR_TRUE;
+ }
+
+ if (checkFSType) {
+#if defined(LINUX) && !defined(ANDROID)
+ struct statfs statfs_s;
+ if (statfs(dbname, &statfs_s) == 0) {
+ switch (statfs_s.f_type) {
+ case SMB_SUPER_MAGIC:
+ case 0xff534d42: /* CIFS_MAGIC_NUMBER */
+ case NFS_SUPER_MAGIC:
+ /* We assume these are slow. */
+ enableCache = PR_TRUE;
+ break;
+ case CODA_SUPER_MAGIC:
+ case 0x65735546: /* FUSE_SUPER_MAGIC */
+ case NCP_SUPER_MAGIC:
+ /* It's uncertain if this FS is fast or slow.
+ * It seems reasonable to perform slow measuring for users
+ * with questionable FS speed. */
+ measureSpeed = PR_TRUE;
+ break;
+ case AFS_SUPER_MAGIC: /* Already implements caching. */
+ default:
+ break;
+ }
+ }
+#endif
+ }
+
+ if (measureSpeed) {
char *tempDir = NULL;
PRUint32 tempOps = 0;
/*
diff --git a/security/nss/lib/softoken/sftkdb.c b/security/nss/lib/softoken/sftkdb.c
index 2ae084068..409c910f4 100644
--- a/security/nss/lib/softoken/sftkdb.c
+++ b/security/nss/lib/softoken/sftkdb.c
@@ -1591,7 +1591,8 @@ static const CK_ATTRIBUTE_TYPE known_attributes[] = {
CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_IPSEC_END_SYSTEM,
CKA_TRUST_IPSEC_TUNNEL, CKA_TRUST_IPSEC_USER, CKA_TRUST_TIME_STAMPING,
CKA_TRUST_STEP_UP_APPROVED, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH,
- CKA_NETSCAPE_DB, CKA_NETSCAPE_TRUST, CKA_NSS_OVERRIDE_EXTENSIONS
+ CKA_NETSCAPE_DB, CKA_NETSCAPE_TRUST, CKA_NSS_OVERRIDE_EXTENSIONS,
+ CKA_PUBLIC_KEY_INFO
};
static unsigned int known_attributes_size = sizeof(known_attributes) /
diff --git a/security/nss/lib/softoken/sftkpars.c b/security/nss/lib/softoken/sftkpars.c
index e972fe854..5e96a1c04 100644
--- a/security/nss/lib/softoken/sftkpars.c
+++ b/security/nss/lib/softoken/sftkpars.c
@@ -162,7 +162,7 @@ sftk_parseParameters(char *param, sftk_parameters *parsed, PRBool isFIPS)
}
if (parsed->tokens == NULL) {
int count = isFIPS ? 1 : 2;
- int index = count - 1;
+ int i = count - 1;
sftk_token_parameters *tokens = NULL;
tokens = (sftk_token_parameters *)
@@ -172,30 +172,30 @@ sftk_parseParameters(char *param, sftk_parameters *parsed, PRBool isFIPS)
}
parsed->tokens = tokens;
parsed->token_count = count;
- tokens[index].slotID = isFIPS ? FIPS_SLOT_ID : PRIVATE_KEY_SLOT_ID;
- tokens[index].certPrefix = certPrefix;
- tokens[index].keyPrefix = keyPrefix;
- tokens[index].minPW = minPW ? atoi(minPW) : 0;
- tokens[index].readOnly = parsed->readOnly;
- tokens[index].noCertDB = parsed->noCertDB;
- tokens[index].noKeyDB = parsed->noCertDB;
- tokens[index].forceOpen = parsed->forceOpen;
- tokens[index].pwRequired = parsed->pwRequired;
- tokens[index].optimizeSpace = parsed->optimizeSpace;
+ tokens[i].slotID = isFIPS ? FIPS_SLOT_ID : PRIVATE_KEY_SLOT_ID;
+ tokens[i].certPrefix = certPrefix;
+ tokens[i].keyPrefix = keyPrefix;
+ tokens[i].minPW = minPW ? atoi(minPW) : 0;
+ tokens[i].readOnly = parsed->readOnly;
+ tokens[i].noCertDB = parsed->noCertDB;
+ tokens[i].noKeyDB = parsed->noCertDB;
+ tokens[i].forceOpen = parsed->forceOpen;
+ tokens[i].pwRequired = parsed->pwRequired;
+ tokens[i].optimizeSpace = parsed->optimizeSpace;
tokens[0].optimizeSpace = parsed->optimizeSpace;
certPrefix = NULL;
keyPrefix = NULL;
if (isFIPS) {
- tokens[index].tokdes = ftokdes;
- tokens[index].updtokdes = pupdtokdes;
- tokens[index].slotdes = fslotdes;
+ tokens[i].tokdes = ftokdes;
+ tokens[i].updtokdes = pupdtokdes;
+ tokens[i].slotdes = fslotdes;
fslotdes = NULL;
ftokdes = NULL;
pupdtokdes = NULL;
} else {
- tokens[index].tokdes = ptokdes;
- tokens[index].updtokdes = pupdtokdes;
- tokens[index].slotdes = pslotdes;
+ tokens[i].tokdes = ptokdes;
+ tokens[i].updtokdes = pupdtokdes;
+ tokens[i].slotdes = pslotdes;
tokens[0].slotID = NETSCAPE_SLOT_ID;
tokens[0].tokdes = tokdes;
tokens[0].slotdes = slotdes;
diff --git a/security/nss/lib/softoken/sftkpwd.c b/security/nss/lib/softoken/sftkpwd.c
index e0d2df9ab..9834d3ba0 100644
--- a/security/nss/lib/softoken/sftkpwd.c
+++ b/security/nss/lib/softoken/sftkpwd.c
@@ -138,12 +138,14 @@ sftkdb_decodeCipherText(SECItem *cipherText, sftkCipherValue *cipherValue)
SFTKDBEncryptedDataInfo edi;
SECStatus rv;
+ PORT_Assert(cipherValue);
+ cipherValue->arena = NULL;
+ cipherValue->param = NULL;
+
arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
if (arena == NULL) {
return SECFailure;
}
- cipherValue->arena = NULL;
- cipherValue->param = NULL;
rv = SEC_QuickDERDecodeItem(arena, &edi, sftkdb_EncryptedDataInfoTemplate,
cipherText);
diff --git a/security/nss/lib/softoken/softkver.h b/security/nss/lib/softoken/softkver.h
index f760ba21d..827bf2e22 100644
--- a/security/nss/lib/softoken/softkver.h
+++ b/security/nss/lib/softoken/softkver.h
@@ -17,10 +17,10 @@
* The format of the version string should be
* "<major version>.<minor version>[.<patch level>[.<build number>]][ <ECC>][ <Beta>]"
*/
-#define SOFTOKEN_VERSION "3.36.4" SOFTOKEN_ECC_STRING
+#define SOFTOKEN_VERSION "3.38" SOFTOKEN_ECC_STRING
#define SOFTOKEN_VMAJOR 3
-#define SOFTOKEN_VMINOR 36
-#define SOFTOKEN_VPATCH 4
+#define SOFTOKEN_VMINOR 38
+#define SOFTOKEN_VPATCH 0
#define SOFTOKEN_VBUILD 0
#define SOFTOKEN_BETA PR_FALSE
diff --git a/security/nss/lib/ssl/SSLerrs.h b/security/nss/lib/ssl/SSLerrs.h
index d3f087544..f01d16583 100644
--- a/security/nss/lib/ssl/SSLerrs.h
+++ b/security/nss/lib/ssl/SSLerrs.h
@@ -374,7 +374,7 @@ ER3(SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY, (SSL_ERROR_BASE + 115),
"SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange handshake message.")
ER3(SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID, (SSL_ERROR_BASE + 116),
- "SSL received invalid NPN extension data.")
+ "SSL received invalid ALPN extension data.")
ER3(SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2, (SSL_ERROR_BASE + 117),
"SSL feature not supported for SSL 2.0 connections.")
@@ -543,3 +543,12 @@ ER3(SSL_ERROR_TOO_MANY_KEY_UPDATES, (SSL_ERROR_BASE + 171),
ER3(SSL_ERROR_HANDSHAKE_FAILED, (SSL_ERROR_BASE + 172),
"SSL handshake has already failed. No more operations possible.")
+
+ER3(SSL_ERROR_BAD_RESUMPTION_TOKEN_ERROR, (SSL_ERROR_BASE + 173),
+ "SSL received an invalid resumption token.")
+
+ER3(SSL_ERROR_RX_MALFORMED_DTLS_ACK, (SSL_ERROR_BASE + 174),
+ "SSL received a malformed DTLS ACK")
+
+ER3(SSL_ERROR_DH_KEY_TOO_LONG, (SSL_ERROR_BASE + 175),
+ "SSL received a DH key share that's too long (>8192 bit).")
diff --git a/security/nss/lib/ssl/dtls13con.c b/security/nss/lib/ssl/dtls13con.c
index aba0f62ab..de6cb47ca 100644
--- a/security/nss/lib/ssl/dtls13con.c
+++ b/security/nss/lib/ssl/dtls13con.c
@@ -11,6 +11,43 @@
#include "sslimpl.h"
#include "sslproto.h"
+SECStatus
+dtls13_InsertCipherTextHeader(const sslSocket *ss, ssl3CipherSpec *cwSpec,
+ sslBuffer *wrBuf, PRBool *needsLength)
+{
+ PRUint32 seq;
+ SECStatus rv;
+
+ /* Avoid using short records for the handshake. We pack multiple records
+ * into the one datagram for the handshake. */
+ if (ss->opt.enableDtlsShortHeader &&
+ cwSpec->epoch != TrafficKeyHandshake) {
+ *needsLength = PR_FALSE;
+ /* The short header is comprised of two octets in the form
+ * 0b001essssssssssss where 'e' is the low bit of the epoch and 's' is
+ * the low 12 bits of the sequence number. */
+ seq = 0x2000 |
+ (((uint64_t)cwSpec->epoch & 1) << 12) |
+ (cwSpec->nextSeqNum & 0xfff);
+ return sslBuffer_AppendNumber(wrBuf, seq, 2);
+ }
+
+ rv = sslBuffer_AppendNumber(wrBuf, content_application_data, 1);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+
+ /* The epoch and sequence number are encoded on 4 octets, with the epoch
+ * consuming the first two bits. */
+ seq = (((uint64_t)cwSpec->epoch & 3) << 30) | (cwSpec->nextSeqNum & 0x3fffffff);
+ rv = sslBuffer_AppendNumber(wrBuf, seq, 4);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+ *needsLength = PR_TRUE;
+ return SECSuccess;
+}
+
/* DTLS 1.3 Record map for ACK processing.
* This represents a single fragment, so a record which includes
* multiple fragments will have one entry for each fragment on the
@@ -82,10 +119,15 @@ dtls13_SendAck(sslSocket *ss)
SECStatus rv = SECSuccess;
PRCList *cursor;
PRInt32 sent;
+ unsigned int offset;
SSL_TRC(10, ("%d: SSL3[%d]: Sending ACK",
SSL_GETPID(), ss->fd));
+ rv = sslBuffer_Skip(&buf, 2, &offset);
+ if (rv != SECSuccess) {
+ goto loser;
+ }
for (cursor = PR_LIST_HEAD(&ss->ssl3.hs.dtlsRcvdHandshake);
cursor != &ss->ssl3.hs.dtlsRcvdHandshake;
cursor = PR_NEXT_LINK(cursor)) {
@@ -99,6 +141,11 @@ dtls13_SendAck(sslSocket *ss)
}
}
+ rv = sslBuffer_InsertLength(&buf, offset, 2);
+ if (rv != SECSuccess) {
+ goto loser;
+ }
+
ssl_GetXmitBufLock(ss);
sent = ssl3_SendRecord(ss, NULL, content_ack,
buf.buf, buf.len, 0);
@@ -364,6 +411,7 @@ dtls13_HandleAck(sslSocket *ss, sslBuffer *databuf)
{
PRUint8 *b = databuf->buf;
PRUint32 l = databuf->len;
+ unsigned int length;
SECStatus rv;
/* Ensure we don't loop. */
@@ -372,10 +420,19 @@ dtls13_HandleAck(sslSocket *ss, sslBuffer *databuf)
PORT_Assert(IS_DTLS(ss));
if (!tls13_MaybeTls13(ss)) {
tls13_FatalError(ss, SSL_ERROR_RX_UNKNOWN_RECORD_TYPE, illegal_parameter);
- return SECSuccess;
+ return SECFailure;
}
SSL_TRC(10, ("%d: SSL3[%d]: Handling ACK", SSL_GETPID(), ss->fd));
+ rv = ssl3_ConsumeHandshakeNumber(ss, &length, 2, &b, &l);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+ if (length != l) {
+ tls13_FatalError(ss, SSL_ERROR_RX_MALFORMED_DTLS_ACK, decode_error);
+ return SECFailure;
+ }
+
while (l > 0) {
PRUint64 seq;
PRCList *cursor;
diff --git a/security/nss/lib/ssl/dtls13con.h b/security/nss/lib/ssl/dtls13con.h
index bf14d3bd2..ca48ef363 100644
--- a/security/nss/lib/ssl/dtls13con.h
+++ b/security/nss/lib/ssl/dtls13con.h
@@ -9,6 +9,10 @@
#ifndef __dtls13con_h_
#define __dtls13con_h_
+SECStatus dtls13_InsertCipherTextHeader(const sslSocket *ss,
+ ssl3CipherSpec *cwSpec,
+ sslBuffer *wrBuf,
+ PRBool *needsLength);
SECStatus dtls13_RememberFragment(sslSocket *ss, PRCList *list,
PRUint32 sequence, PRUint32 offset,
PRUint32 length, DTLSEpoch epoch,
diff --git a/security/nss/lib/ssl/dtlscon.c b/security/nss/lib/ssl/dtlscon.c
index 2f335f924..a82295c66 100644
--- a/security/nss/lib/ssl/dtlscon.c
+++ b/security/nss/lib/ssl/dtlscon.c
@@ -724,13 +724,16 @@ dtls_FragmentHandshake(sslSocket *ss, DTLSQueuedMessage *msg)
PORT_Assert(end <= contentLen);
fragmentLen = PR_MIN(end, contentLen) - fragmentOffset;
- /* Reduce to the space remaining in the MTU. Allow for any existing
- * messages, record expansion, and the handshake header. */
+ /* Limit further by the record size limit. Account for the header. */
+ fragmentLen = PR_MIN(fragmentLen,
+ msg->cwSpec->recordSizeLimit - DTLS_HS_HDR_LEN);
+
+ /* Reduce to the space remaining in the MTU. */
fragmentLen = PR_MIN(fragmentLen,
ss->ssl3.mtu - /* MTU estimate. */
- ss->pendingBuf.len - /* Less unsent records. */
+ ss->pendingBuf.len - /* Less any unsent records. */
DTLS_MAX_EXPANSION - /* Allow for expansion. */
- DTLS_HS_HDR_LEN); /* + handshake header. */
+ DTLS_HS_HDR_LEN); /* And the handshake header. */
PORT_Assert(fragmentLen > 0 || fragmentOffset == 0);
/* Make totally sure that we will fit in the buffer. This should be
@@ -776,7 +779,7 @@ dtls_FragmentHandshake(sslSocket *ss, DTLSQueuedMessage *msg)
rv = dtls13_RememberFragment(ss, &ss->ssl3.hs.dtlsSentHandshake,
msgSeq, fragmentOffset, fragmentLen,
msg->cwSpec->epoch,
- msg->cwSpec->seqNum);
+ msg->cwSpec->nextSeqNum);
if (rv != SECSuccess) {
return SECFailure;
}
@@ -1319,6 +1322,107 @@ DTLS_GetHandshakeTimeout(PRFileDesc *socket, PRIntervalTime *timeout)
return SECSuccess;
}
+PRBool
+dtls_IsLongHeader(SSL3ProtocolVersion version, PRUint8 firstOctet)
+{
+#ifndef UNSAFE_FUZZER_MODE
+ return version < SSL_LIBRARY_VERSION_TLS_1_3 ||
+ firstOctet == content_handshake ||
+ firstOctet == content_ack ||
+ firstOctet == content_alert;
+#else
+ return PR_TRUE;
+#endif
+}
+
+DTLSEpoch
+dtls_ReadEpoch(const ssl3CipherSpec *crSpec, const PRUint8 *hdr)
+{
+ DTLSEpoch epoch;
+ DTLSEpoch maxEpoch;
+ DTLSEpoch partial;
+
+ if (dtls_IsLongHeader(crSpec->version, hdr[0])) {
+ return ((DTLSEpoch)hdr[3] << 8) | hdr[4];
+ }
+
+ /* A lot of how we recover the epoch here will depend on how we plan to
+ * manage KeyUpdate. In the case that we decide to install a new read spec
+ * as a KeyUpdate is handled, crSpec will always be the highest epoch we can
+ * possibly receive. That makes this easier to manage. */
+ if ((hdr[0] & 0xe0) == 0x20) {
+ /* Use crSpec->epoch, or crSpec->epoch - 1 if the last bit differs. */
+ if (((hdr[0] >> 4) & 1) == (crSpec->epoch & 1)) {
+ return crSpec->epoch;
+ }
+ return crSpec->epoch - 1;
+ }
+
+ /* dtls_GatherData should ensure that this works. */
+ PORT_Assert(hdr[0] == content_application_data);
+
+ /* This uses the same method as is used to recover the sequence number in
+ * dtls_ReadSequenceNumber, except that the maximum value is set to the
+ * current epoch. */
+ partial = hdr[1] >> 6;
+ maxEpoch = PR_MAX(crSpec->epoch, 3);
+ epoch = (maxEpoch & 0xfffc) | partial;
+ if (partial > (maxEpoch & 0x03)) {
+ epoch -= 4;
+ }
+ return epoch;
+}
+
+static sslSequenceNumber
+dtls_ReadSequenceNumber(const ssl3CipherSpec *spec, const PRUint8 *hdr)
+{
+ sslSequenceNumber cap;
+ sslSequenceNumber partial;
+ sslSequenceNumber seqNum;
+ sslSequenceNumber mask;
+
+ if (dtls_IsLongHeader(spec->version, hdr[0])) {
+ static const unsigned int seqNumOffset = 5; /* type, version, epoch */
+ static const unsigned int seqNumLength = 6;
+ sslReader r = SSL_READER(hdr + seqNumOffset, seqNumLength);
+ (void)sslRead_ReadNumber(&r, seqNumLength, &seqNum);
+ return seqNum;
+ }
+
+ /* Only the least significant bits of the sequence number is available here.
+ * This recovers the value based on the next expected sequence number.
+ *
+ * This works by determining the maximum possible sequence number, which is
+ * half the range of possible values above the expected next value (the
+ * expected next value is in |spec->seqNum|). Then, the last part of the
+ * sequence number is replaced. If that causes the value to exceed the
+ * maximum, subtract an entire range.
+ */
+ if ((hdr[0] & 0xe0) == 0x20) {
+ /* A 12-bit sequence number. */
+ cap = spec->nextSeqNum + (1ULL << 11);
+ partial = (((sslSequenceNumber)hdr[0] & 0xf) << 8) |
+ (sslSequenceNumber)hdr[1];
+ mask = (1ULL << 12) - 1;
+ } else {
+ /* A 30-bit sequence number. */
+ cap = spec->nextSeqNum + (1ULL << 29);
+ partial = (((sslSequenceNumber)hdr[1] & 0x3f) << 24) |
+ ((sslSequenceNumber)hdr[2] << 16) |
+ ((sslSequenceNumber)hdr[3] << 8) |
+ (sslSequenceNumber)hdr[4];
+ mask = (1ULL << 30) - 1;
+ }
+ seqNum = (cap & ~mask) | partial;
+ /* The second check prevents the value from underflowing if we get a large
+ * gap at the start of a connection, where this subtraction would cause the
+ * sequence number to wrap to near UINT64_MAX. */
+ if ((partial > (cap & mask)) && (seqNum > mask)) {
+ seqNum -= mask + 1;
+ }
+ return seqNum;
+}
+
/*
* DTLS relevance checks:
* Note that this code currently ignores all out-of-epoch packets,
@@ -1336,7 +1440,7 @@ dtls_IsRelevant(sslSocket *ss, const ssl3CipherSpec *spec,
const SSL3Ciphertext *cText,
sslSequenceNumber *seqNumOut)
{
- sslSequenceNumber seqNum = cText->seq_num & RECORD_SEQ_MASK;
+ sslSequenceNumber seqNum = dtls_ReadSequenceNumber(spec, cText->hdr);
if (dtls_RecordGetRecvd(&spec->recvdRecords, seqNum) != 0) {
SSL_TRC(10, ("%d: SSL3[%d]: dtls_IsRelevant, rejecting "
"potentially replayed packet",
diff --git a/security/nss/lib/ssl/dtlscon.h b/security/nss/lib/ssl/dtlscon.h
index d094380f8..45fc069b9 100644
--- a/security/nss/lib/ssl/dtlscon.h
+++ b/security/nss/lib/ssl/dtlscon.h
@@ -41,8 +41,10 @@ extern SSL3ProtocolVersion
dtls_TLSVersionToDTLSVersion(SSL3ProtocolVersion tlsv);
extern SSL3ProtocolVersion
dtls_DTLSVersionToTLSVersion(SSL3ProtocolVersion dtlsv);
+DTLSEpoch dtls_ReadEpoch(const ssl3CipherSpec *crSpec, const PRUint8 *hdr);
extern PRBool dtls_IsRelevant(sslSocket *ss, const ssl3CipherSpec *spec,
const SSL3Ciphertext *cText,
sslSequenceNumber *seqNum);
void dtls_ReceivedFirstMessageInFlight(sslSocket *ss);
+PRBool dtls_IsLongHeader(SSL3ProtocolVersion version, PRUint8 firstOctet);
#endif
diff --git a/security/nss/lib/ssl/ssl.h b/security/nss/lib/ssl/ssl.h
index 25aabbaa2..ecc4f9506 100644
--- a/security/nss/lib/ssl/ssl.h
+++ b/security/nss/lib/ssl/ssl.h
@@ -158,23 +158,18 @@ SSL_IMPORT PRFileDesc *DTLS_ImportFD(PRFileDesc *model, PRFileDesc *fd);
#define SSL_CBC_RANDOM_IV 23
#define SSL_ENABLE_OCSP_STAPLING 24 /* Request OCSP stapling (client) */
-/* SSL_ENABLE_NPN controls whether the NPN extension is enabled for the initial
- * handshake when application layer protocol negotiation is used.
- * SSL_SetNextProtoCallback or SSL_SetNextProtoNego must be used to control the
- * application layer protocol negotiation; otherwise, the NPN extension will
- * not be negotiated. SSL_ENABLE_NPN is currently enabled by default but this
- * may change in future versions.
- */
+/* SSL_ENABLE_NPN is defunct and defaults to false.
+ * Using this option will not have any effect but won't produce an error. */
#define SSL_ENABLE_NPN 25
/* SSL_ENABLE_ALPN controls whether the ALPN extension is enabled for the
* initial handshake when application layer protocol negotiation is used.
- * SSL_SetNextProtoNego (not SSL_SetNextProtoCallback) must be used to control
- * the application layer protocol negotiation; otherwise, the ALPN extension
- * will not be negotiated. ALPN is not negotiated for renegotiation handshakes,
- * even though the ALPN specification defines a way to use ALPN during
- * renegotiations. SSL_ENABLE_ALPN is currently disabled by default, but this
- * may change in future versions.
+ * SSL_SetNextProtoNego or SSL_SetNextProtoCallback can be used to control
+ * the application layer protocol negotiation;
+ * ALPN is not negotiated for renegotiation handshakes, even though the ALPN
+ * specification defines a way to use ALPN during renegotiations.
+ * SSL_ENABLE_ALPN is currently enabled by default, but this may change in
+ * future versions.
*/
#define SSL_ENABLE_ALPN 26
@@ -248,12 +243,45 @@ SSL_IMPORT PRFileDesc *DTLS_ImportFD(PRFileDesc *model, PRFileDesc *fd);
*/
#define SSL_ENABLE_0RTT_DATA 33
+/* Sets a limit to the size of encrypted records (see
+ * draft-ietf-tls-record-limit). This is the value that is advertised to peers,
+ * not a limit on the size of records that will be created. Setting this value
+ * reduces the size of records that will be received (not sent).
+ *
+ * This limit applies to the plaintext, but the records that appear on the wire
+ * will be bigger. This doesn't include record headers, IVs, block cipher
+ * padding, and authentication tags or MACs.
+ *
+ * NSS always advertises the record size limit extension. If this option is not
+ * set, the extension will contain the maximum allowed size for the selected TLS
+ * version (currently this is 16384 or 2^14 for TLS 1.2 and lower and 16385 for
+ * TLS 1.3).
+ *
+ * By default, NSS creates records that are the maximum size possible, using all
+ * the data that was written by the application. Writes larger than the maximum
+ * are split into maximum sized records, and any remainder (unless
+ * SSL_CBC_RANDOM_IV is enabled and active). If a peer advertises a record size
+ * limit then that value is used instead.
+ */
+#define SSL_RECORD_SIZE_LIMIT 34
+
/* Enables TLS 1.3 compatibility mode. In this mode, the client includes a fake
* session ID in the handshake and sends a ChangeCipherSpec. A server will
* always use the setting chosen by the client, so the value of this option has
* no effect for a server. This setting is ignored for DTLS. */
#define SSL_ENABLE_TLS13_COMPAT_MODE 35
+/* Enables the sending of DTLS records using the short (two octet) record
+ * header. Only do this if there are 2^10 or fewer packets in flight at a time;
+ * using this with a larger number of packets in flight could mean that packets
+ * are dropped if there is reordering.
+ *
+ * This applies to TLS 1.3 only. This is not a parameter that is negotiated
+ * during the TLS handshake. Unlike other socket options, this option can be
+ * changed after a handshake is complete.
+ */
+#define SSL_ENABLE_DTLS_SHORT_HEADER 36
+
#ifdef SSL_DEPRECATED_FUNCTION
/* Old deprecated function names */
SSL_IMPORT SECStatus SSL_Enable(PRFileDesc *fd, int option, PRIntn on);
@@ -272,10 +300,10 @@ SSL_IMPORT SECStatus SSL_OptionSetDefault(PRInt32 option, PRIntn val);
SSL_IMPORT SECStatus SSL_OptionGetDefault(PRInt32 option, PRIntn *val);
SSL_IMPORT SECStatus SSL_CertDBHandleSet(PRFileDesc *fd, CERTCertDBHandle *dbHandle);
-/* SSLNextProtoCallback is called during the handshake for the client, when a
- * Next Protocol Negotiation (NPN) extension has been received from the server.
- * |protos| and |protosLen| define a buffer which contains the server's
- * advertisement. This data is guaranteed to be well formed per the NPN spec.
+/* SSLNextProtoCallback is called during the handshake for the server, when an
+ * Application-Layer Protocol Negotiation (ALPN) extension has been received
+ * from the client. |protos| and |protosLen| define a buffer which contains the
+ * client's advertisement.
* |protoOut| is a buffer provided by the caller, of length 255 (the maximum
* allowed by the protocol). On successful return, the protocol to be announced
* to the server will be in |protoOut| and its length in |*protoOutLen|.
@@ -291,27 +319,24 @@ typedef SECStatus(PR_CALLBACK *SSLNextProtoCallback)(
unsigned int *protoOutLen,
unsigned int protoMaxOut);
-/* SSL_SetNextProtoCallback sets a callback function to handle Next Protocol
- * Negotiation. It causes a client to advertise NPN. */
+/* SSL_SetNextProtoCallback sets a callback function to handle ALPN Negotiation.
+ * It causes a client to advertise ALPN. */
SSL_IMPORT SECStatus SSL_SetNextProtoCallback(PRFileDesc *fd,
SSLNextProtoCallback callback,
void *arg);
/* SSL_SetNextProtoNego can be used as an alternative to
- * SSL_SetNextProtoCallback. It also causes a client to advertise NPN and
- * installs a default callback function which selects the first supported
- * protocol in server-preference order. If no matching protocol is found it
- * selects the first supported protocol.
+ * SSL_SetNextProtoCallback.
*
- * Using this function also allows the client to transparently support ALPN.
+ * Using this function allows client and server to transparently support ALPN.
* The same set of protocols will be advertised via ALPN and, if the server
* uses ALPN to select a protocol, SSL_GetNextProto will return
* SSL_NEXT_PROTO_SELECTED as the state.
*
- * Since NPN uses the first protocol as the fallback protocol, when sending an
- * ALPN extension, the first protocol is moved to the end of the list. This
- * indicates that the fallback protocol is the least preferred. The other
- * protocols should be in preference order.
+ * Because the predecessor to ALPN, NPN, used the first protocol as the fallback
+ * protocol, when sending an ALPN extension, the first protocol is moved to the
+ * end of the list. This indicates that the fallback protocol is the least
+ * preferred. The other protocols should be in preference order.
*
* The supported protocols are specified in |data| in wire-format (8-bit
* length-prefixed). For example: "\010http/1.1\006spdy/2". */
diff --git a/security/nss/lib/ssl/ssl3con.c b/security/nss/lib/ssl/ssl3con.c
index 2593bbacc..466fc296f 100644
--- a/security/nss/lib/ssl/ssl3con.c
+++ b/security/nss/lib/ssl/ssl3con.c
@@ -990,27 +990,22 @@ ssl_ClientReadVersion(sslSocket *ss, PRUint8 **b, unsigned int *len,
if (rv != SECSuccess) {
return SECFailure; /* alert has been sent */
}
-
-#ifdef TLS_1_3_DRAFT_VERSION
- if (temp == SSL_LIBRARY_VERSION_TLS_1_3) {
- (void)SSL3_SendAlert(ss, alert_fatal, protocol_version);
- PORT_SetError(SSL_ERROR_UNSUPPORTED_VERSION);
- return SECFailure;
- }
- if (temp == tls13_EncodeDraftVersion(SSL_LIBRARY_VERSION_TLS_1_3)) {
- v = SSL_LIBRARY_VERSION_TLS_1_3;
- } else {
- v = (SSL3ProtocolVersion)temp;
- }
-#else
v = (SSL3ProtocolVersion)temp;
-#endif
if (IS_DTLS(ss)) {
- /* If this fails, we get 0 back and the next check to fails. */
v = dtls_DTLSVersionToTLSVersion(v);
+ /* Check for failure. */
+ if (!v || v > SSL_LIBRARY_VERSION_MAX_SUPPORTED) {
+ SSL3_SendAlert(ss, alert_fatal, illegal_parameter);
+ return SECFailure;
+ }
}
+ /* You can't negotiate TLS 1.3 this way. */
+ if (v >= SSL_LIBRARY_VERSION_TLS_1_3) {
+ SSL3_SendAlert(ss, alert_fatal, illegal_parameter);
+ return SECFailure;
+ }
*version = v;
return SECSuccess;
}
@@ -1415,7 +1410,7 @@ ssl3_SetupPendingCipherSpec(sslSocket *ss, CipherSpecDirection direction,
spec->macDef = ssl_GetMacDef(ss, suiteDef);
spec->epoch = prev->epoch + 1;
- spec->seqNum = 0;
+ spec->nextSeqNum = 0;
if (IS_DTLS(ss) && direction == CipherSpecRead) {
dtls_InitRecvdRecords(&spec->recvdRecords);
}
@@ -1481,6 +1476,13 @@ ssl3_SetupBothPendingCipherSpecs(sslSocket *ss)
goto loser;
}
+ if (ssl3_ExtensionNegotiated(ss, ssl_record_size_limit_xtn)) {
+ ss->ssl3.prSpec->recordSizeLimit = PR_MIN(MAX_FRAGMENT_LENGTH,
+ ss->opt.recordSizeLimit);
+ ss->ssl3.pwSpec->recordSizeLimit = PR_MIN(MAX_FRAGMENT_LENGTH,
+ ss->xtnData.recordSizeLimit);
+ }
+
ssl_ReleaseSpecWriteLock(ss); /*******************************/
return SECSuccess;
@@ -2004,6 +2006,7 @@ ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,
unsigned int ivLen = 0;
unsigned char pseudoHeaderBuf[13];
sslBuffer pseudoHeader = SSL_BUFFER(pseudoHeaderBuf);
+ int len;
if (cwSpec->cipherDef->type == type_block &&
cwSpec->version >= SSL_LIBRARY_VERSION_TLS_1_1) {
@@ -2013,29 +2016,32 @@ ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,
* record.
*/
ivLen = cwSpec->cipherDef->iv_size;
- if (ivLen > wrBuf->space) {
+ if (ivLen > SSL_BUFFER_SPACE(wrBuf)) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
return SECFailure;
}
- rv = PK11_GenerateRandom(wrBuf->buf, ivLen);
+ rv = PK11_GenerateRandom(SSL_BUFFER_NEXT(wrBuf), ivLen);
if (rv != SECSuccess) {
ssl_MapLowLevelError(SSL_ERROR_GENERATE_RANDOM_FAILURE);
return rv;
}
rv = cwSpec->cipher(cwSpec->cipherContext,
- wrBuf->buf, /* output */
- (int *)&wrBuf->len, /* outlen */
- ivLen, /* max outlen */
- wrBuf->buf, /* input */
- ivLen); /* input len */
- if (rv != SECSuccess || wrBuf->len != ivLen) {
+ SSL_BUFFER_NEXT(wrBuf), /* output */
+ &len, /* outlen */
+ ivLen, /* max outlen */
+ SSL_BUFFER_NEXT(wrBuf), /* input */
+ ivLen); /* input len */
+ if (rv != SECSuccess || len != ivLen) {
PORT_SetError(SSL_ERROR_ENCRYPTION_FAILURE);
return SECFailure;
}
+
+ rv = sslBuffer_Skip(wrBuf, len, NULL);
+ PORT_Assert(rv == SECSuccess); /* Can't fail. */
}
rv = ssl3_BuildRecordPseudoHeader(
- cwSpec->epoch, cwSpec->seqNum, type,
+ cwSpec->epoch, cwSpec->nextSeqNum, type,
cwSpec->version >= SSL_LIBRARY_VERSION_TLS_1_0, cwSpec->recordVersion,
isDTLS, contentLen, &pseudoHeader);
PORT_Assert(rv == SECSuccess);
@@ -2043,23 +2049,26 @@ ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,
const int nonceLen = cwSpec->cipherDef->explicit_nonce_size;
const int tagLen = cwSpec->cipherDef->tag_size;
- if (nonceLen + contentLen + tagLen > wrBuf->space) {
+ if (nonceLen + contentLen + tagLen > SSL_BUFFER_SPACE(wrBuf)) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
return SECFailure;
}
rv = cwSpec->aead(
&cwSpec->keyMaterial,
- PR_FALSE, /* do encrypt */
- wrBuf->buf, /* output */
- (int *)&wrBuf->len, /* out len */
- wrBuf->space, /* max out */
- pIn, contentLen, /* input */
+ PR_FALSE, /* do encrypt */
+ SSL_BUFFER_NEXT(wrBuf), /* output */
+ &len, /* out len */
+ SSL_BUFFER_SPACE(wrBuf), /* max out */
+ pIn, contentLen, /* input */
SSL_BUFFER_BASE(&pseudoHeader), SSL_BUFFER_LEN(&pseudoHeader));
if (rv != SECSuccess) {
PORT_SetError(SSL_ERROR_ENCRYPTION_FAILURE);
return SECFailure;
}
+
+ rv = sslBuffer_Skip(wrBuf, len, NULL);
+ PORT_Assert(rv == SECSuccess); /* Can't fail. */
} else {
int blockSize = cwSpec->cipherDef->block_size;
@@ -2069,7 +2078,7 @@ ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,
rv = ssl3_ComputeRecordMAC(cwSpec, SSL_BUFFER_BASE(&pseudoHeader),
SSL_BUFFER_LEN(&pseudoHeader),
pIn, contentLen,
- wrBuf->buf + ivLen + contentLen, &macLen);
+ SSL_BUFFER_NEXT(wrBuf) + contentLen, &macLen);
if (rv != SECSuccess) {
ssl_MapLowLevelError(SSL_ERROR_MAC_COMPUTATION_FAILURE);
return SECFailure;
@@ -2095,7 +2104,7 @@ ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,
PORT_Assert((fragLen % blockSize) == 0);
/* Pad according to TLS rules (also acceptable to SSL3). */
- pBuf = &wrBuf->buf[ivLen + fragLen - 1];
+ pBuf = SSL_BUFFER_NEXT(wrBuf) + fragLen - 1;
for (i = padding_length + 1; i > 0; --i) {
*pBuf-- = padding_length;
}
@@ -2112,14 +2121,14 @@ ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,
p2Len += oddLen;
PORT_Assert((blockSize < 2) ||
(p2Len % blockSize) == 0);
- memmove(wrBuf->buf + ivLen + p1Len, pIn + p1Len, oddLen);
+ memmove(SSL_BUFFER_NEXT(wrBuf) + p1Len, pIn + p1Len, oddLen);
}
if (p1Len > 0) {
int cipherBytesPart1 = -1;
rv = cwSpec->cipher(cwSpec->cipherContext,
- wrBuf->buf + ivLen, /* output */
- &cipherBytesPart1, /* actual outlen */
- p1Len, /* max outlen */
+ SSL_BUFFER_NEXT(wrBuf), /* output */
+ &cipherBytesPart1, /* actual outlen */
+ p1Len, /* max outlen */
pIn,
p1Len); /* input, and inputlen */
PORT_Assert(rv == SECSuccess && cipherBytesPart1 == (int)p1Len);
@@ -2127,22 +2136,24 @@ ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,
PORT_SetError(SSL_ERROR_ENCRYPTION_FAILURE);
return SECFailure;
}
- wrBuf->len += cipherBytesPart1;
+ rv = sslBuffer_Skip(wrBuf, p1Len, NULL);
+ PORT_Assert(rv == SECSuccess);
}
if (p2Len > 0) {
int cipherBytesPart2 = -1;
rv = cwSpec->cipher(cwSpec->cipherContext,
- wrBuf->buf + ivLen + p1Len,
+ SSL_BUFFER_NEXT(wrBuf),
&cipherBytesPart2, /* output and actual outLen */
p2Len, /* max outlen */
- wrBuf->buf + ivLen + p1Len,
+ SSL_BUFFER_NEXT(wrBuf),
p2Len); /* input and inputLen*/
PORT_Assert(rv == SECSuccess && cipherBytesPart2 == (int)p2Len);
if (rv != SECSuccess || cipherBytesPart2 != (int)p2Len) {
PORT_SetError(SSL_ERROR_ENCRYPTION_FAILURE);
return SECFailure;
}
- wrBuf->len += cipherBytesPart2;
+ rv = sslBuffer_Skip(wrBuf, p2Len, NULL);
+ PORT_Assert(rv == SECSuccess);
}
}
@@ -2150,16 +2161,20 @@ ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,
}
/* Note: though this can report failure, it shouldn't. */
-static SECStatus
+SECStatus
ssl_InsertRecordHeader(const sslSocket *ss, ssl3CipherSpec *cwSpec,
- SSL3ContentType contentType, unsigned int len,
- sslBuffer *wrBuf)
+ SSL3ContentType contentType, sslBuffer *wrBuf,
+ PRBool *needsLength)
{
SECStatus rv;
#ifndef UNSAFE_FUZZER_MODE
if (cwSpec->version >= SSL_LIBRARY_VERSION_TLS_1_3 &&
- cwSpec->cipherDef->calg != ssl_calg_null) {
+ cwSpec->epoch > TrafficKeyClearText) {
+ if (IS_DTLS(ss)) {
+ return dtls13_InsertCipherTextHeader(ss, cwSpec, wrBuf,
+ needsLength);
+ }
contentType = content_application_data;
}
#endif
@@ -2177,16 +2192,12 @@ ssl_InsertRecordHeader(const sslSocket *ss, ssl3CipherSpec *cwSpec,
if (rv != SECSuccess) {
return SECFailure;
}
- rv = sslBuffer_AppendNumber(wrBuf, cwSpec->seqNum, 6);
+ rv = sslBuffer_AppendNumber(wrBuf, cwSpec->nextSeqNum, 6);
if (rv != SECSuccess) {
return SECFailure;
}
}
- rv = sslBuffer_AppendNumber(wrBuf, len, 2);
- if (rv != SECSuccess) {
- return SECFailure;
- }
-
+ *needsLength = PR_TRUE;
return SECSuccess;
}
@@ -2194,66 +2205,67 @@ SECStatus
ssl_ProtectRecord(sslSocket *ss, ssl3CipherSpec *cwSpec, SSL3ContentType type,
const PRUint8 *pIn, PRUint32 contentLen, sslBuffer *wrBuf)
{
- unsigned int headerLen = IS_DTLS(ss) ? DTLS_RECORD_HEADER_LENGTH
- : SSL3_RECORD_HEADER_LENGTH;
- sslBuffer protBuf = SSL_BUFFER_FIXED(SSL_BUFFER_BASE(wrBuf) + headerLen,
- SSL_BUFFER_SPACE(wrBuf) - headerLen);
- PRBool isTLS13;
+ PRBool needsLength;
+ unsigned int lenOffset;
SECStatus rv;
PORT_Assert(cwSpec->direction == CipherSpecWrite);
PORT_Assert(SSL_BUFFER_LEN(wrBuf) == 0);
PORT_Assert(cwSpec->cipherDef->max_records <= RECORD_SEQ_MAX);
- if (cwSpec->seqNum >= cwSpec->cipherDef->max_records) {
+
+ if (cwSpec->nextSeqNum >= cwSpec->cipherDef->max_records) {
/* We should have automatically updated before here in TLS 1.3. */
PORT_Assert(cwSpec->version < SSL_LIBRARY_VERSION_TLS_1_3);
SSL_TRC(3, ("%d: SSL[-]: write sequence number at limit 0x%0llx",
- SSL_GETPID(), cwSpec->seqNum));
+ SSL_GETPID(), cwSpec->nextSeqNum));
PORT_SetError(SSL_ERROR_TOO_MANY_RECORDS);
return SECFailure;
}
- isTLS13 = (PRBool)(cwSpec->version >= SSL_LIBRARY_VERSION_TLS_1_3);
+ rv = ssl_InsertRecordHeader(ss, cwSpec, type, wrBuf, &needsLength);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+ if (needsLength) {
+ rv = sslBuffer_Skip(wrBuf, 2, &lenOffset);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+ }
#ifdef UNSAFE_FUZZER_MODE
{
int len;
- rv = Null_Cipher(NULL, SSL_BUFFER_BASE(&protBuf), &len,
- SSL_BUFFER_SPACE(&protBuf), pIn, contentLen);
+ rv = Null_Cipher(NULL, SSL_BUFFER_NEXT(wrBuf), &len,
+ SSL_BUFFER_SPACE(wrBuf), pIn, contentLen);
if (rv != SECSuccess) {
return SECFailure; /* error was set */
}
- rv = sslBuffer_Skip(&protBuf, len, NULL);
+ rv = sslBuffer_Skip(wrBuf, len, NULL);
PORT_Assert(rv == SECSuccess); /* Can't fail. */
}
#else
- if (isTLS13) {
- rv = tls13_ProtectRecord(ss, cwSpec, type, pIn, contentLen, &protBuf);
+ if (cwSpec->version >= SSL_LIBRARY_VERSION_TLS_1_3) {
+ rv = tls13_ProtectRecord(ss, cwSpec, type, pIn, contentLen, wrBuf);
} else {
rv = ssl3_MACEncryptRecord(cwSpec, ss->sec.isServer, IS_DTLS(ss), type,
- pIn, contentLen, &protBuf);
+ pIn, contentLen, wrBuf);
}
#endif
if (rv != SECSuccess) {
return SECFailure; /* error was set */
}
- PORT_Assert(protBuf.len <= MAX_FRAGMENT_LENGTH + (isTLS13 ? 256 : 1024));
-
- rv = ssl_InsertRecordHeader(ss, cwSpec, type, SSL_BUFFER_LEN(&protBuf),
- wrBuf);
- if (rv != SECSuccess) {
- return SECFailure;
- }
-
- PORT_Assert(SSL_BUFFER_LEN(wrBuf) == headerLen);
- rv = sslBuffer_Skip(wrBuf, SSL_BUFFER_LEN(&protBuf), NULL);
- if (rv != SECSuccess) {
- PORT_Assert(0); /* Can't fail. */
- return SECFailure;
+ if (needsLength) {
+ /* Insert the length. */
+ rv = sslBuffer_InsertLength(wrBuf, lenOffset, 2);
+ if (rv != SECSuccess) {
+ PORT_Assert(0); /* Can't fail. */
+ return SECFailure;
+ }
}
- ++cwSpec->seqNum;
+ ++cwSpec->nextSeqNum;
return SECSuccess;
}
@@ -2267,7 +2279,7 @@ ssl_ProtectNextRecord(sslSocket *ss, ssl3CipherSpec *spec, SSL3ContentType type,
unsigned int spaceNeeded;
SECStatus rv;
- contentLen = PR_MIN(nIn, MAX_FRAGMENT_LENGTH);
+ contentLen = PR_MIN(nIn, spec->recordSizeLimit);
spaceNeeded = contentLen + SSL3_BUFFER_FUDGE;
if (spec->version >= SSL_LIBRARY_VERSION_TLS_1_1 &&
spec->cipherDef->type == type_block) {
@@ -2291,6 +2303,7 @@ ssl_ProtectNextRecord(sslSocket *ss, ssl3CipherSpec *spec, SSL3ContentType type,
*written = contentLen;
return SECSuccess;
}
+
/* Process the plain text before sending it.
* Returns the number of bytes of plaintext that were successfully sent
* plus the number of bytes of plaintext that were copied into the
@@ -2368,7 +2381,7 @@ ssl3_SendRecord(sslSocket *ss,
rv = ssl_ProtectNextRecord(ss, spec, type, pIn, nIn, &written);
ssl_ReleaseSpecReadLock(ss);
if (rv != SECSuccess) {
- return SECFailure;
+ goto loser;
}
PORT_Assert(written > 0);
@@ -3034,7 +3047,6 @@ ssl3_SendChangeCipherSpecsInt(sslSocket *ss)
return SECFailure; /* error code set by ssl3_SendRecord */
}
} else {
- SECStatus rv;
rv = dtls_QueueMessage(ss, content_change_cipher_spec, &change, 1);
if (rv != SECSuccess) {
return SECFailure;
@@ -5567,13 +5579,20 @@ ssl3_SendRSAClientKeyExchange(sslSocket *ss, SECKEYPublicKey *svrPubKey)
}
/* Get the wrapped (encrypted) pre-master secret, enc_pms */
- enc_pms.len = SECKEY_PublicKeyStrength(svrPubKey);
+ unsigned int svrPubKeyBits = SECKEY_PublicKeyStrengthInBits(svrPubKey);
+ enc_pms.len = (svrPubKeyBits + 7) / 8;
+ /* Check that the RSA key isn't larger than 8k bit. */
+ if (svrPubKeyBits > SSL_MAX_RSA_KEY_BITS) {
+ (void)SSL3_SendAlert(ss, alert_fatal, illegal_parameter);
+ ssl_MapLowLevelError(SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE);
+ goto loser;
+ }
enc_pms.data = (unsigned char *)PORT_Alloc(enc_pms.len);
if (enc_pms.data == NULL) {
goto loser; /* err set by PORT_Alloc */
}
- /* wrap pre-master secret in server's public key. */
+ /* Wrap pre-master secret in server's public key. */
rv = PK11_PubWrapSymKey(CKM_RSA_PKCS, svrPubKey, pms, &enc_pms);
if (rv != SECSuccess) {
ssl_MapLowLevelError(SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE);
@@ -5676,7 +5695,7 @@ ssl3_SendDHClientKeyExchange(sslSocket *ss, SECKEYPublicKey *svrPubKey)
};
sslEphemeralKeyPair *keyPair = NULL;
SECKEYPublicKey *pubKey;
- PRUint8 dhData[1026]; /* Enough for the 8192-bit group. */
+ PRUint8 dhData[SSL_MAX_DH_KEY_BITS / 8 + 2];
sslBuffer dhBuf = SSL_BUFFER(dhData);
PORT_Assert(ss->opt.noLocks || ssl_HaveSSL3HandshakeLock(ss));
@@ -6208,7 +6227,6 @@ ssl3_HandleServerHello(sslSocket *ss, PRUint8 *b, PRUint32 length)
SECItem sidBytes = { siBuffer, NULL, 0 };
PRBool isHelloRetry;
SSL3AlertDescription desc = illegal_parameter;
- TLSExtension *versionExtension;
const PRUint8 *savedMsg = b;
const PRUint32 savedLength = length;
#ifndef TLS_1_3_DRAFT_VERSION
@@ -6299,16 +6317,10 @@ ssl3_HandleServerHello(sslSocket *ss, PRUint8 *b, PRUint32 length)
}
}
- /* Update the version based on the extension, as necessary. */
- versionExtension = ssl3_FindExtension(ss, ssl_tls13_supported_versions_xtn);
- if (versionExtension) {
- rv = ssl_ClientReadVersion(ss, &versionExtension->data.data,
- &versionExtension->data.len,
- &ss->version);
- if (rv != SECSuccess) {
- errCode = PORT_GetError();
- goto loser; /* An alert is sent by ssl_ClientReadVersion */
- }
+ /* Read supported_versions if present. */
+ rv = tls13_ClientReadSupportedVersion(ss);
+ if (rv != SECSuccess) {
+ goto loser;
}
PORT_Assert(!SSL_ALL_VERSIONS_DISABLED(&ss->vrange));
@@ -6332,7 +6344,7 @@ ssl3_HandleServerHello(sslSocket *ss, PRUint8 *b, PRUint32 length)
/* The server didn't pick 1.3 although we either received a
* HelloRetryRequest, or we prepared to send early app data. */
if (ss->version < SSL_LIBRARY_VERSION_TLS_1_3) {
- if (ss->ssl3.hs.helloRetry) {
+ if (isHelloRetry || ss->ssl3.hs.helloRetry) {
/* SSL3_SendAlert() will uncache the SID. */
desc = illegal_parameter;
errCode = SSL_ERROR_RX_MALFORMED_SERVER_HELLO;
@@ -6393,8 +6405,9 @@ ssl3_HandleServerHello(sslSocket *ss, PRUint8 *b, PRUint32 length)
/* Finally, now all the version-related checks have passed. */
ss->ssl3.hs.preliminaryInfo |= ssl_preinfo_version;
/* Update the write cipher spec to match the version. But not after
- * HelloRetryRequest, because cwSpec might be a 0-RTT cipher spec. */
- if (!ss->firstHsDone && !ss->ssl3.hs.helloRetry) {
+ * HelloRetryRequest, because cwSpec might be a 0-RTT cipher spec,
+ * in which case this is a no-op. */
+ if (!ss->firstHsDone && !isHelloRetry) {
ssl_GetSpecWriteLock(ss);
ssl_SetSpecVersions(ss, ss->ssl3.cwSpec);
ssl_ReleaseSpecWriteLock(ss);
@@ -6729,6 +6742,10 @@ ssl_HandleDHServerKeyExchange(sslSocket *ss, PRUint8 *b, PRUint32 length)
errCode = SSL_ERROR_WEAK_SERVER_EPHEMERAL_DH_KEY;
goto alert_loser;
}
+ if (dh_p_bits > SSL_MAX_DH_KEY_BITS) {
+ errCode = SSL_ERROR_DH_KEY_TOO_LONG;
+ goto alert_loser;
+ }
rv = ssl3_ConsumeHandshakeVariable(ss, &dh_g, 2, &b, &length);
if (rv != SECSuccess) {
goto loser; /* malformed. */
@@ -6938,8 +6955,10 @@ ssl3_ParseCertificateRequestCAs(sslSocket *ss, PRUint8 **b, PRUint32 *length,
goto alert_loser; /* malformed */
remaining -= 2;
+ if (SECITEM_MakeItem(ca_list->arena, &node->name, *b, len) != SECSuccess) {
+ goto no_mem;
+ }
node->name.len = len;
- node->name.data = *b;
*b += len;
*length -= len;
remaining -= len;
@@ -6967,7 +6986,6 @@ ssl3_ParseCertificateRequestCAs(sslSocket *ss, PRUint8 **b, PRUint32 *length,
return SECSuccess;
no_mem:
- PORT_SetError(SEC_ERROR_NO_MEMORY);
return SECFailure;
alert_loser:
@@ -7332,10 +7350,6 @@ ssl3_SendClientSecondRound(sslSocket *ss)
* certificate to an attacker that does not have a valid cert for the
* domain we are connecting to.
*
- * XXX: We should do the same for the NPN extension, but for that we
- * need an option to give the application the ability to leak the NPN
- * information to get better performance.
- *
* During the initial handshake on a connection, we never send/receive
* application data until we have authenticated the server's certificate;
* i.e. we have fully authenticated the handshake before using the cipher
@@ -7409,14 +7423,6 @@ ssl3_SendClientSecondRound(sslSocket *ss)
ss->enoughFirstHsDone = PR_TRUE;
if (!ss->firstHsDone) {
- /* XXX: If the server's certificate hasn't been authenticated by this
- * point, then we may be leaking this NPN message to an attacker.
- */
- rv = ssl3_SendNextProto(ss);
- if (rv != SECSuccess) {
- goto loser; /* err code was set. */
- }
-
if (ss->opt.enableFalseStart) {
if (!ss->ssl3.hs.authCertificatePending) {
/* When we fix bug 589047, we will need to know whether we are
@@ -8879,12 +8885,10 @@ ssl_ConstructServerHello(sslSocket *ss, PRBool helloRetry,
SSL3ProtocolVersion version;
sslSessionID *sid = ss->sec.ci.sid;
- if (IS_DTLS(ss) && ss->version < SSL_LIBRARY_VERSION_TLS_1_3) {
- version = dtls_TLSVersionToDTLSVersion(ss->version);
- } else {
- version = PR_MIN(ss->version, SSL_LIBRARY_VERSION_TLS_1_2);
+ version = PR_MIN(ss->version, SSL_LIBRARY_VERSION_TLS_1_2);
+ if (IS_DTLS(ss)) {
+ version = dtls_TLSVersionToDTLSVersion(version);
}
-
rv = sslBuffer_AppendNumber(messageBuf, version, 2);
if (rv != SECSuccess) {
return SECFailure;
@@ -11404,6 +11408,10 @@ ssl3_HandleHandshakeMessage(sslSocket *ss, PRUint8 *b, PRUint32 length,
/* Increment the expected sequence number */
ss->ssl3.hs.recvMessageSeq++;
}
+
+ /* Taint the message so that it's easier to detect UAFs. */
+ PORT_Memset(b, 'N', length);
+
return rv;
}
@@ -11738,7 +11746,7 @@ ssl_RemoveTLSCBCPadding(sslBuffer *plaintext, unsigned int macSize)
}
for (i = 0; i < toCheck; i++) {
- unsigned int t = paddingLength - i;
+ t = paddingLength - i;
/* If i <= paddingLength then the MSB of t is zero and mask is
* 0xff. Otherwise, mask is 0. */
unsigned char mask = DUPLICATE_MSB_TO_ALL(~t);
@@ -11878,6 +11886,7 @@ ssl3_UnprotectRecord(sslSocket *ss,
unsigned int good;
unsigned int ivLen = 0;
SSL3ContentType rType;
+ SSL3ProtocolVersion rVersion;
unsigned int minLength;
unsigned int originalLen = 0;
PRUint8 headerBuf[13];
@@ -11950,7 +11959,9 @@ ssl3_UnprotectRecord(sslSocket *ss,
return SECFailure;
}
- rType = cText->type;
+ rType = (SSL3ContentType)cText->hdr[0];
+ rVersion = ((SSL3ProtocolVersion)cText->hdr[1] << 8) |
+ (SSL3ProtocolVersion)cText->hdr[2];
if (cipher_def->type == type_aead) {
/* XXX For many AEAD ciphers, the plaintext is shorter than the
* ciphertext by a fixed byte count, but it is not true in general.
@@ -11960,8 +11971,8 @@ ssl3_UnprotectRecord(sslSocket *ss,
cText->buf->len - cipher_def->explicit_nonce_size -
cipher_def->tag_size;
rv = ssl3_BuildRecordPseudoHeader(
- spec->epoch, IS_DTLS(ss) ? cText->seq_num : spec->seqNum,
- rType, isTLS, cText->version, IS_DTLS(ss), decryptedLen, &header);
+ spec->epoch, cText->seqNum,
+ rType, isTLS, rVersion, IS_DTLS(ss), decryptedLen, &header);
PORT_Assert(rv == SECSuccess);
rv = spec->aead(&spec->keyMaterial,
PR_TRUE, /* do decrypt */
@@ -12008,8 +12019,8 @@ ssl3_UnprotectRecord(sslSocket *ss,
/* compute the MAC */
rv = ssl3_BuildRecordPseudoHeader(
- spec->epoch, IS_DTLS(ss) ? cText->seq_num : spec->seqNum,
- rType, isTLS, cText->version, IS_DTLS(ss),
+ spec->epoch, cText->seqNum,
+ rType, isTLS, rVersion, IS_DTLS(ss),
plaintext->len - spec->macDef->mac_size, &header);
PORT_Assert(rv == SECSuccess);
if (cipher_def->type == type_block) {
@@ -12059,13 +12070,19 @@ ssl3_UnprotectRecord(sslSocket *ss,
return SECSuccess;
}
-static SECStatus
+SECStatus
ssl3_HandleNonApplicationData(sslSocket *ss, SSL3ContentType rType,
DTLSEpoch epoch, sslSequenceNumber seqNum,
sslBuffer *databuf)
{
SECStatus rv;
+ /* check for Token Presence */
+ if (!ssl3_ClientAuthTokenPresent(ss->sec.ci.sid)) {
+ PORT_SetError(SSL_ERROR_TOKEN_INSERTION_REMOVAL);
+ return SECFailure;
+ }
+
ssl_GetSSL3HandshakeLock(ss);
/* All the functions called in this switch MUST set error code if
@@ -12111,15 +12128,16 @@ ssl3_HandleNonApplicationData(sslSocket *ss, SSL3ContentType rType,
* Returns NULL if no appropriate cipher spec is found.
*/
static ssl3CipherSpec *
-ssl3_GetCipherSpec(sslSocket *ss, sslSequenceNumber seq)
+ssl3_GetCipherSpec(sslSocket *ss, SSL3Ciphertext *cText)
{
ssl3CipherSpec *crSpec = ss->ssl3.crSpec;
ssl3CipherSpec *newSpec = NULL;
- DTLSEpoch epoch = seq >> 48;
+ DTLSEpoch epoch;
if (!IS_DTLS(ss)) {
return crSpec;
}
+ epoch = dtls_ReadEpoch(crSpec, cText->hdr);
if (crSpec->epoch == epoch) {
return crSpec;
}
@@ -12136,6 +12154,11 @@ ssl3_GetCipherSpec(sslSocket *ss, sslSequenceNumber seq)
return NULL;
}
+/* MAX_EXPANSION is the amount by which a record might plausibly be expanded
+ * when protected. It's the worst case estimate, so the sum of block cipher
+ * padding (up to 256 octets) and HMAC (48 octets for SHA-384). */
+#define MAX_EXPANSION (256 + 48)
+
/* if cText is non-null, then decipher and check the MAC of the
* SSL record from cText->buf (typically gs->inbuf)
* into databuf (typically gs->buf), and any previous contents of databuf
@@ -12159,16 +12182,16 @@ ssl3_GetCipherSpec(sslSocket *ss, sslSequenceNumber seq)
* Application Data records.
*/
SECStatus
-ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cText, sslBuffer *databuf)
+ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cText)
{
SECStatus rv;
PRBool isTLS;
DTLSEpoch epoch;
- sslSequenceNumber seqNum = 0;
ssl3CipherSpec *spec = NULL;
+ PRUint16 recordSizeLimit;
PRBool outOfOrderSpec = PR_FALSE;
SSL3ContentType rType;
- sslBuffer *plaintext;
+ sslBuffer *plaintext = &ss->gs.buf;
SSL3AlertDescription alert = internal_error;
PORT_Assert(ss->opt.noLocks || ssl_HaveRecvBufLock(ss));
@@ -12178,27 +12201,23 @@ ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cText, sslBuffer *databuf)
return SECFailure;
}
- /* cText is NULL when we're called from ssl3_RestartHandshakeAfterXXX().
- * This implies that databuf holds a previously deciphered SSL Handshake
- * message.
- */
- if (cText == NULL) {
- SSL_DBG(("%d: SSL3[%d]: HandleRecord, resuming handshake",
- SSL_GETPID(), ss->fd));
- /* Note that this doesn't pass the epoch and sequence number of the
- * record through, which DTLS 1.3 depends on. DTLS doesn't support
- * asynchronous certificate validation, so that should be OK. */
- PORT_Assert(!IS_DTLS(ss));
- return ssl3_HandleNonApplicationData(ss, content_handshake,
- 0, 0, databuf);
+ /* Clear out the buffer in case this exits early. Any data then won't be
+ * processed twice. */
+ plaintext->len = 0;
+
+ /* We're waiting for another ClientHello, which will appear unencrypted.
+ * Use the content type to tell whether this should be discarded. */
+ if (ss->ssl3.hs.zeroRttIgnore == ssl_0rtt_ignore_hrr &&
+ cText->hdr[0] == content_application_data) {
+ PORT_Assert(ss->ssl3.hs.ws == wait_client_hello);
+ return SECSuccess;
}
ssl_GetSpecReadLock(ss); /******************************************/
- spec = ssl3_GetCipherSpec(ss, cText->seq_num);
+ spec = ssl3_GetCipherSpec(ss, cText);
if (!spec) {
PORT_Assert(IS_DTLS(ss));
ssl_ReleaseSpecReadLock(ss); /*****************************/
- databuf->len = 0; /* Needed to ensure data not left around */
return SECSuccess;
}
if (spec != ss->ssl3.crSpec) {
@@ -12209,66 +12228,68 @@ ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cText, sslBuffer *databuf)
}
isTLS = (PRBool)(spec->version > SSL_LIBRARY_VERSION_3_0);
if (IS_DTLS(ss)) {
- if (!dtls_IsRelevant(ss, spec, cText, &seqNum)) {
+ if (!dtls_IsRelevant(ss, spec, cText, &cText->seqNum)) {
ssl_ReleaseSpecReadLock(ss); /*****************************/
- databuf->len = 0; /* Needed to ensure data not left around */
-
return SECSuccess;
}
} else {
- seqNum = spec->seqNum + 1;
+ cText->seqNum = spec->nextSeqNum;
}
- if (seqNum >= spec->cipherDef->max_records) {
+ if (cText->seqNum >= spec->cipherDef->max_records) {
ssl_ReleaseSpecReadLock(ss); /*****************************/
SSL_TRC(3, ("%d: SSL[%d]: read sequence number at limit 0x%0llx",
- SSL_GETPID(), ss->fd, seqNum));
+ SSL_GETPID(), ss->fd, cText->seqNum));
PORT_SetError(SSL_ERROR_TOO_MANY_RECORDS);
return SECFailure;
}
- plaintext = databuf;
- plaintext->len = 0; /* filled in by Unprotect call below. */
-
- /* We're waiting for another ClientHello, which will appear unencrypted.
- * Use the content type to tell whether this is should be discarded.
- *
- * XXX If we decide to remove the content type from encrypted records, this
- * will become much more difficult to manage. */
- if (ss->ssl3.hs.zeroRttIgnore == ssl_0rtt_ignore_hrr &&
- cText->type == content_application_data) {
+ recordSizeLimit = spec->recordSizeLimit;
+ if (cText->buf->len > recordSizeLimit + MAX_EXPANSION) {
ssl_ReleaseSpecReadLock(ss); /*****************************/
- PORT_Assert(ss->ssl3.hs.ws == wait_client_hello);
- databuf->len = 0;
- return SECSuccess;
+ SSL3_SendAlert(ss, alert_fatal, record_overflow);
+ PORT_SetError(SSL_ERROR_RX_RECORD_TOO_LONG);
+ return SECFailure;
}
- if (plaintext->space < MAX_FRAGMENT_LENGTH) {
- rv = sslBuffer_Grow(plaintext, MAX_FRAGMENT_LENGTH + 2048);
+ if (plaintext->space < recordSizeLimit + MAX_EXPANSION) {
+ rv = sslBuffer_Grow(plaintext, recordSizeLimit + MAX_EXPANSION);
if (rv != SECSuccess) {
ssl_ReleaseSpecReadLock(ss); /*************************/
SSL_DBG(("%d: SSL3[%d]: HandleRecord, tried to get %d bytes",
- SSL_GETPID(), ss->fd, MAX_FRAGMENT_LENGTH + 2048));
+ SSL_GETPID(), ss->fd, recordSizeLimit + MAX_EXPANSION));
/* sslBuffer_Grow has set a memory error code. */
/* Perhaps we should send an alert. (but we have no memory!) */
return SECFailure;
}
}
+ /* Most record types aside from protected TLS 1.3 records carry the content
+ * type in the first octet. TLS 1.3 will override this value later. */
+ rType = cText->hdr[0];
+ /* Encrypted application data records could arrive before the handshake
+ * completes in DTLS 1.3. These can look like valid TLS 1.2 application_data
+ * records in epoch 0, which is never valid. Pretend they didn't decrypt. */
+ if (spec->epoch == 0 && rType == content_application_data) {
+ PORT_SetError(SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA);
+ alert = unexpected_message;
+ rv = SECFailure;
+ } else {
#ifdef UNSAFE_FUZZER_MODE
- rv = Null_Cipher(NULL, plaintext->buf, (int *)&plaintext->len,
- plaintext->space, cText->buf->buf, cText->buf->len);
+ rv = Null_Cipher(NULL, plaintext->buf, (int *)&plaintext->len,
+ plaintext->space, cText->buf->buf, cText->buf->len);
#else
- /* IMPORTANT: Unprotect functions MUST NOT send alerts
- * because we still hold the spec read lock. Instead, if they
- * return SECFailure, they set *alert to the alert to be sent. */
- if (spec->version < SSL_LIBRARY_VERSION_TLS_1_3 ||
- spec->cipherDef->calg == ssl_calg_null) {
- /* Unencrypted TLS 1.3 records use the pre-TLS 1.3 format. */
- rv = ssl3_UnprotectRecord(ss, spec, cText, plaintext, &alert);
- } else {
- rv = tls13_UnprotectRecord(ss, spec, cText, plaintext, &alert);
- }
+ /* IMPORTANT: Unprotect functions MUST NOT send alerts
+ * because we still hold the spec read lock. Instead, if they
+ * return SECFailure, they set *alert to the alert to be sent. */
+ if (spec->version < SSL_LIBRARY_VERSION_TLS_1_3 ||
+ spec->epoch == 0) {
+ rv = ssl3_UnprotectRecord(ss, spec, cText, plaintext, &alert);
+ } else {
+ rv = tls13_UnprotectRecord(ss, spec, cText, plaintext, &rType,
+ &alert);
+ }
#endif
+ }
if (rv != SECSuccess) {
ssl_ReleaseSpecReadLock(ss); /***************************/
@@ -12276,39 +12297,45 @@ ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cText, sslBuffer *databuf)
SSL_DBG(("%d: SSL3[%d]: decryption failed", SSL_GETPID(), ss->fd));
/* Ensure that we don't process this data again. */
- databuf->len = 0;
+ plaintext->len = 0;
- /* Ignore a CCS if the alternative handshake is negotiated. Note that
- * this will fail if the server fails to negotiate the alternative
- * handshake type in a 0-RTT session that is resumed from a session that
- * did negotiate it. We don't care about that corner case right now. */
+ /* Ignore a CCS if compatibility mode is negotiated. Note that this
+ * will fail if the server fails to negotiate compatibility mode in a
+ * 0-RTT session that is resumed from a session that did negotiate it.
+ * We don't care about that corner case right now. */
if (ss->version >= SSL_LIBRARY_VERSION_TLS_1_3 &&
- cText->type == content_change_cipher_spec &&
+ cText->hdr[0] == content_change_cipher_spec &&
ss->ssl3.hs.ws != idle_handshake &&
cText->buf->len == 1 &&
cText->buf->buf[0] == change_cipher_spec_choice) {
/* Ignore the CCS. */
return SECSuccess;
}
+
if (IS_DTLS(ss) ||
(ss->sec.isServer &&
ss->ssl3.hs.zeroRttIgnore == ssl_0rtt_ignore_trial)) {
- /* Silently drop the packet */
+ /* Silently drop the packet unless we sent a fatal alert. */
+ if (ss->ssl3.fatalAlertSent) {
+ return SECFailure;
+ }
return SECSuccess;
- } else {
- int errCode = PORT_GetError();
- SSL3_SendAlert(ss, alert_fatal, alert);
- /* Reset the error code in case SSL3_SendAlert called
- * PORT_SetError(). */
- PORT_SetError(errCode);
- return SECFailure;
}
+
+ int errCode = PORT_GetError();
+ SSL3_SendAlert(ss, alert_fatal, alert);
+ /* Reset the error code in case SSL3_SendAlert called
+ * PORT_SetError(). */
+ PORT_SetError(errCode);
+ return SECFailure;
}
/* SECSuccess */
- spec->seqNum = PR_MAX(spec->seqNum, seqNum);
if (IS_DTLS(ss)) {
- dtls_RecordSetRecvd(&spec->recvdRecords, seqNum);
+ dtls_RecordSetRecvd(&spec->recvdRecords, cText->seqNum);
+ spec->nextSeqNum = PR_MAX(spec->nextSeqNum, cText->seqNum + 1);
+ } else {
+ ++spec->nextSeqNum;
}
epoch = spec->epoch;
@@ -12317,19 +12344,18 @@ ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cText, sslBuffer *databuf)
/*
* The decrypted data is now in plaintext.
*/
- rType = cText->type; /* This must go after decryption because TLS 1.3
- * has encrypted content types. */
/* IMPORTANT: We are in DTLS 1.3 mode and we have processed something
* from the wrong epoch. Divert to a divert processing function to make
* sure we don't accidentally use the data unsafely. */
if (outOfOrderSpec) {
PORT_Assert(IS_DTLS(ss) && ss->version >= SSL_LIBRARY_VERSION_TLS_1_3);
- return dtls13_HandleOutOfEpochRecord(ss, spec, rType, databuf);
+ return dtls13_HandleOutOfEpochRecord(ss, spec, rType, plaintext);
}
/* Check the length of the plaintext. */
- if (isTLS && databuf->len > MAX_FRAGMENT_LENGTH) {
+ if (isTLS && plaintext->len > recordSizeLimit) {
+ plaintext->len = 0;
SSL3_SendAlert(ss, alert_fatal, record_overflow);
PORT_SetError(SSL_ERROR_RX_RECORD_TOO_LONG);
return SECFailure;
@@ -12344,14 +12370,16 @@ ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cText, sslBuffer *databuf)
if (ss->version >= SSL_LIBRARY_VERSION_TLS_1_3 &&
ss->sec.isServer &&
ss->ssl3.hs.zeroRttState == ssl_0rtt_accepted) {
- return tls13_HandleEarlyApplicationData(ss, databuf);
+ return tls13_HandleEarlyApplicationData(ss, plaintext);
}
+ plaintext->len = 0;
(void)SSL3_SendAlert(ss, alert_fatal, unexpected_message);
PORT_SetError(SSL_ERROR_RX_UNEXPECTED_APPLICATION_DATA);
return SECFailure;
}
- return ssl3_HandleNonApplicationData(ss, rType, epoch, seqNum, databuf);
+ return ssl3_HandleNonApplicationData(ss, rType, epoch, cText->seqNum,
+ plaintext);
}
/*
diff --git a/security/nss/lib/ssl/ssl3ecc.c b/security/nss/lib/ssl/ssl3ecc.c
index 913a14f63..f8b9a9400 100644
--- a/security/nss/lib/ssl/ssl3ecc.c
+++ b/security/nss/lib/ssl/ssl3ecc.c
@@ -548,12 +548,14 @@ ssl3_HandleECDHServerKeyExchange(sslSocket *ss, PRUint8 *b, PRUint32 length)
if (ss->ssl3.prSpec->version == SSL_LIBRARY_VERSION_TLS_1_2) {
rv = ssl_ConsumeSignatureScheme(ss, &b, &length, &sigScheme);
if (rv != SECSuccess) {
- goto loser; /* malformed or unsupported. */
+ errCode = PORT_GetError();
+ goto alert_loser; /* malformed or unsupported. */
}
rv = ssl_CheckSignatureSchemeConsistency(ss, sigScheme,
ss->sec.peerCert);
if (rv != SECSuccess) {
- goto loser;
+ errCode = PORT_GetError();
+ goto alert_loser;
}
hashAlg = ssl_SignatureSchemeToHashType(sigScheme);
} else {
diff --git a/security/nss/lib/ssl/ssl3ext.c b/security/nss/lib/ssl/ssl3ext.c
index 5a5077998..9b6c719f8 100644
--- a/security/nss/lib/ssl/ssl3ext.c
+++ b/security/nss/lib/ssl/ssl3ext.c
@@ -39,7 +39,6 @@ static const ssl3ExtensionHandler clientHelloHandlers[] = {
{ ssl_ec_point_formats_xtn, &ssl3_HandleSupportedPointFormatsXtn },
{ ssl_session_ticket_xtn, &ssl3_ServerHandleSessionTicketXtn },
{ ssl_renegotiation_info_xtn, &ssl3_HandleRenegotiationInfoXtn },
- { ssl_next_proto_nego_xtn, &ssl3_ServerHandleNextProtoNegoXtn },
{ ssl_app_layer_protocol_xtn, &ssl3_ServerHandleAppProtoXtn },
{ ssl_use_srtp_xtn, &ssl3_ServerHandleUseSRTPXtn },
{ ssl_cert_status_xtn, &ssl3_ServerHandleStatusRequestXtn },
@@ -51,6 +50,7 @@ static const ssl3ExtensionHandler clientHelloHandlers[] = {
{ ssl_tls13_early_data_xtn, &tls13_ServerHandleEarlyDataXtn },
{ ssl_tls13_psk_key_exchange_modes_xtn, &tls13_ServerHandlePskModesXtn },
{ ssl_tls13_cookie_xtn, &tls13_ServerHandleCookieXtn },
+ { ssl_record_size_limit_xtn, &ssl_HandleRecordSizeLimitXtn },
{ 0, NULL }
};
@@ -61,7 +61,6 @@ static const ssl3ExtensionHandler serverHelloHandlersTLS[] = {
/* TODO: add a handler for ssl_ec_point_formats_xtn */
{ ssl_session_ticket_xtn, &ssl3_ClientHandleSessionTicketXtn },
{ ssl_renegotiation_info_xtn, &ssl3_HandleRenegotiationInfoXtn },
- { ssl_next_proto_nego_xtn, &ssl3_ClientHandleNextProtoNegoXtn },
{ ssl_app_layer_protocol_xtn, &ssl3_ClientHandleAppProtoXtn },
{ ssl_use_srtp_xtn, &ssl3_ClientHandleUseSRTPXtn },
{ ssl_cert_status_xtn, &ssl3_ClientHandleStatusRequestXtn },
@@ -70,6 +69,7 @@ static const ssl3ExtensionHandler serverHelloHandlersTLS[] = {
{ ssl_tls13_key_share_xtn, &tls13_ClientHandleKeyShareXtn },
{ ssl_tls13_pre_shared_key_xtn, &tls13_ClientHandlePreSharedKeyXtn },
{ ssl_tls13_early_data_xtn, &tls13_ClientHandleEarlyDataXtn },
+ { ssl_record_size_limit_xtn, &ssl_HandleRecordSizeLimitXtn },
{ 0, NULL }
};
@@ -122,7 +122,6 @@ static const sslExtensionBuilder clientHelloSendersTLS[] =
{ ssl_supported_groups_xtn, &ssl_SendSupportedGroupsXtn },
{ ssl_ec_point_formats_xtn, &ssl3_SendSupportedPointFormatsXtn },
{ ssl_session_ticket_xtn, &ssl3_ClientSendSessionTicketXtn },
- { ssl_next_proto_nego_xtn, &ssl3_ClientSendNextProtoNegoXtn },
{ ssl_app_layer_protocol_xtn, &ssl3_ClientSendAppProtoXtn },
{ ssl_use_srtp_xtn, &ssl3_ClientSendUseSRTPXtn },
{ ssl_cert_status_xtn, &ssl3_ClientSendStatusRequestXtn },
@@ -137,6 +136,7 @@ static const sslExtensionBuilder clientHelloSendersTLS[] =
{ ssl_signature_algorithms_xtn, &ssl3_SendSigAlgsXtn },
{ ssl_tls13_cookie_xtn, &tls13_ClientSendHrrCookieXtn },
{ ssl_tls13_psk_key_exchange_modes_xtn, &tls13_ClientSendPskModesXtn },
+ { ssl_record_size_limit_xtn, &ssl_SendRecordSizeLimitXtn },
/* The pre_shared_key extension MUST be last. */
{ ssl_tls13_pre_shared_key_xtn, &tls13_ClientSendPreSharedKeyXtn },
{ 0, NULL }
@@ -183,7 +183,6 @@ static const struct {
{ ssl_tls13_psk_key_exchange_modes_xtn, ssl_ext_native_only },
{ ssl_tls13_ticket_early_data_info_xtn, ssl_ext_native_only },
{ ssl_tls13_certificate_authorities_xtn, ssl_ext_native },
- { ssl_next_proto_nego_xtn, ssl_ext_none },
{ ssl_renegotiation_info_xtn, ssl_ext_native }
};
@@ -681,7 +680,11 @@ ssl_CallCustomExtensionSenders(sslSocket *ss, sslBuffer *buf,
}
}
- sslBuffer_Append(buf, tail.buf, tail.len);
+ rv = sslBuffer_Append(buf, tail.buf, tail.len);
+ if (rv != SECSuccess) {
+ goto loser; /* Code already set. */
+ }
+
sslBuffer_Clear(&tail);
return SECSuccess;
diff --git a/security/nss/lib/ssl/ssl3ext.h b/security/nss/lib/ssl/ssl3ext.h
index d0f75a599..6d77c7459 100644
--- a/security/nss/lib/ssl/ssl3ext.h
+++ b/security/nss/lib/ssl/ssl3ext.h
@@ -98,6 +98,9 @@ struct TLSExtensionDataStr {
/* The application token contains a value that was passed to the client via
* a session ticket, or the cookie in a HelloRetryRequest. */
SECItem applicationToken;
+
+ /* The record size limit set by the peer. Our value is kept in ss->opt. */
+ PRUint16 recordSizeLimit;
};
typedef struct TLSExtensionStr {
diff --git a/security/nss/lib/ssl/ssl3exthandle.c b/security/nss/lib/ssl/ssl3exthandle.c
index e6388945e..d1f286dc3 100644
--- a/security/nss/lib/ssl/ssl3exthandle.c
+++ b/security/nss/lib/ssl/ssl3exthandle.c
@@ -242,33 +242,11 @@ ssl_AlpnTagAllowed(const sslSocket *ss, const SECItem *tag)
return PR_FALSE;
}
-/* handle an incoming Next Protocol Negotiation extension. */
-SECStatus
-ssl3_ServerHandleNextProtoNegoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
- SECItem *data)
-{
- PORT_Assert(ss->version < SSL_LIBRARY_VERSION_TLS_1_3);
-
- if (ss->firstHsDone || data->len != 0) {
- /* Clients MUST send an empty NPN extension, if any. */
- PORT_SetError(SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID);
- return SECFailure;
- }
-
- xtnData->negotiated[xtnData->numNegotiated++] = ssl_next_proto_nego_xtn;
-
- /* TODO: server side NPN support would require calling
- * ssl3_RegisterServerHelloExtensionSender here in order to echo the
- * extension back to the client. */
-
- return SECSuccess;
-}
-
-/* ssl3_ValidateNextProtoNego checks that the given block of data is valid: none
+/* ssl3_ValidateAppProtocol checks that the given block of data is valid: none
* of the lengths may be 0 and the sum of the lengths must equal the length of
* the block. */
SECStatus
-ssl3_ValidateNextProtoNego(const unsigned char *data, unsigned int length)
+ssl3_ValidateAppProtocol(const unsigned char *data, unsigned int length)
{
unsigned int offset = 0;
@@ -286,7 +264,7 @@ ssl3_ValidateNextProtoNego(const unsigned char *data, unsigned int length)
return SECSuccess;
}
-/* protocol selection handler for ALPN (server side) and NPN (client side) */
+/* Protocol selection handler for ALPN. */
static SECStatus
ssl3_SelectAppProtocol(const sslSocket *ss, TLSExtensionData *xtnData,
PRUint16 extension, SECItem *data)
@@ -295,7 +273,7 @@ ssl3_SelectAppProtocol(const sslSocket *ss, TLSExtensionData *xtnData,
unsigned char resultBuffer[255];
SECItem result = { siBuffer, resultBuffer, 0 };
- rv = ssl3_ValidateNextProtoNego(data->data, data->len);
+ rv = ssl3_ValidateAppProtocol(data->data, data->len);
if (rv != SECSuccess) {
ssl3_ExtSendAlert(ss, alert_fatal, decode_error);
PORT_SetError(SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID);
@@ -303,11 +281,13 @@ ssl3_SelectAppProtocol(const sslSocket *ss, TLSExtensionData *xtnData,
}
PORT_Assert(ss->nextProtoCallback);
- /* For ALPN, the cipher suite isn't selected yet. Note that extensions
+ /* The cipher suite isn't selected yet. Note that extensions
* sometimes affect what cipher suite is selected, e.g., for ECC. */
PORT_Assert((ss->ssl3.hs.preliminaryInfo &
ssl_preinfo_all & ~ssl_preinfo_cipher_suite) ==
(ssl_preinfo_all & ~ssl_preinfo_cipher_suite));
+ /* The callback has to make sure that either rv != SECSuccess or that result
+ * is not set if there is no common protocol. */
rv = ss->nextProtoCallback(ss->nextProtoArg, ss->fd, data->data, data->len,
result.data, &result.len, sizeof(resultBuffer));
if (rv != SECSuccess) {
@@ -320,21 +300,20 @@ ssl3_SelectAppProtocol(const sslSocket *ss, TLSExtensionData *xtnData,
* stack. */
if (result.len > sizeof(resultBuffer)) {
PORT_SetError(SEC_ERROR_OUTPUT_LEN);
- /* TODO: crash */
+ PORT_Assert(PR_FALSE);
return SECFailure;
}
SECITEM_FreeItem(&xtnData->nextProto, PR_FALSE);
- if (extension == ssl_app_layer_protocol_xtn &&
- xtnData->nextProtoState != SSL_NEXT_PROTO_NEGOTIATED) {
- /* The callback might say OK, but then it picks a default value - one
- * that was not listed. That's OK for NPN, but not ALPN. */
+ if (result.len < 1 || !result.data) {
+ /* Check that we actually got a result. */
ssl3_ExtSendAlert(ss, alert_fatal, no_application_protocol);
PORT_SetError(SSL_ERROR_NEXT_PROTOCOL_NO_PROTOCOL);
return SECFailure;
}
+ xtnData->nextProtoState = SSL_NEXT_PROTO_NEGOTIATED;
xtnData->negotiated[xtnData->numNegotiated++] = extension;
return SECITEM_CopyItem(NULL, &xtnData->nextProto, &result);
}
@@ -356,7 +335,7 @@ ssl3_ServerHandleAppProtoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
return SECFailure;
}
- /* Unlike NPN, ALPN has extra redundant length information so that
+ /* ALPN has extra redundant length information so that
* the extension is the same in both ClientHello and ServerHello. */
rv = ssl3_ExtConsumeHandshakeNumber(ss, &count, 2, &data->data, &data->len);
if (rv != SECSuccess || count != data->len) {
@@ -389,39 +368,6 @@ ssl3_ServerHandleAppProtoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
}
SECStatus
-ssl3_ClientHandleNextProtoNegoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
- SECItem *data)
-{
- PORT_Assert(ss->version < SSL_LIBRARY_VERSION_TLS_1_3);
- PORT_Assert(!ss->firstHsDone);
-
- if (ssl3_ExtensionNegotiated(ss, ssl_app_layer_protocol_xtn)) {
- /* If the server negotiated ALPN then it has already told us what
- * protocol to use, so it doesn't make sense for us to try to negotiate
- * a different one by sending the NPN handshake message. However, if
- * we've negotiated NPN then we're required to send the NPN handshake
- * message. Thus, these two extensions cannot both be negotiated on the
- * same connection. */
- ssl3_ExtSendAlert(ss, alert_fatal, illegal_parameter);
- PORT_SetError(SSL_ERROR_BAD_SERVER);
- return SECFailure;
- }
-
- /* We should only get this call if we sent the extension, so
- * ss->nextProtoCallback needs to be non-NULL. However, it is possible
- * that an application erroneously cleared the callback between the time
- * we sent the ClientHello and now. */
- if (!ss->nextProtoCallback) {
- PORT_Assert(0);
- ssl3_ExtSendAlert(ss, alert_fatal, internal_error);
- PORT_SetError(SSL_ERROR_NEXT_PROTOCOL_NO_CALLBACK);
- return SECFailure;
- }
-
- return ssl3_SelectAppProtocol(ss, xtnData, ssl_next_proto_nego_xtn, data);
-}
-
-SECStatus
ssl3_ClientHandleAppProtoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
SECItem *data)
{
@@ -475,19 +421,6 @@ ssl3_ClientHandleAppProtoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
}
SECStatus
-ssl3_ClientSendNextProtoNegoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
- sslBuffer *buf, PRBool *added)
-{
- /* Renegotiations do not send this extension. */
- if (!ss->opt.enableNPN || !ss->nextProtoCallback || ss->firstHsDone) {
- return SECSuccess;
- }
-
- *added = PR_TRUE;
- return SECSuccess;
-}
-
-SECStatus
ssl3_ClientSendAppProtoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
sslBuffer *buf, PRBool *added)
{
@@ -499,35 +432,15 @@ ssl3_ClientSendAppProtoXtn(const sslSocket *ss, TLSExtensionData *xtnData,
return SECSuccess;
}
- /* NPN requires that the client's fallback protocol is first in the
- * list. However, ALPN sends protocols in preference order. So move the
- * first protocol to the end of the list. */
-
if (len > 0) {
/* Each protocol string is prefixed with a single byte length. */
- unsigned int i;
-
rv = sslBuffer_AppendNumber(buf, len, 2);
if (rv != SECSuccess) {
return SECFailure;
}
-
- i = ss->opt.nextProtoNego.data[0] + 1;
- if (i <= len) {
- rv = sslBuffer_Append(buf, &ss->opt.nextProtoNego.data[i], len - i);
- if (rv != SECSuccess) {
- return SECFailure;
- }
- rv = sslBuffer_Append(buf, ss->opt.nextProtoNego.data, i);
- if (rv != SECSuccess) {
- return SECFailure;
- }
- } else {
- /* This seems to be invalid data so we'll send as-is. */
- rv = sslBuffer_Append(buf, ss->opt.nextProtoNego.data, len);
- if (rv != SECSuccess) {
- return SECFailure;
- }
+ rv = sslBuffer_Append(buf, ss->opt.nextProtoNego.data, len);
+ if (rv != SECSuccess) {
+ return SECFailure;
}
}
@@ -1955,3 +1868,67 @@ ssl_HandleSupportedGroupsXtn(const sslSocket *ss, TLSExtensionData *xtnData,
return SECSuccess;
}
+
+SECStatus
+ssl_HandleRecordSizeLimitXtn(const sslSocket *ss, TLSExtensionData *xtnData,
+ SECItem *data)
+{
+ SECStatus rv;
+ PRUint32 limit;
+ PRUint32 maxLimit = (ss->version >= SSL_LIBRARY_VERSION_TLS_1_3)
+ ? (MAX_FRAGMENT_LENGTH + 1)
+ : MAX_FRAGMENT_LENGTH;
+
+ rv = ssl3_ExtConsumeHandshakeNumber(ss, &limit, 2, &data->data, &data->len);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+ if (data->len != 0 || limit < 64) {
+ ssl3_ExtSendAlert(ss, alert_fatal, illegal_parameter);
+ PORT_SetError(SSL_ERROR_RX_MALFORMED_HANDSHAKE);
+ return SECFailure;
+ }
+
+ if (ss->sec.isServer) {
+ rv = ssl3_RegisterExtensionSender(ss, xtnData, ssl_record_size_limit_xtn,
+ &ssl_SendRecordSizeLimitXtn);
+ if (rv != SECSuccess) {
+ return SECFailure; /* error already set. */
+ }
+ } else if (limit > maxLimit) {
+ /* The client can sensibly check the maximum. */
+ ssl3_ExtSendAlert(ss, alert_fatal, illegal_parameter);
+ PORT_SetError(SSL_ERROR_RX_MALFORMED_HANDSHAKE);
+ return SECFailure;
+ }
+
+ /* We can't enforce the maximum on a server. But we do need to ensure
+ * that we don't apply a limit that is too large. */
+ xtnData->recordSizeLimit = PR_MIN(maxLimit, limit);
+ xtnData->negotiated[xtnData->numNegotiated++] = ssl_record_size_limit_xtn;
+ return SECSuccess;
+}
+
+SECStatus
+ssl_SendRecordSizeLimitXtn(const sslSocket *ss, TLSExtensionData *xtnData,
+ sslBuffer *buf, PRBool *added)
+{
+ PRUint32 maxLimit;
+ if (ss->sec.isServer) {
+ maxLimit = (ss->version >= SSL_LIBRARY_VERSION_TLS_1_3)
+ ? (MAX_FRAGMENT_LENGTH + 1)
+ : MAX_FRAGMENT_LENGTH;
+ } else {
+ maxLimit = (ss->vrange.max >= SSL_LIBRARY_VERSION_TLS_1_3)
+ ? (MAX_FRAGMENT_LENGTH + 1)
+ : MAX_FRAGMENT_LENGTH;
+ }
+ PRUint32 limit = PR_MIN(ss->opt.recordSizeLimit, maxLimit);
+ SECStatus rv = sslBuffer_AppendNumber(buf, limit, 2);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+
+ *added = PR_TRUE;
+ return SECSuccess;
+}
diff --git a/security/nss/lib/ssl/ssl3exthandle.h b/security/nss/lib/ssl/ssl3exthandle.h
index b84bd074c..eaf7f0081 100644
--- a/security/nss/lib/ssl/ssl3exthandle.h
+++ b/security/nss/lib/ssl/ssl3exthandle.h
@@ -119,4 +119,11 @@ SECStatus ssl_SendSupportedGroupsXtn(const sslSocket *ss,
SECStatus ssl3_SendSupportedPointFormatsXtn(const sslSocket *ss,
TLSExtensionData *xtnData,
sslBuffer *buf, PRBool *added);
+SECStatus ssl_HandleRecordSizeLimitXtn(const sslSocket *ss,
+ TLSExtensionData *xtnData,
+ SECItem *data);
+SECStatus ssl_SendRecordSizeLimitXtn(const sslSocket *ss,
+ TLSExtensionData *xtnData,
+ sslBuffer *buf, PRBool *added);
+
#endif
diff --git a/security/nss/lib/ssl/ssl3gthr.c b/security/nss/lib/ssl/ssl3gthr.c
index 8b323bb05..5ea7cc249 100644
--- a/security/nss/lib/ssl/ssl3gthr.c
+++ b/security/nss/lib/ssl/ssl3gthr.c
@@ -158,6 +158,7 @@ ssl3_GatherData(sslSocket *ss, sslGather *gs, int flags, ssl2Gather *ssl2gs)
* the length of the following encrypted data, and then
* read in the rest of the record into gs->inbuf. */
gs->remainder = (gs->hdr[3] << 8) | gs->hdr[4];
+ gs->hdrLen = SSL3_RECORD_HEADER_LENGTH;
} else {
/* Probably an SSLv2 record header. No need to handle any
* security escapes (gs->hdr[0] & 0x40) as we wouldn't get
@@ -264,8 +265,9 @@ static int
dtls_GatherData(sslSocket *ss, sslGather *gs, int flags)
{
int nb;
- int err;
- int rv = 1;
+ PRUint8 contentType;
+ unsigned int headerLen;
+ SECStatus rv;
SSL_TRC(30, ("dtls_GatherData"));
@@ -285,81 +287,97 @@ dtls_GatherData(sslSocket *ss, sslGather *gs, int flags)
** to 13 (the size of the record header).
*/
if (gs->dtlsPacket.space < MAX_FRAGMENT_LENGTH + 2048 + 13) {
- err = sslBuffer_Grow(&gs->dtlsPacket,
- MAX_FRAGMENT_LENGTH + 2048 + 13);
- if (err) { /* realloc has set error code to no mem. */
- return err;
+ rv = sslBuffer_Grow(&gs->dtlsPacket,
+ MAX_FRAGMENT_LENGTH + 2048 + 13);
+ if (rv != SECSuccess) {
+ return -1; /* Code already set. */
}
}
/* recv() needs to read a full datagram at a time */
nb = ssl_DefRecv(ss, gs->dtlsPacket.buf, gs->dtlsPacket.space, flags);
-
if (nb > 0) {
PRINT_BUF(60, (ss, "raw gather data:", gs->dtlsPacket.buf, nb));
} else if (nb == 0) {
/* EOF */
SSL_TRC(30, ("%d: SSL3[%d]: EOF", SSL_GETPID(), ss->fd));
- rv = 0;
- return rv;
+ return 0;
} else /* if (nb < 0) */ {
SSL_DBG(("%d: SSL3[%d]: recv error %d", SSL_GETPID(), ss->fd,
PR_GetError()));
- rv = SECFailure;
- return rv;
+ return -1;
}
gs->dtlsPacket.len = nb;
}
+ contentType = gs->dtlsPacket.buf[gs->dtlsPacketOffset];
+ if (dtls_IsLongHeader(ss->version, contentType)) {
+ headerLen = 13;
+ } else if (contentType == content_application_data) {
+ headerLen = 7;
+ } else if ((contentType & 0xe0) == 0x20) {
+ headerLen = 2;
+ } else {
+ SSL_DBG(("%d: SSL3[%d]: invalid first octet (%d) for DTLS",
+ SSL_GETPID(), ss->fd, contentType));
+ PORT_SetError(SSL_ERROR_RX_UNKNOWN_RECORD_TYPE);
+ gs->dtlsPacketOffset = 0;
+ gs->dtlsPacket.len = 0;
+ return -1;
+ }
+
/* At this point we should have >=1 complete records lined up in
* dtlsPacket. Read off the header.
*/
- if ((gs->dtlsPacket.len - gs->dtlsPacketOffset) < 13) {
+ if ((gs->dtlsPacket.len - gs->dtlsPacketOffset) < headerLen) {
SSL_DBG(("%d: SSL3[%d]: rest of DTLS packet "
"too short to contain header",
SSL_GETPID(), ss->fd));
- PR_SetError(PR_WOULD_BLOCK_ERROR, 0);
+ PORT_SetError(PR_WOULD_BLOCK_ERROR);
gs->dtlsPacketOffset = 0;
gs->dtlsPacket.len = 0;
- rv = SECFailure;
- return rv;
+ return -1;
}
- memcpy(gs->hdr, gs->dtlsPacket.buf + gs->dtlsPacketOffset, 13);
- gs->dtlsPacketOffset += 13;
+ memcpy(gs->hdr, SSL_BUFFER_BASE(&gs->dtlsPacket) + gs->dtlsPacketOffset,
+ headerLen);
+ gs->hdrLen = headerLen;
+ gs->dtlsPacketOffset += headerLen;
/* Have received SSL3 record header in gs->hdr. */
- gs->remainder = (gs->hdr[11] << 8) | gs->hdr[12];
+ if (headerLen == 13) {
+ gs->remainder = (gs->hdr[11] << 8) | gs->hdr[12];
+ } else if (headerLen == 7) {
+ gs->remainder = (gs->hdr[5] << 8) | gs->hdr[6];
+ } else {
+ PORT_Assert(headerLen == 2);
+ gs->remainder = gs->dtlsPacket.len - gs->dtlsPacketOffset;
+ }
if ((gs->dtlsPacket.len - gs->dtlsPacketOffset) < gs->remainder) {
SSL_DBG(("%d: SSL3[%d]: rest of DTLS packet too short "
"to contain rest of body",
SSL_GETPID(), ss->fd));
- PR_SetError(PR_WOULD_BLOCK_ERROR, 0);
+ PORT_SetError(PR_WOULD_BLOCK_ERROR);
gs->dtlsPacketOffset = 0;
gs->dtlsPacket.len = 0;
- rv = SECFailure;
- return rv;
+ return -1;
}
/* OK, we have at least one complete packet, copy into inbuf */
- if (gs->remainder > gs->inbuf.space) {
- err = sslBuffer_Grow(&gs->inbuf, gs->remainder);
- if (err) { /* realloc has set error code to no mem. */
- return err;
- }
+ gs->inbuf.len = 0;
+ rv = sslBuffer_Append(&gs->inbuf,
+ SSL_BUFFER_BASE(&gs->dtlsPacket) + gs->dtlsPacketOffset,
+ gs->remainder);
+ if (rv != SECSuccess) {
+ return -1; /* code already set. */
}
-
- SSL_TRC(20, ("%d: SSL3[%d]: dtls gathered record type=%d len=%d",
- SSL_GETPID(), ss->fd, gs->hdr[0], gs->inbuf.len));
-
- memcpy(gs->inbuf.buf, gs->dtlsPacket.buf + gs->dtlsPacketOffset,
- gs->remainder);
- gs->inbuf.len = gs->remainder;
gs->offset = gs->remainder;
gs->dtlsPacketOffset += gs->remainder;
gs->state = GS_INIT;
+ SSL_TRC(20, ("%d: SSL3[%d]: dtls gathered record type=%d len=%d",
+ SSL_GETPID(), ss->fd, contentType, gs->inbuf.len));
return 1;
}
@@ -442,7 +460,11 @@ ssl3_GatherCompleteHandshake(sslSocket *ss, int flags)
* We need to process it now before we overwrite it with the next
* handshake record.
*/
- rv = ssl3_HandleRecord(ss, NULL, &ss->gs.buf);
+ SSL_DBG(("%d: SSL3[%d]: resuming handshake",
+ SSL_GETPID(), ss->fd));
+ PORT_Assert(!IS_DTLS(ss));
+ rv = ssl3_HandleNonApplicationData(ss, content_handshake,
+ 0, 0, &ss->gs.buf);
} else {
/* State for SSLv2 client hello support. */
ssl2Gather ssl2gs = { PR_FALSE, 0 };
@@ -495,20 +517,14 @@ ssl3_GatherCompleteHandshake(sslSocket *ss, int flags)
* If it's application data, ss->gs.buf will not be empty upon return.
* If it's a change cipher spec, alert, or handshake message,
* ss->gs.buf.len will be 0 when ssl3_HandleRecord returns SECSuccess.
+ *
+ * cText only needs to be valid for this next function call, so
+ * it can borrow gs.hdr.
*/
- cText.type = (SSL3ContentType)ss->gs.hdr[0];
- cText.version = (ss->gs.hdr[1] << 8) | ss->gs.hdr[2];
-
- if (IS_DTLS(ss)) {
- sslSequenceNumber seq_num;
-
- /* DTLS sequence number */
- PORT_Memcpy(&seq_num, &ss->gs.hdr[3], sizeof(seq_num));
- cText.seq_num = PR_ntohll(seq_num);
- }
-
+ cText.hdr = ss->gs.hdr;
+ cText.hdrLen = ss->gs.hdrLen;
cText.buf = &ss->gs.inbuf;
- rv = ssl3_HandleRecord(ss, &cText, &ss->gs.buf);
+ rv = ssl3_HandleRecord(ss, &cText);
}
}
if (rv < 0) {
@@ -520,7 +536,6 @@ ssl3_GatherCompleteHandshake(sslSocket *ss, int flags)
* completing any renegotiation handshake we may be doing.
*/
PORT_Assert(ss->firstHsDone);
- PORT_Assert(cText.type == content_application_data);
break;
}
diff --git a/security/nss/lib/ssl/ssl3prot.h b/security/nss/lib/ssl/ssl3prot.h
index d1f46db97..8e6cf2745 100644
--- a/security/nss/lib/ssl/ssl3prot.h
+++ b/security/nss/lib/ssl/ssl3prot.h
@@ -16,7 +16,7 @@ typedef PRUint16 SSL3ProtocolVersion;
/* The TLS 1.3 draft version. Used to avoid negotiating
* between incompatible pre-standard TLS 1.3 drafts.
* TODO(ekr@rtfm.com): Remove when TLS 1.3 is published. */
-#define TLS_1_3_DRAFT_VERSION 23
+#define TLS_1_3_DRAFT_VERSION 28
typedef PRUint16 ssl3CipherSuite;
/* The cipher suites are defined in sslproto.h */
diff --git a/security/nss/lib/ssl/sslcert.c b/security/nss/lib/ssl/sslcert.c
index 6cd02e402..1c3ddb0e7 100644
--- a/security/nss/lib/ssl/sslcert.c
+++ b/security/nss/lib/ssl/sslcert.c
@@ -256,7 +256,8 @@ ssl_PopulateKeyPair(sslServerCert *sc, sslKeyPair *keyPair)
/* Get the size of the cert's public key, and remember it. */
sc->serverKeyBits = SECKEY_PublicKeyStrengthInBits(keyPair->pubKey);
- if (sc->serverKeyBits == 0) {
+ if (sc->serverKeyBits == 0 ||
+ (keyType == rsaKey && sc->serverKeyBits > SSL_MAX_RSA_KEY_BITS)) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
diff --git a/security/nss/lib/ssl/sslerr.h b/security/nss/lib/ssl/sslerr.h
index b94d0cc62..518a2b887 100644
--- a/security/nss/lib/ssl/sslerr.h
+++ b/security/nss/lib/ssl/sslerr.h
@@ -262,6 +262,8 @@ typedef enum {
SSL_ERROR_TOO_MANY_KEY_UPDATES = (SSL_ERROR_BASE + 171),
SSL_ERROR_HANDSHAKE_FAILED = (SSL_ERROR_BASE + 172),
SSL_ERROR_BAD_RESUMPTION_TOKEN_ERROR = (SSL_ERROR_BASE + 173),
+ SSL_ERROR_RX_MALFORMED_DTLS_ACK = (SSL_ERROR_BASE + 174),
+ SSL_ERROR_DH_KEY_TOO_LONG = (SSL_ERROR_BASE + 175),
SSL_ERROR_END_OF_LIST /* let the c compiler determine the value of this. */
} SSLErrorCodes;
#endif /* NO_SECURITY_ERROR_ENUM */
diff --git a/security/nss/lib/ssl/sslimpl.h b/security/nss/lib/ssl/sslimpl.h
index 10d0333d9..a2209e90a 100644
--- a/security/nss/lib/ssl/sslimpl.h
+++ b/security/nss/lib/ssl/sslimpl.h
@@ -121,6 +121,10 @@ typedef enum { SSLAppOpRead = 0,
/* default number of entries in namedGroupPreferences */
#define SSL_NAMED_GROUP_COUNT 31
+/* The maximum DH and RSA bit-length supported. */
+#define SSL_MAX_DH_KEY_BITS 8192
+#define SSL_MAX_RSA_KEY_BITS 8192
+
/* Types and names of elliptic curves used in TLS */
typedef enum {
ec_type_explicitPrime = 1, /* not supported */
@@ -232,6 +236,7 @@ typedef struct sslOptionsStr {
/* If SSL_SetNextProtoNego has been called, then this contains the
* list of supported protocols. */
SECItem nextProtoNego;
+ PRUint16 recordSizeLimit;
PRUint32 maxEarlyDataSize;
unsigned int useSecurity : 1;
@@ -251,7 +256,6 @@ typedef struct sslOptionsStr {
unsigned int enableFalseStart : 1;
unsigned int cbcRandomIV : 1;
unsigned int enableOCSPStapling : 1;
- unsigned int enableNPN : 1;
unsigned int enableALPN : 1;
unsigned int reuseServerECDHEKey : 1;
unsigned int enableFallbackSCSV : 1;
@@ -261,6 +265,7 @@ typedef struct sslOptionsStr {
unsigned int requireDHENamedGroups : 1;
unsigned int enable0RttData : 1;
unsigned int enableTls13CompatMode : 1;
+ unsigned int enableDtlsShortHeader : 1;
} sslOptions;
typedef enum { sslHandshakingUndetermined = 0,
@@ -325,9 +330,11 @@ struct sslGatherStr {
** than into buf or inbuf, while in the GS_HEADER state.
** The portion of the SSL record header put here always comes off the wire
** as plaintext, never ciphertext.
- ** For SSL3/TLS, the plaintext portion is 5 bytes long. For DTLS it is 13.
+ ** For SSL3/TLS, the plaintext portion is 5 bytes long. For DTLS it
+ ** varies based on version and header type.
*/
unsigned char hdr[13];
+ unsigned int hdrLen;
/* Buffer for DTLS data read off the wire as a single datagram */
sslBuffer dtlsPacket;
@@ -440,7 +447,7 @@ struct sslSessionIDStr {
*/
SECItem signedCertTimestamps;
- /* The NPN/ALPN value negotiated in the original connection.
+ /* The ALPN value negotiated in the original connection.
* Used for TLS 1.3. */
SECItem alpnSelection;
@@ -780,9 +787,13 @@ struct ssl3StateStr {
#define IS_DTLS(ss) (ss->protocolVariant == ssl_variant_datagram)
typedef struct {
- SSL3ContentType type;
- SSL3ProtocolVersion version;
- sslSequenceNumber seq_num; /* DTLS only */
+ /* |seqNum| eventually contains the reconstructed sequence number. */
+ sslSequenceNumber seqNum;
+ /* The header of the cipherText. */
+ const PRUint8 *hdr;
+ unsigned int hdrLen;
+
+ /* |buf| is the payload of the ciphertext. */
sslBuffer *buf;
} SSL3Ciphertext;
@@ -805,7 +816,7 @@ struct ssl3DHParamsStr {
};
typedef struct SSLWrappedSymWrappingKeyStr {
- PRUint8 wrappedSymmetricWrappingkey[512];
+ PRUint8 wrappedSymmetricWrappingkey[SSL_MAX_RSA_KEY_BITS / 8];
CK_MECHANISM_TYPE symWrapMechanism;
/* unwrapped symmetric wrapping key uses this mechanism */
CK_MECHANISM_TYPE asymWrapMechanism;
@@ -1375,8 +1386,11 @@ SECStatus ssl3_SendClientHello(sslSocket *ss, sslClientHelloType type);
/*
* input into the SSL3 machinery from the actualy network reading code
*/
-SECStatus ssl3_HandleRecord(
- sslSocket *ss, SSL3Ciphertext *cipher, sslBuffer *out);
+SECStatus ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cipher);
+SECStatus ssl3_HandleNonApplicationData(sslSocket *ss, SSL3ContentType rType,
+ DTLSEpoch epoch,
+ sslSequenceNumber seqNum,
+ sslBuffer *databuf);
SECStatus ssl_RemoveTLSCBCPadding(sslBuffer *plaintext, unsigned int macSize);
int ssl3_GatherAppDataRecord(sslSocket *ss, int flags);
@@ -1537,8 +1551,8 @@ SECStatus ssl_GetSelfEncryptKeys(sslSocket *ss, unsigned char *keyName,
PK11SymKey **encKey, PK11SymKey **macKey);
void ssl_ResetSelfEncryptKeys();
-extern SECStatus ssl3_ValidateNextProtoNego(const unsigned char *data,
- unsigned int length);
+extern SECStatus ssl3_ValidateAppProtocol(const unsigned char *data,
+ unsigned int length);
/* Construct a new NSPR socket for the app to use */
extern PRFileDesc *ssl_NewPRSocket(sslSocket *ss, PRFileDesc *fd);
@@ -1636,6 +1650,9 @@ SSLHashType ssl_SignatureSchemeToHashType(SSLSignatureScheme scheme);
KeyType ssl_SignatureSchemeToKeyType(SSLSignatureScheme scheme);
SECStatus ssl3_SetupCipherSuite(sslSocket *ss, PRBool initHashes);
+SECStatus ssl_InsertRecordHeader(const sslSocket *ss, ssl3CipherSpec *cwSpec,
+ SSL3ContentType contentType, sslBuffer *wrBuf,
+ PRBool *needsLength);
/* Pull in DTLS functions */
#include "dtlscon.h"
diff --git a/security/nss/lib/ssl/sslsecur.c b/security/nss/lib/ssl/sslsecur.c
index f09ec067c..a1d389214 100644
--- a/security/nss/lib/ssl/sslsecur.c
+++ b/security/nss/lib/ssl/sslsecur.c
@@ -791,7 +791,7 @@ tls13_CheckKeyUpdate(sslSocket *ss, CipherSpecDirection dir)
spec = ss->ssl3.cwSpec;
margin = spec->cipherDef->max_records / 4;
}
- seqNum = spec->seqNum;
+ seqNum = spec->nextSeqNum;
keyUpdate = seqNum > spec->cipherDef->max_records - margin;
ssl_ReleaseSpecReadLock(ss);
if (!keyUpdate) {
@@ -922,21 +922,30 @@ ssl_SecureSend(sslSocket *ss, const unsigned char *buf, int len, int flags)
*/
if (!ss->firstHsDone) {
PRBool allowEarlySend = PR_FALSE;
+ PRBool firstClientWrite = PR_FALSE;
ssl_Get1stHandshakeLock(ss);
- if (ss->opt.enableFalseStart ||
- (ss->opt.enable0RttData && !ss->sec.isServer)) {
+ /* The client can sometimes send before the handshake is fully
+ * complete. In TLS 1.2: false start; in TLS 1.3: 0-RTT. */
+ if (!ss->sec.isServer &&
+ (ss->opt.enableFalseStart || ss->opt.enable0RttData)) {
ssl_GetSSL3HandshakeLock(ss);
- /* The client can sometimes send before the handshake is fully
- * complete. In TLS 1.2: false start; in TLS 1.3: 0-RTT. */
zeroRtt = ss->ssl3.hs.zeroRttState == ssl_0rtt_sent ||
ss->ssl3.hs.zeroRttState == ssl_0rtt_accepted;
allowEarlySend = ss->ssl3.hs.canFalseStart || zeroRtt;
+ firstClientWrite = ss->ssl3.hs.ws == idle_handshake;
ssl_ReleaseSSL3HandshakeLock(ss);
}
if (!allowEarlySend && ss->handshake) {
rv = ssl_Do1stHandshake(ss);
}
+ if (firstClientWrite) {
+ /* Wait until after sending ClientHello and double-check 0-RTT. */
+ ssl_GetSSL3HandshakeLock(ss);
+ zeroRtt = ss->ssl3.hs.zeroRttState == ssl_0rtt_sent ||
+ ss->ssl3.hs.zeroRttState == ssl_0rtt_accepted;
+ ssl_ReleaseSSL3HandshakeLock(ss);
+ }
ssl_Release1stHandshakeLock(ss);
}
diff --git a/security/nss/lib/ssl/sslsock.c b/security/nss/lib/ssl/sslsock.c
index e08d5e232..33595ffae 100644
--- a/security/nss/lib/ssl/sslsock.c
+++ b/security/nss/lib/ssl/sslsock.c
@@ -55,6 +55,7 @@ static const sslSocketOps ssl_secure_ops = { /* SSL. */
static sslOptions ssl_defaults = {
.nextProtoNego = { siBuffer, NULL, 0 },
.maxEarlyDataSize = 1 << 16,
+ .recordSizeLimit = MAX_FRAGMENT_LENGTH + 1,
.useSecurity = PR_TRUE,
.useSocks = PR_FALSE,
.requestCertificate = PR_FALSE,
@@ -72,7 +73,6 @@ static sslOptions ssl_defaults = {
.enableFalseStart = PR_FALSE,
.cbcRandomIV = PR_TRUE,
.enableOCSPStapling = PR_FALSE,
- .enableNPN = PR_FALSE,
.enableALPN = PR_TRUE,
.reuseServerECDHEKey = PR_TRUE,
.enableFallbackSCSV = PR_FALSE,
@@ -81,7 +81,8 @@ static sslOptions ssl_defaults = {
.enableSignedCertTimestamps = PR_FALSE,
.requireDHENamedGroups = PR_FALSE,
.enable0RttData = PR_FALSE,
- .enableTls13CompatMode = PR_FALSE
+ .enableTls13CompatMode = PR_FALSE,
+ .enableDtlsShortHeader = PR_FALSE
};
/*
@@ -803,10 +804,23 @@ SSL_OptionSet(PRFileDesc *fd, PRInt32 which, PRIntn val)
ss->opt.enable0RttData = val;
break;
+ case SSL_RECORD_SIZE_LIMIT:
+ if (val < 64 || val > (MAX_FRAGMENT_LENGTH + 1)) {
+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
+ rv = SECFailure;
+ } else {
+ ss->opt.recordSizeLimit = val;
+ }
+ break;
+
case SSL_ENABLE_TLS13_COMPAT_MODE:
ss->opt.enableTls13CompatMode = val;
break;
+ case SSL_ENABLE_DTLS_SHORT_HEADER:
+ ss->opt.enableDtlsShortHeader = val;
+ break;
+
default:
PORT_SetError(SEC_ERROR_INVALID_ARGS);
rv = SECFailure;
@@ -914,7 +928,7 @@ SSL_OptionGet(PRFileDesc *fd, PRInt32 which, PRIntn *pVal)
val = ss->opt.enableOCSPStapling;
break;
case SSL_ENABLE_NPN:
- val = ss->opt.enableNPN;
+ val = PR_FALSE;
break;
case SSL_ENABLE_ALPN:
val = ss->opt.enableALPN;
@@ -940,9 +954,15 @@ SSL_OptionGet(PRFileDesc *fd, PRInt32 which, PRIntn *pVal)
case SSL_ENABLE_0RTT_DATA:
val = ss->opt.enable0RttData;
break;
+ case SSL_RECORD_SIZE_LIMIT:
+ val = ss->opt.recordSizeLimit;
+ break;
case SSL_ENABLE_TLS13_COMPAT_MODE:
val = ss->opt.enableTls13CompatMode;
break;
+ case SSL_ENABLE_DTLS_SHORT_HEADER:
+ val = ss->opt.enableDtlsShortHeader;
+ break;
default:
PORT_SetError(SEC_ERROR_INVALID_ARGS);
rv = SECFailure;
@@ -1037,7 +1057,7 @@ SSL_OptionGetDefault(PRInt32 which, PRIntn *pVal)
val = ssl_defaults.enableOCSPStapling;
break;
case SSL_ENABLE_NPN:
- val = ssl_defaults.enableNPN;
+ val = PR_FALSE;
break;
case SSL_ENABLE_ALPN:
val = ssl_defaults.enableALPN;
@@ -1060,9 +1080,15 @@ SSL_OptionGetDefault(PRInt32 which, PRIntn *pVal)
case SSL_ENABLE_0RTT_DATA:
val = ssl_defaults.enable0RttData;
break;
+ case SSL_RECORD_SIZE_LIMIT:
+ val = ssl_defaults.recordSizeLimit;
+ break;
case SSL_ENABLE_TLS13_COMPAT_MODE:
val = ssl_defaults.enableTls13CompatMode;
break;
+ case SSL_ENABLE_DTLS_SHORT_HEADER:
+ val = ssl_defaults.enableDtlsShortHeader;
+ break;
default:
PORT_SetError(SEC_ERROR_INVALID_ARGS);
rv = SECFailure;
@@ -1242,10 +1268,22 @@ SSL_OptionSetDefault(PRInt32 which, PRIntn val)
ssl_defaults.enable0RttData = val;
break;
+ case SSL_RECORD_SIZE_LIMIT:
+ if (val < 64 || val > (MAX_FRAGMENT_LENGTH + 1)) {
+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
+ return SECFailure;
+ }
+ ssl_defaults.recordSizeLimit = val;
+ break;
+
case SSL_ENABLE_TLS13_COMPAT_MODE:
ssl_defaults.enableTls13CompatMode = val;
break;
+ case SSL_ENABLE_DTLS_SHORT_HEADER:
+ ssl_defaults.enableDtlsShortHeader = val;
+ break;
+
default:
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
@@ -1895,10 +1933,7 @@ DTLS_ImportFD(PRFileDesc *model, PRFileDesc *fd)
}
/* SSL_SetNextProtoCallback is used to select an application protocol
- * for ALPN and NPN. For ALPN, this runs on the server; for NPN it
- * runs on the client. */
-/* Note: The ALPN version doesn't allow for the use of a default, setting a
- * status of SSL_NEXT_PROTO_NO_OVERLAP is treated as a failure. */
+ * for ALPN. */
SECStatus
SSL_SetNextProtoCallback(PRFileDesc *fd, SSLNextProtoCallback callback,
void *arg)
@@ -1919,7 +1954,7 @@ SSL_SetNextProtoCallback(PRFileDesc *fd, SSLNextProtoCallback callback,
return SECSuccess;
}
-/* ssl_NextProtoNegoCallback is set as an ALPN/NPN callback when
+/* ssl_NextProtoNegoCallback is set as an ALPN callback when
* SSL_SetNextProtoNego is used.
*/
static SECStatus
@@ -1929,7 +1964,6 @@ ssl_NextProtoNegoCallback(void *arg, PRFileDesc *fd,
unsigned int protoMaxLen)
{
unsigned int i, j;
- const unsigned char *result;
sslSocket *ss = ssl_FindSocket(fd);
if (!ss) {
@@ -1937,37 +1971,29 @@ ssl_NextProtoNegoCallback(void *arg, PRFileDesc *fd,
SSL_GETPID(), fd));
return SECFailure;
}
+ PORT_Assert(protoMaxLen <= 255);
+ if (protoMaxLen > 255) {
+ PORT_SetError(SEC_ERROR_OUTPUT_LEN);
+ return SECFailure;
+ }
- /* For each protocol in server preference, see if we support it. */
- for (i = 0; i < protos_len;) {
- for (j = 0; j < ss->opt.nextProtoNego.len;) {
+ /* For each protocol in client preference, see if we support it. */
+ for (j = 0; j < ss->opt.nextProtoNego.len;) {
+ for (i = 0; i < protos_len;) {
if (protos[i] == ss->opt.nextProtoNego.data[j] &&
PORT_Memcmp(&protos[i + 1], &ss->opt.nextProtoNego.data[j + 1],
protos[i]) == 0) {
/* We found a match. */
- ss->xtnData.nextProtoState = SSL_NEXT_PROTO_NEGOTIATED;
- result = &protos[i];
- goto found;
+ const unsigned char *result = &protos[i];
+ memcpy(protoOut, result + 1, result[0]);
+ *protoOutLen = result[0];
+ return SECSuccess;
}
- j += 1 + (unsigned int)ss->opt.nextProtoNego.data[j];
+ i += 1 + (unsigned int)protos[i];
}
- i += 1 + (unsigned int)protos[i];
+ j += 1 + (unsigned int)ss->opt.nextProtoNego.data[j];
}
- /* The other side supports the extension, and either doesn't have any
- * protocols configured, or none of its options match ours. In this case we
- * request our favoured protocol. */
- /* This will be treated as a failure for ALPN. */
- ss->xtnData.nextProtoState = SSL_NEXT_PROTO_NO_OVERLAP;
- result = ss->opt.nextProtoNego.data;
-
-found:
- if (protoMaxLen < result[0]) {
- PORT_SetError(SEC_ERROR_OUTPUT_LEN);
- return SECFailure;
- }
- memcpy(protoOut, result + 1, result[0]);
- *protoOutLen = result[0];
return SECSuccess;
}
@@ -1976,8 +2002,6 @@ SSL_SetNextProtoNego(PRFileDesc *fd, const unsigned char *data,
unsigned int length)
{
sslSocket *ss;
- SECStatus rv;
- SECItem dataItem = { siBuffer, (unsigned char *)data, length };
ss = ssl_FindSocket(fd);
if (!ss) {
@@ -1986,17 +2010,22 @@ SSL_SetNextProtoNego(PRFileDesc *fd, const unsigned char *data,
return SECFailure;
}
- if (ssl3_ValidateNextProtoNego(data, length) != SECSuccess)
+ if (ssl3_ValidateAppProtocol(data, length) != SECSuccess) {
return SECFailure;
+ }
+ /* NPN required that the client's fallback protocol is first in the
+ * list. However, ALPN sends protocols in preference order. So move the
+ * first protocol to the end of the list. */
ssl_GetSSL3HandshakeLock(ss);
SECITEM_FreeItem(&ss->opt.nextProtoNego, PR_FALSE);
- rv = SECITEM_CopyItem(NULL, &ss->opt.nextProtoNego, &dataItem);
+ SECITEM_AllocItem(NULL, &ss->opt.nextProtoNego, length);
+ size_t firstLen = data[0] + 1;
+ /* firstLen <= length is ensured by ssl3_ValidateAppProtocol. */
+ PORT_Memcpy(ss->opt.nextProtoNego.data + (length - firstLen), data, firstLen);
+ PORT_Memcpy(ss->opt.nextProtoNego.data, data + firstLen, length - firstLen);
ssl_ReleaseSSL3HandshakeLock(ss);
- if (rv != SECSuccess)
- return rv;
-
return SSL_SetNextProtoCallback(fd, ssl_NextProtoNegoCallback, NULL);
}
@@ -3034,26 +3063,27 @@ ssl_Poll(PRFileDesc *fd, PRInt16 how_flags, PRInt16 *p_out_flags)
} else { /* handshaking as server */
new_flags |= PR_POLL_READ;
}
- } else
+ } else if (ss->lastWriteBlocked) {
/* First handshake is in progress */
- if (ss->lastWriteBlocked) {
if (new_flags & PR_POLL_READ) {
/* The caller is waiting for data to be received,
** but the initial handshake is blocked on write, or the
** client's first handshake record has not been written.
** The code should select on write, not read.
*/
- new_flags ^= PR_POLL_READ; /* don't select on read. */
+ new_flags &= ~PR_POLL_READ; /* don't select on read. */
new_flags |= PR_POLL_WRITE; /* do select on write. */
}
} else if (new_flags & PR_POLL_WRITE) {
/* The caller is trying to write, but the handshake is
** blocked waiting for data to read, and the first
** handshake has been sent. So do NOT to poll on write
- ** unless we did false start.
+ ** unless we did false start or we are doing 0-RTT.
*/
- if (!ss->ssl3.hs.canFalseStart) {
- new_flags ^= PR_POLL_WRITE; /* don't select on write. */
+ if (!(ss->ssl3.hs.canFalseStart ||
+ ss->ssl3.hs.zeroRttState == ssl_0rtt_sent ||
+ ss->ssl3.hs.zeroRttState == ssl_0rtt_accepted)) {
+ new_flags &= ~PR_POLL_WRITE; /* don't select on write. */
}
new_flags |= PR_POLL_READ; /* do select on read. */
}
@@ -3093,6 +3123,9 @@ ssl_Poll(PRFileDesc *fd, PRInt16 how_flags, PRInt16 *p_out_flags)
}
}
+ SSL_TRC(20, ("%d: SSL[%d]: ssl_Poll flags %x -> %x",
+ SSL_GETPID(), fd, how_flags, new_flags));
+
if (new_flags && (fd->lower->methods->poll != NULL)) {
PRInt16 lower_out_flags = 0;
PRInt16 lower_new_flags;
diff --git a/security/nss/lib/ssl/sslspec.c b/security/nss/lib/ssl/sslspec.c
index 26c3eb546..7833eeab6 100644
--- a/security/nss/lib/ssl/sslspec.c
+++ b/security/nss/lib/ssl/sslspec.c
@@ -143,6 +143,7 @@ ssl_CreateCipherSpec(sslSocket *ss, CipherSpecDirection direction)
spec->refCt = 1;
spec->version = ss->version;
spec->direction = direction;
+ spec->recordSizeLimit = MAX_FRAGMENT_LENGTH;
SSL_TRC(10, ("%d: SSL[%d]: new %s spec %d ct=%d",
SSL_GETPID(), ss->fd, SPEC_DIR(spec), spec,
spec->refCt));
diff --git a/security/nss/lib/ssl/sslspec.h b/security/nss/lib/ssl/sslspec.h
index 729ac1006..b25601755 100644
--- a/security/nss/lib/ssl/sslspec.h
+++ b/security/nss/lib/ssl/sslspec.h
@@ -162,12 +162,18 @@ struct ssl3CipherSpecStr {
DTLSEpoch epoch;
const char *phase;
- sslSequenceNumber seqNum;
+
+ /* The next sequence number to be sent or received. */
+ sslSequenceNumber nextSeqNum;
DTLSRecvdRecords recvdRecords;
/* The number of 0-RTT bytes that can be sent or received in TLS 1.3. This
* will be zero for everything but 0-RTT. */
PRUint32 earlyDataRemaining;
+ /* The maximum plaintext length. This differs from the configured or
+ * negotiated value for TLS 1.3; it is reduced by one to account for the
+ * content type octet. */
+ PRUint16 recordSizeLimit;
};
typedef void (*sslCipherSpecChangedFunc)(void *arg,
diff --git a/security/nss/lib/ssl/sslt.h b/security/nss/lib/ssl/sslt.h
index e2b80fb43..bb1bec7a3 100644
--- a/security/nss/lib/ssl/sslt.h
+++ b/security/nss/lib/ssl/sslt.h
@@ -432,6 +432,7 @@ typedef enum {
ssl_signed_cert_timestamp_xtn = 18,
ssl_padding_xtn = 21,
ssl_extended_master_secret_xtn = 23,
+ ssl_record_size_limit_xtn = 28,
ssl_session_ticket_xtn = 35,
/* 40 was used in draft versions of TLS 1.3; it is now reserved. */
ssl_tls13_pre_shared_key_xtn = 41,
@@ -454,7 +455,7 @@ typedef enum {
/* SSL_MAX_EXTENSIONS includes the maximum number of extensions that are
* supported for any single message type. That is, a ClientHello; ServerHello
* and TLS 1.3 NewSessionTicket and HelloRetryRequest extensions have fewer. */
-#define SSL_MAX_EXTENSIONS 20
+#define SSL_MAX_EXTENSIONS 21
/* Deprecated */
typedef enum {
diff --git a/security/nss/lib/ssl/tls13con.c b/security/nss/lib/ssl/tls13con.c
index c06acc83a..4d9170fb0 100644
--- a/security/nss/lib/ssl/tls13con.c
+++ b/security/nss/lib/ssl/tls13con.c
@@ -792,7 +792,7 @@ tls13_HandleKeyUpdate(sslSocket *ss, PRUint8 *b, unsigned int length)
/* Only send an update if we have sent with the current spec. This
* prevents us from being forced to crank forward pointlessly. */
ssl_GetSpecReadLock(ss);
- sendUpdate = ss->ssl3.cwSpec->seqNum > 0;
+ sendUpdate = ss->ssl3.cwSpec->nextSeqNum > 0;
ssl_ReleaseSpecReadLock(ss);
} else {
sendUpdate = PR_TRUE;
@@ -1620,7 +1620,7 @@ tls13_HandleClientHelloPart2(sslSocket *ss,
ssl_GetSpecWriteLock(ss);
/* Increase the write sequence number. The read sequence number
* will be reset after this to early data or handshake. */
- ss->ssl3.cwSpec->seqNum = 1;
+ ss->ssl3.cwSpec->nextSeqNum = 1;
ssl_ReleaseSpecWriteLock(ss);
}
@@ -2007,7 +2007,7 @@ tls13_SendHelloRetryRequest(sslSocket *ss,
/* We depend on this being exactly one record and one message. */
PORT_Assert(!IS_DTLS(ss) || (ss->ssl3.hs.sendMessageSeq == 1 &&
- ss->ssl3.cwSpec->seqNum == 1));
+ ss->ssl3.cwSpec->nextSeqNum == 1));
ssl_ReleaseXmitBufLock(ss);
ss->ssl3.hs.helloRetry = PR_TRUE;
@@ -2209,6 +2209,8 @@ tls13_HandleHelloRetryRequest(sslSocket *ss, const PRUint8 *savedMsg,
} else {
PORT_Assert(ss->ssl3.hs.zeroRttState == ssl_0rtt_none);
}
+ /* Set the spec version, because we want to send CH now with 0303 */
+ tls13_SetSpecRecordVersion(ss, ss->ssl3.cwSpec);
/* Extensions must contain more than just supported_versions. This will
* ensure that a HelloRetryRequest isn't a no-op: we must have at least two
@@ -2248,6 +2250,7 @@ tls13_HandleHelloRetryRequest(sslSocket *ss, const PRUint8 *savedMsg,
goto loser;
}
}
+
rv = ssl3_SendClientHello(ss, client_hello_retry);
if (rv != SECSuccess) {
goto loser;
@@ -3251,6 +3254,17 @@ tls13_SetupPendingCipherSpec(sslSocket *ss, ssl3CipherSpec *spec)
}
tls13_SetSpecRecordVersion(ss, spec);
+
+ /* The record size limit is reduced by one so that the remainder of the
+ * record handling code can use the same checks for all versions. */
+ if (ssl3_ExtensionNegotiated(ss, ssl_record_size_limit_xtn)) {
+ spec->recordSizeLimit = ((spec->direction == CipherSpecRead)
+ ? ss->opt.recordSizeLimit
+ : ss->xtnData.recordSizeLimit) -
+ 1;
+ } else {
+ spec->recordSizeLimit = MAX_FRAGMENT_LENGTH;
+ }
return SECSuccess;
}
@@ -3316,7 +3330,7 @@ tls13_SetCipherSpec(sslSocket *ss, PRUint16 epoch,
return SECFailure;
}
spec->epoch = epoch;
- spec->seqNum = 0;
+ spec->nextSeqNum = 0;
if (IS_DTLS(ss)) {
dtls_InitRecvdRecords(&spec->recvdRecords);
}
@@ -3536,14 +3550,15 @@ tls13_AESGCM(ssl3KeyMaterial *keys,
CK_GCM_PARAMS gcmParams;
unsigned char nonce[12];
+ PORT_Assert(additionalDataLen > 8);
memset(&gcmParams, 0, sizeof(gcmParams));
gcmParams.pIv = nonce;
gcmParams.ulIvLen = sizeof(nonce);
- gcmParams.pAAD = NULL;
- gcmParams.ulAADLen = 0;
+ gcmParams.pAAD = (PRUint8 *)(additionalData + 8);
+ gcmParams.ulAADLen = additionalDataLen - 8;
gcmParams.ulTagBits = 128; /* GCM measures tag length in bits. */
- tls13_WriteNonce(keys, additionalData, additionalDataLen,
+ tls13_WriteNonce(keys, additionalData, 8,
nonce, sizeof(nonce));
return tls13_AEAD(keys, doDecrypt, out, outlen, maxout, in, inlen,
CKM_AES_GCM,
@@ -3560,14 +3575,15 @@ tls13_ChaCha20Poly1305(ssl3KeyMaterial *keys, PRBool doDecrypt,
CK_NSS_AEAD_PARAMS aeadParams;
unsigned char nonce[12];
+ PORT_Assert(additionalDataLen > 8);
memset(&aeadParams, 0, sizeof(aeadParams));
aeadParams.pNonce = nonce;
aeadParams.ulNonceLen = sizeof(nonce);
- aeadParams.pAAD = NULL; /* No AAD in TLS 1.3. */
- aeadParams.ulAADLen = 0;
+ aeadParams.pAAD = (PRUint8 *)(additionalData + 8);
+ aeadParams.ulAADLen = additionalDataLen - 8;
aeadParams.ulTagLen = 16; /* The Poly1305 tag is 16 octets. */
- tls13_WriteNonce(keys, additionalData, additionalDataLen,
+ tls13_WriteNonce(keys, additionalData, 8,
nonce, sizeof(nonce));
return tls13_AEAD(keys, doDecrypt, out, outlen, maxout, in, inlen,
CKM_NSS_CHACHA20_POLY1305,
@@ -3579,7 +3595,7 @@ tls13_HandleEncryptedExtensions(sslSocket *ss, PRUint8 *b, PRUint32 length)
{
SECStatus rv;
PRUint32 innerLength;
- SECItem oldNpn = { siBuffer, NULL, 0 };
+ SECItem oldAlpn = { siBuffer, NULL, 0 };
PORT_Assert(ss->opt.noLocks || ssl_HaveRecvBufLock(ss));
PORT_Assert(ss->opt.noLocks || ssl_HaveSSL3HandshakeLock(ss));
@@ -3603,11 +3619,11 @@ tls13_HandleEncryptedExtensions(sslSocket *ss, PRUint8 *b, PRUint32 length)
return SECFailure;
}
- /* If we are doing 0-RTT, then we already have an NPN value. Stash
+ /* If we are doing 0-RTT, then we already have an ALPN value. Stash
* it for comparison. */
if (ss->ssl3.hs.zeroRttState == ssl_0rtt_sent &&
ss->xtnData.nextProtoState == SSL_NEXT_PROTO_EARLY_VALUE) {
- oldNpn = ss->xtnData.nextProto;
+ oldAlpn = ss->xtnData.nextProto;
ss->xtnData.nextProto.data = NULL;
ss->xtnData.nextProtoState = SSL_NEXT_PROTO_NO_SUPPORT;
}
@@ -3627,8 +3643,8 @@ tls13_HandleEncryptedExtensions(sslSocket *ss, PRUint8 *b, PRUint32 length)
ss->ssl3.hs.zeroRttState = ssl_0rtt_accepted;
/* Check that the server negotiated the same ALPN (if any). */
- if (SECITEM_CompareItem(&oldNpn, &ss->xtnData.nextProto)) {
- SECITEM_FreeItem(&oldNpn, PR_FALSE);
+ if (SECITEM_CompareItem(&oldAlpn, &ss->xtnData.nextProto)) {
+ SECITEM_FreeItem(&oldAlpn, PR_FALSE);
FATAL_ERROR(ss, SSL_ERROR_NEXT_PROTOCOL_DATA_INVALID,
illegal_parameter);
return SECFailure;
@@ -3650,7 +3666,7 @@ tls13_HandleEncryptedExtensions(sslSocket *ss, PRUint8 *b, PRUint32 length)
ss->ssl3.hs.zeroRttState == ssl_0rtt_ignored));
}
- SECITEM_FreeItem(&oldNpn, PR_FALSE);
+ SECITEM_FreeItem(&oldAlpn, PR_FALSE);
if (ss->ssl3.hs.kea_def->authKeyType == ssl_auth_psk) {
TLS13_SET_HS_STATE(ss, wait_finished);
} else {
@@ -3815,13 +3831,14 @@ tls13_HandleCertificateVerify(sslSocket *ss, PRUint8 *b, PRUint32 length)
rv = ssl_ConsumeSignatureScheme(ss, &b, &length, &sigScheme);
if (rv != SECSuccess) {
- PORT_SetError(SSL_ERROR_RX_MALFORMED_CERT_VERIFY);
+ FATAL_ERROR(ss, SSL_ERROR_RX_MALFORMED_CERT_VERIFY, illegal_parameter);
return SECFailure;
}
rv = ssl_CheckSignatureSchemeConsistency(ss, sigScheme, ss->sec.peerCert);
if (rv != SECSuccess) {
/* Error set already */
+ FATAL_ERROR(ss, PORT_GetError(), illegal_parameter);
return SECFailure;
}
hashAlg = ssl_SignatureSchemeToHashType(sigScheme);
@@ -4740,7 +4757,8 @@ static const struct {
{ ssl_tls13_cookie_xtn, _M2(client_hello, hello_retry_request) },
{ ssl_tls13_certificate_authorities_xtn, _M1(certificate_request) },
{ ssl_tls13_supported_versions_xtn, _M3(client_hello, server_hello,
- hello_retry_request) }
+ hello_retry_request) },
+ { ssl_record_size_limit_xtn, _M2(client_hello, encrypted_extensions) }
};
tls13ExtensionStatus
@@ -4780,19 +4798,20 @@ tls13_ExtensionStatus(PRUint16 extension, SSLHandshakeType message)
#undef _M2
#undef _M3
-/* TLS 1.3 doesn't actually have additional data but the aead function
- * signature overloads additional data to carry the record sequence
- * number and that's what we put here. The TLS 1.3 AEAD functions
- * just use this input as the sequence number and not as additional
- * data. */
+/* We cheat a bit on additional data because the AEAD interface
+ * which doesn't have room for the record number. The AAD we
+ * format is serialized record number followed by the true AD
+ * (i.e., the record header) plus the serialized record number. */
static SECStatus
-tls13_FormatAdditionalData(sslSocket *ss, PRUint8 *aad, unsigned int length,
- DTLSEpoch epoch, sslSequenceNumber seqNum)
+tls13_FormatAdditionalData(
+ sslSocket *ss,
+ const PRUint8 *header, unsigned int headerLen,
+ DTLSEpoch epoch, sslSequenceNumber seqNum,
+ PRUint8 *aad, unsigned int *aadLength, unsigned int maxLength)
{
SECStatus rv;
- sslBuffer buf = SSL_BUFFER_FIXED(aad, length);
+ sslBuffer buf = SSL_BUFFER_FIXED(aad, maxLength);
- PORT_Assert(length == 8);
if (IS_DTLS(ss)) {
rv = sslBuffer_AppendNumber(&buf, epoch, 2);
if (rv != SECSuccess) {
@@ -4803,6 +4822,14 @@ tls13_FormatAdditionalData(sslSocket *ss, PRUint8 *aad, unsigned int length,
if (rv != SECSuccess) {
return SECFailure;
}
+
+ rv = sslBuffer_Append(&buf, header, headerLen);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+
+ *aadLength = buf.len;
+
return SECSuccess;
}
@@ -4843,43 +4870,68 @@ tls13_ProtectRecord(sslSocket *ss,
PORT_Assert(cwSpec->direction == CipherSpecWrite);
SSL_TRC(3, ("%d: TLS13[%d]: spec=%d epoch=%d (%s) protect 0x%0llx len=%u",
SSL_GETPID(), ss->fd, cwSpec, cwSpec->epoch, cwSpec->phase,
- cwSpec->seqNum, contentLen));
+ cwSpec->nextSeqNum, contentLen));
- if (contentLen + 1 + tagLen > wrBuf->space) {
+ if (contentLen + 1 + tagLen > SSL_BUFFER_SPACE(wrBuf)) {
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
return SECFailure;
}
/* Copy the data into the wrBuf. We're going to encrypt in-place
* in the AEAD branch anyway */
- PORT_Memcpy(wrBuf->buf, pIn, contentLen);
+ PORT_Memcpy(SSL_BUFFER_NEXT(wrBuf), pIn, contentLen);
if (cipher_def->calg == ssl_calg_null) {
/* Shortcut for plaintext */
- wrBuf->len = contentLen;
+ rv = sslBuffer_Skip(wrBuf, contentLen, NULL);
+ PORT_Assert(rv == SECSuccess);
} else {
- PRUint8 aad[8];
+ PRUint8 hdr[13];
+ sslBuffer buf = SSL_BUFFER_FIXED(hdr, sizeof(hdr));
+ PRBool needsLength;
+ PRUint8 aad[21];
+ unsigned int aadLen;
+ int len;
+
PORT_Assert(cipher_def->type == type_aead);
/* Add the content type at the end. */
- wrBuf->buf[contentLen] = type;
+ *(SSL_BUFFER_NEXT(wrBuf) + contentLen) = type;
- rv = tls13_FormatAdditionalData(ss, aad, sizeof(aad), cwSpec->epoch,
- cwSpec->seqNum);
+ /* Create the header (ugly that we have to do it twice). */
+ rv = ssl_InsertRecordHeader(ss, cwSpec, content_application_data,
+ &buf, &needsLength);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+ if (needsLength) {
+ rv = sslBuffer_AppendNumber(&buf, contentLen + 1 +
+ cwSpec->cipherDef->tag_size,
+ 2);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+ }
+ rv = tls13_FormatAdditionalData(ss, SSL_BUFFER_BASE(&buf), SSL_BUFFER_LEN(&buf),
+ cwSpec->epoch, cwSpec->nextSeqNum,
+ aad, &aadLen, sizeof(aad));
if (rv != SECSuccess) {
return SECFailure;
}
rv = cwSpec->aead(&cwSpec->keyMaterial,
- PR_FALSE, /* do encrypt */
- wrBuf->buf, /* output */
- (int *)&wrBuf->len, /* out len */
- wrBuf->space, /* max out */
- wrBuf->buf, contentLen + 1, /* input */
- aad, sizeof(aad));
+ PR_FALSE, /* do encrypt */
+ SSL_BUFFER_NEXT(wrBuf), /* output */
+ &len, /* out len */
+ SSL_BUFFER_SPACE(wrBuf), /* max out */
+ SSL_BUFFER_NEXT(wrBuf), /* input */
+ contentLen + 1, /* input len */
+ aad, aadLen);
if (rv != SECSuccess) {
PORT_SetError(SSL_ERROR_ENCRYPTION_FAILURE);
return SECFailure;
}
+ rv = sslBuffer_Skip(wrBuf, len, NULL);
+ PORT_Assert(rv == SECSuccess);
}
return SECSuccess;
@@ -4897,25 +4949,22 @@ tls13_ProtectRecord(sslSocket *ss,
SECStatus
tls13_UnprotectRecord(sslSocket *ss,
ssl3CipherSpec *spec,
- SSL3Ciphertext *cText, sslBuffer *plaintext,
+ SSL3Ciphertext *cText,
+ sslBuffer *plaintext,
+ SSL3ContentType *innerType,
SSL3AlertDescription *alert)
{
const ssl3BulkCipherDef *cipher_def = spec->cipherDef;
- sslSequenceNumber seqNum;
- PRUint8 aad[8];
+ PRUint8 aad[21];
+ unsigned int aadLen;
SECStatus rv;
*alert = bad_record_mac; /* Default alert for most issues. */
PORT_Assert(spec->direction == CipherSpecRead);
- if (IS_DTLS(ss)) {
- seqNum = cText->seq_num & RECORD_SEQ_MASK;
- } else {
- seqNum = spec->seqNum;
- }
SSL_TRC(3, ("%d: TLS13[%d]: spec=%d epoch=%d (%s) unprotect 0x%0llx len=%u",
- SSL_GETPID(), ss->fd, spec, spec->epoch, spec->phase, seqNum,
- cText->buf->len));
+ SSL_GETPID(), ss->fd, spec, spec->epoch, spec->phase,
+ cText->seqNum, cText->buf->len));
/* We can perform this test in variable time because the record's total
* length and the ciphersuite are both public knowledge. */
@@ -4927,28 +4976,38 @@ tls13_UnprotectRecord(sslSocket *ss,
return SECFailure;
}
- /* Verify that the content type is right, even though we overwrite it. */
- if (cText->type != content_application_data) {
+ /* Verify that the content type is right, even though we overwrite it.
+ * Also allow the DTLS short header in TLS 1.3. */
+ if (!(cText->hdr[0] == content_application_data ||
+ (IS_DTLS(ss) &&
+ ss->version >= SSL_LIBRARY_VERSION_TLS_1_3 &&
+ (cText->hdr[0] & 0xe0) == 0x20))) {
SSL_TRC(3,
- ("%d: TLS13[%d]: record has invalid exterior content type=%d",
- SSL_GETPID(), ss->fd, cText->type));
+ ("%d: TLS13[%d]: record has invalid exterior type=%2.2x",
+ SSL_GETPID(), ss->fd, cText->hdr[0]));
/* Do we need a better error here? */
PORT_SetError(SSL_ERROR_BAD_MAC_READ);
return SECFailure;
}
- /* Check the version number in the record. */
- if (cText->version != spec->recordVersion) {
- /* Do we need a better error here? */
- SSL_TRC(3,
- ("%d: TLS13[%d]: record has bogus version",
- SSL_GETPID(), ss->fd));
- return SECFailure;
+ /* Check the version number in the record. Stream only. */
+ if (!IS_DTLS(ss)) {
+ SSL3ProtocolVersion version =
+ ((SSL3ProtocolVersion)cText->hdr[1] << 8) |
+ (SSL3ProtocolVersion)cText->hdr[2];
+ if (version != spec->recordVersion) {
+ /* Do we need a better error here? */
+ SSL_TRC(3, ("%d: TLS13[%d]: record has bogus version",
+ SSL_GETPID(), ss->fd));
+ return SECFailure;
+ }
}
/* Decrypt */
PORT_Assert(cipher_def->type == type_aead);
- rv = tls13_FormatAdditionalData(ss, aad, sizeof(aad), spec->epoch, seqNum);
+ rv = tls13_FormatAdditionalData(ss, cText->hdr, cText->hdrLen,
+ spec->epoch, cText->seqNum,
+ aad, &aadLen, sizeof(aad));
if (rv != SECSuccess) {
return SECFailure;
}
@@ -4959,7 +5018,7 @@ tls13_UnprotectRecord(sslSocket *ss,
plaintext->space, /* maxout */
cText->buf->buf, /* in */
cText->buf->len, /* inlen */
- aad, sizeof(aad));
+ aad, aadLen);
if (rv != SECSuccess) {
SSL_TRC(3,
("%d: TLS13[%d]: record has bogus MAC",
@@ -4968,6 +5027,16 @@ tls13_UnprotectRecord(sslSocket *ss,
return SECFailure;
}
+ /* There is a similar test in ssl3_HandleRecord, but this test is needed to
+ * account for padding. It's safe to do this here (including the alert),
+ * because it only confirms that the record exceeded the size limit, which
+ * is apparent from the size of the ciphertext. */
+ if (plaintext->len > spec->recordSizeLimit + 1) {
+ SSL3_SendAlert(ss, alert_fatal, record_overflow);
+ PORT_SetError(SSL_ERROR_RX_RECORD_TOO_LONG);
+ return SECFailure;
+ }
+
/* The record is right-padded with 0s, followed by the true
* content type, so read from the right until we receive a
* nonzero byte. */
@@ -4977,9 +5046,7 @@ tls13_UnprotectRecord(sslSocket *ss,
/* Bogus padding. */
if (plaintext->len < 1) {
- SSL_TRC(3,
- ("%d: TLS13[%d]: empty record",
- SSL_GETPID(), ss->fd, cText->type));
+ SSL_TRC(3, ("%d: TLS13[%d]: empty record", SSL_GETPID(), ss->fd));
/* It's safe to report this specifically because it happened
* after the MAC has been verified. */
PORT_SetError(SSL_ERROR_BAD_BLOCK_PADDING);
@@ -4987,12 +5054,12 @@ tls13_UnprotectRecord(sslSocket *ss,
}
/* Record the type. */
- cText->type = plaintext->buf[plaintext->len - 1];
+ *innerType = (SSL3ContentType)plaintext->buf[plaintext->len - 1];
--plaintext->len;
/* Check that we haven't received too much 0-RTT data. */
if (spec->epoch == TrafficKeyEarlyApplicationData &&
- cText->type == content_application_data) {
+ *innerType == content_application_data) {
if (plaintext->len > spec->earlyDataRemaining) {
*alert = unexpected_message;
PORT_SetError(SSL_ERROR_TOO_MUCH_EARLY_DATA);
@@ -5002,9 +5069,8 @@ tls13_UnprotectRecord(sslSocket *ss,
}
SSL_TRC(10,
- ("%d: TLS13[%d]: %s received record of length=%d type=%d",
- SSL_GETPID(), ss->fd, SSL_ROLE(ss),
- plaintext->len, cText->type));
+ ("%d: TLS13[%d]: %s received record of length=%d, type=%d",
+ SSL_GETPID(), ss->fd, SSL_ROLE(ss), plaintext->len, *innerType));
return SECSuccess;
}
@@ -5227,6 +5293,58 @@ tls13_EncodeDraftVersion(SSL3ProtocolVersion version)
return (PRUint16)version;
}
+SECStatus
+tls13_ClientReadSupportedVersion(sslSocket *ss)
+{
+ PRUint32 temp;
+ SSL3ProtocolVersion v;
+ TLSExtension *versionExtension;
+ SECItem it;
+ SECStatus rv;
+
+ /* Update the version based on the extension, as necessary. */
+ versionExtension = ssl3_FindExtension(ss, ssl_tls13_supported_versions_xtn);
+ if (!versionExtension) {
+ return SECSuccess;
+ }
+
+ /* Struct copy so we don't damage the extension. */
+ it = versionExtension->data;
+
+ rv = ssl3_ConsumeHandshakeNumber(ss, &temp, 2, &it.data, &it.len);
+ if (rv != SECSuccess) {
+ return SECFailure;
+ }
+ if (it.len) {
+ FATAL_ERROR(ss, SSL_ERROR_RX_MALFORMED_SERVER_HELLO, illegal_parameter);
+ return SECFailure;
+ }
+ v = (SSL3ProtocolVersion)temp;
+
+ /* You cannot negotiate < TLS 1.3 with supported_versions. */
+ if (v < SSL_LIBRARY_VERSION_TLS_1_3) {
+ FATAL_ERROR(ss, SSL_ERROR_RX_MALFORMED_SERVER_HELLO, illegal_parameter);
+ return SECFailure;
+ }
+
+#ifdef TLS_1_3_DRAFT_VERSION
+ if (temp == SSL_LIBRARY_VERSION_TLS_1_3) {
+ FATAL_ERROR(ss, SSL_ERROR_UNSUPPORTED_VERSION, protocol_version);
+ return SECFailure;
+ }
+ if (temp == tls13_EncodeDraftVersion(SSL_LIBRARY_VERSION_TLS_1_3)) {
+ v = SSL_LIBRARY_VERSION_TLS_1_3;
+ } else {
+ v = (SSL3ProtocolVersion)temp;
+ }
+#else
+ v = (SSL3ProtocolVersion)temp;
+#endif
+
+ ss->version = v;
+ return SECSuccess;
+}
+
/* Pick the highest version we support that is also advertised. */
SECStatus
tls13_NegotiateVersion(sslSocket *ss, const TLSExtension *supportedVersions)
diff --git a/security/nss/lib/ssl/tls13con.h b/security/nss/lib/ssl/tls13con.h
index 1aaffb651..f35b20023 100644
--- a/security/nss/lib/ssl/tls13con.h
+++ b/security/nss/lib/ssl/tls13con.h
@@ -28,6 +28,7 @@ typedef enum {
SECStatus tls13_UnprotectRecord(
sslSocket *ss, ssl3CipherSpec *spec,
SSL3Ciphertext *cText, sslBuffer *plaintext,
+ SSL3ContentType *innerType,
SSL3AlertDescription *alert);
#if defined(WIN32)
@@ -101,6 +102,7 @@ PRInt32 tls13_Read0RttData(sslSocket *ss, void *buf, PRInt32 len);
SECStatus tls13_HandleEarlyApplicationData(sslSocket *ss, sslBuffer *origBuf);
PRBool tls13_ClientAllow0Rtt(const sslSocket *ss, const sslSessionID *sid);
PRUint16 tls13_EncodeDraftVersion(SSL3ProtocolVersion version);
+SECStatus tls13_ClientReadSupportedVersion(sslSocket *ss);
SECStatus tls13_NegotiateVersion(sslSocket *ss,
const TLSExtension *supported_versions);
diff --git a/security/nss/lib/ssl/tls13exthandle.c b/security/nss/lib/ssl/tls13exthandle.c
index 899f23827..1ab8a8e59 100644
--- a/security/nss/lib/ssl/tls13exthandle.c
+++ b/security/nss/lib/ssl/tls13exthandle.c
@@ -860,12 +860,12 @@ tls13_ServerHandleCookieXtn(const sslSocket *ss, TLSExtensionData *xtnData,
}
if (xtnData->cookie.len == 0) {
- PORT_SetError(SSL_ERROR_RX_MALFORMED_SERVER_HELLO);
+ PORT_SetError(SSL_ERROR_RX_MALFORMED_CLIENT_HELLO);
return SECFailure;
}
if (data->len) {
- PORT_SetError(SSL_ERROR_RX_MALFORMED_SERVER_HELLO);
+ PORT_SetError(SSL_ERROR_RX_MALFORMED_CLIENT_HELLO);
return SECFailure;
}
diff --git a/security/nss/lib/util/nssutil.def b/security/nss/lib/util/nssutil.def
index 936455f6e..26e438ba6 100644
--- a/security/nss/lib/util/nssutil.def
+++ b/security/nss/lib/util/nssutil.def
@@ -322,4 +322,9 @@ _NSSUTIL_UTF8ToWide;-
_NSSUTIL_Access;-
;- local:
;- *;
-;-};
+;+NSSUTIL_3.38 { # NSS Utilities 3.38 release
+;+ global:
+SECITEM_MakeItem;
+;+ local:
+;+ *;
+;+};
diff --git a/security/nss/lib/util/nssutil.h b/security/nss/lib/util/nssutil.h
index b65d4a0c9..2749abaa1 100644
--- a/security/nss/lib/util/nssutil.h
+++ b/security/nss/lib/util/nssutil.h
@@ -19,10 +19,10 @@
* The format of the version string should be
* "<major version>.<minor version>[.<patch level>[.<build number>]][ <Beta>]"
*/
-#define NSSUTIL_VERSION "3.36.4"
+#define NSSUTIL_VERSION "3.38"
#define NSSUTIL_VMAJOR 3
-#define NSSUTIL_VMINOR 36
-#define NSSUTIL_VPATCH 4
+#define NSSUTIL_VMINOR 38
+#define NSSUTIL_VPATCH 0
#define NSSUTIL_VBUILD 0
#define NSSUTIL_BETA PR_FALSE
diff --git a/security/nss/lib/util/pkcs11t.h b/security/nss/lib/util/pkcs11t.h
index c945f314e..01ff8a572 100644
--- a/security/nss/lib/util/pkcs11t.h
+++ b/security/nss/lib/util/pkcs11t.h
@@ -466,6 +466,8 @@ typedef CK_ULONG CK_ATTRIBUTE_TYPE;
#define CKA_EXPONENT_1 0x00000126
#define CKA_EXPONENT_2 0x00000127
#define CKA_COEFFICIENT 0x00000128
+/* CKA_PUBLIC_KEY_INFO is new for v2.40 */
+#define CKA_PUBLIC_KEY_INFO 0x00000129
#define CKA_PRIME 0x00000130
#define CKA_SUBPRIME 0x00000131
#define CKA_BASE 0x00000132
diff --git a/security/nss/lib/util/secasn1d.c b/security/nss/lib/util/secasn1d.c
index ccd97481d..ed237ed72 100644
--- a/security/nss/lib/util/secasn1d.c
+++ b/security/nss/lib/util/secasn1d.c
@@ -2987,7 +2987,9 @@ SEC_ASN1DecoderFinish(SEC_ASN1DecoderContext *cx)
* XXX anything else that needs to be finished?
*/
- PORT_FreeArena(cx->our_pool, PR_TRUE);
+ if (cx) {
+ PORT_FreeArena(cx->our_pool, PR_TRUE);
+ }
return rv;
}
diff --git a/security/nss/lib/util/secitem.c b/security/nss/lib/util/secitem.c
index 22c5b1f6e..1e505a9af 100644
--- a/security/nss/lib/util/secitem.c
+++ b/security/nss/lib/util/secitem.c
@@ -76,6 +76,15 @@ loser:
}
SECStatus
+SECITEM_MakeItem(PLArenaPool *arena, SECItem *dest, unsigned char *data,
+ unsigned int len)
+{
+ SECItem it = { siBuffer, data, len };
+
+ return SECITEM_CopyItem(arena, dest, &it);
+}
+
+SECStatus
SECITEM_ReallocItem(PLArenaPool *arena, SECItem *item, unsigned int oldlen,
unsigned int newlen)
{
diff --git a/security/nss/lib/util/secitem.h b/security/nss/lib/util/secitem.h
index 5b9d0e174..4fb123938 100644
--- a/security/nss/lib/util/secitem.h
+++ b/security/nss/lib/util/secitem.h
@@ -35,6 +35,14 @@ SEC_BEGIN_PROTOS
extern SECItem *SECITEM_AllocItem(PLArenaPool *arena, SECItem *item,
unsigned int len);
+/* Allocate and make an item with the requested contents.
+ *
+ * We seem to have mostly given up on SECItemType, so the result is
+ * always siBuffer.
+ */
+extern SECStatus SECITEM_MakeItem(PLArenaPool *arena, SECItem *dest,
+ unsigned char *data, unsigned int len);
+
/*
** This is a legacy function containing bugs. It doesn't update item->len,
** and it has other issues as described in bug 298649 and bug 298938.
diff --git a/security/nss/nss-tool/enc/enctool.cc b/security/nss/nss-tool/enc/enctool.cc
index b3c0d1dbe..e37e4593a 100644
--- a/security/nss/nss-tool/enc/enctool.cc
+++ b/security/nss/nss-tool/enc/enctool.cc
@@ -271,7 +271,6 @@ bool EncTool::DoCipher(std::string file_name, std::string out_file,
if (file_name.empty()) {
std::vector<uint8_t> data = ReadInputData("");
std::vector<uint8_t> out(data.size() + 16);
- SECStatus rv;
if (encrypt) {
rv = PK11_Encrypt(symKey.get(), cipher_mech_, params.get(), out.data(),
&outLen, data.size() + 16, data.data(), data.size());
diff --git a/security/nss/tests/all.sh b/security/nss/tests/all.sh
index 3a02debef..f8a777fb3 100755
--- a/security/nss/tests/all.sh
+++ b/security/nss/tests/all.sh
@@ -309,7 +309,7 @@ TESTS=${NSS_TESTS:-$tests}
ALL_TESTS=${TESTS}
-nss_ssl_tests="crl iopr policy"
+nss_ssl_tests="crl iopr policy normal_normal"
if [ $NO_INIT_SUPPORT -eq 0 ]; then
nss_ssl_tests="$nss_ssl_tests fips_normal normal_fips"
fi
diff --git a/security/nss/tests/bogo/bogo.sh b/security/nss/tests/bogo/bogo.sh
index d1a93bf9b..4fccb845b 100755
--- a/security/nss/tests/bogo/bogo.sh
+++ b/security/nss/tests/bogo/bogo.sh
@@ -25,7 +25,7 @@ bogo_init()
BORING=${BORING:=boringssl}
if [ ! -d "$BORING" ]; then
git clone -q https://boringssl.googlesource.com/boringssl "$BORING"
- git -C "$BORING" checkout -q a513e86c1ebb1383930c9e504bdabcc302a85f30
+ git -C "$BORING" checkout -q ec55dc15d3a39e5f1a58bfd79148729f38f6acb4
fi
SCRIPTNAME="bogo.sh"
@@ -39,11 +39,12 @@ bogo_cleanup()
. common/cleanup.sh
}
-cd "$(dirname "$0")"
-SOURCE_DIR="$PWD"/../..
+cd ../
+cwd=$(cd $(dirname $0); pwd -P)
+SOURCE_DIR="$cwd"/..
bogo_init
(cd "$BORING"/ssl/test/runner;
- GOPATH="$PWD" go test -pipe -shim-path "${BINDIR}"/nss_bogo_shim \
+ GOPATH="$cwd" go test -pipe -shim-path "${BINDIR}"/nss_bogo_shim \
-loose-errors -allow-unimplemented \
-shim-config "${SOURCE_DIR}/gtests/nss_bogo_shim/config.json") \
2>bogo.errors | tee bogo.log
diff --git a/security/nss/tests/cert/cert.sh b/security/nss/tests/cert/cert.sh
index d1a9148a9..34006efd1 100755
--- a/security/nss/tests/cert/cert.sh
+++ b/security/nss/tests/cert/cert.sh
@@ -1060,6 +1060,25 @@ cert_extended_ssl()
# -d "${PROFILEDIR}" -i "${CLIENT_CADIR}/clientCA-ecmixed.ca.cert" \
# 2>&1
+ # Check that a repeated import with a different nickname doesn't change the
+ # nickname of the existing cert (bug 1458518).
+ # We want to search for the results using grep, to avoid subset matches,
+ # we'll use one of the longer nicknames for testing.
+ # (Because "grep -w hostname" matches "grep -w hostname-dsamixed")
+ MYDBPASS="-d ${PROFILEDIR} -f ${R_PWFILE}"
+ TESTNAME="Ensure there's exactly one match for ${CERTNAME}-dsamixed"
+ cert_check_nickname_exists "$MYDBPASS" "${CERTNAME}-dsamixed" 0 1 "${TESTNAME}"
+
+ CU_ACTION="Repeated import of $CERTNAME's mixed DSA Cert with different nickname"
+ certu -A -n "${CERTNAME}-repeated-dsamixed" -t "u,u,u" -d "${PROFILEDIR}" \
+ -f "${R_PWFILE}" -i "${CERTNAME}-dsamixed.cert" 2>&1
+
+ TESTNAME="Ensure there's still exactly one match for ${CERTNAME}-dsamixed"
+ cert_check_nickname_exists "$MYDBPASS" "${CERTNAME}-dsamixed" 0 1 "${TESTNAME}"
+
+ TESTNAME="Ensure there's zero matches for ${CERTNAME}-repeated-dsamixed"
+ cert_check_nickname_exists "$MYDBPASS" "${CERTNAME}-repeated-dsamixed" 0 0 "${TESTNAME}"
+
echo "Importing all the server's own CA chain into the servers DB"
for CA in `find ${SERVER_CADIR} -name "?*.ca.cert"` ;
do
@@ -1532,6 +1551,37 @@ cert_make_with_param()
return 0
}
+cert_check_nickname_exists()
+{
+ MYDIRPASS="$1"
+ MYCERTNAME="$2"
+ EXPECT="$3"
+ EXPECTCOUNT="$4"
+ MYTESTNAME="$5"
+
+ echo certutil ${MYDIRPASS} -L
+ ${BINDIR}/certutil ${MYDIRPASS} -L
+
+ RET=$?
+ if [ "${RET}" -ne "${EXPECT}" ]; then
+ CERTFAILED=1
+ html_failed "${MYTESTNAME} - list"
+ cert_log "ERROR: ${MYTESTNAME} - list"
+ return 1
+ fi
+
+ LISTCOUNT=`${BINDIR}/certutil ${MYDIRPASS} -L | grep -wc ${MYCERTNAME}`
+ if [ "${LISTCOUNT}" -ne "${EXPECTCOUNT}" ]; then
+ CERTFAILED=1
+ html_failed "${MYTESTNAME} - list and count"
+ cert_log "ERROR: ${MYTESTNAME} - list and count failed"
+ return 1
+ fi
+
+ html_passed "${MYTESTNAME}"
+ return 0
+}
+
cert_list_and_count_dns()
{
DIRPASS="$1"
@@ -2425,6 +2475,31 @@ EOF
RETEXPECTED=0
}
+cert_test_orphan_key_reuse()
+{
+ CU_ACTION="Create orphan key in serverdir"
+ certu -G -f "${R_PWFILE}" -z ${R_NOISE_FILE} -d ${PROFILEDIR}
+ # Let's get the key ID of the first orphan key.
+ # The output of certutil -K (list keys) isn't well formatted.
+ # The initial <key-number> part may or may not contain white space, which
+ # makes the use of awk to filter the column unreliable.
+ # To fix that, we remove the initial <number> field using sed, then select the
+ # column that contains the key ID.
+ ORPHAN=`${BINDIR}/certutil -d ${PROFILEDIR} -K -f ${R_PWFILE} | \
+ sed 's/^<.*>//g' | grep -w orphan | head -1 | awk '{print $2}'`
+ CU_ACTION="Create cert request for orphan key"
+ certu -R -f "${R_PWFILE}" -k ${ORPHAN} -s "CN=orphan" -d ${PROFILEDIR} \
+ -o ${SERVERDIR}/orphan.req
+ # Ensure that creating the request really works by listing it, and check
+ # if listing was successful.
+ ${BINDIR}/pp -t certificate-request -i ${SERVERDIR}/orphan.req
+ RET=$?
+ if [ "$RET" -ne 0 ]; then
+ html_failed "Listing cert request for orphan key ($RET)"
+ cert_log "ERROR: Listing cert request for orphan key failed $RET"
+ fi
+}
+
############################## cert_cleanup ############################
# local shell function to finish this script (no exit since it might be
# sourced)
@@ -2444,6 +2519,7 @@ cert_all_CA
cert_test_implicit_db_init
cert_extended_ssl
cert_ssl
+cert_test_orphan_key_reuse
cert_smime_client
IS_FIPS_DISABLED=`certutil --build-flags |grep -cw NSS_FIPS_DISABLED`
if [ $IS_FIPS_DISABLED -ne 0 ]; then
diff --git a/security/nss/tests/common/init.sh b/security/nss/tests/common/init.sh
index 933551e83..6aa22af8d 100644
--- a/security/nss/tests/common/init.sh
+++ b/security/nss/tests/common/init.sh
@@ -543,8 +543,8 @@ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
D_DISTRUST="Distrust.$version"
D_RSAPSS="RSAPSS.$version"
- # we need relative pathnames of these files abd directories, since our
- # tools can't handle the unix style absolut pathnames on cygnus
+ # we need relative pathnames of these files and directories, since our
+ # tools can't handle the unix style absolute pathnames on cygnus
R_CADIR=../CA
R_SERVERDIR=../server
@@ -565,6 +565,7 @@ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
R_NOLOGINDIR=../nologin
R_SSLGTESTDIR=../ssl_gtests
R_GTESTDIR=../gtests
+ R_RSAPSSDIR=../rsapss
#
# profiles are either paths or domains depending on the setting of
@@ -581,6 +582,7 @@ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
P_R_EXT_SERVERDIR=${R_EXT_SERVERDIR}
P_R_EXT_CLIENTDIR=${R_EXT_CLIENTDIR}
P_R_IMPLICIT_INIT_DIR=${R_IMPLICIT_INIT_DIR}
+ P_R_RSAPSSDIR=${R_RSAPSSDIR}
if [ -n "${MULTIACCESS_DBM}" ]; then
P_R_CADIR="multiaccess:${D_CA}"
P_R_ALICEDIR="multiaccess:${D_ALICE}"
@@ -593,6 +595,7 @@ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
P_R_EXT_SERVERDIR="multiaccess:${D_EXT_SERVER}"
P_R_EXT_CLIENTDIR="multiaccess:${D_EXT_CLIENT}"
P_R_IMPLICIT_INIT_DIR="multiaccess:${D_IMPLICIT_INIT}"
+ P_R_RSAPSSDIR="multiaccess:${D_RSAPSS}"
fi
R_PWFILE=../tests.pw
diff --git a/security/nss/tests/interop/interop.sh b/security/nss/tests/interop/interop.sh
index 97c82e0ca..50c8bb3c1 100644
--- a/security/nss/tests/interop/interop.sh
+++ b/security/nss/tests/interop/interop.sh
@@ -25,7 +25,7 @@ interop_init()
INTEROP=${INTEROP:=tls_interop}
if [ ! -d "$INTEROP" ]; then
git clone -q https://github.com/ttaubert/tls-interop "$INTEROP"
- git -C "$INTEROP" checkout -q 07930b791827c1bdb6f4c19ca0aa63850fd59e22
+ git -C "$INTEROP" checkout -q d07b28ac32b390dea1c9bcca5c56716247d23e5e
fi
INTEROP=$(cd "$INTEROP";pwd -P)
diff --git a/security/nss/tests/ssl/ssl.sh b/security/nss/tests/ssl/ssl.sh
index de867a4bd..9a63bd997 100755
--- a/security/nss/tests/ssl/ssl.sh
+++ b/security/nss/tests/ssl/ssl.sh
@@ -283,34 +283,30 @@ ssl_cov()
echo "${testname}" | grep "EXPORT" > /dev/null
EXP=$?
- if [ "$ectype" = "ECC" ] ; then
- echo "$SCRIPTNAME: skipping $testname (ECC only)"
- else
- echo "$SCRIPTNAME: running $testname ----------------------------"
- VMAX="ssl3"
- if [ "$testmax" = "TLS10" ]; then
- VMAX="tls1.0"
- fi
- if [ "$testmax" = "TLS11" ]; then
- VMAX="tls1.1"
- fi
- if [ "$testmax" = "TLS12" ]; then
- VMAX="tls1.2"
- fi
-
- echo "tstclnt -4 -p ${PORT} -h ${HOSTADDR} -c ${param} -V ${VMIN}:${VMAX} ${CLIENT_OPTIONS} \\"
- echo " -f -d ${P_R_CLIENTDIR} $verbose -w nss < ${REQUEST_FILE}"
-
- rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
- ${PROFTOOL} ${BINDIR}/tstclnt -4 -p ${PORT} -h ${HOSTADDR} -c ${param} -V ${VMIN}:${VMAX} ${CLIENT_OPTIONS} -f \
- -d ${P_R_CLIENTDIR} $verbose -w nss < ${REQUEST_FILE} \
- >${TMP}/$HOST.tmp.$$ 2>&1
- ret=$?
- cat ${TMP}/$HOST.tmp.$$
- rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
- html_msg $ret 0 "${testname}" \
- "produced a returncode of $ret, expected is 0"
+ echo "$SCRIPTNAME: running $testname ----------------------------"
+ VMAX="ssl3"
+ if [ "$testmax" = "TLS10" ]; then
+ VMAX="tls1.0"
+ fi
+ if [ "$testmax" = "TLS11" ]; then
+ VMAX="tls1.1"
fi
+ if [ "$testmax" = "TLS12" ]; then
+ VMAX="tls1.2"
+ fi
+
+ echo "tstclnt -4 -p ${PORT} -h ${HOSTADDR} -c ${param} -V ${VMIN}:${VMAX} ${CLIENT_OPTIONS} \\"
+ echo " -f -d ${P_R_CLIENTDIR} $verbose -w nss < ${REQUEST_FILE}"
+
+ rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
+ ${PROFTOOL} ${BINDIR}/tstclnt -4 -p ${PORT} -h ${HOSTADDR} -c ${param} -V ${VMIN}:${VMAX} ${CLIENT_OPTIONS} -f \
+ -d ${P_R_CLIENTDIR} $verbose -w nss < ${REQUEST_FILE} \
+ >${TMP}/$HOST.tmp.$$ 2>&1
+ ret=$?
+ cat ${TMP}/$HOST.tmp.$$
+ rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
+ html_msg $ret 0 "${testname}" \
+ "produced a returncode of $ret, expected is 0"
done
kill_selfserv
@@ -335,8 +331,6 @@ ssl_auth()
echo "$SCRIPTNAME: skipping $testname (non-FIPS only)"
elif [ "$ectype" = "SNI" -a "$NORM_EXT" = "Extended Test" ] ; then
echo "$SCRIPTNAME: skipping $testname for $NORM_EXT"
- elif [ "$ectype" = "ECC" ] ; then
- echo "$SCRIPTNAME: skipping $testname (ECC only)"
else
cparam=`echo $cparam | sed -e 's;_; ;g' -e "s/TestUser/$USER_NICKNAME/g" `
if [ "$ectype" = "SNI" ]; then
@@ -550,8 +544,6 @@ ssl_stress()
if [ "$ectype" = "SNI" -a "$NORM_EXT" = "Extended Test" ] ; then
echo "$SCRIPTNAME: skipping $testname for $NORM_EXT"
- elif [ "$ectype" = "ECC" ] ; then
- echo "$SCRIPTNAME: skipping $testname (ECC only)"
elif [ "${CLIENT_MODE}" = "fips" -a "${CAUTH}" -ne 0 ] ; then
echo "$SCRIPTNAME: skipping $testname (non-FIPS only)"
elif [ "${NOLOGIN}" -eq 0 ] && \
@@ -615,9 +607,7 @@ ssl_crl_ssl()
ignore_blank_lines ${SSLAUTH} | \
while read ectype value sparam cparam testname
do
- if [ "$ectype" = "ECC" ] ; then
- echo "$SCRIPTNAME: skipping $testname (ECC only)"
- elif [ "$ectype" = "SNI" ]; then
+ if [ "$ectype" = "SNI" ]; then
continue
else
servarg=`echo $sparam | awk '{r=split($0,a,"-r") - 1;print r;}'`
@@ -729,43 +719,39 @@ ssl_policy()
do
VMIN="ssl3"
- if [ "$ectype" = "ECC" ] ; then
- echo "$SCRIPTNAME: skipping $testname (ECC only)"
- else
- echo "$SCRIPTNAME: running $testname ----------------------------"
- VMAX="ssl3"
- if [ "$testmax" = "TLS10" ]; then
- VMAX="tls1.0"
- fi
- if [ "$testmax" = "TLS11" ]; then
- VMAX="tls1.1"
- fi
- if [ "$testmax" = "TLS12" ]; then
- VMAX="tls1.2"
- fi
+ echo "$SCRIPTNAME: running $testname ----------------------------"
+ VMAX="ssl3"
+ if [ "$testmax" = "TLS10" ]; then
+ VMAX="tls1.0"
+ fi
+ if [ "$testmax" = "TLS11" ]; then
+ VMAX="tls1.1"
+ fi
+ if [ "$testmax" = "TLS12" ]; then
+ VMAX="tls1.2"
+ fi
- # load the policy
- policy=`echo ${policy} | sed -e 's;_; ;g'`
- setup_policy "$policy" ${P_R_CLIENTDIR}
+ # load the policy
+ policy=`echo ${policy} | sed -e 's;_; ;g'`
+ setup_policy "$policy" ${P_R_CLIENTDIR}
- echo "tstclnt -4 -p ${PORT} -h ${HOSTADDR} -c ${param} -V ${VMIN}:${VMAX} ${CLIENT_OPTIONS} \\"
- echo " -f -d ${P_R_CLIENTDIR} $verbose -w nss < ${REQUEST_FILE}"
+ echo "tstclnt -4 -p ${PORT} -h ${HOSTADDR} -c ${param} -V ${VMIN}:${VMAX} ${CLIENT_OPTIONS} \\"
+ echo " -f -d ${P_R_CLIENTDIR} $verbose -w nss < ${REQUEST_FILE}"
- rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
- ${PROFTOOL} ${BINDIR}/tstclnt -4 -p ${PORT} -h ${HOSTADDR} -c ${param} -V ${VMIN}:${VMAX} ${CLIENT_OPTIONS} -f \
- -d ${P_R_CLIENTDIR} $verbose -w nss < ${REQUEST_FILE} \
- >${TMP}/$HOST.tmp.$$ 2>&1
- ret=$?
- cat ${TMP}/$HOST.tmp.$$
- rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
+ rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
+ ${PROFTOOL} ${BINDIR}/tstclnt -4 -p ${PORT} -h ${HOSTADDR} -c ${param} -V ${VMIN}:${VMAX} ${CLIENT_OPTIONS} -f \
+ -d ${P_R_CLIENTDIR} $verbose -w nss < ${REQUEST_FILE} \
+ >${TMP}/$HOST.tmp.$$ 2>&1
+ ret=$?
+ cat ${TMP}/$HOST.tmp.$$
+ rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
- #workaround for bug #402058
- [ $ret -ne 0 ] && ret=1
- [ ${value} -ne 0 ] && value=1
+ #workaround for bug #402058
+ [ $ret -ne 0 ] && ret=1
+ [ ${value} -ne 0 ] && value=1
- html_msg $ret ${value} "${testname}" \
- "produced a returncode of $ret, expected is ${value}"
- fi
+ html_msg $ret ${value} "${testname}" \
+ "produced a returncode of $ret, expected is ${value}"
done
cp ${P_R_CLIENTDIR}/pkcs11.txt.sav ${P_R_CLIENTDIR}/pkcs11.txt
@@ -1004,9 +990,7 @@ ssl_crl_cache()
while read ectype value sparam cparam testname
do
[ "$ectype" = "" ] && continue
- if [ "$ectype" = "ECC" ] ; then
- echo "$SCRIPTNAME: skipping $testname (ECC only)"
- elif [ "$ectype" = "SNI" ]; then
+ if [ "$ectype" = "SNI" ]; then
continue
else
servarg=`echo $sparam | awk '{r=split($0,a,"-r") - 1;print r;}'`
diff --git a/security/nss/tests/ssl_gtests/ssl_gtests.sh b/security/nss/tests/ssl_gtests/ssl_gtests.sh
index fd678bf59..eef77f16f 100755
--- a/security/nss/tests/ssl_gtests/ssl_gtests.sh
+++ b/security/nss/tests/ssl_gtests/ssl_gtests.sh
@@ -47,6 +47,7 @@ make_cert() {
dsa) type_args='-g 1024' ;;
rsa) type_args='-g 1024' ;;
rsa2048) type_args='-g 2048';type=rsa ;;
+ rsa8192) type_args='-g 8192';type=rsa ;;
rsapss) type_args='-g 1024 --pss';type=rsa ;;
p256) type_args='-q nistp256';type=ec ;;
p384) type_args='-q secp384r1';type=ec ;;
@@ -83,6 +84,7 @@ ssl_gtest_certs() {
make_cert client rsa sign
make_cert rsa rsa sign kex
make_cert rsa2048 rsa2048 sign kex
+ make_cert rsa8192 rsa8192 sign kex
make_cert rsa_sign rsa sign
make_cert rsa_pss rsapss sign
make_cert rsa_decrypt rsa kex
diff --git a/security/nss/tests/tools/TestRSAPSS.p12 b/security/nss/tests/tools/TestRSAPSS.p12
new file mode 100644
index 000000000..91473891c
--- /dev/null
+++ b/security/nss/tests/tools/TestRSAPSS.p12
Binary files differ
diff --git a/security/nss/tests/tools/tools.sh b/security/nss/tests/tools/tools.sh
index 11be23e05..7cf1ef73f 100644
--- a/security/nss/tests/tools/tools.sh
+++ b/security/nss/tests/tools/tools.sh
@@ -105,6 +105,7 @@ tools_init()
mkdir -p ${TOOLSDIR}/data
cp ${QADIR}/tools/TestOldCA.p12 ${TOOLSDIR}/data
cp ${QADIR}/tools/TestOldAES128CA.p12 ${TOOLSDIR}/data
+ cp ${QADIR}/tools/TestRSAPSS.p12 ${TOOLSDIR}/data
cd ${TOOLSDIR}
}
@@ -436,6 +437,23 @@ tools_p12_import_old_files()
check_tmpfile
}
+tools_p12_import_rsa_pss_private_key()
+{
+ echo "$SCRIPTNAME: Importing RSA-PSS private key from PKCS#12 file --------------"
+ ${BINDIR}/pk12util -i ${TOOLSDIR}/data/TestRSAPSS.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '' 2>&1
+ ret=$?
+ html_msg $ret 0 "Importing RSA-PSS private key from PKCS#12 file"
+ check_tmpfile
+
+ # Check if RSA-PSS identifier is included in the key listing
+ ${BINDIR}/certutil -d ${P_R_COPYDIR} -K -f ${R_PWFILE} | grep '^<[0-9 ]*> *rsaPss'
+ ret=$?
+ html_msg $ret 0 "Listing RSA-PSS private key imported from PKCS#12 file"
+ check_tmpfile
+
+ return $ret
+}
+
############################## tools_p12 ###############################
# local shell function to test basic functionality of pk12util
########################################################################
@@ -448,6 +466,9 @@ tools_p12()
tools_p12_export_with_none_ciphers
tools_p12_export_with_invalid_ciphers
tools_p12_import_old_files
+ if [ "${TEST_MODE}" = "SHARED_DB" ] ; then
+ tools_p12_import_rsa_pss_private_key
+ fi
}
############################## tools_sign ##############################
diff --git a/services/sync/Weave.js b/services/sync/Weave.js
index a414fa083..de131d08a 100644
--- a/services/sync/Weave.js
+++ b/services/sync/Weave.js
@@ -72,13 +72,6 @@ WeaveService.prototype = {
Ci.nsISupportsWeakReference]),
ensureLoaded: function () {
-#ifndef MC_PALEMOON
- // If we are loaded and not using FxA, load the migration module.
- if (!this.fxAccountsEnabled) {
- Cu.import("resource://services-sync/FxaMigrator.jsm");
- }
-#endif
-
Components.utils.import("resource://services-sync/main.js");
// Side-effect of accessing the service is that it is instantiated.
diff --git a/services/sync/modules/FxaMigrator.jsm b/services/sync/modules/FxaMigrator.jsm
deleted file mode 100644
index 735b60144..000000000
--- a/services/sync/modules/FxaMigrator.jsm
+++ /dev/null
@@ -1,99 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-"use strict;"
-
-// Note that this module used to supervise the step-by-step migration from
-// a legacy Sync account to a FxA-based Sync account. In bug 1205928, this
-// changed to automatically disconnect the legacy Sync account.
-
-const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu} = Components;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Log.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-
-XPCOMUtils.defineLazyGetter(this, "WeaveService", function() {
- return Cc["@mozilla.org/weave/service;1"]
- .getService(Components.interfaces.nsISupports)
- .wrappedJSObject;
-});
-
-XPCOMUtils.defineLazyModuleGetter(this, "Weave",
- "resource://services-sync/main.js");
-
-// We send this notification when we perform the disconnection. The browser
-// window will show a one-off notification bar.
-const OBSERVER_STATE_CHANGE_TOPIC = "fxa-migration:state-changed";
-
-const OBSERVER_TOPICS = [
- "xpcom-shutdown",
- "weave:eol",
-];
-
-function Migrator() {
- // Leave the log-level as Debug - Sync will setup log appenders such that
- // these messages generally will not be seen unless other log related
- // prefs are set.
- this.log.level = Log.Level.Debug;
-
- for (let topic of OBSERVER_TOPICS) {
- Services.obs.addObserver(this, topic, false);
- }
-}
-
-Migrator.prototype = {
- log: Log.repository.getLogger("Sync.SyncMigration"),
-
- finalize() {
- for (let topic of OBSERVER_TOPICS) {
- Services.obs.removeObserver(this, topic);
- }
- },
-
- observe(subject, topic, data) {
- this.log.debug("observed " + topic);
- switch (topic) {
- case "xpcom-shutdown":
- this.finalize();
- break;
-
- default:
- // this notification when configured with legacy Sync means we want to
- // disconnect
- if (!WeaveService.fxAccountsEnabled) {
- this.log.info("Disconnecting from legacy Sync");
- // Set up an observer for when the disconnection is complete.
- let observe;
- Services.obs.addObserver(observe = () => {
- this.log.info("observed that startOver is complete");
- Services.obs.removeObserver(observe, "weave:service:start-over:finish");
- // Send the notification for the UI.
- Services.obs.notifyObservers(null, OBSERVER_STATE_CHANGE_TOPIC, null);
- }, "weave:service:start-over:finish", false);
-
- // Do the disconnection.
- Weave.Service.startOver();
- }
- }
- },
-
- get learnMoreLink() {
- try {
- var url = Services.prefs.getCharPref("app.support.baseURL");
- } catch (err) {
- return null;
- }
- url += "sync-upgrade";
- let sb = Services.strings.createBundle("chrome://weave/locale/services/sync.properties");
- return {
- text: sb.GetStringFromName("sync.eol.learnMore.label"),
- href: Services.urlFormatter.formatURL(url),
- };
- },
-};
-
-// We expose a singleton
-this.EXPORTED_SYMBOLS = ["fxaMigrator"];
-var fxaMigrator = new Migrator();
diff --git a/services/sync/moz.build b/services/sync/moz.build
index 83c39274a..5e5de10b7 100644
--- a/services/sync/moz.build
+++ b/services/sync/moz.build
@@ -26,7 +26,6 @@ EXTRA_JS_MODULES['services-sync'] += [
'modules/browserid_identity.js',
'modules/collection_validator.js',
'modules/engines.js',
- 'modules/FxaMigrator.jsm',
'modules/identity.js',
'modules/jpakeclient.js',
'modules/keys.js',
diff --git a/services/sync/tests/unit/test_fxa_migration.js b/services/sync/tests/unit/test_fxa_migration.js
deleted file mode 100644
index 0ca770e28..000000000
--- a/services/sync/tests/unit/test_fxa_migration.js
+++ /dev/null
@@ -1,117 +0,0 @@
-// We change this pref before anything else initializes
-Services.prefs.setCharPref("identity.fxaccounts.auth.uri", "http://localhost");
-
-// Test the FxAMigration module
-Cu.import("resource://services-sync/FxaMigrator.jsm");
-Cu.import("resource://gre/modules/Promise.jsm");
-
-// Set our username pref early so sync initializes with the legacy provider.
-Services.prefs.setCharPref("services.sync.username", "foo");
-// And ensure all debug messages end up being printed.
-Services.prefs.setCharPref("services.sync.log.appender.dump", "Debug");
-
-// Now import sync
-Cu.import("resource://services-sync/service.js");
-Cu.import("resource://services-sync/record.js");
-Cu.import("resource://services-sync/util.js");
-
-// And reset the username.
-Services.prefs.clearUserPref("services.sync.username");
-
-Cu.import("resource://testing-common/services/sync/utils.js");
-Cu.import("resource://testing-common/services/common/logging.js");
-Cu.import("resource://testing-common/services/sync/rotaryengine.js");
-
-const FXA_USERNAME = "someone@somewhere";
-
-// Utilities
-function promiseOneObserver(topic) {
- return new Promise((resolve, reject) => {
- let observer = function(subject, topic, data) {
- Services.obs.removeObserver(observer, topic);
- resolve({ subject: subject, data: data });
- }
- Services.obs.addObserver(observer, topic, false);
- });
-}
-
-function promiseStopServer(server) {
- return new Promise((resolve, reject) => {
- server.stop(resolve);
- });
-}
-
-
-// Helpers
-function configureLegacySync() {
- let engine = new RotaryEngine(Service);
- engine.enabled = true;
- Svc.Prefs.set("registerEngines", engine.name);
- Svc.Prefs.set("log.logger.engine.rotary", "Trace");
-
- let contents = {
- meta: {global: {engines: {rotary: {version: engine.version,
- syncID: engine.syncID}}}},
- crypto: {},
- rotary: {}
- };
-
- const USER = "foo";
- const PASSPHRASE = "abcdeabcdeabcdeabcdeabcdea";
-
- setBasicCredentials(USER, "password", PASSPHRASE);
-
- let onRequest = function(request, response) {
- // ideally we'd only do this while a legacy user is configured, but WTH.
- response.setHeader("x-weave-alert", JSON.stringify({code: "soft-eol"}));
- }
- let server = new SyncServer({onRequest: onRequest});
- server.registerUser(USER, "password");
- server.createContents(USER, contents);
- server.start();
-
- Service.serverURL = server.baseURI;
- Service.clusterURL = server.baseURI;
- Service.identity.username = USER;
- Service._updateCachedURLs();
-
- Service.engineManager._engines[engine.name] = engine;
-
- return [engine, server];
-}
-
-add_task(function *testMigrationUnlinks() {
-
- // when we do a .startOver we want the new provider.
- let oldValue = Services.prefs.getBoolPref("services.sync-testing.startOverKeepIdentity");
- Services.prefs.setBoolPref("services.sync-testing.startOverKeepIdentity", false);
-
- do_register_cleanup(() => {
- Services.prefs.setBoolPref("services.sync-testing.startOverKeepIdentity", oldValue)
- });
-
- // Arrange for a legacy sync user.
- let [engine, server] = configureLegacySync();
-
- // Start a sync - this will cause an EOL notification which the migrator's
- // observer will notice.
- let promiseMigration = promiseOneObserver("fxa-migration:state-changed");
- let promiseStartOver = promiseOneObserver("weave:service:start-over:finish");
- _("Starting sync");
- Service.sync();
- _("Finished sync");
-
- yield promiseStartOver;
- yield promiseMigration;
- // We should have seen the observer and Sync should no longer be configured.
- Assert.ok(!Services.prefs.prefHasUserValue("services.sync.username"));
-});
-
-function run_test() {
- initTestLogging();
- do_register_cleanup(() => {
- fxaMigrator.finalize();
- Svc.Prefs.resetBranch("");
- });
- run_next_test();
-}
diff --git a/services/sync/tests/unit/xpcshell.ini b/services/sync/tests/unit/xpcshell.ini
index 609003ce9..4c0f0e7b7 100644
--- a/services/sync/tests/unit/xpcshell.ini
+++ b/services/sync/tests/unit/xpcshell.ini
@@ -190,9 +190,6 @@ support-files = prefs_test_prefs_store.js
[test_warn_on_truncated_response.js]
[test_postqueue.js]
-# FxA migration
-[test_fxa_migration.js]
-
# Synced tabs.
[test_syncedtabs.js]
diff --git a/startupcache/StartupCache.cpp b/startupcache/StartupCache.cpp
index 371f4795c..d4102efa1 100644
--- a/startupcache/StartupCache.cpp
+++ b/startupcache/StartupCache.cpp
@@ -242,31 +242,6 @@ StartupCache::LoadArchive(enum TelemetrifyAge flag)
mArchive = new nsZipArchive();
rv = mArchive->OpenArchive(mFile);
- if (NS_FAILED(rv) || flag == IGNORE_AGE)
- return rv;
-
- nsCString comment;
- if (!mArchive->GetComment(comment)) {
- return rv;
- }
-
- const char *data;
- size_t len = NS_CStringGetData(comment, &data);
- PRTime creationStamp;
- // We might not have a comment if the startup cache file was created
- // before we started recording creation times in the comment.
- if (len == sizeof(creationStamp)) {
- memcpy(&creationStamp, data, len);
- PRTime current = PR_Now();
- int64_t diff = current - creationStamp;
-
- // We can't use AccumulateTimeDelta here because we have no way of
- // reifying a TimeStamp from creationStamp.
- int64_t usec_per_hour = PR_USEC_PER_SEC * int64_t(3600);
- int64_t hour_diff = (diff + usec_per_hour - 1) / usec_per_hour;
- mozilla::Telemetry::Accumulate(Telemetry::STARTUP_CACHE_AGE_HOURS,
- hour_diff);
- }
return rv;
}
@@ -497,7 +472,6 @@ StartupCache::InvalidateCache()
if (NS_FAILED(rv) && rv != NS_ERROR_FILE_TARGET_DOES_NOT_EXIST &&
rv != NS_ERROR_FILE_NOT_FOUND) {
gIgnoreDiskCache = true;
- mozilla::Telemetry::Accumulate(Telemetry::STARTUP_CACHE_INVALID, true);
return;
}
gIgnoreDiskCache = false;
diff --git a/storage/TelemetryVFS.cpp b/storage/TelemetryVFS.cpp
index 5a025e29e..eb102a046 100644
--- a/storage/TelemetryVFS.cpp
+++ b/storage/TelemetryVFS.cpp
@@ -101,12 +101,6 @@ public:
~IOThreadAutoTimer()
{
- TimeStamp end(TimeStamp::Now());
- uint32_t mainThread = NS_IsMainThread() ? 1 : 0;
- if (id != Telemetry::HistogramCount) {
- Telemetry::AccumulateTimeDelta(static_cast<Telemetry::ID>(id + mainThread),
- start, end);
- }
// We don't report SQLite I/O on Windows because we have a comprehensive
// mechanism for intercepting I/O on that platform that captures a superset
// of the data captured here.
@@ -361,8 +355,6 @@ xRead(sqlite3_file *pFile, void *zBuf, int iAmt, sqlite_int64 iOfst)
int rc;
rc = p->pReal->pMethods->xRead(p->pReal, zBuf, iAmt, iOfst);
// sqlite likes to read from empty files, this is normal, ignore it.
- if (rc != SQLITE_IOERR_SHORT_READ)
- Telemetry::Accumulate(p->histograms->readB, rc == SQLITE_OK ? iAmt : 0);
return rc;
}
@@ -395,7 +387,6 @@ xWrite(sqlite3_file *pFile, const void *zBuf, int iAmt, sqlite_int64 iOfst)
}
}
rc = p->pReal->pMethods->xWrite(p->pReal, zBuf, iAmt, iOfst);
- Telemetry::Accumulate(p->histograms->writeB, rc == SQLITE_OK ? iAmt : 0);
if (p->quotaObject && rc != SQLITE_OK) {
NS_WARNING("xWrite failed on a quota-controlled file, attempting to "
"update its current size...");
@@ -416,7 +407,6 @@ xTruncate(sqlite3_file *pFile, sqlite_int64 size)
IOThreadAutoTimer ioTimer(Telemetry::MOZ_SQLITE_TRUNCATE_MS);
telemetry_file *p = (telemetry_file *)pFile;
int rc;
- Telemetry::AutoTimer<Telemetry::MOZ_SQLITE_TRUNCATE_MS> timer;
if (p->quotaObject) {
if (p->fileChunkSize > 0) {
// Round up to the smallest multiple of the chunk size that will hold all
@@ -618,7 +608,6 @@ xOpen(sqlite3_vfs* vfs, const char *zName, sqlite3_file* pFile,
{
IOThreadAutoTimer ioTimer(Telemetry::MOZ_SQLITE_OPEN_MS,
IOInterposeObserver::OpCreateOrOpen);
- Telemetry::AutoTimer<Telemetry::MOZ_SQLITE_OPEN_MS> timer;
sqlite3_vfs *orig_vfs = static_cast<sqlite3_vfs*>(vfs->pAppData);
int rc;
telemetry_file *p = (telemetry_file *)pFile;
diff --git a/storage/mozStorageAsyncStatementExecution.cpp b/storage/mozStorageAsyncStatementExecution.cpp
index e1d344aca..00f584f03 100644
--- a/storage/mozStorageAsyncStatementExecution.cpp
+++ b/storage/mozStorageAsyncStatementExecution.cpp
@@ -226,7 +226,6 @@ bool
AsyncExecuteStatements::executeStatement(sqlite3_stmt *aStatement)
{
mMutex.AssertNotCurrentThreadOwns();
- Telemetry::AutoTimer<Telemetry::MOZ_STORAGE_ASYNC_REQUESTS_MS> finallySendExecutionDuration(mRequestStartDate);
while (true) {
// lock the sqlite mutex so sqlite3_errmsg cannot change
SQLiteMutexAutoLock lockedScope(mDBMutex);
@@ -235,14 +234,12 @@ AsyncExecuteStatements::executeStatement(sqlite3_stmt *aStatement)
// Stop if we have no more results.
if (rc == SQLITE_DONE)
{
- Telemetry::Accumulate(Telemetry::MOZ_STORAGE_ASYNC_REQUESTS_SUCCESS, true);
return false;
}
// If we got results, we can return now.
if (rc == SQLITE_ROW)
{
- Telemetry::Accumulate(Telemetry::MOZ_STORAGE_ASYNC_REQUESTS_SUCCESS, true);
return true;
}
@@ -258,7 +255,6 @@ AsyncExecuteStatements::executeStatement(sqlite3_stmt *aStatement)
// Set an error state.
mState = ERROR;
- Telemetry::Accumulate(Telemetry::MOZ_STORAGE_ASYNC_REQUESTS_SUCCESS, false);
// Construct the error message before giving up the mutex (which we cannot
// hold during the call to notifyError).
diff --git a/toolkit/components/alerts/nsAlertsService.cpp b/toolkit/components/alerts/nsAlertsService.cpp
index dd67ad983..73dbb265c 100644
--- a/toolkit/components/alerts/nsAlertsService.cpp
+++ b/toolkit/components/alerts/nsAlertsService.cpp
@@ -6,7 +6,6 @@
#include "mozilla/dom/ContentChild.h"
#include "mozilla/dom/PermissionMessageUtils.h"
#include "mozilla/Preferences.h"
-#include "mozilla/Telemetry.h"
#include "nsXULAppAPI.h"
#include "nsAlertsService.h"
@@ -292,9 +291,6 @@ NS_IMETHODIMP nsAlertsService::SetManualDoNotDisturb(bool aDoNotDisturb)
NS_ENSURE_TRUE(alertsDND, NS_ERROR_NOT_IMPLEMENTED);
nsresult rv = alertsDND->SetManualDoNotDisturb(aDoNotDisturb);
- if (NS_SUCCEEDED(rv)) {
- Telemetry::Accumulate(Telemetry::ALERTS_SERVICE_DND_ENABLED, 1);
- }
return rv;
#endif
}
diff --git a/toolkit/components/downloads/ApplicationReputation.cpp b/toolkit/components/downloads/ApplicationReputation.cpp
index 7bd219dbf..a369ca884 100644
--- a/toolkit/components/downloads/ApplicationReputation.cpp
+++ b/toolkit/components/downloads/ApplicationReputation.cpp
@@ -34,7 +34,6 @@
#include "mozilla/LoadContext.h"
#include "mozilla/Preferences.h"
#include "mozilla/Services.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "nsAutoPtr.h"
@@ -59,7 +58,6 @@ using mozilla::DocShellOriginAttributes;
using mozilla::PrincipalOriginAttributes;
using mozilla::Preferences;
using mozilla::TimeStamp;
-using mozilla::Telemetry::Accumulate;
using safe_browsing::ClientDownloadRequest;
using safe_browsing::ClientDownloadRequest_CertificateChain;
using safe_browsing::ClientDownloadRequest_Resource;
@@ -356,7 +354,6 @@ PendingDBLookup::HandleEvent(const nsACString& tables)
Preferences::GetCString(PREF_DOWNLOAD_BLOCK_TABLE, &blockList);
if (!mAllowlistOnly && FindInReadable(blockList, tables)) {
mPendingLookup->mBlocklistCount++;
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_LOCAL, BLOCK_LIST);
LOG(("Found principal %s on blocklist [this = %p]", mSpec.get(), this));
return mPendingLookup->OnComplete(true, NS_OK,
nsIApplicationReputationService::VERDICT_DANGEROUS);
@@ -366,13 +363,11 @@ PendingDBLookup::HandleEvent(const nsACString& tables)
Preferences::GetCString(PREF_DOWNLOAD_ALLOW_TABLE, &allowList);
if (FindInReadable(allowList, tables)) {
mPendingLookup->mAllowlistCount++;
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_LOCAL, ALLOW_LIST);
LOG(("Found principal %s on allowlist [this = %p]", mSpec.get(), this));
// Don't call onComplete, since blocklisting trumps allowlisting
} else {
LOG(("Didn't find principal %s on any list [this = %p]", mSpec.get(),
this));
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_LOCAL, NO_LIST);
}
return mPendingLookup->LookupNext();
}
@@ -1000,7 +995,7 @@ PendingLookup::GetSpecHash(nsACString& aSpec, nsACString& hexEncodedHash)
static const char* const hex = "0123456789ABCDEF";
hexEncodedHash.SetCapacity(2 * binaryHash.Length());
for (size_t i = 0; i < binaryHash.Length(); ++i) {
- auto c = static_cast<const unsigned char>(binaryHash[i]);
+ auto c = static_cast<unsigned char>(binaryHash[i]);
hexEncodedHash.Append(hex[(c >> 4) & 0x0F]);
hexEncodedHash.Append(hex[c & 0x0F]);
}
@@ -1144,8 +1139,6 @@ PendingLookup::OnComplete(bool shouldBlock, nsresult rv, uint32_t verdict)
mTimeoutTimer = nullptr;
}
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SHOULD_BLOCK,
- shouldBlock);
double t = (TimeStamp::Now() - mStartTime).ToMilliseconds();
LOG(("Application Reputation verdict is %lu, obtained in %f ms [this = %p]",
verdict, t, this));
@@ -1393,8 +1386,6 @@ PendingLookup::Notify(nsITimer* aTimer)
{
LOG(("Remote lookup timed out [this = %p]", this));
MOZ_ASSERT(aTimer == mTimeoutTimer);
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_REMOTE_LOOKUP_TIMEOUT,
- true);
mChannel->Cancel(NS_ERROR_NET_TIMEOUT);
mTimeoutTimer->Cancel();
return NS_OK;
@@ -1457,8 +1448,6 @@ PendingLookup::OnStopRequest(nsIRequest *aRequest,
bool shouldBlock = false;
uint32_t verdict = nsIApplicationReputationService::VERDICT_SAFE;
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_REMOTE_LOOKUP_TIMEOUT,
- false);
nsresult rv = OnStopRequestInternal(aRequest, aContext, aResult,
&shouldBlock, &verdict);
@@ -1473,8 +1462,6 @@ PendingLookup::OnStopRequestInternal(nsIRequest *aRequest,
bool* aShouldBlock,
uint32_t* aVerdict) {
if (NS_FAILED(aResult)) {
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SERVER,
- SERVER_RESPONSE_FAILED);
return aResult;
}
@@ -1483,22 +1470,16 @@ PendingLookup::OnStopRequestInternal(nsIRequest *aRequest,
nsresult rv;
nsCOMPtr<nsIHttpChannel> channel = do_QueryInterface(aRequest, &rv);
if (NS_FAILED(rv)) {
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SERVER,
- SERVER_RESPONSE_FAILED);
return rv;
}
uint32_t status = 0;
rv = channel->GetResponseStatus(&status);
if (NS_FAILED(rv)) {
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SERVER,
- SERVER_RESPONSE_FAILED);
return rv;
}
if (status != 200) {
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SERVER,
- SERVER_RESPONSE_FAILED);
return NS_ERROR_NOT_AVAILABLE;
}
@@ -1506,16 +1487,9 @@ PendingLookup::OnStopRequestInternal(nsIRequest *aRequest,
safe_browsing::ClientDownloadResponse response;
if (!response.ParseFromString(buf)) {
LOG(("Invalid protocol buffer response [this = %p]: %s", this, buf.c_str()));
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SERVER,
- SERVER_RESPONSE_INVALID);
return NS_ERROR_CANNOT_CONVERT_DATA;
}
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SERVER,
- SERVER_RESPONSE_VALID);
- // Clamp responses 0-7, we only know about 0-4 for now.
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SERVER_VERDICT,
- std::min<uint32_t>(response.verdict(), 7));
switch(response.verdict()) {
case safe_browsing::ClientDownloadResponse::DANGEROUS:
*aShouldBlock = Preferences::GetBool(PREF_BLOCK_DANGEROUS, true);
@@ -1583,11 +1557,8 @@ ApplicationReputationService::QueryReputation(
NS_ENSURE_ARG_POINTER(aQuery);
NS_ENSURE_ARG_POINTER(aCallback);
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_COUNT, true);
nsresult rv = QueryReputationInternal(aQuery, aCallback);
if (NS_FAILED(rv)) {
- Accumulate(mozilla::Telemetry::APPLICATION_REPUTATION_SHOULD_BLOCK,
- false);
aCallback->OnComplete(false, rv,
nsIApplicationReputationService::VERDICT_SAFE);
}
diff --git a/toolkit/components/osfile/modules/osfile_async_front.jsm b/toolkit/components/osfile/modules/osfile_async_front.jsm
index 964e53084..93c7e66d6 100644
--- a/toolkit/components/osfile/modules/osfile_async_front.jsm
+++ b/toolkit/components/osfile/modules/osfile_async_front.jsm
@@ -56,7 +56,6 @@ Cu.import("resource://gre/modules/Task.jsm", this);
// The implementation of communications
Cu.import("resource://gre/modules/PromiseWorker.jsm", this);
Cu.import("resource://gre/modules/Services.jsm", this);
-Cu.import("resource://gre/modules/TelemetryStopwatch.jsm", this);
Cu.import("resource://gre/modules/AsyncShutdown.jsm", this);
var Native = Cu.import("resource://gre/modules/osfile/osfile_native.jsm", {});
@@ -1171,13 +1170,10 @@ File.writeAtomic = function writeAtomic(path, buffer, options = {}) {
if (isTypedArray(buffer) && (!("bytes" in options))) {
options.bytes = buffer.byteLength;
};
- let refObj = {};
- TelemetryStopwatch.start("OSFILE_WRITEATOMIC_JANK_MS", refObj);
let promise = Scheduler.post("writeAtomic",
[Type.path.toMsg(path),
Type.void_t.in_ptr.toMsg(buffer),
options], [options, buffer, path]);
- TelemetryStopwatch.finish("OSFILE_WRITEATOMIC_JANK_MS", refObj);
return promise;
};
diff --git a/toolkit/components/perfmonitoring/nsPerformanceStats.cpp b/toolkit/components/perfmonitoring/nsPerformanceStats.cpp
index eb924de46..33aeaf7c2 100644
--- a/toolkit/components/perfmonitoring/nsPerformanceStats.cpp
+++ b/toolkit/components/perfmonitoring/nsPerformanceStats.cpp
@@ -27,7 +27,6 @@
#include "mozilla/ArrayUtils.h"
#include "mozilla/EventStateManager.h"
#include "mozilla/Services.h"
-#include "mozilla/Telemetry.h"
#if defined(XP_WIN)
#include <processthreadsapi.h>
@@ -957,22 +956,7 @@ nsPerformanceStatsService::SetJankAlertBufferingDelay(uint32_t value) {
nsresult
nsPerformanceStatsService::UpdateTelemetry()
{
- // Promote everything to floating-point explicitly before dividing.
- const double processStayed = mProcessStayed;
- const double processMoved = mProcessMoved;
-
- if (processStayed <= 0 || processMoved <= 0 || processStayed + processMoved <= 0) {
- // Overflow/underflow/nothing to report
- return NS_OK;
- }
-
- const double proportion = (100 * processStayed) / (processStayed + processMoved);
- if (proportion < 0 || proportion > 100) {
- // Overflow/underflow
- return NS_OK;
- }
-
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PERF_MONITORING_TEST_CPU_RESCHEDULING_PROPORTION_MOVED, (uint32_t)proportion);
+ /* STUB */
return NS_OK;
}
diff --git a/toolkit/components/places/Database.cpp b/toolkit/components/places/Database.cpp
index 37502e2a1..a87c14b37 100644
--- a/toolkit/components/places/Database.cpp
+++ b/toolkit/components/places/Database.cpp
@@ -615,9 +615,6 @@ Database::BackupAndReplaceDatabaseFile(nsCOMPtr<mozIStorageService>& aStorage)
// Set up a pref to try replacing the database at the next startup.
Preferences::SetBool(PREF_FORCE_DATABASE_REPLACEMENT, true);
}
- // Report the corruption through telemetry.
- Telemetry::Accumulate(Telemetry::PLACES_DATABASE_CORRUPTION_HANDLING_STAGE,
- static_cast<int8_t>(stage));
});
// Close database connection if open.
diff --git a/toolkit/components/places/FaviconHelpers.cpp b/toolkit/components/places/FaviconHelpers.cpp
index 69c202338..ca08cdff4 100644
--- a/toolkit/components/places/FaviconHelpers.cpp
+++ b/toolkit/components/places/FaviconHelpers.cpp
@@ -14,7 +14,6 @@
#include "nsNavHistory.h"
#include "nsFaviconService.h"
#include "mozilla/storage.h"
-#include "mozilla/Telemetry.h"
#include "nsNetUtil.h"
#include "nsPrintfCString.h"
#include "nsStreamUtils.h"
@@ -581,33 +580,6 @@ AsyncFetchAndSetIconForPage::OnStopRequest(nsIRequest* aRequest,
mIcon.expiration = GetExpirationTimeFromChannel(channel);
- // Telemetry probes to measure the favicon file sizes for each different file type.
- // This allow us to measure common file sizes while also observing each type popularity.
- if (mIcon.mimeType.EqualsLiteral("image/png")) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PLACES_FAVICON_PNG_SIZES, mIcon.data.Length());
- }
- else if (mIcon.mimeType.EqualsLiteral("image/x-icon") ||
- mIcon.mimeType.EqualsLiteral("image/vnd.microsoft.icon")) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PLACES_FAVICON_ICO_SIZES, mIcon.data.Length());
- }
- else if (mIcon.mimeType.EqualsLiteral("image/jpeg") ||
- mIcon.mimeType.EqualsLiteral("image/pjpeg")) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PLACES_FAVICON_JPEG_SIZES, mIcon.data.Length());
- }
- else if (mIcon.mimeType.EqualsLiteral("image/gif")) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PLACES_FAVICON_GIF_SIZES, mIcon.data.Length());
- }
- else if (mIcon.mimeType.EqualsLiteral("image/bmp") ||
- mIcon.mimeType.EqualsLiteral("image/x-windows-bmp")) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PLACES_FAVICON_BMP_SIZES, mIcon.data.Length());
- }
- else if (mIcon.mimeType.EqualsLiteral("image/svg+xml")) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PLACES_FAVICON_SVG_SIZES, mIcon.data.Length());
- }
- else {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::PLACES_FAVICON_OTHER_SIZES, mIcon.data.Length());
- }
-
rv = OptimizeIconSize(mIcon, favicons);
NS_ENSURE_SUCCESS(rv, rv);
diff --git a/toolkit/components/places/Helpers.cpp b/toolkit/components/places/Helpers.cpp
index 66c4e79a9..dda162197 100644
--- a/toolkit/components/places/Helpers.cpp
+++ b/toolkit/components/places/Helpers.cpp
@@ -385,9 +385,7 @@ AsyncStatementCallbackNotifier::HandleCompletion(uint16_t aReason)
NS_IMETHODIMP
AsyncStatementTelemetryTimer::HandleCompletion(uint16_t aReason)
{
- if (aReason == mozIStorageStatementCallback::REASON_FINISHED) {
- Telemetry::AccumulateTimeDelta(mHistogramId, mStart);
- }
+ /* STUB */
return NS_OK;
}
diff --git a/toolkit/components/places/UnifiedComplete.js b/toolkit/components/places/UnifiedComplete.js
index acd358b11..2efae9cbe 100644
--- a/toolkit/components/places/UnifiedComplete.js
+++ b/toolkit/components/places/UnifiedComplete.js
@@ -262,8 +262,6 @@ Cu.import("resource://gre/modules/Services.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
"resource://gre/modules/PlacesUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
- "resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
"resource://gre/modules/NetUtil.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Preferences",
@@ -887,10 +885,6 @@ Search.prototype = {
if (!this.pending)
return;
- TelemetryStopwatch.start(TELEMETRY_1ST_RESULT, this);
- if (this._searchString)
- TelemetryStopwatch.start(TELEMETRY_6_FIRST_RESULTS, this);
-
// Since we call the synchronous parseSubmissionURL function later, we must
// wait for the initialization of PlacesSearchAutocompleteProvider first.
yield PlacesSearchAutocompleteProvider.ensureInitialized();
@@ -1468,9 +1462,6 @@ Search.prototype = {
},
_onResultRow: function (row) {
- if (this._localMatchesCount == 0) {
- TelemetryStopwatch.finish(TELEMETRY_1ST_RESULT, this);
- }
let queryType = row.getResultByIndex(QUERYINDEX_QUERYTYPE);
let match;
switch (queryType) {
@@ -1566,9 +1557,6 @@ Search.prototype = {
match.style,
match.finalCompleteValue);
- if (this._result.matchCount == 6)
- TelemetryStopwatch.finish(TELEMETRY_6_FIRST_RESULTS, this);
-
this.notifyResults(true);
},
@@ -2088,8 +2076,6 @@ UnifiedComplete.prototype = {
* results or not.
*/
finishSearch: function (notify=false) {
- TelemetryStopwatch.cancel(TELEMETRY_1ST_RESULT, this);
- TelemetryStopwatch.cancel(TELEMETRY_6_FIRST_RESULTS, this);
// Clear state now to avoid race conditions, see below.
let search = this._currentSearch;
if (!search)
diff --git a/toolkit/components/places/nsPlacesAutoComplete.js b/toolkit/components/places/nsPlacesAutoComplete.js
index 29bdae4c1..9c6452ecd 100644
--- a/toolkit/components/places/nsPlacesAutoComplete.js
+++ b/toolkit/components/places/nsPlacesAutoComplete.js
@@ -8,8 +8,6 @@ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
"resource://gre/modules/PlacesUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
- "resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
"resource://gre/modules/NetUtil.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Task",
@@ -1510,8 +1508,6 @@ urlInlineComplete.prototype = {
// Do a synchronous search on the table of hosts.
let query = this._hostQuery;
query.params.search_string = this._currentSearchString.toLowerCase();
- // This is just to measure the delay to reach the UI, not the query time.
- TelemetryStopwatch.start(DOMAIN_QUERY_TELEMETRY);
let wrapper = new AutoCompleteStatementCallbackWrapper(this, {
handleResult: aResultSet => {
if (this._pendingSearch != pendingSearch)
@@ -1541,7 +1537,6 @@ urlInlineComplete.prototype = {
handleCompletion: aReason => {
if (this._pendingSearch != pendingSearch)
return;
- TelemetryStopwatch.finish(DOMAIN_QUERY_TELEMETRY);
this._finishSearch();
}
}, this._db);
diff --git a/toolkit/components/search/current/nsSearchService.js b/toolkit/components/search/current/nsSearchService.js
index 9f9003516..99e73b50b 100644
--- a/toolkit/components/search/current/nsSearchService.js
+++ b/toolkit/components/search/current/nsSearchService.js
@@ -21,8 +21,6 @@ XPCOMUtils.defineLazyModuleGetter(this, "OS",
"resource://gre/modules/osfile.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "Task",
"resource://gre/modules/Task.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryStopwatch",
- "resource://gre/modules/TelemetryStopwatch.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "SearchStaticData",
"resource://gre/modules/SearchStaticData.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "setTimeout",
@@ -3873,21 +3871,17 @@ SearchService.prototype = {
LOG("SearchService.init");
let self = this;
if (!this._initStarted) {
- TelemetryStopwatch.start("SEARCH_SERVICE_INIT_MS");
this._initStarted = true;
Task.spawn(function* task() {
try {
// Complete initialization by calling asynchronous initializer.
yield self._asyncInit();
- TelemetryStopwatch.finish("SEARCH_SERVICE_INIT_MS");
} catch (ex) {
if (ex.result == Cr.NS_ERROR_ALREADY_INITIALIZED) {
// No need to pursue asynchronous because synchronous fallback was
// called and has finished.
- TelemetryStopwatch.finish("SEARCH_SERVICE_INIT_MS");
} else {
self._initObservers.reject(ex);
- TelemetryStopwatch.cancel("SEARCH_SERVICE_INIT_MS");
}
}
});
diff --git a/toolkit/components/search/orginal/nsSearchService.js b/toolkit/components/search/orginal/nsSearchService.js
index 56d378b39..8d81e1a27 100644
--- a/toolkit/components/search/orginal/nsSearchService.js
+++ b/toolkit/components/search/orginal/nsSearchService.js
@@ -2237,7 +2237,10 @@ Engine.prototype = {
get lazySerializeTask() {
if (!this._lazySerializeTask) {
let task = function taskCallback() {
- this._serializeToFile();
+ // This check should be done by caller, but it is better to be safe than sorry.
+ if (!this._readOnly && this._file) {
+ this._serializeToFile();
+ }
}.bind(this);
this._lazySerializeTask = new DeferredTask(task, LAZY_SERIALIZE_DELAY);
}
@@ -2245,6 +2248,17 @@ Engine.prototype = {
return this._lazySerializeTask;
},
+ // This API is required by some search engine management extensions, so let's restore it.
+ // Old API was using a timer to do its work, but this can lead us too far. If extension is
+ // rely on such subtle internal details, that extension should be fixed, not browser.
+ _lazySerializeToFile: function SRCH_ENG_lazySerializeToFile() {
+ // This check should be done by caller, but it is better to be safe than sorry.
+ // Besides, we don't have to create a task for r/o or non-file engines.
+ if (!this._readOnly && this._file) {
+ this.lazySerializeTask.arm();
+ }
+ },
+
/**
* Serializes the engine object to file.
*/
@@ -3058,6 +3072,10 @@ SearchService.prototype = {
continue;
}
+ // Write out serialized search engine files when rebuilding cache.
+ // Do it lazily, to: 1) reuse existing API; 2) make browser interface more responsive
+ engine._lazySerializeToFile();
+
let cacheKey = parent.path;
if (!cache.directories[cacheKey]) {
let cacheEntry = {};
diff --git a/toolkit/components/startup/nsAppStartup.cpp b/toolkit/components/startup/nsAppStartup.cpp
index 391389605..53f8c5670 100644
--- a/toolkit/components/startup/nsAppStartup.cpp
+++ b/toolkit/components/startup/nsAppStartup.cpp
@@ -758,11 +758,6 @@ nsAppStartup::GetStartupInfo(JSContext* aCx, JS::MutableHandle<JS::Value> aRetva
procTime = TimeStamp::ProcessCreation(error);
- if (error) {
- Telemetry::Accumulate(Telemetry::STARTUP_MEASUREMENT_ERRORS,
- StartupTimeline::PROCESS_CREATION);
- }
-
StartupTimeline::Record(StartupTimeline::PROCESS_CREATION, procTime);
}
@@ -777,8 +772,6 @@ nsAppStartup::GetStartupInfo(JSContext* aCx, JS::MutableHandle<JS::Value> aRetva
// Always define main to aid with bug 689256.
stamp = procTime;
MOZ_ASSERT(!stamp.IsNull());
- Telemetry::Accumulate(Telemetry::STARTUP_MEASUREMENT_ERRORS,
- StartupTimeline::MAIN);
}
if (!stamp.IsNull()) {
@@ -787,8 +780,6 @@ nsAppStartup::GetStartupInfo(JSContext* aCx, JS::MutableHandle<JS::Value> aRetva
/ PR_USEC_PER_MSEC;
JS::Rooted<JSObject*> date(aCx, JS::NewDateObject(aCx, JS::TimeClip(prStamp)));
JS_DefineProperty(aCx, obj, StartupTimeline::Describe(ev), date, JSPROP_ENUMERATE);
- } else {
- Telemetry::Accumulate(Telemetry::STARTUP_MEASUREMENT_ERRORS, ev);
}
}
}
@@ -887,9 +878,6 @@ nsAppStartup::TrackStartupCrashBegin(bool *aIsSafeModeNecessary)
if (PR_Now() / PR_USEC_PER_SEC <= lastSuccessfulStartup)
return NS_ERROR_FAILURE;
- // The last startup was a crash so include it in the count regardless of when it happened.
- Telemetry::Accumulate(Telemetry::STARTUP_CRASH_DETECTED, true);
-
if (inSafeMode) {
GetAutomaticSafeModeNecessary(aIsSafeModeNecessary);
return NS_OK;
diff --git a/toolkit/components/telemetry/TelemetryStopwatch.jsm b/toolkit/components/telemetry/TelemetryStopwatch.jsm
deleted file mode 100644
index ab6c6eafb..000000000
--- a/toolkit/components/telemetry/TelemetryStopwatch.jsm
+++ /dev/null
@@ -1,335 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
-
-this.EXPORTED_SYMBOLS = ["TelemetryStopwatch"];
-
-Cu.import("resource://gre/modules/Log.jsm", this);
-var Telemetry = Cc["@mozilla.org/base/telemetry;1"]
- .getService(Ci.nsITelemetry);
-
-// Weak map does not allow using null objects as keys. These objects are used
-// as 'null' placeholders.
-const NULL_OBJECT = {};
-const NULL_KEY = {};
-
-/**
- * Timers is a variation of a Map used for storing information about running
- * Stopwatches. Timers has the following data structure:
- *
- * {
- * "HISTOGRAM_NAME": WeakMap {
- * Object || NULL_OBJECT: Map {
- * "KEY" || NULL_KEY: startTime
- * ...
- * }
- * ...
- * }
- * ...
- * }
- *
- *
- * @example
- * // Stores current time for a keyed histogram "PLAYING_WITH_CUTE_ANIMALS".
- * Timers.put("PLAYING_WITH_CUTE_ANIMALS", null, "CATS", Date.now());
- *
- * @example
- * // Returns information about a simple Stopwatch.
- * let startTime = Timers.get("PLAYING_WITH_CUTE_ANIMALS", null, "CATS");
- */
-let Timers = {
- _timers: new Map(),
-
- _validTypes: function(histogram, obj, key) {
- let nonEmptyString = value => {
- return typeof value === "string" && value !== "" && value.length > 0;
- };
- return nonEmptyString(histogram) &&
- typeof obj == "object" &&
- (key === NULL_KEY || nonEmptyString(key));
- },
-
- get: function(histogram, obj, key) {
- key = key === null ? NULL_KEY : key;
- obj = obj || NULL_OBJECT;
-
- if (!this.has(histogram, obj, key)) {
- return null;
- }
-
- return this._timers.get(histogram).get(obj).get(key);
- },
-
- put: function(histogram, obj, key, startTime) {
- key = key === null ? NULL_KEY : key;
- obj = obj || NULL_OBJECT;
-
- if (!this._validTypes(histogram, obj, key)) {
- return false;
- }
-
- let objectMap = this._timers.get(histogram) || new WeakMap();
- let keyedInfo = objectMap.get(obj) || new Map();
- keyedInfo.set(key, startTime);
- objectMap.set(obj, keyedInfo);
- this._timers.set(histogram, objectMap);
- return true;
- },
-
- has: function(histogram, obj, key) {
- key = key === null ? NULL_KEY : key;
- obj = obj || NULL_OBJECT;
-
- return this._timers.has(histogram) &&
- this._timers.get(histogram).has(obj) &&
- this._timers.get(histogram).get(obj).has(key);
- },
-
- delete: function(histogram, obj, key) {
- key = key === null ? NULL_KEY : key;
- obj = obj || NULL_OBJECT;
-
- if (!this.has(histogram, obj, key)) {
- return false;
- }
- let objectMap = this._timers.get(histogram);
- let keyedInfo = objectMap.get(obj);
- if (keyedInfo.size > 1) {
- keyedInfo.delete(key);
- return true;
- }
- objectMap.delete(obj);
- // NOTE:
- // We never delete empty objecMaps from this._timers because there is no
- // nice solution for tracking the number of objects in a WeakMap.
- // WeakMap is not enumerable, so we can't deterministically say when it's
- // empty. We accept that trade-off here, given that entries for short-lived
- // objects will go away when they are no longer referenced
- return true;
- }
-};
-
-this.TelemetryStopwatch = {
- /**
- * Starts a timer associated with a telemetry histogram. The timer can be
- * directly associated with a histogram, or with a pair of a histogram and
- * an object.
- *
- * @param {String} aHistogram - a string which must be a valid histogram name.
- *
- * @param {Object} aObj - Optional parameter. If specified, the timer is
- * associated with this object, meaning that multiple
- * timers for the same histogram may be run
- * concurrently, as long as they are associated with
- * different objects.
- *
- * @returns {Boolean} True if the timer was successfully started, false
- * otherwise. If a timer already exists, it can't be
- * started again, and the existing one will be cleared in
- * order to avoid measurements errors.
- */
- start: function(aHistogram, aObj) {
- return TelemetryStopwatchImpl.start(aHistogram, aObj, null);
- },
-
- /**
- * Deletes the timer associated with a telemetry histogram. The timer can be
- * directly associated with a histogram, or with a pair of a histogram and
- * an object. Important: Only use this method when a legitimate cancellation
- * should be done.
- *
- * @param {String} aHistogram - a string which must be a valid histogram name.
- *
- * @param {Object} aObj - Optional parameter. If specified, the timer is
- * associated with this object, meaning that multiple
- * timers or a same histogram may be run concurrently,
- * as long as they are associated with different
- * objects.
- *
- * @returns {Boolean} True if the timer exist and it was cleared, False
- * otherwise.
- */
- cancel: function(aHistogram, aObj) {
- return TelemetryStopwatchImpl.cancel(aHistogram, aObj, null);
- },
-
- /**
- * Returns the elapsed time for a particular stopwatch. Primarily for
- * debugging purposes. Must be called prior to finish.
- *
- * @param {String} aHistogram - a string which must be a valid histogram name.
- * If an invalid name is given, the function will
- * throw.
- *
- * @param (Object) aObj - Optional parameter which associates the histogram
- * timer with the given object.
- *
- * @returns {Integer} time in milliseconds or -1 if the stopwatch was not
- * found.
- */
- timeElapsed: function(aHistogram, aObj) {
- return TelemetryStopwatchImpl.timeElapsed(aHistogram, aObj, null);
- },
-
- /**
- * Stops the timer associated with the given histogram (and object),
- * calculates the time delta between start and finish, and adds the value
- * to the histogram.
- *
- * @param {String} aHistogram - a string which must be a valid histogram name.
- *
- * @param {Object} aObj - Optional parameter which associates the histogram
- * timer with the given object.
- *
- * @returns {Boolean} True if the timer was succesfully stopped and the data
- * was added to the histogram, False otherwise.
- */
- finish: function(aHistogram, aObj) {
- return TelemetryStopwatchImpl.finish(aHistogram, aObj, null);
- },
-
- /**
- * Starts a timer associated with a keyed telemetry histogram. The timer can
- * be directly associated with a histogram and its key. Similarly to
- * @see{TelemetryStopwatch.stat} the histogram and its key can be associated
- * with an object. Each key may have multiple associated objects and each
- * object can be associated with multiple keys.
- *
- * @param {String} aHistogram - a string which must be a valid histogram name.
- *
- * @param {String} aKey - a string which must be a valid histgram key.
- *
- * @param {Object} aObj - Optional parameter. If specified, the timer is
- * associated with this object, meaning that multiple
- * timers for the same histogram may be run
- * concurrently,as long as they are associated with
- * different objects.
- *
- * @returns {Boolean} True if the timer was successfully started, false
- * otherwise. If a timer already exists, it can't be
- * started again, and the existing one will be cleared in
- * order to avoid measurements errors.
- */
- startKeyed: function(aHistogram, aKey, aObj) {
- return TelemetryStopwatchImpl.start(aHistogram, aObj, aKey);
- },
-
- /**
- * Deletes the timer associated with a keyed histogram. Important: Only use
- * this method when a legitimate cancellation should be done.
- *
- * @param {String} aHistogram - a string which must be a valid histogram name.
- *
- * @param {String} aKey - a string which must be a valid histgram key.
- *
- * @param {Object} aObj - Optional parameter. If specified, the timer
- * associated with this object is deleted.
- *
- * @return {Boolean} True if the timer exist and it was cleared, False
- * otherwise.
- */
- cancelKeyed: function(aHistogram, aKey, aObj) {
- return TelemetryStopwatchImpl.cancel(aHistogram, aObj, aKey);
- },
-
- /**
- * Returns the elapsed time for a particular stopwatch. Primarily for
- * debugging purposes. Must be called prior to finish.
- *
- * @param {String} aHistogram - a string which must be a valid histogram name.
- *
- * @param {String} aKey - a string which must be a valid histgram key.
- *
- * @param {Object} aObj - Optional parameter. If specified, the timer
- * associated with this object is used to calculate
- * the elapsed time.
- *
- * @return {Integer} time in milliseconds or -1 if the stopwatch was not
- * found.
- */
- timeElapsedKeyed: function(aHistogram, aKey, aObj) {
- return TelemetryStopwatchImpl.timeElapsed(aHistogram, aObj, aKey);
- },
-
- /**
- * Stops the timer associated with the given keyed histogram (and object),
- * calculates the time delta between start and finish, and adds the value
- * to the keyed histogram.
- *
- * @param {String} aHistogram - a string which must be a valid histogram name.
- *
- * @param {String} aKey - a string which must be a valid histgram key.
- *
- * @param {Object} aObj - optional parameter which associates the histogram
- * timer with the given object.
- *
- * @returns {Boolean} True if the timer was succesfully stopped and the data
- * was added to the histogram, False otherwise.
- */
- finishKeyed: function(aHistogram, aKey, aObj) {
- return TelemetryStopwatchImpl.finish(aHistogram, aObj, aKey);
- }
-};
-
-this.TelemetryStopwatchImpl = {
- start: function(histogram, object, key) {
- if (Timers.has(histogram, object, key)) {
- Timers.delete(histogram, object, key);
- Cu.reportError(`TelemetryStopwatch: key "${histogram}" was already ` +
- "initialized");
- return false;
- }
-
- return Timers.put(histogram, object, key, Components.utils.now());
- },
-
- cancel: function (histogram, object, key) {
- return Timers.delete(histogram, object, key);
- },
-
- timeElapsed: function(histogram, object, key) {
- let startTime = Timers.get(histogram, object, key);
- if (startTime === null) {
- Cu.reportError("TelemetryStopwatch: requesting elapsed time for " +
- `nonexisting stopwatch. Histogram: "${histogram}", ` +
- `key: "${key}"`);
- return -1;
- }
-
- try {
- let delta = Components.utils.now() - startTime
- return Math.round(delta);
- } catch (e) {
- Cu.reportError("TelemetryStopwatch: failed to calculate elapsed time " +
- `for Histogram: "${histogram}", key: "${key}", ` +
- `exception: ${Log.exceptionStr(e)}`);
- return -1;
- }
- },
-
- finish: function(histogram, object, key) {
- let delta = this.timeElapsed(histogram, object, key);
- if (delta == -1) {
- return false;
- }
-
- try {
- if (key) {
- Telemetry.getKeyedHistogramById(histogram).add(key, delta);
- } else {
- Telemetry.getHistogramById(histogram).add(delta);
- }
- } catch (e) {
- Cu.reportError("TelemetryStopwatch: failed to update the Histogram " +
- `"${histogram}", using key: "${key}", ` +
- `exception: ${Log.exceptionStr(e)}`);
- return false;
- }
-
- return Timers.delete(histogram, object, key);
- }
-}
diff --git a/toolkit/components/telemetry/moz.build b/toolkit/components/telemetry/moz.build
index 118d61b71..7765c59b4 100644
--- a/toolkit/components/telemetry/moz.build
+++ b/toolkit/components/telemetry/moz.build
@@ -64,7 +64,6 @@ EXTRA_JS_MODULES += [
'TelemetryReportingPolicy.jsm',
'TelemetrySend.jsm',
'TelemetrySession.jsm',
- 'TelemetryStopwatch.jsm',
'TelemetryStorage.jsm',
'TelemetryTimestamps.jsm',
'TelemetryUtils.jsm',
diff --git a/toolkit/components/telemetry/tests/unit/test_TelemetryStopwatch.js b/toolkit/components/telemetry/tests/unit/test_TelemetryStopwatch.js
deleted file mode 100644
index d162d9b17..000000000
--- a/toolkit/components/telemetry/tests/unit/test_TelemetryStopwatch.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-var tmpScope = {};
-Cu.import("resource://gre/modules/TelemetryStopwatch.jsm", tmpScope);
-var TelemetryStopwatch = tmpScope.TelemetryStopwatch;
-
-const HIST_NAME = "TELEMETRY_SEND_SUCCESS";
-const HIST_NAME2 = "RANGE_CHECKSUM_ERRORS";
-const KEYED_HIST = { id: "TELEMETRY_INVALID_PING_TYPE_SUBMITTED", key: "TEST" };
-
-var refObj = {}, refObj2 = {};
-
-var originalCount1, originalCount2;
-
-function run_test() {
- let histogram = Telemetry.getHistogramById(HIST_NAME);
- let snapshot = histogram.snapshot();
- originalCount1 = snapshot.counts.reduce((a, b) => a += b);
-
- histogram = Telemetry.getHistogramById(HIST_NAME2);
- snapshot = histogram.snapshot();
- originalCount2 = snapshot.counts.reduce((a, b) => a += b);
-
- histogram = Telemetry.getKeyedHistogramById(KEYED_HIST.id);
- snapshot = histogram.snapshot(KEYED_HIST.key);
- originalCount3 = snapshot.counts.reduce((a, b) => a += b);
-
- do_check_false(TelemetryStopwatch.start(3));
- do_check_false(TelemetryStopwatch.start({}));
- do_check_false(TelemetryStopwatch.start("", 3));
- do_check_false(TelemetryStopwatch.start("", ""));
- do_check_false(TelemetryStopwatch.start({}, {}));
-
- do_check_true(TelemetryStopwatch.start("mark1"));
- do_check_true(TelemetryStopwatch.start("mark2"));
-
- do_check_true(TelemetryStopwatch.start("mark1", refObj));
- do_check_true(TelemetryStopwatch.start("mark2", refObj));
-
- // Same timer can't be re-started before being stopped
- do_check_false(TelemetryStopwatch.start("mark1"));
- do_check_false(TelemetryStopwatch.start("mark1", refObj));
-
- // Can't stop a timer that was accidentaly started twice
- do_check_false(TelemetryStopwatch.finish("mark1"));
- do_check_false(TelemetryStopwatch.finish("mark1", refObj));
-
- do_check_true(TelemetryStopwatch.start("NON-EXISTENT_HISTOGRAM"));
- do_check_false(TelemetryStopwatch.finish("NON-EXISTENT_HISTOGRAM"));
-
- do_check_true(TelemetryStopwatch.start("NON-EXISTENT_HISTOGRAM", refObj));
- do_check_false(TelemetryStopwatch.finish("NON-EXISTENT_HISTOGRAM", refObj));
-
- do_check_true(TelemetryStopwatch.start(HIST_NAME));
- do_check_true(TelemetryStopwatch.start(HIST_NAME2));
- do_check_true(TelemetryStopwatch.start(HIST_NAME, refObj));
- do_check_true(TelemetryStopwatch.start(HIST_NAME2, refObj));
- do_check_true(TelemetryStopwatch.start(HIST_NAME, refObj2));
- do_check_true(TelemetryStopwatch.start(HIST_NAME2, refObj2));
-
- do_check_true(TelemetryStopwatch.finish(HIST_NAME));
- do_check_true(TelemetryStopwatch.finish(HIST_NAME2));
- do_check_true(TelemetryStopwatch.finish(HIST_NAME, refObj));
- do_check_true(TelemetryStopwatch.finish(HIST_NAME2, refObj));
- do_check_true(TelemetryStopwatch.finish(HIST_NAME, refObj2));
- do_check_true(TelemetryStopwatch.finish(HIST_NAME2, refObj2));
-
- // Verify that TS.finish deleted the timers
- do_check_false(TelemetryStopwatch.finish(HIST_NAME));
- do_check_false(TelemetryStopwatch.finish(HIST_NAME, refObj));
-
- // Verify that they can be used again
- do_check_true(TelemetryStopwatch.start(HIST_NAME));
- do_check_true(TelemetryStopwatch.start(HIST_NAME, refObj));
- do_check_true(TelemetryStopwatch.finish(HIST_NAME));
- do_check_true(TelemetryStopwatch.finish(HIST_NAME, refObj));
-
- do_check_false(TelemetryStopwatch.finish("unknown-mark")); // Unknown marker
- do_check_false(TelemetryStopwatch.finish("unknown-mark", {})); // Unknown object
- do_check_false(TelemetryStopwatch.finish(HIST_NAME, {})); // Known mark on unknown object
-
- // Test cancel
- do_check_true(TelemetryStopwatch.start(HIST_NAME));
- do_check_true(TelemetryStopwatch.start(HIST_NAME, refObj));
- do_check_true(TelemetryStopwatch.cancel(HIST_NAME));
- do_check_true(TelemetryStopwatch.cancel(HIST_NAME, refObj));
-
- // Verify that can not cancel twice
- do_check_false(TelemetryStopwatch.cancel(HIST_NAME));
- do_check_false(TelemetryStopwatch.cancel(HIST_NAME, refObj));
-
- // Verify that cancel removes the timers
- do_check_false(TelemetryStopwatch.finish(HIST_NAME));
- do_check_false(TelemetryStopwatch.finish(HIST_NAME, refObj));
-
- // Verify that keyed stopwatch reject invalid keys.
- for (let key of [3, {}, ""]) {
- do_check_false(TelemetryStopwatch.startKeyed(KEYED_HIST.id, key));
- }
-
- // Verify that keyed histograms can be started.
- do_check_true(TelemetryStopwatch.startKeyed("HISTOGRAM", "KEY1"));
- do_check_true(TelemetryStopwatch.startKeyed("HISTOGRAM", "KEY2"));
- do_check_true(TelemetryStopwatch.startKeyed("HISTOGRAM", "KEY1", refObj));
- do_check_true(TelemetryStopwatch.startKeyed("HISTOGRAM", "KEY2", refObj));
-
- // Restarting keyed histograms should fail.
- do_check_false(TelemetryStopwatch.startKeyed("HISTOGRAM", "KEY1"));
- do_check_false(TelemetryStopwatch.startKeyed("HISTOGRAM", "KEY1", refObj));
-
- // Finishing a stopwatch of a non existing histogram should return false.
- do_check_false(TelemetryStopwatch.finishKeyed("HISTOGRAM", "KEY2"));
- do_check_false(TelemetryStopwatch.finishKeyed("HISTOGRAM", "KEY2", refObj));
-
- // Starting & finishing a keyed stopwatch for an existing histogram should work.
- do_check_true(TelemetryStopwatch.startKeyed(KEYED_HIST.id, KEYED_HIST.key));
- do_check_true(TelemetryStopwatch.finishKeyed(KEYED_HIST.id, KEYED_HIST.key));
- // Verify that TS.finish deleted the timers
- do_check_false(TelemetryStopwatch.finishKeyed(KEYED_HIST.id, KEYED_HIST.key));
-
- // Verify that they can be used again
- do_check_true(TelemetryStopwatch.startKeyed(KEYED_HIST.id, KEYED_HIST.key));
- do_check_true(TelemetryStopwatch.finishKeyed(KEYED_HIST.id, KEYED_HIST.key));
-
- do_check_false(TelemetryStopwatch.finishKeyed("unknown-mark", "unknown-key"));
- do_check_false(TelemetryStopwatch.finishKeyed(KEYED_HIST.id, "unknown-key"));
-
- // Verify that keyed histograms can only be canceled through "keyed" API.
- do_check_true(TelemetryStopwatch.startKeyed(KEYED_HIST.id, KEYED_HIST.key));
- do_check_false(TelemetryStopwatch.cancel(KEYED_HIST.id, KEYED_HIST.key));
- do_check_true(TelemetryStopwatch.cancelKeyed(KEYED_HIST.id, KEYED_HIST.key));
- do_check_false(TelemetryStopwatch.cancelKeyed(KEYED_HIST.id, KEYED_HIST.key));
-
- finishTest();
-}
-
-function finishTest() {
- let histogram = Telemetry.getHistogramById(HIST_NAME);
- let snapshot = histogram.snapshot();
- let newCount = snapshot.counts.reduce((a, b) => a += b);
-
- do_check_eq(newCount - originalCount1, 5, "The correct number of histograms were added for histogram 1.");
-
- histogram = Telemetry.getHistogramById(HIST_NAME2);
- snapshot = histogram.snapshot();
- newCount = snapshot.counts.reduce((a, b) => a += b);
-
- do_check_eq(newCount - originalCount2, 3, "The correct number of histograms were added for histogram 2.");
-
- histogram = Telemetry.getKeyedHistogramById(KEYED_HIST.id);
- snapshot = histogram.snapshot(KEYED_HIST.key);
- newCount = snapshot.counts.reduce((a, b) => a += b);
-
- do_check_eq(newCount - originalCount3, 2, "The correct number of histograms were added for histogram 3.");
-}
diff --git a/toolkit/components/telemetry/tests/unit/xpcshell.ini b/toolkit/components/telemetry/tests/unit/xpcshell.ini
index 42354c4cd..224516f57 100644
--- a/toolkit/components/telemetry/tests/unit/xpcshell.ini
+++ b/toolkit/components/telemetry/tests/unit/xpcshell.ini
@@ -41,7 +41,6 @@ tags = addons
[test_TelemetryController_idle.js]
[test_TelemetryControllerShutdown.js]
tags = addons
-[test_TelemetryStopwatch.js]
[test_TelemetryControllerBuildID.js]
[test_TelemetrySendOldPings.js]
skip-if = os == "android" # Disabled due to intermittent orange on Android
diff --git a/toolkit/components/url-classifier/Classifier.cpp b/toolkit/components/url-classifier/Classifier.cpp
index bbaeaf535..b9d0ace1b 100644
--- a/toolkit/components/url-classifier/Classifier.cpp
+++ b/toolkit/components/url-classifier/Classifier.cpp
@@ -15,7 +15,6 @@
#include "nsNetCID.h"
#include "nsPrintfCString.h"
#include "nsThreadUtils.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Logging.h"
#include "mozilla/SyncRunnable.h"
#include "mozilla/Base64.h"
@@ -413,8 +412,6 @@ Classifier::Check(const nsACString& aSpec,
uint32_t aFreshnessGuarantee,
LookupResultArray& aResults)
{
- Telemetry::AutoTimer<Telemetry::URLCLASSIFIER_CL_CHECK_TIME> timer;
-
// Get the set of fragments based on the url. This is necessary because we
// only look up at most 5 URLs per aSpec, even if aSpec has more than 5
// components.
@@ -498,9 +495,6 @@ Classifier::Check(const nsACString& aSpec,
matchingStatistics |= PrefixMatch::eMatchV2Prefix;
}
}
-
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_PREFIX_MATCH,
- static_cast<uint8_t>(matchingStatistics));
}
return NS_OK;
@@ -509,8 +503,6 @@ Classifier::Check(const nsACString& aSpec,
nsresult
Classifier::ApplyUpdates(nsTArray<TableUpdate*>* aUpdates)
{
- Telemetry::AutoTimer<Telemetry::URLCLASSIFIER_CL_UPDATE_TIME> timer;
-
PRIntervalTime clockStart = 0;
if (LOG_ENABLED()) {
clockStart = PR_IntervalNow();
diff --git a/toolkit/components/url-classifier/Entries.h b/toolkit/components/url-classifier/Entries.h
index 969f4f739..b7fb34516 100644
--- a/toolkit/components/url-classifier/Entries.h
+++ b/toolkit/components/url-classifier/Entries.h
@@ -100,7 +100,7 @@ struct SafebrowsingHash
aStr.SetCapacity(2 * len);
for (size_t i = 0; i < len; ++i) {
- const char c = static_cast<const char>(buf[i]);
+ const char c = static_cast<char>(buf[i]);
aStr.Append(lut[(c >> 4) & 0x0F]);
aStr.Append(lut[c & 15]);
}
diff --git a/toolkit/components/url-classifier/LookupCache.cpp b/toolkit/components/url-classifier/LookupCache.cpp
index 5a3b1e36d..7c4d7682b 100644
--- a/toolkit/components/url-classifier/LookupCache.cpp
+++ b/toolkit/components/url-classifier/LookupCache.cpp
@@ -6,7 +6,6 @@
#include "LookupCache.h"
#include "HashStore.h"
#include "nsISeekableStream.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Logging.h"
#include "nsNetUtil.h"
#include "prprf.h"
@@ -451,9 +450,6 @@ nsresult
LookupCacheV2::Build(AddPrefixArray& aAddPrefixes,
AddCompleteArray& aAddCompletes)
{
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_LC_COMPLETIONS,
- static_cast<uint32_t>(aAddCompletes.Length()));
-
mUpdateCompletions.Clear();
mUpdateCompletions.SetCapacity(aAddCompletes.Length());
for (uint32_t i = 0; i < aAddCompletes.Length(); i++) {
@@ -462,9 +458,6 @@ LookupCacheV2::Build(AddPrefixArray& aAddPrefixes,
aAddCompletes.Clear();
mUpdateCompletions.Sort();
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_LC_PREFIXES,
- static_cast<uint32_t>(aAddPrefixes.Length()));
-
nsresult rv = ConstructPrefixSet(aAddPrefixes);
NS_ENSURE_SUCCESS(rv, rv);
mPrimed = true;
@@ -548,8 +541,6 @@ static void EnsureSorted(T* aArray)
nsresult
LookupCacheV2::ConstructPrefixSet(AddPrefixArray& aAddPrefixes)
{
- Telemetry::AutoTimer<Telemetry::URLCLASSIFIER_PS_CONSTRUCT_TIME> timer;
-
nsTArray<uint32_t> array;
if (!array.SetCapacity(aAddPrefixes.Length(), fallible)) {
return NS_ERROR_OUT_OF_MEMORY;
diff --git a/toolkit/components/url-classifier/LookupCacheV4.cpp b/toolkit/components/url-classifier/LookupCacheV4.cpp
index 7258ae358..a96e4931a 100644
--- a/toolkit/components/url-classifier/LookupCacheV4.cpp
+++ b/toolkit/components/url-classifier/LookupCacheV4.cpp
@@ -144,9 +144,6 @@ LookupCacheV4::LoadFromFile(nsIFile* aFile)
}
rv = VerifyChecksum(checksum);
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_VLPS_LOAD_CORRUPT,
- rv == NS_ERROR_FILE_CORRUPTED);
-
return rv;
}
@@ -231,8 +228,6 @@ LookupCacheV4::ApplyUpdate(TableUpdateV4* aTableUpdate,
if (!isOldMapEmpty && !isAddMapEmpty) {
if (smallestOldPrefix == smallestAddPrefix) {
LOG(("Add prefix should not exist in the original prefix set."));
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_UPDATE_ERROR_TYPE,
- DUPLICATE_PREFIX);
return NS_ERROR_FAILURE;
}
@@ -274,15 +269,11 @@ LookupCacheV4::ApplyUpdate(TableUpdateV4* aTableUpdate,
// the number of original prefix plus add prefix.
if (index <= 0) {
LOG(("There are still prefixes remaining after reaching maximum runs."));
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_UPDATE_ERROR_TYPE,
- INFINITE_LOOP);
return NS_ERROR_FAILURE;
}
if (removalIndex < removalArray.Length()) {
LOG(("There are still prefixes to remove after exhausting the old PrefixSet."));
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_UPDATE_ERROR_TYPE,
- WRONG_REMOVAL_INDICES);
return NS_ERROR_FAILURE;
}
@@ -290,8 +281,6 @@ LookupCacheV4::ApplyUpdate(TableUpdateV4* aTableUpdate,
crypto->Finish(false, checksum);
if (aTableUpdate->Checksum().IsEmpty()) {
LOG(("Update checksum missing."));
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_UPDATE_ERROR_TYPE,
- MISSING_CHECKSUM);
// Generate our own checksum to tableUpdate to ensure there is always
// checksum in .metadata
@@ -300,8 +289,6 @@ LookupCacheV4::ApplyUpdate(TableUpdateV4* aTableUpdate,
} else if (aTableUpdate->Checksum() != checksum){
LOG(("Checksum mismatch after applying partial update"));
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_UPDATE_ERROR_TYPE,
- CHECKSUM_MISMATCH);
return NS_ERROR_FAILURE;
}
diff --git a/toolkit/components/url-classifier/VariableLengthPrefixSet.cpp b/toolkit/components/url-classifier/VariableLengthPrefixSet.cpp
index e9d6770d3..a387a698c 100644
--- a/toolkit/components/url-classifier/VariableLengthPrefixSet.cpp
+++ b/toolkit/components/url-classifier/VariableLengthPrefixSet.cpp
@@ -209,8 +209,6 @@ VariableLengthPrefixSet::LoadFromFile(nsIFile* aFile)
NS_ENSURE_ARG_POINTER(aFile);
- Telemetry::AutoTimer<Telemetry::URLCLASSIFIER_VLPS_FILELOAD_TIME> timer;
-
nsCOMPtr<nsIInputStream> localInFile;
nsresult rv = NS_NewLocalFileInputStream(getter_AddRefs(localInFile), aFile,
PR_RDONLY | nsIFile::OS_READAHEAD);
@@ -255,15 +253,12 @@ VariableLengthPrefixSet::StoreToFile(nsIFile* aFile)
uint32_t fileSize = 0;
// Preallocate the file storage
- {
- nsCOMPtr<nsIFileOutputStream> fos(do_QueryInterface(localOutFile));
- Telemetry::AutoTimer<Telemetry::URLCLASSIFIER_VLPS_FALLOCATE_TIME> timer;
+ nsCOMPtr<nsIFileOutputStream> fos(do_QueryInterface(localOutFile));
- fileSize += mFixedPrefixSet->CalculatePreallocateSize();
- fileSize += CalculatePreallocateSize();
+ fileSize += mFixedPrefixSet->CalculatePreallocateSize();
+ fileSize += CalculatePreallocateSize();
- Unused << fos->Preallocate(fileSize);
- }
+ Unused << fos->Preallocate(fileSize);
// Convert to buffered stream
nsCOMPtr<nsIOutputStream> out =
diff --git a/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp b/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp
index 2ad8b6b51..d3018aa2d 100644
--- a/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp
+++ b/toolkit/components/url-classifier/nsUrlClassifierDBService.cpp
@@ -37,7 +37,6 @@
#include "mozilla/Mutex.h"
#include "mozilla/Preferences.h"
#include "mozilla/TimeStamp.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/Logging.h"
#include "prprf.h"
#include "prnetdb.h"
@@ -320,9 +319,6 @@ nsUrlClassifierDBServiceWorker::HandlePendingLookups()
MutexAutoUnlock unlock(mPendingLookupLock);
DoLookup(lookup.mKey, lookup.mTables, lookup.mCallback);
}
- double lookupTime = (TimeStamp::Now() - lookup.mStartTime).ToMilliseconds();
- Telemetry::Accumulate(Telemetry::URLCLASSIFIER_LOOKUP_TIME,
- static_cast<uint32_t>(lookupTime));
}
return NS_OK;
@@ -1818,8 +1814,6 @@ nsUrlClassifierDBService::Shutdown()
gShuttingDownThread = true;
- Telemetry::AutoTimer<Telemetry::URLCLASSIFIER_SHUTDOWN_TIME> timer;
-
mCompleters.Clear();
nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
diff --git a/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp b/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp
index 874565470..3cfdf7a35 100644
--- a/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp
+++ b/toolkit/components/url-classifier/nsUrlClassifierPrefixSet.cpp
@@ -315,8 +315,6 @@ nsUrlClassifierPrefixSet::LoadFromFile(nsIFile* aFile)
{
MutexAutoLock lock(mLock);
- Telemetry::AutoTimer<Telemetry::URLCLASSIFIER_PS_FILELOAD_TIME> timer;
-
nsCOMPtr<nsIInputStream> localInFile;
nsresult rv = NS_NewLocalFileInputStream(getter_AddRefs(localInFile), aFile,
PR_RDONLY | nsIFile::OS_READAHEAD);
@@ -356,17 +354,13 @@ nsUrlClassifierPrefixSet::StoreToFile(nsIFile* aFile)
uint32_t fileSize;
- // Preallocate the file storage
- {
- nsCOMPtr<nsIFileOutputStream> fos(do_QueryInterface(localOutFile));
- Telemetry::AutoTimer<Telemetry::URLCLASSIFIER_PS_FALLOCATE_TIME> timer;
+ nsCOMPtr<nsIFileOutputStream> fos(do_QueryInterface(localOutFile));
- fileSize = CalculatePreallocateSize();
+ fileSize = CalculatePreallocateSize();
- // Ignore failure, the preallocation is a hint and we write out the entire
- // file later on
- Unused << fos->Preallocate(fileSize);
- }
+ // Ignore failure, the preallocation is a hint and we write out the entire
+ // file later on
+ Unused << fos->Preallocate(fileSize);
// Convert to buffered stream
nsCOMPtr<nsIOutputStream> out =
diff --git a/toolkit/components/url-classifier/nsUrlClassifierStreamUpdater.cpp b/toolkit/components/url-classifier/nsUrlClassifierStreamUpdater.cpp
index 554bff342..e230f6951 100644
--- a/toolkit/components/url-classifier/nsUrlClassifierStreamUpdater.cpp
+++ b/toolkit/components/url-classifier/nsUrlClassifierStreamUpdater.cpp
@@ -646,9 +646,6 @@ nsUrlClassifierStreamUpdater::OnStartRequest(nsIRequest *request,
if (NS_FAILED(status)) {
// Assume we're overloading the server and trigger backoff.
downloadError = true;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::URLCLASSIFIER_UPDATE_REMOTE_STATUS,
- 15 /* unknown response code */);
-
} else {
bool succeeded = false;
rv = httpChannel->GetRequestSucceeded(&succeeded);
@@ -657,8 +654,6 @@ nsUrlClassifierStreamUpdater::OnStartRequest(nsIRequest *request,
uint32_t requestStatus;
rv = httpChannel->GetResponseStatus(&requestStatus);
NS_ENSURE_SUCCESS(rv, rv);
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::URLCLASSIFIER_UPDATE_REMOTE_STATUS,
- HTTPStatusToBucket(requestStatus));
LOG(("nsUrlClassifierStreamUpdater::OnStartRequest %s (%d)", succeeded ?
"succeeded" : "failed", requestStatus));
if (!succeeded) {
diff --git a/toolkit/content/browser-content.js b/toolkit/content/browser-content.js
index 2276f8a0d..e1114672c 100644
--- a/toolkit/content/browser-content.js
+++ b/toolkit/content/browser-content.js
@@ -841,6 +841,35 @@ var FindBar = {
fakeEvent[k] = event[k];
}
}
+#ifdef MC_PALEMOON
+ let findBarId = "FindToolbar";
+ // The FindBar is in the chrome window's context, not in tabbrowser
+ // - see also bug 537013
+ let chromeWin = null;
+ try {
+ chromeWin = content
+ .QueryInterface(Ci.nsIInterfaceRequestor)
+ .getInterface(Ci.nsIWebNavigation)
+ .QueryInterface(Ci.nsIDocShellTreeItem)
+ .rootTreeItem
+ .QueryInterface(Ci.nsIInterfaceRequestor)
+ .getInterface(Ci.nsIDOMWindow)
+ .QueryInterface(Ci.nsIDOMChromeWindow);
+ } catch (e) {
+ Cu.reportError(
+ "The FindBar - the chrome window's context was not detected:\n" + e);
+ }
+ if (chromeWin && chromeWin.document.getElementById(findBarId)) {
+ try {
+ chromeWin.document.getElementById(findBarId)
+ .browser = Services.wm.getMostRecentWindow("navigator:browser")
+ .gBrowser.mCurrentBrowser;
+ } catch (e) {
+ Cu.reportError(
+ "The FindBar - cannot set the property 'browser':\n" + e);
+ }
+ }
+#endif
// sendSyncMessage returns an array of the responses from all listeners
let rv = sendSyncMessage("Findbar:Keypress", {
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
index e1d432cb3..c11d3abed 100644
--- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn
@@ -39,7 +39,7 @@ toolkit.jar:
content/global/plugins.html
content/global/plugins.css
content/global/browser-child.js
- content/global/browser-content.js
+* content/global/browser-content.js
* content/global/buildconfig.html
content/global/contentAreaUtils.js
#ifndef MOZ_FENNEC
diff --git a/toolkit/content/widgets/findbar.xml b/toolkit/content/widgets/findbar.xml
index b92fb1d05..c312a6a25 100644
--- a/toolkit/content/widgets/findbar.xml
+++ b/toolkit/content/widgets/findbar.xml
@@ -282,6 +282,7 @@
return this._browser;
]]></getter>
<setter><![CDATA[
+ let prefsvc = this._prefsvc;
if (this._browser) {
if (this._browser.messageManager) {
this._browser.messageManager.removeMessageListener("Findbar:Keypress", this);
@@ -300,7 +301,9 @@
this._browser.messageManager.addMessageListener("Findbar:Mouseup", this);
this._browser.finder.addResultListener(this);
- this._findField.value = this._browser._lastSearchString;
+ if (prefsvc.getBoolPref("findbar.termPerTab") == true) {
+ this._findField.value = this._browser._lastSearchString;
+ }
}
return val;
]]></setter>
diff --git a/toolkit/content/widgets/tabbox.xml b/toolkit/content/widgets/tabbox.xml
index 02adb70b3..60c395c13 100644
--- a/toolkit/content/widgets/tabbox.xml
+++ b/toolkit/content/widgets/tabbox.xml
@@ -792,19 +792,6 @@
<field name="arrowKeysShouldWrap" readonly="true">
/Mac/.test(navigator.platform)
</field>
- <property name="TelemetryStopwatch" readonly="true">
- <getter><![CDATA[
- let module = {};
- Cu.import("resource://gre/modules/TelemetryStopwatch.jsm", module);
- Object.defineProperty(this, "TelemetryStopwatch", {
- configurable: true,
- enumerable: true,
- writable: true,
- value: module.TelemetryStopwatch
- });
- return module.TelemetryStopwatch;
- ]]></getter>
- </property>
</implementation>
<handlers>
@@ -814,11 +801,6 @@
return;
if (this != this.parentNode.selectedItem) { // Not selected yet
- let stopwatchid = this.parentNode.getAttribute("stopwatchid");
- if (stopwatchid) {
- this.TelemetryStopwatch.start(stopwatchid);
- }
-
// Call this before setting the 'ignorefocus' attribute because this
// will pass on focus if the formerly selected tab was focused as well.
this.parentNode._selectNewTab(this);
@@ -836,10 +818,6 @@
this.setAttribute("ignorefocus", "true");
setTimeout(tab => tab.removeAttribute("ignorefocus"), 0, this);
}
-
- if (stopwatchid) {
- this.TelemetryStopwatch.finish(stopwatchid);
- }
}
// Otherwise this tab is already selected and we will fall
// through to mousedown behavior which sets focus on the current tab,
diff --git a/toolkit/locales/Makefile.in b/toolkit/locales/Makefile.in
index 189e0b1b0..198d9aaa8 100644
--- a/toolkit/locales/Makefile.in
+++ b/toolkit/locales/Makefile.in
@@ -16,7 +16,9 @@ libs-%:
@$(MAKE) -C ../../netwerk/locales/ libs AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../dom/locales/ libs AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../security/manager/locales/ libs AB_CD=$* XPI_NAME=locale-$*
+ifdef MOZ_DEVTOOLS_SERVER
@$(MAKE) -C ../../devtools/shared/locales/ libs AB_CD=$* XPI_NAME=locale-$*
+endif
@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$*
# target to be used by multi-locale l10n builds, just add this locale
diff --git a/toolkit/themes/linux/global/jar.mn b/toolkit/themes/linux/global/jar.mn
index b161f8cae..ba665adff 100644
--- a/toolkit/themes/linux/global/jar.mn
+++ b/toolkit/themes/linux/global/jar.mn
@@ -32,7 +32,7 @@ toolkit.jar:
skin/classic/global/splitter.css
skin/classic/global/tabbox.css
skin/classic/global/textbox.css
- skin/classic/global/toolbar.css
+* skin/classic/global/toolbar.css
skin/classic/global/toolbarbutton.css
skin/classic/global/tree.css
skin/classic/global/alerts/alert.css (alerts/alert.css)
diff --git a/toolkit/themes/linux/global/toolbar.css b/toolkit/themes/linux/global/toolbar.css
index f17fea12f..1d52aeb8f 100644
--- a/toolkit/themes/linux/global/toolbar.css
+++ b/toolkit/themes/linux/global/toolbar.css
@@ -31,11 +31,21 @@ menubar, toolbar[type="menubar"] {
padding: 1px 0px;
}
+
+%ifdef MOZ_AUSTRALIS
+menubar:-moz-lwtheme,
+toolbar:-moz-lwtheme {
+ -moz-appearance: none;
+ color: inherit;
+}
+%else
menubar:-moz-lwtheme,
toolbar:-moz-lwtheme {
-moz-appearance: none;
color: inherit;
+ border-style: none;
}
+%endif
/* in browser.xul, the menubar is inside a toolbar... */
toolbaritem > menubar {
diff --git a/toolkit/themes/osx/global/jar.mn b/toolkit/themes/osx/global/jar.mn
index 2b7d19641..9ca73cc6b 100644
--- a/toolkit/themes/osx/global/jar.mn
+++ b/toolkit/themes/osx/global/jar.mn
@@ -44,7 +44,7 @@ toolkit.jar:
skin/classic/global/tabbox.css
skin/classic/global/textbox.css
skin/classic/global/datetimepicker.css
- skin/classic/global/toolbar.css
+* skin/classic/global/toolbar.css
skin/classic/global/toolbarbutton.css
* skin/classic/global/tree.css
* skin/classic/global/viewbuttons.css
diff --git a/toolkit/themes/osx/global/toolbar.css b/toolkit/themes/osx/global/toolbar.css
index 820436f14..f07332d2f 100644
--- a/toolkit/themes/osx/global/toolbar.css
+++ b/toolkit/themes/osx/global/toolbar.css
@@ -16,12 +16,21 @@ toolbar {
-moz-appearance: toolbar;
}
+%ifdef MOZ_AUSTRALIS
menubar:-moz-lwtheme,
toolbar:-moz-lwtheme {
-moz-appearance: none;
background: none;
border-color: transparent;
}
+%else
+menubar:-moz-lwtheme,
+toolbar:-moz-lwtheme {
+ -moz-appearance: none;
+ background: none;
+ border-style: none;
+}
+%endif
menubar {
-moz-appearance: dialog; /* For content menubars, "toolbar" is too dark, so we use "dialog". */
diff --git a/toolkit/themes/windows/global/jar.mn b/toolkit/themes/windows/global/jar.mn
index a2cc9e2ea..6f0cf4130 100644
--- a/toolkit/themes/windows/global/jar.mn
+++ b/toolkit/themes/windows/global/jar.mn
@@ -37,7 +37,7 @@ toolkit.jar:
skin/classic/global/printPreview.css
skin/classic/global/scrollbox.css
skin/classic/global/splitter.css
- skin/classic/global/toolbar.css
+* skin/classic/global/toolbar.css
skin/classic/global/toolbarbutton.css
* skin/classic/global/tree.css
skin/classic/global/alerts/alert.css (alerts/alert.css)
diff --git a/toolkit/themes/windows/global/toolbar.css b/toolkit/themes/windows/global/toolbar.css
index dcd8d361f..38c8a617a 100644
--- a/toolkit/themes/windows/global/toolbar.css
+++ b/toolkit/themes/windows/global/toolbar.css
@@ -37,7 +37,8 @@ toolbar:first-child, menubar {
}
/* ::::: lightweight theme ::::: */
-
+
+%ifdef MOZ_AUSTRALIS
menubar:-moz-lwtheme,
toolbox:-moz-lwtheme,
toolbar:-moz-lwtheme {
@@ -45,6 +46,15 @@ toolbar:-moz-lwtheme {
background: none;
border-color: transparent;
}
+%else
+menubar:-moz-lwtheme,
+toolbox:-moz-lwtheme,
+toolbar:-moz-lwtheme {
+ -moz-appearance: none;
+ background: none;
+ border-style: none;
+}
+%endif
/* ::::: toolbar decorations ::::: */
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 40f9ead79..59a72c432 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -4338,11 +4338,6 @@ mozilla::BrowserTabsRemoteAutostart()
gBrowserTabsRemoteStatus = status;
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::E10S_STATUS, status);
- if (prefEnabled) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::E10S_BLOCKED_FROM_RUNNING,
- !gBrowserTabsRemoteAutostart);
- }
return gBrowserTabsRemoteAutostart;
}
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
index d904cb83a..265652477 100644
--- a/toolkit/xre/nsXREDirProvider.cpp
+++ b/toolkit/xre/nsXREDirProvider.cpp
@@ -953,27 +953,6 @@ nsXREDirProvider::DoStartup()
else
mode = 2;
}
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SAFE_MODE_USAGE, mode);
-
- // Telemetry about number of profiles.
- nsCOMPtr<nsIToolkitProfileService> profileService =
- do_GetService("@mozilla.org/toolkit/profile-service;1");
- if (profileService) {
- nsCOMPtr<nsISimpleEnumerator> profiles;
- rv = profileService->GetProfiles(getter_AddRefs(profiles));
- if (NS_WARN_IF(NS_FAILED(rv))) {
- return rv;
- }
-
- uint32_t count = 0;
- nsCOMPtr<nsISupports> profile;
- while (NS_SUCCEEDED(profiles->GetNext(getter_AddRefs(profile)))) {
- ++count;
- }
-
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::NUMBER_OF_PROFILES,
- count);
- }
obsSvc->NotifyObservers(nullptr, "profile-initial-state", nullptr);
}
diff --git a/widget/android/fennec/Telemetry.h b/widget/android/fennec/Telemetry.h
index c72735496..458889ef0 100644
--- a/widget/android/fennec/Telemetry.h
+++ b/widget/android/fennec/Telemetry.h
@@ -44,7 +44,6 @@ public:
AddHistogram(jni::String::Param aName, int32_t aValue)
{
MOZ_ASSERT(aName);
- mozilla::Telemetry::Accumulate(aName->ToCString().get(), aValue);
}
static void
@@ -52,8 +51,6 @@ public:
int32_t aValue)
{
MOZ_ASSERT(aName && aKey);
- mozilla::Telemetry::Accumulate(aName->ToCString().get(),
- aKey->ToCString(), aValue);
}
static void
diff --git a/widget/nsIdleService.cpp b/widget/nsIdleService.cpp
index 6a2833081..a1a2566df 100644
--- a/widget/nsIdleService.cpp
+++ b/widget/nsIdleService.cpp
@@ -716,9 +716,6 @@ nsIdleService::IdleTimerCallback(void)
return;
}
- // Tell expired listeners they are expired,and find the next timeout
- Telemetry::AutoTimer<Telemetry::IDLE_NOTIFY_IDLE_MS> timer;
-
// We need to initialise the time to the next idle switch.
mDeltaToNextIdleSwitchInS = UINT32_MAX;
diff --git a/widget/windows/WinCompositorWidget.cpp b/widget/windows/WinCompositorWidget.cpp
index f660bd019..99ce67573 100644
--- a/widget/windows/WinCompositorWidget.cpp
+++ b/widget/windows/WinCompositorWidget.cpp
@@ -22,6 +22,7 @@ using namespace mozilla::gfx;
WinCompositorWidget::WinCompositorWidget(const CompositorWidgetInitData& aInitData)
: mWidgetKey(aInitData.widgetKey()),
mWnd(reinterpret_cast<HWND>(aInitData.hWnd())),
+ mTransparentSurfaceLock("mTransparentSurfaceLock"),
mTransparencyMode(static_cast<nsTransparencyMode>(aInitData.transparencyMode())),
mMemoryDC(nullptr),
mCompositeDC(nullptr),
@@ -39,6 +40,7 @@ WinCompositorWidget::WinCompositorWidget(const CompositorWidgetInitData& aInitDa
void
WinCompositorWidget::OnDestroyWindow()
{
+ MutexAutoLock lock(mTransparentSurfaceLock);
mTransparentSurface = nullptr;
mMemoryDC = nullptr;
}
@@ -75,6 +77,8 @@ WinCompositorWidget::GetClientSize()
already_AddRefed<gfx::DrawTarget>
WinCompositorWidget::StartRemoteDrawing()
{
+ MutexAutoLock lock(mTransparentSurfaceLock);
+
MOZ_ASSERT(!mCompositeDC);
RefPtr<gfxASurface> surf;
@@ -229,6 +233,7 @@ WinCompositorWidget::LeavePresentLock()
RefPtr<gfxASurface>
WinCompositorWidget::EnsureTransparentSurface()
{
+ mTransparentSurfaceLock.AssertCurrentThreadOwns();
MOZ_ASSERT(mTransparencyMode == eTransparencyTransparent);
IntSize size = GetClientSize().ToUnknownSize();
@@ -245,6 +250,7 @@ WinCompositorWidget::EnsureTransparentSurface()
void
WinCompositorWidget::CreateTransparentSurface(const gfx::IntSize& aSize)
{
+ mTransparentSurfaceLock.AssertCurrentThreadOwns();
MOZ_ASSERT(!mTransparentSurface && !mMemoryDC);
RefPtr<gfxWindowsSurface> surface = new gfxWindowsSurface(aSize, SurfaceFormat::A8R8G8B8_UINT32);
mTransparentSurface = surface;
@@ -254,6 +260,7 @@ WinCompositorWidget::CreateTransparentSurface(const gfx::IntSize& aSize)
void
WinCompositorWidget::UpdateTransparency(nsTransparencyMode aMode)
{
+ MutexAutoLock lock(mTransparentSurfaceLock);
if (mTransparencyMode == aMode) {
return;
}
@@ -270,6 +277,7 @@ WinCompositorWidget::UpdateTransparency(nsTransparencyMode aMode)
void
WinCompositorWidget::ClearTransparentWindow()
{
+ MutexAutoLock lock(mTransparentSurfaceLock);
if (!mTransparentSurface) {
return;
}
diff --git a/widget/windows/WinCompositorWidget.h b/widget/windows/WinCompositorWidget.h
index 9661cab45..1689a8641 100644
--- a/widget/windows/WinCompositorWidget.h
+++ b/widget/windows/WinCompositorWidget.h
@@ -10,6 +10,7 @@
#include "gfxASurface.h"
#include "mozilla/gfx/CriticalSection.h"
#include "mozilla/gfx/Point.h"
+#include "mozilla/Mutex.h"
#include "nsIWidget.h"
class nsWindow;
@@ -83,6 +84,8 @@ public:
return mWnd;
}
+ mozilla::Mutex& GetTransparentSurfaceLock() { return mTransparentSurfaceLock; }
+
private:
HDC GetWindowSurface();
void FreeWindowSurface(HDC dc);
@@ -95,6 +98,7 @@ private:
gfx::CriticalSection mPresentLock;
// Transparency handling.
+ mozilla::Mutex mTransparentSurfaceLock;
nsTransparencyMode mTransparencyMode;
RefPtr<gfxASurface> mTransparentSurface;
HDC mMemoryDC;
diff --git a/widget/windows/nsLookAndFeel.cpp b/widget/windows/nsLookAndFeel.cpp
index 97f81abfd..a907622d9 100644
--- a/widget/windows/nsLookAndFeel.cpp
+++ b/widget/windows/nsLookAndFeel.cpp
@@ -11,7 +11,6 @@
#include "nsUXThemeConstants.h"
#include "gfxFont.h"
#include "WinUtils.h"
-#include "mozilla/Telemetry.h"
#include "mozilla/WindowsVersion.h"
#include "gfxFontConstants.h"
@@ -65,8 +64,6 @@ nsLookAndFeel::nsLookAndFeel()
: nsXPLookAndFeel()
, mUseAccessibilityTheme(0)
{
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::TOUCH_ENABLED_DEVICE,
- WinUtils::IsTouchDeviceSupportPresent());
}
nsLookAndFeel::~nsLookAndFeel()
diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp
index b2bb59bd3..122d18686 100644
--- a/widget/windows/nsWindow.cpp
+++ b/widget/windows/nsWindow.cpp
@@ -366,6 +366,9 @@ static const int32_t kResizableBorderMinSize = 3;
// Cached pointer events enabler value, True if pointer events are enabled.
static bool gIsPointerEventsEnabled = false;
+// Cached scroll outside menu enabler value, True if scrolling is allowed.
+static bool gIsScrollingOutsideEnabled = false;
+
// We should never really try to accelerate windows bigger than this. In some
// cases this might lead to no D3D9 acceleration where we could have had it
// but D3D9 does not reliably report when it supports bigger windows. 8192
@@ -665,6 +668,10 @@ nsWindow::nsWindow()
Preferences::AddBoolVarCache(&gIsPointerEventsEnabled,
"dom.w3c_pointer_events.enabled",
gIsPointerEventsEnabled);
+ Preferences::AddBoolVarCache(&gIsScrollingOutsideEnabled,
+ "ui.menu.allow_content_scroll",
+ gIsScrollingOutsideEnabled);
+
} // !sInstanceCount
mIdleService = nullptr;
@@ -4225,10 +4232,6 @@ nsWindow::DispatchMouseEvent(EventMessage aEventMessage, WPARAM wParam,
}
if (WinUtils::GetIsMouseFromTouch(aEventMessage)) {
- if (aEventMessage == eMouseDown) {
- Telemetry::Accumulate(Telemetry::FX_TOUCH_USED, 1);
- }
-
if (mTouchWindow) {
// If mTouchWindow is true, then we must have APZ enabled and be
// feeding it raw touch events. In that case we don't need to
@@ -6743,8 +6746,6 @@ bool nsWindow::OnGesture(WPARAM wParam, LPARAM lParam)
bool endFeedback = true;
if (mGesture.PanDeltaToPixelScroll(wheelEvent)) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::SCROLL_INPUT_METHODS,
- (uint32_t) ScrollInputMethod::MainThreadTouch);
DispatchEvent(&wheelEvent, status);
}
@@ -7703,7 +7704,8 @@ nsWindow::DealWithPopups(HWND aWnd, UINT aMessage,
break;
}
}
- return consumeRollupEvent;
+ // Consume event if appropriate unless overridden.
+ return consumeRollupEvent && !gIsScrollingOutsideEnabled;
case WM_ACTIVATEAPP:
break;
diff --git a/widget/windows/nsWindowGfx.cpp b/widget/windows/nsWindowGfx.cpp
index a88631f89..9b303a0f2 100644
--- a/widget/windows/nsWindowGfx.cpp
+++ b/widget/windows/nsWindowGfx.cpp
@@ -320,6 +320,8 @@ bool nsWindow::OnPaint(HDC aDC, uint32_t aNestingLevel)
#if defined(MOZ_XUL)
// don't support transparency for non-GDI rendering, for now
if (eTransparencyTransparent == mTransparencyMode) {
+ // This mutex needs to be held when EnsureTransparentSurface is called.
+ MutexAutoLock lock(mBasicLayersSurface->GetTransparentSurfaceLock());
targetSurface = mBasicLayersSurface->EnsureTransparentSurface();
}
#endif
diff --git a/xpcom/base/CycleCollectedJSContext.cpp b/xpcom/base/CycleCollectedJSContext.cpp
index 4af8fe4dd..02fc1aa4c 100644
--- a/xpcom/base/CycleCollectedJSContext.cpp
+++ b/xpcom/base/CycleCollectedJSContext.cpp
@@ -1547,9 +1547,6 @@ IncrementalFinalizeRunnable::Run()
}
}
- uint32_t duration = (uint32_t)((TimeStamp::Now() - start).ToMilliseconds());
- Telemetry::Accumulate(Telemetry::DEFERRED_FINALIZE_ASYNC, duration);
-
return NS_OK;
}
diff --git a/xpcom/base/nsCycleCollector.cpp b/xpcom/base/nsCycleCollector.cpp
index b2c15a1dd..a349e086d 100644
--- a/xpcom/base/nsCycleCollector.cpp
+++ b/xpcom/base/nsCycleCollector.cpp
@@ -528,15 +528,6 @@ public:
#define CC_GRAPH_ASSERT(b)
#endif
-#define CC_TELEMETRY(_name, _value) \
- PR_BEGIN_MACRO \
- if (NS_IsMainThread()) { \
- Telemetry::Accumulate(Telemetry::CYCLE_COLLECTOR##_name, _value); \
- } else { \
- Telemetry::Accumulate(Telemetry::CYCLE_COLLECTOR_WORKER##_name, _value); \
- } \
- PR_END_MACRO
-
enum NodeColor { black, white, grey };
// This structure should be kept as small as possible; we may expect
@@ -2966,7 +2957,6 @@ nsCycleCollector::ScanWeakMaps()
if (failed) {
MOZ_ASSERT(false, "Ran out of memory in ScanWeakMaps");
- CC_TELEMETRY(_OOM, true);
}
}
@@ -3109,7 +3099,6 @@ nsCycleCollector::ScanIncrementalRoots()
if (failed) {
NS_ASSERTION(false, "Ran out of memory in ScanIncrementalRoots");
- CC_TELEMETRY(_OOM, true);
}
}
@@ -3171,7 +3160,6 @@ nsCycleCollector::ScanBlackNodes()
if (failed) {
NS_ASSERTION(false, "Ran out of memory in ScanBlackNodes");
- CC_TELEMETRY(_OOM, true);
}
}
@@ -3501,7 +3489,6 @@ nsCycleCollector::FixGrayBits(bool aForceGC, TimeLog& aTimeLog)
bool needGC = !mJSContext->AreGCGrayBitsValid();
// Only do a telemetry ping for non-shutdown CCs.
- CC_TELEMETRY(_NEED_GC, needGC);
if (!needGC) {
return;
}
@@ -3553,10 +3540,6 @@ nsCycleCollector::CleanupAfterCollection()
printf(".\ncc: \n");
#endif
- CC_TELEMETRY( , interval);
- CC_TELEMETRY(_VISITED_REF_COUNTED, mResults.mVisitedRefCounted);
- CC_TELEMETRY(_VISITED_GCED, mResults.mVisitedGCed);
- CC_TELEMETRY(_COLLECTED, mWhiteNodeCount);
timeLog.Checkpoint("CleanupAfterCollection::telemetry");
if (mJSContext) {
diff --git a/xpcom/base/nsMemoryReporterManager.cpp b/xpcom/base/nsMemoryReporterManager.cpp
index 2d4f3fa9c..bfeda063b 100644
--- a/xpcom/base/nsMemoryReporterManager.cpp
+++ b/xpcom/base/nsMemoryReporterManager.cpp
@@ -440,7 +440,6 @@ ResidentDistinguishedAmountHelper(int64_t* aN, bool aDoPurge)
{
#ifdef HAVE_JEMALLOC_STATS
if (aDoPurge) {
- Telemetry::AutoTimer<Telemetry::MEMORY_FREE_PURGED_PAGES_MS> timer;
jemalloc_purge_freed_pages();
}
#endif
diff --git a/xpcom/build/XPCOMInit.cpp b/xpcom/build/XPCOMInit.cpp
index e8ee5828a..b89f51a98 100644
--- a/xpcom/build/XPCOMInit.cpp
+++ b/xpcom/build/XPCOMInit.cpp
@@ -123,6 +123,8 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**);
#include "nsMemoryInfoDumper.h"
#include "nsSecurityConsoleMessage.h"
#include "nsMessageLoop.h"
+#include "nss.h"
+#include "ssl.h"
#include "nsStatusReporterManager.h"
@@ -1043,6 +1045,17 @@ ShutdownXPCOM(nsIServiceManager* aServMgr)
sInitializedJS = false;
}
+ // At this point all networking threads should have been joined and the
+ // component manager is shut down. Any remaining objects that hold NSS
+ // resources (should!) have been released, so we can safely shut down NSS.
+ if (NSS_IsInitialized()) {
+ SSL_ClearSessionCache();
+ // XXX: It would be nice if we can enforce this shutdown.
+ if (NSS_Shutdown() != SECSuccess) {
+ NS_WARNING("NSS Shutdown failed - some resources are still in use");
+ }
+ }
+
// Release our own singletons
// Do this _after_ shutting down the component manager, because the
// JS component loader will use XPConnect to call nsIModule::canUnload,
diff --git a/xpcom/glue/Observer.h b/xpcom/glue/Observer.h
index 958e5e4a9..cf9e507dd 100644
--- a/xpcom/glue/Observer.h
+++ b/xpcom/glue/Observer.h
@@ -7,7 +7,7 @@
#ifndef mozilla_Observer_h
#define mozilla_Observer_h
-#include "nsTArray.h"
+#include "nsTObserverArray.h"
namespace mozilla {
@@ -48,7 +48,7 @@ public:
*/
void AddObserver(Observer<T>* aObserver)
{
- mObservers.AppendElement(aObserver);
+ mObservers.AppendElementUnlessExists(aObserver);
}
/**
@@ -67,15 +67,15 @@ public:
void Broadcast(const T& aParam)
{
- nsTArray<Observer<T>*> observersCopy(mObservers);
- uint32_t size = observersCopy.Length();
- for (uint32_t i = 0; i < size; ++i) {
- observersCopy[i]->Notify(aParam);
+ typename nsTObserverArray<Observer<T>*>::ForwardIterator iter(mObservers);
+ while (iter.HasMore()) {
+ Observer<T>* obs = iter.GetNext();
+ obs->Notify(aParam);
}
}
protected:
- nsTArray<Observer<T>*> mObservers;
+ nsTObserverArray<Observer<T>*> mObservers;
};
} // namespace mozilla
diff --git a/xpcom/glue/nsTHashtable.h b/xpcom/glue/nsTHashtable.h
index 705b0294e..830f52e88 100644
--- a/xpcom/glue/nsTHashtable.h
+++ b/xpcom/glue/nsTHashtable.h
@@ -372,7 +372,7 @@ template<class EntryType>
PLDHashNumber
nsTHashtable<EntryType>::s_HashKey(const void* aKey)
{
- return EntryType::HashKey(static_cast<const KeyTypePointer>(aKey));
+ return EntryType::HashKey(static_cast<KeyTypePointer>(aKey));
}
template<class EntryType>
@@ -381,7 +381,7 @@ nsTHashtable<EntryType>::s_MatchEntry(const PLDHashEntryHdr* aEntry,
const void* aKey)
{
return ((const EntryType*)aEntry)->KeyEquals(
- static_cast<const KeyTypePointer>(aKey));
+ static_cast<KeyTypePointer>(aKey));
}
template<class EntryType>
diff --git a/xpcom/string/nsReadableUtilsImpl.h b/xpcom/string/nsReadableUtilsImpl.h
index ff1497b51..94f18dffc 100644
--- a/xpcom/string/nsReadableUtilsImpl.h
+++ b/xpcom/string/nsReadableUtilsImpl.h
@@ -18,7 +18,7 @@ inline bool IsASCII(char16_t aChar) {
inline const char16_t* aligned(const char16_t* aPtr, const uintptr_t aMask)
{
return reinterpret_cast<const char16_t*>(
- reinterpret_cast<const uintptr_t>(aPtr) & ~aMask);
+ reinterpret_cast<uintptr_t>(aPtr) & ~aMask);
}
/**
diff --git a/xpcom/threads/HangMonitor.cpp b/xpcom/threads/HangMonitor.cpp
index 6def6ed61..8003ef515 100644
--- a/xpcom/threads/HangMonitor.cpp
+++ b/xpcom/threads/HangMonitor.cpp
@@ -249,8 +249,6 @@ NotifyActivity(ActivityType aActivityType)
// If we have UI activity we should reset the timer and report it
if (aActivityType == kUIActivity) {
- mozilla::Telemetry::Accumulate(mozilla::Telemetry::EVENTLOOP_UI_ACTIVITY_EXP_MS,
- cumulativeUILagMS);
cumulativeUILagMS = 0;
}