blob: a5c0f38c659a273b3a7a9e4bb56cb70d7cae7a05 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Old Powerful Features on an Insecure Origin</title>
</head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/get-host-info.js"></script>
<body>
<div id="target"></div>
<script>
if (window.location.origin != get_host_info().UNAUTHENTICATED_ORIGIN) {
window.location = get_host_info().UNAUTHENTICATED_ORIGIN + window.location.pathname;
} else {
if (!window.internals)
assert_unreached('window.internals is required for this test');
var mockLatitude = 51.478;
var mockLongitude = -0.166;
var mockAccuracy = 100.0;
internals.setGeolocationClientMock(document);
internals.setGeolocationPermission(document, true);
internals.setGeolocationPosition(document,
mockLatitude,
mockLongitude,
mockAccuracy);
// Tests for APIs that are deprecated, but still allowed, on
// insecure origins
async_test(function() {
testRunner.setMockDeviceMotion(true, 0, true, 0, true, 0,
true, 0, true, 0, true, 0,
true, 0, true, 0, true, 0,
0);
window.addEventListener('devicemotion', this.step_func_done());
}, 'device motion');
async_test(function() {
testRunner.setMockDeviceOrientation(11.1, 22.2, 33.3, true);
window.addEventListener('deviceorientation', this.step_func_done());
}, 'device orientation');
promise_test(function(test) {
return navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]);
}, 'requestMediaKeySystemAccess');
// Tests for APIs that have been turned off on insecure origins
async_test(function() {
navigator.geolocation.getCurrentPosition(
this.unreached_func('getCurrentPosition should fail, but succeeded.'),
this.step_func_done());
}, 'getCurrentPosition');
// Note that the deprecation message for watchPosition() will be supressed
// because it is an exact duplicate of the getCurrentPosition() message.
// Thus, this test is really to confirm that it still executes (and fails).
async_test(function() {
navigator.geolocation.watchPosition(
this.unreached_func('watchPosition should fail, but succeeded.'),
this.step_func_done());
}, 'watchPosition');
async_test(function() {
navigator.webkitGetUserMedia({ audio: true, video: true },
this.unreached_func('navigator.webkitGetUserMedia should call the error callback, but called the success callback instead.'),
this.step_func_done());
}, 'navigator.webkitGetUserMedia');
promise_test(function(test) {
return navigator.mediaDevices.getUserMedia({audio: true, video: true}).then(
test.unreached_func("navigator.mediaDevices.getUserMedia should reject the promise, but resolved instead."),
function(error) {
assert_equals(error.name, "NotSupportedError");
assert_equals(error.message, "Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).");
});
}, 'navigator.mediaDevices.getUserMedia');
}
</script>
</body>
</html>