| <!DOCTYPE html> |
| <!-- |
| Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel="import" href="/core/tracks/process_track_base.html"> |
| <link rel="import" href="/core/tracks/cpu_track.html"> |
| <link rel="import" href="/core/tracks/spacing_track.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tv.exportTo('tv.c.tracks', function() { |
| var Cpu = tv.c.trace_model.Cpu; |
| var CpuTrack = tv.c.tracks.cpu_track; |
| var ProcessTrackBase = tv.c.tracks.ProcessTrackBase; |
| var SpacingTrack = tv.c.tracks.SpacingTrack; |
| |
| /** |
| * @constructor |
| */ |
| var KernelTrack = tv.b.ui.define('kernel-track', ProcessTrackBase); |
| |
| KernelTrack.prototype = { |
| __proto__: ProcessTrackBase.prototype, |
| |
| decorate: function(viewport) { |
| tv.c.tracks.ProcessTrackBase.prototype.decorate.call(this, viewport); |
| }, |
| |
| |
| // Kernel maps to processBase because we derive from ProcessTrackBase. |
| set kernel(kernel) { |
| this.processBase = kernel; |
| }, |
| |
| get kernel() { |
| return this.processBase; |
| }, |
| |
| get eventContainer() { |
| return this.kernel; |
| }, |
| |
| get hasVisibleContent() { |
| return this.children.length > 1; |
| }, |
| |
| addContainersToTrackMap: function(containerToTrackMap) { |
| containerToTrackMap.addContainer(this.kernel, this); |
| }, |
| |
| willAppendTracks_: function() { |
| var cpus = tv.b.dictionaryValues(this.kernel.cpus); |
| cpus.sort(tv.c.trace_model.Cpu.compare); |
| |
| var didAppendAtLeastOneTrack = false; |
| for (var i = 0; i < cpus.length; ++i) { |
| var cpu = cpus[i]; |
| var track = new tv.c.tracks.CpuTrack(this.viewport); |
| track.detailedMode = this.expanded; |
| track.cpu = cpu; |
| if (!track.hasVisibleContent) |
| continue; |
| this.appendChild(track); |
| didAppendAtLeastOneTrack = true; |
| } |
| if (didAppendAtLeastOneTrack) |
| this.appendChild(new SpacingTrack(this.viewport)); |
| } |
| }; |
| |
| |
| return { |
| KernelTrack: KernelTrack |
| }; |
| }); |
| </script> |
| |