Merge mozilla-central to autoland r=merge
authorDorel Luca <dluca@mozilla.com>
Tue, 16 Jan 2018 06:07:49 +0200
changeset 453680 68c68173378867d3a4b11c5a6bad6270a556d2de
parent 453662 ffe766bd6f33fe2104ad27879cd6b4d8a7a23c57 (current diff)
parent 453679 a3887394965f161d011eebc74e8987a653366e4b (diff)
child 453681 a6004a75d2d3e5fe04b4d9920cd2e90080784c59
push id1648
push usermtabara@mozilla.com
push dateThu, 01 Mar 2018 12:45:47 +0000
treeherdermozilla-release@cbb9688c2eeb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge mozilla-central to autoland r=merge
--- a/browser/base/content/test/popupNotifications/browser.ini
+++ b/browser/base/content/test/popupNotifications/browser.ini
@@ -9,16 +9,18 @@ skip-if = (os == "linux" && (debug || as
 [browser_popupNotification_2.js]
 skip-if = (os == "linux" && (debug || asan))
 [browser_popupNotification_3.js]
 skip-if = (os == "linux" && (debug || asan))
 [browser_popupNotification_4.js]
 skip-if = (os == "linux" && (debug || asan))
 [browser_popupNotification_5.js]
 skip-if = true # bug 1332646
+[browser_popupNotification_accesskey.js]
+skip-if = (os == "linux" && (debug || asan)) || os == "mac"
 [browser_popupNotification_checkbox.js]
 skip-if = (os == "linux" && (debug || asan))
 [browser_popupNotification_selection_required.js]
 skip-if = (os == "linux" && (debug || asan))
 [browser_popupNotification_keyboard.js]
 skip-if = (os == "linux" && (debug || asan))
 [browser_popupNotification_no_anchors.js]
 skip-if = (os == "linux" && (debug || asan))
new file mode 100644
--- /dev/null
+++ b/browser/base/content/test/popupNotifications/browser_popupNotification_accesskey.js
@@ -0,0 +1,43 @@
+/* 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/. */
+
+function test() {
+  waitForExplicitFinish();
+
+  ok(PopupNotifications, "PopupNotifications object exists");
+  ok(PopupNotifications.panel, "PopupNotifications panel exists");
+
+  setup();
+}
+
+let buttonPressed = false;
+
+function commandTriggered() {
+  buttonPressed = true;
+}
+
+var tests = [
+  // This test ensures that the accesskey closes the popup.
+  { id: "Test#1",
+    run() {
+      this.notifyObj = new BasicNotification(this.id);
+      showNotification(this.notifyObj);
+    },
+    onShown(popup) {
+      window.addEventListener("command", commandTriggered, true);
+      checkPopup(popup, this.notifyObj);
+      EventUtils.synthesizeKey("VK_ALT", { type: "keydown" });
+      EventUtils.synthesizeKey("M", { altKey: true });
+      EventUtils.synthesizeKey("VK_ALT", { type: "keyup" });
+
+      // If bug xxx was present, then the popup would be in the
+      // process of being hidden right now.
+      isnot(popup.state, "hiding", "popup is not hiding");
+    },
+    onHidden(popup) {
+      window.removeEventListener("command", commandTriggered, true);
+      ok(buttonPressed, "button pressed");
+    }
+  }
+ ];
--- a/browser/themes/osx/syncedtabs/sidebar.css
+++ b/browser/themes/osx/syncedtabs/sidebar.css
@@ -101,47 +101,29 @@
 }
 
 .search-box {
   -moz-appearance: searchfield;
   padding: 1px;
   font-size: 12px;
   cursor: text;
   margin: 4px;
-  border-width: 3px;
-  border-style: solid;
-  border-color: currentcolor;
-  border-image: none;
-  -moz-border-top-colors: transparent #888 #000;
-  -moz-border-right-colors: transparent #FFF #000;
-  -moz-border-bottom-colors: transparent #FFF #000;
-  -moz-border-left-colors: transparent #888 #000;
-  border-top-right-radius: 2px;
-  border-bottom-left-radius: 2px;
-  background-color: #FFF;
-  color: #000;
+  color: -moz-fieldText;
   -moz-user-select: text;
   text-shadow: none;
 }
 
 .search-box.compact > .textbox-input-box > .textbox-search-icons > .textbox-search-clear {
   background-image: url(chrome://global/skin/icons/searchfield-cancel.svg);
   background-repeat: no-repeat;
   background-size: 11px 11px;
   width: 11px;
   height: 11px;
 }
 
-.search-box[focused="true"] {
-  -moz-border-top-colors: -moz-mac-focusring -moz-mac-focusring #000000;
-  -moz-border-right-colors: -moz-mac-focusring -moz-mac-focusring #000000;
-  -moz-border-bottom-colors: -moz-mac-focusring -moz-mac-focusring #000000;
-  -moz-border-left-colors: -moz-mac-focusring -moz-mac-focusring #000000;
-}
-
 .search-box.compact {
     padding: 0px;
     /* font size is in px because the XUL it was copied from uses px */
     font-size: 11px;
 }
 
 .textbox-search-clear {
   margin-top: 1px;
--- a/dom/base/Attr.cpp
+++ b/dom/base/Attr.cpp
@@ -326,16 +326,21 @@ Attr::InsertChildAt(nsIContent* aKid, ui
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 void
 Attr::RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify)
 {
 }
 
+void
+Attr::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+}
+
 nsresult
 Attr::GetEventTargetParent(EventChainPreVisitor& aVisitor)
 {
   aVisitor.mCanHandle = true;
   return NS_OK;
 }
 
 void
--- a/dom/base/Attr.h
+++ b/dom/base/Attr.h
@@ -65,16 +65,17 @@ public:
   // nsINode interface
   virtual bool IsNodeOfType(uint32_t aFlags) const override;
   virtual uint32_t GetChildCount() const override;
   virtual nsIContent *GetChildAt_Deprecated(uint32_t aIndex) const override;
   virtual int32_t IndexOf(const nsINode* aPossibleChild) const override;
   virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
                                  bool aNotify) override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
   virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
                          bool aPreallocateChildren) const override;
   virtual already_AddRefed<nsIURI> GetBaseURI(bool aTryUseXHRDocBaseURI = false) const override;
 
   static void Initialize();
   static void Shutdown();
 
   NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS_AMBIGUOUS(Attr,
--- a/dom/base/FragmentOrElement.cpp
+++ b/dom/base/FragmentOrElement.cpp
@@ -1173,16 +1173,22 @@ FragmentOrElement::RemoveChildAt_Depreca
   NS_ASSERTION(oldKid == GetChildAt_Deprecated(aIndex), "Unexpected child in RemoveChildAt_Deprecated");
 
   if (oldKid) {
     doRemoveChildAt(aIndex, aNotify, oldKid, mAttrsAndChildren);
   }
 }
 
 void
+FragmentOrElement::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+  doRemoveChildAt(IndexOf(aKid), aNotify, aKid, mAttrsAndChildren);
+}
+
+void
 FragmentOrElement::GetTextContentInternal(nsAString& aTextContent,
                                           OOMReporter& aError)
 {
   if (!nsContentUtils::GetNodeTextContent(this, true, aTextContent, fallible)) {
     aError.ReportOOM();
   }
 }
 
--- a/dom/base/FragmentOrElement.h
+++ b/dom/base/FragmentOrElement.h
@@ -118,16 +118,17 @@ public:
 
   // nsINode interface methods
   virtual uint32_t GetChildCount() const override;
   virtual nsIContent *GetChildAt_Deprecated(uint32_t aIndex) const override;
   virtual int32_t IndexOf(const nsINode* aPossibleChild) const override;
   virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
                                  bool aNotify) override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
   virtual void GetTextContentInternal(nsAString& aTextContent,
                                       mozilla::OOMReporter& aError) override;
   virtual void SetTextContentInternal(const nsAString& aTextContent,
                                       nsIPrincipal* aSubjectPrincipal,
                                       mozilla::ErrorResult& aError) override;
 
   // nsIContent interface methods
   virtual already_AddRefed<nsINodeList> GetChildren(uint32_t aFilter) override;
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -4397,16 +4397,38 @@ nsDocument::RemoveChildAt_Deprecated(uin
   mCachedRootElement = nullptr;
   doRemoveChildAt(aIndex, aNotify, oldKid, mChildren);
   MOZ_ASSERT(mCachedRootElement != oldKid,
              "Stale pointer in mCachedRootElement, after we tried to clear it "
              "(maybe somebody called GetRootElement() too early?)");
 }
 
 void
+nsDocument::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+  if (aKid->IsElement()) {
+    // Destroy the link map up front before we mess with the child list.
+    DestroyElementMaps();
+  }
+
+  // Preemptively clear mCachedRootElement, since we may be about to remove it
+  // from our child list, and we don't want to return this maybe-obsolete value
+  // from any GetRootElement() calls that happen inside of doRemoveChildAt().
+  // (NOTE: for this to be useful, doRemoveChildAt() must NOT trigger any
+  // GetRootElement() calls until after it's removed the child from mChildren.
+  // Any call before that point would restore this soon-to-be-obsolete cached
+  // answer, and our clearing here would be fruitless.)
+  mCachedRootElement = nullptr;
+  doRemoveChildAt(IndexOf(aKid), aNotify, aKid, mChildren);
+  MOZ_ASSERT(mCachedRootElement != aKid,
+             "Stale pointer in mCachedRootElement, after we tried to clear it "
+             "(maybe somebody called GetRootElement() too early?)");
+}
+
+void
 nsDocument::EnsureOnDemandBuiltInUASheet(StyleSheet* aSheet)
 {
   if (mOnDemandBuiltInUASheets.Contains(aSheet)) {
     return;
   }
   BeginUpdate(UPDATE_STYLE);
   AddOnDemandBuiltInUASheet(aSheet);
   EndUpdate(UPDATE_STYLE);
--- a/dom/base/nsDocument.h
+++ b/dom/base/nsDocument.h
@@ -555,16 +555,17 @@ public:
   // nsINode
   virtual bool IsNodeOfType(uint32_t aFlags) const override;
   virtual nsIContent *GetChildAt_Deprecated(uint32_t aIndex) const override;
   virtual int32_t IndexOf(const nsINode* aPossibleChild) const override;
   virtual uint32_t GetChildCount() const override;
   virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
                                  bool aNotify) override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
   virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
                          bool aPreallocateChildren) const override
   {
     return NS_ERROR_NOT_IMPLEMENTED;
   }
 
   // nsIRadioGroupContainer
   NS_IMETHOD WalkRadioGroup(const nsAString& aName,
--- a/dom/base/nsDocumentEncoder.cpp
+++ b/dom/base/nsDocumentEncoder.cpp
@@ -628,122 +628,16 @@ nsDocumentEncoder::FlushText(nsAString& 
     rv = ConvertAndWrite(aString, mStream, mUnicodeEncoder.get(), mIsPlainText);
 
     aString.Truncate();
   }
 
   return rv;
 }
 
-#if 0 // This code is really fast at serializing a range, but unfortunately
-      // there are problems with it so we don't use it now, maybe later...
-static nsresult ChildAt(nsIDOMNode* aNode, int32_t aIndex, nsIDOMNode*& aChild)
-{
-  nsCOMPtr<nsIContent> content(do_QueryInterface(aNode));
-
-  aChild = nullptr;
-
-  NS_ENSURE_TRUE(content, NS_ERROR_FAILURE);
-
-  nsIContent *child = content->GetChildAt_Deprecated(aIndex);
-
-  if (child)
-    return CallQueryInterface(child, &aChild);
-
-  return NS_OK;
-}
-
-static int32_t IndexOf(nsIDOMNode* aParent, nsIDOMNode* aChild)
-{
-  nsCOMPtr<nsIContent> parent(do_QueryInterface(aParent));
-  nsCOMPtr<nsIContent> child(do_QueryInterface(aChild));
-
-  if (!parent)
-    return -1;
-
-  return parent->IndexOf(child);
-}
-
-static inline int32_t GetIndex(nsTArray<int32_t>& aIndexArray)
-{
-  int32_t count = aIndexArray.Length();
-
-  if (count) {
-    return aIndexArray.ElementAt(count - 1);
-  }
-
-  return 0;
-}
-
-static nsresult GetNextNode(nsIDOMNode* aNode, nsTArray<int32_t>& aIndexArray,
-                            nsIDOMNode*& aNextNode,
-                            nsRangeIterationDirection& aDirection)
-{
-  bool hasChildren;
-
-  aNextNode = nullptr;
-
-  aNode->HasChildNodes(&hasChildren);
-
-  if (hasChildren && aDirection == kDirectionIn) {
-    ChildAt(aNode, 0, aNextNode);
-    NS_ENSURE_TRUE(aNextNode, NS_ERROR_FAILURE);
-
-    aIndexArray.AppendElement(0);
-
-    aDirection = kDirectionIn;
-  } else if (aDirection == kDirectionIn) {
-    aNextNode = aNode;
-
-    NS_ADDREF(aNextNode);
-
-    aDirection = kDirectionOut;
-  } else {
-    nsCOMPtr<nsIDOMNode> parent;
-
-    aNode->GetParentNode(getter_AddRefs(parent));
-    NS_ENSURE_TRUE(parent, NS_ERROR_FAILURE);
-
-    int32_t count = aIndexArray.Length();
-
-    if (count) {
-      int32_t indx = aIndexArray.ElementAt(count - 1);
-
-      ChildAt(parent, indx + 1, aNextNode);
-
-      if (aNextNode)
-        aIndexArray.ElementAt(count - 1) = indx + 1;
-      else
-        aIndexArray.RemoveElementAt(count - 1);
-    } else {
-      int32_t indx = IndexOf(parent, aNode);
-
-      if (indx >= 0) {
-        ChildAt(parent, indx + 1, aNextNode);
-
-        if (aNextNode)
-          aIndexArray.AppendElement(indx + 1);
-      }
-    }
-
-    if (aNextNode) {
-      aDirection = kDirectionIn;
-    } else {
-      aDirection = kDirectionOut;
-
-      aNextNode = parent;
-
-      NS_ADDREF(aNextNode);
-    }
-  }
-
-  return NS_OK;
-}
-#endif
-
 static bool IsTextNode(nsINode *aNode)
 {
   return aNode && aNode->IsNodeOfType(nsINode::eTEXT);
 }
 
 nsresult
 nsDocumentEncoder::SerializeRangeNodes(nsRange* aRange,
                                        nsINode* aNode,
@@ -812,24 +706,22 @@ nsDocumentEncoder::SerializeRangeNodes(n
 
         // serialize the start of this node
         rv = SerializeNodeStart(aNode, 0, -1, aString);
         NS_ENSURE_SUCCESS(rv, rv);
       }
 
       // do some calculations that will tell us which children of this
       // node are in the range.
-      nsIContent* childAsNode = nullptr;
       int32_t startOffset = 0, endOffset = -1;
       if (startNode == content && mStartRootIndex >= aDepth)
         startOffset = mStartOffsets[mStartRootIndex - aDepth];
       if (endNode == content && mEndRootIndex >= aDepth)
         endOffset = mEndOffsets[mEndRootIndex - aDepth];
       // generated content will cause offset values of -1 to be returned.
-      int32_t j;
       uint32_t childCount = content->GetChildCount();
 
       if (startOffset == -1) startOffset = 0;
       if (endOffset == -1) endOffset = childCount;
       else
       {
         // if we are at the "tip" of the selection, endOffset is fine.
         // otherwise, we need to add one.  This is because of the semantics
@@ -837,27 +729,41 @@ nsDocumentEncoder::SerializeRangeNodes(n
         // intermediate points on the list use the endOffset of the
         // location of the ancestor, rather than just past it.  So we need
         // to add one here in order to include it in the children we serialize.
         if (aNode != aRange->GetEndContainer())
         {
           endOffset++;
         }
       }
-      // serialize the children of this node that are in the range
-      for (j=startOffset; j<endOffset; j++)
-      {
-        childAsNode = content->GetChildAt_Deprecated(j);
+
+      if (endOffset) {
+        // serialize the children of this node that are in the range
+        nsIContent* childAsNode = content->GetFirstChild();
+        int32_t j = 0;
+
+        for (; j < startOffset && childAsNode; ++j) {
+          childAsNode = childAsNode->GetNextSibling();
+        }
+
+        NS_ENSURE_TRUE(!!childAsNode, NS_ERROR_FAILURE);
+        MOZ_ASSERT(j == startOffset);
 
-        if ((j==startOffset) || (j==endOffset-1))
-          rv = SerializeRangeNodes(aRange, childAsNode, aString, aDepth+1);
-        else
-          rv = SerializeToStringRecursive(childAsNode, aString, false);
+        for (; childAsNode && j < endOffset; ++j)
+        {
+          if ((j==startOffset) || (j==endOffset-1)) {
+            rv = SerializeRangeNodes(aRange, childAsNode, aString, aDepth+1);
+          } else {
+            rv = SerializeToStringRecursive(childAsNode, aString, false);
+          }
 
-        NS_ENSURE_SUCCESS(rv, rv);
+          NS_ENSURE_SUCCESS(rv, rv);
+
+          childAsNode = childAsNode->GetNextSibling();
+        }
       }
 
       // serialize the end of this node
       if (aNode != mCommonParent)
       {
         rv = SerializeNodeEnd(aNode, aString);
         NS_ENSURE_SUCCESS(rv, rv);
       }
--- a/dom/base/nsGenericDOMDataNode.cpp
+++ b/dom/base/nsGenericDOMDataNode.cpp
@@ -658,16 +658,21 @@ nsGenericDOMDataNode::InsertChildAt(nsIC
   return NS_OK;
 }
 
 void
 nsGenericDOMDataNode::RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify)
 {
 }
 
+void
+nsGenericDOMDataNode::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+}
+
 nsXBLBinding *
 nsGenericDOMDataNode::DoGetXBLBinding() const
 {
   return nullptr;
 }
 
 bool
 nsGenericDOMDataNode::IsNodeOfType(uint32_t aFlags) const
--- a/dom/base/nsGenericDOMDataNode.h
+++ b/dom/base/nsGenericDOMDataNode.h
@@ -105,16 +105,17 @@ public:
 
   // nsINode methods
   virtual uint32_t GetChildCount() const override;
   virtual nsIContent *GetChildAt_Deprecated(uint32_t aIndex) const override;
   virtual int32_t IndexOf(const nsINode* aPossibleChild) const override;
   virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
                                  bool aNotify) override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
   virtual void GetTextContentInternal(nsAString& aTextContent,
                                       mozilla::OOMReporter& aError) override
   {
     GetNodeValue(aTextContent);
   }
   virtual void SetTextContentInternal(const nsAString& aTextContent,
                                       nsIPrincipal* aSubjectPrincipal,
                                       mozilla::ErrorResult& aError) override
--- a/dom/base/nsINode.cpp
+++ b/dom/base/nsINode.cpp
@@ -1922,17 +1922,17 @@ nsINode::Append(const Sequence<OwningNod
 void
 nsINode::doRemoveChildAt(uint32_t aIndex, bool aNotify,
                          nsIContent* aKid, nsAttrAndChildArray& aChildArray)
 {
   // NOTE: This function must not trigger any calls to
   // nsIDocument::GetRootElement() calls until *after* it has removed aKid from
   // aChildArray. Any calls before then could potentially restore a stale
   // value for our cached root element, per note in
-  // nsDocument::RemoveChildAt_Deprecated().
+  // nsDocument::RemoveChildNode().
   MOZ_ASSERT(aKid && aKid->GetParentNode() == this &&
              aKid == GetChildAt_Deprecated(aIndex) &&
              IndexOf(aKid) == (int32_t)aIndex, "Bogus aKid");
   MOZ_ASSERT(!IsNodeOfType(nsINode::eATTRIBUTE));
 
   nsMutationGuard::DidMutate();
   mozAutoDocUpdate updateBatch(GetComposedDoc(), UPDATE_CONTENT_MODEL, aNotify);
 
--- a/dom/base/nsINode.h
+++ b/dom/base/nsINode.h
@@ -774,16 +774,27 @@ public:
    *        nsIContent, and |this| for nsIDocument) that the remove has
    *        occurred
    *
    * Note: If there is no child at aIndex, this method will simply do nothing.
    */
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) = 0;
 
   /**
+   * Remove a child from this node.  This method handles calling UnbindFromTree
+   * on the child appropriately.
+   *
+   * @param aKid the content to remove
+   * @param aNotify whether to notify the document (current document for
+   *        nsIContent, and |this| for nsIDocument) that the remove has
+   *        occurred
+   */
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) = 0;
+
+  /**
    * Get a property associated with this node.
    *
    * @param aPropertyName  name of property to get.
    * @param aStatus        out parameter for storing resulting status.
    *                       Set to NS_PROPTABLE_PROP_NOT_THERE if the property
    *                       is not set.
    * @return               the property. Null if the property is not set
    *                       (though a null return value does not imply the
--- a/dom/html/HTMLFieldSetElement.cpp
+++ b/dom/html/HTMLFieldSetElement.cpp
@@ -191,16 +191,42 @@ HTMLFieldSetElement::RemoveChildAt_Depre
   nsGenericHTMLFormElement::RemoveChildAt_Deprecated(aIndex, aNotify);
 
   if (firstLegendHasChanged) {
     NotifyElementsForFirstLegendChange(aNotify);
   }
 }
 
 void
+HTMLFieldSetElement::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+  bool firstLegendHasChanged = false;
+
+  if (mFirstLegend && aKid == mFirstLegend) {
+    // If we are removing the first legend we have to found another one.
+    nsIContent* child = mFirstLegend->GetNextSibling();
+    mFirstLegend = nullptr;
+    firstLegendHasChanged = true;
+
+    for (; child; child = child->GetNextSibling()) {
+      if (child->IsHTMLElement(nsGkAtoms::legend)) {
+        mFirstLegend = child;
+        break;
+      }
+    }
+  }
+
+  nsGenericHTMLFormElement::RemoveChildNode(aKid, aNotify);
+
+  if (firstLegendHasChanged) {
+    NotifyElementsForFirstLegendChange(aNotify);
+  }
+}
+
+void
 HTMLFieldSetElement::AddElement(nsGenericHTMLFormElement* aElement)
 {
   mDependentElements.AppendElement(aElement);
 
   // If the element that we are adding aElement is a fieldset, then all the
   // invalid elements in aElement are also invalid elements of this.
   HTMLFieldSetElement* fieldSet = FromContent(aElement);
   if (fieldSet) {
--- a/dom/html/HTMLFieldSetElement.h
+++ b/dom/html/HTMLFieldSetElement.h
@@ -39,16 +39,17 @@ public:
                                 const nsAttrValue* aValue,
                                 const nsAttrValue* aOldValue,
                                 nsIPrincipal* aSubjectPrincipal,
                                 bool aNotify) override;
 
   virtual nsresult InsertChildAt(nsIContent* aChild, uint32_t aIndex,
                                      bool aNotify) override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
 
   // nsIFormControl
   NS_IMETHOD Reset() override;
   NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override;
   virtual bool IsDisabledForEvents(EventMessage aMessage) override;
   virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
                          bool aPreallocateChildren) const override;
 
--- a/dom/html/HTMLOptGroupElement.cpp
+++ b/dom/html/HTMLOptGroupElement.cpp
@@ -90,16 +90,24 @@ HTMLOptGroupElement::InsertChildAt(nsICo
 void
 HTMLOptGroupElement::RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify)
 {
   SafeOptionListMutation safeMutation(GetSelect(), this, nullptr, aIndex,
                                       aNotify);
   nsGenericHTMLElement::RemoveChildAt_Deprecated(aIndex, aNotify);
 }
 
+void
+HTMLOptGroupElement::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+  SafeOptionListMutation safeMutation(GetSelect(), this, nullptr, IndexOf(aKid),
+                                      aNotify);
+  nsGenericHTMLElement::RemoveChildNode(aKid, aNotify);
+}
+
 nsresult
 HTMLOptGroupElement::AfterSetAttr(int32_t aNameSpaceID, nsAtom* aName,
                                   const nsAttrValue* aValue,
                                   const nsAttrValue* aOldValue,
                                   nsIPrincipal* aSubjectPrincipal,
                                   bool aNotify)
 {
   if (aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::disabled) {
--- a/dom/html/HTMLOptGroupElement.h
+++ b/dom/html/HTMLOptGroupElement.h
@@ -23,16 +23,17 @@ public:
 
   // nsISupports
   NS_DECL_ISUPPORTS_INHERITED
 
   // nsINode
   virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
                                  bool aNotify) override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
 
   // nsIContent
   virtual nsresult GetEventTargetParent(
                      EventChainPreVisitor& aVisitor) override;
 
   virtual nsresult Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult,
                          bool aPreallocateChildren) const override;
 
--- a/dom/html/HTMLPictureElement.cpp
+++ b/dom/html/HTMLPictureElement.cpp
@@ -53,16 +53,40 @@ HTMLPictureElement::RemoveChildAt_Deprec
         }
       } while ( (nextSibling = nextSibling->GetNextSibling()) );
     }
   }
 
   nsGenericHTMLElement::RemoveChildAt_Deprecated(aIndex, aNotify);
 }
 
+void
+HTMLPictureElement::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+  if (aKid && aKid->IsHTMLElement(nsGkAtoms::img)) {
+    HTMLImageElement* img = HTMLImageElement::FromContent(aKid);
+    if (img) {
+      img->PictureSourceRemoved(aKid->AsContent());
+    }
+  } else if (aKid && aKid->IsHTMLElement(nsGkAtoms::source)) {
+    // Find all img siblings after this <source> to notify them of its demise
+    nsCOMPtr<nsIContent> nextSibling = aKid->GetNextSibling();
+    if (nextSibling && nextSibling->GetParentNode() == this) {
+      do {
+        HTMLImageElement* img = HTMLImageElement::FromContent(nextSibling);
+        if (img) {
+          img->PictureSourceRemoved(aKid->AsContent());
+        }
+      } while ( (nextSibling = nextSibling->GetNextSibling()) );
+    }
+  }
+
+  nsGenericHTMLElement::RemoveChildNode(aKid, aNotify);
+}
+
 nsresult
 HTMLPictureElement::InsertChildAt(nsIContent* aKid, uint32_t aIndex, bool aNotify)
 {
   nsresult rv = nsGenericHTMLElement::InsertChildAt(aKid, aIndex, aNotify);
 
   NS_ENSURE_SUCCESS(rv, rv);
   NS_ENSURE_TRUE(aKid, rv);
 
--- a/dom/html/HTMLPictureElement.h
+++ b/dom/html/HTMLPictureElement.h
@@ -19,16 +19,17 @@ public:
   explicit HTMLPictureElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);
 
   // nsISupports
   NS_DECL_ISUPPORTS_INHERITED
 
   virtual nsresult Clone(mozilla::dom::NodeInfo* aNodeInfo, nsINode** aResult,
                          bool aPreallocateChildren) const override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
   virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex, bool aNotify) override;
 
 protected:
   virtual ~HTMLPictureElement();
 
   virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
 };
 
--- a/dom/html/HTMLSelectElement.cpp
+++ b/dom/html/HTMLSelectElement.cpp
@@ -219,17 +219,22 @@ HTMLSelectElement::InsertChildAt(nsICont
 
 void
 HTMLSelectElement::RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify)
 {
   SafeOptionListMutation safeMutation(this, this, nullptr, aIndex, aNotify);
   nsGenericHTMLFormElementWithState::RemoveChildAt_Deprecated(aIndex, aNotify);
 }
 
-
+void
+HTMLSelectElement::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+  SafeOptionListMutation safeMutation(this, this, nullptr, IndexOf(aKid), aNotify);
+  nsGenericHTMLFormElementWithState::RemoveChildNode(aKid, aNotify);
+}
 
 void
 HTMLSelectElement::InsertOptionsIntoList(nsIContent* aOptions,
                                          int32_t aListIndex,
                                          int32_t aDepth,
                                          bool aNotify)
 {
   MOZ_ASSERT(aDepth == 0 || aDepth == 1);
--- a/dom/html/HTMLSelectElement.h
+++ b/dom/html/HTMLSelectElement.h
@@ -289,16 +289,17 @@ public:
                      EventChainPreVisitor& aVisitor) override;
   virtual nsresult PostHandleEvent(
                      EventChainPostVisitor& aVisitor) override;
 
   virtual bool IsHTMLFocusable(bool aWithMouse, bool* aIsFocusable, int32_t* aTabIndex) override;
   virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
                                  bool aNotify) override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
 
   // Overriden nsIFormControl methods
   NS_IMETHOD Reset() override;
   NS_IMETHOD SubmitNamesValues(HTMLFormSubmission* aFormSubmission) override;
   NS_IMETHOD SaveState() override;
   virtual bool RestoreState(nsPresState* aState) override;
   virtual bool IsDisabledForEvents(EventMessage aMessage) override;
 
--- a/dom/svg/SVGSwitchElement.cpp
+++ b/dom/svg/SVGSwitchElement.cpp
@@ -95,16 +95,23 @@ SVGSwitchElement::InsertChildAt(nsIConte
 
 void
 SVGSwitchElement::RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify)
 {
   SVGSwitchElementBase::RemoveChildAt_Deprecated(aIndex, aNotify);
   MaybeInvalidate();
 }
 
+void
+SVGSwitchElement::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+  SVGSwitchElementBase::RemoveChildNode(aKid, aNotify);
+  MaybeInvalidate();
+}
+
 //----------------------------------------------------------------------
 // nsIContent methods
 
 NS_IMETHODIMP_(bool)
 SVGSwitchElement::IsAttributeMapped(const nsAtom* name) const
 {
   static const MappedAttributeEntry* const map[] = {
     sFEFloodMap,
--- a/dom/svg/SVGSwitchElement.h
+++ b/dom/svg/SVGSwitchElement.h
@@ -38,16 +38,17 @@ public:
 
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(SVGSwitchElement,
                                            SVGSwitchElementBase)
   // nsINode
   virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
                                  bool aNotify) override;
   virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+  virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
 
   // nsIContent
   NS_IMETHOD_(bool) IsAttributeMapped(const nsAtom* aAttribute) const override;
 
   virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
                          bool aPreallocateChildren) const override;
 private:
   void UpdateActiveChild()
--- a/dom/xul/nsXULElement.cpp
+++ b/dom/xul/nsXULElement.cpp
@@ -945,16 +945,111 @@ nsXULElement::RemoveChildAt_Deprecated(u
                                            static_cast<nsIContent*>(this),
                                            NS_LITERAL_STRING("select"),
                                            false,
                                            true);
     }
 }
 
 void
+nsXULElement::RemoveChildNode(nsIContent* aKid, bool aNotify)
+{
+    // On the removal of a <treeitem>, <treechildren>, or <treecell> element,
+    // the possibility exists that some of the items in the removed subtree
+    // are selected (and therefore need to be deselected). We need to account for this.
+    nsCOMPtr<nsIDOMXULMultiSelectControlElement> controlElement;
+    nsCOMPtr<nsIListBoxObject> listBox;
+    bool fireSelectionHandler = false;
+
+    // -1 = do nothing, -2 = null out current item
+    // anything else = index to re-set as current
+    int32_t newCurrentIndex = -1;
+
+    if (aKid->NodeInfo()->Equals(nsGkAtoms::listitem, kNameSpaceID_XUL)) {
+      // This is the nasty case. We have (potentially) a slew of selected items
+      // and cells going away.
+      // First, retrieve the tree.
+      // Check first whether this element IS the tree
+      controlElement = do_QueryObject(this);
+
+      // If it's not, look at our parent
+      if (!controlElement)
+        GetParentTree(getter_AddRefs(controlElement));
+      nsCOMPtr<nsIContent> controlContent(do_QueryInterface(controlElement));
+      RefPtr<nsXULElement> xulElement = FromContentOrNull(controlContent);
+
+      nsCOMPtr<nsIDOMElement> oldKidElem = do_QueryInterface(aKid);
+      if (xulElement && oldKidElem) {
+        // Iterate over all of the items and find out if they are contained inside
+        // the removed subtree.
+        int32_t length;
+        controlElement->GetSelectedCount(&length);
+        for (int32_t i = 0; i < length; i++) {
+          nsCOMPtr<nsIDOMXULSelectControlItemElement> node;
+          controlElement->MultiGetSelectedItem(i, getter_AddRefs(node));
+          // we need to QI here to do an XPCOM-correct pointercompare
+          nsCOMPtr<nsIDOMElement> selElem = do_QueryInterface(node);
+          if (selElem == oldKidElem &&
+              NS_SUCCEEDED(controlElement->RemoveItemFromSelection(node))) {
+            length--;
+            i--;
+            fireSelectionHandler = true;
+          }
+        }
+
+        nsCOMPtr<nsIDOMXULSelectControlItemElement> curItem;
+        controlElement->GetCurrentItem(getter_AddRefs(curItem));
+        nsCOMPtr<nsIContent> curNode = do_QueryInterface(curItem);
+        if (curNode && nsContentUtils::ContentIsDescendantOf(curNode, aKid)) {
+            // Current item going away
+            IgnoredErrorResult ignored;
+            nsCOMPtr<nsIBoxObject> box = xulElement->GetBoxObject(ignored);
+            listBox = do_QueryInterface(box);
+            if (listBox && oldKidElem) {
+              listBox->GetIndexOfItem(oldKidElem, &newCurrentIndex);
+            }
+
+            // If any of this fails, we'll just set the current item to null
+            if (newCurrentIndex == -1)
+              newCurrentIndex = -2;
+        }
+      }
+    }
+
+    nsStyledElement::RemoveChildNode(aKid, aNotify);
+
+    if (newCurrentIndex == -2) {
+        controlElement->SetCurrentItem(nullptr);
+    } else if (newCurrentIndex > -1) {
+        // Make sure the index is still valid
+        int32_t treeRows;
+        listBox->GetRowCount(&treeRows);
+        if (treeRows > 0) {
+            newCurrentIndex = std::min((treeRows - 1), newCurrentIndex);
+            nsCOMPtr<nsIDOMElement> newCurrentItem;
+            listBox->GetItemAtIndex(newCurrentIndex, getter_AddRefs(newCurrentItem));
+            nsCOMPtr<nsIDOMXULSelectControlItemElement> xulCurItem = do_QueryInterface(newCurrentItem);
+            if (xulCurItem)
+                controlElement->SetCurrentItem(xulCurItem);
+        } else {
+            controlElement->SetCurrentItem(nullptr);
+        }
+    }
+
+    nsIDocument* doc;
+    if (fireSelectionHandler && (doc = GetComposedDoc())) {
+      nsContentUtils::DispatchTrustedEvent(doc,
+                                           static_cast<nsIContent*>(this),
+                                           NS_LITERAL_STRING("select"),
+                                           false,
+                                           true);
+    }
+}
+
+void
 nsXULElement::UnregisterAccessKey(const nsAString& aOldValue)
 {
     // If someone changes the accesskey, unregister the old one
     //
     nsIDocument* doc = GetComposedDoc();
     if (doc && !aOldValue.IsEmpty()) {
         nsIPresShell *shell = doc->GetShell();
 
--- a/dom/xul/nsXULElement.h
+++ b/dom/xul/nsXULElement.h
@@ -362,16 +362,17 @@ public:
     virtual nsresult PreHandleEvent(
                        mozilla::EventChainVisitor& aVisitor) override;
     // nsIContent
     virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
                                 nsIContent* aBindingParent,
                                 bool aCompileEventHandlers) override;
     virtual void UnbindFromTree(bool aDeep, bool aNullParent) override;
     virtual void RemoveChildAt_Deprecated(uint32_t aIndex, bool aNotify) override;
+    virtual void RemoveChildNode(nsIContent* aKid, bool aNotify) override;
     virtual void DestroyContent() override;
 
 #ifdef DEBUG
     virtual void List(FILE* out, int32_t aIndent) const override;
     virtual void DumpContent(FILE* out, int32_t aIndent,bool aDumpAll) const override
     {
     }
 #endif
--- a/gfx/thebes/gfxFT2FontBase.cpp
+++ b/gfx/thebes/gfxFT2FontBase.cpp
@@ -506,24 +506,32 @@ gfxFT2FontBase::GetGlyph(uint32_t unicod
 
     return GetGlyph(unicode);
 }
 
 FT_Fixed
 gfxFT2FontBase::GetFTGlyphAdvance(uint16_t aGID)
 {
     gfxFT2LockedFace face(this);
+    MOZ_ASSERT(face.get());
+    if (!face.get()) {
+        // Failed to get the FT_Face? Give up already.
+        return 0;
+    }
     int32_t flags =
         gfxPlatform::GetPlatform()->FontHintingEnabled()
             ? FT_LOAD_ADVANCE_ONLY
             : FT_LOAD_ADVANCE_ONLY | FT_LOAD_NO_AUTOHINT | FT_LOAD_NO_HINTING;
+    FT_Error ftError = FT_Load_Glyph(face.get(), aGID, flags);
+    MOZ_ASSERT(!ftError);
+    if (ftError != FT_Err_Ok) {
+        // FT_Face was somehow broken/invalid? Don't try to access glyph slot.
+        return 0;
+    }
     FT_Fixed advance = 0;
-    mozilla::DebugOnly<FT_Error> ftError =
-        FT_Load_Glyph(face.get(), aGID, flags);
-    MOZ_ASSERT(!ftError);
     if (face.get()->face_flags & FT_FACE_FLAG_SCALABLE) {
         advance = face.get()->glyph->linearHoriAdvance;
     } else {
         advance = face.get()->glyph->advance.x << 10; // convert 26.6 to 16.16
     }
 
     // If freetype emboldening is being used, and it's not a zero-width glyph,
     // adjust the advance to account for the increased width.
--- a/layout/xul/nsMenuBarFrame.cpp
+++ b/layout/xul/nsMenuBarFrame.cpp
@@ -139,17 +139,17 @@ nsMenuBarFrame::ToggleMenuActiveState()
       mCurrentMenu = firstFrame;
     }
   }
 
   return nullptr;
 }
 
 nsMenuFrame*
-nsMenuBarFrame::FindMenuWithShortcut(nsIDOMKeyEvent* aKeyEvent)
+nsMenuBarFrame::FindMenuWithShortcut(nsIDOMKeyEvent* aKeyEvent, bool aPeek)
 {
   uint32_t charCode;
   aKeyEvent->GetCharCode(&charCode);
 
   AutoTArray<uint32_t, 10> accessKeys;
   WidgetKeyboardEvent* nativeKeyEvent =
     aKeyEvent->AsEvent()->WidgetEventPtr()->AsKeyboardEvent();
   if (nativeKeyEvent) {
@@ -197,33 +197,35 @@ nsMenuBarFrame::FindMenuWithShortcut(nsI
     currFrame = currFrame->GetNextSibling();
   }
   if (foundMenu) {
     return do_QueryFrame(foundMenu);
   }
 
   // didn't find a matching menu item
 #ifdef XP_WIN
-  // behavior on Windows - this item is on the menu bar, beep and deactivate the menu bar
-  if (mIsActive) {
-    nsCOMPtr<nsISound> soundInterface = do_CreateInstance("@mozilla.org/sound;1");
-    if (soundInterface)
-      soundInterface->Beep();
-  }
+  if (!aPeek) {
+    // behavior on Windows - this item is on the menu bar, beep and deactivate the menu bar
+    if (mIsActive) {
+      nsCOMPtr<nsISound> soundInterface = do_CreateInstance("@mozilla.org/sound;1");
+      if (soundInterface)
+        soundInterface->Beep();
+    }
 
-  nsXULPopupManager* pm = nsXULPopupManager::GetInstance();
-  if (pm) {
-    nsIFrame* popup = pm->GetTopPopup(ePopupTypeAny);
-    if (popup)
-      pm->HidePopup(popup->GetContent(), true, true, true, false);
+    nsXULPopupManager* pm = nsXULPopupManager::GetInstance();
+    if (pm) {
+      nsIFrame* popup = pm->GetTopPopup(ePopupTypeMenu);
+      if (popup)
+        pm->HidePopup(popup->GetContent(), true, true, true, false);
+    }
+
+    SetCurrentMenuItem(nullptr);
+    SetActive(false);
   }
 
-  SetCurrentMenuItem(nullptr);
-  SetActive(false);
-
 #endif  // #ifdef XP_WIN
 
   return nullptr;
 }
 
 /* virtual */ nsMenuFrame*
 nsMenuBarFrame::GetCurrentMenuItem()
 {
--- a/layout/xul/nsMenuBarFrame.h
+++ b/layout/xul/nsMenuBarFrame.h
@@ -80,17 +80,17 @@ public:
   // may deselect the menuitem.
   virtual bool MenuClosed() override;
 
   // Called when Enter is pressed while the menubar is focused. If the current
   // menu is open, let the child handle the key.
   nsMenuFrame* Enter(mozilla::WidgetGUIEvent* aEvent);
 
   // Used to handle ALT+key combos
-  nsMenuFrame* FindMenuWithShortcut(nsIDOMKeyEvent* aKeyEvent);
+  nsMenuFrame* FindMenuWithShortcut(nsIDOMKeyEvent* aKeyEvent, bool aPeek);
 
   virtual bool IsFrameOfType(uint32_t aFlags) const override
   {
     // Override bogus IsFrameOfType in nsBoxFrame.
     if (aFlags & (nsIFrame::eReplacedContainsBlock | nsIFrame::eReplaced))
       return false;
     return nsBoxFrame::IsFrameOfType(aFlags);
   }
--- a/layout/xul/nsMenuBarListener.cpp
+++ b/layout/xul/nsMenuBarListener.cpp
@@ -319,17 +319,17 @@ nsMenuBarListener::KeyPress(nsIDOMEvent*
           aKeyEvent->PreventDefault();
         }
       }
 
       return NS_OK;
     }
 #endif // !XP_MACOSX
 
-    nsMenuFrame* menuFrameForKey = GetMenuForKeyEvent(keyEvent);
+    nsMenuFrame* menuFrameForKey = GetMenuForKeyEvent(keyEvent, false);
     if (!menuFrameForKey) {
       return NS_OK;
     }
 
     // If the keyboard event matches with a menu item's accesskey and
     // will be sent to a remote process, it should be executed with
     // reply event from the focused remote process.  Note that if the
     // menubar is active, the event is already marked as "stop cross
@@ -377,17 +377,17 @@ nsMenuBarListener::GetModifiersForAccess
 
   static const Modifiers kPossibleModifiersForAccessKey =
     (MODIFIER_SHIFT | MODIFIER_CONTROL | MODIFIER_ALT | MODIFIER_META |
      MODIFIER_OS);
   return (inputEvent->mModifiers & kPossibleModifiersForAccessKey);
 }
 
 nsMenuFrame*
-nsMenuBarListener::GetMenuForKeyEvent(nsIDOMKeyEvent* aKeyEvent)
+nsMenuBarListener::GetMenuForKeyEvent(nsIDOMKeyEvent* aKeyEvent, bool aPeek)
 {
   if (!IsAccessKeyPressed(aKeyEvent)) {
     return nullptr;
   }
 
   uint32_t charCode;
   aKeyEvent->GetCharCode(&charCode);
   bool hasAccessKeyCandidates = charCode != 0;
@@ -399,17 +399,17 @@ nsMenuBarListener::GetMenuForKeyEvent(ns
     nativeKeyEvent->GetAccessKeyCandidates(keys);
     hasAccessKeyCandidates = !keys.IsEmpty();
   }
 
   if (hasAccessKeyCandidates) {
     // Do shortcut navigation.
     // A letter was pressed. We want to see if a shortcut gets matched. If
     // so, we'll know the menu got activated.
-    return mMenuBarFrame->FindMenuWithShortcut(aKeyEvent);
+    return mMenuBarFrame->FindMenuWithShortcut(aKeyEvent, aPeek);
   }
 
   return nullptr;
 }
 
 void
 nsMenuBarListener::ReserveKeyIfNeeded(nsIDOMEvent* aKeyEvent)
 {
@@ -488,17 +488,17 @@ nsMenuBarListener::KeyDown(nsIDOMEvent* 
     }
 
     // Some key other than the access key just went down,
     // so we won't activate the menu bar when the access key is released.
     mAccessKeyDownCanceled = !isAccessKeyDownEvent;
   }
 
   if (capturing && mAccessKey) {
-    nsMenuFrame* menuFrameForKey = GetMenuForKeyEvent(keyEvent);
+    nsMenuFrame* menuFrameForKey = GetMenuForKeyEvent(keyEvent, true);
     if (menuFrameForKey) {
       ReserveKeyIfNeeded(aKeyEvent);
     }
   }
 
   return NS_OK; // means I am NOT consuming event
 }
 
--- a/layout/xul/nsMenuBarListener.h
+++ b/layout/xul/nsMenuBarListener.h
@@ -72,19 +72,20 @@ protected:
   nsresult Fullscreen(nsIDOMEvent* aEvent);
 
   static void InitAccessKey();
 
   static mozilla::Modifiers GetModifiersForAccessKey(nsIDOMKeyEvent* event);
 
   /**
    * Given a key event for an Alt+shortcut combination,
-   * return the menu, if any, that would be opened.
+   * return the menu, if any, that would be opened. If aPeek
+   * is false, then play a beep and deactivate the menubar on Windows.
    */
-  nsMenuFrame* GetMenuForKeyEvent(nsIDOMKeyEvent* aKeyEvent);
+  nsMenuFrame* GetMenuForKeyEvent(nsIDOMKeyEvent* aKeyEvent, bool aPeek);
 
   /**
    * Call MarkAsReservedByChrome if the user's preferences indicate that
    * the key should be chrome-only.
    */
   void ReserveKeyIfNeeded(nsIDOMEvent* aKeyEvent);
 
   // This should only be called by the nsMenuBarListener during event dispatch,
--- a/layout/xul/nsXULPopupManager.cpp
+++ b/layout/xul/nsXULPopupManager.cpp
@@ -2128,17 +2128,17 @@ nsXULPopupManager::HandleShortcutNavigat
       }
       return true;
     }
 
     return false;
   }
 
   if (mActiveMenuBar) {
-    nsMenuFrame* result = mActiveMenuBar->FindMenuWithShortcut(aKeyEvent);
+    nsMenuFrame* result = mActiveMenuBar->FindMenuWithShortcut(aKeyEvent, false);
     if (result) {
       mActiveMenuBar->SetActive(true);
       result->OpenMenu(true);
       return true;
     }
   }
 
   return false;
--- a/netwerk/protocol/http/HttpChannelParent.cpp
+++ b/netwerk/protocol/http/HttpChannelParent.cpp
@@ -260,16 +260,25 @@ HttpChannelParent::CleanupBackgroundChan
     // is still on going. we need to abort AsyncOpen with failure to destroy
     // PHttpChannel actor.
     if (mAsyncOpenBarrier) {
       TryInvokeAsyncOpen(NS_ERROR_FAILURE);
     }
   }
 }
 
+base::ProcessId
+HttpChannelParent::OtherPid() const
+{
+  if (mIPCClosed) {
+    return 0;
+  }
+  return Manager()->OtherPid();
+}
+
 //-----------------------------------------------------------------------------
 // HttpChannelParent::nsISupports
 //-----------------------------------------------------------------------------
 
 NS_IMPL_ADDREF(HttpChannelParent)
 NS_IMPL_RELEASE(HttpChannelParent)
 NS_INTERFACE_MAP_BEGIN(HttpChannelParent)
   NS_INTERFACE_MAP_ENTRY(nsIInterfaceRequestor)
--- a/netwerk/protocol/http/HttpChannelParent.h
+++ b/netwerk/protocol/http/HttpChannelParent.h
@@ -115,16 +115,18 @@ public:
   // Calls SendSetPriority if mIPCClosed is false.
   void DoSendSetPriority(int16_t aValue);
 
   // Callback while background channel is ready.
   void OnBackgroundParentReady(HttpBackgroundChannelParent* aBgParent);
   // Callback while background channel is destroyed.
   void OnBackgroundParentDestroyed();
 
+  base::ProcessId OtherPid() const override;
+
 protected:
   // used to connect redirected-to channel in parent with just created
   // ChildChannel.  Used during redirects.
   MOZ_MUST_USE bool ConnectChannel(const uint32_t& channelId,
                                    const bool& shouldIntercept);
 
   MOZ_MUST_USE bool
   DoAsyncOpen(const URIParams&           uri,
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1156,9 +1156,9 @@ static const TransportSecurityPreload kP
   { "za.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
 };
 
 // Pinning Preload List Length = 483;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1524423617990000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1524509866086000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -1,15 +1,16 @@
 00220022.net: could not connect to host
 01100010011001010111001101110100.com: could not connect to host
 06se.com: could not connect to host
 07733.win: could not connect to host
 0day.su: could not connect to host
 0i0.nl: could not connect to host
 0vi.org: could not connect to host
+0x52.org: could not connect to host
 10gb.io: could not connect to host
 135vv.com: could not connect to host
 13826145000.com: could not connect to host
 166166.com: could not connect to host
 1nian.vip: could not connect to host
 1q365a.com: could not connect to host
 24hrs.shopping: could not connect to host
 28spots.net: could not connect to host
@@ -47,35 +48,34 @@ abolition.co: could not connect to host
 accwing.com: could not connect to host
 acgaudio.com: could not connect to host
 achterhoekseveiligheidsbeurs.nl: could not connect to host
 acrossgw.com: could not connect to host
 ad-disruptio.fr: could not connect to host
 adamdixon.co.uk: could not connect to host
 adec-emsa.ae: could not connect to host
 adult.properties: could not connect to host
-adventureally.com: could not connect to host
 aevpn.org: could not connect to host
 affily.io: could not connect to host
 afterstack.net: could not connect to host
 agilebits.net: could not connect to host
+ahwah.net: could not connect to host
 aiicy.org: could not connect to host
 aim-consultants.com: could not connect to host
-aivd.lol: could not connect to host
 akiba-server.info: could not connect to host
 akita-stream.com: could not connect to host
+akoch.net: could not connect to host
 akoww.de: could not connect to host
 akul.co.in: could not connect to host
 al-f.net: could not connect to host
 alasta.info: could not connect to host
 alauda-home.de: could not connect to host
 alcatraz.online: could not connect to host
 alcnutrition.com: could not connect to host
 alexandernorth.ch: could not connect to host
-alexandros.io: could not connect to host
 alexei.su: could not connect to host
 alexey-shamara.ru: could not connect to host
 alexmol.tk: could not connect to host
 alexperry.io: could not connect to host
 alilialili.ga: could not connect to host
 alldm.ru: could not connect to host
 allscammers.exposed: could not connect to host
 altahrim.net: could not connect to host
@@ -95,24 +95,26 @@ andrewdaws.info: could not connect to ho
 andrewdaws.me: could not connect to host
 andrewdaws.tv: could not connect to host
 andrewrdaws.com: could not connect to host
 andronika.net: could not connect to host
 angrydragonproductions.com: could not connect to host
 annetaan.fi: could not connect to host
 annonasoftware.com: could not connect to host
 anongoth.pl: could not connect to host
+answers-online.ru: could not connect to host
 antimatiere.space: could not connect to host
 anttitenhunen.com: could not connect to host
 anyways.at: could not connect to host
 aojiao.org: could not connect to host
 apkoyunlar.club: could not connect to host
 apparels24.com: could not connect to host
 appdrinks.com: could not connect to host
 apple.ax: could not connect to host
+arbitrarion.com: could not connect to host
 area3.org: could not connect to host
 arenlor.com: could not connect to host
 arenlor.info: could not connect to host
 arenns.com: could not connect to host
 arent.kz: could not connect to host
 argh.io: could not connect to host
 arksan.com.tr: could not connect to host
 armenians.online: could not connect to host
@@ -151,28 +153,26 @@ avonlearningcampus.com: could not connec
 awan.tech: could not connect to host
 awf0.xyz: could not connect to host
 axel-fischer.science: could not connect to host
 azabani.com: could not connect to host
 b8a.me: could not connect to host
 babelfisch.eu: could not connect to host
 bad.pet: could not connect to host
 bageez.us: could not connect to host
-bailbondsaffordable.com: could not connect to host
 baiyangliu.com: could not connect to host
 baka.network: could not connect to host
-baldur.cc: could not connect to host
 balonmano.co: could not connect to host
 bandally.net: could not connect to host
 bandarifamily.com: could not connect to host
 bannisbierblog.de: could not connect to host
-barbate.fr: could not connect to host
 barracuda.blog: could not connect to host
 barreaudenice.com: could not connect to host
 batfoundry.com: could not connect to host
+bbb1991.me: could not connect to host
 bbdos.ru: could not connect to host
 bbnx.net: could not connect to host
 bdsmxxxpics.com: could not connect to host
 bdvg.org: could not connect to host
 beamitapp.com: could not connect to host
 bearden.io: could not connect to host
 beasel.biz: could not connect to host
 bellavistaoutdoor.com: could not connect to host
@@ -202,17 +202,16 @@ bitcoin-daijin.com: could not connect to
 bitcoinjpn.com: could not connect to host
 bitmaincare.com.ua: could not connect to host
 bitmaincare.ru: could not connect to host
 bitmessage.ch: could not connect to host
 bityes.org: could not connect to host
 bizeau.ch: could not connect to host
 bjgongyi.com: could not connect to host
 bjtxl.cn: could not connect to host
-black-khat.com: could not connect to host
 blackdiam.net: could not connect to host
 blantik.net: could not connect to host
 blazeit.io: could not connect to host
 blindaryproduction.tk: could not connect to host
 blinkenlight.co.uk: could not connect to host
 blinkenlight.com.au: could not connect to host
 blog.gparent.org: could not connect to host
 blokuhaka.fr: could not connect to host
@@ -228,55 +227,55 @@ bqcp.net: could not connect to host
 brage.info: could not connect to host
 braintensive.com: could not connect to host
 brandontaylor-black.com: could not connect to host
 breathingblanket.com: could not connect to host
 briangarcia.ga: could not connect to host
 brianpcurran.com: could not connect to host
 brightonchilli.org.uk: could not connect to host
 brio-ukraine.store: could not connect to host
-brooke-fan.com: could not connect to host
 brookframework.org: could not connect to host
 brrr.fr: could not connect to host
 bryanshearer.accountant: could not connect to host
 brynnan.nl: could not connect to host
 bsalyzer.com: could not connect to host
 bsktweetup.info: could not connect to host
 bslim-e-boutique.com: could not connect to host
 bsuess.de: could not connect to host
-budgetlovers.nl: could not connect to host
 bugginslab.co.uk: could not connect to host
 bugsmashed.com: could not connect to host
 buka.jp: could not connect to host
 businessfurs.info: could not connect to host
 businesshub.cz: could not connect to host
 businessmodeler.se: could not connect to host
 buyingsellingflorida.com: could not connect to host
 buyshoe.org: could not connect to host
 bvexplained.co.uk: could not connect to host
 by1898.com: could not connect to host
 byji.com: could not connect to host
 bypass.kr: could not connect to host
 byteshift.ca: could not connect to host
 cafesg.net: could not connect to host
 caipai.fm: could not connect to host
 calculatoaresecondhand.xyz: could not connect to host
+caldecotevillagehall.co.uk: could not connect to host
 callabs.net: could not connect to host
 callsigns.ca: could not connect to host
 camda.online: could not connect to host
 campingcarlovers.com: could not connect to host
 canarymod.net: could not connect to host
 cancelmyprofile.com: could not connect to host
 caps.is: could not connect to host
 capturethepen.co.uk: could not connect to host
 cardloan-manual.net: could not connect to host
 cardse.net: could not connect to host
 carloshmm.stream: could not connect to host
 carlovanwyk.com: could not connect to host
 casinoreal.com: could not connect to host
+catsmagic.pp.ua: could not connect to host
 caughtredhanded.co.nz: could not connect to host
 cctld.com: could not connect to host
 cdnk39.com: could not connect to host
 cee.io: could not connect to host
 cegfw.com: could not connect to host
 celuliteonline.com: could not connect to host
 cencalvia.org: could not connect to host
 centos.pub: could not connect to host
@@ -318,77 +317,83 @@ cnlic.com: could not connect to host
 cnwage.com: could not connect to host
 cnwarn.com: could not connect to host
 co-yutaka.com: could not connect to host
 cobaltlp.com: could not connect to host
 coccolebenessere.it: could not connect to host
 coco-cool.fr: could not connect to host
 codenlife.xyz: could not connect to host
 codercross.com: could not connect to host
+codercy.com: could not connect to host
 codewiz.xyz: could not connect to host
 cogumelosmagicos.org: could not connect to host
 colleencornez.com: could not connect to host
 collins.kg: could not connect to host
 combatshield.cz: could not connect to host
 complt.xyz: could not connect to host
 comprehensiveihc.com: could not connect to host
+computerassistance.co.uk: could not connect to host
 conception.sk: could not connect to host
 conniesacademy.com: could not connect to host
 conrad.am: could not connect to host
 construct-trust.com: could not connect to host
 conve.eu: could not connect to host
 corecdn.org: could not connect to host
 corinnanese.de: could not connect to host
 correct.horse: could not connect to host
 cosmeticosdelivery.com.br: could not connect to host
 cosplayer.com: could not connect to host
 coumoul.fr: could not connect to host
 cpaneltips.com: could not connect to host
 crackpfer.de: could not connect to host
 crackslut.eu: could not connect to host
 creative-wave.fr: could not connect to host
 creativecommonscatpictures.com: could not connect to host
+crestasantos.com: could not connect to host
 cristianhares.com: could not connect to host
 criticalaim.com: could not connect to host
 crox.co: could not connect to host
 cryptopartynewcastle.org: could not connect to host
 crystalmachine.net: could not connect to host
+cselzer.com: could not connect to host
 csgo77.com: could not connect to host
 cspeti.hu: could not connect to host
 ctj.im: could not connect to host
 cunha.be: could not connect to host
 cuonic.com: could not connect to host
+curacao-license.com: could not connect to host
 customfilmworks.com: could not connect to host
 cyber-computer.club: could not connect to host
 cyberpeace.nl: could not connect to host
 cyberstatus.de: could not connect to host
 cypherpunk.ws: could not connect to host
 czlx.co: could not connect to host
 d-bood.site: could not connect to host
 d8studio.net: could not connect to host
-dahlberg.cologne: could not connect to host
 daltonedwards.me: could not connect to host
 dam74.com.ar: could not connect to host
 daniel-stahl.net: could not connect to host
 danielthompson.info: could not connect to host
+dannyrohde.de: could not connect to host
 danpiel.net: could not connect to host
 darkdestiny.ch: could not connect to host
 darlo.co.uk: could not connect to host
 data-detox.com: could not connect to host
 datacool.tk: could not connect to host
 datorb.com: could not connect to host
 davidscherzer.at: could not connect to host
 davidstuff.net: could not connect to host
 davros.eu: could not connect to host
 davros.ru: could not connect to host
 dawnson.is: could not connect to host
 day.vip: could not connect to host
 days.one: could not connect to host
 dbcom.ru: could not connect to host
 dbox.ga: could not connect to host
+dcc.moe: could not connect to host
 dden.website: could not connect to host
 dden.xyz: could not connect to host
 de-servers.de: could not connect to host
 decoyrouting.com: could not connect to host
 deepcreampie.com: could not connect to host
 deepsouthsounds.com: could not connect to host
 deloittequant.com: could not connect to host
 derchris.me: could not connect to host
@@ -407,34 +412,31 @@ devkid.net: could not connect to host
 devops.moe: could not connect to host
 dhl-smart.ch: could not connect to host
 dhub.xyz: could not connect to host
 dhuy.net: could not connect to host
 diceduels.com: could not connect to host
 dicgaming.net: could not connect to host
 dick.red: could not connect to host
 didierlaumen.be: could not connect to host
-didikhari.web.id: could not connect to host
 diemogebhardt.com: could not connect to host
 dieser.me: could not connect to host
 digihyp.ch: could not connect to host
 digioccumss.ddns.net: could not connect to host
 digitalhurricane.io: could not connect to host
-digitalrxcloud.com: could not connect to host
 diguass.us: could not connect to host
 dijks.com: could not connect to host
 dirtycat.ru: could not connect to host
 disability.gov: could not connect to host
 disadattamentolavorativo.it: could not connect to host
 disco-crazy-world.de: could not connect to host
 discoveryballoon.org: could not connect to host
 distinctivephotography.com.au: could not connect to host
 ditch.ch: could not connect to host
 dixmag.com: could not connect to host
-dlld.com: could not connect to host
 dlouwrink.nl: could not connect to host
 dlyl888.com: could not connect to host
 dnscrypt.org: could not connect to host
 dobrisan.ro: could not connect to host
 dogcratereview.info: could not connect to host
 dojifish.space: could not connect to host
 dolphin-hosting.com: could not connect to host
 domengrad.ru: could not connect to host
@@ -456,27 +458,27 @@ droomhuis-in-zuid-holland-kopen.nl: coul
 drunkscifi.com: could not connect to host
 duan.li: could not connect to host
 dubrovskiy.net: could not connect to host
 dubrovskiy.pro: could not connect to host
 duch.cloud: could not connect to host
 duelsow.eu: could not connect to host
 duesee.org: could not connect to host
 duks.com.br: could not connect to host
-dullapp.com: could not connect to host
 duo.money: could not connect to host
 durangoenergyllc.com: could not connect to host
 dwnld.me: could not connect to host
 e-mak.eu: could not connect to host
 e-wishlist.net: could not connect to host
 eatfitoutlet.com.br: could not connect to host
 eatry.io: could not connect to host
-ecodigital.social: could not connect to host
 ectora.com: could not connect to host
 edgecustomersportal.com: could not connect to host
+edlinus.cn: could not connect to host
+eduif.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 edusantorini.com: could not connect to host
 eeb98.com: could not connect to host
 ehuber.info: could not connect to host
 einsatzstiefel.info: could not connect to host
 ekobudisantoso.net: could not connect to host
 elbetech.net: could not connect to host
 elektronring.com: could not connect to host
 elenorsmadness.org: could not connect to host
@@ -486,32 +488,34 @@ elisabeth-strunz.de: could not connect t
 elonbase.com: could not connect to host
 elsword.moe: could not connect to host
 eltransportquevolem.org: could not connect to host
 emilyjohnson.ga: could not connect to host
 emrenovation.com: could not connect to host
 endspamwith.us: could not connect to host
 enfoqueseguro.com: could not connect to host
 envygeeks.io: could not connect to host
-epulsar.ru: could not connect to host
 er-music.com: could not connect to host
 eriser.fr: could not connect to host
 erspro.net: could not connect to host
 erwinwensveen.nl: could not connect to host
 ethiobaba.com: could not connect to host
 euexia.fr: could not connect to host
 eurostrategy.vn.ua: could not connect to host
 ev-zertifikate.de: could not connect to host
 evankurniawan.com: could not connect to host
 eveshaiwu.com: could not connect to host
 evileden.com: could not connect to host
 exceptionalservices.us: could not connect to host
 exo.do: could not connect to host
+exploravacations.in: could not connect to host
+extensiblewebmanifesto.org: could not connect to host
+extensiblewebreportcard.org: could not connect to host
+extensiblewebsummit.org: could not connect to host
 exteriorservices.io: could not connect to host
-extranetpuc.com.br: could not connect to host
 eytosh.net: could not connect to host
 f8842.com: could not connect to host
 faber.org.ru: could not connect to host
 fabian-kluge.de: could not connect to host
 facebook.ax: could not connect to host
 facilitrak.com: could not connect to host
 factureenlinea.com: could not connect to host
 fafatiger.com: could not connect to host
@@ -529,32 +533,36 @@ fastbackmbg.be: could not connect to hos
 faxreader.net: could not connect to host
 fed51.com: could not connect to host
 feedstringer.com: could not connect to host
 feirlane.org: could not connect to host
 fengyadi.com: could not connect to host
 fensterbau-mutscheller.de: could not connect to host
 feras-alhajjaji.com: could not connect to host
 fetclips.se: could not connect to host
-fhg90.com: could not connect to host
 ficklenote.net: could not connect to host
+fierman.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
+fierman.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
+fierman.us: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 fifieldtech.com: could not connect to host
+figuurzagers.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 fileio.io: could not connect to host
 findmybottleshop.com.au: could not connect to host
 finstererlebnis.de: could not connect to host
 firebaseio.com: could not connect to host
 firexarxa.de: could not connect to host
 fix-the-timeline.com: could not connect to host
 fix-the-timeline.org: could not connect to host
 fixmyglitch.com: could not connect to host
 fixthetimeline.com: could not connect to host
 fixthetimeline.org: could not connect to host
-floriantanner.ch: could not connect to host
+flopy.club: could not connect to host
 flow.su: could not connect to host
 flugplatz-edvc.de: could not connect to host
+fly.moe: could not connect to host
 flygpost.com: could not connect to host
 flyingdoggy.net: could not connect to host
 focalforest.com: could not connect to host
 folioapp.io: could not connect to host
 forcamp.ga: could not connect to host
 forschbach-janssen.de: could not connect to host
 forsyththeatre.com: could not connect to host
 fortuna-loessnitz.de: could not connect to host
@@ -562,16 +570,17 @@ foshanshequ.com: could not connect to ho
 fossewayflowers.co.uk: could not connect to host
 fossewayflowers.com: could not connect to host
 foudufafa.de: could not connect to host
 foxyslut.com: could not connect to host
 fragnic.com: could not connect to host
 franckyz.com: could not connect to host
 fransallen.com: could not connect to host
 franzt.ovh: could not connect to host
+frebib.net: could not connect to host
 fredliang.cn: could not connect to host
 fredtec.ru: could not connect to host
 freejidi.com: could not connect to host
 freelansir.com: could not connect to host
 freeshkre.li: could not connect to host
 freesounding.ru: could not connect to host
 freshcode.nl: could not connect to host
 frickenate.com: could not connect to host
@@ -611,18 +620,18 @@ game-gentle.com: could not connect to ho
 gameswitchers.uk: could not connect to host
 gametium.com: could not connect to host
 gametium.es: could not connect to host
 gasbarkenora.com: could not connect to host
 gasnews.net: could not connect to host
 gautham.it: could not connect to host
 gautham.pro: could not connect to host
 gaygeeks.de: could not connect to host
+gc.net: could not connect to host
 gchoic.com: could not connect to host
-gchq.wtf: could not connect to host
 gdb-tutorial.net: could not connect to host
 gdevpenze.ru: could not connect to host
 gdhzcgs.com: could not connect to host
 gdz-otvety.com: could not connect to host
 ge1.me: could not connect to host
 gehrke.nrw: could not connect to host
 geigr.de: could not connect to host
 generationnext.pl: could not connect to host
@@ -640,58 +649,56 @@ getgeek.io: could not connect to host
 getgeek.no: could not connect to host
 getgeek.nu: could not connect to host
 getgeek.pl: could not connect to host
 getwarden.net: could not connect to host
 gevaulug.fr: could not connect to host
 gfoss.gr: could not connect to host
 gglks.com: could not connect to host
 ggss.cf: could not connect to host
-giftking.nl: could not connect to host
 gifzilla.net: could not connect to host
 gina-architektur.design: could not connect to host
 git.co: could not connect to host
 glasner.photo: could not connect to host
 glutenfreelife.co.nz: could not connect to host
 gm-assicurazioni.it: could not connect to host
 gmantra.org: could not connect to host
 gmanukyan.com: could not connect to host
-gmind.ovh: could not connect to host
 gnom.me: could not connect to host
 gnosticjade.net: could not connect to host
 godrealms.com: could not connect to host
 goiaspropaganda.com.br: could not connect to host
+gongjuhao.com: could not connect to host
 google: could not connect to host
 google.ax: could not connect to host
 goranrango.ch: could not connect to host
 gottfridsberg.org: could not connect to host
 gozadentro.com: could not connect to host
 gradsm-ci.net: could not connect to host
 granth.io: could not connect to host
 graphire.io: could not connect to host
 gratisonlinesex.com: could not connect to host
 greg.red: could not connect to host
+greggsfoundation.org.uk: could not connect to host
 gregmartyn.com: could not connect to host
 greuel.online: could not connect to host
 gritte.net: could not connect to host
 grossmisconduct.news: could not connect to host
 gugaltika-ipb.org: could not connect to host
 gus.moe: could not connect to host
 gvchannel.xyz: could not connect to host
 gvt2.com: could not connect to host
 gvt3.com: could not connect to host
 h2cdn.cloud: could not connect to host
 h3artbl33d.nl: could not connect to host
-h3x.jp: could not connect to host
-h3z.jp: could not connect to host
 habeo.si: could not connect to host
-hackthissite.org: could not connect to host
 hakugin.me: could not connect to host
 halcyonsbastion.com: could not connect to host
 halkyon.net: could not connect to host
+hang333.pw: could not connect to host
 hapijs.cn: could not connect to host
 harrypottereditor.net: could not connect to host
 hasabig.wang: could not connect to host
 hasalittle.wang: could not connect to host
 hashplex.com: could not connect to host
 haze.network: could not connect to host
 hbbet.com: could not connect to host
 hbvip.com: could not connect to host
@@ -729,28 +736,28 @@ homesandal.com: could not connect to hos
 homoglyph.net: could not connect to host
 hoodoo.io: could not connect to host
 hoodoo.tech: could not connect to host
 horvathd.eu: could not connect to host
 hosted-oswa.org: could not connect to host
 hotelmadhuwanvihar.com: could not connect to host
 howardtyson.com: could not connect to host
 hozinga.de: could not connect to host
+hp-work.net: could not connect to host
 hr98.tk: could not connect to host
 hserver.top: could not connect to host
 hudingyuan.cn: could not connect to host
 huiser.nl: could not connect to host
 hukkatavara.com: could not connect to host
 hunger.im: could not connect to host
 huwjones.me: could not connect to host
 huzurmetal.net: could not connect to host
 hydrante.ch: could not connect to host
 hypotheques24.ch: could not connect to host
 iadttaveras.com: could not connect to host
-ibron.co: could not connect to host
 icebound.cc: could not connect to host
 iceloch.com: could not connect to host
 ictpro.info: could not connect to host
 icusignature.com: could not connect to host
 idcrane.com: could not connect to host
 ideadozz.hu: could not connect to host
 idemo.in: could not connect to host
 idol-bikes.ru: could not connect to host
@@ -758,29 +765,28 @@ idtechnowizard.com: could not connect to
 iemb.cf: could not connect to host
 ifoss.me: could not connect to host
 ifxnet.com: could not connect to host
 ikenmeyer.com: could not connect to host
 ikenmeyer.eu: could not connect to host
 ikzoekeengoedkopeauto.nl: could not connect to host
 ileat.com: could not connect to host
 img.ovh: could not connect to host
+imgencrypt.com: could not connect to host
 imlinan.cn: could not connect to host
 imlinan.info: could not connect to host
 imlinan.net: could not connect to host
 immersionwealth.com: could not connect to host
 imperdintechnologies.com: could not connect to host
-impulse-clan.de: could not connect to host
 increasetestosteronelevels.org: could not connect to host
 indybay.org: could not connect to host
 inexpensivecomputers.net: could not connect to host
 informatik.zone: could not connect to host
 infoworm.org: could not connect to host
 injust.me: could not connect to host
-innovativeideaz.org: could not connect to host
 inondation.ch: could not connect to host
 inscript.pl: could not connect to host
 insouciant.org: could not connect to host
 instaquiz.ru: could not connect to host
 instasex.ch: could not connect to host
 intelldynamics.com: could not connect to host
 interviewpipeline.co.uk: could not connect to host
 investorloanshub.com: could not connect to host
@@ -794,19 +800,17 @@ itad.top: could not connect to host
 itpro-mg.de: could not connect to host
 its-schindler.de: could not connect to host
 itsatrap.nl: could not connect to host
 ivanilla.org: could not connect to host
 ivanpolchenko.com: could not connect to host
 j0ng.xyz: could not connect to host
 jaimechanaga.com: could not connect to host
 jaion.ml: could not connect to host
-jaketremper.com: could not connect to host
 jakincode.army: could not connect to host
-jaksch.biz: could not connect to host
 jaksel.id: could not connect to host
 jamesheald.com: could not connect to host
 janssen.fm: could not connect to host
 japan4you.org: could not connect to host
 jaredfraser.com: could not connect to host
 javascriptlab.fr: could not connect to host
 jccars-occasions.be: could not connect to host
 jccrew.org: could not connect to host
@@ -826,63 +830,65 @@ joecod.es: could not connect to host
 joetyson.io: could not connect to host
 johngo.tk: could not connect to host
 jonathansanchez.pro: could not connect to host
 jooto.com: could not connect to host
 jordanhamilton.me: could not connect to host
 js88.sg: could not connect to host
 jsc7776.com: could not connect to host
 jsjyhzy.cc: could not connect to host
+juan23.edu.uy: could not connect to host
 juliaoantiguidades.com.br: could not connect to host
 juliawebber.co.za: could not connect to host
 jumbopan.com: could not connect to host
 jumbopan.net: could not connect to host
 just-pools.co.za: could not connect to host
 justinharrison.ca: could not connect to host
 justzz.xyz: could not connect to host
 juventusmania1897.com: could not connect to host
 k33k00.com: could not connect to host
 kaasbijwijn.nl: could not connect to host
-kabus.org: could not connect to host
 kaibol.com: could not connect to host
 kaika-facilitymanagement.de: could not connect to host
+kaloix.de: could not connect to host
 kamitech.ch: could not connect to host
 kanganer.com: could not connect to host
 kangzaber.com: could not connect to host
 kapo.info: could not connect to host
 karamna.com: could not connect to host
 karanlyons.com: could not connect to host
 karlic.net: could not connect to host
 karuneshjohri.com: could not connect to host
 katzen.me: could not connect to host
 kawaii.io: could not connect to host
 kawaiiku.com: could not connect to host
 kawaiiku.de: could not connect to host
 kayipmurekkep.com: could not connect to host
-kbfl.org: could not connect to host
 kcsordparticipation.org: could not connect to host
 kearney.io: could not connect to host
 kelm.me: could not connect to host
 kenyons.info: could not connect to host
 kevinbowers.me: could not connect to host
 kevindekoninck.com: could not connect to host
 keyserver.sexy: could not connect to host
 kgb.us: could not connect to host
+kgm-irm.be: could not connect to host
 kidbacker.com: could not connect to host
 kiedys.net: could not connect to host
 kieranweightman.me: could not connect to host
 kievradio.com: could not connect to host
 kinepolis-studio.ga: could not connect to host
 kingbird.me: could not connect to host
 kingclass.cn: could not connect to host
 kirill.ws: could not connect to host
 kj1396.net: could not connect to host
 kjchernov.info: could not connect to host
 kjoglum.me: could not connect to host
 klausimas.lt: could not connect to host
+kleinblogje.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 klingeletest.de: could not connect to host
 kngk-azs.ru: could not connect to host
 knightsweep.com: could not connect to host
 knownsec.cf: could not connect to host
 koez-mangal.ch: could not connect to host
 koezmangal.ch: could not connect to host
 kollawat.me: could not connect to host
 kongbaofang.com: could not connect to host
@@ -909,31 +915,31 @@ laboutiquemarocaineduconvoyeur.com: coul
 laboutiquemarocaineduconvoyeur.ma: could not connect to host
 lacasa.fr: could not connect to host
 lacasabelucci.com: could not connect to host
 lacasseroy.com: could not connect to host
 ladylikeit.com: could not connect to host
 lafr4nc3.net: could not connect to host
 lafr4nc3.xyz: could not connect to host
 lakewoodcomputerservices.com: could not connect to host
-lalaya.fr: could not connect to host
 landell.ml: could not connect to host
 lanonfire.com: could not connect to host
 lathamlabs.com: could not connect to host
 lathamlabs.net: could not connect to host
 lathamlabs.org: could not connect to host
 lavapot.com: could not connect to host
 lazulu.com: could not connect to host
 lbarrios.es: could not connect to host
 lbrls.tk: could not connect to host
 lcti.biz: could not connect to host
 ldcraft.pw: could not connect to host
 lebal.se: could not connect to host
 leebiblestudycentre.net: could not connect to host
 leebiblestudycentre.org: could not connect to host
+leefindlow.com: could not connect to host
 legal.farm: could not connect to host
 legaltip.eu: could not connect to host
 leolana.com: could not connect to host
 leonardcamacho.me: could not connect to host
 lerlivros.online: could not connect to host
 lescomptoirsdepierrot.com: could not connect to host
 lesdouceursdeliyana.com: could not connect to host
 lessets-graphiques.com: could not connect to host
@@ -974,47 +980,48 @@ logcat.info: could not connect to host
 logic8.ml: could not connect to host
 logimagine.com: could not connect to host
 loothole.com: could not connect to host
 loqyu.co: could not connect to host
 losebellyfat.pro: could not connect to host
 loveandloyalty.se: could not connect to host
 lovelive.us: could not connect to host
 lowt.us: could not connect to host
+lowtherpavilion.co.uk: could not connect to host
 loyaltech.ch: could not connect to host
 ltransferts.com: could not connect to host
 lucascodes.com: could not connect to host
 lukasunger.cz: could not connect to host
 lukasunger.net: could not connect to host
 luom.net: could not connect to host
 luxonetwork.com: could not connect to host
 m4570.xyz: could not connect to host
 m4g.ru: could not connect to host
 maartenterpstra.xyz: could not connect to host
-machbach.net: could not connect to host
 macustar.eu: could not connect to host
 madeintucson.org: could not connect to host
 madusecurity.com: could not connect to host
 magnacumlaude.co: could not connect to host
 maik-mahlow.de: could not connect to host
 mailon.ga: could not connect to host
 malesbdsm.com: could not connect to host
 malgraph.net: could not connect to host
 marcelmarnitz.com: could not connect to host
 marche-nordic-jorat.ch: could not connect to host
 mare92.cz: could not connect to host
 marketingdesignu.cz: could not connect to host
+marko-fenster24.de: could not connect to host
 martynhare.co.uk: could not connect to host
 martynhare.uk: could not connect to host
 marxist.party: could not connect to host
-massoni.pl: could not connect to host
 mastodon.expert: could not connect to host
 mastodon.my: could not connect to host
 matarrosabierzo.com: could not connect to host
 mathijskingma.nl: could not connect to host
+matthewtester.com: could not connect to host
 mattli.us: could not connect to host
 mattwb65.com: could not connect to host
 maynardnetworks.com: could not connect to host
 mazurlabs.tk: could not connect to host
 mb-is.info: could not connect to host
 mbdrogenbos-usedcars.be: could not connect to host
 mbsec.net: could not connect to host
 mbwemmel-usedcars.be: could not connect to host
@@ -1043,38 +1050,39 @@ metrix-money-ptc.com: could not connect 
 metrix.design: could not connect to host
 mexior.nl: could not connect to host
 meyeraviation.com: could not connect to host
 mhjuma.com: could not connect to host
 michaelsulzer.com: could not connect to host
 michaelsulzer.eu: could not connect to host
 mikeybot.com: could not connect to host
 milktea.info: could not connect to host
+minakov.pro: could not connect to host
 mingy.ddns.net: could not connect to host
+mingyueli.com: could not connect to host
 minitruckin.net: could not connect to host
 mkfs.fr: could not connect to host
 mmstick.tk: could not connect to host
 modded-minecraft-server-list.com: could not connect to host
 moderntld.net: could not connect to host
 moe-max.jp: could not connect to host
-moellers.systems: could not connect to host
 moeyi.xyz: could not connect to host
+mokote.com: could not connect to host
 mongla168.net: could not connect to host
 mongla88.net: could not connect to host
 monitori.ng: could not connect to host
 moobo.xyz: could not connect to host
 mooselook.de: could not connect to host
 moparcraft.com: could not connect to host
 moparcraft.org: could not connect to host
 mordrum.com: could not connect to host
 morfitronik.pl: could not connect to host
 morz.org: could not connect to host
 mosaique-lachenaie.fr: could not connect to host
 moskva.guide: could not connect to host
-moso.io: could not connect to host
 motomorgen.com: could not connect to host
 motorbiketourhanoi.com: could not connect to host
 mountainadventureseminars.com: could not connect to host
 moving-pixtures.de: could not connect to host
 mowalls.net: could not connect to host
 mozzilla.cz: could not connect to host
 mpserver12.org: could not connect to host
 mrafrohead.com: could not connect to host
@@ -1086,81 +1094,75 @@ muj-svet.cz: could not connect to host
 munch.me: could not connect to host
 munduch.cz: could not connect to host
 murraycolin.org: could not connect to host
 muslimbanter.co.za: could not connect to host
 mybeautyjobs.de: could not connect to host
 mycamda.com: could not connect to host
 mycustomwriting.com: could not connect to host
 myfappening.org: could not connect to host
-myfloridadeferredcomp.com: could not connect to host
-myicare.org: could not connect to host
 mykeepsake.xyz: could not connect to host
 mynetworkingbuddy.com: could not connect to host
+myshirtsize.com: could not connect to host
 mytravelblog.de: could not connect to host
 mzlog.win: could not connect to host
 n0099.cf: could not connect to host
 naano.org: could not connect to host
 naphex.rocks: could not connect to host
 narodsovety.ru: could not connect to host
 nate.sh: could not connect to host
 ncdesigns-studio.com: could not connect to host
 neer.io: could not connect to host
 negativecurvature.net: could not connect to host
-neio.uk: could not connect to host
 nejnamc.org: could not connect to host
+nerdhouse.io: could not connect to host
 nestone.ru: could not connect to host
 nevadafiber.net: could not connect to host
 newcityinfo.info: could not connect to host
 nexgeneration-solutions.com: could not connect to host
 nexusbyte.de: could not connect to host
 nexuscorporation.in: could not connect to host
 nfluence.org: could not connect to host
-nfrost.me: could not connect to host
 ngtoys.com.br: could not connect to host
 nico.st: could not connect to host
 nienfun.com: could not connect to host
 nigger.racing: could not connect to host
 nikksno.io: could not connect to host
 nikolasbradshaw.com: could not connect to host
 niouininon.eu: could not connect to host
 nirada.info: could not connect to host
 nishikino-maki.com: could not connect to host
 niva.synology.me: could not connect to host
 nkadvertising.online: could not connect to host
 nodeselect.com: could not connect to host
 nonemu.ninja: could not connect to host
 norad.sytes.net: could not connect to host
-northernselfstorage.co.za: could not connect to host
 nosbenevolesontdutalent.com: could not connect to host
 notarobot.fr: could not connect to host
 note7forever.com: could not connect to host
 notesforpebble.com: could not connect to host
 notevencode.com: could not connect to host
 novascan.net: could not connect to host
 nowremindme.com: could not connect to host
-nsa.lol: could not connect to host
-nsa.wtf: could not connect to host
 nsbfalconacademy.org: could not connect to host
 nsdev.cn: could not connect to host
 nsmail.cn: could not connect to host
 nudel.ninja: could not connect to host
 nunnun.jp: could not connect to host
 nyanpasu.tv: could not connect to host
 nyxi.eu: could not connect to host
 obdolbacca.ru: could not connect to host
 oberam.de: could not connect to host
 oberhof.co: could not connect to host
 oblondata.io: could not connect to host
 off-the-clock.us: could not connect to host
 offgames.pro: could not connect to host
 office-ruru.com: could not connect to host
 ohyooo.com: could not connect to host
 oliverspringer.eu: could not connect to host
-omarh.net: could not connect to host
 omnibot.tv: could not connect to host
 onewebdev.info: could not connect to host
 onstud.com: could not connect to host
 onwie.fr: could not connect to host
 ooeste.com: could not connect to host
 opatut.de: could not connect to host
 opium.io: could not connect to host
 oscsdp.cz: could not connect to host
@@ -1192,37 +1194,35 @@ pathwaytofaith.com: could not connect to
 patrickbusch.net: could not connect to host
 patrickneuro.de: could not connect to host
 paulbramhall.uk: could not connect to host
 paulrudge.codes: could not connect to host
 paulshir.com: could not connect to host
 paulshir.is: could not connect to host
 paymon.tj: could not connect to host
 paypod.org: could not connect to host
-pbcknd.ml: could not connect to host
 pcmr.info: could not connect to host
 pcvirusclear.com: could not connect to host
 pear2pear.de: could not connect to host
 peirong.me: could not connect to host
 pengisatelier.net: could not connect to host
 persjrp.ca: could not connect to host
 persoform.ch: could not connect to host
 petlife.od.ua: could not connect to host
 peuf.shop: could not connect to host
 peykezamin.ir: could not connect to host
 pgmsource.com: could not connect to host
 phdwuda.com: could not connect to host
 phil.tw: could not connect to host
 philippa.cool: could not connect to host
-phoenixlogan.com: could not connect to host
 photops.fr: could not connect to host
-phra.gs: could not connect to host
 picallo.es: could not connect to host
 picone.com.au: could not connect to host
 pierrejeansuau.fr: could not connect to host
+pieterhordijk.com: could not connect to host
 pimspage.nl: could not connect to host
 pinebaylibrary.org: could not connect to host
 piwko.co: could not connect to host
 pixelgliders.de: could not connect to host
 plaasprodukte.com: could not connect to host
 placefade.com: could not connect to host
 planbox.info: could not connect to host
 playsharp.com: could not connect to host
@@ -1230,32 +1230,31 @@ plussizereviews.com: could not connect t
 pmbremer.de: could not connect to host
 pnsc.is: could not connect to host
 pogs.us: could not connect to host
 pointagri.com: could not connect to host
 polit.im: could not connect to host
 politic.org.ua: could not connect to host
 ponteencima.com: could not connect to host
 poolinstallers.co.za: could not connect to host
-portailevangelique.ca: could not connect to host
 potbar.com: could not connect to host
 potlytics.com: could not connect to host
 pouets.ovh: could not connect to host
 powerentertainment.tv: could not connect to host
 poy-tech.com: could not connect to host
 prepaid-cards.xyz: could not connect to host
 princessbackpack.de: could not connect to host
 printsos.com: could not connect to host
 prism-communication.com: could not connect to host
 privacymanatee.com: could not connect to host
-privateimarketing.com: could not connect to host
 privcloud.org: could not connect to host
 privilegevisa.fr: could not connect to host
 proactive.run: could not connect to host
 progressivecfo.co.nz: could not connect to host
+projectasterk.com: could not connect to host
 projectx.top: could not connect to host
 prokop.ovh: could not connect to host
 propmag.co: could not connect to host
 provitacare.com: could not connect to host
 proxydesk.eu: could not connect to host
 prpsss.com: could not connect to host
 pruikshop.nl: could not connect to host
 prytkov.com: could not connect to host
@@ -1274,32 +1273,29 @@ qforum.org: could not connect to host
 qikan.net: could not connect to host
 qldformulaford.org: could not connect to host
 qnatek.org: could not connect to host
 qoqo.us: could not connect to host
 qrlfinancial.com: could not connect to host
 qscloud.de: could not connect to host
 qto.net: could not connect to host
 quay.net: could not connect to host
-r40.us: could not connect to host
-ra.co.ke: could not connect to host
 rackblue.com: could not connect to host
 radeticlaw.com: could not connect to host
 rainbin.com: could not connect to host
 rally-vysledky.cz: could not connect to host
-randomquotesapp.com: could not connect to host
 ranos.org: could not connect to host
 rantanda.com: could not connect to host
 rapdogg.com: could not connect to host
+rapidstone.com: could not connect to host
 ravengergaming.net: could not connect to host
 ravse.dk: could not connect to host
 raxion.cf: could not connect to host
 rcoliveira.com: could not connect to host
 rdfz.tech: could not connect to host
-rdl.at: could not connect to host
 readify.com.au: could not connect to host
 readityourself.net: could not connect to host
 reaiaer.com: could not connect to host
 real-compare.com: could not connect to host
 realcli.com: could not connect to host
 realraghavgupta.com: could not connect to host
 realwoo.com: could not connect to host
 reevu.net: could not connect to host
@@ -1310,23 +1306,24 @@ reignsphere.net: could not connect to ho
 reismil.ch: could not connect to host
 relaxhavefun.com: could not connect to host
 renemayrhofer.com: could not connect to host
 rentbrowser.com: could not connect to host
 report-incident.de: could not connect to host
 reqognize.com: could not connect to host
 research.md: could not connect to host
 ressl.ch: could not connect to host
-retcor.net: could not connect to host
 reth.ch: could not connect to host
+retrowave.eu: could not connect to host
 retube.ga: could not connect to host
 reykjavik.guide: could not connect to host
 ribopierre.fr: could not connect to host
 riceglue.com: could not connect to host
 richeza.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
+rkc-hygrotherm.de: could not connect to host
 rngmeme.com: could not connect to host
 robi-net.it: could not connect to host
 robomonkey.org: could not connect to host
 robust.ga: could not connect to host
 rocketgnomes.com: could not connect to host
 rodehutskors.net: could not connect to host
 rofrank.space: could not connect to host
 rohanbassett.com: could not connect to host
@@ -1336,26 +1333,26 @@ ronghexx.com: could not connect to host
 roolevoi.ru: could not connect to host
 rootbsd.at: could not connect to host
 rospa100.com: could not connect to host
 rotterdamjazz.info: could not connect to host
 royzez.com: could not connect to host
 rozalynne-dawn.ga: could not connect to host
 rpasafrica.com: could not connect to host
 rs-devdemo.host: could not connect to host
-rsauget.fr: could not connect to host
 rsldb.com: could not connect to host
 rtc.fun: could not connect to host
 rubendv.be: could not connect to host
 ruhr3.de: could not connect to host
 ruht.ro: could not connect to host
 runcarina.com: could not connect to host
 rundumcolumn.xyz: could not connect to host
 runementors.com: could not connect to host
 ruudkoot.nl: could not connect to host
+rva-asbestgroep.nl: could not connect to host
 rzegroup.com: could not connect to host
 s0923.com: could not connect to host
 s3n.se: could not connect to host
 sa.net: could not connect to host
 sabine-forschbach.de: could not connect to host
 sabineforschbach.de: could not connect to host
 safejourney.education: could not connect to host
 saferedirectlink.com: could not connect to host
@@ -1399,49 +1396,49 @@ sellmoretires.com: could not connect to 
 seoscribe.net: could not connect to host
 servecrypt.com: could not connect to host
 server-essentials.com: could not connect to host
 serverlauget.no: could not connect to host
 serverpedia.de: could not connect to host
 servfefe.com: could not connect to host
 seryovpn.com: could not connect to host
 sesha.co.za: could not connect to host
-sfaturiit.ro: could not connect to host
 shadex.net: could not connect to host
 shadiku.com: could not connect to host
 shadowplus.net: could not connect to host
 shadowrocket.net: could not connect to host
-shaitan.eu: could not connect to host
 shang-yu.cn: could not connect to host
 shanxiapark.com: could not connect to host
 shavingks.com: could not connect to host
 sheying.tm: could not connect to host
 shirakaba-cc.com: could not connect to host
+shobhanayogsadan.com: could not connect to host
 shoppingreview.org: could not connect to host
 shortr.li: could not connect to host
 shred.ch: could not connect to host
 shredoptics.ch: could not connect to host
 shuzicai.cn: could not connect to host
 shymeck.pw: could not connect to host
+siamega.com: could not connect to host
 sickfile.com: could not connect to host
 siebens.net: could not connect to host
 signosquecombinam.com.br: could not connect to host
 sikatehtaat.fi: could not connect to host
 siku.pro: could not connect to host
 silvistefi.com: could not connect to host
 simbolo.co.uk: could not connect to host
 simplerses.com: could not connect to host
 sims4hub.ga: could not connect to host
+sinfulforums.net: could not connect to host
 siqi.wang: could not connect to host
 skarox.ru: could not connect to host
 sky-aroma.com: could not connect to host
 skylocker.net: could not connect to host
 skylocker.nl: could not connect to host
 slaps.be: could not connect to host
-sleepstar.co.uk: could not connect to host
 slovoice.org: could not connect to host
 slytech.ch: could not connect to host
 smallchat.nl: could not connect to host
 smith.is: could not connect to host
 sml.lc: could not connect to host
 smuhelper.cn: could not connect to host
 soboleva-pr.com.ua: could not connect to host
 socialworkout.com: could not connect to host
@@ -1483,47 +1480,48 @@ steven-bennett.com: could not connect to
 stickswag.cf: could not connect to host
 stilettomoda.com.br: could not connect to host
 stonemanbrasil.com.br: could not connect to host
 stpip.com: could not connect to host
 streams.dyndns.org: could not connect to host
 stressfreehousehold.com: could not connect to host
 stupendous.net: could not connect to host
 stylle.me: could not connect to host
-suchprogrammer.net: could not connect to host
 sudo.im: could not connect to host
 sudosu.fr: could not connect to host
 suitocracy.com: could not connect to host
 sulek.eu: could not connect to host
 summer.ga: could not connect to host
 suneilpatel.com: could not connect to host
 sunfireshop.com.br: could not connect to host
 sunxchina.com: could not connect to host
 superpase.com: could not connect to host
 surdam.casa: could not connect to host
 susconam.org: could not connect to host
 suspiciousdarknet.xyz: could not connect to host
 swaggerdile.com: could not connect to host
-swfloshatraining.com: could not connect to host
 synergisticsoccer.com: could not connect to host
 t3rror.net: could not connect to host
 takusan.ru: could not connect to host
 talktwincities.com: could not connect to host
 tangyue.date: could not connect to host
 tangzhao.net: could not connect to host
+tardis.io: could not connect to host
+tas2580.net: could not connect to host
 tcpweb.net: could not connect to host
 tdsb.cf: could not connect to host
 tdsbhack.tk: could not connect to host
 tearoy.faith: could not connect to host
 tebieer.com: could not connect to host
 techask.it: could not connect to host
 techpit.us: could not connect to host
 tektoria.de: could not connect to host
 telekollektiv.org: could not connect to host
 tenispopular.com: could not connect to host
+tequilazor.com: could not connect to host
 terra-x.net: could not connect to host
 terrax.net: could not connect to host
 testovaci.ml: could not connect to host
 tetsai.com: could not connect to host
 teulon.eu: could not connect to host
 thaigirls.xyz: could not connect to host
 the-digitale.com: could not connect to host
 the-finance-blog.com: could not connect to host
@@ -1531,34 +1529,30 @@ the-gist.io: could not connect to host
 thedarkartsandcrafts.com: could not connect to host
 thefox.co: could not connect to host
 thefrk.xyz: could not connect to host
 thehiddenbay.info: could not connect to host
 thenrdhrd.nl: could not connect to host
 theprincegame.com: could not connect to host
 theprivacysolution.com: could not connect to host
 thequillmagazine.org: could not connect to host
-therevenge.me: could not connect to host
 thermique.ch: could not connect to host
 thesehighsandlows.com: could not connect to host
 theserver201.tk: could not connect to host
 thierryhayoz.ch: could not connect to host
 thinkcash.nl: could not connect to host
 thompsonfamily.cloud: could not connect to host
 tianxicaipiao.win: could not connect to host
 tianxicp.com: could not connect to host
 tink.network: could not connect to host
 tipiakers.club: could not connect to host
 tkn.tokyo: could not connect to host
 tnb-plattform.de: could not connect to host
-tob-rulez.de: could not connect to host
-tobiaskorf.de: could not connect to host
 todosrv.com: could not connect to host
 tokoindo.top: could not connect to host
-tokototech.com: could not connect to host
 tollsjekk.no: could not connect to host
 tomm.yt: could not connect to host
 tommounsey.com: could not connect to host
 tooolroc.org: could not connect to host
 topdetoxcleanse.com: could not connect to host
 topdevbox.net: could not connect to host
 topnotchendings.com: could not connect to host
 tor2web.org: could not connect to host
@@ -1586,39 +1580,35 @@ turkiet.guide: could not connect to host
 turn-sticks.com: could not connect to host
 tuxhound.org: could not connect to host
 tverdohleb.com: could not connect to host
 twinkieman.com: could not connect to host
 twiri.net: could not connect to host
 twitter.ax: could not connect to host
 twotube.ie: could not connect to host
 tykoon.com: could not connect to host
-tyler.rs: could not connect to host
 tylerharcourt.com: could not connect to host
-tyleromeara.com: could not connect to host
+typehub.net: could not connect to host
 tysye.ca: could not connect to host
 tzwe.com: could not connect to host
 ubi.gg: could not connect to host
 ubicv.com: could not connect to host
 udo-luetkemeier.de: could not connect to host
 ueu.me: could not connect to host
 ulti.gq: could not connect to host
 umisonoda.com: could not connect to host
 umsapi.com: could not connect to host
 unefuite.ch: could not connect to host
 unhu.fr: could not connect to host
 uni2share.com: could not connect to host
 unicorn.li: could not connect to host
 uploadbro.com: could not connect to host
-upr.com.ua: could not connect to host
 urcentral.org: could not connect to host
-usafuelservice.com: could not connect to host
 uscp8.com: could not connect to host
 usportsgo.com: could not connect to host
-uswitch.com: could not connect to host
 utdsgda.com: could not connect to host
 uwesander.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 uygindir.ml: could not connect to host
 vaaddress.co: could not connect to host
 vacationfund.co: could not connect to host
 vadik.me: could not connect to host
 vaeplatform.com: could not connect to host
 vaioswolke.xyz: could not connect to host
@@ -1626,42 +1616,41 @@ valaeris.de: could not connect to host
 valecnatechnika.cz: could not connect to host
 valenhub.com: could not connect to host
 valenhub.es: could not connect to host
 vanderstraeten.dynv6.net: could not connect to host
 vapeshopsupply.com: could not connect to host
 varela-electricite.fr: could not connect to host
 vayaport.com: could not connect to host
 velen.io: could not connect to host
-venicecomputerrepair.com: could not connect to host
-venicefloridawebsitedesign.com: could not connect to host
 venturavwparts.com: could not connect to host
 verdeandco.co.uk: could not connect to host
 versfin.net: could not connect to host
 veryyounglesbians.com: could not connect to host
 vgatest.nl: could not connect to host
 vicenage.com: could not connect to host
 videorullen.se: could not connect to host
-vidister.de: could not connect to host
 vikasbabyworld.de: could not connect to host
+vilaydin.com: could not connect to host
 vimeosucks.nyc: could not connect to host
 vinetalk.net: could not connect to host
+vishwashantiyoga.com: could not connect to host
 visionthroughknowledge.com: could not connect to host
 visiontree.eu: could not connect to host
 vlogge.com: could not connect to host
 voeux.io: could not connect to host
 vogt.tech: could not connect to host
 volcain.io: could not connect to host
 vorlif.org: could not connect to host
 vorodevops.com: could not connect to host
 votresiteweb.ch: could not connect to host
 vrtouring.org: could not connect to host
 vsx.ch: could not connect to host
 vxapps.com: could not connect to host
-w4.no: could not connect to host
+w3ctag.org: could not connect to host
 w4nvu.org: could not connect to host
 wabifoggynuts.com: could not connect to host
 waixingrenfuli.vip: could not connect to host
 wallpapers.pub: could not connect to host
 wanashi.com: could not connect to host
 wanda76.com: could not connect to host
 wanda78.com: could not connect to host
 wanda79.com: could not connect to host
@@ -1698,16 +1687,17 @@ werhatunsverraten.eu: could not connect 
 wespeakgeek.co.za: could not connect to host
 wetthost.com: could not connect to host
 wevg.org: could not connect to host
 weyland.tech: could not connect to host
 wg-tools.de: could not connect to host
 whereisjason.com: could not connect to host
 whereismyorigin.cf: could not connect to host
 whilsttraveling.com: could not connect to host
+whitworth.nyc: could not connect to host
 wibuw.com: could not connect to host
 wilhelm-nathan.de: could not connect to host
 willkommen-fuerstenberg.de: could not connect to host
 winnersports.co: could not connect to host
 winsufi.biz: could not connect to host
 wireframesoftware.com: could not connect to host
 wisak.eu: could not connect to host
 wishesbee.com: could not connect to host
@@ -1722,39 +1712,34 @@ wonderbooks.club: could not connect to h
 woomu.me: could not connect to host
 workemy.com: could not connect to host
 worldfree4.org: could not connect to host
 worldpeacetechnology.com: could not connect to host
 wp-fastsearch.de: could not connect to host
 wp-stack.pro: could not connect to host
 wp6.pw: could not connect to host
 wsdcap.com: could not connect to host
-wtf.ninja: could not connect to host
 wuchipc.com: could not connect to host
 www-68277.com: could not connect to host
 www-8887999.com: could not connect to host
 www.re: could not connect to host
 www.sb: could not connect to host
 www.simbolo.co.uk: could not connect to host
 xbc.nz: could not connect to host
 xeonlab.com: could not connect to host
 xeonlab.de: could not connect to host
 xia100.xyz: could not connect to host
 xianguocy.com: could not connect to host
-xiaoyu.net: could not connect to host
 xing.ml: could not connect to host
 xn--8mr166hf6s.xn--fiqs8s: could not connect to host
 xn--c5w27q.ml: could not connect to host
-xn--jbs-tna.de: could not connect to host
-xn--mllers-wxa.info: could not connect to host
 xn--srenpind-54a.dk: could not connect to host
 xn--t8j2a3042d.xyz: could not connect to host
 xn--yj8h0m.ws: could not connect to host
 xn--ykrp42k.com: could not connect to host
-xoda.pw: could not connect to host
 xpwn.cz: could not connect to host
 xqin.net: could not connect to host
 xuntaosms.com: could not connect to host
 xwaretech.info: could not connect to host
 y3451.com: could not connect to host
 yabrt.cn: could not connect to host
 yahoo.ax: could not connect to host
 yarchives.jp: could not connect to host
@@ -1770,17 +1755,16 @@ yibin0831.com: could not connect to host
 ying299.com: could not connect to host
 ying299.net: could not connect to host
 ylk.io: could not connect to host
 yobst.tk: could not connect to host
 yoga.is-an-engineer.com: could not connect to host
 yotilabs.com: could not connect to host
 yourznc.com: could not connect to host
 yousite.by: could not connect to host
-ytpak.com: could not connect to host
 yude.ml: could not connect to host
 yugege.cf: could not connect to host
 yum.beer: could not connect to host
 yux.fr: could not connect to host
 zachbolinger.com: could not connect to host
 zaoext.com: could not connect to host
 zbchen.com: could not connect to host
 zeitzer-turngala.de: could not connect to host
@@ -1789,17 +1773,16 @@ zero-x-baadf00d.com: could not connect t
 zerolab.org: could not connect to host
 zerosource.net: could not connect to host
 zhangfangzhou.com: could not connect to host
 zhangsir.net: could not connect to host
 zhaochen.xyz: could not connect to host
 zhenmeish.com: could not connect to host
 zhiin.net: could not connect to host
 zhikin.com: could not connect to host
-zhima.io: could not connect to host
 zhoujiashu.com: could not connect to host
 zikirakhirzaman.com: could not connect to host
 zobraz.cz: could not connect to host
 zokster.net: could not connect to host
 zudomc.me: could not connect to host
 zuefle.net: could not connect to host
 zuehlcke.de: could not connect to host
 zuviel.space: could not connect to host
@@ -1875,26 +1858,27 @@ 1years.cc: could not connect to host
 2-cpu.de: did not receive HSTS header
 206rc.net: max-age too low: 2592000
 20hs.cn: did not receive HSTS header
 21lg.co: could not connect to host
 247quickbooks.com: did not receive HSTS header
 2488.ch: did not receive HSTS header
 24hourpaint.com: could not connect to host
 24sihu.com: could not connect to host
+256pages.com: max-age too low: 2592000
 25daysof.io: could not connect to host
 2859cc.com: could not connect to host
 2acbi-asso.fr: did not receive HSTS header
 2bizi.ru: could not connect to host
 2brokegirls.org: could not connect to host
 2carpros.com: did not receive HSTS header
 2intermediate.co.uk: did not receive HSTS header
 2or3.tk: could not connect to host
 2smart4food.com: did not receive HSTS header
-2ss.jp: 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
 314166.com: could not connect to host
 32ph.com: could not connect to host
 33836.com: did not receive HSTS header
@@ -2107,22 +2091,20 @@ agrias.com.br: did not receive HSTS head
 agrimap.com: did not receive HSTS header
 agro-id.gov.ua: did not receive HSTS header
 agtv.com.br: did not receive HSTS header
 ahabingo.com: did not receive HSTS header
 ahfazahmed.net: did not receive HSTS header
 ahoynetwork.com: did not receive HSTS header
 ahri.ovh: could not connect to host
 ahwatukeefoothillsmontessori.com: did not receive HSTS header
-aicial.co.uk: did not receive HSTS header
 aicial.com.au: could not connect to host
 aidanwoods.com: did not receive HSTS header
 aidikofflaw.com: did not receive HSTS header
 aids.gov: did not receive HSTS header
-aiforsocialmedia.com: did not receive HSTS header
 aifreeze.ru: could not connect to host
 aify.eu: could not connect to host
 ainrb.com: could not connect to host
 aip-marine.com: could not connect to host
 aiponne.com: could not connect to host
 airlea.com: could not connect to host
 airlinecheckins.com: did not receive HSTS header
 airmazinginflatables.com: did not receive HSTS header
@@ -2136,17 +2118,17 @@ ajouin.com: could not connect to host
 aka.my: did not receive HSTS header
 akboy.pw: could not connect to host
 akclinics.org: did not receive HSTS header
 akerek.hu: could not connect to host
 akgundemirbas.com: could not connect to host
 akkadia.cc: could not connect to host
 akombakom.net: could not connect to host
 akselimedia.fi: did not receive HSTS header
-akstudentsfirst.org: did not receive HSTS header
+akstudentsfirst.org: could not connect to host
 aktivist.in: did not receive HSTS header
 al-shami.net: could not connect to host
 aladdin.ie: did not receive HSTS header
 alanlee.net: could not connect to host
 alanrickmanflipstable.com: could not connect to host
 alariel.de: did not receive HSTS header
 alarme-gps.ch: could not connect to host
 alarmegps.ch: could not connect to host
@@ -2398,16 +2380,17 @@ as.se: could not connect to host
 as9178.net: could not connect to host
 asahikoji.net: could not connect to host
 asasuou.pw: could not connect to host
 asc16.com: could not connect to host
 ascamso.com: could not connect to host
 aschaefer.net: could not connect to host
 asdpress.cn: could not connect to host
 ashlane-cottages.com: could not connect to host
+ashleymedway.com: did not receive HSTS header
 asianodor.com: could not connect to host
 ask.pe: did not receive HSTS header
 askfit.cz: did not receive HSTS header
 asmui.ga: could not connect to host
 asmui.ml: could not connect to host
 ass.org.au: could not connect to host
 assekuranzjobs.de: could not connect to host
 asset-alive.com: did not receive HSTS header
@@ -2555,17 +2538,16 @@ banksaround.com: did not receive HSTS he
 banqingdiao.com: could not connect to host
 baobaobooks.net: did not receive HSTS header
 baobeiglass.com: did not receive HSTS header
 barcel.com.mx: max-age too low: 86400
 barely.sexy: did not receive HSTS header
 barrelhead.org: could not connect to host
 barrut.me: did not receive HSTS header
 barshout.co.uk: could not connect to host
-barss.io: could not connect to host
 bartbania.com: did not receive HSTS header
 barunisystems.com: could not connect to host
 bashcode.ninja: could not connect to host
 basicsolutionsus.com: did not receive HSTS header
 basilisk.io: could not connect to host
 bassh.net: did not receive HSTS header
 baud.ninja: could not connect to host
 baudairenergyservices.com: did not receive HSTS header
@@ -2675,17 +2657,16 @@ bf.am: max-age too low: 0
 bfd.vodka: did not receive HSTS header
 bfear.com: could not connect to host
 bfelob.gov: could not connect to host
 bffm.biz: could not connect to host
 bgcparkstad.nl: did not receive HSTS header
 bgmn.net: could not connect to host
 bhatia.at: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 biapinheiro.com.br: max-age too low: 5184000
-biblerhymes.com: did not receive HSTS header
 bidon.ca: did not receive HSTS header
 bieberium.de: could not connect to host
 biego.cn: did not receive HSTS header
 bielsa.me: could not connect to host
 bienenblog.cc: could not connect to host
 bierbringer.at: could not connect to host
 big-black.de: did not receive HSTS header
 bigbbqbrush.bid: could not connect to host
@@ -3054,23 +3035,23 @@ carlolly.co.uk: could not connect to hos
 carlosalves.info: did not receive HSTS header
 carpliyz.com: could not connect to host
 carroarmato0.be: did not receive HSTS header
 carsforbackpackers.com: could not connect to host
 carstenfeuls.de: did not receive HSTS header
 cartesunicef.be: did not receive HSTS header
 cartoonhd.cc: did not receive HSTS header
 carwashvapeur.be: could not connect to host
+casashopp.com.br: did not receive HSTS header
 casc.cz: did not receive HSTS header
 casedi.org: max-age too low: 0
 casefall.com: could not connect to host
 cash-pos.com: could not connect to host
 cashmyphone.ch: could not connect to host
 casino-cashflow.ru: did not receive HSTS header
-casinolegal.pt: did not receive HSTS header
 casinostest.com: could not connect to host
 casioshop.eu: did not receive HSTS header
 casovi.cf: could not connect to host
 castagnonavocats.com: did not receive HSTS header
 cata.ga: could not connect to host
 catalin.pw: could not connect to host
 catarsisvr.com: could not connect to host
 catinmay.com: did not receive HSTS header
@@ -3220,17 +3201,16 @@ circ-logic.com: did not receive HSTS hea
 ciscohomeanalytics.com: could not connect to host
 ciscommerce.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 citiagent.cz: could not connect to host
 cityoflaurel.org: did not receive HSTS header
 cium.ru: could not connect to host
 cjcaron.org: could not connect to host
 claimit.ml: could not connect to host
 clan-ww.com: did not receive HSTS header
-clanwarz.com: did not receive HSTS header
 clara-baumert.de: could not connect to host
 claralabs.com: did not receive HSTS header
 clarity-c2ced.appspot.com: did not receive HSTS header
 classicday.nl: could not connect to host
 classicsandexotics.com: could not connect to host
 classicshop.ua: did not receive HSTS header
 classicspublishing.com: could not connect to host
 classifiedssa.co.za: could not connect to host
@@ -3350,16 +3330,17 @@ comitesaustria.at: could not connect to 
 comiteshopping.com: could not connect to host
 commercialplanet.eu: could not connect to host
 commune-preuilly.fr: did not receive HSTS header
 comocurarlashemorroides.org: could not connect to host
 comocurarlashemorroidesya.com: 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
+compareandrecycle.co.uk: did not receive HSTS header
 comparejewelleryprices.co.uk: could not connect to host
 comparetravelinsurance.com.au: did not receive HSTS header
 compassionate-biology.com: could not connect to host
 compiledworks.com: could not connect to host
 completesportperformance.com: did not receive HSTS header
 completionist.audio: could not connect to host
 complymd.com: did not receive HSTS header
 compsmag.com: did not receive HSTS header
@@ -3385,17 +3366,17 @@ consciousbrands.net.au: could not connec
 console.python.org: did not receive HSTS header
 console.support: did not receive HSTS header
 contactbig.com: did not receive HSTS header
 contactsingapore.sg: did not receive HSTS header
 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
-content-design.de: could not connect to host
+content-design.de: did not receive HSTS header
 continuumgaming.com: could not connect to host
 controlcenter.gigahost.dk: did not receive HSTS header
 controleer-maar-een-ander.nl: did not receive HSTS header
 convert.zone: did not receive HSTS header
 cooink.net: could not connect to host
 coolaj86.com: did not receive HSTS header
 coolbutbroken.com: did not receive HSTS header
 coolchevy.org.ua: did not receive HSTS header
@@ -3433,17 +3414,17 @@ count.sh: could not connect to host
 couponcodeq.com: could not connect to host
 couragewhispers.ca: could not connect to host
 coursdeprogrammation.com: could not connect to host
 coursella.com: did not receive HSTS header
 covenantbank.net: could not connect to host
 coverdat.com: did not receive HSTS header
 coverduck.ru: could not connect to host
 cpuvinf.eu.org: could not connect to host
-cracking.org: did not receive HSTS header
+cracking.org: could not connect to host
 crackingking.com: did not receive HSTS header
 craftbeerbarn.co.uk: could not connect to host
 craftedge.xyz: could not connect to host
 craftmain.eu: could not connect to host
 cranems.com.ua: did not receive HSTS header
 cranioschule.com: did not receive HSTS header
 crate.io: did not receive HSTS header
 cravelyrics.com: could not connect to host
@@ -3541,17 +3522,16 @@ cusfit.com: did not receive HSTS header
 custe.rs: could not connect to host
 customadesign.com: 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
 cvtparking.co.uk: did not receive HSTS header
 cwage.com: could not connect to host
 cyanogenmod.xxx: could not connect to host
-cyber-konzept.de: did not receive HSTS header
 cybercecurity.com: did not receive HSTS header
 cyberfrancais.ro: did not receive HSTS header
 cyberlab.kiev.ua: did not receive HSTS header
 cyberlab.team: did not receive HSTS header
 cyberpunk.ca: could not connect to host
 cybersafesolutions.com: did not receive HSTS header
 cybershambles.com: could not connect to host
 cybersmart.co.uk: did not receive HSTS header
@@ -3655,17 +3635,16 @@ dcurt.is: did not receive HSTS header
 dcw.io: did not receive HSTS header
 ddatsh.com: could not connect to host
 ddepot.us: did not receive HSTS header
 deadsoul.net: max-age too low: 0
 debank.tv: did not receive HSTS header
 debatch.se: could not connect to host
 debian-vhost.de: could not connect to host
 debiton.dk: could not connect to host
-debt.com: did not receive HSTS header
 debtkit.co.uk: did not receive HSTS header
 debtprotectionreporting.com: did not receive HSTS header
 decafu.co: could not connect to host
 decesus.com: could not connect to host
 decibelios.li: could not connect to host
 decloverly.com: did not receive HSTS header
 deco.me: could not connect to host
 decoboutique.com: did not receive HSTS header
@@ -3952,17 +3931,17 @@ dune.io: did not receive HSTS header
 dunea.nl: did not receive HSTS header
 dungi.org: could not connect to host
 duole30.com: did not receive HSTS header
 duongpho.com: did not receive HSTS header
 duskopy.top: could not connect to host
 dutchrank.com: did not receive HSTS header
 duuu.ch: could not connect to host
 dycem-ns.com: did not receive HSTS header
-dycoa.com: did not receive HSTS header
+dycoa.com: could not connect to host
 dycontrol.de: could not connect to host
 dylanscott.com.au: did not receive HSTS header
 dymersion.com: did not receive HSTS header
 dynamic-innovations.net: could not connect to host
 dynamize.solutions: did not receive HSTS header
 dyrkar.com: did not receive HSTS header
 dzimejl.sk: did not receive HSTS header
 dzlibs.io: could not connect to host
@@ -4136,16 +4115,17 @@ end.pp.ua: could not connect to host
 endlessdark.net: max-age too low: 600
 endlesshorizon.net: could not connect to host
 endlesstone.com: could not connect to host
 endohaus.ca: could not connect to host
 endohaus.com: could not connect to host
 endohaus.eu: could not connect to host
 enecoshop.nl: did not receive HSTS header
 enefan.jp: could not connect to host
+enfield-kitchens.co.uk: did not receive HSTS header
 engelwerbung.com: did not receive HSTS header
 enginsight.com: did not receive HSTS header
 englishyamal.ru: did not receive HSTS header
 enigmacpt.com: did not receive HSTS header
 enigmail.net: did not receive HSTS header
 enjen.net: did not receive HSTS header
 enjoymayfield.com: max-age too low: 0
 enteente.club: could not connect to host
@@ -4161,16 +4141,17 @@ enumify.com: could not connect to host
 enviapresentes.com.br: could not connect to host
 envygeeks.com: could not connect to host
 eol34.com: could not connect to host
 eoldb.org: could not connect to host
 epanurse.com: could not connect to host
 ephry.com: could not connect to host
 epicmc.games: could not connect to host
 epoxate.com: could not connect to host
+epulsar.ru: did not receive HSTS header
 eq8.net.au: could not connect to host
 eqib.nl: did not receive HSTS header
 eqim.me: could not connect to host
 equate.net.au: did not receive HSTS header
 equatetechnologies.com.au: did not receive HSTS header
 equilibre-yoga-jennifer-will.com: could not connect to host
 equitee.co: did not receive HSTS header
 equityflows.com: did not receive HSTS header
@@ -4222,17 +4203,16 @@ etaoinwu.tk: could not connect to host
 etdonline.co.uk: could not connect to host
 eternitylove.us: could not connect to host
 eth9.net: could not connect to host
 etheria-software.tk: did not receive HSTS header
 etherpad.fr: did not receive HSTS header
 ethicalexploiting.com: did not receive HSTS header
 ethicall.org.uk: did not receive HSTS header
 ethil-faer.fr: could not connect to host
-etidni.help: did not receive HSTS header
 etk2000.com: did not receive HSTS header
 etmirror.top: could not connect to host
 etmirror.xyz: could not connect to host
 etoto.pl: did not receive HSTS header
 etproxy.tech: could not connect to host
 etrker.com: did not receive HSTS header
 ets2mp.de: did not receive HSTS header
 etsysecure.com: could not connect to host
@@ -4356,16 +4336,17 @@ 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
 fatwin.pw: could not connect to host
 fatzebra.com.au: max-age too low: 0
 fayolle.info: did not receive HSTS header
 fbox.li: could not connect to host
+fckd.net: did not receive HSTS header
 fcsic.gov: max-age too low: 2592000
 fdj.im: could not connect to host
 fdt.name: did not receive HSTS header
 feard.space: could not connect to host
 federalregister.gov: did not receive HSTS header
 fedo.moe: could not connect to host
 feedthebot.com: did not receive HSTS header
 feedthefuture.gov: did not receive HSTS header
@@ -4552,17 +4533,16 @@ freeflow.tv: could not connect to host
 freekdevries.nl: did not receive HSTS header
 freelanced.co.za: could not connect to host
 freelo.cz: did not receive HSTS header
 freematthale.net: did not receive HSTS header
 freesoftwaredriver.com: could not connect to host
 freethought.org.au: could not connect to host
 freeutopia.org: did not receive HSTS header
 freqlabs.com: did not receive HSTS header
-fresh-hotel.org: did not receive HSTS header
 freshfind.xyz: could not connect to host
 freshlymind.com: did not receive HSTS header
 frezbo.com: could not connect to host
 frforms.com: did not receive HSTS header
 fridaperfumaria.com.br: could not connect to host
 fridolinka.cz: could not connect to host
 friendica.ch: could not connect to host
 friendlyfiregameshow.com: could not connect to host
@@ -4663,17 +4643,16 @@ gamers-life.fr: could not connect to hos
 gamerslair.org: did not receive HSTS header
 gamerz-point.de: could not connect to host
 gamesdepartment.co.uk: did not receive HSTS header
 gameserver-sponsor.de: did not receive HSTS header
 gamesurferapp.com: could not connect to host
 gamingmedia.eu: did not receive HSTS header
 gamoice.com: did not receive HSTS header
 gampenhof.de: did not receive HSTS header
-gar-nich.net: did not receive HSTS header
 garageon.net: did not receive HSTS header
 garciamartin.me: could not connect to host
 garcinia--cambogia.com: could not connect to host
 garden.trade: could not connect to host
 gasser-daniel.ch: did not receive HSTS header
 gatapro.net: could not connect to host
 gatorsa.es: did not receive HSTS header
 gaussorgues.me: could not connect to host
@@ -4731,17 +4710,17 @@ getmassage.com.ng: could not connect to 
 getmondo.co.uk: could not connect to host
 getpake.com: could not connect to host
 getpop.org: did not receive HSTS header
 getremembrall.com: could not connect to host
 getronics.care: could not connect to host
 getsello.com: could not connect to host
 getspeaker.com: did not receive HSTS header
 getwashdaddy.com: could not connect to host
-gfbouncycastles.co.uk: did not receive HSTS header
+gfbouncycastles.co.uk: could not connect to host
 gfhgiro.nl: max-age too low: 0
 gfm.tech: could not connect to host
 gfwsb.ml: could not connect to host
 ggss.ml: could not connect to host
 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
@@ -4773,16 +4752,17 @@ gis3m.org: did not receive HSTS header
 gistfy.com: could not connect to host
 git-stuff.tk: could not connect to host
 givemyanswer.com: could not connect to host
 gizzo.sk: could not connect to host
 glass.google.com: did not receive HSTS header (error ignored - included regardless)
 glasslikes.com: did not receive HSTS header
 glbg.eu: did not receive HSTS header
 glentakahashi.com: could not connect to host
+glittersjabloon.nl: did not receive HSTS header
 glitzmirror.com: could not connect to host
 global-adult-webcams.com: did not receive HSTS header
 globalado.com: could not connect to host
 globalbridge-japan.com: did not receive HSTS header
 globalexpert.co.nz: could not connect to host
 globalinsights.xyz: could not connect to host
 globalittech.com: could not connect to host
 globalmusic.ga: could not connect to host
@@ -5265,17 +5245,17 @@ hydronium.ga: could not connect to host
 hydronium.me: could not connect to host
 hydronium.ml: could not connect to host
 hydronium.tk: could not connect to host
 hypa.net.au: did not receive HSTS header
 hyper69.com: did not receive HSTS header
 hypnoresults.com.au: did not receive HSTS header
 hypnos.hu: did not receive HSTS header
 hysg.me: could not connect to host
-hzh.pub: did not receive HSTS header
+hzh.pub: could not connect to host
 i-jp.net: could not connect to host
 i-partners.sk: did not receive HSTS header
 i-rickroll-n.pw: could not connect to host
 i10z.com: could not connect to host
 iacono.com.br: did not receive HSTS header
 iamjoshellis.com: could not connect to host
 iamokay.nl: did not receive HSTS header
 iamreubin.co.uk: did not receive HSTS header
@@ -5332,17 +5312,16 @@ igi.codes: max-age too low: 0
 igiftcards.nl: did not receive HSTS header
 ignatisd.gr: did not receive HSTS header
 igule.net: could not connect to host
 ihotel.io: did not receive HSTS header
 ihrlotto.de: could not connect to host
 ihrnationalrat.ch: could not connect to host
 ihsbsd.me: could not connect to host
 ihsbsd.tk: could not connect to host
-iideaz.org: 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
 ikocik.sk: did not receive HSTS header
 ikon.name: did not receive HSTS header
 ikwilguidobellen.nl: could not connect to host
 ikzoekjeugdhulp.nl: did not receive HSTS header
 ilbuongiorno.it: did not receive HSTS header
@@ -5483,17 +5462,17 @@ inverselink.com: could not connect to ho
 investnext.com: max-age too low: 43200
 investor.gov: did not receive HSTS header
 invictusmc.uk: could not connect to host
 invinsec.cloud: did not receive HSTS header
 inviosolutions.com: max-age too low: 0
 invite24.pro: could not connect to host
 iolife.dk: could not connect to host
 ionas-law.ro: did not receive HSTS header
-iop.intuit.com: did not receive HSTS header
+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
 ip6.im: did not receive HSTS header
 ipbill.org.uk: could not connect to host
 iplife.cn: could not connect to host
 ipmimagazine.com: did not receive HSTS header
 iprice.co.id: did not receive HSTS header
@@ -5840,18 +5819,20 @@ kaniklani.co.za: could not connect to ho
 kanscooking.org: could not connect to host
 kany.me: did not receive HSTS header
 kanzlei-wirtschaftsrecht.berlin: max-age too low: 600000
 kaohub.com: could not connect to host
 kaplatz.is: could not connect to host
 kapucini.si: max-age too low: 0
 kaputt.com: did not receive HSTS header
 kapverde.guide: could not connect to host
+karabas.com: did not receive HSTS header
 karaoketonight.com: could not connect to host
 karloskontana.tk: could not connect to host
+karmaspa.se: did not receive HSTS header
 karting34.com: did not receive HSTS header
 kashdash.ca: could not connect to host
 katalogakci.cz: did not receive HSTS header
 katiaetdavid.fr: could not connect to host
 katoju.co.jp: could not connect to host
 katproxy.al: could not connect to host
 katproxy.online: could not connect to host
 katproxy.site: could not connect to host
@@ -6066,17 +6047,16 @@ labrasaq8.com: did not receive HSTS head
 labs.directory: could not connect to host
 labs.moscow: did not receive HSTS header
 lacarpesaintaubinoise.fr: did not receive HSTS header
 lacaverne.nl: could not connect to host
 lacentral.com: did not receive HSTS header
 lachlankidson.net: did not receive HSTS header
 lacledeslan.ninja: could not connect to host
 lacocinadelila.com: did not receive HSTS header
-lacuevadechauvet.com: did not receive HSTS header
 ladylucks.co.uk: did not receive HSTS header
 laemen.com: did not receive HSTS header
 laemen.nl: could not connect to host
 laf.in.net: could not connect to host
 lagalerievirtuelle.fr: did not receive HSTS header
 lagier.xyz: could not connect to host
 lagoza.name: could not connect to host
 lainchan.org: did not receive HSTS header
@@ -6202,17 +6182,16 @@ liaoshuma.com: could not connect to host
 libanco.com: could not connect to host
 libertyrp.org: did not receive HSTS header
 libfte.org: did not receive HSTS header
 library.linode.com: did not receive HSTS header
 librechan.net: could not connect to host
 libreduca.com: could not connect to host
 lichess4545.com: did not receive HSTS header
 lichess4545.tv: did not receive HSTS header
-lidlovajogurteka.si: could not connect to host
 liebach.me: did not receive HSTS header
 liemen.net: did not receive HSTS header
 life-time.nl: did not receive HSTS header
 lifecoach.tw: did not receive HSTS header
 lifecoachproviders.com: did not receive HSTS header
 lifeguard.aecom.com: did not receive HSTS header
 lifeinitsownway.com: could not connect to host
 lifeng.us: did not receive HSTS header
@@ -6253,17 +6232,16 @@ linorman1997.me: could not connect to ho
 linux-mint.cz: could not connect to host
 linuxandstuff.de: could not connect to host
 linuxeyecandy.com: could not connect to host
 linuxfixed.it: could not connect to host
 linuxforyou.com: could not connect to host
 linuxgeek.ro: could not connect to host
 linuxmint.cz: could not connect to host
 linuxmonitoring.net: did not receive HSTS header
-lipo.lol: did not receive HSTS header
 liquid.solutions: did not receive HSTS header
 liquorsanthe.in: could not connect to host
 lisaco.de: could not connect to host
 lisbongold.com: did not receive HSTS header
 lisgade.dk: could not connect to host
 listafirmelor.com: could not connect to host
 listage.ovh: did not receive HSTS header
 litespeed.io: could not connect to host
@@ -6290,16 +6268,17 @@ lobste.rs: did not receive HSTS header
 localchum.com: could not connect to host
 localdrive.me: could not connect to host
 localnetwork.nz: could not connect to host
 locksmithrandburg24-7.co.za: could not connect to host
 locktheirphone.com: could not connect to host
 lockyourcomputer.pw: did not receive HSTS header
 locomotive.ca: did not receive HSTS header
 locvis.ru: did not receive HSTS header
+loforo.com: did not receive HSTS header
 loftboard.eu: could not connect to host
 log2n.uk: could not connect to host
 logario.com.br: could not connect to host
 logicaladvertising.com: could not connect to host
 login.corp.google.com: max-age too low: 7776000 (error ignored - included regardless)
 login.gov: did not receive HSTS header
 login.persona.org: could not connect to host
 loginseite.com: could not connect to host
@@ -6337,16 +6316,17 @@ lotsencafe.de: did not receive HSTS head
 lotuscloud.org: could not connect to host
 louduniverse.net: did not receive HSTS header
 louiewatch.com: could not connect to host
 loveable.de: could not connect to host
 lovelifelovelive.com: could not connect to host
 lovelyblogacademy.com: did not receive HSTS header
 lovelycorral.com: did not receive HSTS header
 lovelyfriends.org: did not receive HSTS header
+lovelytimes.net: did not receive HSTS header
 loveto.at: could not connect to host
 lovingearth.net: max-age too low: 0
 lowhangingfruitgrabber.com: could not connect to host
 loxis.be: did not receive HSTS header
 lpak.nl: could not connect to host
 lpgram.ga: could not connect to host
 lrhsclubs.com: could not connect to host
 lrhstsa.com: could not connect to host
@@ -6478,17 +6458,17 @@ manageall.de: could not connect to host
 manageforall.com: could not connect to host
 manageforall.de: could not connect to host
 managemynetsuite.com: did not receive HSTS header
 manantial.mx: did not receive HSTS header
 mandpress.com: did not receive HSTS header
 mangazuki.co: did not receive HSTS header
 maniadeprazer.com.br: could not connect to host
 manifestbin.com: did not receive HSTS header
-manipulatedtme.com: did not receive HSTS header
+manipulatedtme.com: could not connect to host
 manitasicily.com: did not receive HSTS header
 manningbrothers.com: did not receive HSTS header
 manns-solutions.com: did not receive HSTS header
 manns-solutions.ru: did not receive HSTS header
 mannsolutions.co.uk: did not receive HSTS header
 mansfieldplacevt.com: did not receive HSTS header
 manshop24.com: could not connect to host
 mansion-note.com: did not receive HSTS header
@@ -6516,17 +6496,16 @@ marie-en-provence.com: did not receive H
 marienschule-sundern.de: did not receive HSTS header
 marinela.com.mx: max-age too low: 86400
 marinelausa.com: max-age too low: 86400
 markaconnor.com: did not receive HSTS header
 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)
 marketespace.fr: did not receive HSTS header
-marketingvirtuales.com: did not receive HSTS header
 markllego.com: could not connect to host
 markorszulak.com: did not receive HSTS header
 markrobin.de: did not receive HSTS header
 marksill.com: could not connect to host
 marktboten.de: did not receive HSTS header
 markus-dev.com: did not receive HSTS header
 markusabraham.com: did not receive HSTS header
 markusweimar.de: did not receive HSTS header
@@ -6828,17 +6807,17 @@ mobilethreat.net: could not connect to h
 mobilethreatnetwork.net: could not connect to host
 mobilpass.no: could not connect to host
 mobiwalk.com: could not connect to host
 mobix5.com: did not receive HSTS header
 mockmyapp.com: could not connect to host
 mocloud.eu: could not connect to host
 mocsuite.club: could not connect to host
 mocurio.com: could not connect to host
-modaperuimport.com: did not receive HSTS header
+modaperuimport.com: could not connect to host
 moddedark.com: could not connect to host
 mode-marine.com: could not connect to host
 model9.io: did not receive HSTS header
 modeldimension.com: did not receive HSTS header
 modelsclub.org.ua: did not receive HSTS header
 modemagazines.co.uk: could not connect to host
 moderatortv.de: did not receive HSTS header
 modx.by: max-age too low: 31536
@@ -6870,17 +6849,16 @@ monautoneuve.fr: did not receive HSTS he
 mondar.io: could not connect to host
 mondopoint.com: did not receive HSTS header
 mondwandler.de: could not connect to host
 moneromerchant.com: could not connect to host
 moneycrownmedia.com: 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
-monsieurbureau.com: did not receive HSTS header
 montanacures.org: could not connect to host
 montanwerk.de: did not receive HSTS header
 montonicms.com: could not connect to host
 moon.lc: could not connect to host
 moonless.net: could not connect to host
 moonloupe.com: could not connect to host
 moonysbouncycastles.co.uk: did not receive HSTS header
 moosemanstudios.com: could not connect to host
@@ -6934,17 +6912,16 @@ mrksk.com: did not receive HSTS header
 mrning.com: did not receive HSTS header
 mrnonz.com: max-age too low: 0
 mrpopat.in: did not receive HSTS header
 mrs-shop.com: did not receive HSTS header
 mrsbairds.com: max-age too low: 86400
 msc-seereisen.net: max-age too low: 0
 mstd.tokyo: did not receive HSTS header
 mstdn-tech.jp: could not connect to host
-mstdn.io: did not receive HSTS header
 mszaki.com: did not receive HSTS header
 mt.me.uk: could not connect to host
 mtamaki.com: could not connect to host
 mtcgf.com: did not receive HSTS header
 mtdn.jp: could not connect to host
 mtg-esport.de: did not receive HSTS header
 muevetumundo.com.mx: max-age too low: 86400
 mujadin.se: did not receive HSTS header
@@ -6998,16 +6975,17 @@ mydnaresults.com: could not connect to h
 mydnatest.com: did not receive HSTS header
 mydriversedge.com: did not receive HSTS header
 myfdic.gov: could not connect to host
 mygate.at: could not connect to host
 mygivingcircle.org: did not receive HSTS header
 mygooder.com: did not receive HSTS header
 mygov.scot: did not receive HSTS header
 myhair.asia: did not receive HSTS header
+myicare.org: did not receive HSTS header
 myiocc.org: could not connect to host
 myip.tech: max-age too low: 2592000
 myjumpsuit.de: did not receive HSTS header
 mykolab.com: did not receive HSTS header
 mykreuzfahrt.de: could not connect to host
 mymp3singer.site: did not receive HSTS header
 mynetblog.com: did not receive HSTS header
 mynewleaf.co: did not receive HSTS header
@@ -7023,17 +7001,17 @@ myraytech.net: did not receive HSTS head
 myrig.net: could not connect to host
 myrsa.in: did not receive HSTS header
 mysecretrewards.com: could not connect to host
 myspa.asia: did not receive HSTS header
 mystery-science-theater-3000.de: did not receive HSTS header
 mysteryblog.de: did not receive HSTS header
 mythlogic.com: did not receive HSTS header
 mythslegendscollection.com: did not receive HSTS header
-mytweeps.com: could not connect to host
+mytweeps.com: did not receive HSTS header
 myweb360.de: did not receive HSTS header
 myzone.com: did not receive HSTS header
 n-rickroll-e.pw: could not connect to host
 n0psled.nl: could not connect to host
 n2x.in: could not connect to host
 n4l.pw: could not connect to host
 n8ch.net: could not connect to host
 nabru.co.uk: did not receive HSTS header
@@ -7099,17 +7077,17 @@ nearbiwa.com: did not receive HSTS heade
 neavision.de: did not receive HSTS header
 nebra.io: could not connect to host
 nebulousenhanced.com: could not connect to host
 nedcf.org.uk: did not receive HSTS header
 nedwave.com: did not receive HSTS header
 nedzad.me: could not connect to host
 neftaly.com: did not receive HSTS header
 negativzinsen.info: did not receive HSTS header
-neilgreen.net: did not receive HSTS header
+neilgreen.net: could not connect to host
 neko-life.com: did not receive HSTS header
 neko-system.com: did not receive HSTS header
 nemno.de: could not connect to host
 nemovement.org: could not connect to host
 neoani.me: did not receive HSTS header
 neofelhz.space: could not connect to host
 neonisi.com: could not connect to host
 neonnuke.tech: could not connect to host
@@ -7137,17 +7115,17 @@ netzpolitik.org: max-age too low: 259200
 netztest.at: did not receive HSTS header
 netzvieh.de: did not receive HSTS header
 netzzwerg4u.de: could not connect to host
 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: max-age too low: 1000
 never-afk.de: did not receive HSTS header
-never.pet: could not connect to host
+never.pet: did not receive HSTS header
 neveta.com: could not connect to host
 newbieboss.com: did not receive HSTS header
 newedivideo.it: could not connect to host
 newgenerationplus.org: could not connect to host
 newhdmovies.io: could not connect to host
 newkaliningrad.ru: did not receive HSTS header
 newlooknow.com: did not receive HSTS header
 newmelalife.com: did not receive HSTS header
@@ -7184,16 +7162,17 @@ nidux.com: did not receive HSTS header
 niduxcomercial.com: could not connect to host
 nien.chat: could not connect to host
 nifpnet.nl: did not receive HSTS header
 nightsnack.cf: could not connect to host
 niho.jp: did not receive HSTS header
 nikcub.com: could not connect to host
 niklaslindblad.se: did not receive HSTS header
 nikolaichik.photo: did not receive HSTS header
+nil2.org: did not receive HSTS header
 niloxy.com: did not receive HSTS header
 ninchisho-online.com: did not receive HSTS header
 ninhs.org: could not connect to host
 ninjaspiders.com: did not receive HSTS header
 nippler.org: could not connect to host
 nippombashi.net: did not receive HSTS header
 nipponcareers.com: did not receive HSTS header
 nixien.fr: could not connect to host
@@ -7594,33 +7573,33 @@ pastdream.xyz: could not connect to host
 paste.linode.com: could not connect to host
 pastebin.linode.com: could not connect to host
 pastenib.com: could not connect to host
 paster.li: did not receive HSTS header
 pataua.kiwi: did not receive HSTS header
 paternitydnatest.com: could not connect to host
 patfs.com: did not receive HSTS header
 patientinsight.net: did not receive HSTS header
-patt.us: 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
 paulbunyanmls.com: did not receive HSTS header
 paulproell.at: could not connect to host
 paulyang.cn: did not receive HSTS header
 pavelfojt.cz: did not receive HSTS header
 pavelkahouseforcisco.com: did not receive HSTS header
 paxdei.com.br: could not connect to host
 paxwinkel.nl: did not receive HSTS header
 pay.gigahost.dk: did not receive HSTS header
 payfreez.com: 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)
 payroll.ch: could not connect to host
 paytwopay.com: could not connect to host
-pbapp.net: could not connect to host
+pbapp.net: did not receive HSTS header
 pbbr.com: did not receive HSTS header
 pbprint.ru: did not receive HSTS header
 pc-nf.de: did not receive HSTS header
 pcat.io: could not connect to host
 pcfun.net: could not connect to host
 pchax.net: could not connect to host
 pchospital.cc: could not connect to host
 pdamsidoarjo.co.id: could not connect to host
@@ -7720,18 +7699,19 @@ pidomex.com: did not receive HSTS header
 pieterjangeeroms.me: could not connect to host
 piggott.me.uk: did not receive HSTS header
 pilgermaske.org: did not receive HSTS header
 piligrimname.com: could not connect to host
 pillowandpepper.com: did not receive HSTS header
 pimpmymac.ru: did not receive HSTS header
 pims.global: did not receive HSTS header
 pinkyf.com: could not connect to host
+pioche.ovh: did not receive HSTS header
 pippen.io: could not connect to host
-pips.rocks: did not receive HSTS header
+pips.rocks: could not connect to host
 pir9.com: did not receive HSTS header
 pirata.ga: did not receive HSTS header
 piratebit.tech: could not connect to host
 piratedb.com: could not connect to host
 piratedot.com: could not connect to host
 piratelist.online: could not connect to host
 piratenlogin.de: could not connect to host
 pirateproxy.pe: could not connect to host
@@ -7835,16 +7815,17 @@ porno-gif.ru: did not receive HSTS heade
 pornstars.me: did not receive HSTS header
 portalm.tk: could not connect to host
 portalplatform.net: could not connect to host
 portaluniversalista.org: could not connect to host
 portalzine.de: did not receive HSTS header
 poshpak.com: max-age too low: 86400
 postcodewise.co.uk: did not receive HSTS header
 posterspy.com: did not receive HSTS header
+postpot.co.kr: max-age too low: 0
 postscheduler.org: could not connect to host
 posylka.de: did not receive HSTS header
 potatoheads.net: could not connect to host
 potsky.com: did not receive HSTS header
 pourmesloisirs.com: did not receive HSTS header
 poussinooz.fr: could not connect to host
 povitria.net: could not connect to host
 power-l.ch: did not receive HSTS header
@@ -8088,16 +8069,17 @@ raven.lipetsk.ru: could not connect to h
 ravengergaming.ga: did not receive HSTS header
 ravkr.duckdns.org: max-age too low: 30
 raw-diets.com: did not receive HSTS header
 rawet.se: could not connect to host
 rawoil.com: could not connect to host
 rawstorieslondon.com: could not connect to host
 raydan.space: could not connect to host
 raydobe.me: could not connect to host
+raymondjcox.com: did not receive HSTS header
 raytron.org: could not connect to host
 razeencheng.com: could not connect to host
 razlaw.name: did not receive HSTS header
 razzolini.com.br: could not connect to host
 rbhighinc.org: could not connect to host
 rbose.org: could not connect to host
 rbqcloud.com: did not receive HSTS header
 rbti.me: could not connect to host
@@ -8199,17 +8181,17 @@ reporturl.io: did not receive HSTS heade
 reprolife.co.uk: could not connect to host
 res-rheingau.de: did not receive HSTS header
 res42.com: could not connect to host
 reserve-online.net: did not receive HSTS header
 residentsinsurance.co.uk: did not receive HSTS header
 resl20.servehttp.com: could not connect to host
 respice.xyz: could not connect to host
 restaurace-klokocka.cz: did not receive HSTS header
-restchart.com: did not receive HSTS header
+restchart.com: could not connect to host
 retroarms.com: did not receive HSTS header
 retroarms.cz: did not receive HSTS header
 returnofwar.com: could not connect to host
 revapost.ch: 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
 reverie.pw: could not connect to host
@@ -8270,16 +8252,17 @@ robtex.com: did not receive HSTS header
 robtex.net: did not receive HSTS header
 robtex.org: did not receive HSTS header
 rochman.id: could not connect to host
 rocket-wars.de: 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
 rockz.io: did not receive HSTS header
+roddis.net: did not receive HSTS header
 rodney.id.au: did not receive HSTS header
 rodneybrooksjr.com: did not receive HSTS header
 rodosto.com: did not receive HSTS header
 roeper.party: could not connect to host
 roesemann.email: could not connect to host
 roguelikecenter.fr: did not receive HSTS header
 rohlik.cz: did not receive HSTS header
 roketix.co.uk: did not receive HSTS header
@@ -8395,16 +8378,18 @@ saltedskies.com: could not connect to ho
 saltra.online: did not receive HSTS header
 samegoal.org: did not receive HSTS header
 sametovymesic.cz: could not connect to host
 saml2.com: could not connect to host
 sampcup.com: could not connect to host
 sampoznay.ru: did not receive HSTS header
 samraskauskas.com: could not connect to host
 samsen.club: could not connect to host
+samsungmobile.it: did not receive HSTS header
+samui-samui.de: did not receive HSTS header
 sanasalud.org: could not connect to host
 sanatfilan.com: did not receive HSTS header
 sandviks.com: did not receive HSTS header
 sanguoxiu.com: could not connect to host
 sanhei.ch: did not receive HSTS header
 sanik.my: did not receive HSTS header
 sanissimo.com.mx: max-age too low: 86400
 sansage.com.br: could not connect to host
@@ -8817,17 +8802,17 @@ smet.us: could not connect to host
 smexpt.com: did not receive HSTS header
 smileawei.com: did not receive HSTS header
 smimea.com: could not connect to host
 smirkingwhorefromhighgarden.pro: could not connect to host
 smittix.co.uk: did not receive HSTS header
 smkn1lengkong.sch.id: did not receive HSTS header
 smksi2.com: could not connect to host
 smksultanismail2.com: did not receive HSTS header
-smol.cat: did not receive HSTS header
+smol.cat: could not connect to host
 smove.sg: did not receive HSTS header
 smplix.com: could not connect to host
 smspodmena.ru: did not receive HSTS header
 smtp.bz: did not receive HSTS header
 smusg.com: did not receive HSTS header
 smzsq.com: did not receive HSTS header
 snailing.org: could not connect to host
 snakehosting.dk: did not receive HSTS header
@@ -9016,16 +9001,17 @@ steelbea.ms: could not connect to host
 steem.io: did not receive HSTS header
 stefanweiser.de: did not receive HSTS header
 stepbystep3d.com: did not receive HSTS header
 steph-autoecole.ch: did not receive HSTS header
 stephanierxo.com: did not receive HSTS header
 stephanos.me: could not connect to host
 stephenandburns.com: did not receive HSTS header
 stevechekblain.win: could not connect to host
+stevenroddis.com: did not receive HSTS header
 stevensheffey.me: did not receive HSTS header
 stevensononthe.net: did not receive HSTS header
 stevenz.net: did not receive HSTS header
 stewartremodelingadvantage.com: could not connect to host
 sticklerjs.org: could not connect to host
 stig.io: could not connect to host
 stigroom.com: could not connect to host
 stillblackhat.id: could not connect to host
@@ -9097,17 +9083,16 @@ sugarsweetorsour.com: did not receive HS
 suian.or.jp: max-age too low: 86400
 suite73.org: could not connect to host
 summitbankofkc.com: did not receive HSTS header
 sumoatm.com: did not receive HSTS header
 sumoscout.de: could not connect to host
 sun-wellness-online.com.vn: did not receive HSTS header
 sunboxstore.jp: did not receive HSTS header
 suncountrymarine.com: did not receive HSTS header
-sunflyer.cn: did not receive HSTS header
 sungo.wtf: did not receive HSTS header
 sunlandsg.vn: did not receive HSTS header
 sunnyfruit.ru: could not connect to host
 sunshinepress.org: could not connect to host
 sunyanzi.tk: could not connect to host
 suos.io: could not connect to host
 supcro.com: could not connect to host
 super-erotica.ru: could not connect to host
@@ -9255,16 +9240,17 @@ tdsb.gq: could not connect to host
 tdsb.ml: could not connect to host
 tdsbhack.cf: could not connect to host
 tdsbhack.ga: could not connect to host
 tdsbhack.gq: could not connect to host
 tdsbhack.ml: could not connect to host
 teachforcanada.ca: did not receive HSTS header
 tealdrones.com: did not receive HSTS header
 team-teasers.com: could not connect to host
+teambeoplay.co.uk: did not receive HSTS header
 teamblueridge.org: could not connect to host
 teamhood.io: did not receive HSTS header
 teampoint.cz: could not connect to host
 teamsocial.co: did not receive HSTS header
 teamup.rocks: did not receive HSTS header
 teamzeus.cz: could not connect to host
 tech-blog.fr: did not receive HSTS header
 tech-finder.fr: could not connect to host
@@ -9480,17 +9466,17 @@ tidmore.us: could not connect to host
 tiendschuurstraat.nl: could not connect to host
 tiensnet.com: could not connect to host
 tierrarp.com: could not connect to host
 tightlineproductions.com: did not receive HSTS header
 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 :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 119"  data: no]
 tilikum.io: did not receive HSTS header
-tilkah.com.au: could not connect to host
+tilkah.com.au: did not receive HSTS header
 tillcraft.com: could not connect to host
 timbeilby.com: could not connect to host
 timbuktutimber.com: did not receive HSTS header
 timcamara.com: could not connect to host
 time-river.xyz: could not connect to host
 timeatlas.com: did not receive HSTS header
 timesavingplugins.com: could not connect to host
 timesavingplugins.net: could not connect to host
@@ -9779,17 +9765,16 @@ ukdropshipment.com: did not receive HSTS
 ukk.dk: did not receive HSTS header
 ukrgadget.com: could not connect to host
 ukrnet.co.uk: did not receive HSTS header
 ulabox.cat: did not receive HSTS header
 ulabox.es: did not receive HSTS header
 ullamodaintima.com.br: could not connect to host
 ulmer-schneesport.de: did not receive HSTS header
 ulmo.dk: could not connect to host
-ultima-ratio.at: 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
 ultros.io: did not receive HSTS header
 umaimise.info: did not receive HSTS header
 umgardi.ca: could not connect to host
 umidev.com: did not receive HSTS header
@@ -9857,21 +9842,24 @@ upldr.pw: could not connect to host
 uporoops.com: could not connect to host
 uprotect.it: could not connect to host
 upstats.eu: could not connect to host
 uptic.net: did not receive HSTS header
 ur-lauber.de: did not receive HSTS header
 urandom.eu.org: did not receive HSTS header
 urban-garden.lt: could not connect to host
 urban-garden.lv: could not connect to host
+urbanstylestaging.com: did not receive HSTS header
 urbpic.com: could not connect to host
+url0.eu: did not receive HSTS header
 urlchomp.com: did not receive HSTS header
 urphp.com: could not connect to host
 us-immigration.com: did not receive HSTS header
 usaab.org: did not receive HSTS header
+usafuelservice.com: did not receive HSTS header
 usbirthcertificate.com: could not connect to host
 usbtypeccompliant.com: could not connect to host
 uscitizenship.info: did not receive HSTS header
 uscntalk.com: could not connect to host
 uscurrency.gov: did not receive HSTS header
 used-in.jp: could not connect to host
 user-new.com: did not receive HSTS header
 usercare.com: did not receive HSTS header
@@ -10173,17 +10161,17 @@ webmail.mayfirst.org: did not receive HS
 webmaniabr.com: did not receive HSTS header
 webmarketingfestival.it: did not receive HSTS header
 webninja.work: could not connect to host
 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
 webrebels.org: could not connect to host
-websandbox.uk: could not connect to host
+websandbox.uk: did not receive HSTS header
 websitedesign.bg: did not receive HSTS header
 webstationservice.fr: could not connect to host
 webstellung.com: did not receive HSTS header
 webstory.xyz: did not receive HSTS header
 webswitch.io: could not connect to host
 webtechgadgetry.com: could not connect to host
 webtiles.co.uk: could not connect to host
 webuni.hu: did not receive HSTS header
@@ -10471,16 +10459,17 @@ xn--qckqc0nxbyc4cdb4527err7c.biz: did no
 xn--u9jy16ncfao19mo8i.nagoya: did not receive HSTS header
 xn--uist1idrju3i.jp: did not receive HSTS header
 xn--w22a.jp: did not receive HSTS header
 xn--wmq.jp: did not receive HSTS header
 xn--xdtx3pfzbiw3ar8e7yedqrhui.com: could not connect to host
 xn--yoamomisuasbcn-ynb.com: could not connect to host
 xn--zck9a4b352yuua.jp: did not receive HSTS header
 xobox.me: could not connect to host
+xoda.pw: did not receive HSTS header
 xoffy.com: did not receive HSTS header
 xom.party: could not connect to host
 xombra.com: did not receive HSTS header
 xor-a.net: could not connect to host
 xperiacodes.com: could not connect to host
 xpi.fr: could not connect to host
 xpj.sx: could not connect to host
 xrp.pw: could not connect to host
@@ -10525,17 +10514,16 @@ yetcore.io: could not connect to host
 yhrd.org: did not receive HSTS header
 yikzu.cn: could not connect to host
 yin.roma.it: 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
 yippie.nl: could not connect to host
 yizhu.com: could not connect to host
-yjsoft.me: did not receive HSTS header
 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
 yoga-in-aying.de: did not receive HSTS header
 yogabhawnamission.com: did not receive HSTS header
 yogeshbeniwal.com: did not receive HSTS header
 yohanesmario.com: did not receive HSTS header
--- a/security/manager/ssl/nsSTSPreloadList.inc
+++ b/security/manager/ssl/nsSTSPreloadList.inc
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*****************************************************************************/
 /* This is an automatically generated file. If you're not                    */
 /* nsSiteSecurityService.cpp, you shouldn't be #including it.     */
 /*****************************************************************************/
 
 #include <stdint.h>
-const PRTime gPreloadListExpirationTime = INT64_C(1526842805617000);
+const PRTime gPreloadListExpirationTime = INT64_C(1526929053720000);
 %%
 0-1.party, 1
 0.me.uk, 1
 0005pay.com, 1
 0010100.net, 1
 00220022.net, 1
 007-preisvergleich.de, 1
 00881919.com, 1
@@ -220,17 +220,16 @@ 247a.co.uk, 1
 247healthshop.com, 1
 247medplan.com, 1
 24hrs.shopping, 1
 24ip.com, 1
 24ip.de, 1
 24ip.fr, 1
 24kbet.com, 1
 256k.me, 1
-256pages.com, 1
 25reinyan25.net, 1
 2600edinburgh.org, 1
 2600hq.com, 1
 263.info, 1
 27728522.com, 1
 281180.de, 1
 28spots.net, 1
 29227.com, 1
@@ -1065,24 +1064,26 @@ ahoy.travel, 1
 ahoyconference.com, 1
 ahrq.gov, 0
 ahughes03.com, 1
 ahwah.net, 1
 ahxxm.com, 1
 ai-english.jp, 1
 aia.de, 1
 aibenzi.com, 1
+aicial.co.uk, 1
 aicial.com, 1
 aid-web.ch, 1
 aidanmontare.net, 1
 aide-valais.ch, 1
 aiden.link, 1
 aidhan.net, 1
 aie.de, 1
 aiesecarad.ro, 1
+aiforsocialmedia.com, 1
 aigcev.org, 1
 aigenpul.se, 1
 aiicy.org, 1
 aiida.se, 1
 aijsk.com, 1
 aikenorganics.com, 1
 aikenpromotions.com, 1
 aikido-club-limburg.de, 1
@@ -2231,17 +2232,16 @@ asec01.net, 1
 aseith.com, 1
 asepms.com, 1
 aserver.co, 1
 asgapps.co.za, 1
 asge-handel.de, 1
 ashleakunowski.com, 1
 ashleyadum.com, 1
 ashleyfoley.photography, 1
-ashleymedway.com, 1
 ashmportfolio.com, 1
 ashutoshmishra.org, 1
 asia-gazette.com, 1
 asia.dating, 1
 asialeonding.at, 1
 asianbet77.net, 1
 asianshops.net, 1
 asiesvenezuela.com, 1
@@ -2862,16 +2862,17 @@ barreaudenice.com, 1
 barrera.io, 1
 barrett.ag, 1
 barriofut.com, 1
 bars.kh.ua, 1
 barsashop.com.br, 1
 barsil.de, 1
 barslecht.com, 1
 barslecht.nl, 1
+barss.io, 1
 barta.me, 1
 bartel.ws, 1
 bartelt.name, 1
 bartlamboo.nl, 1
 bartula.de, 1
 bartzutow.xyz, 1
 baruch.me, 1
 bas.co.jp, 1
@@ -3364,16 +3365,17 @@ biaggeo.com, 1
 bianinapiccanovias.com, 1
 biaoqingfuhao.net, 1
 biaoqingfuhao.org, 1
 biasmath.es, 1
 biathloncup.ru, 1
 bible-maroc.com, 1
 bible.ru, 1
 bibleonline.ru, 1
+biblerhymes.com, 1
 bibliaon.com, 1
 biblio.wiki, 1
 biblioblog.fr, 1
 bibliomarkt.ch, 1
 biblionaut.net, 1
 bibliotekarien.se, 1
 biboumail.fr, 1
 bibuch.com, 1
@@ -4993,33 +4995,33 @@ casa-mea-inteligenta.ro, 1
 casa-su.casa, 1
 casadoarbitro.com.br, 1
 casadowifi.com.br, 1
 casajardininsecticidas.com, 1
 casalindamex.com, 1
 casamariposaspi.com, 1
 casamorelli.com.br, 1
 casapalla.com.br, 1
-casashopp.com.br, 1
 casasuara.com, 1
 casasuleletrodomesticos.com.br, 1
 casbia.info, 1
 casbuijs.nl, 1
 casburggraaf.com, 1
 casecurity.org, 1
 cash-4x4.com, 1
 cashati.com, 1
 cashew3d.com, 1
 cashfortulsahouses.com, 1
 cashless.fr, 1
 cashlink.de, 1
 cashlink.io, 1
 cashlogic.ch, 1
 cashmaxtexas.com, 1
 cashplk.com, 1
+casinolegal.pt, 1
 casinolistings.com, 1
 casinoreal.com, 1
 casjay.cloud, 1
 casjay.com, 1
 casjay.info, 1
 casjay.us, 1
 casjaygames.com, 1
 casperpanel.com, 1
@@ -5693,17 +5695,17 @@ cirfi.com, 1
 ciri.com.co, 1
 cirope.com, 1
 cirrohost.com, 1
 cirrus0.de, 1
 cirugiasplasticas.com.mx, 1
 cirujanooral.com, 1
 cirurgicagervasio.com.br, 1
 cirurgicalucena.com.br, 1
-ciscodude.net, 0
+ciscodude.net, 1
 cisoaid.com, 1
 ciss.ltd, 1
 cisy.me, 1
 citationgurus.com, 1
 citcuit.in, 1
 citimarinestore.com, 1
 citizen-cam.de, 1
 citizensbankal.com, 1
@@ -5751,16 +5753,17 @@ claimconnect.com, 1
 claimconnect.us, 1
 claimnote.com, 1
 clairegold.com, 1
 claireidrac.fr, 1
 clairescastles.co.uk, 1
 clanebouncycastles.com, 1
 clanrose.org.uk, 1
 clanthor.com, 1
+clanwarz.com, 1
 clapping-rhymes.com, 1
 claretandbanter.uk, 1
 clarkeaward.com, 1
 clarksgaragedoorrepair.com, 1
 clarkwinkelmann.com, 1
 clashersrepublic.com, 1
 class.com.au, 1
 classdojo.com, 1
@@ -6200,17 +6203,16 @@ comogene.com, 1
 comohacerelamoraunhombrenet.com, 1
 comopuededejardefumar.net, 1
 comoquitarlasestriasrapidamente.com, 1
 comorecuperaratumujerpdf.com, 1
 comp2go.com.au, 1
 compagnia-buffo.de, 1
 compagniemartin.com, 1
 comparatif-moto.fr, 1
-compareandrecycle.co.uk, 0
 compareandrecycle.com, 0
 compareinsurance.com.au, 1
 comparesoft.com, 1
 comparexcloudcenter.com, 1
 compartir.party, 1
 compassdirectportal.com, 1
 compeuphoria.com, 1
 comphare.nl, 1
@@ -6891,16 +6893,17 @@ cvv.cn, 1
 cw.center, 1
 cwagner.me, 1
 cwmart.in, 1
 cwningen.cymru, 0
 cwrcoding.com, 1
 cy.technology, 1
 cybbh.space, 1
 cyber-computer.club, 1
+cyber-konzept.de, 1
 cyber-perikarp.eu, 1
 cyber.cafe, 1
 cybercloud.cc, 1
 cyberdos.de, 1
 cyberduck.io, 1
 cybergrx.com, 1
 cyberguerrilla.info, 1
 cyberguerrilla.org, 1
@@ -7395,16 +7398,17 @@ dearnevalleybouncycastles.co.uk, 1
 deathy.ro, 1
 debie-usedcars.be, 1
 debigare.com, 1
 debitoutil.com, 1
 debitpaie.com, 1
 deborahmarinelli.eu, 1
 debron-ot.nl, 1
 debrusoft.ch, 1
+debt.com, 1
 debtrecycling.com.au, 1
 debuemon.com, 1
 debuis.nl, 1
 decalquai.ch, 1
 decentralizedweb.net, 1
 dechat.nl, 1
 decidetreatment.org, 1
 decock-usedcars.be, 1
@@ -9296,17 +9300,16 @@ energyatlas.com, 1
 energyaupair.se, 1
 energydrinkblog.de, 1
 energyelephant.com, 1
 energyled.com.br, 1
 enersaveapp.org, 1
 enersec.co.uk, 1
 enet-navigator.de, 1
 enfantsdelarue.ch, 1
-enfield-kitchens.co.uk, 1
 enflow.nl, 1
 enfoqueseguro.com, 1
 enfu.se, 1
 engarde.net, 1
 engaugetools.com, 1
 engelundlicht.ch, 1
 engg.ca, 1
 engineowning.com, 1
@@ -9444,17 +9447,16 @@ epostplus.li, 1
 eposwales.co.uk, 1
 eposyork.co.uk, 1
 eppelblei.lu, 1
 eppelpress.lu, 1
 eprofitacademy.com, 1
 epsilon.dk, 1
 epsorting.cz, 1
 epublibre.org, 1
-epulsar.ru, 1
 eq-serve.com, 1
 eqorg.com, 1
 equalcloud.com, 1
 equalparts.eu, 1
 equidam.com, 1
 equinecoaching.ca, 1
 equinox.io, 1
 equipandoloja.net.br, 1
@@ -9670,16 +9672,17 @@ etherpad.nl, 1
 ethicaldata.co.uk, 1
 ethicaltek.com, 1
 ethicsburg.gov, 1
 ethika.com, 1
 ethiobaba.com, 1
 ethiopian.dating, 1
 ethitter.com, 1
 ethosinfo.com, 1
+etidni.help, 1
 etienne.cc, 1
 etincelle.ml, 1
 etiquetaunica.com.br, 1
 etkaddict.com, 1
 etoile-usedcars.com, 1
 etre-soi.ch, 1
 etre-vivant.fr, 1
 etudesbibliques.fr, 1
@@ -10197,17 +10200,16 @@ fbijobs.gov, 1
 fbsbx.com, 1
 fburl.com, 1
 fc.media, 1
 fca-tools.com, 1
 fcapartsdb.com, 1
 fcburk.de, 1
 fcforum.net, 1
 fcitasc.com, 1
-fckd.net, 1
 fcprovadia.com, 1
 fdevs.ch, 1
 fdlibre.eu, 1
 fdsys.gov, 0
 feac.us, 1
 feaden.me, 1
 fearghus.org, 1
 fearsomegaming.com, 1
@@ -10679,17 +10681,17 @@ fmarchal.fr, 1
 fmdance.cl, 1
 fmi.gov, 1
 fminsight.net, 1
 fmodoux.biz, 1
 fmovies.fyi, 1
 fmovies.life, 1
 fnb-griffinonline.com, 1
 fndout.com, 1
-fniephaus.com, 1
+fniephaus.com, 0
 fnof.ch, 1
 fnordserver.eu, 1
 fnzc.co.nz, 1
 foairbus.fr, 1
 foairbussas.fr, 1
 focalforest.com, 1
 focanamoda.com.br, 1
 focusmark.jp, 0
@@ -11016,16 +11018,17 @@ freifunk-nrw.de, 1
 freifunk-remscheid.de, 1
 freimeldungen.de, 1
 freims.cc, 1
 freiwurst.net, 1
 freizeitplaza.de, 1
 frenchcreekcog.org, 1
 frenzel.dk, 1
 frequencebanane.ch, 1
+fresh-hotel.org, 1
 fresh-networks.net, 1
 fresh.co.il, 1
 freshcode.nl, 1
 freshdesigns.de, 1
 freshdns.nl, 1
 freshempire.gov, 1
 freshmaza.com, 1
 freshmaza.net, 1
@@ -11385,16 +11388,17 @@ gancedo.com.es, 1
 gandalfservice.com, 1
 gandalfthefeline.com, 1
 gandgliquors.com, 1
 ganhonet.com.br, 1
 ganztagplus.de, 1
 gapdirect.com, 1
 gapfa.org, 1
 gaptek.id, 0
+gar-nich.net, 0
 garage-door.pro, 1
 garage-leone.com, 1
 garage-meynard.com, 1
 garageenginuity.com, 1
 garagegoossens.be, 1
 garagemhermetica.org, 1
 garagevanhulle-used.be, 1
 garanteasy.com, 1
@@ -11594,17 +11598,17 @@ gensonline.eu, 1
 gentianes.ch, 1
 gentoo-blog.de, 1
 genusshotel-riegersburg.at, 1
 genuxtsg.com, 1
 genxbeats.com, 1
 genxnotes.com, 1
 geocommunicator.gov, 1
 geoffanderinmyers.com, 1
-geoffmyers.com, 1
+geoffmyers.com, 0
 geofox.org, 1
 geoip.fedoraproject.org, 1
 geoip.stg.fedoraproject.org, 1
 geolad.com, 0
 geometra.roma.it, 1
 geoport.al, 1
 george-orwell.com, 1
 georgehalachev.com, 1
@@ -11759,17 +11763,17 @@ gianttree.de, 1
 giardinaggio.milano.it, 1
 giardinaggio.napoli.it, 1
 gibraltar.at, 1
 gichigamigames.com, 1
 giddyaunt.net, 1
 giduv.com, 1
 gierds.de, 1
 giftedconsortium.com, 1
-giftking.nl, 1
+giftking.nl, 0
 giftmaniabrilhos.com.br, 1
 gifts365.co.uk, 1
 giftsn.com.sg, 0
 gifzilla.net, 0
 gig.ru, 0
 giga.nl, 1
 gigantism.com, 1
 gigawa.lt, 1
@@ -11865,17 +11869,16 @@ glazedmag.fr, 1
 glcastlekings.co.uk, 1
 gleanview.com, 1
 glencarbide.com, 1
 glendarraghbouncycastles.co.uk, 1
 glenhuntlyapartments.com.au, 1
 glidingshop.cz, 1
 glidingshop.de, 1
 glidingshop.eu, 1
-glittersjabloon.nl, 1
 glloq.org, 1
 glob-coin.com, 1
 global-lights.ma, 1
 global-office.com, 1
 global-village.koeln, 1
 global.hr, 1
 globalchokepoints.org, 1
 globalcomix.com, 1
@@ -13859,16 +13862,17 @@ ih8sn0w.com, 1
 ihacklabs.com, 1
 ihatethissh.it, 1
 ihc.im, 1
 ihkk.net, 1
 ihollaback.org, 1
 ihopeit.works, 1
 ihostup.net, 1
 ihrhost.com, 1
+iideaz.org, 1
 iilin.com, 0
 iiong.com, 0
 iirii.com, 1
 iix.se, 1
 ijohan.nl, 1
 ijsclubtilburg.nl, 1
 ijunohana.jp, 1
 ik-life.com, 1
@@ -15673,17 +15677,16 @@ kaomojis.net, 1
 kap-genial.de, 1
 kapiorr.duckdns.org, 1
 kapo.info, 1
 kappit.dk, 1
 kapseli.net, 1
 kaptadata.com, 1
 kaptamedia.com, 1
 kara-fabian.com, 1
-karabas.com, 1
 karabijnhaken.nl, 0
 karachi.dating, 1
 karamna.com, 1
 karamomo.net, 1
 karanjthakkar.com, 1
 karanlyons.com, 1
 karasik.by, 1
 karateka.org, 1
@@ -15703,17 +15706,16 @@ karlis-kavacis.id.lv, 1
 karlsmithmn.org, 1
 karlstabo.se, 1
 karlzotter.com, 1
 karmaassurance.ca, 1
 karmabaker.com, 1
 karmaflux.com, 1
 karmainsurance.ca, 1
 karmaplatform.com, 1
-karmaspa.se, 1
 karmic.com, 1
 karn.nu, 1
 karneid.info, 1
 karpanhellas.com, 0
 karsofsystems.com, 1
 kartacha.com, 1
 kartec.com, 1
 kartonmodellbau.org, 1
@@ -16599,33 +16601,34 @@ labfox.de, 1
 labiblioafronebrulepas.com, 1
 labobooks.com, 1
 laboiteanem.fr, 1
 labouncycastlehire.co.uk, 1
 labourreedevergheas.fr, 1
 laboutiquemarocaineduconvoyeur.com, 1
 laboutiquemarocaineduconvoyeur.ma, 1
 laboxfaitsoncinema.com, 1
-labradorpuppiesforsalebyregisteredlabradorbreeders.com, 1
+labradorpuppiesforsalebyregisteredlabradorbreeders.com, 0
 lacasa.fr, 1
 lacasabelucci.com, 1
 lacasseroy.com, 1
 lacaveducinquantenaire.com, 1
 lacetsroses.ch, 1
 lachainedesentrepreneurs.fr, 1
 lachawoj.de, 1
 lachlan.com, 1
 lacicloud.net, 1
 lacigf.org, 1
 laclaque.ch, 1
 lacledelareussite.com, 1
 lacledeslan.com, 0
 lacledor.ch, 1
 laclefdor.ch, 1
 lacliniquefinanciere.com, 1
+lacuevadechauvet.com, 1
 lacyc3.eu, 1
 ladbroke.net, 1
 lady-2.jp, 1
 ladybugjam.com, 1
 ladylikeit.com, 1
 laextra.mx, 1
 lafayette-rushford.com, 1
 lafeemam.fr, 1
@@ -17214,16 +17217,17 @@ liderwalut.pl, 0
 lidl-gewinnspiel.de, 1
 lidl-holidays.com, 1
 lidl-menubox.ch, 1
 lidl-selection.at, 1
 lidl-shop.be, 1
 lidl-shop.cz, 1
 lidl-shop.nl, 1
 lidl-tour.ro, 1
+lidlovajogurteka.si, 1
 lidogr.com, 1
 lidong.me, 1
 lidow.eu, 1
 liduan.com, 1
 liduan.net, 1
 liebel.org, 1
 liebestarot.at, 1
 lied8.eu, 1
@@ -17362,16 +17366,17 @@ linvx.org, 1
 linx.li, 1
 linx.net, 1
 linxmind.eu, 1
 linzgau.de, 1
 lionlyrics.com, 1
 lionsdeal.com, 1
 lipartydepot.com, 1
 lipex.com, 1
+lipo.lol, 1
 lipoabaltimore.org, 1
 liqd.net, 1
 liquid.cz, 1
 liquidcomm.net, 1
 liquidhost.co, 1
 liquidinternet.co, 1
 liquidradio.pro, 1
 lirion.de, 1
@@ -17528,17 +17533,16 @@ lockpicks.se, 1
 lockr.io, 1
 locksport.org.nz, 1
 locomore.com, 1
 lodash.com, 0
 lodgesdureynou.fr, 1
 loeildansledoigt.fr, 1
 loenshotel.de, 1
 loew.de, 1
-loforo.com, 1
 lofttravel.com, 1
 log.my, 0
 logaldeveloper.com, 1
 loganmarchione.com, 1
 loganparkneighborhood.org, 1
 logbook.ch, 1
 logbot.info, 1
 logcat.info, 1
@@ -17699,17 +17703,16 @@ loveismore.pl, 0
 loveismore.ru, 0
 loveismore.sk, 0
 loveisourweapon.com, 1
 lovelens.ch, 1
 lovelens.li, 1
 lovelive-anime.tk, 1
 lovelive.us, 1
 lovelivewiki.com, 1
-lovelytimes.net, 1
 lovemomiji.com, 1
 lovemysafetynet.com, 1
 lovenwishes.com, 1
 loveph.one, 1
 lover-bg.com, 1
 loveread-ec.appspot.com, 1
 loverepublic.ru, 1
 lovesmagical.com, 1
@@ -18311,16 +18314,17 @@ marjoleindens.be, 1
 mark-a-hydrant.com, 1
 mark-semmler.de, 1
 markepps.com, 1
 market.android.com, 1
 marketgot.com, 1
 marketing-advertising.eu, 1
 marketing.limited, 1
 marketingdesignu.cz, 1
+marketingvirtuales.com, 1
 marketio.co, 1
 marketizare.ro, 1
 marketnsight.com, 1
 markhaehnel.de, 1
 markido.com, 1
 markitzeroday.com, 1
 marko-fenster24.de, 1
 markoh.co.uk, 1
@@ -19522,16 +19526,17 @@ monolithinteractive.com, 1
 monoseis-monotica.gr, 1
 monothesis.com, 1
 monotsuku.com, 1
 monpc-pro.fr, 1
 monpermismoto.com, 1
 monpermisvoiture.com, 1
 monpetitforfait.com, 1
 monpetitmobile.com, 1
+monsieurbureau.com, 1
 monsieursavon.ch, 1
 monstermashentertainments.co.uk, 1
 montage-kaika.de, 1
 montagne-tendance.ch, 1
 montanana.com, 1
 montand.com, 1
 montarfotoaki.com, 1
 montas.io, 1
@@ -19749,16 +19754,17 @@ msmails.de, 1
 msnr.net, 1
 msp66.de, 1
 mspnocsupport.com, 1
 msquadrat.de, 1
 mssys.de, 1
 mstdn.blue, 1
 mstdn.club, 1
 mstdn.fr, 1
+mstdn.io, 1
 mstdn.nl, 1
 mstdn.onl, 1
 mstiles92.com, 1
 msuess.me, 1
 msuna.net, 1
 msv-limpezas.pt, 1
 msx.org, 1
 msz-fotografie.de, 1
@@ -20020,17 +20026,16 @@ mygpsite.com, 1
 mygreatjob.eu, 1
 mygreatjobs.de, 1
 mygretchen.de, 1
 mygrotto.org, 1
 mygymer.ch, 1
 myhatsuden.jp, 1
 myhealthreviews.com, 1
 myhostname.net, 1
-myicare.org, 1
 myimds.com, 1
 myimmitracker.com, 1
 myjumparoo.co.uk, 1
 mykeepsake.xyz, 0
 myki.co, 1
 mykontool.de, 1
 mylatestnews.org, 1
 mylawyer.be, 1
@@ -20833,17 +20838,16 @@ nikksno.io, 1
 niklas.pw, 1
 niklasbabel.com, 1
 nikobradshaw.com, 1
 nikolasbradshaw.com, 1
 nikolasgrottendieck.com, 1
 nikomo.fi, 0
 nikz.in, 1
 nil.gs, 1
-nil2.org, 1
 nilrem.org, 1
 nimeshjm.com, 1
 ninaforever.com, 1
 ninarinaldi.com.br, 1
 ninaundandre.de, 1
 ninchat.com, 1
 ninebennink.com, 1
 ninebytes.xyz, 1
@@ -22721,17 +22725,16 @@ pinscher.com.br, 1
 pinterest.at, 1
 pinterest.co.uk, 1
 pinterest.com, 1
 pinterest.de, 1
 pinterest.engineering, 1
 pinterest.ie, 1
 pinterest.info, 1
 pinterest.jp, 1
-pioche.ovh, 1
 pipenny.net, 1
 piranil.com, 1
 pirate.trade, 1
 pirateahoy.eu, 1
 piratebayproxy.tf, 1
 piraten-basel.ch, 1
 piraten-bv-nord.de, 1
 piratepay.io, 1
@@ -23136,17 +23139,16 @@ postdarwinian.com, 1
 postdarwinism.com, 1
 postdeck.de, 1
 posteo.de, 0
 posters.win, 1
 postfalls-naturopathic.com, 1
 postfinance.ch, 1
 postmatescode.com, 1
 postn.eu, 1
-postpot.co.kr, 1
 posttigo.com, 1
 potatiz.com, 1
 potatofrom.space, 0
 potatopro.com, 1
 potbar.com, 1
 potbox.com, 1
 potentialproject.com, 1
 pothe.com, 1
@@ -24055,17 +24057,16 @@ ray-home.de, 1
 ray-works.de, 1
 raycarruthersphotography.co.uk, 1
 rayiris.com, 1
 raykitchenware.com, 1
 raymcbride.com, 1
 raymd.de, 1
 raymii.org, 1
 raymondelooff.nl, 1
-raymondjcox.com, 0
 rayworks.de, 1
 razberry.kr, 1
 rb-china.net, 1
 rbensch.com, 1
 rbflote.lv, 1
 rbltracker.com, 1
 rbmafrica.co.za, 1
 rbnet.xyz, 1
@@ -24741,17 +24742,16 @@ rockfax.com, 1
 rockhounds.co.za, 1
 rockinronniescastles.co.uk, 1
 rockitinflatables.co.uk, 1
 rockpesado.com.br, 1
 rockthebabybump.com, 1
 rockuse.com.br, 1
 rockymountainspice.com, 1
 rocssti.net, 1
-roddis.net, 1
 rodehutskors.net, 1
 rodeobull.biz, 1
 rodeohire.com, 1
 rodeosales.co.uk, 1
 rodevlaggen.nl, 1
 rodichi.net, 1
 rodolfo.gs, 1
 rodomonte.org, 1
@@ -25256,22 +25256,20 @@ samifar.in, 1
 samizdat.cz, 1
 samkelleher.com, 1
 saml-gateway.org, 1
 samm.com.au, 1
 sammyjohnson.com, 0
 sammyservers.com, 1
 samp.im, 1
 samsonova.de, 1
-samsungmobile.it, 1
 samsungphonegenerator.xyz, 1
 samsungxoa.com, 1
 samuelkeeley.com, 1
 samuellaulhau.fr, 1
-samui-samui.de, 1
 samuirehabcenter.com, 1
 samvanderkris.com, 1
 samwilberforce.com, 1
 samwu.tw, 0
 samyerkes.com, 1
 sana-store.com, 1
 sana-store.cz, 1
 sana-store.sk, 1
@@ -27609,17 +27607,16 @@ steveborba.com, 1
 stevedesmond.ca, 1
 stevedoggett.com, 1
 stevegrav.es, 1
 steven-bennett.com, 1
 stevenberg.net, 1
 stevengoodpaster.com, 1
 stevenhumphrey.uk, 1
 stevenkwan.me, 1
-stevenroddis.com, 1
 stevens.se, 1
 stevenski.com, 0
 steventress.com, 1
 stevenwooding.com, 1
 stevenz.science, 1
 stevenz.xyz, 1
 stevesdrivingschooltyneside.com, 1
 stewartswines.com, 1
@@ -27894,16 +27891,17 @@ summitmasters.net, 1
 sumthing.com, 1
 sunbritetv.com, 1
 sundanceusa.com, 1
 sundaycooks.com, 1
 sundayfundayjapan.com, 1
 suneilpatel.com, 1
 sunfeathers.net, 1
 sunfireshop.com.br, 1
+sunflyer.cn, 0
 sunfox.cz, 1
 sunfulong.me, 1
 sunjaydhama.com, 1
 sunn.ie, 1
 sunsetwx.com, 1
 sunshinesf.org, 1
 sunsmartresorts.com, 1
 sunstar.bg, 1
@@ -28402,17 +28400,16 @@ team-azerty.com, 1
 team-bbd.com, 1
 team-pancake.eu, 1
 team3482.com, 1
 teamassists.com, 1
 teambeam.at, 1
 teambeam.ch, 1
 teambeam.com, 1
 teambeam.de, 1
-teambeoplay.co.uk, 1
 teambition.com, 1
 teamcombat.com, 1
 teamdaylo.xyz, 1
 teamliquidpro.com, 1
 teammathics.com, 1
 teamnetsol.com, 1
 teamnissannorthparts.com, 1
 teamnorthgermany.de, 1
@@ -30174,16 +30171,17 @@ ukrigging.net, 1
 ukwct.org.uk, 1
 ulabox.com, 1
 ulalau.com, 1
 uli-eckhardt.de, 1
 ullah.se, 1
 ulrik.moe, 1
 ulti.gq, 1
 ultieme.be, 0
+ultima-ratio.at, 1
 ultimateanu.com, 1
 ultimatemafia.net, 1
 ultratechlp.com, 1
 umassfive.coop, 1
 umbricht.li, 1
 umenlisam.com, 1
 umisonoda.com, 1
 umkmjogja.com, 1
@@ -30374,46 +30372,43 @@ urban-karuizawa.co.jp, 1
 urban.melbourne, 1
 urbanesecurity.com, 1
 urbanfi.sh, 1
 urbanguerillas.de, 1
 urbanietz-immobilien.de, 1
 urbanmelbourne.info, 1
 urbannewsservice.com, 1
 urbansparrow.in, 1
-urbanstylestaging.com, 1
 urbanwildlifealliance.org, 1
 urbexdk.nl, 1
 urcentral.com, 1
 urcentral.net, 1
 urcentral.org, 1
 ureka.org, 1
 urgences-valais.ch, 1
 uripura.de, 1
 urist1011.ru, 1
 url.cab, 1
 url.fi, 1
 url.fm, 1
 url.rw, 1
-url0.eu, 1
 urlachershop.com.br, 1
 urlaub-leitner.at, 1
 urlscan.io, 1
 urology.wiki, 1
 urown.net, 1
 ursa-minor-beta.org, 1
 ursae.co, 1
 urspringer.de, 1
 ursuslibris.hu, 1
 urukproject.org, 1
 usaa.com, 0
 usabackground.com, 1
 usability.gov, 1
 usaestaonline.com, 1
-usafuelservice.com, 1
 usajobs.com, 1
 usajobs.gov, 1
 usakitchensandflooring.com, 1
 usap.gov, 0
 usbcraft.com, 1
 usbevents.co.uk, 1
 uscloud.nl, 1
 uscp8.com, 1
@@ -31064,17 +31059,17 @@ vorderklier.de, 1
 vorkbaard.nl, 1
 vorlicek.de, 1
 vorlif.org, 1
 vorm2.com, 1
 vorodevops.com, 1
 vos-fleurs.ch, 1
 vos-fleurs.com, 1
 vosgym.jp, 1
-voshod.org, 0
+voshod.org, 1
 vosky.fr, 1
 vostronet.com, 1
 voter-info.uk, 1
 votercircle.com, 1
 voterstartingpoint.uk, 1
 votocek.cz, 1
 votockova.cz, 1
 votoot.com, 1
@@ -32250,17 +32245,17 @@ www.intercom.io, 1
 www.irccloud.com, 0
 www.lastpass.com, 0
 www.linode.com, 0
 www.lookout.com, 0
 www.makeyourlaws.org, 1
 www.messenger.com, 1
 www.mydigipass.com, 0
 www.mylookout.com, 0
-www.noisebridge.net, 0
+www.noisebridge.net, 1
 www.opsmate.com, 1
 www.paypal.com, 0
 www.python.org, 1
 www.re, 1
 www.rememberthemilk.com, 1
 www.sb, 1
 www.simbolo.co.uk, 0
 www.simple.com, 0
@@ -32529,17 +32524,16 @@ xn--zettlmeil-n1a.de, 1
 xn5.de, 1
 xnaas.info, 1
 xnet-x.net, 1
 xng.io, 1
 xninja.xyz, 1
 xnode.org, 1
 xntrik.wtf, 1
 xo.tc, 1
-xoda.pw, 1
 xolphin.nl, 1
 xombitgames.com, 1
 xombitmusic.com, 1
 xonn.de, 1
 xotika.tv, 1
 xp2.de, 1
 xpd.se, 1
 xpenology-fr.net, 1
@@ -32730,16 +32724,17 @@ yinfor.com, 1
 ying299.com, 1
 ying299.net, 1
 yinga.ga, 1
 yingatech.com, 1
 yinglinda.love, 1
 yinlei.org, 1
 yiyuanzhong.com, 1
 yiz96.com, 1
+yjsoft.me, 1
 yjsw.sh.cn, 1
 yksityisyydensuoja.fi, 1
 ylilauta.org, 1
 ylinternal.com, 1
 ylk.io, 1
 ymarion.de, 1
 ymblaw.com, 1
 ympl.de, 1
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -91,8 +91,18 @@ try:
             - 'sm-asan-linux64'
             - 'sm-mozjs-sys-linux64'
             - 'sm-msan-linux64'
             - 'sm-fuzzing-linux64'
             - 'sm-rust-bindings-linux64'
         'win32':
             - 'sm-plain-win32'
             - 'sm-compacting-win32'
+
+scriptworker:
+    # See additional configuration in taskcluster/taskgraph/util/scriptworker.py
+    scope-prefix: 'project:releng'
+    worker-types:
+        'scriptworker-prov-v1/signing-linux-v1':
+            - 'project:releng:signing:cert:release-signing'
+            - 'project:releng:signing:cert:nightly-signing'
+        'scriptworker-prov-v1/depsigning':
+            - 'project:releng:signing:cert:dep-signing'
--- a/taskcluster/ci/push-apk-breakpoint/kind.yml
+++ b/taskcluster/ci/push-apk-breakpoint/kind.yml
@@ -15,16 +15,22 @@ jobs:
     android-push-apk-breakpoint/opt:
         description: PushApk breakpoint. Decides whether APK should be published onto Google Play Store
         attributes:
             build_platform: android-nightly
             nightly: true
         shipping-phase: ship
         shipping-product: fennec
         worker-type:  # see transforms
+            by-project:
+                mozilla-central: aws-provisioner-v1/taskcluster-generic
+                mozilla-beta: null-provisioner/human-breakpoint
+                mozilla-release: null-provisioner/human-breakpoint
+                maple: aws-provisioner-v1/taskcluster-generic
+                default: invalid/invalid
         worker:
             implementation: push-apk-breakpoint
         treeherder:
             symbol: pub(Br)
             platform: Android/opt
             tier: 2
             kind: other
         run-on-projects: ['mozilla-central', 'mozilla-beta', 'mozilla-release']
--- a/taskcluster/ci/push-apk/kind.yml
+++ b/taskcluster/ci/push-apk/kind.yml
@@ -24,19 +24,37 @@ jobs:
       worker-type:
          by-project:
             mozilla-central: scriptworker-prov-v1/pushapk-v1
             mozilla-beta: scriptworker-prov-v1/pushapk-v1
             mozilla-release: scriptworker-prov-v1/pushapk-v1
             default: scriptworker-prov-v1/dep-pushapk
       worker:
          upstream-artifacts:  # see transforms
-         google-play-track:  # see transforms
+         google-play-track:
+            # See https://github.com/mozilla-releng/pushapkscript#aurora-beta-release-vs-alpha-beta-production
+            by-project:
+               mozilla-central: 'beta'
+               mozilla-beta: 'rollout'
+               mozilla-release: 'rollout'
+               default: 'invalid'
          implementation: push-apk
-         commit:  # see transforms
+         commit:
+            by-project:
+               mozilla-central: true
+               mozilla-beta: true
+               mozilla-release: true
+               default: false
+         rollout-percentage:
+            by-project:
+               # XXX Please make sure to change PUSH_APK_GOOGLE_PLAY_TRACT to
+               # 'rollout' if you add a new supported project
+               mozilla-release: 10
+               mozilla-beta: 10
+               default: null
       requires: all-resolved
       scopes:  # see transforms
       treeherder:
          symbol: pub(gp)
          platform: Android/opt
          tier: 2
          kind: other
       run-on-projects: ['mozilla-central', 'mozilla-beta', 'mozilla-release', 'maple']
--- a/taskcluster/ci/test/reftest.yml
+++ b/taskcluster/ci/test/reftest.yml
@@ -59,16 +59,17 @@ jsreftest:
     chunks:
         by-test-platform:
             android-4.3-arm7-api-16/debug: 100
             android.*: 40
             windows.*: 2
             windows10-64-ccov/debug: 5
             linux64-ccov/.*: 5
             linux64-qr/.*: 4
+            linux32/debug: 5
             macosx.*: 2
             default: 3
     e10s:
         by-test-platform:
             linux64-jsdcov/opt: false
             windows10-64/debug: both
             default: true
     max-run-time:
--- a/taskcluster/docs/taskgraph.rst
+++ b/taskcluster/docs/taskgraph.rst
@@ -171,31 +171,33 @@ using simple parameterized values, as fo
 
 ``{"task-reference": "string containing <dep-name>"}``
     The task definition may contain "task references" of this form.  These will
     be replaced during the optimization step, with the appropriate taskId for
     the named dependency substituted for ``<dep-name>`` in the string.
     Multiple labels may be substituted in a single string, and ``<<>`` can be
     used to escape a literal ``<``.
 
+.. _taskgraph-graph-config:
+
 Graph Configuration
 -------------------
 
 There are several configuration settings that are pertain to the entire
 taskgraph. These are specified in :file:`config.yml` at the root of the
 taskgraph configuration (typically :file:`taskcluster/ci`). The available
 settings are documented inline in `taskcluster/taskgraph/config.py
 <https://dxr.mozilla.org/mozilla-central/source/taskcluster/taskgraph/config.py>`_.
 
 .. _taskgraph-trust-domain:
 
 Trust Domain
 ------------
 
 When publishing and signing releases, that tasks verify their definition and
 all upstream tasks come from a decision task based on a trusted tree. (see
-`chain-of-trust verification <http://scriptworker.readthedocs.io/en/latest/chain_of_trust.html>`).
+`chain-of-trust verification <http://scriptworker.readthedocs.io/en/latest/chain_of_trust.html>`_).
 Firefox and Thunderbird share the taskgraph code and in particular, they have
 separate taskgraph configurations and in particular distinct decision tasks.
 Although they use identical docker images and toolchains, in order to track the
 province of those artifacts when verifying the chain of trust, they use
 different index paths to cache those artifacts. The ``trust-domain`` graph
 configuration controls the base path for indexing these cached artifacts.
--- a/taskcluster/taskgraph/config.py
+++ b/taskcluster/taskgraph/config.py
@@ -21,13 +21,19 @@ graph_config_schema = Schema({
     },
     Required('try'): {
         # We have a few platforms for which we want to do some "extra" builds, or at
         # least build-ish things.  Sort of.  Anyway, these other things are implemented
         # as different "platforms".  These do *not* automatically ride along with "-p
         # all"
         Required('ridealong-builds', default={}): {basestring: [basestring]},
     },
+    Required('scriptworker'): {
+        # Prefix to add to scopes controlling scriptworkers
+        Required('scope-prefix'): basestring,
+        # Mapping of scriptworker types to scopes they accept
+        Required('worker-types'): {basestring: [basestring]}
+    },
 })
 
 
 def validate_graph_config(config):
     return validate_schema(graph_config_schema, config, "Invalid graph configuration:")
--- a/taskcluster/taskgraph/transforms/checksums_signing.py
+++ b/taskcluster/taskgraph/transforms/checksums_signing.py
@@ -5,17 +5,20 @@
 Transform the checksums signing task into an actual task description.
 """
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.schema import validate_schema, Schema
-from taskgraph.util.scriptworker import get_signing_cert_scope
+from taskgraph.util.scriptworker import (
+    get_signing_cert_scope,
+    get_worker_type_for_scope,
+)
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Any, Required, Optional
 
 # Voluptuous uses marker objects as dictionary *keys*, but they are not
 # comparable, so we cast all of the keys back to regular strings
 task_description_schema = {str(k): v for k, v in task_description_schema.schema.iteritems()}
 
 transforms = TransformSequence()
@@ -84,28 +87,23 @@ def make_checksums_signing_description(c
             ],
             "formats": ["gpg"]
         }]
 
         signing_cert_scope = get_signing_cert_scope(config)
         task = {
             'label': label,
             'description': description,
-            'worker-type': _generate_worker_type(signing_cert_scope),
+            'worker-type': get_worker_type_for_scope(config, signing_cert_scope),
             'worker': {'implementation': 'scriptworker-signing',
                        'upstream-artifacts': upstream_artifacts,
                        'max-run-time': 3600},
             'scopes': [
                 signing_cert_scope,
                 "project:releng:signing:format:gpg"
             ],
             'dependencies': dependencies,
             'attributes': attributes,
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'treeherder': treeherder,
         }
 
         yield task
-
-
-def _generate_worker_type(signing_cert_scope):
-    worker_type = 'depsigning' if 'dep-signing' in signing_cert_scope else 'signing-linux-v1'
-    return 'scriptworker-prov-v1/{}'.format(worker_type)
--- a/taskcluster/taskgraph/transforms/push_apk.py
+++ b/taskcluster/taskgraph/transforms/push_apk.py
@@ -7,18 +7,17 @@ Transform the push-apk kind into an actu
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 import functools
 
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.transforms.task import task_description_schema
 from taskgraph.util.schema import optionally_keyed_by, resolve_keyed_by, Schema
-from taskgraph.util.scriptworker import get_push_apk_scope, get_push_apk_track, \
-    get_push_apk_commit_option, get_push_apk_rollout_percentage
+from taskgraph.util.scriptworker import get_push_apk_scope
 from taskgraph.util.push_apk import fill_labels_tranform, validate_jobs_schema_transform_partial, \
     validate_dependent_tasks_transform, delete_non_required_fields_transform, generate_dependencies
 
 from voluptuous import Optional, Required
 
 
 transforms = TransformSequence()
 
@@ -57,22 +56,29 @@ transforms.add(validate_jobs_schema_tran
 transforms.add(validate_dependent_tasks_transform)
 
 
 @transforms.add
 def make_task_description(config, jobs):
     for job in jobs:
         job['dependencies'] = generate_dependencies(job['dependent-tasks'])
         job['worker']['upstream-artifacts'] = generate_upstream_artifacts(job['dependencies'])
-        job['worker']['google-play-track'] = get_push_apk_track(config)
-        job['worker']['commit'] = get_push_apk_commit_option(config)
+        resolve_keyed_by(
+            job, 'worker.google-play-track', item_name=job['name'],
+            project=config.params['project']
+        )
+        resolve_keyed_by(
+            job, 'worker.commit', item_name=job['name'],
+            project=config.params['project']
+        )
 
-        rollout_percentage = get_push_apk_rollout_percentage(config)
-        if rollout_percentage is not None:
-            job['worker']['rollout-percentage'] = rollout_percentage
+        resolve_keyed_by(
+            job, 'worker.rollout-percentage', item_name=job['name'],
+            project=config.params['project']
+        )
 
         job['scopes'] = [get_push_apk_scope(config)]
 
         resolve_keyed_by(
             job, 'worker-type', item_name=job['name'],
             project=config.params['project']
         )
 
--- a/taskcluster/taskgraph/transforms/push_apk_breakpoint.py
+++ b/taskcluster/taskgraph/transforms/push_apk_breakpoint.py
@@ -6,18 +6,17 @@ Transform the push-apk-breakpoint kind i
 """
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 import functools
 
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.transforms.task import task_description_schema
-from taskgraph.util.schema import Schema
-from taskgraph.util.scriptworker import get_push_apk_breakpoint_worker_type
+from taskgraph.util.schema import optionally_keyed_by, resolve_keyed_by, Schema
 from taskgraph.util.push_apk import fill_labels_tranform, validate_jobs_schema_transform_partial, \
     validate_dependent_tasks_transform, delete_non_required_fields_transform, generate_dependencies
 from voluptuous import Required
 
 
 transforms = TransformSequence()
 
 # Voluptuous uses marker objects as dictionary *keys*, but they are not
@@ -27,17 +26,17 @@ task_description_schema = {str(k): v for
 push_apk_breakpoint_description_schema = Schema({
     # the dependent task (object) for this beetmover job, used to inform beetmover.
     Required('dependent-tasks'): object,
     Required('name'): basestring,
     Required('label'): basestring,
     Required('description'): basestring,
     Required('job-from'): basestring,
     Required('attributes'): object,
-    Required('worker-type'): None,
+    Required('worker-type'): optionally_keyed_by('project', basestring),
     Required('worker'): object,
     Required('treeherder'): object,
     Required('run-on-projects'): list,
     Required('deadline-after'): basestring,
     Required('shipping-phase'): task_description_schema['shipping-phase'],
     Required('shipping-product'): task_description_schema['shipping-product'],
 })
 
@@ -52,20 +51,22 @@ transforms.add(validate_jobs_schema_tran
 transforms.add(validate_dependent_tasks_transform)
 
 
 @transforms.add
 def make_task_description(config, jobs):
     for job in jobs:
         job['dependencies'] = generate_dependencies(job['dependent-tasks'])
 
-        worker_type = get_push_apk_breakpoint_worker_type(config)
-        job['worker-type'] = worker_type
+        resolve_keyed_by(
+            job, 'worker-type', item_name=job['name'],
+            project=config.params['project']
+        )
 
-        job['worker']['payload'] = {} if 'human' in worker_type else {
+        job['worker']['payload'] = {} if 'human' in job['worker-type'] else {
                 'image': 'ubuntu:16.10',
                 'command': [
                     '/bin/bash',
                     '-c',
                     'echo "Dummy task while while bug 1351664 is implemented"'
                 ],
                 'maxRunTime': 600,
             }
--- a/taskcluster/taskgraph/transforms/repackage_signing.py
+++ b/taskcluster/taskgraph/transforms/repackage_signing.py
@@ -5,17 +5,20 @@
 Transform the repackage signing task into an actual task description.
 """
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.schema import validate_schema, Schema
-from taskgraph.util.scriptworker import get_signing_cert_scope_per_platform
+from taskgraph.util.scriptworker import (
+    get_signing_cert_scope_per_platform,
+    get_worker_type_for_scope,
+)
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Required, Optional
 
 # Voluptuous uses marker objects as dictionary *keys*, but they are not
 # comparable, so we cast all of the keys back to regular strings
 task_description_schema = {str(k): v for k, v in task_description_schema.schema.iteritems()}
 
 transforms = TransformSequence()
@@ -116,25 +119,20 @@ def make_repackage_signing_description(c
                     ],
                     "formats": ["sha2signcodestub"]
                 })
                 scopes.append("project:releng:signing:format:sha2signcodestub")
 
         task = {
             'label': label,
             'description': description,
-            'worker-type': _generate_worker_type(signing_cert_scope),
+            'worker-type': get_worker_type_for_scope(config, signing_cert_scope),
             'worker': {'implementation': 'scriptworker-signing',
                        'upstream-artifacts': upstream_artifacts,
                        'max-run-time': 3600},
             'scopes': scopes,
             'dependencies': dependencies,
             'attributes': attributes,
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'treeherder': treeherder,
         }
 
         yield task
-
-
-def _generate_worker_type(signing_cert_scope):
-    worker_type = 'depsigning' if 'dep-signing' in signing_cert_scope else 'signing-linux-v1'
-    return 'scriptworker-prov-v1/{}'.format(worker_type)
--- a/taskcluster/taskgraph/transforms/signing.py
+++ b/taskcluster/taskgraph/transforms/signing.py
@@ -5,17 +5,20 @@
 Transform the signing task into an actual task description.
 """
 
 from __future__ import absolute_import, print_function, unicode_literals
 
 from taskgraph.transforms.base import TransformSequence
 from taskgraph.util.attributes import copy_attributes_from_dependent_job
 from taskgraph.util.schema import validate_schema, Schema
-from taskgraph.util.scriptworker import get_signing_cert_scope_per_platform
+from taskgraph.util.scriptworker import (
+    get_signing_cert_scope_per_platform,
+    get_worker_type_for_scope,
+)
 from taskgraph.transforms.task import task_description_schema
 from voluptuous import Any, Required, Optional
 
 
 # Voluptuous uses marker objects as dictionary *keys*, but they are not
 # comparable, so we cast all of the keys back to regular strings
 task_description_schema = {str(k): v for k, v in task_description_schema.schema.iteritems()}
 
@@ -130,17 +133,17 @@ def make_task_description(config, jobs):
 
         signing_cert_scope = get_signing_cert_scope_per_platform(
             dep_job.attributes.get('build_platform'), is_nightly, config
         )
 
         task = {
             'label': label,
             'description': description,
-            'worker-type': _generate_worker_type(signing_cert_scope),
+            'worker-type': get_worker_type_for_scope(config, signing_cert_scope),
             'worker': {'implementation': 'scriptworker-signing',
                        'upstream-artifacts': job['upstream-artifacts'],
                        'max-run-time': 3600},
             'scopes': [signing_cert_scope] + signing_format_scopes,
             'dependencies': {job['depname']: dep_job.label},
             'attributes': attributes,
             'run-on-projects': dep_job.attributes.get('run_on_projects'),
             'treeherder': treeherder,
@@ -152,13 +155,8 @@ def make_task_description(config, jobs):
 
 def _generate_treeherder_platform(dep_th_platform, build_platform, build_type):
     actual_build_type = 'pgo' if '-pgo' in build_platform else build_type
     return '{}/{}'.format(dep_th_platform, actual_build_type)
 
 
 def _generate_treeherder_symbol(is_nightly):
     return 'tc(Ns)' if is_nightly else 'tc(Bs)'
-
-
-def _generate_worker_type(signing_cert_scope):
-    worker_type = 'depsigning' if 'dep-signing' in signing_cert_scope else 'signing-linux-v1'
-    return 'scriptworker-prov-v1/{}'.format(worker_type)
--- a/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
@@ -576,17 +576,17 @@ task_description_schema = Schema({
 
             # Artifact is optional to run the task
             Optional('optional', default=False): bool,
         }],
 
         # "Invalid" is a noop for try and other non-supported branches
         Required('google-play-track'): Any('production', 'beta', 'alpha', 'rollout', 'invalid'),
         Required('commit'): bool,
-        Optional('rollout-percentage'): int,
+        Optional('rollout-percentage'): Any(int, None),
     }),
 })
 
 TC_TREEHERDER_SCHEMA_URL = 'https://github.com/taskcluster/taskcluster-treeherder/' \
                            'blob/master/schemas/task-treeherder-config.yml'
 
 
 UNKNOWN_GROUP_NAME = "Treeherder group {} has no name; add it to taskcluster/ci/config.yml"
--- a/taskcluster/taskgraph/util/scriptworker.py
+++ b/taskcluster/taskgraph/util/scriptworker.py
@@ -7,16 +7,18 @@ Scriptworker uses certain scopes to dete
 Certain scopes are restricted by branch in chain of trust verification, and are
 checked again at the script level.  This file provides functions to adjust
 these scopes automatically by project; this makes pushing to try, forking a
 project branch, and merge day uplifts more user friendly.
 
 In the future, we may adjust scopes by other settings as well, e.g. different
 scopes for `push-to-candidates` rather than `push-to-releases`, even if both
 happen on mozilla-beta and mozilla-release.
+
+Additional configuration is found in the :ref:`graph config <taskgraph-graph-config>`.
 """
 from __future__ import absolute_import, print_function, unicode_literals
 import functools
 import json
 import os
 
 
 # constants {{{1
@@ -48,30 +50,30 @@ SIGNING_SCOPE_ALIAS_TO_PROJECT = [[
         'mozilla-beta',
         'mozilla-release',
     ])
 ]]
 
 """Map the signing scope aliases to the actual scopes.
 """
 SIGNING_CERT_SCOPES = {
-    'all-release-branches': 'project:releng:signing:cert:release-signing',
-    'all-nightly-branches': 'project:releng:signing:cert:nightly-signing',
-    'default': 'project:releng:signing:cert:dep-signing',
+    'all-release-branches': 'signing:cert:release-signing',
+    'all-nightly-branches': 'signing:cert:nightly-signing',
+    'default': 'signing:cert:dep-signing',
 }
 
 DEVEDITION_SIGNING_SCOPE_ALIAS_TO_PROJECT = [[
     'beta', set([
         'mozilla-beta',
     ])
 ]]
 
 DEVEDITION_SIGNING_CERT_SCOPES = {
-    'beta': 'project:releng:signing:cert:nightly-signing',
-    'default': 'project:releng:signing:cert:dep-signing',
+    'beta': 'signing:cert:nightly-signing',
+    'default': 'signing:cert:dep-signing',
 }
 
 """Map beetmover scope aliases to sets of projects.
 """
 BEETMOVER_SCOPE_ALIAS_TO_PROJECT = [[
     'all-nightly-branches', set([
         'mozilla-central',
         'mozilla-beta',
@@ -86,17 +88,17 @@ BEETMOVER_SCOPE_ALIAS_TO_PROJECT = [[
 
 """The set of all beetmover release target tasks.
 
 Used for both `BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK` and `get_release_build_number`
 """
 BEETMOVER_CANDIDATES_TARGET_TASKS = set([
     'promote_fennec',
     'promote_firefox',
-    'promote_devedition'
+    'promote_devedition',
 ])
 BEETMOVER_PUSH_TARGET_TASKS = set([
     'push_fennec',
     'ship_fennec',
     'push_firefox',
     'ship_firefox',
     'push_devedition',
     'ship_devedition',
@@ -123,34 +125,34 @@ BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK = [
 ], [
     'all-push-tasks', BEETMOVER_PUSH_TARGET_TASKS
 ]]
 
 """Map the beetmover scope aliases to the actual scopes.
 """
 BEETMOVER_BUCKET_SCOPES = {
     'all-candidates-tasks': {
-        'all-release-branches': 'project:releng:beetmover:bucket:release',
+        'all-release-branches': 'beetmover:bucket:release',
     },
     'all-push-tasks': {
-        'all-release-branches': 'project:releng:beetmover:bucket:release',
+        'all-release-branches': 'beetmover:bucket:release',
     },
     'all-nightly-tasks': {
-        'all-nightly-branches': 'project:releng:beetmover:bucket:nightly',
+        'all-nightly-branches': 'beetmover:bucket:nightly',
     },
-    'default': 'project:releng:beetmover:bucket:dep',
+    'default': 'beetmover:bucket:dep',
 }
 
 """Map the beetmover tasks aliases to the actual action scopes.
 """
 BEETMOVER_ACTION_SCOPES = {
-    'all-candidates-tasks': 'project:releng:beetmover:action:push-to-candidates',
-    'all-push-tasks': 'project:releng:beetmover:action:push-to-releases',
-    'all-nightly-tasks': 'project:releng:beetmover:action:push-to-nightly',
-    'default': 'project:releng:beetmover:action:push-to-staging',
+    'all-candidates-tasks': 'beetmover:action:push-to-candidates',
+    'all-push-tasks': 'beetmover:action:push-to-releases',
+    'all-nightly-tasks': 'beetmover:action:push-to-nightly',
+    'default': 'beetmover:action:push-to-staging',
 }
 
 
 """Map the beetmover tasks aliases to phases.
 """
 PHASES = {
     'all-candidates-tasks': 'promote',
     'all-push-tasks': 'push',
@@ -177,64 +179,64 @@ BALROG_SCOPE_ALIAS_TO_PROJECT = [[
     'esr', set([
         'mozilla-esr52',
     ])
 ]]
 
 """Map the balrog scope aliases to the actual scopes.
 """
 BALROG_SERVER_SCOPES = {
-    'nightly': 'project:releng:balrog:server:nightly',
-    'aurora': 'project:releng:balrog:server:aurora',
-    'beta': 'project:releng:balrog:server:beta',
-    'release': 'project:releng:balrog:server:release',
-    'esr': 'project:releng:balrog:server:esr',
-    'default': 'project:releng:balrog:server:dep',
+    'nightly': 'balrog:server:nightly',
+    'aurora': 'balrog:server:aurora',
+    'beta': 'balrog:server:beta',
+    'release': 'balrog:server:release',
+    'esr': 'balrog:server:esr',
+    'default': 'balrog:server:dep',
 }
 
 """Map the balrog scope aliases to the actual channel scopes.
 """
 BALROG_CHANNEL_SCOPES = {
     'nightly': [
-        'project:releng:balrog:channel:nightly',
-        'project:releng:balrog:channel:nightly-old-id',
-        'project:releng:balrog:channel:aurora'
+        'balrog:channel:nightly',
+        'balrog:channel:nightly-old-id',
+        'balrog:channel:aurora',
     ],
     'aurora': [
-        'project:releng:balrog:channel:aurora'
+        'balrog:channel:aurora',
     ],
     'beta': [
-        'project:releng:balrog:channel:beta',
-        'project:releng:balrog:channel:beta-localtest',
-        'project:releng:balrog:channel:beta-cdntest'
+        'balrog:channel:beta',
+        'balrog:channel:beta-localtest',
+        'balrog:channel:beta-cdntest',
     ],
     'release': [
-        'project:releng:balrog:channel:release',
-        'project:releng:balrog:channel:release-localtest',
-        'project:releng:balrog:channel:release-cdntest'
+        'balrog:channel:release',
+        'balrog:channel:release-localtest',
+        'balrog:channel:release-cdntest',
     ],
     'esr': [
-        'project:releng:balrog:channel:esr',
-        'project:releng:balrog:channel:esr-localtest',
-        'project:releng:balrog:channel:esr-cdntest'
+        'balrog:channel:esr',
+        'balrog:channel:esr-localtest',
+        'balrog:channel:esr-cdntest',
     ],
     'default': [
-        'project:releng:balrog:channel:nightly',
-        'project:releng:balrog:channel:nightly-old-id',
-        'project:releng:balrog:channel:aurora'
-        'project:releng:balrog:channel:beta',
-        'project:releng:balrog:channel:beta-localtest',
-        'project:releng:balrog:channel:beta-cdntest',
-        'project:releng:balrog:channel:release',
-        'project:releng:balrog:channel:release-localtest',
-        'project:releng:balrog:channel:release-cdntest',
-        'project:releng:balrog:channel:esr',
-        'project:releng:balrog:channel:esr-localtest',
-        'project:releng:balrog:channel:esr-cdntest'
-    ]
+        'balrog:channel:nightly',
+        'balrog:channel:nightly-old-id',
+        'balrog:channel:aurora',
+        'balrog:channel:beta',
+        'balrog:channel:beta-localtest',
+        'balrog:channel:beta-cdntest',
+        'balrog:channel:release',
+        'balrog:channel:release-localtest',
+        'balrog:channel:release-cdntest',
+        'balrog:channel:esr',
+        'balrog:channel:esr-localtest',
+        'balrog:channel:esr-cdntest',
+    ],
 }
 
 
 PUSH_APK_SCOPE_ALIAS_TO_PROJECT = [[
     'central', set([
         'mozilla-central',
     ])
 ], [
@@ -244,204 +246,210 @@ PUSH_APK_SCOPE_ALIAS_TO_PROJECT = [[
 ], [
     'release', set([
         'mozilla-release',
     ])
 ]]
 
 
 PUSH_APK_SCOPES = {
-    'central': 'project:releng:googleplay:aurora',
-    'beta': 'project:releng:googleplay:beta',
-    'release': 'project:releng:googleplay:release',
-    'default': 'project:releng:googleplay:invalid',
-}
-
-# See https://github.com/mozilla-releng/pushapkscript#aurora-beta-release-vs-alpha-beta-production
-PUSH_APK_GOOGLE_PLAY_TRACT = {
-    'central': 'beta',
-    'beta': 'rollout',
-    'release': 'rollout',
-    'default': 'invalid',
-}
-
-PUSH_APK_BREAKPOINT_WORKER_TYPE = {
-    'central': 'aws-provisioner-v1/taskcluster-generic',
-    'beta': 'null-provisioner/human-breakpoint',
-    'release': 'null-provisioner/human-breakpoint',
-    'maple': 'aws-provisioner-v1/taskcluster-generic',
-    'default': 'invalid/invalid',
-}
-
-PUSH_APK_COMMIT_OPTION = {
-    'central': True,
-    'beta': True,
-    'maple': False,
-    'release': True,
-    'default': False,
-}
-
-PUSH_APK_ROLLOUT_PERCENTAGE = {
-    # XXX Please make sure to change PUSH_APK_GOOGLE_PLAY_TRACT to 'rollout' if you add a new
-    # supported project
-    'release': 10,
-    'beta': 10,
-    'default': None,
+    'central': 'googleplay:aurora',
+    'beta': 'googleplay:beta',
+    'release': 'googleplay:release',
+    'default': 'googleplay:invalid',
 }
 
 
+def add_scope_prefix(config, scope):
+    """
+    Prepends the scriptworker scope prefix from the :ref:`graph config
+    <taskgraph-graph-config>`.
+
+    Args:
+        config (TransformConfig): The configuration for the kind being transformed.
+        scope (string): The suffix of the scope
+
+    Returns:
+        string: the scope to use.
+    """
+    return "{prefix}:{scope}".format(
+        prefix=config.graph_config['scriptworker']['scope-prefix'],
+        scope=scope,
+    )
+
+
+def with_scope_prefix(f):
+    """
+    Wraps a function, calling :py:func:`add_scope_prefix` on the result of
+    calling the wrapped function.
+
+    Args:
+        f (callable): A function that takes a ``config`` and some keyword
+            arguments, and returns a scope suffix.
+
+    Returns:
+        callable: the wrapped function
+    """
+    @functools.wraps(f)
+    def wrapper(config, **kwargs):
+        scope_or_scopes = f(config, **kwargs)
+        if isinstance(scope_or_scopes, list):
+            return map(functools.partial(add_scope_prefix, config), scope_or_scopes)
+        else:
+            return add_scope_prefix(config, scope_or_scopes)
+
+    return wrapper
+
+
 # scope functions {{{1
-def get_scope_from_project(alias_to_project_map, alias_to_scope_map, config):
+@with_scope_prefix
+def get_scope_from_project(config, alias_to_project_map, alias_to_scope_map):
     """Determine the restricted scope from `config.params['project']`.
 
     Args:
+        config (TransformConfig): The configuration for the kind being transformed.
         alias_to_project_map (list of lists): each list pair contains the
             alias and the set of projects that match.  This is ordered.
         alias_to_scope_map (dict): the alias alias to scope
-        config (dict): the task config that defines the project.
 
     Returns:
         string: the scope to use.
     """
     for alias, projects in alias_to_project_map:
         if config.params['project'] in projects and alias in alias_to_scope_map:
             return alias_to_scope_map[alias]
     return alias_to_scope_map['default']
 
 
-def get_scope_from_target_method(alias_to_tasks_map, alias_to_scope_map, config):
+@with_scope_prefix
+def get_scope_from_target_method(config, alias_to_tasks_map, alias_to_scope_map):
     """Determine the restricted scope from `config.params['target_tasks_method']`.
 
     Args:
+        config (TransformConfig): The configuration for the kind being transformed.
         alias_to_tasks_map (list of lists): each list pair contains the
             alias and the set of target methods that match. This is ordered.
         alias_to_scope_map (dict): the alias alias to scope
-        config (dict): the task config that defines the target task method.
 
     Returns:
         string: the scope to use.
     """
     for alias, tasks in alias_to_tasks_map:
         if config.params['target_tasks_method'] in tasks and alias in alias_to_scope_map:
             return alias_to_scope_map[alias]
     return alias_to_scope_map['default']
 
 
-def get_scope_from_target_method_and_project(alias_to_tasks_map, alias_to_project_map,
-                                             aliases_to_scope_map, config):
+@with_scope_prefix
+def get_scope_from_target_method_and_project(config, alias_to_tasks_map,
+                                             alias_to_project_map, aliases_to_scope_map):
     """Determine the restricted scope from both `target_tasks_method` and `project`.
 
     On certain branches, we'll need differing restricted scopes based on
     `target_tasks_method`.  However, we can't key solely on that, since that
     `target_tasks_method` might be run on an unprivileged branch.  This method
     checks both.
 
     Args:
+        config (TransformConfig): The configuration for the kind being transformed.
         alias_to_tasks_map (list of lists): each list pair contains the
             alias and the set of target methods that match. This is ordered.
         alias_to_project_map (list of lists): each list pair contains the
             alias and the set of projects that match.  This is ordered.
         aliases_to_scope_map (dict of dicts): the task alias to project alias to scope
-        config (dict): the task config that defines the target task method and project.
 
     Returns:
         string: the scope to use.
     """
     project = config.params['project']
     target = config.params['target_tasks_method']
     for alias1, tasks in alias_to_tasks_map:
         for alias2, projects in alias_to_project_map:
             if target in tasks and project in projects and \
                     aliases_to_scope_map.get(alias1, {}).get(alias2):
                 return aliases_to_scope_map[alias1][alias2]
     return aliases_to_scope_map['default']
 
 
+def get_phase_from_target_method(config, alias_to_tasks_map, alias_to_phase_map):
+    """Determine the phase from `config.params['target_tasks_method']`.
+
+    Args:
+        config (TransformConfig): The configuration for the kind being transformed.
+        alias_to_tasks_map (list of lists): each list pair contains the
+            alias and the set of target methods that match. This is ordered.
+        alias_to_phase_map (dict): the alias to phase map
+
+    Returns:
+        string: the phase to use.
+    """
+    for alias, tasks in alias_to_tasks_map:
+        if config.params['target_tasks_method'] in tasks and alias in alias_to_phase_map:
+            return alias_to_phase_map[alias]
+    return alias_to_phase_map['default']
+
+
 get_signing_cert_scope = functools.partial(
     get_scope_from_project,
-    SIGNING_SCOPE_ALIAS_TO_PROJECT,
-    SIGNING_CERT_SCOPES
+    alias_to_project_map=SIGNING_SCOPE_ALIAS_TO_PROJECT,
+    alias_to_scope_map=SIGNING_CERT_SCOPES,
 )
 
 get_devedition_signing_cert_scope = functools.partial(
     get_scope_from_project,
-    DEVEDITION_SIGNING_SCOPE_ALIAS_TO_PROJECT,
-    DEVEDITION_SIGNING_CERT_SCOPES
+    alias_to_project_map=DEVEDITION_SIGNING_SCOPE_ALIAS_TO_PROJECT,
+    alias_to_scope_map=DEVEDITION_SIGNING_CERT_SCOPES,
 )
 
 get_beetmover_bucket_scope = functools.partial(
     get_scope_from_target_method_and_project,
-    BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK,
-    BEETMOVER_SCOPE_ALIAS_TO_PROJECT,
-    BEETMOVER_BUCKET_SCOPES
+    alias_to_tasks_map=BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK,
+    alias_to_project_map=BEETMOVER_SCOPE_ALIAS_TO_PROJECT,
+    aliases_to_scope_map=BEETMOVER_BUCKET_SCOPES,
 )
 
 get_beetmover_action_scope = functools.partial(
     get_scope_from_target_method,
-    BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK,
-    BEETMOVER_ACTION_SCOPES
+    alias_to_tasks_map=BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK,
+    alias_to_scope_map=BEETMOVER_ACTION_SCOPES,
 )
 
 get_phase = functools.partial(
-    get_scope_from_target_method,
-    BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK,
-    PHASES
+    get_phase_from_target_method,
+    alias_to_tasks_map=BEETMOVER_SCOPE_ALIAS_TO_TARGET_TASK,
+    alias_to_phase_map=PHASES,
 )
 
 get_balrog_server_scope = functools.partial(
     get_scope_from_project,
-    BALROG_SCOPE_ALIAS_TO_PROJECT,
-    BALROG_SERVER_SCOPES
+    alias_to_project_map=BALROG_SCOPE_ALIAS_TO_PROJECT,
+    alias_to_scope_map=BALROG_SERVER_SCOPES,
 )
 
 get_balrog_channel_scopes = functools.partial(
     get_scope_from_project,
-    BALROG_SCOPE_ALIAS_TO_PROJECT,
-    BALROG_CHANNEL_SCOPES
+    alias_to_project_map=BALROG_SCOPE_ALIAS_TO_PROJECT,
+    alias_to_scope_map=BALROG_CHANNEL_SCOPES,
 )
 
 get_push_apk_scope = functools.partial(
     get_scope_from_project,
-    PUSH_APK_SCOPE_ALIAS_TO_PROJECT,
-    PUSH_APK_SCOPES
-)
-
-get_push_apk_track = functools.partial(
-    get_scope_from_project,
-    PUSH_APK_SCOPE_ALIAS_TO_PROJECT,
-    PUSH_APK_GOOGLE_PLAY_TRACT
-)
-
-get_push_apk_breakpoint_worker_type = functools.partial(
-    get_scope_from_project,
-    PUSH_APK_SCOPE_ALIAS_TO_PROJECT,
-    PUSH_APK_BREAKPOINT_WORKER_TYPE
-)
-
-get_push_apk_commit_option = functools.partial(
-    get_scope_from_project,
-    PUSH_APK_SCOPE_ALIAS_TO_PROJECT,
-    PUSH_APK_COMMIT_OPTION
-)
-
-get_push_apk_rollout_percentage = functools.partial(
-    get_scope_from_project,
-    PUSH_APK_SCOPE_ALIAS_TO_PROJECT,
-    PUSH_APK_ROLLOUT_PERCENTAGE
+    alias_to_project_map=PUSH_APK_SCOPE_ALIAS_TO_PROJECT,
+    alias_to_scope_map=PUSH_APK_SCOPES,
 )
 
 
 # release_config {{{1
 def get_release_config(config):
     """Get the build number and version for a release task.
 
     Currently only applies to beetmover tasks.
 
     Args:
-        config (dict): the task config that defines the target task method.
+        config (TransformConfig): The configuration for the kind being transformed.
 
     Returns:
         dict: containing both `build_number` and `version`.  This can be used to
             update `task.payload`.
     """
     release_config = {}
 
     partial_updates = os.environ.get("PARTIAL_UPDATES", "")
@@ -478,9 +486,34 @@ def get_release_config(config):
 
 
 def get_signing_cert_scope_per_platform(build_platform, is_nightly, config):
     if 'devedition' in build_platform:
         return get_devedition_signing_cert_scope(config)
     elif is_nightly:
         return get_signing_cert_scope(config)
     else:
-        return 'project:releng:signing:cert:dep-signing'
+        return add_scope_prefix(config, 'signing:cert:dep-signing')
+
+
+def get_worker_type_for_scope(config, scope):
+    """Get the scriptworker type that will accept the given scope.
+
+    Args:
+        config (TransformConfig): The configuration for the kind being transformed.
+        scope (string): The scope being used.
+
+    Returns:
+        string: The worker-type to use.
+    """
+    for worker_type, scopes in config.graph_config['scriptworker']['worker-types'].items():
+        if scope in scopes:
+            return worker_type
+    raise RuntimeError(
+        "Unsupported scriptworker scope {scope}. (supported scopes: {available_scopes})".format(
+            scope=scope,
+            available_scopes=sorted(
+                scope
+                for scopes in config.graph_config['scriptworker']['worker-types'].values()
+                for scope in scopes
+            ),
+        )
+    )
--- a/testing/mozharness/scripts/android_emulator_unittest.py
+++ b/testing/mozharness/scripts/android_emulator_unittest.py
@@ -662,16 +662,17 @@ class AndroidEmulatorTest(BlobUploadMixi
         # low bogomips can be a good predictor of that condition.
         for line in cpuinfo.split('\n'):
             m = re.match("BogoMIPS.*: (\d*)", line)
             if m:
                 bogomips = int(m.group(1))
                 if bogomips < 250:
                     self.fatal('INFRA-ERROR: insufficient Android bogomips (%d < 250)' % bogomips,
                                EXIT_STATUS_DICT[TBPL_RETRY])
+                self.info("Found Android bogomips: %d" % bogomips)
                 break
 
     def verify_emulator(self):
         '''
         Check to see if the emulator can be contacted via adb.
         If any communication attempt fails, kill the emulator, re-launch, and re-check.
         '''
         self.mkdir_p(self.query_abs_dirs()['abs_blob_upload_dir'])
--- a/toolkit/components/extensions/webrequest/StreamFilterParent.cpp
+++ b/toolkit/components/extensions/webrequest/StreamFilterParent.cpp
@@ -131,19 +131,22 @@ StreamFilterParent::Create(dom::ContentP
   auto& webreq = WebRequestService::GetSingleton();
 
   RefPtr<nsAtom> addonId = NS_Atomize(aAddonId);
   nsCOMPtr<nsITraceableChannel> channel = webreq.GetTraceableChannel(aChannelId, addonId, aContentParent);
 
   RefPtr<nsHttpChannel> chan = do_QueryObject(channel);
   NS_ENSURE_TRUE(chan, false);
 
+  auto channelPid = chan->ProcessId();
+  NS_ENSURE_TRUE(channelPid, false);
+
   Endpoint<PStreamFilterParent> parent;
   Endpoint<PStreamFilterChild> child;
-  nsresult rv = PStreamFilter::CreateEndpoints(chan->ProcessId(),
+  nsresult rv = PStreamFilter::CreateEndpoints(channelPid,
                                                aContentParent ? aContentParent->OtherPid()
                                                               : base::GetCurrentProcId(),
                                                &parent, &child);
   NS_ENSURE_SUCCESS(rv, false);
 
   if (!chan->AttachStreamFilter(Move(parent))) {
     return false;
   }