<html ng-app="diff_viewer">
  <head>
    <title>Image comparision failures for {{ worker_info.worker_name }}</title>
    <script type="text/javascript" src="https://storage.cloud.google.com/chromium-skia-gm/telemetry/hosted-files/angular.min.js"></script>
    <script type="text/javascript" src="https://storage.cloud.google.com/chromium-skia-gm/telemetry/hosted-files/diff_viewer.js"></script>
  </head>

  <body>
    <h2>Image comparision failures for {{ worker_info.worker_name }}</h2>
    <a href='{{ absolute_url }}list_of_all_files.html'>Back</a>
    <br/><br/>
    Click on the image in the 'Difference per pixel' column to magnify the other three images.<br/><br/><br/>

    <table border="1" cellpadding="5">
      <thead>
      <tr bgcolor="#CCCCFF">
        <th>Failed File</th>
        <th>NoPatch Image</th>
        <th>WithPatch Image</th>
        <th>Differing pixels in white</th>
        <th>Difference per pixel</th>
      </tr>
      </thead>
      <tbody>
        <tr ng-controller="ImageController">
          <td align="center">
            <a>{{ file_info.file_name }}</a><br/>
            <a href='{{ file_info.skp_location }}'>Download SKP</a>
          </td>
          <td>
            <a href='{{ gs_http_files_location_nopatch }}/{{ file_info.file_name }}' target="_blank">View Image</a>
            <br/>
            <img-compare type="baseline"
                         name="baseline"
                         src="{{ gs_http_files_location_nopatch }}/{{ file_info.file_name }}"
                         class="gm-image left-image" />
          </td>
          <td>
            <a href='{{ gs_http_files_location_withpatch }}/{{ file_info.file_name }}' target="_blank">View Image</a>
            <br/>
            <img-compare type="test"
                         name="test"
                         src="{{ gs_http_files_location_withpatch }}/{{ file_info.file_name }}"
                         class="gm-image right-image" />
          </td>
          <td>
            <a id='compare_value'>{{ file_info.percent_pixels_differing }}</a>% ({{ file_info.num_pixels_differing }})
            <a href='{{ gs_http_files_location_whitediffs }}/{{ file_info.diff_file_name }}' target="_blank">View Image</a>
            <br/>
            <img-compare type="differingPixelsInWhite"
                         class="left-image"
                         src="{{ gs_http_files_location_whitediffs }}/{{ file_info.diff_file_name }}" />
          </td>
          <td>
            <a id='compare_value'>{{ file_info.perceptual_diff }}</a>% (perceptual diff) | {{ file_info.max_diff_per_channel }}
            <a href='{{ gs_http_files_location_diffs }}/{{ file_info.diff_file_name }}' target="_blank">View Image</a>
            <br/>
            <img-compare type="differencePerPixel"
                         class="left-image"
                         src="{{ gs_http_files_location_diffs }}/{{ file_info.diff_file_name }}"
                         ng-mousedown="MagnifyDraw($event, true)"
                         ng-mousemove="MagnifyDraw($event, false)"
                         ng-mouseup="MagnifyEnd($event)"
                         ng-mouseleave="MagnifyEnd($event)" />
          </td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
