Unreviewed, temporarily disable new API tests introduced in r222308 until they pass...
[WebKit-https.git] / Tools / ChangeLog
1 2017-09-21  Chris Dumez  <cdumez@apple.com>
2
3         Unreviewed, temporarily disable new API tests introduced in r222308 until they pass on El Capitan
4
5         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
6         (TEST):
7
8 2017-09-21  Commit Queue  <commit-queue@webkit.org>
9
10         Unreviewed, rolling out r222272.
11         https://bugs.webkit.org/show_bug.cgi?id=177316
12
13         This patch broke builds on some Win EWS bots. (Requested by
14         perarne on #webkit).
15
16         Reverted changeset:
17
18         "[Win] Cygwin 64-bit EWS process cannot find Visual Studio
19         installation."
20         https://bugs.webkit.org/show_bug.cgi?id=177244
21         http://trac.webkit.org/changeset/222272
22
23 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
24
25         Unreviewed, fix a bug in the interactive app that was introduced by bad merging.
26
27         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:
28         (FlattenedStructOffsetGatherer.prototype.visitTypeRef):
29         (FlattenedStructOffsetGatherer):
30         * WebGPUShadingLanguageRI/index.html:
31
32 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
33
34         WSL should support switch
35         https://bugs.webkit.org/show_bug.cgi?id=176978
36
37         Reviewed by Keith Miller.
38         
39         This adds fairly complete support for switch statements. This includes things like verifying
40         whether or not a default statement is needed. This even works when the programmer lists all of
41         the values of an integer type.
42         
43         To test that last part, this patch adds uint8 support. It's easy add it, but of course it
44         meant adding a lot of tests.
45         
46         This also fixes enum bugs, since switch does things to enums that we previously didn't test.
47
48         * WebGPUShadingLanguageRI/All.js:
49         * WebGPUShadingLanguageRI/Checker.js:
50         (Checker.prototype.visitSwitchStatement):
51         * WebGPUShadingLanguageRI/EnumLiteral.js:
52         (EnumLiteral.prototype.get valueForSelectedType):
53         * WebGPUShadingLanguageRI/EnumType.js:
54         (EnumType.prototype.allValues):
55         (EnumType.prototype.valuesEqual):
56         * WebGPUShadingLanguageRI/Evaluator.js:
57         (Evaluator.prototype.visitSwitchStatement):
58         * WebGPUShadingLanguageRI/Inliner.js:
59         (Inliner.prototype.visitCallExpression):
60         (Inliner):
61         (Inliner.prototype.visitCastExpression): Deleted.
62         * WebGPUShadingLanguageRI/Intrinsics.js:
63         (Intrinsics.):
64         (Intrinsics):
65         * WebGPUShadingLanguageRI/LoopChecker.js:
66         (LoopChecker):
67         (LoopChecker.prototype.visitFuncDef):
68         (LoopChecker.prototype.visitWhileLoop):
69         (LoopChecker.prototype.visitDoWhileLoop):
70         (LoopChecker.prototype.visitForLoop):
71         (LoopChecker.prototype.visitSwitchStatement):
72         (LoopChecker.prototype.visitBreak):
73         (LoopChecker.prototype.visitContinue):
74         * WebGPUShadingLanguageRI/Node.js:
75         (Node.prototype.commit):
76         * WebGPUShadingLanguageRI/Parse.js:
77         (parseSwitchCase):
78         (parseSwitchStatement):
79         (parseStatement):
80         (parseBlockBody):
81         (parseBlock):
82         * WebGPUShadingLanguageRI/Prepare.js:
83         (let.prepare):
84         * WebGPUShadingLanguageRI/ReturnChecker.js:
85         (ReturnChecker.prototype._mergeReturnStyle):
86         (ReturnChecker.prototype.visitIfStatement):
87         (ReturnChecker.prototype.visitWhileLoop):
88         (ReturnChecker.prototype.visitDoWhileLoop):
89         (ReturnChecker.prototype.visitForLoop):
90         (ReturnChecker.prototype.visitSwitchStatement):
91         (ReturnChecker.prototype.visitContinue):
92         (ReturnChecker):
93         * WebGPUShadingLanguageRI/Rewriter.js:
94         (Rewriter.prototype.visitSwitchStatement):
95         (Rewriter.prototype.visitSwitchCase):
96         * WebGPUShadingLanguageRI/StandardLibrary.js:
97         (uint8.operator):
98         (bool.operator):
99         (_generateSwizzle):
100         * WebGPUShadingLanguageRI/SwitchCase.js: Added.
101         (SwitchCase):
102         (SwitchCase.prototype.get origin):
103         (SwitchCase.prototype.get isDefault):
104         (SwitchCase.prototype.get value):
105         (SwitchCase.prototype.get body):
106         (SwitchCase.prototype.toString):
107         * WebGPUShadingLanguageRI/SwitchStatement.js: Added.
108         (SwitchStatement):
109         (SwitchStatement.prototype.get origin):
110         (SwitchStatement.prototype.get value):
111         (SwitchStatement.prototype.add):
112         (SwitchStatement.prototype.get switchCases):
113         (SwitchStatement.prototype.toString):
114         * WebGPUShadingLanguageRI/Test.html:
115         * WebGPUShadingLanguageRI/Test.js:
116         (makeUint8):
117         (makeEnum):
118         (checkUint8):
119         (TEST_uint8SimpleMath):
120         (TEST_equality):
121         (TEST_notEquality):
122         (TEST_uint8BitAnd):
123         (TEST_uint8BitOr):
124         (TEST_uint8BitXor):
125         (TEST_uint8BitNot):
126         (TEST_uint8LShift):
127         (TEST_uint8RShift):
128         (TEST_enumWithExplicitIntBase):
129         (TEST_enumWithUintBase):
130         (TEST_enumFloatBase):
131         (TEST_enumStructBase):
132         (TEST_simpleSwitch):
133         (TEST_exhaustiveUint8Switch):
134         (TEST_notQuiteExhaustiveUint8Switch):
135         (TEST_switchFallThrough):
136         (TEST_switchBreak):
137         (TEST_enumSwitchBreakExhaustive):
138         (TEST_enumSwitchBreakNotQuiteExhaustive):
139         (doTest):
140         * WebGPUShadingLanguageRI/UnificationContext.js:
141         (UnificationContext):
142         (UnificationContext.prototype.addExtraNode):
143         (UnificationContext.prototype.get nodes):
144         * WebGPUShadingLanguageRI/Visitor.js:
145         (Visitor.prototype.visitProtocolDecl):
146         * WebGPUShadingLanguageRI/index.html:
147
148 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
149
150         WSL needs a way to verify that structs are not cyclic
151         https://bugs.webkit.org/show_bug.cgi?id=177044
152
153         Reviewed by Myles Maxfield.
154         
155         This adds a recursive type checking phase. Even before adding this phase, the compiler would
156         successfully detect recursive types - but at the cost of also rejecting programs that had
157         recursive types indirectly through pointers. To make both things work, I had to change Visitor
158         to no longer visit TypeRef.type by default. This resulted in some other changes in a few other
159         parts of the code that previously relied on that behavior.
160
161         * WebGPUShadingLanguageRI/All.js:
162         * WebGPUShadingLanguageRI/CheckRecursiveTypes.js: Added.
163         (checkRecursiveTypes):
164         * WebGPUShadingLanguageRI/Checker.js:
165         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
166         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
167         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitTypeRef):
168         (Checker.prototype._checkShaderType.NonNumericSearcher):
169         (Checker.prototype._checkShaderType):
170         (Checker.prototype.visitTypeRef):
171         * WebGPUShadingLanguageRI/NameResolver.js:
172         (NameResolver.prototype.visitProtocolDecl):
173         * WebGPUShadingLanguageRI/Prepare.js:
174         (let.prepare):
175         * WebGPUShadingLanguageRI/RecursiveTypeChecker.js: Added.
176         (RecursiveTypeChecker):
177         (RecursiveTypeChecker.prototype.visitFuncDef):
178         (RecursiveTypeChecker.prototype.visitNativeFunc):
179         (RecursiveTypeChecker.prototype.visitStructType):
180         (RecursiveTypeChecker.prototype.visitReferenceType):
181         (RecursiveTypeChecker.prototype.visitTypeRef):
182         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
183         (StructLayoutBuilder.prototype.visitTypeRef):
184         (StructLayoutBuilder):
185         * WebGPUShadingLanguageRI/Test.html:
186         * WebGPUShadingLanguageRI/Test.js:
187         (TEST_simpleRecursiveStruct):
188         * WebGPUShadingLanguageRI/TypeDefResolver.js:
189         (TypeDefResolver.prototype.visitTypeRef):
190         (TypeDefResolver):
191         * WebGPUShadingLanguageRI/Visitor.js:
192         (Visitor.prototype.visitProtocolDecl):
193         * WebGPUShadingLanguageRI/index.html:
194
195 2017-09-21  Ryan Haddad  <ryanhaddad@apple.com>
196
197         Update TestResultsServer for iOS 11 queues.
198         https://bugs.webkit.org/show_bug.cgi?id=177285
199
200         Reviewed by Alexey Proskuryakov.
201
202         * TestResultServer/static-dashboards/builders.jsonp:
203
204 2017-09-21  Alex Christensen  <achristensen@webkit.org>
205
206         REGRESSION(r221465) WKWebViews without WebGL delegate callbacks crash when WebGL contexts are created
207         https://bugs.webkit.org/show_bug.cgi?id=177306
208         <rdar://problem/34351988>
209
210         Reviewed by Chris Dumez.
211
212         * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm:
213         (-[WebGLTestDelegate webView:startURLSchemeTask:]):
214         (-[DelegateWithoutWebGL webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
215         (TEST):
216
217 2017-09-20  Joseph Pecoraro  <pecoraro@apple.com>
218
219         Update test262 tests
220         https://bugs.webkit.org/show_bug.cgi?id=177220
221
222         Reviewed by Saam Barati and Yusuke Suzuki.
223
224         * Scripts/import-test262-tests:
225         - better detect upstream git repository url from import location
226         - update JSTest test262 resources when importing from repository
227         - take seconds instead of 20+ minutes to write yaml with --failures
228         - update "negative" command to only include just the exception type
229
230 2017-09-20  Chris Dumez  <cdumez@apple.com>
231
232         [WK2] Add API to get the redirect chain of a WKDownload
233         https://bugs.webkit.org/show_bug.cgi?id=176628
234         <rdar://problem/34338279>
235
236         Reviewed by Alex Christensen.
237
238         Add API test coverage for the 2 cases:
239         1. Download started as a download and is redirected while
240            downloading.
241         2. Download started as a load and was redirected during the
242            initial load.
243
244         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
245         (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]):
246         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
247         (TEST):
248
249 >>>>>>> .r222309
250 2017-09-20  Alex Christensen  <achristensen@webkit.org>
251
252         Add infrastructure for adding custom headers to requests per website
253         https://bugs.webkit.org/show_bug.cgi?id=177255
254
255         Reviewed by Geoffrey Garen.
256
257         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
258         * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp: Added.
259         (shouldRemainUnchanged):
260         (shouldBeInvalid):
261         (shouldBecome):
262         (TEST):
263         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
264         (TEST):
265
266 2017-09-20  Daniel Bates  <dabates@apple.com>
267
268         Spelling and grammar dots should not overlap
269         https://bugs.webkit.org/show_bug.cgi?id=177265
270         <rdar://problem/34556424>
271
272         Reviewed by David Hyatt.
273
274         Add unit tests for the subdivision algorithm.
275
276         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
277         * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Added.
278         (WebCore::operator<<):
279         (WebCore::operator==):
280         (TestWebKitAPI::TEST):
281
282 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
283
284         WSL should not type-check functions in the standard library that it does not use
285         https://bugs.webkit.org/show_bug.cgi?id=177269
286
287         Reviewed by JS Bastien.
288         
289         Once we added all of the swizzling operators, the size of the standard library ballooned to the point
290         where it's just not practical to compile anything anymore. If you want to compile
291         "int foo(int x) { return x}" then it will take some ridiculous amount of time (many seconds) because WSL
292         will have to type check all of those swizzling operators.
293         
294         This change makes it so that after parsing the whole program, we remove the things that we aren't using.
295         We can make a really good estimate of what we need even before doing any name resolution. In practice,
296         this change removes almost all of the things from Program before we get to the hard work of type
297         checking. That's true because the standard library contains _many_ things and you'd have to try very
298         hard to use all of them.
299         
300         This is a 13x speed-up for Test.js. It went from 155 seconds to 12 seconds on my machine.
301
302         * WebGPUShadingLanguageRI/All.js:
303         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
304         (ConstexprTypeParameter.prototype.get origin):
305         * WebGPUShadingLanguageRI/Intrinsics.js:
306         * WebGPUShadingLanguageRI/Lexer.js:
307         (Lexer):
308         (Lexer.prototype.get originKind):
309         * WebGPUShadingLanguageRI/LexerToken.js:
310         (LexerToken.prototype.get lexer):
311         (LexerToken.prototype.get origin):
312         (LexerToken.prototype.get originKind):
313         (LexerToken.prototype.get isInternal):
314         * WebGPUShadingLanguageRI/NameContext.js:
315         (isWildcardKind):
316         (NameContext.prototype.add):
317         (NameContext.prototype.get let):
318         (NameContext.prototype.mapFor): Deleted.
319         * WebGPUShadingLanguageRI/NameFinder.js: Added.
320         (NameFinder):
321         (NameFinder.get worklist):
322         * WebGPUShadingLanguageRI/NameResolver.js:
323         (NameResolver.prototype.visitProtocolDecl):
324         * WebGPUShadingLanguageRI/OriginKind.js: Added.
325         (isOriginKind):
326         * WebGPUShadingLanguageRI/Prepare.js:
327         (let.prepare):
328         * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js: Added.
329         (programWithUnnecessaryThingsRemoved):
330         * WebGPUShadingLanguageRI/Test.html:
331         * WebGPUShadingLanguageRI/Test.js:
332         (doTest):
333         * WebGPUShadingLanguageRI/index.html:
334
335 2017-09-20  Alex Christensen  <achristensen@webkit.org>
336
337         Remove ActionType::CSSDisplayNoneStyleSheet
338         https://bugs.webkit.org/show_bug.cgi?id=177275
339
340         Reviewed by Andy Estes.
341
342         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
343         (WebCore::ContentExtensions::operator<<):
344         (TestWebKitAPI::testRequest):
345         (TestWebKitAPI::TEST_F):
346
347 2017-09-20  Jonathan Bedard  <jbedard@apple.com>
348
349         Device iOS 11 builds fail with FileProvider linker errors
350         https://bugs.webkit.org/show_bug.cgi?id=177272
351         <rdar://problem/34557680>
352
353         Reviewed by David Kilzer.
354
355         For iOS device and simulator, the SYSTEM_LIBRARY_DIR should never
356         be on the framework search path as neither platform should ever link
357         with Mac frameworks.
358
359         * DumpRenderTree/mac/Configurations/Base.xcconfig:
360         * WebKitTestRunner/Configurations/Base.xcconfig:
361
362 2017-09-20  Alex Christensen  <achristensen@webkit.org>
363
364         Remove ActionType::InvalidAction
365         https://bugs.webkit.org/show_bug.cgi?id=177262
366
367         Reviewed by Tim Horton.
368
369         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
370         (WebCore::ContentExtensions::operator<<):
371
372 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
373
374         Make a playground where people can try WSL
375         https://bugs.webkit.org/show_bug.cgi?id=177125
376
377         Reviewed by Filip Pizlo.
378
379         This patch creates a webpage, index.html, which lets users type in a WSL program and
380         run it, and see the results.
381
382         * WebGPUShadingLanguageRI/All.js:
383         * WebGPUShadingLanguageRI/CallFunction.js:
384         (callFunction):
385         * WebGPUShadingLanguageRI/Checker.js:
386         (Checker):
387         (Checker.prototype._checkShaderType.NonNumericSearcher):
388         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
389         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
390         (Checker.prototype._checkShaderType):
391         (Checker.prototype.visitFuncDef):
392         (Checker.prototype._requireBool):
393         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js: Copied from Tools/WebGPUShadingLanguageRI/CallFunction.js.
394         (FlattenedStructOffsetGatherer):
395         (FlattenedStructOffsetGatherer.prototype.get result):
396         (FlattenedStructOffsetGatherer.prototype.visitReferenceType):
397         (FlattenedStructOffsetGatherer.prototype.visitField):
398         (FlattenedStructOffsetGatherer.prototype.visitNativeType):
399         * WebGPUShadingLanguageRI/Func.js:
400         (Func.prototype.toDeclString):
401         * WebGPUShadingLanguageRI/Inline.js:
402         (resolveInlinedFunction):
403         * WebGPUShadingLanguageRI/NameContext.js:
404         (NameContext.prototype.get let):
405         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
406         (resolveOverloadImpl):
407         * WebGPUShadingLanguageRI/StandardLibrary.js:
408         * WebGPUShadingLanguageRI/Test.html:
409         * WebGPUShadingLanguageRI/Test.js:
410         (TEST_shaderTypes):
411         * WebGPUShadingLanguageRI/index.html: Added.
412
413 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
414
415         [WSL] Restrict vertex and fragment entry points according to WSL.md
416         https://bugs.webkit.org/show_bug.cgi?id=177253
417
418         Reviewed by Filip Pizlo.
419
420         Entry points can't have template arguments, and their argument/return types need to be restricted.
421
422         * WebGPUShadingLanguageRI/Checker.js:
423         (Checker):
424         (Checker.prototype._checkShaderType.NonNumericSearcher):
425         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
426         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
427         (Checker.prototype._checkShaderType):
428         (Checker.prototype.visitFuncDef):
429         (Checker.prototype._requireBool):
430         * WebGPUShadingLanguageRI/Func.js:
431         (Func.prototype.toDeclString):
432         * WebGPUShadingLanguageRI/Test.js:
433         (TEST_shaderTypes):
434
435 2017-09-20  Per Arne Vollan  <pvollan@apple.com>
436
437         [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
438         https://bugs.webkit.org/show_bug.cgi?id=177244
439
440         Reviewed by Alex Christensen.
441
442         The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
443
444         * EWSTools/start-queue-win.sh:
445
446 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
447
448         Create vector swizzle operators in WSL's standard library
449         https://bugs.webkit.org/show_bug.cgi?id=177116
450
451         Reviewed by Filip Pizlo.
452
453         Because there are 481 possible swizzling operators, StandardLibrary.js generates them
454         instead of including them by hand.
455
456         Adding so many functions slows down the compiler quite a bit.
457
458         * WebGPUShadingLanguageRI/Prepare.js:
459         (prepare):
460         * WebGPUShadingLanguageRI/StandardLibrary.js:
461         (intToString):
462         (_generateSwizzle):
463
464 2017-09-20  Ms2ger  <Ms2ger@igalia.com>
465
466         [WPE] Update fontconfig to 2.12.4.
467         https://bugs.webkit.org/show_bug.cgi?id=177228
468
469         Reviewed by Carlos Garcia Campos.
470
471         * wpe/jhbuild.modules:
472         * wpe/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS-18.patch: Removed.
473
474 2017-09-19  Myles C. Maxfield  <mmaxfield@apple.com>
475
476         WSL should be able to trap when something fatal happens
477         https://bugs.webkit.org/show_bug.cgi?id=177110
478
479         Reviewed by Filip Pizlo.
480
481         WSL programs can include a statement "trap;" which causes the entry
482         point to immediately return the default value of its return type.
483         This is implemented by throw/catch and populateDefaultValue().
484
485         * WebGPUShadingLanguageRI/All.js:
486         * WebGPUShadingLanguageRI/EvaluationCommon.js:
487         * WebGPUShadingLanguageRI/Evaluator.js:
488         (Evaluator.prototype.visitTrapStatement):
489         * WebGPUShadingLanguageRI/Parse.js:
490         (parseStatement):
491         * WebGPUShadingLanguageRI/ReturnChecker.js:
492         (ReturnChecker.prototype.visitTrapStatement):
493         * WebGPUShadingLanguageRI/Rewriter.js:
494         (Rewriter.prototype.visitTrapStatement):
495         * WebGPUShadingLanguageRI/StandardLibrary.js:
496         * WebGPUShadingLanguageRI/Test.html:
497         * WebGPUShadingLanguageRI/Test.js:
498         * WebGPUShadingLanguageRI/TrapStatement.js: Copied from Tools/WebGPUShadingLanguageRI/EvaluationCommon.js.
499         (TrapStatement):
500         (TrapStatement.prototype.get origin):
501         (TrapStatement.prototype.toString):
502         * WebGPUShadingLanguageRI/Visitor.js:
503         (Visitor.prototype.visitProtocolDecl):
504
505 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
506
507         Unreviewed follow-up to r222229, remove invalid triggers.
508
509         * BuildSlaveSupport/build.webkit.org-config/config.json:
510
511 2017-09-19  Simon Fraser  <simon.fraser@apple.com>
512
513         tiled-drawing/tiled-backing-in-window.html fails on Retina displays
514         https://bugs.webkit.org/show_bug.cgi?id=177113
515
516         Reviewed by Tim Horton.
517
518         This test removes the view from the window, and then dumps the layer tree, at which point
519         some layers would report a contentsScale of 2 on Retina displays.
520
521         This occurs because WebKitTestRunner overrides the default device scale factor on NSWindow,
522         but windowless views fall back to [NSScreen mainScreen].backingScaleFactor (in WebViewImpl::intrinsicDeviceScaleFactor()).
523
524         Fix by having PlatformWebView::changeWindowScaleIfNeeded() call -_setOverrideDeviceScaleFactor: on the view.
525
526         * WebKitTestRunner/mac/PlatformWebViewMac.mm:
527         (WTR::PlatformWebView::changeWindowScaleIfNeeded):
528
529 2017-09-19  Wenson Hsieh  <wenson_hsieh@apple.com>
530
531         REGRESSION (r215613): Incorrect corners clipping with border-radius
532         https://bugs.webkit.org/show_bug.cgi?id=176498
533         <rdar://problem/34112607>
534
535         Reviewed by Tim Horton.
536
537         Add WebCore API tests for RoundedRect::contains().
538
539         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
540         * TestWebKitAPI/Tests/WebCore/RoundedRectTests.cpp: Added.
541         (TestWebKitAPI::layoutRect):
542         (TestWebKitAPI::TEST):
543
544 2017-09-19  Youenn Fablet  <youenn@apple.com>
545
546         Allow WTF::map to use any class that is iterable and has a size getter
547         https://bugs.webkit.org/show_bug.cgi?id=177026
548
549         Reviewed by Darin Adler.
550
551         * TestWebKitAPI/Tests/WTF/Vector.cpp:
552         (TestWebKitAPI::TEST):
553
554 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
555
556         Update bot configuration for iOS 11.
557         https://bugs.webkit.org/show_bug.cgi?id=177165
558
559         Reviewed by Alexey Proskuryakov.
560
561         * BuildSlaveSupport/build.webkit.org-config/config.json:
562         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
563         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
564         (BubbleQueueServer):
565         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
566         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
567         (WebKitBuildbot):
568         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
569         (table.queue-grid tr.platform.ios-simulator-10 img.logo): Deleted.
570         (table.queue-grid tr.platform.ios-10 img.logo): Deleted.
571         * BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
572         (_should_file_trigger_build):
573         * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
574         (ShouldBuildTest):
575         (ShouldBuildTest.test_should_build):
576
577 2017-09-19  Filip Pizlo  <fpizlo@apple.com>
578
579         Primitive protocol should have capital name
580         https://bugs.webkit.org/show_bug.cgi?id=177097
581
582         Reviewed by JF Bastien.
583         
584         As soon as I started programming in WSL, I found that I preferred to capitalize protocol names. So, my
585         early decision to call the primitive protocol "primitive" instead of "Primitive" seems absurd now. This
586         change reverses that decision.
587         
588         Aesthetically, this is a slight improvement. For example:
589         
590             struct Bar<T:Primitive> {
591                 Foo<device T^> f;
592             }
593
594         This makes more sense since all of the non-keyword type identifiers are capital.
595         
596         The one place where this is an aesthetic regression is native primitive typedefs, which now look like:
597         
598             native Primitive typedef bool;
599         
600         I'm happy with that tradeoff, since native typedefs are only in the standard library. Users don't see
601         this.
602
603         * WebGPUShadingLanguageRI/AddressSpace.js:
604         (protocolSuffix):
605         * WebGPUShadingLanguageRI/Intrinsics.js:
606         (Intrinsics):
607         * WebGPUShadingLanguageRI/NativeType.js:
608         (NativeType.prototype.toString):
609         (NativeType):
610         * WebGPUShadingLanguageRI/Parse.js:
611         (parseNative):
612         * WebGPUShadingLanguageRI/StandardLibrary.js:
613         * WebGPUShadingLanguageRI/Test.js:
614         (TEST_passNullAndNotNullFullPoly):
615         (TEST_passNullAndNotNullFullPolyReverse):
616
617 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
618
619         Cannot put typedefs of templated structs inside structs
620         https://bugs.webkit.org/show_bug.cgi?id=177123
621
622         Reviewed by Michael Saboff.
623         
624         Ever since I wrote the generic type instantiation code in WSL, it had a bizarre stink to it. I
625         did not know what it was, until I met this test case:
626         
627             struct Foo { int2 x; }
628         
629         The problem was that Type has a getter called instantiatedType, which invoked
630         InstantiateImmediates. That's great. Where we went wrong was that TypeRef overrode
631         instantiatedType, and then InstantiateImmediates called TypeRef.instantiatedType from its
632         visitTypeRef. What a mess. None of that was necessary for anything, and it was just wrong. This
633         patch fixes it so that:
634         
635         - Type has an instantiatedType getter, which does InstantiateImmediates. I didn't change this.
636           This was the only part of the status quo that really made sense.
637         
638         - TypeRef no longer overrides instantiatedType.
639         
640         - InstantianteImmediates.prototype.visitTypeRef now does what TypeRef's instantiatedType would
641           have done.
642         
643         And voila! This test case passes and so do all of the other test cases.
644         
645         The reason why that specific test case did not work was that the use of a TypeDef (int2) for
646         a generic type instantiation (vec2<int>) caused there to be two TypeRef's in a row, sorta like
647         this, if we could use wrap() to denote a TypeRef that just wrapped another type:
648         
649             wrap(vec2<int>)
650         
651         We would call instantiatedType on this monstrosity. Since TypeRef overrode instantiatedType,
652         we would stop there because that TypeRef has no type arguments - it's just a wrapper. Well,
653         actually, we'd do something a bit stranger than stopping there - there's more to the story -
654         but the effect was the same. Now we do InstantiateImmediates, which recursively builds a new
655         type. This chews through the wrapper and then instantiates the wrapped type, as we want it to.
656         Also, this approach no longer has the stink. instantiatedType isn't overriden by anyone
657         anymore!
658
659         * WebGPUShadingLanguageRI/Checker.js:
660         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
661         (InstantiateImmediates.prototype.visitTypeRef):
662         (InstantiateImmediates.prototype.visitReferenceType): Deleted.
663         * WebGPUShadingLanguageRI/Test.js:
664         (TEST_instantiateStructInStructWithInt2):
665         * WebGPUShadingLanguageRI/TypeRef.js:
666         (TypeRef.wrap):
667         (TypeRef.prototype.setTypeAndArguments):
668         (TypeRef.prototype.toString):
669         (TypeRef):
670         (TypeRef.prototype.get instantiatedType): Deleted.
671
672 2017-09-19  Per Arne Vollan  <pvollan@apple.com>
673
674         [Win] WebKit fails to build with 64-bit Perl.
675         https://bugs.webkit.org/show_bug.cgi?id=177106
676
677         Reviewed by Brent Fulgham.
678
679         Visual Studio is installed in the 32-bit program files folder.
680  
681         * Scripts/webkitdirs.pm:
682         (programFilesPathX86):
683         (visualStudioInstallDir):
684         (msBuildInstallDir):
685
686 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
687
688         [WSL] Cannot put templated structs inside structs
689         https://bugs.webkit.org/show_bug.cgi?id=177120
690
691         Reviewed by Myles Maxfield.
692         
693         It turns out that we still need to instantiate structs even if not passing type arguments,
694         since its fields may need to be instantiated.
695         
696         This makes Myles's test case pass. When writing the test case, I encountered parser bugs, and
697         I fixed them.
698
699         * WebGPUShadingLanguageRI/CallFunction.js:
700         (callFunction):
701         * WebGPUShadingLanguageRI/Checker.js:
702         (Checker.prototype.visitReferenceType):
703         * WebGPUShadingLanguageRI/FuncInstantiator.js:
704         (FuncInstantiator.prototype.getUnique):
705         (FuncInstantiator):
706         * WebGPUShadingLanguageRI/Parse.js:
707         (parseSuffixOperator):
708         (parsePossibleSuffix):
709         (parsePostIncrement):
710         * WebGPUShadingLanguageRI/StructType.js:
711         (StructType.prototype.instantiate):
712         * WebGPUShadingLanguageRI/Test.js:
713         (checkNumber):
714         (checkEnum):
715         (TEST_instantiateStructInStruct):
716         * WebGPUShadingLanguageRI/TypeRef.js:
717         (TypeRef.prototype.get instantiatedType):
718         (TypeRef.prototype.get isPrimitive):
719
720 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
721
722         WSL should support enum
723         https://bugs.webkit.org/show_bug.cgi?id=176977
724
725         Reviewed by Myles Maxfield.
726         
727         This implements enum. Enums members are referenced Java-style. For example, if we have an enum like:
728         
729             enum Bank {
730                 GP,
731                 FP
732             }
733         
734         Then you refer to the members by saying Bank.GP and Bank.FP.
735         
736         Also adds a hack that makes operator- on a literal fold the literal. This fixes two issues:
737         
738         - Lets you use negative literals in constexprs.
739         - Means that negative literals also get literal type unification.
740         
741         WSL's constexpr support is really thin, but I think it's all we really need for now.
742         
743         * WebGPUShadingLanguageRI/All.js:
744         * WebGPUShadingLanguageRI/Checker.js:
745         (Checker.prototype.visitEnumType):
746         (Checker.prototype.visitEnumLiteral):
747         * WebGPUShadingLanguageRI/ConstexprFolder.js: Added.
748         (ConstexprFolder.prototype.visitCallExpression):
749         (ConstexprFolder.prototype.visitTypeOrVariableRef):
750         (ConstexprFolder):
751         * WebGPUShadingLanguageRI/CreateLiteral.js:
752         (createLiteral.GenericLiteral.prototype.get valueForSelectedType):
753         (createLiteral.GenericLiteral.prototype.get negConstexpr):
754         * WebGPUShadingLanguageRI/DoubleLiteral.js:
755         (let.DoubleLiteral.createLiteral.negConstexpr):
756         * WebGPUShadingLanguageRI/EBufferBuilder.js:
757         (EBufferBuilder.prototype.visitEnumLiteral):
758         * WebGPUShadingLanguageRI/EnumLiteral.js: Added.
759         (EnumLiteral):
760         (EnumLiteral.prototype.get member):
761         (EnumLiteral.prototype.get type):
762         (EnumLiteral.prototype.get isConstexpr):
763         (EnumLiteral.prototype.unifyImpl):
764         (EnumLiteral.prototype.toString):
765         * WebGPUShadingLanguageRI/EnumMember.js: Added.
766         (EnumMember):
767         (EnumMember.prototype.get origin):
768         (EnumMember.prototype.get name):
769         (EnumMember.prototype.toString):
770         * WebGPUShadingLanguageRI/EnumType.js: Added.
771         (EnumType):
772         (EnumType.prototype.add):
773         (EnumType.prototype.get origin):
774         (EnumType.prototype.get name):
775         (EnumType.prototype.get baseType):
776         (EnumType.prototype.get memberNames):
777         (EnumType.prototype.memberByName):
778         (EnumType.prototype.get members):
779         (EnumType.prototype.get memberMap):
780         (EnumType.prototype.get isPrimitive):
781         (EnumType.prototype.populateDefaultValue):
782         (EnumType.prototype.get size):
783         (EnumType.prototype.toString):
784         * WebGPUShadingLanguageRI/Evaluator.js:
785         (Evaluator.prototype.visitGenericLiteral):
786         (Evaluator.prototype.visitEnumLiteral):
787         * WebGPUShadingLanguageRI/FloatLiteral.js:
788         (let.FloatLiteral.createLiteral.negConstexpr):
789         * WebGPUShadingLanguageRI/FoldConstexprs.js: Added.
790         (foldConstexprs):
791         * WebGPUShadingLanguageRI/IntLiteral.js:
792         (let.IntLiteral.createLiteral.negConstexpr):
793         * WebGPUShadingLanguageRI/Intrinsics.js:
794         (Intrinsics):
795         * WebGPUShadingLanguageRI/NameResolver.js:
796         (NameResolver.prototype.visitProtocolDecl):
797         * WebGPUShadingLanguageRI/Parse.js:
798         (parseConstexpr):
799         (parsePossibleSuffix):
800         (parseEnumMember):
801         (parseEnumType):
802         (parse):
803         * WebGPUShadingLanguageRI/Prepare.js:
804         (prepare):
805         * WebGPUShadingLanguageRI/Rewriter.js:
806         (Rewriter.prototype.visitEnumType):
807         (Rewriter.prototype.visitEnumMember):
808         (Rewriter.prototype.visitEnumLiteral):
809         * WebGPUShadingLanguageRI/StructType.js:
810         (StructType.prototype.get origin):
811         (StructType.prototype.instantiate):
812         * WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js: Added.
813         (synthesizeEnumFunctions):
814         * WebGPUShadingLanguageRI/Test.html:
815         * WebGPUShadingLanguageRI/Test.js:
816         (checkEnum):
817         (TEST_simpleEnum):
818         (TEST_enumWithManualValues):
819         (TEST_enumWithoutZero):
820         (TEST_enumConstexprGenericFunction):
821         (TEST_enumConstexprGenericStruct):
822         * WebGPUShadingLanguageRI/UintLiteral.js:
823         (let.UintLiteral.createLiteral.negConstexpr):
824         * WebGPUShadingLanguageRI/Visitor.js:
825         (Visitor.prototype.visitProtocolDecl):
826
827 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
828
829         WSL prepare() should cache the parsed standard library
830         https://bugs.webkit.org/show_bug.cgi?id=177118
831
832         Reviewed by Myles Maxfield.
833         
834         The execution time of Test.js is too damn high!
835         
836         So I made it 2x faster by caching the parsed standard library.
837
838         * WebGPUShadingLanguageRI/All.js:
839         * WebGPUShadingLanguageRI/CloneProgram.js: Added.
840         (cloneProgram):
841         * WebGPUShadingLanguageRI/Prepare.js:
842         (let.prepare):
843         (prepare): Deleted.
844         * WebGPUShadingLanguageRI/StatementCloner.js: Added.
845         (StatementCloner.prototype.visitFuncDef):
846         (StatementCloner.prototype.visitNativeFunc):
847         (StatementCloner.prototype.visitNativeType):
848         (StatementCloner.prototype.visitTypeDef):
849         (StatementCloner.prototype.visitStructType):
850         (StatementCloner.prototype.visitConstexprTypeParameter):
851         (StatementCloner.prototype.visitProtocolDecl):
852         * WebGPUShadingLanguageRI/Test.html:
853         * WebGPUShadingLanguageRI/Test.js:
854         (doTest):
855
856 2017-09-18  Michael Catanzaro  <mcatanzaro@igalia.com>
857
858         [CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit
859         https://bugs.webkit.org/show_bug.cgi?id=174558
860
861         Reviewed by Alex Christensen.
862
863         With help from Stephan Szabo, thanks!
864
865         * DumpRenderTree/PlatformMac.cmake:
866         * DumpRenderTree/PlatformWin.cmake:
867         * DumpRenderTree/win/AccessibilityControllerWin.cpp:
868         * DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
869         * DumpRenderTree/win/DumpRenderTree.cpp:
870         * DumpRenderTree/win/EditingDelegate.h:
871         * DumpRenderTree/win/EventSender.cpp:
872         * DumpRenderTree/win/FrameLoadDelegate.cpp:
873         * DumpRenderTree/win/FrameLoadDelegate.h:
874         * DumpRenderTree/win/GCControllerWin.cpp:
875         * DumpRenderTree/win/HistoryDelegate.cpp:
876         * DumpRenderTree/win/HistoryDelegate.h:
877         * DumpRenderTree/win/PolicyDelegate.h:
878         * DumpRenderTree/win/ResourceLoadDelegate.cpp:
879         * DumpRenderTree/win/ResourceLoadDelegate.h:
880         * DumpRenderTree/win/TestRunnerWin.cpp:
881         * DumpRenderTree/win/TextInputControllerWin.cpp:
882         * DumpRenderTree/win/UIDelegate.cpp:
883         * DumpRenderTree/win/UIDelegate.h:
884         * DumpRenderTree/win/WorkQueueItemWin.cpp:
885         * MiniBrowser/gtk/CMakeLists.txt:
886         * MiniBrowser/mac/CMakeLists.txt:
887         * MiniBrowser/win/AccessibilityDelegate.cpp:
888         * MiniBrowser/win/AccessibilityDelegate.h:
889         * MiniBrowser/win/CMakeLists.txt:
890         * MiniBrowser/win/Common.cpp:
891         * MiniBrowser/win/DOMDefaultImpl.h:
892         * MiniBrowser/win/MiniBrowser.cpp:
893         * MiniBrowser/win/MiniBrowser.h:
894         * MiniBrowser/win/MiniBrowserWebHost.cpp:
895         * MiniBrowser/win/MiniBrowserWebHost.h:
896         * MiniBrowser/win/PageLoadTestClient.h:
897         * MiniBrowser/win/PrintWebUIDelegate.cpp:
898         * MiniBrowser/win/PrintWebUIDelegate.h:
899         * MiniBrowser/win/ResourceLoadDelegate.cpp:
900         * MiniBrowser/win/ResourceLoadDelegate.h:
901         * MiniBrowser/win/WebDownloadDelegate.h:
902         * TestWebKitAPI/CMakeLists.txt:
903         * TestWebKitAPI/PlatformGTK.cmake:
904         * TestWebKitAPI/PlatformWPE.cmake:
905         * TestWebKitAPI/PlatformWin.cmake:
906         * TestWebKitAPI/Tests/WebKitLegacy/win/ScaleWebView.cpp:
907         * TestWebKitAPI/Tests/WebKitLegacy/win/WebViewDestruction.cpp:
908         * TestWebKitAPI/glib/CMakeLists.txt:
909         * WebKitTestRunner/CMakeLists.txt:
910         * WebKitTestRunner/PlatformGTK.cmake:
911         * WebKitTestRunner/PlatformWPE.cmake:
912
913 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
914
915         Fill out vector types in WSL's standard library
916         https://bugs.webkit.org/show_bug.cgi?id=177063
917
918         Reviewed by Filip Pizlo.
919
920         Now that we have struct types, operator&[], and operator==, fill out a few of the builtin vector types in the
921         standard library. This patch creates three new types: vec2, vec3, and vec4, each of which takes a type
922         argument, so you can say vec4<float>. This patch also adds typedefs of int4, uint4, float4, and double4 (along
923         with their 2- and 3- length siblings).
924
925         This patch does not include the swizzling operators, so you can't say float4.yzw.
926
927         * WebGPUShadingLanguageRI/StandardLibrary.js:
928         (operator.T.vec2.T):
929         (bool.operator.T.Equatable):
930         (thread.T.operator.T):
931         (operator.T.vec3.T):
932         (operator.T.vec4.T):
933         * WebGPUShadingLanguageRI/Test.js:
934         (TEST_builtinVectors):
935
936 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
937
938         WSL needs to annotate vertex shaders and fragment shaders
939         https://bugs.webkit.org/show_bug.cgi?id=177066
940
941         Reviewed by Filip Pizlo.
942
943         Metal Shading Language requires annotating vertex and fragment shaders, so this information needs to be in
944         the source WSL file.
945
946         * WebGPUShadingLanguageRI/Func.js:
947         (Func):
948         (Func.prototype.get shaderType):
949         * WebGPUShadingLanguageRI/FuncDef.js:
950         (FuncDef):
951         * WebGPUShadingLanguageRI/NativeFunc.js:
952         (NativeFunc):
953         * WebGPUShadingLanguageRI/Parse.js:
954         (parseFuncDecl):
955         (parseProtocolFuncDecl):
956         (parseFuncDef):
957         (parseNativeFunc):
958         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
959         (resolveOverloadImpl):
960         * WebGPUShadingLanguageRI/Test.js:
961
962 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
963
964         WSL should know that constexpr parameters are not lvalues
965         https://bugs.webkit.org/show_bug.cgi?id=177104
966
967         Reviewed by Saam Barati.
968         
969         This should be an error:
970         
971             void foo<int x>()
972             {
973                 x = 42;
974             }
975         
976         Previously, it wasn't, because VariableRef always thought that it was an LValue. This patch
977         teaches the type checker that not all VariableRefs are LValues.
978
979         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
980         (ConstexprTypeParameter.prototype.get varIsLValue):
981         * WebGPUShadingLanguageRI/FuncParameter.js:
982         (FuncParameter.prototype.get varIsLValue):
983         * WebGPUShadingLanguageRI/Test.js:
984         (TEST_nonArrayRefArrayLengthSucceed):
985         (TEST_nonArrayRefArrayLengthFail):
986         (TEST_nonArrayRefArrayLength): Deleted.
987         (TEST_assignLength): Deleted.
988         * WebGPUShadingLanguageRI/VariableDecl.js:
989         (VariableDecl.prototype.get varIsLValue):
990         * WebGPUShadingLanguageRI/VariableRef.js:
991         (VariableRef.prototype.get isLValue):
992
993 2017-09-18  Ryan Haddad  <ryanhaddad@apple.com>
994
995         Unreviewed, rolling out r222170.
996
997         The API test added with this change is failing.
998
999         Reverted changeset:
1000
1001         "Allow WTF::map to use any class that is iterable and has a
1002         size getter"
1003         https://bugs.webkit.org/show_bug.cgi?id=177026
1004         http://trac.webkit.org/changeset/222170
1005
1006 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
1007
1008         Add a section in WSL's documentation about how API objects and WSL interact
1009         https://bugs.webkit.org/show_bug.cgi?id=177089
1010
1011         Reviewed by Filip Pizlo.
1012
1013         No global variables; entry points accept arguments. Buffers are array references ([]),
1014         and texture and sampler opaque types exist. Data is passed between stages in return
1015         values.
1016
1017         * WebGPUShadingLanguageRI/WSL.md:
1018
1019 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
1020
1021         Unreviewed, fix typo.
1022
1023         * WebGPUShadingLanguageRI/WSL.md:
1024
1025 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
1026
1027         WSL cannot use typedefs of arrays
1028         https://bugs.webkit.org/show_bug.cgi?id=177061
1029
1030         Reviewed by Saam Barati.
1031         
1032         This test case didn't work before because of a missing visit call in Checker.
1033
1034         * WebGPUShadingLanguageRI/Checker.js:
1035         (Checker.prototype.visitTypeRef):
1036         * WebGPUShadingLanguageRI/Test.js:
1037         (TEST_typedefArray):
1038
1039 2017-09-18  Youenn Fablet  <youenn@apple.com>
1040
1041         Allow WTF::map to use any class that is iterable and has a size getter
1042         https://bugs.webkit.org/show_bug.cgi?id=177026
1043
1044         Reviewed by Darin Adler.
1045
1046         * TestWebKitAPI/Tests/WTF/Vector.cpp:
1047         (TestWebKitAPI::TEST):
1048
1049 2017-09-16  Filip Pizlo  <fpizlo@apple.com>
1050
1051         Figure out how WSL will support field overloads like float4.xz and friends
1052         https://bugs.webkit.org/show_bug.cgi?id=177031
1053
1054         Reviewed by JF Bastien.
1055         
1056         WSL needs to support getters and setters, so that we can do things like:
1057         
1058             float4 vec;
1059             vec.zx = float2(1, 2);
1060             // z = 1, x = 2
1061         
1062         There's no way to express this float4.zx returning a pointer to something, since it's doing swizzling.
1063         It could return a crazy smart pointer, but that sounds like a lot of work. So, I decided to go for
1064         lvalue emulation instead.
1065         
1066         The idea of lvalue emulation is that when we try to make an lvalue work for an assignment or RMW
1067         operation (like += and friends), we consider the possibility that we have to first load the value using
1068         a getter and then store it with a setter. This patch makes this work recursively, so that this will
1069         work:
1070         
1071             float4 vec;
1072             vec.zwx.y = 42;
1073             // now w is 42
1074         
1075         This works because we decompose it automatically:
1076         
1077             float4 vec;
1078             float3 tmp = vec.zwx;
1079             tmp.y = 42;
1080             vec.zwx = tmp;
1081         
1082         This'll work to any depth.
1083         
1084         To check if this works, this patch adds two substantial new tests called TEST_genericAccessors() and
1085         TEST_bitSubscriptAccessor(). This tests that this stuff works with a lot of generic types, and that it's
1086         possible to turn integers into bitvectors using subscript overloading. This patch also adds smaller unit
1087         tests also.
1088         
1089         Oh, and it's now possible to get an array's length.
1090
1091         * WebGPUShadingLanguageRI/AddressSpace.js:
1092         (needsPrimitiveProtocol):
1093         (protocolSuffix):
1094         * WebGPUShadingLanguageRI/All.js:
1095         * WebGPUShadingLanguageRI/AnonymousVariable.js: Added.
1096         (AnonymousVariable):
1097         (AnonymousVariable.prototype.get origin):
1098         (AnonymousVariable.prototype.get name):
1099         (AnonymousVariable.prototype.toString):
1100         * WebGPUShadingLanguageRI/ArrayRefType.js:
1101         (ArrayRefType.prototype.argumentForAndOverload):
1102         (ArrayRefType.prototype.argumentTypeForAndOverload):
1103         * WebGPUShadingLanguageRI/ArrayType.js:
1104         (ArrayType.prototype.argumentForAndOverload):
1105         (ArrayType.prototype.argumentTypeForAndOverload):
1106         (ArrayType):
1107         * WebGPUShadingLanguageRI/Assignment.js:
1108         (Assignment):
1109         * WebGPUShadingLanguageRI/CallAssignment.js: Removed.
1110         * WebGPUShadingLanguageRI/CallExpression.js:
1111         (CallExpression.resolve):
1112         (CallExpression.prototype.resolve):
1113         (CallExpression.prototype.resolveToOverload):
1114         * WebGPUShadingLanguageRI/Checker.js:
1115         (Checker.prototype.visitProgram):
1116         (Checker.prototype.visitFuncDef):
1117         (Checker.prototype.visitNativeFunc):
1118         (Checker.prototype.visitProtocolDecl):
1119         (Checker.prototype.visitIdentityExpression):
1120         (Checker.prototype.visitReadModifyWriteExpression):
1121         (Checker.prototype.visitAnonymousVariable):
1122         (Checker.prototype.visitMakeArrayRefExpression):
1123         (Checker.prototype._finishVisitingPropertyAccess):
1124         (Checker.prototype.visitDotExpression):
1125         (Checker.prototype.visitIndexExpression):
1126         (Checker.prototype.visitCallExpression):
1127         (Checker):
1128         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitTypeRef): Deleted.
1129         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitVariableRef): Deleted.
1130         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable): Deleted.
1131         (Checker.prototype.visitProtocolDecl.set throw): Deleted.
1132         * WebGPUShadingLanguageRI/CommaExpression.js:
1133         * WebGPUShadingLanguageRI/DotExpression.js:
1134         (DotExpression):
1135         (DotExpression.prototype.get struct):
1136         (DotExpression.prototype.get getFuncName):
1137         (DotExpression.prototype.get andFuncName):
1138         (DotExpression.prototype.get setFuncName):
1139         * WebGPUShadingLanguageRI/EBuffer.js:
1140         * WebGPUShadingLanguageRI/EBufferBuilder.js:
1141         (EBufferBuilder.prototype.visitAnonymousVariable):
1142         (EBufferBuilder.prototype.visitLetExpression): Deleted.
1143         * WebGPUShadingLanguageRI/Evaluator.js:
1144         (Evaluator.prototype.visitIdentityExpression):
1145         (Evaluator.prototype.visitMakePtrExpression):
1146         (Evaluator.prototype.visitAnonymousVariable):
1147         (Evaluator.prototype.visitDotExpression): Deleted.
1148         (Evaluator.prototype.visitLetExpression): Deleted.
1149         * WebGPUShadingLanguageRI/ExpressionFinder.js:
1150         (ExpressionFinder.prototype.visitReadModifyWriteExpression):
1151         (ExpressionFinder.prototype.visitIdentityExpression):
1152         * WebGPUShadingLanguageRI/ForLoop.js:
1153         (ForLoop.prototype.toString):
1154         (ForLoop):
1155         * WebGPUShadingLanguageRI/Func.js:
1156         (Func):
1157         * WebGPUShadingLanguageRI/FuncInstantiator.js:
1158         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
1159         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
1160         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
1161         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc):
1162         (FuncInstantiator.prototype.getUnique.Instantiate):
1163         (FuncInstantiator.prototype.getUnique):
1164         (FuncInstantiator):
1165         * WebGPUShadingLanguageRI/IdentityExpression.js: Added.
1166         (IdentityExpression):
1167         (IdentityExpression.prototype.get target):
1168         (IdentityExpression.prototype.get unifyNode):
1169         (IdentityExpression.prototype.get isConstexpr):
1170         (IdentityExpression.prototype.get isLValue):
1171         (IdentityExpression.prototype.get addressSpace):
1172         (IdentityExpression.prototype.toString):
1173         * WebGPUShadingLanguageRI/IndexExpression.js: Added.
1174         (IndexExpression):
1175         (IndexExpression.prototype.get array):
1176         (IndexExpression.prototype.get index):
1177         (IndexExpression.prototype.get isLValue):
1178         (IndexExpression.prototype.get addressSpace):
1179         (IndexExpression.prototype.get getFuncName):
1180         (IndexExpression.prototype.get andFuncName):
1181         (IndexExpression.prototype.get setFuncName):
1182         (IndexExpression.prototype.toString):
1183         * WebGPUShadingLanguageRI/InferTypesForCall.js:
1184         (inferTypesForCall):
1185         * WebGPUShadingLanguageRI/Inline.js:
1186         (_inlineFunction):
1187         * WebGPUShadingLanguageRI/Inliner.js:
1188         (Inliner.prototype.visitCallExpression):
1189         (Inliner.prototype.visitDotExpression): Deleted.
1190         * WebGPUShadingLanguageRI/Intrinsics.js:
1191         (Intrinsics):
1192         * WebGPUShadingLanguageRI/LetExpression.js: Removed.
1193         * WebGPUShadingLanguageRI/MakeArrayRefExpression.js:
1194         (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression): Deleted.
1195         * WebGPUShadingLanguageRI/NameContext.js:
1196         (NameContext):
1197         (NameContext.prototype.add):
1198         (NameContext.prototype.doStatement):
1199         (NameContext.prototype.handleDefining): Deleted.
1200         (NameContext.prototype.isDefined): Deleted.
1201         (NameContext.prototype.define): Deleted.
1202         (NameContext.prototype.defineAll): Deleted.
1203         * WebGPUShadingLanguageRI/NameResolver.js:
1204         (NameResolver.prototype.doStatement):
1205         (NameResolver.prototype.visitProtocolDecl):
1206         (NameResolver.prototype.visitProgram): Deleted.
1207         * WebGPUShadingLanguageRI/NativeFunc.js:
1208         (NativeFunc):
1209         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
1210         (NativeFuncInstance):
1211         (NativeFuncInstance.prototype.get implementationData):
1212         * WebGPUShadingLanguageRI/Node.js:
1213         (Node.prototype.visit):
1214         (Node.visit):
1215         (Node.unify): Deleted.
1216         * WebGPUShadingLanguageRI/NormalUsePropertyResolver.js: Added.
1217         (NormalUsePropertyResolver.prototype.visitDotExpression):
1218         (NormalUsePropertyResolver.prototype.visitIndexExpression):
1219         (NormalUsePropertyResolver):
1220         * WebGPUShadingLanguageRI/Parse.js:
1221         (finishParsingPostIncrement):
1222         (parsePossibleSuffix):
1223         (finishParsingPreIncrement):
1224         (genericParseCommaExpression):
1225         (parseFuncName):
1226         * WebGPUShadingLanguageRI/Prepare.js:
1227         (prepare):
1228         * WebGPUShadingLanguageRI/Program.js:
1229         (Program):
1230         (Program.prototype.get globalNameContext):
1231         (Program.prototype.add):
1232         * WebGPUShadingLanguageRI/PropertyAccessExpression.js: Added.
1233         (PropertyAccessExpression):
1234         (PropertyAccessExpression.prototype.get resultType):
1235         (PropertyAccessExpression.prototype.rewriteAfterCloning):
1236         (PropertyAccessExpression.prototype.updateCallsAfterChangingBase):
1237         (PropertyAccessExpression.prototype.emitGet):
1238         (PropertyAccessExpression.prototype.emitSet):
1239         * WebGPUShadingLanguageRI/PropertyResolver.js: Added.
1240         (PropertyResolver.prototype._visitPropertyAccess):
1241         (PropertyResolver.prototype.visitDotExpression):
1242         (PropertyResolver.prototype.visitIndexExpression):
1243         (PropertyResolver.prototype._handleReadModifyWrite):
1244         (PropertyResolver.prototype.visitReadModifyWriteExpression):
1245         (PropertyResolver.prototype.visitAssignment):
1246         (PropertyResolver.visitMakePtrExpression):
1247         (PropertyResolver.prototype.visitMakeArrayRefExpression):
1248         (PropertyResolver):
1249         * WebGPUShadingLanguageRI/PtrType.js:
1250         (PtrType.prototype.argumentForAndOverload):
1251         (PtrType.prototype.argumentTypeForAndOverload):
1252         (PtrType.prototype.returnTypeFromAndOverload):
1253         * WebGPUShadingLanguageRI/ReadModifyWriteExpression.js: Added.
1254         (ReadModifyWriteExpression):
1255         (ReadModifyWriteExpression.prototype.get lValue):
1256         (ReadModifyWriteExpression.prototype.oldValueRef):
1257         (ReadModifyWriteExpression.prototype.newValueRef):
1258         (ReadModifyWriteExpression.prototype.toString):
1259         * WebGPUShadingLanguageRI/ResolveNames.js:
1260         (createNameResolver):
1261         (resolveNamesInTypes):
1262         (resolveNamesInProtocols):
1263         (resolveNamesInFunctions):
1264         (resolveNames): Deleted.
1265         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
1266         (resolveOverloadImpl):
1267         * WebGPUShadingLanguageRI/ResolveProperties.js: Added.
1268         (resolveProperties):
1269         * WebGPUShadingLanguageRI/ResolveTypeDefs.js:
1270         (resolveTypeDefsInTypes):
1271         (resolveTypeDefsInProtocols):
1272         (resolveTypeDefsInFunctions):
1273         (resolveTypeDefs): Deleted.
1274         * WebGPUShadingLanguageRI/ReturnChecker.js:
1275         (ReturnChecker.prototype._isBoolCastFromLiteralTrue):
1276         * WebGPUShadingLanguageRI/Rewriter.js:
1277         (Rewriter):
1278         (Rewriter.prototype.visitVariableDecl):
1279         (Rewriter.prototype.visitTypeRef):
1280         (Rewriter.prototype.visitAssignment):
1281         (Rewriter.prototype.visitReadModifyWriteExpression):
1282         (Rewriter.prototype.visitDereferenceExpression):
1283         (Rewriter.prototype._handlePropertyAccessExpression):
1284         (Rewriter.prototype.visitDotExpression):
1285         (Rewriter.prototype.visitIndexExpression):
1286         (Rewriter.prototype.visitReturn):
1287         (Rewriter.prototype.visitGenericLiteralType):
1288         (Rewriter.prototype.visitNullType):
1289         (Rewriter.prototype.processDerivedCallData):
1290         (Rewriter.prototype.visitCallExpression):
1291         (Rewriter.prototype.visitFunctionLikeBlock):
1292         (Rewriter.prototype.visitIfStatement):
1293         (Rewriter.prototype.visitForLoop):
1294         (Rewriter.prototype.visitAnonymousVariable):
1295         (Rewriter.prototype.visitIdentityExpression):
1296         (Rewriter.prototype.visitLetExpression): Deleted.
1297         * WebGPUShadingLanguageRI/StandardLibrary.js:
1298         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
1299         (StructLayoutBuilder.prototype.visitNativeFuncInstance):
1300         (StructLayoutBuilder):
1301         * WebGPUShadingLanguageRI/StructType.js:
1302         (StructType.prototype.instantiate):
1303         * WebGPUShadingLanguageRI/Substitution.js:
1304         (Substitution.prototype.get map):
1305         * WebGPUShadingLanguageRI/SuffixCallAssignment.js: Removed.
1306         * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: Added.
1307         (synthesizeStructAccessors.createTypeParameters):
1308         (synthesizeStructAccessors.):
1309         (synthesizeStructAccessors.createFieldType):
1310         (synthesizeStructAccessors.createTypeRef):
1311         (synthesizeStructAccessors.setupAnder):
1312         (synthesizeStructAccessors):
1313         * WebGPUShadingLanguageRI/Test.html:
1314         * WebGPUShadingLanguageRI/Test.js:
1315         (checkNumber):
1316         (TEST_simpleProtocol):
1317         (TEST_assignLength):
1318         (TEST_simpleSetter):
1319         (TEST_genericAccessors):
1320         * WebGPUShadingLanguageRI/Type.js:
1321         (Type.prototype.get isRef):
1322         (Type.prototype.argumentForAndOverload):
1323         (Type.prototype.argumentTypeForAndOverload):
1324         (Type.prototype.returnTypeFromAndOverload):
1325         (Type):
1326         * WebGPUShadingLanguageRI/TypeParameterRewriter.js: Added.
1327         (TypeParameterRewriter.prototype.visitConstexprTypeParameter):
1328         (TypeParameterRewriter.prototype.visitTypeVariable):
1329         (TypeParameterRewriter):
1330         * WebGPUShadingLanguageRI/TypeVariableTracker.js: Added.
1331         (TypeVariableTracker):
1332         * WebGPUShadingLanguageRI/Value.js:
1333         (Value.prototype.become):
1334         (Value):
1335         * WebGPUShadingLanguageRI/VariableRef.js:
1336         (VariableRef.prototype.get unifyNode):
1337         (VariableRef.prototype.get addressSpace):
1338         * WebGPUShadingLanguageRI/Visitor.js:
1339         (Visitor.prototype.visitNativeFuncInstance):
1340         (Visitor.prototype.visitProtocolDecl):
1341         (Visitor): Deleted.
1342         * WebGPUShadingLanguageRI/VisitorBase.js: Removed.
1343
1344 2017-09-18  Andy Estes  <aestes@apple.com>
1345
1346         [Cocoa] Upstream WKSetCrashReportApplicationSpecificInformation() from WebKitSystemInterface
1347         https://bugs.webkit.org/show_bug.cgi?id=177048
1348
1349         Reviewed by Alex Christensen.
1350
1351         * DumpRenderTree/mac/DumpRenderTree.mm:
1352         (runTest):
1353         * WebKitTestRunner/cocoa/CrashReporterInfo.mm:
1354         (WTR::setCrashReportApplicationSpecificInformationToURL):
1355
1356 2017-09-18  Tim Horton  <timothy_horton@apple.com>
1357
1358         build-webkit spawns fewer subprocesses than ninja uses by default
1359         https://bugs.webkit.org/show_bug.cgi?id=177057
1360
1361         Reviewed by Alex Christensen.
1362
1363         * Scripts/build-webkit:
1364         By default, ninja will parallelize over (cores + 2) jobs. build-webkit
1365         specifies -j(cores), which overrides this. Remove our override if building
1366         with ninja; just let it do its own thing. In my testing, this minor
1367         change is the difference between ~10% idle CPU time and 0.
1368
1369 2017-09-18  Lucas Forschler  <lforschler@apple.com>
1370
1371         Land a patch to verify svn->git update is working.
1372
1373 2017-09-18  Ms2ger  <Ms2ger@igalia.com>
1374
1375         Update my status.
1376
1377         Unreviewed.
1378
1379         * Scripts/webkitpy/common/config/contributors.json:
1380
1381 2017-09-17  Filip Pizlo  <fpizlo@apple.com>
1382
1383         Start working on WSL documentation
1384         https://bugs.webkit.org/show_bug.cgi?id=177064
1385
1386         Reviewed by Mylex Maxfield.
1387         
1388         This is a work in progress. I'd like to check it in and then keep adding to it.
1389
1390         * WebGPUShadingLanguageRI/WSL.md: Added.
1391
1392 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
1393
1394         WSL needs to understand && and ||
1395         https://bugs.webkit.org/show_bug.cgi?id=177062
1396
1397         Reviewed by Filip Pizlo.
1398
1399         Very similar to LogicalNot.
1400
1401         * WebGPUShadingLanguageRI/All.js:
1402         * WebGPUShadingLanguageRI/Checker.js:
1403         * WebGPUShadingLanguageRI/EBufferBuilder.js:
1404         (EBufferBuilder.prototype.visitLogicalExpression):
1405         * WebGPUShadingLanguageRI/Evaluator.js:
1406         (Evaluator.prototype.visitLogicalExpression):
1407         * WebGPUShadingLanguageRI/Lexer.js:
1408         (Lexer.prototype.next):
1409         (Lexer):
1410         * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
1411         (LogicalExpression):
1412         (LogicalExpression.prototype.get text):
1413         (LogicalExpression.prototype.get left):
1414         (LogicalExpression.prototype.get right):
1415         (LogicalExpression.prototype.toString):
1416         * WebGPUShadingLanguageRI/Parse.js:
1417         (parseLeftLogicalExpression):
1418         * WebGPUShadingLanguageRI/Rewriter.js:
1419         (Rewriter.prototype.visitLogicalExpression):
1420         * WebGPUShadingLanguageRI/Test.html:
1421         * WebGPUShadingLanguageRI/Test.js:
1422         * WebGPUShadingLanguageRI/Visitor.js:
1423         (Visitor.prototype.visitProtocolDecl):
1424
1425 2017-09-18  Ms2ger  <Ms2ger@igalia.com>
1426
1427         Update my status.
1428
1429         Unreviewed.
1430
1431         * Scripts/webkitpy/common/config/contributors.json:
1432
1433 2017-09-17  Filip Pizlo  <fpizlo@apple.com>
1434
1435         Start working on WSL documentation
1436         https://bugs.webkit.org/show_bug.cgi?id=177064
1437
1438         Reviewed by Mylex Maxfield.
1439         
1440         This is a work in progress. I'd like to check it in and then keep adding to it.
1441
1442         * WebGPUShadingLanguageRI/WSL.md: Added.
1443
1444 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
1445
1446         WSL needs to understand && and ||
1447         https://bugs.webkit.org/show_bug.cgi?id=177062
1448
1449         Reviewed by Filip Pizlo.
1450
1451         Very similar to LogicalNot.
1452
1453         * WebGPUShadingLanguageRI/All.js:
1454         * WebGPUShadingLanguageRI/Checker.js:
1455         * WebGPUShadingLanguageRI/EBufferBuilder.js:
1456         (EBufferBuilder.prototype.visitLogicalExpression):
1457         * WebGPUShadingLanguageRI/Evaluator.js:
1458         (Evaluator.prototype.visitLogicalExpression):
1459         * WebGPUShadingLanguageRI/Lexer.js:
1460         (Lexer.prototype.next):
1461         (Lexer):
1462         * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
1463         (LogicalExpression):
1464         (LogicalExpression.prototype.get text):
1465         (LogicalExpression.prototype.get left):
1466         (LogicalExpression.prototype.get right):
1467         (LogicalExpression.prototype.toString):
1468         * WebGPUShadingLanguageRI/Parse.js:
1469         (parseLeftLogicalExpression):
1470         * WebGPUShadingLanguageRI/Rewriter.js:
1471         (Rewriter.prototype.visitLogicalExpression):
1472         * WebGPUShadingLanguageRI/Test.html:
1473         * WebGPUShadingLanguageRI/Test.js:
1474         * WebGPUShadingLanguageRI/Visitor.js:
1475         (Visitor.prototype.visitProtocolDecl):
1476
1477 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
1478
1479         WSL needs float and double support
1480         https://bugs.webkit.org/show_bug.cgi?id=177058
1481
1482         Reviewed by Filip Pizlo.
1483
1484         Use the existing int and uint types as a model. The types themselves are straighforward. Just like int and uint,
1485         you can't pass a float as a double argument and vice-versa. This patch adds operator+, -, *, and / for floats
1486         and doubles.
1487
1488         Float literals are more complicated. If your number has a "." character in it, it is treated as a float literal.
1489         You can add a suffix of "f" or "d" to force the literal to pretend to be a float or a double. These literals are
1490         able to masquerade as either floats or doubles (unlike an explicit type). However, these literals are not able
1491         to masquerade as ints or uints. There's also a nice check that your float literal can actually fit in a float.
1492
1493         * WebGPUShadingLanguageRI/All.js:
1494         * WebGPUShadingLanguageRI/DoubleLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
1495         (let.DoubleLiteral.createLiteral.createType):
1496         * WebGPUShadingLanguageRI/DoubleLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
1497         (let.DoubleLiteralType.createLiteralType.verifyAsArgument):
1498         * WebGPUShadingLanguageRI/FloatLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
1499         (let.FloatLiteral.createLiteral.createType):
1500         * WebGPUShadingLanguageRI/FloatLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
1501         (let.FloatLiteralType.createLiteralType.verifyAsArgument):
1502         * WebGPUShadingLanguageRI/Intrinsics.js:
1503         (Intrinsics):
1504         * WebGPUShadingLanguageRI/Lexer.js:
1505         (Lexer.prototype.next):
1506         (Lexer):
1507         * WebGPUShadingLanguageRI/NativeType.js:
1508         (NativeType):
1509         (NativeType.prototype.get isFloating):
1510         (NativeType.prototype.set isFloating):
1511         (NativeType.prototype.get isFloat): Deleted.
1512         (NativeType.prototype.set isFloat): Deleted.
1513         * WebGPUShadingLanguageRI/Parse.js:
1514         (parseTerm):
1515         * WebGPUShadingLanguageRI/Rewriter.js:
1516         (Rewriter.prototype.visitGenericLiteral):
1517         * WebGPUShadingLanguageRI/StandardLibrary.js:
1518         (uint.operator):
1519         (int.operator):
1520         * WebGPUShadingLanguageRI/Test.html:
1521         * WebGPUShadingLanguageRI/Test.js:
1522         (makeFloat):
1523         (makeDouble):
1524         (checkNumber):
1525         (checkFloat):
1526         (checkDouble):
1527         * WebGPUShadingLanguageRI/Type.js:
1528         (Type.prototype.get isFloating):
1529         (Type.prototype.get isFloat): Deleted.
1530
1531 2017-09-17  Michael Saboff  <msaboff@apple.com>
1532
1533         https://bugs.webkit.org/show_bug.cgi?id=177038
1534         Add an option to run-jsc-stress-tests to limit tests variations to a basic set
1535
1536         Reviewed by JF Bastien.
1537
1538         Added the --basic option that runs defaults tests with the following modes, default, no-llint,
1539         no-cjit-validate-phases, no-cjit-collect-continuously, dfg-eager and for FTL platforms: no-ftl,
1540         ftl-eager-no-cjit and ftl-no-cjit-small-pool.  This takes about half the time as running all
1541         16 modes of a full run.
1542
1543         * Scripts/run-jsc-stress-tests:
1544
1545 2017-09-16  Tim Horton  <timothy_horton@apple.com>
1546
1547         Fix the Tools build with CMake on macOS
1548         https://bugs.webkit.org/show_bug.cgi?id=177030
1549
1550         Reviewed by Geoffrey Garen.
1551
1552         * TestWebKitAPI/CMakeLists.txt:
1553         Add a workaround identical to what the gtest CMakeLists has.
1554
1555 2017-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>
1556
1557         [GTK] Bump fontconfig version to 2.12.4
1558         https://bugs.webkit.org/show_bug.cgi?id=176997
1559
1560         Reviewed by Michael Catanzaro.
1561
1562         It's the latest stable version and we can get rid of the patches we have.
1563
1564         * WebKitTestRunner/gtk/fonts/fonts.conf: Remove hinting config we no longer need with newer FreeType and
1565         deprecated <blank> that current fontconfig just ignores.
1566         * gtk/jhbuild.modules:
1567         * gtk/patches/fontconfig-2.11.1-add-autogen.patch: Removed.
1568         * gtk/patches/fontconfig-Avoid-conflicts-with-integer-width-macros-from-TS-18661-1-2014.patch: Removed.
1569         * gtk/patches/fontconfig-Fix-the-build-issue-with-gperf-3.1.patch: Removed.
1570         * gtk/patches/fontconfig-fix-osx-cache.diff: Removed.
1571
1572 2017-09-15  Lucas Forschler  <lforschler@apple.com>
1573
1574         Move run-webkit-archive from Tools/Scripts to Tools/BuildSlaveSupport
1575         
1576         Reviewed by Alexey Proskuryakov.
1577
1578         * Scripts/run-webkit-archive: Removed.
1579
1580 2017-09-15  Lucas Forschler  <lforschler@apple.com>
1581
1582         teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives.
1583         https://bugs.webkit.org/show_bug.cgi?id=176965
1584
1585         Reviewed by Alexey Proskuryakov.
1586
1587         * BuildSlaveSupport/built-product-archive:
1588         (addLauncherToArchive): Helper function to add the launcher script
1589         (createZip): teach function about addLauncherToArchive
1590         * BuildSlaveSupport/run-webkit-archive: Added.
1591         (check_for_valid_platform): Add logic to ensure platform is Darwin
1592         (find_dyld_framework_path): Find the dyld framework path
1593         (run_safari_for_webkit_development): launch SafariForWebKitDevelopment
1594         (set_dyld_framework_path): export the environment for dydl framework path
1595
1596 2017-09-15  Myles C. Maxfield  <mmaxfield@apple.com>
1597
1598         [WSL] Small cleanup in Evaluator
1599         https://bugs.webkit.org/show_bug.cgi?id=176971
1600
1601         Reviewed by Filip Pizlo.
1602
1603         Use the symbols for break and continue instead of the objects themselves.
1604
1605         No tests because there is no behavior change.
1606
1607         * WebGPUShadingLanguageRI/Evaluator.js:
1608         (Evaluator.prototype.visitWhileLoop):
1609         (Evaluator.prototype.visitDoWhileLoop):
1610         (Evaluator.prototype.visitForLoop):
1611         (Evaluator.prototype.visitBreak):
1612         (Evaluator.prototype.visitContinue):
1613
1614 2017-09-15  Filip Pizlo  <fpizlo@apple.com>
1615
1616         WSL Evaluator should only allocate EBuffers when dealing with intrinsics
1617         https://bugs.webkit.org/show_bug.cgi?id=176973
1618
1619         Reviewed by Myles Maxfield.
1620         
1621         Whether or not two temporary values share the same EBuffer is ultimately observable in WSL,
1622         because you can do this:
1623         
1624             thread int^ operator&[](thread int^ ptr, uint index)
1625             {
1626                 g_ptr = ptr;
1627                 return ptr;
1628             }
1629         
1630         And then this is a thing:
1631         
1632             42[0];
1633             // g_ptr now points to 42's location
1634         
1635         Normally this would have a lot of bad implications. But in WSL, if you did choose to do this,
1636         you'd get a pointer to something well-defined: the EBuffer of 42's GenericLiteral. Each static
1637         occurrence of a literal gets its own location, and the semantics of the language call for
1638         42 to be stored into this location when `42` "executes". So, while the programmer could do all
1639         kinds of strange things, at least the strangeness they would see is something we can spec.
1640         
1641         But to do this, the interpreter needs to allocate EBuffers in the same way a compiler would.
1642         It cannot allocate them during execution, except when interacting with intrinsics, which won't
1643         know the difference.
1644         
1645         In the process, I found places that needed to use AutoWrapper instead of TypeRef.wrap.
1646
1647         * WebGPUShadingLanguageRI/AutoWrapper.js:
1648         (AutoWrapper.prototype.visitGenericLiteralType):
1649         (AutoWrapper.prototype.visitNullType):
1650         (AutoWrapper):
1651         * WebGPUShadingLanguageRI/CallExpression.js:
1652         (CallExpression.prototype.resolve):
1653         * WebGPUShadingLanguageRI/CallFunction.js:
1654         (callFunction):
1655         * WebGPUShadingLanguageRI/Checker.js:
1656         * WebGPUShadingLanguageRI/CreateLiteralType.js:
1657         (createLiteralType.GenericLiteralType.prototype.commitUnification):
1658         * WebGPUShadingLanguageRI/EBuffer.js:
1659         (EBuffer):
1660         (EBuffer.setCanAllocateEBuffers):
1661         (EBuffer.disallowAllocation):
1662         (EBuffer.allowAllocation):
1663         * WebGPUShadingLanguageRI/EBufferBuilder.js:
1664         (EBufferBuilder.prototype.visitVariableDecl):
1665         (EBufferBuilder.prototype.visitFuncDef):
1666         (EBufferBuilder.prototype.visitFunctionLikeBlock):
1667         (EBufferBuilder.prototype.visitCallExpression):
1668         (EBufferBuilder.prototype.visitMakePtrExpression):
1669         (EBufferBuilder.prototype.visitGenericLiteral):
1670         (EBufferBuilder.prototype.visitNullLiteral):
1671         (EBufferBuilder.prototype.visitBoolLiteral):
1672         (EBufferBuilder.prototype.visitLogicalNot):
1673         (EBufferBuilder):
1674         * WebGPUShadingLanguageRI/EPtr.js:
1675         (EPtr.box):
1676         (EPtr.prototype.box):
1677         * WebGPUShadingLanguageRI/Evaluator.js:
1678         (Evaluator.prototype._snapshot):
1679         (Evaluator.prototype.runFunc):
1680         (Evaluator.prototype._runBody):
1681         (Evaluator.prototype.visitFunctionLikeBlock):
1682         (Evaluator.prototype.visitMakePtrExpression):
1683         (Evaluator.prototype.visitGenericLiteral):
1684         (Evaluator.prototype.visitNullLiteral):
1685         (Evaluator.prototype.visitBoolLiteral):
1686         (Evaluator.prototype.visitLogicalNot):
1687         (Evaluator.prototype.visitCallExpression):
1688         (Evaluator):
1689         (Evaluator.prototype.runBody): Deleted.
1690         * WebGPUShadingLanguageRI/Inliner.js:
1691         (Inliner.prototype.visitCallExpression):
1692         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
1693         (InstantiateImmediates.prototype.visitTypeRef):
1694         * WebGPUShadingLanguageRI/Rewriter.js:
1695         (Rewriter.prototype.visitMakePtrExpression):
1696         (Rewriter.prototype.visitGenericLiteral):
1697         (Rewriter.prototype.visitNullLiteral):
1698         (Rewriter.prototype.processDerivedCallData):
1699         (Rewriter.prototype.visitFunctionLikeBlock):
1700         (Rewriter.prototype.visitLogicalNot):
1701         * WebGPUShadingLanguageRI/TypeRef.js:
1702         (TypeRef.prototype.toString):
1703         (TypeRef):
1704         * WebGPUShadingLanguageRI/Visitor.js:
1705         (Visitor.prototype.visitProtocolDecl):
1706
1707 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
1708
1709         Rationalize how WSL's operator&[] works
1710         https://bugs.webkit.org/show_bug.cgi?id=176958
1711
1712         Reviewed by Myles Maxfield.
1713         
1714         This makes operator&[] work with non-array-ref types. The way this works is that if you do base[index]
1715         then we pattern match base's type and proceed accordingly:
1716         
1717             If base's type is T^:
1718                 => Reject
1719             
1720             If base's type is T[]:
1721                 => Accept
1722             
1723             If base's type is T[c]:
1724                 => Wrap it with a MakeArrayRefExpression and accept.
1725             
1726             All other cases:
1727                 => Wrap it with a MakePtrExpression and accept.
1728         
1729         This makes it possible for operator&[] to work with lvalues. It also means that operator&[] gets to
1730         "see" the temporary values we create via snapshot() in the interpreter. We'll have to fix that, and I've
1731         filed bug 176973 for that. Once that's fixed, this will have well-defined behavior, though with the very
1732         peculiar caveat that an expression like this:
1733         
1734              totallyNotAnLValue()[42]
1735         
1736         Could be used to get a pointer to a non-lvalue. But we can be extremely precise about what that means
1737         and prohibit dangling pointers, which is kinda crazy.
1738         
1739         In order to do this, I had to make MakeArrayRefExpression work, so I did that and added tests for it.
1740
1741         * WebGPUShadingLanguageRI/All.js:
1742         * WebGPUShadingLanguageRI/ArrayRefType.js:
1743         (ArrayRefType.prototype.unifyImpl):
1744         (ArrayRefType.prototype.toString):
1745         (ArrayRefType):
1746         * WebGPUShadingLanguageRI/ArrayType.js:
1747         (ArrayType):
1748         (ArrayType.prototype.get numElementsValue):
1749         (ArrayType.prototype.get size):
1750         (ArrayType.prototype.populateDefaultValue):
1751         (ArrayType.prototype.unifyImpl):
1752         * WebGPUShadingLanguageRI/Checker.js:
1753         * WebGPUShadingLanguageRI/ConvertPtrToArrayRefExpression.js: Added.
1754         (ConvertPtrToArrayRefExpression):
1755         (ConvertPtrToArrayRefExpression.prototype.get lValue):
1756         (ConvertPtrToArrayRefExpression.prototype.toString):
1757         * WebGPUShadingLanguageRI/CreateLiteral.js:
1758         (createLiteral.GenericLiteral.withType):
1759         (createLiteral.GenericLiteral.prototype.get isLiteral):
1760         (createLiteral.GenericLiteral.prototype.unifyImpl):
1761         * WebGPUShadingLanguageRI/DotExpression.js:
1762         (DotExpression.prototype.get addressSpace):
1763         * WebGPUShadingLanguageRI/Evaluator.js:
1764         (Evaluator.prototype.visitMakeArrayRefExpression):
1765         (Evaluator.prototype.visitConvertPtrToArrayRefExpression):
1766         * WebGPUShadingLanguageRI/Intrinsics.js:
1767         (Intrinsics):
1768         * WebGPUShadingLanguageRI/MakeArrayRefExpression.js: Added.
1769         (MakeArrayRefExpression):
1770         (MakeArrayRefExpression.prototype.get lValue):
1771         (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression):
1772         (MakeArrayRefExpression.prototype.toString):
1773         * WebGPUShadingLanguageRI/MakePtrExpression.js:
1774         (MakePtrExpression.prototype.toString):
1775         (MakePtrExpression):
1776         * WebGPUShadingLanguageRI/PtrType.js:
1777         (PtrType.prototype.toString):
1778         (PtrType):
1779         * WebGPUShadingLanguageRI/ReferenceType.js:
1780         (ReferenceType):
1781         * WebGPUShadingLanguageRI/Rewriter.js:
1782         (Rewriter.prototype.visitArrayType):
1783         (Rewriter.prototype.visitMakeArrayRefExpression):
1784         (Rewriter.prototype.visitConvertPtrToArrayRefExpression):
1785         * WebGPUShadingLanguageRI/StandardLibrary.js:
1786         * WebGPUShadingLanguageRI/Test.html:
1787         * WebGPUShadingLanguageRI/Test.js:
1788         (TEST_buildArrayThenSumItUsingArrayReference):
1789         (TEST_overrideSubscriptStruct):
1790         (TEST_overrideSubscriptStructAndUsePointers):
1791         (TEST_overrideSubscriptStructAndUsePointersIncorrectly):
1792         (TEST_makeArrayRefFromPointer):
1793         (TEST_makeArrayRefFromArrayRef):
1794         * WebGPUShadingLanguageRI/Visitor.js:
1795         (Visitor.prototype.visitProtocolDecl):
1796
1797 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
1798
1799         WSL should support ++, --, +=, and all of those things
1800         https://bugs.webkit.org/show_bug.cgi?id=176975
1801
1802         Reviewed by Myles Maxfield.
1803         
1804         This adds an internal AST construct called LetExpression, that allows us to anonymously capture
1805         a value. This change uses LetExpression to implement prefix and suffix ++/-- and all of the
1806         +=/-=/etc.
1807
1808         * WebGPUShadingLanguageRI/All.js:
1809         * WebGPUShadingLanguageRI/Checker.js:
1810         * WebGPUShadingLanguageRI/EBufferBuilder.js:
1811         (EBufferBuilder.prototype.visitVariableDecl):
1812         (EBufferBuilder.prototype.visitLetExpression):
1813         (EBufferBuilder):
1814         * WebGPUShadingLanguageRI/Evaluator.js:
1815         (Evaluator.prototype.visitLetExpression):
1816         * WebGPUShadingLanguageRI/LetExpression.js: Added.
1817         (LetExpression):
1818         (LetExpression.prototype.get origin):
1819         (LetExpression.prototype.get name):
1820         (LetExpression.prototype.toString):
1821         * WebGPUShadingLanguageRI/Lexer.js:
1822         (Lexer.prototype.next):
1823         (Lexer):
1824         * WebGPUShadingLanguageRI/NameResolver.js:
1825         (NameResolver.prototype.visitProtocolDecl):
1826         * WebGPUShadingLanguageRI/Parse.js:
1827         (isCallExpression):
1828         (finishParsingPostIncrement):
1829         (parsePossibleSuffix):
1830         (finishParsingPreIncrement):
1831         (parsePreIncrement):
1832         (parsePossiblePrefix):
1833         (parsePossibleAssignment):
1834         (parsePostIncrement):
1835         (parseEffectfulExpression):
1836         * WebGPUShadingLanguageRI/Rewriter.js:
1837         (Rewriter.prototype.visitFunctionLikeBlock):
1838         (Rewriter.prototype.visitLetExpression):
1839         (Rewriter):
1840         * WebGPUShadingLanguageRI/StandardLibrary.js:
1841         (int.operator):
1842         (uint.operator):
1843         * WebGPUShadingLanguageRI/Test.html:
1844         * WebGPUShadingLanguageRI/Test.js:
1845         (TEST_prefixPlusPlus):
1846         (TEST_prefixPlusPlusResult):
1847         (TEST_postfixPlusPlus):
1848         (TEST_postfixPlusPlusResult):
1849         (TEST_prefixMinusMinus):
1850         (TEST_prefixMinusMinusResult):
1851         (TEST_postfixMinusMinus):
1852         (TEST_postfixMinusMinusResult):
1853         (TEST_plusEquals):
1854         (TEST_plusEqualsResult):
1855         (TEST_minusEquals):
1856         (TEST_minusEqualsResult):
1857         (TEST_timesEquals):
1858         (TEST_timesEqualsResult):
1859         (TEST_divideEquals):
1860         (TEST_divideEqualsResult):
1861         * WebGPUShadingLanguageRI/Visitor.js:
1862         (Visitor.prototype.visitProtocolDecl):
1863
1864 2017-09-15  Brent Fulgham  <bfulgham@apple.com>
1865
1866         Provide mechanism to immediately end tests
1867         https://bugs.webkit.org/show_bug.cgi?id=176364
1868         <rdar://problem/34254780>
1869
1870         Reviewed by Alex Christensen.
1871
1872         WebKitTestRunner does not output state if the top loading frame has not been removed. This prevents some
1873         tests that attempt to exercise failed load state from working properly.
1874         
1875         This change adds a new 'forceImmediateCompletion' handler for DumpRenderTree and WebKitTestRunner so
1876         that we can properly test these conditions.
1877
1878         * DumpRenderTree/TestRunner.h:
1879         * DumpRenderTree/mac/TestRunnerMac.mm:
1880         (TestRunner::forceImmediateCompletion): Added.
1881         * DumpRenderTree/win/TestRunnerWin.cpp:
1882         (TestRunner::forceImmediateCompletion): Ditto.
1883         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1884         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1885         (WTR::TestRunner::forceImmediateCompletion): Ditto.
1886         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1887
1888 2017-09-15  Youenn Fablet  <youenn@apple.com>
1889
1890         Add an URL method to remove both query string and fragment identifier
1891         https://bugs.webkit.org/show_bug.cgi?id=176911
1892
1893         Reviewed by Alex Christensen.
1894
1895         Adding unit test for new URL method as well as modified setQuery and setFragmentIdentifier.
1896
1897         * TestWebKitAPI/Tests/WebCore/URL.cpp:
1898         (TestWebKitAPI::createURL):
1899         (TestWebKitAPI::TEST_F):
1900
1901 2017-09-14  Yousuke Kimoto  <yousuke.kimoto@sony.com>
1902
1903         [WinCairo] Add an option to build WebKitLegacy and WebKit
1904         https://bugs.webkit.org/show_bug.cgi?id=176891
1905
1906         Since TestWebKitAPI and MiniBrowser/win are used for WebKitLegacy,
1907         those subdirectories are ignored for WebKit build.
1908
1909         Reviewed by Alex Christensen.
1910
1911         * CMakeLists.txt:
1912
1913 2017-09-14  Lucas Forschler  <lforschler@apple.com>
1914
1915         Create a launcher for webkit-archives
1916         https://bugs.webkit.org/show_bug.cgi?id=176964
1917
1918         Reviewed by Aakash Jain.
1919
1920         * Scripts/run-webkit-archive: Added.
1921         (find_dyld_framework_path):
1922         (run_safari_for_webkit_development):
1923         (set_dyld_framework_path):
1924         (main):
1925
1926 2017-09-14  Alex Christensen  <achristensen@webkit.org>
1927
1928         Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
1929         https://bugs.webkit.org/show_bug.cgi?id=176889
1930         <rdar://problem/29270035>
1931
1932         Reviewed by Andy Estes.
1933
1934         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1935         (-[PrintDelegate _webView:printFrame:]):
1936         (-[PrintDelegate _webViewHeaderHeight:]):
1937         (-[PrintDelegate _webViewFooterHeight:]):
1938         (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
1939         (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
1940         (callbacksEqual):
1941         (TEST):
1942         * TestWebKitAPI/cocoa/TestWKWebView.h:
1943         * TestWebKitAPI/cocoa/TestWKWebView.mm:
1944         (-[TestWKWebView hostWindow]):
1945
1946 2017-09-14  Ryan Haddad  <ryanhaddad@apple.com>
1947
1948         Unreviewed, rolling out r222033.
1949
1950         This change caused API test WebKit.PrintFrame to time out.
1951
1952         Reverted changeset:
1953
1954         "Add WKUIDelegatePrivate equivalent of WKPageUIClient's
1955         drawHeader, drawFooter, headerHeight, and footerHeight"
1956         https://bugs.webkit.org/show_bug.cgi?id=176889
1957         http://trac.webkit.org/changeset/222033
1958
1959 2017-09-14  Youenn Fablet  <youenn@apple.com>
1960
1961         Allow WTF::map to take function as parameter
1962         https://bugs.webkit.org/show_bug.cgi?id=176909
1963
1964         Reviewed by Jer Noble.
1965
1966         * TestWebKitAPI/Tests/WTF/Vector.cpp:
1967         (TestWebKitAPI::multiplyByTwo):
1968         (TestWebKitAPI::TEST):
1969         (TestWebKitAPI::multiplyByTwoMoveOnly):
1970
1971 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
1972
1973         WSL IntLiteralType should become int32 if unified with a type variable
1974         https://bugs.webkit.org/show_bug.cgi?id=176707
1975
1976         Reviewed by Myles Maxfield.
1977         
1978         This makes it so that this works:
1979         
1980             T foo<T>(T x) { return x; }
1981             foo(42); // T becomes int32
1982         
1983         Previously, it did not work because IntLiteralType did not recognize TypeVariable as a number. Also,
1984         TypeVariable would try to evaluate protocol inheritance of IntLiteralType, which would not go well. One
1985         of the tests that this patch adds didn't just fail; it gave such an absurd 7-line type error that I felt
1986         like I was using SML.
1987         
1988         This fixes the problem by introducing what I think is a super deterministic way of handling literals and
1989         type variables:
1990         
1991         Before verifying a unification context, we now give all literals a chance to perform an extra 
1992         unification step. This is a two-phase process. This ensures that the unification performed by one 
1993         literal does not throw off the logic of some other literal. For example, if we do:
1994         
1995             void foo<T>(T, T) { }
1996             foo(42, 42u);
1997         
1998         Then we want to always fail to compile, rather than sometimes succeeding. So, we first ask each literal
1999         if it thinks that it needs to do extra unification. Both of the literals will report that they want to
2000         in this case, because they will notice that they got unified with either at type variable or a literal,
2001         which isn't specific enough. Then after they all register to do extra unification, they will both try to
2002         unify with their preferred types (int32 for 42, uint32 for 42u). The first one will succeed, and the
2003         second will give an error.
2004         
2005         Without the special two-phase arrangement, it was possible to either get a type error or not depending 
2006         on the order - for example foo(42, 42u) might fail while foo(42u, 42) succeeds. It was definitely not
2007         decidable, at least not unless you mandate the unification order as part of the type system spec. I 
2008         think that would have been nuts.
2009         
2010         Both IntLiteral and UintLiteral are now "flexible"; the uint one will reject non-int or signed int
2011         types and will prefer uint, but otherwise it's the same logic. This means that this will be valid:
2012         
2013             uint8 x = 5u;
2014         
2015         But this is still wrong:
2016         
2017             int x = 5u;
2018         
2019         To make this easy, I turned IntLiteral and UintLiteral (and IntLiteralType and UintLiteralType) into
2020         factory-built generic types (see createLiteral() and createLiteralType()). Because visitors use the
2021         constructor's declared name (GenericLiteral and GenericLiteralType in this case), it means that we can
2022         share a ton of code between the different literals. I love that ES6 lets you do that.
2023
2024         * WebGPUShadingLanguageRI/All.js:
2025         * WebGPUShadingLanguageRI/Checker.js:
2026         * WebGPUShadingLanguageRI/CreateLiteral.js: Added.
2027         (createLiteral.GenericLiteral):
2028         (createLiteral.GenericLiteral.prototype.get value):
2029         (createLiteral.GenericLiteral.prototype.get isConstexpr):
2030         (createLiteral.GenericLiteral.prototype.toString):
2031         (createLiteral):
2032         * WebGPUShadingLanguageRI/CreateLiteralType.js: Added.
2033         (createLiteralType.GenericLiteralType):
2034         (createLiteralType.GenericLiteralType.prototype.get origin):
2035         (createLiteralType.GenericLiteralType.prototype.get value):
2036         (createLiteralType.GenericLiteralType.prototype.get isPrimitive):
2037         (createLiteralType.GenericLiteralType.prototype.get isUnifiable):
2038         (createLiteralType.GenericLiteralType.prototype.get isLiteral):
2039         (createLiteralType.GenericLiteralType.prototype.typeVariableUnify):
2040         (createLiteralType.GenericLiteralType.prototype.unifyImpl):
2041         (createLiteralType.GenericLiteralType.prototype.prepareToVerify):
2042         (createLiteralType.GenericLiteralType.prototype.verifyAsArgument):
2043         (createLiteralType.GenericLiteralType.prototype.verifyAsParameter):
2044         (createLiteralType.GenericLiteralType.prototype.conversionCost):
2045         (createLiteralType.GenericLiteralType.prototype.commitUnification):
2046         (createLiteralType.GenericLiteralType.prototype.toString):
2047         (createLiteralType):
2048         * WebGPUShadingLanguageRI/Evaluator.js:
2049         (Evaluator.prototype.visitIntLiteral): Deleted.
2050         (Evaluator.prototype.visitUintLiteral): Deleted.
2051         * WebGPUShadingLanguageRI/IntLiteral.js:
2052         (let.IntLiteral.createLiteral.createType):
2053         (IntLiteral): Deleted.
2054         (IntLiteral.prototype.get value): Deleted.
2055         (IntLiteral.prototype.get isConstexpr): Deleted.
2056         (IntLiteral.prototype.toString): Deleted.
2057         * WebGPUShadingLanguageRI/IntLiteralType.js:
2058         (IntLiteralType): Deleted.
2059         (IntLiteralType.prototype.get origin): Deleted.
2060         (IntLiteralType.prototype.get value): Deleted.
2061         (IntLiteralType.prototype.get isPrimitive): Deleted.
2062         (IntLiteralType.prototype.get isUnifiable): Deleted.
2063         (IntLiteralType.prototype.typeVariableUnify): Deleted.
2064         (IntLiteralType.prototype.unifyImpl): Deleted.
2065         (IntLiteralType.prototype.verifyAsArgument): Deleted.
2066         (IntLiteralType.prototype.verifyAsParameter): Deleted.
2067         (IntLiteralType.prototype.conversionCost): Deleted.
2068         (IntLiteralType.prototype.commitUnification): Deleted.
2069         (IntLiteralType.prototype.toString): Deleted.
2070         * WebGPUShadingLanguageRI/Intrinsics.js:
2071         (Intrinsics):
2072         * WebGPUShadingLanguageRI/LiteralTypeChecker.js:
2073         (LiteralTypeChecker.prototype.visitIntLiteralType): Deleted.
2074         * WebGPUShadingLanguageRI/Node.js:
2075         (Node.prototype.prepareToVerify):
2076         (Node.prototype.commitUnification):
2077         (Node.prototype.get isLiteral):
2078         * WebGPUShadingLanguageRI/NullType.js:
2079         (NullType.prototype.get isLiteral):
2080         (NullType.prototype.toString):
2081         (NullType):
2082         * WebGPUShadingLanguageRI/Parse.js:
2083         (parseTerm):
2084         * WebGPUShadingLanguageRI/Rewriter.js:
2085         (Rewriter.prototype.visitGenericLiteralType):
2086         (Rewriter.prototype.visitIntLiteral): Deleted.
2087         (Rewriter.prototype.visitIntLiteralType): Deleted.
2088         (Rewriter.prototype.visitUintLiteral): Deleted.
2089         (Rewriter.prototype.visitBoolLiteral): Deleted.
2090         * WebGPUShadingLanguageRI/Test.html:
2091         * WebGPUShadingLanguageRI/Test.js:
2092         (makeUint):
2093         (checkUint):
2094         (TEST_uintSimpleMath):
2095         (TEST_equality):
2096         (TEST_notEquality):
2097         (TEST_intLiteralGeneric):
2098         (TEST_intLiteralGenericWithProtocols):
2099         (TEST_uintLiteralGeneric):
2100         (TEST_uintLiteralGenericWithProtocols):
2101         (TEST_intLiteralGenericSpecific):
2102         (TEST_twoIntLiterals):
2103         (TEST_unifyDifferentLiterals):
2104         (makeUInt): Deleted.
2105         (checkUInt): Deleted.
2106         * WebGPUShadingLanguageRI/Type.js:
2107         * WebGPUShadingLanguageRI/UintLiteral.js:
2108         (let.UintLiteral.createLiteral.createType):
2109         (UintLiteral): Deleted.
2110         (UintLiteral.prototype.get value): Deleted.
2111         (UintLiteral.prototype.get isConstexpr): Deleted.
2112         (UintLiteral.prototype.toString): Deleted.
2113         * WebGPUShadingLanguageRI/UintLiteralType.js: Added.
2114         (let.UintLiteralType.createLiteralType.verifyAsArgument):
2115         * WebGPUShadingLanguageRI/UnificationContext.js:
2116         (UnificationContext.prototype.verify):
2117         * WebGPUShadingLanguageRI/Visitor.js:
2118         (Visitor.prototype.visitProtocolDecl):
2119
2120 2017-09-14  Ryan Haddad  <ryanhaddad@apple.com>
2121
2122         Unreviewed, rolling out r221868.
2123
2124         Rolling out this change while we investigate test262 failures.
2125
2126         Reverted changeset:
2127
2128         "Turn on exception scope verification for JSC tests."
2129         https://bugs.webkit.org/show_bug.cgi?id=162351
2130         http://trac.webkit.org/changeset/221868
2131
2132 2017-09-14  Alex Christensen  <achristensen@webkit.org>
2133
2134         Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
2135         https://bugs.webkit.org/show_bug.cgi?id=176889
2136         <rdar://problem/29270035>
2137
2138         Reviewed by Andy Estes.
2139
2140         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2141         (-[PrintDelegate _webView:printFrame:]):
2142         (-[PrintDelegate _webViewHeaderHeight:]):
2143         (-[PrintDelegate _webViewFooterHeight:]):
2144         (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
2145         (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
2146         (callbacksEqual):
2147         (TEST):
2148         * TestWebKitAPI/cocoa/TestWKWebView.h:
2149         * TestWebKitAPI/cocoa/TestWKWebView.mm:
2150         (-[TestWKWebView hostWindow]):
2151
2152 2017-09-14  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2153
2154         [GTK] Add a switch to start the mini-browser in full-screen mode
2155         https://bugs.webkit.org/show_bug.cgi?id=176904
2156
2157         Reviewed by Carlos Garcia Campos.
2158
2159         * MiniBrowser/gtk/main.c:
2160         (main):
2161
2162 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
2163
2164         Unreviewed, fix a typo that was preventing a test from running.
2165
2166         * WebGPUShadingLanguageRI/Test.js:
2167
2168 2017-09-14  Carlos Garcia Campos  <cgarcia@igalia.com>
2169
2170         [GTK] Fail to build using internal jhbuild if libgtk3-dev is not installed in the system
2171         https://bugs.webkit.org/show_bug.cgi?id=176778
2172
2173         Reviewed by Carlos Alberto Lopez Perez.
2174
2175         We are building gtk+ in the jhbuild with introspection disabled, but Gtk-3.gir is required to build the
2176         WebKitGTK+ introspection. Also, if wayland-protocols is not installed, gtk+ is built without the wayland backend
2177         and it's no possible to enable the wayland target in WebKitGTK+ either.
2178
2179         * gtk/jhbuild.modules: Do not disable introspection when building gtk+ and add wayland-protocols as a dependency.
2180
2181 2017-09-14  Maureen Daum  <mdaum@apple.com>
2182
2183         Introduce the option to mark an HTML element as having AutoFill available.
2184         https://bugs.webkit.org/show_bug.cgi?id=176710
2185
2186         Reviewed by Alex Christensen.
2187
2188         Add an API test that verifies after we mark a field as having AutoFill available,
2189         Accessibility also considers it to have AutoFill available.
2190
2191         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add AutoFillAvailable.mm
2192         * TestWebKitAPI/Tests/WebKitCocoa/AutoFillAvailable.mm: Added.
2193         Create an input element, mark it as having AutoFill available, then focus it so that
2194         we can get the accessibility information for it. Ask accessibility whether it considers
2195         the field to have AutoFill available, and pick the alert message based on that.
2196         (-[AutoFillAvailable webProcessPlugIn:didCreateBrowserContextController:]):
2197         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2198         (TEST):
2199         (-[AutoFillAvailableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2200         Verify that we get the alert message indicating that accessibility indeed considers
2201         the input element as having AutoFill available after we explicitly marked it as so.
2202
2203 2017-09-13  John Wilander  <wilander@apple.com>
2204
2205         Introduce Storage Access API (document parts) as an experimental feature
2206         https://bugs.webkit.org/show_bug.cgi?id=175759
2207         <rdar://problem/34414107>
2208
2209         Reviewed by Alex Christensen.
2210
2211         * WebKitTestRunner/TestController.cpp:
2212         (WTR::TestController::resetPreferencesToConsistentValues):
2213             Turns the feature on for tests.
2214
2215 2017-09-13  Matt Lewis  <jlewis3@apple.com>
2216
2217         Unreviewed, rolling out r221976.
2218
2219         The test introduced was flaky from point of addition.
2220
2221         Reverted changeset:
2222
2223         "Introduce Storage Access API (document parts) as an
2224         experimental feature"
2225         https://bugs.webkit.org/show_bug.cgi?id=175759
2226         http://trac.webkit.org/changeset/221976
2227
2228 2017-09-13  Lucas Forschler  <lforschler@apple.com>
2229
2230         Compress spindumps on client side before packaging into layout test results zip (mac & ios)
2231         https://bugs.webkit.org/show_bug.cgi?id=176853
2232
2233         Reviewed by Aakash Jain.
2234
2235         * BuildSlaveSupport/test-result-archive:
2236         (main):
2237         (gzip_file): use gzip to compress a file, removing original
2238         (compress_spindumps): find and compress spindumps matching a filter
2239         (archive_test_results): refactor to snake_case
2240         (archiveTestResults): Deleted.
2241
2242 2017-09-13  Alex Christensen  <achristensen@webkit.org>
2243
2244         Add WKUIDelegatePrivate equivalent of WKPageUIClient's setIsResizable, getWindowFrame, and setWindowFrame
2245         https://bugs.webkit.org/show_bug.cgi?id=176857
2246         <rdar://problem/29270035>
2247
2248         Reviewed by Tim Horton.
2249
2250         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2251         (-[ModalDelegate _webViewRunModal:]):
2252         (-[ModalDelegate _webView:setResizable:]):
2253         (-[WindowFrameDelegate _webView:setWindowFrame:]):
2254         (-[WindowFrameDelegate _webView:getWindowFrameWithCompletionHandler:]):
2255         (-[WindowFrameDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2256         (TEST):
2257         (-[ResizableDelegate _webView:setResizable:]):
2258         (-[ResizableDelegate _webView:getIsResizableWithCompletionHandler:]):
2259         (-[ResizableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2260
2261 2017-09-13  Youenn Fablet  <youenn@apple.com>
2262
2263         Add a lambda-based map for Vectors
2264         https://bugs.webkit.org/show_bug.cgi?id=176487
2265
2266         Reviewed by Darin Adler.
2267
2268         * TestWebKitAPI/Tests/WTF/Vector.cpp:
2269         (TestWebKitAPI::TEST):
2270
2271 2017-09-13  John Wilander  <wilander@apple.com>
2272
2273         Introduce Storage Access API (document parts) as an experimental feature
2274         https://bugs.webkit.org/show_bug.cgi?id=175759
2275         <rdar://problem/33666847>
2276
2277         Reviewed by Alex Christensen.
2278
2279         * WebKitTestRunner/TestController.cpp:
2280         (WTR::TestController::resetPreferencesToConsistentValues):
2281             Turns the feature on for tests.
2282
2283 2017-09-13  Per Arne Vollan  <pvollan@apple.com>
2284
2285         [Win] DRT option --gc-between-tests is not implemented.
2286         https://bugs.webkit.org/show_bug.cgi?id=176849
2287
2288         Reviewed by Brent Fulgham.
2289
2290         Perform GC after the test if this option is enabled. This patch also set the initial value of the flag
2291         to true, in order to catch GC related issues in the test in which they occur.
2292  
2293         * DumpRenderTree/win/DumpRenderTree.cpp:
2294         (runTest):
2295
2296 2017-09-12  Wenson Hsieh  <wenson_hsieh@apple.com>
2297
2298         [iOS DnD] Support DataTransfer.getData and DataTransfer.setData when dragging or dropping
2299         https://bugs.webkit.org/show_bug.cgi?id=176672
2300         <rdar://problem/34353723>
2301
2302         Reviewed by Ryosuke Niwa.
2303
2304         Adds new tests and tweaks existing DataInteractionTests to cover the tweaks made in this patch.
2305         SinglePlainTextURLTypeIdentifiers: Verify that inline presentation style is requested when dragging plaintext.
2306         SinglePlainTextWordTypeIdentifiers: Verify that inline presentation style is requested when dragging a link.
2307         ExternalSourceInlineTextToFileInput:
2308                 Verify that an item provider marked as preferring inline presentation does not trigger file uploads by
2309                 dragging a piece of inline text into a file input.
2310         CanStartDragOnDivWithDraggableAttribute:
2311                 Verify that DataTransfer.setData and DataTransfer.getData work as expected by moving a draggable div.
2312                 The test harness writes the id of the draggable div via the DataTransfer, and upon drop, reads the id
2313                 back to figure out which element to append to the drop destination.
2314
2315         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2316         (TestWebKitAPI::TEST):
2317
2318 2017-09-12  Ryosuke Niwa  <rniwa@webkit.org>
2319
2320         Dragging & dropping a file creates an attachment element even when it's disabled
2321         https://bugs.webkit.org/show_bug.cgi?id=176769
2322
2323         Reviewed by Tim Horton.
2324
2325         Added a webkit-test-runner flag to enable attachment element via runtime flag since this feature is now hidden
2326         behind a runtime-enabled flag which needs to be set at the time of global object initialization.
2327
2328         * DumpRenderTree/TestOptions.h:
2329         (TestOptions): Added.
2330         * DumpRenderTree/TestOptions.mm:
2331         (TestOptions::TestOptions):
2332         * DumpRenderTree/mac/DumpRenderTree.mm:
2333         (setWebPreferencesForTestOptions):
2334         * WebKitTestRunner/TestController.cpp:
2335         (WTR::TestController::resetPreferencesToConsistentValues):
2336         (WTR::updateTestOptionsFromTestHeader):
2337         * WebKitTestRunner/TestOptions.h:
2338         (WTR::TestOptions::hasSameInitializationOptions const):
2339         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
2340         (WTR::TestController::platformCreateWebView):
2341
2342 2017-09-11  Filip Pizlo  <fpizlo@apple.com>
2343
2344         WSL should allow you to say "protocol Foo : Bar { ... }"
2345         https://bugs.webkit.org/show_bug.cgi?id=176238
2346
2347         Reviewed by Mylex Maxfield.
2348         
2349         This makes protocol "subtyping" work. It's not really subtyping. Protocol A inherits protocol B
2350         if every signature in B can be resolved against some signature in A. Also, you can explicitly
2351         subtype protocols using extends syntax ("protocol Foo : Bar, Baz { ... }").
2352         
2353         Also makes the diagnostics when type variable constraints fail a _lot_ better. This will even
2354         tell you diagnostics about why a function didn't match when protocols are not inheriting, and
2355         then it will tell you why the inheritance failed.
2356
2357         * WebGPUShadingLanguageRI/All.js:
2358         * WebGPUShadingLanguageRI/AutoWrapper.js:
2359         (AutoWrapper.prototype.visitTypeVariable):
2360         (AutoWrapper):
2361         * WebGPUShadingLanguageRI/Checker.js:
2362         (Checker.prototype.visitProtocolDecl.set throw):
2363         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
2364         (ConstexprTypeParameter.prototype.verifyAsArgument):
2365         (ConstexprTypeParameter.prototype.verifyAsParameter):
2366         * WebGPUShadingLanguageRI/FlattenProtocolExtends.js: Added.
2367         * WebGPUShadingLanguageRI/Func.js:
2368         (Func.prototype.get typeParametersForCallResolution):
2369         * WebGPUShadingLanguageRI/InferTypesForCall.js:
2370         (inferTypesForCall):
2371         * WebGPUShadingLanguageRI/IntLiteralType.js:
2372         (IntLiteralType.prototype.verifyAsArgument):
2373         * WebGPUShadingLanguageRI/NameResolver.js:
2374         (NameResolver.prototype.visitProtocolDecl):
2375         (NameResolver.prototype.visitProtocolRef): Deleted.
2376         (NameResolver.prototype.visitProtocolFuncDecl): Deleted.
2377         (NameResolver.prototype.visitTypeDef): Deleted.
2378         (NameResolver.prototype.visitStructType): Deleted.
2379         (NameResolver.prototype._resolveTypeArguments): Deleted.
2380         (NameResolver.prototype.visitTypeRef): Deleted.
2381         (NameResolver.prototype.visitReferenceType): Deleted.
2382         (NameResolver.prototype.visitVariableDecl): Deleted.
2383         (NameResolver.prototype.visitVariableRef): Deleted.
2384         (NameResolver.prototype.visitReturn): Deleted.
2385         (NameResolver.prototype.visitCallExpression): Deleted.
2386         * WebGPUShadingLanguageRI/Node.js:
2387         (Node.prototype.equals):
2388         * WebGPUShadingLanguageRI/NullType.js:
2389         (NullType.prototype.verifyAsArgument):
2390         * WebGPUShadingLanguageRI/Parse.js:
2391         (parseProtocolDecl):
2392         * WebGPUShadingLanguageRI/Prepare.js:
2393         (prepare):
2394         * WebGPUShadingLanguageRI/ProtocolDecl.js:
2395         (ProtocolDecl): Deleted.
2396         (ProtocolDecl.prototype.add): Deleted.
2397         (ProtocolDecl.prototype.get signatures): Deleted.
2398         (ProtocolDecl.prototype.signaturesByName): Deleted.
2399         (ProtocolDecl.prototype.get typeVariable): Deleted.
2400         (ProtocolDecl.prototype.signaturesByNameWithTypeVariable): Deleted.
2401         (ProtocolDecl.prototype.inherits): Deleted.
2402         (ProtocolDecl.prototype.hasHeir): Deleted.
2403         (ProtocolDecl.prototype.toString): Deleted.
2404         * WebGPUShadingLanguageRI/ProtocolFuncDecl.js:
2405         (ProtocolFuncDecl.prototype.get typeParametersForCallResolution):
2406         (ProtocolFuncDecl):
2407         * WebGPUShadingLanguageRI/Rewriter.js:
2408         (Rewriter.prototype.visitProtocolDecl):
2409         * WebGPUShadingLanguageRI/Test.html:
2410         * WebGPUShadingLanguageRI/Test.js:
2411         (TEST_nullTypeVariableUnify):
2412         (TEST_simpleProtocolExtends):
2413         (TEST_protocolExtendsTwo):
2414         * WebGPUShadingLanguageRI/Type.js:
2415         (Type.prototype.inherits):
2416         * WebGPUShadingLanguageRI/TypeDefResolver.js:
2417         (TypeDefResolver.prototype.visitTypeRef):
2418         (TypeDefResolver):
2419         * WebGPUShadingLanguageRI/TypeVariable.js:
2420         (TypeVariable.prototype.inherits):
2421         (TypeVariable.prototype.verifyAsArgument):
2422         (TypeVariable.prototype.verifyAsParameter):
2423         * WebGPUShadingLanguageRI/UnificationContext.js:
2424         (UnificationContext.prototype.verify):
2425         * WebGPUShadingLanguageRI/Visitor.js:
2426         (Visitor.prototype.visitProtocolDecl):
2427         (Visitor.prototype.visitTypeRef): Deleted.
2428         (Visitor.prototype.visitNativeType): Deleted.
2429         (Visitor.prototype.visitNativeTypeInstance): Deleted.
2430         (Visitor.prototype.visitTypeDef): Deleted.
2431         (Visitor.prototype.visitStructType): Deleted.
2432         (Visitor.prototype.visitTypeVariable): Deleted.
2433         (Visitor.prototype.visitConstexprTypeParameter): Deleted.
2434         (Visitor.prototype.visitField): Deleted.
2435         (Visitor.prototype.visitElementalType): Deleted.
2436         (Visitor.prototype.visitReferenceType): Deleted.
2437         (Visitor.prototype.visitPtrType): Deleted.
2438         (Visitor.prototype.visitArrayRefType): Deleted.
2439         (Visitor.prototype.visitArrayType): Deleted.
2440         (Visitor.prototype.visitVariableDecl): Deleted.
2441         (Visitor.prototype.visitAssignment): Deleted.
2442         (Visitor.prototype.visitDereferenceExpression): Deleted.
2443         (Visitor.prototype.visitDotExpression): Deleted.
2444         (Visitor.prototype.visitMakePtrExpression): Deleted.
2445         (Visitor.prototype.visitVariableRef): Deleted.
2446         (Visitor.prototype.visitIfStatement): Deleted.
2447         (Visitor.prototype.visitWhileLoop): Deleted.
2448         (Visitor.prototype.visitDoWhileLoop): Deleted.
2449         (Visitor.prototype.visitForLoop): Deleted.
2450         (Visitor.prototype.visitReturn): Deleted.
2451         (Visitor.prototype.visitContinue): Deleted.
2452         (Visitor.prototype.visitBreak): Deleted.
2453         (Visitor.prototype.visitIntLiteral): Deleted.
2454         (Visitor.prototype.visitIntLiteralType): Deleted.
2455         (Visitor.prototype.visitUintLiteral): Deleted.
2456         (Visitor.prototype.visitNullLiteral): Deleted.
2457         (Visitor.prototype.visitBoolLiteral): Deleted.
2458         (Visitor.prototype.visitNullType): Deleted.
2459         (Visitor.prototype.visitCallExpression): Deleted.
2460         (Visitor.prototype.visitLogicalNot): Deleted.
2461         (Visitor.prototype.visitFunctionLikeBlock): Deleted.
2462         * WebGPUShadingLanguageRI/WrapChecker.js:
2463         (WrapChecker.prototype.visitTypeVariable):
2464         (WrapChecker):
2465
2466 2017-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>
2467
2468         Remove duplicated test results from LayoutTest platform directories
2469         https://bugs.webkit.org/show_bug.cgi?id=176686
2470
2471         Reviewed by Michael Catanzaro.
2472
2473         After several rebaselines we might end up with the same result in the platform directory than the common result
2474         without noticing it. This patch adds a script to detect those cases and remove all duplicated results from the
2475         repository.
2476
2477         * Scripts/check-for-duplicated-platform-test-results: Added.
2478         (check_duplicate):
2479         (check_duplicate.sha1):
2480         (platform_list):
2481
2482 2017-09-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2483
2484         The EWS build system is forcing a non UTF-8 locale and breaks meson.
2485         https://bugs.webkit.org/show_bug.cgi?id=176761
2486
2487         Reviewed by Michael Catanzaro.
2488
2489         On 2011 in order to disable GCC smartquotes (UTF-8 pretty quotes)
2490         that were causing trouble with the commit-queue server, the tooling
2491         for the EWS bots started to force an LC_ALL=C locale.
2492
2493         This was needed back then apparently because the commit-queue server
2494         was unable to handle properly UTF-8 text.
2495
2496         6 years forward and none of the ports that commit-queue tests before
2497         landing a patch use GCC, but Clang. So this should not be an issue anymore.
2498
2499         Forcing a non UTF-8 locale breaks the Meson build system (that the
2500         GTK/WPE ports use for some dependencies of its JHBuild dependencies
2501         local build system).
2502         It has also the potential to break things in subtle ways that are
2503         hard to debug and detect. So better stop doing this.
2504
2505         This patch also changes TERM=none to TERM=dumb that is the proper
2506         way to disable VT100 codes (see bug 127922).
2507
2508         * Scripts/webkitpy/common/system/environment.py:
2509         (Environment.to_dictionary):
2510         (Environment.disable_jhbuild_VT100_output):
2511         * Scripts/webkitpy/common/system/environment_unittest.py:
2512         (EnvironmentTest.test_disable_jhbuild_VT100_output):
2513         * Scripts/webkitpy/port/base.py:
2514         (Port._build_driver):
2515         (Port._build_image_diff):
2516         * Scripts/webkitpy/port/port_testcase.py:
2517         (PortTestCase.test_build_driver):
2518         * Scripts/webkitpy/tool/commands/download_unittest.py:
2519         * Scripts/webkitpy/tool/steps/build.py:
2520         (Build.build):
2521         * Scripts/webkitpy/tool/steps/steps_unittest.py:
2522
2523 2017-09-12  Michael Catanzaro  <mcatanzaro@igalia.com>
2524
2525         [WPE][GTK] Run tests with G_DEBUG=fatal-criticals
2526         https://bugs.webkit.org/show_bug.cgi?id=176755
2527
2528         Reviewed by Carlos Garcia Campos.
2529
2530         * Scripts/webkitpy/port/gtk.py:
2531         (GtkPort.setup_environ_for_server):
2532         * Scripts/webkitpy/port/wpe.py:
2533         (WPEPort.setup_environ_for_server):
2534
2535 2017-09-12  Alex Christensen  <achristensen@webkit.org>
2536
2537         Fix build after r221922.
2538         https://bugs.webkit.org/show_bug.cgi?id=176728
2539
2540         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2541         (-[ModalDelegate _webViewRunModal:]):
2542         (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
2543         (TEST):
2544         svn-apply inserted the test too early in the file :(
2545         Shift it down to where all the used static variables are declared.
2546
2547 2017-09-12  Alex Christensen  <achristensen@webkit.org>
2548
2549         Add WKUIDelegatePrivate equivalent of WKPageUIClient's runModal
2550         https://bugs.webkit.org/show_bug.cgi?id=176728
2551         <rdar://problem/29270035>
2552
2553         Reviewed by Tim Horton.
2554
2555         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2556         (-[ModalDelegate _webViewRunModal:]):
2557         (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
2558         (TEST):
2559
2560 2017-09-12  Daniel Bates  <dabates@apple.com>
2561
2562         REGRESSION (r215784): The title of right-to-left pages are empty
2563         https://bugs.webkit.org/show_bug.cgi?id=176746
2564         <rdar://problem/34211419>
2565
2566         Reviewed by Brent Fulgham.
2567
2568         Add unit test to ensure we do not regress StringWithDirection.truncateFromEnd().
2569
2570         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2571         * TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp: Added.
2572         (TestWebKitAPI::TEST):
2573
2574 2017-09-12  Alex Christensen  <achristensen@webkit.org>
2575
2576         Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForNotificationPermissionRequest
2577         https://bugs.webkit.org/show_bug.cgi?id=176768
2578         <rdar://problem/29270035>
2579
2580         Reviewed by Tim Horton.
2581
2582         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2583         (-[NotificationDelegate initWithAllowNotifications:]):
2584         (-[NotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2585         (-[NotificationDelegate _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]):
2586         (TEST):
2587
2588 2017-09-12 Brent Fulgham  <bfulgham@apple.com>
2589
2590         Show punycode to user if a URL mixes Armenian Seh or Vo with other scripts
2591         https://bugs.webkit.org/show_bug.cgi?id=176578
2592         <rdar://problem/33906231>
2593
2594         Reviewed by Alex Christensen.
2595
2596         * TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
2597         (TestWebKitAPI::TEST):
2598
2599 2017-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>
2600
2601         [Freetype] Doesn't support coloured fonts
2602         https://bugs.webkit.org/show_bug.cgi?id=156579
2603
2604         Reviewed by Michael Catanzaro.
2605
2606         Bump webkitgtk-test-fonts to 0.0.6 version that includes the EmijoOne font.
2607
2608         * gtk/jhbuild.modules:
2609         * wpe/jhbuild.modules:
2610
2611 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
2612
2613         [iOS DnD] Support DataTransfer.setDragImage when starting a drag on iOS
2614         https://bugs.webkit.org/show_bug.cgi?id=176721
2615         <rdar://problem/34373660>
2616
2617         Reviewed by Tim Horton.
2618
2619         In DataInteractionSimulator, ask the UIDragInteractionDelegate (WKContentView) for targeted drag previews after
2620         retrieving UIDragItems during a lift. Remember these previews after the drag and drop simulation is complete, so
2621         API tests (currently, just DragLiftPreviewDataTransferSetDragImage) can verify that the generated drag previews
2622         are as expected.
2623
2624         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2625         * TestWebKitAPI/Tests/WebKitCocoa/DataTransfer-setDragImage.html: Added.
2626
2627         Adds a new test harness containing 5 draggable elements, each generating a drag image using different codepaths.
2628         DragLiftPreviewDataTransferSetDragImage uses this page to check that the frame of the targeted drag preview in
2629         each scenario is as expected.
2630
2631         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2632         (checkCGRectIsEqualToCGRectWithLogging):
2633         (TestWebKitAPI::TEST):
2634         * TestWebKitAPI/ios/DataInteractionSimulator.h:
2635         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
2636         (-[DataInteractionSimulator _resetSimulatedState]):
2637         (-[DataInteractionSimulator _advanceProgress]):
2638         (-[DataInteractionSimulator liftPreviews]):
2639
2640 2017-09-11  Tim Horton  <timothy_horton@apple.com>
2641
2642         REGRESSION (r221272): WKWebView gets stuck zoomed in if the web process crashes
2643         https://bugs.webkit.org/show_bug.cgi?id=176767
2644         <rdar://problem/34196874>
2645
2646         Reviewed by Dan Bernstein.
2647
2648         * TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
2649         (TEST):
2650         Add a test ensuring that override layout size persists through Web
2651         Content process crash.
2652
2653 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
2654
2655         [iOS WK2] Support tapping to add items to the current drag session in web content
2656         https://bugs.webkit.org/show_bug.cgi?id=176421
2657         <rdar://problem/31144674>
2658
2659         Reviewed by Tim Horton.
2660
2661         Adds a new drag and drop test that begins a drag on a text selection, adds an image and a link, and then drops
2662         into a contenteditable area. This verifies that the text, link and image are inserted into the editable area
2663         upon drop.
2664
2665         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2666         (TestWebKitAPI::TEST):
2667
2668 2017-09-11  Lucas Forschler  <lforschler@apple.com>
2669
2670         bisect-builds: add --list option
2671         https://bugs.webkit.org/show_bug.cgi?id=174836
2672
2673         Reviewed by Aakash Jain & Stephanie Lewis.
2674
2675         * Scripts/bisect-builds:
2676         (parse_args): add --list option
2677         (minified_platforms): update supported platform list (add ios simulator)
2678         (print_list_and_exit): helper function to print list and exit
2679
2680 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
2681
2682         [iOS WK2] ExternalSourceDataTransferItemGetAsEntry tests produce inconsistent results on test automation bots
2683         https://bugs.webkit.org/show_bug.cgi?id=176736
2684
2685         Reviewed by Andy Estes and Megan Gardner.
2686
2687         The test output dumped when dropping a file in DataTransferItem-getAsEntry.html should adhere to some deterministic order.
2688         Currently, this is not enforced, so on some systems, these tests fail due to expected test output being out of order. To
2689         fix this, simply have the test harness alphabetically sort the output before writing to the textarea.
2690
2691         * TestWebKitAPI/Tests/WebKitCocoa/DataTransferItem-getAsEntry.html:
2692         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2693         (TestWebKitAPI::TEST):
2694
2695 2017-09-11  Ryosuke Niwa  <rniwa@webkit.org>
2696
2697         webkitbot should recognize commands even when colon is omitted
2698         https://bugs.webkit.org/show_bug.cgi?id=176680
2699         <rdar://problem/29933898>
2700
2701         Reviewed by Daniel Bates.
2702
2703         Recognize the IRC command even when : and , were not present.
2704         Unfortunately, there is no unit test for this code at the moment.
2705
2706         * Scripts/webkitpy/common/net/irc/ircbot.py:
2707         (IRCBot.on_pubmsg):
2708
2709 2017-09-11  Lucas Forschler  <lforschler@apple.com>
2710
2711         bisect-builds doesn't work due to missing requests module
2712         https://bugs.webkit.org/show_bug.cgi?id=175709
2713         
2714         Reviewed by Ryosuke Niwa.
2715
2716         * Scripts/bisect-builds: use urllib2 instead of the requests module.
2717         (get_s3_location_for_revision):
2718         (main):
2719
2720 2017-09-11  Filip Pizlo  <fpizlo@apple.com>
2721
2722         WSL Substitution should probably wrap type variables of substituted types rather than just wrapping the whole type
2723         https://bugs.webkit.org/show_bug.cgi?id=176677
2724
2725         Reviewed by Mylex Maxfield.
2726         
2727         This adds a checker that verifies that all type references and variable references are wrapped.
2728         
2729         Then this fixes errors found by that checker by making Substitution auto-wrap replacements rather than
2730         manually wrapping the outer type (for types) and cloning (for values).
2731
2732         * WebGPUShadingLanguageRI/All.js:
2733         * WebGPUShadingLanguageRI/AutoWrapper.js: Added.
2734         (AutoWrapper.prototype.visitVariableRef):
2735         (AutoWrapper.prototype.visitTypeRef):
2736         (AutoWrapper.prototype.visitConstexprTypeParameter):
2737         (AutoWrapper.prototype.visitFuncParameter):
2738         (AutoWrapper.prototype.visitVariableDecl):
2739         (AutoWrapper.prototype.visitStructType):
2740         (AutoWrapper.prototype.visitNativeType):
2741         (AutoWrapper):
2742         * WebGPUShadingLanguageRI/CheckWrapped.js:
2743         (checkExpressionWrapped):
2744         (checkProgramWrapped):
2745         (checkWrapped): Deleted.
2746         * WebGPUShadingLanguageRI/Checker.js:
2747         * WebGPUShadingLanguageRI/ExpressionFinder.js: Added.
2748         (ExpressionFinder):
2749         (ExpressionFinder.prototype.visitFunc):
2750         (ExpressionFinder.prototype.visitFuncParameter):
2751         (ExpressionFinder.prototype.visitConstexprTypeParameter):
2752         (ExpressionFinder.prototype.visitAssignment):
2753         (ExpressionFinder.prototype.visitCallExpression):
2754         (ExpressionFinder.prototype.visitReturn):
2755         (ExpressionFinder.prototype.visitWhileLoop):
2756         (ExpressionFinder.prototype.visitDoWhileLoop):
2757         (ExpressionFinder.prototype.visitIfStatement):
2758         (ExpressionFinder.prototype.visitForLoop):
2759         (ExpressionFinder.prototype.visitVariableDecl):
2760         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
2761         (NativeFuncInstance):
2762         * WebGPUShadingLanguageRI/Node.js:
2763         (Node.prototype.substituteToUnification):
2764         (Node):
2765         (Node.prototype.clone): Deleted.
2766         * WebGPUShadingLanguageRI/Prepare.js:
2767         (prepare):
2768         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
2769         (StructLayoutBuilder.prototype.visitReferenceType):
2770         (StructLayoutBuilder.prototype.visitField):
2771         (StructLayoutBuilder):
2772         * WebGPUShadingLanguageRI/Substitution.js:
2773         (Substitution):
2774         (Substitution.prototype.visitTypeRef):
2775         (Substitution.prototype.visitVariableRef):
2776         * WebGPUShadingLanguageRI/Test.html:
2777         * WebGPUShadingLanguageRI/Test.js:
2778         (TEST_chainConstexpr):
2779         (TEST_chainGeneric):
2780         (TEST_chainStruct):
2781         (TEST_chainStructInvalid):
2782         * WebGPUShadingLanguageRI/Visitor.js:
2783         (Visitor.prototype.visitNativeTypeInstance):
2784         * WebGPUShadingLanguageRI/WrapChecker.js:
2785         (WrapChecker.prototype._foundUnwrapped.originString):
2786         (WrapChecker.prototype._foundUnwrapped):
2787         (WrapChecker):
2788
2789 2017-09-11  Ryan Haddad  <ryanhaddad@apple.com>
2790
2791         Fix multiple master.cfg unit test failures.
2792         https://bugs.webkit.org/show_bug.cgi?id=176745
2793
2794         Reviewed by Alexey Proskuryakov.
2795
2796         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
2797         (TestFactory.__init__): Add missing ':'.
2798         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results for Windows and iOS build steps.
2799
2800 2017-09-11  Jonathan Bedard  <jbedard@apple.com>
2801
2802         Older versions should adopt newer version's expectations on mac
2803         https://bugs.webkit.org/show_bug.cgi?id=176699
2804         <rdar://problem/34367907>
2805
2806         Reviewed by Alexey Proskuryakov.
2807
2808         Before:
2809                 mac-elcapitan-wk2
2810                 mac-elcapitan
2811                 mac-wk2
2812                 mac
2813                 wk2
2814         After:
2815                 mac-elcapitan-wk2
2816                 mac-elcapitan
2817                 mac-sierra-wk2
2818                 mac-sierra
2819                 mac-wk2
2820                 mac
2821                 wk2
2822
2823         * Scripts/webkitpy/port/mac.py:
2824         (MacPort.default_baseline_search_path): Use VERSION_FALLBACK_ORDER to have old
2825         versions inherit expectations from newer versions.
2826         * Scripts/webkitpy/port/mac_unittest.py:
2827         (MacTest.test_layout_test_searchpath_with_apple_additions): Check new behavior
2828         with older versions inheriting expectations from newer versions.
2829
2830 2017-09-11  Ryan Haddad  <ryanhaddad@apple.com>
2831
2832         Skip JSC test wsl-tests.yaml/Test.js
2833         https://bugs.webkit.org/show_bug.cgi?id=176727
2834
2835         Unreviewed test gardening.
2836
2837         * WebGPUShadingLanguageRI/wsl-tests.yaml:
2838
2839 2017-09-11  Alex Christensen  <achristensen@webkit.org>
2840
2841         Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForGeolocationPermissionRequest
2842         https://bugs.webkit.org/show_bug.cgi?id=176642
2843         <rdar://problem/29270035>
2844
2845         Reviewed by Darin Adler.
2846
2847         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2848         (-[GeolocationDelegate initWithAllowGeolocation:]):
2849         (-[GeolocationDelegate _webView:requestGeolocationPermissionForFrame:decisionHandler:]):
2850         (-[GeolocationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2851         (TEST):
2852
2853 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
2854
2855         [iOS DnD] Elements in the DOM with the `draggable` attribute should be draggable
2856         https://bugs.webkit.org/show_bug.cgi?id=176664
2857         <rdar://problem/32596156>
2858
2859         Reviewed by Tim Horton.
2860
2861         Adds a new API test checking that elements marked as drag sources via the `draggable` attribute can be dragged
2862         with a non-null drag preview. Additionally, refactor the drag and drop simulator to not plumb drag/drop
2863         interaction delegate calls through to the WKContentView via -_simulate*-prefixed testing SPI, but rather
2864         by grabbing the WKWebView's drag and drop interaction delegates (i.e. the WKContentView) and calling delegate
2865         methods directly. This avoids requiring boilerplate plumbing on WKWebView and WKContentView for each of the drag
2866         and drop delegate methods, so these have been removed from WKWebView and WKContentView.
2867
2868         Additionally, renames MockDataOperationSession and MockDataInteractionSession to MockDragSession and
2869         MockDropSession, respectively, and adjusts their ivars on DataInteractionSimulator to match.
2870
2871         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2872         * TestWebKitAPI/Tests/WebKitCocoa/custom-draggable-div.html: Added.
2873
2874         Add a new test harness covering dragging and dropping elements with the draggable attribute, using DataTransfer
2875         API (setData and getData) as well.
2876
2877         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2878         (TestWebKitAPI::TEST):
2879         * TestWebKitAPI/ios/DataInteractionSimulator.h:
2880         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
2881         (-[WKWebView dropInteractionDelegate]):
2882         (-[WKWebView dragInteractionDelegate]):
2883         (-[WKWebView dropInteraction]):
2884         (-[WKWebView dragInteraction]):
2885
2886         Add testing utilities to ask a WKWebView for information about its drag/drop interactions and delegates. In this
2887         case, this will return the WKWebView's WKContentView.
2888
2889         (-[DataInteractionSimulator _resetSimulatedState]):
2890         (-[DataInteractionSimulator simulateAllTouchesCanceled:]):
2891         (-[DataInteractionSimulator runFrom:to:additionalItemRequestLocations:]):
2892         (-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]):
2893         (-[DataInteractionSimulator _sendQueuedAdditionalItemRequest]):
2894         (-[DataInteractionSimulator _advanceProgress]):
2895
2896         When beginning a drag session, ask the delegate for targeted lift previews and verify that these are non-null.
2897         This check would fail prior to the tweak in DragDropInteractionState in this patch.
2898
2899         (-[DataInteractionSimulator _webView:showCustomSheetForElement:]):
2900         (-[MockDataOperationSession initWithProviders:location:window:allowMove:]): Deleted.
2901         (-[MockDataOperationSession session]): Deleted.
2902         (-[MockDataOperationSession isLocal]): Deleted.
2903         (-[MockDataOperationSession progress]): Deleted.
2904         (-[MockDataOperationSession setProgressIndicatorStyle:]): Deleted.
2905         (-[MockDataOperationSession progressIndicatorStyle]): Deleted.
2906         (-[MockDataOperationSession operationMask]): Deleted.
2907         (-[MockDataOperationSession localDragSession]): Deleted.
2908         (-[MockDataOperationSession hasItemsConformingToTypeIdentifier:]): Deleted.
2909         (-[MockDataOperationSession canCreateItemsOfClass:]): Deleted.
2910         (-[MockDataOperationSession loadObjectsOfClass:completion:]): Deleted.
2911         (-[MockDataInteractionSession initWithWindow:allowMove:]): Deleted.
2912         (-[MockDataInteractionSession localOperationMask]): Deleted.
2913         (-[MockDataInteractionSession externalOperationMask]): Deleted.
2914
2915         Replace various places where we called -_simulate* methods on WKWebView with calls to the
2916         UIDragInteractionDelegate or UIDropInteractionDelegate (the WKContentView) instead. Also, adjust for some
2917         mechanical renaming of drag and drop sessions.
2918
2919         (-[MockDataInteractionSession session]): Deleted.
2920         * TestWebKitAPI/ios/UIKitSPI.h:
2921
2922 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
2923
2924         Make the WPT entry point for LayoutTests/http/wpt more discoverable
2925         https://bugs.webkit.org/show_bug.cgi?id=176494
2926
2927         Reviewed by Youenn Fablet.
2928
2929         * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py:
2930         (run_server):
2931         Output a tip for how to access the http/wpt tests.
2932
2933 2017-09-11  Mark Lam  <mark.lam@apple.com>
2934
2935         Turn on exception scope verification for JSC tests.
2936         https://bugs.webkit.org/show_bug.cgi?id=162351
2937         <rdar://problem/29563911>
2938
2939         Reviewed by Saam Barati.
2940
2941         Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
2942         run-jsc-stress-tests.  This turns on exception scope verification on JSC test
2943         runs (which currently does not include testapi).
2944
2945         Some stats on time to run JSC stress and mozilla tests:
2946         1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
2947         2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
2948         3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
2949         4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
2950
2951         The stats shows that (2) and (3) has effectively no time difference.  Hence, the
2952         cost of enabling --validateExceptionChecks=true is not significant.
2953
2954         It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
2955         21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
2956         --dumpSimulatedThrows=true off.  We can manually add that when we see a regression
2957         and need to debug the issue.  Otherwise, we wont pay the price for it.
2958
2959         * Scripts/run-jsc-stress-tests:
2960
2961 2017-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
2962
2963         WSL should support for loops
2964         https://bugs.webkit.org/show_bug.cgi?id=176682
2965
2966         Reviewed by Filip Pizlo.
2967
2968         Follows the pattern of the existing infrastructure of while loops.
2969
2970         * WebGPUShadingLanguageRI/All.js:
2971         * WebGPUShadingLanguageRI/Checker.js:
2972         * WebGPUShadingLanguageRI/Evaluator.js:
2973         (Evaluator.prototype.visitForLoop):
2974         * WebGPUShadingLanguageRI/ForLoop.js: Copied from Tools/WebGPUShadingLanguageRI/LoopChecker.js.
2975         (ForLoop):
2976         (ForLoop.prototype.get origin):
2977         (ForLoop.prototype.get initialization):
2978         (ForLoop.prototype.get condition):
2979         (ForLoop.prototype.get increment):
2980         (ForLoop.prototype.get body):
2981         (ForLoop.prototype.toString):
2982         * WebGPUShadingLanguageRI/LoopChecker.js:
2983         (LoopChecker.prototype.visitForLoop):
2984         * WebGPUShadingLanguageRI/NameResolver.js:
2985         (NameResolver.prototype.visitForLoop):
2986         * WebGPUShadingLanguageRI/Parse.js:
2987         (parseFor):
2988         * WebGPUShadingLanguageRI/ReturnChecker.js:
2989         (ReturnChecker.prototype._isBoolCastFromLiteralTrue):
2990         (ReturnChecker.prototype.visitWhileLoop):
2991         (ReturnChecker.prototype.visitDoWhileLoop):
2992         (ReturnChecker.prototype.visitForLoop):
2993         * WebGPUShadingLanguageRI/Rewriter.js:
2994         (Rewriter.prototype.visitForLoop):
2995         (Rewriter):
2996         * WebGPUShadingLanguageRI/Test.html:
2997         * WebGPUShadingLanguageRI/Test.js:
2998         (TEST_forLoop):
2999         * WebGPUShadingLanguageRI/Visitor.js:
3000         (Visitor.prototype.visitForLoop):
3001
3002 2017-09-11  Robin Morisset  <rmorisset@apple.com>
3003
3004         Just added myself to the contributors.json file as a committer
3005
3006         Unreviewed
3007
3008 2017-09-10  Filip Pizlo  <fpizlo@apple.com>
3009
3010         IntLiteral should prefer int32 during overload resolution
3011         https://bugs.webkit.org/show_bug.cgi?id=176675
3012
3013         Reviewed by Myles Maxfield.
3014         
3015         This makes intLiteralType prefer to resolve to int over other types.
3016         
3017         This also adds tests that if you pass intLiteral to T, then you can make it work by saying
3018         int(intLiteral).
3019
3020         * WebGPUShadingLanguageRI/IntLiteralType.js:
3021         (IntLiteralType):
3022         (IntLiteralType.prototype.conversionCost):
3023         * WebGPUShadingLanguageRI/Node.js:
3024         (Node.prototype.conversionCost):
3025         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
3026         (resolveOverloadImpl):
3027         * WebGPUShadingLanguageRI/Rewriter.js:
3028         (Rewriter.prototype.visitIntLiteralType):
3029         * WebGPUShadingLanguageRI/Test.js:
3030         (TEST_intOverloadResolution):
3031         (TEST_intOverloadResolutionReverseOrder):
3032         (TEST_intOverloadResolutionGeneric):
3033         (TEST_intLiteralGeneric):
3034         * WebGPUShadingLanguageRI/UnificationContext.js:
3035         (UnificationContext.prototype.get conversionCost):
3036         * WebGPUShadingLanguageRI/Visitor.js:
3037         (Visitor.prototype.visitIntLiteralType):
3038
3039 2017-09-10  Filip Pizlo  <fpizlo@apple.com>
3040
3041         WSL should be able to handle a simple constexpr type parameter
3042         https://bugs.webkit.org/show_bug.cgi?id=176676
3043
3044         Reviewed by Myles Maxfield.
3045         
3046         This adds a test that uses a constexpr type parameter, and then fixed enough bugs to get this to work.
3047
3048         * WebGPUShadingLanguageRI/All.js:
3049         * WebGPUShadingLanguageRI/CallExpression.js:
3050         (CallExpression.prototype.resolve):
3051         * WebGPUShadingLanguageRI/CheckWrapped.js: Added.
3052         (checkWrapped):
3053         * WebGPUShadingLanguageRI/Checker.js:
3054         * WebGPUShadingLanguageRI/Evaluator.js:
3055         (Evaluator.prototype.visitCallExpression):
3056         (Evaluator):
3057         * WebGPUShadingLanguageRI/Node.js:
3058         (Node.prototype.substituteToUnification):
3059         (Node.prototype.clone):
3060         (Node):
3061         * WebGPUShadingLanguageRI/Substitution.js:
3062         (Substitution):
3063         (Substitution.prototype.visitVariableRef):
3064         * WebGPUShadingLanguageRI/Test.html:
3065         * WebGPUShadingLanguageRI/Test.js:
3066         (TEST_simpleConstexpr):
3067         * WebGPUShadingLanguageRI/WrapChecker.js: Added.
3068         (WrapChecker):
3069         (WrapChecker.prototype.visitVariableRef):
3070         (WrapChecker.prototype.visitTypeRef):
3071         (WrapChecker.prototype.visitIntLiteral):
3072         (WrapChecker.prototype._foundUnwrapped):
3073         (WrapChecker.visitConstexprTypeParameter):
3074         (WrapChecker.prototype.visitFuncParameter):
3075         (WrapChecker.prototype.visitVariableDecl):
3076         (WrapChecker.prototype.visitStructType):
3077         (WrapChecker.prototype.visitNativeType):
3078
3079 2017-09-11  Carlos Alberto Lopez Perez  <clopez@igalia.com>
3080
3081         [WPE] Bump freetype version to 2.8.0
3082         https://bugs.webkit.org/show_bug.cgi?id=176501
3083
3084         Reviewed by Michael Catanzaro.
3085
3086         Bump freetype on WPE like r221670 did on GTK.
3087
3088         * wpe/jhbuild.modules:
3089         * wpe/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Removed.
3090
3091 2017-09-10  Carlos Garcia Campos  <cgarcia@igalia.com>
3092
3093         REGRESSION: [GTK] Generated HTML API documentation is missing descriptions
3094         https://bugs.webkit.org/show_bug.cgi?id=176667
3095
3096         Reviewed by Michael Catanzaro.
3097
3098         This is happening since we moved the implementation files to glib dirs. The generate-gtkdoc script assumes that
3099         header and implementation files are always in the same directory. To reduce the input we pass to gtk-doc we
3100         ignore cpp files for which there isn't a public header. The code to do this check doesn't consider cpp files in
3101         a different directory than the header file. It also assumes that header and cpp files have the same filename
3102         except for the extension, which is true in all cases but WebKitWebView that we have two files WebKitWebView.cpp
3103         and WebKitWebViewGtk.cpp.
3104
3105         * gtk/generate-gtkdoc:
3106         (files_to_ignore): Check also cpp files with the Gtk suffix.
3107         (files_to_ignore.add_file_if_exists): Check if a file with the given name exists in any of the source dirs.
3108
3109 2017-09-10  Myles C. Maxfield  <mmaxfield@apple.com>
3110
3111         WSL should support while loops
3112         https://bugs.webkit.org/show_bug.cgi?id=176581
3113
3114         Reviewed by Filip Pizlo.
3115
3116         There are a few interesting pieces to this patch:
3117         1. Because the evaluator is just a node-based descent through the tree, the implementation of break
3118         and continue are just "throw".
3119         2. The ReturnChecker now has to return a three-state enum because of nested blocks. The outer block
3120         cares about if the inner block has "break" as opposed to it having no returns nor breaks/continues.
3121         3. ReturnChecker will treat "while (true)" the same as { }, but will not descend deeper for things
3122         like "while (3 == 3)".
3123         4. This patch also adds a few more boolean conditional functions like operator<().
3124         5. I added another pass which makes sure there are no bare break/return keywords outside of loops.
3125
3126         * WebGPUShadingLanguageRI/All.js:
3127         * WebGPUShadingLanguageRI/Break.js: Copied from Tools/WebGPUShadingLanguageRI/CheckUnreachableCode.js.
3128         (Break):
3129         (Break.prototype.get origin):
3130         (Break.prototype.toString):
3131         * WebGPUShadingLanguageRI/CheckLoops.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
3132         (checkLoops):
3133         * WebGPUShadingLanguageRI/CheckReturns.js:
3134         (checkReturns):
3135         * WebGPUShadingLanguageRI/CheckUnreachableCode.js:
3136         (checkUnreachableCode):
3137         * WebGPUShadingLanguageRI/Checker.js:
3138         * WebGPUShadingLanguageRI/Continue.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
3139         (Continue):
3140         (Continue.prototype.get origin):
3141         (Continue.prototype.toString):
3142         * WebGPUShadingLanguageRI/Evaluator.js:
3143         (Evaluator.prototype.visitWhileLoop):
3144         (Evaluator.prototype.visitBreak):
3145         (Evaluator.prototype.visitContinue):
3146         * WebGPUShadingLanguageRI/Intrinsics.js:
3147         (Intrinsics):
3148         * WebGPUShadingLanguageRI/Lexer.js:
3149         (Lexer.prototype.next):
3150         (Lexer):
3151         * WebGPUShadingLanguageRI/LoopChecker.js: Copied from Tools/WebGPUShadingLanguageRI/ReturnChecker.js.
3152         (LoopChecker):
3153         (LoopChecker.prototype.visitFuncDef):
3154         (LoopChecker.prototype.visitWhileLoop):
3155         (LoopChecker.prototype.visitBreak):
3156         (LoopChecker.prototype.visitContinue):
3157         * WebGPUShadingLanguageRI/NameResolver.js:
3158         (NameResolver.prototype.visitWhileLoop):
3159         * WebGPUShadingLanguageRI/Node.js:
3160         (Node.prototype.visit):
3161         * WebGPUShadingLanguageRI/Parse.js:
3162         (parsePossibleRelationalInequality):
3163         (parseBreak):
3164         (parseContinue):
3165         (parseWhile):
3166         * WebGPUShadingLanguageRI/Prepare.js:
3167         (prepare):
3168         * WebGPUShadingLanguageRI/ReturnChecker.js:
3169         (ReturnChecker):
3170         (ReturnChecker.prototype.visitFuncDef):
3171         (ReturnChecker.prototype.visitBlock):
3172         (ReturnChecker.prototype.visitIfStatement):
3173         (ReturnChecker.prototype.visitWhileLoop):
3174         (ReturnChecker.prototype.visitReturn):
3175         (ReturnChecker.prototype.visitBreak):
3176         (ReturnChecker.prototype.visitContinue):
3177         * WebGPUShadingLanguageRI/Rewriter.js:
3178         (Rewriter.prototype.visitContinue):
3179         (Rewriter.prototype.visitBreak):
3180         (Rewriter.prototype.visitWhileLoop):
3181         (Rewriter):
3182         * WebGPUShadingLanguageRI/StandardLibraryPrologue.js:
3183         * WebGPUShadingLanguageRI/Test.html:
3184         * WebGPUShadingLanguageRI/Test.js:
3185         (TEST_returnIf):
3186         (TEST_simpleWhile):
3187         * WebGPUShadingLanguageRI/UnreachableCodeChecker.js:
3188         (UnreachableCodeChecker):
3189         (UnreachableCodeChecker.prototype.visitBlock):
3190         * WebGPUShadingLanguageRI/Visitor.js:
3191         (Visitor.prototype.visitWhileLoop):
3192         (Visitor.prototype.visitContinue):
3193         (Visitor.prototype.visitBreak):
3194         * WebGPUShadingLanguageRI/WhileLoop.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
3195         (WhileLoop):
3196         (WhileLoop.prototype.get origin):
3197         (WhileLoop.prototype.get conditional):
3198         (WhileLoop.prototype.get body):
3199         (WhileLoop.prototype.toString):
3200
3201 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
3202
3203         WSL overload resolution should not be cascading
3204         https://bugs.webkit.org/show_bug.cgi?id=176333
3205
3206         Reviewed by Myles Maxfield.
3207         
3208         This removes the cascading nature of overload resolution that WSL used to have, and replaces it with
3209         something C++-like. If there are multiple overload candidates that match the callsite, then we resolve
3210         them against each other. Anytime a function cannot be resolved onto another function, it is removed,
3211         since this means that this function is in some way more general than the other one, and we are just
3212         looking for the most specific function.
3213         
3214         If this process ends with only one function being selected, then we succeed, else we fail.
3215         
3216         Also changed the syntax for defining generic casts to:
3217         
3218         operator<T> Thingy<T>(things)
3219         
3220         Also fixed parsing of cast expressions. It's now possible to say a cast expression in WSL.
3221         
3222         The removal of cascading causes some problems. For example, the following two operators in our standard
3223         library are ambiguous for bool(bool):
3224         
3225         operator<T> T(T)
3226         operator<T:Equatable> bool(T)
3227         
3228         I think that what we really want is to say that the following operators are restricted to the standard
3229         library:
3230         
3231         operator<T> T()
3232         operator<T> T(T)
3233         
3234         It should not be possible to ever overload these.
3235         
3236         These changes are mostly tested by existing tests and the changes in the standard library, which has to
3237         be parsed for every test.
3238
3239         * WebGPUShadingLanguageRI/All.js:
3240         * WebGPUShadingLanguageRI/ArrayRefType.js:
3241         (ArrayRefType.prototype.unifyImpl):
3242         * WebGPUShadingLanguageRI/CallExpression.js:
3243         (CallExpression):
3244         (CallExpression.prototype.get isCast):
3245         (CallExpression.prototype.get returnType):
3246         (CallExpression.prototype.resolve):
3247         (CallExpression.prototype.becomeCast):
3248         (CallExpression.prototype.setCastData):
3249         (CallExpression.prototype.toString):
3250         * WebGPUShadingLanguageRI/Checker.js:
3251         * WebGPUShadingLanguageRI/Evaluator.js:
3252         (Evaluator.prototype.visitLogicalNot):
3253         * WebGPUShadingLanguageRI/Func.js:
3254         (Func.prototype.get returnTypeForOverloadResolution):
3255         * WebGPUShadingLanguageRI/FuncDef.js:
3256         (FuncDef):
3257         * WebGPUShadingLanguageRI/FuncInstantiator.js:
3258         (FuncInstantiator.prototype.getUnique.FindTypeVariable.prototype.visitTypeVariable):
3259         (FuncInstantiator.prototype.getUnique.FindTypeVariable):
3260         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
3261         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
3262         * WebGPUShadingLanguageRI/FunctionLikeBlock.js:
3263         (FunctionLikeBlock.prototype.toString):
3264         (FunctionLikeBlock):
3265         * WebGPUShadingLanguageRI/InferTypesForCall.js: Added.
3266         (inferTypesForCall):
3267         * WebGPUShadingLanguageRI/Inline.js:
3268         (resolveInlinedFunction):
3269         * WebGPUShadingLanguageRI/Lexer.js:
3270         (Lexer):
3271         (Lexer.prototype.next):
3272         * WebGPUShadingLanguageRI/NameContext.js:
3273         (NameContext):
3274         (NameContext.prototype.mapFor):
3275         (NameContext.prototype.add):
3276         (NameContext.prototype.get let):
3277         (NameContext.prototype.Symbol.iterator):
3278         (NameContext.get currentStatement): Deleted.
3279         * WebGPUShadingLanguageRI/NameResolver.js:
3280         (NameResolver.prototype.visitProgram):
3281         (NameResolver.prototype.determinePossibleOverloads):
3282         (NameResolver.prototype.visitProtocolFuncDecl):
3283         (NameResolver.prototype.visitCallExpression):
3284         (NameResolver):
3285         * WebGPUShadingLanguageRI/NativeFunc.js:
3286         (NativeFunc):
3287         * WebGPUShadingLanguageRI/Node.js:
3288         (Node.prototype.visit):
3289         * WebGPUShadingLanguageRI/Parse.js:
3290         (parsePossiblePrefix):
3291         (parseFuncDecl):
3292         (parseNativeFunc):
3293         (parseNative):
3294         (parsePreferredFuncDef):
3295         (parse):
3296         * WebGPUShadingLanguageRI/Prepare.js:
3297         (prepare):
3298         * WebGPUShadingLanguageRI/Program.js:
3299         (Program.prototype.resolveFuncOverload): Deleted.
3300         (Program.prototype.get nameContext): Deleted.
3301         * WebGPUShadingLanguageRI/ProtocolDecl.js:
3302         (ProtocolDecl.prototype.inherits):
3303         (ProtocolDecl.prototype.hasHeir):
3304         * WebGPUShadingLanguageRI/PtrType.js:
3305         (PtrType.prototype.unifyImpl):
3306         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
3307         (resolveOverloadImpl):
3308         * WebGPUShadingLanguageRI/Rewriter.js:
3309         (Rewriter.prototype.visitProtocolFuncDecl):
3310         (Rewriter.prototype.processDerivedCallData):
3311         (Rewriter.prototype.visitCastExpression): Deleted.
3312         * WebGPUShadingLanguageRI/StandardLibrary.js: Added.
3313         (preferred.operator.T.T):
3314         (operator.T.Equatable.bool):
3315         * WebGPUShadingLanguageRI/StandardLibraryEpilogue.js: Removed.
3316         * WebGPUShadingLanguageRI/StandardLibraryPrologue.js: Removed.
3317         * WebGPUShadingLanguageRI/Test.html:
3318         * WebGPUShadingLanguageRI/Test.js:
3319         (doLex):
3320         (checkUInt):
3321         (checkBool):
3322         * WebGPUShadingLanguageRI/TypeRef.js:
3323         (TypeRef.prototype.toString):
3324         (TypeRef):
3325         * WebGPUShadingLanguageRI/Visitor.js:
3326         (Visitor.prototype.visitCallExpression):
3327         (Visitor.prototype.visitCastExpression): Deleted.
3328
3329 2017-09-10  Brady Eidson  <beidson@apple.com>
3330
3331         Try to avoid creating the default WKWebsiteDataStore until its actually needed.
3332         <rdar://problem/33164453> and https://bugs.webkit.org/show_bug.cgi?id=176551
3333
3334         Reviewed by Tim Horton.
3335
3336         * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
3337         (TEST):
3338
3339 2017-09-10  Michael Catanzaro  <mcatanzaro@igalia.com>
3340
3341         [GTK] Improve Ctrl+W and Ctrl+Q shortcuts in MiniBrowser
3342         https://bugs.webkit.org/show_bug.cgi?id=176619
3343
3344         Reviewed by Carlos Garcia Campos.
3345
3346         There are two different problems here. First, Ctrl+W is closing the entire window. That made
3347         sense when I implemented the shortcut a couple years ago, but now MiniBrowser supports tabs
3348         and it should really close only one single tab. Fix that.
3349
3350         Next, the keyboard shortcuts are not using webkit_web_view_try_close() and so are bypassing
3351         onbeforeunload handlers, which are respected when closing with the mouse. Fix that too.
3352
3353         * MiniBrowser/gtk/BrowserWindow.c:
3354         (browserWindowTryCloseCurrentWebView):
3355         (browserWindowTryClose):
3356         (browser_window_init):
3357
3358 2017-09-07  Myles C. Maxfield  <mmaxfield@apple.com>
3359
3360         Add "if" statements to WSL
3361         https://bugs.webkit.org/show_bug.cgi?id=176294
3362
3363         Reviewed by Filip Pizlo.
3364         
3365         Rolling back in after skipping Test.js on debug.
3366
3367         Fairly straightforward implementation. ReturnChecker only returns true iff there is an else block,
3368         and both the if body and the else body recursively return true.
3369
3370         In order to accept both syntaxes:
3371         if (foo)
3372             bar;
3373         ... and ...
3374         if (foo) {
3375             bar;
3376         }
3377         This patch lets parseStatement() call parseBlock(). This means that the following is valid:
3378         int x = 7;
3379         if (foo) {
3380             int x = 8;
3381             // x is 8 here!
3382         }
3383         // x is 7 here!
3384
3385         This production means that these blocks don't require "if" statements, so you can just have:
3386         int foo() {
3387            int x = 7;
3388            {
3389                int x = 8;
3390                // x is 8 here!
3391            }
3392            // x is 7 here!
3393         }
3394
3395         However, this patch doesn't touch the following use-case:
3396         if (int x = bar()) {
3397             // use x here
3398         }
3399
3400         * WebGPUShadingLanguageRI/All.js:
3401         * WebGPUShadingLanguageRI/Checker.js:
3402         * WebGPUShadingLanguageRI/Evaluator.js:
3403         (Evaluator.prototype.visitIfStatement):
3404         * WebGPUShadingLanguageRI/IfStatement.js: Copied from Tools/WebGPUShadingLanguageRI/TypeDef.js.
3405         (IfStatement):
3406         (IfStatement.prototype.get origin):
3407         (IfStatement.prototype.get conditional):
3408         (IfStatement.prototype.get body):
3409         (IfStatement.prototype.get elseBody):
3410         (IfStatement.prototype.toString):
3411         * WebGPUShadingLanguageRI/NameResolver.js:
3412         (NameResolver.prototype.visitIfStatement):
3413         * WebGPUShadingLanguageRI/Parse.js:
3414         (parseTypeParameters):
3415         (parseIfStatement):
3416         (parseStatement):
3417         * WebGPUShadingLanguageRI/ReturnChecker.js:
3418         (ReturnChecker.prototype.visitIfStatement):
3419         * WebGPUShadingLanguageRI/Rewriter.js:
3420         (Rewriter.prototype.visitIfStatement):
3421         (Rewriter):
3422         * WebGPUShadingLanguageRI/Test.html:
3423         * WebGPUShadingLanguageRI/Test.js:
3424         (TEST_variableShadowing):
3425         (TEST_ifStatement):
3426         (TEST_ifElseStatement):
3427         (TEST_ifElseIfStatement):
3428         (TEST_ifElseIfElseStatement):
3429         (TEST_returnIf):
3430         (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
3431         * WebGPUShadingLanguageRI/TypeDef.js:
3432         (TypeDef.prototype.toString):
3433         (TypeDef):
3434         * WebGPUShadingLanguageRI/Visitor.js:
3435         (Visitor.prototype.visitIfStatement):
3436
3437 2017-09-09  Michael Catanzaro  <mcatanzaro@igalia.com>
3438
3439         [GTK] Unreviewed, fix typo forwad -> forward
3440
3441         * MiniBrowser/gtk/BrowserWindow.c:
3442         (browserWindowUpdateNavigationActions):
3443         (backForwardlistChanged):
3444         (browserWindowSwitchTab):
3445         (backForwadlistChanged): Deleted.
3446
3447 2017-09-09  Ryan Haddad  <ryanhaddad@apple.com>
3448
3449         Unreviewed, rolling out r221801.
3450
3451         This change introduced a webkitpy test failure.
3452
3453         Reverted changeset:
3454
3455         "bisect-builds doesn't work due to missing requests module"
3456         https://bugs.webkit.org/show_bug.cgi?id=175709
3457         http://trac.webkit.org/changeset/221801
3458
3459 2017-09-09  Ryan Haddad  <ryanhaddad@apple.com>
3460
3461         Unreviewed, rolling out r221776.
3462
3463         This change caused wsl-tests.yaml/Test.js to time out on Debug
3464         JSC bots.
3465
3466         Reverted changeset:
3467
3468         "Add "if" statements to WSL"
3469         https://bugs.webkit.org/show_bug.cgi?id=176294
3470         http://trac.webkit.org/changeset/221776
3471
3472 2017-09-09  Michael Catanzaro  <mcatanzaro@igalia.com>
3473
3474         MiniBrowser closes tab instead of window on close signal
3475         https://bugs.webkit.org/show_bug.cgi?id=176587
3476
3477         Reviewed by Carlos Garcia Campos.
3478
3479         This has been broken since we added support for multiple tabs. We need to run try_close for
3480         every open tab, not just the current one. If there are no onbeforeonload handlers then all
3481         tabs will close; if there are some, then they'll be respected, but the remaining tabs will
3482         be closed.
3483
3484         Note that we cannot simply iterate through the tabs of the GtkNotebook, as we'd be deleting
3485         tabs as we go, so save all the tabs into a separate list and then try to close each in turn.
3486
3487         * MiniBrowser/gtk/BrowserWindow.c:
3488         (browserWindowTryClose):
3489         (browserWindowDeleteEvent):
3490
3491 2017-09-09  Zan Dobersek  <zdobersek@igalia.com>
3492
3493         Unreviewed WPE build fix.
3494
3495         * TestWebKitAPI/PlatformWPE.cmake:
3496         Link WebCore archives into the TestWebCore binary as a group.
3497
3498 2017-09-08  Lucas Forschler  <lforschler@apple.com>
3499
3500         bisect-builds doesn't work due to missing requests module
3501         https://bugs.webkit.org/show_bug.cgi?id=175709
3502         
3503         Reviewed by Ryosuke Niwa.
3504
3505         * Scripts/bisect-builds: update import to webkitpy.thirdparty.autoinstalled
3506         * Scripts/webkitpy/thirdparty/__init__.py: add logic to install requests module.
3507         (AutoinstallImportHook.find_module):
3508         (AutoinstallImportHook):
3509         (AutoinstallImportHook._install_requests):
3510         * Scripts/webkitpy/thirdparty/__init___unittest.py:
3511         (ThirdpartyTest.test_imports):
3512
3513 2017-09-08  Lucas Forschler  <lforschler@apple.com>
3514
3515         Test commit to verify trac sync is working.
3516
3517 2017-09-08  Lucas Forschler  <lforschler@apple.com>
3518
3519         Test commit to verify git sync is working.
3520
3521 2017-09-08  Lucas Forschler  <lforschler@apple.com>
3522
3523         bisect-builds should not print out extracting command
3524         https://bugs.webkit.org/show_bug.cgi?id=175632
3525         
3526         Reviewed by Alexey Proskuryakov.
3527
3528         * Scripts/bisect-builds:
3529         (extract_archive):
3530
3531 2017-09-07  Joseph Pecoraro  <pecoraro@apple.com>
3532
3533         WebKit should claim that it can show responses for a broader range of JSON MIMETypes
3534         https://bugs.webkit.org/show_bug.cgi?id=176252
3535         <rdar://problem/34212885>
3536
3537         Reviewed by Ryosuke Niwa.
3538
3539         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3540         * TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm: Added.
3541         (-[WKNavigationResponseTestNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
3542         (-[WKNavigationResponseTestNavigationDelegate webView:didCommitNavigation:]):
3543         (-[WKNavigationResponseTestSchemeHandler webView:startURLSchemeTask:]):
3544         (-[WKNavigationResponseTestSchemeHandler webView:stopURLSchemeTask:]):
3545         (TEST):
3546         Test for canShowMIMEType with multiple JSON mime types and a garbage mime type.
3547         Previously canShowMIMEType would have been YES for "application/json" but
3548         NO for "application/vnd.api+json". Now it shows YES for both.
3549
3550         * TestWebKitAPI/PlatformGTK.cmake:
3551         * TestWebKitAPI/PlatformWPE.cmake:
3552         * TestWebKitAPI/PlatformWin.cmake:
3553         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3554         * TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp: Added.
3555         (TestWebKitAPI::TEST):
3556         Tests for MIMETypeRegistry's dynamic JSON mime type detection.
3557
3558 2017-09-07  Matthew Stewart  <matthew_r_stewart@apple.com>
3559
3560         Add Live PLT implemented with WebDriver
3561         https://bugs.webkit.org/show_bug.cgi?id=176436
3562
3563         Reviewed by Stephanie Lewis.
3564
3565         Adds a new PLT that runs on live websites.
3566
3567         * Scripts/run-webdriver-plt.py: Added.
3568         (parse_args):