Initialize VG-Environment from stable VG-IV baseline

Dieser Commit ist enthalten in:
2026-05-21 19:58:08 +02:00
Commit a1a8147ae2
27 geänderte Dateien mit 3981 neuen und 0 gelöschten Zeilen
+136
Datei anzeigen
@@ -0,0 +1,136 @@
"use strict";
const requestMonitoringToggle = document.getElementById(
"request-monitoring-toggle"
);
const requestMonitoringStatus = document.getElementById(
"request-monitoring-status"
);
const consentCaptureToggle = document.getElementById("consent-capture-toggle");
const consentCaptureStatus = document.getElementById("consent-capture-status");
const maintenanceWarning = document.getElementById("maintenance-warning");
const evidenceLockedCount = document.getElementById("evidence-locked-count");
const evidenceDashboardButton = document.getElementById(
"evidence-dashboard-button"
);
const evidenceRetentionStatus = document.getElementById(
"evidence-retention-status"
);
const evidenceStoreCountCells = {
consent_states: document.getElementById("evidence-consent-states-count"),
consent_events: document.getElementById("evidence-consent-events-count"),
observed_requests: document.getElementById("evidence-observed-requests-count"),
gvl_snapshots: document.getElementById("evidence-gvl-snapshots-count"),
gvl_snapshot_events: document.getElementById(
"evidence-gvl-snapshot-events-count"
)
};
document.addEventListener("DOMContentLoaded", async () => {
await renderSettings();
await renderEvidenceMaintenanceStatus();
await renderEvidenceRetentionStatus();
consentCaptureToggle.addEventListener("change", async () => {
consentCaptureToggle.disabled = true;
await setVendorGetSetting(
"consentCaptureEnabled",
consentCaptureToggle.checked
);
await renderSettings();
consentCaptureToggle.disabled = false;
});
requestMonitoringToggle.addEventListener("change", async () => {
requestMonitoringToggle.disabled = true;
await setVendorGetSetting(
"requestMonitoringEnabled",
requestMonitoringToggle.checked
);
await renderSettings();
requestMonitoringToggle.disabled = false;
});
evidenceDashboardButton.addEventListener("click", async () => {
await browser.tabs.create({
url: browser.runtime.getURL("src/dashboard/dashboard.html")
});
});
});
async function renderSettings() {
const settings = await getVendorGetSettings();
const consentCaptureEnabled = settings.consentCaptureEnabled;
const requestMonitoringEnabled = settings.requestMonitoringEnabled;
consentCaptureToggle.checked = consentCaptureEnabled;
consentCaptureStatus.textContent = consentCaptureEnabled ? "aktiv" : "aus";
requestMonitoringToggle.checked = requestMonitoringEnabled;
requestMonitoringStatus.textContent = requestMonitoringEnabled
? "aktiv"
: "aus";
}
async function renderEvidenceRetentionStatus() {
try {
const status = await getEvidenceRetentionStatus();
renderEvidenceStoreCounts(status.storeCounts ?? {});
evidenceLockedCount.textContent = formatStatusValue(status.lockedCount);
renderEvidenceRetentionMessage("Bereit");
} catch (error) {
renderEvidenceStoreCounts({});
evidenceLockedCount.textContent = "-";
renderEvidenceRetentionMessage("Status konnte nicht geladen werden");
console.warn("VendorGet-IV evidence retention status failed", error);
}
}
async function renderEvidenceMaintenanceStatus() {
try {
const status = await browser.runtime.sendMessage({
type: "get_evidence_maintenance_status"
});
if (!status?.success) {
throw new Error(status?.error ?? "get_evidence_maintenance_status_failed");
}
maintenanceWarning.hidden = !status.evidenceWriteSuspended;
} catch (error) {
maintenanceWarning.hidden = true;
console.warn("VendorGet-IV maintenance status failed", error);
}
}
async function getEvidenceRetentionStatus() {
const status = await browser.runtime.sendMessage({
type: "get_evidence_retention_status"
});
if (!status?.success) {
throw new Error(status?.error ?? "get_evidence_retention_status_failed");
}
return status;
}
function renderEvidenceStoreCounts(storeCounts) {
for (const [storeName, cell] of Object.entries(evidenceStoreCountCells)) {
cell.textContent = formatStatusValue(storeCounts[storeName]);
}
}
function formatStatusValue(value) {
return Number.isFinite(value) ? String(value) : "-";
}
function renderEvidenceRetentionMessage(message) {
evidenceRetentionStatus.textContent = message;
}