fix(consent-history): banner_provider als Fallback fürs CMP (#62)
Storage-Keys fehlen in Phase A (vor Consent) oft → provider blieb leer. Jetzt fällt detect_consent_history auf den bereits aus dem Banner-DOM erkannten banner_provider zurück → korrekter Anbieter + history_capable auch ohne Storage-Eintrag. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -53,9 +53,11 @@ def _is_versioned(provider: str, stored_value: Optional[str]) -> bool:
|
||||
return any(t in low for t in ("version", "consents", "timestamp", "consentid"))
|
||||
|
||||
|
||||
async def detect_consent_history(page: Any) -> dict:
|
||||
async def detect_consent_history(page: Any, banner_provider: str = "") -> dict:
|
||||
"""Liest Storage/Cookies + DOM und liefert:
|
||||
{provider, stored, versioned_consent, history_capable, withdraw_ui}."""
|
||||
{provider, stored, versioned_consent, history_capable, withdraw_ui}.
|
||||
`banner_provider` = bereits aus dem Banner-DOM erkanntes CMP — wird als
|
||||
Fallback genutzt, da Storage-Keys in Phase A (vor Consent) oft noch fehlen."""
|
||||
keys: list[str] = []
|
||||
try:
|
||||
keys = await page.evaluate("() => Object.keys(window.localStorage || {})")
|
||||
@@ -67,7 +69,9 @@ async def detect_consent_history(page: Any) -> dict:
|
||||
except Exception:
|
||||
cookie_names = []
|
||||
|
||||
provider = classify_provider(list(keys) + cookie_names)
|
||||
# Provider zuerst aus Storage/Cookies, sonst aus dem erkannten Banner-CMP.
|
||||
provider = (classify_provider(list(keys) + cookie_names)
|
||||
or classify_provider([banner_provider or ""]))
|
||||
|
||||
stored_value = None
|
||||
if provider == "Borlabs":
|
||||
|
||||
Reference in New Issue
Block a user