Index: LayoutTests/fullscreen/trusted-event.js |
diff --git a/LayoutTests/fullscreen/trusted-event.js b/LayoutTests/fullscreen/trusted-event.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1f6a835195ab16310a1027c70e2522dc1a2e9939 |
--- /dev/null |
+++ b/LayoutTests/fullscreen/trusted-event.js |
@@ -0,0 +1,37 @@ |
+// Invokes callback from a trusted event. |
+// When testing manually, a button is added to the container. |
+function trusted_event(callback, container) |
+{ |
+ var document = container.ownerDocument; |
+ |
+ if (window.testRunner) { |
+ // Running under LayoutTests. Use timeout to be async. |
+ setTimeout(function() |
+ { |
+ document.addEventListener("click", callback); |
+ eventSender.mouseDown(); |
+ eventSender.mouseUp(); |
+ document.removeEventListener("click", callback); |
+ }, 0); |
+ } else { |
+ // Running as manual test. Show a button to click. |
+ var button = document.createElement("button"); |
+ button.textContent = "click to run test"; |
+ button.style.fontSize = "20px"; |
+ button.style.padding = "10px"; |
+ button.onclick = function() |
+ { |
+ callback(); |
+ button.onclick = null; |
+ container.removeChild(button); |
+ }; |
+ container.appendChild(button); |
+ } |
+} |
+ |
+// Invokes element.requestFullscreen() from a trusted event. |
+function trusted_request(element) |
+{ |
+ var request = element.requestFullscreen.bind(element); |
+ trusted_event(request, element.parentNode); |
+} |