| OLD | NEW | 
|---|
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> | 
| 2 <!-- | 2 <!-- | 
| 3 Copyright (c) 2013 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
| 4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be | 
| 5 found in the LICENSE file. | 5 found in the LICENSE file. | 
| 6 --> | 6 --> | 
| 7 | 7 | 
| 8 <link rel="import" href="/tracing/base/extension_registry.html"> | 8 <link rel="import" href="/tracing/base/extension_registry.html"> | 
| 9 <link rel="import" href="/tracing/model/timed_event.html"> | 9 <link rel="import" href="/tracing/model/timed_event.html"> | 
| 10 <link rel="import" href="/tracing/value/unit.html"> | 10 <link rel="import" href="/tracing/value/unit.html"> | 
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 96       return 'Async slice ' + this.title + ' at ' + | 96       return 'Async slice ' + this.title + ' at ' + | 
| 97           tr.v.Unit.byName.timeStampInMs.format(this.start); | 97           tr.v.Unit.byName.timeStampInMs.format(this.start); | 
| 98     }, | 98     }, | 
| 99 | 99 | 
| 100     get stableId() { | 100     get stableId() { | 
| 101       var parentAsyncSliceGroup = this.parentContainer.asyncSliceGroup; | 101       var parentAsyncSliceGroup = this.parentContainer.asyncSliceGroup; | 
| 102       return parentAsyncSliceGroup.stableId + '.' + | 102       return parentAsyncSliceGroup.stableId + '.' + | 
| 103           parentAsyncSliceGroup.slices.indexOf(this); | 103           parentAsyncSliceGroup.slices.indexOf(this); | 
| 104     }, | 104     }, | 
| 105 | 105 | 
| 106     findTopmostSlicesRelativeToThisSlice: function(eventPredicate, callback, | 106     findTopmostSlicesRelativeToThisSlice: function*(eventPredicate, opt_this) { | 
| 107                                                    opt_this) { | 107       if (eventPredicate(this)) { | 
| 108       if (eventPredicate(this)) | 108         yield this; | 
| 109         callback.call(opt_this, this); | 109         return; | 
| 110       else { |  | 
| 111         this.subSlices.forEach(function(s) { |  | 
| 112           s.findTopmostSlicesRelativeToThisSlice(eventPredicate, callback, |  | 
| 113                                                  opt_this); |  | 
| 114         }); |  | 
| 115       } | 110       } | 
|  | 111       for (var s of this.subSlices) | 
|  | 112         yield * s.findTopmostSlicesRelativeToThisSlice(eventPredicate); | 
| 116     }, | 113     }, | 
| 117 | 114 | 
| 118     findDescendentSlice: function(targetTitle) { | 115     findDescendentSlice: function(targetTitle) { | 
| 119       if (!this.subSlices) | 116       if (!this.subSlices) | 
| 120         return undefined; | 117         return undefined; | 
| 121 | 118 | 
| 122       for (var i = 0; i < this.subSlices.length; i++) { | 119       for (var i = 0; i < this.subSlices.length; i++) { | 
| 123         if (this.subSlices[i].title == targetTitle) | 120         if (this.subSlices[i].title == targetTitle) | 
| 124           return this.subSlices[i]; | 121           return this.subSlices[i]; | 
| 125         var slice = this.subSlices[i].findDescendentSlice(targetTitle); | 122         var slice = this.subSlices[i].findDescendentSlice(targetTitle); | 
| 126         if (slice) return slice; | 123         if (slice) return slice; | 
| 127       } | 124       } | 
| 128       return undefined; | 125       return undefined; | 
| 129     }, | 126     }, | 
| 130 | 127 | 
| 131     iterateAllDescendents: function(callback, opt_this) { | 128     enumerateAllDescendents: function*() { | 
| 132       this.subSlices.forEach(callback, opt_this); | 129       for (var slice of this.subSlices) | 
| 133       this.subSlices.forEach(function(subSlice) { | 130         yield slice; | 
| 134         subSlice.iterateAllDescendents(callback, opt_this); | 131       for (var slice of this.subSlices) | 
| 135       }, opt_this); | 132         yield * slice.enumerateAllDescendents(); | 
| 136     }, | 133     }, | 
| 137 | 134 | 
| 138     compareTo: function(that) { | 135     compareTo: function(that) { | 
| 139       return this.title.localeCompare(that.title); | 136       return this.title.localeCompare(that.title); | 
| 140     } | 137     } | 
| 141   }; | 138   }; | 
| 142 | 139 | 
| 143   tr.model.EventRegistry.register( | 140   tr.model.EventRegistry.register( | 
| 144       AsyncSlice, | 141       AsyncSlice, | 
| 145       { | 142       { | 
| 146         name: 'asyncSlice', | 143         name: 'asyncSlice', | 
| 147         pluralName: 'asyncSlices', | 144         pluralName: 'asyncSlices', | 
| 148         singleViewElementName: 'tr-ui-a-single-async-slice-sub-view', | 145         singleViewElementName: 'tr-ui-a-single-async-slice-sub-view', | 
| 149         multiViewElementName: 'tr-ui-a-multi-async-slice-sub-view' | 146         multiViewElementName: 'tr-ui-a-multi-async-slice-sub-view' | 
| 150       }); | 147       }); | 
| 151 | 148 | 
| 152 | 149 | 
| 153   var options = new tr.b.ExtensionRegistryOptions( | 150   var options = new tr.b.ExtensionRegistryOptions( | 
| 154       tr.b.TYPE_BASED_REGISTRY_MODE); | 151       tr.b.TYPE_BASED_REGISTRY_MODE); | 
| 155   options.mandatoryBaseClass = AsyncSlice; | 152   options.mandatoryBaseClass = AsyncSlice; | 
| 156   options.defaultConstructor = AsyncSlice; | 153   options.defaultConstructor = AsyncSlice; | 
| 157   tr.b.decorateExtensionRegistry(AsyncSlice, options); | 154   tr.b.decorateExtensionRegistry(AsyncSlice, options); | 
| 158 | 155 | 
| 159   return { | 156   return { | 
| 160     AsyncSlice: AsyncSlice | 157     AsyncSlice: AsyncSlice | 
| 161   }; | 158   }; | 
| 162 }); | 159 }); | 
| 163 </script> | 160 </script> | 
| OLD | NEW | 
|---|