| <!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="/tracing/ui/analysis/analysis_sub_view.html"> |
| <link rel="import" href="/tracing/ui/analysis/multi_event_sub_view.html"> |
| <link rel="import" href="/tracing/ui/analysis/related_events.html"> |
| |
| <polymer-element name="tr-ui-a-multi-thread-slice-sub-view" |
| extends="tr-ui-a-sub-view"> |
| <template> |
| <style> |
| :host { |
| display: flex; |
| } |
| #content { |
| display: flex; |
| flex: 1 1 auto; |
| } |
| #content > tr-ui-a-related-events { |
| margin-left: 8px; |
| flex: 0 1 200px; |
| } |
| </style> |
| <div id="content"></div> |
| </template> |
| |
| <script> |
| 'use strict'; |
| |
| Polymer({ |
| created: function() { |
| this.selection_ = undefined; |
| }, |
| |
| get selection() { |
| return this.selection_; |
| }, |
| |
| set selection(selection) { |
| this.selection_ = selection; |
| |
| // TODO(nduca): This is a gross hack for cc Frame Viewer, but its only |
| // the frame viewer that needs this feature, so ~shrug~. |
| // We check for its presence so that we do not have a hard dependency |
| // on frame viewer. |
| if (tr.isExported('tr.ui.e.chrome.cc.RasterTaskSelection')) { |
| if (tr.ui.e.chrome.cc.RasterTaskSelection.supports(selection)) { |
| var ltvSelection = new tr.ui.e.chrome.cc.RasterTaskSelection( |
| selection); |
| |
| var ltv = new tr.ui.e.chrome.cc.LayerTreeHostImplSnapshotView(); |
| ltv.objectSnapshot = ltvSelection.containingSnapshot; |
| ltv.selection = ltvSelection; |
| ltv.extraHighlightsByLayerId = ltvSelection.extraHighlightsByLayerId; |
| |
| this.$.content.textContent = ''; |
| this.$.content.appendChild(ltv); |
| |
| this.requiresTallView_ = true; |
| return; |
| } |
| } |
| |
| this.$.content.textContent = ''; |
| |
| var mesv = document.createElement('tr-ui-a-multi-event-sub-view'); |
| mesv.selection = selection; |
| this.$.content.appendChild(mesv); |
| |
| var relatedEvents = document.createElement('tr-ui-a-related-events'); |
| relatedEvents.setRelatedEvents(selection); |
| |
| if (relatedEvents.hasRelatedEvents()) { |
| this.$.content.appendChild(relatedEvents); |
| } |
| }, |
| |
| get requiresTallView() { |
| if (this.$.content.children.length === 0) |
| return false; |
| var childTagName = this.$.content.children[0].tagName; |
| if (childTagName === 'TR-UI-A-MULTI-EVENT-SUB-VIEW') |
| return false; |
| |
| // Using raster task view. |
| return true; |
| } |
| }); |
| </script> |
| </polymer-element> |