Updated drag and drop thumbnails.
[chromium-blink-merge.git] / chrome / browser / resources / net_internals / prerender_view.js
blob0958951e3fd49c25db44475488dace406aaedd7f
1 // Copyright (c) 2012 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.
5 /**
6 * This view displays information related to Prerendering.
7 */
8 var PrerenderView = (function() {
9 'use strict';
11 // We inherit from DivView.
12 var superClass = DivView;
14 /**
15 * @constructor
17 function PrerenderView() {
18 assertFirstConstructorCall(PrerenderView);
20 // Call superclass's constructor.
21 superClass.call(this, PrerenderView.MAIN_BOX_ID);
23 g_browser.addPrerenderInfoObserver(this, true);
24 this.prerenderEnabledSpan_ = $(PrerenderView.ENABLED_SPAN_ID);
25 this.prerenderOmniboxEnabledSpan_ =
26 $(PrerenderView.OMNIBOX_ENABLED_SPAN_ID);
27 this.prerenderHistoryDiv_ = $(PrerenderView.HISTORY_DIV_ID);
28 this.prerenderActiveDiv_ = $(PrerenderView.ACTIVE_DIV_ID);
31 // ID for special HTML element in category_tabs.html
32 PrerenderView.TAB_HANDLE_ID = 'tab-handle-prerender';
34 // IDs for special HTML elements in prerender_view.html
35 PrerenderView.MAIN_BOX_ID = 'prerender-view-tab-content';
36 PrerenderView.ENABLED_SPAN_ID = 'prerender-view-enabled-span';
37 PrerenderView.OMNIBOX_ENABLED_SPAN_ID = 'prerender-view-omnibox-enabled-span';
38 PrerenderView.HISTORY_DIV_ID = 'prerender-view-history-div';
39 PrerenderView.ACTIVE_DIV_ID = 'prerender-view-active-div';
41 cr.addSingletonGetter(PrerenderView);
43 PrerenderView.prototype = {
44 // Inherit the superclass's methods.
45 __proto__: superClass.prototype,
47 onLoadLogFinish: function(data) {
48 return this.onPrerenderInfoChanged(data.prerenderInfo);
51 onPrerenderInfoChanged: function(prerenderInfo) {
52 this.prerenderEnabledSpan_.textContent = '';
53 this.prerenderOmniboxEnabledSpan_.textContent = '';
54 this.prerenderHistoryDiv_.innerHTML = '';
55 this.prerenderActiveDiv_.innerHTML = '';
57 if (prerenderInfo && ('enabled' in prerenderInfo)) {
58 this.prerenderEnabledSpan_.textContent =
59 prerenderInfo.enabled.toString();
60 if (prerenderInfo.enabled_note) {
61 this.prerenderEnabledSpan_.textContent +=
62 ' ' + prerenderInfo.enabled_note;
66 if (prerenderInfo && ('omnibox_enabled' in prerenderInfo)) {
67 this.prerenderOmniboxEnabledSpan_.textContent =
68 prerenderInfo.omnibox_enabled.toString();
71 if (!isValidPrerenderInfo(prerenderInfo))
72 return false;
74 var tabPrinter = createHistoryTablePrinter(prerenderInfo.history);
75 tabPrinter.toHTML(this.prerenderHistoryDiv_, 'styled-table');
77 var tabPrinter = createActiveTablePrinter(prerenderInfo.active);
78 tabPrinter.toHTML(this.prerenderActiveDiv_, 'styled-table');
80 return true;
84 function isValidPrerenderInfo(prerenderInfo) {
85 if (prerenderInfo == null) {
86 return false;
88 if (!('history' in prerenderInfo) ||
89 !('active' in prerenderInfo) ||
90 !('enabled' in prerenderInfo)) {
91 return false;
93 return true;
96 function createHistoryTablePrinter(prerenderHistory) {
97 var tablePrinter = new TablePrinter();
98 tablePrinter.addHeaderCell('Origin');
99 tablePrinter.addHeaderCell('URL');
100 tablePrinter.addHeaderCell('Final Status');
101 tablePrinter.addHeaderCell('Time');
103 for (var i = 0; i < prerenderHistory.length; i++) {
104 var historyEntry = prerenderHistory[i];
105 tablePrinter.addRow();
106 tablePrinter.addCell(historyEntry.origin);
107 tablePrinter.addCell(historyEntry.url);
108 tablePrinter.addCell(historyEntry.final_status);
110 var date = new Date(parseInt(historyEntry.end_time));
111 // TODO(eroman): Switch to addNodeWithDate()
112 tablePrinter.addCell(timeutil.dateToString(date));
114 return tablePrinter;
117 function createActiveTablePrinter(prerenderActive) {
118 var tablePrinter = new TablePrinter();
119 tablePrinter.addHeaderCell('URL');
120 tablePrinter.addHeaderCell('Duration');
122 for (var i = 0; i < prerenderActive.length; i++) {
123 var activeEntry = prerenderActive[i];
124 tablePrinter.addRow();
125 tablePrinter.addCell(activeEntry.url);
126 tablePrinter.addCell(activeEntry.duration);
128 return tablePrinter;
131 return PrerenderView;
132 })();