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

Side by Side Diff: chrome/browser/resources/tracing/profiling_view.js

Issue 10543144: Remove old tracing code now that it has moved to third_party. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 6 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
OLDNEW
(Empty)
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.
4
5 'use strict';
6
7 /**
8 * @fileoverview ProfilingView glues the TimelineView control to
9 * TracingController.
10 */
11 cr.define('tracing', function() {
12 /**
13 * ProfilingView
14 * @constructor
15 * @extends {ui.TabPanel}
16 */
17 var ProfilingView = cr.ui.define(cr.ui.TabPanel);
18
19 ProfilingView.prototype = {
20 __proto__: cr.ui.TabPanel.prototype,
21
22 traceEvents_: [],
23 systemTraceEvents_: [],
24
25 decorate: function() {
26 cr.ui.TabPanel.prototype.decorate.apply(this);
27 this.classList.add('profiling-view');
28
29 // make the <list>/add/save/record element
30 this.recordBn_ = document.createElement('button');
31 this.recordBn_.className = 'record';
32 this.recordBn_.textContent = 'Record';
33 this.recordBn_.addEventListener('click', this.onRecord_.bind(this));
34
35 this.saveBn_ = document.createElement('button');
36 this.saveBn_.textContent = 'Save';
37 this.saveBn_.addEventListener('click', this.onSave_.bind(this));
38
39 this.loadBn_ = document.createElement('button');
40 this.loadBn_.textContent = 'Load';
41 this.loadBn_.addEventListener('click', this.onLoad_.bind(this));
42
43 if (cr.isChromeOS) {
44 this.systemTracingBn_ = document.createElement('input');
45 this.systemTracingBn_.type = 'checkbox';
46 this.systemTracingBn_.checked = true;
47
48 var systemTracingLabelEl = document.createElement('div');
49 systemTracingLabelEl.className = 'label';
50 systemTracingLabelEl.textContent = 'System events';
51 systemTracingLabelEl.appendChild(this.systemTracingBn_);
52 }
53
54 this.timelineView_ = new tracing.TimelineView();
55 this.timelineView_.leftControls.appendChild(this.recordBn_);
56 this.timelineView_.leftControls.appendChild(this.saveBn_);
57 this.timelineView_.leftControls.appendChild(this.loadBn_);
58 if (cr.isChromeOS)
59 this.timelineView_.leftControls.appendChild(this.systemTracingBn_);
60
61 this.appendChild(this.timelineView_);
62
63 document.addEventListener('keypress', this.onKeypress_.bind(this));
64
65 this.refresh_();
66 },
67
68 didSetTracingController_: function(value, oldValue) {
69 if (oldValue)
70 throw 'Can only set tracing controller once.';
71
72 this.tracingController_.addEventListener('traceEnded',
73 this.onRecordDone_.bind(this));
74 this.tracingController_.addEventListener('loadTraceFileComplete',
75 this.onLoadTraceFileComplete_.bind(this));
76 this.tracingController_.addEventListener('saveTraceFileComplete',
77 this.onSaveTraceFileComplete_.bind(this));
78 this.tracingController_.addEventListener('loadTraceFileCanceled',
79 this.onLoadTraceFileCanceled_.bind(this));
80 this.tracingController_.addEventListener('saveTraceFileCanceled',
81 this.onSaveTraceFileCanceled_.bind(this));
82 this.refresh_();
83 },
84
85 refresh_: function() {
86 if (!this.tracingController_)
87 return;
88
89 var traceEvents = this.tracingController_.traceEvents;
90 var hasEvents = traceEvents && traceEvents.length;
91
92 this.saveBn_.disabled = !hasEvents;
93
94 if (!hasEvents) return;
95
96 var m = new tracing.TimelineModel();
97 m.importEvents(traceEvents, true,
98 [this.tracingController_.systemTraceEvents]);
99 this.timelineView_.model = m;
100 },
101
102 onKeypress_: function(event) {
103 if (event.keyCode == 114 && !this.tracingController_.isTracingEnabled) {
104 this.onRecord_();
105 }
106 },
107
108 get timelineView() {
109 return this.timelineView_;
110 },
111
112 ///////////////////////////////////////////////////////////////////////////
113
114 onRecord_: function() {
115 var systemTracingEnabled;
116 if (this.systemTracingBn_)
117 systemTracingEnabled = this.systemTracingBn_.checked;
118 else
119 systemTracingEnabled = false;
120 this.tracingController_.beginTracing(systemTracingEnabled);
121 },
122
123 onRecordDone_: function() {
124 this.refresh_();
125 },
126
127 ///////////////////////////////////////////////////////////////////////////
128
129 onSave_: function() {
130 this.overlayEl_ = new tracing.Overlay();
131 this.overlayEl_.className = 'profiling-overlay';
132
133 var labelEl = document.createElement('div');
134 labelEl.className = 'label';
135 labelEl.textContent = 'Saving...';
136 this.overlayEl_.appendChild(labelEl);
137 this.overlayEl_.visible = true;
138
139 this.tracingController_.beginSaveTraceFile();
140 },
141
142 onSaveTraceFileComplete_: function(e) {
143 this.overlayEl_.visible = false;
144 this.overlayEl_ = undefined;
145 },
146
147 onSaveTraceFileCanceled_: function(e) {
148 this.overlayEl_.visible = false;
149 this.overlayEl_ = undefined;
150 },
151
152 ///////////////////////////////////////////////////////////////////////////
153
154 onLoad_: function() {
155 this.overlayEl_ = new tracing.Overlay();
156 this.overlayEl_.className = 'profiling-overlay';
157
158 var labelEl = document.createElement('div');
159 labelEl.className = 'label';
160 labelEl.textContent = 'Loading...';
161 this.overlayEl_.appendChild(labelEl);
162 this.overlayEl_.visible = true;
163
164 this.tracingController_.beginLoadTraceFile();
165 },
166
167 onLoadTraceFileComplete_: function(e) {
168 this.overlayEl_.visible = false;
169 this.overlayEl_ = undefined;
170
171 this.refresh_();
172 },
173
174 onLoadTraceFileCanceled_: function(e) {
175 this.overlayEl_.visible = false;
176 this.overlayEl_ = undefined;
177 }
178 };
179
180 cr.defineProperty(ProfilingView, 'tracingController', cr.PropertyKind.JS,
181 ProfilingView.prototype.didSetTracingController_);
182
183 return {
184 ProfilingView: ProfilingView
185 };
186 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/tracing/profiling_view.css ('k') | chrome/browser/resources/tracing/profiling_view_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698