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

Side by Side Diff: chrome/browser/resources/copresence.js

Issue 734243003: Adding the chrome://copresence page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@state
Patch Set: Created 6 years 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
« no previous file with comments | « chrome/browser/resources/copresence.html ('k') | chrome/browser/ui/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * Debug information about an active copresence directive.
7 * @typedef {{
8 * type: string,
9 * medium: string,
10 * duration: string
11 * }}
12 */
13 var Directive;
14
15 /**
16 * Debug information about a recent copresence token.
17 * @typedef {{
18 * id: string,
19 * statuses: string,
20 * medium: string,
21 * time: string
22 * }}
23 */
24 var Token;
25
26 /**
27 * Callback to refresh the list of directives.
28 * @param {Array<Directive>} directives
29 */
30 function refreshDirectives(directives) {
31 var table = $('directives-table').tBodies[0];
32
33 // Fix the directives table to have the correct number of rows.
34 while (table.rows.length < directives.length)
35 table.insertRow();
36 while (table.rows.length > directives.length)
37 table.deleteRow();
38
39 // Populate the directives into the table.
40 directives.forEach(function(directive, index) {
41 var row = table.rows.item(index);
42 while (row.cells.length < 3)
43 row.insertCell();
44
45 row.cells.item(0).textContent = directive.type;
46 row.cells.item(1).textContent = directive.medium;
47 row.cells.item(2).textContent = directive.duration;
48 });
49 }
50
51 /**
52 * Callback to add or update transmitted tokens.
53 * @param {Token} token
54 */
55 function updateTransmittedToken(token) {
56 updateTokenTable($('transmitted-tokens-table'), token);
57 }
58
59 /**
60 * Callback to add or update received tokens.
61 * @param {Token} token
62 */
63 function updateReceivedToken(token) {
64 updateTokenTable($('received-tokens-table'), token);
65 }
66
67 /**
68 * Add or update a token in the specified table.
69 * @param {HTMLTableElement} table
70 * @param {Token} token
71 */
72 function updateTokenTable(table, token) {
73 var rows = table.tBodies[0].rows;
74
75 var index;
76 for (index = 0; index < rows.length; index++) {
77 var row = rows.item(index);
78 if (row.cells[0].textContent == token.id) {
79 updateTokenRow(row, token);
80 break;
81 }
82 }
83
84 if (index == rows.length)
85 updateTokenRow(table.tBodies[0].insertRow(), token);
86 }
87
88 /**
89 * Update a token on the specified row.
90 * @param {HTMLTableRowElement} row
91 * @param {Token} token
92 */
93 function updateTokenRow(row, token) {
94 while (row.cells.length < 4)
95 row.insertCell();
96 row.className = token.statuses;
97
98 row.cells[0].textContent = token.id;
99 row.cells[1].textContent =
100 token.statuses.replace('confirmed', '(Confirmed)');
101 row.cells[2].textContent = token.medium;
102 row.cells[3].textContent = token.time;
103 }
104
105 document.addEventListener('DOMContentLoaded', function() {
106 chrome.send('populateCopresenceState');
107 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/copresence.html ('k') | chrome/browser/ui/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698