Add lightweight observed request explorer
Dieser Commit ist enthalten in:
@@ -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 = [];
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren