4d6cfa2d0f916b133a25c26907b22469aacce352
[WebKit-https.git] / Tools / ChangeLog
1 2017-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>
2
3         Remove duplicated test results from LayoutTest platform directories
4         https://bugs.webkit.org/show_bug.cgi?id=176686
5
6         Reviewed by Michael Catanzaro.
7
8         After several rebaselines we might end up with the same result in the platform directory than the common result
9         without noticing it. This patch adds a script to detect those cases and remove all duplicated results from the
10         repository.
11
12         * Scripts/check-for-duplicated-platform-test-results: Added.
13         (check_duplicate):
14         (check_duplicate.sha1):
15         (platform_list):
16
17 2017-09-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>
18
19         The EWS build system is forcing a non UTF-8 locale and breaks meson.
20         https://bugs.webkit.org/show_bug.cgi?id=176761
21
22         Reviewed by Michael Catanzaro.
23
24         On 2011 in order to disable GCC smartquotes (UTF-8 pretty quotes)
25         that were causing trouble with the commit-queue server, the tooling
26         for the EWS bots started to force an LC_ALL=C locale.
27
28         This was needed back then apparently because the commit-queue server
29         was unable to handle properly UTF-8 text.
30
31         6 years forward and none of the ports that commit-queue tests before
32         landing a patch use GCC, but Clang. So this should not be an issue anymore.
33
34         Forcing a non UTF-8 locale breaks the Meson build system (that the
35         GTK/WPE ports use for some dependencies of its JHBuild dependencies
36         local build system).
37         It has also the potential to break things in subtle ways that are
38         hard to debug and detect. So better stop doing this.
39
40         This patch also changes TERM=none to TERM=dumb that is the proper
41         way to disable VT100 codes (see bug 127922).
42
43         * Scripts/webkitpy/common/system/environment.py:
44         (Environment.to_dictionary):
45         (Environment.disable_jhbuild_VT100_output):
46         * Scripts/webkitpy/common/system/environment_unittest.py:
47         (EnvironmentTest.test_disable_jhbuild_VT100_output):
48         * Scripts/webkitpy/port/base.py:
49         (Port._build_driver):
50         (Port._build_image_diff):
51         * Scripts/webkitpy/port/port_testcase.py:
52         (PortTestCase.test_build_driver):
53         * Scripts/webkitpy/tool/commands/download_unittest.py:
54         * Scripts/webkitpy/tool/steps/build.py:
55         (Build.build):
56         * Scripts/webkitpy/tool/steps/steps_unittest.py:
57
58 2017-09-12  Michael Catanzaro  <mcatanzaro@igalia.com>
59
60         [WPE][GTK] Run tests with G_DEBUG=fatal-criticals
61         https://bugs.webkit.org/show_bug.cgi?id=176755
62
63         Reviewed by Carlos Garcia Campos.
64
65         * Scripts/webkitpy/port/gtk.py:
66         (GtkPort.setup_environ_for_server):
67         * Scripts/webkitpy/port/wpe.py:
68         (WPEPort.setup_environ_for_server):
69
70 2017-09-12  Alex Christensen  <achristensen@webkit.org>
71
72         Fix build after r221922.
73         https://bugs.webkit.org/show_bug.cgi?id=176728
74
75         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
76         (-[ModalDelegate _webViewRunModal:]):
77         (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
78         (TEST):
79         svn-apply inserted the test too early in the file :(
80         Shift it down to where all the used static variables are declared.
81
82 2017-09-12  Alex Christensen  <achristensen@webkit.org>
83
84         Add WKUIDelegatePrivate equivalent of WKPageUIClient's runModal
85         https://bugs.webkit.org/show_bug.cgi?id=176728
86         <rdar://problem/29270035>
87
88         Reviewed by Tim Horton.
89
90         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
91         (-[ModalDelegate _webViewRunModal:]):
92         (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
93         (TEST):
94
95 2017-09-12  Daniel Bates  <dabates@apple.com>
96
97         REGRESSION (r215784): The title of right-to-left pages are empty
98         https://bugs.webkit.org/show_bug.cgi?id=176746
99         <rdar://problem/34211419>
100
101         Reviewed by Brent Fulgham.
102
103         Add unit test to ensure we do not regress StringWithDirection.truncateFromEnd().
104
105         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
106         * TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp: Added.
107         (TestWebKitAPI::TEST):
108
109 2017-09-12  Alex Christensen  <achristensen@webkit.org>
110
111         Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForNotificationPermissionRequest
112         https://bugs.webkit.org/show_bug.cgi?id=176768
113         <rdar://problem/29270035>
114
115         Reviewed by Tim Horton.
116
117         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
118         (-[NotificationDelegate initWithAllowNotifications:]):
119         (-[NotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
120         (-[NotificationDelegate _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]):
121         (TEST):
122
123 2017-09-12 Brent Fulgham  <bfulgham@apple.com>
124
125         Show punycode to user if a URL mixes Armenian Seh or Vo with other scripts
126         https://bugs.webkit.org/show_bug.cgi?id=176578
127         <rdar://problem/33906231>
128
129         Reviewed by Alex Christensen.
130
131         * TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
132         (TestWebKitAPI::TEST):
133
134 2017-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>
135
136         [Freetype] Doesn't support coloured fonts
137         https://bugs.webkit.org/show_bug.cgi?id=156579
138
139         Reviewed by Michael Catanzaro.
140
141         Bump webkitgtk-test-fonts to 0.0.6 version that includes the EmijoOne font.
142
143         * gtk/jhbuild.modules:
144         * wpe/jhbuild.modules:
145
146 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
147
148         [iOS DnD] Support DataTransfer.setDragImage when starting a drag on iOS
149         https://bugs.webkit.org/show_bug.cgi?id=176721
150         <rdar://problem/34373660>
151
152         Reviewed by Tim Horton.
153
154         In DataInteractionSimulator, ask the UIDragInteractionDelegate (WKContentView) for targeted drag previews after
155         retrieving UIDragItems during a lift. Remember these previews after the drag and drop simulation is complete, so
156         API tests (currently, just DragLiftPreviewDataTransferSetDragImage) can verify that the generated drag previews
157         are as expected.
158
159         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
160         * TestWebKitAPI/Tests/WebKitCocoa/DataTransfer-setDragImage.html: Added.
161
162         Adds a new test harness containing 5 draggable elements, each generating a drag image using different codepaths.
163         DragLiftPreviewDataTransferSetDragImage uses this page to check that the frame of the targeted drag preview in
164         each scenario is as expected.
165
166         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
167         (checkCGRectIsEqualToCGRectWithLogging):
168         (TestWebKitAPI::TEST):
169         * TestWebKitAPI/ios/DataInteractionSimulator.h:
170         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
171         (-[DataInteractionSimulator _resetSimulatedState]):
172         (-[DataInteractionSimulator _advanceProgress]):
173         (-[DataInteractionSimulator liftPreviews]):
174
175 2017-09-11  Tim Horton  <timothy_horton@apple.com>
176
177         REGRESSION (r221272): WKWebView gets stuck zoomed in if the web process crashes
178         https://bugs.webkit.org/show_bug.cgi?id=176767
179         <rdar://problem/34196874>
180
181         Reviewed by Dan Bernstein.
182
183         * TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
184         (TEST):
185         Add a test ensuring that override layout size persists through Web
186         Content process crash.
187
188 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
189
190         [iOS WK2] Support tapping to add items to the current drag session in web content
191         https://bugs.webkit.org/show_bug.cgi?id=176421
192         <rdar://problem/31144674>
193
194         Reviewed by Tim Horton.
195
196         Adds a new drag and drop test that begins a drag on a text selection, adds an image and a link, and then drops
197         into a contenteditable area. This verifies that the text, link and image are inserted into the editable area
198         upon drop.
199
200         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
201         (TestWebKitAPI::TEST):
202
203 2017-09-11  Lucas Forschler  <lforschler@apple.com>
204
205         bisect-builds: add --list option
206         https://bugs.webkit.org/show_bug.cgi?id=174836
207
208         Reviewed by Aakash Jain & Stephanie Lewis.
209
210         * Scripts/bisect-builds:
211         (parse_args): add --list option
212         (minified_platforms): update supported platform list (add ios simulator)
213         (print_list_and_exit): helper function to print list and exit
214
215 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
216
217         [iOS WK2] ExternalSourceDataTransferItemGetAsEntry tests produce inconsistent results on test automation bots
218         https://bugs.webkit.org/show_bug.cgi?id=176736
219
220         Reviewed by Andy Estes and Megan Gardner.
221
222         The test output dumped when dropping a file in DataTransferItem-getAsEntry.html should adhere to some deterministic order.
223         Currently, this is not enforced, so on some systems, these tests fail due to expected test output being out of order. To
224         fix this, simply have the test harness alphabetically sort the output before writing to the textarea.
225
226         * TestWebKitAPI/Tests/WebKitCocoa/DataTransferItem-getAsEntry.html:
227         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
228         (TestWebKitAPI::TEST):
229
230 2017-09-11  Ryosuke Niwa  <rniwa@webkit.org>
231
232         webkitbot should recognize commands even when colon is omitted
233         https://bugs.webkit.org/show_bug.cgi?id=176680
234         <rdar://problem/29933898>
235
236         Reviewed by Daniel Bates.
237
238         Recognize the IRC command even when : and , were not present.
239         Unfortunately, there is no unit test for this code at the moment.
240
241         * Scripts/webkitpy/common/net/irc/ircbot.py:
242         (IRCBot.on_pubmsg):
243
244 2017-09-11  Lucas Forschler  <lforschler@apple.com>
245
246         bisect-builds doesn't work due to missing requests module
247         https://bugs.webkit.org/show_bug.cgi?id=175709
248         
249         Reviewed by Ryosuke Niwa.
250
251         * Scripts/bisect-builds: use urllib2 instead of the requests module.
252         (get_s3_location_for_revision):
253         (main):
254
255 2017-09-11  Filip Pizlo  <fpizlo@apple.com>
256
257         WSL Substitution should probably wrap type variables of substituted types rather than just wrapping the whole type
258         https://bugs.webkit.org/show_bug.cgi?id=176677
259
260         Reviewed by Mylex Maxfield.
261         
262         This adds a checker that verifies that all type references and variable references are wrapped.
263         
264         Then this fixes errors found by that checker by making Substitution auto-wrap replacements rather than
265         manually wrapping the outer type (for types) and cloning (for values).
266
267         * WebGPUShadingLanguageRI/All.js:
268         * WebGPUShadingLanguageRI/AutoWrapper.js: Added.
269         (AutoWrapper.prototype.visitVariableRef):
270         (AutoWrapper.prototype.visitTypeRef):
271         (AutoWrapper.prototype.visitConstexprTypeParameter):
272         (AutoWrapper.prototype.visitFuncParameter):
273         (AutoWrapper.prototype.visitVariableDecl):
274         (AutoWrapper.prototype.visitStructType):
275         (AutoWrapper.prototype.visitNativeType):
276         (AutoWrapper):
277         * WebGPUShadingLanguageRI/CheckWrapped.js:
278         (checkExpressionWrapped):
279         (checkProgramWrapped):
280         (checkWrapped): Deleted.
281         * WebGPUShadingLanguageRI/Checker.js:
282         * WebGPUShadingLanguageRI/ExpressionFinder.js: Added.
283         (ExpressionFinder):
284         (ExpressionFinder.prototype.visitFunc):
285         (ExpressionFinder.prototype.visitFuncParameter):
286         (ExpressionFinder.prototype.visitConstexprTypeParameter):
287         (ExpressionFinder.prototype.visitAssignment):
288         (ExpressionFinder.prototype.visitCallExpression):
289         (ExpressionFinder.prototype.visitReturn):
290         (ExpressionFinder.prototype.visitWhileLoop):
291         (ExpressionFinder.prototype.visitDoWhileLoop):
292         (ExpressionFinder.prototype.visitIfStatement):
293         (ExpressionFinder.prototype.visitForLoop):
294         (ExpressionFinder.prototype.visitVariableDecl):
295         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
296         (NativeFuncInstance):
297         * WebGPUShadingLanguageRI/Node.js:
298         (Node.prototype.substituteToUnification):
299         (Node):
300         (Node.prototype.clone): Deleted.
301         * WebGPUShadingLanguageRI/Prepare.js:
302         (prepare):
303         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
304         (StructLayoutBuilder.prototype.visitReferenceType):
305         (StructLayoutBuilder.prototype.visitField):
306         (StructLayoutBuilder):
307         * WebGPUShadingLanguageRI/Substitution.js:
308         (Substitution):
309         (Substitution.prototype.visitTypeRef):
310         (Substitution.prototype.visitVariableRef):
311         * WebGPUShadingLanguageRI/Test.html:
312         * WebGPUShadingLanguageRI/Test.js:
313         (TEST_chainConstexpr):
314         (TEST_chainGeneric):
315         (TEST_chainStruct):
316         (TEST_chainStructInvalid):
317         * WebGPUShadingLanguageRI/Visitor.js:
318         (Visitor.prototype.visitNativeTypeInstance):
319         * WebGPUShadingLanguageRI/WrapChecker.js:
320         (WrapChecker.prototype._foundUnwrapped.originString):
321         (WrapChecker.prototype._foundUnwrapped):
322         (WrapChecker):
323
324 2017-09-11  Ryan Haddad  <ryanhaddad@apple.com>
325
326         Fix multiple master.cfg unit test failures.
327         https://bugs.webkit.org/show_bug.cgi?id=176745
328
329         Reviewed by Alexey Proskuryakov.
330
331         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
332         (TestFactory.__init__): Add missing ':'.
333         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results for Windows and iOS build steps.
334
335 2017-09-11  Jonathan Bedard  <jbedard@apple.com>
336
337         Older versions should adopt newer version's expectations on mac
338         https://bugs.webkit.org/show_bug.cgi?id=176699
339         <rdar://problem/34367907>
340
341         Reviewed by Alexey Proskuryakov.
342
343         Before:
344                 mac-elcapitan-wk2
345                 mac-elcapitan
346                 mac-wk2
347                 mac
348                 wk2
349         After:
350                 mac-elcapitan-wk2
351                 mac-elcapitan
352                 mac-sierra-wk2
353                 mac-sierra
354                 mac-wk2
355                 mac
356                 wk2
357
358         * Scripts/webkitpy/port/mac.py:
359         (MacPort.default_baseline_search_path): Use VERSION_FALLBACK_ORDER to have old
360         versions inherit expectations from newer versions.
361         * Scripts/webkitpy/port/mac_unittest.py:
362         (MacTest.test_layout_test_searchpath_with_apple_additions): Check new behavior
363         with older versions inheriting expectations from newer versions.
364
365 2017-09-11  Ryan Haddad  <ryanhaddad@apple.com>
366
367         Skip JSC test wsl-tests.yaml/Test.js
368         https://bugs.webkit.org/show_bug.cgi?id=176727
369
370         Unreviewed test gardening.
371
372         * WebGPUShadingLanguageRI/wsl-tests.yaml:
373
374 2017-09-11  Alex Christensen  <achristensen@webkit.org>
375
376         Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForGeolocationPermissionRequest
377         https://bugs.webkit.org/show_bug.cgi?id=176642
378         <rdar://problem/29270035>
379
380         Reviewed by Darin Adler.
381
382         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
383         (-[GeolocationDelegate initWithAllowGeolocation:]):
384         (-[GeolocationDelegate _webView:requestGeolocationPermissionForFrame:decisionHandler:]):
385         (-[GeolocationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
386         (TEST):
387
388 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
389
390         [iOS DnD] Elements in the DOM with the `draggable` attribute should be draggable
391         https://bugs.webkit.org/show_bug.cgi?id=176664
392         <rdar://problem/32596156>
393
394         Reviewed by Tim Horton.
395
396         Adds a new API test checking that elements marked as drag sources via the `draggable` attribute can be dragged
397         with a non-null drag preview. Additionally, refactor the drag and drop simulator to not plumb drag/drop
398         interaction delegate calls through to the WKContentView via -_simulate*-prefixed testing SPI, but rather
399         by grabbing the WKWebView's drag and drop interaction delegates (i.e. the WKContentView) and calling delegate
400         methods directly. This avoids requiring boilerplate plumbing on WKWebView and WKContentView for each of the drag
401         and drop delegate methods, so these have been removed from WKWebView and WKContentView.
402
403         Additionally, renames MockDataOperationSession and MockDataInteractionSession to MockDragSession and
404         MockDropSession, respectively, and adjusts their ivars on DataInteractionSimulator to match.
405
406         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
407         * TestWebKitAPI/Tests/WebKitCocoa/custom-draggable-div.html: Added.
408
409         Add a new test harness covering dragging and dropping elements with the draggable attribute, using DataTransfer
410         API (setData and getData) as well.
411
412         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
413         (TestWebKitAPI::TEST):
414         * TestWebKitAPI/ios/DataInteractionSimulator.h:
415         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
416         (-[WKWebView dropInteractionDelegate]):
417         (-[WKWebView dragInteractionDelegate]):
418         (-[WKWebView dropInteraction]):
419         (-[WKWebView dragInteraction]):
420
421         Add testing utilities to ask a WKWebView for information about its drag/drop interactions and delegates. In this
422         case, this will return the WKWebView's WKContentView.
423
424         (-[DataInteractionSimulator _resetSimulatedState]):
425         (-[DataInteractionSimulator simulateAllTouchesCanceled:]):
426         (-[DataInteractionSimulator runFrom:to:additionalItemRequestLocations:]):
427         (-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]):
428         (-[DataInteractionSimulator _sendQueuedAdditionalItemRequest]):
429         (-[DataInteractionSimulator _advanceProgress]):
430
431         When beginning a drag session, ask the delegate for targeted lift previews and verify that these are non-null.
432         This check would fail prior to the tweak in DragDropInteractionState in this patch.
433
434         (-[DataInteractionSimulator _webView:showCustomSheetForElement:]):
435         (-[MockDataOperationSession initWithProviders:location:window:allowMove:]): Deleted.
436         (-[MockDataOperationSession session]): Deleted.
437         (-[MockDataOperationSession isLocal]): Deleted.
438         (-[MockDataOperationSession progress]): Deleted.
439         (-[MockDataOperationSession setProgressIndicatorStyle:]): Deleted.
440         (-[MockDataOperationSession progressIndicatorStyle]): Deleted.
441         (-[MockDataOperationSession operationMask]): Deleted.
442         (-[MockDataOperationSession localDragSession]): Deleted.
443         (-[MockDataOperationSession hasItemsConformingToTypeIdentifier:]): Deleted.
444         (-[MockDataOperationSession canCreateItemsOfClass:]): Deleted.
445         (-[MockDataOperationSession loadObjectsOfClass:completion:]): Deleted.
446         (-[MockDataInteractionSession initWithWindow:allowMove:]): Deleted.
447         (-[MockDataInteractionSession localOperationMask]): Deleted.
448         (-[MockDataInteractionSession externalOperationMask]): Deleted.
449
450         Replace various places where we called -_simulate* methods on WKWebView with calls to the
451         UIDragInteractionDelegate or UIDropInteractionDelegate (the WKContentView) instead. Also, adjust for some
452         mechanical renaming of drag and drop sessions.
453
454         (-[MockDataInteractionSession session]): Deleted.
455         * TestWebKitAPI/ios/UIKitSPI.h:
456
457 2017-09-11  Joseph Pecoraro  <pecoraro@apple.com>
458
459         Make the WPT entry point for LayoutTests/http/wpt more discoverable
460         https://bugs.webkit.org/show_bug.cgi?id=176494
461
462         Reviewed by Youenn Fablet.
463
464         * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py:
465         (run_server):
466         Output a tip for how to access the http/wpt tests.
467
468 2017-09-11  Mark Lam  <mark.lam@apple.com>
469
470         Turn on exception scope verification for JSC tests.
471         https://bugs.webkit.org/show_bug.cgi?id=162351
472         <rdar://problem/29563911>
473
474         Reviewed by Saam Barati.
475
476         Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
477         run-jsc-stress-tests.  This turns on exception scope verification on JSC test
478         runs (which currently does not include testapi).
479
480         Some stats on time to run JSC stress and mozilla tests:
481         1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
482         2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
483         3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
484         4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
485
486         The stats shows that (2) and (3) has effectively no time difference.  Hence, the
487         cost of enabling --validateExceptionChecks=true is not significant.
488
489         It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
490         21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
491         --dumpSimulatedThrows=true off.  We can manually add that when we see a regression
492         and need to debug the issue.  Otherwise, we wont pay the price for it.
493
494         * Scripts/run-jsc-stress-tests:
495
496 2017-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
497
498         WSL should support for loops
499         https://bugs.webkit.org/show_bug.cgi?id=176682
500
501         Reviewed by Filip Pizlo.
502
503         Follows the pattern of the existing infrastructure of while loops.
504
505         * WebGPUShadingLanguageRI/All.js:
506         * WebGPUShadingLanguageRI/Checker.js:
507         * WebGPUShadingLanguageRI/Evaluator.js:
508         (Evaluator.prototype.visitForLoop):
509         * WebGPUShadingLanguageRI/ForLoop.js: Copied from Tools/WebGPUShadingLanguageRI/LoopChecker.js.
510         (ForLoop):
511         (ForLoop.prototype.get origin):
512         (ForLoop.prototype.get initialization):
513         (ForLoop.prototype.get condition):
514         (ForLoop.prototype.get increment):
515         (ForLoop.prototype.get body):
516         (ForLoop.prototype.toString):
517         * WebGPUShadingLanguageRI/LoopChecker.js:
518         (LoopChecker.prototype.visitForLoop):
519         * WebGPUShadingLanguageRI/NameResolver.js:
520         (NameResolver.prototype.visitForLoop):
521         * WebGPUShadingLanguageRI/Parse.js:
522         (parseFor):
523         * WebGPUShadingLanguageRI/ReturnChecker.js:
524         (ReturnChecker.prototype._isBoolCastFromLiteralTrue):
525         (ReturnChecker.prototype.visitWhileLoop):
526         (ReturnChecker.prototype.visitDoWhileLoop):
527         (ReturnChecker.prototype.visitForLoop):
528         * WebGPUShadingLanguageRI/Rewriter.js:
529         (Rewriter.prototype.visitForLoop):
530         (Rewriter):
531         * WebGPUShadingLanguageRI/Test.html:
532         * WebGPUShadingLanguageRI/Test.js:
533         (TEST_forLoop):
534         * WebGPUShadingLanguageRI/Visitor.js:
535         (Visitor.prototype.visitForLoop):
536
537 2017-09-11  Robin Morisset  <rmorisset@apple.com>
538
539         Just added myself to the contributors.json file as a committer
540
541         Unreviewed
542
543 2017-09-10  Filip Pizlo  <fpizlo@apple.com>
544
545         IntLiteral should prefer int32 during overload resolution
546         https://bugs.webkit.org/show_bug.cgi?id=176675
547
548         Reviewed by Myles Maxfield.
549         
550         This makes intLiteralType prefer to resolve to int over other types.
551         
552         This also adds tests that if you pass intLiteral to T, then you can make it work by saying
553         int(intLiteral).
554
555         * WebGPUShadingLanguageRI/IntLiteralType.js:
556         (IntLiteralType):
557         (IntLiteralType.prototype.conversionCost):
558         * WebGPUShadingLanguageRI/Node.js:
559         (Node.prototype.conversionCost):
560         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
561         (resolveOverloadImpl):
562         * WebGPUShadingLanguageRI/Rewriter.js:
563         (Rewriter.prototype.visitIntLiteralType):
564         * WebGPUShadingLanguageRI/Test.js:
565         (TEST_intOverloadResolution):
566         (TEST_intOverloadResolutionReverseOrder):
567         (TEST_intOverloadResolutionGeneric):
568         (TEST_intLiteralGeneric):
569         * WebGPUShadingLanguageRI/UnificationContext.js:
570         (UnificationContext.prototype.get conversionCost):
571         * WebGPUShadingLanguageRI/Visitor.js:
572         (Visitor.prototype.visitIntLiteralType):
573
574 2017-09-10  Filip Pizlo  <fpizlo@apple.com>
575
576         WSL should be able to handle a simple constexpr type parameter
577         https://bugs.webkit.org/show_bug.cgi?id=176676
578
579         Reviewed by Myles Maxfield.
580         
581         This adds a test that uses a constexpr type parameter, and then fixed enough bugs to get this to work.
582
583         * WebGPUShadingLanguageRI/All.js:
584         * WebGPUShadingLanguageRI/CallExpression.js:
585         (CallExpression.prototype.resolve):
586         * WebGPUShadingLanguageRI/CheckWrapped.js: Added.
587         (checkWrapped):
588         * WebGPUShadingLanguageRI/Checker.js:
589         * WebGPUShadingLanguageRI/Evaluator.js:
590         (Evaluator.prototype.visitCallExpression):
591         (Evaluator):
592         * WebGPUShadingLanguageRI/Node.js:
593         (Node.prototype.substituteToUnification):
594         (Node.prototype.clone):
595         (Node):
596         * WebGPUShadingLanguageRI/Substitution.js:
597         (Substitution):
598         (Substitution.prototype.visitVariableRef):
599         * WebGPUShadingLanguageRI/Test.html:
600         * WebGPUShadingLanguageRI/Test.js:
601         (TEST_simpleConstexpr):
602         * WebGPUShadingLanguageRI/WrapChecker.js: Added.
603         (WrapChecker):
604         (WrapChecker.prototype.visitVariableRef):
605         (WrapChecker.prototype.visitTypeRef):
606         (WrapChecker.prototype.visitIntLiteral):
607         (WrapChecker.prototype._foundUnwrapped):
608         (WrapChecker.visitConstexprTypeParameter):
609         (WrapChecker.prototype.visitFuncParameter):
610         (WrapChecker.prototype.visitVariableDecl):
611         (WrapChecker.prototype.visitStructType):
612         (WrapChecker.prototype.visitNativeType):
613
614 2017-09-11  Carlos Alberto Lopez Perez  <clopez@igalia.com>
615
616         [WPE] Bump freetype version to 2.8.0
617         https://bugs.webkit.org/show_bug.cgi?id=176501
618
619         Reviewed by Michael Catanzaro.
620
621         Bump freetype on WPE like r221670 did on GTK.
622
623         * wpe/jhbuild.modules:
624         * wpe/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Removed.
625
626 2017-09-10  Carlos Garcia Campos  <cgarcia@igalia.com>
627
628         REGRESSION: [GTK] Generated HTML API documentation is missing descriptions
629         https://bugs.webkit.org/show_bug.cgi?id=176667
630
631         Reviewed by Michael Catanzaro.
632
633         This is happening since we moved the implementation files to glib dirs. The generate-gtkdoc script assumes that
634         header and implementation files are always in the same directory. To reduce the input we pass to gtk-doc we
635         ignore cpp files for which there isn't a public header. The code to do this check doesn't consider cpp files in
636         a different directory than the header file. It also assumes that header and cpp files have the same filename
637         except for the extension, which is true in all cases but WebKitWebView that we have two files WebKitWebView.cpp
638         and WebKitWebViewGtk.cpp.
639
640         * gtk/generate-gtkdoc:
641         (files_to_ignore): Check also cpp files with the Gtk suffix.
642         (files_to_ignore.add_file_if_exists): Check if a file with the given name exists in any of the source dirs.
643
644 2017-09-10  Myles C. Maxfield  <mmaxfield@apple.com>
645
646         WSL should support while loops
647         https://bugs.webkit.org/show_bug.cgi?id=176581
648
649         Reviewed by Filip Pizlo.
650
651         There are a few interesting pieces to this patch:
652         1. Because the evaluator is just a node-based descent through the tree, the implementation of break
653         and continue are just "throw".
654         2. The ReturnChecker now has to return a three-state enum because of nested blocks. The outer block
655         cares about if the inner block has "break" as opposed to it having no returns nor breaks/continues.
656         3. ReturnChecker will treat "while (true)" the same as { }, but will not descend deeper for things
657         like "while (3 == 3)".
658         4. This patch also adds a few more boolean conditional functions like operator<().
659         5. I added another pass which makes sure there are no bare break/return keywords outside of loops.
660
661         * WebGPUShadingLanguageRI/All.js:
662         * WebGPUShadingLanguageRI/Break.js: Copied from Tools/WebGPUShadingLanguageRI/CheckUnreachableCode.js.
663         (Break):
664         (Break.prototype.get origin):
665         (Break.prototype.toString):
666         * WebGPUShadingLanguageRI/CheckLoops.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
667         (checkLoops):
668         * WebGPUShadingLanguageRI/CheckReturns.js:
669         (checkReturns):
670         * WebGPUShadingLanguageRI/CheckUnreachableCode.js:
671         (checkUnreachableCode):
672         * WebGPUShadingLanguageRI/Checker.js:
673         * WebGPUShadingLanguageRI/Continue.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
674         (Continue):
675         (Continue.prototype.get origin):
676         (Continue.prototype.toString):
677         * WebGPUShadingLanguageRI/Evaluator.js:
678         (Evaluator.prototype.visitWhileLoop):
679         (Evaluator.prototype.visitBreak):
680         (Evaluator.prototype.visitContinue):
681         * WebGPUShadingLanguageRI/Intrinsics.js:
682         (Intrinsics):
683         * WebGPUShadingLanguageRI/Lexer.js:
684         (Lexer.prototype.next):
685         (Lexer):
686         * WebGPUShadingLanguageRI/LoopChecker.js: Copied from Tools/WebGPUShadingLanguageRI/ReturnChecker.js.
687         (LoopChecker):
688         (LoopChecker.prototype.visitFuncDef):
689         (LoopChecker.prototype.visitWhileLoop):
690         (LoopChecker.prototype.visitBreak):
691         (LoopChecker.prototype.visitContinue):
692         * WebGPUShadingLanguageRI/NameResolver.js:
693         (NameResolver.prototype.visitWhileLoop):
694         * WebGPUShadingLanguageRI/Node.js:
695         (Node.prototype.visit):
696         * WebGPUShadingLanguageRI/Parse.js:
697         (parsePossibleRelationalInequality):
698         (parseBreak):
699         (parseContinue):
700         (parseWhile):
701         * WebGPUShadingLanguageRI/Prepare.js:
702         (prepare):
703         * WebGPUShadingLanguageRI/ReturnChecker.js:
704         (ReturnChecker):
705         (ReturnChecker.prototype.visitFuncDef):
706         (ReturnChecker.prototype.visitBlock):
707         (ReturnChecker.prototype.visitIfStatement):
708         (ReturnChecker.prototype.visitWhileLoop):
709         (ReturnChecker.prototype.visitReturn):
710         (ReturnChecker.prototype.visitBreak):
711         (ReturnChecker.prototype.visitContinue):
712         * WebGPUShadingLanguageRI/Rewriter.js:
713         (Rewriter.prototype.visitContinue):
714         (Rewriter.prototype.visitBreak):
715         (Rewriter.prototype.visitWhileLoop):
716         (Rewriter):
717         * WebGPUShadingLanguageRI/StandardLibraryPrologue.js:
718         * WebGPUShadingLanguageRI/Test.html:
719         * WebGPUShadingLanguageRI/Test.js:
720         (TEST_returnIf):
721         (TEST_simpleWhile):
722         * WebGPUShadingLanguageRI/UnreachableCodeChecker.js:
723         (UnreachableCodeChecker):
724         (UnreachableCodeChecker.prototype.visitBlock):
725         * WebGPUShadingLanguageRI/Visitor.js:
726         (Visitor.prototype.visitWhileLoop):
727         (Visitor.prototype.visitContinue):
728         (Visitor.prototype.visitBreak):
729         * WebGPUShadingLanguageRI/WhileLoop.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js.
730         (WhileLoop):
731         (WhileLoop.prototype.get origin):
732         (WhileLoop.prototype.get conditional):
733         (WhileLoop.prototype.get body):
734         (WhileLoop.prototype.toString):
735
736 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
737
738         WSL overload resolution should not be cascading
739         https://bugs.webkit.org/show_bug.cgi?id=176333
740
741         Reviewed by Myles Maxfield.
742         
743         This removes the cascading nature of overload resolution that WSL used to have, and replaces it with
744         something C++-like. If there are multiple overload candidates that match the callsite, then we resolve
745         them against each other. Anytime a function cannot be resolved onto another function, it is removed,
746         since this means that this function is in some way more general than the other one, and we are just
747         looking for the most specific function.
748         
749         If this process ends with only one function being selected, then we succeed, else we fail.
750         
751         Also changed the syntax for defining generic casts to:
752         
753         operator<T> Thingy<T>(things)
754         
755         Also fixed parsing of cast expressions. It's now possible to say a cast expression in WSL.
756         
757         The removal of cascading causes some problems. For example, the following two operators in our standard
758         library are ambiguous for bool(bool):
759         
760         operator<T> T(T)
761         operator<T:Equatable> bool(T)
762         
763         I think that what we really want is to say that the following operators are restricted to the standard
764         library:
765         
766         operator<T> T()
767         operator<T> T(T)
768         
769         It should not be possible to ever overload these.
770         
771         These changes are mostly tested by existing tests and the changes in the standard library, which has to
772         be parsed for every test.
773
774         * WebGPUShadingLanguageRI/All.js:
775         * WebGPUShadingLanguageRI/ArrayRefType.js:
776         (ArrayRefType.prototype.unifyImpl):
777         * WebGPUShadingLanguageRI/CallExpression.js:
778         (CallExpression):
779         (CallExpression.prototype.get isCast):
780         (CallExpression.prototype.get returnType):
781         (CallExpression.prototype.resolve):
782         (CallExpression.prototype.becomeCast):
783         (CallExpression.prototype.setCastData):
784         (CallExpression.prototype.toString):
785         * WebGPUShadingLanguageRI/Checker.js:
786         * WebGPUShadingLanguageRI/Evaluator.js:
787         (Evaluator.prototype.visitLogicalNot):
788         * WebGPUShadingLanguageRI/Func.js:
789         (Func.prototype.get returnTypeForOverloadResolution):
790         * WebGPUShadingLanguageRI/FuncDef.js:
791         (FuncDef):
792         * WebGPUShadingLanguageRI/FuncInstantiator.js:
793         (FuncInstantiator.prototype.getUnique.FindTypeVariable.prototype.visitTypeVariable):
794         (FuncInstantiator.prototype.getUnique.FindTypeVariable):
795         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
796         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
797         * WebGPUShadingLanguageRI/FunctionLikeBlock.js:
798         (FunctionLikeBlock.prototype.toString):
799         (FunctionLikeBlock):
800         * WebGPUShadingLanguageRI/InferTypesForCall.js: Added.
801         (inferTypesForCall):
802         * WebGPUShadingLanguageRI/Inline.js:
803         (resolveInlinedFunction):
804         * WebGPUShadingLanguageRI/Lexer.js:
805         (Lexer):
806         (Lexer.prototype.next):
807         * WebGPUShadingLanguageRI/NameContext.js:
808         (NameContext):
809         (NameContext.prototype.mapFor):
810         (NameContext.prototype.add):
811         (NameContext.prototype.get let):
812         (NameContext.prototype.Symbol.iterator):
813         (NameContext.get currentStatement): Deleted.
814         * WebGPUShadingLanguageRI/NameResolver.js:
815         (NameResolver.prototype.visitProgram):
816         (NameResolver.prototype.determinePossibleOverloads):
817         (NameResolver.prototype.visitProtocolFuncDecl):
818         (NameResolver.prototype.visitCallExpression):
819         (NameResolver):
820         * WebGPUShadingLanguageRI/NativeFunc.js:
821         (NativeFunc):
822         * WebGPUShadingLanguageRI/Node.js:
823         (Node.prototype.visit):
824         * WebGPUShadingLanguageRI/Parse.js:
825         (parsePossiblePrefix):
826         (parseFuncDecl):
827         (parseNativeFunc):
828         (parseNative):
829         (parsePreferredFuncDef):
830         (parse):
831         * WebGPUShadingLanguageRI/Prepare.js:
832         (prepare):
833         * WebGPUShadingLanguageRI/Program.js:
834         (Program.prototype.resolveFuncOverload): Deleted.
835         (Program.prototype.get nameContext): Deleted.
836         * WebGPUShadingLanguageRI/ProtocolDecl.js:
837         (ProtocolDecl.prototype.inherits):
838         (ProtocolDecl.prototype.hasHeir):
839         * WebGPUShadingLanguageRI/PtrType.js:
840         (PtrType.prototype.unifyImpl):
841         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
842         (resolveOverloadImpl):
843         * WebGPUShadingLanguageRI/Rewriter.js:
844         (Rewriter.prototype.visitProtocolFuncDecl):
845         (Rewriter.prototype.processDerivedCallData):
846         (Rewriter.prototype.visitCastExpression): Deleted.
847         * WebGPUShadingLanguageRI/StandardLibrary.js: Added.
848         (preferred.operator.T.T):
849         (operator.T.Equatable.bool):
850         * WebGPUShadingLanguageRI/StandardLibraryEpilogue.js: Removed.
851         * WebGPUShadingLanguageRI/StandardLibraryPrologue.js: Removed.
852         * WebGPUShadingLanguageRI/Test.html:
853         * WebGPUShadingLanguageRI/Test.js:
854         (doLex):
855         (checkUInt):
856         (checkBool):
857         * WebGPUShadingLanguageRI/TypeRef.js:
858         (TypeRef.prototype.toString):
859         (TypeRef):
860         * WebGPUShadingLanguageRI/Visitor.js:
861         (Visitor.prototype.visitCallExpression):
862         (Visitor.prototype.visitCastExpression): Deleted.
863
864 2017-09-10  Brady Eidson  <beidson@apple.com>
865
866         Try to avoid creating the default WKWebsiteDataStore until its actually needed.
867         <rdar://problem/33164453> and https://bugs.webkit.org/show_bug.cgi?id=176551
868
869         Reviewed by Tim Horton.
870
871         * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
872         (TEST):
873
874 2017-09-10  Michael Catanzaro  <mcatanzaro@igalia.com>
875
876         [GTK] Improve Ctrl+W and Ctrl+Q shortcuts in MiniBrowser
877         https://bugs.webkit.org/show_bug.cgi?id=176619
878
879         Reviewed by Carlos Garcia Campos.
880
881         There are two different problems here. First, Ctrl+W is closing the entire window. That made
882         sense when I implemented the shortcut a couple years ago, but now MiniBrowser supports tabs
883         and it should really close only one single tab. Fix that.
884
885         Next, the keyboard shortcuts are not using webkit_web_view_try_close() and so are bypassing
886         onbeforeunload handlers, which are respected when closing with the mouse. Fix that too.
887
888         * MiniBrowser/gtk/BrowserWindow.c:
889         (browserWindowTryCloseCurrentWebView):
890         (browserWindowTryClose):
891         (browser_window_init):
892
893 2017-09-07  Myles C. Maxfield  <mmaxfield@apple.com>
894
895         Add "if" statements to WSL
896         https://bugs.webkit.org/show_bug.cgi?id=176294
897
898         Reviewed by Filip Pizlo.
899         
900         Rolling back in after skipping Test.js on debug.
901
902         Fairly straightforward implementation. ReturnChecker only returns true iff there is an else block,
903         and both the if body and the else body recursively return true.
904
905         In order to accept both syntaxes:
906         if (foo)
907             bar;
908         ... and ...
909         if (foo) {
910             bar;
911         }
912         This patch lets parseStatement() call parseBlock(). This means that the following is valid:
913         int x = 7;
914         if (foo) {
915             int x = 8;
916             // x is 8 here!
917         }
918         // x is 7 here!
919
920         This production means that these blocks don't require "if" statements, so you can just have:
921         int foo() {
922            int x = 7;
923            {
924                int x = 8;
925                // x is 8 here!
926            }
927            // x is 7 here!
928         }
929
930         However, this patch doesn't touch the following use-case:
931         if (int x = bar()) {
932             // use x here
933         }
934
935         * WebGPUShadingLanguageRI/All.js:
936         * WebGPUShadingLanguageRI/Checker.js:
937         * WebGPUShadingLanguageRI/Evaluator.js:
938         (Evaluator.prototype.visitIfStatement):
939         * WebGPUShadingLanguageRI/IfStatement.js: Copied from Tools/WebGPUShadingLanguageRI/TypeDef.js.
940         (IfStatement):
941         (IfStatement.prototype.get origin):
942         (IfStatement.prototype.get conditional):
943         (IfStatement.prototype.get body):
944         (IfStatement.prototype.get elseBody):
945         (IfStatement.prototype.toString):
946         * WebGPUShadingLanguageRI/NameResolver.js:
947         (NameResolver.prototype.visitIfStatement):
948         * WebGPUShadingLanguageRI/Parse.js:
949         (parseTypeParameters):
950         (parseIfStatement):
951         (parseStatement):
952         * WebGPUShadingLanguageRI/ReturnChecker.js:
953         (ReturnChecker.prototype.visitIfStatement):
954         * WebGPUShadingLanguageRI/Rewriter.js:
955         (Rewriter.prototype.visitIfStatement):
956         (Rewriter):
957         * WebGPUShadingLanguageRI/Test.html:
958         * WebGPUShadingLanguageRI/Test.js:
959         (TEST_variableShadowing):
960         (TEST_ifStatement):
961         (TEST_ifElseStatement):
962         (TEST_ifElseIfStatement):
963         (TEST_ifElseIfElseStatement):
964         (TEST_returnIf):
965         (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
966         * WebGPUShadingLanguageRI/TypeDef.js:
967         (TypeDef.prototype.toString):
968         (TypeDef):
969         * WebGPUShadingLanguageRI/Visitor.js:
970         (Visitor.prototype.visitIfStatement):
971
972 2017-09-09  Michael Catanzaro  <mcatanzaro@igalia.com>
973
974         [GTK] Unreviewed, fix typo forwad -> forward
975
976         * MiniBrowser/gtk/BrowserWindow.c:
977         (browserWindowUpdateNavigationActions):
978         (backForwardlistChanged):
979         (browserWindowSwitchTab):
980         (backForwadlistChanged): Deleted.
981
982 2017-09-09  Ryan Haddad  <ryanhaddad@apple.com>
983
984         Unreviewed, rolling out r221801.
985
986         This change introduced a webkitpy test failure.
987
988         Reverted changeset:
989
990         "bisect-builds doesn't work due to missing requests module"
991         https://bugs.webkit.org/show_bug.cgi?id=175709
992         http://trac.webkit.org/changeset/221801
993
994 2017-09-09  Ryan Haddad  <ryanhaddad@apple.com>
995
996         Unreviewed, rolling out r221776.
997
998         This change caused wsl-tests.yaml/Test.js to time out on Debug
999         JSC bots.
1000
1001         Reverted changeset:
1002
1003         "Add "if" statements to WSL"
1004         https://bugs.webkit.org/show_bug.cgi?id=176294
1005         http://trac.webkit.org/changeset/221776
1006
1007 2017-09-09  Michael Catanzaro  <mcatanzaro@igalia.com>
1008
1009         MiniBrowser closes tab instead of window on close signal
1010         https://bugs.webkit.org/show_bug.cgi?id=176587
1011
1012         Reviewed by Carlos Garcia Campos.
1013
1014         This has been broken since we added support for multiple tabs. We need to run try_close for
1015         every open tab, not just the current one. If there are no onbeforeonload handlers then all
1016         tabs will close; if there are some, then they'll be respected, but the remaining tabs will
1017         be closed.
1018
1019         Note that we cannot simply iterate through the tabs of the GtkNotebook, as we'd be deleting
1020         tabs as we go, so save all the tabs into a separate list and then try to close each in turn.
1021
1022         * MiniBrowser/gtk/BrowserWindow.c:
1023         (browserWindowTryClose):
1024         (browserWindowDeleteEvent):
1025
1026 2017-09-09  Zan Dobersek  <zdobersek@igalia.com>
1027
1028         Unreviewed WPE build fix.
1029
1030         * TestWebKitAPI/PlatformWPE.cmake:
1031         Link WebCore archives into the TestWebCore binary as a group.
1032
1033 2017-09-08  Lucas Forschler  <lforschler@apple.com>
1034
1035         bisect-builds doesn't work due to missing requests module
1036         https://bugs.webkit.org/show_bug.cgi?id=175709
1037         
1038         Reviewed by Ryosuke Niwa.
1039
1040         * Scripts/bisect-builds: update import to webkitpy.thirdparty.autoinstalled
1041         * Scripts/webkitpy/thirdparty/__init__.py: add logic to install requests module.
1042         (AutoinstallImportHook.find_module):
1043         (AutoinstallImportHook):
1044         (AutoinstallImportHook._install_requests):
1045         * Scripts/webkitpy/thirdparty/__init___unittest.py:
1046         (ThirdpartyTest.test_imports):
1047
1048 2017-09-08  Lucas Forschler  <lforschler@apple.com>
1049
1050         Test commit to verify trac sync is working.
1051
1052 2017-09-08  Lucas Forschler  <lforschler@apple.com>
1053
1054         Test commit to verify git sync is working.
1055
1056 2017-09-08  Lucas Forschler  <lforschler@apple.com>
1057
1058         bisect-builds should not print out extracting command
1059         https://bugs.webkit.org/show_bug.cgi?id=175632
1060         
1061         Reviewed by Alexey Proskuryakov.
1062
1063         * Scripts/bisect-builds:
1064         (extract_archive):
1065
1066 2017-09-07  Joseph Pecoraro  <pecoraro@apple.com>
1067
1068         WebKit should claim that it can show responses for a broader range of JSON MIMETypes
1069         https://bugs.webkit.org/show_bug.cgi?id=176252
1070         <rdar://problem/34212885>
1071
1072         Reviewed by Ryosuke Niwa.
1073
1074         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1075         * TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm: Added.
1076         (-[WKNavigationResponseTestNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
1077         (-[WKNavigationResponseTestNavigationDelegate webView:didCommitNavigation:]):
1078         (-[WKNavigationResponseTestSchemeHandler webView:startURLSchemeTask:]):
1079         (-[WKNavigationResponseTestSchemeHandler webView:stopURLSchemeTask:]):
1080         (TEST):
1081         Test for canShowMIMEType with multiple JSON mime types and a garbage mime type.
1082         Previously canShowMIMEType would have been YES for "application/json" but
1083         NO for "application/vnd.api+json". Now it shows YES for both.
1084
1085         * TestWebKitAPI/PlatformGTK.cmake:
1086         * TestWebKitAPI/PlatformWPE.cmake:
1087         * TestWebKitAPI/PlatformWin.cmake:
1088         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1089         * TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp: Added.
1090         (TestWebKitAPI::TEST):
1091         Tests for MIMETypeRegistry's dynamic JSON mime type detection.
1092
1093 2017-09-07  Matthew Stewart  <matthew_r_stewart@apple.com>
1094
1095         Add Live PLT implemented with WebDriver
1096         https://bugs.webkit.org/show_bug.cgi?id=176436
1097
1098         Reviewed by Stephanie Lewis.
1099
1100         Adds a new PLT that runs on live websites.
1101
1102         * Scripts/run-webdriver-plt.py: Added.
1103         (parse_args):
1104         (start):
1105         (make_suites):
1106         (main):
1107         * Scripts/webkitpy/webdriver_plt/__init__.py: Added.
1108         * Scripts/webkitpy/webdriver_plt/liveplt.py: Added.
1109         (PageLoadTest):
1110         (PageLoadTest.__init__):
1111         (PageLoadTest.start):
1112         (PageLoadTest.run_suite):
1113         (PageLoadTest._get_driver_for_browser):
1114         (PageLoadTest._setup_browser_window):
1115         (PageLoadTest.run_one_test):
1116         (PageLoadTest.get_results):
1117         * Scripts/webkitpy/webdriver_plt/pltresults.py: Added.
1118         (PLTResults):
1119         (PLTResults.__init__):
1120         (PLTResults.__add__):
1121         (PLTResults.add_timing_result):
1122         (PLTResults.mean):
1123         (PLTResults.geometric_mean):
1124         (PLTResults.mean_coef_variance):
1125         (PLTResults.print_results):
1126         (PLTResults.print_url_results):
1127         (PLTResults._format_time):
1128         * Scripts/webkitpy/webdriver_plt/suites/__init__.py: Added.
1129         * Scripts/webkitpy/webdriver_plt/suites/arabic.suite: Added.
1130         * Scripts/webkitpy/webdriver_plt/suites/cjk.suite: Added.
1131         * Scripts/webkitpy/webdriver_plt/suites/news.suite: Added.
1132         * Scripts/webkitpy/webdriver_plt/suites/search.suite: Added.
1133         * Scripts/webkitpy/webdriver_plt/suites/shopping.suite: Added.
1134         * Scripts/webkitpy/webdriver_plt/suites/social.suite: Added.
1135         * Scripts/webkitpy/webdriver_plt/suites/suite.py: Added.
1136         (Suite):
1137         (Suite.__init__):
1138         (Suite.get_available_suites):
1139         * Scripts/webkitpy/webdriver_plt/urlresults.py: Added.
1140         (URLResults):
1141         (URLResults.__init__):
1142         (URLResults.__add__):
1143         (URLResults.mean):
1144         (URLResults.coef_variance):
1145         (URLResults.print_results):
1146         (URLResults._format_time):
1147
1148 2017-09-07  Myles C. Maxfield  <mmaxfield@apple.com>
1149
1150         Add "if" statements to WSL
1151         https://bugs.webkit.org/show_bug.cgi?id=176294
1152
1153         Reviewed by Filip Pizlo.
1154
1155         Fairly straightforward implementation. ReturnChecker only returns true iff there is an else block,
1156         and both the if body and the else body recursively return true.
1157
1158         In order to accept both syntaxes:
1159         if (foo)
1160             bar;
1161         ... and ...
1162         if (foo) {
1163             bar;
1164         }
1165         This patch lets parseStatement() call parseBlock(). This means that the following is valid:
1166         int x = 7;
1167         if (foo) {
1168             int x = 8;
1169             // x is 8 here!
1170         }
1171         // x is 7 here!
1172
1173         This production means that these blocks don't require "if" statements, so you can just have:
1174         int foo() {
1175            int x = 7;
1176            {
1177                int x = 8;
1178                // x is 8 here!
1179            }
1180            // x is 7 here!
1181         }
1182
1183         However, this patch doesn't touch the following use-case:
1184         if (int x = bar()) {
1185             // use x here
1186         }
1187
1188         * WebGPUShadingLanguageRI/All.js:
1189         * WebGPUShadingLanguageRI/Checker.js:
1190         * WebGPUShadingLanguageRI/Evaluator.js:
1191         (Evaluator.prototype.visitIfStatement):
1192         * WebGPUShadingLanguageRI/IfStatement.js: Copied from Tools/WebGPUShadingLanguageRI/TypeDef.js.
1193         (IfStatement):
1194         (IfStatement.prototype.get origin):
1195         (IfStatement.prototype.get conditional):
1196         (IfStatement.prototype.get body):
1197         (IfStatement.prototype.get elseBody):
1198         (IfStatement.prototype.toString):
1199         * WebGPUShadingLanguageRI/NameResolver.js:
1200         (NameResolver.prototype.visitIfStatement):
1201         * WebGPUShadingLanguageRI/Parse.js:
1202         (parseTypeParameters):
1203         (parseIfStatement):
1204         (parseStatement):
1205         * WebGPUShadingLanguageRI/ReturnChecker.js:
1206         (ReturnChecker.prototype.visitIfStatement):
1207         * WebGPUShadingLanguageRI/Rewriter.js:
1208         (Rewriter.prototype.visitIfStatement):
1209         (Rewriter):
1210         * WebGPUShadingLanguageRI/Test.html:
1211         * WebGPUShadingLanguageRI/Test.js:
1212         (TEST_variableShadowing):
1213         (TEST_ifStatement):
1214         (TEST_ifElseStatement):
1215         (TEST_ifElseIfStatement):
1216         (TEST_ifElseIfElseStatement):
1217         (TEST_returnIf):
1218         (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
1219         * WebGPUShadingLanguageRI/TypeDef.js:
1220         (TypeDef.prototype.toString):
1221         (TypeDef):
1222         * WebGPUShadingLanguageRI/Visitor.js:
1223         (Visitor.prototype.visitIfStatement):
1224
1225 2017-09-07  Lucas Forschler  <lforschler@apple.com>
1226
1227         Test commit after server upgrade from subversion 1.9.5 to 1.9.7
1228
1229 2017-09-07  Chris Dumez  <cdumez@apple.com>
1230
1231         [WK2] Add C API to retrieve the originating page of a WKDownload
1232         https://bugs.webkit.org/show_bug.cgi?id=176557
1233         <rdar://problem/34314776>
1234
1235         Reviewed by Alex Christensen.
1236
1237         Add layout test coverage for both the ObjC and C API.
1238
1239         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:
1240         (TestWebKitAPI::decideDestinationWithSuggestedFilename):
1241         (TestWebKitAPI::TEST):
1242         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1243         (-[RedirectedDownloadDelegate _downloadDidStart:]):
1244         (TEST):
1245
1246 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
1247
1248         WSL Node.prototype.visit should probably do memoization
1249         https://bugs.webkit.org/show_bug.cgi?id=176286
1250
1251         Reviewed by Mark Lam.
1252         
1253         Visitors can sometimes revisit the same thing. For example, we may visit a FuncDef because it belongs
1254         to Program and we may visit it again because a CallExpression resolved to it. That's just plain silly.
1255         
1256         Our tests don't currently do this, so it's not a performance problem, yet. Also, we usually avoid that
1257         kind of repetitive visiting inside the visitor implementations. But as far as I can tell, this is an
1258         emergent property rather than a deliberate design.
1259         
1260         This change just makes the policy super explicit. If you visit something more than once with the same
1261         visitor, you get the same answer back. This is achieved by means of a memo table inside each visitor.
1262         
1263         * WebGPUShadingLanguageRI/All.js:
1264         * WebGPUShadingLanguageRI/FuncInstantiator.js:
1265         * WebGPUShadingLanguageRI/Node.js:
1266         (Node.prototype.visit):
1267         * WebGPUShadingLanguageRI/Rewriter.js:
1268         (Rewriter):
1269         * WebGPUShadingLanguageRI/Test.html:
1270         * WebGPUShadingLanguageRI/Visitor.js:
1271         (Visitor):
1272         * WebGPUShadingLanguageRI/VisitorBase.js: Added.
1273         (VisitorBase):
1274
1275 2017-09-07  Wenson Hsieh  <wenson_hsieh@apple.com>
1276
1277         [Directory Upload] Extend drag and drop support to iOS
1278         https://bugs.webkit.org/show_bug.cgi?id=176492
1279         <rdar://problem/34291584>
1280
1281         Reviewed by Tim Horton.
1282
1283         Adds two new iOS drag and drop unit tests, which both exercise the DataTransferItem.webKitGetAsEntry codepath
1284         upon drop. (...)GetFolderAsEntry creates a new folder in the temporary directory and uses it to generate an item
1285         provider. This item provider is then dropped over a custom drop handling element, which writes information about
1286         the exposed FileSystemEntries into a textarea. (...)ExternalSourceDataTransferItemGetPlainTextFileAsEntry does
1287         something similar, except that it only drops a plain text file instead.
1288
1289         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1290         * TestWebKitAPI/Tests/WebKitCocoa/DataTransferItem-getAsEntry.html: Added.
1291
1292         Introduce a new test page that dumps information about DataTransferItems' file system entries upon drop.
1293
1294         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
1295         (runTestWithTemporaryTextFile):
1296         (runTestWithTemporaryFolder):
1297
1298         Introduce helpers to set up and tear down temporary files and folders over the duration of a test.
1299
1300         (TestWebKitAPI::setUpTestWebViewForDataTransferItems):
1301         (TestWebKitAPI::TEST):
1302
1303 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
1304
1305         WSL should check recursion
1306         https://bugs.webkit.org/show_bug.cgi?id=176553
1307
1308         Reviewed by Michael Saboff and Mark Lam.
1309         
1310         This adds a recursion checker. Previously, we would only check for recursion during inlining, but that
1311         generally only happens when we call the function.
1312
1313         * WebGPUShadingLanguageRI/All.js:
1314         * WebGPUShadingLanguageRI/CheckRecursion.js: Added.
1315         (checkRecursion):
1316         * WebGPUShadingLanguageRI/Prepare.js:
1317         (prepare):
1318         * WebGPUShadingLanguageRI/RecursionChecker.js: Added.
1319         (RecursionChecker):
1320         (RecursionChecker.prototype.visitFuncDef):
1321         (RecursionChecker.prototype.visitCallExpression):
1322         * WebGPUShadingLanguageRI/Test.html:
1323         * WebGPUShadingLanguageRI/Test.js:
1324         (TEST_simpleRecursion):
1325
1326 2017-09-07  Chris Dumez  <cdumez@apple.com>
1327
1328         [WK2] Notify client when downloads are redirected
1329         https://bugs.webkit.org/show_bug.cgi?id=176481
1330         <rdar://problem/34309065>
1331
1332         Reviewed by Geoffrey Garen.
1333
1334         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1335         (-[UIDownloadAsFileTestDelegate _webView:contextMenu:forElement:]):
1336         (-[RedirectedDownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]):
1337         (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]):
1338         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
1339         (TEST):
1340         Add API test coverage.
1341
1342         * WebKitTestRunner/TestController.cpp:
1343         (WTR::TestController::createWebViewWithOptions):
1344         (WTR::TestController::downloadDidReceiveServerRedirectToURL):
1345         * WebKitTestRunner/TestController.h:
1346         Add layout test infrastructure.
1347
1348 2017-09-07  Per Arne Vollan  <pvollan@apple.com>
1349
1350         [Win] fast/canvas/2d.getPath.modification.html is failing.
1351         https://bugs.webkit.org/show_bug.cgi?id=176534
1352
1353         Reviewed by Alex Christensen.
1354
1355         We need to enable Inspector additions at runtime in order to expose the getPath function.
1356
1357         * DumpRenderTree/win/DumpRenderTree.cpp:
1358         (resetWebPreferencesToConsistentValues):
1359
1360 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
1361
1362         WSL tests should run in run-javascriptcore-tests
1363         https://bugs.webkit.org/show_bug.cgi?id=176550
1364
1365         Reviewed by Keith Miller.
1366
1367         * Scripts/run-javascriptcore-tests:
1368         (runJSCStressTests):
1369         * WebGPUShadingLanguageRI/wsl-tests.yaml: Added.
1370
1371 2017-09-07  Lucas Forschler  <lforschler@apple.com>
1372
1373         bisect-builds started failing with invalid json
1374         https://bugs.webkit.org/show_bug.cgi?id=176478
1375         
1376         Once we hit 1000 items in our dynamoDB, we ran into an upper limit on the AWS API Gateway looping mechanism. 
1377         This prevented us from doing a body mapping template to reformat the json. This fix is to simply return the raw json, 
1378         and adjust the json parsing in our code. The AWS rest API has been fixed, and updated to v2. 
1379         
1380         This change is for the script which operates against the endpoint.
1381         
1382         Reviewed by Aakash Jain.
1383
1384         * Scripts/bisect-builds:
1385         (get_sorted_revisions):
1386
1387 2017-09-07  Filip Pizlo  <fpizlo@apple.com>
1388
1389         [WSL] Rationalize how protocol inheritance deals with type parameters
1390         https://bugs.webkit.org/show_bug.cgi?id=176334
1391
1392         Reviewed by Mark Lam.
1393         
1394         This adds a bunch of tests for structs, protocols, and functions interacting in interesting
1395         ways. The most complex of these tests triggers the case where the protocol contains a function
1396         with one type parameter and the real function has more than one. This should give a WTypeError,
1397         and now it does.
1398         
1399         * WebGPUShadingLanguageRI/ProtocolDecl.js:
1400         (ProtocolDecl.prototype.hasHeir): Fix the handling of a mismatch of number of type parameters by actually passing the type parameters and then correctly handling the error.
1401         * WebGPUShadingLanguageRI/Test.js: Add a bunch of tests for this case and a lot of other protocol cases.
1402         (TEST_protocolMonoSigPolyDef):
1403         (TEST_protocolPolySigPolyDef):
1404         (TEST_protocolDoublePolySigDoublePolyDef):
1405         (TEST_protocolDoublePolySigDoublePolyDefExplicit):
1406         (TEST_protocolMonoPolySigDoublePolyDefExplicit):
1407         * WebGPUShadingLanguageRI/TypeVariable.js:
1408         (TypeVariable.prototype.get origin): This wasn't implemented before, which made error reporting harder.
1409
1410 2017-09-07  Per Arne Vollan  <pvollan@apple.com>
1411
1412         [Win] Dashboard test is failing.
1413         https://bugs.webkit.org/show_bug.cgi?id=176527
1414
1415         Reviewed by Brent Fulgham.
1416
1417         Skip test on Windows since WebKitTestRunner is required, but not built on Windows.
1418
1419         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
1420         (TestFactory.__init__):
1421
1422 2017-09-07  Adrian Perez de Castro  <aperez@igalia.com>
1423
1424         [WPE][CMake] Add "dist" and "distcheck" targets
1425         https://bugs.webkit.org/show_bug.cgi?id=176448
1426
1427         Reviewed by Carlos Garcia Campos.
1428
1429         Add "dist" and "distcheck" CMake targets, which create release tarballs.
1430         These are available only when configuring with -DDEVELOPER_MODE=TRUE.
1431
1432         * wpe/manifest.txt.in: Added.
1433
1434 2017-09-07  Per Arne Vollan  <pvollan@apple.com>
1435
1436         [Win] Enable DatatransferItems in DRT.
1437         https://bugs.webkit.org/show_bug.cgi?id=176424
1438
1439         Reviewed by Brent Fulgham.
1440
1441         * DumpRenderTree/win/DumpRenderTree.cpp:
1442         (resetWebPreferencesToConsistentValues):
1443
1444 2017-09-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1445
1446         [GTK] Bump libxml2 version to 1.9.5
1447         https://bugs.webkit.org/show_bug.cgi?id=176502
1448
1449         Reviewed by Carlos Alberto Lopez Perez.
1450
1451         It has been released very recently, but it fixes the issues that prevented us from upgrading to 1.9.4.
1452
1453         * gtk/jhbuild.modules:
1454
1455 2017-09-06  Joseph Pecoraro  <pecoraro@apple.com>
1456
1457         Remove new-run-webkit-httpd as it appears to be old
1458         https://bugs.webkit.org/show_bug.cgi?id=176493
1459
1460         Reviewed by Alexey Proskuryakov.
1461
1462         * Scripts/new-run-webkit-httpd: Removed.
1463
1464 2017-09-06  Alex Christensen  <achristensen@webkit.org>
1465
1466         Add WKUIDelegatePrivate equivalent of WKPageUIClient's pageDidScroll
1467         https://bugs.webkit.org/show_bug.cgi?id=176482
1468         <rdar://problem/29270035>
1469
1470         Reviewed by Tim Horton.
1471
1472         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1473         (-[DidScrollDelegate _webViewDidScroll:]):
1474         (TEST):
1475
1476 2017-09-06  Eric Carlson  <eric.carlson@apple.com>
1477
1478         Require LoggingHelper overrides to provide identifier
1479         https://bugs.webkit.org/show_bug.cgi?id=176477
1480
1481         Reviewed by Jer Noble.
1482
1483         * TestWebKitAPI/Tests/WebCore/Logging.cpp:
1484         (TestWebKitAPI::TEST_F):
1485
1486 2017-09-06  Alex Christensen  <achristensen@webkit.org>
1487
1488         Add WKUIDelegatePrivate equivalent of WKPageUIClient's pinnedStateDidChange
1489         https://bugs.webkit.org/show_bug.cgi?id=176474
1490         <rdar://problem/29270035>
1491
1492         Reviewed by Tim Horton.
1493
1494         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1495         (-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]):
1496         (TEST):
1497
1498 2017-09-06  Alex Christensen  <achristensen@webkit.org>
1499
1500         Unreviewed, rolling out r221694.
1501
1502         broke build
1503
1504         Reverted changeset:
1505
1506         "Add WKUIDelegatePrivate equivalent of WKPageUIClient's
1507         pinnedStateDidChange"
1508         https://bugs.webkit.org/show_bug.cgi?id=176474
1509         http://trac.webkit.org/changeset/221694
1510
1511 2017-09-06  Per Arne Vollan  <pvollan@apple.com>
1512
1513         [Win] test-webkitpy test timeout_context_unittest is failing.
1514         https://bugs.webkit.org/show_bug.cgi?id=176471
1515
1516         Reviewed by Brent Fulgham.
1517
1518         This assert failure is possibly caused by different time resolution on
1519         various platforms.
1520  
1521         * Scripts/webkitpy/common/timeout_context_unittest.py:
1522         (TimeoutContextTests.test_timeout_data):
1523
1524 2017-09-06  Aakash Jain  <aakash_jain@apple.com>
1525
1526         status-bubbles turn orange after checking relevance of patch
1527         https://bugs.webkit.org/show_bug.cgi?id=176457
1528
1529         Reviewed by Alexey Proskuryakov.
1530
1531         * QueueStatusServer/handlers/statusbubble.py: Added "Checked relevance of patch" as a progress_statuses.
1532
1533 2017-09-06  Alex Christensen  <achristensen@webkit.org>
1534
1535         Add WKUIDelegatePrivate equivalent of WKPageUIClient's pinnedStateDidChange
1536         https://bugs.webkit.org/show_bug.cgi?id=176474
1537         <rdar://problem/29270035>
1538
1539         Reviewed by Tim Horton.
1540
1541         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1542         (-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]):
1543         (TEST):
1544
1545 2017-09-06  Filip Pizlo  <fpizlo@apple.com>
1546
1547         WSL: Inliner doesn't allow double-negation
1548         https://bugs.webkit.org/show_bug.cgi?id=176440
1549
1550         Reviewed by Mylex Maxfield.
1551         
1552         The problem was that we were visiting the operands to calls while inside doVisit. This is too strict
1553         since it rejects nested calls like foo(foo(x)). The solution is to visit the operands to calls before
1554         entering doVisit.
1555         
1556         This also fixes some other issues in the parser that made the Inliner's error really strange.
1557
1558         * WebGPUShadingLanguageRI/Func.js:
1559         (Func):
1560         * WebGPUShadingLanguageRI/Inliner.js:
1561         (Inliner.prototype.visitCallExpression):
1562         (Inliner):
1563         * WebGPUShadingLanguageRI/Parse.js:
1564         (parseOperatorFuncDefValues):
1565         (parseNonOperatorFuncDefValues):
1566         (parseGenericFuncDefValues):
1567         (parseFuncDecl):
1568         * WebGPUShadingLanguageRI/Test.js:
1569         * WebGPUShadingLanguageRI/VisitingSet.js:
1570         (VisitingSet.prototype.doVisit):
1571         (VisitingSet):
1572
1573 2017-09-06  Myles C. Maxfield  <mmaxfield@apple.com>
1574
1575         WSL should support the bool type
1576         https://bugs.webkit.org/show_bug.cgi?id=176285
1577
1578         Reviewed by Filip Pizlo.
1579
1580         I forgot to commit a couple files.
1581
1582         * WebGPUShadingLanguageRI/StandardLibraryEpilogue.js: Added.
1583         (const.standardLibraryEpilogue.operator.bool.T.Equatable):
1584         * WebGPUShadingLanguageRI/StandardLibraryPrologue.js: Added.
1585         (operator.T.T):
1586
1587 2017-09-06  Myles C. Maxfield  <mmaxfield@apple.com>
1588
1589         WSL should correctly handle the interaction between casting operators and complex types
1590         https://bugs.webkit.org/show_bug.cgi?id=176316
1591
1592         Reviewed by Filip Pizlo.
1593
1594         This allows the standard library to include all identity cast operators for all exsting
1595         and yet-to-exist types. The standard library now has a function with the signature:
1596         operator T<><T>(T). This means "for all T, define a cast operator from T to T<>." The
1597         duplicate <>s lets us say things like operator OutputVector<T><T>(InputVector<T> x).
1598
1599         For testing, this patch also adds the ability to cast an arbitrary Equatable type to bool,
1600         by comparing the value to the default value for that type.
1601
1602         * WebGPUShadingLanguageRI/All.js:
1603         * WebGPUShadingLanguageRI/CastExpression.js: Copied from Tools/WebGPUShadingLanguageRI/NativeFuncInstance.js.
1604         (CastExpression):
1605         (CastExpression.prototype.get functionName):
1606         (CastExpression.prototype.get returnType):
1607         (CastExpression.prototype.toString):
1608         * WebGPUShadingLanguageRI/Checker.js:
1609         * WebGPUShadingLanguageRI/Func.js:
1610         (Func.prototype.toDeclString):
1611         * WebGPUShadingLanguageRI/FuncInstantiator.js:
1612         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc):
1613         (FuncInstantiator.prototype.getUnique.Instantiate):
1614         (FuncInstantiator.prototype.getUnique):
1615         (FuncInstantiator):
1616         * WebGPUShadingLanguageRI/Inliner.js:
1617         (Inliner.prototype.visitCastExpression):
1618         (Inliner):
1619         * WebGPUShadingLanguageRI/Intrinsics.js:
1620         (Intrinsics):
1621         * WebGPUShadingLanguageRI/NativeFunc.js:
1622         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
1623         (NativeFuncInstance):
1624         * WebGPUShadingLanguageRI/Parse.js:
1625         (parsePossiblePrefix):
1626         (parseFuncDecl):
1627         (parseOperatorFuncDefValues): Deleted.
1628         (parseNonOperatorFuncDefValues): Deleted.
1629         (parseGenericFuncDefValues): Deleted.
1630         * WebGPUShadingLanguageRI/Prepare.js:
1631         (prepare):
1632         * WebGPUShadingLanguageRI/Program.js:
1633         (Program.prototype.resolveFuncOverload):
1634         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
1635         (resolveOverloadImpl):
1636         * WebGPUShadingLanguageRI/Rewriter.js:
1637         (Rewriter.prototype.processDerivedCallData):
1638         (Rewriter.prototype.visitCastExpression):
1639         (Rewriter.prototype.visitCallExpression):
1640         * WebGPUShadingLanguageRI/StandardLibrary.js: Removed.
1641         * WebGPUShadingLanguageRI/Test.html:
1642         * WebGPUShadingLanguageRI/Test.js:
1643         * WebGPUShadingLanguageRI/TypeDefResolver.js:
1644         (TypeDefResolver):
1645         (TypeDefResolver.prototype.visitFuncDef): Deleted.
1646         * WebGPUShadingLanguageRI/Visitor.js:
1647         (Visitor.prototype.visitCastExpression):
1648
1649 2017-09-06  Daniel Bates  <dabates@apple.com>
1650
1651         Copy WebKit Permalink may generate wrong URL with SVN checkout
1652         https://bugs.webkit.org/show_bug.cgi?id=176427
1653
1654         Reviewed by Darin Adler.
1655
1656         Fixes an issue where Copy WebKit Permalink would generate an incorrect URL for
1657         any file not in the top-level directory of the repository when using an SVN
1658         checkout of WebKit.
1659
1660         Copy WebKit Permalink changes directories to the containing directory D of the
1661         active Xcode document F before running "svn info <path to F>". Currently we use
1662         the value of "Path" from the output of "svn info" when generating the permalink.
1663         This path is relative to D. But we want the path to F relative to the top-level
1664         checkout directory. We need to explicitly compute this.
1665
1666         * CopyPermalink/Copy WebKit Permalink.workflow/Contents/document.wflow:
1667
1668 2017-09-06  Carlos Garcia Campos  <cgarcia@igalia.com>
1669
1670         [GTK] Bump freetype version to 2.8.0
1671         https://bugs.webkit.org/show_bug.cgi?id=176351
1672
1673         Reviewed by Carlos Alberto Lopez Perez.
1674
1675         Remove the patch we were using since it was reverted upstream.
1676
1677         * gtk/jhbuild.modules:
1678         * gtk/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Removed.
1679
1680 2017-09-06  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>
1681
1682         [Win] Tools/TestWebKitAPI/Tests/WTF/PriorityQueue.cpp fails to compile with MSVC 2015
1683         https://bugs.webkit.org/show_bug.cgi?id=176442
1684
1685         Reviewed by Keith Miller.
1686
1687         * TestWebKitAPI/Tests/WTF/PriorityQueue.cpp:
1688         (TEST):
1689
1690 2017-09-05  Darin Adler  <darin@apple.com>
1691
1692         Fix a few minor problems found while working toward removing unneeded calls to updateStyle
1693         https://bugs.webkit.org/show_bug.cgi?id=176279
1694
1695         Reviewed by Antti Koivisto.
1696
1697         * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
1698         (WTR::AccessibilityUIElement::setSelectedChild const): Handle null here. The old code instead
1699         would trigger an Objective-C exception unnecessarily.
1700
1701 2017-09-05  Wenson Hsieh  <wenson_hsieh@apple.com>
1702
1703         [iOS WK2] Add plumbing for WKContentView to ask the web process for additional drag items
1704         https://bugs.webkit.org/show_bug.cgi?id=176348
1705         Work towards <rdar://problem/31144674>
1706
1707         Reviewed by Tim Horton.
1708
1709         Introduces new test infrastructure to simulate tapping to add additional items to the current drag session. We
1710         add -[DataInteractionSimulator runFrom:to:additionalItemRequestLocations:], for which the last argument is a
1711         dictionary mapping progress (a double between 0 and 1) to NSValues representing the location from which the drag
1712         and drop simulation will request an additional drag item. During the simulated drag and drop, when the progress
1713         value exceeds a value in the map of remaining additional item request locations, we halt drag simulation
1714         progress for that runloop and instead request additional items from the location specified.
1715
1716         The only (useful) passing test we can create using the new machinery is one that verifies that preventDefault()
1717         on dragstart works as expected, preventing additional items from being added. While this trivially passes now,
1718         since the web-process-side of the additional items flow is not yet implemented, it should continue to pass after
1719         the web process portion is implemented.
1720
1721         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1722         * TestWebKitAPI/Tests/WebKitCocoa/selected-text-image-link-and-editable.html: Added.
1723
1724         Add a new test page that contains some non-editable text, an image, a link, and a rich text editable area.
1725
1726         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
1727         (TestWebKitAPI::TEST):
1728         * TestWebKitAPI/ios/DataInteractionSimulator.h:
1729         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
1730         (-[MockDragDropSession addItems:]):
1731
1732         Convenience method to add additional mock drag items to a drag or drop session.
1733
1734         (-[DataInteractionSimulator _resetSimulatedState]):
1735         (-[DataInteractionSimulator runFrom:to:]):
1736
1737         Converted into a convenience wrapper around the latter version, passing in nil for the additional item request
1738         locations dictionary.
1739
1740         (-[DataInteractionSimulator runFrom:to:additionalItemRequestLocations:]):
1741         (-[DataInteractionSimulator _enqueuePendingAdditionalItemRequestLocations]):
1742         (-[DataInteractionSimulator _sendQueuedAdditionalItemRequest]):
1743
1744         New helper methods to detect when and where additional items should be "added", and subsequently simulate adding
1745         drag items at these given locations.
1746
1747         (-[DataInteractionSimulator _advanceProgress]):
1748
1749 2017-09-05  Alex Christensen  <achristensen@webkit.org>
1750
1751         Add WKUIDelegatePrivate equivalent of WKPageUIClient's mouseDidMoveOverElement
1752         https://bugs.webkit.org/show_bug.cgi?id=176428
1753         <rdar://problem/29270035>
1754
1755         Reviewed by Tim Horton.
1756
1757         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1758         (-[MouseMoveOverElementDelegate _webView:mouseDidMoveOverElement:withFlags:userInfo:]):
1759         (TEST):
1760         * TestWebKitAPI/cocoa/TestWKWebView.h:
1761         * TestWebKitAPI/cocoa/TestWKWebView.mm:
1762         (-[TestWKWebView mouseMoveToPoint:withFlags:]):
1763
1764 2017-09-05  Matthew Stewart  <matthew_r_stewart@apple.com>
1765
1766         Benchmark Runner WebDriver maximize window on browser launch
1767         https://bugs.webkit.org/show_bug.cgi?id=175702
1768
1769         Reviewed by Stephanie Lewis.
1770
1771         * Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py:
1772         (LinuxBrowserDriver.launch_webdriver): added driver.maximize_window()
1773         * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
1774         (OSXBrowserDriver._launch_webdriver): added driver.maximize_window()
1775         * Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py:
1776         (WebDriverBenchmarkRunner._run_one_test): added driver.quit()
1777
1778 2017-09-05  Matthew Stewart  <matthew_r_stewart@apple.com>
1779
1780         Fix Benchmark Runner selenium autoinstall imports
1781         https://bugs.webkit.org/show_bug.cgi?id=175727
1782
1783         Reviewed by Stephanie Lewis.
1784
1785         This fixes run-benchmark taking a long time to start with WebDriver.
1786
1787         Inside webdriver's __init__.py file, it imports many other modules.
1788         So if we try to directly import autoinstalled.selenium.webdriver, it
1789         will re-run the autoinstall __init__.py for each new imported module
1790         that contains ".selenium"
1791         TODO: fix this inside the autoinstall code, to only do one install per
1792         import.
1793
1794         * Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py:
1795         (LinuxChromeDriver.launch_driver):
1796         * Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py:
1797         (LinuxFirefoxDriver.launch_driver):
1798         * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
1799         (OSXChromeDriver.launch_driver):
1800         (OSXChromeCanaryDriver.launch_driver):
1801         (create_chrome_options):
1802         * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
1803         (OSXFirefoxDriver.launch_driver):
1804         (OSXFirefoxNightlyDriver.launch_driver):
1805         * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
1806         (OSXSafariDriver.launch_driver):
1807         * Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py:
1808         (WebDriverBenchmarkRunner._run_one_test):
1809
1810 2017-09-05  Aakash Jain  <aakash_jain@apple.com>
1811
1812         EWS should report when a step succeeds
1813         https://bugs.webkit.org/show_bug.cgi?id=176332
1814         <rdar://problem/25224607>
1815
1816         Reviewed by Sam Weinig.
1817
1818         Most of the EWSes report only if a step fails, but do not report when a step succeed. For e.g.: If a build succeeds,
1819         EWS does not report it. Information about a step passing is sometimes very valuable, especially when waiting for a 
1820         patch to complete processing. Sometimes, patch authors know that their changes are not covered by any tests. Having EWS 
1821         display that build was successful and it is currently running tests is valuable.
1822
1823         * Scripts/webkitpy/tool/commands/earlywarningsystem.py:
1824         (AbstractEarlyWarningSystem.command_passed): Update the EWS status server when a command pass. This is
1825         similar to what is done in Commit Queue and Style Queue.
1826         * Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:
1827         (EarlyWarningSystemTest._default_expected_logs): Updated unit-tests appropriately.
1828
1829 2017-09-05  Myles C. Maxfield  <mmaxfield@apple.com>
1830
1831         WSL should support the bool type
1832         https://bugs.webkit.org/show_bug.cgi?id=176285
1833
1834         Reviewed by Filip Pizlo.
1835
1836         Very similar to the int and uint types. This patch also adds support for a logical negation expression "!x".
1837         This patch also reverts the ability of the program author to create their own "operator!()", and instead
1838         adds the ability of the program author to create their own "operator bool()". The code is generic, so
1839         programmers can make two arbitrary types Foo and Bar, and implement a "operator Bar(Foo)." The logical
1840         negation expression is a built-in, and requires its argument be a bool.
1841
1842         * WebGPUShadingLanguageRI/All.js:
1843         * WebGPUShadingLanguageRI/BoolLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/NativeFunc.js.
1844         (BoolLiteral):
1845         (BoolLiteral.prototype.get value):
1846         (BoolLiteral.prototype.get isConstexpr):
1847         (BoolLiteral.prototype.toString):
1848         * WebGPUShadingLanguageRI/Checker.js:
1849         * WebGPUShadingLanguageRI/Evaluator.js:
1850         (Evaluator.prototype.visitBoolLiteral):
1851         (Evaluator.prototype.visitLogicalNot):
1852         * WebGPUShadingLanguageRI/Func.js:
1853         (Func):
1854         (Func.prototype.get isCast):
1855         (Func.prototype.toDeclString):
1856         * WebGPUShadingLanguageRI/FuncDef.js:
1857         (FuncDef):
1858         (FuncDef.prototype.get body):
1859         (FuncDef.prototype.rewrite):
1860         * WebGPUShadingLanguageRI/Intrinsics.js:
1861         (Intrinsics):
1862         * WebGPUShadingLanguageRI/Lexer.js:
1863         (Lexer.prototype.next):
1864         (Lexer):
1865         * WebGPUShadingLanguageRI/LogicalNot.js: Copied from Tools/WebGPUShadingLanguageRI/NativeFunc.js.
1866         (LogicalNot):
1867         (LogicalNot.prototype.get operand):
1868         (LogicalNot.prototype.toString):
1869         * WebGPUShadingLanguageRI/NativeFunc.js:
1870         (NativeFunc):
1871         * WebGPUShadingLanguageRI/Parse.js:
1872         (parseTerm):
1873         (parsePossiblePrefix):
1874         (parsePossibleRelationalEquality):
1875         (parseFuncName):
1876         (parseOperatorFuncDefValues):
1877         (parseNonOperatorFuncDefValues):
1878         (parseGenericFuncDefValues):
1879         (parseFuncDecl):
1880         (parseProtocolFuncDecl):
1881         (parseFuncDef):
1882         (parseNative):
1883         (parse):
1884         * WebGPUShadingLanguageRI/Rewriter.js:
1885         (Rewriter.prototype.visitBoolLiteral):
1886         (Rewriter.prototype.visitLogicalNot):
1887         (Rewriter):
1888         * WebGPUShadingLanguageRI/StandardLibrary.js:
1889         * WebGPUShadingLanguageRI/Test.html:
1890         * WebGPUShadingLanguageRI/Test.js:
1891         (makeUInt):
1892         (makeBool):
1893         (checkUInt):
1894         (checkBool):
1895         (TEST_literalBool):
1896         (TEST_identityBool):
1897         (TEST_intSimpleMath):
1898         (TEST_uintSimpleMath):
1899         (TEST_equality):
1900         (TEST_logicalNegation):
1901         (TEST_notEquality):
1902         (TEST_equalityTypeFailure):
1903         (TEST_add1): Deleted.
1904         * WebGPUShadingLanguageRI/TypeDefResolver.js:
1905         (TypeDefResolver.prototype.visitFuncDef):
1906         * WebGPUShadingLanguageRI/Visitor.js:
1907         (Visitor.prototype.visitBoolLiteral):
1908         (Visitor.prototype.visitLogicalNot):
1909
1910 2017-09-05  Matt Lewis  <jlewis3@apple.com>
1911
1912         Unreviewed, rolling out r221603.
1913
1914         This caused accessibility/mac/select-element-selection-with-
1915         optgroups.html to consistently timeout on macOS
1916
1917         Reverted changeset:
1918
1919         "Fix a few minor problems found while working toward removing
1920         unneeded calls to updateStyle"
1921         https://bugs.webkit.org/show_bug.cgi?id=176279
1922         http://trac.webkit.org/changeset/221603
1923
1924 2017-09-05  Youenn Fablet  <youenn@apple.com>
1925
1926         WebKitTestRunner should set the cache storage directory path
1927         https://bugs.webkit.org/show_bug.cgi?id=176373
1928
1929         Reviewed by Chris Dumez.
1930
1931         * WebKitTestRunner/TestController.cpp:
1932         (WTR::TestController::generateContextConfiguration const):
1933
1934 2017-09-05  Joseph Pecoraro  <pecoraro@apple.com>
1935
1936         test262: Completion values for control flow do not match the spec
1937         https://bugs.webkit.org/show_bug.cgi?id=171265
1938
1939         Reviewed by Saam Barati.
1940
1941         * Scripts/run-jsc-stress-tests:
1942         Include a :failDueToOutdatedOrBadTest to mark failures with justification.
1943
1944 2017-09-05  Alex Christensen  <achristensen@webkit.org>
1945
1946         Add WKUIDelegatePrivate equivalent of WKPageUIClient's unavailablePluginButtonClicked
1947         https://bugs.webkit.org/show_bug.cgi?id=176274
1948         <rdar://problem/29270035>
1949
1950         Reviewed by Darin Adler.
1951
1952         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
1953         (-[PluginDelegate _webView:unavailablePluginButtonClickedWithReason:pluginInfo:]):
1954         (TEST):
1955
1956 2017-09-05  Carlos Garcia Campos  <cgarcia@igalia.com>
1957
1958         [GTK] Wrong use of PLUGIN_ARCHITECTURE(X11) in several places
1959         https://bugs.webkit.org/show_bug.cgi?id=176329
1960
1961         Reviewed by Michael Catanzaro.
1962
1963         * CMakeLists.txt: Build TestNetscapePlugIn when NETSCAPE_PLUGIN_API is enabled and only link to X11 libraries
1964         when building the X11 target.
1965         * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
1966         * DumpRenderTree/TestNetscapePlugIn/Tests/unix/CallInvalidateRectWithNullNPPArgument.cpp: Renamed from Tools/DumpRenderTree/TestNetscapePlugIn/Tests/x11/CallInvalidateRectWithNullNPPArgument.cpp.
1967         * DumpRenderTree/TestNetscapePlugIn/main.cpp:
1968         (NP_Initialize):
1969         (NPP_HandleEvent):
1970         (NPP_GetValue):
1971
1972 2017-09-04  Eric Carlson  <eric.carlson@apple.com>
1973
1974         Switch HTMLMediaElement to release logging
1975         https://bugs.webkit.org/show_bug.cgi?id=176065
1976
1977         Reviewed by Jer Noble.
1978
1979         * TestWebKitAPI/Tests/WebCore/Logging.cpp:
1980         (TestWebKitAPI::LogObserver::level const):
1981
1982 2017-09-03  Darin Adler  <darin@apple.com>
1983
1984         Fix a few minor problems found while working toward removing unneeded calls to updateStyle
1985         https://bugs.webkit.org/show_bug.cgi?id=176279
1986
1987         Reviewed by Antti Koivisto.
1988
1989         * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
1990         (WTR::AccessibilityUIElement::setSelectedChild const): Handle null here. The old code instead
1991         would trigger an Objective-C exception unnecessarily.
1992
1993 2017-09-04  Wenson Hsieh  <wenson_hsieh@apple.com>
1994
1995         [iOS DnD] Refactor drag and drop logic in WKContentView in preparation for supporting multiple drag items in a drag session
1996         https://bugs.webkit.org/show_bug.cgi?id=176264
1997         <rdar://problem/31144674>
1998
1999         Reviewed by Darin Adler.
2000
2001         Adds two new iOS drag and drop tests to check that the clientX and clientY attributes of mouse events propagated
2002         to the page during drop are correct. Each test drags from an image element and drops into three custom-drop-
2003         handling elements; `dragenter`, `dragover`, and `drop` event listeners on the body then use the clientX and
2004         clientY event attributes to hit-test for drop target elements. The first test is suffixed with "-Basic"; the
2005         second test, suffixed with "-WithScrollOffset", makes the document scrollable to check that clientY is correct
2006         when scrolled.
2007
2008         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2009         * TestWebKitAPI/Tests/WebKitCocoa/drop-targets.html: Added.
2010         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2011         (TestWebKitAPI::testDragAndDropOntoTargetElements):
2012         (TestWebKitAPI::TEST):
2013         * TestWebKitAPI/cocoa/TestWKWebView.mm:
2014         (-[TestWKWebView stringByEvaluatingJavaScript:]):
2015
2016         Log a warning message when an API test fails due to JavaScript evaluation in TestWKWebView.
2017
2018 2017-09-03  Filip Pizlo  <fpizlo@apple.com>
2019
2020         WSL IntLiteral should have variable type so that it can unify with things like uint
2021         https://bugs.webkit.org/show_bug.cgi?id=176209
2022
2023         Reviewed by Mylex Maxfield.
2024         
2025         This introduces IntLiteralType, which can unify with any number type that can represent the
2026         int literal.
2027         
2028         This means that all of the following are legal:
2029         
2030             double x = 0; // 0 unifies with double
2031             double y = x + 5; // should resolve to double+double
2032             double z = array[0]; // 0 unifies with uint
2033         
2034         We can do similar things with float literals, so that you don't have to suffix "f" all the
2035         time.
2036         
2037         I think that this is very different from what C does. C just supports implicit type
2038         conversions. That's why "double x = 0" works in C. We don't do type conversions. Instead, we
2039         let each literal unify itself with one type.
2040         
2041         Also updated Test.html so that it runs again and is better at printing things.
2042
2043         * WebGPUShadingLanguageRI/All.js:
2044         * WebGPUShadingLanguageRI/Checker.js:
2045         * WebGPUShadingLanguageRI/IntLiteral.js:
2046         (IntLiteral):
2047         (IntLiteral.prototype.toString):
2048         * WebGPUShadingLanguageRI/IntLiteralType.js: Added.
2049         (IntLiteralType):
2050         (IntLiteralType.prototype.get origin):
2051         (IntLiteralType.prototype.get value):
2052         (IntLiteralType.prototype.get isPrimitive):
2053         (IntLiteralType.prototype.get isUnifiable):
2054         (IntLiteralType.prototype.typeVariableUnify):
2055         (IntLiteralType.prototype.unifyImpl):
2056         (IntLiteralType.prototype.verifyAsArgument):
2057         (IntLiteralType.prototype.verifyAsParameter):
2058         (IntLiteralType.prototype.commitUnification):
2059         (IntLiteralType.prototype.toString):
2060         * WebGPUShadingLanguageRI/Intrinsics.js:
2061         (Intrinsics.):
2062         (Intrinsics):
2063         * WebGPUShadingLanguageRI/LiteralTypeChecker.js:
2064         (LiteralTypeChecker.prototype.visitIntLiteralType):
2065         (LiteralTypeChecker):
2066         * WebGPUShadingLanguageRI/NativeType.js:
2067         (NativeType):
2068         (NativeType.prototype.get isNumber):
2069         (NativeType.prototype.set isNumber):
2070         (NativeType.prototype.get isInt):
2071         (NativeType.prototype.set isInt):
2072         (NativeType.prototype.get isFloat):
2073         (NativeType.prototype.set isFloat):
2074         * WebGPUShadingLanguageRI/Prepare.js:
2075         (prepare):
2076         * WebGPUShadingLanguageRI/Rewriter.js:
2077         (Rewriter.prototype.visitIntLiteral):
2078         (Rewriter.prototype.visitIntLiteralType):
2079         * WebGPUShadingLanguageRI/StandardLibrary.js:
2080         * WebGPUShadingLanguageRI/Test.html:
2081         * WebGPUShadingLanguageRI/Test.js:
2082         (this.window.this.print):
2083         (doPrep):
2084         (doLex):
2085         (checkNumber):
2086         (checkInt):
2087         (TEST_nameResolutionFailure):
2088         (TEST_threadArrayLoadIntLiteral):
2089         (TEST_deviceArrayStoreIntLiteral):
2090         (TEST_returnIntLiteralDouble):
2091         * WebGPUShadingLanguageRI/Type.js:
2092         (Type.prototype.get isNumber):
2093         (Type.prototype.get isInt):
2094         (Type.prototype.get isFloat):
2095         * WebGPUShadingLanguageRI/Visitor.js:
2096         (Visitor.prototype.visitIntLiteral):
2097         (Visitor.prototype.visitIntLiteralType):
2098
2099 2017-09-03  Filip Pizlo  <fpizlo@apple.com>
2100
2101         Add more tests for null behavior in WSL
2102         https://bugs.webkit.org/show_bug.cgi?id=176318
2103
2104         Reviewed by Myles Maxfield.
2105         
2106         This adds more tests for the unification behavior of null. In the process, I found a couple
2107         small bugs and fixed them.
2108
2109         * WebGPUShadingLanguageRI/Checker.js:
2110         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2111         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
2112         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
2113         * WebGPUShadingLanguageRI/Substitution.js:
2114         (Substitution.prototype.visitTypeRef):
2115         * WebGPUShadingLanguageRI/Test.js:
2116         (TEST_passNullAndNotNullFullPoly):
2117         (TEST_passNullAndNotNullFullPolyReverse):
2118         (TEST_nullTypeVariableUnify.recurse):
2119         (TEST_nullTypeVariableUnify.everyOrder):
2120         (TEST_nullTypeVariableUnify.everyPair):
2121         (TEST_nullTypeVariableUnify):
2122         * WebGPUShadingLanguageRI/TypeRef.js:
2123         (TypeRef.wrap):
2124         * WebGPUShadingLanguageRI/TypeVariable.js:
2125         (TypeVariable.prototype.verifyAsArgument):
2126
2127 2017-09-04  Commit Queue  <commit-queue@webkit.org>
2128
2129         Unreviewed, rolling out r221494 and r221500.
2130         https://bugs.webkit.org/show_bug.cgi?id=176258
2131
2132         This caused the windows build to fail. (Requested by mlewis13
2133         on #webkit).
2134
2135         Reverted changesets:
2136
2137         "Switch HTMLMediaElement to release logging"
2138         https://bugs.webkit.org/show_bug.cgi?id=176065
2139         http://trac.webkit.org/changeset/221494
2140
2141         "Switch HTMLMediaElement to release logging"
2142         https://bugs.webkit.org/show_bug.cgi?id=176065
2143         http://trac.webkit.org/changeset/221500
2144
2145 2017-09-03  Darin Adler  <darin@apple.com>
2146
2147         REGRESSION (r220052): [Sierra] API test VideoControlsManager.VideoControlsManagerFullSizeVideoInWideMainFrame is a flaky failure
2148         https://bugs.webkit.org/show_bug.cgi?id=175329
2149
2150         Reviewed by Wenson Hsieh.
2151
2152         These tests rely on using setTimeout to wait a run loop iteration for the
2153         video controls to appear. With changes to how loading occurs, it can now
2154         take two run loop iterations. The concept here is inherently a bit flaky
2155         and racy -- end users will not be able to tell how many run loop cycles it
2156         takes for controls to come up, and websites can't tell either -- but for now
2157         changing the tests to wait one more run loop should get rid of the flakiness.
2158
2159         * TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm: Re-enable test.
2160
2161         * TestWebKitAPI/Tests/WebKitCocoa/full-size-autoplaying-video-with-audio.html: Add a
2162         second setTimeout and a comment.
2163         * TestWebKitAPI/Tests/WebKitCocoa/skinny-autoplaying-video-with-audio.html: Ditto.
2164         * TestWebKitAPI/Tests/WebKitCocoa/wide-autoplaying-video-with-audio.html: Ditto.
2165
2166 2017-09-03  Sam Weinig  <sam@webkit.org>
2167
2168         Make webkit-patch post --no-review enable EWS just like webkit-patch post-commits --no-review
2169         https://bugs.webkit.org/show_bug.cgi?id=176321
2170
2171         Reviewed by Darin Adler.
2172
2173         * Scripts/webkitpy/tool/commands/upload.py:
2174         Add the SubmitToEWS step to Post command
2175
2176 2017-09-03  Chris Dumez  <cdumez@apple.com>
2177
2178         Have getFileMetadata() return a std::optional<FileMetadata>
2179         https://bugs.webkit.org/show_bug.cgi?id=176293
2180
2181         Reviewed by Darin Adler.
2182
2183         * TestWebKitAPI/Tests/WebCore/FileSystem.cpp:
2184         (TestWebKitAPI::TEST_F):
2185
2186 2017-09-02  Filip Pizlo  <fpizlo@apple.com>
2187
2188         WSL should support structs
2189         https://bugs.webkit.org/show_bug.cgi?id=176290
2190
2191         Reviewed by Mylex Maxfield.
2192         
2193         This adds parsing of struct types and makes them work.
2194         
2195         This required adding a struct layout phase, which in turn required being a bit more careful
2196         about how we instantiate functions and types. We cannot have any instantiation TypeRefs left
2197         once we're doing struct layout.
2198
2199         * WebGPUShadingLanguageRI/All.js:
2200         * WebGPUShadingLanguageRI/CallFunction.js:
2201         (callFunction):
2202         * WebGPUShadingLanguageRI/Checker.js:
2203         (Checker.prototype.visitProtocolDecl.set throw):
2204         * WebGPUShadingLanguageRI/DotExpression.js: Added.
2205         (DotExpression):
2206         (DotExpression.prototype.get struct):
2207         (DotExpression.prototype.get fieldName):
2208         (DotExpression.prototype.get isLValue):
2209         (DotExpression.prototype.toString):
2210         * WebGPUShadingLanguageRI/EBufferBuilder.js:
2211         (EBufferBuilder.prototype._createEPtr):
2212         * WebGPUShadingLanguageRI/EPtr.js:
2213         (EPtr.prototype.copyFrom): Deleted.
2214         (EPtr.prototype.toString): Deleted.
2215         * WebGPUShadingLanguageRI/Evaluator.js:
2216         (Evaluator.prototype.visitAssignment):
2217         (Evaluator.prototype.visitDotExpression):
2218         * WebGPUShadingLanguageRI/Field.js:
2219         (Field):
2220         * WebGPUShadingLanguageRI/FuncDef.js:
2221         (FuncDef.prototype.rewrite):
2222         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2223         (FuncInstantiator.prototype.getUnique):
2224         (FuncInstantiator):
2225         * WebGPUShadingLanguageRI/Inline.js:
2226         (inline):
2227         (_inlineFunction):
2228         (resolveInlinedFunction):
2229         * WebGPUShadingLanguageRI/Inliner.js:
2230         (Inliner.prototype.visitDotExpression):
2231         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
2232         (InstantiateImmediates.prototype.visitTypeRef):
2233         (InstantiateImmediates.prototype.visitVariableDecl):
2234         (InstantiateImmediates):
2235         * WebGPUShadingLanguageRI/NameResolver.js:
2236         (NameResolver.prototype._resolveTypeArguments):
2237         (NameResolver.prototype.visitTypeRef):
2238         * WebGPUShadingLanguageRI/Node.js:
2239         (Node.prototype.visit):
2240         * WebGPUShadingLanguageRI/OverloadResolutionFailure.js: Added.
2241         (OverloadResolutionFailure):
2242         (OverloadResolutionFailure.prototype.get func):
2243         (OverloadResolutionFailure.prototype.get reason):
2244         (OverloadResolutionFailure.prototype.toString):
2245         * WebGPUShadingLanguageRI/Parse.js:
2246         (parsePossibleSuffix):
2247         (parseField):
2248         (parseStructType):
2249         (parse):
2250         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
2251         (resolveOverloadImpl):
2252         * WebGPUShadingLanguageRI/Rewriter.js:
2253         (Rewriter.prototype.visitDotExpression):
2254         (Rewriter.prototype.visitVariableRef):
2255         * WebGPUShadingLanguageRI/StructLayoutBuilder.js: Added.
2256         (StructLayoutBuilder):
2257         (StructLayoutBuilder.prototype.visitStructType):
2258         (StructLayoutBuilder.prototype.get offset):
2259         (StructLayoutBuilder.prototype.visitField):
2260         (StructLayoutBuilder.prototype.visitVariableRef):
2261         (StructLayoutBuilder.prototype.visitVariableDecl):
2262         * WebGPUShadingLanguageRI/StructType.js:
2263         (StructType.prototype.add):
2264         (StructType.prototype.instantiate):
2265         (StructType.prototype.populateDefaultValue):
2266         * WebGPUShadingLanguageRI/Substitution.js:
2267         (Substitution.prototype.visitTypeRef):
2268         (Substitution.prototype.visitVariableRef):
2269         (Substitution):
2270         * WebGPUShadingLanguageRI/Test.js:
2271         (TEST_genericStructInstance):
2272         * WebGPUShadingLanguageRI/Type.js:
2273         (Type.prototype.inherits):
2274         * WebGPUShadingLanguageRI/TypeRef.js:
2275         (TypeRef.instantiate):
2276         * WebGPUShadingLanguageRI/VariableRef.js:
2277         (VariableRef.wrap):
2278         * WebGPUShadingLanguageRI/Visitor.js:
2279         (Visitor.prototype.visitTypeRef):
2280         (Visitor.prototype.visitDotExpression):
2281         (Visitor.prototype.visitVariableRef):
2282
2283 2017-09-02  Filip Pizlo  <fpizlo@apple.com>
2284
2285         WSL NullType should be a special type variable so it can unify with any pointer type
2286         https://bugs.webkit.org/show_bug.cgi?id=176235
2287
2288         Reviewed by Myles Maxfield.
2289         
2290         Null is just a type variable that plays by weird rules:
2291         
2292         - Other type variables don't recognize it, so if it's unified with T, it fails.
2293         - It behaves like a type variable for pointer and array reference types.
2294         - It arises only in argument (RHS) position.
2295         - Once Checker finds it to be equals to something, we need to remember what that was.
2296         
2297         I refactored some of the type system code to allow for the possibility of type variables being
2298         unified during equals() tests. It turns out that we were playing fast and loose here; I needed
2299         to beef up UnificationContext.prototype.verify. I added tests for this.
2300         
2301         I added an equalsWithCommit() that triggers commitUnification(), which allows NullType to
2302         remember what type it got unified with.
2303         
2304         NullLiteral then just instantiates its own NullType, which is what Checker uses as the type of
2305         the NullLiteral. Everything else just works.
2306         
2307         This adds a bunch of tests to make sure we generate type errors in various weird cases while
2308         also accepting a number of safe cases.
2309         
2310         I also added a way to run the tests in-browser.
2311
2312         * WebGPUShadingLanguageRI/All.js:
2313         * WebGPUShadingLanguageRI/ArrayRefType.js:
2314         (ArrayRefType.prototype.get isArrayRef):
2315         * WebGPUShadingLanguageRI/Checker.js:
2316         (Checker.prototype.visitProtocolDecl.set throw):
2317         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
2318         (ConstexprTypeParameter.prototype.typeVariableUnify):
2319         * WebGPUShadingLanguageRI/Evaluator.js:
2320         (Evaluator.prototype.visitDereferenceExpression):
2321         (Evaluator.prototype.visitNullLiteral):
2322         * WebGPUShadingLanguageRI/Func.js:
2323         (Func.prototype.toString):
2324         (Func):
2325         * WebGPUShadingLanguageRI/Intrinsics.js:
2326         (Intrinsics):
2327         * WebGPUShadingLanguageRI/NativeFunc.js:
2328         (NativeFunc.prototype.toDeclString):
2329         (NativeFunc):
2330         (NativeFunc.prototype.toString): Deleted.
2331         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
2332         (NativeFuncInstance.prototype.toDeclString):
2333         (NativeFuncInstance):
2334         (NativeFuncInstance.prototype.toString): Deleted.
2335         * WebGPUShadingLanguageRI/Node.js:
2336         (Node.unify):
2337         (Node.prototype._typeVariableUnifyImpl):
2338         (Node.prototype.equals):
2339         * WebGPUShadingLanguageRI/NullLiteral.js: Added.
2340         (NullLiteral):
2341         (NullLiteral.prototype.toString):
2342         * WebGPUShadingLanguageRI/NullType.js:
2343         (NullType):
2344         (NullType.prototype.get isPrimitive):
2345         (NullType.prototype.get isUnifiable):
2346         (NullType.prototype.typeVariableUnify):
2347         (NullType.prototype.unifyImpl):
2348         (NullType.prototype.verifyAsArgument):
2349         (NullType.prototype.verifyAsParameter):
2350         (NullType.prototype.toString):
2351         * WebGPUShadingLanguageRI/Parse.js:
2352         (parseTerm):
2353         (parseType.getAddressSpace):
2354         (parseType):
2355         * WebGPUShadingLanguageRI/Rewriter.js:
2356         (Rewriter.prototype.visitNullLiteral):
2357         * WebGPUShadingLanguageRI/Test.html: Added.
2358         * WebGPUShadingLanguageRI/Test.js:
2359         (this.window.this.print):
2360         (TEST_doubleGenericCallsSingleGeneric):
2361         (TEST_dereferenceDefaultNull):
2362         (TEST_dereferenceDefaultNullArrayRef):
2363         (doTest):
2364         (let.s.in.this.s.startsWith.string_appeared_here.s.match): Deleted.
2365         * WebGPUShadingLanguageRI/Type.js:
2366         (Type.prototype.get isArrayRef):
2367         * WebGPUShadingLanguageRI/TypeVariable.js:
2368         (TypeVariable.prototype.typeVariableUnify):
2369         * WebGPUShadingLanguageRI/UnificationContext.js:
2370         (UnificationContext.prototype.verify):
2371         (UnificationContext):
2372         (UnificationContext.prototype.isUnunified): Deleted.
2373         * WebGPUShadingLanguageRI/VariableRef.js:
2374         (VariableRef.prototype.get unifyNode):
2375         * WebGPUShadingLanguageRI/Visitor.js:
2376         (Visitor.prototype.visitNullLiteral):
2377
2378 2017-09-03  Sam Weinig  <sam@webkit.org>
2379
2380         Remove CanvasProxy
2381         https://bugs.webkit.org/show_bug.cgi?id=176288
2382
2383         Reviewed by Yusuke Suzuki.
2384
2385         CanvasProxy does not appear to be in any current HTML spec
2386         and was disabled and unimplemented in our tree. Time to 
2387         get rid of it.
2388
2389         * Scripts/webkitperl/FeatureList.pm:
2390         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
2391
2392 2017-09-01  Filip Pizlo  <fpizlo@apple.com>
2393
2394         WSL should check unreachable code and no returns
2395         https://bugs.webkit.org/show_bug.cgi?id=176262
2396
2397         Reviewed by Myles Maxfield.
2398         
2399         This adds phases to check whether non-void functions return and whether there is any code after
2400         a return in any block. Added tests for simple versions of both of those things. We cannot add
2401         more complex versions until we support control flow statements.
2402
2403         * WebGPUShadingLanguageRI/All.js:
2404         * WebGPUShadingLanguageRI/CheckReturns.js: Added.
2405         (checkReturns):
2406         * WebGPUShadingLanguageRI/CheckUnreachableCode.js: Added.
2407         (checkUnreachableCode):
2408         * WebGPUShadingLanguageRI/Parse.js:
2409         (parseReturn):
2410         * WebGPUShadingLanguageRI/Prepare.js:
2411         (prepare):
2412         * WebGPUShadingLanguageRI/ReturnChecker.js: Added.
2413         (ReturnChecker.prototype.visitFuncDef):
2414         (ReturnChecker.prototype.visitBlock):
2415         (ReturnChecker.prototype.visitReturn):
2416         (ReturnChecker):
2417         * WebGPUShadingLanguageRI/Test.js:
2418         (TEST_simpleNoReturn):
2419         * WebGPUShadingLanguageRI/UnreachableCodeChecker.js: Added.
2420         (UnreachableCodeChecker.prototype.visitBlock):
2421         (UnreachableCodeChecker):
2422
2423 2017-09-01  Filip Pizlo  <fpizlo@apple.com>
2424
2425         WSL should use & for getting a ^ and @ for getting a []
2426         https://bugs.webkit.org/show_bug.cgi?id=176245
2427
2428         Reviewed by Myles Maxfield.
2429         
2430         Using \ as an operator was a bad decision since that's an escape character in so many contexts.
2431         
2432         Henceforth, & is for making pointers, for example:
2433         
2434         thread int^ foo() { int x; return &x; }
2435         
2436         And @ is for making array references, for example:
2437         
2438         thread int[] foo() { int[42] x; return @x; }
2439         
2440         Having separate operators makes it easy to have pointers to fixed-size arrays:
2441         
2442         thread int[42]^ foo() { int[42] x; return &x; }
2443
2444         * WebGPUShadingLanguageRI/Intrinsics.js:
2445         (Intrinsics):
2446         * WebGPUShadingLanguageRI/Lexer.js:
2447         (Lexer.prototype.next):
2448         (Lexer):
2449         * WebGPUShadingLanguageRI/MakePtrExpression.js:
2450         (MakePtrExpression.prototype.toString):
2451         (MakePtrExpression):
2452         * WebGPUShadingLanguageRI/Parse.js:
2453         (parsePossibleSuffix):
2454         (parsePossiblePrefix):
2455         (parseFuncName):
2456         * WebGPUShadingLanguageRI/StandardLibrary.js:
2457         * WebGPUShadingLanguageRI/Test.js:
2458         (TEST_simpleMakePtr):
2459
2460 2017-09-01  Myles C. Maxfield  <mmaxfield@apple.com>
2461
2462         WSL's lexer will never emit keyword tokens
2463         https://bugs.webkit.org/show_bug.cgi?id=176248
2464
2465         Reviewed by Filip Pizlo.
2466
2467         Because all tokens are also identified as idents, we need to handle them together.
2468
2469         * WebGPUShadingLanguageRI/Lexer.js:
2470         (Lexer.prototype.next):
2471         (Lexer):
2472         * WebGPUShadingLanguageRI/Test.js:
2473         (doLex):
2474         (checkLexerToken):
2475         (TEST_lexerKeyword):
2476
2477 2017-09-01  Alex Christensen  <achristensen@webkit.org>
2478
2479         Rename WebKit2 API tests after directory rename
2480         https://bugs.webkit.org/show_bug.cgi?id=176250
2481
2482         Reviewed by Tim Horton.
2483
2484         * TestWebKitAPI/Tests/Lots of files...
2485         Renamed WebKit2 to WebKit and WebKit1 to WebKitLegacy.
2486
2487 2017-09-01  Alex Christensen  <achristensen@webkit.org>
2488
2489         Add WKUIDelegatePrivate equivalent of WKPageUIClient's toolbarsAreVisible
2490         https://bugs.webkit.org/show_bug.cgi?id=176246
2491         <rdar://problem/29270035>
2492
2493         Reviewed by Tim Horton.
2494
2495         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2496         (-[ToolbarDelegate _webView:getToolbarsAreVisibleWithCompletionHandler:]):
2497         (-[ToolbarDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2498         (TEST):
2499
2500 2017-09-01  Eric Carlson  <eric.carlson@apple.com>
2501
2502         Switch HTMLMediaElement to release logging
2503         https://bugs.webkit.org/show_bug.cgi?id=176065
2504
2505         Unreviewed build fix.
2506
2507         * TestWebKitAPI/Tests/WebCore/Logging.cpp:
2508
2509 2017-09-01  Filip Pizlo  <fpizlo@apple.com>
2510
2511         WSL should have more tests of type checking failures
2512         https://bugs.webkit.org/show_bug.cgi?id=176244
2513
2514         Reviewed by Myles Maxfield.
2515
2516         * WebGPUShadingLanguageRI/Checker.js:
2517         (Checker.prototype.visitProtocolDecl.set throw):
2518         * WebGPUShadingLanguageRI/Test.js:
2519         (TEST_typeMismatchReturn):
2520
2521 2017-09-01  Filip Pizlo  <fpizlo@apple.com>
2522
2523         WSL should be be able to call a function declared in a protocol from a generic function
2524         https://bugs.webkit.org/show_bug.cgi?id=176242
2525
2526         Reviewed by Myles Maxfield.
2527         
2528         It turns out that we need to know when a function is resolved to a protocol signature, so we
2529         need to have a type for this. This introduces ProtocolFuncDecl.
2530         
2531         Also, this introduces parsing of protocol decls.
2532         
2533         When instantiating a function, we need to rewrite its CallExpressions if they were previously
2534         resolved to a PrtococolFuncDecl instead of a FuncDef or NativeFunc. In that case, we need to
2535         rerun the resolution on the program. That resolution is guaranteed to succeed if the type
2536         system works correctly.
2537
2538         * WebGPUShadingLanguageRI/All.js:
2539         * WebGPUShadingLanguageRI/CallExpression.js:
2540         (CallExpression.prototype.resolve):
2541         * WebGPUShadingLanguageRI/Checker.js:
2542         (Checker.prototype.visitProtocolDecl.set throw):
2543         * WebGPUShadingLanguageRI/EBufferBuilder.js:
2544         (EBufferBuilder.prototype._createEPtr):
2545         * WebGPUShadingLanguageRI/Func.js:
2546         (Func):
2547         (Func.prototype.get origin):
2548         * WebGPUShadingLanguageRI/FuncDef.js:
2549         (FuncDef):
2550         (FuncDef.prototype.get origin): Deleted.
2551         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2552         (FuncInstantiator):
2553         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
2554         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
2555         * WebGPUShadingLanguageRI/NativeFunc.js:
2556         (NativeFunc):
2557         (NativeFunc.prototype.get origin): Deleted.
2558         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
2559         (NativeFuncInstance):
2560         * WebGPUShadingLanguageRI/Node.js:
2561         (Node.prototype.substitute):
2562         * WebGPUShadingLanguageRI/Parse.js:
2563         (parseProtocolFuncDecl):
2564         (parseProtocolDecl):
2565         (parse):
2566         * WebGPUShadingLanguageRI/Program.js:
2567         (Program):
2568         (Program.prototype.get protocols):
2569         (Program.prototype.add):
2570         * WebGPUShadingLanguageRI/ProtocolDecl.js:
2571         (ProtocolDecl.prototype.add):
2572         (ProtocolDecl.prototype.hasHeir):
2573         (ProtocolDecl.prototype.addSignature): Deleted.
2574         * WebGPUShadingLanguageRI/ProtocolFuncDecl.js: Added.
2575         (ProtocolFuncDecl):
2576         * WebGPUShadingLanguageRI/Rewriter.js:
2577         (Rewriter.prototype.visitStructType):
2578         (Rewriter.prototype.visitTypeVariable):
2579         (Rewriter.prototype.visitProtocolFuncDecl):
2580         (Rewriter.prototype.visitCallExpression):
2581         * WebGPUShadingLanguageRI/StructType.js:
2582         (StructType.prototype.instantiate):
2583         * WebGPUShadingLanguageRI/Substitution.js:
2584         (Substitution):
2585         (Substitution.mapping): Deleted.
2586         * WebGPUShadingLanguageRI/Test.js:
2587         (TEST_simpleGeneric):
2588         (TEST_simpleAssignment):
2589         (TEST_simpleDefault):
2590         (TEST_simpleDereference):
2591         (TEST_dereferenceStore):
2592         (TEST_simpleMakePtr):
2593         (TEST_threadArrayLoad):
2594         (TEST_deviceArrayLoad):
2595         (TEST_threadArrayStore):
2596         (TEST_deviceArrayStore):
2597         (TEST_simpleProtocol):
2598         * WebGPUShadingLanguageRI/Visitor.js:
2599         (Visitor.prototype.visitProtocolFuncDecl):
2600
2601 2017-09-01  Eric Carlson  <eric.carlson@apple.com>
2602
2603         Switch HTMLMediaElement to release logging
2604         https://bugs.webkit.org/show_bug.cgi?id=176065
2605
2606         Reviewed by Jer Noble.
2607
2608         * TestWebKitAPI/Tests/WebCore/Logging.cpp:
2609         (TestWebKitAPI::LogObserver::level const):
2610
2611 2017-09-01  Ross Kirsling  <ross.kirsling@sony.com>
2612
2613         download-latest-github-release.py should have friendlier output for non-404 errors
2614         https://bugs.webkit.org/show_bug.cgi?id=176201
2615
2616         Reviewed by Brent Fulgham.
2617
2618         * Scripts/download-latest-github-release.py:
2619
2620 2017-09-01  Filip Pizlo  <fpizlo@apple.com>
2621
2622         [WSL] Add tests for storing to arrays
2623         https://bugs.webkit.org/show_bug.cgi?id=176237
2624
2625         Reviewed by Myles Maxfield.
2626         
2627         Storing to arrays works now.
2628
2629         * WebGPUShadingLanguageRI/ArrayType.js:
2630         (ArrayType):
2631         * WebGPUShadingLanguageRI/Test.js:
2632         (TEST_threadArrayStore):
2633         (TEST_deviceArrayStore):
2634
2635 2017-09-01  Alex Christensen  <achristensen@webkit.org>
2636
2637         Replace WKUIDelegatePrivate's isPlayingMediaDidChange with KVO _isPlayingAudio on WKWebView
2638         https://bugs.webkit.org/show_bug.cgi?id=176212
2639
2640         Reviewed by Tim Horton.
2641
2642         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2643         (-[AudioObserver observeValueForKeyPath:ofObject:change:context:]):
2644         (TEST):
2645         (-[MediaDelegate _webView:isPlayingMediaDidChange:]): Deleted.
2646
2647 2017-09-01  Filip Pizlo  <fpizlo@apple.com>
2648
2649         WSL Rewriter should be an identity on things that aren't inside function bodies
2650         https://bugs.webkit.org/show_bug.cgi?id=176208
2651
2652         Reviewed by Myles Maxfield.
2653         
2654         Previously, if the Rewriter encountered a FunctionDef, StructType, NativeType, etc., then it
2655         would either crash or try to rewrite them. That's unfortunate because we use the Rewriter to
2656         rewrite struct and function bodies. If a function calls another function, then rewriting the
2657         caller should not mean also rewriting the callee. Previously we "fixed" this by religiously
2658         wrapping references to types with TypeDef and doing other such hacks. But that's subtly wrong.
2659         It only worked because Rewriter wasn't rewriting TypeRef.type. I think that Rewriter has to
2660         rewrite that in the long run because it may refer to another TypeRef, and it may be an
2661         instantiation that is using types that themselves need to be rewritten.
2662
2663         * WebGPUShadingLanguageRI/Checker.js:
2664         (Checker.prototype.visitProtocolDecl.set throw):
2665         * WebGPUShadingLanguageRI/NullType.js:
2666         (NullType):
2667         * WebGPUShadingLanguageRI/Rewriter.js:
2668         (Rewriter.prototype.visitFuncDef):
2669         (Rewriter.prototype.visitNativeFunc):
2670         (Rewriter.prototype.visitNativeFuncInstance):
2671         (Rewriter.prototype.visitNativeType):
2672         (Rewriter.prototype.visitTypeDef):
2673         (Rewriter.prototype.visitStructType):
2674         (Rewriter.prototype.visitTypeVariable):
2675         (Rewriter.prototype.visitConstexprTypeParameter):
2676         (Rewriter.prototype.visitNativeTypeInstance):
2677         (Rewriter.prototype.visitTypeRef):
2678         * WebGPUShadingLanguageRI/Visitor.js:
2679         (Visitor.prototype.visitNativeTypeInstance):
2680
2681 2017-09-01  Alex Christensen  <achristensen@webkit.org>
2682
2683         Disable ObjC WebGL policy SPI on iOS
2684         https://bugs.webkit.org/show_bug.cgi?id=176233
2685
2686         Reviewed by Tim Horton.
2687
2688         * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm:
2689
2690 2017-08-31  Carlos Garcia Campos  <cgarcia@igalia.com>
2691
2692         [GTK] Improve the way unit test are run and the results reported
2693         https://bugs.webkit.org/show_bug.cgi?id=176104
2694
2695         Reviewed by Carlos Alberto Lopez Perez.
2696
2697         There are several issues with the way unit tests are run by run-gtk-tests and also with the way results are
2698         reported:
2699
2700          - The results summary only mentions the test binaries, not the actual test cases, so you always have to scroll
2701            up to find the actual test cases failing.
2702          - The number of reported failures is the number of test binaries that failed, so if a new test case fails for
2703            the same binary in a new revision, we won't notice it just looking at the number of failures.
2704          - We show detailed information about skipped test in the results summary, which is just noise.
2705          - In the case of glib tests, when a test case times out, we finish the test suite, instead of continuing with the
2706            rest of the test cases like we do for normal failures or crashes. If a new test case fails after a test case that
2707            timed out we will not notice it until we fix or skip the test cases timing out.
2708          - In the case of glib tests, the timeout is applied to the whole suite, instead of per test case, we have a hack
2709            to make it longer only for that. It has worked so far, but it doesn't scale, and it's an ugly hack.
2710          - It's not currently possible to detect flaky tests, because again, we know the binaries/suites that failed but
2711            not the actual test cases.
2712
2713         This patch fixes all these issues and makes it possible to add support for flaky tests in a follow up patch.
2714
2715         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
2716         (RunGtkAPITests.commandComplete): Update the RunGtkAPITests step to parse the new output.
2717         * Scripts/run-gtk-tests:
2718         (TestRunner._start_timeout): Helper to start the timeout if needed.
2719         (TestRunner._start_timeout._alarm_handler): Raise timeout exception.
2720         (TestRunner._stop_timeout): Helper to stop the timeout if needed.
2721         (TestRunner._waitpid): Merged waitpid and return_code_from_exit_status.
2722         (TestRunner._run_test_glib): Do not double the timeout anymore, we now start/stop the timeout for every test
2723         case. Return a dictionary where keys are test cases and values the results only in case of failures.
2724         (TestRunner._run_test_glib.parse_line): Update the parser to also detect test cases and the results.
2725         (TestRunner._run_test_glib.parse_line.set_test_result): Helper to set the result of a test case.
2726         (TestRunner._run_google_test): Return a dictionary where key is the test case and value is the result only in
2727         case of failure.
2728         (TestRunner._run_google_test_suite): Updated now that _run_google_test returns a dictionary.
2729         (TestRunner.run_tests): Handle the results dictionary and show the results with information about test cases
2730         failing and grouped by test binaries.
2731
2732 2017-08-31  Filip Pizlo  <fpizlo@apple.com>
2733
2734         WSL should support loading from arrays
2735         https://bugs.webkit.org/show_bug.cgi?id=176207
2736
2737         Reviewed by Saam Barati.
2738         
2739         Getting a test that loads from arrays to work required doing a lot of things:
2740         
2741         - a[i] now parses to ^(operator\[](a, i)).
2742         - added operator\[] for four array reference types.
2743         - to make thread|threadgroup|device T[] work, you need T:primitive.
2744         - so this adds the magical primitive protocol.
2745         
2746         This required a little bit of rejuggling in the name resolver and type checker. The main thing
2747         is that to prevent the rewriter from copying the types referenced by some function, you need to
2748         make sure that when you add a reference to a type, you wrap it in a TypeRef. This doesn't
2749         completely feel right, but I'm sure we'll figure out the balance eventually. See bug 176208.
2750
2751         * WebGPUShadingLanguageRI/All.js:
2752         * WebGPUShadingLanguageRI/Checker.js:
2753         (Checker.prototype.visitProtocolDecl.set throw):
2754         * WebGPUShadingLanguageRI/EArrayRef.js: Added.
2755         (EArrayRef):
2756         (EArrayRef.prototype.get ptr):
2757         (EArrayRef.prototype.get length):
2758         (EArrayRef.prototype.toString):
2759         * WebGPUShadingLanguageRI/EPtr.js:
2760         (EPtr.prototype.plus):
2761         (EPtr.prototype.toString):
2762         (EPtr):
2763         * WebGPUShadingLanguageRI/Evaluator.js:
2764         (Evaluator.prototype.visitUintLiteral):
2765         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2766         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc):
2767         (FuncInstantiator.prototype.getUnique.Instantiate):
2768         (FuncInstantiator.prototype.getUnique):
2769         (FuncInstantiator):
2770         * WebGPUShadingLanguageRI/Intrinsics.js:
2771         (Intrinsics):
2772         * WebGPUShadingLanguageRI/Lexer.js:
2773         (Lexer.prototype.next):
2774         (Lexer):
2775         * WebGPUShadingLanguageRI/NameContext.js:
2776         (NameContext.prototype.recognizeIntrinsics):
2777         * WebGPUShadingLanguageRI/NameResolver.js:
2778         (NameResolver.prototype.visitProtocolRef):
2779         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
2780         (NativeFuncInstance.prototype.get isNative):
2781         * WebGPUShadingLanguageRI/Parse.js:
2782         (parseTerm):
2783         (parseTypeDef):
2784         (parseNative):
2785         (parsePossibleSuffix):
2786         (parse):
2787         * WebGPUShadingLanguageRI/ProtocolDecl.js:
2788         (ProtocolDecl):
2789         * WebGPUShadingLanguageRI/ProtocolRef.js:
2790         (ProtocolRef.prototype.get isPrimitive):
2791         (ProtocolRef):
2792         * WebGPUShadingLanguageRI/PtrType.js:
2793         (PtrType.prototype.populateDefaultValue): Deleted.
2794         * WebGPUShadingLanguageRI/ReferenceType.js:
2795         (ReferenceType.prototype.populateDefaultValue):
2796         (ReferenceType):
2797         * WebGPUShadingLanguageRI/Rewriter.js:
2798         (Rewriter.prototype.visitUintLiteral):
2799         (Rewriter.prototype.visitFunc): Deleted.
2800         (Rewriter.prototype.visitTypeVariable): Deleted.
2801         (Rewriter.prototype.visitConstexprTypeParameter): Deleted.
2802         * WebGPUShadingLanguageRI/StandardLibrary.js:
2803         * WebGPUShadingLanguageRI/Test.js:
2804         (TEST_threadArrayLoad):
2805         (TEST_deviceArrayLoad):
2806         * WebGPUShadingLanguageRI/TypeRef.js:
2807         (TypeRef.prototype.get instantiatedType):
2808         * WebGPUShadingLanguageRI/TypeVariable.js:
2809         (TypeVariable.prototype.toString):
2810         (TypeVariable):
2811         * WebGPUShadingLanguageRI/UintLiteral.js: Added.
2812         (UintLiteral):
2813         (UintLiteral.prototype.get value):
2814         (UintLiteral.prototype.get isConstexpr):
2815         (UintLiteral.prototype.toString):
2816         * WebGPUShadingLanguageRI/Visitor.js:
2817         (Visitor.prototype.visitNativeFuncInstance):
2818         (Visitor.prototype.visitTypeVariable):
2819         (Visitor.prototype.visitPtrType):
2820         (Visitor.prototype.visitArrayRefType):
2821         (Visitor.prototype.visitUintLiteral):
2822         * WebGPUShadingLanguageRI/WTrapError.js: Added.
2823         (WTrapError):
2824
2825 2017-08-31  Alex Christensen  <achristensen@webkit.org>
2826
2827         Add WKUIDelegatePrivate equivalent of WKPageUIClient's isPlayingAudioDidChange
2828         https://bugs.webkit.org/show_bug.cgi?id=176203
2829         <rdar://problem/29270035>
2830
2831         Reviewed by Tim Horton.
2832
2833         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2834         (-[MediaDelegate _webView:isPlayingMediaDidChange:]):
2835         (-[MediaDelegate webView:didFinishNavigation:]):
2836         (TEST):
2837
2838 2017-08-31  Alex Christensen  <achristensen@webkit.org>
2839
2840         Add ObjC SPI corresponding to WKPageLoaderClient's webGLLoadPolicy and resolveWebGLLoadPolicy
2841         https://bugs.webkit.org/show_bug.cgi?id=175779
2842         <rdar://problem/22367975>
2843
2844         Reviewed by Tim Horton.
2845
2846         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2847         * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm: Added.
2848         (-[WebGLTestDelegate webView:startURLSchemeTask:]):
2849         (-[WebGLTestDelegate webView:stopURLSchemeTask:]):
2850         (-[WebGLTestDelegate _webView:webGLLoadPolicyForURL:decisionHandler:]):
2851         (-[WebGLTestDelegate _webView:resolveWebGLLoadPolicyForURL:decisionHandler:]):
2852         (-[WebGLTestDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2853         (urlsEqual):
2854         (runTest):
2855         (TEST):
2856
2857 2017-08-31  Don Olmstead  <don.olmstead@sony.com>
2858
2859         [CMake] Make USE_CF conditional within Windows
2860         https://bugs.webkit.org/show_bug.cgi?id=176173
2861
2862         Reviewed by Alex Christensen.
2863
2864         * DumpRenderTree/config.h:
2865         * MiniBrowser/win/CMakeLists.txt:
2866         * MiniBrowser/win/stdafx.h:
2867         * TestWebKitAPI/PlatformWin.cmake:
2868
2869 2017-08-31  Filip Pizlo  <fpizlo@apple.com>
2870
2871         WSL should support makeptr (\)
2872         https://bugs.webkit.org/show_bug.cgi?id=176197
2873
2874         Reviewed by Saam Barati.
2875         
2876         This required introducing some sanity about how pointers are carried around in the evaluator.
2877         It turns out that we need to be careful about when a pointer to an rvalue is dereferenced. It
2878         should be dereferenced basically immediately. If it cannot be, then we need to snapshot the
2879         value. To do that, we need to know the types of things in a few more places. That's what this
2880         change accomplishes.
2881
2882         * WebGPUShadingLanguageRI/All.js:
2883         * WebGPUShadingLanguageRI/CallFunction.js:
2884         (callFunction):
2885         * WebGPUShadingLanguageRI/Checker.js:
2886         (Checker.prototype.visitProtocolDecl.set throw):
2887         * WebGPUShadingLanguageRI/DereferenceExpression.js:
2888         (DereferenceExpression.prototype.get isLValue):
2889         * WebGPUShadingLanguageRI/Evaluator.js:
2890         (Evaluator.prototype._snapshot):
2891         (Evaluator.prototype.runBody):
2892         (Evaluator.prototype.visitFunctionLikeBlock):
2893         (Evaluator.prototype.visitDereferenceExpression):
2894         (Evaluator.prototype.visitMakePtrExpression):
2895         (Evaluator.prototype.visitCommaExpression):
2896         (Evaluator.prototype.visitCallExpression):
2897         (Evaluator):
2898         (Evaluator.prototype._dereference): Deleted.
2899         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2900         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
2901         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc):
2902         (FuncInstantiator.prototype.getUnique.Instantiate):
2903         (FuncInstantiator.prototype.getUnique):
2904         (FuncInstantiator):
2905         * WebGPUShadingLanguageRI/FunctionLikeBlock.js:
2906         (FunctionLikeBlock):
2907         (FunctionLikeBlock.prototype.get returnType):
2908         (FunctionLikeBlock.prototype.toString):
2909         * WebGPUShadingLanguageRI/Inliner.js:
2910         (Inliner.prototype.visitCallExpression):
2911         (Inliner):
2912         * WebGPUShadingLanguageRI/MakePtrExpression.js: Added.
2913         (MakePtrExpression):
2914         (MakePtrExpression.prototype.get lValue):
2915         (MakePtrExpression.prototype.toString):
2916         * WebGPUShadingLanguageRI/NativeFuncInstance.js: Added.
2917         (NativeFuncInstance):
2918         (NativeFuncInstance.prototype.get func):
2919         (NativeFuncInstance.prototype.toString):
2920         * WebGPUShadingLanguageRI/Rewriter.js:
2921         (Rewriter.prototype.visitMakePtrExpression):
2922         (Rewriter.prototype.visitCallExpression):
2923         * WebGPUShadingLanguageRI/Test.js:
2924         (TEST_dereferenceStore):
2925         (TEST_simpleMakePtr):
2926         * WebGPUShadingLanguageRI/Value.js:
2927         (Value.prototype.get isLValue):
2928         (Value):
2929         * WebGPUShadingLanguageRI/VariableRef.js:
2930         (VariableRef.prototype.get isLValue):
2931         (VariableRef.prototype.get addressSpace):
2932         * WebGPUShadingLanguageRI/Visitor.js:
2933         (Visitor.prototype.visitMakePtrExpression):
2934         (Visitor.prototype.visitCallExpression):
2935
2936 2017-08-31  Ryan Haddad  <ryanhaddad@apple.com>
2937
2938         Unreviewed, rolling out r221445.
2939
2940         This change broke Sierra Release builds.
2941
2942         Reverted changeset:
2943
2944         "Switch HTMLMediaElement to release logging"
2945         https://bugs.webkit.org/show_bug.cgi?id=176065
2946         http://trac.webkit.org/changeset/221445
2947
2948 2017-08-31  Filip Pizlo  <fpizlo@apple.com>
2949
2950         WSL should support dereference (^)
2951         https://bugs.webkit.org/show_bug.cgi?id=176192
2952
2953         Reviewed by Myles Maxfield.
2954         
2955         This implements DereferenceExpression.
2956         
2957         It also renames Evaluator.prototype.visitFunctionBody, because that name confusingly implies
2958         that there is a class named FunctionBody. It's now called runBody.
2959         
2960         I made the check to see if a type is a pointer type be the isPtr method, so that we can have
2961         other pointer types that are implemented via something other than PtrType. We might want it if
2962         for example we wanted a pointer type that is generic over address space.
2963
2964         * WebGPUShadingLanguageRI/All.js:
2965         * WebGPUShadingLanguageRI/CallFunction.js:
2966         (callFunction):
2967         * WebGPUShadingLanguageRI/Checker.js:
2968         (Checker.prototype.visitProtocolDecl.set throw):
2969         * WebGPUShadingLanguageRI/DereferenceExpression.js: Added.
2970         (DereferenceExpression):
2971         (DereferenceExpression.prototype.get ptr):
2972         (DereferenceExpression.prototype.toString):
2973         * WebGPUShadingLanguageRI/Evaluator.js:
2974         (Evaluator.prototype.visitFunctionLikeBlock):
2975         (Evaluator.prototype._dereference):
2976         (Evaluator.prototype.visitDereferenceExpression):
2977         (Evaluator.prototype.visitFunctionBody): Deleted.
2978         * WebGPUShadingLanguageRI/PtrType.js:
2979         (PtrType.prototype.get isPtr):
2980         (PtrType.prototype.populateDefaultValue):
2981         * WebGPUShadingLanguageRI/Rewriter.js:
2982         (Rewriter.prototype.visitAssignment):
2983         (Rewriter.prototype.visitDereferenceExpression):
2984         * WebGPUShadingLanguageRI/Test.js:
2985         (TEST_simpleDereference):
2986         * WebGPUShadingLanguageRI/Type.js:
2987         (Type.prototype.get isPtr):
2988         * WebGPUShadingLanguageRI/Visitor.js:
2989         (Visitor.prototype.visitDereferenceExpression):
2990
2991 2017-08-31  Filip Pizlo  <fpizlo@apple.com>
2992
2993         There should only be one callFunction API in WSL
2994         https://bugs.webkit.org/show_bug.cgi?id=176189
2995
2996         Reviewed by Saam Barati.
2997         
2998         This removes the need for callFunctionByRef, which was weird. It's now the case the TypedValue
2999         is always a tuple of type and ePtr, and TypedValue has a super simple API for boxing and
3000         unboxing single-cell values like ints.
3001
3002         * WebGPUShadingLanguageRI/CallFunction.js:
3003         (callFunction):
3004         (callFunctionByRef): Deleted.
3005         * WebGPUShadingLanguageRI/Test.js:
3006         (makeInt):
3007         * WebGPUShadingLanguageRI/TypedValue.js:
3008         (TypedValue):
3009         (TypedValue.prototype.get type):
3010         (TypedValue.prototype.get ePtr):
3011         (TypedValue.box):
3012         (TypedValue.prototype.get value):
3013         (TypedValue.prototype.toString):
3014
3015 2017-08-31  Filip Pizlo  <fpizlo@apple.com>
3016
3017         WSL EPtr does not need to carry around the type
3018         https://bugs.webkit.org/show_bug.cgi?id=176188
3019
3020         Reviewed by Saam Barati.
3021         
3022         To validate that the interpreter is modeling a statically typed execution environment, it's
3023         really best if values don't know their types at all. A pointer is just a pointer (i.e a buffer
3024         and offset in our world), and it's the job of the AST node that uses it to figure out what its
3025         type should be.
3026         
3027         I think this makes the code simpler overall.
3028
3029         * WebGPUShadingLanguageRI/All.js:
3030         * WebGPUShadingLanguageRI/CallFunction.js:
3031         (callFunctionByRef):
3032         (callFunction):
3033         * WebGPUShadingLanguageRI/Checker.js:
3034         (Checker.prototype.visitProtocolDecl.set throw):
3035         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3036         (EBufferBuilder.prototype._createEPtr):
3037         * WebGPUShadingLanguageRI/EPtr.js:
3038         (EPtr):
3039         (EPtr.box):
3040         (EPtr.prototype.copyFrom):
3041         (EPtr.prototype.toString):
3042         * WebGPUShadingLanguageRI/EValue.js: Removed.
3043         * WebGPUShadingLanguageRI/Evaluator.js:
3044         (Evaluator.prototype.visitFunctionLikeBlock):
3045         (Evaluator.prototype.visitVariableDecl):
3046         (Evaluator.prototype.visitAssignment):
3047         (Evaluator.prototype.visitIntLiteral):
3048         * WebGPUShadingLanguageRI/Intrinsics.js:
3049         (Intrinsics):
3050         * WebGPUShadingLanguageRI/Rewriter.js:
3051         (Rewriter.prototype.visitAssignment):
3052         * WebGPUShadingLanguageRI/StructType.js:
3053         (StructType.prototype.instantiate):
3054         * WebGPUShadingLanguageRI/Test.js:
3055         (checkInt):
3056
3057 2017-08-31  Filip Pizlo  <fpizlo@apple.com>
3058
3059         WSL doesn't need to wrap primitives like ints and floats in specialized classes like EInt and EFloat
3060         https://bugs.webkit.org/show_bug.cgi?id=176184
3061
3062         Reviewed by Saam Barati.
3063         
3064         The only use for EInt and EFloat was that users of the interpreter want to be able to reason
3065         about values that know their type. But for the actual interpreter, it makes most sense for
3066         EBuffer to hold values directly - for example, ints in the case of values of type int. Then,
3067         all of the logic of doing math on those things can be implemented in Intrinsics.js.
3068         
3069         So, this removes EInt and EFloat but introduces a new TypedValue class that is used only on the
3070         boundary of the interpreter. You can either use the interpreter by speaking its internal
3071         language (EPtr to an EBuffer that has the values) or by using the simple API (which uses
3072         TypedValue as a trade-off between power and convenience).
3073
3074         * WebGPUShadingLanguageRI/All.js:
3075         * WebGPUShadingLanguageRI/CallFunction.js:
3076         (callFunction):
3077         * WebGPUShadingLanguageRI/EFloat.js: Removed.
3078         * WebGPUShadingLanguageRI/EInt.js: Removed.
3079         * WebGPUShadingLanguageRI/EPtr.js:
3080         (EPtr.box):
3081         * WebGPUShadingLanguageRI/Evaluator.js:
3082         (Evaluator.prototype.visitIntLiteral):
3083         * WebGPUShadingLanguageRI/Intrinsics.js:
3084         (Intrinsics):
3085         * WebGPUShadingLanguageRI/Test.js:
3086         (makeInt):
3087         (checkInt):
3088         (TEST_add1):
3089         (TEST_simpleGeneric):
3090         (TEST_simpleAssignment):
3091         (TEST_simpleDefault):
3092         * WebGPUShadingLanguageRI/TypedValue.js: Added.
3093         (TypedValue):
3094         (TypedValue.prototype.toString):
3095
3096 2017-08-31  David Quesada  <david_quesada@apple.com>
3097
3098         WKNavigationDelegatePrivate client redirect SPI needs to be able to detect redirects scheduled before the document finishes loading
3099         https://bugs.webkit.org/show_bug.cgi?id=176128
3100         rdar://problem/34068476
3101
3102         Reviewed by Brady Eidson.
3103
3104         Removed API test for the deleted WKNavigationDelegatePrivate method,
3105         and added two new tests for the two new methods.
3106
3107         * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
3108         (-[ClientRedirectNavigationDelegate _webView:willPerformClientRedirectToURL:delay:]):
3109         (-[ClientRedirectNavigationDelegate _webViewDidCancelClientRedirect:]):
3110         (-[ClientRedirectNavigationDelegate webView:didFinishNavigation:]):
3111         (TEST):
3112
3113 2017-08-31  Filip Pizlo  <fpizlo@apple.com>
3114
3115         WSL should handle variable assignments and variable declarations
3116         https://bugs.webkit.org/show_bug.cgi?id=176180
3117
3118         Reviewed by Saam Barati.
3119         
3120         Just fills in VariableDecl and Assignment logic so that we can test variables.
3121
3122         * WebGPUShadingLanguageRI/Checker.js:
3123         (Checker.prototype.visitProtocolDecl.set throw):
3124         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3125         (EBufferBuilder.prototype._createEPtrForNode):
3126         (EBufferBuilder.prototype.visitFuncParameter):
3127         (EBufferBuilder.prototype.visitVariableDecl):
3128         (EBufferBuilder):
3129         * WebGPUShadingLanguageRI/Evaluator.js:
3130         (Evaluator.prototype.visitVariableDecl):
3131         (Evaluator.prototype.visitAssignment):
3132         * WebGPUShadingLanguageRI/NameResolver.js:
3133         (NameResolver.prototype.visitVariableDecl):
3134         * WebGPUShadingLanguageRI/Rewriter.js:
3135         (Rewriter.prototype.visitFuncParameter):
3136         (Rewriter.prototype.visitVariableDecl):
3137         * WebGPUShadingLanguageRI/Test.js:
3138         (makeInt):
3139         (TEST_add1):
3140         (TEST_simpleGeneric):
3141         (TEST_simpleAssignment):
3142         (TEST_simpleDefault):
3143         * WebGPUShadingLanguageRI/Visitor.js:
3144         (Visitor.prototype.visitVariableDecl):
3145
3146 2017-08-31  Chris Dumez  <cdumez@apple.com>
3147
3148         getFileMetadata() does not work as expected for symbolic links
3149         https://bugs.webkit.org/show_bug.cgi?id=176143
3150
3151         Reviewed by Andreas Kling.
3152
3153         Add API test coverage.
3154
3155         * TestWebKitAPI/Tests/WebCore/FileSystem.cpp:
3156         (TestWebKitAPI::TEST_F):
3157
3158 2017-08-31  Filip Pizlo  <fpizlo@apple.com>
3159
3160         WSL parser should pass the token as the origin to the AST
3161         https://bugs.webkit.org/show_bug.cgi?id=176177
3162
3163         Reviewed by Keith Miller.
3164         
3165         Parse.js was sometimes passing token.origin as the origin, but that's just the filename
3166         component of the origin. This fixes the problem and adds a test. The test previously failed
3167         because instead of reporting the origin of the type error as "<test>:1", it reported undefined.
3168
3169         * WebGPUShadingLanguageRI/Parse.js:
3170         (parseProtocolRef):
3171         (consumeEndOfTypeArgs):
3172         (parseTypeParameters):
3173         (parseTerm):
3174         (parseTypeArguments):
3175         (parseType):
3176         (parseTypeDef):
3177         (parseNative):
3178         (parseLeftOperatorCall):
3179         (parsePossibleSuffix):
3180         (parsePossiblePrefix):
3181         (parsePossibleRelationalEquality):
3182         (parseLeftLogicalExpression):
3183         (parsePossibleTernaryConditional):
3184         (parsePossibleAssignment):
3185         (genericParseCommaExpression):
3186         (parseReturn):
3187         (parseVariableDecls):
3188         (parseBlock):
3189         * WebGPUShadingLanguageRI/Test.js:
3190         (checkFail):
3191         (TEST_nameResolutionFailure):
3192
3193 2017-08-31  Keith Miller  <keith_miller@apple.com>
3194
3195         Add a filter argument to WSL test suite.
3196         https://bugs.webkit.org/show_bug.cgi?id=176176
3197
3198         Reviewed by Filip Pizlo.
3199
3200         * WebGPUShadingLanguageRI/Test.js:
3201         (this.string_appeared_here.i.switch):
3202         (let.s.in.this.s.startsWith.string_appeared_here.s.match):
3203         (let.s.in.this.s.startsWith): Deleted.
3204
3205 2017-08-30  Filip Pizlo  <fpizlo@apple.com>
3206
3207         WSL should be able to run a program that uses generics
3208         https://bugs.webkit.org/show_bug.cgi?id=176152
3209
3210         Reviewed by Keith Miller.
3211         
3212         This fixes the WSL parser and type checker to the point that we can:
3213         
3214         - Parse a function call!
3215         - Type check a generic function call with an inferred type parameter.
3216         - Instantiate a generic function.
3217         - Inline a function call.
3218         - Evaluate an inlined function call.
3219         
3220         This also changes the test suite so that it's a little nicer to add new tests. Functions whose
3221         names start with "TEST_" are tests.
3222
3223         * WebGPUShadingLanguageRI/Checker.js:
3224         (Checker.prototype.visitProtocolDecl.set throw):
3225         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3226         (EBufferBuilder.prototype.visitFuncParameter):
3227         (EBufferBuilder):
3228         * WebGPUShadingLanguageRI/Evaluator.js:
3229         (Evaluator.prototype.visitFunctionLikeBlock):
3230         * WebGPUShadingLanguageRI/FuncDef.js:
3231         (FuncDef.prototype.toString):
3232         (FuncDef):
3233         * WebGPUShadingLanguageRI/FuncInstantiator.js:
3234         (FuncInstantiator.prototype.getUnique):
3235         (FuncInstantiator):
3236         * WebGPUShadingLanguageRI/Inliner.js:
3237         (Inliner.prototype.visitCallExpression):
3238         (Inliner):
3239         * WebGPUShadingLanguageRI/Lexer.js:
3240         (Lexer):
3241         * WebGPUShadingLanguageRI/NameContext.js:
3242         (NameContext):
3243         (NameContext.prototype.add):
3244         (NameContext.prototype.get let):
3245         (NameContext.prototype.defineAll):
3246         (NameContext.get intrinsics): Deleted.
3247         (NameContext.set program): Deleted.
3248         (NameContext.get program): Deleted.
3249         * WebGPUShadingLanguageRI/NameResolver.js:
3250         (NameResolver.prototype.visitProgram):
3251         * WebGPUShadingLanguageRI/Parse.js:
3252         (parseTerm):
3253         (parsePossibleSuffix):
3254         (genericParseCommaExpression):
3255         (parseReturn):
3256         * WebGPUShadingLanguageRI/Program.js:
3257         (Program.prototype.resolveFuncOverload):
3258         * WebGPUShadingLanguageRI/ProtocolDecl.js:
3259         (ProtocolDecl.prototype.inherits):
3260         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
3261         (resolveOverloadImpl):
3262         * WebGPUShadingLanguageRI/Rewriter.js:
3263         (Rewriter.prototype.visitFuncParameter):
3264         (Rewriter.prototype.visitCallExpression):
3265         (Rewriter.prototype._map): Deleted.
3266         * WebGPUShadingLanguageRI/Test.js:
3267         (checkInt):
3268         (TEST_add1):
3269         (TEST_simpleGeneric):
3270         (let.s.in.this.s.startsWith):
3271         (load): Deleted.
3272         * WebGPUShadingLanguageRI/TypeVariable.js:
3273         (TypeVariable.prototype.typeVariableUnify):
3274         * WebGPUShadingLanguageRI/UnificationContext.js:
3275         (UnificationContext.prototype.union):
3276
3277 2017-08-30  Alex Christensen  <achristensen@webkit.org>
3278
3279         Add WKUIDelegatePrivate equivalent of WKPageUIClient's didClickAutoFillButton
3280         https://bugs.webkit.org/show_bug.cgi?id=176139
3281         <rdar://problem/29270035>
3282
3283         Reviewed by Tim Horton.
3284
3285         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3286         * TestWebKitAPI/Tests/WebKitCocoa/ClickAutoFillButton.mm: Added.
3287         (didClickAutoFillButton):
3288         (-[ClickAutoFillButton webProcessPlugIn:didCreateBrowserContextController:]):
3289         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3290         (-[AutoFillDelegate _webView:didClickAutoFillButtonWithUserInfo:]):
3291         (-[AutoFillDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3292         (TEST):
3293
3294 2017-08-31  Carlos Garcia Campos  <cgarcia@igalia.com>
3295
3296         [GTK] Several InputMethodFilter tests are failing and crashing
3297         https://bugs.webkit.org/show_bug.cgi?id=176158
3298
3299         Reviewed by Carlos Alberto Lopez Perez.
3300
3301         This started to happen after the GTK+ upgrade from 3.16 to 3.22 in the internal jhbuild. Now, GtkIMContext
3302         doesn't emit the preedit signals when using the compose key (GDK_KEY_Multi_key). The composition results are
3303         committed directly when they are ready. The test InputMethodFilterComposeKey was failing because it expected
3304         preedit events that no longer happen. Tests InputMethodFilterContextFocusOutDuringOngoingComposition and
3305         InputMethodFilterContextMouseClickDuringOngoingComposition were crashing because InputMethodFilter::confirmCurrentComposition()
3306         accessed the WebPageProxy unconditionally, that is not available in testing mode. I wonder how this ever
3307         worked. Other tests results have also been updated because logHandleKeyboardEventWithCompositionResultsForTesting()
3308         now uses hexadecimal numbers for the key codes, for consistency with all other event logs.
3309
3310         * TestWebKitAPI/Tests/WebKit/gtk/InputMethodFilter.cpp:
3311         (TestWebKitAPI::TestInputMethodFilter::TestInputMethodFilter):
3312         (TestWebKitAPI::TEST):
3313         (TestWebKitAPI::verifyCanceledComposition): Deleted.
3314
3315 2017-08-31  Carlos Garcia Campos  <cgarcia@igalia.com>
3316
3317         [GTK][Wayland] Crash when gdk_keymap_get_entries_for_keyval returns TRUE but n_keys=0
3318         https://bugs.webkit.org/show_bug.cgi?id=176154
3319
3320         Reviewed by Carlos Alberto Lopez Perez.
3321
3322         Also check the n_keys > 0 when using gdk_keymap_get_entries_for_keyval().
3323
3324         * TestWebKitAPI/Tests/WebKit/gtk/InputMethodFilter.cpp:
3325         (TestWebKitAPI::TestInputMethodFilter::sendKeyEventToFilter):
3326         * TestWebKitAPI/Tests/WebKitGtk/TestPrinting.cpp: Remove duplicated code and use WebViewTest::keyStroke instead.
3327         * TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:
3328         (WebViewTest::keyStroke):
3329         * TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:
3330         (TestWebKitAPI::doKeyStroke):
3331         * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
3332         (WTR::EventSenderProxy::keyDown):
3333
3334 2017-08-31  Carlos Garcia Campos  <cgarcia@igalia.com>
3335
3336         Unreviewed. Fix GTK+ test /webkit2/WebKitAutomationSession/request-session.
3337
3338         It fails when comparing the browser version if micro version is 0 (or if both micro and minor are 0 too).
3339
3340         * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Use a helper method to convert major, minor, micro
3341         numbers into a version string, using the same approach as WebKitAutomationSession.
3342
3343 2017-08-30  Dan Bernstein  <mitz@apple.com>
3344
3345         [iOS] REGRESSION (r218144) -[WKContentView targetForAction:withSender:] returns the content view for actions implemented only by the WKWebView, causing a crash
3346         https://bugs.webkit.org/show_bug.cgi?id=176077
3347         <rdar://problem/34145200>
3348
3349         Reviewed by Sam Weinig.
3350
3351         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3352         * TestWebKitAPI/Tests/WebKitCocoa/WKContentViewTargetForAction.mm: Added.
3353         (-[TestWKContentViewTargetForActionView testAction:]):
3354         (TEST):
3355         * TestWebKitAPI/ios/UIKitSPI.h:
3356
3357 2017-08-30  Carlos Alberto Lopez Perez  <clopez@igalia.com>
3358
3359         [GTK] install-dependencies script should install CUPS headers
3360         https://bugs.webkit.org/show_bug.cgi?id=176129
3361
3362         Reviewed by Michael Catanzaro.
3363         
3364         When building GTK+ on the JHBuild, it will enable the CUPS print
3365         backend if the CUPS headers are installed. Having a print backend
3366         on GTK+ is needed for the print-related API tests.
3367
3368         * gtk/install-dependencies:
3369
3370 2017-08-30  Filip Pizlo  <fpizlo@apple.com>
3371
3372         Rename ArrayLang to WebGPU Shading Language, or WSL for short, pronounced "whistle"
3373         https://bugs.webkit.org/show_bug.cgi?id=176117
3374
3375         Reviewed by Myles Maxfield.
3376         
3377         Renamed ArrayLangRI to WebGPUShadingLanguageRI.
3378         
3379         Renamed ALSyntaxError/ALTypeError to WSyntaxError/WTypeError.
3380         
3381         Renamed all references to "ArrayLang" in the code to "WSL".
3382
3383         * ArrayLangRI: Removed.
3384         * ArrayLangRI/ALSyntaxError.js: Removed.
3385         * ArrayLangRI/ALTypeError.js: Removed.
3386         * ArrayLangRI/AddressSpace.js: Removed.
3387         * ArrayLangRI/All.js: Removed.
3388         * ArrayLangRI/ArrayRefType.js: Removed.
3389         * ArrayLangRI/ArrayType.js: Removed.
3390         * ArrayLangRI/Assignment.js: Removed.
3391         * ArrayLangRI/Block.js: Removed.
3392         * ArrayLangRI/CallAssignment.js: Removed.
3393         * ArrayLangRI/CallExpression.js: Removed.
3394         * ArrayLangRI/CallFunction.js: Removed.
3395         * ArrayLangRI/Check.js: Removed.
3396         * ArrayLangRI/Checker.js: Removed.
3397         * ArrayLangRI/CommaExpression.js: Removed.
3398         * ArrayLangRI/ConstexprTypeParameter.js: Removed.
3399         * ArrayLangRI/EBuffer.js: Removed.
3400         * ArrayLangRI/EBufferBuilder.js: Removed.
3401         * ArrayLangRI/EFloat.js: Removed.
3402         * ArrayLangRI/EInt.js: Removed.
3403         * ArrayLangRI/EPtr.js: Removed.
3404         * ArrayLangRI/EValue.js: Removed.
3405         * ArrayLangRI/EvaluationCommon.js: Removed.
3406         * ArrayLangRI/Evaluator.js: Removed.
3407         * ArrayLangRI/Expression.js: Removed.
3408         * ArrayLangRI/Field.js: Removed.
3409         * ArrayLangRI/Func.js: Removed.
3410         * ArrayLangRI/FuncDef.js: Removed.
3411         * ArrayLangRI/FuncInstantiator.js: Removed.
3412         * ArrayLangRI/FuncParameter.js: Removed.
3413         * ArrayLangRI/FunctionLikeBlock.js: Removed.
3414         * ArrayLangRI/Inline.js: Removed.
3415         * ArrayLangRI/Inliner.js: Removed.
3416         * ArrayLangRI/InstantiateImmediates.js: Removed.
3417         * ArrayLangRI/IntLiteral.js: Removed.
3418         * ArrayLangRI/Intrinsics.js: Removed.
3419         * ArrayLangRI/Lexer.js: Removed.
3420         * ArrayLangRI/LexerToken.js: Removed.
3421         * ArrayLangRI/NameContext.js: Removed.
3422         * ArrayLangRI/NameResolver.js: Removed.
3423         * ArrayLangRI/NativeFunc.js: Removed.
3424         * ArrayLangRI/NativeType.js: Removed.
3425         * ArrayLangRI/NativeTypeInstance.js: Removed.
3426         * ArrayLangRI/Node.js: Removed.
3427         * ArrayLangRI/NullType.js: Removed.
3428         * ArrayLangRI/Parse.js: Removed.
3429         * ArrayLangRI/Prepare.js: Removed.
3430         * ArrayLangRI/Program.js: Removed.
3431         * ArrayLangRI/Protocol.js: Removed.
3432         * ArrayLangRI/ProtocolDecl.js: Removed.
3433         * ArrayLangRI/ProtocolRef.js: Removed.
3434         * ArrayLangRI/PtrType.js: Removed.
3435         * ArrayLangRI/ReferenceType.js: Removed.
3436         * ArrayLangRI/ResolveNames.js: Removed.
3437         * ArrayLangRI/ResolveOverloadImpl.js: Removed.
3438         * ArrayLangRI/ResolveTypeDefs.js: Removed.
3439         * ArrayLangRI/Return.js: Removed.
3440         * ArrayLangRI/ReturnException.js: Removed.
3441         * ArrayLangRI/Rewriter.js: Removed.
3442         * ArrayLangRI/StandardLibrary.js: Removed.
3443         * ArrayLangRI/StructType.js: Removed.
3444         * ArrayLangRI/Substitution.js: Removed.
3445         * ArrayLangRI/SuffixCallAssignment.js: Removed.
3446         * ArrayLangRI/Test.js: Removed.
3447         * ArrayLangRI/Type.js: Removed.
3448         * ArrayLangRI/TypeDef.js: Removed.
3449         * ArrayLangRI/TypeDefResolver.js: Removed.
3450         * ArrayLangRI/TypeOrVariableRef.js: Removed.
3451         * ArrayLangRI/TypeRef.js: Removed.
3452         * ArrayLangRI/TypeVariable.js: Removed.
3453         * ArrayLangRI/UnificationContext.js: Removed.
3454         * ArrayLangRI/Value.js: Removed.
3455         * ArrayLangRI/VariableDecl.js: Removed.
3456         * ArrayLangRI/VariableRef.js: Removed.
3457         * ArrayLangRI/VisitingSet.js: Removed.
3458         * ArrayLangRI/Visitor.js: Removed.
3459         * WebGPUShadingLanguageRI: Copied from Tools/ArrayLangRI.
3460         * WebGPUShadingLanguageRI/ALSyntaxError.js: Removed.
3461         * WebGPUShadingLanguageRI/ALTypeError.js: Removed.
3462         * WebGPUShadingLanguageRI/All.js:
3463         * WebGPUShadingLanguageRI/CallFunction.js:
3464         (callFunctionByRef):
3465         * WebGPUShadingLanguageRI/Checker.js:
3466         (Checker.prototype.visitProtocolDecl.set throw):
3467         * WebGPUShadingLanguageRI/Intrinsics.js:
3468         (Intrinsics.prototype.add):
3469         (Intrinsics):
3470         * WebGPUShadingLanguageRI/Lexer.js:
3471         (Lexer):
3472         * WebGPUShadingLanguageRI/NameContext.js:
3473         (NameContext.prototype.add):
3474         * WebGPUShadingLanguageRI/NameResolver.js:
3475         (NameResolver.prototype._resolveTypeArguments):
3476         (NameResolver.prototype.visitTypeRef):
3477         (NameResolver.prototype.visitVariableRef):
3478         * WebGPUShadingLanguageRI/Parse.js:
3479         * WebGPUShadingLanguageRI/StandardLibrary.js:
3480         * WebGPUShadingLanguageRI/StructType.js:
3481         (StructType.prototype.add):
3482         (StructType.prototype.instantiate):
3483         * WebGPUShadingLanguageRI/TypeDefResolver.js:
3484         (TypeDefResolver.prototype.visitTypeRef):
3485         (TypeDefResolver):
3486         * WebGPUShadingLanguageRI/VisitingSet.js:
3487         (VisitingSet.prototype.doVisit):
3488         (VisitingSet):
3489         * WebGPUShadingLanguageRI/WSyntaxError.js: Copied from Tools/ArrayLangRI/ALSyntaxError.js.
3490         (ALSyntaxError): Deleted.
3491         * WebGPUShadingLanguageRI/WTypeError.js: Copied from Tools/ArrayLangRI/ALTypeError.js.
3492         (ALTypeError): Deleted.
3493
3494 2017-08-30  Eric Carlson  <eric.carlson@apple.com>
3495
3496         Add Logger observer and helper class
3497         https://bugs.webkit.org/show_bug.cgi?id=176106
3498
3499         Reviewed by Andy Estes.
3500
3501         * TestWebKitAPI/Tests/WebCore/Logging.cpp:
3502         (TestWebKitAPI::LoggingTest::LoggingTest):
3503         (TestWebKitAPI::LoggingTest::Logger::create):
3504         (TestWebKitAPI::TEST_F):
3505         (TestWebKitAPI::LogObserver::log):
3506         (TestWebKitAPI::LogObserver::channel const):
3507
3508 2017-08-29  Filip Pizlo  <fpizlo@apple.com>
3509
3510         Initial reference implementation scaffolding for ArrayLang
3511         https://bugs.webkit.org/show_bug.cgi?id=175925
3512
3513         Reviewed by Myles Maxfield.
3514         
3515         This introduces a very rough scaffolding for an AST walk interpreter and type checker for an
3516         experimental shader language we are calling ArrayLang for now.
3517         
3518         The idea is to have a strong core type system that includes generics and memory-safe pointers
3519         and array references. Everything has deterministic semantics right up to the limit of what is
3520         portably possible.
3521         
3522         This language will support generics. This will be valid:
3523         
3524         protocol Addable { Addable operator+(Addable, Addable); }
3525         T add<T:Addable>(T a, T b) { return a + b; }
3526         
3527         This language will support pointers and array references. This will be valid:
3528         
3529         thread int^ foo() { int x; return \x; }
3530         
3531         Each variable behaves as if it was declared "static", with one copy per type instantiation.
3532         Functions cannot recurse and there is no stack.
3533         
3534         Currently, this just tests that the following function can be parsed, checked, and called:
3535         
3536         int foo(int x) { return x + 1; }
3537
3538         * ArrayLangRI: Added.
3539         * ArrayLangRI/ALSyntaxError.js: Added.
3540         (ALSyntaxError):
3541         * ArrayLangRI/ALTypeError.js: Added.
3542         (ALTypeError):
3543         * ArrayLangRI/AddressSpace.js: Added.
3544         (isAddressSpace):
3545         (validateAddressSpace):
3546         * ArrayLangRI/All.js: Added.
3547         * ArrayLangRI/ArrayRefType.js: Added.
3548         (ArrayRefType.prototype.unifyImpl):
3549         (ArrayRefType.prototype.toString):
3550         (ArrayRefType):
3551         * ArrayLangRI/ArrayType.js: Added.
3552         (ArrayType):
3553         (ArrayType.prototype.get origin):
3554         (ArrayType.prototype.get elementType):
3555         (ArrayType.prototype.get numElements):
3556         (ArrayType.prototype.get isPrimitive):
3557         (ArrayType.prototype.toString):
3558         (ArrayType.prototype.get size):
3559         (ArrayType.prototype.unifyImpl):
3560         * ArrayLangRI/Assignment.js: Added.
3561         (Assignment):
3562         (Assignment.prototype.get lhs):
3563         (Assignment.prototype.get rhs):
3564         (Assignment.prototype.toString):
3565         * ArrayLangRI/Block.js: Added.
3566         (Block):
3567         (Block.prototype.get origin):
3568         (Block.prototype.add):
3569         (Block.prototype.get statements):
3570         (Block.prototype.toString):
3571         * ArrayLangRI/CallAssignment.js: Added.
3572         (CallAssignment):
3573         (CallAssignment.prototype.get name):
3574         (CallAssignment.prototype.get lhs):
3575         (CallAssignment.prototype.get rhs):
3576         (CallAssignment.prototype.toString):
3577         * ArrayLangRI/CallExpression.js: Added.
3578         (CallExpression):
3579         (CallExpression.prototype.get name):
3580         (CallExpression.prototype.get typeArguments):
3581         (CallExpression.prototype.get argumentList):
3582         (CallExpression.prototype.toString):
3583         * ArrayLangRI/CallFunction.js: Added.
3584         (callFunctionByRef):
3585         (callFunction):
3586         * ArrayLangRI/Check.js: Added.
3587         (check):
3588         * ArrayLangRI/Checker.js: Added.
3589         (Checker):
3590         (Checker.prototype.visitProgram):
3591         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitTypeRef):
3592         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitVariableRef):
3593         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable):
3594         (Checker.prototype.visitProtocolDecl.set throw):
3595         * ArrayLangRI/CommaExpression.js: Added.
3596         (CommaExpression):
3597         (CommaExpression.prototype.get list):
3598         (CommaExpression.prototype.toString):
3599         * ArrayLangRI/ConstexprTypeParameter.js: Added.
3600         (ConstexprTypeParameter):
3601         (ConstexprTypeParameter.prototype.get name):
3602         (ConstexprTypeParameter.prototype.get type):
3603         (ConstexprTypeParameter.prototype.get isConstexpr):
3604         (ConstexprTypeParameter.prototype.get isUnifiable):
3605         (ConstexprTypeParameter.prototype.typeVariableUnify):
3606         (ConstexprTypeParameter.prototype.unifyImpl):
3607         (ConstexprTypeParameter.prototype.verifyAsArgument):
3608         (ConstexprTypeParameter.prototype.verifyAsParameter):
3609         (ConstexprTypeParameter.prototype.toString):
3610         * ArrayLangRI/EBuffer.js: Added.
3611         (EBuffer):
3612         (EBuffer.get index):
3613         * ArrayLangRI/EBufferBuilder.js: Added.
3614         (EBufferBuilder):
3615         (EBufferBuilder.prototype._createEPtr):
3616         (EBufferBuilder.prototype.visitFuncParameter):
3617         * ArrayLangRI/EFloat.js: Added.
3618         (EFloat):
3619         (EFloat.prototype.get value):
3620         (EFloat.prototype.add):
3621         (EFloat.prototype.toString):
3622         * ArrayLangRI/EInt.js: Added.
3623         (EInt):
3624         (EInt.prototype.get value):
3625         (EInt.prototype.add):
3626         (EInt.prototype.toString):
3627         * ArrayLangRI/EPtr.js: Added.
3628         (EPtr):
3629         (EPtr.box):
3630         (EPtr.prototype.get buffer):
3631         (EPtr.prototype.get offset):
3632         (EPtr.prototype.loadValue):
3633         (EPtr.prototype.copyFrom):
3634         (EPtr.prototype.toString):
3635         * ArrayLangRI/EValue.js: Added.
3636         (EValue):
3637         (EValue.prototype.get type):
3638         * ArrayLangRI/EvaluationCommon.js: Added.
3639         * ArrayLangRI/Evaluator.js: Added.
3640         (Evaluator):
3641         (Evaluator.prototype.visitFunctionBody):
3642         (Evaluator.prototype.visitFunctionLikeBlock):
3643         (Evaluator.prototype.visitReturn):
3644         (Evaluator.prototype.visitCommaExpression):
3645         (Evaluator.prototype.visitVariableRef):
3646         (Evaluator.prototype.visitIntLiteral):
3647         (Evaluator.prototype.visitCallExpression):
3648         * ArrayLangRI/Expression.js: Added.
3649         (Expression):
3650         (Expression.prototype.get origin):
3651         * ArrayLangRI/Field.js: Added.
3652         (Field):
3653         (Field.prototype.get origin):
3654         (Field.prototype.get name):
3655         (Field.prototype.get type):
3656         (Field.prototype.toString):
3657         * ArrayLangRI/Func.js: Added.
3658         (Func):
3659         (Func.prototype.get name):
3660         (Func.prototype.get returnType):
3661         (Func.prototype.get typeParameters):
3662         (Func.prototype.get parameters):
3663         (Func.prototype.get parameterTypes):
3664         (Func.prototype.get kind):
3665         (Func.prototype.toString):
3666         * ArrayLangRI/FuncDef.js: Added.
3667         (FuncDef):
3668         (FuncDef.prototype.get origin):
3669         (FuncDef.prototype.toString):
3670         * ArrayLangRI/FuncInstantiator.js: Added.
3671         (FuncInstantiator):
3672         (FuncInstantiator.prototype.getUnique):
3673         * ArrayLangRI/FuncParameter.js: Added.
3674         (FuncParameter):
3675         (FuncParameter.prototype.get origin):
3676         (FuncParameter.prototype.get name):
3677         (FuncParameter.prototype.get type):
3678         (FuncParameter.prototype.toString):
3679         * ArrayLangRI/FuncSignature.js: Added.
3680         * ArrayLangRI/FunctionLikeBlock.js: Added.
3681         (FunctionLikeBlock):
3682         (FunctionLikeBlock.prototype.get origin):
3683         (FunctionLikeBlock.prototype.get argumentList):
3684         (FunctionLikeBlock.prototype.get parameters):
3685         (FunctionLikeBlock.prototype.get body):
3686         (FunctionLikeBlock.prototype.toString):
3687         * ArrayLangRI/Inline.js: Added.
3688         (inline):
3689         (_inlineFunction):
3690         (resolveInlinedFunction):
3691         * ArrayLangRI/Inliner.js: Added.
3692         (Inliner):
3693         (Inliner.prototype.visitCallExpression):
3694         * ArrayLangRI/InstantiateImmediates.js: Added.
3695         (InstantiateImmediates.prototype.visitTypeRef):
3696         (InstantiateImmediates.prototype.visitReferenceType):
3697         (InstantiateImmediates.prototype.visitStructType):
3698         (InstantiateImmediates.prototype.visitNativeType):
3699         (InstantiateImmediates.prototype.visitTypeVariable):
3700         (InstantiateImmediates):
3701         * ArrayLangRI/IntLiteral.js: Added.
3702         (IntLiteral):
3703         (IntLiteral.prototype.get value):
3704         (IntLiteral.prototype.get isConstexpr):
3705         (IntLiteral.prototype.toString):
3706         * ArrayLangRI/Intrinsics.js: Added.
3707         (Intrinsics):
3708         (Intrinsics.prototype.add):
3709         * ArrayLangRI/Lexer.js: Added.
3710         (Lexer):
3711         (Lexer.prototype.get lineNumber):
3712         (Lexer.prototype.get origin):
3713         (Lexer.prototype.get originString):
3714         (Lexer.prototype.lineNumberForIndex):
3715         (Lexer.prototype.get state):
3716         (Lexer.prototype.set state):
3717         (Lexer.prototype.next):
3718         * ArrayLangRI/LexerToken.js: Added.
3719         (LexerToken):
3720         (LexerToken.prototype.get kind):
3721         (LexerToken.prototype.get text):
3722         (LexerToken.prototype.get origin):
3723         (LexerToken.prototype.get index):
3724         (LexerToken.prototype.get lineNumber):
3725         (LexerToken.prototype.get originString):
3726         (LexerToken.prototype.toString):
3727         * ArrayLangRI/NameContext.js: Added.
3728         (isWildcardKind):
3729         (NameContext):
3730         (NameContext.prototype.mapFor):
3731         (NameContext.prototype.add):
3732         (NameContext.get currentStatement):
3733         (NameContext.get intrinsics):
3734         (NameContext.set program):
3735         (NameContext.get program):
3736         (NameContext.prototype.get let):
3737         * ArrayLangRI/NameResolver.js: Added.
3738         (NameResolver):
3739         (NameResolver.prototype.visitProgram):
3740         (NameResolver.prototype._visitTypeParametersAndBuildNameContext):
3741         (NameResolver.prototype.visitFunc):
3742         (NameResolver.prototype.visitFuncDef):
3743         (NameResolver.prototype.visitBlock):
3744         (NameResolver.prototype.visitProtocolDecl):
3745         (NameResolver.prototype.visitTypeDef):
3746         (NameResolver.prototype.visitStructType):
3747         (NameResolver.prototype._resolveTypeArguments):
3748         (NameResolver.prototype.visitTypeRef):
3749         (NameResolver.prototype.visitReferenceType):
3750         (NameResolver.prototype.visitVariableRef):
3751         (NameResolver.prototype.visitReturn):
3752         (NameResolver.prototype.visitCallExpression):
3753         * ArrayLangRI/NativeFunc.js: Added.
3754         (NativeFunc):
3755         (NativeFunc.prototype.get origin):
3756         (NativeFunc.prototype.get isNative):
3757         (NativeFunc.prototype.toString):
3758         * ArrayLangRI/NativeType.js: Added.
3759         (NativeType):
3760         (NativeType.prototype.get origin):
3761         (NativeType.prototype.get name):
3762         (NativeType.prototype.get isPrimitive):
3763         (NativeType.prototype.get typeParameters):
3764         (NativeType.prototype.get isNative):
3765         (NativeType.prototype.instantiate):
3766         (NativeType.prototype.toString):
3767         * ArrayLangRI/NativeTypeInstance.js: Added.
3768         (NativeTypeInstance):
3769         (NativeTypeInstance.prototype.get type):
3770         (NativeTypeInstance.prototype.get typeArguments):
3771         (NativeTypeInstance.prototype.get isPrimitive):
3772         (NativeTypeInstance.prototype.get isNative):
3773         (NativeTypeInstance.prototype.unifyImpl):
3774         (NativeTypeInstance.prototype.toString):
3775         * ArrayLangRI/Node.js: Added.
3776         (Node.prototype.visit):
3777         (Node.unify):
3778         (Node.prototype.unifyImpl):
3779         (Node.prototype.typeVariableUnify):
3780         (Node.prototype.get unifyNode):
3781         (Node.prototype.get isUnifiable):
3782         (Node.prototype.get isNative):
3783         (Node.prototype.equals):
3784         (Node.prototype.substitute):
3785         (Node.prototype.substituteToUnification):
3786         (Node):
3787         * ArrayLangRI/NullType.js: Added.
3788         (NullType):
3789         * ArrayLangRI/Parse.js: Added.
3790         (genericConsume):
3791         (consume):
3792         (genericTest):
3793         (test):
3794         (tryConsumeKind):
3795         (parseProtocolRef):
3796         (consumeEndOfTypeArgs):
3797         (parseTypeParameters):
3798         (parseTerm):
3799         (parseConstexpr):
3800         (parseTypeArguments):
3801         (parseType.getAddressSpace):
3802         (parseType):
3803         (parseTypeDef):
3804         (parseNative):
3805         (genericParseLeft):
3806         (parseLeftOperatorCall):
3807         (parsePossibleSuffix):
3808         (parsePossiblePrefix):
3809         (parsePossibleProduct):
3810         (parsePossibleSum):
3811         (parsePossibleShift):
3812         (parsePossibleRelationalInequality):
3813         (parsePossibleRelationalEquality):
3814         (parsePossibleBitwiseXor):
3815         (parsePossibleBitwiseOr):
3816         (parseLeftLogicalExpression):
3817         (parsePossibleLogicalOr):
3818         (parsePossibleTernaryConditional):
3819         (parsePossibleAssignment):
3820         (parseAssignment):
3821         (parseEffectfulExpression):
3822         (genericParseCommaExpression):
3823         (parseCommaExpression):
3824         (parseExpression):
3825         (parseEffectfulStatement):
3826         (parseReturn):
3827         (parseVariableDecls):
3828         (parseStatement):
3829         (parseBlock):
3830         (parseParameter):
3831         (parseFuncName):
3832         (parseFuncDef):
3833         (parse):
3834         * ArrayLangRI/Prepare.js: Added.
3835         (prepare):
3836         * ArrayLangRI/Program.js: Added.
3837         (Program):
3838         (Program.prototype.get topLevelStatements):
3839         (Program.prototype.get functions):
3840         (Program.prototype.get types):
3841         (Program.prototype.get funcInstantiator):
3842         (Program.prototype.add):
3843         (Program.prototype.resolveFuncOverload):
3844         (Program.prototype.get nameContext):
3845         (Program.prototype.toString):
3846         * ArrayLangRI/Protocol.js: Added.
3847         (Protocol):
3848         (Protocol.prototype.get origin):
3849         (Protocol.prototype.get name):
3850         (Protocol.prototype.get kind):
3851         (Protocol.prototype.toString):
3852         * ArrayLangRI/ProtocolDecl.js: Added.
3853         (ProtocolDecl):
3854         (ProtocolDecl.prototype.addSignature):
3855         (ProtocolDecl.prototype.get signatures):
3856         (ProtocolDecl.prototype.signaturesByName):
3857         (ProtocolDecl.prototype.get typeVariable):
3858         (ProtocolDecl.prototype.signaturesByNameWithTypeVariable):
3859         (ProtocolDecl.prototype.inherits):
3860         (ProtocolDecl.prototype.hasHeir):
3861         (ProtocolDecl.prototype.toString):
3862         * ArrayLangRI/ProtocolRef.js: Added.
3863         (ProtocolRef):
3864         (ProtocolRef.prototype.inherits):
3865         (ProtocolRef.prototype.hasHeir):
3866         * ArrayLangRI/PtrType.js: Added.
3867         (PtrType.prototype.unifyImpl):
3868         (PtrType.prototype.toString):
3869         (PtrType):
3870         * ArrayLangRI/ReferenceType.js: Added.
3871         (ReferenceType):
3872         (ReferenceType.prototype.get origin):
3873         (ReferenceType.prototype.get addressSpace):
3874         (ReferenceType.prototype.get elementType):
3875         (ReferenceType.prototype.get isPrimitive):
3876         (ReferenceType.prototype.get size):
3877         * ArrayLangRI/ResolveNames.js: Added.
3878         (resolveNames):
3879         * ArrayLangRI/ResolveOverloadImpl.js: Added.
3880         (resolveOverloadImpl):
3881         * ArrayLangRI/ResolveTypeDefs.js: Added.
3882         (resolveTypeDefs):
3883         * ArrayLangRI/Return.js: Added.
3884         (Return):
3885         (Return.prototype.get origin):
3886         (Return.prototype.get value):
3887         (Return.prototype.toString):
3888         * ArrayLangRI/ReturnException.js: Added.
3889         (ReturnException):
3890         (ReturnException.prototype.get value):
3891         * ArrayLangRI/Rewriter.js: Added.
3892         (Rewriter):
3893         (Rewriter.prototype._map):
3894         (Rewriter.prototype._getMapping):
3895         (Rewriter.prototype.visitFunc):
3896         (Rewriter.prototype.visitFuncParameter):
3897         (Rewriter.prototype.visitBlock):
3898         (Rewriter.prototype.visitCommaExpression):
3899         (Rewriter.prototype.visitProtocolRef):
3900         (Rewriter.prototype.visitTypeRef):
3901         (Rewriter.prototype.visitTypeVariable):
3902         (Rewriter.prototype.visitConstexprTypeParameter):
3903         (Rewriter.prototype.visitField):
3904         (Rewriter.prototype.visitReferenceType):
3905         (Rewriter.visitPtrType):
3906         (Rewriter.prototype.visitArrayRefType):
3907         (Rewriter.prototype.visitArrayType):
3908         (Rewriter.prototype.visitAssignment):
3909         (Rewriter.prototype.visitVariableRef):
3910         (Rewriter.prototype.visitReturn):
3911         (Rewriter.prototype.visitIntLiteral):
3912         (Rewriter.prototype.visitCallExpression):
3913         (Rewriter.prototype.visitFunctionLikeBlock):
3914         * ArrayLangRI/StandardLibrary.js: Added.
3915         * ArrayLangRI/StructType.js: Added.
3916         (StructType):
3917         (StructType.prototype.add):
3918         (StructType.prototype.get name):
3919         (StructType.prototype.get typeParameters):
3920         (StructType.prototype.get fieldNames):
3921         (StructType.prototype.fieldByName):
3922         (StructType.prototype.get fields):
3923         (StructType.prototype.get fieldMap):
3924         (StructType.prototype.get isPrimitive):
3925         (StructType.prototype.instantiate):
3926         (StructType.prototype.toString):
3927         * ArrayLangRI/Substitution.js: Added.
3928         (Substitution):
3929         (Substitution.mapping):
3930         (Substitution.prototype.visitTypeRef):
3931         (Substitution.prototype.visitVariableRef):
3932         * ArrayLangRI/SuffixCallAssignment.js: Added.
3933         (SuffixCallAssignment):
3934         (SuffixCallAssignment.prototype.get name):
3935         (SuffixCallAssignment.prototype.get lhs):
3936         (SuffixCallAssignment.prototype.toString):
3937         * ArrayLangRI/Test.js: Added.
3938         (load):
3939         * ArrayLangRI/Type.js: Added.
3940         (Type.prototype.get typeParameters):
3941         (Type.prototype.get kind):
3942         (Type.prototype.inherits):
3943         (Type.prototype.get instantiatedType):
3944         (Type):
3945         * ArrayLangRI/TypeDef.js: Added.
3946         (TypeDef):
3947         (TypeDef.prototype.get origin):
3948         (TypeDef.prototype.get name):
3949         (TypeDef.prototype.get typeParameters):
3950         (TypeDef.prototype.get type):
3951         * ArrayLangRI/TypeDefResolver.js: Added.
3952         (TypeDefResolver):
3953         (TypeDefResolver.prototype.visitTypeRef):
3954         * ArrayLangRI/TypeOrVariableRef.js: Added.
3955         (TypeOrVariableRef):
3956         (TypeOrVariableRef.prototype.get origin):
3957         (TypeOrVariableRef.prototype.get name):
3958         (TypeOrVariableRef.prototype.toString):
3959         * ArrayLangRI/TypeRef.js: Added.
3960         (TypeRef):
3961         (TypeRef.wrap):
3962         (TypeRef.prototype.get origin):
3963         (TypeRef.prototype.get name):
3964         (TypeRef.prototype.get typeArguments):
3965         (TypeRef.prototype.get isPrimitive):
3966         (TypeRef.prototype.get instantiatedType):
3967         (TypeRef.prototype.get unifyNode):
3968         (TypeRef.prototype.populateDefaultValue):
3969         (TypeRef.prototype.get size):
3970         (TypeRef.prototype.setTypeAndArguments):
3971         (TypeRef.prototype.unifyImpl):
3972         (TypeRef.prototype.toString):
3973         * ArrayLangRI/TypeVariable.js: Added.
3974         (TypeVariable):
3975         (TypeVariable.prototype.get name):
3976         (TypeVariable.prototype.get protocol):
3977         (TypeVariable.prototype.get isPrimitive):
3978         (TypeVariable.prototype.get isUnifiable):
3979         (TypeVariable.prototype.inherits):
3980         (TypeVariable.prototype.typeVariableUnify):
3981         (TypeVariable.prototype.unifyImpl):
3982         (TypeVariable.prototype.verifyAsArgument):
3983         (TypeVariable.prototype.verifyAsParameter):
3984         (TypeVariable.prototype.toString):
3985         * ArrayLangRI/UnificationContext.js: Added.
3986         (UnificationContext):
3987         (UnificationContext.prototype.union):
3988         (UnificationContext.prototype.find):
3989         (UnificationContext.prototype.get nodes):
3990         (UnificationContext.prototype.verify):
3991         (UnificationContext.prototype.isUnunified):
3992         * ArrayLangRI/Value.js: Added.
3993         (Value.prototype.get kind):
3994         (Value.prototype.get isConstexpr):
3995         (Value):
3996         * ArrayLangRI/VariableDecl.js: Added.
3997         (VariableDecl):
3998         (VariableDecl.prototype.get origin):
3999         (VariableDecl.prototype.get name):
4000         (VariableDecl.prototype.get type):
4001         (VariableDecl.prototype.get initializer):
4002         (VariableDecl.prototype.toString):
4003         * ArrayLangRI/VariableRef.js: Added.
4004         (VariableRef):
4005         (VariableRef.prototype.get name):
4006         (VariableRef.prototype.get isConstexpr):
4007         (VariableRef.prototype.get unifyNode):
4008         (VariableRef.prototype.toString):
4009         * ArrayLangRI/VisitingSet.js: Added.
4010         (VisitingSet):
4011         (VisitingSet.prototype.doVisit):
4012         * ArrayLangRI/Visitor.js: Added.
4013         (Visitor.prototype.visitProgram):
4014         (Visitor.prototype.visitFunc):
4015         (Visitor.prototype.visitFuncParameter):
4016         (Visitor.prototype.visitFuncDef):
4017         (Visitor.prototype.visitNativeFunc):
4018         (Visitor.prototype.visitBlock):
4019         (Visitor.prototype.visitCommaExpression):
4020         (Visitor.prototype.visitProtocolRef):
4021         (Visitor.prototype.visitProtocolDecl):
4022         (Visitor.prototype.visitTypeRef):
4023         (Visitor.prototype.visitNativeType):
4024         (Visitor.prototype.visitTypeDef):
4025         (Visitor.prototype.visitStructType):
4026         (Visitor.prototype.visitTypeVariable):
4027         (Visitor.prototype.visitConstexprTypeParameter):
4028         (Visitor.prototype.visitField):
4029         (Visitor.prototype.visitElementalType):
4030         (Visitor.prototype.visitPtrType):
4031         (Visitor.prototype.visitArrayRefType):
4032         (Visitor.prototype.visitArrayType):
4033         (Visitor.prototype.visitAssignment):
4034         (Visitor.prototype.visitVariableRef):
4035         (Visitor.prototype.visitReturn):
4036         (Visitor.prototype.visitIntLiteral):
4037         (Visitor.prototype.visitCallExpression):
4038         (Visitor.prototype.visitFunctionLikeBlock):
4039         (Visitor):
4040
4041 2017-08-30  Stephan Szabo  <stephan.szabo@sony.com>
4042
4043         [Win][JSCOnly] Support running JSC tests for win-cairo from windows command prompt
4044         https://bugs.webkit.org/show_bug.cgi?id=174985
4045
4046         Reviewed by Keith Miller.
4047
4048         * Scripts/run-javascriptcore-tests:
4049         * Scripts/run-jsc-stress-tests:
4050         * Scripts/webkitruby/jsc-stress-test-writer-default.rb:
4051         * Scripts/webkitruby/jsc-stress-test-writer-ruby.rb: Added.
4052
4053 2017-08-30  Adrian Perez de Castro  <aperez@igalia.com>
4054
4055         [GTK] Do not use autogen whenever possible in JHBuild modules
4056         https://bugs.webkit.org/show_bug.cgi?id=176098
4057
4058         Reviewed by Carlos Alberto Lopez Perez.
4059
4060         * gtk/jhbuild.modules: Added autogen-sh="configure" attributes for many Autootools modules.
4061
4062 2017-08-30  Tomas Popela  <tpopela@redhat.com>
4063
4064         [GTK] Avoid building fontconfig documentation in jhbuild
4065         https://bugs.webkit.org/show_bug.cgi?id=176097
4066
4067         Reviewed by Carlos Alberto Lopez Perez.
4068
4069         Disable building fontconfig documentation in jhbuild as it needs the
4070         docbook-utils-pdf package installed which depends on quite a few
4071         packages (on Fedora it's 226 packages (mostly textlive) with installed
4072         size of 274 MB). The documentation is not needed at all in jhbuild, so
4073         disable it to save some bandwidth and disc space.
4074
4075         * gtk/install-dependencies: Pass --disable-docs to fontconfig.
4076         * gtk/jhbuild.modules: Don't install docbook-utils-pdf on Fedora.
4077
4078 2017-08-30  Tomas Popela  <tpopela@redhat.com>
4079
4080         Unreviewed, remove trailing space
4081
4082         * gtk/jhbuildrc:
4083
4084 2017-08-29  Carlos Garcia Campos  <cgarcia@igalia.com>
4085
4086         REGRESSION(r221064): [GTK] Editor not correctly working after r221064
4087         https://bugs.webkit.org/show_bug.cgi?id=176052
4088
4089         Reviewed by Michael Catanzaro.
4090
4091         Run the test inside a window to ensure display updates happen.
4092
4093         * TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:
4094         (testWebViewEditorEditorStateTypingAttributes):
4095
4096 2017-08-29  Don Olmstead  <don.olmstead@sony.com>
4097
4098         [CMake] Use find_package for zlib
4099         https://bugs.webkit.org/show_bug.cgi?id=176075
4100
4101         Reviewed by Alex Christensen.
4102
4103         * TestWebKitAPI/PlatformWin.cmake:
4104
4105 2017-08-29  Brent Fulgham  <bfulgham@apple.com>
4106
4107         ResourceLoadStatistics logic does not understand custom WebsiteData stores
4108         https://bugs.webkit.org/show_bug.cgi?id=176037
4109         <rdar://problem/33338238>
4110
4111         Reviewed by Alex Christensen.
4112
4113         * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
4114         (TEST): Update for ResourceLoadStatistics directories.
4115
4116 2017-08-29  Brady Eidson  <beidson@apple.com>
4117
4118         Rename "potentionally trustworthy" to "potentially trustworthy"
4119         https://bugs.webkit.org/show_bug.cgi?id=176081
4120
4121         Reviewed by Daniel Bates.
4122
4123         * TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:
4124         (TestWebKitAPI::TEST_F):
4125
4126 2017-08-29  Stephan Szabo  <stephan.szabo@sony.com>
4127
4128         [Win][JSCOnly] Fix call for updating wincairo-libs in build-jsc
4129         https://bugs.webkit.org/show_bug.cgi?id=176080
4130
4131         Reviewed by Brent Fulgham.
4132
4133         * Scripts/build-jsc:
4134
4135 2017-08-29  Adrian Perez de Castro  <aperez@igalia.com>
4136
4137         [WPE] Avoid using autogen for JHBuild modules, trying to fix the EWS
4138
4139         Unreviewed build fix.
4140
4141         This also makes the JHBuild process faster, because there are less
4142         modules which will trigger slow, ancient Perl and M4 based tooling.
4143
4144         * wpe/jhbuild.modules:
4145
4146 2017-08-29  Don Olmstead  <don.olmstead@sony.com>
4147
4148         [CMake] Use find_package for libxml2 and libxstl
4149         https://bugs.webkit.org/show_bug.cgi?id=176042
4150
4151         Reviewed by Konstantin Tokarev.
4152
4153         * TestWebKitAPI/PlatformWin.cmake:
4154
4155 2017-08-29  Per Arne Vollan  <pvollan@apple.com>
4156
4157         [Win] A WTF test is timing out in run-api-tests.
4158         https://bugs.webkit.org/show_bug.cgi?id=176056
4159
4160         Reviewed by Brent Fulgham.
4161
4162         The test SynchronizedFixedQueue.ProduceOnly relies on that putting a thread to sleep for
4163         1ms will wake it up before another thread which is put to sleep for 10ms. I believe this
4164         is not neccessarily true on Windows where the thread scheduling does not have millisecond
4165         accuracy. Fix the test timeout by adjusting the sleep time slightly.
4166  
4167         * TestWebKitAPI/Tests/WTF/SynchronizedFixedQueue.cpp:
4168         (TestWebKitAPI::ToUpperConverter::startProducing):
4169
4170 2017-08-29  Eric Carlson  <eric.carlson@apple.com>
4171
4172         Unreviewed, update my watchlist filters.
4173
4174         * Scripts/webkitpy/common/config/watchlist:
4175
4176 2017-08-29  Carlos Garcia Campos  <cgarcia@igalia.com>
4177
4178         Unreviewed. REGRESSION(r221219): Fix unit tests using resources from WebKit directory.
4179
4180         The WebKit2 directory was renamed as WebKit in r221219, but neither run-gtk-tests script nor
4181         Test::getResourcesDir() were updated to use the new name.
4182
4183         * Scripts/run-gtk-tests:
4184         (TestRunner._setup_testing_environment):
4185         * TestWebKitAPI/glib/WebKitGLib/TestMain.h:
4186         (Test::getResourcesDir):
4187
4188 2017-08-28  Eric Carlson  <eric.carlson@apple.com>
4189
4190         Logger should use makeString instead of String::format
4191         https://bugs.webkit.org/show_bug.cgi?id=176035
4192
4193         Reviewed by Jer Noble.
4194
4195         * TestWebKitAPI/Tests/WebCore/Logging.cpp:
4196         (TestWebKitAPI::TEST_F): Update test.
4197
4198 2017-08-28  Michael Catanzaro  <mcatanzaro@igalia.com>
4199
4200         [GStreamer] The glvideoflip GStreamer element isn't available. Video mirroring and rotation functionalities are thus disabled.
4201         https://bugs.webkit.org/show_bug.cgi?id=175576
4202
4203         Reviewed by Carlos Alberto Lopez Perez.
4204
4205         Build graphene to enable the glvideoflip element.
4206
4207         * gstreamer/jhbuild.modules:
4208         * gtk/jhbuild.modules:
4209         * jhbuild/jhbuild-wrapper:
4210         * wpe/jhbuild.modules:
4211
4212 2017-08-28  Ms2ger  <Ms2ger@gmail.com>
4213
4214         Ensure that the alert function is called in TestWebExtensions.
4215         https://bugs.webkit.org/show_bug.cgi?id=175880
4216
4217         Reviewed by Carlos Garcia Campos.
4218
4219         The test relied on a bug in the HTMLDocument JavaScript bindings: when calling
4220         document.open() with three arguments, it would call any function set as the
4221         "open" property on the window object, rather than just the real Window::open()
4222         method. This bug was fixed by the removal of custom bindings for HTMLDocument
4223         in r218437. As a result, the test no longer called alert(), which caused it to
4224         fail.
4225