Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / src / tracing / tracks / cpu_track.js
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 tvcm.require('tracing.tracks.container_track');
8 tvcm.require('tracing.tracks.slice_track');
9 tvcm.require('tracing.filter');
10 tvcm.require('tracing.trace_model');
11 tvcm.require('tvcm.ui');
12
13 tvcm.exportTo('tracing.tracks', function() {
14
15   /**
16    * Visualizes a Cpu using a series of of SliceTracks.
17    * @constructor
18    */
19   var CpuTrack =
20       tvcm.ui.define('cpu-track', tracing.tracks.ContainerTrack);
21   CpuTrack.prototype = {
22     __proto__: tracing.tracks.ContainerTrack.prototype,
23
24     decorate: function(viewport) {
25       tracing.tracks.ContainerTrack.prototype.decorate.call(this, viewport);
26       this.classList.add('cpu-track');
27     },
28
29     get cpu() {
30       return this.cpu_;
31     },
32
33     set cpu(cpu) {
34       this.cpu_ = cpu;
35       this.updateContents_();
36     },
37
38     get tooltip() {
39       return this.tooltip_;
40     },
41
42     set tooltip(value) {
43       this.tooltip_ = value;
44       this.updateContents_();
45     },
46
47     get hasVisibleContent() {
48       return this.children.length > 0;
49     },
50
51     updateContents_: function() {
52       this.detach();
53       if (!this.cpu_)
54         return;
55       var slices = this.cpu_.slices;
56       if (slices.length) {
57         var track = new tracing.tracks.SliceTrack(this.viewport);
58         track.slices = slices;
59         track.heading = this.cpu_.userFriendlyName + ':';
60         this.appendChild(track);
61       }
62
63       for (var counterName in this.cpu_.counters) {
64         var counter = this.cpu_.counters[counterName];
65         track = new tracing.tracks.CounterTrack(this.viewport);
66         track.heading = this.cpu_.userFriendlyName + ' ' +
67             counter.name + ':';
68         track.counter = counter;
69         this.appendChild(track);
70       }
71     }
72   };
73
74   return {
75     CpuTrack: CpuTrack
76   };
77 });