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

[PM-28038][PM-28276] Ignore url case for origin matching (#17355)

* ignore url case for origin matching

* Fixup typo

* Inject log services
This commit is contained in:
Matt Gibson
2025-11-17 07:37:36 -08:00
committed by GitHub
parent a4d773537e
commit c67715ea29
4 changed files with 12 additions and 6 deletions

View File

@@ -548,7 +548,7 @@ export default class MainBackground {
this.memoryStorageForStateProviders = new BrowserMemoryStorageService(); // mv3 stores to storage.session
this.memoryStorageService = this.memoryStorageForStateProviders;
} else {
this.memoryStorageForStateProviders = new BackgroundMemoryStorageService(); // mv2 stores to memory
this.memoryStorageForStateProviders = new BackgroundMemoryStorageService(this.logService); // mv2 stores to memory
this.memoryStorageService = this.memoryStorageForStateProviders;
}

View File

@@ -60,8 +60,8 @@ export class BrowserApi {
}
// Normalize both URLs by removing trailing slashes
const normalizedOrigin = sender.origin.replace(/\/$/, "");
const normalizedExtensionUrl = extensionUrl.replace(/\/$/, "");
const normalizedOrigin = sender.origin.replace(/\/$/, "").toLowerCase();
const normalizedExtensionUrl = extensionUrl.replace(/\/$/, "").toLowerCase();
if (!normalizedOrigin.startsWith(normalizedExtensionUrl)) {
logger?.warning(

View File

@@ -1,6 +1,7 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
import { LogService } from "@bitwarden/logging";
import { SerializedMemoryStorageService } from "@bitwarden/storage-core";
import { BrowserApi } from "../browser/browser-api";
@@ -11,14 +12,14 @@ import { portName } from "./port-name";
export class BackgroundMemoryStorageService extends SerializedMemoryStorageService {
private _ports: chrome.runtime.Port[] = [];
constructor() {
constructor(private readonly logService: LogService) {
super();
BrowserApi.addListener(chrome.runtime.onConnect, (port) => {
if (port.name !== portName(chrome.storage.session)) {
return;
}
if (!BrowserApi.senderIsInternal(port.sender)) {
if (!BrowserApi.senderIsInternal(port.sender, this.logService)) {
return;
}

View File

@@ -4,6 +4,9 @@
*/
import { trackEmissions } from "@bitwarden/common/../spec/utils";
import { mock, MockProxy } from "jest-mock-extended";
import { LogService } from "@bitwarden/logging";
import { mockPorts } from "../../../spec/mock-port.spec-util";
@@ -14,11 +17,13 @@ import { ForegroundMemoryStorageService } from "./foreground-memory-storage.serv
describe.skip("foreground background memory storage interaction", () => {
let foreground: ForegroundMemoryStorageService;
let background: BackgroundMemoryStorageService;
let logService: MockProxy<LogService>;
beforeEach(() => {
mockPorts();
logService = mock();
background = new BackgroundMemoryStorageService();
background = new BackgroundMemoryStorageService(logService);
foreground = new ForegroundMemoryStorageService();
});