From a77d48ddba4b2e2a80fa63d51459adf31931edee Mon Sep 17 00:00:00 2001 From: Jonathan Prusik Date: Mon, 23 Dec 2024 14:26:17 -0500 Subject: [PATCH] convert thrown error on content script injection block to a warning and early return --- .../browser-script-injector.service.spec.ts | 24 +++---------------- .../browser-script-injector.service.ts | 5 +++- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/apps/browser/src/platform/services/browser-script-injector.service.spec.ts b/apps/browser/src/platform/services/browser-script-injector.service.spec.ts index 1a1227d10c0..0919de46776 100644 --- a/apps/browser/src/platform/services/browser-script-injector.service.spec.ts +++ b/apps/browser/src/platform/services/browser-script-injector.service.spec.ts @@ -56,7 +56,6 @@ describe("ScriptInjectorService", () => { const fakeStateProvider: FakeStateProvider = new FakeStateProvider(accountService); let configService: MockProxy; let domainSettingsService: DomainSettingsService; - const expectedBlockedURIError = new Error("This URI of this tab is on the blocked domains list."); beforeEach(() => { jest.spyOn(BrowserApi, "getTab").mockImplementation(async () => tabMock); @@ -70,6 +69,7 @@ describe("ScriptInjectorService", () => { platformUtilsService, logService, ); + jest.spyOn(scriptInjectorService as any, "buildInjectionDetails"); }); describe("inject", () => { @@ -116,32 +116,14 @@ describe("ScriptInjectorService", () => { domainSettingsService.blockedInteractionsUris$ = of({ [mockBlockedURI.host]: null }); manifestVersionSpy.mockReturnValue(3); - await expect( - scriptInjectorService.inject({ - tabId, - injectDetails: { - file: combinedManifestVersionFile, - frame: 10, - ...sharedInjectDetails, - }, - }), - ).rejects.toThrow(expectedBlockedURIError); + await expect(scriptInjectorService["buildInjectionDetails"]).not.toHaveBeenCalled(); }); it("skips injecting the script in manifest v2 when the tab domain is a blocked domain", async () => { domainSettingsService.blockedInteractionsUris$ = of({ [mockBlockedURI.host]: null }); manifestVersionSpy.mockReturnValue(2); - await expect( - scriptInjectorService.inject({ - tabId, - injectDetails: { - file: combinedManifestVersionFile, - frame: "all_frames", - ...sharedInjectDetails, - }, - }), - ).rejects.toThrow(expectedBlockedURIError); + await expect(scriptInjectorService["buildInjectionDetails"]).not.toHaveBeenCalled(); }); it("injects the script in manifest v2 when given combined injection details", async () => { diff --git a/apps/browser/src/platform/services/browser-script-injector.service.ts b/apps/browser/src/platform/services/browser-script-injector.service.ts index 294bd0036b8..c2bace669dc 100644 --- a/apps/browser/src/platform/services/browser-script-injector.service.ts +++ b/apps/browser/src/platform/services/browser-script-injector.service.ts @@ -54,7 +54,10 @@ export class BrowserScriptInjectorService extends ScriptInjectorService { } if (!injectionAllowedInTab) { - throw new Error("This URI of this tab is on the blocked domains list."); + this.logService.warning( + `${injectDetails.file} was not injected because ${tabURL?.hostname || "the tab URI"} is on the user's blocked domains list.`, + ); + return; } const injectionDetails = this.buildInjectionDetails(injectDetails, file);