mirror of
https://github.com/bitwarden/browser
synced 2025-12-18 17:23:37 +00:00
[PM-5189] Refactoring implementation
This commit is contained in:
@@ -97,13 +97,13 @@ type OverlayBackgroundExtensionMessageHandlers = {
|
||||
autofillOverlayElementClosed: ({ message }: BackgroundMessageParam) => void;
|
||||
autofillOverlayAddNewVaultItem: ({ message, sender }: BackgroundOnMessageHandlerParams) => void;
|
||||
getAutofillOverlayVisibility: () => void;
|
||||
checkAutofillOverlayFocused: () => void;
|
||||
checkAutofillOverlayMenuFocused: () => void;
|
||||
focusAutofillOverlayList: () => void;
|
||||
updateAutofillOverlayPosition: ({
|
||||
updateAutofillOverlayMenuPosition: ({
|
||||
message,
|
||||
sender,
|
||||
}: BackgroundOnMessageHandlerParams) => Promise<void>;
|
||||
updateAutofillOverlayHidden: ({ message, sender }: BackgroundOnMessageHandlerParams) => void;
|
||||
updateAutofillOverlayMenuHidden: ({ message, sender }: BackgroundOnMessageHandlerParams) => void;
|
||||
updateFocusedFieldData: ({ message, sender }: BackgroundOnMessageHandlerParams) => void;
|
||||
updateIsFieldCurrentlyFocused: ({ message }: BackgroundMessageParam) => void;
|
||||
checkIsFieldCurrentlyFocused: () => boolean;
|
||||
@@ -111,7 +111,7 @@ type OverlayBackgroundExtensionMessageHandlers = {
|
||||
checkIsFieldCurrentlyFilling: () => boolean;
|
||||
checkIsInlineMenuButtonVisible: ({ sender }: BackgroundSenderParam) => void;
|
||||
checkIsInlineMenuListVisible: ({ sender }: BackgroundSenderParam) => void;
|
||||
checkIsInlineMenuCiphersPopulated: ({ sender }: BackgroundSenderParam) => void;
|
||||
checkIsOverlayLoginCiphersPopulated: ({ sender }: BackgroundSenderParam) => void;
|
||||
updateSubFrameData: ({ message, sender }: BackgroundOnMessageHandlerParams) => void;
|
||||
rebuildSubFrameOffsets: ({ sender }: BackgroundSenderParam) => void;
|
||||
collectPageDetailsResponse: ({ message, sender }: BackgroundOnMessageHandlerParams) => void;
|
||||
|
||||
@@ -668,13 +668,13 @@ describe("OverlayBackground", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("checkAutofillOverlayFocused message handler", () => {
|
||||
describe("checkAutofillOverlayMenuFocused message handler", () => {
|
||||
beforeEach(async () => {
|
||||
await initOverlayElementPorts();
|
||||
});
|
||||
|
||||
it("will check if the overlay list is focused if the list port is open", () => {
|
||||
sendMockExtensionMessage({ command: "checkAutofillOverlayFocused" });
|
||||
sendMockExtensionMessage({ command: "checkAutofillOverlayMenuFocused" });
|
||||
|
||||
expect(listPortSpy.postMessage).toHaveBeenCalledWith({
|
||||
command: "checkAutofillOverlayListFocused",
|
||||
@@ -687,7 +687,7 @@ describe("OverlayBackground", () => {
|
||||
it("will check if the overlay button is focused if the list port is not open", () => {
|
||||
overlayBackground["overlayListPort"] = undefined;
|
||||
|
||||
sendMockExtensionMessage({ command: "checkAutofillOverlayFocused" });
|
||||
sendMockExtensionMessage({ command: "checkAutofillOverlayMenuFocused" });
|
||||
|
||||
expect(buttonPortSpy.postMessage).toHaveBeenCalledWith({
|
||||
command: "checkAutofillOverlayButtonFocused",
|
||||
@@ -713,7 +713,7 @@ describe("OverlayBackground", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("updateAutofillOverlayPosition message handler", () => {
|
||||
describe("updateAutofillOverlayMenuPosition message handler", () => {
|
||||
let sender: MockProxy<chrome.runtime.MessageSender>;
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -731,7 +731,7 @@ describe("OverlayBackground", () => {
|
||||
});
|
||||
|
||||
it("ignores updating the position if the overlay element type is not provided", () => {
|
||||
sendMockExtensionMessage({ command: "updateAutofillOverlayPosition" }, sender);
|
||||
sendMockExtensionMessage({ command: "updateAutofillOverlayMenuPosition" }, sender);
|
||||
|
||||
expect(listPortSpy.postMessage).not.toHaveBeenCalledWith({
|
||||
command: "updateIframePosition",
|
||||
@@ -749,7 +749,7 @@ describe("OverlayBackground", () => {
|
||||
|
||||
sendMockExtensionMessage(
|
||||
{
|
||||
command: "updateAutofillOverlayPosition",
|
||||
command: "updateAutofillOverlayMenuPosition",
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
},
|
||||
sender,
|
||||
@@ -770,7 +770,7 @@ describe("OverlayBackground", () => {
|
||||
|
||||
sendMockExtensionMessage(
|
||||
{
|
||||
command: "updateAutofillOverlayPosition",
|
||||
command: "updateAutofillOverlayMenuPosition",
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
},
|
||||
sender,
|
||||
@@ -791,7 +791,7 @@ describe("OverlayBackground", () => {
|
||||
|
||||
sendMockExtensionMessage(
|
||||
{
|
||||
command: "updateAutofillOverlayPosition",
|
||||
command: "updateAutofillOverlayMenuPosition",
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
},
|
||||
sender,
|
||||
@@ -812,7 +812,7 @@ describe("OverlayBackground", () => {
|
||||
|
||||
sendMockExtensionMessage(
|
||||
{
|
||||
command: "updateAutofillOverlayPosition",
|
||||
command: "updateAutofillOverlayMenuPosition",
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
},
|
||||
sender,
|
||||
@@ -831,7 +831,7 @@ describe("OverlayBackground", () => {
|
||||
|
||||
sendMockExtensionMessage(
|
||||
{
|
||||
command: "updateAutofillOverlayPosition",
|
||||
command: "updateAutofillOverlayMenuPosition",
|
||||
overlayElement: AutofillOverlayElement.List,
|
||||
},
|
||||
sender,
|
||||
@@ -845,24 +845,24 @@ describe("OverlayBackground", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("updateOverlayHidden", () => {
|
||||
describe("updateOverlayMenuHidden", () => {
|
||||
beforeEach(async () => {
|
||||
await initOverlayElementPorts();
|
||||
});
|
||||
|
||||
it("sets the `display` CSS value on the overlay button and list", () => {
|
||||
const message = { command: "updateAutofillOverlayHidden", isOverlayHidden: true };
|
||||
const message = { command: "updateAutofillOverlayMenuHidden", isOverlayHidden: true };
|
||||
|
||||
sendMockExtensionMessage(message);
|
||||
|
||||
expect(buttonPortSpy.postMessage).toHaveBeenCalledWith({
|
||||
command: "updateOverlayHidden",
|
||||
command: "updateOverlayMenuHidden",
|
||||
styles: {
|
||||
display: "none",
|
||||
},
|
||||
});
|
||||
expect(listPortSpy.postMessage).toHaveBeenCalledWith({
|
||||
command: "updateOverlayHidden",
|
||||
command: "updateOverlayMenuHidden",
|
||||
styles: {
|
||||
display: "none",
|
||||
},
|
||||
@@ -870,19 +870,22 @@ describe("OverlayBackground", () => {
|
||||
});
|
||||
|
||||
it("sets the `opacity` CSS value on the overlay button and list", () => {
|
||||
const message = { command: "updateAutofillOverlayHidden", setTransparentOverlay: true };
|
||||
const message = {
|
||||
command: "updateAutofillOverlayMenuHidden",
|
||||
setTransparentOverlay: true,
|
||||
};
|
||||
|
||||
sendMockExtensionMessage(message);
|
||||
|
||||
expect(buttonPortSpy.postMessage).toHaveBeenCalledWith({
|
||||
command: "updateOverlayHidden",
|
||||
command: "updateOverlayMenuHidden",
|
||||
styles: {
|
||||
display: "block",
|
||||
opacity: 0,
|
||||
},
|
||||
});
|
||||
expect(listPortSpy.postMessage).toHaveBeenCalledWith({
|
||||
command: "updateOverlayHidden",
|
||||
command: "updateOverlayMenuHidden",
|
||||
styles: {
|
||||
display: "block",
|
||||
opacity: 0,
|
||||
@@ -1033,7 +1036,7 @@ describe("OverlayBackground", () => {
|
||||
|
||||
describe("handlePortOnConnect", () => {
|
||||
beforeEach(() => {
|
||||
jest.spyOn(overlayBackground as any, "updateOverlayPosition").mockImplementation();
|
||||
jest.spyOn(overlayBackground as any, "updateOverlayMenuPosition").mockImplementation();
|
||||
jest.spyOn(overlayBackground as any, "getAuthStatus").mockImplementation();
|
||||
jest.spyOn(overlayBackground as any, "getTranslations").mockImplementation();
|
||||
jest.spyOn(overlayBackground as any, "getOverlayCipherData").mockImplementation();
|
||||
@@ -1063,7 +1066,7 @@ describe("OverlayBackground", () => {
|
||||
expect(chrome.runtime.getURL).toHaveBeenCalledWith("overlay/list.css");
|
||||
expect(overlayBackground["getTranslations"]).toHaveBeenCalled();
|
||||
expect(overlayBackground["getOverlayCipherData"]).toHaveBeenCalled();
|
||||
expect(overlayBackground["updateOverlayPosition"]).toHaveBeenCalledWith(
|
||||
expect(overlayBackground["updateOverlayMenuPosition"]).toHaveBeenCalledWith(
|
||||
{ overlayElement: AutofillOverlayElement.List },
|
||||
listPortSpy.sender,
|
||||
);
|
||||
@@ -1083,7 +1086,7 @@ describe("OverlayBackground", () => {
|
||||
expect(overlayBackground["getAuthStatus"]).toHaveBeenCalled();
|
||||
expect(chrome.runtime.getURL).toHaveBeenCalledWith("overlay/button.css");
|
||||
expect(overlayBackground["getTranslations"]).toHaveBeenCalled();
|
||||
expect(overlayBackground["updateOverlayPosition"]).toHaveBeenCalledWith(
|
||||
expect(overlayBackground["updateOverlayMenuPosition"]).toHaveBeenCalledWith(
|
||||
{ overlayElement: AutofillOverlayElement.Button },
|
||||
buttonPortSpy.sender,
|
||||
);
|
||||
|
||||
@@ -53,7 +53,7 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
private overlayLoginCiphers: Map<string, CipherView> = new Map();
|
||||
private pageDetailsForTab: PageDetailsForTab = {};
|
||||
private subFrameOffsetsForTab: SubFrameOffsetsForTab = {};
|
||||
private updateOverlayPositionAfterSubFrameRebuildTimeout: number | NodeJS.Timeout;
|
||||
private updateOverlayMenuPositionTimeout: number | NodeJS.Timeout;
|
||||
private userAuthStatus: AuthenticationStatus = AuthenticationStatus.LoggedOut;
|
||||
private overlayButtonPort: chrome.runtime.Port;
|
||||
private overlayListPort: chrome.runtime.Port;
|
||||
@@ -69,26 +69,27 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
autofillOverlayElementClosed: ({ message }) => this.overlayElementClosed(message),
|
||||
autofillOverlayAddNewVaultItem: ({ message, sender }) => this.addNewVaultItem(message, sender),
|
||||
getAutofillOverlayVisibility: () => this.getOverlayVisibility(),
|
||||
checkAutofillOverlayFocused: () => this.checkOverlayFocused(),
|
||||
checkAutofillOverlayMenuFocused: () => this.checkOverlayMenuFocused(),
|
||||
focusAutofillOverlayList: () => this.focusOverlayList(),
|
||||
updateAutofillOverlayPosition: ({ message, sender }) =>
|
||||
this.updateOverlayPosition(message, sender),
|
||||
updateAutofillOverlayHidden: ({ message, sender }) => this.updateOverlayHidden(message, sender),
|
||||
updateAutofillOverlayMenuPosition: ({ message, sender }) =>
|
||||
this.updateOverlayMenuPosition(message, sender),
|
||||
updateAutofillOverlayMenuHidden: ({ message, sender }) =>
|
||||
this.updateOverlayMenuHidden(message, sender),
|
||||
updateFocusedFieldData: ({ message, sender }) => this.setFocusedFieldData(message, sender),
|
||||
collectPageDetailsResponse: ({ message, sender }) => this.storePageDetails(message, sender),
|
||||
unlockCompleted: ({ message }) => this.unlockCompleted(message),
|
||||
addEditCipherSubmitted: () => this.updateOverlayCiphers(),
|
||||
deletedCipher: () => this.updateOverlayCiphers(),
|
||||
updateIsFieldCurrentlyFocused: ({ message }) => this.updateIsFieldCurrentlyFocused(message),
|
||||
checkIsFieldCurrentlyFocused: () => this.checkIsFieldCurrentlyFocused(),
|
||||
updateIsFieldCurrentlyFilling: ({ message }) => this.updateIsFieldCurrentlyFilling(message),
|
||||
checkIsFieldCurrentlyFilling: () => this.checkIsFieldCurrentlyFilling(),
|
||||
checkIsInlineMenuButtonVisible: ({ sender }) => this.checkIsInlineMenuButtonVisible(sender),
|
||||
checkIsInlineMenuListVisible: ({ sender }) => this.checkIsInlineMenuListVisible(sender),
|
||||
checkIsInlineMenuCiphersPopulated: ({ sender }) =>
|
||||
this.checkIsInlineMenuCiphersPopulated(sender),
|
||||
checkIsOverlayLoginCiphersPopulated: ({ sender }) =>
|
||||
this.checkIsOverlayLoginCiphersPopulated(sender),
|
||||
updateSubFrameData: ({ message, sender }) => this.updateSubFrameData(message, sender),
|
||||
rebuildSubFrameOffsets: ({ sender }) => this.rebuildSubFrameOffsets(sender),
|
||||
collectPageDetailsResponse: ({ message, sender }) => this.storePageDetails(message, sender),
|
||||
unlockCompleted: ({ message }) => this.unlockCompleted(message),
|
||||
addEditCipherSubmitted: () => this.updateOverlayCiphers(),
|
||||
deletedCipher: () => this.updateOverlayCiphers(),
|
||||
};
|
||||
private readonly overlayButtonPortMessageHandlers: OverlayButtonPortMessageHandlers = {
|
||||
overlayButtonClicked: ({ port }) => this.handleOverlayButtonClicked(port),
|
||||
@@ -316,8 +317,8 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.updateOverlayPositionAfterSubFrameRebuildTimeout) {
|
||||
clearTimeout(this.updateOverlayPositionAfterSubFrameRebuildTimeout);
|
||||
if (this.updateOverlayMenuPositionTimeout) {
|
||||
clearTimeout(this.updateOverlayMenuPositionTimeout);
|
||||
}
|
||||
|
||||
const frameTabs = Array.from(subFrameOffsetsForTab.keys());
|
||||
@@ -330,10 +331,16 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
await this.buildSubFrameOffsets(sender.tab, frameId, sender.url);
|
||||
}
|
||||
|
||||
this.updateOverlayPositionAfterSubFrameRebuildTimeout = setTimeout(() => {
|
||||
this.updateOverlayMenuPositionTimeout = setTimeout(() => {
|
||||
if (this.isFieldCurrentlyFocused) {
|
||||
void this.updateOverlayPosition({ overlayElement: AutofillOverlayElement.List }, sender);
|
||||
void this.updateOverlayPosition({ overlayElement: AutofillOverlayElement.Button }, sender);
|
||||
void this.updateOverlayMenuPosition(
|
||||
{ overlayElement: AutofillOverlayElement.List },
|
||||
sender,
|
||||
);
|
||||
void this.updateOverlayMenuPosition(
|
||||
{ overlayElement: AutofillOverlayElement.Button },
|
||||
sender,
|
||||
);
|
||||
}
|
||||
}, 650);
|
||||
}
|
||||
@@ -378,7 +385,7 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
* Checks if the overlay is focused. Will check the overlay list
|
||||
* if it is open, otherwise it will check the overlay button.
|
||||
*/
|
||||
private checkOverlayFocused() {
|
||||
private checkOverlayMenuFocused() {
|
||||
if (this.overlayListPort) {
|
||||
this.checkOverlayListFocused();
|
||||
|
||||
@@ -473,7 +480,7 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
* @param overlayElement - The overlay element to update, either the list or button
|
||||
* @param sender - The sender of the extension message
|
||||
*/
|
||||
private async updateOverlayPosition(
|
||||
private async updateOverlayMenuPosition(
|
||||
{ overlayElement }: { overlayElement?: string },
|
||||
sender: chrome.runtime.MessageSender,
|
||||
) {
|
||||
@@ -584,7 +591,7 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
* @param display - The display property of the overlay, either "block" or "none"
|
||||
* @param sender - The sender of the extension message
|
||||
*/
|
||||
private updateOverlayHidden(
|
||||
private updateOverlayMenuHidden(
|
||||
{ isOverlayHidden, setTransparentOverlay }: OverlayBackgroundExtensionMessage,
|
||||
sender: chrome.runtime.MessageSender,
|
||||
) {
|
||||
@@ -596,7 +603,7 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
styles = { ...styles, opacity };
|
||||
}
|
||||
|
||||
const portMessage = { command: "updateOverlayHidden", styles };
|
||||
const portMessage = { command: "updateOverlayMenuHidden", styles };
|
||||
|
||||
void BrowserApi.tabSendMessage(
|
||||
sender.tab,
|
||||
@@ -880,7 +887,7 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
);
|
||||
}
|
||||
|
||||
private checkIsInlineMenuCiphersPopulated(sender: chrome.runtime.MessageSender) {
|
||||
private checkIsOverlayLoginCiphersPopulated(sender: chrome.runtime.MessageSender) {
|
||||
return sender.tab.id === this.focusedFieldData.tabId && this.overlayLoginCiphers.size > 0;
|
||||
}
|
||||
|
||||
@@ -976,7 +983,7 @@ class OverlayBackground implements OverlayBackgroundInterface {
|
||||
? AutofillOverlayPort.ListMessageConnector
|
||||
: AutofillOverlayPort.ButtonMessageConnector,
|
||||
});
|
||||
void this.updateOverlayPosition(
|
||||
void this.updateOverlayMenuPosition(
|
||||
{
|
||||
overlayElement: isOverlayListPort
|
||||
? AutofillOverlayElement.List
|
||||
|
||||
@@ -19,7 +19,7 @@ type BackgroundPortMessageHandlers = {
|
||||
initAutofillOverlayButton: ({ message }: AutofillOverlayIframeExtensionMessageParam) => void;
|
||||
initAutofillOverlayList: ({ message }: AutofillOverlayIframeExtensionMessageParam) => void;
|
||||
updateIframePosition: ({ message }: AutofillOverlayIframeExtensionMessageParam) => void;
|
||||
updateOverlayHidden: ({ message }: AutofillOverlayIframeExtensionMessageParam) => void;
|
||||
updateOverlayMenuHidden: ({ message }: AutofillOverlayIframeExtensionMessageParam) => void;
|
||||
updateOverlayPageColorScheme: () => void;
|
||||
};
|
||||
|
||||
|
||||
@@ -395,7 +395,7 @@ describe("AutofillOverlayIframeService", () => {
|
||||
|
||||
it("updates the visibility of the iframe", () => {
|
||||
sendPortMessage(portSpy, {
|
||||
command: "updateOverlayHidden",
|
||||
command: "updateOverlayMenuHidden",
|
||||
styles: { display: "none" },
|
||||
});
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ class AutofillOverlayIframeService implements AutofillOverlayIframeServiceInterf
|
||||
initAutofillOverlayButton: ({ message }) => this.initAutofillOverlay(message),
|
||||
initAutofillOverlayList: ({ message }) => this.initAutofillOverlay(message),
|
||||
updateIframePosition: ({ message }) => this.updateIframePosition(message.styles),
|
||||
updateOverlayHidden: ({ message }) => this.updateElementStyles(this.iframe, message.styles),
|
||||
updateOverlayMenuHidden: ({ message }) => this.updateElementStyles(this.iframe, message.styles),
|
||||
updateOverlayPageColorScheme: () => this.updateOverlayPageColorScheme(),
|
||||
};
|
||||
|
||||
|
||||
@@ -305,7 +305,7 @@ describe("AutofillOverlayContentService", () => {
|
||||
it("sends a message to the background to check if the overlay is focused", () => {
|
||||
autofillFieldElement.dispatchEvent(new Event("blur"));
|
||||
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("checkAutofillOverlayFocused");
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("checkAutofillOverlayMenuFocused");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -704,9 +704,12 @@ describe("AutofillOverlayContentService", () => {
|
||||
autofillFieldElement.dispatchEvent(new Event("focus"));
|
||||
await flushPromises();
|
||||
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith(
|
||||
"updateAutofillOverlayMenuPosition",
|
||||
{
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
});
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -816,10 +819,10 @@ describe("AutofillOverlayContentService", () => {
|
||||
|
||||
autofillOverlayContentService["openAutofillOverlayMenu"]();
|
||||
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
});
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.List,
|
||||
});
|
||||
});
|
||||
@@ -830,12 +833,15 @@ describe("AutofillOverlayContentService", () => {
|
||||
|
||||
autofillOverlayContentService["openAutofillOverlayMenu"]({ isOpeningFullOverlay: false });
|
||||
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
});
|
||||
expect(sendExtensionMessageSpy).not.toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).not.toHaveBeenCalledWith(
|
||||
"updateAutofillOverlayMenuPosition",
|
||||
{
|
||||
overlayElement: AutofillOverlayElement.List,
|
||||
});
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
it("overrides the onButtonClick visibility setting to open both overlay elements", () => {
|
||||
@@ -844,10 +850,10 @@ describe("AutofillOverlayContentService", () => {
|
||||
|
||||
autofillOverlayContentService["openAutofillOverlayMenu"]({ isOpeningFullOverlay: true });
|
||||
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
});
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.List,
|
||||
});
|
||||
});
|
||||
@@ -1098,7 +1104,7 @@ describe("AutofillOverlayContentService", () => {
|
||||
globalThis.dispatchEvent(new Event(EVENTS.SCROLL));
|
||||
await flushPromises();
|
||||
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayHidden", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuHidden", {
|
||||
isOverlayHidden: true,
|
||||
setTransparentOverlay: false,
|
||||
});
|
||||
@@ -1126,7 +1132,7 @@ describe("AutofillOverlayContentService", () => {
|
||||
await flushPromises();
|
||||
jest.advanceTimersByTime(800);
|
||||
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayHidden", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuHidden", {
|
||||
isOverlayHidden: false,
|
||||
setTransparentOverlay: true,
|
||||
});
|
||||
@@ -1157,10 +1163,10 @@ describe("AutofillOverlayContentService", () => {
|
||||
jest.advanceTimersByTime(800);
|
||||
await flushPromises();
|
||||
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
});
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayPosition", {
|
||||
expect(sendExtensionMessageSpy).toHaveBeenCalledWith("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.List,
|
||||
});
|
||||
expect(clearUserInteractionEventTimeoutSpy).toHaveBeenCalled();
|
||||
|
||||
@@ -290,7 +290,7 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte
|
||||
void this.sendExtensionMessage("updateIsFieldCurrentlyFocused", {
|
||||
isFieldCurrentlyFocused: false,
|
||||
});
|
||||
void this.sendExtensionMessage("checkAutofillOverlayFocused");
|
||||
void this.sendExtensionMessage("checkAutofillOverlayMenuFocused");
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -547,7 +547,7 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte
|
||||
* Updates the position of the overlay button.
|
||||
*/
|
||||
private updateOverlayButtonPosition() {
|
||||
void this.sendExtensionMessage("updateAutofillOverlayPosition", {
|
||||
void this.sendExtensionMessage("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.Button,
|
||||
});
|
||||
}
|
||||
@@ -556,7 +556,7 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte
|
||||
* Updates the position of the overlay list.
|
||||
*/
|
||||
private updateOverlayListPosition() {
|
||||
void this.sendExtensionMessage("updateAutofillOverlayPosition", {
|
||||
void this.sendExtensionMessage("updateAutofillOverlayMenuPosition", {
|
||||
overlayElement: AutofillOverlayElement.List,
|
||||
});
|
||||
}
|
||||
@@ -568,7 +568,7 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte
|
||||
* @param setTransparentOverlay - Indicates if the overlay is closing.
|
||||
*/
|
||||
private toggleOverlayHidden(isHidden: boolean, setTransparentOverlay: boolean = false) {
|
||||
void this.sendExtensionMessage("updateAutofillOverlayHidden", {
|
||||
void this.sendExtensionMessage("updateAutofillOverlayMenuHidden", {
|
||||
isOverlayHidden: isHidden,
|
||||
setTransparentOverlay,
|
||||
});
|
||||
@@ -1002,7 +1002,7 @@ class AutofillOverlayContentService implements AutofillOverlayContentServiceInte
|
||||
}
|
||||
|
||||
private async isInlineMenuCiphersPopulated() {
|
||||
return (await this.sendExtensionMessage("checkIsInlineMenuCiphersPopulated")) === true;
|
||||
return (await this.sendExtensionMessage("checkIsOverlayLoginCiphersPopulated")) === true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -38,7 +38,7 @@ describe("generateRandomCustomElementName", () => {
|
||||
|
||||
describe("sendExtensionMessage", () => {
|
||||
it("sends a message to the extention", () => {
|
||||
const extensionMessageResponse = sendExtensionMessage("updateAutofillOverlayHidden", {
|
||||
const extensionMessageResponse = sendExtensionMessage("updateAutofillOverlayMenuHidden", {
|
||||
display: "none",
|
||||
});
|
||||
jest.spyOn(chrome.runtime, "sendMessage");
|
||||
|
||||
Reference in New Issue
Block a user