Safari Tech preview 41 is out, and it s good !

Safari Tech preview 41 is out. As usual with the tech preview, with respect to webrtc, it’s what is not in the release note that is interesting. This time, lots of announced automation improvement were delivered. Here is a little tour of what makes STP 41 great for webrtc and testing.

What is new and interesting?

The first obvious thing for those who have been testing against STP will be that you do not need to go through half a dozen undocumented shell commands and developper menus anymore. This release brings webrtc testing out of the realm of the webkit developers and into the realm of app developers / dev ops.

Who is involved?

This is the result of a group effort, that we talked about in a previous post (see section III), to bring those functionalities to the webdriver standard so we don’t have to deal with chrome command lines, firefox profiles, and other vendor-specific “solutions” to common problems among which:

  • how to deal with permission prompts when testing
  • how to create fake media for testing.

Lots of things will be discussed with respect to the specs at TPAC in november, and we should see more implementation (especially on the google side) in Q42017 / Q12018. As of today, AFAIK, only safari has an implementation of those new features.

I’m curious tell me more

With STP 41, the first browser to implement those functionality in their webdriver, when you run the browser in automation mode (through the bundle safari driver executable), by default, the permission prompt will not be triggered, and the fake media will be ON. That means you can test it directly as long as you use webdriver/selenium.

If you are curious enough, you can look in the STP bundle the description of the webdriver APIs and see a new lines:

/Applications/Safari Technology Preview.app/Contents/Frameworks/WebDriver.framework/Versions/A/Resources/Automation.json

        {
            "id": "SessionPermission",
            "type": "string",
            "description": "Enumerates different permissions that must be obtained in order to use privileged APIs.",
            "enum": [
                "GetUserMedia"
            ]
        },

        {
            "id": "SessionPermissionData",
            "type": "object",
            "properties": [
                { "name": "permission", "$ref": "SessionPermission" },
                { "name": "value", "type": "boolean" }
            ]
        }

This shows a first implementation of a REST API to handle all permissions, not only getusermedia’s (there are 11 of them, including bluetooth, geolocation, …). Of course, those require your webdriver binding to be aware of them, which is not the case today. It is fortunate (and smart from apple) that the settings by defaults are the one that allow automate testing, so one don’t need to wait untill the bindings are updated to use them.

It would not be surprising to learn that most of the developper menu options for webrtc can now be set through webdriver options. Unfortunately, updated man page (which describes the web drivers options which can be passed to the driver, but do not have their own REST API) is not provided in the STP bundled, and the online version was last updated for STP …. 14. SO I guess we will have to wait for those.

In the mean time, the menu has shrinked, and the most important options are set ON by default. Lucky us.

OLD Menu

NEW menu

Happy Testing!

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.