From 71b2c27e0139f0dd553837d01caaf4972c85c748 Mon Sep 17 00:00:00 2001 From: Cesar Gonzalez Date: Thu, 13 Jun 2024 11:05:43 -0500 Subject: [PATCH] [PM-5189] Implementing a methodology for triggering subframe updates from layout-shift --- .../background/overlay.background.spec.ts | 15 ++++++++++++--- .../autofill-overlay-content.service.spec.ts | 9 +++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/apps/browser/src/autofill/background/overlay.background.spec.ts b/apps/browser/src/autofill/background/overlay.background.spec.ts index 692efdabeb5..a8fe4f9a97e 100644 --- a/apps/browser/src/autofill/background/overlay.background.spec.ts +++ b/apps/browser/src/autofill/background/overlay.background.spec.ts @@ -398,7 +398,10 @@ describe("OverlayBackground", () => { const sender = mock({ 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( diff --git a/apps/browser/src/autofill/services/autofill-overlay-content.service.spec.ts b/apps/browser/src/autofill/services/autofill-overlay-content.service.spec.ts index 5e2d6cdee19..2c0cfcc7228 100644 --- a/apps/browser/src/autofill/services/autofill-overlay-content.service.spec.ts +++ b/apps/browser/src/autofill/services/autofill-overlay-content.service.spec.ts @@ -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();