1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 16:23:44 +00:00

[PM-5189] Implementing a methodology for triggering subframe updates from layout-shift

This commit is contained in:
Cesar Gonzalez
2024-06-13 11:05:43 -05:00
parent 3413450d56
commit 71b2c27e01
2 changed files with 21 additions and 3 deletions

View File

@@ -398,7 +398,10 @@ describe("OverlayBackground", () => {
const sender = mock<chrome.runtime.MessageSender>({ tab, frameId: middleFrameId });
jest.spyOn(overlayBackground as any, "updateInlineMenuPositionAfterSubFrameRebuild");
sendMockExtensionMessage({ command: "rebuildSubFrameOffsets" }, sender);
sendMockExtensionMessage(
{ command: "rebuildSubFrameOffsets", triggerInlineMenuPositionUpdate: true },
sender,
);
await flushPromises();
jest.advanceTimersByTime(650);
@@ -454,7 +457,10 @@ describe("OverlayBackground", () => {
});
it("updates the position of the inline menu elements", async () => {
sendMockExtensionMessage({ command: "rebuildSubFrameOffsets" }, sender);
sendMockExtensionMessage(
{ command: "rebuildSubFrameOffsets", triggerInlineMenuPositionUpdate: true },
sender,
);
await flushInlineMenuUpdatePromises();
expect(tabsSendMessageSpy).toHaveBeenCalledWith(
@@ -484,7 +490,10 @@ describe("OverlayBackground", () => {
return Promise.resolve();
});
sendMockExtensionMessage({ command: "rebuildSubFrameOffsets" }, sender);
sendMockExtensionMessage(
{ command: "rebuildSubFrameOffsets", triggerInlineMenuPositionUpdate: true },
sender,
);
await flushInlineMenuUpdatePromises();
expect(tabsSendMessageSpy).toHaveBeenCalledWith(

View File

@@ -24,6 +24,15 @@ describe("AutofillOverlayContentService", () => {
let autofillOverlayContentService: AutofillOverlayContentService;
let sendExtensionMessageSpy: jest.SpyInstance;
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(() => {
autofillOverlayContentService = new AutofillOverlayContentService();