Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(278)

Issue 148093012: Add magnifying ability, perceptual diff and improve layout of Skia Tryserver HTML output (Closed)

Created:
6 years, 10 months ago by rmistry
Modified:
6 years, 10 months ago
Reviewers:
epoger
CC:
skia-review_googlegroups.com
Base URL:
https://skia.googlesource.com/buildbot.git@master
Visibility:
Public.

Description

Add magnifying ability, perceptual diff and improve layout of Skia Tryserver HTML output in Cluster Telemetry. Unfortunately I do not have a publicly accessible HTML to show the output of this, I will once it is submitted and I kick off a test run. BUG=skia:2096 Committed: https://skia.googlesource.com/buildbot/+/2f7e100

Patch Set 1 #

Patch Set 2 : Move angular.min.js to Google Storage #

Patch Set 3 : Rebase #

Total comments: 16
Unified diffs Side-by-side diffs Delta from patch set Stats (+951 lines, -216 lines) Patch
M compute_engine_scripts/telemetry/json_summary_constants.py View 1 chunk +1 line, -0 lines 2 comments Download
A compute_engine_scripts/telemetry/static-files/README View 1 chunk +3 lines, -0 lines 0 comments Download
A compute_engine_scripts/telemetry/static-files/angular.min.js View 1 1 chunk +163 lines, -0 lines 2 comments Download
A compute_engine_scripts/telemetry/static-files/diff_viewer.js View 1 chunk +215 lines, -0 lines 10 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/html-templates/failures_per_slave.html View 1 2 chunks +38 lines, -16 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/json_summary_combiner.py View 4 chunks +12 lines, -6 lines 1 comment Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/json_summary_combiner_test.py View 3 chunks +7 lines, -7 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/differences/summary1.json View 2 chunks +4 lines, -2 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/differences/summary2.json View 2 chunks +4 lines, -2 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/differences/summary3.json View 2 chunks +4 lines, -2 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/differences/summary4.json View 2 chunks +4 lines, -2 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/differences/summary5.json View 2 chunks +4 lines, -2 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/html_outputs/differences_no_url/slave1.html View 1 2 chunks +66 lines, -25 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/html_outputs/differences_no_url/slave2.html View 1 2 chunks +38 lines, -16 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/html_outputs/differences_no_url/slave3.html View 1 2 chunks +122 lines, -43 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/html_outputs/differences_with_url/slave1.html View 1 2 chunks +66 lines, -25 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/html_outputs/differences_with_url/slave2.html View 1 2 chunks +38 lines, -16 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_master_scripts/test_data/combiner/html_outputs/differences_with_url/slave3.html View 1 2 chunks +122 lines, -43 lines 0 comments Download
A compute_engine_scripts/telemetry/telemetry_slave_scripts/test_data/output.csv View 1 chunk +4 lines, -0 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_slave_scripts/test_data/summary.json View 2 chunks +2 lines, -0 lines 0 comments Download
M compute_engine_scripts/telemetry/telemetry_slave_scripts/vm_run_skia_try.sh View 1 2 chunks +9 lines, -1 line 0 comments Download
M compute_engine_scripts/telemetry/telemetry_slave_scripts/write_json_summary.py View 6 chunks +20 lines, -6 lines 1 comment Download
M compute_engine_scripts/telemetry/telemetry_slave_scripts/write_json_summary_test.py View 3 chunks +5 lines, -2 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
rmistry
6 years, 10 months ago (2014-01-28 19:44:52 UTC) #1
rmistry
Committed patchset #3 manually as r2f7e100 (presubmit successful).
6 years, 10 months ago (2014-01-28 21:45:02 UTC) #2
epoger
6 years, 10 months ago (2014-02-03 21:17:13 UTC) #3
Message was sent while issue was closed.
Seems pretty reasonable at a high level.  Some comments/questions...

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
File compute_engine_scripts/telemetry/json_summary_constants.py (right):

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/json_summary_constants.py:1: #!/usr/bin/env
python
Where can I go to see this in action?

I tried to view the most recent Chromium Try and Skia Try tasks at
https://skia-tree-status.appspot.com/skia-telemetry/all_tasks#telemetry :

https://storage.cloud.google.com/chromium-skia-gm/telemetry/tryserver-outputs...

https://storage.cloud.google.com/chromium-skia-gm/telemetry/skia-tryserver/ht...


But in both cases, the page failed to load with "This webpage has a redirect
loop"

(They both redirected me to URLs starting with
https://www.google.com/accounts/ServiceLogin?service=cds&passive=1209600&cont...
, even though I already authenticated myself)

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/json_summary_constants.py:22:
JSONKEY_PERCEPTUAL_SIMILARITY = 'perceptualSimilarity'
I think it may confuse users for some of these metrics to measure similarity,
and others to measure difference.  We'll see.

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
File compute_engine_scripts/telemetry/static-files/angular.min.js (right):

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/angular.min.js:1: /*
Do we need to host this ourselves, or can we just use one of the revisions
Google already hosts under https://ajax.googleapis.com/ajax/libs/angularjs/ ?

See https://developers.google.com/speed/libraries/devguide#angularjs

(Maybe we need this particular version, which may not be available there???)

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/angular.min.js:2: AngularJS v1.0.7
and if we ARE going to host this file ourselves, perhaps we should include the
version number within the filename

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
File compute_engine_scripts/telemetry/static-files/diff_viewer.js (right):

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:1: var
MAX_SWAP_IMG_SIZE = 400;
Do we need copyright notice up here?

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:3: var
MAGNIFIER_HEIGHT = 200;
So, if we are hosting this file within Google Storage, what is the HTTP-cacheing
update policy?  (In other words, is there some lag between when we update the
file and when that update will become available to clients?)

If there is non-negligible delay, and we envision ever making changes to this
file, we may need to store it using a version number to prevent code version
mismatches.

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:9: // Custom
directive for comparing (3-way) images
Maybe it's just me, but this all seems like magic and I don't know how it gets
"plugged into" the rest of the UI.  Perhaps more documentation would be useful.

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:28: // maskCanvas =
true;
why is this commented out?

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:57:
scope.setImgScaleFactor(1 / divisor);
I don't know how JavaScript handles floating point math... might there be a
compelling reason to store the scale factor as its (integer) divisor component,
rather than as 1/divisor?

This might affect the results of multiplying by imgScaleFactor below...

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:76: // when
updatedMaskSize changes, update mask canvas size.
Somewhere there needs to be an explanation of what the different mask sizes mean
in here.  (See also my comments at the bottom of this file.)

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:82: // rmistry:
Commented out because was throwing js errors.
So, does this function do anything now?

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:155: if
(startMagnify) {
seems like indent levels shift freely between 2 and 4 within this file...

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:208:
$scope.updateMaskCanvasSize = function(updatedSize) {
Is there some reason we don't use consistent naming for this one, like so?

$scope.setMaskCanvasSize = function(maskCanvasSize) {
    $scope.maskCanvasSize = maskCanvasSize;
}

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/static-files/diff_viewer.js:212:
$scope.maskCanvasSizeUpdated = function(flag) {
What is this function for?  How does it relate to the function above it?

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
File
compute_engine_scripts/telemetry/telemetry_master_scripts/json_summary_combiner.py
(right):

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/telemetry_master_scripts/json_summary_combiner.py:44:
def __init__(self, file_name, skp_location, num_pixels_differing,
Please document parameters (throughout this file)

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
File
compute_engine_scripts/telemetry/telemetry_slave_scripts/write_json_summary.py
(right):

https://codereview.chromium.org/148093012/diff/40001/compute_engine_scripts/t...
compute_engine_scripts/telemetry/telemetry_slave_scripts/write_json_summary.py:190:
or not options.gm_json_path or not options.img_root
I think an automated check of all required_params in a list is cleaner, as in
https://code.google.com/p/skia/source/browse/trunk/gm/rebaseline_server/downl...

Powered by Google App Engine
This is Rietveld 408576698