Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
|
eroman
2013/01/04 00:16:14
2013 now :)
Ryan Hamilton
2013/01/04 02:56:05
Hah! Done.
| |
| 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 * This view displays a summary of the state of each QUIC sessions, and | |
|
eroman
2013/01/04 00:16:14
something doesn't sound right here...
Ryan Hamilton
2013/01/04 02:56:05
Done.
| |
| 7 * has links to display them in the events tab. | |
| 8 */ | |
| 9 var QuicView = (function() { | |
| 10 'use strict'; | |
| 11 | |
| 12 // We inherit from DivView. | |
| 13 var superClass = DivView; | |
| 14 | |
| 15 /** | |
| 16 * @constructor | |
| 17 */ | |
| 18 function QuicView() { | |
| 19 assertFirstConstructorCall(QuicView); | |
| 20 | |
| 21 // Call superclass's constructor. | |
| 22 superClass.call(this, QuicView.MAIN_BOX_ID); | |
| 23 | |
| 24 g_browser.addQuicInfoObserver(this, true); | |
| 25 | |
| 26 this.quicEnabledSpan_ = $(QuicView.ENABLED_SPAN_ID); | |
| 27 this.quicForcePortSpan_ = $(QuicView.FORCE_PORT_SPAN_ID); | |
| 28 | |
| 29 this.quicSessionNoneSpan_ = $(QuicView.SESSION_NONE_SPAN_ID); | |
| 30 this.quicSessionLinkSpan_ = $(QuicView.SESSION_LINK_SPAN_ID); | |
| 31 this.quicSessionDiv_ = $(QuicView.SESSION_DIV_ID); | |
| 32 } | |
| 33 | |
| 34 // ID for special HTML element in category_tabs.html | |
| 35 QuicView.TAB_HANDLE_ID = 'tab-handle-quic'; | |
| 36 | |
| 37 // IDs for special HTML elements in quic_view.html | |
| 38 QuicView.MAIN_BOX_ID = 'quic-view-tab-content'; | |
| 39 QuicView.ENABLED_SPAN_ID = 'quic-view-enabled-span'; | |
| 40 QuicView.FORCE_PORT_SPAN_ID = 'quic-view-force-port-span'; | |
| 41 QuicView.SESSION_NONE_SPAN_ID = 'quic-view-session-none-span'; | |
| 42 QuicView.SESSION_LINK_SPAN_ID = 'quic-view-session-link-span'; | |
| 43 QuicView.SESSION_DIV_ID = 'quic-view-session-div'; | |
| 44 | |
| 45 cr.addSingletonGetter(QuicView); | |
| 46 | |
| 47 QuicView.prototype = { | |
| 48 // Inherit the superclass's methods. | |
| 49 __proto__: superClass.prototype, | |
| 50 | |
| 51 onLoadLogFinish: function(data) { | |
| 52 return this.onQuicInfoChanged(data.quicInfo); | |
| 53 }, | |
| 54 | |
| 55 /** | |
| 56 * If |quicInfo| there are any sessions, display a single table with | |
|
eroman
2013/01/04 00:16:14
doesn't sound right.
Ryan Hamilton
2013/01/04 02:56:05
Done.
| |
| 57 * information on each QUIC session. Otherwise, displays "None". | |
| 58 */ | |
| 59 onQuicInfoChanged: function(quicInfo) { | |
| 60 this.quicSessionDiv_.innerHTML = ''; | |
| 61 | |
| 62 var hasNoSession = | |
| 63 (quicInfo == null || quicInfo.sessions == null || | |
|
eroman
2013/01/04 00:16:14
Rather than testing null, i suggest doing a boolea
Ryan Hamilton
2013/01/04 02:56:05
Done.
| |
| 64 quicInfo.sessions.length == 0); | |
| 65 setNodeDisplay(this.quicSessionNoneSpan_, hasNoSession); | |
| 66 setNodeDisplay(this.quicSessionLinkSpan_, !hasNoSession); | |
| 67 | |
| 68 // Only want to be hide the tab if there's no data. In the case of having | |
| 69 // data but no sessions, still show the tab. | |
| 70 if (!quicInfo) | |
| 71 return false; | |
| 72 | |
| 73 this.quicEnabledSpan_.textContent = quicInfo.quic_enabled; | |
| 74 this.quicForcePortSpan_.textContent = | |
| 75 quicInfo.origin_port_to_force_quic_on; | |
| 76 | |
| 77 if (!hasNoSession) { | |
| 78 var tablePrinter = createSessionTablePrinter(quicInfo.sessions); | |
| 79 tablePrinter.toHTML(this.quicSessionDiv_, 'styled-table'); | |
| 80 } | |
| 81 | |
| 82 return true; | |
| 83 }, | |
| 84 }; | |
| 85 | |
| 86 /** | |
| 87 * Creates a table printer to print out the state of list of QUIC sessions. | |
| 88 */ | |
| 89 function createSessionTablePrinter(quicSessions) { | |
| 90 var tablePrinter = new TablePrinter(); | |
| 91 | |
| 92 tablePrinter.addHeaderCell('Host'); | |
| 93 tablePrinter.addHeaderCell('Peer address'); | |
| 94 tablePrinter.addHeaderCell('GUID'); | |
| 95 tablePrinter.addHeaderCell('Active streams'); | |
| 96 | |
| 97 for (var i = 0; i < quicSessions.length; i++) { | |
| 98 var session = quicSessions[i]; | |
| 99 tablePrinter.addRow(); | |
| 100 | |
| 101 var host = session.host_port_pair; | |
| 102 if (session.aliases) | |
| 103 host += ' ' + session.aliases.join(' '); | |
| 104 tablePrinter.addCell(host); | |
| 105 | |
| 106 tablePrinter.addCell(session.peer_address); | |
| 107 tablePrinter.addCell(session.guid); | |
| 108 tablePrinter.addCell(session.open_streams); | |
| 109 } | |
| 110 return tablePrinter; | |
| 111 } | |
| 112 | |
| 113 return QuicView; | |
| 114 })(); | |
| OLD | NEW |