From 533b56682e273553443249f440dd098de79bdfac Mon Sep 17 00:00:00 2001 From: Cesar Gonzalez Date: Fri, 22 Mar 2024 10:13:49 -0500 Subject: [PATCH] [PM-5189] Addressing visual flash bug with repositioning of inline menu --- .../background/abstractions/overlay.background.ts | 1 + .../src/autofill/background/overlay.background.ts | 10 +++++----- .../services/autofill-overlay-content.service.ts | 6 ++++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/apps/browser/src/autofill/background/abstractions/overlay.background.ts b/apps/browser/src/autofill/background/abstractions/overlay.background.ts index 7e111d5c3c6..8ea643cf60c 100644 --- a/apps/browser/src/autofill/background/abstractions/overlay.background.ts +++ b/apps/browser/src/autofill/background/abstractions/overlay.background.ts @@ -48,6 +48,7 @@ type OverlayBackgroundExtensionMessage = { overlayElement?: string; forceCloseOverlay?: boolean; isOverlayHidden?: boolean; + setTransparentOverlay?: boolean; data?: LockedVaultPendingNotificationsData; isFieldCurrentlyFocused?: boolean; isCurrentlyFilling?: boolean; diff --git a/apps/browser/src/autofill/background/overlay.background.ts b/apps/browser/src/autofill/background/overlay.background.ts index 2e8a475f6c8..b90a584146e 100644 --- a/apps/browser/src/autofill/background/overlay.background.ts +++ b/apps/browser/src/autofill/background/overlay.background.ts @@ -277,10 +277,9 @@ class OverlayBackground implements OverlayBackgroundInterface { return; } - subFrameOffsetsForTab.forEach((subFrameData) => { - const { url, frameId } = subFrameData; + subFrameOffsetsForTab.forEach((_, frameId) => { subFrameOffsetsForTab.delete(frameId); - void this.buildSubFrameOffsets(sender.tab, frameId, url); + void this.buildSubFrameOffsets(sender.tab, frameId, sender.url); }); } @@ -584,11 +583,12 @@ class OverlayBackground implements OverlayBackgroundInterface { * @param sender - The sender of the extension message */ private updateOverlayHidden( - { isOverlayHidden }: OverlayBackgroundExtensionMessage, + { isOverlayHidden, setTransparentOverlay }: OverlayBackgroundExtensionMessage, sender: chrome.runtime.MessageSender, ) { const display = isOverlayHidden ? "none" : "block"; - const portMessage = { command: "updateOverlayHidden", styles: { display } }; + const styles = setTransparentOverlay ? { display, opacity: 0 } : { display }; + const portMessage = { command: "updateOverlayHidden", styles }; void BrowserApi.tabSendMessage( sender.tab, diff --git a/apps/browser/src/autofill/services/autofill-overlay-content.service.ts b/apps/browser/src/autofill/services/autofill-overlay-content.service.ts index c191e0c10a0..c9528f800a5 100644 --- a/apps/browser/src/autofill/services/autofill-overlay-content.service.ts +++ b/apps/browser/src/autofill/services/autofill-overlay-content.service.ts @@ -555,10 +555,12 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte * Sends a message that facilitates hiding the overlay elements. * * @param isHidden - Indicates if the overlay elements should be hidden. + * @param setTransparentOverlay - Indicates if the overlay is closing. */ - private toggleOverlayHidden(isHidden: boolean) { + private toggleOverlayHidden(isHidden: boolean, setTransparentOverlay: boolean = false) { void this.sendExtensionMessage("updateAutofillOverlayHidden", { isOverlayHidden: isHidden, + setTransparentOverlay, }); } @@ -729,7 +731,7 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte */ private triggerOverlayRepositionUpdates = async () => { if (!this.recentlyFocusedFieldIsCurrentlyFocused()) { - this.toggleOverlayHidden(false); + this.toggleOverlayHidden(false, true); void this.sendExtensionMessage("closeAutofillOverlay", { forceCloseOverlay: true, });