Appearance
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 filtreeactionPrefix="HOTSPOT_"
Instrumentation ​
- Source:
src/lib/utils/bridge/BaseBridge.ts - Store:
src/lib/stores/hostBridgeDebugStore.ts
Chaque requete est instrumentee sur 4 phases:
onRequestStartonRequestSuccessonRequestErroronRequestTimeout
Data Model ​
La timeline conserve un buffer borne (150 entrees par defaut) avec:
requestId,action,tagparams(avec redaction)status(pending,success,error,timeout)durationMs,startedAt,endedAtresponseouerror
Security Notes ​
Les cles sensibles sont redactees dans le store avant affichage/copie:
tokenauthorizationpasswordaccess_tokenaccessToken
QA Checklist ​
- Ouvrir
Parametrespuis ongletHost Bridge. - Lancer les probes
GET_IDENTIFIER,GET_MODEL,GET_MAC,GET_HOST_CAPABILITIES. - Verifier mise a jour des compteurs et des statuts timeline.
- Verifier qu'un timeout apparait en
timeoutavec une duree. - Verifier que la copie JSON masque les champs sensibles.
- Ouvrir l'onglet
Hotspotet verifier que la timeline affiche uniquement les actionsHOTSPOT_*. - Executer
HOTSPOT_GET, puisHOTSPOT_SETavecsubAction=start/stopet verifier la presence des evenements dans la timeline.
References ​
docs/technique/bridge/host-response-contract.mddocs/technique/bridge/exchanges.md