Add lightweight observed request explorer

Dieser Commit ist enthalten in:
2026-05-27 18:31:44 +02:00
Ursprung 31001b9610
Commit 71541ef187
5 geänderte Dateien mit 641 neuen und 0 gelöschten Zeilen
+46
Datei anzeigen
@@ -81,6 +81,10 @@ async function handleVendorGetMessage(message, sender) {
return handleListRecentConsentStatesMessage();
}
if (message.type === "list_recent_observed_requests") {
return handleListRecentObservedRequestsMessage();
}
if (message.type === "purge_unlocked_evidence_records") {
return handlePurgeUnlockedEvidenceRecordsMessage();
}
@@ -316,6 +320,16 @@ async function handleListRecentConsentStatesMessage() {
};
}
async function handleListRecentObservedRequestsMessage() {
const db = await openVendorGetDb();
const observedRequests = await listRecentObservedRequests(db, 50);
return {
success: true,
observedRequests
};
}
function getLatestConsentState(db) {
return new Promise((resolve, reject) => {
const tx = db.transaction(["consent_states"], "readonly");
@@ -368,6 +382,38 @@ function listRecentConsentStates(db, limit) {
});
}
function listRecentObservedRequests(db, limit) {
return new Promise((resolve, reject) => {
const observedRequests = [];
const tx = db.transaction(
[VENDORGET_STORE_NAMES.observedRequests],
"readonly"
);
const requestsStore = tx.objectStore(VENDORGET_STORE_NAMES.observedRequests);
const lastSeenAtIndex = requestsStore.index("lastSeenAt");
const cursorRequest = lastSeenAtIndex.openCursor(null, "prev");
cursorRequest.onerror = () => reject(cursorRequest.error);
cursorRequest.onsuccess = () => {
const cursor = cursorRequest.result;
if (!cursor || observedRequests.length >= limit) {
return;
}
observedRequests.push(cursor.value);
if (observedRequests.length < limit) {
cursor.continue();
}
};
tx.onerror = () => reject(tx.error);
tx.onabort = () => reject(tx.error);
tx.oncomplete = () => resolve(observedRequests);
});
}
function listRecentGvlSnapshots(db, limit) {
return new Promise((resolve, reject) => {
const snapshots = [];