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

Side by Side Diff: content/browser/resources/media/webrtc_internals.js

Issue 405683003: Adds the UserMedia requests to the UI of chrome://webrtc-internals. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 var USER_MEDIA_TAB_ID = 'user-media-tab-id';
6
5 var tabView = null; 7 var tabView = null;
6 var ssrcInfoManager = null; 8 var ssrcInfoManager = null;
7 var peerConnectionUpdateTable = null; 9 var peerConnectionUpdateTable = null;
8 var statsTable = null; 10 var statsTable = null;
9 var dumpCreator = null; 11 var dumpCreator = null;
10 /** A map from peer connection id to the PeerConnectionRecord. */ 12 /** A map from peer connection id to the PeerConnectionRecord. */
11 var peerConnectionDataStore = {}; 13 var peerConnectionDataStore = {};
12 /** A list of getUserMedia requests. */ 14 /** A list of getUserMedia requests. */
13 var userMediaRequests = []; 15 var userMediaRequests = [];
14 16
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 */ 133 */
132 function extractSsrcInfo(data) { 134 function extractSsrcInfo(data) {
133 if (data.type == 'setLocalDescription' || 135 if (data.type == 'setLocalDescription' ||
134 data.type == 'setRemoteDescription') { 136 data.type == 'setRemoteDescription') {
135 ssrcInfoManager.addSsrcStreamInfo(data.value); 137 ssrcInfoManager.addSsrcStreamInfo(data.value);
136 } 138 }
137 } 139 }
138 140
139 141
140 /** 142 /**
143 * A helper function for appending a child element to |parent|.
144 *
145 * @param {!Element} parent The parent element.
146 * @param {string} tag The child element tag.
147 * @param {string} text The textContent of the new DIV.
148 * @return {!Element} the new DIV element.
149 */
150 function appendChildWithText(parent, tag, text) {
151 var child = document.createElement(tag);
152 child.textContent = text;
153 parent.appendChild(child);
154 return child;
155 }
156
157 /**
141 * Helper for adding a peer connection update. 158 * Helper for adding a peer connection update.
142 * 159 *
143 * @param {Element} peerConnectionElement 160 * @param {Element} peerConnectionElement
144 * @param {!PeerConnectionUpdateEntry} update The peer connection update data. 161 * @param {!PeerConnectionUpdateEntry} update The peer connection update data.
145 */ 162 */
146 function addPeerConnectionUpdate(peerConnectionElement, update) { 163 function addPeerConnectionUpdate(peerConnectionElement, update) {
147 peerConnectionUpdateTable.addPeerConnectionUpdate(peerConnectionElement, 164 peerConnectionUpdateTable.addPeerConnectionUpdate(peerConnectionElement,
148 update); 165 update);
149 extractSsrcInfo(update); 166 extractSsrcInfo(update);
150 peerConnectionDataStore[peerConnectionElement.id].addUpdate(update); 167 peerConnectionDataStore[peerConnectionElement.id].addUpdate(update);
(...skipping 28 matching lines...) Expand all
179 var id = getPeerConnectionId(data); 196 var id = getPeerConnectionId(data);
180 197
181 if (!peerConnectionDataStore[id]) { 198 if (!peerConnectionDataStore[id]) {
182 peerConnectionDataStore[id] = new PeerConnectionRecord(); 199 peerConnectionDataStore[id] = new PeerConnectionRecord();
183 } 200 }
184 peerConnectionDataStore[id].initialize( 201 peerConnectionDataStore[id].initialize(
185 data.url, data.servers, data.constraints); 202 data.url, data.servers, data.constraints);
186 203
187 var peerConnectionElement = $(id); 204 var peerConnectionElement = $(id);
188 if (!peerConnectionElement) { 205 if (!peerConnectionElement) {
189 peerConnectionElement = tabView.addTab(id, data.url); 206 peerConnectionElement = tabView.addTab(id, data.url + ' [' + id + ']');
190 } 207 }
191 peerConnectionElement.innerHTML = 208 peerConnectionElement.innerHTML =
192 '<p>' + data.url + ' ' + data.servers + ' ' + data.constraints + 209 '<p>' + data.url + ' ' + data.servers + ' ' + data.constraints +
193 '</p>'; 210 '</p>';
194 211
195 return peerConnectionElement; 212 return peerConnectionElement;
196 } 213 }
197 214
198 215
199 /** 216 /**
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 } 268 }
252 269
253 270
254 /** 271 /**
255 * Adds a getUserMedia request. 272 * Adds a getUserMedia request.
256 * 273 *
257 * @param {!Object} data The object containing rid {number}, pid {number}, 274 * @param {!Object} data The object containing rid {number}, pid {number},
258 * origin {string}, audio {string}, video {string}. 275 * origin {string}, audio {string}, video {string}.
259 */ 276 */
260 function addGetUserMedia(data) { 277 function addGetUserMedia(data) {
261 // TODO(jiayl): add the getUserMedia info to the tabbed UI.
262 userMediaRequests.push(data); 278 userMediaRequests.push(data);
279
280 if (!$(USER_MEDIA_TAB_ID)) {
281 tabView.addTab(USER_MEDIA_TAB_ID, 'GetUserMedia Requests');
282 }
283
284 var requestDiv = document.createElement('div');
285 requestDiv.className = 'user-media-request-div-class';
286 requestDiv.rid = data.rid;
287 $(USER_MEDIA_TAB_ID).appendChild(requestDiv);
288
289 appendChildWithText(requestDiv, 'div', 'Caller origin: ' + data.origin);
290 appendChildWithText(requestDiv, 'div', 'Caller process id: ' + data.pid);
291 appendChildWithText(requestDiv, 'span', 'Audio Constraints').style.fontWeight
292 = 'bold';
293 appendChildWithText(requestDiv, 'div', data.audio);
294
295 appendChildWithText(requestDiv, 'span', 'Video Constraints').style.fontWeight
296 = 'bold';
297 appendChildWithText(requestDiv, 'div', data.video);
263 } 298 }
264 299
265 300
266 /** 301 /**
267 * Removes the getUserMedia requests from the specified |rid|. 302 * Removes the getUserMedia requests from the specified |rid|.
268 * 303 *
269 * @param {!Object} data The object containing rid {number}, the render id. 304 * @param {!Object} data The object containing rid {number}, the render id.
270 */ 305 */
271 function removeGetUserMediaForRenderer(data) { 306 function removeGetUserMediaForRenderer(data) {
272 // TODO(jiayl): remove the getUserMedia info from the tabbed UI.
273 for (var i = userMediaRequests.length - 1; i >= 0; --i) { 307 for (var i = userMediaRequests.length - 1; i >= 0; --i) {
274 if (userMediaRequests[i].rid == data.rid) 308 if (userMediaRequests[i].rid == data.rid)
275 userMediaRequests.splice(i, 1); 309 userMediaRequests.splice(i, 1);
276 } 310 }
311
312 var requests = $(USER_MEDIA_TAB_ID).childNodes;
313 for (var i = 0; i < requests.length; ++i) {
314 if (requests[i].rid == data.rid) {
vrk (LEFT CHROMIUM) 2014/07/18 22:01:06 nit: no {}
jiayl 2014/07/18 22:06:24 Done.
315 $(USER_MEDIA_TAB_ID).removeChild(requests[i]);
316 }
317 }
318 if ($(USER_MEDIA_TAB_ID).childNodes.length == 0) {
vrk (LEFT CHROMIUM) 2014/07/18 22:01:06 nit: no {}
jiayl 2014/07/18 22:06:24 Done.
319 tabView.removeTab(USER_MEDIA_TAB_ID);
320 }
277 } 321 }
278 322
279 323
280 /** 324 /**
281 * Notification that the AEC recording file selection dialog was cancelled, 325 * Notification that the AEC recording file selection dialog was cancelled,
282 * i.e. AEC has not been enabled. 326 * i.e. AEC has not been enabled.
283 */ 327 */
284 function aecRecordingFileSelectionCancelled() { 328 function aecRecordingFileSelectionCancelled() {
285 dumpCreator.disableAecRecording(); 329 dumpCreator.disableAecRecording();
286 } 330 }
287 331
288 332
289 /** 333 /**
290 * Set 334 * Set
291 */ 335 */
292 function enableAecRecording() { 336 function enableAecRecording() {
293 dumpCreator.enableAecRecording(); 337 dumpCreator.enableAecRecording();
294 } 338 }
OLDNEW
« no previous file with comments | « content/browser/resources/media/webrtc_internals.css ('k') | content/renderer/media/peer_connection_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698