mirror of
https://github.com/bitwarden/browser
synced 2025-12-19 17:53:39 +00:00
[PM-5189] Refactoring implementation
This commit is contained in:
@@ -156,21 +156,19 @@ describe("AutofillInit", () => {
|
||||
});
|
||||
|
||||
it("triggers extension message handlers from the AutofillOverlayContentService", () => {
|
||||
autofillOverlayContentService.extensionMessageHandlers.messageHandler = jest.fn();
|
||||
autofillOverlayContentService.messageHandlers.messageHandler = jest.fn();
|
||||
|
||||
sendMockExtensionMessage({ command: "messageHandler" }, sender, sendResponse);
|
||||
|
||||
expect(
|
||||
autofillOverlayContentService.extensionMessageHandlers.messageHandler,
|
||||
).toHaveBeenCalled();
|
||||
expect(autofillOverlayContentService.messageHandlers.messageHandler).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("triggers extension message handlers from the AutofillInlineMenuContentService", () => {
|
||||
inlineMenuElements.extensionMessageHandlers.messageHandler = jest.fn();
|
||||
inlineMenuElements.messageHandlers.messageHandler = jest.fn();
|
||||
|
||||
sendMockExtensionMessage({ command: "messageHandler" }, sender, sendResponse);
|
||||
|
||||
expect(inlineMenuElements.extensionMessageHandlers.messageHandler).toHaveBeenCalled();
|
||||
expect(inlineMenuElements.messageHandlers.messageHandler).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
describe("collectPageDetails", () => {
|
||||
|
||||
@@ -196,12 +196,12 @@ class AutofillInit implements AutofillInitInterface {
|
||||
* @param command - The extension message command.
|
||||
*/
|
||||
private getExtensionMessageHandler(command: string): CallableFunction | undefined {
|
||||
if (this.autofillOverlayContentService?.extensionMessageHandlers?.[command]) {
|
||||
return this.autofillOverlayContentService.extensionMessageHandlers[command];
|
||||
if (this.autofillOverlayContentService?.messageHandlers?.[command]) {
|
||||
return this.autofillOverlayContentService.messageHandlers[command];
|
||||
}
|
||||
|
||||
if (this.autofillInlineMenuContentService?.extensionMessageHandlers?.[command]) {
|
||||
return this.autofillInlineMenuContentService.extensionMessageHandlers[command];
|
||||
if (this.autofillInlineMenuContentService?.messageHandlers?.[command]) {
|
||||
return this.autofillInlineMenuContentService.messageHandlers[command];
|
||||
}
|
||||
|
||||
return this.extensionMessageHandlers[command];
|
||||
|
||||
@@ -10,7 +10,7 @@ export type InlineMenuExtensionMessageHandlers = {
|
||||
};
|
||||
|
||||
export interface AutofillInlineMenuContentService {
|
||||
extensionMessageHandlers: InlineMenuExtensionMessageHandlers;
|
||||
messageHandlers: InlineMenuExtensionMessageHandlers;
|
||||
isElementInlineMenu(element: HTMLElement): boolean;
|
||||
destroy(): void;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ export class AutofillInlineMenuContentService implements AutofillInlineMenuConte
|
||||
display: "block",
|
||||
zIndex: "2147483647",
|
||||
};
|
||||
private readonly _extensionMessageHandlers: InlineMenuExtensionMessageHandlers = {
|
||||
private readonly extensionMessageHandlers: InlineMenuExtensionMessageHandlers = {
|
||||
closeAutofillInlineMenu: ({ message }) => this.removeInlineMenu(message),
|
||||
appendAutofillInlineMenuToDom: ({ message }) => this.appendInlineMenuElements(message),
|
||||
toggleAutofillInlineMenuHidden: ({ message }) => this.toggleInlineMenuHidden(message),
|
||||
@@ -46,8 +46,8 @@ export class AutofillInlineMenuContentService implements AutofillInlineMenuConte
|
||||
this.setupMutationObserver();
|
||||
}
|
||||
|
||||
get extensionMessageHandlers() {
|
||||
return this._extensionMessageHandlers;
|
||||
get messageHandlers() {
|
||||
return this.extensionMessageHandlers;
|
||||
}
|
||||
|
||||
isElementInlineMenu(element: HTMLElement) {
|
||||
|
||||
@@ -28,7 +28,7 @@ export type AutofillOverlayContentExtensionMessageHandlers = {
|
||||
|
||||
export interface AutofillOverlayContentService {
|
||||
pageDetailsUpdateRequired: boolean;
|
||||
extensionMessageHandlers: AutofillOverlayContentExtensionMessageHandlers;
|
||||
messageHandlers: AutofillOverlayContentExtensionMessageHandlers;
|
||||
init(): void;
|
||||
setupAutofillInlineMenuListenerOnField(
|
||||
autofillFieldElement: ElementWithOpId<FormFieldElement>,
|
||||
|
||||
@@ -40,7 +40,7 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
|
||||
private recalculateSubFrameOffsetsTimeout: number | NodeJS.Timeout;
|
||||
private autofillFieldKeywordsMap: WeakMap<AutofillField, string> = new WeakMap();
|
||||
private eventHandlersMemo: { [key: string]: EventListener } = {};
|
||||
readonly extensionMessageHandlers: AutofillOverlayContentExtensionMessageHandlers = {
|
||||
private readonly extensionMessageHandlers: AutofillOverlayContentExtensionMessageHandlers = {
|
||||
openAutofillInlineMenu: ({ message }) => this.openAutofillInlineMenu(message),
|
||||
addNewVaultItemFromOverlay: () => this.addNewVaultItem(),
|
||||
blurMostRecentlyFocusedField: () => this.blurMostRecentlyFocusedField(),
|
||||
@@ -70,6 +70,14 @@ export class AutofillOverlayContentService implements AutofillOverlayContentServ
|
||||
this.setupGlobalEventListeners();
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter used to access the extension message handlers associated
|
||||
* with the autofill overlay content service.
|
||||
*/
|
||||
get messageHandlers(): AutofillOverlayContentExtensionMessageHandlers {
|
||||
return this.extensionMessageHandlers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the autofill inline menu listener on the form field element. This method is called
|
||||
* during the page details collection process.
|
||||
|
||||
Reference in New Issue
Block a user