зеркало из https://github.com/mozilla/gecko-dev.git
47 строки
1.6 KiB
HTML
47 строки
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8">
|
|
<title>Test for ScreenOrientation API</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="orientationcommon.js"></script>
|
|
<div id="log"></div>
|
|
<iframe sandbox="allow-scripts allow-orientation-lock" id="frame"></iframe>
|
|
<script>
|
|
async_test(function(t) {
|
|
var originalOrientation = screen.orientation.type;
|
|
var alternateOrientation = originalOrientation == "portrait-primary" ?
|
|
"landscape-primary" : "portrait-primary";
|
|
|
|
var orientationChanges = [];
|
|
window.screen.orientation.onchange = function() {
|
|
orientationChanges.push(screen.orientation.type);
|
|
};
|
|
|
|
window.addEventListener("message", function(event) {
|
|
t.step(function() {
|
|
assert_equals(event.data, "success");
|
|
assert_array_equals(orientationChanges, [ alternateOrientation ]);
|
|
});
|
|
|
|
// Return the orientation to its original settings.
|
|
var p = specialPowersLock(originalOrientation);
|
|
p.then(function() {
|
|
return specialPowersUnlock();
|
|
}).then(function() {
|
|
t.done();
|
|
}).catch(t.step_func(function(err) {
|
|
assert_unreached("Error setting orientation: " + err);
|
|
t.done();
|
|
}));
|
|
}, false);
|
|
|
|
var frame = document.getElementById("frame");
|
|
frame.src = "http://example.com/tests/dom/base/test/file_lock_orientation.html";
|
|
|
|
frame.onload = function() {
|
|
assert_array_equals(orientationChanges, []);
|
|
frame.contentWindow.postMessage(alternateOrientation, "*");
|
|
};
|
|
}, "Test orientation lock from within a frame with sandbox permission.");
|
|
</script>
|