1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-06 00:13:28 +00:00
This commit is contained in:
Daniel Riera
2025-06-02 11:24:47 -04:00
committed by GitHub
parent 4c3c1969b5
commit 37e13050a5
8 changed files with 5 additions and 59 deletions

View File

@@ -3,7 +3,6 @@ import { BehaviorSubject } from "rxjs";
import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status";
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { Fido2ActiveRequestManager } from "@bitwarden/common/platform/abstractions/fido2/fido2-active-request-manager.abstraction";
import {
AssertCredentialParams,
@@ -60,7 +59,6 @@ describe("Fido2Background", () => {
let fido2ClientService!: MockProxy<Fido2ClientService<BrowserFido2ParentWindowReference>>;
let vaultSettingsService!: MockProxy<VaultSettingsService>;
let scriptInjectorServiceMock!: MockProxy<BrowserScriptInjectorService>;
let configServiceMock!: MockProxy<ConfigService>;
let enablePasskeysMock$!: BehaviorSubject<boolean>;
let activeAccountStatusMock$: BehaviorSubject<AuthenticationStatus>;
let authServiceMock!: MockProxy<AuthService>;
@@ -80,7 +78,6 @@ describe("Fido2Background", () => {
abortController = mock<AbortController>();
registeredContentScripsMock = mock<browser.contentScripts.RegisteredContentScript>();
scriptInjectorServiceMock = mock<BrowserScriptInjectorService>();
configServiceMock = mock<ConfigService>();
enablePasskeysMock$ = new BehaviorSubject(true);
vaultSettingsService.enablePasskeys$ = enablePasskeysMock$;
@@ -95,7 +92,6 @@ describe("Fido2Background", () => {
fido2ClientService,
vaultSettingsService,
scriptInjectorServiceMock,
configServiceMock,
authServiceMock,
);
fido2Background["abortManager"] = abortManagerMock;
@@ -186,7 +182,7 @@ describe("Fido2Background", () => {
expect(scriptInjectorServiceMock.inject).toHaveBeenCalledWith({
tabId: tabMock.id,
injectDetails: sharedScriptInjectionDetails,
mv2Details: { file: Fido2ContentScript.PageScriptAppend },
mv2Details: { file: Fido2ContentScript.PageScriptDelayAppend },
mv3Details: { file: Fido2ContentScript.PageScript, world: "MAIN" },
});
expect(scriptInjectorServiceMock.inject).toHaveBeenCalledWith({
@@ -202,22 +198,6 @@ describe("Fido2Background", () => {
enablePasskeysMock$.next(true);
await flushPromises();
expect(BrowserApi.registerContentScriptsMv2).toHaveBeenCalledWith({
js: [
{ file: Fido2ContentScript.PageScriptAppend },
{ file: Fido2ContentScript.ContentScript },
],
...sharedRegistrationOptions,
});
});
it("registers the page-script-delay-append-mv2.js content script when the DelayFido2PageScriptInitWithinMv2 feature flag is enabled", async () => {
configServiceMock.getFeatureFlag.mockResolvedValue(true);
isManifestVersionSpy.mockImplementation((manifestVersion) => manifestVersion === 2);
enablePasskeysMock$.next(true);
await flushPromises();
expect(BrowserApi.registerContentScriptsMv2).toHaveBeenCalledWith({
js: [
{ file: Fido2ContentScript.PageScriptDelayAppend },

View File

@@ -5,8 +5,6 @@ import { pairwise } from "rxjs/operators";
import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status";
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { Fido2ActiveRequestManager } from "@bitwarden/common/platform/abstractions/fido2/fido2-active-request-manager.abstraction";
import {
AssertCredentialParams,
@@ -60,7 +58,6 @@ export class Fido2Background implements Fido2BackgroundInterface {
private fido2ClientService: Fido2ClientService<BrowserFido2ParentWindowReference>,
private vaultSettingsService: VaultSettingsService,
private scriptInjectorService: ScriptInjectorService,
private configService: ConfigService,
private authService: AuthService,
) {}
@@ -403,14 +400,6 @@ export class Fido2Background implements Fido2BackgroundInterface {
* delayed append script if the associated feature flag is enabled.
*/
private async getFido2PageScriptAppendFileName() {
const shouldDelayInit = await this.configService.getFeatureFlag(
FeatureFlag.DelayFido2PageScriptInitWithinMv2,
);
if (shouldDelayInit) {
return Fido2ContentScript.PageScriptDelayAppend;
}
return Fido2ContentScript.PageScriptAppend;
return Fido2ContentScript.PageScriptDelayAppend;
}
}

View File

@@ -24,7 +24,7 @@ describe("FIDO2 page-script for manifest v2", () => {
// FIXME: Remove when updating file. Eslint update
// eslint-disable-next-line @typescript-eslint/no-require-imports
require("./fido2-page-script-append.mv2");
require("./fido2-page-script-delay-append.mv2.ts");
expect(window.document.createElement).not.toHaveBeenCalled();
});
@@ -37,7 +37,7 @@ describe("FIDO2 page-script for manifest v2", () => {
// FIXME: Remove when updating file. Eslint update
// eslint-disable-next-line @typescript-eslint/no-require-imports
require("./fido2-page-script-append.mv2");
require("./fido2-page-script-delay-append.mv2.ts");
expect(window.document.createElement).toHaveBeenCalledWith("script");
expect(chrome.runtime.getURL).toHaveBeenCalledWith(Fido2ContentScript.PageScript);
@@ -54,7 +54,7 @@ describe("FIDO2 page-script for manifest v2", () => {
// FIXME: Remove when updating file. Eslint update
// eslint-disable-next-line @typescript-eslint/no-require-imports
require("./fido2-page-script-append.mv2");
require("./fido2-page-script-delay-append.mv2.ts");
expect(window.document.createElement).toHaveBeenCalledWith("script");
expect(chrome.runtime.getURL).toHaveBeenCalledWith(Fido2ContentScript.PageScript);

View File

@@ -1,17 +0,0 @@
/**
* This script handles injection of the FIDO2 override page script into the document.
* This is required for manifest v2, but will be removed when we migrate fully to manifest v3.
*/
(function (globalContext) {
if (globalContext.document.contentType !== "text/html") {
return;
}
const script = globalContext.document.createElement("script");
script.src = chrome.runtime.getURL("content/fido2-page-script.js");
script.async = false;
const scriptInsertionPoint =
globalContext.document.head || globalContext.document.documentElement;
scriptInsertionPoint.prepend(script);
})(globalThis);

View File

@@ -1,6 +1,5 @@
export const Fido2ContentScript = {
PageScript: "content/fido2-page-script.js",
PageScriptAppend: "content/fido2-page-script-append-mv2.js",
PageScriptDelayAppend: "content/fido2-page-script-delay-append-mv2.js",
ContentScript: "content/fido2-content-script.js",
} as const;

View File

@@ -1156,7 +1156,6 @@ export default class MainBackground {
this.fido2ClientService,
this.vaultSettingsService,
this.scriptInjectorService,
this.configService,
this.authService,
);

View File

@@ -324,8 +324,6 @@ if (manifestVersion == 2) {
// Manifest V2 background pages can be run through the regular build pipeline.
// Since it's a standard webpage.
mainConfig.entry.background = "./src/platform/background.ts";
mainConfig.entry["content/fido2-page-script-append-mv2"] =
"./src/autofill/fido2/content/fido2-page-script-append.mv2.ts";
mainConfig.entry["content/fido2-page-script-delay-append-mv2"] =
"./src/autofill/fido2/content/fido2-page-script-delay-append.mv2.ts";

View File

@@ -21,7 +21,6 @@ export enum FeatureFlag {
/* Autofill */
BlockBrowserInjectionsByDomain = "block-browser-injections-by-domain",
DelayFido2PageScriptInitWithinMv2 = "delay-fido2-page-script-init-within-mv2",
EnableNewCardCombinedExpiryAutofill = "enable-new-card-combined-expiry-autofill",
IdpAutoSubmitLogin = "idp-auto-submit-login",
NotificationRefresh = "notification-refresh",
@@ -87,7 +86,6 @@ export const DefaultFeatureFlagValue = {
/* Autofill */
[FeatureFlag.BlockBrowserInjectionsByDomain]: FALSE,
[FeatureFlag.DelayFido2PageScriptInitWithinMv2]: FALSE,
[FeatureFlag.EnableNewCardCombinedExpiryAutofill]: FALSE,
[FeatureFlag.IdpAutoSubmitLogin]: FALSE,
[FeatureFlag.NotificationRefresh]: FALSE,