From 01a27005e5a1af7f2f7a0d755022d1302a5c2c45 Mon Sep 17 00:00:00 2001
From: Christoph Schwering User agents are not limited to the form controls of a specific Some user agents have features for helping users fill forms in, for example prefilling the
+ user's address based on earlier user input. They may autofill either an individual form control or
+ multiple controls at once. A user agent might offer the user to automatically fill their address in a form like the
+ following. For example, the user agent could suggest values to fill when the user focuses or types in
+ one of the controls. The user agent may fill multiple controls at once even if they have different
+ form owners, root elements, or even
+ node documents. However, the user agent must not fill in a
+ field if that field is not eligible for autofill. A form control control is eligible for autofill if control's
+ node document document is fully active and one of the
+ following is true: Some element is focused and its node document's
+ origin is the same origin as
+ document's origin. The Consider the following page Let Suppose the user starts filling the cardholder name and the user agent offers to fill the
+ entire credit card form. The User agents sometimes have features for helping users fill forms in, for example prefilling the
- user's address based on earlier user input. The 'self'.
+ shared-autofill", which
+ has a default allowlist of 'self'.form
+ in their automatic filling. In particular, they might consider fields from different documents
+ as explained in the eligible for autofill section.Improving the user experience on mobile devices
@@ -55715,13 +55721,77 @@ form.method === input; // => true
Autofill
+
+
+ <form method=post action="https://pizza.exampe.com/order.cgi">
+ <label> Name: <input name=name></textarea> </label>
+ <label> Address: <input name=address></textarea> </label>
+ <label> City: <input name=city> </label>
+ <label> Postal Code: <input name=postal> </label>
+ <label> Country: <select name=country>...</select> </label>
+</form>Eligibility for autofill
+
+
+
+
+ shared-autofill feature is enabled in
+ document for document's
+ origin.https://pizza.example.com/:
+
+ <form method=post>
+ <p> Cardholder name: <input name=name>
+ <p> Credit card number: <iframe src="https://pay.example.com/number.html" allow=shared-autofill></iframe>
+ <p> Expiration date: <input name=expiration-date>
+ <p> CVC: <iframe src="https://pay.example.com/cvc.html" allow=shared-autofill></iframe>
+</form>
+<iframe src="https://ads.example.com/ad.html"></iframe>number.html and cvc.html each contain an
+ input.name and
+ expiration-date controls are eligible by means of their origin, and the
+ controls in number.html and cvc.html are eligible
+ due to the shared-autofill feature.
+ By contrast, none of the controls in ad.html is eligible because of the
+ distinct origins and the absent shared-autofill
+ feature; this prevents leaking to the ad server.Autofilling form controls: the
- autocomplete attributeThe autocomplete content attribute can be used to hint to
- the user agent how to, or indeed whether to, provide such a feature.
<form method=post action="https://pizza.exampe.com/order.cgi">
- <label> Name: <input name=name></textarea> </label>
- <label> Address: <input name=address></textarea> </label>
- <label> City: <input name=city> </label>
- <label> Postal Code: <input name=postal> </label>
- <label> Country: <select name=country>...</select> </label>
+ <label> Name: <input></textarea> </label>
+ <label> Address: <input></textarea> </label>
+ <label> City: <input> </label>
+ <label> Postal Code: <input> </label>
+ <label> Country: <select>...</select> </label>
</form>
For example, the user agent could suggest values to fill when the user focuses or types in @@ -55766,28 +55766,34 @@ form.method === input; // => true
Consider the following page https://pizza.example.com/:
<form method=post>
- <p> Cardholder name: <input name=name>
+ <p> Cardholder name: <input>
<p> Credit card number: <iframe src="https://pay.example.com/number.html" allow=shared-autofill></iframe>
- <p> Expiration date: <input name=expiration-date>
+ <p> Expiration date: <input>
<p> CVC: <iframe src="https://pay.example.com/cvc.html" allow=shared-autofill></iframe>
</form>
<iframe src="https://ads.example.com/ad.html"></iframe>
Let number.html and cvc.html each contain an
- input.
input:
+
+ <!doctype html>
+<html>
+ <body>
+ <input>
+</html>
Suppose the user starts filling the cardholder name and the user agent offers to fill the
- entire credit card form. The name and
- expiration-date controls are eligible by means of their origin, and the
- controls in number.html and cvc.html are eligible
- due to the shared-autofill feature.
+ entire credit card form. The cardholder name and expiration date controls are eligible by means
+ of their origin, and the controls in number.html and
+ cvc.html are eligible due to the
+ shared-autofill feature.
By contrast, none of the controls in ad.html is eligible because of the
distinct origins and the absent shared-autofill
feature; this prevents leaking to the ad server.
autocomplete attributeautocomplete attributeThe The user agent may fill multiple controls at once even if they have different
form owners, root elements, or even
- node documents. However, the user agent must not fill in a
+ node documents. However, the user agent should not fill in a
field if that field is not eligible for autofill. User agents are not limited to the form controls of a specific autocomplete content attribute can be used to hint to
From 88abc23c1205d802968c722939193909ff889297 Mon Sep 17 00:00:00 2001
From: Christoph Schwering Eligibility for autofill
@@ -109288,7 +109288,6 @@ function showLogout() {
-
Web workers
Introduction
From c4ad614aaa6f5bd2ca9665ea9cc370465b597c3e Mon Sep 17 00:00:00 2001
From: Christoph Schwering form
in their automatic filling. In particular, they might consider fields from different documents
as explained in the eligible for autofill section.Improving the user experience on mobile devices
@@ -55726,70 +55728,70 @@ form.method === input; // => true
multiple controls at once.
A user agent might offer the user to automatically fill their address in a form like the - following.
- -<form method=post action="https://pizza.exampe.com/order.cgi">
- <label> Name: <input></textarea> </label>
- <label> Address: <input></textarea> </label>
- <label> City: <input> </label>
- <label> Postal Code: <input> </label>
- <label> Country: <select>...</select> </label>
+ A user agent might offer the user to automatically fill their address in a form like the
+ following.
+
+ <form method=post action="https://pizza.exampe.com/order.cgi">
+ <label> Name: <input></textarea> </label>
+ <label> Address: <input></textarea> </label>
+ <label> City: <input> </label>
+ <label> Postal Code: <input> </label>
+ <label> Country: <select>...</select> </label>
</form>
- For example, the user agent could suggest values to fill when the user focuses or types in
- one of the controls.
+ For example, the user agent could suggest values to fill when the user focuses or types in
+ one of the controls.
The user agent may fill multiple controls at once even if they have different - form owners, root elements, or even - node documents. However, the user agent should not fill in a - field if that field is not eligible for autofill.
+ form owners, root nodes, or even + node documents. However, the user agent should only fill in + controls that are eligible for autofill.A form control control is eligible for autofill if control's - node document document is fully active and one of the - following is true:
+ node document document is a fully active descendant of a top-level + traversible with user attention and one of the following is true:Some element is focused and its node document's - origin is the same origin as - document's origin.
Some element is focused and its node document's + origin is the same origin as + document's origin.
The shared-autofill feature is enabled in
- document for document's
- origin.
The shared-autofill feature is enabled in
+ document for document's
+ origin.
Consider the following page https://pizza.example.com/:
Consider the following page https://pizza.example.com/:
<form method=post>
- <p> Cardholder name: <input>
- <p> Credit card number: <iframe src="https://pay.example.com/number.html" allow=shared-autofill></iframe>
- <p> Expiration date: <input>
- <p> CVC: <iframe src="https://pay.example.com/cvc.html" allow=shared-autofill></iframe>
+ <form method=post>
+ <p> Cardholder name: <input>
+ <p> Credit card number: <iframe src="https://pay.example.com/number.html" allow=shared-autofill></iframe>
+ <p> Expiration date: <input>
+ <p> CVC: <iframe src="https://pay.example.com/cvc.html" allow=shared-autofill></iframe>
</form>
<iframe src="https://ads.example.com/ad.html"></iframe>
- Let number.html and cvc.html each contain an
- input:
+ Let number.html and cvc.html each contain an
+ input:
- <!doctype html>
+ <!doctype html>
<html>
<body>
<input>
</html>
- Suppose the user starts filling the cardholder name and the user agent offers to fill the
- entire credit card form. The cardholder name and expiration date controls are eligible by means
- of their origin, and the controls in number.html and
- cvc.html are eligible due to the
- shared-autofill feature.
- By contrast, none of the controls in ad.html is eligible because of the
- distinct origins and the absent shared-autofill
- feature; this prevents leaking to the ad server.
+ Suppose the user starts filling the cardholder name and the user agent offers to fill the
+ entire credit card form. The cardholder name and expiration date controls are eligible by means
+ of their origin, and the controls in number.html and
+ cvc.html are eligible due to the
+ shared-autofill feature.
+ By contrast, none of the controls in ad.html are eligible because of the
+ distinct origins and the absent shared-autofill
+ feature; this prevents leaking information to the ad server.
The user agent does not have to fill in all eligible form controls, and it can fill
+ in form controls that are not eligible. In particular, it can ignore
+ shared-autofill depending on the type of data
+ to be filled and the relationships of the controls' node navigables. For example:
The user agent can ignore shared-autofill
+ when filling in usernames and passwords which are associated to a specific
+ origin.
The user agent can ignore shared-autofill
+ in Documents whose navigable is not a descendant
+ of the fully active descendant of a top-level traversible with user attention
+ because payment form controls are frequently hosted in cross-origin iframes
+ like in the example above.
+
The user agent can fill in cross-origin form controls because the user + consented.
autocomplete attributeUser agents are not limited to the form controls of a specific form
- in their automatic filling. In particular, they might consider fields from different documents
+ in their automatic filling. In particular, they can consider fields from different documents
as explained in the eligible for autofill section.
Some user agents have features for helping users fill forms in, for example prefilling the +
Some user agents have features for helping users fill in forms, for example prefilling the user's address based on earlier user input. They may autofill either an individual form control or multiple controls at once.
A user agent might offer the user to automatically fill their address in a form like the - following.
+A user agent might offer the user to automatically fill their address in the following + form.
<form method=post action="https://pizza.exampe.com/order.cgi">
<label> Name: <input></textarea> </label>
@@ -55739,11 +55739,11 @@ form.method === input; // => true
<label> Country: <select>...</select> </label>
</form>
- For example, the user agent could suggest values to fill when the user focuses or types in +
For example, the user agent could suggest values to fill when the user focuses or types into one of the controls.
The user agent may fill multiple controls at once even if they have different +
The user agent may fill in multiple controls at once even if they have different form owners, root nodes, or even node documents. However, the user agent should only fill in controls that are eligible for autofill.
@@ -55752,7 +55752,7 @@ form.method === input; // => trueA form control control is eligible for autofill if control's node document document is a fully active descendant of a top-level - traversible with user attention and one of the following is true:
+ traversable with user attention and one of the following is true:Some element is focused and its node document's @@ -55765,7 +55765,15 @@ form.method === input; // => true
The user agent does not have to fill in all eligible form controls, and it can fill
- in form controls that are not eligible. In particular, it can ignore
- shared-autofill depending on the type of data
- to be filled and the relationships of the controls' node navigables. For example:
Whether a form control is eligible for autofill by means of
+ shared-autofill might be beyond control of the
+ focused document: policy-controlled
+ features can be enabled or disabled by a parent document in its children, but not vice
+ versa. This reflects how form controls in cross-origin iframes are commonly seamlessly integrated
+ with the top-level document. The user agent might ignore
+ shared-autofill in documents that are not
+ descendants of the focused document, perhaps depending on the value that would be filled.
The user agent can ignore shared-autofill
- when filling in usernames and passwords which are associated to a specific
- origin.
The user agent can ignore shared-autofill
- in Documents whose navigable is not a descendant
- of the fully active descendant of a top-level traversible with user attention
- because payment form controls are frequently hosted in cross-origin iframes
- like in the example above.
-
The user agent can fill in cross-origin form controls because the user - consented.
The user agent might generally ignore
+ shared-autofill in cross-origin frames
+ when filling in usernames and passwords since these credentials might be associated to a specific
+ origin.
On the other hand, the user agent might fill in cross-origin form controls in the absence of
+ shared-autofill if it thinks this is the user's
+ intention, for example, because the user consented.
User agents are not limited to the form controls of a specific form
in their automatic filling. In particular, they can consider fields from different documents
as explained in the eligible for autofill section.
The user agent may fill in multiple controls at once even if they have different - form owners, root nodes, or even - node documents. However, the user agent should only fill in - controls that are eligible for autofill.
+The user agent may fill in multiple controls at once even if they have different form owners, root nodes, or even node documents. However, the user agent should only fill in controls that are + eligible for autofill.
Some element is focused and its node document's - origin is the same origin as +
Some element is focused and its node document's origin is the same origin as document's origin.
The shared-autofill feature is enabled in
- document for document's
- origin.
Whether a form control is eligible for autofill by means of
- shared-autofill might be beyond control of the
- focused document: policy-controlled
- features can be enabled or disabled by a parent document in its children, but not vice
- versa. This reflects how form controls in cross-origin iframes are commonly seamlessly integrated
- with the top-level document. The user agent might ignore
- shared-autofill in documents that are not
- descendants of the focused document, perhaps depending on the value that would be filled.
The user agent might generally ignore
- shared-autofill in cross-origin frames
- when filling in usernames and passwords since these credentials might be associated to a specific
- origin.
Whether a form control is eligible for autofill by means of shared-autofill might be beyond control of the focused
+ document: policy-controlled features can
+ be enabled or disabled by a parent document in its children, but not vice versa. This reflects
+ how form controls in cross-origin iframes are commonly seamlessly integrated with the top-level
+ document. The user agent might ignore shared-autofill in documents that are not descendants of
+ the focused document, perhaps depending on the value that would be filled.
The user agent might generally ignore shared-autofill in cross-origin frames when filling in
+ usernames and passwords since these credentials might be associated with a specific origin.
On the other hand, the user agent might fill in cross-origin form controls in the absence of
shared-autofill if it thinks this is the user's