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;
forceCloseOverlay?: boolean;
isOverlayHidden?: boolean;
setTransparentOverlay?: boolean;
data?: LockedVaultPendingNotificationsData;
isFieldCurrentlyFocused?: boolean;
isCurrentlyFilling?: boolean;

View File

@@ -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,

View File

@@ -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,
});