Chromium Code Reviews| Index: LayoutTests/resources/permissions-helper.js |
| diff --git a/LayoutTests/resources/permissions-helper.js b/LayoutTests/resources/permissions-helper.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ed978dfc59c38ff26651b21b80a09bbd67116c30 |
| --- /dev/null |
| +++ b/LayoutTests/resources/permissions-helper.js |
| @@ -0,0 +1,38 @@ |
| +var PermissionsHelper = (function() { |
| + function nameToObject(permissionName) { |
| + switch (permissionName) { |
| + case "midi": |
| + return {name: "midi"} |
|
mlamouri (slow - plz ping)
2015/08/22 10:19:29
nit: add ;
same for all the following return stat
Lalit Maganti
2015/08/24 09:18:23
Done.
|
| + case "midi-sysex": |
| + return {name: "midi", sysex: true} |
| + case "push-messaging": |
| + return {name: "push", userVisibleOnly: true} |
| + case "notifications": |
| + return {name: "notifications"} |
| + case "geolocation": |
| + return {name: "geolocation"} |
| + default: |
| + throw "Invalid " |
|
mlamouri (slow - plz ping)
2015/08/22 10:19:29
nit: could you throw something that would be more
Lalit Maganti
2015/08/24 09:18:23
I really shouldn't write CLs late on Friday :)
Do
|
| + } |
| + } |
| + |
| + return { |
| + setPermission: function(name, state) { |
| + return new Promise(function(resolver, reject) { |
| + navigator.permissions.query(nameToObject(name)).then(function(result) { |
| + if (result.state == state) { |
| + resolver() |
| + return; |
| + } |
| + |
| + result.onchange = function() { |
| + result.onchange = null; |
| + resolver(); |
| + }; |
| + |
| + testRunner.setPermission(name, state, location.origin, location.origin); |
| + }); |
| + }); |
| + } |
| + } |
| +})(); |