Rollout r189411, r189413: Broke JSC tests.
[WebKit-https.git] / Websites / test-results / ChangeLog
1 2015-08-10  Dana Burkart  <dburkart@apple.com>
2
3         Fix flakiness dashboard stability and performance issues.
4         https://bugs.webkit.org/show_bug.cgi?id=147835
5
6         Reviewed by Ryosuke Niwa.
7
8         * init-database.sql:
9         * public/.htaccess:
10         * public/include/json-shared.php:
11         * public/include/test-results.php:
12
13 2014-01-23  Ryosuke Niwa  <rniwa@webkit.org>
14
15         Upstream changes to json-shared.php from the perf dashboard
16         https://bugs.webkit.org/show_bug.cgi?id=127544
17
18         Reviewed by Joseph Pecoraro.
19
20         json-shared.php originated from the perf dashboard.
21         Upstream changes made to the version in the perf. dashboard so that two apps could share the same code.
22
23         * public/include/json-shared.php:
24         (exit_with_error):
25         (echo_success):
26         (exit_with_success):
27         (set_exit_detail):
28         (merge_additional_details):
29
30 2013-11-06  Ryosuke Niwa  <rniwa@webkit.org>
31
32         New flakiness dashboard should generate JSON in the background process
33         https://bugs.webkit.org/show_bug.cgi?id=123797
34
35         Reviewed by Alexey Proskuryakov.
36
37         * config.json: Add defaultBuildWaitInterval used by process-builds.php.
38         * init-database.sql: Add is_process column to builds table so that we can track of "unprocessed" builds.
39
40         * public/admin/process-builds.php: Added.
41         (process_latest_five_builds): Update flakiness states and generate JSONs for the latest five builds.
42         We go backwards in the time so that we don't end up infinite looping over a single build that fails.
43         (main): Call processed_builds with an exponential back off.
44
45         * public/api/report.php:
46         (store_results): No need to return build or builder ids.
47         (main): Don't update flakiness states or generate JSONs.
48
49         * public/include/test-results.php:
50         (add_build): Take the slave name; it doesn't make any sense to create a build without it and later
51         updating it in store_test_results.
52         (store_test_results): Once new test results are added, explicitly mark this build as unprocessed.
53
54 2013-11-04  Ryosuke Niwa  <rniwa@webkit.org>
55
56         Build fix. Update is_flaky when it's NULL.
57
58         * public/include/test-results.php:
59
60 2013-11-04  Ryosuke Niwa  <rniwa@webkit.org>
61
62         JSON generation on new flakiness dashboard is still too slow
63         https://bugs.webkit.org/show_bug.cgi?id=123776
64
65         Reviewed by Mark Rowe.
66
67         * init-database.sql: Added a constraint that result is unique for each (build, test) pair.
68
69         * public/include/test-results.php:
70         (ResultsJSONGenerator::generate): Don't sort results by latest_revision_time since that's done
71         in the client side anyway.
72         (update_flakiness_for_build): Don't update is_flaky flag if it's already set to the right value.
73
74
75 2013-11-04  Ryosuke Niwa  <rniwa@webkit.org>
76
77         Build fixes. In particular, we were missing the code to generate JSONs in report.php :(
78
79         * public/api/report.php:
80         * public/include/test-results.php:
81
82 2013-11-04  Ryosuke Niwa  <rniwa@webkit.org>
83
84         Fix JSON generations on new flakiness dashboard
85         https://bugs.webkit.org/show_bug.cgi?id=123723
86
87         Reviewed by Andreas Kling.
88
89         Add is_flaky column on results table so that this column can be used to find flaky tests on a given builder
90         efficiently without having to through results for all tests in PHP. This column is updated in report.php
91         when a new build is added. Because is_flaky depends on the preceding and succeeding results, we must update
92         is_flaky flag on results for builds immediately before and after the new build as well.
93
94         To see why, suppose we had two consecutive results [PASS] [PASS]. If we were to insert [FAIL] result between
95         the two, those two results may also turn into flaky results if they were surrounded by [FAIL]. Similarly,
96         if we had [PASS] [FAIL] and the second result was marked flaky, inserting new [FAIL] must unmark it.
97
98
99         * init-database.sql: Added is_flaky column to results table with an index. Also added an index on
100         build_revisions.time as many queries filter results by this quantity. Also set the work_mem to 50MB avoid
101         disk thrashing while sorting results in various queries.
102
103         * public/api/failing-tests.php: Handle builder ids as well as names. Call generate() with failure types.
104         No longer generates *-failing.json since it's a subset of *-wrongexpectations.json to save time.
105
106         * public/api/report.php: Rewritten. Calls update_flakiness_after_inserting_build to update is_flaky flags
107         on the newly added results.
108         (store_results): Added.
109         (main): Added.
110
111         * public/include/test-results.php:
112         (ResultsJSONWriter):
113         (ResultsJSONWriter::add_results_for_test): Renamed from add_results_for_test_if_matches.
114         (ResultsJSONGenerator::generate): Takes the failure type. Instead of generating JSONs for all failure types
115         at once, generate one JSON for the specified type. We generate the list of test ids based on the failure type
116         and query results based on that. This dramatically cuts down the time spent in PHP.
117         (ResultsJSONGenerator::latest_build): Added.
118         (ResultsJSONGenerator::write_jsons): Takes single writer now.
119         (update_flakiness_for_build): Added.
120         (update_flakiness_after_inserting_build): Added.
121
122         * public/index.html:
123         (TestResultsView._populateBuilderPane): Emulate *-failing.json upon *-wrongexpectations.json.
124         (TestResultsView.fetchFailingTestsForBuilder): Ditto.
125
126         * public/main.css: Minor style tweaks.
127         (.testResults): Extend the border that wraps the test results as needed.
128         (.tooltip): Don't wrap text inside tooltips.
129
130 2013-10-26  Ryosuke Niwa  <rniwa@webkit.org>
131
132         Make new bug link in flakiness dashboard configurable
133         https://bugs.webkit.org/show_bug.cgi?id=123386
134
135         Reviewed by Alexey Proskuryakov.
136
137         * config.json: Added Bugzilla as the default destination for new bugs.
138         * public/api/manifest.php: Include newBugLinks in the manifest.
139         * public/index.html:
140         (TestResultsView): Initialize _newBugLinks.
141         (TestResultsView.setNewBugLinks): Added.
142         (TestResultsView._populateTestPane):
143         (TestResultsView._createTestResultRow): Replaced the hard-coded Bugzilla URL by the code
144         to generate hyper-links based on _newBugLinks. Also added a nullity check while formatting
145         revision checks so that we don't blow up when some build doesn't contain all revision info.
146         (TestResultsView._populateBuilderPane):
147
148 2013-10-26  Ryosuke Niwa  <rniwa@webkit.org>
149
150         New flakiness dashboard should support substring matching
151         https://bugs.webkit.org/show_bug.cgi?id=123393
152
153         Reviewed by Alexey Proskuryakov.
154
155         Addressed the use cases by
156         1. Always showing the candidate even when there is exactly one test matching the current value.
157         2. Adding all tests that match the current value upon the user pressing enter key.
158
159         * public/index.html:
160         (fetchManifest): Add all tests that match the current value. Confirm whether the user really
161         want to add all the tests when there are more than 15 tests to add.
162         * public/js/autocompleter.js:
163         (Autocompleter.prototype.filterCandidates): Extracted from _updateCandidates.
164         (Autocompleter.prototype._updateCandidates): Show the candidate window even when there is
165         exactly one test that matches the criteria so that the user can select this test.
166
167 2013-10-26  Ryosuke Niwa  <rniwa@webkit.org>
168
169         New flakiness dashboard shouldn't treat tests with right expectations as failing
170         https://bugs.webkit.org/show_bug.cgi?id=123385
171
172         Reviewed by Alexey Proskuryakov.
173
174         We define failing tests to be tests with wrong expectations whose actual results are not PASS
175         since tests with TEXT, IMAGE, etc... failures do not turn the bots red as long as the expectation
176         of the same type is specified in TestExpectation files.
177
178         * public/include/test-results.php:
179         (FailingResultsJSONWriter): Inherit from WrongExpectationsResultsJSONWriter.
180
181 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
182
183         Build fix. The query results weren't sorted by the latest commit time,
184         yielding wrong set of tests to be listed in the builder pane.
185
186         * public/include/test-results.php:
187
188 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
189
190         Links in new flakiness dashboard could benefit from tooltips
191         https://bugs.webkit.org/show_bug.cgi?id=123381
192
193         Reviewed by Alexey Proskuryakov.
194
195         Add title content attribute on each hyperlink in the builder pane.
196
197         * public/index.html:
198         (TestResultsView._populateBuilderPane):
199
200 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
201
202         Commit the right change.
203
204         * public/index.html:
205
206 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
207
208         The new flakiness dashboard should sort builder and test names
209         https://bugs.webkit.org/show_bug.cgi?id=123363
210
211         Reviewed by Simon Fraser.
212
213         Sort the forgotten builders in the menu.
214
215         * public/index.html:
216
217 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
218
219         The new flakiness dashboard should sort builder and test names
220         https://bugs.webkit.org/show_bug.cgi?id=123363
221
222         Reviewed by Simon Fraser.
223
224         Sort builders and tests by their name in each pane.
225
226         * public/index.html:
227         (TestResultsView._populateTestPane): Lexicologically sort builders by their name.
228         (TestResultsView._sortObjectsByName): Added.
229         (TestResultsView._populateBuilderPane): Lexicologically sort builders by their name.
230
231 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
232
233         Merge revision columns in flakiness dashboard
234         https://bugs.webkit.org/show_bug.cgi?id=123360
235
236         Reviewed by Simon Fraser.
237
238         Merge revision numbers into one cell separated by /, and clearly label them as "latest revisions".
239         Also add colors for missing & audio failures so that they won't be an empty cell.
240
241         * public/index.html:
242         (TestResultsView._createTestResultHeader): Create a single th for the list of repository names.
243         (TestResultsView._createTestResultRow): Use single td for all revision numbers.
244         * public/js/build.js:
245         (.this.formattedRevision): Don't prefix revision numbers with '@' when we're not in the tooltip.
246         * public/main.css:
247         (.resultsTable .AUDIO a): Added.
248         (.resultsTable .MISSING a): Added.
249
250 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
251
252         One more build fix. Put each latest revision information in an actual td.
253
254         * public/index.html:
255
256 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
257
258         Yet another set of build fixes.
259
260         1. Manually strip / from revisions JSON if there is any.
261         2. Suppress warnings from ob_end_flush.
262         3. Allow "+" in actual and expected results as used in "TEXT+IMAGE".
263
264         * public/api/report.php:
265         * public/include/test-results.php:
266
267 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
268
269         Another build fix. Move .htaccess to public.
270
271         * .htaccess: Removed.
272         * public/.htaccess: Copied from .htaccess.
273
274 2013-10-25  Ryosuke Niwa  <rniwa@webkit.org>
275
276         It turns out that the current instruction only works on Mountain Lion.
277
278         Also fixed some typos.
279
280         * Install.md:
281
282 2013-10-24  Ryosuke Niwa  <rniwa@webkit.org>
283
284         Add an instruction on how to setup test-results app
285         https://bugs.webkit.org/show_bug.cgi?id=123321
286
287         Rubber-stamped by Stephanie Lewis.
288
289         Added Install.md and updated config.json accordingly.
290
291         Also moved init-database.sql out of public/include since it doesn't need to be accessible via httpd.
292
293         * Install.md: Added.
294         * config.json:
295         * init-database.sql: Moved from public/include/init-database.sql.
296
297 2013-10-24  Ryosuke Niwa  <rniwa@webkit.org>
298
299         Move everything except ChangeLog and config.json into public directory.
300         https://bugs.webkit.org/show_bug.cgi?id=123319
301
302         Rubber-stamped by Stephanie Lewis.
303
304         * admin: Removed.
305         * admin/admin.css: Removed.
306         * admin/builders.php: Removed.
307         * admin/index.php: Removed.
308         * admin/repositories.php: Removed.
309         * api: Removed.
310         * api/failing-tests.php: Removed.
311         * api/manifest.php: Removed.
312         * api/report.php: Removed.
313         * api/results.php: Removed.
314         * common.css: Removed.
315         * config.json: Copied from include/config.json.
316         * include: Removed.
317         * include/admin-footer.php: Removed.
318         * include/admin-header.php: Removed.
319         * include/config.json: Removed.
320         * include/db.php: Removed.
321         * include/init-database.sql: Removed.
322         * include/json-shared.php: Removed.
323         * include/test-results.php: Removed.
324         * index.html: Removed.
325         * js: Removed.
326         * js/autocompleter.js: Removed.
327         * js/build.js: Removed.
328         * js/dom.js: Removed.
329         * main.css: Removed.
330         * public: Added.
331         * public/admin: Copied from admin.
332         * public/api: Copied from api.
333         * public/common.css: Copied from common.css.
334         * public/include: Copied from include.
335         * public/include/config.json: Removed.
336         * public/include/db.php:
337         * public/index.html: Copied from index.html.
338         * public/js: Copied from js.
339         * public/main.css: Copied from main.css.
340
341 2013-10-24  Ryosuke Niwa  <rniwa@webkit.org>
342
343         Showing lists of flaky tests for a builder takes too long
344         https://bugs.webkit.org/show_bug.cgi?id=123311
345
346         Reviewed by Sam Weinig.
347
348         Generate JSONs for tests failing, flaky, or with wrong expectation at the time a builder reports results
349         instead when the frontend requests to those those results since it takes multiple seconds or minutes to
350         generate those JSON files.
351
352         * api/failing-tests.php: Moved and renamed to manually generate all JSON files for a given builder.
353         (main):
354
355         * api/report.php: Manually flush and end the request (to avoid blocking run-webkit-tests on the other side
356         for minutes), then generate JSONs for tests that are failing, are flaky, and have wrong expectations.
357
358         * api/results.php: Merge format_result_rows here since it's not used anywhere else.
359
360         * include/config.json: Added the path to the data directory into which JSON files are generated.
361
362         * include/db.php:
363         (configPath): Takes a relative path value from config.json, and resolves it.
364
365         * include/json-shared.php:
366         (echo_success): Extracted from exit_with_success.
367         (exit_with_success):
368
369         * include/test-results.php:
370         (add_builder): Extracted from add_build.
371         (add_build):
372         (ResultsJSONWriter): Extracted from api/failing-tests.php.
373         (ResultsJSONWriter.__construct):
374         (ResultsJSONWriter.start):
375         (ResultsJSONWriter.end):
376         (ResultsJSONWriter.add_results_for_test_if_matches):
377         (ResultsJSONWriter.pass_for_failure_type):
378         (FailingResultsJSONWriter): Extracted from index.html's TestResultsView._matchesFailureType.
379         (FailingResultsJSONWriter.__construct):
380         (FailingResultsJSONWriter.pass_for_failure_type):
381         (FlakyResultsJSONWriter): Ditto.
382         (FlakyResultsJSONWriter.__construct):
383         (FlakyResultsJSONWriter.pass_for_failure_type):
384         (WrongExpectationsResultsJSONWriter): Ditto.
385         (WrongExpectationsResultsJSONWriter.__construct):
386         (WrongExpectationsResultsJSONWriter.pass_for_failure_type):
387         (ResultsJSONGenerator): Ditto.
388         (ResultsJSONGenerator.__construct):
389         (ResultsJSONGenerator.generate):
390         (ResultsJSONGenerator.open_json_for_failure_type):
391         (ResultsJSONGenerator.write_jsons):
392
393         * index.html:
394         (TestResultsView):
395         (TestResultsView.setBuilders):
396         (TestResultsView._createResultCell): Add a hyperlink to results.html in the tooltip.
397         (TestResultsView.fetchFailingTestsForBuilder): Fetch the generated JSON files.
398
399 2013-10-23  Ryosuke Niwa  <rniwa@webkit.org>
400
401         Reverted erroneously committed changes from the previous commit.
402
403         * index.html:
404
405 2013-10-23  Ryosuke Niwa  <rniwa@webkit.org>
406
407         Clicking on a test name on the new flakiness dashboard should add a new test pane
408         https://bugs.webkit.org/show_bug.cgi?id=123194
409
410         Reviewed by Simon Fraser.
411
412         Added a new click handler on each test name inside the builder test view add a new test pane.
413         Moved the old trac link to a right-arrow inline SVG icon.
414
415         Also tweaked the style so that the builder test view looks different from other test panes.
416
417         * index.html:
418         (TestResultsView._urlFromTest): Extracted from TestResultsView._linkifiedTestName.
419         (TestResultsView._populateBuilderPane): Fetch the test when its name is clicked.
420         Added a circled right arrow for the old trac link.
421         * main.css: Tweaked the style to move the rounded border around the builder test view to be
422         around the form controls to clearly differentiate it from a regular test pane.
423
424 2013-10-22  Ryosuke Niwa  <rniwa@webkit.org>
425
426         New flakiness dashboard's test pane should show the latest WebKit revision for each builder
427         https://bugs.webkit.org/show_bug.cgi?id=123189
428
429         Reviewed by Simon Fraser.
430
431         * index.html:
432         (TestResultsView._populateTestPane): Call _createTestResultHeader and _createTestResultRow with
433         a list of repository information.
434         (TestResultsView._createTestResultHeader): Optionally creates headers for a list of repositories.
435         (TestResultsView._createTestResultRow): Add a hyperlinked revision information for each builder.
436         Also add a hyperlink to file a Bugzilla bug when there is no bug associated with the test already.
437         * js/build.js:
438         (Build.formattedRevision): Extracted from Build.formattedRevisions.
439         (Build.formattedRevisions):
440
441 2013-10-22  Ryosuke Niwa  <rniwa@webkit.org>
442
443         Make tables on the new flakiness dashboard sortable
444         https://bugs.webkit.org/show_bug.cgi?id=123141
445
446         Reviewed by Simon Fraser.
447
448         Use jquery.tablesorter.js to make test and builder tables sortable. The jquery plugin is already used by run-perf-tests.
449
450         * index.html:
451         (TestResultsView._populateTestPane): Add tablesorter to the class name and wrap tr's inside a tbody so that tablesorter
452         could sort them.
453         (TestResultsView._populateBuilderPane): Ditto.
454         * main.css:
455         (.resultsTable thead): Use cursor: pointer to signify the fact it's clickable.
456         (.resultsTable th): Don't repeat arrows.
457         (.resultsTable th.headerSortUp): Inline SVG up arrow.
458         (.resultsTable th.headerSortDown): Inline SVG down arrow.
459
460 2013-10-21  Ryosuke Niwa  <rniwa@webkit.org>
461
462         New flakiness dashboard should hyperlink test names, WebKit revisions, and bubbles
463         https://bugs.webkit.org/show_bug.cgi?id=123134
464
465         Reviewed by Stephanie Lewis.
466
467         Copied admin.css, admin-header.php, admin-footer.php, builders.php, repositories.php from WebKit Perf Monitor.
468         (Unfortunately WebKit Perf Monitor hasn't been committed into WebKit repository just yet.)
469
470         Updated various parts of index.html to linkify test names, build numbers, and bubbles (to results page).
471
472         * admin/admin.css: Added.
473         * admin/builders.php: Added.
474         * admin/index.php: Removed the duplicated code now that it uses admin-header.php.
475         * admin/repositories.php: Added.
476         * api/manifest.php: Use camelCase for blame_url and build_url to be consistent with other JSON properties.
477         Also exported testCategories from config so that we can linkify test names in the dashboard.
478         * include/admin-footer.php: Added.
479         * include/admin-header.php: Added.
480         * include/config.json: Added test categories. This avoids hard-coding the URL to trac in php/js.
481         * include/init-database.sql: Added name and build_url to builders table and category to tests.
482         * include/test-results.php: Assume the test category to be LayoutTest for now.
483
484         * index.html:
485         (TestResultsView): Initialize _builders, _slaves, _repositories, _testCategories as dictionaries as intended.
486         (TestResultsView.setTestCategories): Added.
487         (TestResultsView._createResultCell): Dynamically resolve URLs of results page and and build page.
488         (TestResultsView._populateTestPane): Linkify the test name. Unfortunately we don't have a test object anywhere.
489         We need to figure out a way to find the test object here eventually. For now, hard-coding "LayoutTest" works.
490         (TestResultsView._linkifiedTestName): Added.
491         (TestResultsView._createBuildsAndComputeSlownessOfResults): Takes builderId to set "builder" property on each
492         result object as it's used by Build class.
493         (TestResultsView._populateBuilderPane):
494         (fetchManigest):
495
496         * js/build.js:
497         (Build.buildUrl): Support $builderName so that we don't have to keep repeating builder names in the database.
498         (Build.revision): Don't access [0] if revisions[repositoryId] was undefined.
499
500 2013-10-21  Ryosuke Niwa  <rniwa@webkit.org>
501
502         New flakiness dashboard should align results by revision numbers
503         https://bugs.webkit.org/show_bug.cgi?id=123129
504
505         Reviewed by Tim Horton.
506
507         * include/config.json: Specify the default cache time to be 10 minutes.
508         * include/json-shared.php: Added Expires and Cache-Control headers. It's configurable via config.json.
509         * index.html:
510         (TestResultsView._createResultCell): Don't put '-' in a result cell without time.
511         (TestResultsView._populateTestPane): Create an array of build times ordered from the newest to the oldest.
512         Not that build.time() is the newest commit time among all repository for each result. e.g. if we had
513         both WebKit and Safari repository information in a given result, the newer of the two will be used.
514         (TestResultsView._createTestResultHeader): Added.
515         (TestResultsView._createBuildsAndComputeSlownessOfResults): Extracted from _createTestResultRow so
516         that _populateTestPane could use Build object before calling _createTestResultRow.
517         (TestResultsView._createTestResultRow): Takes buildTimes. Insert an empty cell for a build time if
518         the current row doesn't contain that a result for that build time.
519         (TestResultsView._populateBuilderPane):
520         * main.css: Tweaked the style so that bubbles are aligned vertically without '-'.
521         (.resultsTable):
522         (.resultsTable thead th):
523         (.resultsTable .resultCell):
524         (.resultsTable a):
525         (.resultsTable span a):
526
527 2013-10-21  Ryosuke Niwa  <rniwa@webkit.org>
528
529         New flakiness dashboard show test time, modifiers, and flaky tests
530         https://bugs.webkit.org/show_bug.cgi?id=123119
531
532         Reviewed by Tim Horton.
533
534         * api/failing-tests.php: Manually serialize each row in the results to avoid hitting the memory limit.
535         * include/db.php:
536         (Database::query): Added.
537         (Database::fetch_next_row): Added.
538         * include/init-database.sql: Added modifiers and time columns to results table.
539         * include/test-results.php:
540         (store_test_results): Update start_time and end_time to the union of the new interval and the existing interval.
541         (recursively_add_test_results): Handle empty $full_name to eliminate the loop over tests in store_test_results.
542         Also verify that each test name, expected and actual results conform to the specific format to prevent XSS.
543         Also use insert_row instead of select_or_insert_row to avoid issuing an unnecessary SQL query.
544         (format_result): Extracted from format_result_rows. Used in failing-tests.php.
545         * index.html:
546         (TestResultsView): Added _currentBuilderFailureType and _currentBuilderDays.
547         (TestResultsView._createResultCell): Show the test time and the expected result.
548         (TestResultsView._createTestResultRow): Compute the slowest run and also round time to tenth of second for time
549         less than 10s or second if it's more than 10s so that the test time will always be shown in two digits.
550         Also show the bug number and the latest expected result on the left columns after linkifying the bug numbers.
551         (TestResultsView._matchesFailureType): Added. Determines whether results is of a particular failure type.
552         (TestResultsView._populateBuilderPane):
553         (TestResultsView.fetchFailingTestsForBuilder): Store the failure type such as flaky, wrongtestexpectations.
554         (TestResultsView.updateLocationHash):
555         (TestResultsView.loadTestsFromLocationHash):
556         (fetchManifest):
557         * js/dom.js:
558         (element): appendChild if an item is a Node. Otherwise, e.g. integer, create a text node out of toString() call.
559         * main.css: Updated styles.
560
561 2013-10-18  Ryosuke Niwa  <rniwa@webkit.org>
562
563         New flakiness dashboard should support showing the failing tests per builder
564         https://bugs.webkit.org/show_bug.cgi?id=123011
565
566         Reviewed by Timothy Hatcher.
567
568         Added the feature. Also did some refactoring to add this feature.
569
570         * ChangeLog: Added.
571         * api/failing-tests.php: Added.
572         * api/manifest.php: Removed the code to make maps by id. The work is now done in index.html.
573         * api/results.php:
574         * common.css: Added. Extracted from index.html.
575         * include/test-results.php: Extracted parse_revisions_array and format_result_rows from results.php.
576         * index.html:
577         * main.css: Added.
578         (TestResultsView.setAvailableTests): Added.
579         (TestResultsView.showTooltip): Fixed the code to compute x and y coordinates of the tooltip to take
580         scrolled positions into account.
581         (TestResultsView._createTestResultRow): Extracted from _populateTestPane.
582         (TestResultsView.fetchTest): Added the code to show "Loading..." in the pane while loading the JSON.
583         (TestResultsView.fetchTests): Respect the doNotUpdateHash flag.
584         (TestResultsView._populateBuilderPane): Added.
585         (TestResultsView.fetchFailingTestsForBuilder): Added.
586         (TestResultsView.updateLocationHash): Serialize builder & builderDays.
587         (TestResultsView.locationHashChanged): Don't delete existing test panes since that's now done in
588         loadTestsFromLocationHash.
589         (TestResultsView.loadTestsFromLocationHash): Take care of both 'tests' and 'builder' components.
590         (fetchManifest): Setup the UI to select a builder.