diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-30 19:13:57 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-30 19:13:57 +0000 |
commit | 298e675e021b672332b7e4c228f35886cdec316f (patch) | |
tree | c62b006cea938a83b7d7f9faa0f89e20f7097eba /content/browser/resources | |
parent | 7cb275943cc597207cd6ef33948073aa2badc40c (diff) | |
download | chromium_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/OWNERS | 11 | ||||
-rw-r--r-- | content/browser/resources/media/webrtc_internals.css | 11 | ||||
-rw-r--r-- | content/browser/resources/media/webrtc_internals.html | 17 | ||||
-rw-r--r-- | content/browser/resources/media/webrtc_internals.js | 124 |
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); |