From 9bf89f8de1c0537fc4f4417c075eda5529124891 Mon Sep 17 00:00:00 2001
From: Apertis CI <devel@lists.apertis.org>
Date: Wed, 11 Nov 2020 05:46:34 +0000
Subject: [PATCH 1/2] Import Upstream version 78.4.1esr

---
 browser/config/version.txt                    |  2 +-
 browser/config/version_display.txt            |  2 +-
 config/milestone.txt                          |  2 +-
 js/src/jit/IonBuilder.cpp                     | 29 +++++--------------
 js/src/jit/IonIC.cpp                          |  9 ++++++
 sourcestamp.txt                               |  4 +--
 taskcluster/ci/condprof/kind.yml              |  2 +-
 taskcluster/ci/config.yml                     |  5 ----
 taskcluster/ci/iris/kind.yml                  |  2 +-
 .../release-balrog-submit-toplevel/kind.yml   |  2 +-
 taskcluster/ci/source-test/python.yml         |  2 +-
 taskcluster/ci/webrender/kind.yml             |  4 +--
 .../taskgraph/transforms/balrog_submit.py     |  2 +-
 taskcluster/taskgraph/transforms/task.py      |  5 ++--
 taskcluster/taskgraph/transforms/tests.py     |  2 +-
 taskcluster/taskgraph/util/scriptworker.py    |  8 ++++-
 16 files changed, 40 insertions(+), 42 deletions(-)

diff --git a/browser/config/version.txt b/browser/config/version.txt
index f87c7cf35a8..ed0524643cf 100644
--- a/browser/config/version.txt
+++ b/browser/config/version.txt
@@ -1 +1 @@
-78.4.0
+78.4.1
diff --git a/browser/config/version_display.txt b/browser/config/version_display.txt
index f628b39e7c2..efa4620b30b 100644
--- a/browser/config/version_display.txt
+++ b/browser/config/version_display.txt
@@ -1 +1 @@
-78.4.0esr
+78.4.1esr
diff --git a/config/milestone.txt b/config/milestone.txt
index 8d2d9a3d2a9..a01d3a0b9bb 100644
--- a/config/milestone.txt
+++ b/config/milestone.txt
@@ -10,4 +10,4 @@
 # hardcoded milestones in the tree from these two files.
 #--------------------------------------------------------
 
-78.4.0
+78.4.1
diff --git a/js/src/jit/IonBuilder.cpp b/js/src/jit/IonBuilder.cpp
index 545c1b06d99..04796e62069 100644
--- a/js/src/jit/IonBuilder.cpp
+++ b/js/src/jit/IonBuilder.cpp
@@ -5210,31 +5210,18 @@ MDefinition* IonBuilder::createThisScripted(MDefinition* callee,
   // explicit operation in the bytecode, we cannot use resumeAfter().
   // Getters may not override |prototype| fetching, so this operation is
   // indeed idempotent.
-  // - First try an idempotent property cache.
-  // - Upon failing idempotent property cache, we can't use a non-idempotent
-  //   cache, therefore we fallback to CallGetProperty
   //
-  // Note: both CallGetProperty and GetPropertyCache can trigger a GC,
-  //       and thus invalidation.
-  MInstruction* getProto;
-  if (!invalidatedIdempotentCache()) {
-    MConstant* id = constant(StringValue(names().prototype));
-    MGetPropertyCache* getPropCache =
-        MGetPropertyCache::New(alloc(), newTarget, id,
-                               /* monitored = */ false);
-    getPropCache->setIdempotent();
-    getProto = getPropCache;
-  } else {
-    MCallGetProperty* callGetProp =
-        MCallGetProperty::New(alloc(), newTarget, names().prototype);
-    callGetProp->setIdempotent();
-    getProto = callGetProp;
-  }
-  current->add(getProto);
+  // Note: GetPropertyCache can trigger a GC, and thus invalidation.
+  MConstant* id = constant(StringValue(names().prototype));
+  MGetPropertyCache* getPropCache =
+      MGetPropertyCache::New(alloc(), newTarget, id,
+                              /* monitored = */ false);
+  getPropCache->setIdempotent();
+  current->add(getPropCache);
 
   // Create this from prototype
   MCreateThisWithProto* createThis =
-      MCreateThisWithProto::New(alloc(), callee, newTarget, getProto);
+      MCreateThisWithProto::New(alloc(), callee, newTarget, getPropCache);
   current->add(createThis);
 
   return createThis;
diff --git a/js/src/jit/IonIC.cpp b/js/src/jit/IonIC.cpp
index 1d5591d0dbf..a0e4bd2acd6 100644
--- a/js/src/jit/IonIC.cpp
+++ b/js/src/jit/IonIC.cpp
@@ -215,6 +215,15 @@ bool IonGetPropertyIC::update(JSContext* cx, HandleScript outerScript,
       Invalidate(cx, outerScript);
     }
 
+    // IonBuilder::createScriptedThis does not use InvalidedIdempotentCache
+    // flag so prevent bailout-loop by disabling Ion for the script.
+    MOZ_ASSERT(ic->kind() == CacheKind::GetProp);
+    if (idVal.toString()->asAtom().asPropertyName() == cx->names().prototype) {
+      if (val.isObject() && val.toObject().is<JSFunction>()) {
+        outerScript->disableIon();
+      }
+    }
+
     // We will redo the potentially effectful lookup in Baseline.
     return true;
   }
diff --git a/sourcestamp.txt b/sourcestamp.txt
index efbd324cd1c..4b9c69faa8c 100644
--- a/sourcestamp.txt
+++ b/sourcestamp.txt
@@ -1,2 +1,2 @@
-20201013163257
-https://hg.mozilla.org/releases/mozilla-esr78/rev/35408d78e4eed57838117d7a38e9a6b2b0bd3420
+20201108181928
+https://hg.mozilla.org/releases/mozilla-esr78/rev/22b8bef3c436a4d36b586804f342928e1ab11e51
diff --git a/taskcluster/ci/condprof/kind.yml b/taskcluster/ci/condprof/kind.yml
index d6f81b78f49..380b1440990 100644
--- a/taskcluster/ci/condprof/kind.yml
+++ b/taskcluster/ci/condprof/kind.yml
@@ -90,7 +90,7 @@ jobs:
                   path: /builds/worker/archive
                   type: directory
     macosx64-firefox:
-        worker-type: t-osx-1014-r7-edid
+        worker-type: t-osx-1014
         description: Creates or updates conditioned profiles on macOS
         treeherder:
             symbol: condprof(firefox)
diff --git a/taskcluster/ci/config.yml b/taskcluster/ci/config.yml
index 60726970553..761d0449444 100644
--- a/taskcluster/ci/config.yml
+++ b/taskcluster/ci/config.yml
@@ -513,11 +513,6 @@ workers:
             implementation: generic-worker
             os: macosx
             worker-type: 'gecko-{alias}'
-        t-osx-1014-r7-edid:
-            provisioner: releng-hardware
-            implementation: generic-worker
-            os: macosx
-            worker-type: 'gecko-{alias}'
         t-osx-1014-power:
             provisioner: releng-hardware
             implementation: generic-worker
diff --git a/taskcluster/ci/iris/kind.yml b/taskcluster/ci/iris/kind.yml
index bc674f8d653..2f2c2773937 100644
--- a/taskcluster/ci/iris/kind.yml
+++ b/taskcluster/ci/iris/kind.yml
@@ -110,7 +110,7 @@ job-defaults:
     worker-type:
         by-platform:
             linux64.*: t-linux-xlarge
-            osx.*: t-osx-1014-r7-edid
+            osx.*: t-osx-1014
             windows10-64.*: t-win10-64
 
 jobs:
diff --git a/taskcluster/ci/release-balrog-submit-toplevel/kind.yml b/taskcluster/ci/release-balrog-submit-toplevel/kind.yml
index 5ce8b5c5a73..06dbc314cc2 100644
--- a/taskcluster/ci/release-balrog-submit-toplevel/kind.yml
+++ b/taskcluster/ci/release-balrog-submit-toplevel/kind.yml
@@ -17,7 +17,7 @@ job-defaults:
     worker-type: balrog
     worker:
         implementation: balrog
-        balrog-action: submit-toplevel
+        balrog-action: v2-submit-toplevel
         require-mirrors: true
         archive-domain:
             by-release-level:
diff --git a/taskcluster/ci/source-test/python.yml b/taskcluster/ci/source-test/python.yml
index e29d33ef6e7..c7beafe43e7 100644
--- a/taskcluster/ci/source-test/python.yml
+++ b/taskcluster/ci/source-test/python.yml
@@ -8,7 +8,7 @@ job-defaults:
     worker-type:
         by-platform:
             linux1804-64.*: t-linux-xlarge-source
-            macosx1014-64.*: t-osx-1014-r7-edid
+            macosx1014-64.*: t-osx-1014
             windows10-64.*: t-win10-64-source
     worker:
         by-platform:
diff --git a/taskcluster/ci/webrender/kind.yml b/taskcluster/ci/webrender/kind.yml
index c177f0e1393..6e3eba944ce 100644
--- a/taskcluster/ci/webrender/kind.yml
+++ b/taskcluster/ci/webrender/kind.yml
@@ -131,7 +131,7 @@ jobs:
 
     macos-release:
         description: Runs release-mode WebRender CI tests on a macOS worker
-        worker-type: t-osx-1014-r7-edid
+        worker-type: t-osx-1014
         worker:
             # repo cloning has highly variable run time
             max-run-time: 7200
@@ -192,7 +192,7 @@ jobs:
 
     macos-debug:
         description: Runs debug-mode WebRender CI tests on a macOS worker
-        worker-type: t-osx-1014-r7-edid
+        worker-type: t-osx-1014
         worker:
             max-run-time: 3600
             env:
diff --git a/taskcluster/taskgraph/transforms/balrog_submit.py b/taskcluster/taskgraph/transforms/balrog_submit.py
index 9e540054e44..bf8087a8736 100644
--- a/taskcluster/taskgraph/transforms/balrog_submit.py
+++ b/taskcluster/taskgraph/transforms/balrog_submit.py
@@ -116,7 +116,7 @@ def make_task_description(config, jobs):
             'worker': {
                 'implementation': 'balrog',
                 'upstream-artifacts': upstream_artifacts,
-                'balrog-action': 'submit-locale',
+                'balrog-action': 'v2-submit-locale',
                 'suffixes': ['', '-No-WNP'] if job.get('update-no-wnp') else [''],
             },
             'dependencies': {'beetmover': dep_job.label},
diff --git a/taskcluster/taskgraph/transforms/task.py b/taskcluster/taskgraph/transforms/task.py
index 95aa727e5bc..617567719d9 100644
--- a/taskcluster/taskgraph/transforms/task.py
+++ b/taskcluster/taskgraph/transforms/task.py
@@ -1047,7 +1047,7 @@ def build_balrog_payload(config, task, task_def):
     if 'b' in release_config['version']:
         beta_number = release_config['version'].split('b')[-1]
 
-    if worker['balrog-action'] == 'submit-locale':
+    if worker['balrog-action'] == 'submit-locale' or worker['balrog-action'] == 'v2-submit-locale':
         task_def['payload'] = {
             'upstreamArtifacts':  worker['upstream-artifacts'],
             'suffixes': worker['suffixes'],
@@ -1074,7 +1074,8 @@ def build_balrog_payload(config, task, task_def):
                      'complete-mar-bouncer-product-pattern'):
             if prop in worker:
                 task_def['payload'][prop.replace('-', '_')] = worker[prop]
-        if worker['balrog-action'] == 'submit-toplevel':
+        if worker['balrog-action'] == 'submit-toplevel' or \
+                worker['balrog-action'] == 'v2-submit-toplevel':
             task_def['payload'].update({
                 'app_version': release_config['appVersion'],
                 'archive_domain': worker['archive-domain'],
diff --git a/taskcluster/taskgraph/transforms/tests.py b/taskcluster/taskgraph/transforms/tests.py
index 60fd3944759..f7becdb99a1 100644
--- a/taskcluster/taskgraph/transforms/tests.py
+++ b/taskcluster/taskgraph/transforms/tests.py
@@ -140,7 +140,7 @@ WINDOWS_WORKER_TYPES = {
 
 # os x worker types keyed by test-platform
 MACOSX_WORKER_TYPES = {
-    'macosx1014-64': 't-osx-1014-r7-edid',
+    'macosx1014-64': 't-osx-1014',
     'macosx1014-64-power': 't-osx-1014-power'
 }
 
diff --git a/taskcluster/taskgraph/util/scriptworker.py b/taskcluster/taskgraph/util/scriptworker.py
index 4bfeb51e436..c20ec0b397c 100644
--- a/taskcluster/taskgraph/util/scriptworker.py
+++ b/taskcluster/taskgraph/util/scriptworker.py
@@ -118,7 +118,13 @@ BEETMOVER_ACTION_SCOPES = {
 
 
 """Known balrog actions."""
-BALROG_ACTIONS = ('submit-locale', 'submit-toplevel', 'schedule')
+BALROG_ACTIONS = (
+    'submit-locale',
+    'submit-toplevel',
+    'schedule',
+    'v2-submit-locale',
+    'v2-submit-toplevel'
+)
 
 """Map balrog scope aliases to sets of projects.
 
-- 
GitLab


From e38cf040007c0ac73831c5b66ed70a204cd31f45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andrew=20Lee=20=28=E6=9D=8E=E5=81=A5=E7=A7=8B=29?=
 <ajqlee@debian.org>
Date: Wed, 11 Nov 2020 15:08:02 +0800
Subject: [PATCH 2/2] Releasing apertis version 78.4.1esr-1~deb10u1co1.

---
 debian/changelog | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 960f7970c7c..09bfd5728b2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,13 @@
-firefox-esr (78.4.1esr-1~deb10u1co1) UNRELEASED; urgency=medium
+firefox-esr (78.4.1esr-1~deb10u1co1) apertis; urgency=medium
 
-  * PLEASE SUMMARIZE remaining Apertis changes
+  * Merge changes from Debian buster-security.
+  * Apertis specific changes
+    + d/rules: Set DIST to apertis and add apertis to the list of
+      distributions where firefox bundled libraries should be used.
+    + d/rules: Set SHELL variable as docker doesn't carry this environment
+      variable
 
- -- root <andrew.lee@collabora.co.uk>  Wed, 11 Nov 2020 06:13:59 +0000
+ -- Andrew Lee (李健秋) <andrew.lee@collabora.co.uk>  Wed, 11 Nov 2020 15:06:56 +0800
 
 firefox-esr (78.4.1esr-1~deb10u1) buster-security; urgency=medium
 
-- 
GitLab