Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 | 2 |
| 3 <html ng-app="Loader" ng-controller="Loader.Controller"> | 3 <html ng-app="Loader" ng-controller="Loader.Controller"> |
| 4 | 4 |
| 5 <head> | 5 <head> |
| 6 <title ng-bind="windowTitle"></title> | 6 <title ng-bind="windowTitle"></title> |
| 7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js" ></script> | 7 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js" ></script> |
| 8 <script src="loader.js"></script> | 8 <script src="loader.js"></script> |
| 9 <script src="diff_viewer.js"></script> | |
| 9 <link rel="stylesheet" href="view.css"> | 10 <link rel="stylesheet" href="view.css"> |
| 10 </head> | 11 </head> |
| 11 | 12 |
| 12 <body> | 13 <body> |
| 13 <h2> | 14 <h2> |
| 14 Instructions, roadmap, etc. are at | 15 Instructions, roadmap, etc. are at |
| 15 <a href="http://tinyurl.com/SkiaRebaselineServer"> | 16 <a href="http://tinyurl.com/SkiaRebaselineServer"> |
| 16 http://tinyurl.com/SkiaRebaselineServer | 17 http://tinyurl.com/SkiaRebaselineServer |
| 17 </a> | 18 </a> |
| 18 </h2> | 19 </h2> |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 205 <button ng-click="moveSelectedItemsToTab(otherTab)" | 206 <button ng-click="moveSelectedItemsToTab(otherTab)" |
| 206 ng-disabled="selectedItems.length == 0" | 207 ng-disabled="selectedItems.length == 0" |
| 207 ng-hide="otherTab == viewingTab"> | 208 ng-hide="otherTab == viewingTab"> |
| 208 move {{selectedItems.length}} selected tests to {{otherTab}} tab | 209 move {{selectedItems.length}} selected tests to {{otherTab}} tab |
| 209 </button> | 210 </button> |
| 210 </div> | 211 </div> |
| 211 </td> | 212 </td> |
| 212 </tr> | 213 </tr> |
| 213 </table> <!-- results header --> | 214 </table> <!-- results header --> |
| 214 </td></tr><tr><td> | 215 </td></tr><tr><td> |
| 215 <table border="1"> <!-- results --> | 216 <table border="1" ng-app="diff_viewer"> <!-- results --> |
| 216 <tr> | 217 <tr> |
| 217 <!-- Most column headers are displayed in a common fashion... --> | 218 <!-- Most column headers are displayed in a common fashion... --> |
| 218 <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']"> | 219 <th ng-repeat="categoryName in ['resultType', 'builder', 'test', 'conf ig']"> |
| 219 <input type="radio" | 220 <input type="radio" |
| 220 name="sortColumnRadio" | 221 name="sortColumnRadio" |
| 221 value="{{categoryName}}" | 222 value="{{categoryName}}" |
| 222 ng-checked="(sortColumn == categoryName)" | 223 ng-checked="(sortColumn == categoryName)" |
| 223 ng-click="sortResultsBy(categoryName)"> | 224 ng-click="sortResultsBy(categoryName)"> |
| 224 {{categoryName}} | 225 {{categoryName}} |
| 225 </th> | 226 </th> |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 268 <!-- item-selection checkbox column --> | 269 <!-- item-selection checkbox column --> |
| 269 </th> | 270 </th> |
| 270 </tr> | 271 </tr> |
| 271 | 272 |
| 272 <!-- For most columns... if the user clicks on the cell, and we are on | 273 <!-- For most columns... if the user clicks on the cell, and we are on |
| 273 the default tab, update the filter to only show results with the | 274 the default tab, update the filter to only show results with the |
| 274 same value for this category. | 275 same value for this category. |
| 275 This is made a bit tricky by the fact that AngularJS expressions | 276 This is made a bit tricky by the fact that AngularJS expressions |
| 276 do not allow control flow statements. See | 277 do not allow control flow statements. See |
| 277 http://docs.angularjs.org/guide/expression --> | 278 http://docs.angularjs.org/guide/expression --> |
| 278 <tr ng-repeat="result in limitedTestData"> | 279 <tr ng-repeat="result in limitedTestData" ng-controller="ImageController "> |
|
epoger
2014/02/04 16:45:52
One thing I'm not sure about (being an AngularJS n
rmistry
2014/02/04 18:35:33
Yes maybe it is because of different controllers,
| |
| 279 <td ng-click="(viewingTab != defaultTab) || showOnlyResultType(result. resultType)"> | 280 <td ng-click="(viewingTab != defaultTab) || showOnlyResultType(result. resultType)"> |
| 280 {{result.resultType}} | 281 {{result.resultType}} |
| 281 </td> | 282 </td> |
| 282 <td ng-repeat="categoryName in ['builder', 'test']" | 283 <td ng-repeat="categoryName in ['builder', 'test']" |
| 283 ng-click="(viewingTab != defaultTab) || setCategoryValueMatch(cate goryName, result[categoryName])"> | 284 ng-click="(viewingTab != defaultTab) || setCategoryValueMatch(cate goryName, result[categoryName])"> |
| 284 {{result[categoryName]}} | 285 {{result[categoryName]}} |
| 285 </td> | 286 </td> |
| 286 <td ng-click="(viewingTab != defaultTab) || showOnlyConfig(result.conf ig)"> | 287 <td ng-click="(viewingTab != defaultTab) || showOnlyConfig(result.conf ig)"> |
| 287 {{result.config}} | 288 {{result.config}} |
| 288 </td> | 289 </td> |
| 289 <td> | 290 <td> |
| 290 <a ng-repeat="bug in result['bugs']" | 291 <a ng-repeat="bug in result['bugs']" |
| 291 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" | 292 href="https://code.google.com/p/skia/issues/detail?id={{bug}}" |
| 292 target="_blank"> | 293 target="_blank"> |
| 293 {{bug}} | 294 {{bug}} |
| 294 </a> | 295 </a> |
| 295 </td> | 296 </td> |
| 296 | 297 |
| 297 <!-- expected image --> | 298 <!-- expected image --> |
| 298 <td valign="top" width="{{imageSize}}"> | 299 <td valign="top" width="{{imageSize}}"> |
| 299 <a class="image-link" target="_blank" href="http://chromium-skia-gm. commondatastorage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/ {{result.expectedHashDigest}}.png"> | 300 <br/> |
| 300 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.e xpectedHashDigest}}.png"/> | 301 <a href="http://chromium-skia-gm.commondatastorage.googleapis.com/gm /{{result.expectedHashType}}/{{result.test}}/{{result.expectedHashDigest}}.png" target="_blank">View Image</a><br/> |
| 301 </a> | 302 <img-compare type="baseline" |
| 303 src="http://chromium-skia-gm.commondatastorage.googleap is.com/gm/{{result.expectedHashType}}/{{result.test}}/{{result.expectedHashDiges t}}.png" | |
| 304 class="gm-image left-image" /> | |
| 305 | |
| 302 </td> | 306 </td> |
| 303 | 307 |
| 304 <!-- actual image --> | 308 <!-- actual image --> |
| 305 <td valign="top" width="{{imageSize}}"> | 309 <td valign="top" width="{{imageSize}}"> |
| 306 <a class="image-link" target="_blank" href="http://chromium-skia-gm. commondatastorage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{ result.actualHashDigest}}.png"> | 310 <br/> |
| 307 <img width="{{imageSize}}" src="http://chromium-skia-gm.commondata storage.googleapis.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.act ualHashDigest}}.png"/> | 311 <a href="http://chromium-skia-gm.commondatastorage.googleapis.com/gm /{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}.png" targ et="_blank">View Image</a><br/> |
| 308 </a> | 312 <img-compare type="test" |
| 313 src="http://chromium-skia-gm.commondatastorage.googleap is.com/gm/{{result.actualHashType}}/{{result.test}}/{{result.actualHashDigest}}. png" | |
| 314 class="gm-image left-image" /> | |
|
epoger
2014/02/04 16:45:52
What's the significance of this class name? Shoul
rmistry
2014/02/04 18:35:33
Does not look like the class name is important her
| |
| 315 | |
| 309 </td> | 316 </td> |
| 310 | 317 |
| 311 <!-- whitediffs: every differing pixel shown in white --> | 318 <!-- whitediffs: every differing pixel shown in white --> |
| 312 <td valign="top" width="{{imageSize}}"> | 319 <td valign="top" width="{{imageSize}}"> |
| 313 <div ng-hide="result.expectedHashDigest == result.actualHashDigest" | 320 <div ng-hide="result.expectedHashDigest == result.actualHashDigest" |
| 314 title="{{result.numDifferingPixels | number:0}} of {{(100 * res ult.numDifferingPixels / result.percentDifferingPixels) | number:0}} pixels ({{r esult.percentDifferingPixels.toFixed(4)}}%) differ from expectation."> | 321 title="{{result.numDifferingPixels | number:0}} of {{(100 * res ult.numDifferingPixels / result.percentDifferingPixels) | number:0}} pixels ({{r esult.percentDifferingPixels.toFixed(4)}}%) differ from expectation."> |
| 315 <a class="image-link" target="_blank" href="/static/generated-imag es/whitediffs/{{result.expectedHashDigest}}-vs-{{result.actualHashDigest}}.png"> | 322 |
| 316 <img width="{{imageSize}}" src="/static/generated-images/whitedi ffs/{{result.expectedHashDigest}}-vs-{{result.actualHashDigest}}.png"/> | |
| 317 </a><br> | |
| 318 {{result.percentDifferingPixels.toFixed(4)}}% | 323 {{result.percentDifferingPixels.toFixed(4)}}% |
| 319 ({{result.numDifferingPixels}}) | 324 ({{result.numDifferingPixels}}) |
| 325 <br/> | |
| 326 <a href="/static/generated-images/whitediffs/{{result.expectedHash Digest}}-vs-{{result.actualHashDigest}}.png" target="_blank">View Image</a><br/> | |
| 327 <img-compare type="differingPixelsInWhite" | |
| 328 class="left-image" | |
| 329 src="/static/generated-images/whitediffs/{{result.exp ectedHashDigest}}-vs-{{result.actualHashDigest}}.png" /> | |
| 330 | |
| 320 </div> | 331 </div> |
| 321 <div ng-hide="result.expectedHashDigest != result.actualHashDigest" | 332 <div ng-hide="result.expectedHashDigest != result.actualHashDigest" |
| 322 style="text-align:center"> | 333 style="text-align:center"> |
| 323 –none– | 334 –none– |
| 324 </div> | 335 </div> |
| 325 </td> | 336 </td> |
| 326 | 337 |
| 327 <!-- diffs: per-channel RGB deltas --> | 338 <!-- diffs: per-channel RGB deltas --> |
| 328 <td valign="top" width="{{imageSize}}"> | 339 <td valign="top" width="{{imageSize}}"> |
| 329 <div ng-hide="result.expectedHashDigest == result.actualHashDigest" | 340 <div ng-hide="result.expectedHashDigest == result.actualHashDigest" |
| 330 title="Weighted difference measure is {{result.weightedDiffMeas ure.toFixed(4)}}%. Maximum difference per channel: R={{result.maxDiffPerChannel [0]}}, G={{result.maxDiffPerChannel[1]}}, B={{result.maxDiffPerChannel[2]}}"> | 341 title="Weighted difference measure is {{result.weightedDiffMeas ure.toFixed(4)}}%. Maximum difference per channel: R={{result.maxDiffPerChannel [0]}}, G={{result.maxDiffPerChannel[1]}}, B={{result.maxDiffPerChannel[2]}}"> |
| 331 <a class="image-link" target="_blank" href="/static/generated-imag es/diffs/{{result.expectedHashDigest}}-vs-{{result.actualHashDigest}}.png"> | 342 |
| 332 <img width="{{imageSize}}" src="/static/generated-images/diffs/{ {result.expectedHashDigest}}-vs-{{result.actualHashDigest}}.png"/> | |
| 333 </a><br> | |
| 334 {{result.weightedDiffMeasure.toFixed(4)}}% | 343 {{result.weightedDiffMeasure.toFixed(4)}}% |
| 335 {{result.maxDiffPerChannel}} | 344 {{result.maxDiffPerChannel}} |
| 345 <br/> | |
| 346 <a href="/static/generated-images/diffs/{{result.expectedHashDiges t}}-vs-{{result.actualHashDigest}}.png" target="_blank">View Image</a><br/> | |
| 347 <img-compare type="differencePerPixel" | |
| 348 class="left-image" | |
|
epoger
2014/02/04 16:45:52
Ditto: What's the significance of this class name?
rmistry
2014/02/04 18:35:33
Removed as per comment above.
| |
| 349 src="/static/generated-images/diffs/{{result.expected HashDigest}}-vs-{{result.actualHashDigest}}.png" | |
| 350 ng-mousedown="MagnifyDraw($event, true)" | |
| 351 ng-mousemove="MagnifyDraw($event, false)" | |
| 352 ng-mouseup="MagnifyEnd($event)" | |
| 353 ng-mouseleave="MagnifyEnd($event)" /> | |
| 354 | |
| 336 </div> | 355 </div> |
| 337 <div ng-hide="result.expectedHashDigest != result.actualHashDigest" | 356 <div ng-hide="result.expectedHashDigest != result.actualHashDigest" |
| 338 style="text-align:center"> | 357 style="text-align:center"> |
| 339 –none– | 358 –none– |
| 340 </div> | 359 </div> |
| 341 </td> | 360 </td> |
| 342 | 361 |
| 343 <td> | 362 <td> |
| 344 <input type="checkbox" | 363 <input type="checkbox" |
| 345 name="rowSelect" | 364 name="rowSelect" |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 356 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and | 375 <!-- TODO(epoger): Can we get the base URLs (commondatastorage and |
| 357 issues list) from | 376 issues list) from |
| 358 https://skia.googlesource.com/buildbot/+/master/site_config/global_variab les.json ? | 377 https://skia.googlesource.com/buildbot/+/master/site_config/global_variab les.json ? |
| 359 I tried importing the | 378 I tried importing the |
| 360 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using | 379 http://skia.googlecode.com/svn/buildbot/skia_tools.js script and using |
| 361 that to do so, but I got Access-Control-Allow-Origin errors. | 380 that to do so, but I got Access-Control-Allow-Origin errors. |
| 362 --> | 381 --> |
| 363 | 382 |
| 364 </body> | 383 </body> |
| 365 </html> | 384 </html> |
| OLD | NEW |