diff --git a/config/main-sync-spawn-baseline.txt b/config/main-sync-spawn-baseline.txt index 43e9437cb77..8e2e8c6ca63 100644 --- a/config/main-sync-spawn-baseline.txt +++ b/config/main-sync-spawn-baseline.txt @@ -6,7 +6,7 @@ # conventions. This is a RATCHET: counts may only go DOWN. # Prune after removing launches: pnpm check:main-sync-spawn-ratchet --prune 1 src/main/agent-hooks/installer-utils.ts -2 src/main/browser/browser-cookie-key.ts +2 src/main/browser/cookies/sources/browser-cookie-key.ts 1 src/main/browser/browser-route-egress-electron-launch.ts 1 src/main/browser/browser-route-partition-binding-store.ts 1 src/main/browser/browser-route-persisted-worker-electron-process.ts diff --git a/config/scripts/ci-shard-timings.json b/config/scripts/ci-shard-timings.json index bc6de7edce4..a42bff50451 100644 --- a/config/scripts/ci-shard-timings.json +++ b/config/scripts/ci-shard-timings.json @@ -1077,7 +1077,7 @@ "src/main/browser/browser-cookie-clear-preserve.test.ts": 126, "src/main/browser/browser-cookie-clear-store-lifecycle.test.ts": 78, "src/main/browser/browser-cookie-clear-store.test.ts": 100, - "src/main/browser/browser-cookie-decryption.test.ts": 64, + "src/main/browser/cookies/sources/browser-cookie-decryption.test.ts": 64, "src/main/browser/browser-cookie-import-clear-atomicity.test.ts": 71, "src/main/browser/browser-cookie-import-concurrency.test.ts": 573, "src/main/browser/browser-cookie-import-google-exclusion.test.ts": 518, @@ -1093,7 +1093,7 @@ "src/main/browser/browser-cookie-import-route-partition-staging.test.ts": 643, "src/main/browser/browser-cookie-import-scope.test.ts": 424, "src/main/browser/browser-cookie-import-snapshot-ownership.test.ts": 722, - "src/main/browser/browser-cookie-import-undecryptable.test.ts": 962, + "src/main/browser/cookies/sources/browser-cookie-import-undecryptable.test.ts": 962, "src/main/browser/browser-cookie-import-validated-partition.electron.test.ts": 722, "src/main/browser/browser-cookie-import-write.test.ts": 69, "src/main/browser/browser-cookie-import.comet.test.ts": 1035, @@ -1103,7 +1103,7 @@ "src/main/browser/browser-cookie-public-suffix-scope.test.ts": 72, "src/main/browser/browser-cookie-registrable-family.test.ts": 80, "src/main/browser/browser-cookie-samesite.electron.test.ts": 1072, - "src/main/browser/browser-cookie-source-partition.test.ts": 54, + "src/main/browser/cookies/sources/browser-cookie-source-partition.test.ts": 54, "src/main/browser/browser-cookie-validation.test.ts": 68, "src/main/browser/browser-download-destination.test.ts": 43, "src/main/browser/browser-execution-host-storage-identity.test.ts": 191, diff --git a/config/scripts/vitest-node-runtime-files.mjs b/config/scripts/vitest-node-runtime-files.mjs index 7b9e048a0fb..88512a64286 100644 --- a/config/scripts/vitest-node-runtime-files.mjs +++ b/config/scripts/vitest-node-runtime-files.mjs @@ -124,6 +124,9 @@ const NODE_RUNTIME_INCLUDE = [ 'src/main/foreign-sqlite-readers/**/*.test.ts', 'src/main/browser/*cookie*.test.ts', 'src/main/browser/cookies/sources/browser-cookie-validation.test.ts', + 'src/main/browser/cookies/sources/browser-cookie-decryption.test.ts', + 'src/main/browser/cookies/sources/browser-cookie-import-undecryptable.test.ts', + 'src/main/browser/cookies/sources/browser-cookie-source-partition.test.ts', // Playwright's CDP transport needs Node's WebSocket implementation. 'src/main/browser/browser-popup-adapter-compatibility.electron.test.ts', 'src/main/browser/popup-origin-chrome.electron.test.ts', diff --git a/src/main/browser/browser-cookie-clear-store.ts b/src/main/browser/browser-cookie-clear-store.ts index 3b885f5dc0d..9ea20e67ba8 100644 --- a/src/main/browser/browser-cookie-clear-store.ts +++ b/src/main/browser/browser-cookie-clear-store.ts @@ -8,7 +8,7 @@ import type { CookieImportWriteStore } from './browser-cookie-import-clear' import { restoreEveryCookieIdentity } from './browser-cookie-identity-restore' -import { normalizeCookiePartitionSite } from './browser-cookie-source-partition' +import { normalizeCookiePartitionSite } from './cookies/sources/browser-cookie-source-partition' type CdpCookiePartitionKey = { topLevelSite?: string diff --git a/src/main/browser/browser-cookie-import-snapshot-ownership.test.ts b/src/main/browser/browser-cookie-import-snapshot-ownership.test.ts index a302b847196..225737e4201 100644 --- a/src/main/browser/browser-cookie-import-snapshot-ownership.test.ts +++ b/src/main/browser/browser-cookie-import-snapshot-ownership.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import type * as NodeSqlite from 'node:sqlite' import type * as ChromiumCookieSnapshotModule from './chromium-cookie-snapshot' -import type { DetectedBrowser } from './browser-cookie-detection-types' +import type { DetectedBrowser } from './cookies/sources/browser-cookie-detection-types' import { existsSync, mkdtempSync, readdirSync, readFileSync, rmSync } from 'node:fs' import { basename, dirname, join } from 'node:path' import { tmpdir } from 'node:os' diff --git a/src/main/browser/browser-cookie-import-write.test.ts b/src/main/browser/browser-cookie-import-write.test.ts index c2303daf41a..066550ed399 100644 --- a/src/main/browser/browser-cookie-import-write.test.ts +++ b/src/main/browser/browser-cookie-import-write.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest' import type { CookieClearIdentity } from './browser-cookie-import-clear' -import type { SourcePartitionRead } from './browser-cookie-source-partition' +import type { SourcePartitionRead } from './cookies/sources/browser-cookie-source-partition' import { writeImportedCookies, type SourceCookieToWrite } from './browser-cookie-import-write' const PARTITION_KEY = { topLevelSite: 'https://top.example', hasCrossSiteAncestor: true } diff --git a/src/main/browser/browser-cookie-import-write.ts b/src/main/browser/browser-cookie-import-write.ts index be2b0ec76e2..6a36c66982c 100644 --- a/src/main/browser/browser-cookie-import-write.ts +++ b/src/main/browser/browser-cookie-import-write.ts @@ -5,7 +5,7 @@ import type { CookieImportWriteStore } from './browser-cookie-import-clear' import { registrableFamily } from './browser-cookie-import-policy' -import type { SourcePartitionRead } from './browser-cookie-source-partition' +import type { SourcePartitionRead } from './cookies/sources/browser-cookie-source-partition' export type ImportedCookieFields = { url: string diff --git a/src/main/browser/browser-cookie-import.ts b/src/main/browser/browser-cookie-import.ts index 9f5a5eaf774..709487de775 100644 --- a/src/main/browser/browser-cookie-import.ts +++ b/src/main/browser/browser-cookie-import.ts @@ -3,20 +3,23 @@ import type { BrowserCookieImportResult } from '../../shared/browser-workspace-t import { detectInstalledBrowsers as detectBrowsers, selectBrowserProfile as selectProfile -} from './browser-cookie-detection' -import type { BrowserProfile, DetectedBrowser } from './browser-cookie-detection-types' +} from './cookies/sources/browser-cookie-detection' +import type { + BrowserProfile, + DetectedBrowser +} from './cookies/sources/browser-cookie-detection-types' import { pickCookieFile as pickFile, importCookiesFromFile as importFile, type CookieImportOptions } from './browser-cookie-import-pipeline' import { importChromiumCookies } from './cookies/chromium/import-cookies' -import { importCookiesFromFirefox } from './browser-cookie-firefox-import' -import { importCookiesFromSafari } from './browser-cookie-safari-import' +import { importCookiesFromFirefox } from './cookies/sources/browser-cookie-firefox-import' +import { importCookiesFromSafari } from './cookies/sources/browser-cookie-safari-import' import { buildChromiumCookieInsertParams as buildInsertParams, type ChromiumCookieColumnInfo -} from './browser-cookie-sqlite' +} from './cookies/sources/browser-cookie-sqlite' import { summarizeCookieImportError as summarizeError } from './browser-cookie-import-diagnostics' export type { BrowserProfile, DetectedBrowser, CookieImportOptions, ChromiumCookieColumnInfo } diff --git a/src/main/browser/cookies/chromium/import-context.ts b/src/main/browser/cookies/chromium/import-context.ts index a3836f3ee99..36f25d6113f 100644 --- a/src/main/browser/cookies/chromium/import-context.ts +++ b/src/main/browser/cookies/chromium/import-context.ts @@ -4,7 +4,7 @@ import type { BrowserCookieImportResult, BrowserCookieImportSummary } from '../../../../shared/browser-workspace-types' -import type { DetectedBrowser } from '../../browser-cookie-detection-types' +import type { DetectedBrowser } from '../sources/browser-cookie-detection-types' import type { CookieImportOptions } from '../../browser-cookie-import-pipeline' import type { ImportedCookieFields, @@ -12,10 +12,13 @@ import type { ImportWritePlanResult, SourceCookieToWrite } from '../../browser-cookie-import-write' -import type { SourcePartitionRead } from '../../browser-cookie-source-partition' +import type { SourcePartitionRead } from '../sources/browser-cookie-source-partition' import type { ImportedDomainScope } from '../../browser-cookie-import-policy' import type { ChromiumCookieSnapshot } from '../../chromium-cookie-snapshot' -import type { ChromiumCookieColumnInfo, EncryptionKeyResult } from '../../browser-cookie-sqlite' +import type { + ChromiumCookieColumnInfo, + EncryptionKeyResult +} from '../sources/browser-cookie-sqlite' export type ChromiumSourceRow = Record diff --git a/src/main/browser/cookies/chromium/import-cookies.ts b/src/main/browser/cookies/chromium/import-cookies.ts index 04c4279fe0d..50151ecf62e 100644 --- a/src/main/browser/cookies/chromium/import-cookies.ts +++ b/src/main/browser/cookies/chromium/import-cookies.ts @@ -7,7 +7,7 @@ import { reasonWithDiagLog, summarizeCookieImportError } from '../../browser-cookie-import-diagnostics' -import type { DetectedBrowser } from '../../browser-cookie-detection-types' +import type { DetectedBrowser } from '../sources/browser-cookie-detection-types' import type { CookieImportOptions } from '../../browser-cookie-import-pipeline' import { prepareChromiumCookieImport } from './prepare-import' import { scanChromiumCookieRows } from './scan-source-rows' diff --git a/src/main/browser/cookies/chromium/prepare-import.ts b/src/main/browser/cookies/chromium/prepare-import.ts index 349684d84e2..edc69f1d0f7 100644 --- a/src/main/browser/cookies/chromium/prepare-import.ts +++ b/src/main/browser/cookies/chromium/prepare-import.ts @@ -13,14 +13,14 @@ import { createChromiumCookieSnapshot } from '../../chromium-cookie-snapshot' import { resolveChromiumCookiesPath } from '../../chromium-cookie-path' import { copyFileWithWindowsRetry } from '../../../../shared/windows-retry-file-operations' import { planImportWrites } from '../../browser-cookie-import-write' -import { readChromiumRowPartition } from '../../browser-cookie-source-partition' +import { readChromiumRowPartition } from '../sources/browser-cookie-source-partition' import { diag } from '../../browser-cookie-import-diagnostics' -import type { DetectedBrowser } from '../../browser-cookie-detection-types' +import type { DetectedBrowser } from '../sources/browser-cookie-detection-types' import type { CookieImportOptions } from '../../browser-cookie-import-pipeline' -import type { ChromiumCookieColumnInfo } from '../../browser-cookie-sqlite' +import type { ChromiumCookieColumnInfo } from '../sources/browser-cookie-sqlite' import type { ChromiumImportContext } from './import-context' import type { Session } from 'electron' -import { getEncryptionKey } from '../../browser-cookie-key' +import { getEncryptionKey } from '../sources/browser-cookie-key' export type ChromiumImportPreparation = | { context: ChromiumImportContext } diff --git a/src/main/browser/cookies/chromium/scan-source-rows.ts b/src/main/browser/cookies/chromium/scan-source-rows.ts index 622da4b55d7..018e84bb28d 100644 --- a/src/main/browser/cookies/chromium/scan-source-rows.ts +++ b/src/main/browser/cookies/chromium/scan-source-rows.ts @@ -9,13 +9,13 @@ import { prepareStagedCookiesForImport } from '../../browser-cookie-staged-impor import { chromiumTimestampToUnix, buildChromiumCookieInsertParams -} from '../../browser-cookie-sqlite' +} from '../sources/browser-cookie-sqlite' import { databaseSameSite } from '../sources/browser-cookie-validation' import { buildUndecryptableWarning, cookieEncryptionVersion, decryptCookieValueRaw -} from '../../browser-cookie-decryption' +} from '../sources/browser-cookie-decryption' import { diag } from '../../browser-cookie-import-diagnostics' import type { ChromiumImportContext } from './import-context' diff --git a/src/main/browser/browser-cookie-decryption.test.ts b/src/main/browser/cookies/sources/browser-cookie-decryption.test.ts similarity index 100% rename from src/main/browser/browser-cookie-decryption.test.ts rename to src/main/browser/cookies/sources/browser-cookie-decryption.test.ts diff --git a/src/main/browser/browser-cookie-decryption.ts b/src/main/browser/cookies/sources/browser-cookie-decryption.ts similarity index 97% rename from src/main/browser/browser-cookie-decryption.ts rename to src/main/browser/cookies/sources/browser-cookie-decryption.ts index 3c9cd417fbf..809e3e68498 100644 --- a/src/main/browser/browser-cookie-decryption.ts +++ b/src/main/browser/cookies/sources/browser-cookie-decryption.ts @@ -1,5 +1,5 @@ import { createDecipheriv, createHash } from 'node:crypto' -import type { BrowserCookieImportSummary } from '../../shared/browser-workspace-types' +import type { BrowserCookieImportSummary } from '../../../../shared/browser-workspace-types' import type { EncryptionKeyResult } from './browser-cookie-sqlite' // The fallback heuristic treats 8 nonprintable bytes in a 32-byte prefix as a host hash. diff --git a/src/main/browser/browser-cookie-detection-types.ts b/src/main/browser/cookies/sources/browser-cookie-detection-types.ts similarity index 98% rename from src/main/browser/browser-cookie-detection-types.ts rename to src/main/browser/cookies/sources/browser-cookie-detection-types.ts index c1a54532d73..872d544d1e2 100644 --- a/src/main/browser/browser-cookie-detection-types.ts +++ b/src/main/browser/cookies/sources/browser-cookie-detection-types.ts @@ -1,6 +1,6 @@ import { existsSync, readFileSync, readdirSync } from 'node:fs' import { join } from 'node:path' -import type { BrowserSessionProfileSource } from '../../shared/browser-workspace-types' +import type { BrowserSessionProfileSource } from '../../../../shared/browser-workspace-types' export type BrowserProfile = { name: string diff --git a/src/main/browser/browser-cookie-detection.ts b/src/main/browser/cookies/sources/browser-cookie-detection.ts similarity index 97% rename from src/main/browser/browser-cookie-detection.ts rename to src/main/browser/cookies/sources/browser-cookie-detection.ts index 36598ceb0ab..3780a7e0900 100644 --- a/src/main/browser/browser-cookie-detection.ts +++ b/src/main/browser/cookies/sources/browser-cookie-detection.ts @@ -1,6 +1,6 @@ import { existsSync } from 'node:fs' import { join } from 'node:path' -import { resolveChromiumCookiesPath } from './chromium-cookie-path' +import { resolveChromiumCookiesPath } from '../../chromium-cookie-path' import { CHROMIUM_BROWSERS, browserRootPath, diff --git a/src/main/browser/browser-cookie-firefox-import.ts b/src/main/browser/cookies/sources/browser-cookie-firefox-import.ts similarity index 92% rename from src/main/browser/browser-cookie-firefox-import.ts rename to src/main/browser/cookies/sources/browser-cookie-firefox-import.ts index f418c0ecea4..4073cb01683 100644 --- a/src/main/browser/browser-cookie-firefox-import.ts +++ b/src/main/browser/cookies/sources/browser-cookie-firefox-import.ts @@ -2,20 +2,16 @@ import { DatabaseSync } from 'node:sqlite' import { copyFileSync, existsSync, mkdtempSync, rmSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' -import type { BrowserCookieImportResult } from '../../shared/browser-workspace-types' +import type { BrowserCookieImportResult } from '../../../../shared/browser-workspace-types' import { readFirefoxRowPartition } from './browser-cookie-source-partition' import { importValidatedCookies, cookieImportTarget, type CookieImportOptions -} from './browser-cookie-import-pipeline' -import { - databaseSameSite, - deriveUrl, - type ValidatedCookie -} from './cookies/sources/browser-cookie-validation' +} from '../../browser-cookie-import-pipeline' +import { databaseSameSite, deriveUrl, type ValidatedCookie } from './browser-cookie-validation' import type { DetectedBrowser } from './browser-cookie-detection-types' -import { diag } from './browser-cookie-import-diagnostics' +import { diag } from '../../browser-cookie-import-diagnostics' export async function importCookiesFromFirefox( browser: DetectedBrowser, diff --git a/src/main/browser/browser-cookie-import-undecryptable.test.ts b/src/main/browser/cookies/sources/browser-cookie-import-undecryptable.test.ts similarity index 91% rename from src/main/browser/browser-cookie-import-undecryptable.test.ts rename to src/main/browser/cookies/sources/browser-cookie-import-undecryptable.test.ts index 2b68fa18254..aa9ce9f4472 100644 --- a/src/main/browser/browser-cookie-import-undecryptable.test.ts +++ b/src/main/browser/cookies/sources/browser-cookie-import-undecryptable.test.ts @@ -6,7 +6,7 @@ import type { CookiesGetFilter } from 'electron' const { appGetPathMock, createDecipherivMock, - execFileSyncMock, + runProcessSyncMock, sessionFromPartitionMock, dialogShowOpenDialogMock, setPendingCookieImportMock, @@ -15,7 +15,7 @@ const { } = vi.hoisted(() => ({ appGetPathMock: vi.fn(), createDecipherivMock: vi.fn(), - execFileSyncMock: vi.fn(), + runProcessSyncMock: vi.fn(), sessionFromPartitionMock: vi.fn(), dialogShowOpenDialogMock: vi.fn(), setPendingCookieImportMock: vi.fn(), @@ -28,13 +28,15 @@ vi.mock('node:crypto', async (importOriginal) => { createDecipherivMock.mockImplementation(original.createDecipheriv) return { ...original, createDecipheriv: createDecipherivMock } }) -vi.mock('./browser-session-registry', () => ({ +vi.mock('../../browser-session-registry', () => ({ browserSessionRegistry: { setPendingCookieImport: setPendingCookieImportMock, clearPendingCookieImport: clearPendingCookieImportMock } })) -vi.mock('node:child_process', () => ({ execFileSync: execFileSyncMock })) +vi.mock('@orca/process-host', () => ({ + runProcessSync: runProcessSyncMock +})) vi.mock('node:fs', async (importOriginal) => ({ ...(await importOriginal()) })) vi.mock('electron', () => ({ app: { getPath: appGetPathMock }, @@ -42,7 +44,7 @@ vi.mock('electron', () => ({ dialog: { showOpenDialog: dialogShowOpenDialogMock }, session: { fromPartition: sessionFromPartitionMock } })) -vi.mock('./browser-cookie-clear-store', () => ({ +vi.mock('../../browser-cookie-clear-store', () => ({ openCookieClearStore: (targetSession: { cookies: { get: (filter: CookiesGetFilter) => Promise @@ -60,8 +62,9 @@ vi.mock('./browser-cookie-clear-store', () => ({ }) })) -import { importCookiesFromBrowser, type DetectedBrowser } from './browser-cookie-import' -import { createChromiumCookieTestDatabase } from './browser-cookie-import-test-database' +import { importCookiesFromBrowser } from '../../browser-cookie-import' +import type { DetectedBrowser } from './browser-cookie-detection-types' +import { createChromiumCookieTestDatabase } from '../../browser-cookie-import-test-database' import { mkdtempSync, rmSync } from 'node:fs' import { join } from 'node:path' import { tmpdir } from 'node:os' @@ -125,15 +128,29 @@ describe('importCookiesFromBrowser — undecryptable cookies', () => { getStoragePath: vi.fn().mockReturnValue(join(tmpDir, 'userData', 'Partitions', 'test')) }) platformSpy = vi.spyOn(process, 'platform', 'get').mockReturnValue('linux') - execFileSyncMock.mockImplementation(() => { + runProcessSyncMock.mockImplementation(() => { throw new Error('secret-tool: no such service') }) }) afterEach(() => { - platformSpy.mockRestore() - vi.clearAllMocks() - rmSync(tmpDir, { recursive: true, force: true }) + try { + expect(runProcessSyncMock).toHaveBeenCalledTimes(2) + expect(runProcessSyncMock).toHaveBeenNthCalledWith(1, { + program: 'secret-tool', + args: ['lookup', 'service', 'Chrome Safe Storage', 'account', 'Chrome'], + timeoutMs: 5_000 + }) + expect(runProcessSyncMock).toHaveBeenNthCalledWith(2, { + program: 'secret-tool', + args: ['lookup', 'application', 'chrome'], + timeoutMs: 5_000 + }) + } finally { + platformSpy.mockRestore() + vi.clearAllMocks() + rmSync(tmpDir, { recursive: true, force: true }) + } }) function seedProfile(...encryptedValues: Buffer[]): string { diff --git a/src/main/browser/browser-cookie-key.ts b/src/main/browser/cookies/sources/browser-cookie-key.ts similarity index 98% rename from src/main/browser/browser-cookie-key.ts rename to src/main/browser/cookies/sources/browser-cookie-key.ts index 143d344dd9b..612e851ff79 100644 --- a/src/main/browser/browser-cookie-key.ts +++ b/src/main/browser/cookies/sources/browser-cookie-key.ts @@ -3,7 +3,7 @@ import { existsSync, readFileSync } from 'node:fs' import { join } from 'node:path' import { runProcessSync } from '@orca/process-host' import { windowsPowerShellPath } from '@orca/process-host/windows-system-binary' -import { diag } from './browser-cookie-import-diagnostics' +import { diag } from '../../browser-cookie-import-diagnostics' import { CHROMIUM_BROWSERS, browserRootPath, diff --git a/src/main/browser/browser-cookie-safari-import.ts b/src/main/browser/cookies/sources/browser-cookie-safari-import.ts similarity index 87% rename from src/main/browser/browser-cookie-safari-import.ts rename to src/main/browser/cookies/sources/browser-cookie-safari-import.ts index 86902716571..f865c13f8d6 100644 --- a/src/main/browser/browser-cookie-safari-import.ts +++ b/src/main/browser/cookies/sources/browser-cookie-safari-import.ts @@ -1,9 +1,9 @@ import { readFileSync } from 'node:fs' -import type { BrowserCookieImportResult } from '../../shared/browser-workspace-types' +import type { BrowserCookieImportResult } from '../../../../shared/browser-workspace-types' import { decodeSafariBinaryCookies } from './browser-cookie-safari-parser' -import { importValidatedCookies, cookieImportTarget } from './browser-cookie-import-pipeline' +import { importValidatedCookies, cookieImportTarget } from '../../browser-cookie-import-pipeline' import type { DetectedBrowser } from './browser-cookie-detection-types' -import { diag } from './browser-cookie-import-diagnostics' +import { diag } from '../../browser-cookie-import-diagnostics' export async function importCookiesFromSafari( browser: DetectedBrowser, diff --git a/src/main/browser/browser-cookie-safari-parser.ts b/src/main/browser/cookies/sources/browser-cookie-safari-parser.ts similarity index 95% rename from src/main/browser/browser-cookie-safari-parser.ts rename to src/main/browser/cookies/sources/browser-cookie-safari-parser.ts index a42e03f0fd6..e6755975c2f 100644 --- a/src/main/browser/browser-cookie-safari-parser.ts +++ b/src/main/browser/cookies/sources/browser-cookie-safari-parser.ts @@ -1,5 +1,5 @@ -import { deriveUrl } from './cookies/sources/browser-cookie-validation' -import type { ValidatedCookie } from './cookies/sources/browser-cookie-validation' +import { deriveUrl } from './browser-cookie-validation' +import type { ValidatedCookie } from './browser-cookie-validation' const MAC_EPOCH_DELTA = 978_307_200 diff --git a/src/main/browser/browser-cookie-source-partition.test.ts b/src/main/browser/cookies/sources/browser-cookie-source-partition.test.ts similarity index 100% rename from src/main/browser/browser-cookie-source-partition.test.ts rename to src/main/browser/cookies/sources/browser-cookie-source-partition.test.ts diff --git a/src/main/browser/browser-cookie-source-partition.ts b/src/main/browser/cookies/sources/browser-cookie-source-partition.ts similarity index 98% rename from src/main/browser/browser-cookie-source-partition.ts rename to src/main/browser/cookies/sources/browser-cookie-source-partition.ts index 9ea4f6a32d1..a0877396747 100644 --- a/src/main/browser/browser-cookie-source-partition.ts +++ b/src/main/browser/cookies/sources/browser-cookie-source-partition.ts @@ -1,4 +1,4 @@ -import type { CookieClearPartitionKey } from './browser-cookie-import-clear' +import type { CookieClearPartitionKey } from '../../browser-cookie-import-clear' // Skip unreadable partition identities; an unpartitioned fallback would lose the site’s session. export type SourcePartitionRead = diff --git a/src/main/browser/browser-cookie-sqlite.ts b/src/main/browser/cookies/sources/browser-cookie-sqlite.ts similarity index 100% rename from src/main/browser/browser-cookie-sqlite.ts rename to src/main/browser/cookies/sources/browser-cookie-sqlite.ts diff --git a/src/main/browser/cookies/sources/browser-cookie-validation.ts b/src/main/browser/cookies/sources/browser-cookie-validation.ts index e62dbf769d6..eb90a42def0 100644 --- a/src/main/browser/cookies/sources/browser-cookie-validation.ts +++ b/src/main/browser/cookies/sources/browser-cookie-validation.ts @@ -2,7 +2,7 @@ import { normalizeCookieDomain } from '../../browser-cookie-import-policy' import { readJsonCookiePartition, type SourcePartitionRead -} from '../../browser-cookie-source-partition' +} from './browser-cookie-source-partition' import type { ImportedCookieFields } from '../../browser-cookie-import-write' export type RawCookieEntry = {