| OLD | NEW |
| 1 <link rel="import" href="/bower_components/polymer/polymer.html"> | 1 <link rel="import" href="/bower_components/polymer/polymer.html"> |
| 2 <link rel="import" href="/bower_components/iron-ajax/iron-ajax.html"> | 2 <link rel="import" href="/bower_components/iron-ajax/iron-ajax.html"> |
| 3 <link rel="import" href="/bower_components/iron-collapse/iron-collapse.html"> | 3 <link rel="import" href="/bower_components/iron-collapse/iron-collapse.html"> |
| 4 <link rel="import" href="/bower_components/iron-flex-layout/classes/iron-flex-la
yout.html"> | 4 <link rel="import" href="/bower_components/iron-flex-layout/classes/iron-flex-la
yout.html"> |
| 5 <link rel="import" href="/bower_components/iron-icons/hardware-icons.html"> | 5 <link rel="import" href="/bower_components/iron-icons/hardware-icons.html"> |
| 6 <link rel="import" href="/bower_components/iron-icons/iron-icons.html"> | 6 <link rel="import" href="/bower_components/iron-icons/iron-icons.html"> |
| 7 <link rel="import" href="/bower_components/iron-page-url/iron-page-url.html"> | 7 <link rel="import" href="/bower_components/iron-page-url/iron-page-url.html"> |
| 8 <link rel="import" href="/bower_components/paper-button/paper-button.html"> | 8 <link rel="import" href="/bower_components/paper-button/paper-button.html"> |
| 9 <link rel="import" href="/bower_components/paper-card/paper-card.html"> | 9 <link rel="import" href="/bower_components/paper-card/paper-card.html"> |
| 10 <link rel="import" href="/bower_components/paper-drawer-panel/paper-drawer-panel
.html"> | 10 <link rel="import" href="/bower_components/paper-drawer-panel/paper-drawer-panel
.html"> |
| 11 <link rel="import" href="/bower_components/paper-header-panel/paper-header-panel
.html"> | 11 <link rel="import" href="/bower_components/paper-header-panel/paper-header-panel
.html"> |
| 12 <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.h
tml"> | 12 <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.h
tml"> |
| 13 <link rel="import" href="/bower_components/paper-item/paper-item.html"> | 13 <link rel="import" href="/bower_components/paper-item/paper-item.html"> |
| 14 <link rel="import" href="/bower_components/paper-progress/paper-progress.html"> | 14 <link rel="import" href="/bower_components/paper-progress/paper-progress.html"> |
| 15 <link rel="import" href="/bower_components/paper-toolbar/paper-toolbar.html"> | 15 <link rel="import" href="/bower_components/paper-toolbar/paper-toolbar.html"> |
| 16 <link rel="import" href="/elements/som-rev-range.html"> |
| 16 | 17 |
| 17 <dom-module id="som-extension-build-failure"> | 18 <dom-module id="som-extension-build-failure"> |
| 18 <template> | 19 <template> |
| 19 <style> | 20 <style> |
| 20 .builder { | 21 .builder { |
| 21 border-radius: 2px; | 22 border-radius: 2px; |
| 22 border: 1px solid #dcdcdc; | 23 border: 1px solid #dcdcdc; |
| 23 font-size: smaller; | 24 font-size: smaller; |
| 24 margin: .1em; | 25 margin: .1em; |
| 25 padding: .5em; | 26 padding: .5em; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 </a> | 83 </a> |
| 83 </li> | 84 </li> |
| 84 </template> | 85 </template> |
| 85 </ul> | 86 </ul> |
| 86 </div> | 87 </div> |
| 87 </template> | 88 </template> |
| 88 </div> | 89 </div> |
| 89 <div id="regression-ranges"> | 90 <div id="regression-ranges"> |
| 90 <template is="dom-repeat" items="[[extension.regression_ranges]]" as="re
gressionRange" filter="_showRegressionRange"> | 91 <template is="dom-repeat" items="[[extension.regression_ranges]]" as="re
gressionRange" filter="_showRegressionRange"> |
| 91 <div> | 92 <div> |
| 92 [[regressionRange.repo]]: | 93 <som-rev-range range="[[regressionRange]]"></som-rev-range> |
| 93 <a target="_blank" href$="[[_regressionRangeLink(regressionRange)]]"
>[[_regressionRange(regressionRange)]]</a> | |
| 94 </div> | 94 </div> |
| 95 </template> | 95 </template> |
| 96 </div> | 96 </div> |
| 97 </div> | 97 </div> |
| 98 </template> | 98 </template> |
| 99 <script> | 99 <script> |
| 100 (function() { | 100 (function() { |
| 101 'use strict'; | 101 'use strict'; |
| 102 | 102 |
| 103 Polymer({ | 103 Polymer({ |
| 104 is: 'som-extension-build-failure', | 104 is: 'som-extension-build-failure', |
| 105 | 105 |
| 106 properties: { | 106 properties: { |
| 107 extension: { | 107 extension: { |
| 108 type: Object, | 108 type: Object, |
| 109 value: null | 109 value: null |
| 110 }, | 110 }, |
| 111 type: { | 111 type: { |
| 112 type: String, | 112 type: String, |
| 113 value: '' | 113 value: '' |
| 114 }, | 114 }, |
| 115 }, | 115 }, |
| 116 | 116 |
| 117 _haveBuilders: function(extension) { | 117 _haveBuilders: function(extension) { |
| 118 return extension && extension.builders && extension.builders.length > 0; | 118 return extension && extension.builders && extension.builders.length > 0; |
| 119 }, | 119 }, |
| 120 | 120 |
| 121 _regressionRange: function(range) { | |
| 122 if (!range.positions || range.positions.length == 0) { | |
| 123 return ''; | |
| 124 } | |
| 125 | |
| 126 let start = this._parseCommitPosition(range.positions[0]); | |
| 127 if (range.positions.length == 1) { | |
| 128 return start; | |
| 129 } | |
| 130 | |
| 131 let end = this._parseCommitPosition( | |
| 132 range.positions[range.positions.length - 1]); | |
| 133 | |
| 134 if (start && end) { | |
| 135 return `${start} - ${end}`; | |
| 136 } | |
| 137 }, | |
| 138 | |
| 139 _regressionRangeLink: function(range) { | |
| 140 if (!range.positions) { | |
| 141 return ''; | |
| 142 } | |
| 143 let end = this._parseCommitPosition(range.positions[0]); | |
| 144 let start = end; | |
| 145 if (range.positions.length > 1) { | |
| 146 end = this._parseCommitPosition( | |
| 147 range.positions[range.positions.length - 1]); | |
| 148 } | |
| 149 return 'http://test-results.appspot.com/revision_range?start=' + | |
| 150 `${start}&end=${end}`; | |
| 151 }, | |
| 152 | |
| 153 _parseCommitPosition: function(pos) { | |
| 154 let groups = /refs\/heads\/master@{#([0-9]+)}/.exec(pos); | |
| 155 if (groups && groups.length == 2) { | |
| 156 return groups[1]; | |
| 157 } | |
| 158 }, | |
| 159 | |
| 160 _failureCount: function(builder) { | 121 _failureCount: function(builder) { |
| 161 // The build number range is inclusive. | 122 // The build number range is inclusive. |
| 162 let numBuilds = builder.latest_failure - builder.first_failure + 1; | 123 let numBuilds = builder.latest_failure - builder.first_failure + 1; |
| 163 if (numBuilds > 1) { | 124 if (numBuilds > 1) { |
| 164 return `[${numBuilds} since first detection]`; | 125 return `[${numBuilds} since first detection]`; |
| 165 } | 126 } |
| 166 }, | 127 }, |
| 167 | 128 |
| 168 _classForBuilder: function(builder) { | 129 _classForBuilder: function(builder) { |
| 169 let classes = ['builder'] | 130 let classes = ['builder'] |
| 170 if (this._failureCount(builder) > 1) { | 131 if (this._failureCount(builder) > 1) { |
| 171 classes.push('multiple-failures'); | 132 classes.push('multiple-failures'); |
| 172 } | 133 } |
| 173 if (this.type == 'infra-failure') { | 134 if (this.type == 'infra-failure') { |
| 174 classes.push('infra-failure'); | 135 classes.push('infra-failure'); |
| 175 } | 136 } |
| 176 return classes.join(' '); | 137 return classes.join(' '); |
| 177 }, | 138 }, |
| 178 | 139 |
| 179 _showRegressionRange: function(range) { | 140 _showRegressionRange: function(range) { |
| 180 return this._regressionRange(range) && range.positions.length > 0; | 141 return range.positions && range.positions.length > 0; |
| 181 }, | 142 }, |
| 182 | 143 |
| 183 _uberify: function(url) { | 144 _uberify: function(url) { |
| 184 let u = new URL(url); | 145 let u = new URL(url); |
| 185 if (u.hostname.includes('chromium.org')) { | 146 if (u.hostname.includes('chromium.org')) { |
| 186 u.hostname = 'uberchromegw.corp.google.com'; | 147 u.hostname = 'uberchromegw.corp.google.com'; |
| 187 u.pathname = u.pathname.replace('/p/', '/i/'); | 148 u.pathname = u.pathname.replace('/p/', '/i/'); |
| 188 } | 149 } |
| 189 u.protocol = 'https:' | 150 u.protocol = 'https:' |
| 190 return u.toString(); | 151 return u.toString(); |
| 191 } | 152 } |
| 192 }); | 153 }); |
| 193 })(); | 154 })(); |
| 194 </script> | 155 </script> |
| 195 </dom-module> | 156 </dom-module> |
| OLD | NEW |