1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-20 10:13:31 +00:00

[PM-5189] Addressing visual flash bug with repositioning of inline menu

This commit is contained in:
Cesar Gonzalez
2024-03-22 10:13:49 -05:00
parent 47127ed6a7
commit 533b56682e
3 changed files with 10 additions and 7 deletions

View File

@@ -48,6 +48,7 @@ type OverlayBackgroundExtensionMessage = {
overlayElement?: string; overlayElement?: string;
forceCloseOverlay?: boolean; forceCloseOverlay?: boolean;
isOverlayHidden?: boolean; isOverlayHidden?: boolean;
setTransparentOverlay?: boolean;
data?: LockedVaultPendingNotificationsData; data?: LockedVaultPendingNotificationsData;
isFieldCurrentlyFocused?: boolean; isFieldCurrentlyFocused?: boolean;
isCurrentlyFilling?: boolean; isCurrentlyFilling?: boolean;

View File

@@ -277,10 +277,9 @@ class OverlayBackground implements OverlayBackgroundInterface {
return; return;
} }
subFrameOffsetsForTab.forEach((subFrameData) => { subFrameOffsetsForTab.forEach((_, frameId) => {
const { url, frameId } = subFrameData;
subFrameOffsetsForTab.delete(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 * @param sender - The sender of the extension message
*/ */
private updateOverlayHidden( private updateOverlayHidden(
{ isOverlayHidden }: OverlayBackgroundExtensionMessage, { isOverlayHidden, setTransparentOverlay }: OverlayBackgroundExtensionMessage,
sender: chrome.runtime.MessageSender, sender: chrome.runtime.MessageSender,
) { ) {
const display = isOverlayHidden ? "none" : "block"; 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( void BrowserApi.tabSendMessage(
sender.tab, sender.tab,

View File

@@ -555,10 +555,12 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte
* Sends a message that facilitates hiding the overlay elements. * Sends a message that facilitates hiding the overlay elements.
* *
* @param isHidden - Indicates if the overlay elements should be hidden. * @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", { void this.sendExtensionMessage("updateAutofillOverlayHidden", {
isOverlayHidden: isHidden, isOverlayHidden: isHidden,
setTransparentOverlay,
}); });
} }
@@ -729,7 +731,7 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte
*/ */
private triggerOverlayRepositionUpdates = async () => { private triggerOverlayRepositionUpdates = async () => {
if (!this.recentlyFocusedFieldIsCurrentlyFocused()) { if (!this.recentlyFocusedFieldIsCurrentlyFocused()) {
this.toggleOverlayHidden(false); this.toggleOverlayHidden(false, true);
void this.sendExtensionMessage("closeAutofillOverlay", { void this.sendExtensionMessage("closeAutofillOverlay", {
forceCloseOverlay: true, forceCloseOverlay: true,
}); });