1a51fc23784aedf2f844622b1bd607f1a0d7e6fa
[WebKit-https.git] / Tools / ChangeLog
1 2017-10-18  Aakash Jain  <aakash_jain@apple.com>
2
3         webkitpy tests should have --json-output option
4         https://bugs.webkit.org/show_bug.cgi?id=178481
5
6         Reviewed by Alexey Proskuryakov.
7
8         * Scripts/webkitpy/test/main.py:
9         (Tester._parse_args): Added json-output argument.
10         (Tester._run_tests): Write output to json file.
11
12 2017-10-18  Wenson Hsieh  <wenson_hsieh@apple.com>
13
14         Unreviewed, rolling out r223291.
15
16         See WebCore ChangeLog for more detail.
17
18         Reverted changeset:
19
20         "Remove Editor::simplifyMarkup"
21         https://bugs.webkit.org/show_bug.cgi?id=178271
22         https://trac.webkit.org/changeset/223291
23
24 2017-10-18  Chris Dumez  <cdumez@apple.com>
25
26         Add an efficient data structure for WebCore to query if there is a Service Worker registered for a given origin
27         https://bugs.webkit.org/show_bug.cgi?id=177876
28         <rdar://problem/34813129>
29
30         Reviewed by Ryosuke Niwa.
31
32         Clear service worker registrations between test runs to avoid flakiness.
33
34         * WebKitTestRunner/TestController.cpp:
35         (WTR::TestController::resetStateToConsistentValues):
36
37 2017-10-18  Zan Dobersek  <zdobersek@igalia.com>
38
39         Remove remnants of OpenWebRTC
40         https://bugs.webkit.org/show_bug.cgi?id=178437
41
42         Reviewed by Alejandro G. Castro.
43
44         Drop OpenWebRTC packages from the GTK's Jhbuild modules file. Relevant
45         patches are also removed.
46
47         * gtk/jhbuild.modules:
48         * gtk/patches/libnice-0001-TURN-allow-REALM-to-be-empty.patch: Removed.
49         * gtk/patches/libnice-0001-nicesrc-spin-the-agent-mainloop-in-a-separate-thread.patch: Removed.
50         * gtk/patches/rtspsrc-timeout-on-udpsrc-is-in-nanoseconds.patch: Removed.
51         * gtk/patches/udpsrc-improve-timeouts.patch: Removed.
52
53 2017-10-17  Jonathan Bedard  <jbedard@apple.com>
54
55         webkitpy: Hang when workers write to the same stack trace file
56         https://bugs.webkit.org/show_bug.cgi?id=178402
57         <rdar://problem/35033432>
58
59         Reviewed by Aakash Jain.
60
61         Workers can hang if they all write to the same stack trace file when receiving
62         a SIGTERM. Attach the pid to the stack trace file name so that each worker
63         writes to a different file.
64
65         * Scripts/webkitpy/common/interupt_debugging.py:
66         (log_stack_trace_on_term.handler): Name stack trace file path/<pid>-filename.
67         (log_stack_trace_on_cntrl_c.handler): Ditto.
68
69 2017-10-17  John Wilander  <wilander@apple.com>
70
71         Add and remove cookie partition accordingly in intermediary redirect requests
72         https://bugs.webkit.org/show_bug.cgi?id=178369
73         <rdar://problem/34467603>
74
75         Reviewed by Brent Fulgham.
76
77         Adds the function statisticsNotifyObserver().
78
79         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
80         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
81         (WTR::InjectedBundle::statisticsNotifyObserver):
82         * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
83         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
84         (WTR::TestRunner::statisticsNotifyObserver):
85         * WebKitTestRunner/InjectedBundle/TestRunner.h:
86
87 2017-10-17  Youenn Fablet  <youenn@apple.com>
88
89         Cache API implementation should be able to compute storage size for WebKit client applications.
90         https://bugs.webkit.org/show_bug.cgi?id=178350
91
92         Reviewed by Chris Dumez.
93
94         Adding support for a domCacheSize getter.
95
96         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
97         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
98         (WTR::TestRunner::domCacheSize):
99         * WebKitTestRunner/InjectedBundle/TestRunner.h:
100         * WebKitTestRunner/TestController.cpp:
101         (WTR::FetchCacheSizeForOriginCallbackContext::FetchCacheSizeForOriginCallbackContext):
102         (WTR::fetchCacheSizeForOriginCallback):
103         (WTR::TestController::domCacheSize):
104         * WebKitTestRunner/TestController.h:
105         * WebKitTestRunner/TestInvocation.cpp:
106         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
107
108 2017-10-17  Nael Ouedraogo  <nael.ouedraogo@crf.canon.fr>
109
110         [GStreamer][GTK][WPE] update-webkit-libs-jhbuild fails to detect changes in included moduleset files
111         https://bugs.webkit.org/show_bug.cgi?id=178206
112
113         Reviewed by Michael Catanzaro.
114
115         The update-webkit-libs-jhbuild scripts computes MD5 sum of GTK/WPE jhbuild configuration files to check if it
116         needs to rebuild the dependencies libraries. This patch fixes a bug when main GTK/WPE jhbuild modules
117         configuration file includes additional files (for example GStreamer module). It parses jhbuild.modules file to
118         check if additional files are included. If any, it computes MD5 sum for each of these included files.
119
120         * Scripts/update-webkit-libs-jhbuild:
121         (getJhbuildIncludedFilePaths): New function that returns included files in jhbuild.modules
122         (jhbuildConfigurationCheckFile): New function to check if MD5 sum file changes.
123         (jhbuildConfigurationChanged): Add MD5 sum check for included files.
124         (saveMd5File): New function to save MD5 sum of a file.
125         (saveJhbuildMd5): Add saving included files MD5 sum.
126         (deleteJhbuildMd5): Delete included files MD5 sum
127         * gtk/install-dependencies: Add perl-libXML lib that is used to parse jhbuild file.
128         * wpe/install-dependencies: Ditto.
129
130 2017-10-17  Tomas Popela  <tpopela@redhat.com>
131
132         Undefined WK_API_ENABLED warning when compiling COCOA content on WebKitGTK+
133         https://bugs.webkit.org/show_bug.cgi?id=178208
134
135         Check whether we are on COCOA platform before checking for
136         WK_API_ENABLED.
137
138         Reviewed by Ryosuke Niwa.
139
140         * WebKitTestRunner/TestController.cpp:
141         (WTR::TestController::clearDOMCache):
142
143 2017-10-17  Keith Miller  <keith_miller@apple.com>
144
145         Change WebCore sources to work with unified source builds
146         https://bugs.webkit.org/show_bug.cgi?id=178229
147
148         Rubber stamped by Tim Horton.
149
150         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
151
152 2017-10-16  Christopher Reid  <chris.reid@sony.com>
153
154         [Win] Webkit should still be able to build when unable to check if libraries are up to date
155         https://bugs.webkit.org/show_bug.cgi?id=178367
156
157         Adding a option to skip the check to see if windows libraries are up to date.
158         This option is useful when testing modified libraries. This option also allows
159         building webkit when GitHub blocks requests to verify the latest library version.
160
161
162         Reviewed by Per Arne Vollan.
163
164         * Scripts/build-webkit:
165
166 2017-10-12  Matt Rajca  <mrajca@apple.com>
167
168         Add API support for quirk that lets an arbitrary click allow auto-play.
169         https://bugs.webkit.org/show_bug.cgi?id=178227
170
171         Reviewed by Alex Christensen.
172
173         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
174         (TEST): Added API test.
175
176 2017-10-16  Maureen Daum  <mdaum@apple.com>
177
178         If an origin doesn't have databases in the Databases table we should still remove its information from disk in DatabaseTracker::deleteOrigin()
179         https://bugs.webkit.org/show_bug.cgi?id=178281
180         <rdar://problem/34576132>
181
182         Reviewed by Brent Fulgham.
183
184         Verify that if there is an entry in the Origins table but no entries in the Databases
185         table that we still remove the directory for the origin, and that we remove the
186         entry from the Origins table.
187
188         * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:
189         (TestWebKitAPI::TEST):
190
191 2017-10-15  Ryosuke Niwa  <rniwa@webkit.org>
192
193         Cannot access images included in the content pasted from Microsoft Word
194         https://bugs.webkit.org/show_bug.cgi?id=124391
195         <rdar://problem/26862741>
196
197         Reviewed by Antti Koivisto.
198
199         Added tests for sanitizing HTML contents for copy & paste and drag & drop.
200
201         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
202         * TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm: Added.
203         (readHTMLFromPasteboard): Added.
204         (createWebViewWithCustomPasteboardDataEnabled): Added.
205         (CopyHTML.Sanitizes): Added.
206
207         * TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm:
208         (createWebViewWithCustomPasteboardDataEnabled): Added to enable more tests on bots.
209
210         * TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:
211         (writeRTFToPasteboard): Added.
212         (createWebViewWithCustomPasteboardDataEnabled): Added.
213         (createHelloWorldString): Added.
214         (PasteRTF.ExposesHTMLTypeInDataTransfer): Added.
215         (PasteRTFD.ExposesHTMLTypeInDataTransfer): Added.
216         (PasteRTFD.ImageElementUsesBlobURLInHTML): Added.
217
218         * TestWebKitAPI/Tests/WebKitCocoa/copy-html.html: Added.
219         * TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html: Store the clipboardData contents for
220         PasteRTF.ExposesHTMLTypeInDataTransfer and PasteRTFD.ExposesHTMLTypeInDataTransfer.
221
222         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
223         (DataInteractionTests.DataTransferSanitizeHTML):
224
225 2017-10-16  Youenn Fablet  <youenn@apple.com>
226
227         Activate Cache API by default
228         https://bugs.webkit.org/show_bug.cgi?id=178186
229
230         Reviewed by Chris Dumez.
231
232         Removing explicit activation of cache api.
233
234         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
235         (WTR::InjectedBundle::beginTesting):
236         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
237         (WTR::TestRunner::setCacheAPIEnabled): Deleted.
238         * WebKitTestRunner/InjectedBundle/TestRunner.h:
239
240 2017-10-16  Ross Kirsling  <ross.kirsling@sony.com>
241
242         run-webkit-tests help text should mention arguments too
243         https://bugs.webkit.org/show_bug.cgi?id=178352
244
245         Reviewed by Tim Horton.
246
247         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
248         (parse_args):
249
250 2017-10-16  Maureen Daum  <mdaum@apple.com>
251
252         If we fail to delete any database file, don't remove its information from the tracker database
253         <rdar://problem/34576132> and https://bugs.webkit.org/show_bug.cgi?id=178251
254
255         Reviewed by Brady Eidson.
256
257         Add tests that verify we correctly delete databases and remove their information from
258         the tracker database, even if the database doesn't exist. Verify that if we fail to
259         delete a database, we don't remove its information from the tracker database.
260
261         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
262         Move DatabaseTrackerTest.cpp to DatabaseTrackerTest.mm so that we can use the cocoa
263         method for creating a temporary directory in the tests.
264         * TestWebKitAPI/Tests/WebCore/DatabaseTrackerTest.cpp: Removed.
265         The existing test was copied to DatabaseTrackerTest.mm.
266         * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: Added.
267         (TestWebKitAPI::TEST):
268         (TestWebKitAPI::addToDatabasesTable):
269         (TestWebKitAPI::removeDirectoryAndAllContents):
270         (TestWebKitAPI::createFileAtPath):
271
272 2017-10-16  Ryan Haddad  <ryanhaddad@apple.com>
273
274         Unreviewed, rolling out r223422.
275
276         These tests are for a change that was rolled out in r223420
277
278         Reverted changeset:
279
280         "If we fail to delete any database file, don't remove its
281         information from the tracker database"
282         https://bugs.webkit.org/show_bug.cgi?id=178251
283         https://trac.webkit.org/changeset/223422
284
285 2017-10-16  Maureen Daum  <mdaum@apple.com>
286
287         If we fail to delete any database file, don't remove its information from the tracker database
288         <rdar://problem/34576132> and https://bugs.webkit.org/show_bug.cgi?id=178251
289
290         Reviewed by Brady Eidson.
291
292         Add tests that verify we correctly delete databases and remove their information from
293         the tracker database, even if the database doesn't exist. Verify that if we fail to
294         delete a database, we don't remove its information from the tracker database.
295
296         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
297         Move DatabaseTrackerTest.cpp to DatabaseTrackerTest.mm so that we can use the cocoa
298         method for creating a temporary directory in the tests.
299         * TestWebKitAPI/Tests/WebCore/DatabaseTrackerTest.cpp: Removed.
300         The existing test was copied to DatabaseTrackerTest.mm.
301         * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: Added.
302         (TestWebKitAPI::TEST):
303         (TestWebKitAPI::addToDatabasesTable):
304         (TestWebKitAPI::removeDirectoryAndAllContents):
305         (TestWebKitAPI::createFileAtPath):
306
307 2017-10-16  David Kilzer  <ddkilzer@apple.com>
308
309         Add RELEASE_ASSERT_WITH_SECURITY_IMPLICATION() macro
310         <https://webkit.org/b/178269>
311
312         Reviewed by Alex Christensen.
313
314         * Scripts/webkitpy/style/checkers/cpp.py:
315         (check_language): Add checker to warn about using
316         ASSERT_WITH_SECURITY_IMPLICATION().
317         (CppChecker.categories): Add 'security/assertion' to list of
318         enabled checkers.
319         * Scripts/webkitpy/style/checkers/cpp_unittest.py:
320         (CppStyleTest.test_debug_security_assertion): Add tests for
321         new checker.
322
323 2017-10-16  Chris Dumez  <cdumez@apple.com>
324
325         Clicks on Link with download attribute causes all (other) links to trigger download when clicked
326         https://bugs.webkit.org/show_bug.cgi?id=178267
327         <rdar://problem/34985016>
328
329         Reviewed by Darin Adler.
330
331         Use PassThrough policy in WKTR's InjectedBundle's decidePolicyForNewWindowAction so that the
332         request is sent to the UIProcess. This gets WKTR's closer to Safari behavior and helps
333         reproduce the bug. Without this change, I would not be able to write a regression test for
334         this bug that is very easily reproducible in Safari.
335
336         * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
337         (WTR::InjectedBundlePage::decidePolicyForNewWindowAction):
338
339 2017-10-16  Emilio Cobos Álvarez  <emilio@crisal.io>
340
341         Add Emilio Cobos Álvarez to the contributors list.
342         https://bugs.webkit.org/show_bug.cgi?id=178334
343
344         Reviewed by Antti Koivisto.
345
346         * Scripts/webkitpy/common/config/contributors.json:
347
348 2017-10-07  Maciej Stachowiak  <mjs@apple.com>
349
350         Improve --help documentation and add --list-plans to show available benchmarks.
351         https://bugs.webkit.org/show_bug.cgi?id=178059
352
353         Reviewed by Ryosuke Niwa.
354
355         * Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
356         (BenchmarkRunner.available_plans): New function that returns the list of available plans.
357         (BenchmarkRunner.plan_directory): New method to centralize knowledge of where the plan files live.
358         (BenchmarkRunner._find_plan_file): Updated to use BenchmarkRunner.plan_directory
359
360         * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
361         
362         (parse_args): Help cleanup: Reordered options to put more common
363         ones at the top. Fixed wording. Added help for each
364         option. Explained default for each option that has one.
365
366         New option: --list-plans which tells you the available benchmarks.
367         
368         Code cleanup: Removed use of dest where redundant, made variable
369         names conforming to Python coding style.
370         
371         (run_benchmark_plan): Adapted for new variable names.
372         (list_benchmark_plans): New helper for --list-plans option.
373         (start): Account for --list-plans. Also use
374         BechmarkRunner.available_plans and use
375         BenchmarkRunner.plan_directory instead of duplicating
376         code/knowledge here.
377
378 2017-10-16  Wenson Hsieh  <wenson_hsieh@apple.com>
379
380         On ToT, event.dataTransfer.getData("text/uri-list") returns an empty string when dragging an image
381         https://bugs.webkit.org/show_bug.cgi?id=178301
382         <rdar://problem/34990050>
383
384         Reviewed by Darin Adler.
385
386         Fixes issues in DumpRenderTree's LocalPasteboard to ensure that drag-drop-href-as-url.html exposes files, and
387         also adds a new iOS drag and drop API test.
388
389         * DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
390         (-[LocalPasteboard addTypes:owner:]):
391         (-[LocalPasteboard setData:forType:]):
392
393         Fixes LocalPasteboard's implementation of changeCount to incremement when the pasteboard owner changes, rather
394         than every time data is changed. This is consistent with NSPasteboard behavior.
395
396         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
397         (TestWebKitAPI::TEST):
398
399         Adds a new API test to verify that an image and HTTP URL written by the platform is correctly web exposed.
400
401 2017-10-15  Darin Adler  <darin@apple.com>
402
403         UTF-8 decoding produces one replacement character per byte; Encoding standard requires one replacement character per illegal sequence instead
404         https://bugs.webkit.org/show_bug.cgi?id=178207
405
406         Reviewed by Sam Weinig.
407
408         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added test.
409         * TestWebKitAPI/Tests/WebCore/TextCodec.cpp: Added.
410         (TestWebKitAPI::decodeHexTestBytes): Decodes a string so we can write readable tests.
411         (TestWebKitAPI::escapeNonPrintableASCIICharacters): Encodes a string so we can write readable tests.
412         (TestWebKitAPI::TEST): Added some UTF-8 tests and UTF-8 invalid sequences tests.
413         Would be smart to add more tests for other cases, exercising the fast ASCII loop for example, and
414         other encodings.
415
416 2017-10-14  Adrian Perez de Castro  <aperez@igalia.com>
417
418         [WPE] JHBuild build directory DependenciesWPE/Build is not removed by update-webkit-libs-jhbuild
419         https://bugs.webkit.org/show_bug.cgi?id=178212
420
421         Reviewed by Michael Catanzaro.
422
423         * Scripts/update-webkit-libs-jhbuild:
424         (cleanJhbuild): The WPE JHBuild also uses a separate "Build" subdirectory, so do not skip
425         cleaning it when "--wpe" is passed to the script.
426
427 2017-10-13  Adrian Perez de Castro  <aperez@igalia.com>
428
429         [WPE] Fontconfig fails build in JHBuild with “error: conflicting types for ‘FcObjectTypeHash’”
430         https://bugs.webkit.org/show_bug.cgi?id=178283
431
432         Reviewed by Žan Doberšek.
433
434         * wpe/jhbuild.modules: Flag Fontconfig to be built inside the source directory, otherwise
435         compilation fails. While at it, pass "--disable-docs" to cut a bit on build time.
436
437 2017-10-13  Youenn Fablet  <youenn@apple.com>
438
439         Implement listing origins for which CacheStorage is storing data
440         https://bugs.webkit.org/show_bug.cgi?id=178236
441
442         Reviewed by Chris Dumez.
443
444         Adding hasDOMCache API for checking whether origin is storing data through Cache API.
445
446         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
447         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
448         (WTR::TestRunner::hasDOMCache):
449         * WebKitTestRunner/InjectedBundle/TestRunner.h:
450         * WebKitTestRunner/TestController.cpp:
451         (WTR::FetchCacheOriginsCallbackContext::FetchCacheOriginsCallbackContext):
452         (WTR::fetchCacheOriginsCallback):
453         (WTR::TestController::hasDOMCache):
454         * WebKitTestRunner/TestController.h:
455         * WebKitTestRunner/TestInvocation.cpp:
456         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
457
458 2017-10-13  Alex Christensen  <achristensen@webkit.org>
459
460         Remove Editor::simplifyMarkup
461         https://bugs.webkit.org/show_bug.cgi?id=178271
462
463         Reviewed by Wenson Hsieh.
464
465         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
466         * TestWebKitAPI/Tests/mac/SimplifyMarkup.mm: Removed.
467
468 2017-10-11  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
469
470         [GLib] WebKitNavigationAction should tell whether it is a redirect
471         https://bugs.webkit.org/show_bug.cgi?id=178178
472
473         Test that WebKitNavigationAction properly reports being a redirect.
474
475         Reviewed by Carlos Garcia Campos.
476
477         * TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp:
478         (testNavigationPolicy): test that loading /redirect leads to a redirect WebKitNavigationAction.
479         (serverCallback): add a /redirect path to the server, which causes a redirect.
480
481 2017-10-13  Chris Dumez  <cdumez@apple.com>
482
483         Unreviewed, fix webkitpy failure after r223273
484
485         * Scripts/webkitpy/w3c/test_importer_unittest.py:
486         (TestImporterTest.test_harnesslinks_conversion):
487
488 2017-10-12  Chris Dumez  <cdumez@apple.com>
489
490         import-w3c-tests modifies test sources and sometimes causes them to fail
491         https://bugs.webkit.org/show_bug.cgi?id=178234
492
493         Reviewed by Ryosuke Niwa.
494
495         Update import-w3c-tests to stop rewriting tests as this is causing some tests
496         to fail unexpectedly.
497
498         * Scripts/webkitpy/w3c/test_importer.py:
499         (TestImporter.import_tests):
500
501 2017-10-12  Youenn Fablet  <youenn@apple.com>
502
503         Layout Test http/tests/cache-storage/cache-clearing.https.html is failing
504         https://bugs.webkit.org/show_bug.cgi?id=178200
505
506         Reviewed by Chris Dumez.
507
508         Making clearDOMCache wait for removal completion to exit.
509         This removes the risk to interact with the cache while deleting it which will end up be racy in tests.
510
511         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
512         (WTR::TestRunner::clearDOMCache):
513         * WebKitTestRunner/TestController.cpp:
514         (WTR::ClearDOMCacheCallbackContext::ClearDOMCacheCallbackContext):
515         (WTR::clearDOMCacheCallback):
516         (WTR::TestController::clearDOMCache):
517         * WebKitTestRunner/TestInvocation.cpp:
518         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
519         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
520
521 2017-10-12  John Wilander  <wilander@apple.com>
522
523         ResourceLoadObserver::logFrameNavigation() should use redirectResponse.url()
524         https://bugs.webkit.org/show_bug.cgi?id=175257
525         <rdar://problem/33359866>
526
527         Reviewed by Brent Fulgham.
528
529         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
530         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
531         (WTR::TestRunner::isStatisticsRegisteredAsSubFrameUnder):
532         (WTR::TestRunner::isStatisticsRegisteredAsRedirectingTo):
533         * WebKitTestRunner/InjectedBundle/TestRunner.h:
534         * WebKitTestRunner/TestController.cpp:
535         (WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
536             Not implemented.
537         (WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
538             Not implemented.
539         * WebKitTestRunner/TestController.h:
540         * WebKitTestRunner/TestInvocation.cpp:
541         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
542         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
543         (WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
544             Implemented platform-specific.
545         (WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
546             Implemented platform-specific.
547
548 2017-10-12  Andy Estes  <aestes@apple.com>
549
550         [iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS devices
551         https://bugs.webkit.org/show_bug.cgi?id=178181
552         <rdar://problem/33660282>
553
554         Reviewed by Dan Bernstein.
555
556         * WebKitTestRunner/TestController.cpp:
557         (WTR::TestController::databaseProcessName):
558
559 2017-10-12  Myles C. Maxfield  <mmaxfield@apple.com>
560
561         Emit SPIR-V from WSL compiler (Part 1)
562         https://bugs.webkit.org/show_bug.cgi?id=177998
563
564         Reviewed by Filip Pizlo.
565
566         This patch implements the first half of a SPIR-V codegen phase for WSL.
567         This includes all the operations which aren't actually emitting the contents
568         of functions themselves. For example, this includes things like representing
569         WSL types with SPIR-V types, and declaring shaders' inputs and outputs. A
570         future patch will actually emit the contents of functions.
571
572         There are two helper visitors here: SPIRVTypeAnalyzer which generates SPIR-V
573         types from WSL types, and SPIRVPrimitiveVariableAnalyzer which identifies
574         input and output variables from a shader (and assigns location values to
575         each one).
576
577         This patch is currently pursuing the "logical mode" detailed in
578         https://bugs.webkit.org/show_bug.cgi?id=176967. In this mode, each pointer and
579         array reference operation can be statically traced to the variable or array it
580         is operating on.
581
582         This has the interesting property where accessing a pointer inside an array is
583         forbidden, because the array index may be computed at runtime, so the compiler
584         can't know at compile time which variable the pointer operation will be
585         accessing. However, this isn't true for structs; the program must statically
586         state which struct member it is accessing. Therefore, pointers or array
587         references must not transitively appear within an array, but they may appear
588         within a struct. The same logic applies to array references; those get lowered
589         to just two indexes in SPIR-V (a lower bound and an upper bound).
590
591         So, outside of an array, SPIR-V types don't need to include any pointers because
592         any operation with the pointer doesn't need access to the runtime value of the
593         pointer. Inside of an array, pointers are forbidden. Therefore, SPIR-V types
594         will never include any pointers.
595
596         This means that, for example, WSL can represent a linked list in logical mode.
597         However, a WSL program cannot iterate across the list, because that would require
598         assigning to a pointer. So instead, a program using a linked list could only say
599         something like "list.ptr->ptr->ptr->value".
600
601         * WebGPUShadingLanguageRI/LateChecker.js:
602         (LateChecker.prototype._checkShaderType):
603         * WebGPUShadingLanguageRI/SPIR-V.js:
604         (SPIRV.OperandChecker.prototype._isStar):
605         (SPIRV.OperandChecker.prototype.nextComparisonType):
606         (SPIRV.OperandChecker.prototype.finalize):
607         (SPIRV.OperandChecker):
608         * WebGPUShadingLanguageRI/SPIRV.html:
609         * WebGPUShadingLanguageRI/SPIRVCodegen.js: Added.
610         (findEntryPoints):
611         (emitTypes.doEmitTypes):
612         (emitTypes):
613         (ConstantFinder.prototype.visitGenericLiteralType):
614         (ConstantFinder):
615         (generateSPIRV):
616         * WebGPUShadingLanguageRI/SPIRVTypeAnalyzer.js: Added.
617         (SPIRVTypeAnalyzer):
618         (SPIRVTypeAnalyzer.prototype.get program):
619         (SPIRVTypeAnalyzer.prototype.get typeMap):
620         (SPIRVTypeAnalyzer.prototype.get currentId):
621         (SPIRVTypeAnalyzer.prototype.get stack):
622         (SPIRVTypeAnalyzer.prototype.visitTypeRef):
623         (SPIRVTypeAnalyzer.prototype._encounterType):
624         (SPIRVTypeAnalyzer.prototype.visitNullType):
625         (SPIRVTypeAnalyzer.prototype.visitGenericLiteralType):
626         (SPIRVTypeAnalyzer.prototype.visitNativeType):
627         (SPIRVTypeAnalyzer.prototype.visitEnumType):
628         (SPIRVTypeAnalyzer.prototype.visitPtrType):
629         (SPIRVTypeAnalyzer.prototype.visitArrayRefType):
630         (SPIRVTypeAnalyzer.prototype.visitArrayType):
631         (SPIRVTypeAnalyzer.prototype.visitStructType):
632         * WebGPUShadingLanguageRI/SPIRVVariableAnalyzer.js: Added.
633         (SPIRVPrimitiveVariableAnalyzer):
634         (SPIRVPrimitiveVariableAnalyzer.prototype.get program):
635         (SPIRVPrimitiveVariableAnalyzer.prototype.get typeMap):
636         (SPIRVPrimitiveVariableAnalyzer.prototype.get currentId):
637         (SPIRVPrimitiveVariableAnalyzer.prototype.get currentLocation):
638         (SPIRVPrimitiveVariableAnalyzer.prototype.get nameComponents):
639         (SPIRVPrimitiveVariableAnalyzer.prototype.get result):
640         (SPIRVPrimitiveVariableAnalyzer.prototype.visitTypeRef):
641         (SPIRVPrimitiveVariableAnalyzer.prototype.visitNullType):
642         (SPIRVPrimitiveVariableAnalyzer.prototype.visitGenericLiteralType):
643         (SPIRVPrimitiveVariableAnalyzer.prototype.visitNativeType):
644         (SPIRVPrimitiveVariableAnalyzer.prototype.visitEnumType):
645         (SPIRVPrimitiveVariableAnalyzer.prototype.visitPtrType):
646         (SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayRefType):
647         (SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayType):
648         (SPIRVPrimitiveVariableAnalyzer.prototype.visitStructType):
649         * WebGPUShadingLanguageRI/WSL.md:
650         * WebGPUShadingLanguageRI/index.html:
651
652 2017-09-29  Filip Pizlo  <fpizlo@apple.com>
653
654         Enable gigacage on iOS
655         https://bugs.webkit.org/show_bug.cgi?id=177586
656
657         Reviewed by JF Bastien.
658         
659         Add a mode to test disabling Gigacage.
660
661         * Scripts/run-jsc-stress-tests:
662         * Scripts/webkitruby/jsc-stress-test-writer-default.rb:
663
664 2017-10-11  Sam Weinig  <sam@webkit.org>
665
666         Remove out-parameter variants of copyToVector
667         https://bugs.webkit.org/show_bug.cgi?id=178155
668
669         Reviewed by Tim Horton.
670
671         * DumpRenderTree/JavaScriptThreading.cpp:
672         (stopJavaScriptThreads):
673
674 2017-10-12  Sam Weinig  <sam@webkit.org>
675
676         It should be possible to iterate just the values (and not the counts) of a HashCountedSet
677         https://bugs.webkit.org/show_bug.cgi?id=178169
678
679         Reviewed by Daniel Bates.
680
681         * TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:
682         (TestWebKitAPI::TEST):
683         Add test for HashCountedSet's new values() range.
684
685 2017-10-11  Frederic Wang  <fwang@igalia.com>
686
687         run-safari --ios-simulator is no longer working with Xcode 9
688         https://bugs.webkit.org/show_bug.cgi?id=177595
689
690         Reviewed by Daniel Bates.
691
692         In Xcode 9, the path of the simulator application is now in a new CoreSimulator subdirectory
693         of the iphoneOS SDK platform. This patch updates webkitdirs.pm to use the new path in
694         Xcode 9 or higher so that it is possible to run Safari on the iOS simulator again. It also
695         does some minor code refactoring to improve code reuse.
696
697         * Scripts/configure-xcode-for-ios-development: Move sdkDirectory() and sdkPlatformDirectory()
698         into webkitdirs.
699         (sdkDirectory): Deleted.
700         (sdkPlatformDirectory): Deleted.
701         * Scripts/webkitdirs.pm: Expose new sdkDirectory() and sdkPlatformDirectory().
702         (sdkDirectory): Moved from configure-xcode-for-ios-development.
703         (sdkPlatformDirectory): Ditto.
704         (XcodeSDKPath): Rely on sdkDirectory() to implement this function.
705         (iosSimulatorApplicationsPath): In Xcode 9 or higher use the new path. It is calculated
706         by relying on sdkPlatformDirectory().
707
708 2017-10-11  Dewei Zhu  <dewei_zhu@apple.com>
709
710         run-benchmark script should set '__XPC_DYLD_FRAMEWORK_PATH' while launching local-built Safari on Mac.
711         https://bugs.webkit.org/show_bug.cgi?id=178199
712
713         Reviewed by Saam Barati.
714
715         '__XPC_DYLD_FRAMEWORK_PATH' should be set while launching Safari on run-benchmark script.
716         'force_remove' function should support both file and directory.
717
718         * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
719         (OSXSafariDriver.launch_url):
720         * Scripts/webkitpy/benchmark_runner/utils.py:
721         (force_remove):
722
723 2017-10-11  Saam Barati  <sbarati@apple.com>
724
725         Runtime disable poly proto because it may be a 3-4% Speedometer regression
726         https://bugs.webkit.org/show_bug.cgi?id=178192
727
728         Reviewed by JF Bastien.
729
730         * Scripts/run-jsc-stress-tests:
731
732 2017-10-11  Youenn Fablet  <youenn@apple.com>
733
734         Add API to clean CacheStorage data
735         https://bugs.webkit.org/show_bug.cgi?id=178034
736
737         Reviewed by Chris Dumez.
738
739         Adding internals API to trigger deleting all or origin-persistent cache storage persistent data. 
740
741         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
742         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
743         (WTR::TestRunner::clearDOMCache):
744         * WebKitTestRunner/InjectedBundle/TestRunner.h:
745         * WebKitTestRunner/TestController.cpp:
746         (WTR::TestController::clearDOMCache):
747         * WebKitTestRunner/TestController.h:
748         * WebKitTestRunner/TestInvocation.cpp:
749         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
750
751 2017-10-11  Chris Dumez  <cdumez@apple.com>
752
753         [Geolocation] Expose Coordinates.floorLevel
754         https://bugs.webkit.org/show_bug.cgi?id=178173
755         <rdar://problem/34918936>
756
757         Reviewed by Ryosuke Niwa.
758
759         Add test infrastructure for testing Coordinates.floorLevel.
760
761         * DumpRenderTree/TestRunner.cpp:
762         (setMockGeolocationPositionCallback):
763         * DumpRenderTree/TestRunner.h:
764         * DumpRenderTree/mac/TestRunnerMac.mm:
765         (TestRunner::setMockGeolocationPosition):
766         * DumpRenderTree/win/TestRunnerWin.cpp:
767         (TestRunner::setMockGeolocationPosition):
768         * WebKitTestRunner/GeolocationProviderMock.cpp:
769         (WTR::GeolocationProviderMock::setPosition):
770         * WebKitTestRunner/GeolocationProviderMock.h:
771         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
772         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
773         (WTR::InjectedBundle::setMockGeolocationPosition):
774         * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
775         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
776         (WTR::TestRunner::setMockGeolocationPosition):
777         * WebKitTestRunner/InjectedBundle/TestRunner.h:
778         * WebKitTestRunner/TestController.cpp:
779         (WTR::TestController::setMockGeolocationPosition):
780         * WebKitTestRunner/TestController.h:
781         * WebKitTestRunner/TestInvocation.cpp:
782         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
783
784 2017-10-11  Youenn Fablet  <youenn@apple.com>
785
786         Bump default cache storage quota to 20MB
787         https://bugs.webkit.org/show_bug.cgi?id=178132
788
789         Reviewed by Alex Christensen.
790
791         * WebKitTestRunner/TestController.cpp:
792         (WTR::TestController::generateContextConfiguration const):
793         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
794         (WTR::initializeWebViewConfiguration): Setting quota to 400kb
795
796 2017-10-11  Commit Queue  <commit-queue@webkit.org>
797
798         Unreviewed, rolling out r223113 and r223121.
799         https://bugs.webkit.org/show_bug.cgi?id=178182
800
801         Reintroduced 20% regression on Kraken (Requested by rniwa on
802         #webkit).
803
804         Reverted changesets:
805
806         "Enable gigacage on iOS"
807         https://bugs.webkit.org/show_bug.cgi?id=177586
808         https://trac.webkit.org/changeset/223113
809
810         "Use one virtual allocation for all gigacages and their
811         runways"
812         https://bugs.webkit.org/show_bug.cgi?id=178050
813         https://trac.webkit.org/changeset/223121
814
815 2017-10-11  Ryosuke Niwa  <rniwa@webkit.org>
816
817         Sanitize URL in pasteboard for other applications and cross origin content
818         https://bugs.webkit.org/show_bug.cgi?id=178060
819         <rdar://problem/34874518>
820
821         Reviewed by Wenson Hsieh.
822
823         Added API tests for sanitizing URLs copied from web content, and that the original URL is exposed to the web content.
824
825         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
826         * TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm: Added.
827         (readURLFromPasteboard): A helper function.
828         * TestWebKitAPI/Tests/WebKitCocoa/copy-url.html: Added.
829         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
830         (DataInteractionTests.DataTransferGetDataWhenDroppingCustomData): Rebaselined. https://www.apple.com is no longer
831         normalized to https://www.apple.com/ by NSURL / UIPasteboard as expected.
832         (DataInteractionTests.DataTransferSetDataValidURL): Added.
833         (DataInteractionTests.DataTransferSetDataUnescapedURL): Added.
834         (DataInteractionTests.qDataTransferSetDataInvalidURL): Added.
835
836 2017-10-11  Chris Dumez  <cdumez@apple.com>
837
838         Modernize Geolocation code
839         https://bugs.webkit.org/show_bug.cgi?id=178148
840
841         Reviewed by Ryosuke Niwa.
842
843         * DumpRenderTree/mac/TestRunnerMac.mm:
844         (TestRunner::setMockGeolocationPosition):
845
846 2017-10-11  Nael Ouedraogo  <nael.ouedraogo@crf.canon.fr>
847
848         [GStreamer] Many media source tests crashing with GStreamer-CRITICAL **: _gst_util_uint64_scale: assertion 'denom != 0' failed in gst_qtdemux_configure_stream()
849         https://bugs.webkit.org/show_bug.cgi?id=176804
850
851         Reviewed by Michael Catanzaro.
852
853         Add patch to fix assert in qtdemux.
854
855         * gstreamer/jhbuild.modules:
856         * gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch: Added.
857
858 2017-10-11  Tomas Popela  <tpopela@redhat.com>
859
860         Use https for trac changeset and browser links
861         https://bugs.webkit.org/show_bug.cgi?id=178167
862
863         Reviewed by Alexey Proskuryakov.
864
865         Switch the http://trac.webkit.org/changeset and
866         http://trac.webkit.org/browser links that are printed by webkitpy to
867         https. Also update the test expectations.
868
869         * Scripts/webkitpy/common/checkout/checkout_unittest.py:
870         * Scripts/webkitpy/common/config/committervalidator_unittest.py:
871         (CommitterValidatorTest.test_flag_permission_rejection_message):
872         * Scripts/webkitpy/common/config/urls.py:
873         (view_source_url):
874         (view_revision_url):
875         * Scripts/webkitpy/common/net/bugzilla/bug_unittest.py:
876         (BugTest.test_commit_revision):
877         * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:
878         * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
879         * Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:
880         (MainTest):
881         (MainTest.test_run_with_upload_json_should_generate_perf_webkit_json):
882         * Scripts/webkitpy/style/checkers/changelog_unittest.py:
883         (ChangeLogCheckerTest.test_missing_bug_number):
884         * Scripts/webkitpy/tool/bot/feeders_unittest.py:
885         * Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
886         * Scripts/webkitpy/tool/bot/ircbot_unittest.py:
887         (IRCBotTest.test_rollout):
888         (IRCBotTest.test_revert):
889         (IRCBotTest.test_multi_rollout):
890         (IRCBotTest.test_rollout_with_r_in_svn_revision):
891         (IRCBotTest.test_multi_rollout_with_r_in_svn_revision):
892         (IRCBotTest.test_rollout_invalidate_reason):
893         (test_multi_rollout_invalidate_reason):
894         * Scripts/webkitpy/tool/bot/sheriff_unittest.py:
895         * Scripts/webkitpy/tool/commands/download_unittest.py:
896         * Scripts/webkitpy/tool/commands/newcommitbot_unittest.py:
897         * Scripts/webkitpy/tool/commands/queues_unittest.py:
898         * Scripts/webkitpy/tool/commands/suggestnominations.py:
899         (SuggestNominations._count_commit):
900         * Scripts/webkitpy/tool/commands/upload_unittest.py:
901         * Scripts/webkitpy/tool/servers/data/rebaselineserver/util.js:
902         (getTracUrl):
903         (getSortedKeys):
904         * Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:
905         (CloseBugForLandDiffTest.test_empty_state):
906         * Scripts/webkitpy/tool/steps/commit_unittest.py:
907         (CommitTest._test_check_test_expectations):
908         * Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
909         (UpdateChangeLogsForRevertTest):
910
911 2017-10-10  Ryosuke Niwa  <rniwa@webkit.org>
912
913         Enable custom pasteboard data in DumpRenderTree and WebKitTestRunner
914         https://bugs.webkit.org/show_bug.cgi?id=178154
915
916         Reviewed by Wenson Hsieh.
917
918         Fixed the bug that LocalPasteboard would fail to load the promise type if data is set after declaring types
919         by delaying the call to provideDataForType until when dataForType is called.
920
921         Without this fix, fast/events/dropzone-002.html would start failing after enabling custom pasteboard data.
922         With this fix, fast/events/dropzone-005.html also starts passing.
923
924         * DumpRenderTree/mac/DumpRenderTree.mm:
925         (resetWebPreferencesToConsistentValues):
926         * DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
927         (-[LocalPasteboard addTypes:owner:]):
928         (-[LocalPasteboard dataForType:]):
929         * WebKitTestRunner/TestController.cpp:
930         (WTR::TestController::resetPreferencesToConsistentValues):
931
932 2017-10-10  Joanmarie Diggs  <jdiggs@igalia.com>
933
934         AX: [ATK] ARIA form role should be mapped to ATK_ROLE_LANDMARK; not ATK_ROLE_FORM
935         https://bugs.webkit.org/show_bug.cgi?id=178137
936
937         Reviewed by Chris Fleizach.
938
939         Add handling for ATK_ROLE_LANDMARK resulting from the ARIA form role.
940
941         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
942
943 2017-10-10  Jonathan Bedard  <jbedard@apple.com>
944
945         run-webkit-tests: upload test results to multiple servers
946         https://bugs.webkit.org/show_bug.cgi?id=178012
947         <rdar://problem/34856501>
948
949         Reviewed by Lucas Forschler.
950
951         Allowing uploading of results to multiple servers makes developing new results
952         databases much easier, and does not complicate uploading logic.
953
954         * Scripts/webkitpy/layout_tests/controllers/manager.py:
955         (Manager.upload_results): Iterate through the list of results server hosts and
956         send results to each one.
957         * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
958         (JSONLayoutResultsGenerator.__init__): Accept a list of test results servers.
959         * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
960         (JSONResultsGenerator.__init__): Accept a list of test results servers.
961         (JSONResultsGenerator.get_json): Pick which server to download from by index.
962         (JSONResultsGenerator.upload_json_files): Upload the JSON to each results server.
963         (JSONResultsGenerator._get_archived_json_results): Pick which server to download from.
964         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
965         (parse_args): Allow multiple test-results-servers and results-server-hosts to be
966         passed to run-webkit-tests. 
967
968 2017-10-09  Youenn Fablet  <youenn@apple.com>
969
970         Vector should be able to easily create from a list of movable only items
971         https://bugs.webkit.org/show_bug.cgi?id=176432
972
973         Reviewed by Darin Adler.
974
975         * TestWebKitAPI/Tests/WTF/Vector.cpp:
976         (TestWebKitAPI::TEST):
977
978 2017-09-29  Filip Pizlo  <fpizlo@apple.com>
979
980         Enable gigacage on iOS
981         https://bugs.webkit.org/show_bug.cgi?id=177586
982
983         Reviewed by JF Bastien.
984         
985         Add a mode to test disabling Gigacage.
986
987         * Scripts/run-jsc-stress-tests:
988         * Scripts/webkitruby/jsc-stress-test-writer-default.rb:
989
990 2017-10-09  Commit Queue  <commit-queue@webkit.org>
991
992         Unreviewed, rolling out r223015 and r223025.
993         https://bugs.webkit.org/show_bug.cgi?id=178093
994
995         Regressed Kraken on iOS by 20% (Requested by keith_mi_ on
996         #webkit).
997
998         Reverted changesets:
999
1000         "Enable gigacage on iOS"
1001         https://bugs.webkit.org/show_bug.cgi?id=177586
1002         http://trac.webkit.org/changeset/223015
1003
1004         "Unreviewed, disable Gigacage on ARM64 Linux"
1005         https://bugs.webkit.org/show_bug.cgi?id=177586
1006         http://trac.webkit.org/changeset/223025
1007
1008 2017-10-09  Sam Weinig  <sam@webkit.org>
1009
1010         Make HashMap::keys() and HashMap::values() work with WTF::map/WTF::copyToVector
1011         https://bugs.webkit.org/show_bug.cgi?id=178072
1012
1013         Reviewed by Darin Adler.
1014
1015         * TestWebKitAPI/Tests/WTF/Vector.cpp:
1016         (TestWebKitAPI::TEST):
1017         
1018             Add tests for HashMap::keys() and HashMap::values() working with copyToVector.
1019
1020 2017-10-05  Frederic Wang  <fwang@igalia.com>
1021
1022         Remove WOFF2 from Source/ThirdParty.
1023         https://bugs.webkit.org/show_bug.cgi?id=177862
1024
1025         Reviewed by Michael Catanzaro.
1026
1027         * Scripts/webkitpy/style/checker.py: Remove woff2.
1028         * gtk/jhbuild.modules: Add new jhbuild module for woff2.
1029
1030 2017-10-08  Sam Weinig  <sam@webkit.org>
1031
1032         It should be possible to create a ListHashSet with a std::initializer_list.
1033         https://bugs.webkit.org/show_bug.cgi?id=178070
1034
1035         Reviewed by Darin Adler.
1036
1037         * TestWebKitAPI/Tests/WTF/ListHashSet.cpp:
1038         (TestWebKitAPI::TEST):
1039         Add a test for using std::initializer_list with ListHashSet.
1040
1041 2017-10-08  Sam Weinig  <sam@webkit.org>
1042
1043         There should be a version of copyToVector that returns a Vector, rather than using an out parameter
1044         https://bugs.webkit.org/show_bug.cgi?id=177732
1045
1046         Reviewed by Saam Barati.
1047
1048         * TestWebKitAPI/Tests/WTF/Vector.cpp:
1049         (TestWebKitAPI::TEST):
1050         Add tests for the new copyToVector and copyToVectorOf functions.
1051
1052 2017-10-08  Darin Adler  <darin@apple.com>
1053
1054         Fix bugs related to setting reflected floating point DOM attributes
1055         https://bugs.webkit.org/show_bug.cgi?id=178061
1056
1057         Reviewed by Sam Weinig.
1058
1059         * TestWebKitAPI/Tests/WTF/AtomicString.cpp: Added a test of the
1060         AtomicString::number function, based on the test cases we already
1061         had for String::numberToStringECMAScript, and with some additional
1062         cases with powers of 10 that check handling of trailng zeroes.
1063
1064         * TestWebKitAPI/Tests/WTF/WTFString.cpp: Added test cases to the
1065         existing tests of the String::numberToStringECMAScript function
1066         as above. Also added tests for String::number and for
1067         String::numberToStringFixedWidth. Also changed the tests to all use
1068         EXPECT instead of ASSERT macros since these are all non-fatal.
1069
1070         * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
1071         (WTR::dumpFrameScrollPosition): Use StringBuilder::appendECMAScriptNumber
1072         instead of String::number.
1073
1074 2017-10-08  Dean Jackson  <dino@apple.com>
1075
1076         Make sort-Xcode-project file handle UnifiedSources
1077         https://bugs.webkit.org/show_bug.cgi?id=178042
1078
1079         Reviewed by Sam Weinig.
1080
1081         Sort the UnifiedSource(\d+) files by number rather
1082         than alphabetically.
1083
1084         * Scripts/sort-Xcode-project-file:
1085         (sortChildrenByFileName):
1086         (sortFilesByFileName):
1087
1088 2017-09-29  Filip Pizlo  <fpizlo@apple.com>
1089
1090         Enable gigacage on iOS
1091         https://bugs.webkit.org/show_bug.cgi?id=177586
1092
1093         Reviewed by JF Bastien.
1094         
1095         Add a mode to test disabling Gigacage.
1096
1097         * Scripts/run-jsc-stress-tests:
1098         * Scripts/webkitruby/jsc-stress-test-writer-default.rb:
1099
1100 2017-10-06  Aishwarya Nirmal  <anirmal@apple.com>
1101
1102         [iOS] Respect the "caret-color" CSS property when editing
1103         https://bugs.webkit.org/show_bug.cgi?id=177489
1104         <rdar://problem/34600419>
1105
1106         Reviewed by Tim Horton.
1107
1108         Adds test for iOS caret color support.
1109
1110         * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:
1111         (TestWebKitAPI::TEST):
1112         * TestWebKitAPI/ios/UIKitSPI.h:
1113
1114 2017-10-06  Alex Christensen  <achristensen@webkit.org>
1115
1116         Add more infrastructure to apply custom header fields to same-origin requests
1117         https://bugs.webkit.org/show_bug.cgi?id=177629
1118
1119         Reviewed by Ryosuke Niwa.
1120
1121         * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp:
1122         (canonicalizeHTTPHeader):
1123         (shouldRemainUnchanged):
1124         (shouldBeInvalid):
1125         (shouldBecome):
1126         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
1127         (TEST):
1128         (expectHeaders):
1129         (-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
1130         (-[CustomHeaderFieldsDelegate webView:startURLSchemeTask:]):
1131         (-[CustomHeaderFieldsDelegate webView:stopURLSchemeTask:]):
1132
1133         Test main resource requests, subresource requests, and cross-origin requests.
1134
1135 2017-10-06  Wenson Hsieh  <wenson_hsieh@apple.com>
1136
1137         [iOS] Tweak support for classifying form controls (followup to r222487)
1138         https://bugs.webkit.org/show_bug.cgi?id=177917
1139         <rdar://problem/34820122>
1140
1141         Reviewed by Dean Jackson.
1142
1143         Minor cleanup around autofill API tests added in r222487. Additionally, augments some of these API tests to
1144         verify that after blurring the focused element, the content view no longer accepts autofill credentials (see
1145         WebKit ChangeLog for more details). Also augments tests to verify that the URL in the autofill context matches
1146         the document URL.
1147
1148         * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:
1149
1150         Remove the USE(APPLE_INTERNAL_SDK) guard for these API tests.
1151
1152         (newUIKeyboardLoginCredentialsSuggestion):
1153
1154         Add a stub implementation of UIKeyboardLoginCredentialsSuggestion. This allows
1155         [UIKeyboardLoginCredentialsSuggestion new] to return a nonnull object, which allows these API tests to verify
1156         that the credential filling codepath works as intended without any additional UIKit changes. Currently, tests
1157         for the value of username and password fields are passing even though the fields are not being populated because
1158         the expected string values are null, and the observed value is an empty string. We instead check the literal
1159         string values here instead of credentialSuggestion's properties, so that tests verifying the behavior of
1160         -insertTextSuggestion: will require username and password inputs to be populated.
1161
1162         (-[TestInputDelegate _webView:focusShouldStartInputSession:]):
1163         (-[AutofillTestView initWithFrame:]):
1164         (-[AutofillTestView _autofillInputView]):
1165         (-[AutofillTestView textInputHasAutofillContext]):
1166         (TestWebKitAPI::TEST):
1167
1168         Add an additional API test to verify that programmatic focus without user interaction (and also without testing
1169         overrides) does not activate autofill.
1170
1171         (createUIKeyboardLoginCredentialsSuggestion): Deleted.
1172         (-[WKWebView _privateTextInput]): Deleted.
1173         * TestWebKitAPI/ios/UIKitSPI.h:
1174
1175         Minor gardening to remove iOS version >= 11 guards that are now unnecessary. Additionally, add some more private
1176         header imports (with corresponding interface definitions for building and running with the public SDK).
1177
1178 2017-10-06  Antti Koivisto  <antti@apple.com>
1179
1180         Minor WeakPtr improvements
1181         https://bugs.webkit.org/show_bug.cgi?id=177958
1182
1183         Reviewed by Sam Weinig.
1184
1185         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
1186         (TestWebKitAPI::TEST):
1187         (TestWebKitAPI::Base::createWeakPtr): Deleted.
1188
1189 2017-10-06  Carlos Garcia Campos  <cgarcia@igalia.com>
1190
1191         Unreviewed. Fix parsing of GTK unit tests output in bot configuration.
1192
1193         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
1194         (RunGtkAPITests.commandComplete): Remove trailing ':' from the regular expression.
1195
1196 2017-10-06  Charles Turner  <cturner@igalia.com>
1197
1198         Disable bmalloc when running Valgrind
1199         https://bugs.webkit.org/show_bug.cgi?id=177923
1200
1201         Reviewed by Carlos Alberto Lopez Perez.
1202
1203         * Scripts/webkitpy/port/gtk.py:
1204         (GtkPort.setup_environ_for_server):
1205
1206 2017-10-06  Zan Dobersek  <zdobersek@igalia.com>
1207
1208         Implement TestController::platformContext() for WPE, returning the
1209         m_context pointer as the GTK+ port does. This fixes the crashes on
1210         the WPE testers.
1211
1212         Rubber-stamped by Carlos Garcia Campos.
1213
1214         * WebKitTestRunner/wpe/TestControllerWPE.cpp:
1215         (WTR::TestController::platformContext):
1216
1217 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
1218
1219         [GTK][WPE] Add API to configure and enable resource load statistics
1220         https://bugs.webkit.org/show_bug.cgi?id=177943
1221
1222         Reviewed by Michael Catanzaro.
1223
1224         Add a command line option to enable intelligent tracking prevention to MiniBrowser and tests cases to check the
1225         new API.
1226
1227         * MiniBrowser/gtk/main.c:
1228         (main):
1229         * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:
1230         (serverCallback):
1231         (testWebsiteDataConfiguration):
1232         (testWebsiteDataEphemeral):
1233         (testWebsiteDataResourceLoadStats):
1234         (beforeAll):
1235         * TestWebKitAPI/glib/WebKitGLib/TestMain.h:
1236         (Test::Test):
1237         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
1238         (directoryChangedCallback):
1239         (WebViewTest::waitUntilFileExists):
1240         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
1241
1242 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
1243
1244         [GTK][WPE] All resource load statistics tests added in r212183 crash in GTK bots, timeout in GTK and WPE bots since r219049
1245         https://bugs.webkit.org/show_bug.cgi?id=168171
1246
1247         Reviewed by Chris Dumez.
1248
1249         Implement all resource load statistics functions in TestController using the C API. Also enable the FileMonitor
1250         unit test. This test requires a platform implementation of Util::run(), so I've added UtilitiesGLib.cpp with an
1251         iplementation common to glib based ports using WTF RunLoop abstraction.
1252
1253         * TestWebKitAPI/PlatformGTK.cmake:
1254         * TestWebKitAPI/PlatformWPE.cmake:
1255         * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
1256         * TestWebKitAPI/glib/UtilitiesGLib.cpp: Copied from Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h.
1257         (TestWebKitAPI::Util::run):
1258         (TestWebKitAPI::Util::spinRunLoop):
1259         (TestWebKitAPI::Util::sleep):
1260         * TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:
1261         * TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp:
1262         * WebKitTestRunner/TestController.cpp:
1263         (WTR::TestController::platformAdjustContext):
1264         (WTR::TestController::setStatisticsLastSeen):
1265         (WTR::TestController::setStatisticsPrevalentResource):
1266         (WTR::ResourceStatisticsCallbackContext::ResourceStatisticsCallbackContext):
1267         (WTR::resourceStatisticsCallback):
1268         (WTR::TestController::isStatisticsPrevalentResource):
1269         (WTR::TestController::setStatisticsHasHadUserInteraction):
1270         (WTR::TestController::isStatisticsHasHadUserInteraction):
1271         (WTR::TestController::setStatisticsGrandfathered):
1272         (WTR::TestController::isStatisticsGrandfathered):
1273         (WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
1274         (WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
1275         (WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):
1276         (WTR::TestController::setStatisticsTimeToLiveUserInteraction):
1277         (WTR::TestController::setStatisticsTimeToLiveCookiePartitionFree):
1278         (WTR::TestController::statisticsProcessStatisticsAndDataRecords):
1279         (WTR::TestController::statisticsUpdateCookiePartitioning):
1280         (WTR::TestController::statisticsSetShouldPartitionCookiesForHost):
1281         (WTR::TestController::statisticsSubmitTelemetry):
1282         (WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
1283         (WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
1284         (WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
1285         (WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval):
1286         (WTR::TestController::setStatisticsGrandfatheringTime):
1287         (WTR::TestController::setStatisticsMaxStatisticsEntries):
1288         (WTR::TestController::setStatisticsPruneEntriesDownTo):
1289         (WTR::TestController::statisticsClearInMemoryAndPersistentStore):
1290         (WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
1291         (WTR::TestController::statisticsClearThroughWebsiteDataRemovalCallback):
1292         (WTR::TestController::statisticsClearThroughWebsiteDataRemoval):
1293         (WTR::TestController::statisticsResetToConsistentState):
1294         * WebKitTestRunner/TestController.h:
1295
1296 2017-10-05  Jer Noble  <jer.noble@apple.com>
1297
1298         [Cocoa] Enable ENABLE_ENCRYPTED_MEDIA build-time setting
1299         https://bugs.webkit.org/show_bug.cgi?id=177261
1300
1301         Reviewed by Eric Carlson.
1302
1303         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
1304
1305 2017-10-05  Alex Christensen  <achristensen@webkit.org>
1306
1307         Add ObjC equivalent of WKPageNavigationClient.didChangeBackForwardList
1308         https://bugs.webkit.org/show_bug.cgi?id=177966
1309         <rdar://problem/22387135>
1310
1311         Reviewed by Tim Horton.
1312
1313         * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
1314         (-[ListItemDelegate _webView:backForwardListItemAdded:removed:]):
1315         (-[ListItemDelegate webView:didFinishNavigation:]):
1316         (TEST):
1317
1318 2017-10-04  Megan Gardner  <megan_gardner@apple.com>
1319
1320         check-webkit-style erroneously requires a space between the carrot and brace in obj-c blocks.
1321         https://bugs.webkit.org/show_bug.cgi?id=177897
1322
1323         Reviewed by Dan Bernstein and Jonathan Bedard.
1324
1325         Remove the check for a space between ^ and {, 
1326         as this is valid and expected Obj-C. Now check to make sure there is
1327         no space at all between ^ and {, and also that there is a space between
1328         the end of an argument list and the {.
1329
1330         * Scripts/webkitpy/style/checkers/cpp.py:
1331         (regex_for_lambdas_and_blocks):
1332
1333 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
1334
1335         Unreviewed. Run WebKit2 C API tests in GTK+ bots again after the last WebKit2 -> WebKit rename.
1336
1337         * Scripts/run-gtk-tests:
1338         (TestRunner):
1339         (TestRunner._run_test):
1340
1341 2017-10-05  Darin Adler  <darin@apple.com>
1342
1343         Remove additional WebKitSystemInterface remnants
1344         https://bugs.webkit.org/show_bug.cgi?id=177948
1345
1346         Reviewed by Andy Estes.
1347
1348         * DumpRenderTree/PlatformMac.cmake: Removed code to link the
1349         WebKitSystemInterface library. Left in code that points to
1350         the WebKitLibraries directory, but maybe that can be removed by
1351         someone who is more certain it's no longer needed.
1352
1353         * Scripts/copy-webkitlibraries-to-product-directory: Removed code
1354         to copy and delete WebKitSystemInterface libraries and headers.
1355
1356         * WebKitTestRunner/PlatformMac.cmake: Removed code to link the
1357         WebKitSystemInterface library. Left in code that points to
1358         the WebKitLibraries directory, but maybe that can be removed by
1359         someone who is more certain it's no longer needed.
1360
1361 2017-10-05  Saam Barati  <sbarati@apple.com>
1362
1363         Unreviewed. Try to make debug type profiler tests stop timing out.
1364
1365         * Scripts/run-jsc-stress-tests:
1366
1367 2017-10-03  Frederic Wang  <fwang@igalia.com>
1368
1369         Remove Brotli from Source/ThirdParty
1370         https://bugs.webkit.org/show_bug.cgi?id=177804
1371
1372         Reviewed by Michael Catanzaro.
1373
1374         * gtk/jhbuild.modules: Build brotli 1.0.1 from the official github repository.
1375         * Scripts/webkitpy/style/checker.py: Remove brotli.
1376
1377 2017-10-04  Alex Christensen  <achristensen@webkit.org>
1378
1379         Stop linking with WebKitSystemInterface
1380         https://bugs.webkit.org/show_bug.cgi?id=177915
1381
1382         Reviewed by Antti Koivisto.
1383
1384         * DumpRenderTree/mac/Configurations/Base.xcconfig:
1385         * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
1386         * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
1387         * DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
1388         * WebKitTestRunner/Configurations/Base.xcconfig:
1389         * WebKitTestRunner/Configurations/DebugRelease.xcconfig:
1390         * WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
1391         * WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
1392         * WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
1393
1394 2017-10-04  Alex Christensen  <achristensen@webkit.org>
1395
1396         Remove unnecessary includes of WebKitSystemInterface on Cocoa platforms
1397         https://bugs.webkit.org/show_bug.cgi?id=177912
1398
1399         Reviewed by Saam Barati.
1400
1401         * DumpRenderTree/mac/DumpRenderTree.mm:
1402
1403 2017-10-04  Megan Gardner  <megan_gardner@apple.com>
1404
1405         Break out new touch debugging code into seperate file
1406         https://bugs.webkit.org/show_bug.cgi?id=177796
1407
1408         Reviewed by Simon Fraser.
1409
1410         Encapsulate the new debug touch code into it's own file.
1411         This allows for cleaner code and a better way to show the touches
1412         in a completely separate window, which should also be in screen
1413         coordinates, and not subject to any transforms that get put on the
1414         WebViews.
1415
1416         * TestRunnerShared/spi/UIKitTestSPI.h:
1417         * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
1418         * WebKitTestRunner/ios/HIDDebugTouchWindow.h: Added.
1419         * WebKitTestRunner/ios/HIDDebugTouchWindow.mm: Added.
1420         (+[HIDDebugTouchWindow sharedHIDDebugTouchWindow]):
1421         (-[HIDDebugTouchWindow init]):
1422         (-[HIDDebugTouchWindow dealloc]):
1423         (-[HIDDebugTouchWindow updateDebugIndicatorForTouch:withPointInWindowCoordinates:isTouching:]):
1424         (-[HIDDebugTouchWindow initDebugViewsIfNeeded]):
1425         * WebKitTestRunner/ios/HIDEventGenerator.h:
1426         * WebKitTestRunner/ios/HIDEventGenerator.mm:
1427         (-[HIDEventGenerator init]):
1428         (-[HIDEventGenerator _createIOHIDEventWithInfo:]):
1429         (-[HIDEventGenerator _createIOHIDEventType:]):
1430         (-[HIDEventGenerator _updateTouchPoints:count:]):
1431         (-[HIDEventGenerator touchDownAtPoints:touchCount:]):
1432         (-[HIDEventGenerator touchDown:touchCount:]):
1433         (-[HIDEventGenerator liftUpAtPoints:touchCount:]):
1434         (-[HIDEventGenerator liftUp:touchCount:]):
1435         (-[HIDEventGenerator moveToPoints:touchCount:duration:]):
1436         (-[HIDEventGenerator initDebugViewsIfNeeded]): Deleted.
1437         (-[HIDEventGenerator updateDebugIndicatorForTouch:withPoint:isTouching:]): Deleted.
1438         * WebKitTestRunner/ios/TestControllerIOS.mm:
1439         (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
1440
1441 2017-10-04  JF Bastien  <jfbastien@apple.com>
1442
1443         WTF: Update std::expected to match current proposal
1444         https://bugs.webkit.org/show_bug.cgi?id=177881
1445
1446         Reviewed by Mark Lam.
1447
1448         The proposal is likely to be in C++20 and I've been asked to help co-champion
1449         it. I'm therefore updating our implementation to more closely match the current
1450         proposal, and to make sure it'll work for us if standardized.
1451
1452          - Rename UnexpectedType to Unexpected to match the proposal.
1453          - Remove relational operators, only equality / inequality remains.
1454          - Fix minor type signatures.
1455          - Add UnexpectedType typedef.
1456          - Uncomment rebind implementation.
1457          - Add in-place construction tag, as well as explicit error construction tag.
1458          - Add template unexpected constructor.
1459          - Note that make_unexpected isn't in the proposal anymore, but we keep it because we don't have C++17 deduction guides.
1460          - Remove hashing, which isn't in the proposal anymore.
1461
1462         * TestWebKitAPI/Tests/WTF/Expected.cpp:
1463         (WTF::operator<<):
1464         (TestWebKitAPI::TEST):
1465
1466 2017-10-04  Lucas Forschler  <lforschler@apple.com>
1467
1468         https://bugs.webkit.org/show_bug.cgi?id=177888
1469         WebKitArchiveSupport - add API Gateway to source control
1470         This is a swagger configuration export via AWS API Gateway console.
1471
1472         Rubber-stamped by Alexey Proskuryakov.
1473
1474         * WebKitArchiveSupport/AWS-APIGateway: Added.
1475         * WebKitArchiveSupport/AWS-APIGateway/stage-v2.json: Added.
1476
1477 2017-10-04  Mark Lam  <mark.lam@apple.com>
1478
1479         Add support for using Probe DFG OSR Exit behind a runtime flag.
1480         https://bugs.webkit.org/show_bug.cgi?id=177844
1481         <rdar://problem/34801425>
1482
1483         Reviewed by Saam Barati.
1484
1485         Enable --useProbeOSrExit=true for dfg-eager and ftl-no-cjit-validate-sampling-profiler
1486         test configurations.
1487
1488         * Scripts/run-jsc-stress-tests:
1489
1490 2017-10-04  Jonathan Bedard  <jbedard@apple.com>
1491
1492         webkitpy.tool.steps.steps_unittest.StepsTest.test_runtests_api is flakey
1493         https://bugs.webkit.org/show_bug.cgi?id=177751
1494         <rdar://problem/34769470>
1495
1496         Reviewed by Daniel Bates.
1497
1498         Port._build_path() calls Tools/Scripts/webkit-build-directory and caches this
1499         result. When capturing output from the MockExecutive, the first invocation of
1500         Port._build_path() will log the running of Tools/Scripts/webkit-build-directory
1501         but subsequent invocations will not.
1502
1503         * Scripts/webkitpy/tool/steps/steps_unittest.py:
1504         (StepsTest):
1505         (StepsTest.setUp): Cache the build path before running tests.
1506
1507 2017-10-04  Carlos Alberto Lopez Perez  <clopez@igalia.com>
1508
1509         [JHBuild][GTK][WKE] Circular dependency between harfbuzz and freetype6
1510         https://bugs.webkit.org/show_bug.cgi?id=177865
1511
1512         Reviewed by Michael Catanzaro.
1513
1514         Build freetype6 without harfbuzz support.
1515         This seems to be what distros like Fedora, Debian or OpenEmbedded do.
1516         Also explicitly enable support for freetype and fontconfig on harfbuzz.
1517
1518         * gtk/jhbuild.modules: Enable also support for icu.
1519         * wpe/jhbuild.modules:
1520
1521 2017-10-04  Yusuke Suzuki  <utatane.tea@gmail.com>
1522
1523         [Test262] Update Test262 to Oct 4 version
1524         https://bugs.webkit.org/show_bug.cgi?id=177859
1525
1526         Reviewed by Sam Weinig.
1527
1528         * Scripts/import-test262-tests:
1529
1530 2017-10-04  Ryosuke Niwa  <rniwa@webkit.org>
1531
1532         Use blob URL when pasting RTFD instead of overriding DocumentLoader
1533         https://bugs.webkit.org/show_bug.cgi?id=177801
1534         <rdar://problem/34542270>
1535
1536         Reviewed by Wenson Hsieh.
1537
1538         Added a regression test for an assertion failure when pasting an empty RTFD as well as a test for pasting
1539         RTFD with an image, which should result in an image element with a blob URL.
1540
1541         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1542         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
1543         * TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:
1544         * TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html:
1545
1546 2017-10-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1547
1548         [GLib] Let WebCore know of low power situations
1549         https://bugs.webkit.org/show_bug.cgi?id=177810
1550
1551         Reviewed by Carlos Garcia Campos.
1552
1553         * gtk/install-dependencies: add upower-glib dev packages for Debian, Arch and Fedora.
1554
1555 2017-10-03  Saam Barati  <sbarati@apple.com>
1556
1557         Implement polymorphic prototypes
1558         https://bugs.webkit.org/show_bug.cgi?id=176391
1559
1560         Reviewed by Filip Pizlo.
1561
1562         * Scripts/run-jsc-stress-tests:
1563
1564 2017-10-03  Myles C. Maxfield  <mmaxfield@apple.com> 
1565
1566         Create a SPIR-V assembler 
1567         https://bugs.webkit.org/show_bug.cgi?id=177726 
1568
1569         Reviewed by Filip Pizlo. 
1570
1571         Khronos has released a json file containing every SPIR-V opcode and operand at 
1572         https://github.com/KhronosGroup/SPIRV-Headers/blob/master/include/spirv/1.2/spirv.core.grammar.json 
1573         This patch creates a function which loads this file (via the fetch API), parses it, and creates
1574         an object which holds two things: 
1575         - For each opcode, a class which accepts the appropriate operands 
1576         - For each enum type, an object which holds each enum value 
1577         The constructor for each opcode is smart enough to do some basic type-checking of the argument, 
1578         according to the types listed in Khronos's json file. 
1579
1580         This patch also includes an example .html file which outputs a dummy SPIR-V program, 
1581         which happens to be compatible with the SPIR-V demo at 
1582         https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.cpp 
1583         If you modify this demo to use the generated SPIR-V program, you can see the result in 
1584         action.
1585
1586         This patch also commits a copy of Khronos's json file mentioned above. This isn't the first 
1587         Khronos file we've committed into our repository with this license, so there shouldn't be any 
1588         problems there. 
1589
1590         * WebGPUShadingLanguageRI/SPIR-V.js: Added. 
1591         (SPIRV.): 
1592         (SPIRVAssembler): 
1593         (SPIRVAssembler.prototype.append): 
1594         (SPIRVAssembler.prototype.get size): 
1595         (SPIRVAssembler.prototype.get storage): 
1596         (SPIRVAssembler.prototype.get result): 
1597         * WebGPUShadingLanguageRI/SPIRV.html: Added. 
1598         * WebGPUShadingLanguageRI/spirv.core.grammar.json: Added. 
1599
1600 2017-10-03  Chris Dumez  <cdumez@apple.com>
1601
1602         SharedStringHashStore should support removing hashes
1603         https://bugs.webkit.org/show_bug.cgi?id=177770
1604
1605         Reviewed by Alex Christensen.
1606
1607         Add API test coverage.
1608
1609         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1610         * TestWebKitAPI/Tests/WebKitCocoa/VisitedLinkStore.mm: Added.
1611         (TestWebKitAPI::TEST):
1612
1613 2017-10-03  Dewei Zhu  <dewei_zhu@apple.com>
1614
1615         Fix missing import for BenchmarkRunner.
1616         https://bugs.webkit.org/show_bug.cgi?id=177842
1617
1618         Reviewed by Ryosuke Niwa.
1619
1620         'show_results' requires BenchmarkRunner.
1621
1622         * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
1623
1624 2017-10-03  Olivier Blin  <olivier.blin@softathome.com>
1625
1626         [WPE] Bump deps to add support for xdg-shell-unstable-v6 protocol
1627         https://bugs.webkit.org/show_bug.cgi?id=177820
1628
1629         Reviewed by Žan Doberšek.
1630
1631         gnome-shell does not advertize the xdg-shell protocol anymore, but xdg-shell-unstable-v6 instead.
1632         Support has been added in WPEBackend-mesa, we need to update the requirements.
1633         wayland-1.10 is needed for wl_proxy_get_version(), used in the generated headers.
1634
1635         * wpe/jhbuild.modules:
1636
1637 2017-10-03  Alex Christensen  <achristensen@webkit.org>
1638
1639         Add ObjC SPI equivalent to WKPageLoaderClient.willGoToBackForwardListItem
1640         https://bugs.webkit.org/show_bug.cgi?id=177825
1641         <rdar://problem/22387505>
1642
1643         Reviewed by Tim Horton.
1644
1645         * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
1646         (-[BackForwardDelegate _webView:willGoToBackForwardListItem:inPageCache:]):
1647         (-[BackForwardDelegate webView:didFinishNavigation:]):
1648         (TEST):
1649
1650 2017-10-03  Antti Koivisto  <antti@apple.com>
1651
1652         Allow assigning WeakPtr<Derived> to WeakPtr<Base>
1653         https://bugs.webkit.org/show_bug.cgi?id=177817
1654
1655         Reviewed by Geoff Garen.
1656
1657         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
1658         (TestWebKitAPI::Base::weakPtrFactory):
1659         (TestWebKitAPI::TEST):
1660
1661 2017-10-03  Youenn Fablet  <youenn@apple.com>
1662
1663         Remove no longer needed WebRTC build infrastructure
1664         https://bugs.webkit.org/show_bug.cgi?id=177756
1665
1666         Reviewed by Alejandro G. Castro.
1667
1668         * Scripts/generate-libwebrtc-cmake: Removed.
1669         * Scripts/webkitpy/libwebrtc/__init__.py: Removed.
1670         * Scripts/webkitpy/libwebrtc/generate_cmake.py: Removed.
1671
1672 2017-10-03  Joanmarie Diggs  <jdiggs@igalia.com>
1673
1674         AX: [ATK] ARIA drag-and-drop attribute values should be exposed via AtkObject attributes
1675         https://bugs.webkit.org/show_bug.cgi?id=177763
1676
1677         Reviewed by Chris Fleizach.
1678
1679         Implement ariaIsGrabbed() and ariaDropEffects() for ATK.
1680
1681         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
1682         (WTR::AccessibilityUIElement::ariaIsGrabbed const):
1683         (WTR::AccessibilityUIElement::ariaDropEffects const):
1684
1685 2017-10-02  Myles C. Maxfield  <mmaxfield@apple.com>
1686
1687         Make WSL demo compatible with Microsoft Edge
1688         https://bugs.webkit.org/show_bug.cgi?id=177643
1689
1690         Reviewed by Saam Barati.
1691
1692         This patch does two things. The first is it migrates a loop over ParentNode.children to a legacy style loop
1693         because Microsoft Edge throws an exception when trying to use a for...of loop with it. This patch also hides
1694         the compilation behind a setTimeout(0) so there is some indication that something is happening during a
1695         compile.
1696
1697
1698         * Tools/WebGPUShadingLanguageRI/index.html:
1699
1700 2017-10-02  Joanmarie Diggs  <jdiggs@igalia.com>
1701
1702         AX: [ATK] The value of aria-level is not exposed on non-heading roles
1703         https://bugs.webkit.org/show_bug.cgi?id=177775
1704
1705         Reviewed by Chris Fleizach.
1706
1707         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
1708         (WTR::AccessibilityUIElement::hierarchicalLevel const):
1709
1710 2017-10-02  Geoffrey Garen  <ggaren@apple.com>
1711
1712         WeakPtr should have a move constructor
1713         https://bugs.webkit.org/show_bug.cgi?id=177789
1714
1715         Reviewed by Chris Dumez.
1716
1717         Chris made me write an API test. It wasn't that painful.
1718
1719         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
1720         (TestWebKitAPI::TEST):
1721
1722 2017-10-02  Filip Pizlo  <fpizlo@apple.com>
1723
1724         WSL ^ should be *
1725         https://bugs.webkit.org/show_bug.cgi?id=177705
1726
1727         Rubber stamped by Keith Miller.
1728         
1729         When I first wrote the prototype, I thought it would be cool to use ^ for pointers. Nobody agrees. I've
1730         gotten so much feedback to use *. This changes pointers to use *.
1731
1732         * WebGPUShadingLanguageRI/DereferenceExpression.js:
1733         (DereferenceExpression.prototype.toString):
1734         (DereferenceExpression):
1735         * WebGPUShadingLanguageRI/Intrinsics.js:
1736         (Intrinsics):
1737         * WebGPUShadingLanguageRI/Parse.js:
1738         (parseType):
1739         (parsePossiblePrefix):
1740         * WebGPUShadingLanguageRI/PtrType.js:
1741         (PtrType.prototype.toString):
1742         (PtrType):
1743         * WebGPUShadingLanguageRI/StandardLibrary.js:
1744         * WebGPUShadingLanguageRI/Test.js:
1745         (tests.simpleDereference):
1746         (tests.dereferenceStore):
1747         (tests.simpleMakePtr):
1748         (tests.loadNull):
1749         (tests.storeNull):
1750         (tests.returnNull):
1751         (tests.dereferenceDefaultNull):
1752         (tests.defaultInitializedNull):
1753         (tests.passNullToPtrMonomorphic):
1754         (tests.passNullToPtrPolymorphic):
1755         (tests.passNullAndNotNull):
1756         (tests.passNullAndNotNullFullPoly):
1757         (tests.passNullAndNotNullFullPolyReverse):
1758         (tests.chainGeneric):
1759         (tests.chainStruct):
1760         (tests.chainStructNewlyValid):
1761         (tests.chainStructDevice):
1762         (tests.paramChainStructDevice):
1763         (tests.simpleProtocolExtends):
1764         (tests.protocolExtendsTwo):
1765         (tests.overrideSubscriptStruct):
1766         (tests.overrideSubscriptStructAndDoStores):
1767         (tests.overrideSubscriptStructAndUsePointers):
1768         (tests.overrideSubscriptStructAndUsePointersIncorrectly):
1769         (tests.makeArrayRefFromPointer):
1770         (tests.nonArrayRefArrayLengthFail):
1771         (tests.constexprIsNotLValuePtr):
1772         (tests.genericAccessors):
1773         (tests.nestedSubscriptLValueEmulationSimple):
1774         (tests.nestedSubscriptLValueEmulationGeneric):
1775         (tests.shaderTypes):
1776         (tests.enumPtrBase):
1777         (tests.mutuallyRecursiveStructWithPointersBroken):
1778         (tests.mutuallyRecursiveStructWithPointers):
1779         (tests.linkedList):
1780         (tests.pointerToPointer):
1781         (tests.pointerGetter):
1782         (tests.operatorCastWithTypeVariableInferredFromReturnType):
1783         (tests.loneSetterPointer):
1784         (tests.anderWithNothingWrong):
1785         (tests.anderWithWrongNumberOfArguments):
1786         (tests.anderDoesntReturnPointer):
1787         (tests.anderDoesntTakeReference):
1788         (tests.anderWithArrayRef):
1789         (tests.pointerIndexGetter):
1790         (tests.loneIndexSetterPointer):
1791         (tests.indexAnderWithNothingWrong):
1792         (tests.indexAnderWithWrongNumberOfArguments):
1793         (tests.indexAnderDoesntReturnPointer):
1794         (tests.indexAnderDoesntTakeReference):
1795         (tests.indexAnderWithArrayRef):
1796         (tests.devicePtrPtr):
1797         (tests.threadgroupPtrPtr):
1798         (tests.constantPtrPtr):
1799         (tests.pointerIndexGetterInProtocol):
1800         (tests.loneIndexSetterPointerInProtocol):
1801         (tests.indexAnderWithNothingWrongInProtocol):
1802         (tests.indexAnderWithWrongNumberOfArgumentsInProtocol):
1803         (tests.indexAnderDoesntReturnPointerInProtocol):
1804         (tests.indexAnderDoesntTakeReferenceInProtocol):
1805         (tests.indexAnderWithArrayRefInProtocol):
1806         (tests.andReturnedArrayRef):
1807
1808 2017-10-02  Filip Pizlo  <fpizlo@apple.com>
1809
1810         WSL should be fine with &foo()[i] if foo() returns a []
1811         https://bugs.webkit.org/show_bug.cgi?id=177704
1812
1813         Reviewed by Saam Barati.
1814         
1815         Previously, we'd determine if a property access expression (base.field or base[index]) was an lvalue by
1816         asking if its base was an lvalue. This is right in all cases except if the base is of type []. Then, the
1817         property access expression is an lvalue so long as there is a setter or ander.
1818         
1819         This fixes the issue and adds a test.
1820         
1821         Also, this makes error messages in the case that something is not an lvalue a lot better. If something
1822         is not an lvalue because we could not find anders or setters, then we will tell you why we could not
1823         find them.
1824
1825         * WebGPUShadingLanguageRI/Checker.js:
1826         (Checker.prototype.visitAssignment):
1827         (Checker.prototype.visitReadModifyWriteExpression):
1828         (Checker.prototype.visitMakePtrExpression):
1829         (Checker.prototype._finishVisitingPropertyAccess):
1830         * WebGPUShadingLanguageRI/DotExpression.js:
1831         (DotExpression.prototype.get fieldName):
1832         (DotExpression.prototype.get isLValue): Deleted.
1833         (DotExpression.prototype.get addressSpace): Deleted.
1834         * WebGPUShadingLanguageRI/IndexExpression.js:
1835         (IndexExpression.prototype.get index):
1836         (IndexExpression.prototype.get isLValue): Deleted.
1837         (IndexExpression.prototype.get addressSpace): Deleted.
1838         * WebGPUShadingLanguageRI/PropertyAccessExpression.js:
1839         (PropertyAccessExpression):
1840         (PropertyAccessExpression.prototype.get isLValue):
1841         (PropertyAccessExpression.prototype.set isLValue):
1842         * WebGPUShadingLanguageRI/PropertyResolver.js:
1843         (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder.prototype.visitMakeArrayRefExpression):
1844         (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder):
1845         (PropertyResolver.prototype._visitRValuesWithinLValue):
1846         * WebGPUShadingLanguageRI/Test.js:
1847         (tests.storeNullArrayRef):
1848         (tests.andReturnedArrayRef):
1849
1850 2017-10-02  Wenson Hsieh  <wenson_hsieh@apple.com>
1851
1852         Guard iOS webkitGetAsEntry API tests on older iOS versions
1853
1854         Unreviewed test gardening. After r222688, these tests require custom pasteboard data to be enabled by default,
1855         so don't run them against shipping iOS.
1856
1857         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
1858
1859 2017-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
1860
1861         [WPE][GTK] Crash in webkit_web_resource_get_data_finish()
1862         https://bugs.webkit.org/show_bug.cgi?id=177107
1863
1864         Reviewed by Michael Catanzaro.
1865
1866         Add a test case to check we handle errors when webkit_web_resource_get_data() fails.
1867
1868         * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:
1869         (webViewloadChanged):
1870         (testWebResourceGetDataError):
1871         (beforeAll):
1872
1873 2017-10-02  Alex Christensen  <achristensen@webkit.org>
1874
1875         Fix build after r222715
1876         https://bugs.webkit.org/show_bug.cgi?id=177697
1877
1878         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1879         (TEST):
1880         Use the public API instead of the removed SPI.
1881
1882 2017-10-02  Alex Christensen  <achristensen@webkit.org>
1883
1884         REGRESSION(r214201): WebProcess hangs during policy decisions
1885         https://bugs.webkit.org/show_bug.cgi?id=177590
1886         <rdar://problem/33362929>
1887
1888         Reviewed by Andy Estes.
1889
1890         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1891         * TestWebKitAPI/Tests/WebKitCocoa/JavaScriptDuringNavigation.mm: Added.
1892         (-[JSNavigationDelegate webView:didFinishNavigation:]):
1893         (-[JSNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
1894         (-[JSNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
1895         (-[JSNavigationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1896         (TEST):
1897
1898 2017-10-02  Jonathan Bedard  <jbedard@apple.com>
1899
1900         Log stack-trace for run-webkit-tests when interrupted
1901         https://bugs.webkit.org/show_bug.cgi?id=176393
1902         <rdar://problem/34262310>
1903
1904         Reviewed by Darin Adler.
1905
1906         When run-webkit-tests is stuck, it is difficult to immediately tell
1907         why. Saving a stack-trace when run-webkit-tests is terminated
1908         or stopped with CNTRL-C will make such issues easier to debug.
1909
1910         * Scripts/webkitpy/common/interupt_debugging.py: Added.
1911         (log_stack_trace): Given a Python frame object, log a stack trace to
1912         the provided file.
1913         (log_stack_trace_on_term): Attach a listener to SIGTERM so that a
1914         stack-trace can be logged when a program is terminated.
1915         (log_stack_trace_on_cntrl_c): Attach a listener to SIGINT so that a
1916         stack-trace can be logged when a program is CNTRL-Ced. 
1917         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
1918         (main): Set handlers to log stack trace on interruption.
1919
1920 2017-10-02  Michael Catanzaro  <mcatanzaro@igalia.com>
1921
1922         Remove ENABLE_CSS_REGIONS
1923         https://bugs.webkit.org/show_bug.cgi?id=177689
1924
1925         Reviewed by Darin Adler.
1926
1927         * Scripts/webkitperl/FeatureList.pm:
1928
1929 2017-09-30  Carlos Garcia Campos  <cgarcia@igalia.com>
1930
1931         Unreviewed. Upgrade webkitgtk-test-fonts to version 0.0.7.
1932
1933         This version upgrades liberation fonts to version 2, that has a wider glyph coverage.
1934
1935         * gtk/jhbuild.modules:
1936
1937 2017-09-29  Alex Christensen  <achristensen@webkit.org>
1938
1939         Expose WebPreferences::webGLEnabled through WKPreferences
1940         https://bugs.webkit.org/show_bug.cgi?id=177692
1941         <rdar://problem/24110556>
1942
1943         Reviewed by Andy Estes.
1944
1945         * TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:
1946         (-[AlertSaver alert]):
1947         (-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1948         (TEST):
1949
1950 2017-09-29  Alex Christensen  <achristensen@webkit.org>
1951
1952         Fix WKWebViewConfigurationPrivate after r222663
1953         https://bugs.webkit.org/show_bug.cgi?id=177644
1954
1955         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1956         * TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm: Added.
1957         (TEST):
1958
1959 2017-09-28  Ryosuke Niwa  <rniwa@webkit.org>
1960
1961         Image pasting is not working on tineye.com / gmail.com / GitHub.com due to lack of support for DataTransfer.items
1962         https://bugs.webkit.org/show_bug.cgi?id=170449
1963         <rdar://problem/31432525>
1964
1965         Reviewed by Wenson Hsieh.
1966
1967         Added an API test to paste an image from pasteboard. The test is shared between iOS and macOS.
1968
1969         The tests to paste image files are only enabled on macOS since putting files into pasteboard isn't a thing on iOS.
1970
1971         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1972         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: Added.
1973         (writeImageDataToPasteboard):
1974         (writeBundleFileToPasteboard):
1975         * TestWebKitAPI/Tests/WebKitCocoa/paste-image.html: Added.
1976         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-100px.tiff: Added.
1977         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-200px.png: Added.
1978         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-400px.gif: Added.
1979         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-600px.jpg: Added.
1980         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Rebaselined the test now that types contain "Files".
1981
1982 2017-09-29  Wenson Hsieh  <wenson_hsieh@apple.com>
1983
1984         [iOS WK2] Implement -[WKContentView hasText] for compatibility with the UITextInput protocol
1985         https://bugs.webkit.org/show_bug.cgi?id=177662
1986         <rdar://problem/33410373>
1987
1988         Reviewed by Tim Horton.
1989
1990         Add EditorState API tests to check that the value of -[WKContentView hasText] is correct when editing both plain
1991         and rich text areas.
1992
1993         * TestWebKitAPI/EditingTestHarness.h:
1994         * TestWebKitAPI/EditingTestHarness.mm:
1995         (-[EditingTestHarness insertParagraph]):
1996         (-[EditingTestHarness insertText:]):
1997         (-[EditingTestHarness insertHTML:]):
1998         (-[EditingTestHarness selectAll]):
1999         (-[EditingTestHarness deleteBackwards]):
2000         * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:
2001
2002         Add versions of EditingTestHarness helpers that don't require us to expect any editor state after executing the
2003         edit command.
2004
2005         (TestWebKitAPI::checkContentViewHasTextWithFailureDescription):
2006         (TestWebKitAPI::TEST):
2007         * TestWebKitAPI/cocoa/TestWKWebView.h:
2008         * TestWebKitAPI/cocoa/TestWKWebView.mm:
2009         (-[TestWKWebView textInputContentView]):
2010
2011 2017-09-29  Charles Turner  <cturner@igalia.com>
2012
2013         Update my status.
2014
2015         Unreviewed.
2016
2017         * Scripts/webkitpy/common/config/contributors.json:
2018
2019 2017-09-28  Commit Queue  <commit-queue@webkit.org>
2020
2021         Unreviewed, rolling out r222639.
2022         https://bugs.webkit.org/show_bug.cgi?id=177630
2023
2024         Breaks AppleWin build (Requested by dolmstead on #webkit).
2025
2026         Reverted changeset:
2027
2028         "[WinCairo][MiniBrowser] Add ca-bundle to display secure
2029         pages."
2030         https://bugs.webkit.org/show_bug.cgi?id=168486
2031         http://trac.webkit.org/changeset/222639
2032
2033 2017-09-28  Joanmarie Diggs  <jdiggs@igalia.com>
2034
2035         AX: [ATK] object:state-changed notifications missing for multiple ARIA attributes
2036         https://bugs.webkit.org/show_bug.cgi?id=177542
2037
2038         Add platform support for the notifications. Also add support for getting the
2039         boolean argument indicating whether the state has been set or unset.
2040
2041         Reviewed by Chris Fleizach.
2042
2043         * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
2044
2045 2017-09-28  Basuke Suzuki  <Basuke.Suzuki@sony.com>
2046
2047         [WinCairo][MiniBrowser] Add ca-bundle to display secure pages.
2048         Copy cacert.pem file into bundle directory.
2049         https://bugs.webkit.org/show_bug.cgi?id=168486
2050
2051         Reviewed by Brent Fulgham.
2052
2053         * MiniBrowser/win/CMakeLists.txt:
2054
2055 2017-09-28  Lucas Forschler  <lforschler@apple.com>
2056
2057         check in AWS Lambda code used for WebKitArchiveSupport
2058         https://bugs.webkit.org/show_bug.cgi?id=177614
2059         
2060         Rubber-stamped by Alexey Proskuryakov.
2061
2062         * WebKitArchiveSupport/lambda: Added.
2063         * WebKitArchiveSupport/lambda/delete-minified-s3-archive-from-dynamodb.py: Added.
2064         (lambda_handler):
2065         * WebKitArchiveSupport/lambda/delete-s3-archive-from-dynamodb.py: Added.
2066         (lambda_handler):
2067         * WebKitArchiveSupport/lambda/register-archive-in-dynamodb.py: Added.
2068         (lambda_handler):
2069         * WebKitArchiveSupport/lambda/register-minified-s3-archive-in-dynamodb.py: Added.
2070         (lambda_handler):
2071
2072 2017-09-28  Jiewen Tan  <jiewen_tan@apple.com>
2073
2074         WeakPtrFactory should allow downcasting
2075         https://bugs.webkit.org/show_bug.cgi?id=177389
2076         <rdar://problem/34604174>
2077
2078         Reviewed by Geoffrey Garen.
2079
2080         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2081         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
2082         (TestWebKitAPI::Base::foo):
2083         (TestWebKitAPI::Base::createWeakPtr):
2084         (TestWebKitAPI::Derived::foo):
2085         (TestWebKitAPI::TEST):
2086
2087 2017-09-28  Megan Gardner  <megan_gardner@apple.com>
2088
2089         Add debug flag to WebKitTestRunner to show where touches are being generated
2090         https://bugs.webkit.org/show_bug.cgi?id=177583
2091
2092         Reviewed by Tim Horton and Wenson Hsieh.
2093
2094         Add a flag, and the ability to paint a dot where the HIDEventGenerator is creating fake touches to
2095         send through UIKit. This will help in debugging touch tests, because it will be easier to see if
2096         one is actually sending the touches at the locations that they expect. This will help differentiate between
2097         problems in the locations of the touches, and other problems that can come up when writing tests.
2098
2099         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
2100         (parse_args):
2101         * Scripts/webkitpy/port/driver.py:
2102         (Driver.cmd_line):
2103         * WebKitTestRunner/Options.cpp:
2104         (WTR::Options::Options):
2105         (WTR::handleOptionShowTouches):
2106         (WTR::OptionsHandler::OptionsHandler):
2107         * WebKitTestRunner/Options.h:
2108         * WebKitTestRunner/TestController.cpp:
2109         (WTR::TestController::initialize):
2110         * WebKitTestRunner/TestController.h:
2111         (WTR::TestController::shouldShowTouches const):
2112         * WebKitTestRunner/TestOptions.h:
2113         * WebKitTestRunner/ios/HIDEventGenerator.h:
2114         * WebKitTestRunner/ios/HIDEventGenerator.mm:
2115         (-[DebugTouchView pointInside:withEvent:]):
2116         (-[HIDEventGenerator setShouldShowTouches:]):
2117         (-[HIDEventGenerator initDebugViews]):
2118         (-[HIDEventGenerator updateDebugUI:withPoint:isTouching:]):
2119         (-[HIDEventGenerator _createIOHIDEventWithInfo:]):
2120         (-[HIDEventGenerator _createIOHIDEventType:]):
2121         (-[HIDEventGenerator _updateTouchPoints:count:]):
2122         (-[HIDEventGenerator touchDownAtPoints:touchCount:]):
2123         (-[HIDEventGenerator liftUpAtPoints:touchCount:]):
2124         (-[HIDEventGenerator moveToPoints:touchCount:duration:]):
2125         (-[HIDEventGenerator markerEventReceived:]):
2126         * WebKitTestRunner/ios/TestControllerIOS.mm:
2127         (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
2128         * WebKitTestRunner/ios/mainIOS.mm:
2129         (-[WebKitTestRunnerApp _runTestController]):
2130
2131 2017-09-28  Mark Lam  <mark.lam@apple.com>
2132
2133         [Re-landing] Turn on exception scope verification for JSC tests.
2134         https://bugs.webkit.org/show_bug.cgi?id=162351
2135         <rdar://problem/29563911>
2136
2137         Reviewed by Saam Barati.
2138
2139         Update: I'm re-landing this patch now that test262 exception check validation
2140         failures have been fixed in r222617.  testapi still has some validation failures,
2141         but this patch does not affect testapi.
2142
2143         Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
2144         run-jsc-stress-tests.  This turns on exception scope verification on JSC test
2145         runs (which currently does not include testapi).
2146
2147         Some stats on time to run JSC stress and mozilla tests:
2148         1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
2149         2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
2150         3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
2151         4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
2152
2153         The stats shows that (2) and (3) has effectively no time difference.  Hence, the
2154         cost of enabling --validateExceptionChecks=true is not significant.
2155
2156         It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
2157         21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
2158         --dumpSimulatedThrows=true off.  We can manually add that when we see a regression
2159         and need to debug the issue.  Otherwise, we wont pay the price for it.
2160
2161         * Scripts/run-jsc-stress-tests:
2162
2163 2017-09-27  Alex Christensen  <achristensen@webkit.org>
2164
2165         Add WKContentRuleList notify action type
2166         https://bugs.webkit.org/show_bug.cgi?id=177013
2167         <rdar://problem/31073936>
2168
2169         Reviewed by Darin Adler.
2170
2171         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2172         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
2173         (WebCore::ContentExtensions::operator<<):
2174         (TestWebKitAPI::InMemoryCompiledContentExtension::create):
2175         (TestWebKitAPI::InMemoryCompiledContentExtension::data):
2176         (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
2177         (TestWebKitAPI::makeBackend):
2178         (TestWebKitAPI::TEST_F):
2179         (TestWebKitAPI::actionsEqual):
2180         (TestWebKitAPI::sequenceInstances):
2181         (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
2182         (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
2183         * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
2184         (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
2185         (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
2186         (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
2187         (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2188         (makeWarnContentRuleList):
2189         (TEST):
2190
2191 2017-09-27  Wenson Hsieh  <wenson_hsieh@apple.com>
2192
2193         Drag event DataTransfer has unexpected types "dyn.ah62d4..."
2194         https://bugs.webkit.org/show_bug.cgi?id=172526
2195         <rdar://problem/32396081>
2196
2197         Reviewed by Ryosuke Niwa.
2198
2199         Adds new API tests on iOS to cover various cases of using DataTransfer.setData, DataTransfer.getData, and
2200         DataTransfer.types, as well as their interaction with platform objects (source NSItemProviders in the case of
2201         drag and drop, and the general UIPasteboard for copy and paste).
2202
2203         * TestWebKitAPI/PlatformUtilities.h:
2204         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2205         * TestWebKitAPI/Tests/WebKitCocoa/dump-datatransfer-types.html: Added.
2206
2207         Introduce a new API test harness that both drag-and-drop and copy-and-paste tests use to dump DataTransfer's
2208         web-exposed types and values.
2209
2210         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2211         (checkFirstTypeIsPresentAndSecondTypeIsMissing):
2212         (checkJSONWithLogging):
2213         (TestWebKitAPI::TEST):
2214         (checkTypeIdentifierAndIsNotOtherTypeIdentifier): Deleted.
2215         * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
2216         (TestWebKitAPI::checkJSONWithLogging):
2217         (TestWebKitAPI::setUpWebViewForPasteboardTests):
2218         (TestWebKitAPI::TEST):
2219         * TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
2220         (TestWebKitAPI::Util::jsonMatchesExpectedValues):
2221
2222 2017-09-27  Lucas Forschler  <lforschler@apple.com>
2223
2224         Add macOS High Sierra and iOS Simulator 11 support to bisect-builds.
2225         https://bugs.webkit.org/show_bug.cgi?id=177578
2226
2227         Reviewed by Alexey Proskuryakov.
2228
2229         * Scripts/bisect-builds:
2230         (minified_platforms):
2231         (unminified_platforms):
2232
2233 2017-09-27  Ryan Haddad  <ryanhaddad@apple.com>
2234
2235         Update TestResultsServer for High Sierra queues.
2236         https://bugs.webkit.org/show_bug.cgi?id=177500
2237
2238         Reviewed by Alexey Proskuryakov.
2239
2240         * TestResultServer/static-dashboards/builders.jsonp:
2241
2242 2017-09-27  Lucas Forschler  <lforschler@apple.com>
2243
2244         bisect-builds:add a README to the archive.
2245         https://bugs.webkit.org/show_bug.cgi?id=177376
2246
2247         Reviewed by Alexey Proskuryakov & Jon Davis.
2248
2249         * BuildSlaveSupport/built-product-archive:
2250         (addFilesToArchive): refactor function (was previously addLauncherToArchive)
2251         (createZip): Teach function to add the README
2252         (addLauncherToArchive): Deleted. (refactored to addFilesToArchive)
2253         * BuildSlaveSupport/run-webkit-archive: Deleted. (Moved to WebKitArchiveSupport)
2254         * WebKitArchiveSupport: Added.
2255         * WebKitArchiveSupport/README: Added. README which will be packaged up with the archive.
2256         * WebKitArchiveSupport/run-webkit-archive: Added. (Moved from BuildSlaveSupport)
2257
2258 2017-09-26  Tim Horton  <timothy_horton@apple.com>
2259
2260         Mac CMake bot should provide verbose build output
2261         https://bugs.webkit.org/show_bug.cgi?id=177512
2262
2263         Reviewed by Alexey Proskuryakov.
2264
2265         * BuildSlaveSupport/build.webkit.org-config/config.json:
2266         It's hard to diagnose weird bot-only build problems without the
2267         full verbose build output, so turn that on. The Xcode builders
2268         do it too, so why not CMake!
2269
2270 2017-09-26  Tim Horton  <timothy_horton@apple.com>
2271
2272         Make it possible to easily get verbose ninja output from build-webkit
2273         https://bugs.webkit.org/show_bug.cgi?id=177511
2274
2275         Reviewed by Sam Weinig.
2276
2277         * Scripts/build-webkit:
2278         Add a -v/--verbose argument to build-webkit, which sets the environment
2279         variable VERBOSE=1, which buildCMakeGeneratedProject already checks.
2280
2281         * Scripts/webkitdirs.pm:
2282         (buildCMakeGeneratedProject):
2283         Add ninja verbosity arguments to @makeArgs, which are appended
2284         after the -- and thus handed to ninja; the previous implementation
2285         (appending to @args) would only work if @makeArgs was non-empty and thus
2286         the -- was included.
2287
2288 2017-09-26  Said Abou-Hallawa  <sabouhallawa@apple.com>
2289
2290         Followup (r222427): SynchronizedFixedQueue should not have a public constructor
2291         https://bugs.webkit.org/show_bug.cgi?id=177458
2292
2293         Reviewed by Tim Horton.
2294
2295         Fix the definition and the creation of SynchronizedFixedQueue.
2296
2297         * TestWebKitAPI/Tests/WTF/SynchronizedFixedQueue.cpp:
2298         (TestWebKitAPI::ToUpperConverter::ToUpperConverter):
2299         (TestWebKitAPI::ToUpperConverter::startProducing):
2300         (TestWebKitAPI::ToUpperConverter::startConsuming):
2301         (TestWebKitAPI::ToUpperConverter::stopProducing):
2302         (TestWebKitAPI::ToUpperConverter::stopConsuming):
2303         (TestWebKitAPI::ToUpperConverter::enqueueLower):
2304
2305 2017-09-26  Wenson Hsieh  <wenson_hsieh@apple.com>
2306
2307         [ios-simulator] API test DataInteractionTests.ExternalSourceDataTransferItemGetFolderAsEntry is failing
2308         https://bugs.webkit.org/show_bug.cgi?id=177271
2309
2310         Reviewed by Tim Horton and Megan Gardner.
2311
2312         Rebaseline a failing API test.
2313
2314         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2315         (TestWebKitAPI::TEST):
2316
2317 2017-09-26  Per Arne Vollan  <pvollan@apple.com>
2318
2319         Set LF eol-style on Windows shell script, because the script failed on one of the EWS
2320         bots, when it had the 'native' style.
2321
2322         Unreviewed Windows EWS fix. 
2323
2324         * EWSTools/start-queue-win.sh: Modified property svn:eol-style.
2325
2326 2017-09-26  Jonathan Bedard  <jbedard@apple.com>
2327
2328         webkitpy: Notify parent process when a worker is spawned
2329         https://bugs.webkit.org/show_bug.cgi?id=177467
2330         <rdar://problem/34660194>
2331
2332         Reviewed by Daniel Bates.
2333
2334         When we fork the parent process, there may be resources in that process
2335         which workers will take ownership of. Notify ports when a new worker is created
2336         so that these resources can be correctly managed.
2337
2338         * Scripts/webkitpy/common/message_pool.py:
2339         (_MessagePool._start_workers): After all workers are started, notify the caller
2340         that a worker has been created, unless we are running inline, in which case the
2341         parent process is still the worker.
2342         * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
2343         (LayoutTestRunner._handle_did_spawn_worker): Notify the port that a worker process
2344         has been created.
2345         * Scripts/webkitpy/port/base.py:
2346         (Port.did_spawn_worker): Add function so that ports may manage any
2347         resources created on the parent process but managed by the provided worker.
2348         * Scripts/webkitpy/port/device.py:
2349         (Device.release_worker_resources): Call release_worker_resources on the
2350         platform_device if such a function is defined.
2351         * Scripts/webkitpy/port/ios.py:
2352         (IOSPort.did_spawn_worker): Release any worker resources on the iOS
2353         device object associated with the spawned worker.
2354         * Scripts/webkitpy/test/runner.py:
2355         (Runner.handle): Ignore the did_spawn_worker message during testing.
2356
2357 2017-09-26  Jer Noble  <jer.noble@apple.com>
2358
2359         Thrown ObjC exception when right clicking on <img> containing mp4 link
2360         https://bugs.webkit.org/show_bug.cgi?id=177370
2361
2362         Reviewed by Darin Adler.
2363
2364         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2365         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.html: Added.
2366         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm: Added.
2367         (-[ContextMenuImgWithVideoDelegate _webView:contextMenu:forElement:]):
2368         (TestWebKitAPI::TEST):
2369
2370 2017-09-26  Per Arne Vollan  <pvollan@apple.com>
2371
2372         [Win] 'webkit-patch clean' is failing on bot.
2373         https://bugs.webkit.org/show_bug.cgi?id=177488
2374
2375         Reviewed by Brent Fulgham.
2376
2377         If 'os.remove' throws an exception, catch it.
2378
2379         * Scripts/webkitpy/common/checkout/scm/svn.py:
2380         (SVN.discard_working_directory_changes):
2381
2382 2017-09-25  Frederik Riedel  <riedel@apple.com>
2383
2384         Expose way to set values of classified form controls as {Legacy WebKit, WebKit} SPI
2385         https://bugs.webkit.org/show_bug.cgi?id=174394
2386         <rdar://problem/33183504>
2387
2388         Reviewed by Ryosuke Niwa.
2389
2390         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2391         * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm: Added.
2392         (-[WKWebView _privateTextInput]): Testing helpers.
2393         (TestWebKitAPI::TEST): Added test cases to test AutoFill for web views.
2394         * TestWebKitAPI/ios/UIKitSPI.h:
2395
2396 2017-09-25  Frederic Wang  <fwang@igalia.com>
2397
2398         Change my status to reviewer and reformat with validate-committer-lists
2399
2400         Unreviewed.
2401
2402         * Scripts/webkitpy/common/config/contributors.json:
2403
2404 2017-09-25  Ryan Haddad  <ryanhaddad@apple.com>
2405
2406         Add High Sierra bots to buildbot and dashboard.
2407         https://bugs.webkit.org/show_bug.cgi?id=177437
2408
2409         Reviewed by Alexey Proskuryakov.
2410
2411         * BuildSlaveSupport/build.webkit.org-config/config.json: Add High Sierra queues, move Leaks and JSC queues over from Sierra.
2412         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results.
2413         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: Add High Sierra.
2414         (WebKitBuildbot):
2415
2416 2017-09-25  Chris Dumez  <cdumez@apple.com>
2417
2418         [WK2] Add API to query if a download was user-initiated
2419         https://bugs.webkit.org/show_bug.cgi?id=177435
2420         <rdar://problem/34498422>
2421
2422         Reviewed by Alex Christensen.
2423
2424         Add API test coverage.
2425
2426         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:
2427         (TestWebKitAPI::decideDestinationWithSuggestedFilename):
2428         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
2429         (-[DownloadDelegate _downloadDidStart:]):
2430         (-[DownloadDelegate _downloadDidFinish:]):
2431         (runTest):
2432         (TEST):
2433         (-[BlobDownloadDelegate _downloadDidStart:]):
2434         (-[BlobDownloadDelegate _downloadDidFinish:]):
2435         (-[RedirectedDownloadDelegate _downloadDidStart:]):
2436         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
2437
2438 2017-09-25  Commit Queue  <commit-queue@webkit.org>
2439
2440         Unreviewed, rolling out r222455.
2441         https://bugs.webkit.org/show_bug.cgi?id=177460
2442
2443         broke iOS build (Requested by alexchristensen on #webkit).
2444
2445         Reverted changeset:
2446
2447         "Add WKContentRuleList notify action type"
2448         https://bugs.webkit.org/show_bug.cgi?id=177013
2449         http://trac.webkit.org/changeset/222455
2450
2451 2017-09-25  Per Arne Vollan  <pvollan@apple.com>
2452
2453         [Win] run-api-tests is failing.
2454         https://bugs.webkit.org/show_bug.cgi?id=177454
2455
2456         Reviewed by Brent Fulgham.
2457
2458         TestWebKit.exe has changed name to TestWebKitLegacy.exe.
2459
2460         * Scripts/run-api-tests:
2461         (testToolPaths):
2462
2463 2017-09-25  Per Arne Vollan  <pvollan@apple.com>
2464
2465         [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
2466         https://bugs.webkit.org/show_bug.cgi?id=177244
2467
2468         Reviewed by Alex Christensen.
2469
2470         The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
2471
2472         * EWSTools/start-queue-win.sh:
2473
2474 2017-09-25  Alex Christensen  <achristensen@webkit.org>
2475
2476         Add WKContentRuleList notify action type
2477         https://bugs.webkit.org/show_bug.cgi?id=177013
2478         <rdar://problem/31073936>
2479
2480         Reviewed by Darin Adler.
2481
2482         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2483         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
2484         (WebCore::ContentExtensions::operator<<):
2485         (TestWebKitAPI::InMemoryCompiledContentExtension::create):
2486         (TestWebKitAPI::InMemoryCompiledContentExtension::data):
2487         (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
2488         (TestWebKitAPI::makeBackend):
2489         (TestWebKitAPI::TEST_F):
2490         (TestWebKitAPI::actionsEqual):
2491         (TestWebKitAPI::sequenceInstances):
2492         (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
2493         (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
2494         * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
2495         (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
2496         (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
2497         (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
2498         (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2499         (makeWarnContentRuleList):
2500         (TEST):
2501
2502 2017-09-25  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2503
2504         REGRESSION(r222160) [GTK] [Debug] Internal compiler error on the buildbot (huge memory usage by GCC)
2505         https://bugs.webkit.org/show_bug.cgi?id=177223
2506
2507         Reviewed by Carlos Garcia Campos.
2508
2509         When the user environment sets the variable NUMBER_OF_PROCESSORS
2510         this should be passed down to the build system (ninja or make) always.
2511
2512         Playing with the number of this variable is needed when using icecc
2513         (as you usually want to launch more parallel build process than your
2514         number of cores), or when you want to limit the number of parallel
2515         build process for hardware capacity reasons.
2516
2517         * Scripts/build-webkit:
2518
2519 2017-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
2520
2521         [GTK] Incremental builds fail every time Web Inspector icons are removed
2522         https://bugs.webkit.org/show_bug.cgi?id=177349
2523
2524         Reviewed by Carlos Garcia Campos.
2525
2526         Removing GTK WebInspector image files always breaks the GTK and
2527         WPE ports incremental builds.
2528
2529         * Scripts/webkitdirs.pm:
2530         (shouldRemoveCMakeCache): Check the timestamp of
2531         Source/WebInspectorUI/UserInterface/Images/gtk directory if
2532         isGtk() or isWPE().
2533
2534 2017-09-24  Joanmarie Diggs  <jdiggs@igalia.com>
2535
2536         [ATK] Object attributes are missing for ARIA live region roles
2537         https://bugs.webkit.org/show_bug.cgi?id=171174
2538
2539         Reviewed by Chris Fleizach.
2540
2541         Add support for testing property values for AXARIALive, AXARIAAtomic, and
2542         AXARIARelevant. Also add handling for testing whether AXElementBusy is
2543         "supported" (in ATK, busy is a state and is supported on all elements
2544         regardless of whether the state is present or absent from the state set).
2545
2546         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
2547         (WTR::AccessibilityUIElement::boolAttributeValue):
2548         (WTR::AccessibilityUIElement::isAttributeSupported):
2549
2550 2017-09-23  Michael Catanzaro  <mcatanzaro@igalia.com>
2551
2552         Unreviewed Mac CMake build fixup after r222194
2553
2554         * DumpRenderTree/PlatformMac.cmake:
2555
2556 2017-09-22  Zalan Bujtas  <zalan@apple.com>
2557
2558         WeakPtrFactory should populate m_ref lazily.
2559         https://bugs.webkit.org/show_bug.cgi?id=177375
2560
2561         Reviewed by Geoffrey Garen.
2562
2563         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
2564         (TestWebKitAPI::TEST):
2565
2566 2017-09-22  Filip Pizlo  <fpizlo@apple.com>
2567
2568         WSL should report an error if you try to create an operator overload that will never be called
2569         https://bugs.webkit.org/show_bug.cgi?id=177092
2570
2571         Reviewed by JF Bastien.
2572         
2573         This adds all kinds of checks to ensure that your operator overloads make sense. This adds all
2574         kinds of tests for those checks.
2575         
2576         In the process of writing those tests, I hit an awesome bug: function instantiation was
2577         instantiating all types, which meant that if that instantiated function needed to resolve calls
2578         to protocol functions, we'd fail because we would have cloned top-level struct types. We need
2579         to preserve the uninstantiated argument types, type arguments, and return type (for casts) in
2580         order to be able to resolve protocol calls. But we also need the instantiated version of the
2581         type arguments for execution. So, this adds some more stuff to the CallExpression class.
2582         
2583         * WebGPUShadingLanguageRI/All.js:
2584         * WebGPUShadingLanguageRI/ArrayRefType.js:
2585         (ArrayRefType.prototype.unifyImpl):
2586         * WebGPUShadingLanguageRI/ArrayType.js:
2587         (ArrayType.prototype.get isArray):
2588         * WebGPUShadingLanguageRI/CallExpression.js:
2589         (CallExpression.resolve):
2590         (CallExpression.prototype.resolve):
2591         (CallExpression.prototype.resolveToOverload):
2592         * WebGPUShadingLanguageRI/Checker.js:
2593         (Checker.prototype._checkOperatorOverload):
2594         (Checker.prototype.visitFuncDef):
2595         (Checker.prototype.visitProtocolDecl):
2596         (Checker.prototype.visitMakeArrayRefExpression):
2597         * WebGPUShadingLanguageRI/EBufferBuilder.js:
2598         (EBufferBuilder.prototype._createEPtr):
2599         * WebGPUShadingLanguageRI/EPtr.js:
2600         (EPtr):
2601         * WebGPUShadingLanguageRI/Evaluator.js:
2602         (Evaluator.prototype._snapshot):
2603         (Evaluator.prototype._runBody):
2604         (Evaluator.prototype.visitFunctionLikeBlock):
2605         (Evaluator.prototype.visitCallExpression):
2606         (Evaluator):
2607         (Evaluator.prototype.runFunc): Deleted.
2608         * WebGPUShadingLanguageRI/ExternalOrigin.js: Added.
2609         * WebGPUShadingLanguageRI/Func.js:
2610         (Func.prototype.toDeclString):
2611         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2612         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
2613         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
2614         (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates.prototype.visitCallExpression):
2615         (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates):
2616         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
2617         * WebGPUShadingLanguageRI/Intrinsics.js:
2618         (Intrinsics):
2619         * WebGPUShadingLanguageRI/LateChecker.js:
2620         (LateChecker.prototype.visitReferenceType):
2621         (LateChecker.prototype._checkShaderType):
2622         * WebGPUShadingLanguageRI/Lexer.js:
2623         (Lexer._textIsIdentifierImpl):
2624         (Lexer.textIsIdentifier):
2625         (Lexer.prototype.next):
2626         (Lexer):
2627         * WebGPUShadingLanguageRI/NameResolver.js:
2628         (NameResolver.prototype.visitProtocolDecl):
2629         * WebGPUShadingLanguageRI/Parse.js:
2630         (parseType.getAddressSpace):
2631         (parseType):
2632         * WebGPUShadingLanguageRI/Prepare.js:
2633         (let.prepare):
2634         * WebGPUShadingLanguageRI/PtrType.js:
2635         (PtrType.prototype.unifyImpl):
2636         * WebGPUShadingLanguageRI/ReferenceType.js:
2637         (ReferenceType):
2638         * WebGPUShadingLanguageRI/Rewriter.js:
2639         (Rewriter.prototype.visitReferenceType):
2640         (Rewriter.prototype.processDerivedCallData):
2641         * WebGPUShadingLanguageRI/StandardLibrary.js:
2642         (intToString):
2643         * WebGPUShadingLanguageRI/StatementCloner.js:
2644         (StatementCloner.prototype.visitFuncDef):
2645         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
2646         (StructLayoutBuilder.prototype.visitCallExpression):
2647         (StructLayoutBuilder):
2648         * WebGPUShadingLanguageRI/Substitution.js:
2649         (Substitution.prototype.visitTypeRef):
2650         * WebGPUShadingLanguageRI/Test.html:
2651         * WebGPUShadingLanguageRI/Test.js:
2652         (checkNumber):
2653         (set target):
2654         (tests.literalBool):
2655         (tests.identityBool):
2656         (tests.intSimpleMath):
2657         (tests.uintSimpleMath):
2658         (tests.uint8SimpleMath):
2659         (tests.equality):
2660         (tests.logicalNegation):
2661         (tests.notEquality):
2662         (tests.equalityTypeFailure):
2663         (tests.generalNegation):
2664         (tests.add1):
2665         (tests.simpleGeneric):
2666         (tests.nameResolutionFailure):
2667         (tests.simpleVariable):
2668         (tests.simpleAssignment):
2669         (tests.simpleDefault):
2670         (tests.simpleDereference):
2671         (tests.dereferenceStore):
2672         (tests.simpleMakePtr):
2673         (tests.threadArrayLoad):
2674         (tests.threadArrayLoadIntLiteral):
2675         (tests.deviceArrayLoad):
2676         (tests.threadArrayStore):
2677         (tests.deviceArrayStore):
2678         (tests.deviceArrayStoreIntLiteral):
2679         (tests.simpleProtocol):
2680         (tests.typeMismatchReturn):
2681         (tests.typeMismatchVariableDecl):
2682         (tests.typeMismatchAssignment):
2683         (tests.typeMismatchReturnParam):
2684         (tests.badAdd):
2685         (tests.lexerKeyword):
2686         (tests.simpleNoReturn):
2687         (tests.simpleUnreachableCode):
2688         (tests.simpleStruct):
2689         (tests.genericStructInstance):
2690         (tests.doubleGenericCallsDoubleGeneric):
2691         (tests.doubleGenericCallsSingleGeneric):
2692         (tests.loadNull):
2693         (tests.storeNull):
2694         (tests.returnNull):
2695         (tests.dereferenceDefaultNull):
2696         (tests.defaultInitializedNull):
2697         (tests.passNullToPtrMonomorphic):
2698         (tests.passNullToPtrPolymorphic):
2699         (tests.passNullToPolymorphic):
2700         (tests.loadNullArrayRef):
2701         (tests.storeNullArrayRef):
2702         (tests.returnNullArrayRef):
2703         (tests.dereferenceDefaultNullArrayRef):
2704         (tests.defaultInitializedNullArrayRef):
2705         (tests.defaultInitializedNullArrayRefIntLiteral):
2706         (tests.passNullToPtrMonomorphicArrayRef):
2707         (tests.passNullToPtrPolymorphicArrayRef):
2708         (tests.returnIntLiteralUint):
2709         (tests.returnIntLiteralDouble):
2710         (tests.badIntLiteralForInt):
2711         (tests.badIntLiteralForUint):
2712         (tests.badIntLiteralForDouble):
2713         (tests.passNullAndNotNull):
2714         (tests.passNullAndNotNullFullPoly):
2715         (tests.passNullAndNotNullFullPolyReverse):
2716         (tests.nullTypeVariableUnify):
2717         (tests.doubleNot):
2718         (tests.simpleRecursion):
2719         (tests.protocolMonoSigPolyDef):
2720         (tests.protocolPolySigPolyDef):
2721         (tests.protocolDoublePolySigDoublePolyDef):
2722         (tests.protocolDoublePolySigDoublePolyDefExplicit):
2723         (tests.variableShadowing):
2724         (tests.ifStatement):
2725         (tests.ifElseStatement):
2726         (tests.ifElseIfStatement):
2727         (tests.ifElseIfElseStatement):
2728         (tests.returnIf):
2729         (tests.simpleWhile):
2730         (tests.protocolMonoPolySigDoublePolyDefExplicit):
2731         (tests.ambiguousOverloadSimple):
2732         (tests.ambiguousOverloadOverlapping):
2733         (tests.ambiguousOverloadTieBreak):
2734         (tests.intOverloadResolution):
2735         (tests.intOverloadResolutionReverseOrder):
2736         (tests.intOverloadResolutionGeneric):
2737         (tests.intLiteralGeneric):
2738         (tests.intLiteralGenericWithProtocols):
2739         (tests.uintLiteralGeneric):
2740         (tests.uintLiteralGenericWithProtocols):
2741         (tests.intLiteralGenericSpecific):
2742         (tests.simpleConstexpr):
2743         (tests.break):
2744         (tests.continue):
2745         (tests.doWhile):
2746         (tests.forLoop):
2747         (tests.chainConstexpr):
2748         (tests.chainGeneric):
2749         (tests.chainStruct):
2750         (tests.chainStructNewlyValid):
2751         (tests.chainStructDevice):
2752         (tests.paramChainStructDevice):
2753         (tests.simpleProtocolExtends):
2754         (tests.protocolExtendsTwo):
2755         (tests.prefixPlusPlus):
2756         (tests.prefixPlusPlusResult):
2757         (tests.postfixPlusPlus):
2758         (tests.postfixPlusPlusResult):
2759         (tests.prefixMinusMinus):
2760         (tests.prefixMinusMinusResult):
2761         (tests.postfixMinusMinus):
2762         (tests.postfixMinusMinusResult):
2763         (tests.plusEquals):
2764         (tests.plusEqualsResult):
2765         (tests.minusEquals):
2766         (tests.minusEqualsResult):
2767         (tests.timesEquals):
2768         (tests.timesEqualsResult):
2769         (tests.divideEquals):
2770         (tests.divideEqualsResult):
2771         (tests.twoIntLiterals):
2772         (tests.unifyDifferentLiterals):
2773         (tests.unifyDifferentLiteralsBackwards):
2774         (tests.unifyVeryDifferentLiterals):
2775         (tests.unifyVeryDifferentLiteralsBackwards):
2776         (tests.assignUintToInt):
2777         (tests.buildArrayThenSumIt):
2778         (tests.buildArrayThenSumItUsingArrayReference):
2779         (tests.overrideSubscriptStruct):
2780         (tests.overrideSubscriptStructAndDoStores):
2781         (tests.overrideSubscriptStructAndUsePointers):
2782         (tests.overrideSubscriptStructAndUsePointersIncorrectly):
2783         (tests.makeArrayRefFromLocal):
2784         (tests.makeArrayRefFromPointer):
2785         (tests.makeArrayRefFromArrayRef):
2786         (tests.simpleLength):
2787         (tests.nonArrayRefArrayLengthSucceed):
2788         (tests.nonArrayRefArrayLengthFail):
2789         (tests.constexprIsNotLValuePtr):
2790         (tests.constexprIsNotLValueAssign):
2791         (tests.constexprIsNotLValueRMW):
2792         (tests.assignLength):
2793         (tests.assignLengthHelper):
2794         (tests.simpleGetter):
2795         (tests.simpleSetter):
2796         (tests.genericAccessors):
2797         (tests.bitSubscriptAccessor):
2798         (tests.nestedSubscriptLValueEmulationSimple):
2799         (tests.nestedSubscriptLValueEmulationGeneric):
2800         (tests.boolBitAnd):
2801         (tests.boolBitOr):
2802         (tests.boolBitXor):
2803         (tests.boolBitNot):
2804         (tests.intBitAnd):
2805         (tests.intBitOr):
2806         (tests.intBitXor):
2807         (tests.intBitNot):
2808         (tests.intLShift):
2809         (tests.intRShift):
2810         (tests.uintBitAnd):
2811         (tests.uintBitOr):
2812         (tests.uintBitXor):
2813         (tests.uintBitNot):
2814         (tests.uintLShift):
2815         (tests.uintRShift):
2816         (tests.uint8BitAnd):
2817         (tests.uint8BitOr):
2818         (tests.uint8BitXor):
2819         (tests.uint8BitNot):
2820         (tests.uint8LShift):
2821         (tests.uint8RShift):
2822         (tests.floatMath):
2823         (tests.genericCastInfer):
2824         (tests.booleanMath):
2825         (tests.typedefArray):
2826         (tests.shaderTypes):
2827         (tests.builtinVectors):
2828         (tests.instantiateStructInStruct):
2829         (tests.instantiateStructInStructWithInt2):
2830         (tests.simpleEnum):
2831         (tests.enumWithManualValues):
2832         (tests.enumWithoutZero):
2833         (tests.enumDuplicates):
2834         (tests.enumWithSomeManualValues):
2835         (tests.enumConstexprGenericFunction):
2836         (tests.enumConstexprGenericStruct):
2837         (tests.trap):
2838         (tests.swizzle):
2839         (tests.enumWithExplicitIntBase):
2840         (tests.enumWithUintBase):
2841         (tests.enumFloatBase):
2842         (tests.enumPtrBase):
2843         (tests.enumArrayRefBase):
2844         (tests.emptyStruct):
2845         (tests.enumStructBase):
2846         (tests.enumNoMembers):
2847         (tests.simpleSwitch):
2848         (tests.exhaustiveUint8Switch):
2849         (tests.notQuiteExhaustiveUint8Switch):
2850         (tests.notQuiteExhaustiveUint8SwitchWithDefault):
2851         (tests.switchFallThrough):
2852         (tests.switchBreak):
2853         (tests.enumSwitchBreakExhaustive):
2854         (tests.enumSwitchBreakNotQuiteExhaustive):
2855         (tests.enumSwitchBreakNotQuiteExhaustiveWithDefault):
2856         (tests.simpleRecursiveStruct):
2857         (tests.mutuallyRecursiveStruct):
2858         (tests.mutuallyRecursiveStructWithPointersBroken):
2859         (tests.mutuallyRecursiveStructWithPointers):
2860         (tests.linkedList):
2861         (tests.pointerToPointer):
2862         (tests.arrayRefToArrayRef):
2863         (tests.pointerGetter):
2864         (tests.loneSetter):
2865         (tests.setterWithMismatchedType):
2866         (tests.setterWithMatchedType):
2867         (tests.operatorWithUninferrableTypeVariable):
2868         (tests.operatorWithoutUninferrableTypeVariable):
2869         (tests.operatorCastWithUninferrableTypeVariable):
2870         (tests.operatorCastWithTypeVariableInferredFromReturnType):
2871         (tests.incWrongArgumentLength):
2872         (tests.decWrongArgumentLength):
2873         (tests.incWrongTypes):
2874         (tests.decWrongTypes):
2875         (tests.plusWrongArgumentLength):
2876         (tests.minusWrongArgumentLength):
2877         (tests.timesWrongArgumentLength):
2878         (tests.divideWrongArgumentLength):
2879         (tests.moduloWrongArgumentLength):
2880         (tests.bitAndWrongArgumentLength):
2881         (tests.bitOrWrongArgumentLength):
2882         (tests.bitXorWrongArgumentLength):
2883         (tests.lShiftWrongArgumentLength):
2884         (tests.rShiftWrongArgumentLength):
2885         (tests.bitNotWrongArgumentLength):
2886         (tests.equalsWrongArgumentLength):
2887         (tests.lessThanWrongArgumentLength):
2888         (tests.lessEqualWrongArgumentLength):
2889         (tests.greaterWrongArgumentLength):
2890         (tests.greaterEqualWrongArgumentLength):
2891         (tests.equalsWrongReturnType):
2892         (tests.notEqualsOverload):
2893         (tests.lessThanWrongReturnType):
2894         (tests.lessEqualWrongReturnType):
2895         (tests.greaterThanWrongReturnType):
2896         (tests.greaterEqualWrongReturnType):
2897         (tests.dotOperatorWrongArgumentLength):
2898         (tests.dotOperatorSetterWrongArgumentLength):
2899         (tests.loneSetterPointer):
2900         (tests.setterWithNoGetterOverload):
2901         (tests.setterWithNoGetterOverloadFixed):
2902         (tests.anderWithNothingWrong):
2903         (tests.anderWithWrongNumberOfArguments):
2904         (tests.anderDoesntReturnPointer):
2905         (tests.anderDoesntTakeReference):
2906         (tests.anderWithArrayRef):
2907         (tests.pointerIndexGetter):
2908         (tests.loneIndexSetter):
2909         (tests.notLoneIndexSetter):
2910         (tests.indexSetterWithMismatchedType):
2911         (tests.indexOperatorWrongArgumentLength):
2912         (tests.indexOperatorSetterWrongArgumentLength):
2913         (tests.loneIndexSetterPointer):
2914         (tests.indexSetterWithNoGetterOverload):
2915         (tests.indexSetterWithNoGetterOverloadFixed):
2916         (tests.indexAnderWithNothingWrong):
2917         (tests.indexAnderWithWrongNumberOfArguments):
2918         (tests.indexAnderDoesntReturnPointer):
2919         (tests.indexAnderDoesntTakeReference):
2920         (tests.indexAnderWithArrayRef):
2921         (tests.devicePtrPtr):
2922         (tests.threadgroupPtrPtr):
2923         (tests.constantPtrPtr):
2924         (tests.pointerIndexGetterInProtocol):
2925         (tests.loneIndexSetterInProtocol):
2926         (tests.notLoneIndexSetterInProtocol):
2927         (tests.indexSetterWithMismatchedTypeInProtocol):
2928         (tests.indexOperatorWrongArgumentLengthInProtocol):
2929         (tests.indexOperatorSetterWrongArgumentLengthInProtocol):
2930         (tests.loneIndexSetterPointerInProtocol):
2931         (tests.indexSetterWithNoGetterOverloadInProtocol):
2932         (tests.indexSetterWithNoGetterOverloadFixedInProtocol):
2933         (tests.indexAnderWithNothingWrongInProtocol):
2934         (tests.indexAnderWithWrongNumberOfArgumentsInProtocol):
2935         (tests.indexAnderDoesntReturnPointerInProtocol):
2936         (tests.indexAnderDoesntTakeReferenceInProtocol):
2937         (tests.indexAnderWithArrayRefInProtocol):
2938         (doTest):
2939         (this.window.let._.of.doTest):
2940         (TEST_literalBool): Deleted.
2941         (TEST_identityBool): Deleted.
2942         (TEST_intSimpleMath): Deleted.
2943         (TEST_uintSimpleMath): Deleted.
2944         (TEST_uint8SimpleMath): Deleted.
2945         (TEST_equality): Deleted.
2946         (TEST_logicalNegation): Deleted.
2947         (TEST_notEquality): Deleted.
2948         (TEST_equalityTypeFailure): Deleted.
2949         (): Deleted.
2950         (TEST_add1): Deleted.
2951         (TEST_simpleGeneric): Deleted.
2952         (TEST_nameResolutionFailure): Deleted.
2953         (TEST_simpleAssignment): Deleted.
2954         (TEST_simpleDefault): Deleted.
2955         (TEST_simpleDereference): Deleted.
2956         (TEST_dereferenceStore): Deleted.
2957         (TEST_simpleMakePtr): Deleted.
2958         (TEST_threadArrayLoad): Deleted.
2959         (TEST_threadArrayLoadIntLiteral): Deleted.
2960         (TEST_deviceArrayLoad): Deleted.
2961         (TEST_threadArrayStore): Deleted.
2962         (TEST_deviceArrayStore): Deleted.
2963         (TEST_deviceArrayStoreIntLiteral): Deleted.
2964         (TEST_simpleProtocol): Deleted.
2965         (TEST_typeMismatchReturn): Deleted.
2966         (TEST_simpleNoReturn): Deleted.
2967         (TEST_genericStructInstance): Deleted.
2968         (TEST_doubleGenericCallsDoubleGeneric): Deleted.
2969         (TEST_doubleGenericCallsSingleGeneric): Deleted.
2970         (TEST_dereferenceDefaultNull): Deleted.
2971         (TEST_dereferenceDefaultNullArrayRef): Deleted.
2972         (TEST_returnIntLiteralDouble): Deleted.
2973         (TEST_badIntLiteralForInt): Deleted.
2974         (TEST_passNullAndNotNullFullPoly): Deleted.
2975         (TEST_passNullAndNotNullFullPolyReverse): Deleted.
2976         (TEST_nullTypeVariableUnify.recurse): Deleted.
2977         (TEST_nullTypeVariableUnify.everyOrder): Deleted.
2978         (TEST_nullTypeVariableUnify.everyPair): Deleted.
2979         (TEST_nullTypeVariableUnify): Deleted.
2980         (TEST_simpleRecursion): Deleted.
2981         (TEST_protocolPolySigPolyDef): Deleted.
2982         (TEST_protocolDoublePolySigDoublePolyDef): Deleted.
2983         (TEST_protocolDoublePolySigDoublePolyDefExplicit): Deleted.
2984         (TEST_variableShadowing): Deleted.
2985         (TEST_ifStatement): Deleted.
2986         (TEST_ifElseStatement): Deleted.
2987         (TEST_ifElseIfStatement): Deleted.
2988         (TEST_ifElseIfElseStatement): Deleted.
2989         (TEST_returnIf): Deleted.
2990         (TEST_simpleWhile): Deleted.
2991         (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
2992         (TEST_intOverloadResolution): Deleted.
2993         (TEST_intOverloadResolutionReverseOrder): Deleted.
2994         (TEST_intOverloadResolutionGeneric): Deleted.
2995         (TEST_intLiteralGeneric): Deleted.
2996         (TEST_intLiteralGenericWithProtocols): Deleted.
2997         (TEST_uintLiteralGeneric): Deleted.
2998         (TEST_uintLiteralGenericWithProtocols): Deleted.
2999         (TEST_intLiteralGenericSpecific): Deleted.
3000         (TEST_simpleConstexpr): Deleted.
3001         (TEST_break): Deleted.
3002         (TEST_forLoop): Deleted.
3003         (TEST_chainConstexpr): Deleted.
3004         (TEST_chainGeneric): Deleted.
3005         (TEST_chainStruct): Deleted.
3006         (TEST_chainStructNewlyValid): Deleted.
3007         (TEST_chainStructDevice): Deleted.
3008         (TEST_paramChainStructDevice): Deleted.
3009         (TEST_simpleProtocolExtends): Deleted.
3010         (TEST_protocolExtendsTwo): Deleted.
3011         (TEST_prefixPlusPlus): Deleted.
3012         (TEST_prefixPlusPlusResult): Deleted.
3013         (TEST_postfixPlusPlus): Deleted.
3014         (TEST_postfixPlusPlusResult): Deleted.
3015         (TEST_prefixMinusMinus): Deleted.
3016         (TEST_prefixMinusMinusResult): Deleted.
3017         (TEST_postfixMinusMinus): Deleted.
3018         (TEST_postfixMinusMinusResult): Deleted.
3019         (TEST_plusEquals): Deleted.
3020         (TEST_plusEqualsResult): Deleted.
3021         (TEST_minusEquals): Deleted.
3022         (TEST_minusEqualsResult): Deleted.
3023         (TEST_timesEquals): Deleted.
3024         (TEST_timesEqualsResult): Deleted.
3025         (TEST_divideEquals): Deleted.
3026         (TEST_divideEqualsResult): Deleted.
3027         (TEST_twoIntLiterals): Deleted.
3028         (TEST_unifyDifferentLiterals): Deleted.
3029         (TEST_buildArrayThenSumItUsingArrayReference): Deleted.
3030         (TEST_overrideSubscriptStruct): Deleted.
3031         (TEST_overrideSubscriptStructAndDoStores): Deleted.
3032         (TEST_overrideSubscriptStructAndUsePointers): Deleted.
3033         (TEST_overrideSubscriptStructAndUsePointersIncorrectly): Deleted.
3034         (TEST_makeArrayRefFromPointer): Deleted.
3035         (TEST_makeArrayRefFromArrayRef): Deleted.
3036         (TEST_nonArrayRefArrayLengthSucceed): Deleted.
3037         (TEST_nonArrayRefArrayLengthFail): Deleted.
3038         (TEST_simpleSetter): Deleted.
3039         (TEST_genericAccessors): Deleted.
3040         (TEST_bitSubscriptAccessor): Deleted.
3041         (TEST_nestedSubscriptLValueEmulationSimple): Deleted.
3042         (TEST_nestedSubscriptLValueEmulationGeneric): Deleted.
3043         (TEST_boolBitAnd): Deleted.
3044         (TEST_boolBitOr): Deleted.
3045         (TEST_boolBitXor): Deleted.
3046         (TEST_boolBitNot): Deleted.
3047         (TEST_intBitAnd): Deleted.
3048         (TEST_intBitOr): Deleted.
3049         (TEST_intBitXor): Deleted.
3050         (TEST_intBitNot): Deleted.
3051         (TEST_intLShift): Deleted.
3052         (TEST_intRShift): Deleted.
3053         (TEST_uintBitAnd): Deleted.
3054         (TEST_uintBitOr): Deleted.
3055         (TEST_uintBitXor): Deleted.
3056         (TEST_uintBitNot): Deleted.
3057         (TEST_uintLShift): Deleted.
3058         (TEST_uintRShift): Deleted.
3059         (TEST_uint8BitAnd): Deleted.
3060         (TEST_uint8BitOr): Deleted.
3061         (TEST_uint8BitXor): Deleted.
3062         (TEST_uint8BitNot): Deleted.
3063         (TEST_uint8LShift): Deleted.
3064         (TEST_uint8RShift): Deleted.
3065         (TEST_floatMath): Deleted.
3066         (TEST_booleanMath): Deleted.
3067         (TEST_typedefArray): Deleted.
3068         (TEST_shaderTypes): Deleted.
3069         (TEST_instantiateStructInStruct): Deleted.
3070         (TEST_instantiateStructInStructWithInt2): Deleted.
3071         (TEST_simpleEnum): Deleted.
3072         (TEST_enumWithManualValues): Deleted.
3073         (TEST_enumWithoutZero): Deleted.
3074         (TEST_enumConstexprGenericFunction): Deleted.
3075         (TEST_enumConstexprGenericStruct): Deleted.
3076         (TEST_trap): Deleted.
3077         (TEST_enumWithExplicitIntBase): Deleted.
3078         (TEST_enumWithUintBase): Deleted.
3079         (TEST_enumFloatBase): Deleted.
3080         (TEST_enumStructBase): Deleted.
3081         (TEST_simpleSwitch): Deleted.
3082         (TEST_exhaustiveUint8Switch): Deleted.
3083         (TEST_notQuiteExhaustiveUint8Switch): Deleted.
3084         (TEST_switchFallThrough): Deleted.
3085         (TEST_switchBreak): Deleted.
3086         (TEST_enumSwitchBreakExhaustive): Deleted.
3087         (TEST_enumSwitchBreakNotQuiteExhaustive): Deleted.
3088         (TEST_simpleRecursiveStruct): Deleted.
3089         (TEST_linkedList): Deleted.
3090         * WebGPUShadingLanguageRI/Type.js:
3091         (Type.prototype.get isArray):
3092         * WebGPUShadingLanguageRI/TypeRef.js:
3093         (TypeRef.wrap):
3094         * WebGPUShadingLanguageRI/TypeVariableTracker.js:
3095         (TypeVariableTracker.prototype.set get return):
3096         (TypeVariableTracker.prototype.visitVariableRef):
3097         (TypeVariableTracker):
3098         * WebGPUShadingLanguageRI/Visitor.js:
3099         (Visitor.prototype.visitProtocolDecl):
3100         * WebGPUShadingLanguageRI/index.html:
3101
3102 2017-09-22  Matt Lewis  <jlewis3@apple.com>
3103
3104         Unreviewed, rolling out r222394.
3105
3106         This broke the Windows Debug Build.
3107
3108         Reverted changeset:
3109
3110         "Remove build-webkit's notion of feature flags having a
3111         default value"
3112         https://bugs.webkit.org/show_bug.cgi?id=177338
3113         http://trac.webkit.org/changeset/222394
3114
3115 2017-09-22  Tim Horton <timothy_horton@apple.com> and Michael Catanzaro <mcatanzaro@igalia.com>
3116
3117         Remove build-webkit's notion of feature flags having a default value
3118         https://bugs.webkit.org/show_bug.cgi?id=177338
3119
3120         Reviewed by Alex Christensen.
3121
3122         Delegate feature flag default values to the build system.
3123         (FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone)
3124
3125         * BuildSlaveSupport/build.webkit.org-config/config.json:
3126         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
3127         (Factory.__init__):
3128         Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable
3129         bots instead of --default-cmake-features.
3130
3131         * Scripts/build-webkit:
3132         (cMakeArgsFromFeatures):
3133         Default feature values to 'undef'.
3134         Remove the --default-cmake-features argument; it is now the default.
3135         Add --no-experimental-features to replace it.
3136         Stop printing the default feature flag value in the help.
3137         Avoid propagating undefined values to the build system;
3138         only mention flags that are overridden on the command line.
3139
3140         This has the nice side effect of using the default CMake features
3141         for CMake builds, but still allowing toggling of them using the
3142         prettier --FEATURE and --no-FEATURE arguments.
3143
3144         * Scripts/webkitdirs.pm:
3145         (generateBuildSystemFromCMakeProject):
3146         No longer need to suppress CMake warnings about unused arguments.
3147
3148         * Scripts/webkitperl/FeatureList.pm:
3149         Remove the default values from the feature list.
3150
3151 2017-09-21  Joseph Pecoraro  <pecoraro@apple.com>
3152
3153         Unreviewed, add the ability to skip a test262 test.
3154
3155         * Scripts/run-jsc-stress-tests:
3156         Other handlers have :skip but a few didn't.
3157
3158 2017-09-21  Ryan Haddad  <ryanhaddad@apple.com>
3159
3160         Change architecture for ios-ews queue to arm64.
3161         https://bugs.webkit.org/show_bug.cgi?id=177332
3162
3163         Reviewed by Alexey Proskuryakov.
3164
3165         * Scripts/webkitpy/common/config/ews.json:
3166
3167 2017-09-21  Tim Horton  <timothy_horton@apple.com>
3168
3169         Use 'ninja' from the SDK if it exists
3170         https://bugs.webkit.org/show_bug.cgi?id=177330
3171
3172         Reviewed by Alex Christensen.
3173
3174         * Scripts/webkitdirs.pm:
3175         (canUseNinja):
3176         Check for ninja with xcrun in addition to commandExists() for Cocoa platforms.
3177
3178         (generateBuildSystemFromCMakeProject):
3179         (canUseNinjaGenerator): Deleted.
3180         Remove canUseNinjaGenerator; as noted in bug 177057, the Ninja generator
3181         is available in all versions of CMake supported by WebKit.
3182
3183 2017-09-21  Chris Dumez  <cdumez@apple.com>
3184
3185         Regression(r222308): new API tests are failing for !NETWORK_SESSION
3186         https://bugs.webkit.org/show_bug.cgi?id=177321
3187
3188         Reviewed by Alex Christensen.
3189
3190         Unskip API tests now that they pass everywhere.
3191
3192         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
3193         (TEST):
3194
3195 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
3196
3197         Unreviewed, fix ability to run tests in browser.
3198
3199         * WebGPUShadingLanguageRI/Test.html:
3200         * WebGPUShadingLanguageRI/index.html:
3201
3202 2017-09-21  Jonathan Bedard  <jbedard@apple.com>
3203
3204         webkitpy: Ignore failure to get updated selenium version
3205         https://bugs.webkit.org/show_bug.cgi?id=177205
3206         <rdar://problem/34531669>
3207
3208         Reviewed by Lucas Forschler.
3209
3210         Sometime asking PyPI for the latest version of Selenium fails. We should try and
3211         fallback to, at a minimum, version 3.5.0 or a newer installed version.
3212
3213         * Scripts/webkitpy/thirdparty/__init__.py:
3214         (AutoinstallImportHook.greater_than_equal_to_version): Return true if the second
3215         version string is greater than or equal to the first version string.
3216         (AutoinstallImportHook._install_selenium): If we can't get the latest PyPI url,
3217         fallback to version 3.5.0 or a newer installed version.
3218
3219 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
3220
3221         WSL should have some post-instantiation type checking
3222         https://bugs.webkit.org/show_bug.cgi?id=177303
3223
3224         Reviewed by Keith Miller.
3225         
3226         This patch removes the Primitive protocol! Yay!
3227         
3228         The Primitive protocol was an attempt to handle the fact that Metal wouldn't allow us to point a
3229         non-thread pointer at data structures that have pointers. This type checking rule interacts badly with
3230         generics. I was able to get it to mostly work by making Primitive into a dynamic protocol - a type
3231         belongs to it if it happens to be isPrimitive.
3232         
3233         But that was a mistake, since it makes it hard to create pointers that are generic over address space.
3234         Also, it's not an appropriate rule for targeting SPIR-V logical mode. That rule will be different, and
3235         possibly more complicated.
3236         
3237         All of these kinds of rules are easier to implement of we run them after instantiation, since then they
3238         don't get in the way of generics. That's what this patch does.
3239         
3240         This means that we get all of the same type checking power as before, and we still can catch the errors
3241         that Metal requires us to check for. It's easier to do those checks now.
3242         
3243         Finally, this removes the shader type checker's incomplete reimplementation of isPrimitive (which was
3244         called NonNumericSearcher). The shader type checker calls isPrimitive now.
3245
3246         * WebGPUShadingLanguageRI/AddressSpace.js:
3247         (needsPrimitiveProtocol): Deleted.
3248         (protocolSuffix): Deleted.
3249         * WebGPUShadingLanguageRI/All.js:
3250         * WebGPUShadingLanguageRI/Checker.js:
3251         (Checker.prototype._checkShaderType):
3252         (Checker.prototype._checkShaderType.NonNumericSearcher): Deleted.
3253         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType): Deleted.
3254         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType): Deleted.
3255         (Checker.prototype.visitReferenceType): Deleted.
3256         * WebGPUShadingLanguageRI/FuncInstantiator.js:
3257         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
3258         * WebGPUShadingLanguageRI/Inline.js:
3259         (_inlineFunction):
3260         * WebGPUShadingLanguageRI/Intrinsics.js:
3261         (Intrinsics):
3262         * WebGPUShadingLanguageRI/LateChecker.js: Added.
3263         (LateChecker):
3264         (LateChecker.prototype.visitReferenceType):
3265         (LateChecker.prototype._checkShaderType):
3266         (LateChecker.prototype.visitFuncDef):
3267         * WebGPUShadingLanguageRI/LexerToken.js:
3268         (LexerToken.prototype.get isInternal): Deleted.
3269         * WebGPUShadingLanguageRI/NativeType.js:
3270         (NativeType):
3271         (NativeType.prototype.get name):
3272         (NativeType.prototype.get isPrimitive):
3273         (NativeType.prototype.set isPrimitive):
3274         (NativeType.prototype.toString):
3275         * WebGPUShadingLanguageRI/Parse.js:
3276         (parseNative):
3277         * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js:
3278         (programWithUnnecessaryThingsRemoved):
3279         * WebGPUShadingLanguageRI/ProtocolDecl.js:
3280         * WebGPUShadingLanguageRI/ReferenceType.js:
3281         (ReferenceType.prototype.get elementType):
3282         (ReferenceType.prototype.get isPrimitive): Deleted.
3283         * WebGPUShadingLanguageRI/StandardLibrary.js:
3284         * WebGPUShadingLanguageRI/StatementCloner.js:
3285         (StatementCloner.prototype.visitNativeType):
3286         * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:
3287         (synthesizeStructAccessors):
3288         * WebGPUShadingLanguageRI/Test.js:
3289         (TEST_passNullAndNotNullFullPoly):
3290         (TEST_passNullAndNotNullFullPolyReverse):
3291         (TEST_nullTypeVariableUnify):
3292         (TEST_chainStructNewlyValid):
3293         (TEST_chainStructDevice):
3294         (TEST_chainStructInvalid): Deleted.
3295         * WebGPUShadingLanguageRI/Type.js:
3296         (Type.prototype.get isPrimitive):
3297
3298 2017-09-21  Chris Dumez  <cdumez@apple.com>
3299
3300         Unreviewed, temporarily disable new API tests introduced in r222308 until they pass on El Capitan
3301
3302         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
3303         (TEST):
3304
3305 2017-09-21  Commit Queue  <commit-queue@webkit.org>
3306
3307         Unreviewed, rolling out r222272.
3308         https://bugs.webkit.org/show_bug.cgi?id=177316
3309
3310         This patch broke builds on some Win EWS bots. (Requested by
3311         perarne on #webkit).
3312
3313         Reverted changeset:
3314
3315         "[Win] Cygwin 64-bit EWS process cannot find Visual Studio
3316         installation."
3317         https://bugs.webkit.org/show_bug.cgi?id=177244
3318         http://trac.webkit.org/changeset/222272
3319
3320 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
3321
3322         Unreviewed, fix a bug in the interactive app that was introduced by bad merging.
3323
3324         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:
3325         (FlattenedStructOffsetGatherer.prototype.visitTypeRef):
3326         (FlattenedStructOffsetGatherer):
3327         * WebGPUShadingLanguageRI/index.html:
3328
3329 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
3330
3331         WSL should support switch
3332         https://bugs.webkit.org/show_bug.cgi?id=176978
3333
3334         Reviewed by Keith Miller.
3335         
3336         This adds fairly complete support for switch statements. This includes things like verifying
3337         whether or not a default statement is needed. This even works when the programmer lists all of
3338         the values of an integer type.
3339         
3340         To test that last part, this patch adds uint8 support. It's easy add it, but of course it
3341         meant adding a lot of tests.
3342         
3343         This also fixes enum bugs, since switch does things to enums that we previously didn't test.
3344
3345         * WebGPUShadingLanguageRI/All.js:
3346         * WebGPUShadingLanguageRI/Checker.js:
3347         (Checker.prototype.visitSwitchStatement):
3348         * WebGPUShadingLanguageRI/EnumLiteral.js:
3349         (EnumLiteral.prototype.get valueForSelectedType):
3350         * WebGPUShadingLanguageRI/EnumType.js:
3351         (EnumType.prototype.allValues):
3352         (EnumType.prototype.valuesEqual):
3353         * WebGPUShadingLanguageRI/Evaluator.js:
3354         (Evaluator.prototype.visitSwitchStatement):
3355         * WebGPUShadingLanguageRI/Inliner.js:
3356         (Inliner.prototype.visitCallExpression):
3357         (Inliner):
3358         (Inliner.prototype.visitCastExpression): Deleted.
3359         * WebGPUShadingLanguageRI/Intrinsics.js:
3360         (Intrinsics.):
3361         (Intrinsics):
3362         * WebGPUShadingLanguageRI/LoopChecker.js:
3363         (LoopChecker):
3364         (LoopChecker.prototype.visitFuncDef):
3365         (LoopChecker.prototype.visitWhileLoop):
3366         (LoopChecker.prototype.visitDoWhileLoop):
3367         (LoopChecker.prototype.visitForLoop):
3368         (LoopChecker.prototype.visitSwitchStatement):
3369         (LoopChecker.prototype.visitBreak):
3370         (LoopChecker.prototype.visitContinue):
3371         * WebGPUShadingLanguageRI/Node.js:
3372         (Node.prototype.commit):
3373         * WebGPUShadingLanguageRI/Parse.js:
3374         (parseSwitchCase):
3375         (parseSwitchStatement):
3376         (parseStatement):
3377         (parseBlockBody):
3378         (parseBlock):
3379         * WebGPUShadingLanguageRI/Prepare.js:
3380         (let.prepare):
3381         * WebGPUShadingLanguageRI/ReturnChecker.js:
3382         (ReturnChecker.prototype._mergeReturnStyle):
3383         (ReturnChecker.prototype.visitIfStatement):
3384         (ReturnChecker.prototype.visitWhileLoop):
3385         (ReturnChecker.prototype.visitDoWhileLoop):
3386         (ReturnChecker.prototype.visitForLoop):
3387         (ReturnChecker.prototype.visitSwitchStatement):
3388         (ReturnChecker.prototype.visitContinue):
3389         (ReturnChecker):
3390         * WebGPUShadingLanguageRI/Rewriter.js:
3391         (Rewriter.prototype.visitSwitchStatement):
3392         (Rewriter.prototype.visitSwitchCase):
3393         * WebGPUShadingLanguageRI/StandardLibrary.js:
3394         (uint8.operator):
3395         (bool.operator):
3396         (_generateSwizzle):
3397         * WebGPUShadingLanguageRI/SwitchCase.js: Added.
3398         (SwitchCase):
3399         (SwitchCase.prototype.get origin):
3400         (SwitchCase.prototype.get isDefault):
3401         (SwitchCase.prototype.get value):
3402         (SwitchCase.prototype.get body):
3403         (SwitchCase.prototype.toString):
3404         * WebGPUShadingLanguageRI/SwitchStatement.js: Added.
3405         (SwitchStatement):
3406         (SwitchStatement.prototype.get origin):
3407         (SwitchStatement.prototype.get value):
3408         (SwitchStatement.prototype.add):
3409         (SwitchStatement.prototype.get switchCases):
3410         (SwitchStatement.prototype.toString):
3411         * WebGPUShadingLanguageRI/Test.html:
3412         * WebGPUShadingLanguageRI/Test.js:
3413         (makeUint8):
3414         (makeEnum):
3415         (checkUint8):
3416         (TEST_uint8SimpleMath):
3417         (TEST_equality):
3418         (TEST_notEquality):
3419         (TEST_uint8BitAnd):
3420         (TEST_uint8BitOr):
3421         (TEST_uint8BitXor):
3422         (TEST_uint8BitNot):
3423         (TEST_uint8LShift):
3424         (TEST_uint8RShift):
3425         (TEST_enumWithExplicitIntBase):
3426         (TEST_enumWithUintBase):
3427         (TEST_enumFloatBase):
3428         (TEST_enumStructBase):
3429         (TEST_simpleSwitch):
3430         (TEST_exhaustiveUint8Switch):
3431         (TEST_notQuiteExhaustiveUint8Switch):
3432         (TEST_switchFallThrough):
3433         (TEST_switchBreak):
3434         (TEST_enumSwitchBreakExhaustive):
3435         (TEST_enumSwitchBreakNotQuiteExhaustive):
3436         (doTest):
3437         * WebGPUShadingLanguageRI/UnificationContext.js:
3438         (UnificationContext):
3439         (UnificationContext.prototype.addExtraNode):
3440         (UnificationContext.prototype.get nodes):
3441         * WebGPUShadingLanguageRI/Visitor.js:
3442         (Visitor.prototype.visitProtocolDecl):
3443         * WebGPUShadingLanguageRI/index.html:
3444
3445 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
3446
3447         WSL needs a way to verify that structs are not cyclic
3448         https://bugs.webkit.org/show_bug.cgi?id=177044
3449
3450         Reviewed by Myles Maxfield.
3451         
3452         This adds a recursive type checking phase. Even before adding this phase, the compiler would
3453         successfully detect recursive types - but at the cost of also rejecting programs that had
3454         recursive types indirectly through pointers. To make both things work, I had to change Visitor
3455         to no longer visit TypeRef.type by default. This resulted in some other changes in a few other
3456         parts of the code that previously relied on that behavior.
3457
3458         * WebGPUShadingLanguageRI/All.js:
3459         * WebGPUShadingLanguageRI/CheckRecursiveTypes.js: Added.
3460         (checkRecursiveTypes):
3461         * WebGPUShadingLanguageRI/Checker.js:
3462         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
3463         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
3464         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitTypeRef):
3465         (Checker.prototype._checkShaderType.NonNumericSearcher):
3466         (Checker.prototype._checkShaderType):
3467         (Checker.prototype.visitTypeRef):
3468         * WebGPUShadingLanguageRI/NameResolver.js:
3469         (NameResolver.prototype.visitProtocolDecl):
3470         * WebGPUShadingLanguageRI/Prepare.js:
3471         (let.prepare):
3472         * WebGPUShadingLanguageRI/RecursiveTypeChecker.js: Added.
3473         (RecursiveTypeChecker):
3474         (RecursiveTypeChecker.prototype.visitFuncDef):
3475         (RecursiveTypeChecker.prototype.visitNativeFunc):
3476         (RecursiveTypeChecker.prototype.visitStructType):
3477         (RecursiveTypeChecker.prototype.visitReferenceType):
3478         (RecursiveTypeChecker.prototype.visitTypeRef):
3479         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
3480         (StructLayoutBuilder.prototype.visitTypeRef):
3481         (StructLayoutBuilder):
3482         * WebGPUShadingLanguageRI/Test.html:
3483         * WebGPUShadingLanguageRI/Test.js:
3484         (TEST_simpleRecursiveStruct):
3485         * WebGPUShadingLanguageRI/TypeDefResolver.js:
3486         (TypeDefResolver.prototype.visitTypeRef):
3487         (TypeDefResolver):
3488         * WebGPUShadingLanguageRI/Visitor.js:
3489         (Visitor.prototype.visitProtocolDecl):
3490         * WebGPUShadingLanguageRI/index.html:
3491
3492 2017-09-21  Ryan Haddad  <ryanhaddad@apple.com>
3493
3494         Update TestResultsServer for iOS 11 queues.
3495         https://bugs.webkit.org/show_bug.cgi?id=177285
3496
3497         Reviewed by Alexey Proskuryakov.
3498
3499         * TestResultServer/static-dashboards/builders.jsonp:
3500
3501 2017-09-21  Alex Christensen  <achristensen@webkit.org>
3502
3503         REGRESSION(r221465) WKWebViews without WebGL delegate callbacks crash when WebGL contexts are created
3504         https://bugs.webkit.org/show_bug.cgi?id=177306
3505         <rdar://problem/34351988>
3506
3507         Reviewed by Chris Dumez.
3508
3509         * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm:
3510         (-[WebGLTestDelegate webView:startURLSchemeTask:]):
3511         (-[DelegateWithoutWebGL webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3512         (TEST):
3513
3514 2017-09-20  Joseph Pecoraro  <pecoraro@apple.com>
3515
3516         Update test262 tests
3517         https://bugs.webkit.org/show_bug.cgi?id=177220
3518
3519         Reviewed by Saam Barati and Yusuke Suzuki.
3520
3521         * Scripts/import-test262-tests:
3522         - better detect upstream git repository url from import location
3523         - update JSTest test262 resources when importing from repository
3524         - take seconds instead of 20+ minutes to write yaml with --failures
3525         - update "negative" command to only include just the exception type
3526
3527 2017-09-20  Chris Dumez  <cdumez@apple.com>
3528
3529         [WK2] Add API to get the redirect chain of a WKDownload
3530         https://bugs.webkit.org/show_bug.cgi?id=176628
3531         <rdar://problem/34338279>
3532
3533         Reviewed by Alex Christensen.
3534
3535         Add API test coverage for the 2 cases:
3536         1. Download started as a download and is redirected while
3537            downloading.
3538         2. Download started as a load and was redirected during the
3539            initial load.
3540
3541         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
3542         (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]):
3543         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
3544         (TEST):
3545
3546 2017-09-20  Alex Christensen  <achristensen@webkit.org>
3547
3548         Add infrastructure for adding custom headers to requests per website
3549         https://bugs.webkit.org/show_bug.cgi?id=177255
3550
3551         Reviewed by Geoffrey Garen.
3552
3553         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3554         * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp: Added.
3555         (shouldRemainUnchanged):
3556         (shouldBeInvalid):
3557         (shouldBecome):
3558         (TEST):
3559         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
3560         (TEST):
3561
3562 2017-09-20  Daniel Bates  <dabates@apple.com>
3563
3564         Spelling and grammar dots should not overlap
3565         https://bugs.webkit.org/show_bug.cgi?id=177265
3566         <rdar://problem/34556424>
3567
3568         Reviewed by David Hyatt.
3569
3570         Add unit tests for the subdivision algorithm.
3571
3572         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3573         * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Added.
3574         (WebCore::operator<<):
3575         (WebCore::operator==):
3576         (TestWebKitAPI::TEST):
3577
3578 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
3579
3580         WSL should not type-check functions in the standard library that it does not use
3581         https://bugs.webkit.org/show_bug.cgi?id=177269
3582
3583         Reviewed by JS Bastien.
3584         
3585         Once we added all of the swizzling operators, the size of the standard library ballooned to the point
3586         where it's just not practical to compile anything anymore. If you want to compile
3587         "int foo(int x) { return x}" then it will take some ridiculous amount of time (many seconds) because WSL
3588         will have to type check all of those swizzling operators.
3589         
3590         This change makes it so that after parsing the whole program, we remove the things that we aren't using.
3591         We can make a really good estimate of what we need even before doing any name resolution. In practice,
3592         this change removes almost all of the things from Program before we get to the hard work of type
3593         checking. That's true because the standard library contains _many_ things and you'd have to try very
3594         hard to use all of them.
3595         
3596         This is a 13x speed-up for Test.js. It went from 155 seconds to 12 seconds on my machine.
3597
3598         * WebGPUShadingLanguageRI/All.js:
3599         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
3600         (ConstexprTypeParameter.prototype.get origin):
3601         * WebGPUShadingLanguageRI/Intrinsics.js:
3602         * WebGPUShadingLanguageRI/Lexer.js:
3603         (Lexer):
3604         (Lexer.prototype.get originKind):
3605         * WebGPUShadingLanguageRI/LexerToken.js:
3606         (LexerToken.prototype.get lexer):
3607         (LexerToken.prototype.get origin):
3608         (LexerToken.prototype.get originKind):
3609         (LexerToken.prototype.get isInternal):
3610         * WebGPUShadingLanguageRI/NameContext.js:
3611         (isWildcardKind):
3612         (NameContext.prototype.add):
3613         (NameContext.prototype.get let):
3614         (NameContext.prototype.mapFor): Deleted.
3615         * WebGPUShadingLanguageRI/NameFinder.js: Added.
3616         (NameFinder):
3617         (NameFinder.get worklist):
3618         * WebGPUShadingLanguageRI/NameResolver.js:
3619         (NameResolver.prototype.visitProtocolDecl):
3620         * WebGPUShadingLanguageRI/OriginKind.js: Added.
3621         (isOriginKind):
3622         * WebGPUShadingLanguageRI/Prepare.js:
3623         (let.prepare):
3624         * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js: Added.
3625         (programWithUnnecessaryThingsRemoved):
3626         * WebGPUShadingLanguageRI/Test.html:
3627         * WebGPUShadingLanguageRI/Test.js:
3628         (doTest):
3629         * WebGPUShadingLanguageRI/index.html:
3630
3631 2017-09-20  Alex Christensen  <achristensen@webkit.org>
3632
3633         Remove ActionType::CSSDisplayNoneStyleSheet
3634         https://bugs.webkit.org/show_bug.cgi?id=177275
3635
3636         Reviewed by Andy Estes.
3637
3638         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
3639         (WebCore::ContentExtensions::operator<<):
3640         (TestWebKitAPI::testRequest):
3641         (TestWebKitAPI::TEST_F):
3642
3643 2017-09-20  Jonathan Bedard  <jbedard@apple.com>
3644
3645         Device iOS 11 builds fail with FileProvider linker errors
3646         https://bugs.webkit.org/show_bug.cgi?id=177272
3647         <rdar://problem/34557680>
3648
3649         Reviewed by David Kilzer.
3650
3651         For iOS device and simulator, the SYSTEM_LIBRARY_DIR should never
3652         be on the framework search path as neither platform should ever link
3653         with Mac frameworks.
3654
3655         * DumpRenderTree/mac/Configurations/Base.xcconfig:
3656         * WebKitTestRunner/Configurations/Base.xcconfig:
3657
3658 2017-09-20  Alex Christensen  <achristensen@webkit.org>
3659
3660         Remove ActionType::InvalidAction
3661         https://bugs.webkit.org/show_bug.cgi?id=177262
3662
3663         Reviewed by Tim Horton.
3664
3665         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
3666         (WebCore::ContentExtensions::operator<<):
3667
3668 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
3669
3670         Make a playground where people can try WSL
3671         https://bugs.webkit.org/show_bug.cgi?id=177125
3672
3673         Reviewed by Filip Pizlo.
3674
3675         This patch creates a webpage, index.html, which lets users type in a WSL program and
3676         run it, and see the results.
3677
3678         * WebGPUShadingLanguageRI/All.js:
3679         * WebGPUShadingLanguageRI/CallFunction.js:
3680         (callFunction):
3681         * WebGPUShadingLanguageRI/Checker.js:
3682         (Checker):
3683         (Checker.prototype._checkShaderType.NonNumericSearcher):
3684         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
3685         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
3686         (Checker.prototype._checkShaderType):
3687         (Checker.prototype.visitFuncDef):
3688         (Checker.prototype._requireBool):
3689         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js: Copied from Tools/WebGPUShadingLanguageRI/CallFunction.js.
3690         (FlattenedStructOffsetGatherer):
3691         (FlattenedStructOffsetGatherer.prototype.get result):
3692         (FlattenedStructOffsetGatherer.prototype.visitReferenceType):
3693         (FlattenedStructOffsetGatherer.prototype.visitField):
3694         (FlattenedStructOffsetGatherer.prototype.visitNativeType):
3695         * WebGPUShadingLanguageRI/Func.js:
3696         (Func.prototype.toDeclString):
3697         * WebGPUShadingLanguageRI/Inline.js:
3698         (resolveInlinedFunction):
3699         * WebGPUShadingLanguageRI/NameContext.js:
3700         (NameContext.prototype.get let):
3701         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
3702         (resolveOverloadImpl):
3703         * WebGPUShadingLanguageRI/StandardLibrary.js:
3704         * WebGPUShadingLanguageRI/Test.html:
3705         * WebGPUShadingLanguageRI/Test.js:
3706         (TEST_shaderTypes):
3707         * WebGPUShadingLanguageRI/index.html: Added.
3708
3709 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
3710
3711         [WSL] Restrict vertex and fragment entry points according to WSL.md
3712         https://bugs.webkit.org/show_bug.cgi?id=177253
3713
3714         Reviewed by Filip Pizlo.
3715
3716         Entry points can't have template arguments, and their argument/return types need to be restricted.
3717
3718         * WebGPUShadingLanguageRI/Checker.js:
3719         (Checker):
3720         (Checker.prototype._checkShaderType.NonNumericSearcher):
3721         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
3722         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
3723         (Checker.prototype._checkShaderType):
3724         (Checker.prototype.visitFuncDef):
3725         (Checker.prototype._requireBool):
3726         * WebGPUShadingLanguageRI/Func.js:
3727         (Func.prototype.toDeclString):
3728         * WebGPUShadingLanguageRI/Test.js:
3729         (TEST_shaderTypes):
3730
3731 2017-09-20  Per Arne Vollan  <pvollan@apple.com>
3732
3733         [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
3734         https://bugs.webkit.org/show_bug.cgi?id=177244
3735
3736         Reviewed by Alex Christensen.
3737
3738         The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
3739
3740         * EWSTools/start-queue-win.sh:
3741
3742 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
3743
3744         Create vector swizzle operators in WSL's standard library
3745         https://bugs.webkit.org/show_bug.cgi?id=177116
3746
3747         Reviewed by Filip Pizlo.
3748
3749         Because there are 481 possible swizzling operators, StandardLibrary.js generates them
3750         instead of including them by hand.
3751
3752         Adding so many functions slows down the compiler quite a bit.
3753
3754         * WebGPUShadingLanguageRI/Prepare.js:
3755         (prepare):
3756         * WebGPUShadingLanguageRI/StandardLibrary.js:
3757         (intToString):
3758         (_generateSwizzle):
3759
3760 2017-09-20  Ms2ger  <Ms2ger@igalia.com>
3761
3762         [WPE] Update fontconfig to 2.12.4.
3763         https://bugs.webkit.org/show_bug.cgi?id=177228
3764
3765         Reviewed by Carlos Garcia Campos.
3766
3767         * wpe/jhbuild.modules:
3768         * wpe/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS-18.patch: Removed.
3769
3770 2017-09-19  Myles C. Maxfield  <mmaxfield@apple.com>
3771
3772         WSL should be able to trap when something fatal happens
3773         https://bugs.webkit.org/show_bug.cgi?id=177110
3774
3775         Reviewed by Filip Pizlo.
3776
3777         WSL programs can include a statement "trap;" which causes the entry
3778         point to immediately return the default value of its return type.
3779         This is implemented by throw/catch and populateDefaultValue().
3780
3781         * WebGPUShadingLanguageRI/All.js:
3782         * WebGPUShadingLanguageRI/EvaluationCommon.js:
3783         * WebGPUShadingLanguageRI/Evaluator.js:
3784         (Evaluator.prototype.visitTrapStatement):
3785         * WebGPUShadingLanguageRI/Parse.js:
3786         (parseStatement):
3787         * WebGPUShadingLanguageRI/ReturnChecker.js:
3788         (ReturnChecker.prototype.visitTrapStatement):
3789         * WebGPUShadingLanguageRI/Rewriter.js:
3790         (Rewriter.prototype.visitTrapStatement):
3791         * WebGPUShadingLanguageRI/StandardLibrary.js:
3792         * WebGPUShadingLanguageRI/Test.html:
3793         * WebGPUShadingLanguageRI/Test.js:
3794         * WebGPUShadingLanguageRI/TrapStatement.js: Copied from Tools/WebGPUShadingLanguageRI/EvaluationCommon.js.
3795         (TrapStatement):
3796         (TrapStatement.prototype.get origin):
3797         (TrapStatement.prototype.toString):
3798         * WebGPUShadingLanguageRI/Visitor.js:
3799         (Visitor.prototype.visitProtocolDecl):
3800
3801 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
3802
3803         Unreviewed follow-up to r222229, remove invalid triggers.
3804
3805         * BuildSlaveSupport/build.webkit.org-config/config.json:
3806
3807 2017-09-19  Simon Fraser  <simon.fraser@apple.com>
3808
3809         tiled-drawing/tiled-backing-in-window.html fails on Retina displays
3810         https://bugs.webkit.org/show_bug.cgi?id=177113
3811
3812         Reviewed by Tim Horton.
3813
3814         This test removes the view from the window, and then dumps the layer tree, at which point
3815         some layers would report a contentsScale of 2 on Retina displays.
3816
3817         This occurs because WebKitTestRunner overrides the default device scale factor on NSWindow,
3818         but windowless views fall back to [NSScreen mainScreen].backingScaleFactor (in WebViewImpl::intrinsicDeviceScaleFactor()).
3819
3820         Fix by having PlatformWebView::changeWindowScaleIfNeeded() call -_setOverrideDeviceScaleFactor: on the view.
3821
3822         * WebKitTestRunner/mac/PlatformWebViewMac.mm:
3823         (WTR::PlatformWebView::changeWindowScaleIfNeeded):
3824
3825 2017-09-19  Wenson Hsieh  <wenson_hsieh@apple.com>
3826
3827         REGRESSION (r215613): Incorrect corners clipping with border-radius
3828         https://bugs.webkit.org/show_bug.cgi?id=176498
3829         <rdar://problem/34112607>
3830
3831         Reviewed by Tim Horton.
3832
3833         Add WebCore API tests for RoundedRect::contains().
3834
3835         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3836         * TestWebKitAPI/Tests/WebCore/RoundedRectTests.cpp: Added.
3837         (TestWebKitAPI::layoutRect):
3838         (TestWebKitAPI::TEST):
3839
3840 2017-09-19  Youenn Fablet  <youenn@apple.com>
3841
3842         Allow WTF::map to use any class that is iterable and has a size getter
3843         https://bugs.webkit.org/show_bug.cgi?id=177026
3844
3845         Reviewed by Darin Adler.
3846
3847         * TestWebKitAPI/Tests/WTF/Vector.cpp:
3848         (TestWebKitAPI::TEST):
3849
3850 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
3851
3852         Update bot configuration for iOS 11.
3853         https://bugs.webkit.org/show_bug.cgi?id=177165
3854
3855         Reviewed by Alexey Proskuryakov.
3856
3857         * BuildSlaveSupport/build.webkit.org-config/config.json:
3858         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
3859         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
3860         (BubbleQueueServer):
3861         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
3862         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
3863         (WebKitBuildbot):
3864         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
3865         (table.queue-grid tr.platform.ios-simulator-10 img.logo): Deleted.
3866         (table.queue-grid tr.platform.ios-10 img.logo): Deleted.
3867         * BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
3868         (_should_file_trigger_build):
3869         * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
3870         (ShouldBuildTest):
3871         (ShouldBuildTest.test_should_build):
3872
3873 2017-09-19  Filip Pizlo  <fpizlo@apple.com>
3874
3875         Primitive protocol should have capital name
3876         https://bugs.webkit.org/show_bug.cgi?id=177097
3877
3878         Reviewed by JF Bastien.
3879         
3880         As soon as I started programming in WSL, I found that I preferred to capitalize protocol names. So, my
3881         early decision to call the primitive protocol "primitive" instead of "Primitive" seems absurd now. This
3882         change reverses that decision.
3883         
3884         Aesthetically, this is a slight improvement. For example:
3885         
3886             struct Bar<T:Primitive> {
3887                 Foo<device T^> f;
3888             }
3889
3890         This makes more sense since all of the non-keyword type identifiers are capital.
3891         
3892         The one place where this is an aesthetic regression is native primitive typedefs, which now look like:
3893         
3894             native Primitive typedef bool;
3895         
3896         I'm happy with that tradeoff, since native typedefs are only in the standard library. Users don't see
3897         this.
3898
3899         * WebGPUShadingLanguageRI/AddressSpace.js:
3900         (protocolSuffix):
3901         * WebGPUShadingLanguageRI/Intrinsics.js:
3902         (Intrinsics):
3903         * WebGPUShadingLanguageRI/NativeType.js:
3904         (NativeType.prototype.toString):
3905         (NativeType):
3906         * WebGPUShadingLanguageRI/Parse.js:
3907         (parseNative):
3908         * WebGPUShadingLanguageRI/StandardLibrary.js:
3909         * WebGPUShadingLanguageRI/Test.js:
3910         (TEST_passNullAndNotNullFullPoly):
3911         (TEST_passNullAndNotNullFullPolyReverse):
3912
3913 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
3914
3915         Cannot put typedefs of templated structs inside structs
3916         https://bugs.webkit.org/show_bug.cgi?id=177123
3917
3918         Reviewed by Michael Saboff.
3919         
3920         Ever since I wrote the generic type instantiation code in WSL, it had a bizarre stink to it. I
3921         did not know what it was, until I met this test case:
3922         
3923             struct Foo { int2 x; }
3924         
3925         The problem was that Type has a getter called instantiatedType, which invoked
3926         InstantiateImmediates. That's great. Where we went wrong was that TypeRef overrode
3927         instantiatedType, and then InstantiateImmediates called TypeRef.instantiatedType from its
3928         visitTypeRef. What a mess. None of that was necessary for anything, and it was just wrong. This
3929         patch fixes it so that:
3930         
3931         - Type has an instantiatedType getter, which does InstantiateImmediates. I didn't change this.
3932           This was the only part of the status quo that really made sense.
3933         
3934         - TypeRef no longer overrides instantiatedType.
3935         
3936         - InstantianteImmediates.prototype.visitTypeRef now does what TypeRef's instantiatedType would
3937           have done.
3938         
3939         And voila! This test case passes and so do all of the other test cases.
3940         
3941         The reason why that specific test case did not work was that the use of a TypeDef (int2) for
3942         a generic type instantiation (vec2<int>) caused there to be two TypeRef's in a row, sorta like
3943         this, if we could use wrap() to denote a TypeRef that just wrapped another type:
3944         
3945             wrap(vec2<int>)
3946         
3947         We would call instantiatedType on this monstrosity. Since TypeRef overrode instantiatedType,
3948         we would stop there because that TypeRef has no type arguments - it's just a wrapper. Well,
3949         actually, we'd do something a bit stranger than stopping there - there's more to the story -
3950         but the effect was the same. Now we do InstantiateImmediates, which recursively builds a new
3951         type. This chews through the wrapper and then instantiates the wrapped type, as we want it to.
3952         Also, this approach no longer has the stink. instantiatedType isn't overriden by anyone
3953         anymore!
3954
3955         * WebGPUShadingLanguageRI/Checker.js:
3956         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
3957         (InstantiateImmediates.prototype.visitTypeRef):
3958         (InstantiateImmediates.prototype.visitReferenceType): Deleted.
3959         * WebGPUShadingLanguageRI/Test.js:
3960         (TEST_instantiateStructInStructWithInt2):
3961         * WebGPUShadingLanguageRI/TypeRef.js:
3962         (TypeRef.wrap):
3963         (TypeRef.prototype.setTypeAndArguments):
3964         (TypeRef.prototype.toString):
3965         (TypeRef):
3966         (TypeRef.prototype.get instantiatedType): Deleted.
3967
3968 2017-09-19  Per Arne Vollan  <pvollan@apple.com>
3969
3970         [Win] WebKit fails to build with 64-bit Perl.
3971         https://bugs.webkit.org/show_bug.cgi?id=177106
3972
3973         Reviewed by Brent Fulgham.
3974
3975         Visual Studio is installed in the 32-bit program files folder.
3976  
3977         * Scripts/webkitdirs.pm:
3978         (programFilesPathX86):
3979         (visualStudioInstallDir):
3980         (msBuildInstallDir):
3981
3982 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
3983
3984         [WSL] Cannot put templated structs inside structs
3985         https://bugs.webkit.org/show_bug.cgi?id=177120
3986
3987         Reviewed by Myles Maxfield.
3988         
3989         It turns out that we still need to instantiate structs even if not passing type arguments,
3990         since its fields may need to be instantiated.
3991         
3992         This makes Myles's test case pass. When writing the test case, I encountered parser bugs, and
3993         I fixed them.
3994
3995         * WebGPUShadingLanguageRI/CallFunction.js:
3996         (callFunction):
3997         * WebGPUShadingLanguageRI/Checker.js:
3998         (Checker.prototype.visitReferenceType):
3999         * WebGPUShadingLanguageRI/FuncInstantiator.js:
4000         (FuncInstantiator.prototype.getUnique):
4001         (FuncInstantiator):
4002         * WebGPUShadingLanguageRI/Parse.js:
4003         (parseSuffixOperator):
4004         (parsePossibleSuffix):
4005         (parsePostIncrement):
4006         * WebGPUShadingLanguageRI/StructType.js:
4007         (StructType.prototype.instantiate):
4008         * WebGPUShadingLanguageRI/Test.js:
4009         (checkNumber):
4010         (checkEnum):
4011         (TEST_instantiateStructInStruct):
4012         * WebGPUShadingLanguageRI/TypeRef.js:
4013         (TypeRef.prototype.get instantiatedType):
4014         (TypeRef.prototype.get isPrimitive):
4015
4016 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
4017
4018         WSL should support enum
4019         https://bugs.webkit.org/show_bug.cgi?id=176977
4020
4021         Reviewed by Myles Maxfield.
4022         
4023         This implements enum. Enums members are referenced Java-style. For example, if we have an enum like:
4024         
4025             enum Bank {
4026                 GP,
4027                 FP
4028             }
4029         
4030         Then you refer to the members by saying Bank.GP and Bank.FP.
4031         
4032         Also adds a hack that makes operator- on a literal fold the literal. This fixes two issues:
4033         
4034         - Lets you use negative literals in constexprs.
4035         - Means that negative literals also get literal type unification.
4036         
4037         WSL's constexpr support is really thin, but I think it's all we really need for now.
4038         
4039         * WebGPUShadingLanguageRI/All.js:
4040         * WebGPUShadingLanguageRI/Checker.js:
4041         (Checker.prototype.visitEnumType):
4042         (Checker.prototype.visitEnumLiteral):
4043         * WebGPUShadingLanguageRI/ConstexprFolder.js: Added.
4044         (ConstexprFolder.prototype.visitCallExpression):
4045         (ConstexprFolder.prototype.visitTypeOrVariableRef):
4046         (ConstexprFolder):
4047         * WebGPUShadingLanguageRI/CreateLiteral.js:
4048         (createLiteral.GenericLiteral.prototype.get valueForSelectedType):
4049         (createLiteral.GenericLiteral.prototype.get negConstexpr):
4050         * WebGPUShadingLanguageRI/DoubleLiteral.js:
4051         (let.DoubleLiteral.createLiteral.negConstexpr):
4052         * WebGPUShadingLanguageRI/EBufferBuilder.js:
4053         (EBufferBuilder.prototype.visitEnumLiteral):
4054         * WebGPUShadingLanguageRI/EnumLiteral.js: Added.
4055         (EnumLiteral):
4056         (EnumLiteral.prototype.get member):
4057         (EnumLiteral.prototype.get type):
4058         (EnumLiteral.prototype.get isConstexpr):
4059         (EnumLiteral.prototype.unifyImpl):
4060         (EnumLiteral.prototype.toString):
4061         * WebGPUShadingLanguageRI/EnumMember.js: Added.
4062         (EnumMember):
4063         (EnumMember.prototype.get origin):
4064         (EnumMember.prototype.get name):
4065         (EnumMember.prototype.toString):
4066         * WebGPUShadingLanguageRI/EnumType.js: Added.
4067         (EnumType):
4068         (EnumType.prototype.add):
4069         (EnumType.prototype.get origin):
4070         (EnumType.prototype.get name):
4071         (EnumType.prototype.get baseType):
4072         (EnumType.prototype.get memberNames):
4073         (EnumType.prototype.memberByName):
4074         (EnumType.prototype.get members):
4075         (EnumType.prototype.get memberMap):
4076         (EnumType.prototype.get isPrimitive):
4077         (EnumType.prototype.populateDefaultValue):
4078         (EnumType.prototype.get size):
4079         (EnumType.prototype.toString):
4080         * WebGPUShadingLanguageRI/Evaluator.js:
4081         (Evaluator.prototype.visitGenericLiteral):
4082         (Evaluator.prototype.visitEnumLiteral):
4083         * WebGPUShadingLanguageRI/FloatLiteral.js:
4084         (let.FloatLiteral.createLiteral.negConstexpr):
4085         * WebGPUShadingLanguageRI/FoldConstexprs.js: Added.
4086         (foldConstexprs):
4087         * WebGPUShadingLanguageRI/IntLiteral.js:
4088         (let.IntLiteral.createLiteral.negConstexpr):
4089         * WebGPUShadingLanguageRI/Intrinsics.js:
4090         (Intrinsics):
4091         * WebGPUShadingLanguageRI/NameResolver.js:
4092         (NameResolver.prototype.visitProtocolDecl):
4093         * WebGPUShadingLanguageRI/Parse.js:
4094         (parseConstexpr):
4095         (parsePossibleSuffix):
4096         (parseEnumMember):
4097         (parseEnumType):
4098         (parse):
4099         * WebGPUShadingLanguageRI/Prepare.js:
4100         (prepare):
4101         * WebGPUShadingLanguageRI/Rewriter.js:
4102         (Rewriter.prototype.visitEnumType):
4103         (Rewriter.prototype.visitEnumMember):
4104         (Rewriter.prototype.visitEnumLiteral):
4105         * WebGPUShadingLanguageRI/StructType.js:
4106         (StructType.prototype.get origin):
4107         (StructType.prototype.instantiate):
4108         * WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js: Added.
4109         (synthesizeEnumFunctions):
4110         * WebGPUShadingLanguageRI/Test.html:
4111         * WebGPUShadingLanguageRI/Test.js:
4112         (checkEnum):
4113         (TEST_simpleEnum):
4114         (TEST_enumWithManualValues):
4115         (TEST_enumWithoutZero):
4116         (TEST_enumConstexprGenericFunction):
4117         (TEST_enumConstexprGenericStruct):
4118         * WebGPUShadingLanguageRI/UintLiteral.js:
4119         (let.UintLiteral.createLiteral.negConstexpr):
4120         * WebGPUShadingLanguageRI/Visitor.js:
4121         (Visitor.prototype.visitProtocolDecl):
4122
4123 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
4124
4125         WSL prepare() should cache the parsed standard library
4126         https://bugs.webkit.org/show_bug.cgi?id=177118
4127
4128         Reviewed by Myles Maxfield.
4129         
4130         The execution time of Test.js is too damn high!
4131         
4132         So I made it 2x faster by caching the parsed standard library.
4133
4134         * WebGPUShadingLanguageRI/All.js:
4135         * WebGPUShadingLanguageRI/CloneProgram.js: Added.
4136         (cloneProgram):
4137         * WebGPUShadingLanguageRI/Prepare.js:
4138         (let.prepare):
4139         (prepare): Deleted.
4140         * WebGPUShadingLanguageRI/StatementCloner.js: Added.
4141         (StatementCloner.prototype.visitFuncDef):
4142         (StatementCloner.prototype.visitNativeFunc):
4143         (StatementCloner.prototype.visitNativeType):
4144         (StatementCloner.prototype.visitTypeDef):
4145         (StatementCloner.prototype.visitStructType):
4146         (StatementCloner.prototype.visitConstexprTypeParameter):
4147         (StatementCloner.prototype.visitProtocolDecl):
4148         * WebGPUShadingLanguageRI/Test.html:
4149         * WebGPUShadingLanguageRI/Test.js:
4150         (doTest):
4151
4152 2017-09-18  Michael Catanzaro  <mcatanzaro@igalia.com>
4153
4154         [CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit
4155         https://bugs.webkit.org/show_bug.cgi?id=174558
4156
4157         Reviewed by Alex Christensen.
4158
4159         With help from Stephan Szabo, thanks!
4160
4161         * DumpRenderTree/PlatformMac.cmake:
4162         * DumpRenderTree/PlatformWin.cmake:
4163         * DumpRenderTree/win/AccessibilityControllerWin.cpp:
4164         * DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
4165         * DumpRenderTree/win/DumpRenderTree.cpp:
4166         * DumpRenderTree/win/EditingDelegate.h:
4167         * DumpRenderTree/win/EventSender.cpp:
4168         * DumpRenderTree/win/FrameLoadDelegate.cpp:
4169         * DumpRenderTree/win/FrameLoadDelegate.h:
4170         * DumpRenderTree/win/GCControllerWin.cpp:
4171         * DumpRenderTree/win/HistoryDelegate.cpp:
4172         * DumpRenderTree/win/HistoryDelegate.h:
4173         * DumpRenderTree/win/PolicyDelegate.h:
4174         * DumpRenderTree/win/ResourceLoadDelegate.cpp:
4175         * DumpRenderTree/win/ResourceLoadDelegate.h:
4176         * DumpRenderTree/win/TestRunnerWin.cpp:
4177         * DumpRenderTree/win/TextInputControllerWin.cpp:
4178         * DumpRenderTree/win/UIDelegate.cpp:
4179         * DumpRenderTree/win/UIDelegate.h:
4180         * DumpRenderTree/win/WorkQueueItemWin.cpp:
4181         * MiniBrowser/gtk/CMakeLists.txt:
4182         * MiniBrowser/mac/CMakeLists.txt:
4183         * MiniBrowser/win/AccessibilityDelegate.cpp:
4184         * MiniBrowser/win/AccessibilityDelegate.h:
4185         * MiniBrowser/win/CMakeLists.txt:
4186         * MiniBrowser/win/Common.cpp:
4187         * MiniBrowser/win/DOMDefaultImpl.h:
4188         * MiniBrowser/win/MiniBrowser.cpp:
4189         * MiniBrowser/win/MiniBrowser.h:
4190         * MiniBrowser/win/MiniBrowserWebHost.cpp:
4191         * MiniBrowser/win/MiniBrowserWebHost.h:
4192         * MiniBrowser/win/PageLoadTestClient.h:
4193         * MiniBrowser/win/PrintWebUIDelegate.cpp:
4194         * MiniBrowser/win/PrintWebUIDelegate.h:
4195         * MiniBrowser/win/ResourceLoadDelegate.cpp:
4196         * MiniBrowser/win/ResourceLoadDelegate.h:
4197         * MiniBrowser/win/WebDownloadDelegate.h:
4198         * TestWebKitAPI/CMakeLists.txt:
4199         * TestWebKitAPI/PlatformGTK.cmake:
4200         * TestWebKitAPI/PlatformWPE.cmake:
4201         * TestWebKitAPI/PlatformWin.cmake:
4202         * TestWebKitAPI/Tests/WebKitLegacy/win/ScaleWebView.cpp:
4203         * TestWebKitAPI/Tests/WebKitLegacy/win/WebViewDestruction.cpp:
4204         * TestWebKitAPI/glib/CMakeLists.txt:
4205         * WebKitTestRunner/CMakeLists.txt:
4206         * WebKitTestRunner/PlatformGTK.cmake:
4207         * WebKitTestRunner/PlatformWPE.cmake:
4208
4209 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
4210
4211         Fill out vector types in WSL's standard library
4212         https://bugs.webkit.org/show_bug.cgi?id=177063
4213
4214         Reviewed by Filip Pizlo.
4215
4216         Now that we have struct types, operator&[], and operator==, fill out a few of the builtin vector types in the
4217         standard library. This patch creates three new types: vec2, vec3, and vec4, each of which takes a type
4218         argument, so you can say vec4<float>. This patch also adds typedefs of int4, uint4, float4, and double4 (along
4219         with their 2- and 3- length siblings).
4220
4221         This patch does not include the swizzling operators, so you can't say float4.yzw.
4222
4223         * WebGPUShadingLanguageRI/StandardLibrary.js:
4224         (operator.T.vec2.T):
4225         (bool.operator.T.Equatable):
4226         (thread.T.operator.T):
4227         (operator.T.vec3.T):
4228         (operator.T.vec4.T):
4229         * WebGPUShadingLanguageRI/Test.js:
4230         (TEST_builtinVectors):
4231
4232 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
4233
4234         WSL needs to annotate vertex shaders and fragment shaders
4235         https://bugs.webkit.org/show_bug.cgi?id=177066
4236
4237         Reviewed by Filip Pizlo.
4238
4239         Metal Shading Language requires annotating vertex and fragment shaders, so this information needs to be in
4240         the source WSL file.
4241
4242         * WebGPUShadingLanguageRI/Func.js:
4243         (Func):
4244         (Func.prototype.get shaderType):
4245         * WebGPUShadingLanguageRI/FuncDef.js:
4246         (FuncDef):
4247         * WebGPUShadingLanguageRI/NativeFunc.js:
4248         (NativeFunc):
4249         * WebGPUShadingLanguageRI/Parse.js:
4250         (parseFuncDecl):
4251         (parseProtocolFuncDecl):
4252         (parseFuncDef):
4253         (parseNativeFunc):
4254         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
4255         (resolveOverloadImpl):
4256         * WebGPUShadingLanguageRI/Test.js:
4257
4258 2017-09-18  Filip Pizlo  <fpizlo@apple.com>