[w3c/permissions] Automation: "Get Permission" (#349)

Currently, the Automation section defines a WebDriver extension command for "Set Permission," without a corresponding "Get Permission". We deferred specifying such a command because our motivation at the time was enabling automated testing of [powerful features](https://w3c.github.io/permissions/#powerful-feature), so state retrieval was not critical.

There are other use cases for automating the Permissions API, though, so we should talk about those and determine if they warrant a new WebDriver command.

Based on my current understanding of the typical application developer's use case, a "Get Permission" command may not be necessary. Folks could query the permission status at the granularity of an arbitrary permission descriptor by combining [WebDriver's "Execute Async Script" command](https://www.w3.org/TR/webdriver/#execute-async-script) with [the Permissions API's `query` method](https://w3c.github.io/permissions/#dom-permissions-query).

Here's what it could look like in Python:

    descriptor = {'name': 'camera', 'deviceID': '1234'}

    status = session.execute_async_script('''
        var descriptor = arguments[0];
        var done = arguments[1];

        navigator.permissions.query(descriptor)
          .then(function() {
            return {state: result.state};
          }, function(error) {
            return {error: error.message};
          }).then(done);
        ''')

@agouaillard-cosmo has a much clearer understanding of the needs than I, so they can say more about whether this is sufficient. What do you think, Dr. Alex?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/permissions/issues/349
You are receiving this because you are subscribed to this thread.

Message ID: <w3c/permissions/issues/349@github.com>

Received on Friday, 4 February 2022 03:56:53 UTC