Definition
ViewStructure
A
ViewStructureis an OS-level description of an app’s on-screen input fields — their labels, types, and associated origin — that the Android Autofill Framework hands to a password manager in lieu of DOM access. For native Android UI elements the system provides the translation; for HTML form fields the browser must implement its own translation from DOM toViewStructure.
The Translation Seam
Warning
There is no agreed-upon definition of the
ViewStructurebetween password managers and browsers. Each browser reconstructs the field-to-origin mapping independently and may describe the same page differently. This is especially problematic for fields inside cross-originiframes, where the field’s true origin and the surrounding page’s origin differ — the translation has to carry that distinction, and not every browser does.
Cross-Origin Credential Leak
a.comcredentials offered for ab.comform fieldA page on
a.comembeds a login form in aniframefromb.com.
- the mismatch
- some browsers describe the
iframeform to the password manager as “a form ina.com” rather than “a form inb.com”, because the browser’s DOM-to-ViewStructuretranslation does not consistently track the iframe’s origin- the consequence
- the password manager, trusting the
ViewStructure, offers the storeda.comcredentials for a field that actually belongs tob.com- the leak
- if the user accepts the suggestion, credentials for
a.comare sent tob.com— an origin the page never declared, and one the passwords were never meant for- status
- password managers and browsers were, at the time of the slides, working to agree on a shared
ViewStructuredefinition to close the gapThe leak is a same-origin boundary that holds at the DOM but is reconstructed, not inherited, at the autofill layer — see the corresponding insight.