From 83be492b3a84319277dc2da8dcf7bcc1d1322f65 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Wed, 12 Mar 2025 17:00:31 +0100 Subject: [PATCH] Refactor injectIcon (#678) --- browser-extension/src/entrypoints/content.ts | 4 ++-- .../src/entrypoints/contentScript/Form.ts | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/browser-extension/src/entrypoints/content.ts b/browser-extension/src/entrypoints/content.ts index 1d046e561..9a042a75e 100644 --- a/browser-extension/src/entrypoints/content.ts +++ b/browser-extension/src/entrypoints/content.ts @@ -46,7 +46,7 @@ export default defineContentScript({ return; } - injectIcon(target); + injectIcon(target, container); const isDisabled = await isAutoShowPopupDisabled(); const canShow = canShowPopup(); @@ -91,7 +91,7 @@ export default defineContentScript({ return { success: false, error: 'No form found' }; } - injectIcon(target); + injectIcon(target, container); openAutofillPopup(target, container); return { success: true }; }); diff --git a/browser-extension/src/entrypoints/contentScript/Form.ts b/browser-extension/src/entrypoints/contentScript/Form.ts index e85170a8a..4db2ed44b 100644 --- a/browser-extension/src/entrypoints/contentScript/Form.ts +++ b/browser-extension/src/entrypoints/contentScript/Form.ts @@ -53,7 +53,7 @@ export function fillCredential(credential: Credential, input: HTMLInputElement) /** * Inject icon for a focused input element */ -export function injectIcon(input: HTMLInputElement): void { +export function injectIcon(input: HTMLInputElement, container: HTMLElement): void { const aliasvaultIconSvg = ` @@ -86,9 +86,9 @@ export function injectIcon(input: HTMLInputElement): void { } // Create an overlay container at document level if it doesn't exist - let overlayContainer = document.getElementById('aliasvault-overlay-container'); + let overlayContainer = container.querySelector('#aliasvault-overlay-container'); if (!overlayContainer) { - overlayContainer = document.createElement('div'); + overlayContainer = document.createElement('div') as HTMLElement; overlayContainer.id = 'aliasvault-overlay-container'; overlayContainer.style.cssText = ` position: fixed; @@ -99,7 +99,7 @@ export function injectIcon(input: HTMLInputElement): void { pointer-events: none; z-index: 2147483640; `; - document.body.appendChild(overlayContainer); + container.appendChild(overlayContainer); } // Create the icon element from the HTML template @@ -131,7 +131,7 @@ export function injectIcon(input: HTMLInputElement): void { e.preventDefault(); e.stopPropagation(); setTimeout(() => input.focus(), 0); - openAutofillPopup(input); + openAutofillPopup(input, container); }); // Append the icon to the overlay container