15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This view displays a summary of the state of each SPDY sessions, and 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * has links to display them in the events tab. 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)var SpdyView = (function() { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'use strict'; 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We inherit from DivView. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var superClass = DivView; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @constructor 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function SpdyView() { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assertFirstConstructorCall(SpdyView); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Call superclass's constructor. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) superClass.call(this, SpdyView.MAIN_BOX_ID); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) g_browser.addSpdySessionInfoObserver(this, true); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) g_browser.addSpdyStatusObserver(this, true); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) g_browser.addSpdyAlternateProtocolMappingsObserver(this, true); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SpdyView.TAB_ID = 'tab-handle-spdy'; 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SpdyView.TAB_NAME = 'SPDY'; 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SpdyView.TAB_HASH = '#spdy'; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IDs for special HTML elements in spdy_view.html 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SpdyView.MAIN_BOX_ID = 'spdy-view-tab-content'; 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SpdyView.STATUS_ID = 'spdy-view-status'; 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SpdyView.SESSION_INFO_ID = 'spdy-view-session-info'; 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SpdyView.ALTERNATE_PROTOCOL_MAPPINGS_ID = 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'spdy-view-alternate-protocol-mappings'; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cr.addSingletonGetter(SpdyView); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SpdyView.prototype = { 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Inherit the superclass's methods. 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __proto__: superClass.prototype, 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) onLoadLogFinish: function(data) { 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return this.onSpdySessionInfoChanged(data.spdySessionInfo) && 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.onSpdyStatusChanged(data.spdyStatus) && 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.onSpdyAlternateProtocolMappingsChanged( 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) data.spdyAlternateProtocolMappings); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * If |spdySessionInfo| contains any sessions, displays a single table with 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * information on each SPDY session. Otherwise, displays "None". 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) onSpdySessionInfoChanged: function(spdySessionInfo) { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!spdySessionInfo) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return false; 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var input = new JsEvalContext({ spdySessionInfo: spdySessionInfo }); 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) jstProcess(input, $(SpdyView.SESSION_INFO_ID)); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Displays information on the global SPDY status. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) onSpdyStatusChanged: function(spdyStatus) { 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (!spdyStatus) 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var input = new JsEvalContext(spdyStatus); 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) jstProcess(input, $(SpdyView.STATUS_ID)); 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Displays information on the SPDY alternate protocol mappings. 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) onSpdyAlternateProtocolMappingsChanged: function( 80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) spdyAlternateProtocolMappings) { 81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (!spdyAlternateProtocolMappings) 82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return false; 83c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var input = new JsEvalContext( 84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {spdyAlternateProtocolMappings: spdyAlternateProtocolMappings}); 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) jstProcess(input, $(SpdyView.ALTERNATE_PROTOCOL_MAPPINGS_ID)); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return SpdyView; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)})(); 92