summaryrefslogtreecommitdiffstats
path: root/content/browser/resources
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-30 19:13:57 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-30 19:13:57 +0000
commit298e675e021b672332b7e4c228f35886cdec316f (patch)
treec62b006cea938a83b7d7f9faa0f89e20f7097eba /content/browser/resources
parent7cb275943cc597207cd6ef33948073aa2badc40c (diff)
downloadchromium_src-298e675e021b672332b7e4c228f35886cdec316f.zip
chromium_src-298e675e021b672332b7e4c228f35886cdec316f.tar.gz
chromium_src-298e675e021b672332b7e4c228f35886cdec316f.tar.bz2
Move webui resources under content\browser to one central place, to match what's done in chrome\browser.
BUG=169170 Review URL: https://codereview.chromium.org/12114010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179684 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/resources')
-rw-r--r--content/browser/resources/media/OWNERS11
-rw-r--r--content/browser/resources/media/webrtc_internals.css11
-rw-r--r--content/browser/resources/media/webrtc_internals.html17
-rw-r--r--content/browser/resources/media/webrtc_internals.js124
4 files changed, 163 insertions, 0 deletions
diff --git a/content/browser/resources/media/OWNERS b/content/browser/resources/media/OWNERS
new file mode 100644
index 0000000..d132d0e
--- /dev/null
+++ b/content/browser/resources/media/OWNERS
@@ -0,0 +1,11 @@
+acolwell@chromium.org
+dalecurtis@chromium.org
+ddorwin@chromium.org
+fischman@chromium.org
+scherkus@chromium.org
+shadi@chromium.org
+tommi@chromium.org
+vrk@chromium.org
+wjia@chromium.org
+xhwang@chromium.org
+xians@chromium.org
diff --git a/content/browser/resources/media/webrtc_internals.css b/content/browser/resources/media/webrtc_internals.css
new file mode 100644
index 0000000..80619d1
--- /dev/null
+++ b/content/browser/resources/media/webrtc_internals.css
@@ -0,0 +1,11 @@
+/* Copyright (c) 2013 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. */
+
+.log-header-event {
+ width: 80%;
+}
+
+textarea {
+ width: 100%;
+}
diff --git a/content/browser/resources/media/webrtc_internals.html b/content/browser/resources/media/webrtc_internals.html
new file mode 100644
index 0000000..7257620
--- /dev/null
+++ b/content/browser/resources/media/webrtc_internals.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML>
+<html i18n-values="dir:textdirection;">
+ <head>
+ <meta charset="utf-8">
+ <title>WebRTC Internals</title>
+ <link rel="stylesheet" href="webrtc_internals.css">
+ <script src="chrome://resources/js/util.js"></script>
+ <script src="chrome://webrtc-internals/webrtc_internals.js"></script>
+ </head>
+ <body>
+ <h2>WebRTC Internals</h2>
+ <p>
+ <ul id="peer-connections-list">
+ </ul>
+ </p>
+ </body>
+</html>
diff --git a/content/browser/resources/media/webrtc_internals.js b/content/browser/resources/media/webrtc_internals.js
new file mode 100644
index 0000000..14dac0e
--- /dev/null
+++ b/content/browser/resources/media/webrtc_internals.js
@@ -0,0 +1,124 @@
+// Copyright (c) 2013 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.
+
+var peerConnectionsListElem = null;
+
+function initialize() {
+ peerConnectionsListElem = $('peer-connections-list');
+ chrome.send('getAllUpdates');
+}
+
+function getPeerConnectionId(data) {
+ return data.pid + ':' + data.lid;
+}
+
+// Makes sure a LI element representing a PeerConnection is created
+// and appended to peerConnectionListElem.
+function ensurePeerConnectionElement(id) {
+ var element = $(id);
+ if (!element) {
+ element = document.createElement('li');
+ peerConnectionsListElem.appendChild(element);
+ element.id = id;
+ }
+ return element;
+}
+
+// Makes sure the table representing the PeerConnection event log is created
+// and appended to peerConnectionElement.
+function ensurePeerConnectionLog(peerConnectionElement) {
+ var logId = peerConnectionElement.id + ':log';
+ var logElement = $(logId);
+ if (!logElement) {
+ logElement = document.createElement('table');
+ logElement.id = logId;
+ logElement.class = 'log-table';
+ logElement.border = 1;
+ peerConnectionElement.appendChild(logElement);
+ logElement.innerHTML = '<tr><th>Time</th>' +
+ '<th class="log-header-event">Event</th></tr>';
+ }
+ return logElement;
+}
+
+// Add the update to the log table as a new row. The type of the update is set
+// as the text of the cell; clicking the cell will reveal or hide the details
+// as the content of a TextArea element.
+function addToPeerConnectionLog(logElement, update) {
+ var row = document.createElement('tr');
+ logElement.appendChild(row);
+
+ var expandable = (update.value.length > 0);
+ row.innerHTML = '<td>' + (new Date()).toLocaleString() + '</td>' +
+ '<td><span>' + update.type + '</span>' +
+ (expandable ? '<button>Expand/Collapse</button>' : '') +
+ '</td>';
+ if (!expandable)
+ return;
+
+ var valueContainer = document.createElement('textarea');
+ row.cells[1].appendChild(valueContainer);
+ valueContainer.value = update.value;
+ valueContainer.style.height = valueContainer.scrollHeight + 'px';
+ valueContainer.style.display = 'none';
+
+ // Hide or reveal the update details on clicking the button.
+ row.cells[1].childNodes[1].addEventListener('click', function(event) {
+ var element = event.target.nextSibling;
+ if (element.style.display == 'none') {
+ element.style.display = 'block';
+ }
+ else {
+ element.style.display = 'none';
+ }
+ });
+}
+
+//
+// Browser message handlers.
+//
+
+// data = {pid:|integer|, lid:|integer|}.
+function removePeerConnection(data) {
+ var element = $(getPeerConnectionId(data));
+ if (element)
+ peerConnectionsListElem.removeChild(element);
+}
+
+// data = {pid:|integer|, lid:|integer|,
+// url:|string|, servers:|string|, constraints:|string|}.
+function addPeerConnection(data) {
+ var peerConnectionElement = ensurePeerConnectionElement(
+ getPeerConnectionId(data));
+ peerConnectionElement.innerHTML =
+ '<h3>PeerConnection ' + peerConnectionElement.id + '</h3>' +
+ '<div>' + data.url + ' ' + data.servers + ' ' + data.constraints +
+ '</div>';
+ return peerConnectionElement;
+}
+
+// data = {pid:|integer|, lid:|integer|, type:|string|, value:|string|}.
+function updatePeerConnection(data) {
+ var peerConnectionElement = ensurePeerConnectionElement(
+ getPeerConnectionId(data));
+ var logElement = ensurePeerConnectionLog(peerConnectionElement);
+ addToPeerConnectionLog(logElement, data);
+}
+
+// data is an array and each entry is in the same format as the input of
+// updatePeerConnection.
+function updateAllPeerConnections(data) {
+ for (var i = 0; i < data.length; ++i) {
+ var peerConnection = addPeerConnection(data[i]);
+ var logElement = ensurePeerConnectionLog(peerConnection);
+ logElement.value = '';
+
+ var log = data[i].log;
+ for (var j = 0; j < log.length; ++j) {
+ addToPeerConnectionLog(logElement, log[j]);
+ }
+ }
+}
+
+document.addEventListener('DOMContentLoaded', initialize);