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