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

Side by Side Diff: chrome/browser/resources/net_internals/dataview.js

Issue 6025017: Adds the ability to load JSON log files to about:net-internals. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Put load log button on its own line Created 9 years, 11 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * This view displays options for importing/exporting the captured data. Its 6 * This view displays options for importing/exporting the captured data. Its
7 * primarily usefulness is to allow users to copy-paste their data in an easy 7 * primarily usefulness is to allow users to copy-paste their data in an easy
8 * to read format for bug reports. 8 * to read format for bug reports.
9 * 9 *
10 * - Has a button to generate a text report. 10 * - Has a button to generate a text report.
11 * 11 *
12 * - Shows how many events have been captured. 12 * - Shows how many events have been captured.
13 * @constructor 13 * @constructor
14 */ 14 */
15 function DataView(mainBoxId, 15 function DataView(mainBoxId,
16 outputTextBoxId, 16 outputTextBoxId,
17 exportTextButtonId, 17 exportTextButtonId,
18 securityStrippingCheckboxId, 18 securityStrippingCheckboxId,
19 byteLoggingCheckboxId, 19 byteLoggingCheckboxId,
20 passivelyCapturedCountId, 20 passivelyCapturedCountId,
21 activelyCapturedCountId, 21 activelyCapturedCountId,
22 deleteAllId) { 22 deleteAllId,
23 dumpDataDivId,
24 loadDataDivId,
25 loadLogFileId,
26 capturingTextSpanId,
27 loggingTextSpanId) {
23 DivView.call(this, mainBoxId); 28 DivView.call(this, mainBoxId);
24 29
25 this.textPre_ = document.getElementById(outputTextBoxId); 30 this.textPre_ = document.getElementById(outputTextBoxId);
26 this.securityStrippingCheckbox_ = 31 this.securityStrippingCheckbox_ =
27 document.getElementById(securityStrippingCheckboxId); 32 document.getElementById(securityStrippingCheckboxId);
28 33
29 var byteLoggingCheckbox = document.getElementById(byteLoggingCheckboxId); 34 var byteLoggingCheckbox = document.getElementById(byteLoggingCheckboxId);
30 byteLoggingCheckbox.onclick = 35 byteLoggingCheckbox.onclick =
31 this.onSetByteLogging_.bind(this, byteLoggingCheckbox); 36 this.onSetByteLogging_.bind(this, byteLoggingCheckbox);
32 37
33 var exportTextButton = document.getElementById(exportTextButtonId); 38 var exportTextButton = document.getElementById(exportTextButtonId);
34 exportTextButton.onclick = this.onExportToText_.bind(this); 39 exportTextButton.onclick = this.onExportToText_.bind(this);
35 40
36 this.activelyCapturedCountBox_ = 41 this.activelyCapturedCountBox_ =
37 document.getElementById(activelyCapturedCountId); 42 document.getElementById(activelyCapturedCountId);
38 this.passivelyCapturedCountBox_ = 43 this.passivelyCapturedCountBox_ =
39 document.getElementById(passivelyCapturedCountId); 44 document.getElementById(passivelyCapturedCountId);
40 document.getElementById(deleteAllId).onclick = 45 document.getElementById(deleteAllId).onclick =
41 g_browser.deleteAllEvents.bind(g_browser); 46 g_browser.deleteAllEvents.bind(g_browser);
42 47
48 this.dumpDataDiv_ = document.getElementById(dumpDataDivId);
49 this.loadDataDiv_ = document.getElementById(loadDataDivId);
50 this.capturingTextSpan_ = document.getElementById(capturingTextSpanId);
51 this.loggingTextSpan_ = document.getElementById(loggingTextSpanId);
52
53 document.getElementById(loadLogFileId).onclick =
54 g_browser.loadLogFile.bind(g_browser);
55
43 this.updateEventCounts_(); 56 this.updateEventCounts_();
44 this.waitingForUpdate_ = false; 57 this.waitingForUpdate_ = false;
45 58
46 g_browser.addLogObserver(this); 59 g_browser.addLogObserver(this);
47 } 60 }
48 61
49 inherits(DataView, DivView); 62 inherits(DataView, DivView);
50 63
51 /** 64 /**
52 * Called whenever a new event is received. 65 * Called whenever a new event is received.
(...skipping 11 matching lines...) Expand all
64 }; 77 };
65 78
66 /** 79 /**
67 * Called whenever all log events are deleted. 80 * Called whenever all log events are deleted.
68 */ 81 */
69 DataView.prototype.onAllLogEntriesDeleted = function() { 82 DataView.prototype.onAllLogEntriesDeleted = function() {
70 this.updateEventCounts_(); 83 this.updateEventCounts_();
71 }; 84 };
72 85
73 /** 86 /**
87 * Called when either a log file is loaded or when going back to actively
88 * logging events. In either case, called after clearing the old entries,
89 * but before getting any new ones.
90 */
91 DataView.prototype.onSetIsViewingLogFile = function(isViewingLogFile) {
92 setNodeDisplay(this.dumpDataDiv_, !isViewingLogFile);
93 setNodeDisplay(this.capturingTextSpan_, !isViewingLogFile);
94 setNodeDisplay(this.loggingTextSpan_, isViewingLogFile);
95 this.setText_('');
96 };
97
98 /**
74 * Updates the counters showing how many events have been captured. 99 * Updates the counters showing how many events have been captured.
75 */ 100 */
76 DataView.prototype.updateEventCounts_ = function() { 101 DataView.prototype.updateEventCounts_ = function() {
77 this.activelyCapturedCountBox_.innerText = 102 this.activelyCapturedCountBox_.innerText =
78 g_browser.getNumActivelyCapturedEvents() 103 g_browser.getNumActivelyCapturedEvents()
79 this.passivelyCapturedCountBox_.innerText = 104 this.passivelyCapturedCountBox_.innerText =
80 g_browser.getNumPassivelyCapturedEvents(); 105 g_browser.getNumPassivelyCapturedEvents();
81 }; 106 };
82 107
83 /** 108 /**
(...skipping 17 matching lines...) Expand all
101 return; 126 return;
102 this.waitingForUpdate = true; 127 this.waitingForUpdate = true;
103 this.setText_('Generating...'); 128 this.setText_('Generating...');
104 g_browser.updateAllInfo(this.onUpdateAllCompleted.bind(this)); 129 g_browser.updateAllInfo(this.onUpdateAllCompleted.bind(this));
105 }; 130 };
106 131
107 /** 132 /**
108 * Presents the captured data as formatted text. 133 * Presents the captured data as formatted text.
109 */ 134 */
110 DataView.prototype.onUpdateAllCompleted = function(data) { 135 DataView.prototype.onUpdateAllCompleted = function(data) {
136 // It's possible for a log file to be loaded while a dump is being generated.
137 // When that happens, don't display the log dump, to avoid any confusion.
138 if (g_browser.isViewingLogFile())
139 return;
111 this.waitingForUpdate_ = false; 140 this.waitingForUpdate_ = false;
112 var text = []; 141 var text = [];
113 142
114 // Print some basic information about our environment. 143 // Print some basic information about our environment.
115 text.push('Data exported on: ' + (new Date()).toLocaleString()); 144 text.push('Data exported on: ' + (new Date()).toLocaleString());
116 text.push(''); 145 text.push('');
117 text.push('Number of passively captured events: ' + 146 text.push('Number of passively captured events: ' +
118 g_browser.getNumPassivelyCapturedEvents()); 147 g_browser.getNumPassivelyCapturedEvents());
119 text.push('Number of actively captured events: ' + 148 text.push('Number of actively captured events: ' +
120 g_browser.getNumActivelyCapturedEvents()); 149 g_browser.getNumActivelyCapturedEvents());
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 * Select all text from log dump. 420 * Select all text from log dump.
392 */ 421 */
393 DataView.prototype.selectText_ = function() { 422 DataView.prototype.selectText_ = function() {
394 var selection = window.getSelection(); 423 var selection = window.getSelection();
395 selection.removeAllRanges(); 424 selection.removeAllRanges();
396 425
397 var range = document.createRange(); 426 var range = document.createRange();
398 range.selectNodeContents(this.textPre_); 427 range.selectNodeContents(this.textPre_);
399 selection.addRange(range); 428 selection.addRange(range);
400 }; 429 };
OLDNEW
« no previous file with comments | « chrome/browser/net/net_log_logger.cc ('k') | chrome/browser/resources/net_internals/eventsview.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698