Index: tools/perf/page_sets/webrtc_cases/resolution.js |
diff --git a/tools/perf/page_sets/webrtc_cases/resolution.js b/tools/perf/page_sets/webrtc_cases/resolution.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4b807b0ec4264fdb16330c89bbc5f57ad8c2a1b2 |
--- /dev/null |
+++ b/tools/perf/page_sets/webrtc_cases/resolution.js |
@@ -0,0 +1,78 @@ |
+/* |
+ * Copyright 2017 The Chromium Authors. All rights reserved. |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+'use strict'; |
+ |
+var dimensions = document.querySelector('#dimensions'); |
+var video = document.querySelector('video'); |
+var stream; |
+ |
+var vgaButton = document.querySelector('#vga'); |
+var qvgaButton = document.querySelector('#qvga'); |
+var hdButton = document.querySelector('#hd'); |
+var fullHdButton = document.querySelector('#full-hd'); |
+ |
+vgaButton.onclick = function() { |
+ getMedia(vgaConstraints); |
+}; |
+ |
+qvgaButton.onclick = function() { |
+ getMedia(qvgaConstraints); |
+}; |
+ |
+hdButton.onclick = function() { |
+ getMedia(hdConstraints); |
+}; |
+ |
+fullHdButton.onclick = function() { |
+ getMedia(fullHdConstraints); |
+}; |
+ |
+var qvgaConstraints = { |
+ video: {width: {exact: 320}, height: {exact: 240}} |
+}; |
+ |
+var vgaConstraints = { |
+ video: {width: {exact: 640}, height: {exact: 480}} |
+}; |
+ |
+var hdConstraints = { |
+ video: {width: {exact: 1280}, height: {exact: 720}} |
+}; |
+ |
+var fullHdConstraints = { |
+ video: {width: {exact: 1920}, height: {exact: 1080}} |
+}; |
+ |
+function gotStream(mediaStream) { |
+ window.stream = mediaStream; // stream available to console |
+ video.srcObject = mediaStream; |
+} |
+ |
+function displayVideoDimensions() { |
+ if (!video.videoWidth) { |
+ setTimeout(displayVideoDimensions, 500); |
+ } |
+ dimensions.innerHTML = 'Actual video dimensions: ' + video.videoWidth + |
+ 'x' + video.videoHeight + 'px.'; |
+} |
+ |
+video.onloadedmetadata = displayVideoDimensions; |
+ |
+function getMedia(constraints) { |
+ if (stream) { |
+ stream.getTracks().forEach(function(track) { |
+ track.stop(); |
+ }); |
+ } |
+ |
+ navigator.mediaDevices.getUserMedia(constraints) |
+ .then(gotStream) |
+ .catch(function(e) { |
+ var message = 'getUserMedia error: ' + e.name; |
+ alert(message); |
+ console.log(message); |
+ }); |
+} |