Skip to content

Section Host Bridge (Parametres) ​

Problem Statement ​

Le diagnostic des echanges iframe <-> host etait disperse dans les logs console, ce qui ralentissait l'analyse des timeouts, des erreurs de format et des actions non supportees.

Solution Overview ​

Une section Host Bridge est disponible dans la page Parametres pour observer en temps reel:

  • l'etat runtime du bridge (iframe/webview/native bridge)
  • les metriques d'execution (success, error, timeout, in-flight)
  • la timeline des requetes TV_API_REQUEST / TV_API_RESPONSE
  • des probes manuels (INITIALIZE_HOST, GET_IDENTIFIER, GET_MODEL, GET_HOST_CAPABILITIES, CAN_LAUNCH_APP, OPEN_SYSTEM_SETTINGS, OPEN_MANUFACTURER_SETTINGS, etc.)
  • des probes hotspot (HOTSPOT_GET, HOTSPOT_SET) pour tester le bridge wifi

La timeline est maintenant extraite dans un composant reutilisable et exposee aussi dans l'onglet Hotspot avec un filtre dedie aux actions HOTSPOT_*.

Implementation Guide ​

Emplacement UI ​

  • Page: src/routes/settings/+page.svelte
  • Onglet: Host Bridge
  • Composant: src/lib/components/settings/HostBridgeSection.svelte
  • Timeline reutilisable: src/lib/components/settings/HostBridgeTimeline.svelte
  • Onglet Hotspot: timeline filtree actionPrefix="HOTSPOT_"

Instrumentation ​

  • Source: src/lib/utils/bridge/BaseBridge.ts
  • Store: src/lib/stores/hostBridgeDebugStore.ts

Chaque requete est instrumentee sur 4 phases:

  1. onRequestStart
  2. onRequestSuccess
  3. onRequestError
  4. onRequestTimeout

Data Model ​

La timeline conserve un buffer borne (150 entrees par defaut) avec:

  • requestId, action, tag
  • params (avec redaction)
  • status (pending, success, error, timeout)
  • durationMs, startedAt, endedAt
  • response ou error

Security Notes ​

Les cles sensibles sont redactees dans le store avant affichage/copie:

  • token
  • authorization
  • password
  • access_token
  • accessToken

QA Checklist ​

  1. Ouvrir Parametres puis onglet Host Bridge.
  2. Lancer les probes GET_IDENTIFIER, GET_MODEL, GET_MAC, GET_HOST_CAPABILITIES.
  3. Verifier mise a jour des compteurs et des statuts timeline.
  4. Verifier qu'un timeout apparait en timeout avec une duree.
  5. Verifier que la copie JSON masque les champs sensibles.
  6. Ouvrir l'onglet Hotspot et verifier que la timeline affiche uniquement les actions HOTSPOT_*.
  7. Executer HOTSPOT_GET, puis HOTSPOT_SET avec subAction=start/stop et verifier la presence des evenements dans la timeline.

References ​

  • docs/technique/bridge/host-response-contract.md
  • docs/technique/bridge/exchanges.md