mirror of
https://github.com/bitwarden/browser
synced 2025-12-17 00:33:44 +00:00
[PM-5189] Implementing a methodology for triggering subframe updates from layout-shift
This commit is contained in:
@@ -398,7 +398,10 @@ describe("OverlayBackground", () => {
|
|||||||
const sender = mock<chrome.runtime.MessageSender>({ tab, frameId: middleFrameId });
|
const sender = mock<chrome.runtime.MessageSender>({ tab, frameId: middleFrameId });
|
||||||
jest.spyOn(overlayBackground as any, "updateInlineMenuPositionAfterSubFrameRebuild");
|
jest.spyOn(overlayBackground as any, "updateInlineMenuPositionAfterSubFrameRebuild");
|
||||||
|
|
||||||
sendMockExtensionMessage({ command: "rebuildSubFrameOffsets" }, sender);
|
sendMockExtensionMessage(
|
||||||
|
{ command: "rebuildSubFrameOffsets", triggerInlineMenuPositionUpdate: true },
|
||||||
|
sender,
|
||||||
|
);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
jest.advanceTimersByTime(650);
|
jest.advanceTimersByTime(650);
|
||||||
|
|
||||||
@@ -454,7 +457,10 @@ describe("OverlayBackground", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("updates the position of the inline menu elements", async () => {
|
it("updates the position of the inline menu elements", async () => {
|
||||||
sendMockExtensionMessage({ command: "rebuildSubFrameOffsets" }, sender);
|
sendMockExtensionMessage(
|
||||||
|
{ command: "rebuildSubFrameOffsets", triggerInlineMenuPositionUpdate: true },
|
||||||
|
sender,
|
||||||
|
);
|
||||||
await flushInlineMenuUpdatePromises();
|
await flushInlineMenuUpdatePromises();
|
||||||
|
|
||||||
expect(tabsSendMessageSpy).toHaveBeenCalledWith(
|
expect(tabsSendMessageSpy).toHaveBeenCalledWith(
|
||||||
@@ -484,7 +490,10 @@ describe("OverlayBackground", () => {
|
|||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
});
|
});
|
||||||
|
|
||||||
sendMockExtensionMessage({ command: "rebuildSubFrameOffsets" }, sender);
|
sendMockExtensionMessage(
|
||||||
|
{ command: "rebuildSubFrameOffsets", triggerInlineMenuPositionUpdate: true },
|
||||||
|
sender,
|
||||||
|
);
|
||||||
await flushInlineMenuUpdatePromises();
|
await flushInlineMenuUpdatePromises();
|
||||||
|
|
||||||
expect(tabsSendMessageSpy).toHaveBeenCalledWith(
|
expect(tabsSendMessageSpy).toHaveBeenCalledWith(
|
||||||
|
|||||||
@@ -24,6 +24,15 @@ describe("AutofillOverlayContentService", () => {
|
|||||||
let autofillOverlayContentService: AutofillOverlayContentService;
|
let autofillOverlayContentService: AutofillOverlayContentService;
|
||||||
let sendExtensionMessageSpy: jest.SpyInstance;
|
let sendExtensionMessageSpy: jest.SpyInstance;
|
||||||
const sendResponseSpy = jest.fn();
|
const sendResponseSpy = jest.fn();
|
||||||
|
beforeAll(() => {
|
||||||
|
const mockPerformanceObserver = jest.fn();
|
||||||
|
mockPerformanceObserver.mockReturnValue({
|
||||||
|
observe: jest.fn(),
|
||||||
|
disconnect: jest.fn(),
|
||||||
|
});
|
||||||
|
// @ts-expect-error Need to mock the performance observer
|
||||||
|
global.PerformanceObserver = mockPerformanceObserver;
|
||||||
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
autofillOverlayContentService = new AutofillOverlayContentService();
|
autofillOverlayContentService = new AutofillOverlayContentService();
|
||||||
|
|||||||
Reference in New Issue
Block a user