--- a/submitted/W3C/api-present.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>getUserMedia: test that getUserMedia is present (with or without vendor prefix)</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<meta name='assert' content='Check that the getUserMedia() method is present.'/>
-<meta name='flags' content='vendor-prefix, dom'/>
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<h1>Description</h1>
-<p>This test checks for the presence of the <code>navigator.getUserMedia</code> method, taking vendor prefixes into account.</p>
- <div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
-<script>
-test(function () {
- assert_true(undefined !== BrowserHasFeature(navigator, "getUserMedia"), "navigator.getUserMedia exists");
- }, "getUserMedia() is present on navigator");
-</script>
-</body>
-</html>
--- a/submitted/W3C/audiostreamtrack.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>AudioStreamTrack is defined</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-
-<h1>Description</h1>
-<p>This test verifies the availability of the AudioStreamTrack interface.</p>
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/resources/webidl2/lib/webidl2.js></script>
-<script src=/resources/idlharness.js></script>
-<script>
-var idl_array = new IdlArray();
-idl_array.add_idls("[Constructor(optional MediaTrackConstraints audioConstraints)]\
-interface AudioStreamTrack : MediaStreamTrack {\
- static sequence<DOMString> getSourceIds ();\
-};");
-idl_array.test();
-</script>
-</body>
-</html>
--- a/submitted/W3C/deny.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<!doctype html>
-<html>
-<head>
- <title>getUserMedia() triggers error callback when auth is denied</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<p>When prompted, <strong>please deny</strong> access to the video stream.</p>
-<h1>Description</h1>
-<p>This test checks that the error callback is triggered when user denies access to the video stream.</p>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
-<script src=prefix.js></script>
-<script>
-var t = async_test("Tests that the error callback is triggered when permission is denied", {timeout:10000});
-t.step(function() {
- navigator.getUserMedia({video: true}, t.step_func(function (stream) {
- assert_unreached("The success callback should not be triggered since access is to be denied");
- t.done();
- }),
- t.step_func(function (error) {
- assert_equals(error.name, "PermissionDenied", "Permission denied error returned"); // see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22216
- assert_equals(error.constraintName, null, "constraintName attribute not set for permission denied");
- t.done();
- }));
-});
-</script>
-</body>
-</html>
--- a/submitted/W3C/empty-option-param.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>getUserMedia({}) aborts with NOT_SUPPORTED_ERR</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<h1>Description</h1>
-<p>This test checks that getUserMedia with no value in the options parameter raises a NOT_SUPPORTED_ERR exception.</p>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
-<script src=prefix.js></script>
-<script>
-var t = async_test("Tests that getUserMedia raises a NOT_SUPPORTED_ERR exception when used with an empty options parameter");
-t.step( function () {
- assert_throws("NOT_SUPPORTED_ERR",
- function () {
- navigator.getUserMedia({}, function (stream) {
- assert_unreached("This should never be triggered since the constraints parameter is empty");
- t.done();
- }, function (error) {
- assert_unreached("This should never be triggered since the constraints parameter is empty");
- });
- });
- t.done();
-});
-
-</script>
-</body>
-</html>
--- a/submitted/W3C/getusermedia-impossible-constraint.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>Trivial mandatory constraint in getUserMedia</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<p>When prompted, accept to share your video stream.</p>
-<h1>Description</h1>
-<p>This test checks that setting a trivial mandatory constraint (width >=0) in getUserMedia works</p>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
-<script src=prefix.js></script>
-<script>
-var t = async_test("Tests that setting a trivial mandatory constraint in getUserMedia works", {timeout:10000});
-t.step(function() {
- navigator.getUserMedia({video: {mandatory: {width: {min:Infinity}}}}, t.step_func(function (stream) {
- assert_unreached("a Video stream of infinite width cannot be created");
- t.done();
- }), t.step_func(function(error) {
- console.log(error);
- assert_equals(error.name, "ContraintNotSatisfied", "An impossible constraint triggers a ContraintNotSatified error");
- assert_equals(error.constraintName, "width", "The name of the not satisfied error is given in error.constraintName");
- t.done();
- }));
-});
-</script>
-</body>
-</html>
--- a/submitted/W3C/getusermedia-optional-constraint.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>Optional constraint recognized as optional in getUserMedia</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<p>When prompted, accept to share your video stream.</p>
-<h1>Description</h1>
-<p>This test checks that setting an optional constraint in getUserMedia is handled as optional</p>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
-<script src=prefix.js></script>
-<script>
-var t = async_test("Tests that setting an optional constraint in getUserMedia is handled as optional", {timeout:10000});
-t.step(function() {
- navigator.getUserMedia({video: {optional: [{width: {min:1024}}, {width: {max: 800}}]}}, t.step_func(function (stream) {
- assert_equals(stream.getVideoTracks().length, 1, "the media stream has exactly one video track");
- t.done();
- }), t.step_func(function(error) {
- assert_unreached("an optional constraint can't prevent the obtention of a video stream");
- t.done();
- }));
-});
-</script>
-</body>
-</html>
--- a/submitted/W3C/getusermedia-trivial-constraint.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>Trivial mandatory constraint in getUserMedia</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<p>When prompted, accept to share your video stream.</p>
-<h1>Description</h1>
-<p>This test checks that setting a trivial mandatory constraint (width >=0) in getUserMedia works</p>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
-<script src=prefix.js></script>
-<script>
-var t = async_test("Tests that setting a trivial mandatory constraint in getUserMedia works", {timeout:10000});
-t.step(function() {
- navigator.getUserMedia({video: {mandatory: {width: {min:0}}}}, t.step_func(function (stream) {
- assert_equals(stream.getVideoTracks().length, 1, "the media stream has exactly one video track");
- t.done();
- }), t.step_func(function(error) {
- assert_unreached("a Video stream of minimally zero width can always be created");
- t.done();
- }));
-});
-</script>
-</body>
-</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/mediastreams-as-media-elements/video-assignment.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,65 @@
+<!doctype html>
+<html>
+<head>
+<title>Assigning mediastream to a video element</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<p>When prompted, accept to share your video stream.</p>
+<h1>Description</h1>
+<p>This test checks that the MediaStream object returned by the success callback in getUserMedia can be properly assigned to a video element via the <code>srcObject</code> attribute.</p>
+
+<video id="vid"></video>
+
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=../featuredetection.js></script>
+<script src=prefix.js></script>
+<script>
+var vid = document.getElementById("vid");
+var t = async_test("Tests that a MediaStream can be assigned to a video element with srcObject", {timeout: 10000});
+t.step(function() {
+ navigator.getUserMedia({video: true}, t.step_func(function (stream) {
+ // TODO remove when prefixes are gone
+ var srcObjName = FeatureNameInBrowser(vid, "srcObject");
+ var testOncePlaying = function() {
+ assert_equals(vid.played.length, 1, "A MediaStream's timeline always consists of a single range");
+ assert_equals(vid.played.start(0), 0, "A MediaStream's timeline always consists of a single range");
+ assert_equals(vid.played.end(0), vid.currentTime, "A MediaStream's timeline always consists of a single range");
+ assert_equals(vid.readyState, vid.HAVE_ENOUGH_DATA, "Upon selecting a media stream, the UA sets readyState to HAVE_ENOUGH_DATA");
+ var time = vid.currentTime;
+ // not as in spec yet, see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22249
+ assert_throws("INVALID_STATE_ERR", function() {
+ vid.currentTime = 0;
+ });
+ assert_equals(vid.currentTime, time, "The UA MUST ignore attempts to set the currentTime attribute");
+ // TODO add test that duration must be set to currentTime
+ // when mediastream is destroyed
+ vid.removeEventListener("timeupdate", testOncePlaying, false);
+ t.done();
+ }
+ vid.addEventListener("timeupdate", t.step_func(testOncePlaying), false);
+ vid[srcObjName] = stream;
+ vid.play();
+ assert_true(!vid.seeking, "A MediaStream is not seekable");
+ assert_equals(vid.seekable.length, 0, "A MediaStream is not seekable");
+ assert_equals(vid.defaultPlaybackRate, 1, "playback rate is always 1");
+ assert_equals(vid.playbackRate, 1, "playback rate is always 1");
+ // TODO re-enable after resolution of see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22247#c1 ?
+ // assert_equals(vid.preload, "none", "A MediaStream cannot be preloaded.");
+ // not as in spec, see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22246
+ assert_equals(vid.buffered.length, 0, "A MediaStream cannot be preloaded. Therefore, there is no buffered timeranges");
+ assert_equals(vid.duration, Infinity, " A MediaStream does not have a pre-defined duration. ");
+ assert_equals(vid.startDate, NaN, " A MediaStream does not specify a timeline offset");
+ assert_true(!vid.loop, "A MediaStream cannot be looped");
+ vid.loop = true;
+ // not sure about that one https://www.w3.org/Bugs/Public/show_bug.cgi?id=22247
+ //assert_true(!vid.loop, "Setting looped to true in a MediaStream is a no-op");
+ }), function(error) {});
+});
+</script>
+</body>
+</html>
--- a/submitted/W3C/mediastreamtrack-init.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>getUserMedia({video:true}) creates a stream with a properly initialized video track</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<p>When prompted, accept to share your video stream.</p>
-<h1>Description</h1>
-<p>This test checks that the video track of MediaStream object returned by the success callback in getUserMedia is correctly initialized.</p>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/resources/webidl2/lib/webidl2.js></script>
-<script src=/resources/idlharness.js></script>
-<script src=featuredetection.js></script>
-<script src=prefix.js></script>
-<script>
-var t = async_test("Tests that the video MediaStreamTrack objects are properly initialized", {timeout:10000});
-var track = null
-var idl_array = new IdlArray();
-idl_array.add_idls("interface EventTarget {\
- void addEventListener(DOMString type, EventListener? callback, optional boolean capture = false);\
- void removeEventListener(DOMString type, EventListener? callback, optional boolean capture = false);\
- boolean dispatchEvent(Event event);\
-};");
-
-/*idl_array.add_idls("callback interface EventListener {\
- void handleEvent(Event event);\
-};");*/
-idl_array.add_idls("interface MediaStreamTrack : EventTarget {\
- readonly attribute DOMString kind;\
- readonly attribute DOMString id;\
- readonly attribute DOMString label;\
- attribute boolean enabled;\
- readonly attribute boolean muted;\
- attribute EventHandler onmute;\
- attribute EventHandler onunmute;\
- readonly attribute boolean _readonly;\
- readonly attribute boolean remote;\
- readonly attribute MediaStreamTrackState readyState;\
- attribute EventHandler onstarted;\
- attribute EventHandler onended;\
- static sequence<SourceInfo> getSourceInfos ();\
- MediaTrackConstraints? constraints ();\
- MediaSourceStates states ();\
- (AllVideoCapabilities or AllAudioCapabilities) capabilities ();\
- void applyConstraints (MediaTrackConstraints constraints);\
- attribute EventHandler onoverconstrained;\
- MediaStreamTrack clone ();\
- void stop ();\
-};");
-
-t.step(function () {
- navigator.getUserMedia({video: true}, t.step_func(function (stream) {
- var videoTracks = stream.getVideoTracks();
- assert_equals(videoTracks.length, 1, "There is exactly one video track in the media stream");
- track = videoTracks[0];
- assert_equals(track.readyState, "live", "The track object is in live state");
- assert_equals(track.kind, "video", "The track object is of video kind");
- assert_true(track.enabled, "The track object is enabed"); // Not clear that this is required by the spec, see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22212
- idl_array.add_objects({MediaStreamTrack: ["track"]});
- idl_array.test();
-
- t.done();
- }), function (error) {});
-});
-</script>
-</body>
-</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/obtaining-local-multimedia-content/navigatorusermedia/api-present.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,24 @@
+<!doctype html>
+<html>
+<head>
+<title>getUserMedia: test that getUserMedia is present (with or without vendor prefix)</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<meta name='assert' content='Check that the getUserMedia() method is present.'/>
+<meta name='flags' content='vendor-prefix, dom'/>
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test checks for the presence of the <code>navigator.getUserMedia</code> method, taking vendor prefixes into account.</p>
+ <div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=../../featuredetection.js></script>
+<script>
+test(function () {
+ assert_true(undefined !== BrowserHasFeature(navigator, "getUserMedia"), "navigator.getUserMedia exists");
+ }, "getUserMedia() is present on navigator");
+</script>
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/obtaining-local-multimedia-content/navigatorusermedia/deny.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,34 @@
+<!doctype html>
+<html>
+<head>
+ <title>getUserMedia() triggers error callback when auth is denied</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<p>When prompted, <strong>please deny</strong> access to the video stream.</p>
+<h1>Description</h1>
+<p>This test checks that the error callback is triggered when user denies access to the video stream.</p>
+
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=../../featuredetection.js></script>
+<script src=prefix.js></script>
+<script>
+var t = async_test("Tests that the error callback is triggered when permission is denied", {timeout:10000});
+t.step(function() {
+ navigator.getUserMedia({video: true}, t.step_func(function (stream) {
+ assert_unreached("The success callback should not be triggered since access is to be denied");
+ t.done();
+ }),
+ t.step_func(function (error) {
+ assert_equals(error.name, "PermissionDenied", "Permission denied error returned"); // see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22216
+ assert_equals(error.constraintName, null, "constraintName attribute not set for permission denied");
+ t.done();
+ }));
+});
+</script>
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/obtaining-local-multimedia-content/navigatorusermedia/empty-option-param.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,35 @@
+<!doctype html>
+<html>
+<head>
+<title>getUserMedia({}) aborts with NOT_SUPPORTED_ERR</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test checks that getUserMedia with no value in the options parameter raises a NOT_SUPPORTED_ERR exception.</p>
+
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=../../featuredetection.js></script>
+<script src=prefix.js></script>
+<script>
+var t = async_test("Tests that getUserMedia raises a NOT_SUPPORTED_ERR exception when used with an empty options parameter");
+t.step( function () {
+ assert_throws("NOT_SUPPORTED_ERR",
+ function () {
+ navigator.getUserMedia({}, function (stream) {
+ assert_unreached("This should never be triggered since the constraints parameter is empty");
+ t.done();
+ }, function (error) {
+ assert_unreached("This should never be triggered since the constraints parameter is empty");
+ });
+ });
+ t.done();
+});
+
+</script>
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/obtaining-local-multimedia-content/navigatorusermedia/getusermedia-impossible-constraint.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,34 @@
+<!doctype html>
+<html>
+<head>
+<title>Trivial mandatory constraint in getUserMedia</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<p>When prompted, accept to share your video stream.</p>
+<h1>Description</h1>
+<p>This test checks that setting a trivial mandatory constraint (width >=0) in getUserMedia works</p>
+
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=../../featuredetection.js></script>
+<script src=prefix.js></script>
+<script>
+var t = async_test("Tests that setting a trivial mandatory constraint in getUserMedia works", {timeout:10000});
+t.step(function() {
+ navigator.getUserMedia({video: {mandatory: {width: {min:Infinity}}}}, t.step_func(function (stream) {
+ assert_unreached("a Video stream of infinite width cannot be created");
+ t.done();
+ }), t.step_func(function(error) {
+ console.log(error);
+ assert_equals(error.name, "ContraintNotSatisfied", "An impossible constraint triggers a ContraintNotSatified error");
+ assert_equals(error.constraintName, "width", "The name of the not satisfied error is given in error.constraintName");
+ t.done();
+ }));
+});
+</script>
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/obtaining-local-multimedia-content/navigatorusermedia/getusermedia-optional-constraint.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,32 @@
+<!doctype html>
+<html>
+<head>
+<title>Optional constraint recognized as optional in getUserMedia</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<p>When prompted, accept to share your video stream.</p>
+<h1>Description</h1>
+<p>This test checks that setting an optional constraint in getUserMedia is handled as optional</p>
+
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=../../featuredetection.js></script>
+<script src=prefix.js></script>
+<script>
+var t = async_test("Tests that setting an optional constraint in getUserMedia is handled as optional", {timeout:10000});
+t.step(function() {
+ navigator.getUserMedia({video: {optional: [{width: {min:1024}}, {width: {max: 800}}]}}, t.step_func(function (stream) {
+ assert_equals(stream.getVideoTracks().length, 1, "the media stream has exactly one video track");
+ t.done();
+ }), t.step_func(function(error) {
+ assert_unreached("an optional constraint can't prevent the obtention of a video stream");
+ t.done();
+ }));
+});
+</script>
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/obtaining-local-multimedia-content/navigatorusermedia/getusermedia-trivial-constraint.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,32 @@
+<!doctype html>
+<html>
+<head>
+<title>Trivial mandatory constraint in getUserMedia</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<p>When prompted, accept to share your video stream.</p>
+<h1>Description</h1>
+<p>This test checks that setting a trivial mandatory constraint (width >=0) in getUserMedia works</p>
+
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=../../featuredetection.js></script>
+<script src=prefix.js></script>
+<script>
+var t = async_test("Tests that setting a trivial mandatory constraint in getUserMedia works", {timeout:10000});
+t.step(function() {
+ navigator.getUserMedia({video: {mandatory: {width: {min:0}}}}, t.step_func(function (stream) {
+ assert_equals(stream.getVideoTracks().length, 1, "the media stream has exactly one video track");
+ t.done();
+ }), t.step_func(function(error) {
+ assert_unreached("a Video stream of minimally zero width can always be created");
+ t.done();
+ }));
+});
+</script>
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/obtaining-local-multimedia-content/navigatorusermedia/unknownkey-option-param.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,30 @@
+<!doctype html>
+<html>
+<head>
+<title>getUserMedia({doesnotexist:true}) aborts with NOT_SUPPORTED_ERR</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<h1>Description</h1>
+<p>This test checks that getUserMedia with an unknown value in the options parameter raises a NOT_SUPPORTED_ERR exception.</p>
+
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=../../featuredetection.js></script>
+<script src=prefix.js></script>
+<script>
+test(function () {
+ assert_throws("NOT_SUPPORTED_ERR",
+ function () {
+ navigator.getUserMedia({doesnotexist:true}, function (stream) {}, function (error) {});
+ }
+ )
+ }
+);
+
+</script>
+</body>
+</html>
--- a/submitted/W3C/stream-api/introduction/disabled-audio-silence.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/introduction/disabled-audio-silence.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that a disabled audio track in a MediaStream is rendered as silence", {timeout: 200000});
--- a/submitted/W3C/stream-api/introduction/disabled-video-black.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/introduction/disabled-video-black.html Fri Jun 07 20:23:27 2013 +0900
@@ -15,7 +15,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var vid = document.getElementById("vid");
--- a/submitted/W3C/stream-api/mediastream/audio.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastream/audio.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var astream;
--- a/submitted/W3C/stream-api/mediastream/mediastream-addtrack.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastream/mediastream-addtrack.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that adding a track to a MediaStream works as expected", {timeout: 20000}); // longer timeout since requires double user interaction
--- a/submitted/W3C/stream-api/mediastream/mediastream-finished-add.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastream/mediastream-finished-add.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that an addition to a finished MediaStream raises an exception", {timeout:20000});
--- a/submitted/W3C/stream-api/mediastream/mediastream-gettrackid.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastream/mediastream-gettrackid.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that MediaStream.getTrackById works as expected", {timeout: 10000});
--- a/submitted/W3C/stream-api/mediastream/mediastream-id.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastream/mediastream-id.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that a MediaStream with a correct id is returned");
--- a/submitted/W3C/stream-api/mediastream/mediastream-removetrack.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastream/mediastream-removetrack.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that a removal from a MediaStream works as expected", {timeout:10000});
--- a/submitted/W3C/stream-api/mediastream/stream-ended.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastream/stream-ended.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that a MediaStream handles ended correctly", {timeout:10000});
--- a/submitted/W3C/stream-api/mediastream/video.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastream/video.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that a MediaStream with at least one video track is returned");
--- a/submitted/W3C/stream-api/mediastreamtrack/mediastreamtrack-end.html Fri Jun 07 20:07:28 2013 +0900
+++ b/submitted/W3C/stream-api/mediastreamtrack/mediastreamtrack-end.html Fri Jun 07 20:23:27 2013 +0900
@@ -14,7 +14,7 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
+<script src=../../featuredetection.js></script>
<script src=prefix.js></script>
<script>
var t = async_test("Tests that the video MediaStreamTrack objects are properly ended on permission revocation", {timeout: 20000}); // longer timeout since requires user interaction
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/stream-api/mediastreamtrack/mediastreamtrack-init.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,73 @@
+<!doctype html>
+<html>
+<head>
+<title>getUserMedia({video:true}) creates a stream with a properly initialized video track</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+<p>When prompted, accept to share your video stream.</p>
+<h1>Description</h1>
+<p>This test checks that the video track of MediaStream object returned by the success callback in getUserMedia is correctly initialized.</p>
+
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/webidl2/lib/webidl2.js></script>
+<script src=/resources/idlharness.js></script>
+<script src=../../featuredetection.js></script>
+<script src=prefix.js></script>
+<script>
+var t = async_test("Tests that the video MediaStreamTrack objects are properly initialized", {timeout:10000});
+var track = null
+var idl_array = new IdlArray();
+idl_array.add_idls("interface EventTarget {\
+ void addEventListener(DOMString type, EventListener? callback, optional boolean capture = false);\
+ void removeEventListener(DOMString type, EventListener? callback, optional boolean capture = false);\
+ boolean dispatchEvent(Event event);\
+};");
+
+/*idl_array.add_idls("callback interface EventListener {\
+ void handleEvent(Event event);\
+};");*/
+idl_array.add_idls("interface MediaStreamTrack : EventTarget {\
+ readonly attribute DOMString kind;\
+ readonly attribute DOMString id;\
+ readonly attribute DOMString label;\
+ attribute boolean enabled;\
+ readonly attribute boolean muted;\
+ attribute EventHandler onmute;\
+ attribute EventHandler onunmute;\
+ readonly attribute boolean _readonly;\
+ readonly attribute boolean remote;\
+ readonly attribute MediaStreamTrackState readyState;\
+ attribute EventHandler onstarted;\
+ attribute EventHandler onended;\
+ static sequence<SourceInfo> getSourceInfos ();\
+ MediaTrackConstraints? constraints ();\
+ MediaSourceStates states ();\
+ (AllVideoCapabilities or AllAudioCapabilities) capabilities ();\
+ void applyConstraints (MediaTrackConstraints constraints);\
+ attribute EventHandler onoverconstrained;\
+ MediaStreamTrack clone ();\
+ void stop ();\
+};");
+
+t.step(function () {
+ navigator.getUserMedia({video: true}, t.step_func(function (stream) {
+ var videoTracks = stream.getVideoTracks();
+ assert_equals(videoTracks.length, 1, "There is exactly one video track in the media stream");
+ track = videoTracks[0];
+ assert_equals(track.readyState, "live", "The track object is in live state");
+ assert_equals(track.kind, "video", "The track object is of video kind");
+ assert_true(track.enabled, "The track object is enabed"); // Not clear that this is required by the spec, see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22212
+ idl_array.add_objects({MediaStreamTrack: ["track"]});
+ idl_array.test();
+
+ t.done();
+ }), function (error) {});
+});
+</script>
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/stream-api/video-and-audio-tracks/audiostreamtrack.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,27 @@
+<!doctype html>
+<html>
+<head>
+<title>AudioStreamTrack is defined</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+
+<h1>Description</h1>
+<p>This test verifies the availability of the AudioStreamTrack interface.</p>
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/webidl2/lib/webidl2.js></script>
+<script src=/resources/idlharness.js></script>
+<script>
+var idl_array = new IdlArray();
+idl_array.add_idls("[Constructor(optional MediaTrackConstraints audioConstraints)]\
+interface AudioStreamTrack : MediaStreamTrack {\
+ static sequence<DOMString> getSourceIds ();\
+};");
+idl_array.test();
+</script>
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/submitted/W3C/stream-api/video-and-audio-tracks/videostreamtrack.html Fri Jun 07 20:23:27 2013 +0900
@@ -0,0 +1,27 @@
+<!doctype html>
+<html>
+<head>
+<title>VideoStreamTrack is defined</title>
+<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
+<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
+<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
+</head>
+<body>
+
+<h1>Description</h1>
+<p>This test verifies the availability of the VideoStreamTrack interface.</p>
+<div id='log'></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/resources/webidl2/lib/webidl2.js></script>
+<script src=/resources/idlharness.js></script>
+<script>
+var idl_array = new IdlArray();
+idl_array.add_idls("[Constructor(optional MediaTrackConstraints videoConstraints)]\
+interface VideoStreamTrack : MediaStreamTrack {\
+ static sequence<DOMString> getSourceIds ();\
+};");
+idl_array.test();
+</script>
+</body>
+</html>
--- a/submitted/W3C/unknownkey-option-param.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>getUserMedia({doesnotexist:true}) aborts with NOT_SUPPORTED_ERR</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<h1>Description</h1>
-<p>This test checks that getUserMedia with an unknown value in the options parameter raises a NOT_SUPPORTED_ERR exception.</p>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
-<script src=prefix.js></script>
-<script>
-test(function () {
- assert_throws("NOT_SUPPORTED_ERR",
- function () {
- navigator.getUserMedia({doesnotexist:true}, function (stream) {}, function (error) {});
- }
- )
- }
-);
-
-</script>
-</body>
-</html>
--- a/submitted/W3C/video-assignment.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>Assigning mediastream to a video element</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-<p>When prompted, accept to share your video stream.</p>
-<h1>Description</h1>
-<p>This test checks that the MediaStream object returned by the success callback in getUserMedia can be properly assigned to a video element via the <code>srcObject</code> attribute.</p>
-
-<video id="vid"></video>
-
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=featuredetection.js></script>
-<script src=prefix.js></script>
-<script>
-var vid = document.getElementById("vid");
-var t = async_test("Tests that a MediaStream can be assigned to a video element with srcObject", {timeout: 10000});
-t.step(function() {
- navigator.getUserMedia({video: true}, t.step_func(function (stream) {
- // TODO remove when prefixes are gone
- var srcObjName = FeatureNameInBrowser(vid, "srcObject");
- var testOncePlaying = function() {
- assert_equals(vid.played.length, 1, "A MediaStream's timeline always consists of a single range");
- assert_equals(vid.played.start(0), 0, "A MediaStream's timeline always consists of a single range");
- assert_equals(vid.played.end(0), vid.currentTime, "A MediaStream's timeline always consists of a single range");
- assert_equals(vid.readyState, vid.HAVE_ENOUGH_DATA, "Upon selecting a media stream, the UA sets readyState to HAVE_ENOUGH_DATA");
- var time = vid.currentTime;
- // not as in spec yet, see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22249
- assert_throws("INVALID_STATE_ERR", function() {
- vid.currentTime = 0;
- });
- assert_equals(vid.currentTime, time, "The UA MUST ignore attempts to set the currentTime attribute");
- // TODO add test that duration must be set to currentTime
- // when mediastream is destroyed
- vid.removeEventListener("timeupdate", testOncePlaying, false);
- t.done();
- }
- vid.addEventListener("timeupdate", t.step_func(testOncePlaying), false);
- vid[srcObjName] = stream;
- vid.play();
- assert_true(!vid.seeking, "A MediaStream is not seekable");
- assert_equals(vid.seekable.length, 0, "A MediaStream is not seekable");
- assert_equals(vid.defaultPlaybackRate, 1, "playback rate is always 1");
- assert_equals(vid.playbackRate, 1, "playback rate is always 1");
- // TODO re-enable after resolution of see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22247#c1 ?
- // assert_equals(vid.preload, "none", "A MediaStream cannot be preloaded.");
- // not as in spec, see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22246
- assert_equals(vid.buffered.length, 0, "A MediaStream cannot be preloaded. Therefore, there is no buffered timeranges");
- assert_equals(vid.duration, Infinity, " A MediaStream does not have a pre-defined duration. ");
- assert_equals(vid.startDate, NaN, " A MediaStream does not specify a timeline offset");
- assert_true(!vid.loop, "A MediaStream cannot be looped");
- vid.loop = true;
- // not sure about that one https://www.w3.org/Bugs/Public/show_bug.cgi?id=22247
- //assert_true(!vid.loop, "Setting looped to true in a MediaStream is a no-op");
- }), function(error) {});
-});
-</script>
-</body>
-</html>
--- a/submitted/W3C/videostreamtrack.html Fri Jun 07 20:07:28 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<title>VideoStreamTrack is defined</title>
-<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
-<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia">
-<link rel='stylesheet' href='/resources/testharness.css' media='all'/>
-</head>
-<body>
-
-<h1>Description</h1>
-<p>This test verifies the availability of the VideoStreamTrack interface.</p>
-<div id='log'></div>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/resources/webidl2/lib/webidl2.js></script>
-<script src=/resources/idlharness.js></script>
-<script>
-var idl_array = new IdlArray();
-idl_array.add_idls("[Constructor(optional MediaTrackConstraints videoConstraints)]\
-interface VideoStreamTrack : MediaStreamTrack {\
- static sequence<DOMString> getSourceIds ();\
-};");
-idl_array.test();
-</script>
-</body>
-</html>