-
Notifications
You must be signed in to change notification settings - Fork 28
User Agent Automation and WebDriver test support #381
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
| </tbody> | ||
| </table> | ||
| <p> | ||
| When <a data-cite="webdriver#dfn-validate-capabilities">validating |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: avoid using data-cite... if something hasn't been exported from Web Driver, we should send a PR to web driver to export the definition we need.
index.html
Outdated
| <code>navigator.credentials.get({digital: ...})</code> or | ||
| <code>navigator.credentials.create({digital: ...})</code> call. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These should probably link to the algorithms, not to the methods themselves.
| </table> | ||
| <p> | ||
| The parameters object is a JSON <a data-cite= | ||
| "webdriver#dfn-object">Object</a> with the following key: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as above... we should get "object" exported from Web Driver.
index.html
Outdated
| The [=remote end steps=] are: | ||
| </p> | ||
| <ol class="algorithm"> | ||
| <li>If <code>parameters</code> is not a JSON <a data-cite= |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are JSON object and Web Driver objects different things?
Also, I wonder if this should really be framed in Web Driver 2 terminology, which I think is CBOR.
We should definitely have the Web Driver folks check all this before we merge it too.
| </section> | ||
| <section id="set-wallet-to-decline"> | ||
| <h4> | ||
| <dfn>Set Wallet to Decline</dfn> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should say "abort" here to keep terminology consistent? (i.e., affectively this become an AbortError, right)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
YEs, but it's to simulate a user "declining" the flow.
I feel "decline" is more natural.
Let me know if you feel strongly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, "declining" is fine... was mostly an editorial suggestion.
marcoscaceres
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like where this is going, but I'm not loving the way the model integrates with the algorithms.
What we should have is basically:
- There is (or are) virtual wallet(s).
- Each virtual wallets is in some state.
- Virtual wallet's state can be changed.
Virtual wallets take precedence over platform [=holders=] when in automation.
| <tbody> | ||
| <tr> | ||
| <td> | ||
| Virtual Wallet Support |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Virtual Wallet Support | |
| Virtual Credential Manager Support |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We haven't really used "wallet" formally... we've stuck to holder... so I wonder if this should be "virtual holder"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@timcappalli I am aware of your preferences to use "Credential Manager" instead of holder or wallet, but I think we should do this holistically in the whole spec at one time if we decide to. I won't start with the testing.
@marcoscaceres Yes, I can see we haven't used wallet formally, but given this API is exposed to web developers as well as browser engineers, I believe "wallet" is the more widely-used term in the ecosystem.
"holder" might be even more confusing IMHO.
We can also add a definition to wallet in this section. WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussed with @mohamedamir and drafted:
#386
And hopefully that covers the "manager" aspect that @timcappalli would like included in the definition, while giving us a well understood concept by developer and implementers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think "virtual (whatever)" is not accurate and will be misunderstood.
Better might be "software (whatever)" (even if it's implemented on hardware, it's still software doing the lifting).
Rather than Virtual Credential Manager Support, I would suggest Support for Software Credential Managers or perhaps Support for Agentic Credential Managers.
index.html
Outdated
| Virtual Wallet Support | ||
| </td> | ||
| <td> | ||
| <code>digital-credentials:virtualWallet</code> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <code>digital-credentials:virtualWallet</code> | |
| <code>digital-credentials:virtualCredentialManager</code> |
| [=boolean=] | ||
| </td> | ||
| <td> | ||
| Indicates whether the endpoint node supports all Virtual Wallet |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Indicates whether the endpoint node supports all Virtual Wallet | |
| Indicates whether the endpoint node supports all Virtual Credential Manager |
index.html
Outdated
| <p> | ||
| When <a data-cite="webdriver#dfn-validate-capabilities">validating | ||
| capabilities</a>, the extension-specific substeps to validate | ||
| <code>digital-credentials:virtualWallet</code> with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <code>digital-credentials:virtualWallet</code> with | |
| <code>digital-credentials:virtualCredentialManager</code> with |
index.html
Outdated
| <p> | ||
| When <a data-cite="webdriver#dfn-matching-capabilities">matching | ||
| capabilities</a>, the extension-specific steps to match | ||
| <code>digital-credentials:virtualWallet</code> with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <code>digital-credentials:virtualWallet</code> with | |
| <code>digital-credentials:virtualCredentialManager</code> with |
index.html
Outdated
| <ol class="algorithm"> | ||
| <li>If <code>value</code> is <code>true</code> and the | ||
| <a data-cite="webdriver#dfn-endpoint-node">endpoint node</a> does | ||
| not support any of the Virtual Wallet commands, the match is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| not support any of the Virtual Wallet commands, the match is | |
| not support any of the Virtual Credential Manager commands, the match is |
index.html
Outdated
| The following commands allow controlling the behavior of a virtual | ||
| wallet for testing purposes. These commands affect the <dfn>next | ||
| wallet behavior</dfn> of the next |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The following commands allow controlling the behavior of a virtual | |
| wallet for testing purposes. These commands affect the <dfn>next | |
| wallet behavior</dfn> of the next | |
| The following commands allow controlling the behavior of a virtual | |
| credential manager for testing purposes. These commands affect the <dfn>next | |
| credential manager behavior</dfn> of the next |
index.html
Outdated
| <section id="set-wallet-response"> | ||
| <h4> | ||
| <dfn>Set Wallet Response</dfn> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <section id="set-wallet-response"> | |
| <h4> | |
| <dfn>Set Wallet Response</dfn> | |
| <section id="set-cm-response"> | |
| <h4> | |
| <dfn>Set Credential Manager Response</dfn> |
index.html
Outdated
| <dfn>Set Wallet Response</dfn> | ||
| </h4> | ||
| <p> | ||
| The [=Set Wallet Response=] [[WebDriver]] [=extension command=] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The [=Set Wallet Response=] [[WebDriver]] [=extension command=] | |
| The [=Set Credential Manager Response=] [[WebDriver]] [=extension command=] |
index.html
Outdated
| </h4> | ||
| <p> | ||
| The [=Set Wallet Response=] [[WebDriver]] [=extension command=] | ||
| configures the virtual wallet to respond with a specific data |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| configures the virtual wallet to respond with a specific data | |
| configures the virtual credential manager to respond with a specific data |
| string | ||
| </td> | ||
| <td> | ||
| The data to be returned by the wallet. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The data to be returned by the wallet. | |
| The data to be returned by the credential manager. |
| </section> | ||
| <section id="set-wallet-to-wait"> | ||
| <h4> | ||
| <dfn>Set Wallet to Wait</dfn> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <dfn>Set Wallet to Wait</dfn> | |
| <dfn>Set Credential Manager to Wait</dfn> |
| </li> | ||
| </ol> | ||
| </section> | ||
| <section id="set-wallet-to-wait"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <section id="set-wallet-to-wait"> | |
| <section id="set-cm-to-wait"> |
| The [=Set Wallet to Wait=] [[WebDriver]] [=extension command=] | ||
| configures the virtual wallet to simulate a user waiting | ||
| indefinitely in the wallet UI. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The [=Set Wallet to Wait=] [[WebDriver]] [=extension command=] | |
| configures the virtual wallet to simulate a user waiting | |
| indefinitely in the wallet UI. | |
| The [=Set Credential Manager to Wait=] [[WebDriver]] [=extension command=] | |
| configures the virtual credential manager to simulate a user waiting | |
| indefinitely in the credential manager UI. |
| The [=remote end steps=] are: | ||
| </p> | ||
| <ol class="algorithm"> | ||
| <li>Set the session's [=next wallet behavior=] to <code>{ "mode": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <li>Set the session's [=next wallet behavior=] to <code>{ "mode": | |
| <li>Set the session's [=next credential manager behavior=] to <code>{ "mode": |
| <section id="set-wallet-to-decline"> | ||
| <h4> | ||
| <dfn>Set Wallet to Decline</dfn> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <section id="set-wallet-to-decline"> | |
| <h4> | |
| <dfn>Set Wallet to Decline</dfn> | |
| <section id="set-cm-to-decline"> | |
| <h4> | |
| <dfn>Set Credential Manager to Decline</dfn> |
| The [=Set Wallet to Decline=] [[WebDriver]] [=extension command=] | ||
| configures the virtual wallet to simulate a user declining the | ||
| request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The [=Set Wallet to Decline=] [[WebDriver]] [=extension command=] | |
| configures the virtual wallet to simulate a user declining the | |
| request. | |
| The [=Set Credential Manager to Decline=] [[WebDriver]] [=extension command=] | |
| configures the virtual credential manager to simulate a user declining the | |
| request. |
| The [=remote end steps=] are: | ||
| </p> | ||
| <ol class="algorithm"> | ||
| <li>Set the session's [=next wallet behavior=] to <code>{ "mode": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <li>Set the session's [=next wallet behavior=] to <code>{ "mode": | |
| <li>Set the session's [=next credential manager behavior=] to <code>{ "mode": |
| </li> | ||
| </ol> | ||
| </section> | ||
| <section id="virtual-wallet-commands"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <section id="virtual-wallet-commands"> | |
| <section id="virtual-cm-commands"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Best to avoid acronyms 🙏
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know how much acronym avoidance matters in fragment identifiers, but it still might be better to abbreviate somewhat less, perhaps as —
| <section id="virtual-wallet-commands"> | |
| <section id="virtual-cred-mgr-commands"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can leave ReSpec to generate the ids. It knows best.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pro-tip: you can also omit the section tag (ReSpec adds it automatically)
| This section is a work in progress as this document evolves. | ||
| </p> | ||
| </section> | ||
| <section id="user-agent-automation" data-cite="webdriver"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: let ReSpec handle the id generation.
| <section id="user-agent-automation" data-cite="webdriver"> | |
| <section data-cite="webdriver"> |
| Virtual Wallet Support | ||
| </td> | ||
| <td> | ||
| `digital-credentials:virtualWallet` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| `digital-credentials:virtualWallet` | |
| `digital-credentials:virtualHolder` |
f46b5fd to
9b60592
Compare
Closes #357
The following tasks have been completed:
Implementation commitment:
Documentation and checks
Preview | Diff