Merge from autoland to mozilla-central. a=merge FIREFOX_BETA_101_BASE
authorSebastian Hengst <archaeopteryx@coole-files.de>
Mon, 02 May 2022 11:41:50 +0200
changeset 615744 822ee75b26834841c2b1cd11d64d061205c8166f
parent 615735 26454513fcd66a543a3380f6f5a6b7d8b0614441 (current diff)
parent 615743 5c6aec9e1ee9cea006227fb68f3ff5de4e3b2bb0 (diff)
child 615745 463b3c968d28de99d0fb76e0254e94024a7b5d9b
child 615756 c9289b9d2705b2f93fe3cda5f29f35f15ec5771e
push id39636
push userarchaeopteryx@coole-files.de
push dateMon, 02 May 2022 09:43:29 +0000
treeherdermozilla-central@822ee75b2683 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone101.0a1
first release with
nightly linux32
822ee75b2683 / 101.0a1 / 20220502094329 / files
nightly linux64
822ee75b2683 / 101.0a1 / 20220502094329 / files
nightly mac
822ee75b2683 / 101.0a1 / 20220502094329 / files
nightly win32
822ee75b2683 / 101.0a1 / 20220502094329 / files
nightly win64
822ee75b2683 / 101.0a1 / 20220502094329 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge from autoland to mozilla-central. a=merge
--- a/dom/l10n/DOMLocalization.cpp
+++ b/dom/l10n/DOMLocalization.cpp
@@ -172,19 +172,20 @@ void DOMLocalization::GetAttributes(Elem
   if (aElement.GetAttr(kNameSpaceID_None, nsGkAtoms::datal10nargs, l10nArgs)) {
     ConvertStringToL10nArgs(l10nArgs, aResult.mArgs.SetValue(), aRv);
   }
 }
 
 already_AddRefed<Promise> DOMLocalization::TranslateFragment(nsINode& aNode,
                                                              ErrorResult& aRv) {
   Sequence<OwningNonNull<Element>> elements;
-
   GetTranslatables(aNode, elements, aRv);
-
+  if (NS_WARN_IF(aRv.Failed())) {
+    return nullptr;
+  }
   return TranslateElements(elements, aRv);
 }
 
 /**
  * A Promise Handler used to apply the result of
  * a call to Localization::FormatMessages onto the list
  * of translatable elements.
  */
@@ -304,16 +305,17 @@ already_AddRefed<Promise> DOMLocalizatio
     nsXULPrototypeDocument* aProto, ErrorResult& aRv) {
   Sequence<OwningUTF8StringOrL10nIdArgs> l10nKeys;
   RefPtr<ElementTranslationHandler> nativeHandler =
       new ElementTranslationHandler(this, aProto);
   nsTArray<nsCOMPtr<Element>>& domElements = nativeHandler->Elements();
   domElements.SetCapacity(aElements.Length());
 
   if (!mGlobal) {
+    aRv.Throw(NS_ERROR_UNEXPECTED);
     return nullptr;
   }
 
   for (auto& domElement : aElements) {
     if (!domElement->HasAttr(kNameSpaceID_None, nsGkAtoms::datal10nid)) {
       continue;
     }
 
@@ -398,16 +400,19 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTING_ADDREF(L10nRootTranslationHandler)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(L10nRootTranslationHandler)
 
 already_AddRefed<Promise> DOMLocalization::TranslateRoots(ErrorResult& aRv) {
   nsTArray<RefPtr<Promise>> promises;
 
   for (nsINode* root : mRoots) {
     RefPtr<Promise> promise = TranslateFragment(*root, aRv);
+    if (MOZ_UNLIKELY(aRv.Failed())) {
+      return nullptr;
+    }
 
     // If the root is an element, we'll add a native handler
     // to set root info (language, direction etc.) on it
     // once the localization finishes.
     if (root->IsElement()) {
       RefPtr<L10nRootTranslationHandler> nativeHandler =
           new L10nRootTranslationHandler(root->AsElement());
       promise->AppendNativeHandler(nativeHandler);
--- a/dom/l10n/L10nMutations.cpp
+++ b/dom/l10n/L10nMutations.cpp
@@ -192,35 +192,33 @@ NS_INTERFACE_MAP_END
 NS_IMPL_CYCLE_COLLECTING_ADDREF(L10nMutationFinalizationHandler)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(L10nMutationFinalizationHandler)
 
 void L10nMutations::FlushPendingTranslations() {
   if (!mDOMLocalization) {
     return;
   }
 
-  ErrorResult rv;
-
   Sequence<OwningNonNull<Element>> elements;
 
   for (auto& elem : mPendingElements) {
     if (!elem->HasAttr(kNameSpaceID_None, nsGkAtoms::datal10nid)) {
       continue;
     }
 
     if (!elements.AppendElement(*elem, fallible)) {
       mozalloc_handle_oom(0);
     }
   }
 
   mPendingElementsHash.Clear();
   mPendingElements.Clear();
 
-  RefPtr<Promise> promise = mDOMLocalization->TranslateElements(elements, rv);
-
+  RefPtr<Promise> promise =
+      mDOMLocalization->TranslateElements(elements, IgnoreErrors());
   if (promise) {
     RefPtr<PromiseNativeHandler> l10nMutationFinalizationHandler =
         new L10nMutationFinalizationHandler(
             mDOMLocalization->GetParentObject());
     promise->AppendNativeHandler(l10nMutationFinalizationHandler);
   }
 }
 
--- a/taskcluster/ci/fetch/browsertime.yml
+++ b/taskcluster/ci/fetch/browsertime.yml
@@ -131,8 +131,38 @@ mac64-chromedriver-100:
     description: 'Mac64 chromedriver v100'
     fetch:
         type: static-url
         artifact-name: chromedriver_mac64_100.tar.zst
         add-prefix: '100'
         url: https://chromedriver.storage.googleapis.com/100.0.4896.20/chromedriver_mac64.zip
         sha256: 7ba9c672cdb6d51a422d0c353d058abc0c640f9cfd83214ff6dd2cba54e03b89
         size: 8318466
+
+win32-chromedriver-101:
+    description: 'Win32 chromedriver v101'
+    fetch:
+        type: static-url
+        artifact-name: chromedriver_win32_101.tar.zst
+        add-prefix: '101'
+        url: https://chromedriver.storage.googleapis.com/101.0.4951.41/chromedriver_win32.zip
+        sha256: ee3367aefa0f730c99d3389908bd9e43f37058ff43088cea3646a1b8238cb763
+        size: 6344296
+
+linux64-chromedriver-101:
+    description: 'Linux64 chromedriver v101'
+    fetch:
+        type: static-url
+        artifact-name: chromedriver_linux64_101.tar.zst
+        add-prefix: '101'
+        url: https://chromedriver.storage.googleapis.com/101.0.4951.41/chromedriver_linux64.zip
+        sha256: 99511b54102cf52ab22bf5dcc5a46c4a75d9ed4ca2b1d06b99a006782a33507f
+        size: 6206401
+
+mac64-chromedriver-101:
+    description: 'Mac64 chromedriver v101'
+    fetch:
+        type: static-url
+        artifact-name: chromedriver_mac64_101.tar.zst
+        add-prefix: '101'
+        url: https://chromedriver.storage.googleapis.com/101.0.4951.41/chromedriver_mac64.zip
+        sha256: 942b828dbe83b1a01f78a03912246ee8e95f9b298290b905a70179330828fe26
+        size: 8260169
--- a/taskcluster/gecko_taskgraph/transforms/test/other.py
+++ b/taskcluster/gecko_taskgraph/transforms/test/other.py
@@ -336,36 +336,41 @@ def setup_browsertime(config, tasks):
         cd_fetches = {
             "android.*": [
                 "linux64-chromedriver-87",
             ],
             "linux.*": [
                 "linux64-chromedriver-98",
                 "linux64-chromedriver-99",
                 "linux64-chromedriver-100",
+                "linux64-chromedriver-101",
             ],
             "macosx.*": [
                 "mac64-chromedriver-98",
                 "mac64-chromedriver-99",
                 "mac64-chromedriver-100",
+                "mac64-chromedriver-101",
             ],
             "windows.*aarch64.*": [
                 "win32-chromedriver-98",
                 "win32-chromedriver-99",
                 "win32-chromedriver-100",
+                "win32-chromedriver-101",
             ],
             "windows.*-32.*": [
                 "win32-chromedriver-98",
                 "win32-chromedriver-99",
                 "win32-chromedriver-100",
+                "win32-chromedriver-101",
             ],
             "windows.*-64.*": [
                 "win32-chromedriver-98",
                 "win32-chromedriver-99",
                 "win32-chromedriver-100",
+                "win32-chromedriver-101",
             ],
         }
 
         chromium_fetches = {
             "linux.*": ["linux64-chromium"],
             "macosx.*": ["mac-chromium"],
             "windows.*aarch64.*": ["win32-chromium"],
             "windows.*-32.*": ["win32-chromium"],
--- a/testing/web-platform/tests/webdriver/tests/bidi/browsing_context/close/invalid.py
+++ b/testing/web-platform/tests/webdriver/tests/bidi/browsing_context/close/invalid.py
@@ -1,15 +1,15 @@
 import pytest
 import webdriver.bidi.error as error
 
 pytestmark = pytest.mark.asyncio
 
 
-@pytest.mark.parametrize("value", [False, 42, {}, []])
+@pytest.mark.parametrize("value", [None, False, 42, {}, []])
 async def test_params_context_invalid_type(bidi_session, value):
     with pytest.raises(error.InvalidArgumentException):
         await bidi_session.browsing_context.close(context=value)
 
 
 async def test_params_context_invalid_value(bidi_session):
     with pytest.raises(error.NoSuchFrameException):
         await bidi_session.browsing_context.close(context="foo")