Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: tools/perf/page_sets/webrtc_cases/canvas-capture.js

Issue 2761163003: Use local pages for webrtc telemetry tests. (Closed)
Patch Set: Exclude all of webrtc_cases in PRESUBMIT.py and add a comment explaining it is because these are te… Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright 2017 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6 'use strict';
7
8 const DEFAULT_FRAME_RATE = 30;
9
10 var canvas = document.getElementById('canvas');
11 var context = canvas.getContext('2d');
12
13 var remoteVideo = document.getElementById('remoteVideo');
14 var startButton = document.getElementById('startButton');
15 startButton.onclick = start;
16
17 var pc1;
18 var pc2;
19 var stream;
20
21 function logError(err) {
22 console.error(err);
23 }
24
25 // This function draws a red rectangle on the canvas using
26 // requestAnimationFrame().
27 function draw() {
28 window.requestAnimationFrame(draw);
29 context.rect(0, 0, canvas.clientWidth, canvas.clientHeight);
30 var randomNumber = Math.random();
31 var hue;
32 if (randomNumber < 0.33)
33 hue = 'red';
34 else if (randomNumber < 0.66)
35 hue = 'green';
36 else
37 hue = 'blue';
38 context.fillStyle = hue;
39 context.fill();
40 }
41
42 function start() {
43 startButton.onclick = hangup;
44 startButton.className = 'red';
45 startButton.innerHTML = 'Stop test';
46 draw();
47 stream = canvas.captureStream(DEFAULT_FRAME_RATE);
48 call();
49 }
50
51 function call() {
52 var servers = null;
53 pc1 = new RTCPeerConnection(servers);
54 pc1.onicecandidate = (event) => {
55 if (event.candidate) {
56 pc2.addIceCandidate(event.candidate);
57 }
58 };
59
60 pc2 = new RTCPeerConnection(servers);
61 pc2.onicecandidate = (event) => {
62 if (event.candidate) {
63 pc1.addIceCandidate(event.candidate);
64 }
65 };
66 pc2.onaddstream = (event) => {
67 remoteVideo.srcObject = event.stream;
68 };
69
70 pc1.addStream(stream);
71 pc1.createOffer({
72 offerToReceiveAudio: 1,
73 offerToReceiveVideo: 1
74 }).then(onCreateOfferSuccess, logError);
75 }
76
77 function onCreateOfferSuccess(desc) {
78 pc1.setLocalDescription(desc);
79 pc2.setRemoteDescription(desc);
80 pc2.createAnswer().then(onCreateAnswerSuccess, logError);
81 }
82
83 function onCreateAnswerSuccess(desc) {
84 pc2.setLocalDescription(desc);
85 pc1.setRemoteDescription(desc);
86 }
87
88 function hangup() {
89 pc1.close();
90 pc2.close();
91 pc1 = null;
92 pc2 = null;
93 startButton.onclick = start;
94 startButton.className = 'green';
95 startButton.innerHTML = 'Start test';
96 }
OLDNEW
« no previous file with comments | « tools/perf/page_sets/webrtc_cases/canvas-capture.html ('k') | tools/perf/page_sets/webrtc_cases/common.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698