Bug 1440607 - Move getAnimations call out of the rAF for the WebRTC blinking animation. r=florian
MozReview-Commit-ID: It4buk33ea7
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -8067,28 +8067,23 @@ var gIdentityHandler = {
classes += " blocked-permission-icon";
if (aPermission.sharingState == Ci.nsIMediaManagerService.STATE_CAPTURE_ENABLED ||
(aPermission.id == "screen" && aPermission.sharingState &&
!aPermission.sharingState.includes("Paused"))) {
classes += " in-use";
// Synchronize control center and identity block blinking animations.
- window.promiseDocumentFlushed(() => {}).then(() => {
+ window.promiseDocumentFlushed(() => {
let sharingIconBlink = document.getElementById("sharing-icon").getAnimations()[0];
- if (sharingIconBlink) {
- let startTime = sharingIconBlink.startTime;
- window.requestAnimationFrame(() => {
- // TODO(Bug 1440607): This could cause a style flush, but putting
- // the getAnimations() call outside of rAF causes a leak.
- let imgBlink = img.getAnimations()[0];
- if (imgBlink) {
- imgBlink.startTime = startTime;
- }
- });
+ let imgBlink = img.getAnimations()[0];
+ return [sharingIconBlink, imgBlink];
+ }).then(([sharingIconBlink, imgBlink]) => {
+ if (sharingIconBlink && imgBlink) {
+ imgBlink.startTime = sharingIconBlink.startTime;
}
});
}
img.setAttribute("class", classes);
let nameLabel = document.createElement("label");
nameLabel.setAttribute("flex", "1");
nameLabel.setAttribute("class", "identity-popup-permission-label");