gh-13149: Fixed WS marking tabs as inactive in certain cases (gh-13298)

This commit is contained in:
mr. m
2026-04-17 13:32:22 +02:00
committed by GitHub
parent 3b85ac912e
commit 7046d16956
2 changed files with 26 additions and 4 deletions

View File

@@ -47,10 +47,22 @@ import_cert() {
echo "Error: public_key.der not found. Run with -g first." >&2
exit 1
fi
echo "Importing certificate into $UPDATER_CERT_DIR/release_primary.der"
cp "$CERT_PATH_DIR/public_key.der" "$UPDATER_CERT_DIR/release_primary.der"
echo "Importing certificate into $UPDATER_CERT_DIR/release_secondary.der"
cp "$CERT_PATH_DIR/public_key.der" "$UPDATER_CERT_DIR/release_secondary.der"
files=(
"$UPDATER_CERT_DIR/release_primary.der"
"$UPDATER_CERT_DIR/release_secondary.der"
"$UPDATER_CERT_DIR/dep1.der"
"$UPDATER_CERT_DIR/dep2.der"
"$UPDATER_CERT_DIR/xpcshellCertificate.der"
)
for file in "${files[@]}"; do
if [ ! -f "$file" ]; then
echo "Error: $file not found. Make sure the updater certificates exist." >&2
exit 1
fi
rm -f "$file"
echo "Copying $CERT_PATH_DIR/public_key.der to $file"
cp "$CERT_PATH_DIR/public_key.der" "$file"
done
echo "Done. Rebuild the updater to embed the new certificate."
}

View File

@@ -795,6 +795,16 @@ class nsZenWindowSync {
);
return false;
}
// Theoretical case where we are trying to swap two tabs in the same window.
// There has been some reports of this happening in the wild, and while it shouldn't
// cause any critical issues, it can cause some weird states and we should avoid it.
// For example, see gh-13149
if (aOtherTab.ownerGlobal === aOurTab.ownerGlobal) {
this.log(
`Cannot swap browsers between tabs ${aOurTab.id} and ${aOtherTab.id} because they are in the same window`
);
return false;
}
// Can't swap between chrome and content processes.
if (
aOurTab.linkedBrowser.isRemoteBrowser !=