12da489cd246702bee5938545b18a6f710ed214bcJamie Gennis// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22da489cd246702bee5938545b18a6f710ed214bcJamie Gennis// Use of this source code is governed by a BSD-style license that can be 32da489cd246702bee5938545b18a6f710ed214bcJamie Gennis// found in the LICENSE file. 42da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 52da489cd246702bee5938545b18a6f710ed214bcJamie Gennis'use strict'; 62da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 72da489cd246702bee5938545b18a6f710ed214bcJamie Gennisbase.require('tracks.timeline_container_track'); 82da489cd246702bee5938545b18a6f710ed214bcJamie Gennisbase.require('tracks.timeline_slice_track'); 92da489cd246702bee5938545b18a6f710ed214bcJamie Gennisbase.require('timeline_filter'); 102da489cd246702bee5938545b18a6f710ed214bcJamie Gennisbase.require('timeline_model'); 112da489cd246702bee5938545b18a6f710ed214bcJamie Gennisbase.require('ui'); 122da489cd246702bee5938545b18a6f710ed214bcJamie Gennisbase.exportTo('tracks', function() { 132da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 142da489cd246702bee5938545b18a6f710ed214bcJamie Gennis /** 152da489cd246702bee5938545b18a6f710ed214bcJamie Gennis * Visualizes a TimelineCpu using a series of of TimelineSliceTracks. 162da489cd246702bee5938545b18a6f710ed214bcJamie Gennis * @constructor 172da489cd246702bee5938545b18a6f710ed214bcJamie Gennis */ 182da489cd246702bee5938545b18a6f710ed214bcJamie Gennis var TimelineCpuTrack = base.ui.define(tracks.TimelineContainerTrack); 192da489cd246702bee5938545b18a6f710ed214bcJamie Gennis TimelineCpuTrack.prototype = { 202da489cd246702bee5938545b18a6f710ed214bcJamie Gennis __proto__: tracks.TimelineContainerTrack.prototype, 212da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 222da489cd246702bee5938545b18a6f710ed214bcJamie Gennis decorate: function() { 232da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.classList.add('timeline-cpu-track'); 242da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }, 252da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 262da489cd246702bee5938545b18a6f710ed214bcJamie Gennis get cpu() { 272da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return this.cpu_; 282da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }, 292da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 302da489cd246702bee5938545b18a6f710ed214bcJamie Gennis set cpu(cpu) { 312da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.cpu_ = cpu; 322da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.updateChildTracks_(); 332da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }, 342da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 352da489cd246702bee5938545b18a6f710ed214bcJamie Gennis get tooltip() { 362da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return this.tooltip_; 372da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }, 382da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 392da489cd246702bee5938545b18a6f710ed214bcJamie Gennis set tooltip(value) { 402da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.tooltip_ = value; 412da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.updateChildTracks_(); 422da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }, 432da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 442da489cd246702bee5938545b18a6f710ed214bcJamie Gennis get heading() { 452da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return this.heading_; 462da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }, 472da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 482da489cd246702bee5938545b18a6f710ed214bcJamie Gennis set heading(h) { 492da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.heading_ = h; 502da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.updateChildTracks_(); 512da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }, 522da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 532da489cd246702bee5938545b18a6f710ed214bcJamie Gennis applyCategoryFilter_: function() { 542da489cd246702bee5938545b18a6f710ed214bcJamie Gennis if (this.categoryFilter.matchCpu(this.cpu_)) 552da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.updateChildTracks_(); 562da489cd246702bee5938545b18a6f710ed214bcJamie Gennis else 572da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.visible = false; 582da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }, 592da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 602da489cd246702bee5938545b18a6f710ed214bcJamie Gennis updateChildTracks_: function() { 612da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.detach(); 622da489cd246702bee5938545b18a6f710ed214bcJamie Gennis if (this.cpu_) { 632da489cd246702bee5938545b18a6f710ed214bcJamie Gennis var slices = tracing.filterSliceArray(this.categoryFilter_, 642da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.cpu_.slices); 652da489cd246702bee5938545b18a6f710ed214bcJamie Gennis if (slices.length) { 662da489cd246702bee5938545b18a6f710ed214bcJamie Gennis var track = new tracks.TimelineSliceTrack(); 672da489cd246702bee5938545b18a6f710ed214bcJamie Gennis track.slices = slices; 682da489cd246702bee5938545b18a6f710ed214bcJamie Gennis track.heading = this.heading_; 692da489cd246702bee5938545b18a6f710ed214bcJamie Gennis track.tooltip = this.tooltip_; 702da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.addTrack_(track); 712da489cd246702bee5938545b18a6f710ed214bcJamie Gennis } 722da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 732da489cd246702bee5938545b18a6f710ed214bcJamie Gennis for (var counterName in this.cpu_.counters) { 742da489cd246702bee5938545b18a6f710ed214bcJamie Gennis var counter = this.cpu_.counters[counterName]; 752da489cd246702bee5938545b18a6f710ed214bcJamie Gennis track = new tracks.TimelineCounterTrack(); 762da489cd246702bee5938545b18a6f710ed214bcJamie Gennis track.heading = 'CPU ' + this.cpu_.cpuNumber + ' ' + 772da489cd246702bee5938545b18a6f710ed214bcJamie Gennis counter.name + ':'; 782da489cd246702bee5938545b18a6f710ed214bcJamie Gennis track.counter = counter; 792da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.addTrack_(track); 802da489cd246702bee5938545b18a6f710ed214bcJamie Gennis } 812da489cd246702bee5938545b18a6f710ed214bcJamie Gennis } 822da489cd246702bee5938545b18a6f710ed214bcJamie Gennis this.addControlButtonElements_(false); 832da489cd246702bee5938545b18a6f710ed214bcJamie Gennis } 842da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }; 852da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 862da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return { 872da489cd246702bee5938545b18a6f710ed214bcJamie Gennis TimelineCpuTrack: TimelineCpuTrack 882da489cd246702bee5938545b18a6f710ed214bcJamie Gennis }; 892da489cd246702bee5938545b18a6f710ed214bcJamie Gennis}); 90