blob: 1dd40e46b8eebc9517c5065e7a1e3b37c6b08828 [file] [log] [blame]
// Copyright 2014 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.
/**
* This view displays information related to SDCH.
*
* Shows loaded dictionaries, blacklisted domains and SDCH errors.
*/
var SdchView = (function() {
'use strict';
// We inherit from DivView.
var superClass = DivView;
/**
* @constructor
*/
function SdchView() {
assertFirstConstructorCall(SdchView);
// Call superclass's constructor.
superClass.call(this, SdchView.MAIN_BOX_ID);
// Register to receive changes to the SDCH info.
g_browser.addSdchInfoObserver(this, false);
}
SdchView.TAB_ID = 'tab-handle-sdch';
SdchView.TAB_NAME = 'SDCH';
SdchView.TAB_HASH = '#sdch';
// IDs for special HTML elements in sdch_view.html
SdchView.MAIN_BOX_ID = 'sdch-view-tab-content';
SdchView.SDCH_ENABLED_SPAN_ID = 'sdch-view-sdch-enabled';
SdchView.SECURE_SCHEME_SUPPORT_SPAN_ID = 'sdch-view-secure-scheme-support';
SdchView.BLACKLIST_TBODY_ID = 'sdch-view-blacklist-tbody';
SdchView.NUM_DICTIONARIES_LOADED_ID = 'sdch-view-num-dictionaries-loaded';
SdchView.DICTIONARIES_TBODY_ID = 'sdch-view-dictionaries-tbody';
cr.addSingletonGetter(SdchView);
SdchView.prototype = {
// Inherit the superclass's methods.
__proto__: superClass.prototype,
onLoadLogFinish: function(data) {
return this.onSdchInfoChanged(data.sdchInfo);
},
onSdchInfoChanged: function(sdchInfo) {
if (!sdchInfo || typeof(sdchInfo.sdch_enabled) === 'undefined')
return false;
$(SdchView.SDCH_ENABLED_SPAN_ID).textContent =
!!sdchInfo.sdch_enabled;
$(SdchView.NUM_DICTIONARIES_LOADED_ID).textContent =
sdchInfo.dictionaries.length;
var tbodyDictionaries = $(SdchView.DICTIONARIES_TBODY_ID);
tbodyDictionaries.innerHTML = '';
// Fill in the dictionaries table.
for (var i = 0; i < sdchInfo.dictionaries.length; ++i) {
var d = sdchInfo.dictionaries[i];
var tr = addNode(tbodyDictionaries, 'tr');
addNodeWithText(tr, 'td', d.domain);
addNodeWithText(tr, 'td', d.path);
addNodeWithText(tr, 'td',
d.ports ? d.ports.join(', ') : '');
addNodeWithText(tr, 'td', d.server_hash);
addNodeWithText(tr, 'td', d.client_hash);
addNodeWithText(tr, 'td', d.url);
}
var tbodyBlacklist = $(SdchView.BLACKLIST_TBODY_ID);
tbodyBlacklist.innerHTML = '';
// Fill in the blacklisted table.
for (var i = 0; i < sdchInfo.blacklisted.length; ++i) {
var b = sdchInfo.blacklisted[i];
var tr = addNode(tbodyBlacklist, 'tr');
addNodeWithText(tr, 'td', d.domain);
addNodeWithText(tr, 'td', d.sdchProblemCodeToString(reason));
addNodeWithText(tr, 'td', d.tries);
}
return true;
},
};
return SdchView;
})();