Browse Source

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

* ignore url case for origin matching

* Fixup typo

* Inject log services

(cherry picked from commit c67715ea29)
hotfix-rc-desktop desktop-v2025.11.1
Matt Gibson 1 month ago
parent
commit
7550d1109a
No known key found for this signature in database
  1. 2
      apps/browser/src/background/main.background.ts
  2. 4
      apps/browser/src/platform/browser/browser-api.ts
  3. 5
      apps/browser/src/platform/storage/background-memory-storage.service.ts
  4. 7
      apps/browser/src/platform/storage/memory-storage-service-interactions.spec.ts

2
apps/browser/src/background/main.background.ts

@ -556,7 +556,7 @@ export default class MainBackground { @@ -556,7 +556,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;
}

4
apps/browser/src/platform/browser/browser-api.ts

@ -60,8 +60,8 @@ export class BrowserApi { @@ -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(

5
apps/browser/src/platform/storage/background-memory-storage.service.ts

@ -1,6 +1,7 @@ @@ -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"; @@ -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;
}

7
apps/browser/src/platform/storage/memory-storage-service-interactions.spec.ts

@ -4,6 +4,9 @@ @@ -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 @@ -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();
});

Loading…
Cancel
Save