Index: content/browser/resources/media/webrtc_internals.js |
diff --git a/content/browser/resources/media/webrtc_internals.js b/content/browser/resources/media/webrtc_internals.js |
index 53a04f4c6865592e64a19e8cbe303b346a8d7280..96bd4c1d98ab2c33646c0a1e6272503a994069db 100644 |
--- a/content/browser/resources/media/webrtc_internals.js |
+++ b/content/browser/resources/media/webrtc_internals.js |
@@ -2,6 +2,8 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+var USER_MEDIA_TAB_ID = 'user-media-tab-id'; |
+ |
var tabView = null; |
var ssrcInfoManager = null; |
var peerConnectionUpdateTable = null; |
@@ -138,6 +140,21 @@ function extractSsrcInfo(data) { |
/** |
+ * A helper function for appending a child element to |parent|. |
+ * |
+ * @param {!Element} parent The parent element. |
+ * @param {string} tag The child element tag. |
+ * @param {string} text The textContent of the new DIV. |
+ * @return {!Element} the new DIV element. |
+ */ |
+function appendChildWithText(parent, tag, text) { |
+ var child = document.createElement(tag); |
+ child.textContent = text; |
+ parent.appendChild(child); |
+ return child; |
+} |
+ |
+/** |
* Helper for adding a peer connection update. |
* |
* @param {Element} peerConnectionElement |
@@ -186,7 +203,7 @@ function addPeerConnection(data) { |
var peerConnectionElement = $(id); |
if (!peerConnectionElement) { |
- peerConnectionElement = tabView.addTab(id, data.url); |
+ peerConnectionElement = tabView.addTab(id, data.url + ' [' + id + ']'); |
} |
peerConnectionElement.innerHTML = |
'<p>' + data.url + ' ' + data.servers + ' ' + data.constraints + |
@@ -258,8 +275,26 @@ function addStats(data) { |
* origin {string}, audio {string}, video {string}. |
*/ |
function addGetUserMedia(data) { |
- // TODO(jiayl): add the getUserMedia info to the tabbed UI. |
userMediaRequests.push(data); |
+ |
+ if (!$(USER_MEDIA_TAB_ID)) { |
+ tabView.addTab(USER_MEDIA_TAB_ID, 'GetUserMedia Requests'); |
+ } |
+ |
+ var requestDiv = document.createElement('div'); |
+ requestDiv.className = 'user-media-request-div-class'; |
+ requestDiv.rid = data.rid; |
+ $(USER_MEDIA_TAB_ID).appendChild(requestDiv); |
+ |
+ appendChildWithText(requestDiv, 'div', 'Caller origin: ' + data.origin); |
+ appendChildWithText(requestDiv, 'div', 'Caller process id: ' + data.pid); |
+ appendChildWithText(requestDiv, 'span', 'Audio Constraints').style.fontWeight |
+ = 'bold'; |
+ appendChildWithText(requestDiv, 'div', data.audio); |
+ |
+ appendChildWithText(requestDiv, 'span', 'Video Constraints').style.fontWeight |
+ = 'bold'; |
+ appendChildWithText(requestDiv, 'div', data.video); |
} |
@@ -269,11 +304,19 @@ function addGetUserMedia(data) { |
* @param {!Object} data The object containing rid {number}, the render id. |
*/ |
function removeGetUserMediaForRenderer(data) { |
- // TODO(jiayl): remove the getUserMedia info from the tabbed UI. |
for (var i = userMediaRequests.length - 1; i >= 0; --i) { |
if (userMediaRequests[i].rid == data.rid) |
userMediaRequests.splice(i, 1); |
} |
+ |
+ var requests = $(USER_MEDIA_TAB_ID).childNodes; |
+ for (var i = 0; i < requests.length; ++i) { |
+ if (requests[i].rid == data.rid) |
+ $(USER_MEDIA_TAB_ID).removeChild(requests[i]); |
+ |
+ } |
+ if ($(USER_MEDIA_TAB_ID).childNodes.length == 0) |
+ tabView.removeTab(USER_MEDIA_TAB_ID); |
} |