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

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

Issue 7555005: Moving the contents of chrome://gpu Profiling to chrome://tracing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 4 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
(Empty)
1 // Copyright (c) 2011 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
6 /**
7 * @fileoverview ProfilingView visualizes GPU_TRACE events using the
8 * gpu.Timeline component.
9 */
10 cr.define('gpu', function() {
11 /**
12 * ProfilingView
13 * @constructor
14 * @extends {gpu.Tab}
15 */
16 ProfilingView = cr.ui.define(cr.ui.TabPanel);
17
18 ProfilingView.prototype = {
19 __proto__: cr.ui.TabPanel.prototype,
20
21 traceEvents_: [],
22
23 decorate: function() {
24 cr.ui.TabPanel.prototype.decorate.apply(this);
25
26 // make the <list>/add/save/record element
27 this.controlDiv_ = document.createElement('div');
28 this.controlDiv_.className = 'control';
29 this.appendChild(this.controlDiv_);
30
31 this.recordBn_ = document.createElement('button');
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 this.container_ = document.createElement('div');
44 this.container_.className = 'container';
45
46 this.timelineView_ = new TimelineView();
47
48 this.controlDiv_.appendChild(this.recordBn_);
49 if (!browserBridge.debugMode) {
50 this.controlDiv_.appendChild(this.loadBn_);
51 this.controlDiv_.appendChild(this.saveBn_);
52 }
53
54 this.container_.appendChild(this.timelineView_);
55 this.appendChild(this.container_);
56
57 document.addEventListener('keypress', this.onKeypress_.bind(this));
58
59 tracingController.addEventListener('traceEnded',
60 this.onRecordDone_.bind(this));
61 tracingController.addEventListener('loadTraceFileComplete',
62 this.onLoadTraceFileComplete_.bind(this));
63 tracingController.addEventListener('saveTraceFileComplete',
64 this.onSaveTraceFileComplete_.bind(this));
65 tracingController.addEventListener('loadTraceFileCanceled',
66 this.onLoadTraceFileCanceled_.bind(this));
67 tracingController.addEventListener('saveTraceFileCanceled',
68 this.onSaveTraceFileCanceled_.bind(this));
69 this.refresh_();
70 },
71
72 refresh_: function() {
73 var hasEvents = this.traceEvents_ && this.traceEvents_.length;
74
75 this.saveBn_.disabled = !hasEvents;
76
77 this.timelineView_.traceEvents = this.traceEvents_;
78 },
79
80 onKeypress_: function(event) {
81 if (event.keyCode == 114 && !tracingController.isTracingEnabled) {
82 if (!this.selected)
83 this.selected = true;
84 this.onRecord_();
85 }
86 },
87
88 ///////////////////////////////////////////////////////////////////////////
89
90 onRecord_: function() {
91 tracingController.beginTracing();
92 },
93
94 onRecordDone_: function() {
95 this.traceEvents_ = tracingController.traceEvents;
96 this.refresh_();
97 },
98
99 ///////////////////////////////////////////////////////////////////////////
100
101 onSave_: function() {
102 this.overlayEl_ = new gpu.Overlay();
103 this.overlayEl_.className = 'profiling-overlay';
104
105 var labelEl = document.createElement('div');
106 labelEl.className = 'label';
107 labelEl.textContent = 'Saving...';
108 this.overlayEl_.appendChild(labelEl);
109 this.overlayEl_.visible = true;
110
111 tracingController.beginSaveTraceFile(this.traceEvents_);
112 },
113
114 onSaveTraceFileComplete_: function(e) {
115 this.overlayEl_.visible = false;
116 this.overlayEl_ = undefined;
117 },
118
119 onSaveTraceFileCanceled_: function(e) {
120 this.overlayEl_.visible = false;
121 this.overlayEl_ = undefined;
122 },
123
124 ///////////////////////////////////////////////////////////////////////////
125
126 onLoad_: function() {
127 this.overlayEl_ = new gpu.Overlay();
128 this.overlayEl_.className = 'profiling-overlay';
129
130 var labelEl = document.createElement('div');
131 labelEl.className = 'label';
132 labelEl.textContent = 'Loading...';
133 this.overlayEl_.appendChild(labelEl);
134 this.overlayEl_.visible = true;
135
136 tracingController.beginLoadTraceFile();
137 },
138
139 onLoadTraceFileComplete_: function(e) {
140 this.overlayEl_.visible = false;
141 this.overlayEl_ = undefined;
142
143 this.traceEvents_ = e.events;
144 this.refresh_();
145 },
146
147 onLoadTraceFileCanceled_: function(e) {
148 this.overlayEl_.visible = false;
149 this.overlayEl_ = undefined;
150 }
151 };
152
153 return {
154 ProfilingView: ProfilingView
155 };
156 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698