Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2018-08-27  Aditya Keerthi  <akeerthi@apple.com>
2
3         Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
4         https://bugs.webkit.org/show_bug.cgi?id=188931
5
6         Reviewed by Wenson Hsieh.
7
8         * StitchMarker/wtf/FeatureDefines.h: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER.
9
10 2018-08-23  Don Olmstead  <don.olmstead@sony.com>
11
12         [CMake] Have checks are not getting set inside CMake properly
13         https://bugs.webkit.org/show_bug.cgi?id=188901
14
15         Reviewed by Michael Catanzaro.
16
17         Add notification that MallocBench is disabled.
18
19         * CMakeLists.txt:
20
21 2018-08-23  Don Olmstead  <don.olmstead@sony.com>
22
23         [CMake] Add HAVE_MALLOC_TRIM definition
24         https://bugs.webkit.org/show_bug.cgi?id=188897
25
26         Reviewed by Konstantin Tokarev.
27
28         MallocBench should only be built on Apple platforms and platforms that
29         have malloc_trim.
30
31         * CMakeLists.txt:
32
33 2018-08-13  Jon Lee  <jonlee@apple.com>
34
35         Update MotionMark version number
36         https://bugs.webkit.org/show_bug.cgi?id=188535
37         <rdar://problem/43254078>
38
39         Reviewed by Said Abou-Hallawa.
40
41         * MotionMark/resources/strings.js: To 1.1.
42
43 2018-08-13  Jon Lee  <jonlee@apple.com>
44
45         [MotionMark] Update Multiply test
46         https://bugs.webkit.org/show_bug.cgi?id=188532
47         <rdar://problem/43252151>
48
49         Reviewed by Said Abou-Hallawa.
50
51         Update Multiply test to have a larger upper limit of number of particles. Cycle through three
52         different ways of hiding an element. Add new Multiple suite that isolates those components for
53         debugging purposes.
54
55         * MotionMark/resources/debug-runner/tests.js:
56         * MotionMark/tests/dom/multiply.html: Added.
57         * MotionMark/tests/dom/resources/multiply.js: Added.
58         * MotionMark/tests/master/resources/multiply.js:
59
60 2018-08-13  Jon Lee  <jonlee@apple.com>
61
62         [MotionMark] Update Leaves test
63         https://bugs.webkit.org/show_bug.cgi?id=188530
64         <rdar://problem/43251862>
65
66         Reviewed by Said Abou-Hallawa.
67
68         Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
69         for debugging purposes.
70
71         * MotionMark/resources/debug-runner/tests.js:
72         * MotionMark/tests/dom/leaves.html:
73         * MotionMark/tests/dom/resources/leaves.js:
74         * MotionMark/tests/master/resources/leaves.js:
75
76 2018-08-10  Ben Richards  <benton_richards@apple.com>
77
78         Add ability to ignore process prewarming for launch time benchmark
79         https://bugs.webkit.org/show_bug.cgi?id=188462
80
81         Reviewed by Ryosuke Niwa.
82
83         Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.
84
85         * LaunchTime/launch_time.py:
86         (DefaultLaunchTimeHandler):
87         (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
88         (DefaultLaunchTimeHandler.on_receive_stop_signal):
89         (DefaultLaunchTimeHandler.do_HEAD):
90         (DefaultLaunchTimeHandler.do_GET):
91         (DefaultLaunchTimeHandler.do_POST):
92         (LaunchTimeBenchmark):
93         (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
94         (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
95         (LaunchTimeBenchmark.run):
96         * LaunchTime/new_tab.py:
97         (NewTabBenchmark.initialize):
98         (NewTabBenchmark.run_iteration):
99         (NewTabBenchmark.will_parse_arguments):
100         (NewTabBenchmark.did_parse_arguments):
101         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
102         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
103         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
104         (NewTabBenchmark):
105         * LaunchTime/startup.py:
106         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
107         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
108         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
109         (StartupBenchmark):
110
111 2018-08-10  Truitt Savell  <tsavell@apple.com>
112
113         Unreviewed, rolling out r234750.
114
115         Caused 185 perf test failures.
116
117         Reverted changeset:
118
119         "Add ability to ignore process prewarming for launch time
120         benchmark"
121         https://bugs.webkit.org/show_bug.cgi?id=188462
122         https://trac.webkit.org/changeset/234750
123
124 2018-08-09  Ben Richards  <benton_richards@apple.com>
125
126         Add ability to ignore process prewarming for launch time benchmark
127         https://bugs.webkit.org/show_bug.cgi?id=188462
128
129         Reviewed by Ryosuke Niwa.
130
131         Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.
132
133         * LaunchTime/launch_time.py:
134         (DefaultLaunchTimeHandler):
135         (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
136         (DefaultLaunchTimeHandler.on_receive_stop_signal):
137         (DefaultLaunchTimeHandler.do_HEAD):
138         (DefaultLaunchTimeHandler.do_GET):
139         (DefaultLaunchTimeHandler.do_POST):
140         (LaunchTimeBenchmark):
141         (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
142         (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
143         (LaunchTimeBenchmark.run):
144         * LaunchTime/new_tab.py:
145         (NewTabBenchmark.initialize):
146         (NewTabBenchmark.run_iteration):
147         (NewTabBenchmark.will_parse_arguments):
148         (NewTabBenchmark.did_parse_arguments):
149         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
150         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
151         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
152         (NewTabBenchmark):
153         * LaunchTime/startup.py:
154         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
155         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
156         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
157         (StartupBenchmark):
158
159 2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>
160
161         [INTL] Remove INTL sub-feature compile flags
162         https://bugs.webkit.org/show_bug.cgi?id=188081
163
164         Reviewed by Michael Catanzaro.
165
166         Removed old and unused i18n flag.
167
168         * StitchMarker/wtf/FeatureDefines.h:
169
170 2018-07-20  David Fenton  <david_fenton@apple.com>
171
172         REGRESSION (234006) ERROR: Blocked access to external URL http://code.jquery.com/jquery-1.9.1.min.js
173         https://bugs.webkit.org/show_bug.cgi?id=187858
174
175         Unreviewed test gardening, skipped test.
176
177         * Skipped: LaunchTime
178
179 2018-07-19  Ben Richards  <benton_richards@apple.com>
180
181         Add benchmark for WebKit process launch times
182         https://bugs.webkit.org/show_bug.cgi?id=186414
183
184         Reviewed by Ryosuke Niwa.
185
186         Added two benchmarks, one for measuring browser new tab launch time and one for browser startup time.
187
188         * LaunchTime/.gitignore: Added.
189         * LaunchTime/feedback_client.html: Added.
190         Displays benchmark progress in browser
191         * LaunchTime/feedback_server.py: Added.
192         (FeedbackServer): Sends data to feedback_client via websocket
193         (FeedbackServer.__init__):
194         (FeedbackServer._create_app):
195         (FeedbackServer._start_server):
196         (FeedbackServer._send_all_messages):
197         (FeedbackServer.start):
198         (FeedbackServer.stop):
199         (FeedbackServer.send_message): Send a message to the feedback_client
200         (FeedbackServer.wait_until_client_has_loaded): Wait until the feedback_client has opened a websocket connection to the feedback_server
201         (FeedbackServer.MainHandler): Handler factory to create handler that serves feedback_client.html
202         (FeedbackServer.MainHandler.Handler):
203         (FeedbackServer.MainHandler.Handler.get):
204         (FeedbackServer.WSHandler): Handler factory to create handler that sends data to feedback client
205         (FeedbackServer.WSHandler.Handler):
206         (FeedbackServer.WSHandler.Handler.open): On websocket connection opened
207         (FeedbackServer.WSHandler.Handler.on_close): On websocket connection closed
208         * LaunchTime/launch_time.py: Added.
209         (DefaultLaunchTimeHandler): Abstract HTTP request handler for launch time benchmarks
210         (DefaultLaunchTimeHandler.get_test_page): Default test page to be overridden by benchmarks
211         (DefaultLaunchTimeHandler.get_blank_page):
212         (DefaultLaunchTimeHandler.on_receive_stop_time):
213         (DefaultLaunchTimeHandler.do_HEAD):
214         (DefaultLaunchTimeHandler.do_GET):
215         (DefaultLaunchTimeHandler.do_POST):
216         (DefaultLaunchTimeHandler.log_message): Suppresses HTTP logs from SimpleHTTPRequestHandler
217         (LaunchTimeBenchmark): Abstract class which launch time benchmarks inherit from and override methods desired to customize
218         (LaunchTimeBenchmark.__init__):
219         (LaunchTimeBenchmark._parse_browser_bundle_path): Parser for bundle path option
220         (LaunchTimeBenchmark._parse_args):
221         (LaunchTimeBenchmark._run_server): Target function for main server thread
222         (LaunchTimeBenchmark._setup_servers):
223         (LaunchTimeBenchmark._clean_up):
224         (LaunchTimeBenchmark._exit_due_to_exception):
225         (LaunchTimeBenchmark._geometric_mean):
226         (LaunchTimeBenchmark._standard_deviation):
227         (LaunchTimeBenchmark._compute_results): Returns mean and std dev of list of results and pretty prints if should_print=True is specified
228         (LaunchTimeBenchmark._wait_times): Mimic numpy.linspace
229         (LaunchTimeBenchmark.open_tab): Open a browser tab with the html given by self.response_handler.get_test_page
230         (LaunchTimeBenchmark.launch_browser): Open a broser to either the feedback client (if option is set) or a blank page
231         (LaunchTimeBenchmark.quit_browser):
232         (LaunchTimeBenchmark.quit_browser.quit_app):
233         (LaunchTimeBenchmark.quit_browser.is_app_closed):
234         (LaunchTimeBenchmark.close_tab):
235         (LaunchTimeBenchmark.wait):
236         (LaunchTimeBenchmark.log): Print to console and send to feedback client if --feedback-in-browser flag is used
237         (LaunchTimeBenchmark.log_verbose): Only logs if --verbose flag is used
238         (LaunchTimeBenchmark.run):
239         (LaunchTimeBenchmark.group_init): Initialization done before each round of iterations
240         (LaunchTimeBenchmark.run_iteration):
241         (LaunchTimeBenchmark.initialize): Convenience method to be overriden by subclasses which is called at the end of __init__
242         (LaunchTimeBenchmark.will_parse_arguments): Called before argparse.parse_args to let subclasses add new command line arguments
243         (LaunchTimeBenchmark.did_parse_arguments): Called after argparse.parse_args to let subclass initialize based on command line arguments
244         * LaunchTime/new_tab.py: Added
245         (NewTabBenchmark):
246         (NewTabBenchmark._parse_wait_time): Parser for wait time option
247         (NewTabBenchmark.initialize):
248         (NewTabBenchmark.run_iteration):
249         (NewTabBenchmark.group_init):
250         (NewTabBenchmark.will_parse_arguments):
251         (NewTabBenchmark.did_parse_arguments):
252         (NewTabBenchmark.ResponseHandler):
253         (NewTabBenchmark.ResponseHandler.Handler):
254         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
255         * LaunchTime/startup.py: Added
256         (StartupBenchmark): This benchmark measures browser startup time and initial page load time
257         (StartupBenchmark.initialize):
258         (StartupBenchmark.run_iteration):
259         (StartupBenchmark.ResponseHandler):
260         (StartupBenchmark.ResponseHandler.Handler):
261         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
262         * LaunchTime/thirdparty/__init__.py: Added.
263         (AutoinstallImportHook): Auto installs tornado package for feedback server
264         (AutoinstallImportHook.__init__):
265         (AutoinstallImportHook._ensure_autoinstalled_dir_is_in_sys_path):
266         (AutoinstallImportHook.find_module):
267         (AutoinstallImportHook._install_tornado):
268         (AutoinstallImportHook.greater_than_equal_to_version):
269         (AutoinstallImportHook._install):
270         (AutoinstallImportHook.get_latest_pypi_url):
271         (AutoinstallImportHook.install_binary):
272         (autoinstall_everything):
273         (get_os_info):
274
275 2018-06-25  Jon Lee  <jonlee@apple.com>
276
277         [MotionMark] Add support for version numbers
278         https://bugs.webkit.org/show_bug.cgi?id=186479
279
280         Reviewed by Said Abou-Hallawa.
281
282         Add support for displaying the version number as well as including it in the JSON results.
283
284         When loading the front page, script replaces any element with classname version with the
285         version number of the benchmark, which is stored in Strings.version.
286
287         The JSON structure for the results includes a new version property:
288             {
289               "version": "1.0",
290               "options": { ... },
291               "data": [ ... ]
292             }
293
294         When dragging a results file, the version listed will come from the JSON file. Older
295         results will not have had the version property, in which case it will default to "1.0".
296
297         * MotionMark/index.html: Update title to some other default. Script will update it.
298         Include the version number in the logo title.
299         * MotionMark/developer.html: Ditto.
300         * MotionMark/about.html: Ditto.
301
302         * MotionMark/resources/runner/motionmark.js:
303         (ResultsDashboard): Update constructor to include version. This is used when serializing
304         results out to JSON, and displaying the results panel in developer mode.
305         (ResultsDashboard._processData): When running the benchmark, include benchmark version string
306         in the results object.
307         (ResultsDashboard.version):
308         (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
309         benchmark version string to the dashboard, which holds the results.
310         (window.sectionsManager.setSectionVersion): Helper function to update the element in the
311         section with the class name version.
312         (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
313         with the version string. Update the page title.
314         (window.benchmarkController.showResults): When showing results, update the version string
315         based on what is included in the JSON results, which would be the same as the benchmark version.
316         * MotionMark/resources/runner/motionmark.css: Include missing copyright. Wrap the SVG logo
317         in a div and include the version string.
318         * MotionMark/resources/strings.js: Add strings for the page title template, and the version.
319
320         * MotionMark/resources/debug-runner/motionmark.css:
321         * MotionMark/resources/debug-runner/motionmark.js:
322         (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
323         benchmark version string to the dashboard, which holds the results.
324         (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
325         with the version string. Update the page title. When dragging in JSON results, look for
326         version to pass to the dashboard. If it doesn't exist, default to "1.0".
327         (window.benchmarkController.showResults): When showing results, update the version string
328         based on what is included in the JSON results, instead of the current benchmark version.
329         * MotionMark/resources/debug-runner/tests.js: Update page title template.
330
331 2018-06-08  Jon Lee  <jonlee@apple.com>
332
333         [MotionMark] Rename Suits test files
334         https://bugs.webkit.org/show_bug.cgi?id=186447
335
336         Reviewed by Said Abou-Hallawa.
337
338         * MotionMark/resources/runner/tests.js:
339         * MotionMark/tests/master/resources/suits.js: Renamed from PerformanceTests/MotionMark/tests/master/resources/svg-particles.js.
340         * MotionMark/tests/master/suits.html: Renamed from PerformanceTests/MotionMark/tests/master/svg-particles.html.
341         * MotionMark/tests/svg/suits.html:
342
343 2018-06-08  Jon Lee  <jonlee@apple.com>
344
345         Add sub-tests based on Suits
346         https://bugs.webkit.org/show_bug.cgi?id=186260
347
348         Reviewed by Said Abou-Hallawa.
349
350         Add a new developer Suits suite with sub-tests that isolate parts of each particle.
351         The sub-tests are:
352             - Particles using only clip paths
353             - Particles using only shapes
354             - Particles that have no gradients
355             - Particles that have no rotation
356             - Particles that do not move around at all (but all of the physics calculations are
357             still performed)
358
359         * MotionMark/resources/debug-runner/tests.js:
360         * MotionMark/tests/master/resources/svg-particles.js: Rename the stage, particle, and
361         benchmark to "Suits" from "SVG". Change SuitsParticle so that we guarantee 50% clip and
362         shape paths rather than relying on random chance. Wrap a check around creation of the
363         gradient element, and use a simple fill color when we aren't using a gradient.
364         * MotionMark/tests/svg/suits.html: Added.
365         * MotionMark/tests/svg/suits.js: Added.
366         Look for the query string and set the particle based on what is selected.
367
368 2018-06-06  Jon Lee  <jonlee@apple.com>
369
370         Allow the ramp controller to run tests that take less time than the initial ramp-up phase
371         https://bugs.webkit.org/show_bug.cgi?id=186257
372
373         Reviewed by Said Abou-Hallawa.
374
375         * MotionMark/tests/resources/main.js: Extend the desired end timestamp when ramp-up occurs.
376         Previously the controller assumed that the duration of the test was always longer than the
377         time it took to figure out the order of magnitude of particles to render. When that range
378         is determined, the end timestamp is then extended. If the duration is too short, the controller
379         would throw an exception. The fix is to continue extending the timestamp every time the order of
380         magnitude tiers up.
381
382         In general testing with really short durations isn't practical, but sometimes it is
383         desired for debugging.
384
385         To avoid confusion of the private variables, I renamed Benchmark._startTimestamp to
386         Benchmark._benchmarkStartTimestamp, to disambiguate from Controller._startTimestamp.
387         Benchmark._startTimestamp is set once and never changed, after the initial 100ms warm-up.
388         Controller._startTimestamp is initialized to 0 (which means "not initialized"), and then after
389         the warm up is complete, set in Controller.start() to the same wall clock timestamp, and never
390         changed afterwards.
391
392 2018-06-06  Jon Lee  <jonlee@apple.com>
393
394         Remove unneeded data processing in MotionMark
395         https://bugs.webkit.org/show_bug.cgi?id=186256
396
397         Reviewed by Said Abou-Hallawa.
398
399         Remove calculation of average frame rate based on multiple samples at a given complexity.
400         It is not used in the calculation of the score, and is just extra work to do at the end
401         of a test.
402
403         * MotionMark/developer.html: Remove options to show average data and regression based on
404         that data.
405         * MotionMark/resources/debug-runner/graph.js: Remove data. Update the time graph that
406         shows the relationship between the break point in the regression against the complexity
407         graph.
408         * MotionMark/resources/debug-runner/motionmark.css: Make the confidence intervals easier
409         to see.
410         * MotionMark/resources/runner/motionmark.js: Simplify score calculation now that we are
411         only calculating regressions on the raw data. We were calculating it based on the averages,
412         but that was just for analysis, and not used in the actual score. Get rid of the
413         |complexitySamples| local variable.
414         * MotionMark/resources/strings.js: Remove unneeded string constant.
415         * MotionMark/tests/resources/main.js:
416         (processSamples): Refactor so that more of it can be shared between Controller and
417         RampController. It also avoids processing the raw samples (controllerSamples) twice for
418         the ramp controller.
419         (_processComplexitySamples): Remove logic to calculate averages based on complexity.
420         (_processMarks): Split this out from the old processSamples.
421         (_processControllerSamples): Split this out from the old processSamples.
422
423 2018-06-06  Jon Lee  <jonlee@apple.com>
424
425         Strip out more characters when creating permalinks
426         https://bugs.webkit.org/show_bug.cgi?id=186259
427
428         Reviewed by Said Abou-Hallawa.
429
430         Tests and suites may have names that make permalinks to the tests less readable when
431         shared. Expand the set of characters that are stripped out of the names.
432
433         * MotionMark/resources/debug-runner/motionmark.js: Refactor to call
434         stripUnwantedCharactersForURL. For existing links, decode the suite and test names.
435         * MotionMark/resources/extensions.js:
436         (Utilities.stripUnwantedCharactersForURL): Rename from stripNonASCIICharacters.
437         Remove any non-alphanumeric character.
438
439 2018-06-04  Jon Lee  <jonlee@apple.com>
440
441         Remove unnecessary MotionMark controllers
442         https://bugs.webkit.org/show_bug.cgi?id=186255
443
444         Reviewed by Said Abou-Hallawa.
445
446         Get rid of the ramp30 and the fixed-with-a-step controllers, which aren't used for testing
447         or debugging.
448
449         * MotionMark/developer.html: Move the "ramp" option as first, since that is the default
450         controller for the benchmark.
451         * MotionMark/resources/debug-runner/motionmark.js:
452         * MotionMark/resources/runner/motionmark.js: Added missing copyright notice.
453         * MotionMark/tests/resources/main.js:
454
455 2018-05-25  Myles C. Maxfield  <mmaxfield@apple.com>
456
457         Improve the performance of Font::canRenderCombiningCharacterSequence()
458         https://bugs.webkit.org/show_bug.cgi?id=185933
459
460         Reviewed by Ryosuke Niwa.
461
462         * Layout/ComplexLongUnique.html: Added.
463
464 2018-05-25  Saam Barati  <sbarati@apple.com>
465
466         Have a memory test where we can validate JSCs mini memory mode
467         https://bugs.webkit.org/show_bug.cgi?id=185932
468
469         Reviewed by Mark Lam.
470
471         We add a directory here with the contents of the testmem benchmark.
472         To run it, use `Tools/Scripts/run-testmem`. To add new tests in the future,
473         you just need to add JS files to this directory.
474
475         * testmem: Added.
476         * testmem/air.js: Added.
477         * testmem/base64.js: Added.
478         * testmem/basic.js: Added.
479         * testmem/box2d.js: Added.
480         * testmem/crypto-md5.js: Added.
481         * testmem/date-format-tofte.js: Added.
482         * testmem/earley-boyer.js: Added.
483         * testmem/hash-map.js: Added.
484         * testmem/regex-dna.js: Added.
485         * testmem/splay.js: Added.
486         * testmem/tagcloud.js: Added.
487
488 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
489
490         Unreviewed, rolling out r232052.
491
492         Breaks internal builds.
493
494         Reverted changeset:
495
496         "Use more C++17"
497         https://bugs.webkit.org/show_bug.cgi?id=185176
498         https://trac.webkit.org/changeset/232052
499
500 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
501
502         Use more C++17
503         https://bugs.webkit.org/show_bug.cgi?id=185176
504
505         Reviewed by JF Bastien.
506
507         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
508         * MediaTime/Configurations/Base.xcconfig:
509         * MediaTime/MediaTime.xcodeproj/project.pbxproj:
510
511 2018-04-30  Myles C. Maxfield  <mmaxfield@apple.com>
512
513         Improve the performance of FontCascadeDescription's effectiveFamilies
514         https://bugs.webkit.org/show_bug.cgi?id=184720
515
516         Reviewed by Simon Fraser.
517
518         This performance test calls SystemFontDatabase::systemFontCascadeList() around 2,000,000 times (before
519         this patch is applied), which is roughly equivalent to the page we found the performance problem on.
520         The calling pattern is roughly equivalent in this test.
521
522         * Layout/system-ui.html: Added.
523
524 2018-03-08  Antti Koivisto  <antti@apple.com>
525
526         Update StyleBench version number in page title to 0.3
527
528         * StyleBench/index.html:
529
530         There has been a bunch of changes, most notably the addition of attribute selector test step.
531
532 2018-02-16  Dean Jackson  <dino@apple.com>
533
534         Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa
535         https://bugs.webkit.org/show_bug.cgi?id=182894
536
537         Reviewed by Tim Horton.
538
539         Rename OPENGL_ES_2 to OPENGL_ES.
540
541         * StitchMarker/wtf/Platform.h:
542
543 2018-02-09  Ryosuke Niwa  <rniwa@webkit.org>
544
545         Make run-perf-tests work with Speedometer 2.0 and re-enable the test
546         https://bugs.webkit.org/show_bug.cgi?id=182088
547
548         Reviewed by Antti Koivisto.
549
550         This patch updates the test harness to report new metrics of Speedometer 2.0.
551
552         Replaced the total time by the geometric mean of the time spent in each suite, and added scores
553         as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
554         to support "Score" metric with "pt" as its unit.
555
556         * Skipped: Unskipped the test.
557         * Speedometer/resources/benchmark-report.js:
558         (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
559         to report the score in addition to time. Also report the geomean of time instead of the total time.
560         (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
561         (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
562         (window.benchmarkClient.didFinishLastIteration): Report the scores.
563
564 2018-02-09  Ross Kirsling  <ross.kirsling@sony.com>
565
566         Use REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR on any non-Windows port.
567         https://bugs.webkit.org/show_bug.cgi?id=182623
568
569         Reviewed by Alex Christensen.
570
571         * StitchMarker/wtf/Platform.h:
572         Simplify #if.
573
574 2018-02-01  Antti Koivisto  <antti@apple.com>
575
576         StyleBench: Attribute selectors and other improvements
577         https://bugs.webkit.org/show_bug.cgi?id=182387
578
579         Reviewed by Joseph Pecoraro.
580
581         - Add some attributes to elements in all tests
582         - Add some attribute selectors to stylesheets in all tests
583         - Also add some * selectors to all stylesheets.
584         - Add attribute mutation step to all suites
585         - Make test steps do more mutations (25->100) and reduce the number of steps to keep testing time in check.
586           Too fast steps were running into timer resolution limits.
587
588         * StyleBench/resources/style-bench.js:
589         (defaultConfiguration):
590         (prototype.randomAttributeName):
591         (prototype.randomAttributeValue):
592         (prototype.randomAttributeSelector):
593         (prototype.makeCompoundSelector):
594         (prototype.makeElement):
595         (prototype.addClasses):
596         (prototype.removeClasses):
597         (prototype.mutateAttributes):
598         (prototype.async.runForever):
599         * StyleBench/resources/tests.js:
600         (makeSteps):
601         (makeSuite):
602
603 2018-02-01  Geoffrey Garen  <ggaren@apple.com>
604
605         Make MallocBench easier for non-WebKit engineers to run
606         https://bugs.webkit.org/show_bug.cgi?id=182415
607
608         Reviewed by Saam Barati.
609
610         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Use c++14 so we
611         can make_unique.
612
613         Specify that we support all Darwin platforms so you can test them.
614
615         * MallocBench/run-malloc-benchmarks: Specify the path to MallocBench
616         and libmbmalloc explicitly, rather than computing them implicitly
617         using webkitdirs. Non-WebKit folks don't have the directory structure
618         required by webkitdirs.
619
620         Remove Linux-specific and cmake-specific behaviors because we only
621         needed them in the world of implicit path computation.
622
623 2018-01-31  Ryosuke Niwa  <rniwa@webkit.org>
624
625         Make run-perf-tests work with StyleBench and re-enable it
626         https://bugs.webkit.org/show_bug.cgi?id=182322
627
628         Reviewed by Antti Koivisto.
629
630         This patch updates the test harness to report new metrics of StyleBench.
631
632         Replaced the total time by the geometric mean of the time spent in each suite, and added scores
633         as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
634         to support "Score" metric with "pt" as its unit.
635
636         * Skipped: Unskipped the test.
637         * StyleBench/resources/benchmark-report.js:
638         (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
639         to report the score in addition to time. Also report the geomean of time instead of the total time.
640         (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
641         (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
642         (window.benchmarkClient.didFinishLastIteration): Report the scores.
643         * resources/results-template.html: Added "Score" as a metric and "pt" as its unit.
644         * resources/runner.js:
645         (PerfTestRunner..finish): Ditto.
646
647 2018-01-30  Ryosuke Niwa  <rniwa@webkit.org>
648
649         StyleBench: Generate more mutation steps
650         https://bugs.webkit.org/show_bug.cgi?id=182291
651
652         Rubber-stamped by Antti Koivisto
653
654         Use zero-based index instead of one-based index.
655
656         * StyleBench/resources/tests.js:
657         (makeSteps):
658
659 2018-01-30  Antti Koivisto  <antti@apple.com>
660
661         StyleBench: Generate more mutation steps
662         https://bugs.webkit.org/show_bug.cgi?id=182291
663
664         Reviewed by Ryosuke Niwa.
665
666         The test should be doing multiple rounds of mutations in a single document to test what is supposed to test (like it did before r227756).
667         This also makes test results more stable and less dependent on possible first-time costs.
668
669         * StyleBench/resources/benchmark-runner.js:
670
671         Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.
672
673         * StyleBench/resources/tests.js:
674         (makeSteps):
675
676         Generate 10 rounds of class/element mutation steps.
677         Give each generated step unique name so reporting works.
678         Make individual steps do fewer mutations.
679
680 2018-01-29  Antti Koivisto  <antti@apple.com>
681
682         StyleBench: Remove : from a test name
683         https://bugs.webkit.org/show_bug.cgi?id=182258
684
685         Reviewed by Ryosuke Niwa.
686
687         It breaks reporting.
688
689         * StyleBench/resources/style-bench.js:
690         (nthPseudoClassConfiguration):
691
692 2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
693
694         Temporarily skip StyleBench until webkit.org/b/182088 is fixed.
695
696         * Skipped:
697
698 2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
699
700         Make StyleBench compatible with run-benchmark and run-perf-tests
701         https://bugs.webkit.org/show_bug.cgi?id=182262
702
703         Reviewed by Antti Koivisto.
704
705         Copied resource files referenced from Speedometer directory since run-benchmark needs to be able
706         to checkout each benchmark separately.
707
708         Removed the code to create tests of the same name five times in makeSteps since this
709         won't be compatible with either run-benchmark or run-perf-tests.
710
711         * StyleBench/index.html: Removed the code to show warnings for local files since run-benchmark
712         doesn't use HTTP server in WebDriver mode.
713         * StyleBench/resources/benchmark-report.js: Copied from resources/benchmark-report.js.
714         * StyleBench/resources/benchmark-runner.js: Copied from resources/benchmark-runner.js.
715         (BenchmarkRunner.prototype._finalize): Use the correction factor of 8 instead of 5 in StyleBench.
716         * StyleBench/resources/gauge.png: Copied from resources/gauge.png.
717         * StyleBench/resources/gauge@2x.png: Copied from resources/gauge@2x.png.
718         * StyleBench/resources/main.css: Copied from resources/main.css.
719         * StyleBench/resources/main.js: Copied from resources/main.js.
720         * StyleBench/resources/tests.js:
721         (makeSteps): Only make each test once.
722
723 2018-01-26  Chris Nardi  <cnardi@chromium.org>
724
725         Addressing post-review comments after r226614
726         https://bugs.webkit.org/show_bug.cgi?id=182151
727
728         Reviewed by Myles C. Maxfield.
729
730         * StitchMarker/wtf/text/StringImpl.h:
731         (WTF::isSpaceOrNewline):
732         * StitchMarker/wtf/text/TextBreakIterator.cpp:
733         (WTF::numCodeUnitsInGraphemeClusters):
734         * StitchMarker/wtf/text/TextBreakIterator.h:
735
736 2018-01-22  Antti Koivisto  <antti@apple.com>
737
738         StyleBench: Separate test for :nth pseudo classes
739         https://bugs.webkit.org/show_bug.cgi?id=181932
740
741         Reviewed by Sam Weinig.
742
743         Optimization strategies for nth are different from other structural pseudo classes (:first-child etc). Move them to a separate test.
744
745         * StyleBench/resources/style-bench.js:
746         (structuralPseudoClassConfiguration):
747         (nthPseudoClassConfiguration):
748
749             Add a new configuration.
750
751         (predefinedConfigurations):
752         (pseudoClassConfiguration): Deleted.
753
754 2018-01-17  Ryosuke Niwa  <rniwa@webkit.org>
755
756         Temporarily skip Speedometer until we fix the metrics.
757
758         * Skipped:
759
760 2018-01-16  Alex Christensen  <achristensen@webkit.org>
761
762         Fix Mac CMake build after r222900
763
764         * MallocBench/MallocBench/CMakeLists.txt:
765         The mbmalloc target doesn't exist if we're not in developer mode, so only use it if we are.
766
767 2018-01-09  Ryosuke Niwa  <rniwa@webkit.org>
768
769         Speedometer 2.0: Update the About page.
770         https://bugs.webkit.org/show_bug.cgi?id=175918
771
772         Reviewed by Keith Miller.
773
774         Updated the about page for Speedometer 2.0.
775
776         * Speedometer/index.html:
777
778 == Rolled over to ChangeLog-2018-01-01 ==