camofox-browser 2.4.6 → 2.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +29 -6
- package/THIRD-PARTY-NOTICES.md +49 -0
- package/dist/src/cli/server/manager.d.ts.map +1 -1
- package/dist/src/cli/server/manager.js +1 -4
- package/dist/src/cli/server/manager.js.map +1 -1
- package/dist/src/routes/core.d.ts.map +1 -1
- package/dist/src/routes/core.js +46 -1
- package/dist/src/routes/core.js.map +1 -1
- package/dist/src/routes/openclaw.d.ts.map +1 -1
- package/dist/src/routes/openclaw.js +35 -1
- package/dist/src/routes/openclaw.js.map +1 -1
- package/dist/src/services/context-pool.d.ts +42 -2
- package/dist/src/services/context-pool.d.ts.map +1 -1
- package/dist/src/services/context-pool.js +408 -115
- package/dist/src/services/context-pool.js.map +1 -1
- package/dist/src/services/health.d.ts +57 -6
- package/dist/src/services/health.d.ts.map +1 -1
- package/dist/src/services/health.js +132 -11
- package/dist/src/services/health.js.map +1 -1
- package/dist/src/services/nav-recovery.d.ts +23 -0
- package/dist/src/services/nav-recovery.d.ts.map +1 -0
- package/dist/src/services/nav-recovery.js +63 -0
- package/dist/src/services/nav-recovery.js.map +1 -0
- package/dist/src/services/session.d.ts +84 -0
- package/dist/src/services/session.d.ts.map +1 -1
- package/dist/src/services/session.js +338 -35
- package/dist/src/services/session.js.map +1 -1
- package/dist/src/services/tab.d.ts +5 -1
- package/dist/src/services/tab.d.ts.map +1 -1
- package/dist/src/services/tab.js +133 -54
- package/dist/src/services/tab.js.map +1 -1
- package/dist/src/services/tracing.js +2 -2
- package/dist/src/services/tracing.js.map +1 -1
- package/dist/src/services/vnc.d.ts.map +1 -1
- package/dist/src/services/vnc.js +2 -0
- package/dist/src/services/vnc.js.map +1 -1
- package/dist/src/types.d.ts +2 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/config.d.ts +3 -0
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +3 -0
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/launcher.js +1 -1
- package/dist/src/utils/launcher.js.map +1 -1
- package/dist/src/utils/platform-support.d.ts +17 -0
- package/dist/src/utils/platform-support.d.ts.map +1 -0
- package/dist/src/utils/platform-support.js +57 -0
- package/dist/src/utils/platform-support.js.map +1 -0
- package/dist/src/utils/profile-path.d.ts +9 -0
- package/dist/src/utils/profile-path.d.ts.map +1 -0
- package/dist/src/utils/profile-path.js +105 -0
- package/dist/src/utils/profile-path.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +11 -4
- package/dist/src/cli/utils/api-fallback.d.ts +0 -4
- package/dist/src/cli/utils/api-fallback.d.ts.map +0 -1
- package/dist/src/cli/utils/api-fallback.js +0 -20
- package/dist/src/cli/utils/api-fallback.js.map +0 -1
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.MAX_TABS_PER_SESSION = exports.MAX_SESSIONS = exports.SESSION_TIMEOUT_MS = void 0;
|
|
7
7
|
exports.__getUserConcurrencyStateForTests = __getUserConcurrencyStateForTests;
|
|
8
8
|
exports.__getSessionsMapForTests = __getSessionsMapForTests;
|
|
9
|
+
exports.__getSessionOwnersForTests = __getSessionOwnersForTests;
|
|
10
|
+
exports.getSessionSnapshot = getSessionSnapshot;
|
|
9
11
|
exports.withUserLimit = withUserLimit;
|
|
10
12
|
exports.cleanupSessionsForUserId = cleanupSessionsForUserId;
|
|
11
13
|
exports.normalizeUserId = normalizeUserId;
|
|
@@ -27,6 +29,7 @@ exports.clearSessionProfile = clearSessionProfile;
|
|
|
27
29
|
exports.acquireSessionProfileCreateMutex = acquireSessionProfileCreateMutex;
|
|
28
30
|
exports.waitForSessionProfileCreate = waitForSessionProfileCreate;
|
|
29
31
|
exports.rollbackSessionProfileRuntime = rollbackSessionProfileRuntime;
|
|
32
|
+
exports.teardownSessionByKey = teardownSessionByKey;
|
|
30
33
|
exports.getSessionsForUser = getSessionsForUser;
|
|
31
34
|
exports.getAllSessions = getAllSessions;
|
|
32
35
|
exports.countTotalTabsForSessions = countTotalTabsForSessions;
|
|
@@ -66,6 +69,7 @@ const sessionOwners = new Map();
|
|
|
66
69
|
// Avoids storing partially-initialized sessions (e.g., context: null cast) and dedupes concurrent creates.
|
|
67
70
|
const launchingSessions = new Map();
|
|
68
71
|
const launchingSessionOwners = new Map();
|
|
72
|
+
const sessionRebindReservations = new Map();
|
|
69
73
|
const lifecycleIdleClosures = new Map();
|
|
70
74
|
// tabId -> sessions map key
|
|
71
75
|
// Persistent profiles are keyed only by userId, while tab endpoints only get tabId.
|
|
@@ -91,6 +95,79 @@ function __getUserConcurrencyStateForTests(userId) {
|
|
|
91
95
|
function __getSessionsMapForTests() {
|
|
92
96
|
return sessions;
|
|
93
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Test-only: returns the sessionOwners map so tests can link
|
|
100
|
+
* custom session keys to user IDs (needed for findTabById to
|
|
101
|
+
* recognize sessions with non-default keys).
|
|
102
|
+
*/
|
|
103
|
+
function __getSessionOwnersForTests() {
|
|
104
|
+
return sessionOwners;
|
|
105
|
+
}
|
|
106
|
+
function createSessionRebindReservation(sessionMapKey, session) {
|
|
107
|
+
let resolve;
|
|
108
|
+
const promise = new Promise((r) => {
|
|
109
|
+
resolve = r;
|
|
110
|
+
});
|
|
111
|
+
const reservation = {
|
|
112
|
+
token: node_crypto_1.default.randomUUID(),
|
|
113
|
+
session,
|
|
114
|
+
fromGeneration: session.generation,
|
|
115
|
+
promise,
|
|
116
|
+
resolve,
|
|
117
|
+
};
|
|
118
|
+
sessionRebindReservations.set(sessionMapKey, reservation);
|
|
119
|
+
return reservation;
|
|
120
|
+
}
|
|
121
|
+
function cancelSessionRebindReservation(sessionMapKey, error) {
|
|
122
|
+
const reservation = sessionRebindReservations.get(sessionMapKey);
|
|
123
|
+
if (!reservation)
|
|
124
|
+
return;
|
|
125
|
+
sessionRebindReservations.delete(sessionMapKey);
|
|
126
|
+
reservation.resolve({ ok: false, error });
|
|
127
|
+
}
|
|
128
|
+
function cancelSessionRebindReservationsForCleanupKey(cleanupKey, allowInternalSessionKey, error) {
|
|
129
|
+
for (const sessionKey of Array.from(sessionRebindReservations.keys())) {
|
|
130
|
+
if (isSessionMapKeyForCleanupKey(sessionKey, cleanupKey, allowInternalSessionKey)) {
|
|
131
|
+
cancelSessionRebindReservation(sessionKey, error);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function contextNeedsRebind(session, entry) {
|
|
136
|
+
if (!entry || entry.closing !== undefined || entry.generation !== session.generation || entry.context !== session.context) {
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
if (typeof entry.context.pages === 'function') {
|
|
140
|
+
try {
|
|
141
|
+
void entry.context.pages();
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Synchronous snapshot of a session's durable identity — owner and
|
|
151
|
+
* generation — captured before any await to prevent the replacement race.
|
|
152
|
+
*
|
|
153
|
+
* Returns `{ owner, generation }` where:
|
|
154
|
+
* - `owner` is the userId that owns this session key (from sessionOwners),
|
|
155
|
+
* or `undefined` if the session key has no owner mapping.
|
|
156
|
+
* - `generation` is the session's opaque identity token (from SessionData),
|
|
157
|
+
* or `undefined` if no session record exists.
|
|
158
|
+
*
|
|
159
|
+
* This is called by `closeContextBySession` before its first await so that
|
|
160
|
+
* `teardownSessionByKey` can validate the session's identity after the
|
|
161
|
+
* context-close await without reading a potentially-replaced session record.
|
|
162
|
+
*/
|
|
163
|
+
function getSessionSnapshot(sessionMapKey) {
|
|
164
|
+
const normalized = String(sessionMapKey);
|
|
165
|
+
const session = sessions.get(normalized);
|
|
166
|
+
return {
|
|
167
|
+
owner: sessionOwners.get(normalized),
|
|
168
|
+
generation: session?.generation,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
94
171
|
function beginLifecycleIdleClosure(userId) {
|
|
95
172
|
const key = normalizeUserId(userId);
|
|
96
173
|
let state = lifecycleIdleClosures.get(key);
|
|
@@ -191,10 +268,15 @@ function cleanupSessionsForUserId(userId, reason, clearCanonical = true, options
|
|
|
191
268
|
for (const [sessionKey, session] of Array.from(sessions.entries())) {
|
|
192
269
|
if (!isSessionMapKeyForCleanupKey(sessionKey, key, allowInternalSessionKey))
|
|
193
270
|
continue;
|
|
271
|
+
cancelSessionRebindReservation(sessionKey, new Error('Session cleaned up'));
|
|
194
272
|
ownerKeys.add(sessionOwners.get(sessionKey) ?? sessionKey);
|
|
195
273
|
unindexSessionTabs(session);
|
|
196
274
|
sessions.delete(sessionKey);
|
|
197
275
|
sessionOwners.delete(sessionKey);
|
|
276
|
+
// Evict per-session health entry so the map doesn't grow
|
|
277
|
+
// unbounded across normal session lifecycle. The health key
|
|
278
|
+
// is the sessionMapKey (or userId for legacy sessions).
|
|
279
|
+
(0, health_1.deleteUserHealth)(key, sessionKey);
|
|
198
280
|
(0, logging_1.log)('info', 'session cleaned up', { userId: key, sessionKey, reason });
|
|
199
281
|
}
|
|
200
282
|
if (ownerKeys.size === 0)
|
|
@@ -528,6 +610,7 @@ async function rollbackSessionProfileRuntime(userId, sessionKey, profileSignatur
|
|
|
528
610
|
const sessionMapKey = getSessionMapKey(userId, sessionKey, profileSignature);
|
|
529
611
|
const session = sessions.get(sessionMapKey);
|
|
530
612
|
if (session) {
|
|
613
|
+
cancelSessionRebindReservation(sessionMapKey, new Error('Session profile rolled back'));
|
|
531
614
|
unindexSessionTabs(session);
|
|
532
615
|
sessions.delete(sessionMapKey);
|
|
533
616
|
}
|
|
@@ -536,6 +619,146 @@ async function rollbackSessionProfileRuntime(userId, sessionKey, profileSignatur
|
|
|
536
619
|
launchingSessionOwners.delete(sessionMapKey);
|
|
537
620
|
await context_pool_1.contextPool.closeContext(sessionMapKey).catch(() => { });
|
|
538
621
|
}
|
|
622
|
+
/**
|
|
623
|
+
* Tear down a single session by its sessionMapKey: unindex all tabs,
|
|
624
|
+
* delete the session entry, and close the backing context.
|
|
625
|
+
*
|
|
626
|
+
* This is the session-owned teardown used by nav recovery. Unlike
|
|
627
|
+
* closeContextBySession (which only removes the pool entry), this also
|
|
628
|
+
* removes the tab/session records from the index so findTabById can no
|
|
629
|
+
* longer return stale Page objects for the recovered session.
|
|
630
|
+
*
|
|
631
|
+
* Sibling sessions for the same user are preserved — only the exact
|
|
632
|
+
* sessionMapKey is torn down.
|
|
633
|
+
*
|
|
634
|
+
* Generation safety (HIGH B + HIGH C):
|
|
635
|
+
* - When `expectedContextGeneration` is provided (pool entry existed and
|
|
636
|
+
* owner matched), the context is closed only if the exact immutable pool
|
|
637
|
+
* generation still matches the committed session generation. This
|
|
638
|
+
* prevents closing a replacement context that appeared during the await.
|
|
639
|
+
* - When `expectedContextGeneration` is undefined (pool entry was missing at
|
|
640
|
+
* snapshot), stale session/tab records are cleaned up, but NO context
|
|
641
|
+
* close is attempted. A new context may have appeared during the await
|
|
642
|
+
* and must not be destroyed.
|
|
643
|
+
*
|
|
644
|
+
* Session record safety (HIGH C): the session's opaque `generation` is
|
|
645
|
+
* captured before any await. After the await, the session is only deleted
|
|
646
|
+
* if that exact generation still matches — preventing deletion of a
|
|
647
|
+
* replacement or rebound session that reused the same key.
|
|
648
|
+
*
|
|
649
|
+
* Durable session identity (HIGH C round 8): the caller passes a
|
|
650
|
+
* `sessionSnapshot` captured *before* the first await in
|
|
651
|
+
* closeContextBySession. This prevents the replacement race where
|
|
652
|
+
* teardownSessionByKey reads a session record that was replaced during
|
|
653
|
+
* an async gap. The snapshot's `generation` is used as the authoritative
|
|
654
|
+
* session identity; the snapshot's `owner` is
|
|
655
|
+
* validated against the requesting user for the pool-missing path.
|
|
656
|
+
*
|
|
657
|
+
* Foreign ownership (HIGH round 8): when the pool entry is missing
|
|
658
|
+
* (`expectedContextGeneration` is undefined), the session owner from the snapshot
|
|
659
|
+
* is compared against `expectedSessionOwner`. If they don't match, the
|
|
660
|
+
* call is a no-op — a foreign user must not delete another user's
|
|
661
|
+
* session records.
|
|
662
|
+
*
|
|
663
|
+
* Recovery lock safety (HIGH D): deleteUserHealth is NOT called here.
|
|
664
|
+
* Lock/health eviction is owned by handleNavFailure's finally block and
|
|
665
|
+
* by ordinary session lifecycle paths (cleanupSessionsForUserId,
|
|
666
|
+
* closeAllSessions, startCleanupInterval).
|
|
667
|
+
*
|
|
668
|
+
* Returns true if a session was found and torn down, false otherwise.
|
|
669
|
+
*/
|
|
670
|
+
async function teardownSessionByKey(sessionMapKey, expectedContextGeneration, sessionSnapshot) {
|
|
671
|
+
const normalized = String(sessionMapKey);
|
|
672
|
+
const session = sessions.get(normalized);
|
|
673
|
+
if (!session)
|
|
674
|
+
return false;
|
|
675
|
+
if (sessionSnapshot && sessionSnapshot.generation === undefined)
|
|
676
|
+
return false;
|
|
677
|
+
// Foreign ownership check (HIGH round 8): when the pool entry was
|
|
678
|
+
// missing at snapshot time, the session owner from the durable
|
|
679
|
+
// snapshot must match the requesting user. A foreign user must not
|
|
680
|
+
// delete another user's indexed session records.
|
|
681
|
+
if (sessionSnapshot && expectedContextGeneration === undefined) {
|
|
682
|
+
const snapshotOwner = sessionSnapshot.owner;
|
|
683
|
+
if (snapshotOwner !== undefined) {
|
|
684
|
+
// sessionOwners.get returns the current owner; compare against
|
|
685
|
+
// the snapshot owner to detect replacement. If the snapshot
|
|
686
|
+
// had no owner mapping, we cannot validate — proceed with
|
|
687
|
+
// caution (index cleanup only, no context close).
|
|
688
|
+
const currentOwner = sessionOwners.get(normalized);
|
|
689
|
+
if (currentOwner !== undefined && currentOwner !== snapshotOwner) {
|
|
690
|
+
(0, logging_1.log)('warn', 'teardownSessionByKey: session owner replaced during await, aborting', {
|
|
691
|
+
sessionMapKey: normalized,
|
|
692
|
+
snapshotOwner,
|
|
693
|
+
currentOwner,
|
|
694
|
+
});
|
|
695
|
+
return false;
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
// Use the durable session generation from the snapshot if provided.
|
|
700
|
+
// Callers without a snapshot retain the direct teardown behavior by
|
|
701
|
+
// using the generation of the session they resolved above.
|
|
702
|
+
const sessionGeneration = sessionSnapshot ? sessionSnapshot.generation : session.generation;
|
|
703
|
+
const capturedPairMatches = expectedContextGeneration === undefined || sessionGeneration === expectedContextGeneration;
|
|
704
|
+
// Use generation-aware close to prevent the replacement race (HIGH B).
|
|
705
|
+
// When an exact context generation is provided and matches the captured
|
|
706
|
+
// committed session generation, close only that exact context entry.
|
|
707
|
+
// A mixed old-session/pending-new-context pair is never closed here.
|
|
708
|
+
// When expectedContextGeneration is undefined (pool entry was missing at
|
|
709
|
+
// snapshot), do NOT close any context — a new context may have
|
|
710
|
+
// appeared during the await and must not be destroyed.
|
|
711
|
+
if (expectedContextGeneration !== undefined && capturedPairMatches) {
|
|
712
|
+
await context_pool_1.contextPool.closeContextIfMatches(normalized, expectedContextGeneration).catch(() => { });
|
|
713
|
+
}
|
|
714
|
+
// else: no pool entry at snapshot time → index cleanup only, no close.
|
|
715
|
+
// If a getSession rebind started from the captured session generation,
|
|
716
|
+
// wait for its reservation to commit or fail before deciding whether the
|
|
717
|
+
// old session record is still authoritative. This keeps committed
|
|
718
|
+
// SessionData identity unchanged while a replacement is only pending.
|
|
719
|
+
const pendingRebind = sessionRebindReservations.get(normalized);
|
|
720
|
+
if (pendingRebind && pendingRebind.session === session && pendingRebind.fromGeneration === sessionGeneration) {
|
|
721
|
+
await pendingRebind.promise;
|
|
722
|
+
}
|
|
723
|
+
// Re-check session identity after the await (HIGH C).
|
|
724
|
+
// If a replacement session replaced the old one during the await,
|
|
725
|
+
// leave it intact and only clean up the old session's tab index.
|
|
726
|
+
const currentSession = sessions.get(normalized);
|
|
727
|
+
if (!currentSession || currentSession.generation !== sessionGeneration) {
|
|
728
|
+
// The session was replaced during the await. Unindex the old
|
|
729
|
+
// session's tabs only when it is a distinct object. A rebound
|
|
730
|
+
// SessionData mutates in place, so unindexing it would also unindex
|
|
731
|
+
// the now-current healthy session.
|
|
732
|
+
if (currentSession !== session)
|
|
733
|
+
unindexSessionTabs(session);
|
|
734
|
+
(0, logging_1.log)('warn', 'teardownSessionByKey: session replaced during await, leaving new session intact', {
|
|
735
|
+
sessionMapKey: normalized,
|
|
736
|
+
oldGeneration: sessionGeneration,
|
|
737
|
+
newGeneration: currentSession?.generation,
|
|
738
|
+
});
|
|
739
|
+
return true;
|
|
740
|
+
}
|
|
741
|
+
// A captured mixed session/context pair fails closed while the newer
|
|
742
|
+
// context entry still exists. If its launch failed, ensureContext removes
|
|
743
|
+
// the entry and the stale old session can safely be cleaned below.
|
|
744
|
+
if (!capturedPairMatches && context_pool_1.contextPool.getEntry(normalized)) {
|
|
745
|
+
(0, logging_1.log)('warn', 'teardownSessionByKey: captured session/context generations differ, leaving session intact', {
|
|
746
|
+
sessionMapKey: normalized,
|
|
747
|
+
sessionGeneration,
|
|
748
|
+
contextGeneration: expectedContextGeneration,
|
|
749
|
+
});
|
|
750
|
+
return false;
|
|
751
|
+
}
|
|
752
|
+
// Same session — safe to delete session records.
|
|
753
|
+
unindexSessionTabs(currentSession);
|
|
754
|
+
sessions.delete(normalized);
|
|
755
|
+
sessionOwners.delete(normalized);
|
|
756
|
+
launchingSessions.delete(normalized);
|
|
757
|
+
launchingSessionOwners.delete(normalized);
|
|
758
|
+
sessionRebindReservations.delete(normalized);
|
|
759
|
+
(0, logging_1.log)('info', 'session torn down by key (nav recovery)', { sessionMapKey: normalized, expectedContextGeneration });
|
|
760
|
+
return true;
|
|
761
|
+
}
|
|
539
762
|
function getSessionsForUser(userId) {
|
|
540
763
|
if (userId === undefined || userId === null)
|
|
541
764
|
return [];
|
|
@@ -652,6 +875,8 @@ async function createStagedSession(userId, contextOverrides, sessionKey) {
|
|
|
652
875
|
context: entry.context,
|
|
653
876
|
tabGroups: new Map(),
|
|
654
877
|
lastAccess: Date.now(),
|
|
878
|
+
createdAt: Date.now(),
|
|
879
|
+
generation: entry.generation,
|
|
655
880
|
};
|
|
656
881
|
return { session, contextEntry: entry, generation };
|
|
657
882
|
}
|
|
@@ -707,7 +932,13 @@ async function getSession(userId, contextOverrides, sessionKey) {
|
|
|
707
932
|
}
|
|
708
933
|
const launchPromise = (async () => {
|
|
709
934
|
const entry = await context_pool_1.contextPool.ensureContext(runtimeProfile.profileKey, key, contextOptions, runtimeProfile.resolvedProxy);
|
|
710
|
-
const created = {
|
|
935
|
+
const created = {
|
|
936
|
+
context: entry.context,
|
|
937
|
+
tabGroups: new Map(),
|
|
938
|
+
lastAccess: Date.now(),
|
|
939
|
+
createdAt: Date.now(),
|
|
940
|
+
generation: entry.generation,
|
|
941
|
+
};
|
|
711
942
|
sessions.set(runtimeProfile.sessionMapKey, created);
|
|
712
943
|
sessionOwners.set(runtimeProfile.sessionMapKey, key);
|
|
713
944
|
(0, logging_1.log)('info', 'session created', { userId: key, sessionMapKey: runtimeProfile.sessionMapKey });
|
|
@@ -725,10 +956,57 @@ async function getSession(userId, contextOverrides, sessionKey) {
|
|
|
725
956
|
}
|
|
726
957
|
else {
|
|
727
958
|
// Re-resolve context on each access; ContextPool de-dupes launches and detects unexpected closes.
|
|
728
|
-
const
|
|
729
|
-
session
|
|
730
|
-
|
|
731
|
-
|
|
959
|
+
const currentEntry = context_pool_1.contextPool.getEntry(runtimeProfile.profileKey);
|
|
960
|
+
if (contextNeedsRebind(session, currentEntry)) {
|
|
961
|
+
const existingRebind = sessionRebindReservations.get(runtimeProfile.sessionMapKey);
|
|
962
|
+
if (existingRebind) {
|
|
963
|
+
const result = await existingRebind.promise;
|
|
964
|
+
if (!result.ok)
|
|
965
|
+
throw result.error;
|
|
966
|
+
result.session.lastAccess = Date.now();
|
|
967
|
+
return result.session;
|
|
968
|
+
}
|
|
969
|
+
const reservation = createSessionRebindReservation(runtimeProfile.sessionMapKey, session);
|
|
970
|
+
let result;
|
|
971
|
+
try {
|
|
972
|
+
const entry = await context_pool_1.contextPool.ensureContext(runtimeProfile.profileKey, key, contextOptions, runtimeProfile.resolvedProxy);
|
|
973
|
+
if (sessionRebindReservations.get(runtimeProfile.sessionMapKey) !== reservation ||
|
|
974
|
+
sessions.get(runtimeProfile.sessionMapKey) !== session ||
|
|
975
|
+
session.generation !== reservation.fromGeneration) {
|
|
976
|
+
await context_pool_1.contextPool.closeContextIfMatches(runtimeProfile.profileKey, entry.generation).catch(() => { });
|
|
977
|
+
throw new Error('Session rebind superseded');
|
|
978
|
+
}
|
|
979
|
+
// Commit the context and its immutable generation together. Until
|
|
980
|
+
// this point SessionData still describes the previous context.
|
|
981
|
+
session.context = entry.context;
|
|
982
|
+
session.generation = entry.generation;
|
|
983
|
+
session.lastAccess = Date.now();
|
|
984
|
+
sessionOwners.set(runtimeProfile.sessionMapKey, key);
|
|
985
|
+
result = { ok: true, session };
|
|
986
|
+
return session;
|
|
987
|
+
}
|
|
988
|
+
catch (error) {
|
|
989
|
+
result = { ok: false, error };
|
|
990
|
+
throw error;
|
|
991
|
+
}
|
|
992
|
+
finally {
|
|
993
|
+
if (sessionRebindReservations.get(runtimeProfile.sessionMapKey) === reservation) {
|
|
994
|
+
sessionRebindReservations.delete(runtimeProfile.sessionMapKey);
|
|
995
|
+
}
|
|
996
|
+
reservation.resolve(result);
|
|
997
|
+
}
|
|
998
|
+
}
|
|
999
|
+
else {
|
|
1000
|
+
const entry = await context_pool_1.contextPool.ensureContext(runtimeProfile.profileKey, key, contextOptions, runtimeProfile.resolvedProxy);
|
|
1001
|
+
// No await occurs between an unexpected replacement result and this
|
|
1002
|
+
// commit, so bind the exact returned context generation atomically.
|
|
1003
|
+
if (session.context !== entry.context || session.generation !== entry.generation) {
|
|
1004
|
+
session.context = entry.context;
|
|
1005
|
+
session.generation = entry.generation;
|
|
1006
|
+
}
|
|
1007
|
+
session.lastAccess = Date.now();
|
|
1008
|
+
sessionOwners.set(runtimeProfile.sessionMapKey, key);
|
|
1009
|
+
}
|
|
732
1010
|
}
|
|
733
1011
|
// For newly created sessions, lastAccess/context are already set.
|
|
734
1012
|
session.lastAccess = Date.now();
|
|
@@ -742,6 +1020,9 @@ function unindexTab(tabId) {
|
|
|
742
1020
|
(0, tab_1.clearTabLock)(tabId);
|
|
743
1021
|
}
|
|
744
1022
|
function clearAllState() {
|
|
1023
|
+
for (const [sessionKey] of sessionRebindReservations) {
|
|
1024
|
+
cancelSessionRebindReservation(sessionKey, new Error('Session state cleared'));
|
|
1025
|
+
}
|
|
745
1026
|
sessions.clear();
|
|
746
1027
|
sessionOwners.clear();
|
|
747
1028
|
launchingSessions.clear();
|
|
@@ -764,38 +1045,56 @@ function clearAllState() {
|
|
|
764
1045
|
}
|
|
765
1046
|
async function closeSessionsForUser(userId, options = {}) {
|
|
766
1047
|
const key = normalizeUserId(userId);
|
|
767
|
-
await context_pool_1.contextPool.
|
|
768
|
-
|
|
769
|
-
|
|
1048
|
+
const releaseClosure = await context_pool_1.contextPool.beginUserClosure(key);
|
|
1049
|
+
try {
|
|
1050
|
+
cancelSessionRebindReservationsForCleanupKey(key, false, new Error('Session explicitly closed'));
|
|
1051
|
+
await context_pool_1.contextPool.closeStagedContextByUserId(key).catch(() => { });
|
|
1052
|
+
await context_pool_1.contextPool.closeContextByUserId(key).catch(() => { });
|
|
1053
|
+
cleanupSessionsForUserId(key, 'explicit_close', options.clearProfiles ?? true, { allowInternalSessionKey: false });
|
|
1054
|
+
}
|
|
1055
|
+
finally {
|
|
1056
|
+
releaseClosure();
|
|
1057
|
+
}
|
|
770
1058
|
}
|
|
771
1059
|
async function closeAllSessions() {
|
|
772
|
-
await context_pool_1.contextPool.
|
|
773
|
-
|
|
774
|
-
const
|
|
775
|
-
|
|
776
|
-
unindexSessionTabs(session);
|
|
777
|
-
sessions.delete(sessionKey);
|
|
778
|
-
sessionOwners.delete(sessionKey);
|
|
779
|
-
(0, tracing_1.cleanupTracing)(ownerUserId);
|
|
780
|
-
try {
|
|
781
|
-
(0, download_1.cleanupUserDownloads)(ownerUserId);
|
|
1060
|
+
const releaseClosure = await context_pool_1.contextPool.beginGlobalClosure();
|
|
1061
|
+
try {
|
|
1062
|
+
for (const sessionKey of Array.from(sessionRebindReservations.keys())) {
|
|
1063
|
+
cancelSessionRebindReservation(sessionKey, new Error('All sessions closed'));
|
|
782
1064
|
}
|
|
783
|
-
catch {
|
|
784
|
-
|
|
1065
|
+
await context_pool_1.contextPool.closeAll().catch(() => { });
|
|
1066
|
+
for (const [sessionKey, session] of sessions) {
|
|
1067
|
+
const ownerUserId = sessionOwners.get(sessionKey) ?? sessionKey;
|
|
1068
|
+
void (0, vnc_1.stopVnc)(ownerUserId).catch(() => { });
|
|
1069
|
+
unindexSessionTabs(session);
|
|
1070
|
+
sessions.delete(sessionKey);
|
|
1071
|
+
sessionOwners.delete(sessionKey);
|
|
1072
|
+
// Evict per-session health entry on bulk close.
|
|
1073
|
+
(0, health_1.deleteUserHealth)(ownerUserId, sessionKey);
|
|
1074
|
+
(0, tracing_1.cleanupTracing)(ownerUserId);
|
|
1075
|
+
try {
|
|
1076
|
+
(0, download_1.cleanupUserDownloads)(ownerUserId);
|
|
1077
|
+
}
|
|
1078
|
+
catch {
|
|
1079
|
+
// ignore
|
|
1080
|
+
}
|
|
785
1081
|
}
|
|
1082
|
+
launchingSessions.clear();
|
|
1083
|
+
launchingSessionOwners.clear();
|
|
1084
|
+
sessionOwners.clear();
|
|
1085
|
+
canonicalProfiles.clear();
|
|
1086
|
+
sessionProfiles.clear();
|
|
1087
|
+
defaultSessionProfileClaims.clear();
|
|
1088
|
+
for (const [, mutex] of sessionProfileCreateMutexes)
|
|
1089
|
+
mutex.resolve(false);
|
|
1090
|
+
sessionProfileCreateMutexes.clear();
|
|
1091
|
+
for (const [, mutex] of firstCreateMutexes)
|
|
1092
|
+
mutex.resolve(false);
|
|
1093
|
+
firstCreateMutexes.clear();
|
|
1094
|
+
}
|
|
1095
|
+
finally {
|
|
1096
|
+
releaseClosure();
|
|
786
1097
|
}
|
|
787
|
-
launchingSessions.clear();
|
|
788
|
-
launchingSessionOwners.clear();
|
|
789
|
-
sessionOwners.clear();
|
|
790
|
-
canonicalProfiles.clear();
|
|
791
|
-
sessionProfiles.clear();
|
|
792
|
-
defaultSessionProfileClaims.clear();
|
|
793
|
-
for (const [, mutex] of sessionProfileCreateMutexes)
|
|
794
|
-
mutex.resolve(false);
|
|
795
|
-
sessionProfileCreateMutexes.clear();
|
|
796
|
-
for (const [, mutex] of firstCreateMutexes)
|
|
797
|
-
mutex.resolve(false);
|
|
798
|
-
firstCreateMutexes.clear();
|
|
799
1098
|
}
|
|
800
1099
|
let cleanupInterval = null;
|
|
801
1100
|
function startCleanupInterval() {
|
|
@@ -805,6 +1104,8 @@ function startCleanupInterval() {
|
|
|
805
1104
|
const now = Date.now();
|
|
806
1105
|
for (const [sessionKey, session] of sessions) {
|
|
807
1106
|
if (now - session.lastAccess > exports.SESSION_TIMEOUT_MS) {
|
|
1107
|
+
if (sessionRebindReservations.has(sessionKey))
|
|
1108
|
+
continue;
|
|
808
1109
|
const ownerUserId = sessionOwners.get(sessionKey) ?? sessionKey;
|
|
809
1110
|
// Persistent profile is preserved on disk; closing the context frees resources.
|
|
810
1111
|
context_pool_1.contextPool.closeContext(sessionKey).catch(() => { });
|
|
@@ -812,6 +1113,8 @@ function startCleanupInterval() {
|
|
|
812
1113
|
clearDefaultSessionProfileClaimsForUser(ownerUserId);
|
|
813
1114
|
sessions.delete(sessionKey);
|
|
814
1115
|
sessionOwners.delete(sessionKey);
|
|
1116
|
+
// Evict per-session health entry on timeout expiry.
|
|
1117
|
+
(0, health_1.deleteUserHealth)(ownerUserId, sessionKey);
|
|
815
1118
|
(0, tracing_1.cleanupTracing)(ownerUserId);
|
|
816
1119
|
(0, logging_1.log)('info', 'session expired', { userId: ownerUserId, sessionKey });
|
|
817
1120
|
}
|
|
@@ -849,16 +1152,16 @@ async function runLifecycleIdleCleanup(sessionSnapshot, contextSnapshot, cleanup
|
|
|
849
1152
|
for (const [profileKey, entry] of contextSnapshot.entries()) {
|
|
850
1153
|
// Skip staged, launching, or newly-created contexts
|
|
851
1154
|
if (sessionKeysToCleanup.has(profileKey) && !entry.staged && !entry.launching && entry.createdAt < cleanupStartedMs) {
|
|
852
|
-
contextsToClose.push({ profileKey,
|
|
1155
|
+
contextsToClose.push({ profileKey, generation: entry.generation, lastAccess: entry.lastAccess });
|
|
853
1156
|
}
|
|
854
1157
|
}
|
|
855
1158
|
// Close the specific contexts from the snapshot
|
|
856
1159
|
const actuallyClosedSessionKeys = new Set();
|
|
857
|
-
for (const { profileKey,
|
|
1160
|
+
for (const { profileKey, generation, lastAccess } of contextsToClose) {
|
|
858
1161
|
const entry = contextSnapshot.get(profileKey);
|
|
859
1162
|
const releaseIdleClosure = entry ? beginLifecycleIdleClosure(entry.userId) : null;
|
|
860
1163
|
try {
|
|
861
|
-
await context_pool_1.contextPool.closeContextIfMatches(profileKey,
|
|
1164
|
+
await context_pool_1.contextPool.closeContextIfMatches(profileKey, generation, lastAccess);
|
|
862
1165
|
// Verify the context was actually closed (not skipped due to reuse)
|
|
863
1166
|
const stillExists = context_pool_1.contextPool.getEntry(profileKey);
|
|
864
1167
|
if (!stillExists) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/services/session.ts"],"names":[],"mappings":"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"}
|