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 b8a94b2838..e676bfeaeb 100644 --- a/apps/browser/src/autofill/services/autofill-overlay-content.service.ts +++ b/apps/browser/src/autofill/services/autofill-overlay-content.service.ts @@ -3,11 +3,7 @@ import "lit/polyfill-support.js"; import { FocusableElement, tabbable } from "tabbable"; import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status"; -import { - EVENTS, - AutofillOverlayVisibility, - AUTOFILL_OVERLAY_HANDLE_REPOSITION, -} from "@bitwarden/common/autofill/constants"; +import { EVENTS, AutofillOverlayVisibility } from "@bitwarden/common/autofill/constants"; import { FocusedFieldData, @@ -22,12 +18,7 @@ import { import AutofillField from "../models/autofill-field"; import AutofillPageDetails from "../models/autofill-page-details"; import { ElementWithOpId, FillableFormFieldElement, FormFieldElement } from "../types"; -import { - elementIsFillableFormField, - getAttributeBoolean, - sendExtensionMessage, - throttle, -} from "../utils"; +import { elementIsFillableFormField, getAttributeBoolean, sendExtensionMessage } from "../utils"; import { AutofillOverlayContentExtensionMessageHandlers, @@ -1057,15 +1048,11 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ * the overlay elements on scroll or resize. */ private setOverlayRepositionEventListeners() { - const handler = this.useEventHandlersMemo( - throttle(this.handleOverlayRepositionEvent, 900), - AUTOFILL_OVERLAY_HANDLE_REPOSITION, - ); - globalThis.addEventListener(EVENTS.SCROLL, handler, { + globalThis.addEventListener(EVENTS.SCROLL, this.handleOverlayRepositionEvent, { capture: true, passive: true, }); - globalThis.addEventListener(EVENTS.RESIZE, handler); + globalThis.addEventListener(EVENTS.RESIZE, this.handleOverlayRepositionEvent); } /** @@ -1073,13 +1060,10 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ * the overlay elements on scroll or resize. */ private removeOverlayRepositionEventListeners() { - const handler = this.eventHandlersMemo[AUTOFILL_OVERLAY_HANDLE_REPOSITION]; - globalThis.removeEventListener(EVENTS.SCROLL, handler, { + globalThis.removeEventListener(EVENTS.SCROLL, this.handleOverlayRepositionEvent, { capture: true, }); - globalThis.removeEventListener(EVENTS.RESIZE, handler); - - delete this.eventHandlersMemo[AUTOFILL_OVERLAY_HANDLE_REPOSITION]; + globalThis.removeEventListener(EVENTS.RESIZE, this.handleOverlayRepositionEvent); } /** diff --git a/apps/browser/src/autofill/utils/index.ts b/apps/browser/src/autofill/utils/index.ts index a040fa5012..c05fd61976 100644 --- a/apps/browser/src/autofill/utils/index.ts +++ b/apps/browser/src/autofill/utils/index.ts @@ -335,20 +335,3 @@ export function getPropertyOrAttribute(element: HTMLElement, attributeName: stri return element.getAttribute(attributeName); } - -/** - * Throttles a callback function to run at most once every `limit` milliseconds. - * - * @param callback - The callback function to throttle. - * @param limit - The time in milliseconds to throttle the callback. - */ -export function throttle(callback: () => void, limit: number) { - let waitingDelay = false; - return function (...args: unknown[]) { - if (!waitingDelay) { - callback.apply(this, args); - waitingDelay = true; - globalThis.setTimeout(() => (waitingDelay = false), limit); - } - }; -} diff --git a/libs/common/src/autofill/constants/index.ts b/libs/common/src/autofill/constants/index.ts index efbd089642..93815be55d 100644 --- a/libs/common/src/autofill/constants/index.ts +++ b/libs/common/src/autofill/constants/index.ts @@ -54,8 +54,6 @@ export const SEPARATOR_ID = "separator"; export const NOTIFICATION_BAR_LIFESPAN_MS = 150000; // 150 seconds -export const AUTOFILL_OVERLAY_HANDLE_REPOSITION = "autofill-overlay-handle-reposition-event"; - export const AutofillOverlayVisibility = { Off: 0, OnButtonClick: 1,