mirror of
https://github.com/bitwarden/browser
synced 2025-12-06 00:13:28 +00:00
PM-16649 (#14656)
This commit is contained in:
@@ -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 },
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
@@ -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;
|
||||
|
||||
@@ -1156,7 +1156,6 @@ export default class MainBackground {
|
||||
this.fido2ClientService,
|
||||
this.vaultSettingsService,
|
||||
this.scriptInjectorService,
|
||||
this.configService,
|
||||
this.authService,
|
||||
);
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user