From b3e43f41a8e73dea01326f114a2d18dd0e62f8e4 Mon Sep 17 00:00:00 2001 From: Job Bautista Date: Sat, 30 Jul 2022 13:24:40 +0800 Subject: [PATCH] Issue #1980 - Fix build bustage for applications where WebRTC building is enabled. Turns out we have a duplicate VoidFunction callback in the WebIDLs. Per Mozilla bug 1324169, we should remove this callback from RTCPeerConnection.webidl and let Function.webidl handle it instead. The AttributeError faced by the new Basilisk dev wasn't helpful at all; and turns out Mozilla had this exact same issue on bug 1505504. We're also backporting that just in case we encounter another case of callback duplication. Also doing a minor fix in the MicroTaskRunnable class which Moonchild forgot to do while working on Issue #1895. --- dom/bindings/parser/WebIDL.py | 10 ++++++++-- xpcom/base/CycleCollectedJSContext.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/dom/bindings/parser/WebIDL.py b/dom/bindings/parser/WebIDL.py index ce8862c02b..59db43f6bd 100644 --- a/dom/bindings/parser/WebIDL.py +++ b/dom/bindings/parser/WebIDL.py @@ -248,8 +248,14 @@ class IDLScope(IDLObject): return self.QName() def QName(self): - if self._name: - return self._name.QName() + "::" + # It's possible for us to be called before __init__ has been called, for + # the IDLObjectWithScope case. In that case, self._name won't be set yet. + if hasattr(self, "_name"): + name = self._name + else: + name = None + if name: + return name.QName() + "::" return "::" def ensureUnique(self, identifier, object): diff --git a/xpcom/base/CycleCollectedJSContext.h b/xpcom/base/CycleCollectedJSContext.h index 914bb95d30..366a1ea3bb 100644 --- a/xpcom/base/CycleCollectedJSContext.h +++ b/xpcom/base/CycleCollectedJSContext.h @@ -142,7 +142,7 @@ public: virtual void Run(AutoSlowOperation& aAso) = 0; virtual bool Suppressed() { return false; } protected: - virtual ~MicroTaskRunnable() {} + virtual ~MicroTaskRunnable() = default; }; class CycleCollectedJSContext