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); |
+ }); |
+ }); |
+ } |
+ } |
+})(); |