41b361b0f5f91eb2c40ebc9f0c62aaecec7f34cf
[WebKit-https.git] / Tools / ChangeLog
1 2017-09-30  Carlos Garcia Campos  <cgarcia@igalia.com>
2
3         Unreviewed. Upgrade webkitgtk-test-fonts to version 0.0.7.
4
5         This version upgrades liberation fonts to version 2, that has a wider glyph coverage.
6
7         * gtk/jhbuild.modules:
8
9 2017-09-29  Alex Christensen  <achristensen@webkit.org>
10
11         Expose WebPreferences::webGLEnabled through WKPreferences
12         https://bugs.webkit.org/show_bug.cgi?id=177692
13         <rdar://problem/24110556>
14
15         Reviewed by Andy Estes.
16
17         * TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:
18         (-[AlertSaver alert]):
19         (-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
20         (TEST):
21
22 2017-09-29  Alex Christensen  <achristensen@webkit.org>
23
24         Fix WKWebViewConfigurationPrivate after r222663
25         https://bugs.webkit.org/show_bug.cgi?id=177644
26
27         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
28         * TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm: Added.
29         (TEST):
30
31 2017-09-28  Ryosuke Niwa  <rniwa@webkit.org>
32
33         Image pasting is not working on tineye.com / gmail.com / GitHub.com due to lack of support for DataTransfer.items
34         https://bugs.webkit.org/show_bug.cgi?id=170449
35         <rdar://problem/31432525>
36
37         Reviewed by Wenson Hsieh.
38
39         Added an API test to paste an image from pasteboard. The test is shared between iOS and macOS.
40
41         The tests to paste image files are only enabled on macOS since putting files into pasteboard isn't a thing on iOS.
42
43         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
44         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: Added.
45         (writeImageDataToPasteboard):
46         (writeBundleFileToPasteboard):
47         * TestWebKitAPI/Tests/WebKitCocoa/paste-image.html: Added.
48         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-100px.tiff: Added.
49         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-200px.png: Added.
50         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-400px.gif: Added.
51         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-600px.jpg: Added.
52         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Rebaselined the test now that types contain "Files".
53
54 2017-09-29  Wenson Hsieh  <wenson_hsieh@apple.com>
55
56         [iOS WK2] Implement -[WKContentView hasText] for compatibility with the UITextInput protocol
57         https://bugs.webkit.org/show_bug.cgi?id=177662
58         <rdar://problem/33410373>
59
60         Reviewed by Tim Horton.
61
62         Add EditorState API tests to check that the value of -[WKContentView hasText] is correct when editing both plain
63         and rich text areas.
64
65         * TestWebKitAPI/EditingTestHarness.h:
66         * TestWebKitAPI/EditingTestHarness.mm:
67         (-[EditingTestHarness insertParagraph]):
68         (-[EditingTestHarness insertText:]):
69         (-[EditingTestHarness insertHTML:]):
70         (-[EditingTestHarness selectAll]):
71         (-[EditingTestHarness deleteBackwards]):
72         * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:
73
74         Add versions of EditingTestHarness helpers that don't require us to expect any editor state after executing the
75         edit command.
76
77         (TestWebKitAPI::checkContentViewHasTextWithFailureDescription):
78         (TestWebKitAPI::TEST):
79         * TestWebKitAPI/cocoa/TestWKWebView.h:
80         * TestWebKitAPI/cocoa/TestWKWebView.mm:
81         (-[TestWKWebView textInputContentView]):
82
83 2017-09-29  Charles Turner  <cturner@igalia.com>
84
85         Update my status.
86
87         Unreviewed.
88
89         * Scripts/webkitpy/common/config/contributors.json:
90
91 2017-09-28  Commit Queue  <commit-queue@webkit.org>
92
93         Unreviewed, rolling out r222639.
94         https://bugs.webkit.org/show_bug.cgi?id=177630
95
96         Breaks AppleWin build (Requested by dolmstead on #webkit).
97
98         Reverted changeset:
99
100         "[WinCairo][MiniBrowser] Add ca-bundle to display secure
101         pages."
102         https://bugs.webkit.org/show_bug.cgi?id=168486
103         http://trac.webkit.org/changeset/222639
104
105 2017-09-28  Joanmarie Diggs  <jdiggs@igalia.com>
106
107         AX: [ATK] object:state-changed notifications missing for multiple ARIA attributes
108         https://bugs.webkit.org/show_bug.cgi?id=177542
109
110         Add platform support for the notifications. Also add support for getting the
111         boolean argument indicating whether the state has been set or unset.
112
113         Reviewed by Chris Fleizach.
114
115         * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
116
117 2017-09-28  Basuke Suzuki  <Basuke.Suzuki@sony.com>
118
119         [WinCairo][MiniBrowser] Add ca-bundle to display secure pages.
120         Copy cacert.pem file into bundle directory.
121         https://bugs.webkit.org/show_bug.cgi?id=168486
122
123         Reviewed by Brent Fulgham.
124
125         * MiniBrowser/win/CMakeLists.txt:
126
127 2017-09-28  Lucas Forschler  <lforschler@apple.com>
128
129         check in AWS Lambda code used for WebKitArchiveSupport
130         https://bugs.webkit.org/show_bug.cgi?id=177614
131         
132         Rubber-stamped by Alexey Proskuryakov.
133
134         * WebKitArchiveSupport/lambda: Added.
135         * WebKitArchiveSupport/lambda/delete-minified-s3-archive-from-dynamodb.py: Added.
136         (lambda_handler):
137         * WebKitArchiveSupport/lambda/delete-s3-archive-from-dynamodb.py: Added.
138         (lambda_handler):
139         * WebKitArchiveSupport/lambda/register-archive-in-dynamodb.py: Added.
140         (lambda_handler):
141         * WebKitArchiveSupport/lambda/register-minified-s3-archive-in-dynamodb.py: Added.
142         (lambda_handler):
143
144 2017-09-28  Jiewen Tan  <jiewen_tan@apple.com>
145
146         WeakPtrFactory should allow downcasting
147         https://bugs.webkit.org/show_bug.cgi?id=177389
148         <rdar://problem/34604174>
149
150         Reviewed by Geoffrey Garen.
151
152         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
153         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
154         (TestWebKitAPI::Base::foo):
155         (TestWebKitAPI::Base::createWeakPtr):
156         (TestWebKitAPI::Derived::foo):
157         (TestWebKitAPI::TEST):
158
159 2017-09-28  Megan Gardner  <megan_gardner@apple.com>
160
161         Add debug flag to WebKitTestRunner to show where touches are being generated
162         https://bugs.webkit.org/show_bug.cgi?id=177583
163
164         Reviewed by Tim Horton and Wenson Hsieh.
165
166         Add a flag, and the ability to paint a dot where the HIDEventGenerator is creating fake touches to
167         send through UIKit. This will help in debugging touch tests, because it will be easier to see if
168         one is actually sending the touches at the locations that they expect. This will help differentiate between
169         problems in the locations of the touches, and other problems that can come up when writing tests.
170
171         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
172         (parse_args):
173         * Scripts/webkitpy/port/driver.py:
174         (Driver.cmd_line):
175         * WebKitTestRunner/Options.cpp:
176         (WTR::Options::Options):
177         (WTR::handleOptionShowTouches):
178         (WTR::OptionsHandler::OptionsHandler):
179         * WebKitTestRunner/Options.h:
180         * WebKitTestRunner/TestController.cpp:
181         (WTR::TestController::initialize):
182         * WebKitTestRunner/TestController.h:
183         (WTR::TestController::shouldShowTouches const):
184         * WebKitTestRunner/TestOptions.h:
185         * WebKitTestRunner/ios/HIDEventGenerator.h:
186         * WebKitTestRunner/ios/HIDEventGenerator.mm:
187         (-[DebugTouchView pointInside:withEvent:]):
188         (-[HIDEventGenerator setShouldShowTouches:]):
189         (-[HIDEventGenerator initDebugViews]):
190         (-[HIDEventGenerator updateDebugUI:withPoint:isTouching:]):
191         (-[HIDEventGenerator _createIOHIDEventWithInfo:]):
192         (-[HIDEventGenerator _createIOHIDEventType:]):
193         (-[HIDEventGenerator _updateTouchPoints:count:]):
194         (-[HIDEventGenerator touchDownAtPoints:touchCount:]):
195         (-[HIDEventGenerator liftUpAtPoints:touchCount:]):
196         (-[HIDEventGenerator moveToPoints:touchCount:duration:]):
197         (-[HIDEventGenerator markerEventReceived:]):
198         * WebKitTestRunner/ios/TestControllerIOS.mm:
199         (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
200         * WebKitTestRunner/ios/mainIOS.mm:
201         (-[WebKitTestRunnerApp _runTestController]):
202
203 2017-09-28  Mark Lam  <mark.lam@apple.com>
204
205         [Re-landing] Turn on exception scope verification for JSC tests.
206         https://bugs.webkit.org/show_bug.cgi?id=162351
207         <rdar://problem/29563911>
208
209         Reviewed by Saam Barati.
210
211         Update: I'm re-landing this patch now that test262 exception check validation
212         failures have been fixed in r222617.  testapi still has some validation failures,
213         but this patch does not affect testapi.
214
215         Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
216         run-jsc-stress-tests.  This turns on exception scope verification on JSC test
217         runs (which currently does not include testapi).
218
219         Some stats on time to run JSC stress and mozilla tests:
220         1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
221         2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
222         3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
223         4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
224
225         The stats shows that (2) and (3) has effectively no time difference.  Hence, the
226         cost of enabling --validateExceptionChecks=true is not significant.
227
228         It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
229         21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
230         --dumpSimulatedThrows=true off.  We can manually add that when we see a regression
231         and need to debug the issue.  Otherwise, we wont pay the price for it.
232
233         * Scripts/run-jsc-stress-tests:
234
235 2017-09-27  Alex Christensen  <achristensen@webkit.org>
236
237         Add WKContentRuleList notify action type
238         https://bugs.webkit.org/show_bug.cgi?id=177013
239         <rdar://problem/31073936>
240
241         Reviewed by Darin Adler.
242
243         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
244         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
245         (WebCore::ContentExtensions::operator<<):
246         (TestWebKitAPI::InMemoryCompiledContentExtension::create):
247         (TestWebKitAPI::InMemoryCompiledContentExtension::data):
248         (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
249         (TestWebKitAPI::makeBackend):
250         (TestWebKitAPI::TEST_F):
251         (TestWebKitAPI::actionsEqual):
252         (TestWebKitAPI::sequenceInstances):
253         (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
254         (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
255         * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
256         (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
257         (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
258         (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
259         (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
260         (makeWarnContentRuleList):
261         (TEST):
262
263 2017-09-27  Wenson Hsieh  <wenson_hsieh@apple.com>
264
265         Drag event DataTransfer has unexpected types "dyn.ah62d4..."
266         https://bugs.webkit.org/show_bug.cgi?id=172526
267         <rdar://problem/32396081>
268
269         Reviewed by Ryosuke Niwa.
270
271         Adds new API tests on iOS to cover various cases of using DataTransfer.setData, DataTransfer.getData, and
272         DataTransfer.types, as well as their interaction with platform objects (source NSItemProviders in the case of
273         drag and drop, and the general UIPasteboard for copy and paste).
274
275         * TestWebKitAPI/PlatformUtilities.h:
276         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
277         * TestWebKitAPI/Tests/WebKitCocoa/dump-datatransfer-types.html: Added.
278
279         Introduce a new API test harness that both drag-and-drop and copy-and-paste tests use to dump DataTransfer's
280         web-exposed types and values.
281
282         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
283         (checkFirstTypeIsPresentAndSecondTypeIsMissing):
284         (checkJSONWithLogging):
285         (TestWebKitAPI::TEST):
286         (checkTypeIdentifierAndIsNotOtherTypeIdentifier): Deleted.
287         * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
288         (TestWebKitAPI::checkJSONWithLogging):
289         (TestWebKitAPI::setUpWebViewForPasteboardTests):
290         (TestWebKitAPI::TEST):
291         * TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
292         (TestWebKitAPI::Util::jsonMatchesExpectedValues):
293
294 2017-09-27  Lucas Forschler  <lforschler@apple.com>
295
296         Add macOS High Sierra and iOS Simulator 11 support to bisect-builds.
297         https://bugs.webkit.org/show_bug.cgi?id=177578
298
299         Reviewed by Alexey Proskuryakov.
300
301         * Scripts/bisect-builds:
302         (minified_platforms):
303         (unminified_platforms):
304
305 2017-09-27  Ryan Haddad  <ryanhaddad@apple.com>
306
307         Update TestResultsServer for High Sierra queues.
308         https://bugs.webkit.org/show_bug.cgi?id=177500
309
310         Reviewed by Alexey Proskuryakov.
311
312         * TestResultServer/static-dashboards/builders.jsonp:
313
314 2017-09-27  Lucas Forschler  <lforschler@apple.com>
315
316         bisect-builds:add a README to the archive.
317         https://bugs.webkit.org/show_bug.cgi?id=177376
318
319         Reviewed by Alexey Proskuryakov & Jon Davis.
320
321         * BuildSlaveSupport/built-product-archive:
322         (addFilesToArchive): refactor function (was previously addLauncherToArchive)
323         (createZip): Teach function to add the README
324         (addLauncherToArchive): Deleted. (refactored to addFilesToArchive)
325         * BuildSlaveSupport/run-webkit-archive: Deleted. (Moved to WebKitArchiveSupport)
326         * WebKitArchiveSupport: Added.
327         * WebKitArchiveSupport/README: Added. README which will be packaged up with the archive.
328         * WebKitArchiveSupport/run-webkit-archive: Added. (Moved from BuildSlaveSupport)
329
330 2017-09-26  Tim Horton  <timothy_horton@apple.com>
331
332         Mac CMake bot should provide verbose build output
333         https://bugs.webkit.org/show_bug.cgi?id=177512
334
335         Reviewed by Alexey Proskuryakov.
336
337         * BuildSlaveSupport/build.webkit.org-config/config.json:
338         It's hard to diagnose weird bot-only build problems without the
339         full verbose build output, so turn that on. The Xcode builders
340         do it too, so why not CMake!
341
342 2017-09-26  Tim Horton  <timothy_horton@apple.com>
343
344         Make it possible to easily get verbose ninja output from build-webkit
345         https://bugs.webkit.org/show_bug.cgi?id=177511
346
347         Reviewed by Sam Weinig.
348
349         * Scripts/build-webkit:
350         Add a -v/--verbose argument to build-webkit, which sets the environment
351         variable VERBOSE=1, which buildCMakeGeneratedProject already checks.
352
353         * Scripts/webkitdirs.pm:
354         (buildCMakeGeneratedProject):
355         Add ninja verbosity arguments to @makeArgs, which are appended
356         after the -- and thus handed to ninja; the previous implementation
357         (appending to @args) would only work if @makeArgs was non-empty and thus
358         the -- was included.
359
360 2017-09-26  Said Abou-Hallawa  <sabouhallawa@apple.com>
361
362         Followup (r222427): SynchronizedFixedQueue should not have a public constructor
363         https://bugs.webkit.org/show_bug.cgi?id=177458
364
365         Reviewed by Tim Horton.
366
367         Fix the definition and the creation of SynchronizedFixedQueue.
368
369         * TestWebKitAPI/Tests/WTF/SynchronizedFixedQueue.cpp:
370         (TestWebKitAPI::ToUpperConverter::ToUpperConverter):
371         (TestWebKitAPI::ToUpperConverter::startProducing):
372         (TestWebKitAPI::ToUpperConverter::startConsuming):
373         (TestWebKitAPI::ToUpperConverter::stopProducing):
374         (TestWebKitAPI::ToUpperConverter::stopConsuming):
375         (TestWebKitAPI::ToUpperConverter::enqueueLower):
376
377 2017-09-26  Wenson Hsieh  <wenson_hsieh@apple.com>
378
379         [ios-simulator] API test DataInteractionTests.ExternalSourceDataTransferItemGetFolderAsEntry is failing
380         https://bugs.webkit.org/show_bug.cgi?id=177271
381
382         Reviewed by Tim Horton and Megan Gardner.
383
384         Rebaseline a failing API test.
385
386         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
387         (TestWebKitAPI::TEST):
388
389 2017-09-26  Per Arne Vollan  <pvollan@apple.com>
390
391         Set LF eol-style on Windows shell script, because the script failed on one of the EWS
392         bots, when it had the 'native' style.
393
394         Unreviewed Windows EWS fix. 
395
396         * EWSTools/start-queue-win.sh: Modified property svn:eol-style.
397
398 2017-09-26  Jonathan Bedard  <jbedard@apple.com>
399
400         webkitpy: Notify parent process when a worker is spawned
401         https://bugs.webkit.org/show_bug.cgi?id=177467
402         <rdar://problem/34660194>
403
404         Reviewed by Daniel Bates.
405
406         When we fork the parent process, there may be resources in that process
407         which workers will take ownership of. Notify ports when a new worker is created
408         so that these resources can be correctly managed.
409
410         * Scripts/webkitpy/common/message_pool.py:
411         (_MessagePool._start_workers): After all workers are started, notify the caller
412         that a worker has been created, unless we are running inline, in which case the
413         parent process is still the worker.
414         * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
415         (LayoutTestRunner._handle_did_spawn_worker): Notify the port that a worker process
416         has been created.
417         * Scripts/webkitpy/port/base.py:
418         (Port.did_spawn_worker): Add function so that ports may manage any
419         resources created on the parent process but managed by the provided worker.
420         * Scripts/webkitpy/port/device.py:
421         (Device.release_worker_resources): Call release_worker_resources on the
422         platform_device if such a function is defined.
423         * Scripts/webkitpy/port/ios.py:
424         (IOSPort.did_spawn_worker): Release any worker resources on the iOS
425         device object associated with the spawned worker.
426         * Scripts/webkitpy/test/runner.py:
427         (Runner.handle): Ignore the did_spawn_worker message during testing.
428
429 2017-09-26  Jer Noble  <jer.noble@apple.com>
430
431         Thrown ObjC exception when right clicking on <img> containing mp4 link
432         https://bugs.webkit.org/show_bug.cgi?id=177370
433
434         Reviewed by Darin Adler.
435
436         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
437         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.html: Added.
438         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm: Added.
439         (-[ContextMenuImgWithVideoDelegate _webView:contextMenu:forElement:]):
440         (TestWebKitAPI::TEST):
441
442 2017-09-26  Per Arne Vollan  <pvollan@apple.com>
443
444         [Win] 'webkit-patch clean' is failing on bot.
445         https://bugs.webkit.org/show_bug.cgi?id=177488
446
447         Reviewed by Brent Fulgham.
448
449         If 'os.remove' throws an exception, catch it.
450
451         * Scripts/webkitpy/common/checkout/scm/svn.py:
452         (SVN.discard_working_directory_changes):
453
454 2017-09-25  Frederik Riedel  <riedel@apple.com>
455
456         Expose way to set values of classified form controls as {Legacy WebKit, WebKit} SPI
457         https://bugs.webkit.org/show_bug.cgi?id=174394
458         <rdar://problem/33183504>
459
460         Reviewed by Ryosuke Niwa.
461
462         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
463         * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm: Added.
464         (-[WKWebView _privateTextInput]): Testing helpers.
465         (TestWebKitAPI::TEST): Added test cases to test AutoFill for web views.
466         * TestWebKitAPI/ios/UIKitSPI.h:
467
468 2017-09-25  Frederic Wang  <fwang@igalia.com>
469
470         Change my status to reviewer and reformat with validate-committer-lists
471
472         Unreviewed.
473
474         * Scripts/webkitpy/common/config/contributors.json:
475
476 2017-09-25  Ryan Haddad  <ryanhaddad@apple.com>
477
478         Add High Sierra bots to buildbot and dashboard.
479         https://bugs.webkit.org/show_bug.cgi?id=177437
480
481         Reviewed by Alexey Proskuryakov.
482
483         * BuildSlaveSupport/build.webkit.org-config/config.json: Add High Sierra queues, move Leaks and JSC queues over from Sierra.
484         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results.
485         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: Add High Sierra.
486         (WebKitBuildbot):
487
488 2017-09-25  Chris Dumez  <cdumez@apple.com>
489
490         [WK2] Add API to query if a download was user-initiated
491         https://bugs.webkit.org/show_bug.cgi?id=177435
492         <rdar://problem/34498422>
493
494         Reviewed by Alex Christensen.
495
496         Add API test coverage.
497
498         * TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:
499         (TestWebKitAPI::decideDestinationWithSuggestedFilename):
500         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
501         (-[DownloadDelegate _downloadDidStart:]):
502         (-[DownloadDelegate _downloadDidFinish:]):
503         (runTest):
504         (TEST):
505         (-[BlobDownloadDelegate _downloadDidStart:]):
506         (-[BlobDownloadDelegate _downloadDidFinish:]):
507         (-[RedirectedDownloadDelegate _downloadDidStart:]):
508         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
509
510 2017-09-25  Commit Queue  <commit-queue@webkit.org>
511
512         Unreviewed, rolling out r222455.
513         https://bugs.webkit.org/show_bug.cgi?id=177460
514
515         broke iOS build (Requested by alexchristensen on #webkit).
516
517         Reverted changeset:
518
519         "Add WKContentRuleList notify action type"
520         https://bugs.webkit.org/show_bug.cgi?id=177013
521         http://trac.webkit.org/changeset/222455
522
523 2017-09-25  Per Arne Vollan  <pvollan@apple.com>
524
525         [Win] run-api-tests is failing.
526         https://bugs.webkit.org/show_bug.cgi?id=177454
527
528         Reviewed by Brent Fulgham.
529
530         TestWebKit.exe has changed name to TestWebKitLegacy.exe.
531
532         * Scripts/run-api-tests:
533         (testToolPaths):
534
535 2017-09-25  Per Arne Vollan  <pvollan@apple.com>
536
537         [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
538         https://bugs.webkit.org/show_bug.cgi?id=177244
539
540         Reviewed by Alex Christensen.
541
542         The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
543
544         * EWSTools/start-queue-win.sh:
545
546 2017-09-25  Alex Christensen  <achristensen@webkit.org>
547
548         Add WKContentRuleList notify action type
549         https://bugs.webkit.org/show_bug.cgi?id=177013
550         <rdar://problem/31073936>
551
552         Reviewed by Darin Adler.
553
554         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
555         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
556         (WebCore::ContentExtensions::operator<<):
557         (TestWebKitAPI::InMemoryCompiledContentExtension::create):
558         (TestWebKitAPI::InMemoryCompiledContentExtension::data):
559         (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
560         (TestWebKitAPI::makeBackend):
561         (TestWebKitAPI::TEST_F):
562         (TestWebKitAPI::actionsEqual):
563         (TestWebKitAPI::sequenceInstances):
564         (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
565         (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
566         * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
567         (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
568         (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
569         (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
570         (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
571         (makeWarnContentRuleList):
572         (TEST):
573
574 2017-09-25  Carlos Alberto Lopez Perez  <clopez@igalia.com>
575
576         REGRESSION(r222160) [GTK] [Debug] Internal compiler error on the buildbot (huge memory usage by GCC)
577         https://bugs.webkit.org/show_bug.cgi?id=177223
578
579         Reviewed by Carlos Garcia Campos.
580
581         When the user environment sets the variable NUMBER_OF_PROCESSORS
582         this should be passed down to the build system (ninja or make) always.
583
584         Playing with the number of this variable is needed when using icecc
585         (as you usually want to launch more parallel build process than your
586         number of cores), or when you want to limit the number of parallel
587         build process for hardware capacity reasons.
588
589         * Scripts/build-webkit:
590
591 2017-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>
592
593         [GTK] Incremental builds fail every time Web Inspector icons are removed
594         https://bugs.webkit.org/show_bug.cgi?id=177349
595
596         Reviewed by Carlos Garcia Campos.
597
598         Removing GTK WebInspector image files always breaks the GTK and
599         WPE ports incremental builds.
600
601         * Scripts/webkitdirs.pm:
602         (shouldRemoveCMakeCache): Check the timestamp of
603         Source/WebInspectorUI/UserInterface/Images/gtk directory if
604         isGtk() or isWPE().
605
606 2017-09-24  Joanmarie Diggs  <jdiggs@igalia.com>
607
608         [ATK] Object attributes are missing for ARIA live region roles
609         https://bugs.webkit.org/show_bug.cgi?id=171174
610
611         Reviewed by Chris Fleizach.
612
613         Add support for testing property values for AXARIALive, AXARIAAtomic, and
614         AXARIARelevant. Also add handling for testing whether AXElementBusy is
615         "supported" (in ATK, busy is a state and is supported on all elements
616         regardless of whether the state is present or absent from the state set).
617
618         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
619         (WTR::AccessibilityUIElement::boolAttributeValue):
620         (WTR::AccessibilityUIElement::isAttributeSupported):
621
622 2017-09-23  Michael Catanzaro  <mcatanzaro@igalia.com>
623
624         Unreviewed Mac CMake build fixup after r222194
625
626         * DumpRenderTree/PlatformMac.cmake:
627
628 2017-09-22  Zalan Bujtas  <zalan@apple.com>
629
630         WeakPtrFactory should populate m_ref lazily.
631         https://bugs.webkit.org/show_bug.cgi?id=177375
632
633         Reviewed by Geoffrey Garen.
634
635         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
636         (TestWebKitAPI::TEST):
637
638 2017-09-22  Filip Pizlo  <fpizlo@apple.com>
639
640         WSL should report an error if you try to create an operator overload that will never be called
641         https://bugs.webkit.org/show_bug.cgi?id=177092
642
643         Reviewed by JF Bastien.
644         
645         This adds all kinds of checks to ensure that your operator overloads make sense. This adds all
646         kinds of tests for those checks.
647         
648         In the process of writing those tests, I hit an awesome bug: function instantiation was
649         instantiating all types, which meant that if that instantiated function needed to resolve calls
650         to protocol functions, we'd fail because we would have cloned top-level struct types. We need
651         to preserve the uninstantiated argument types, type arguments, and return type (for casts) in
652         order to be able to resolve protocol calls. But we also need the instantiated version of the
653         type arguments for execution. So, this adds some more stuff to the CallExpression class.
654         
655         * WebGPUShadingLanguageRI/All.js:
656         * WebGPUShadingLanguageRI/ArrayRefType.js:
657         (ArrayRefType.prototype.unifyImpl):
658         * WebGPUShadingLanguageRI/ArrayType.js:
659         (ArrayType.prototype.get isArray):
660         * WebGPUShadingLanguageRI/CallExpression.js:
661         (CallExpression.resolve):
662         (CallExpression.prototype.resolve):
663         (CallExpression.prototype.resolveToOverload):
664         * WebGPUShadingLanguageRI/Checker.js:
665         (Checker.prototype._checkOperatorOverload):
666         (Checker.prototype.visitFuncDef):
667         (Checker.prototype.visitProtocolDecl):
668         (Checker.prototype.visitMakeArrayRefExpression):
669         * WebGPUShadingLanguageRI/EBufferBuilder.js:
670         (EBufferBuilder.prototype._createEPtr):
671         * WebGPUShadingLanguageRI/EPtr.js:
672         (EPtr):
673         * WebGPUShadingLanguageRI/Evaluator.js:
674         (Evaluator.prototype._snapshot):
675         (Evaluator.prototype._runBody):
676         (Evaluator.prototype.visitFunctionLikeBlock):
677         (Evaluator.prototype.visitCallExpression):
678         (Evaluator):
679         (Evaluator.prototype.runFunc): Deleted.
680         * WebGPUShadingLanguageRI/ExternalOrigin.js: Added.
681         * WebGPUShadingLanguageRI/Func.js:
682         (Func.prototype.toDeclString):
683         * WebGPUShadingLanguageRI/FuncInstantiator.js:
684         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
685         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
686         (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates.prototype.visitCallExpression):
687         (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates):
688         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
689         * WebGPUShadingLanguageRI/Intrinsics.js:
690         (Intrinsics):
691         * WebGPUShadingLanguageRI/LateChecker.js:
692         (LateChecker.prototype.visitReferenceType):
693         (LateChecker.prototype._checkShaderType):
694         * WebGPUShadingLanguageRI/Lexer.js:
695         (Lexer._textIsIdentifierImpl):
696         (Lexer.textIsIdentifier):
697         (Lexer.prototype.next):
698         (Lexer):
699         * WebGPUShadingLanguageRI/NameResolver.js:
700         (NameResolver.prototype.visitProtocolDecl):
701         * WebGPUShadingLanguageRI/Parse.js:
702         (parseType.getAddressSpace):
703         (parseType):
704         * WebGPUShadingLanguageRI/Prepare.js:
705         (let.prepare):
706         * WebGPUShadingLanguageRI/PtrType.js:
707         (PtrType.prototype.unifyImpl):
708         * WebGPUShadingLanguageRI/ReferenceType.js:
709         (ReferenceType):
710         * WebGPUShadingLanguageRI/Rewriter.js:
711         (Rewriter.prototype.visitReferenceType):
712         (Rewriter.prototype.processDerivedCallData):
713         * WebGPUShadingLanguageRI/StandardLibrary.js:
714         (intToString):
715         * WebGPUShadingLanguageRI/StatementCloner.js:
716         (StatementCloner.prototype.visitFuncDef):
717         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
718         (StructLayoutBuilder.prototype.visitCallExpression):
719         (StructLayoutBuilder):
720         * WebGPUShadingLanguageRI/Substitution.js:
721         (Substitution.prototype.visitTypeRef):
722         * WebGPUShadingLanguageRI/Test.html:
723         * WebGPUShadingLanguageRI/Test.js:
724         (checkNumber):
725         (set target):
726         (tests.literalBool):
727         (tests.identityBool):
728         (tests.intSimpleMath):
729         (tests.uintSimpleMath):
730         (tests.uint8SimpleMath):
731         (tests.equality):
732         (tests.logicalNegation):
733         (tests.notEquality):
734         (tests.equalityTypeFailure):
735         (tests.generalNegation):
736         (tests.add1):
737         (tests.simpleGeneric):
738         (tests.nameResolutionFailure):
739         (tests.simpleVariable):
740         (tests.simpleAssignment):
741         (tests.simpleDefault):
742         (tests.simpleDereference):
743         (tests.dereferenceStore):
744         (tests.simpleMakePtr):
745         (tests.threadArrayLoad):
746         (tests.threadArrayLoadIntLiteral):
747         (tests.deviceArrayLoad):
748         (tests.threadArrayStore):
749         (tests.deviceArrayStore):
750         (tests.deviceArrayStoreIntLiteral):
751         (tests.simpleProtocol):
752         (tests.typeMismatchReturn):
753         (tests.typeMismatchVariableDecl):
754         (tests.typeMismatchAssignment):
755         (tests.typeMismatchReturnParam):
756         (tests.badAdd):
757         (tests.lexerKeyword):
758         (tests.simpleNoReturn):
759         (tests.simpleUnreachableCode):
760         (tests.simpleStruct):
761         (tests.genericStructInstance):
762         (tests.doubleGenericCallsDoubleGeneric):
763         (tests.doubleGenericCallsSingleGeneric):
764         (tests.loadNull):
765         (tests.storeNull):
766         (tests.returnNull):
767         (tests.dereferenceDefaultNull):
768         (tests.defaultInitializedNull):
769         (tests.passNullToPtrMonomorphic):
770         (tests.passNullToPtrPolymorphic):
771         (tests.passNullToPolymorphic):
772         (tests.loadNullArrayRef):
773         (tests.storeNullArrayRef):
774         (tests.returnNullArrayRef):
775         (tests.dereferenceDefaultNullArrayRef):
776         (tests.defaultInitializedNullArrayRef):
777         (tests.defaultInitializedNullArrayRefIntLiteral):
778         (tests.passNullToPtrMonomorphicArrayRef):
779         (tests.passNullToPtrPolymorphicArrayRef):
780         (tests.returnIntLiteralUint):
781         (tests.returnIntLiteralDouble):
782         (tests.badIntLiteralForInt):
783         (tests.badIntLiteralForUint):
784         (tests.badIntLiteralForDouble):
785         (tests.passNullAndNotNull):
786         (tests.passNullAndNotNullFullPoly):
787         (tests.passNullAndNotNullFullPolyReverse):
788         (tests.nullTypeVariableUnify):
789         (tests.doubleNot):
790         (tests.simpleRecursion):
791         (tests.protocolMonoSigPolyDef):
792         (tests.protocolPolySigPolyDef):
793         (tests.protocolDoublePolySigDoublePolyDef):
794         (tests.protocolDoublePolySigDoublePolyDefExplicit):
795         (tests.variableShadowing):
796         (tests.ifStatement):
797         (tests.ifElseStatement):
798         (tests.ifElseIfStatement):
799         (tests.ifElseIfElseStatement):
800         (tests.returnIf):
801         (tests.simpleWhile):
802         (tests.protocolMonoPolySigDoublePolyDefExplicit):
803         (tests.ambiguousOverloadSimple):
804         (tests.ambiguousOverloadOverlapping):
805         (tests.ambiguousOverloadTieBreak):
806         (tests.intOverloadResolution):
807         (tests.intOverloadResolutionReverseOrder):
808         (tests.intOverloadResolutionGeneric):
809         (tests.intLiteralGeneric):
810         (tests.intLiteralGenericWithProtocols):
811         (tests.uintLiteralGeneric):
812         (tests.uintLiteralGenericWithProtocols):
813         (tests.intLiteralGenericSpecific):
814         (tests.simpleConstexpr):
815         (tests.break):
816         (tests.continue):
817         (tests.doWhile):
818         (tests.forLoop):
819         (tests.chainConstexpr):
820         (tests.chainGeneric):
821         (tests.chainStruct):
822         (tests.chainStructNewlyValid):
823         (tests.chainStructDevice):
824         (tests.paramChainStructDevice):
825         (tests.simpleProtocolExtends):
826         (tests.protocolExtendsTwo):
827         (tests.prefixPlusPlus):
828         (tests.prefixPlusPlusResult):
829         (tests.postfixPlusPlus):
830         (tests.postfixPlusPlusResult):
831         (tests.prefixMinusMinus):
832         (tests.prefixMinusMinusResult):
833         (tests.postfixMinusMinus):
834         (tests.postfixMinusMinusResult):
835         (tests.plusEquals):
836         (tests.plusEqualsResult):
837         (tests.minusEquals):
838         (tests.minusEqualsResult):
839         (tests.timesEquals):
840         (tests.timesEqualsResult):
841         (tests.divideEquals):
842         (tests.divideEqualsResult):
843         (tests.twoIntLiterals):
844         (tests.unifyDifferentLiterals):
845         (tests.unifyDifferentLiteralsBackwards):
846         (tests.unifyVeryDifferentLiterals):
847         (tests.unifyVeryDifferentLiteralsBackwards):
848         (tests.assignUintToInt):
849         (tests.buildArrayThenSumIt):
850         (tests.buildArrayThenSumItUsingArrayReference):
851         (tests.overrideSubscriptStruct):
852         (tests.overrideSubscriptStructAndDoStores):
853         (tests.overrideSubscriptStructAndUsePointers):
854         (tests.overrideSubscriptStructAndUsePointersIncorrectly):
855         (tests.makeArrayRefFromLocal):
856         (tests.makeArrayRefFromPointer):
857         (tests.makeArrayRefFromArrayRef):
858         (tests.simpleLength):
859         (tests.nonArrayRefArrayLengthSucceed):
860         (tests.nonArrayRefArrayLengthFail):
861         (tests.constexprIsNotLValuePtr):
862         (tests.constexprIsNotLValueAssign):
863         (tests.constexprIsNotLValueRMW):
864         (tests.assignLength):
865         (tests.assignLengthHelper):
866         (tests.simpleGetter):
867         (tests.simpleSetter):
868         (tests.genericAccessors):
869         (tests.bitSubscriptAccessor):
870         (tests.nestedSubscriptLValueEmulationSimple):
871         (tests.nestedSubscriptLValueEmulationGeneric):
872         (tests.boolBitAnd):
873         (tests.boolBitOr):
874         (tests.boolBitXor):
875         (tests.boolBitNot):
876         (tests.intBitAnd):
877         (tests.intBitOr):
878         (tests.intBitXor):
879         (tests.intBitNot):
880         (tests.intLShift):
881         (tests.intRShift):
882         (tests.uintBitAnd):
883         (tests.uintBitOr):
884         (tests.uintBitXor):
885         (tests.uintBitNot):
886         (tests.uintLShift):
887         (tests.uintRShift):
888         (tests.uint8BitAnd):
889         (tests.uint8BitOr):
890         (tests.uint8BitXor):
891         (tests.uint8BitNot):
892         (tests.uint8LShift):
893         (tests.uint8RShift):
894         (tests.floatMath):
895         (tests.genericCastInfer):
896         (tests.booleanMath):
897         (tests.typedefArray):
898         (tests.shaderTypes):
899         (tests.builtinVectors):
900         (tests.instantiateStructInStruct):
901         (tests.instantiateStructInStructWithInt2):
902         (tests.simpleEnum):
903         (tests.enumWithManualValues):
904         (tests.enumWithoutZero):
905         (tests.enumDuplicates):
906         (tests.enumWithSomeManualValues):
907         (tests.enumConstexprGenericFunction):
908         (tests.enumConstexprGenericStruct):
909         (tests.trap):
910         (tests.swizzle):
911         (tests.enumWithExplicitIntBase):
912         (tests.enumWithUintBase):
913         (tests.enumFloatBase):
914         (tests.enumPtrBase):
915         (tests.enumArrayRefBase):
916         (tests.emptyStruct):
917         (tests.enumStructBase):
918         (tests.enumNoMembers):
919         (tests.simpleSwitch):
920         (tests.exhaustiveUint8Switch):
921         (tests.notQuiteExhaustiveUint8Switch):
922         (tests.notQuiteExhaustiveUint8SwitchWithDefault):
923         (tests.switchFallThrough):
924         (tests.switchBreak):
925         (tests.enumSwitchBreakExhaustive):
926         (tests.enumSwitchBreakNotQuiteExhaustive):
927         (tests.enumSwitchBreakNotQuiteExhaustiveWithDefault):
928         (tests.simpleRecursiveStruct):
929         (tests.mutuallyRecursiveStruct):
930         (tests.mutuallyRecursiveStructWithPointersBroken):
931         (tests.mutuallyRecursiveStructWithPointers):
932         (tests.linkedList):
933         (tests.pointerToPointer):
934         (tests.arrayRefToArrayRef):
935         (tests.pointerGetter):
936         (tests.loneSetter):
937         (tests.setterWithMismatchedType):
938         (tests.setterWithMatchedType):
939         (tests.operatorWithUninferrableTypeVariable):
940         (tests.operatorWithoutUninferrableTypeVariable):
941         (tests.operatorCastWithUninferrableTypeVariable):
942         (tests.operatorCastWithTypeVariableInferredFromReturnType):
943         (tests.incWrongArgumentLength):
944         (tests.decWrongArgumentLength):
945         (tests.incWrongTypes):
946         (tests.decWrongTypes):
947         (tests.plusWrongArgumentLength):
948         (tests.minusWrongArgumentLength):
949         (tests.timesWrongArgumentLength):
950         (tests.divideWrongArgumentLength):
951         (tests.moduloWrongArgumentLength):
952         (tests.bitAndWrongArgumentLength):
953         (tests.bitOrWrongArgumentLength):
954         (tests.bitXorWrongArgumentLength):
955         (tests.lShiftWrongArgumentLength):
956         (tests.rShiftWrongArgumentLength):
957         (tests.bitNotWrongArgumentLength):
958         (tests.equalsWrongArgumentLength):
959         (tests.lessThanWrongArgumentLength):
960         (tests.lessEqualWrongArgumentLength):
961         (tests.greaterWrongArgumentLength):
962         (tests.greaterEqualWrongArgumentLength):
963         (tests.equalsWrongReturnType):
964         (tests.notEqualsOverload):
965         (tests.lessThanWrongReturnType):
966         (tests.lessEqualWrongReturnType):
967         (tests.greaterThanWrongReturnType):
968         (tests.greaterEqualWrongReturnType):
969         (tests.dotOperatorWrongArgumentLength):
970         (tests.dotOperatorSetterWrongArgumentLength):
971         (tests.loneSetterPointer):
972         (tests.setterWithNoGetterOverload):
973         (tests.setterWithNoGetterOverloadFixed):
974         (tests.anderWithNothingWrong):
975         (tests.anderWithWrongNumberOfArguments):
976         (tests.anderDoesntReturnPointer):
977         (tests.anderDoesntTakeReference):
978         (tests.anderWithArrayRef):
979         (tests.pointerIndexGetter):
980         (tests.loneIndexSetter):
981         (tests.notLoneIndexSetter):
982         (tests.indexSetterWithMismatchedType):
983         (tests.indexOperatorWrongArgumentLength):
984         (tests.indexOperatorSetterWrongArgumentLength):
985         (tests.loneIndexSetterPointer):
986         (tests.indexSetterWithNoGetterOverload):
987         (tests.indexSetterWithNoGetterOverloadFixed):
988         (tests.indexAnderWithNothingWrong):
989         (tests.indexAnderWithWrongNumberOfArguments):
990         (tests.indexAnderDoesntReturnPointer):
991         (tests.indexAnderDoesntTakeReference):
992         (tests.indexAnderWithArrayRef):
993         (tests.devicePtrPtr):
994         (tests.threadgroupPtrPtr):
995         (tests.constantPtrPtr):
996         (tests.pointerIndexGetterInProtocol):
997         (tests.loneIndexSetterInProtocol):
998         (tests.notLoneIndexSetterInProtocol):
999         (tests.indexSetterWithMismatchedTypeInProtocol):
1000         (tests.indexOperatorWrongArgumentLengthInProtocol):
1001         (tests.indexOperatorSetterWrongArgumentLengthInProtocol):
1002         (tests.loneIndexSetterPointerInProtocol):
1003         (tests.indexSetterWithNoGetterOverloadInProtocol):
1004         (tests.indexSetterWithNoGetterOverloadFixedInProtocol):
1005         (tests.indexAnderWithNothingWrongInProtocol):
1006         (tests.indexAnderWithWrongNumberOfArgumentsInProtocol):
1007         (tests.indexAnderDoesntReturnPointerInProtocol):
1008         (tests.indexAnderDoesntTakeReferenceInProtocol):
1009         (tests.indexAnderWithArrayRefInProtocol):
1010         (doTest):
1011         (this.window.let._.of.doTest):
1012         (TEST_literalBool): Deleted.
1013         (TEST_identityBool): Deleted.
1014         (TEST_intSimpleMath): Deleted.
1015         (TEST_uintSimpleMath): Deleted.
1016         (TEST_uint8SimpleMath): Deleted.
1017         (TEST_equality): Deleted.
1018         (TEST_logicalNegation): Deleted.
1019         (TEST_notEquality): Deleted.
1020         (TEST_equalityTypeFailure): Deleted.
1021         (): Deleted.
1022         (TEST_add1): Deleted.
1023         (TEST_simpleGeneric): Deleted.
1024         (TEST_nameResolutionFailure): Deleted.
1025         (TEST_simpleAssignment): Deleted.
1026         (TEST_simpleDefault): Deleted.
1027         (TEST_simpleDereference): Deleted.
1028         (TEST_dereferenceStore): Deleted.
1029         (TEST_simpleMakePtr): Deleted.
1030         (TEST_threadArrayLoad): Deleted.
1031         (TEST_threadArrayLoadIntLiteral): Deleted.
1032         (TEST_deviceArrayLoad): Deleted.
1033         (TEST_threadArrayStore): Deleted.
1034         (TEST_deviceArrayStore): Deleted.
1035         (TEST_deviceArrayStoreIntLiteral): Deleted.
1036         (TEST_simpleProtocol): Deleted.
1037         (TEST_typeMismatchReturn): Deleted.
1038         (TEST_simpleNoReturn): Deleted.
1039         (TEST_genericStructInstance): Deleted.
1040         (TEST_doubleGenericCallsDoubleGeneric): Deleted.
1041         (TEST_doubleGenericCallsSingleGeneric): Deleted.
1042         (TEST_dereferenceDefaultNull): Deleted.
1043         (TEST_dereferenceDefaultNullArrayRef): Deleted.
1044         (TEST_returnIntLiteralDouble): Deleted.
1045         (TEST_badIntLiteralForInt): Deleted.
1046         (TEST_passNullAndNotNullFullPoly): Deleted.
1047         (TEST_passNullAndNotNullFullPolyReverse): Deleted.
1048         (TEST_nullTypeVariableUnify.recurse): Deleted.
1049         (TEST_nullTypeVariableUnify.everyOrder): Deleted.
1050         (TEST_nullTypeVariableUnify.everyPair): Deleted.
1051         (TEST_nullTypeVariableUnify): Deleted.
1052         (TEST_simpleRecursion): Deleted.
1053         (TEST_protocolPolySigPolyDef): Deleted.
1054         (TEST_protocolDoublePolySigDoublePolyDef): Deleted.
1055         (TEST_protocolDoublePolySigDoublePolyDefExplicit): Deleted.
1056         (TEST_variableShadowing): Deleted.
1057         (TEST_ifStatement): Deleted.
1058         (TEST_ifElseStatement): Deleted.
1059         (TEST_ifElseIfStatement): Deleted.
1060         (TEST_ifElseIfElseStatement): Deleted.
1061         (TEST_returnIf): Deleted.
1062         (TEST_simpleWhile): Deleted.
1063         (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted.
1064         (TEST_intOverloadResolution): Deleted.
1065         (TEST_intOverloadResolutionReverseOrder): Deleted.
1066         (TEST_intOverloadResolutionGeneric): Deleted.
1067         (TEST_intLiteralGeneric): Deleted.
1068         (TEST_intLiteralGenericWithProtocols): Deleted.
1069         (TEST_uintLiteralGeneric): Deleted.
1070         (TEST_uintLiteralGenericWithProtocols): Deleted.
1071         (TEST_intLiteralGenericSpecific): Deleted.
1072         (TEST_simpleConstexpr): Deleted.
1073         (TEST_break): Deleted.
1074         (TEST_forLoop): Deleted.
1075         (TEST_chainConstexpr): Deleted.
1076         (TEST_chainGeneric): Deleted.
1077         (TEST_chainStruct): Deleted.
1078         (TEST_chainStructNewlyValid): Deleted.
1079         (TEST_chainStructDevice): Deleted.
1080         (TEST_paramChainStructDevice): Deleted.
1081         (TEST_simpleProtocolExtends): Deleted.
1082         (TEST_protocolExtendsTwo): Deleted.
1083         (TEST_prefixPlusPlus): Deleted.
1084         (TEST_prefixPlusPlusResult): Deleted.
1085         (TEST_postfixPlusPlus): Deleted.
1086         (TEST_postfixPlusPlusResult): Deleted.
1087         (TEST_prefixMinusMinus): Deleted.
1088         (TEST_prefixMinusMinusResult): Deleted.
1089         (TEST_postfixMinusMinus): Deleted.
1090         (TEST_postfixMinusMinusResult): Deleted.
1091         (TEST_plusEquals): Deleted.
1092         (TEST_plusEqualsResult): Deleted.
1093         (TEST_minusEquals): Deleted.
1094         (TEST_minusEqualsResult): Deleted.
1095         (TEST_timesEquals): Deleted.
1096         (TEST_timesEqualsResult): Deleted.
1097         (TEST_divideEquals): Deleted.
1098         (TEST_divideEqualsResult): Deleted.
1099         (TEST_twoIntLiterals): Deleted.
1100         (TEST_unifyDifferentLiterals): Deleted.
1101         (TEST_buildArrayThenSumItUsingArrayReference): Deleted.
1102         (TEST_overrideSubscriptStruct): Deleted.
1103         (TEST_overrideSubscriptStructAndDoStores): Deleted.
1104         (TEST_overrideSubscriptStructAndUsePointers): Deleted.
1105         (TEST_overrideSubscriptStructAndUsePointersIncorrectly): Deleted.
1106         (TEST_makeArrayRefFromPointer): Deleted.
1107         (TEST_makeArrayRefFromArrayRef): Deleted.
1108         (TEST_nonArrayRefArrayLengthSucceed): Deleted.
1109         (TEST_nonArrayRefArrayLengthFail): Deleted.
1110         (TEST_simpleSetter): Deleted.
1111         (TEST_genericAccessors): Deleted.
1112         (TEST_bitSubscriptAccessor): Deleted.
1113         (TEST_nestedSubscriptLValueEmulationSimple): Deleted.
1114         (TEST_nestedSubscriptLValueEmulationGeneric): Deleted.
1115         (TEST_boolBitAnd): Deleted.
1116         (TEST_boolBitOr): Deleted.
1117         (TEST_boolBitXor): Deleted.
1118         (TEST_boolBitNot): Deleted.
1119         (TEST_intBitAnd): Deleted.
1120         (TEST_intBitOr): Deleted.
1121         (TEST_intBitXor): Deleted.
1122         (TEST_intBitNot): Deleted.
1123         (TEST_intLShift): Deleted.
1124         (TEST_intRShift): Deleted.
1125         (TEST_uintBitAnd): Deleted.
1126         (TEST_uintBitOr): Deleted.
1127         (TEST_uintBitXor): Deleted.
1128         (TEST_uintBitNot): Deleted.
1129         (TEST_uintLShift): Deleted.
1130         (TEST_uintRShift): Deleted.
1131         (TEST_uint8BitAnd): Deleted.
1132         (TEST_uint8BitOr): Deleted.
1133         (TEST_uint8BitXor): Deleted.
1134         (TEST_uint8BitNot): Deleted.
1135         (TEST_uint8LShift): Deleted.
1136         (TEST_uint8RShift): Deleted.
1137         (TEST_floatMath): Deleted.
1138         (TEST_booleanMath): Deleted.
1139         (TEST_typedefArray): Deleted.
1140         (TEST_shaderTypes): Deleted.
1141         (TEST_instantiateStructInStruct): Deleted.
1142         (TEST_instantiateStructInStructWithInt2): Deleted.
1143         (TEST_simpleEnum): Deleted.
1144         (TEST_enumWithManualValues): Deleted.
1145         (TEST_enumWithoutZero): Deleted.
1146         (TEST_enumConstexprGenericFunction): Deleted.
1147         (TEST_enumConstexprGenericStruct): Deleted.
1148         (TEST_trap): Deleted.
1149         (TEST_enumWithExplicitIntBase): Deleted.
1150         (TEST_enumWithUintBase): Deleted.
1151         (TEST_enumFloatBase): Deleted.
1152         (TEST_enumStructBase): Deleted.
1153         (TEST_simpleSwitch): Deleted.
1154         (TEST_exhaustiveUint8Switch): Deleted.
1155         (TEST_notQuiteExhaustiveUint8Switch): Deleted.
1156         (TEST_switchFallThrough): Deleted.
1157         (TEST_switchBreak): Deleted.
1158         (TEST_enumSwitchBreakExhaustive): Deleted.
1159         (TEST_enumSwitchBreakNotQuiteExhaustive): Deleted.
1160         (TEST_simpleRecursiveStruct): Deleted.
1161         (TEST_linkedList): Deleted.
1162         * WebGPUShadingLanguageRI/Type.js:
1163         (Type.prototype.get isArray):
1164         * WebGPUShadingLanguageRI/TypeRef.js:
1165         (TypeRef.wrap):
1166         * WebGPUShadingLanguageRI/TypeVariableTracker.js:
1167         (TypeVariableTracker.prototype.set get return):
1168         (TypeVariableTracker.prototype.visitVariableRef):
1169         (TypeVariableTracker):
1170         * WebGPUShadingLanguageRI/Visitor.js:
1171         (Visitor.prototype.visitProtocolDecl):
1172         * WebGPUShadingLanguageRI/index.html:
1173
1174 2017-09-22  Matt Lewis  <jlewis3@apple.com>
1175
1176         Unreviewed, rolling out r222394.
1177
1178         This broke the Windows Debug Build.
1179
1180         Reverted changeset:
1181
1182         "Remove build-webkit's notion of feature flags having a
1183         default value"
1184         https://bugs.webkit.org/show_bug.cgi?id=177338
1185         http://trac.webkit.org/changeset/222394
1186
1187 2017-09-22  Tim Horton <timothy_horton@apple.com> and Michael Catanzaro <mcatanzaro@igalia.com>
1188
1189         Remove build-webkit's notion of feature flags having a default value
1190         https://bugs.webkit.org/show_bug.cgi?id=177338
1191
1192         Reviewed by Alex Christensen.
1193
1194         Delegate feature flag default values to the build system.
1195         (FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone)
1196
1197         * BuildSlaveSupport/build.webkit.org-config/config.json:
1198         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
1199         (Factory.__init__):
1200         Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable
1201         bots instead of --default-cmake-features.
1202
1203         * Scripts/build-webkit:
1204         (cMakeArgsFromFeatures):
1205         Default feature values to 'undef'.
1206         Remove the --default-cmake-features argument; it is now the default.
1207         Add --no-experimental-features to replace it.
1208         Stop printing the default feature flag value in the help.
1209         Avoid propagating undefined values to the build system;
1210         only mention flags that are overridden on the command line.
1211
1212         This has the nice side effect of using the default CMake features
1213         for CMake builds, but still allowing toggling of them using the
1214         prettier --FEATURE and --no-FEATURE arguments.
1215
1216         * Scripts/webkitdirs.pm:
1217         (generateBuildSystemFromCMakeProject):
1218         No longer need to suppress CMake warnings about unused arguments.
1219
1220         * Scripts/webkitperl/FeatureList.pm:
1221         Remove the default values from the feature list.
1222
1223 2017-09-21  Joseph Pecoraro  <pecoraro@apple.com>
1224
1225         Unreviewed, add the ability to skip a test262 test.
1226
1227         * Scripts/run-jsc-stress-tests:
1228         Other handlers have :skip but a few didn't.
1229
1230 2017-09-21  Ryan Haddad  <ryanhaddad@apple.com>
1231
1232         Change architecture for ios-ews queue to arm64.
1233         https://bugs.webkit.org/show_bug.cgi?id=177332
1234
1235         Reviewed by Alexey Proskuryakov.
1236
1237         * Scripts/webkitpy/common/config/ews.json:
1238
1239 2017-09-21  Tim Horton  <timothy_horton@apple.com>
1240
1241         Use 'ninja' from the SDK if it exists
1242         https://bugs.webkit.org/show_bug.cgi?id=177330
1243
1244         Reviewed by Alex Christensen.
1245
1246         * Scripts/webkitdirs.pm:
1247         (canUseNinja):
1248         Check for ninja with xcrun in addition to commandExists() for Cocoa platforms.
1249
1250         (generateBuildSystemFromCMakeProject):
1251         (canUseNinjaGenerator): Deleted.
1252         Remove canUseNinjaGenerator; as noted in bug 177057, the Ninja generator
1253         is available in all versions of CMake supported by WebKit.
1254
1255 2017-09-21  Chris Dumez  <cdumez@apple.com>
1256
1257         Regression(r222308): new API tests are failing for !NETWORK_SESSION
1258         https://bugs.webkit.org/show_bug.cgi?id=177321
1259
1260         Reviewed by Alex Christensen.
1261
1262         Unskip API tests now that they pass everywhere.
1263
1264         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1265         (TEST):
1266
1267 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
1268
1269         Unreviewed, fix ability to run tests in browser.
1270
1271         * WebGPUShadingLanguageRI/Test.html:
1272         * WebGPUShadingLanguageRI/index.html:
1273
1274 2017-09-21  Jonathan Bedard  <jbedard@apple.com>
1275
1276         webkitpy: Ignore failure to get updated selenium version
1277         https://bugs.webkit.org/show_bug.cgi?id=177205
1278         <rdar://problem/34531669>
1279
1280         Reviewed by Lucas Forschler.
1281
1282         Sometime asking PyPI for the latest version of Selenium fails. We should try and
1283         fallback to, at a minimum, version 3.5.0 or a newer installed version.
1284
1285         * Scripts/webkitpy/thirdparty/__init__.py:
1286         (AutoinstallImportHook.greater_than_equal_to_version): Return true if the second
1287         version string is greater than or equal to the first version string.
1288         (AutoinstallImportHook._install_selenium): If we can't get the latest PyPI url,
1289         fallback to version 3.5.0 or a newer installed version.
1290
1291 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
1292
1293         WSL should have some post-instantiation type checking
1294         https://bugs.webkit.org/show_bug.cgi?id=177303
1295
1296         Reviewed by Keith Miller.
1297         
1298         This patch removes the Primitive protocol! Yay!
1299         
1300         The Primitive protocol was an attempt to handle the fact that Metal wouldn't allow us to point a
1301         non-thread pointer at data structures that have pointers. This type checking rule interacts badly with
1302         generics. I was able to get it to mostly work by making Primitive into a dynamic protocol - a type
1303         belongs to it if it happens to be isPrimitive.
1304         
1305         But that was a mistake, since it makes it hard to create pointers that are generic over address space.
1306         Also, it's not an appropriate rule for targeting SPIR-V logical mode. That rule will be different, and
1307         possibly more complicated.
1308         
1309         All of these kinds of rules are easier to implement of we run them after instantiation, since then they
1310         don't get in the way of generics. That's what this patch does.
1311         
1312         This means that we get all of the same type checking power as before, and we still can catch the errors
1313         that Metal requires us to check for. It's easier to do those checks now.
1314         
1315         Finally, this removes the shader type checker's incomplete reimplementation of isPrimitive (which was
1316         called NonNumericSearcher). The shader type checker calls isPrimitive now.
1317
1318         * WebGPUShadingLanguageRI/AddressSpace.js:
1319         (needsPrimitiveProtocol): Deleted.
1320         (protocolSuffix): Deleted.
1321         * WebGPUShadingLanguageRI/All.js:
1322         * WebGPUShadingLanguageRI/Checker.js:
1323         (Checker.prototype._checkShaderType):
1324         (Checker.prototype._checkShaderType.NonNumericSearcher): Deleted.
1325         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType): Deleted.
1326         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType): Deleted.
1327         (Checker.prototype.visitReferenceType): Deleted.
1328         * WebGPUShadingLanguageRI/FuncInstantiator.js:
1329         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
1330         * WebGPUShadingLanguageRI/Inline.js:
1331         (_inlineFunction):
1332         * WebGPUShadingLanguageRI/Intrinsics.js:
1333         (Intrinsics):
1334         * WebGPUShadingLanguageRI/LateChecker.js: Added.
1335         (LateChecker):
1336         (LateChecker.prototype.visitReferenceType):
1337         (LateChecker.prototype._checkShaderType):
1338         (LateChecker.prototype.visitFuncDef):
1339         * WebGPUShadingLanguageRI/LexerToken.js:
1340         (LexerToken.prototype.get isInternal): Deleted.
1341         * WebGPUShadingLanguageRI/NativeType.js:
1342         (NativeType):
1343         (NativeType.prototype.get name):
1344         (NativeType.prototype.get isPrimitive):
1345         (NativeType.prototype.set isPrimitive):
1346         (NativeType.prototype.toString):
1347         * WebGPUShadingLanguageRI/Parse.js:
1348         (parseNative):
1349         * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js:
1350         (programWithUnnecessaryThingsRemoved):
1351         * WebGPUShadingLanguageRI/ProtocolDecl.js:
1352         * WebGPUShadingLanguageRI/ReferenceType.js:
1353         (ReferenceType.prototype.get elementType):
1354         (ReferenceType.prototype.get isPrimitive): Deleted.
1355         * WebGPUShadingLanguageRI/StandardLibrary.js:
1356         * WebGPUShadingLanguageRI/StatementCloner.js:
1357         (StatementCloner.prototype.visitNativeType):
1358         * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:
1359         (synthesizeStructAccessors):
1360         * WebGPUShadingLanguageRI/Test.js:
1361         (TEST_passNullAndNotNullFullPoly):
1362         (TEST_passNullAndNotNullFullPolyReverse):
1363         (TEST_nullTypeVariableUnify):
1364         (TEST_chainStructNewlyValid):
1365         (TEST_chainStructDevice):
1366         (TEST_chainStructInvalid): Deleted.
1367         * WebGPUShadingLanguageRI/Type.js:
1368         (Type.prototype.get isPrimitive):
1369
1370 2017-09-21  Chris Dumez  <cdumez@apple.com>
1371
1372         Unreviewed, temporarily disable new API tests introduced in r222308 until they pass on El Capitan
1373
1374         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1375         (TEST):
1376
1377 2017-09-21  Commit Queue  <commit-queue@webkit.org>
1378
1379         Unreviewed, rolling out r222272.
1380         https://bugs.webkit.org/show_bug.cgi?id=177316
1381
1382         This patch broke builds on some Win EWS bots. (Requested by
1383         perarne on #webkit).
1384
1385         Reverted changeset:
1386
1387         "[Win] Cygwin 64-bit EWS process cannot find Visual Studio
1388         installation."
1389         https://bugs.webkit.org/show_bug.cgi?id=177244
1390         http://trac.webkit.org/changeset/222272
1391
1392 2017-09-21  Filip Pizlo  <fpizlo@apple.com>
1393
1394         Unreviewed, fix a bug in the interactive app that was introduced by bad merging.
1395
1396         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:
1397         (FlattenedStructOffsetGatherer.prototype.visitTypeRef):
1398         (FlattenedStructOffsetGatherer):
1399         * WebGPUShadingLanguageRI/index.html:
1400
1401 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
1402
1403         WSL should support switch
1404         https://bugs.webkit.org/show_bug.cgi?id=176978
1405
1406         Reviewed by Keith Miller.
1407         
1408         This adds fairly complete support for switch statements. This includes things like verifying
1409         whether or not a default statement is needed. This even works when the programmer lists all of
1410         the values of an integer type.
1411         
1412         To test that last part, this patch adds uint8 support. It's easy add it, but of course it
1413         meant adding a lot of tests.
1414         
1415         This also fixes enum bugs, since switch does things to enums that we previously didn't test.
1416
1417         * WebGPUShadingLanguageRI/All.js:
1418         * WebGPUShadingLanguageRI/Checker.js:
1419         (Checker.prototype.visitSwitchStatement):
1420         * WebGPUShadingLanguageRI/EnumLiteral.js:
1421         (EnumLiteral.prototype.get valueForSelectedType):
1422         * WebGPUShadingLanguageRI/EnumType.js:
1423         (EnumType.prototype.allValues):
1424         (EnumType.prototype.valuesEqual):
1425         * WebGPUShadingLanguageRI/Evaluator.js:
1426         (Evaluator.prototype.visitSwitchStatement):
1427         * WebGPUShadingLanguageRI/Inliner.js:
1428         (Inliner.prototype.visitCallExpression):
1429         (Inliner):
1430         (Inliner.prototype.visitCastExpression): Deleted.
1431         * WebGPUShadingLanguageRI/Intrinsics.js:
1432         (Intrinsics.):
1433         (Intrinsics):
1434         * WebGPUShadingLanguageRI/LoopChecker.js:
1435         (LoopChecker):
1436         (LoopChecker.prototype.visitFuncDef):
1437         (LoopChecker.prototype.visitWhileLoop):
1438         (LoopChecker.prototype.visitDoWhileLoop):
1439         (LoopChecker.prototype.visitForLoop):
1440         (LoopChecker.prototype.visitSwitchStatement):
1441         (LoopChecker.prototype.visitBreak):
1442         (LoopChecker.prototype.visitContinue):
1443         * WebGPUShadingLanguageRI/Node.js:
1444         (Node.prototype.commit):
1445         * WebGPUShadingLanguageRI/Parse.js:
1446         (parseSwitchCase):
1447         (parseSwitchStatement):
1448         (parseStatement):
1449         (parseBlockBody):
1450         (parseBlock):
1451         * WebGPUShadingLanguageRI/Prepare.js:
1452         (let.prepare):
1453         * WebGPUShadingLanguageRI/ReturnChecker.js:
1454         (ReturnChecker.prototype._mergeReturnStyle):
1455         (ReturnChecker.prototype.visitIfStatement):
1456         (ReturnChecker.prototype.visitWhileLoop):
1457         (ReturnChecker.prototype.visitDoWhileLoop):
1458         (ReturnChecker.prototype.visitForLoop):
1459         (ReturnChecker.prototype.visitSwitchStatement):
1460         (ReturnChecker.prototype.visitContinue):
1461         (ReturnChecker):
1462         * WebGPUShadingLanguageRI/Rewriter.js:
1463         (Rewriter.prototype.visitSwitchStatement):
1464         (Rewriter.prototype.visitSwitchCase):
1465         * WebGPUShadingLanguageRI/StandardLibrary.js:
1466         (uint8.operator):
1467         (bool.operator):
1468         (_generateSwizzle):
1469         * WebGPUShadingLanguageRI/SwitchCase.js: Added.
1470         (SwitchCase):
1471         (SwitchCase.prototype.get origin):
1472         (SwitchCase.prototype.get isDefault):
1473         (SwitchCase.prototype.get value):
1474         (SwitchCase.prototype.get body):
1475         (SwitchCase.prototype.toString):
1476         * WebGPUShadingLanguageRI/SwitchStatement.js: Added.
1477         (SwitchStatement):
1478         (SwitchStatement.prototype.get origin):
1479         (SwitchStatement.prototype.get value):
1480         (SwitchStatement.prototype.add):
1481         (SwitchStatement.prototype.get switchCases):
1482         (SwitchStatement.prototype.toString):
1483         * WebGPUShadingLanguageRI/Test.html:
1484         * WebGPUShadingLanguageRI/Test.js:
1485         (makeUint8):
1486         (makeEnum):
1487         (checkUint8):
1488         (TEST_uint8SimpleMath):
1489         (TEST_equality):
1490         (TEST_notEquality):
1491         (TEST_uint8BitAnd):
1492         (TEST_uint8BitOr):
1493         (TEST_uint8BitXor):
1494         (TEST_uint8BitNot):
1495         (TEST_uint8LShift):
1496         (TEST_uint8RShift):
1497         (TEST_enumWithExplicitIntBase):
1498         (TEST_enumWithUintBase):
1499         (TEST_enumFloatBase):
1500         (TEST_enumStructBase):
1501         (TEST_simpleSwitch):
1502         (TEST_exhaustiveUint8Switch):
1503         (TEST_notQuiteExhaustiveUint8Switch):
1504         (TEST_switchFallThrough):
1505         (TEST_switchBreak):
1506         (TEST_enumSwitchBreakExhaustive):
1507         (TEST_enumSwitchBreakNotQuiteExhaustive):
1508         (doTest):
1509         * WebGPUShadingLanguageRI/UnificationContext.js:
1510         (UnificationContext):
1511         (UnificationContext.prototype.addExtraNode):
1512         (UnificationContext.prototype.get nodes):
1513         * WebGPUShadingLanguageRI/Visitor.js:
1514         (Visitor.prototype.visitProtocolDecl):
1515         * WebGPUShadingLanguageRI/index.html:
1516
1517 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
1518
1519         WSL needs a way to verify that structs are not cyclic
1520         https://bugs.webkit.org/show_bug.cgi?id=177044
1521
1522         Reviewed by Myles Maxfield.
1523         
1524         This adds a recursive type checking phase. Even before adding this phase, the compiler would
1525         successfully detect recursive types - but at the cost of also rejecting programs that had
1526         recursive types indirectly through pointers. To make both things work, I had to change Visitor
1527         to no longer visit TypeRef.type by default. This resulted in some other changes in a few other
1528         parts of the code that previously relied on that behavior.
1529
1530         * WebGPUShadingLanguageRI/All.js:
1531         * WebGPUShadingLanguageRI/CheckRecursiveTypes.js: Added.
1532         (checkRecursiveTypes):
1533         * WebGPUShadingLanguageRI/Checker.js:
1534         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
1535         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
1536         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitTypeRef):
1537         (Checker.prototype._checkShaderType.NonNumericSearcher):
1538         (Checker.prototype._checkShaderType):
1539         (Checker.prototype.visitTypeRef):
1540         * WebGPUShadingLanguageRI/NameResolver.js:
1541         (NameResolver.prototype.visitProtocolDecl):
1542         * WebGPUShadingLanguageRI/Prepare.js:
1543         (let.prepare):
1544         * WebGPUShadingLanguageRI/RecursiveTypeChecker.js: Added.
1545         (RecursiveTypeChecker):
1546         (RecursiveTypeChecker.prototype.visitFuncDef):
1547         (RecursiveTypeChecker.prototype.visitNativeFunc):
1548         (RecursiveTypeChecker.prototype.visitStructType):
1549         (RecursiveTypeChecker.prototype.visitReferenceType):
1550         (RecursiveTypeChecker.prototype.visitTypeRef):
1551         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
1552         (StructLayoutBuilder.prototype.visitTypeRef):
1553         (StructLayoutBuilder):
1554         * WebGPUShadingLanguageRI/Test.html:
1555         * WebGPUShadingLanguageRI/Test.js:
1556         (TEST_simpleRecursiveStruct):
1557         * WebGPUShadingLanguageRI/TypeDefResolver.js:
1558         (TypeDefResolver.prototype.visitTypeRef):
1559         (TypeDefResolver):
1560         * WebGPUShadingLanguageRI/Visitor.js:
1561         (Visitor.prototype.visitProtocolDecl):
1562         * WebGPUShadingLanguageRI/index.html:
1563
1564 2017-09-21  Ryan Haddad  <ryanhaddad@apple.com>
1565
1566         Update TestResultsServer for iOS 11 queues.
1567         https://bugs.webkit.org/show_bug.cgi?id=177285
1568
1569         Reviewed by Alexey Proskuryakov.
1570
1571         * TestResultServer/static-dashboards/builders.jsonp:
1572
1573 2017-09-21  Alex Christensen  <achristensen@webkit.org>
1574
1575         REGRESSION(r221465) WKWebViews without WebGL delegate callbacks crash when WebGL contexts are created
1576         https://bugs.webkit.org/show_bug.cgi?id=177306
1577         <rdar://problem/34351988>
1578
1579         Reviewed by Chris Dumez.
1580
1581         * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm:
1582         (-[WebGLTestDelegate webView:startURLSchemeTask:]):
1583         (-[DelegateWithoutWebGL webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
1584         (TEST):
1585
1586 2017-09-20  Joseph Pecoraro  <pecoraro@apple.com>
1587
1588         Update test262 tests
1589         https://bugs.webkit.org/show_bug.cgi?id=177220
1590
1591         Reviewed by Saam Barati and Yusuke Suzuki.
1592
1593         * Scripts/import-test262-tests:
1594         - better detect upstream git repository url from import location
1595         - update JSTest test262 resources when importing from repository
1596         - take seconds instead of 20+ minutes to write yaml with --failures
1597         - update "negative" command to only include just the exception type
1598
1599 2017-09-20  Chris Dumez  <cdumez@apple.com>
1600
1601         [WK2] Add API to get the redirect chain of a WKDownload
1602         https://bugs.webkit.org/show_bug.cgi?id=176628
1603         <rdar://problem/34338279>
1604
1605         Reviewed by Alex Christensen.
1606
1607         Add API test coverage for the 2 cases:
1608         1. Download started as a download and is redirected while
1609            downloading.
1610         2. Download started as a load and was redirected during the
1611            initial load.
1612
1613         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1614         (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]):
1615         (-[RedirectedDownloadDelegate _downloadDidFinish:]):
1616         (TEST):
1617
1618 2017-09-20  Alex Christensen  <achristensen@webkit.org>
1619
1620         Add infrastructure for adding custom headers to requests per website
1621         https://bugs.webkit.org/show_bug.cgi?id=177255
1622
1623         Reviewed by Geoffrey Garen.
1624
1625         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1626         * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp: Added.
1627         (shouldRemainUnchanged):
1628         (shouldBeInvalid):
1629         (shouldBecome):
1630         (TEST):
1631         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
1632         (TEST):
1633
1634 2017-09-20  Daniel Bates  <dabates@apple.com>
1635
1636         Spelling and grammar dots should not overlap
1637         https://bugs.webkit.org/show_bug.cgi?id=177265
1638         <rdar://problem/34556424>
1639
1640         Reviewed by David Hyatt.
1641
1642         Add unit tests for the subdivision algorithm.
1643
1644         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1645         * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Added.
1646         (WebCore::operator<<):
1647         (WebCore::operator==):
1648         (TestWebKitAPI::TEST):
1649
1650 2017-09-20  Filip Pizlo  <fpizlo@apple.com>
1651
1652         WSL should not type-check functions in the standard library that it does not use
1653         https://bugs.webkit.org/show_bug.cgi?id=177269
1654
1655         Reviewed by JS Bastien.
1656         
1657         Once we added all of the swizzling operators, the size of the standard library ballooned to the point
1658         where it's just not practical to compile anything anymore. If you want to compile
1659         "int foo(int x) { return x}" then it will take some ridiculous amount of time (many seconds) because WSL
1660         will have to type check all of those swizzling operators.
1661         
1662         This change makes it so that after parsing the whole program, we remove the things that we aren't using.
1663         We can make a really good estimate of what we need even before doing any name resolution. In practice,
1664         this change removes almost all of the things from Program before we get to the hard work of type
1665         checking. That's true because the standard library contains _many_ things and you'd have to try very
1666         hard to use all of them.
1667         
1668         This is a 13x speed-up for Test.js. It went from 155 seconds to 12 seconds on my machine.
1669
1670         * WebGPUShadingLanguageRI/All.js:
1671         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
1672         (ConstexprTypeParameter.prototype.get origin):
1673         * WebGPUShadingLanguageRI/Intrinsics.js:
1674         * WebGPUShadingLanguageRI/Lexer.js:
1675         (Lexer):
1676         (Lexer.prototype.get originKind):
1677         * WebGPUShadingLanguageRI/LexerToken.js:
1678         (LexerToken.prototype.get lexer):
1679         (LexerToken.prototype.get origin):
1680         (LexerToken.prototype.get originKind):
1681         (LexerToken.prototype.get isInternal):
1682         * WebGPUShadingLanguageRI/NameContext.js:
1683         (isWildcardKind):
1684         (NameContext.prototype.add):
1685         (NameContext.prototype.get let):
1686         (NameContext.prototype.mapFor): Deleted.
1687         * WebGPUShadingLanguageRI/NameFinder.js: Added.
1688         (NameFinder):
1689         (NameFinder.get worklist):
1690         * WebGPUShadingLanguageRI/NameResolver.js:
1691         (NameResolver.prototype.visitProtocolDecl):
1692         * WebGPUShadingLanguageRI/OriginKind.js: Added.
1693         (isOriginKind):
1694         * WebGPUShadingLanguageRI/Prepare.js:
1695         (let.prepare):
1696         * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js: Added.
1697         (programWithUnnecessaryThingsRemoved):
1698         * WebGPUShadingLanguageRI/Test.html:
1699         * WebGPUShadingLanguageRI/Test.js:
1700         (doTest):
1701         * WebGPUShadingLanguageRI/index.html:
1702
1703 2017-09-20  Alex Christensen  <achristensen@webkit.org>
1704
1705         Remove ActionType::CSSDisplayNoneStyleSheet
1706         https://bugs.webkit.org/show_bug.cgi?id=177275
1707
1708         Reviewed by Andy Estes.
1709
1710         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
1711         (WebCore::ContentExtensions::operator<<):
1712         (TestWebKitAPI::testRequest):
1713         (TestWebKitAPI::TEST_F):
1714
1715 2017-09-20  Jonathan Bedard  <jbedard@apple.com>
1716
1717         Device iOS 11 builds fail with FileProvider linker errors
1718         https://bugs.webkit.org/show_bug.cgi?id=177272
1719         <rdar://problem/34557680>
1720
1721         Reviewed by David Kilzer.
1722
1723         For iOS device and simulator, the SYSTEM_LIBRARY_DIR should never
1724         be on the framework search path as neither platform should ever link
1725         with Mac frameworks.
1726
1727         * DumpRenderTree/mac/Configurations/Base.xcconfig:
1728         * WebKitTestRunner/Configurations/Base.xcconfig:
1729
1730 2017-09-20  Alex Christensen  <achristensen@webkit.org>
1731
1732         Remove ActionType::InvalidAction
1733         https://bugs.webkit.org/show_bug.cgi?id=177262
1734
1735         Reviewed by Tim Horton.
1736
1737         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
1738         (WebCore::ContentExtensions::operator<<):
1739
1740 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
1741
1742         Make a playground where people can try WSL
1743         https://bugs.webkit.org/show_bug.cgi?id=177125
1744
1745         Reviewed by Filip Pizlo.
1746
1747         This patch creates a webpage, index.html, which lets users type in a WSL program and
1748         run it, and see the results.
1749
1750         * WebGPUShadingLanguageRI/All.js:
1751         * WebGPUShadingLanguageRI/CallFunction.js:
1752         (callFunction):
1753         * WebGPUShadingLanguageRI/Checker.js:
1754         (Checker):
1755         (Checker.prototype._checkShaderType.NonNumericSearcher):
1756         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
1757         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
1758         (Checker.prototype._checkShaderType):
1759         (Checker.prototype.visitFuncDef):
1760         (Checker.prototype._requireBool):
1761         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js: Copied from Tools/WebGPUShadingLanguageRI/CallFunction.js.
1762         (FlattenedStructOffsetGatherer):
1763         (FlattenedStructOffsetGatherer.prototype.get result):
1764         (FlattenedStructOffsetGatherer.prototype.visitReferenceType):
1765         (FlattenedStructOffsetGatherer.prototype.visitField):
1766         (FlattenedStructOffsetGatherer.prototype.visitNativeType):
1767         * WebGPUShadingLanguageRI/Func.js:
1768         (Func.prototype.toDeclString):
1769         * WebGPUShadingLanguageRI/Inline.js:
1770         (resolveInlinedFunction):
1771         * WebGPUShadingLanguageRI/NameContext.js:
1772         (NameContext.prototype.get let):
1773         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
1774         (resolveOverloadImpl):
1775         * WebGPUShadingLanguageRI/StandardLibrary.js:
1776         * WebGPUShadingLanguageRI/Test.html:
1777         * WebGPUShadingLanguageRI/Test.js:
1778         (TEST_shaderTypes):
1779         * WebGPUShadingLanguageRI/index.html: Added.
1780
1781 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
1782
1783         [WSL] Restrict vertex and fragment entry points according to WSL.md
1784         https://bugs.webkit.org/show_bug.cgi?id=177253
1785
1786         Reviewed by Filip Pizlo.
1787
1788         Entry points can't have template arguments, and their argument/return types need to be restricted.
1789
1790         * WebGPUShadingLanguageRI/Checker.js:
1791         (Checker):
1792         (Checker.prototype._checkShaderType.NonNumericSearcher):
1793         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType):
1794         (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType):
1795         (Checker.prototype._checkShaderType):
1796         (Checker.prototype.visitFuncDef):
1797         (Checker.prototype._requireBool):
1798         * WebGPUShadingLanguageRI/Func.js:
1799         (Func.prototype.toDeclString):
1800         * WebGPUShadingLanguageRI/Test.js:
1801         (TEST_shaderTypes):
1802
1803 2017-09-20  Per Arne Vollan  <pvollan@apple.com>
1804
1805         [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation.
1806         https://bugs.webkit.org/show_bug.cgi?id=177244
1807
1808         Reviewed by Alex Christensen.
1809
1810         The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder.
1811
1812         * EWSTools/start-queue-win.sh:
1813
1814 2017-09-20  Myles C. Maxfield  <mmaxfield@apple.com>
1815
1816         Create vector swizzle operators in WSL's standard library
1817         https://bugs.webkit.org/show_bug.cgi?id=177116
1818
1819         Reviewed by Filip Pizlo.
1820
1821         Because there are 481 possible swizzling operators, StandardLibrary.js generates them
1822         instead of including them by hand.
1823
1824         Adding so many functions slows down the compiler quite a bit.
1825
1826         * WebGPUShadingLanguageRI/Prepare.js:
1827         (prepare):
1828         * WebGPUShadingLanguageRI/StandardLibrary.js:
1829         (intToString):
1830         (_generateSwizzle):
1831
1832 2017-09-20  Ms2ger  <Ms2ger@igalia.com>
1833
1834         [WPE] Update fontconfig to 2.12.4.
1835         https://bugs.webkit.org/show_bug.cgi?id=177228
1836
1837         Reviewed by Carlos Garcia Campos.
1838
1839         * wpe/jhbuild.modules:
1840         * wpe/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS-18.patch: Removed.
1841
1842 2017-09-19  Myles C. Maxfield  <mmaxfield@apple.com>
1843
1844         WSL should be able to trap when something fatal happens
1845         https://bugs.webkit.org/show_bug.cgi?id=177110
1846
1847         Reviewed by Filip Pizlo.
1848
1849         WSL programs can include a statement "trap;" which causes the entry
1850         point to immediately return the default value of its return type.
1851         This is implemented by throw/catch and populateDefaultValue().
1852
1853         * WebGPUShadingLanguageRI/All.js:
1854         * WebGPUShadingLanguageRI/EvaluationCommon.js:
1855         * WebGPUShadingLanguageRI/Evaluator.js:
1856         (Evaluator.prototype.visitTrapStatement):
1857         * WebGPUShadingLanguageRI/Parse.js:
1858         (parseStatement):
1859         * WebGPUShadingLanguageRI/ReturnChecker.js:
1860         (ReturnChecker.prototype.visitTrapStatement):
1861         * WebGPUShadingLanguageRI/Rewriter.js:
1862         (Rewriter.prototype.visitTrapStatement):
1863         * WebGPUShadingLanguageRI/StandardLibrary.js:
1864         * WebGPUShadingLanguageRI/Test.html:
1865         * WebGPUShadingLanguageRI/Test.js:
1866         * WebGPUShadingLanguageRI/TrapStatement.js: Copied from Tools/WebGPUShadingLanguageRI/EvaluationCommon.js.
1867         (TrapStatement):
1868         (TrapStatement.prototype.get origin):
1869         (TrapStatement.prototype.toString):
1870         * WebGPUShadingLanguageRI/Visitor.js:
1871         (Visitor.prototype.visitProtocolDecl):
1872
1873 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
1874
1875         Unreviewed follow-up to r222229, remove invalid triggers.
1876
1877         * BuildSlaveSupport/build.webkit.org-config/config.json:
1878
1879 2017-09-19  Simon Fraser  <simon.fraser@apple.com>
1880
1881         tiled-drawing/tiled-backing-in-window.html fails on Retina displays
1882         https://bugs.webkit.org/show_bug.cgi?id=177113
1883
1884         Reviewed by Tim Horton.
1885
1886         This test removes the view from the window, and then dumps the layer tree, at which point
1887         some layers would report a contentsScale of 2 on Retina displays.
1888
1889         This occurs because WebKitTestRunner overrides the default device scale factor on NSWindow,
1890         but windowless views fall back to [NSScreen mainScreen].backingScaleFactor (in WebViewImpl::intrinsicDeviceScaleFactor()).
1891
1892         Fix by having PlatformWebView::changeWindowScaleIfNeeded() call -_setOverrideDeviceScaleFactor: on the view.
1893
1894         * WebKitTestRunner/mac/PlatformWebViewMac.mm:
1895         (WTR::PlatformWebView::changeWindowScaleIfNeeded):
1896
1897 2017-09-19  Wenson Hsieh  <wenson_hsieh@apple.com>
1898
1899         REGRESSION (r215613): Incorrect corners clipping with border-radius
1900         https://bugs.webkit.org/show_bug.cgi?id=176498
1901         <rdar://problem/34112607>
1902
1903         Reviewed by Tim Horton.
1904
1905         Add WebCore API tests for RoundedRect::contains().
1906
1907         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1908         * TestWebKitAPI/Tests/WebCore/RoundedRectTests.cpp: Added.
1909         (TestWebKitAPI::layoutRect):
1910         (TestWebKitAPI::TEST):
1911
1912 2017-09-19  Youenn Fablet  <youenn@apple.com>
1913
1914         Allow WTF::map to use any class that is iterable and has a size getter
1915         https://bugs.webkit.org/show_bug.cgi?id=177026
1916
1917         Reviewed by Darin Adler.
1918
1919         * TestWebKitAPI/Tests/WTF/Vector.cpp:
1920         (TestWebKitAPI::TEST):
1921
1922 2017-09-19  Ryan Haddad  <ryanhaddad@apple.com>
1923
1924         Update bot configuration for iOS 11.
1925         https://bugs.webkit.org/show_bug.cgi?id=177165
1926
1927         Reviewed by Alexey Proskuryakov.
1928
1929         * BuildSlaveSupport/build.webkit.org-config/config.json:
1930         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
1931         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
1932         (BubbleQueueServer):
1933         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
1934         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
1935         (WebKitBuildbot):
1936         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
1937         (table.queue-grid tr.platform.ios-simulator-10 img.logo): Deleted.
1938         (table.queue-grid tr.platform.ios-10 img.logo): Deleted.
1939         * BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
1940         (_should_file_trigger_build):
1941         * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
1942         (ShouldBuildTest):
1943         (ShouldBuildTest.test_should_build):
1944
1945 2017-09-19  Filip Pizlo  <fpizlo@apple.com>
1946
1947         Primitive protocol should have capital name
1948         https://bugs.webkit.org/show_bug.cgi?id=177097
1949
1950         Reviewed by JF Bastien.
1951         
1952         As soon as I started programming in WSL, I found that I preferred to capitalize protocol names. So, my
1953         early decision to call the primitive protocol "primitive" instead of "Primitive" seems absurd now. This
1954         change reverses that decision.
1955         
1956         Aesthetically, this is a slight improvement. For example:
1957         
1958             struct Bar<T:Primitive> {
1959                 Foo<device T^> f;
1960             }
1961
1962         This makes more sense since all of the non-keyword type identifiers are capital.
1963         
1964         The one place where this is an aesthetic regression is native primitive typedefs, which now look like:
1965         
1966             native Primitive typedef bool;
1967         
1968         I'm happy with that tradeoff, since native typedefs are only in the standard library. Users don't see
1969         this.
1970
1971         * WebGPUShadingLanguageRI/AddressSpace.js:
1972         (protocolSuffix):
1973         * WebGPUShadingLanguageRI/Intrinsics.js:
1974         (Intrinsics):
1975         * WebGPUShadingLanguageRI/NativeType.js:
1976         (NativeType.prototype.toString):
1977         (NativeType):
1978         * WebGPUShadingLanguageRI/Parse.js:
1979         (parseNative):
1980         * WebGPUShadingLanguageRI/StandardLibrary.js:
1981         * WebGPUShadingLanguageRI/Test.js:
1982         (TEST_passNullAndNotNullFullPoly):
1983         (TEST_passNullAndNotNullFullPolyReverse):
1984
1985 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
1986
1987         Cannot put typedefs of templated structs inside structs
1988         https://bugs.webkit.org/show_bug.cgi?id=177123
1989
1990         Reviewed by Michael Saboff.
1991         
1992         Ever since I wrote the generic type instantiation code in WSL, it had a bizarre stink to it. I
1993         did not know what it was, until I met this test case:
1994         
1995             struct Foo { int2 x; }
1996         
1997         The problem was that Type has a getter called instantiatedType, which invoked
1998         InstantiateImmediates. That's great. Where we went wrong was that TypeRef overrode
1999         instantiatedType, and then InstantiateImmediates called TypeRef.instantiatedType from its
2000         visitTypeRef. What a mess. None of that was necessary for anything, and it was just wrong. This
2001         patch fixes it so that:
2002         
2003         - Type has an instantiatedType getter, which does InstantiateImmediates. I didn't change this.
2004           This was the only part of the status quo that really made sense.
2005         
2006         - TypeRef no longer overrides instantiatedType.
2007         
2008         - InstantianteImmediates.prototype.visitTypeRef now does what TypeRef's instantiatedType would
2009           have done.
2010         
2011         And voila! This test case passes and so do all of the other test cases.
2012         
2013         The reason why that specific test case did not work was that the use of a TypeDef (int2) for
2014         a generic type instantiation (vec2<int>) caused there to be two TypeRef's in a row, sorta like
2015         this, if we could use wrap() to denote a TypeRef that just wrapped another type:
2016         
2017             wrap(vec2<int>)
2018         
2019         We would call instantiatedType on this monstrosity. Since TypeRef overrode instantiatedType,
2020         we would stop there because that TypeRef has no type arguments - it's just a wrapper. Well,
2021         actually, we'd do something a bit stranger than stopping there - there's more to the story -
2022         but the effect was the same. Now we do InstantiateImmediates, which recursively builds a new
2023         type. This chews through the wrapper and then instantiates the wrapped type, as we want it to.
2024         Also, this approach no longer has the stink. instantiatedType isn't overriden by anyone
2025         anymore!
2026
2027         * WebGPUShadingLanguageRI/Checker.js:
2028         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
2029         (InstantiateImmediates.prototype.visitTypeRef):
2030         (InstantiateImmediates.prototype.visitReferenceType): Deleted.
2031         * WebGPUShadingLanguageRI/Test.js:
2032         (TEST_instantiateStructInStructWithInt2):
2033         * WebGPUShadingLanguageRI/TypeRef.js:
2034         (TypeRef.wrap):
2035         (TypeRef.prototype.setTypeAndArguments):
2036         (TypeRef.prototype.toString):
2037         (TypeRef):
2038         (TypeRef.prototype.get instantiatedType): Deleted.
2039
2040 2017-09-19  Per Arne Vollan  <pvollan@apple.com>
2041
2042         [Win] WebKit fails to build with 64-bit Perl.
2043         https://bugs.webkit.org/show_bug.cgi?id=177106
2044
2045         Reviewed by Brent Fulgham.
2046
2047         Visual Studio is installed in the 32-bit program files folder.
2048  
2049         * Scripts/webkitdirs.pm:
2050         (programFilesPathX86):
2051         (visualStudioInstallDir):
2052         (msBuildInstallDir):
2053
2054 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2055
2056         [WSL] Cannot put templated structs inside structs
2057         https://bugs.webkit.org/show_bug.cgi?id=177120
2058
2059         Reviewed by Myles Maxfield.
2060         
2061         It turns out that we still need to instantiate structs even if not passing type arguments,
2062         since its fields may need to be instantiated.
2063         
2064         This makes Myles's test case pass. When writing the test case, I encountered parser bugs, and
2065         I fixed them.
2066
2067         * WebGPUShadingLanguageRI/CallFunction.js:
2068         (callFunction):
2069         * WebGPUShadingLanguageRI/Checker.js:
2070         (Checker.prototype.visitReferenceType):
2071         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2072         (FuncInstantiator.prototype.getUnique):
2073         (FuncInstantiator):
2074         * WebGPUShadingLanguageRI/Parse.js:
2075         (parseSuffixOperator):
2076         (parsePossibleSuffix):
2077         (parsePostIncrement):
2078         * WebGPUShadingLanguageRI/StructType.js:
2079         (StructType.prototype.instantiate):
2080         * WebGPUShadingLanguageRI/Test.js:
2081         (checkNumber):
2082         (checkEnum):
2083         (TEST_instantiateStructInStruct):
2084         * WebGPUShadingLanguageRI/TypeRef.js:
2085         (TypeRef.prototype.get instantiatedType):
2086         (TypeRef.prototype.get isPrimitive):
2087
2088 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2089
2090         WSL should support enum
2091         https://bugs.webkit.org/show_bug.cgi?id=176977
2092
2093         Reviewed by Myles Maxfield.
2094         
2095         This implements enum. Enums members are referenced Java-style. For example, if we have an enum like:
2096         
2097             enum Bank {
2098                 GP,
2099                 FP
2100             }
2101         
2102         Then you refer to the members by saying Bank.GP and Bank.FP.
2103         
2104         Also adds a hack that makes operator- on a literal fold the literal. This fixes two issues:
2105         
2106         - Lets you use negative literals in constexprs.
2107         - Means that negative literals also get literal type unification.
2108         
2109         WSL's constexpr support is really thin, but I think it's all we really need for now.
2110         
2111         * WebGPUShadingLanguageRI/All.js:
2112         * WebGPUShadingLanguageRI/Checker.js:
2113         (Checker.prototype.visitEnumType):
2114         (Checker.prototype.visitEnumLiteral):
2115         * WebGPUShadingLanguageRI/ConstexprFolder.js: Added.
2116         (ConstexprFolder.prototype.visitCallExpression):
2117         (ConstexprFolder.prototype.visitTypeOrVariableRef):
2118         (ConstexprFolder):
2119         * WebGPUShadingLanguageRI/CreateLiteral.js:
2120         (createLiteral.GenericLiteral.prototype.get valueForSelectedType):
2121         (createLiteral.GenericLiteral.prototype.get negConstexpr):
2122         * WebGPUShadingLanguageRI/DoubleLiteral.js:
2123         (let.DoubleLiteral.createLiteral.negConstexpr):
2124         * WebGPUShadingLanguageRI/EBufferBuilder.js:
2125         (EBufferBuilder.prototype.visitEnumLiteral):
2126         * WebGPUShadingLanguageRI/EnumLiteral.js: Added.
2127         (EnumLiteral):
2128         (EnumLiteral.prototype.get member):
2129         (EnumLiteral.prototype.get type):
2130         (EnumLiteral.prototype.get isConstexpr):
2131         (EnumLiteral.prototype.unifyImpl):
2132         (EnumLiteral.prototype.toString):
2133         * WebGPUShadingLanguageRI/EnumMember.js: Added.
2134         (EnumMember):
2135         (EnumMember.prototype.get origin):
2136         (EnumMember.prototype.get name):
2137         (EnumMember.prototype.toString):
2138         * WebGPUShadingLanguageRI/EnumType.js: Added.
2139         (EnumType):
2140         (EnumType.prototype.add):
2141         (EnumType.prototype.get origin):
2142         (EnumType.prototype.get name):
2143         (EnumType.prototype.get baseType):
2144         (EnumType.prototype.get memberNames):
2145         (EnumType.prototype.memberByName):
2146         (EnumType.prototype.get members):
2147         (EnumType.prototype.get memberMap):
2148         (EnumType.prototype.get isPrimitive):
2149         (EnumType.prototype.populateDefaultValue):
2150         (EnumType.prototype.get size):
2151         (EnumType.prototype.toString):
2152         * WebGPUShadingLanguageRI/Evaluator.js:
2153         (Evaluator.prototype.visitGenericLiteral):
2154         (Evaluator.prototype.visitEnumLiteral):
2155         * WebGPUShadingLanguageRI/FloatLiteral.js:
2156         (let.FloatLiteral.createLiteral.negConstexpr):
2157         * WebGPUShadingLanguageRI/FoldConstexprs.js: Added.
2158         (foldConstexprs):
2159         * WebGPUShadingLanguageRI/IntLiteral.js:
2160         (let.IntLiteral.createLiteral.negConstexpr):
2161         * WebGPUShadingLanguageRI/Intrinsics.js:
2162         (Intrinsics):
2163         * WebGPUShadingLanguageRI/NameResolver.js:
2164         (NameResolver.prototype.visitProtocolDecl):
2165         * WebGPUShadingLanguageRI/Parse.js:
2166         (parseConstexpr):
2167         (parsePossibleSuffix):
2168         (parseEnumMember):
2169         (parseEnumType):
2170         (parse):
2171         * WebGPUShadingLanguageRI/Prepare.js:
2172         (prepare):
2173         * WebGPUShadingLanguageRI/Rewriter.js:
2174         (Rewriter.prototype.visitEnumType):
2175         (Rewriter.prototype.visitEnumMember):
2176         (Rewriter.prototype.visitEnumLiteral):
2177         * WebGPUShadingLanguageRI/StructType.js:
2178         (StructType.prototype.get origin):
2179         (StructType.prototype.instantiate):
2180         * WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js: Added.
2181         (synthesizeEnumFunctions):
2182         * WebGPUShadingLanguageRI/Test.html:
2183         * WebGPUShadingLanguageRI/Test.js:
2184         (checkEnum):
2185         (TEST_simpleEnum):
2186         (TEST_enumWithManualValues):
2187         (TEST_enumWithoutZero):
2188         (TEST_enumConstexprGenericFunction):
2189         (TEST_enumConstexprGenericStruct):
2190         * WebGPUShadingLanguageRI/UintLiteral.js:
2191         (let.UintLiteral.createLiteral.negConstexpr):
2192         * WebGPUShadingLanguageRI/Visitor.js:
2193         (Visitor.prototype.visitProtocolDecl):
2194
2195 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2196
2197         WSL prepare() should cache the parsed standard library
2198         https://bugs.webkit.org/show_bug.cgi?id=177118
2199
2200         Reviewed by Myles Maxfield.
2201         
2202         The execution time of Test.js is too damn high!
2203         
2204         So I made it 2x faster by caching the parsed standard library.
2205
2206         * WebGPUShadingLanguageRI/All.js:
2207         * WebGPUShadingLanguageRI/CloneProgram.js: Added.
2208         (cloneProgram):
2209         * WebGPUShadingLanguageRI/Prepare.js:
2210         (let.prepare):
2211         (prepare): Deleted.
2212         * WebGPUShadingLanguageRI/StatementCloner.js: Added.
2213         (StatementCloner.prototype.visitFuncDef):
2214         (StatementCloner.prototype.visitNativeFunc):
2215         (StatementCloner.prototype.visitNativeType):
2216         (StatementCloner.prototype.visitTypeDef):
2217         (StatementCloner.prototype.visitStructType):
2218         (StatementCloner.prototype.visitConstexprTypeParameter):
2219         (StatementCloner.prototype.visitProtocolDecl):
2220         * WebGPUShadingLanguageRI/Test.html:
2221         * WebGPUShadingLanguageRI/Test.js:
2222         (doTest):
2223
2224 2017-09-18  Michael Catanzaro  <mcatanzaro@igalia.com>
2225
2226         [CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit
2227         https://bugs.webkit.org/show_bug.cgi?id=174558
2228
2229         Reviewed by Alex Christensen.
2230
2231         With help from Stephan Szabo, thanks!
2232
2233         * DumpRenderTree/PlatformMac.cmake:
2234         * DumpRenderTree/PlatformWin.cmake:
2235         * DumpRenderTree/win/AccessibilityControllerWin.cpp:
2236         * DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
2237         * DumpRenderTree/win/DumpRenderTree.cpp:
2238         * DumpRenderTree/win/EditingDelegate.h:
2239         * DumpRenderTree/win/EventSender.cpp:
2240         * DumpRenderTree/win/FrameLoadDelegate.cpp:
2241         * DumpRenderTree/win/FrameLoadDelegate.h:
2242         * DumpRenderTree/win/GCControllerWin.cpp:
2243         * DumpRenderTree/win/HistoryDelegate.cpp:
2244         * DumpRenderTree/win/HistoryDelegate.h:
2245         * DumpRenderTree/win/PolicyDelegate.h:
2246         * DumpRenderTree/win/ResourceLoadDelegate.cpp:
2247         * DumpRenderTree/win/ResourceLoadDelegate.h:
2248         * DumpRenderTree/win/TestRunnerWin.cpp:
2249         * DumpRenderTree/win/TextInputControllerWin.cpp:
2250         * DumpRenderTree/win/UIDelegate.cpp:
2251         * DumpRenderTree/win/UIDelegate.h:
2252         * DumpRenderTree/win/WorkQueueItemWin.cpp:
2253         * MiniBrowser/gtk/CMakeLists.txt:
2254         * MiniBrowser/mac/CMakeLists.txt:
2255         * MiniBrowser/win/AccessibilityDelegate.cpp:
2256         * MiniBrowser/win/AccessibilityDelegate.h:
2257         * MiniBrowser/win/CMakeLists.txt:
2258         * MiniBrowser/win/Common.cpp:
2259         * MiniBrowser/win/DOMDefaultImpl.h:
2260         * MiniBrowser/win/MiniBrowser.cpp:
2261         * MiniBrowser/win/MiniBrowser.h:
2262         * MiniBrowser/win/MiniBrowserWebHost.cpp:
2263         * MiniBrowser/win/MiniBrowserWebHost.h:
2264         * MiniBrowser/win/PageLoadTestClient.h:
2265         * MiniBrowser/win/PrintWebUIDelegate.cpp:
2266         * MiniBrowser/win/PrintWebUIDelegate.h:
2267         * MiniBrowser/win/ResourceLoadDelegate.cpp:
2268         * MiniBrowser/win/ResourceLoadDelegate.h:
2269         * MiniBrowser/win/WebDownloadDelegate.h:
2270         * TestWebKitAPI/CMakeLists.txt:
2271         * TestWebKitAPI/PlatformGTK.cmake:
2272         * TestWebKitAPI/PlatformWPE.cmake:
2273         * TestWebKitAPI/PlatformWin.cmake:
2274         * TestWebKitAPI/Tests/WebKitLegacy/win/ScaleWebView.cpp:
2275         * TestWebKitAPI/Tests/WebKitLegacy/win/WebViewDestruction.cpp:
2276         * TestWebKitAPI/glib/CMakeLists.txt:
2277         * WebKitTestRunner/CMakeLists.txt:
2278         * WebKitTestRunner/PlatformGTK.cmake:
2279         * WebKitTestRunner/PlatformWPE.cmake:
2280
2281 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
2282
2283         Fill out vector types in WSL's standard library
2284         https://bugs.webkit.org/show_bug.cgi?id=177063
2285
2286         Reviewed by Filip Pizlo.
2287
2288         Now that we have struct types, operator&[], and operator==, fill out a few of the builtin vector types in the
2289         standard library. This patch creates three new types: vec2, vec3, and vec4, each of which takes a type
2290         argument, so you can say vec4<float>. This patch also adds typedefs of int4, uint4, float4, and double4 (along
2291         with their 2- and 3- length siblings).
2292
2293         This patch does not include the swizzling operators, so you can't say float4.yzw.
2294
2295         * WebGPUShadingLanguageRI/StandardLibrary.js:
2296         (operator.T.vec2.T):
2297         (bool.operator.T.Equatable):
2298         (thread.T.operator.T):
2299         (operator.T.vec3.T):
2300         (operator.T.vec4.T):
2301         * WebGPUShadingLanguageRI/Test.js:
2302         (TEST_builtinVectors):
2303
2304 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
2305
2306         WSL needs to annotate vertex shaders and fragment shaders
2307         https://bugs.webkit.org/show_bug.cgi?id=177066
2308
2309         Reviewed by Filip Pizlo.
2310
2311         Metal Shading Language requires annotating vertex and fragment shaders, so this information needs to be in
2312         the source WSL file.
2313
2314         * WebGPUShadingLanguageRI/Func.js:
2315         (Func):
2316         (Func.prototype.get shaderType):
2317         * WebGPUShadingLanguageRI/FuncDef.js:
2318         (FuncDef):
2319         * WebGPUShadingLanguageRI/NativeFunc.js:
2320         (NativeFunc):
2321         * WebGPUShadingLanguageRI/Parse.js:
2322         (parseFuncDecl):
2323         (parseProtocolFuncDecl):
2324         (parseFuncDef):
2325         (parseNativeFunc):
2326         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
2327         (resolveOverloadImpl):
2328         * WebGPUShadingLanguageRI/Test.js:
2329
2330 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2331
2332         WSL should know that constexpr parameters are not lvalues
2333         https://bugs.webkit.org/show_bug.cgi?id=177104
2334
2335         Reviewed by Saam Barati.
2336         
2337         This should be an error:
2338         
2339             void foo<int x>()
2340             {
2341                 x = 42;
2342             }
2343         
2344         Previously, it wasn't, because VariableRef always thought that it was an LValue. This patch
2345         teaches the type checker that not all VariableRefs are LValues.
2346
2347         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
2348         (ConstexprTypeParameter.prototype.get varIsLValue):
2349         * WebGPUShadingLanguageRI/FuncParameter.js:
2350         (FuncParameter.prototype.get varIsLValue):
2351         * WebGPUShadingLanguageRI/Test.js:
2352         (TEST_nonArrayRefArrayLengthSucceed):
2353         (TEST_nonArrayRefArrayLengthFail):
2354         (TEST_nonArrayRefArrayLength): Deleted.
2355         (TEST_assignLength): Deleted.
2356         * WebGPUShadingLanguageRI/VariableDecl.js:
2357         (VariableDecl.prototype.get varIsLValue):
2358         * WebGPUShadingLanguageRI/VariableRef.js:
2359         (VariableRef.prototype.get isLValue):
2360
2361 2017-09-18  Ryan Haddad  <ryanhaddad@apple.com>
2362
2363         Unreviewed, rolling out r222170.
2364
2365         The API test added with this change is failing.
2366
2367         Reverted changeset:
2368
2369         "Allow WTF::map to use any class that is iterable and has a
2370         size getter"
2371         https://bugs.webkit.org/show_bug.cgi?id=177026
2372         http://trac.webkit.org/changeset/222170
2373
2374 2017-09-18  Myles C. Maxfield  <mmaxfield@apple.com>
2375
2376         Add a section in WSL's documentation about how API objects and WSL interact
2377         https://bugs.webkit.org/show_bug.cgi?id=177089
2378
2379         Reviewed by Filip Pizlo.
2380
2381         No global variables; entry points accept arguments. Buffers are array references ([]),
2382         and texture and sampler opaque types exist. Data is passed between stages in return
2383         values.
2384
2385         * WebGPUShadingLanguageRI/WSL.md:
2386
2387 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2388
2389         Unreviewed, fix typo.
2390
2391         * WebGPUShadingLanguageRI/WSL.md:
2392
2393 2017-09-18  Filip Pizlo  <fpizlo@apple.com>
2394
2395         WSL cannot use typedefs of arrays
2396         https://bugs.webkit.org/show_bug.cgi?id=177061
2397
2398         Reviewed by Saam Barati.
2399         
2400         This test case didn't work before because of a missing visit call in Checker.
2401
2402         * WebGPUShadingLanguageRI/Checker.js:
2403         (Checker.prototype.visitTypeRef):
2404         * WebGPUShadingLanguageRI/Test.js:
2405         (TEST_typedefArray):
2406
2407 2017-09-18  Youenn Fablet  <youenn@apple.com>
2408
2409         Allow WTF::map to use any class that is iterable and has a size getter
2410         https://bugs.webkit.org/show_bug.cgi?id=177026
2411
2412         Reviewed by Darin Adler.
2413
2414         * TestWebKitAPI/Tests/WTF/Vector.cpp:
2415         (TestWebKitAPI::TEST):
2416
2417 2017-09-16  Filip Pizlo  <fpizlo@apple.com>
2418
2419         Figure out how WSL will support field overloads like float4.xz and friends
2420         https://bugs.webkit.org/show_bug.cgi?id=177031
2421
2422         Reviewed by JF Bastien.
2423         
2424         WSL needs to support getters and setters, so that we can do things like:
2425         
2426             float4 vec;
2427             vec.zx = float2(1, 2);
2428             // z = 1, x = 2
2429         
2430         There's no way to express this float4.zx returning a pointer to something, since it's doing swizzling.
2431         It could return a crazy smart pointer, but that sounds like a lot of work. So, I decided to go for
2432         lvalue emulation instead.
2433         
2434         The idea of lvalue emulation is that when we try to make an lvalue work for an assignment or RMW
2435         operation (like += and friends), we consider the possibility that we have to first load the value using
2436         a getter and then store it with a setter. This patch makes this work recursively, so that this will
2437         work:
2438         
2439             float4 vec;
2440             vec.zwx.y = 42;
2441             // now w is 42
2442         
2443         This works because we decompose it automatically:
2444         
2445             float4 vec;
2446             float3 tmp = vec.zwx;
2447             tmp.y = 42;
2448             vec.zwx = tmp;
2449         
2450         This'll work to any depth.
2451         
2452         To check if this works, this patch adds two substantial new tests called TEST_genericAccessors() and
2453         TEST_bitSubscriptAccessor(). This tests that this stuff works with a lot of generic types, and that it's
2454         possible to turn integers into bitvectors using subscript overloading. This patch also adds smaller unit
2455         tests also.
2456         
2457         Oh, and it's now possible to get an array's length.
2458
2459         * WebGPUShadingLanguageRI/AddressSpace.js:
2460         (needsPrimitiveProtocol):
2461         (protocolSuffix):
2462         * WebGPUShadingLanguageRI/All.js:
2463         * WebGPUShadingLanguageRI/AnonymousVariable.js: Added.
2464         (AnonymousVariable):
2465         (AnonymousVariable.prototype.get origin):
2466         (AnonymousVariable.prototype.get name):
2467         (AnonymousVariable.prototype.toString):
2468         * WebGPUShadingLanguageRI/ArrayRefType.js:
2469         (ArrayRefType.prototype.argumentForAndOverload):
2470         (ArrayRefType.prototype.argumentTypeForAndOverload):
2471         * WebGPUShadingLanguageRI/ArrayType.js:
2472         (ArrayType.prototype.argumentForAndOverload):
2473         (ArrayType.prototype.argumentTypeForAndOverload):
2474         (ArrayType):
2475         * WebGPUShadingLanguageRI/Assignment.js:
2476         (Assignment):
2477         * WebGPUShadingLanguageRI/CallAssignment.js: Removed.
2478         * WebGPUShadingLanguageRI/CallExpression.js:
2479         (CallExpression.resolve):
2480         (CallExpression.prototype.resolve):
2481         (CallExpression.prototype.resolveToOverload):
2482         * WebGPUShadingLanguageRI/Checker.js:
2483         (Checker.prototype.visitProgram):
2484         (Checker.prototype.visitFuncDef):
2485         (Checker.prototype.visitNativeFunc):
2486         (Checker.prototype.visitProtocolDecl):
2487         (Checker.prototype.visitIdentityExpression):
2488         (Checker.prototype.visitReadModifyWriteExpression):
2489         (Checker.prototype.visitAnonymousVariable):
2490         (Checker.prototype.visitMakeArrayRefExpression):
2491         (Checker.prototype._finishVisitingPropertyAccess):
2492         (Checker.prototype.visitDotExpression):
2493         (Checker.prototype.visitIndexExpression):
2494         (Checker.prototype.visitCallExpression):
2495         (Checker):
2496         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitTypeRef): Deleted.
2497         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitVariableRef): Deleted.
2498         (Checker.prototype.visitProtocolDecl.NoticeTypeVariable): Deleted.
2499         (Checker.prototype.visitProtocolDecl.set throw): Deleted.
2500         * WebGPUShadingLanguageRI/CommaExpression.js:
2501         * WebGPUShadingLanguageRI/DotExpression.js:
2502         (DotExpression):
2503         (DotExpression.prototype.get struct):
2504         (DotExpression.prototype.get getFuncName):
2505         (DotExpression.prototype.get andFuncName):
2506         (DotExpression.prototype.get setFuncName):
2507         * WebGPUShadingLanguageRI/EBuffer.js:
2508         * WebGPUShadingLanguageRI/EBufferBuilder.js:
2509         (EBufferBuilder.prototype.visitAnonymousVariable):
2510         (EBufferBuilder.prototype.visitLetExpression): Deleted.
2511         * WebGPUShadingLanguageRI/Evaluator.js:
2512         (Evaluator.prototype.visitIdentityExpression):
2513         (Evaluator.prototype.visitMakePtrExpression):
2514         (Evaluator.prototype.visitAnonymousVariable):
2515         (Evaluator.prototype.visitDotExpression): Deleted.
2516         (Evaluator.prototype.visitLetExpression): Deleted.
2517         * WebGPUShadingLanguageRI/ExpressionFinder.js:
2518         (ExpressionFinder.prototype.visitReadModifyWriteExpression):
2519         (ExpressionFinder.prototype.visitIdentityExpression):
2520         * WebGPUShadingLanguageRI/ForLoop.js:
2521         (ForLoop.prototype.toString):
2522         (ForLoop):
2523         * WebGPUShadingLanguageRI/Func.js:
2524         (Func):
2525         * WebGPUShadingLanguageRI/FuncInstantiator.js:
2526         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression):
2527         (FuncInstantiator.prototype.getUnique.InstantiationSubstitution):
2528         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef):
2529         (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc):
2530         (FuncInstantiator.prototype.getUnique.Instantiate):
2531         (FuncInstantiator.prototype.getUnique):
2532         (FuncInstantiator):
2533         * WebGPUShadingLanguageRI/IdentityExpression.js: Added.
2534         (IdentityExpression):
2535         (IdentityExpression.prototype.get target):
2536         (IdentityExpression.prototype.get unifyNode):
2537         (IdentityExpression.prototype.get isConstexpr):
2538         (IdentityExpression.prototype.get isLValue):
2539         (IdentityExpression.prototype.get addressSpace):
2540         (IdentityExpression.prototype.toString):
2541         * WebGPUShadingLanguageRI/IndexExpression.js: Added.
2542         (IndexExpression):
2543         (IndexExpression.prototype.get array):
2544         (IndexExpression.prototype.get index):
2545         (IndexExpression.prototype.get isLValue):
2546         (IndexExpression.prototype.get addressSpace):
2547         (IndexExpression.prototype.get getFuncName):
2548         (IndexExpression.prototype.get andFuncName):
2549         (IndexExpression.prototype.get setFuncName):
2550         (IndexExpression.prototype.toString):
2551         * WebGPUShadingLanguageRI/InferTypesForCall.js:
2552         (inferTypesForCall):
2553         * WebGPUShadingLanguageRI/Inline.js:
2554         (_inlineFunction):
2555         * WebGPUShadingLanguageRI/Inliner.js:
2556         (Inliner.prototype.visitCallExpression):
2557         (Inliner.prototype.visitDotExpression): Deleted.
2558         * WebGPUShadingLanguageRI/Intrinsics.js:
2559         (Intrinsics):
2560         * WebGPUShadingLanguageRI/LetExpression.js: Removed.
2561         * WebGPUShadingLanguageRI/MakeArrayRefExpression.js:
2562         (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression): Deleted.
2563         * WebGPUShadingLanguageRI/NameContext.js:
2564         (NameContext):
2565         (NameContext.prototype.add):
2566         (NameContext.prototype.doStatement):
2567         (NameContext.prototype.handleDefining): Deleted.
2568         (NameContext.prototype.isDefined): Deleted.
2569         (NameContext.prototype.define): Deleted.
2570         (NameContext.prototype.defineAll): Deleted.
2571         * WebGPUShadingLanguageRI/NameResolver.js:
2572         (NameResolver.prototype.doStatement):
2573         (NameResolver.prototype.visitProtocolDecl):
2574         (NameResolver.prototype.visitProgram): Deleted.
2575         * WebGPUShadingLanguageRI/NativeFunc.js:
2576         (NativeFunc):
2577         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
2578         (NativeFuncInstance):
2579         (NativeFuncInstance.prototype.get implementationData):
2580         * WebGPUShadingLanguageRI/Node.js:
2581         (Node.prototype.visit):
2582         (Node.visit):
2583         (Node.unify): Deleted.
2584         * WebGPUShadingLanguageRI/NormalUsePropertyResolver.js: Added.
2585         (NormalUsePropertyResolver.prototype.visitDotExpression):
2586         (NormalUsePropertyResolver.prototype.visitIndexExpression):
2587         (NormalUsePropertyResolver):
2588         * WebGPUShadingLanguageRI/Parse.js:
2589         (finishParsingPostIncrement):
2590         (parsePossibleSuffix):
2591         (finishParsingPreIncrement):
2592         (genericParseCommaExpression):
2593         (parseFuncName):
2594         * WebGPUShadingLanguageRI/Prepare.js:
2595         (prepare):
2596         * WebGPUShadingLanguageRI/Program.js:
2597         (Program):
2598         (Program.prototype.get globalNameContext):
2599         (Program.prototype.add):
2600         * WebGPUShadingLanguageRI/PropertyAccessExpression.js: Added.
2601         (PropertyAccessExpression):
2602         (PropertyAccessExpression.prototype.get resultType):
2603         (PropertyAccessExpression.prototype.rewriteAfterCloning):
2604         (PropertyAccessExpression.prototype.updateCallsAfterChangingBase):
2605         (PropertyAccessExpression.prototype.emitGet):
2606         (PropertyAccessExpression.prototype.emitSet):
2607         * WebGPUShadingLanguageRI/PropertyResolver.js: Added.
2608         (PropertyResolver.prototype._visitPropertyAccess):
2609         (PropertyResolver.prototype.visitDotExpression):
2610         (PropertyResolver.prototype.visitIndexExpression):
2611         (PropertyResolver.prototype._handleReadModifyWrite):
2612         (PropertyResolver.prototype.visitReadModifyWriteExpression):
2613         (PropertyResolver.prototype.visitAssignment):
2614         (PropertyResolver.visitMakePtrExpression):
2615         (PropertyResolver.prototype.visitMakeArrayRefExpression):
2616         (PropertyResolver):
2617         * WebGPUShadingLanguageRI/PtrType.js:
2618         (PtrType.prototype.argumentForAndOverload):
2619         (PtrType.prototype.argumentTypeForAndOverload):
2620         (PtrType.prototype.returnTypeFromAndOverload):
2621         * WebGPUShadingLanguageRI/ReadModifyWriteExpression.js: Added.
2622         (ReadModifyWriteExpression):
2623         (ReadModifyWriteExpression.prototype.get lValue):
2624         (ReadModifyWriteExpression.prototype.oldValueRef):
2625         (ReadModifyWriteExpression.prototype.newValueRef):
2626         (ReadModifyWriteExpression.prototype.toString):
2627         * WebGPUShadingLanguageRI/ResolveNames.js:
2628         (createNameResolver):
2629         (resolveNamesInTypes):
2630         (resolveNamesInProtocols):
2631         (resolveNamesInFunctions):
2632         (resolveNames): Deleted.
2633         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js:
2634         (resolveOverloadImpl):
2635         * WebGPUShadingLanguageRI/ResolveProperties.js: Added.
2636         (resolveProperties):
2637         * WebGPUShadingLanguageRI/ResolveTypeDefs.js:
2638         (resolveTypeDefsInTypes):
2639         (resolveTypeDefsInProtocols):
2640         (resolveTypeDefsInFunctions):
2641         (resolveTypeDefs): Deleted.
2642         * WebGPUShadingLanguageRI/ReturnChecker.js:
2643         (ReturnChecker.prototype._isBoolCastFromLiteralTrue):
2644         * WebGPUShadingLanguageRI/Rewriter.js:
2645         (Rewriter):
2646         (Rewriter.prototype.visitVariableDecl):
2647         (Rewriter.prototype.visitTypeRef):
2648         (Rewriter.prototype.visitAssignment):
2649         (Rewriter.prototype.visitReadModifyWriteExpression):
2650         (Rewriter.prototype.visitDereferenceExpression):
2651         (Rewriter.prototype._handlePropertyAccessExpression):
2652         (Rewriter.prototype.visitDotExpression):
2653         (Rewriter.prototype.visitIndexExpression):
2654         (Rewriter.prototype.visitReturn):
2655         (Rewriter.prototype.visitGenericLiteralType):
2656         (Rewriter.prototype.visitNullType):
2657         (Rewriter.prototype.processDerivedCallData):
2658         (Rewriter.prototype.visitCallExpression):
2659         (Rewriter.prototype.visitFunctionLikeBlock):
2660         (Rewriter.prototype.visitIfStatement):
2661         (Rewriter.prototype.visitForLoop):
2662         (Rewriter.prototype.visitAnonymousVariable):
2663         (Rewriter.prototype.visitIdentityExpression):
2664         (Rewriter.prototype.visitLetExpression): Deleted.
2665         * WebGPUShadingLanguageRI/StandardLibrary.js:
2666         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
2667         (StructLayoutBuilder.prototype.visitNativeFuncInstance):
2668         (StructLayoutBuilder):
2669         * WebGPUShadingLanguageRI/StructType.js:
2670         (StructType.prototype.instantiate):
2671         * WebGPUShadingLanguageRI/Substitution.js:
2672         (Substitution.prototype.get map):
2673         * WebGPUShadingLanguageRI/SuffixCallAssignment.js: Removed.
2674         * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: Added.
2675         (synthesizeStructAccessors.createTypeParameters):
2676         (synthesizeStructAccessors.):
2677         (synthesizeStructAccessors.createFieldType):
2678         (synthesizeStructAccessors.createTypeRef):
2679         (synthesizeStructAccessors.setupAnder):
2680         (synthesizeStructAccessors):
2681         * WebGPUShadingLanguageRI/Test.html:
2682         * WebGPUShadingLanguageRI/Test.js:
2683         (checkNumber):
2684         (TEST_simpleProtocol):
2685         (TEST_assignLength):
2686         (TEST_simpleSetter):
2687         (TEST_genericAccessors):
2688         * WebGPUShadingLanguageRI/Type.js:
2689         (Type.prototype.get isRef):
2690         (Type.prototype.argumentForAndOverload):
2691         (Type.prototype.argumentTypeForAndOverload):
2692         (Type.prototype.returnTypeFromAndOverload):
2693         (Type):
2694         * WebGPUShadingLanguageRI/TypeParameterRewriter.js: Added.
2695         (TypeParameterRewriter.prototype.visitConstexprTypeParameter):
2696         (TypeParameterRewriter.prototype.visitTypeVariable):
2697         (TypeParameterRewriter):
2698         * WebGPUShadingLanguageRI/TypeVariableTracker.js: Added.
2699         (TypeVariableTracker):
2700         * WebGPUShadingLanguageRI/Value.js:
2701         (Value.prototype.become):
2702         (Value):
2703         * WebGPUShadingLanguageRI/VariableRef.js:
2704         (VariableRef.prototype.get unifyNode):
2705         (VariableRef.prototype.get addressSpace):
2706         * WebGPUShadingLanguageRI/Visitor.js:
2707         (Visitor.prototype.visitNativeFuncInstance):
2708         (Visitor.prototype.visitProtocolDecl):
2709         (Visitor): Deleted.
2710         * WebGPUShadingLanguageRI/VisitorBase.js: Removed.
2711
2712 2017-09-18  Andy Estes  <aestes@apple.com>
2713
2714         [Cocoa] Upstream WKSetCrashReportApplicationSpecificInformation() from WebKitSystemInterface
2715         https://bugs.webkit.org/show_bug.cgi?id=177048
2716
2717         Reviewed by Alex Christensen.
2718
2719         * DumpRenderTree/mac/DumpRenderTree.mm:
2720         (runTest):
2721         * WebKitTestRunner/cocoa/CrashReporterInfo.mm:
2722         (WTR::setCrashReportApplicationSpecificInformationToURL):
2723
2724 2017-09-18  Tim Horton  <timothy_horton@apple.com>
2725
2726         build-webkit spawns fewer subprocesses than ninja uses by default
2727         https://bugs.webkit.org/show_bug.cgi?id=177057
2728
2729         Reviewed by Alex Christensen.
2730
2731         * Scripts/build-webkit:
2732         By default, ninja will parallelize over (cores + 2) jobs. build-webkit
2733         specifies -j(cores), which overrides this. Remove our override if building
2734         with ninja; just let it do its own thing. In my testing, this minor
2735         change is the difference between ~10% idle CPU time and 0.
2736
2737 2017-09-18  Lucas Forschler  <lforschler@apple.com>
2738
2739         Land a patch to verify svn->git update is working.
2740
2741 2017-09-18  Ms2ger  <Ms2ger@igalia.com>
2742
2743         Update my status.
2744
2745         Unreviewed.
2746
2747         * Scripts/webkitpy/common/config/contributors.json:
2748
2749 2017-09-17  Filip Pizlo  <fpizlo@apple.com>
2750
2751         Start working on WSL documentation
2752         https://bugs.webkit.org/show_bug.cgi?id=177064
2753
2754         Reviewed by Mylex Maxfield.
2755         
2756         This is a work in progress. I'd like to check it in and then keep adding to it.
2757
2758         * WebGPUShadingLanguageRI/WSL.md: Added.
2759
2760 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
2761
2762         WSL needs to understand && and ||
2763         https://bugs.webkit.org/show_bug.cgi?id=177062
2764
2765         Reviewed by Filip Pizlo.
2766
2767         Very similar to LogicalNot.
2768
2769         * WebGPUShadingLanguageRI/All.js:
2770         * WebGPUShadingLanguageRI/Checker.js:
2771         * WebGPUShadingLanguageRI/EBufferBuilder.js:
2772         (EBufferBuilder.prototype.visitLogicalExpression):
2773         * WebGPUShadingLanguageRI/Evaluator.js:
2774         (Evaluator.prototype.visitLogicalExpression):
2775         * WebGPUShadingLanguageRI/Lexer.js:
2776         (Lexer.prototype.next):
2777         (Lexer):
2778         * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
2779         (LogicalExpression):
2780         (LogicalExpression.prototype.get text):
2781         (LogicalExpression.prototype.get left):
2782         (LogicalExpression.prototype.get right):
2783         (LogicalExpression.prototype.toString):
2784         * WebGPUShadingLanguageRI/Parse.js:
2785         (parseLeftLogicalExpression):
2786         * WebGPUShadingLanguageRI/Rewriter.js:
2787         (Rewriter.prototype.visitLogicalExpression):
2788         * WebGPUShadingLanguageRI/Test.html:
2789         * WebGPUShadingLanguageRI/Test.js:
2790         * WebGPUShadingLanguageRI/Visitor.js:
2791         (Visitor.prototype.visitProtocolDecl):
2792
2793 2017-09-18  Ms2ger  <Ms2ger@igalia.com>
2794
2795         Update my status.
2796
2797         Unreviewed.
2798
2799         * Scripts/webkitpy/common/config/contributors.json:
2800
2801 2017-09-17  Filip Pizlo  <fpizlo@apple.com>
2802
2803         Start working on WSL documentation
2804         https://bugs.webkit.org/show_bug.cgi?id=177064
2805
2806         Reviewed by Mylex Maxfield.
2807         
2808         This is a work in progress. I'd like to check it in and then keep adding to it.
2809
2810         * WebGPUShadingLanguageRI/WSL.md: Added.
2811
2812 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
2813
2814         WSL needs to understand && and ||
2815         https://bugs.webkit.org/show_bug.cgi?id=177062
2816
2817         Reviewed by Filip Pizlo.
2818
2819         Very similar to LogicalNot.
2820
2821         * WebGPUShadingLanguageRI/All.js:
2822         * WebGPUShadingLanguageRI/Checker.js:
2823         * WebGPUShadingLanguageRI/EBufferBuilder.js:
2824         (EBufferBuilder.prototype.visitLogicalExpression):
2825         * WebGPUShadingLanguageRI/Evaluator.js:
2826         (Evaluator.prototype.visitLogicalExpression):
2827         * WebGPUShadingLanguageRI/Lexer.js:
2828         (Lexer.prototype.next):
2829         (Lexer):
2830         * WebGPUShadingLanguageRI/LogicalExpression.js: Added.
2831         (LogicalExpression):
2832         (LogicalExpression.prototype.get text):
2833         (LogicalExpression.prototype.get left):
2834         (LogicalExpression.prototype.get right):
2835         (LogicalExpression.prototype.toString):
2836         * WebGPUShadingLanguageRI/Parse.js:
2837         (parseLeftLogicalExpression):
2838         * WebGPUShadingLanguageRI/Rewriter.js:
2839         (Rewriter.prototype.visitLogicalExpression):
2840         * WebGPUShadingLanguageRI/Test.html:
2841         * WebGPUShadingLanguageRI/Test.js:
2842         * WebGPUShadingLanguageRI/Visitor.js:
2843         (Visitor.prototype.visitProtocolDecl):
2844
2845 2017-09-17  Myles C. Maxfield  <mmaxfield@apple.com>
2846
2847         WSL needs float and double support
2848         https://bugs.webkit.org/show_bug.cgi?id=177058
2849
2850         Reviewed by Filip Pizlo.
2851
2852         Use the existing int and uint types as a model. The types themselves are straighforward. Just like int and uint,
2853         you can't pass a float as a double argument and vice-versa. This patch adds operator+, -, *, and / for floats
2854         and doubles.
2855
2856         Float literals are more complicated. If your number has a "." character in it, it is treated as a float literal.
2857         You can add a suffix of "f" or "d" to force the literal to pretend to be a float or a double. These literals are
2858         able to masquerade as either floats or doubles (unlike an explicit type). However, these literals are not able
2859         to masquerade as ints or uints. There's also a nice check that your float literal can actually fit in a float.
2860
2861         * WebGPUShadingLanguageRI/All.js:
2862         * WebGPUShadingLanguageRI/DoubleLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
2863         (let.DoubleLiteral.createLiteral.createType):
2864         * WebGPUShadingLanguageRI/DoubleLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
2865         (let.DoubleLiteralType.createLiteralType.verifyAsArgument):
2866         * WebGPUShadingLanguageRI/FloatLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
2867         (let.FloatLiteral.createLiteral.createType):
2868         * WebGPUShadingLanguageRI/FloatLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js.
2869         (let.FloatLiteralType.createLiteralType.verifyAsArgument):
2870         * WebGPUShadingLanguageRI/Intrinsics.js:
2871         (Intrinsics):
2872         * WebGPUShadingLanguageRI/Lexer.js:
2873         (Lexer.prototype.next):
2874         (Lexer):
2875         * WebGPUShadingLanguageRI/NativeType.js:
2876         (NativeType):
2877         (NativeType.prototype.get isFloating):
2878         (NativeType.prototype.set isFloating):
2879         (NativeType.prototype.get isFloat): Deleted.
2880         (NativeType.prototype.set isFloat): Deleted.
2881         * WebGPUShadingLanguageRI/Parse.js:
2882         (parseTerm):
2883         * WebGPUShadingLanguageRI/Rewriter.js:
2884         (Rewriter.prototype.visitGenericLiteral):
2885         * WebGPUShadingLanguageRI/StandardLibrary.js:
2886         (uint.operator):
2887         (int.operator):
2888         * WebGPUShadingLanguageRI/Test.html:
2889         * WebGPUShadingLanguageRI/Test.js:
2890         (makeFloat):
2891         (makeDouble):
2892         (checkNumber):
2893         (checkFloat):
2894         (checkDouble):
2895         * WebGPUShadingLanguageRI/Type.js:
2896         (Type.prototype.get isFloating):
2897         (Type.prototype.get isFloat): Deleted.
2898
2899 2017-09-17  Michael Saboff  <msaboff@apple.com>
2900
2901         https://bugs.webkit.org/show_bug.cgi?id=177038
2902         Add an option to run-jsc-stress-tests to limit tests variations to a basic set
2903
2904         Reviewed by JF Bastien.
2905
2906         Added the --basic option that runs defaults tests with the following modes, default, no-llint,
2907         no-cjit-validate-phases, no-cjit-collect-continuously, dfg-eager and for FTL platforms: no-ftl,
2908         ftl-eager-no-cjit and ftl-no-cjit-small-pool.  This takes about half the time as running all
2909         16 modes of a full run.
2910
2911         * Scripts/run-jsc-stress-tests:
2912
2913 2017-09-16  Tim Horton  <timothy_horton@apple.com>
2914
2915         Fix the Tools build with CMake on macOS
2916         https://bugs.webkit.org/show_bug.cgi?id=177030
2917
2918         Reviewed by Geoffrey Garen.
2919
2920         * TestWebKitAPI/CMakeLists.txt:
2921         Add a workaround identical to what the gtest CMakeLists has.
2922
2923 2017-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>
2924
2925         [GTK] Bump fontconfig version to 2.12.4
2926         https://bugs.webkit.org/show_bug.cgi?id=176997
2927
2928         Reviewed by Michael Catanzaro.
2929
2930         It's the latest stable version and we can get rid of the patches we have.
2931
2932         * WebKitTestRunner/gtk/fonts/fonts.conf: Remove hinting config we no longer need with newer FreeType and
2933         deprecated <blank> that current fontconfig just ignores.
2934         * gtk/jhbuild.modules:
2935         * gtk/patches/fontconfig-2.11.1-add-autogen.patch: Removed.
2936         * gtk/patches/fontconfig-Avoid-conflicts-with-integer-width-macros-from-TS-18661-1-2014.patch: Removed.
2937         * gtk/patches/fontconfig-Fix-the-build-issue-with-gperf-3.1.patch: Removed.
2938         * gtk/patches/fontconfig-fix-osx-cache.diff: Removed.
2939
2940 2017-09-15  Lucas Forschler  <lforschler@apple.com>
2941
2942         Move run-webkit-archive from Tools/Scripts to Tools/BuildSlaveSupport
2943         
2944         Reviewed by Alexey Proskuryakov.
2945
2946         * Scripts/run-webkit-archive: Removed.
2947
2948 2017-09-15  Lucas Forschler  <lforschler@apple.com>
2949
2950         teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives.
2951         https://bugs.webkit.org/show_bug.cgi?id=176965
2952
2953         Reviewed by Alexey Proskuryakov.
2954
2955         * BuildSlaveSupport/built-product-archive:
2956         (addLauncherToArchive): Helper function to add the launcher script
2957         (createZip): teach function about addLauncherToArchive
2958         * BuildSlaveSupport/run-webkit-archive: Added.
2959         (check_for_valid_platform): Add logic to ensure platform is Darwin
2960         (find_dyld_framework_path): Find the dyld framework path
2961         (run_safari_for_webkit_development): launch SafariForWebKitDevelopment
2962         (set_dyld_framework_path): export the environment for dydl framework path
2963
2964 2017-09-15  Myles C. Maxfield  <mmaxfield@apple.com>
2965
2966         [WSL] Small cleanup in Evaluator
2967         https://bugs.webkit.org/show_bug.cgi?id=176971
2968
2969         Reviewed by Filip Pizlo.
2970
2971         Use the symbols for break and continue instead of the objects themselves.
2972
2973         No tests because there is no behavior change.
2974
2975         * WebGPUShadingLanguageRI/Evaluator.js:
2976         (Evaluator.prototype.visitWhileLoop):
2977         (Evaluator.prototype.visitDoWhileLoop):
2978         (Evaluator.prototype.visitForLoop):
2979         (Evaluator.prototype.visitBreak):
2980         (Evaluator.prototype.visitContinue):
2981
2982 2017-09-15  Filip Pizlo  <fpizlo@apple.com>
2983
2984         WSL Evaluator should only allocate EBuffers when dealing with intrinsics
2985         https://bugs.webkit.org/show_bug.cgi?id=176973
2986
2987         Reviewed by Myles Maxfield.
2988         
2989         Whether or not two temporary values share the same EBuffer is ultimately observable in WSL,
2990         because you can do this:
2991         
2992             thread int^ operator&[](thread int^ ptr, uint index)
2993             {
2994                 g_ptr = ptr;
2995                 return ptr;
2996             }
2997         
2998         And then this is a thing:
2999         
3000             42[0];
3001             // g_ptr now points to 42's location
3002         
3003         Normally this would have a lot of bad implications. But in WSL, if you did choose to do this,
3004         you'd get a pointer to something well-defined: the EBuffer of 42's GenericLiteral. Each static
3005         occurrence of a literal gets its own location, and the semantics of the language call for
3006         42 to be stored into this location when `42` "executes". So, while the programmer could do all
3007         kinds of strange things, at least the strangeness they would see is something we can spec.
3008         
3009         But to do this, the interpreter needs to allocate EBuffers in the same way a compiler would.
3010         It cannot allocate them during execution, except when interacting with intrinsics, which won't
3011         know the difference.
3012         
3013         In the process, I found places that needed to use AutoWrapper instead of TypeRef.wrap.
3014
3015         * WebGPUShadingLanguageRI/AutoWrapper.js:
3016         (AutoWrapper.prototype.visitGenericLiteralType):
3017         (AutoWrapper.prototype.visitNullType):
3018         (AutoWrapper):
3019         * WebGPUShadingLanguageRI/CallExpression.js:
3020         (CallExpression.prototype.resolve):
3021         * WebGPUShadingLanguageRI/CallFunction.js:
3022         (callFunction):
3023         * WebGPUShadingLanguageRI/Checker.js:
3024         * WebGPUShadingLanguageRI/CreateLiteralType.js:
3025         (createLiteralType.GenericLiteralType.prototype.commitUnification):
3026         * WebGPUShadingLanguageRI/EBuffer.js:
3027         (EBuffer):
3028         (EBuffer.setCanAllocateEBuffers):
3029         (EBuffer.disallowAllocation):
3030         (EBuffer.allowAllocation):
3031         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3032         (EBufferBuilder.prototype.visitVariableDecl):
3033         (EBufferBuilder.prototype.visitFuncDef):
3034         (EBufferBuilder.prototype.visitFunctionLikeBlock):
3035         (EBufferBuilder.prototype.visitCallExpression):
3036         (EBufferBuilder.prototype.visitMakePtrExpression):
3037         (EBufferBuilder.prototype.visitGenericLiteral):
3038         (EBufferBuilder.prototype.visitNullLiteral):
3039         (EBufferBuilder.prototype.visitBoolLiteral):
3040         (EBufferBuilder.prototype.visitLogicalNot):
3041         (EBufferBuilder):
3042         * WebGPUShadingLanguageRI/EPtr.js:
3043         (EPtr.box):
3044         (EPtr.prototype.box):
3045         * WebGPUShadingLanguageRI/Evaluator.js:
3046         (Evaluator.prototype._snapshot):
3047         (Evaluator.prototype.runFunc):
3048         (Evaluator.prototype._runBody):
3049         (Evaluator.prototype.visitFunctionLikeBlock):
3050         (Evaluator.prototype.visitMakePtrExpression):
3051         (Evaluator.prototype.visitGenericLiteral):
3052         (Evaluator.prototype.visitNullLiteral):
3053         (Evaluator.prototype.visitBoolLiteral):
3054         (Evaluator.prototype.visitLogicalNot):
3055         (Evaluator.prototype.visitCallExpression):
3056         (Evaluator):
3057         (Evaluator.prototype.runBody): Deleted.
3058         * WebGPUShadingLanguageRI/Inliner.js:
3059         (Inliner.prototype.visitCallExpression):
3060         * WebGPUShadingLanguageRI/InstantiateImmediates.js:
3061         (InstantiateImmediates.prototype.visitTypeRef):
3062         * WebGPUShadingLanguageRI/Rewriter.js:
3063         (Rewriter.prototype.visitMakePtrExpression):
3064         (Rewriter.prototype.visitGenericLiteral):
3065         (Rewriter.prototype.visitNullLiteral):
3066         (Rewriter.prototype.processDerivedCallData):
3067         (Rewriter.prototype.visitFunctionLikeBlock):
3068         (Rewriter.prototype.visitLogicalNot):
3069         * WebGPUShadingLanguageRI/TypeRef.js:
3070         (TypeRef.prototype.toString):
3071         (TypeRef):
3072         * WebGPUShadingLanguageRI/Visitor.js:
3073         (Visitor.prototype.visitProtocolDecl):
3074
3075 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
3076
3077         Rationalize how WSL's operator&[] works
3078         https://bugs.webkit.org/show_bug.cgi?id=176958
3079
3080         Reviewed by Myles Maxfield.
3081         
3082         This makes operator&[] work with non-array-ref types. The way this works is that if you do base[index]
3083         then we pattern match base's type and proceed accordingly:
3084         
3085             If base's type is T^:
3086                 => Reject
3087             
3088             If base's type is T[]:
3089                 => Accept
3090             
3091             If base's type is T[c]:
3092                 => Wrap it with a MakeArrayRefExpression and accept.
3093             
3094             All other cases:
3095                 => Wrap it with a MakePtrExpression and accept.
3096         
3097         This makes it possible for operator&[] to work with lvalues. It also means that operator&[] gets to
3098         "see" the temporary values we create via snapshot() in the interpreter. We'll have to fix that, and I've
3099         filed bug 176973 for that. Once that's fixed, this will have well-defined behavior, though with the very
3100         peculiar caveat that an expression like this:
3101         
3102              totallyNotAnLValue()[42]
3103         
3104         Could be used to get a pointer to a non-lvalue. But we can be extremely precise about what that means
3105         and prohibit dangling pointers, which is kinda crazy.
3106         
3107         In order to do this, I had to make MakeArrayRefExpression work, so I did that and added tests for it.
3108
3109         * WebGPUShadingLanguageRI/All.js:
3110         * WebGPUShadingLanguageRI/ArrayRefType.js:
3111         (ArrayRefType.prototype.unifyImpl):
3112         (ArrayRefType.prototype.toString):
3113         (ArrayRefType):
3114         * WebGPUShadingLanguageRI/ArrayType.js:
3115         (ArrayType):
3116         (ArrayType.prototype.get numElementsValue):
3117         (ArrayType.prototype.get size):
3118         (ArrayType.prototype.populateDefaultValue):
3119         (ArrayType.prototype.unifyImpl):
3120         * WebGPUShadingLanguageRI/Checker.js:
3121         * WebGPUShadingLanguageRI/ConvertPtrToArrayRefExpression.js: Added.
3122         (ConvertPtrToArrayRefExpression):
3123         (ConvertPtrToArrayRefExpression.prototype.get lValue):
3124         (ConvertPtrToArrayRefExpression.prototype.toString):
3125         * WebGPUShadingLanguageRI/CreateLiteral.js:
3126         (createLiteral.GenericLiteral.withType):
3127         (createLiteral.GenericLiteral.prototype.get isLiteral):
3128         (createLiteral.GenericLiteral.prototype.unifyImpl):
3129         * WebGPUShadingLanguageRI/DotExpression.js:
3130         (DotExpression.prototype.get addressSpace):
3131         * WebGPUShadingLanguageRI/Evaluator.js:
3132         (Evaluator.prototype.visitMakeArrayRefExpression):
3133         (Evaluator.prototype.visitConvertPtrToArrayRefExpression):
3134         * WebGPUShadingLanguageRI/Intrinsics.js:
3135         (Intrinsics):
3136         * WebGPUShadingLanguageRI/MakeArrayRefExpression.js: Added.
3137         (MakeArrayRefExpression):
3138         (MakeArrayRefExpression.prototype.get lValue):
3139         (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression):
3140         (MakeArrayRefExpression.prototype.toString):
3141         * WebGPUShadingLanguageRI/MakePtrExpression.js:
3142         (MakePtrExpression.prototype.toString):
3143         (MakePtrExpression):
3144         * WebGPUShadingLanguageRI/PtrType.js:
3145         (PtrType.prototype.toString):
3146         (PtrType):
3147         * WebGPUShadingLanguageRI/ReferenceType.js:
3148         (ReferenceType):
3149         * WebGPUShadingLanguageRI/Rewriter.js:
3150         (Rewriter.prototype.visitArrayType):
3151         (Rewriter.prototype.visitMakeArrayRefExpression):
3152         (Rewriter.prototype.visitConvertPtrToArrayRefExpression):
3153         * WebGPUShadingLanguageRI/StandardLibrary.js:
3154         * WebGPUShadingLanguageRI/Test.html:
3155         * WebGPUShadingLanguageRI/Test.js:
3156         (TEST_buildArrayThenSumItUsingArrayReference):
3157         (TEST_overrideSubscriptStruct):
3158         (TEST_overrideSubscriptStructAndUsePointers):
3159         (TEST_overrideSubscriptStructAndUsePointersIncorrectly):
3160         (TEST_makeArrayRefFromPointer):
3161         (TEST_makeArrayRefFromArrayRef):
3162         * WebGPUShadingLanguageRI/Visitor.js:
3163         (Visitor.prototype.visitProtocolDecl):
3164
3165 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
3166
3167         WSL should support ++, --, +=, and all of those things
3168         https://bugs.webkit.org/show_bug.cgi?id=176975
3169
3170         Reviewed by Myles Maxfield.
3171         
3172         This adds an internal AST construct called LetExpression, that allows us to anonymously capture
3173         a value. This change uses LetExpression to implement prefix and suffix ++/-- and all of the
3174         +=/-=/etc.
3175
3176         * WebGPUShadingLanguageRI/All.js:
3177         * WebGPUShadingLanguageRI/Checker.js:
3178         * WebGPUShadingLanguageRI/EBufferBuilder.js:
3179         (EBufferBuilder.prototype.visitVariableDecl):
3180         (EBufferBuilder.prototype.visitLetExpression):
3181         (EBufferBuilder):
3182         * WebGPUShadingLanguageRI/Evaluator.js:
3183         (Evaluator.prototype.visitLetExpression):
3184         * WebGPUShadingLanguageRI/LetExpression.js: Added.
3185         (LetExpression):
3186         (LetExpression.prototype.get origin):
3187         (LetExpression.prototype.get name):
3188         (LetExpression.prototype.toString):
3189         * WebGPUShadingLanguageRI/Lexer.js:
3190         (Lexer.prototype.next):
3191         (Lexer):
3192         * WebGPUShadingLanguageRI/NameResolver.js:
3193         (NameResolver.prototype.visitProtocolDecl):
3194         * WebGPUShadingLanguageRI/Parse.js:
3195         (isCallExpression):
3196         (finishParsingPostIncrement):
3197         (parsePossibleSuffix):
3198         (finishParsingPreIncrement):
3199         (parsePreIncrement):
3200         (parsePossiblePrefix):
3201         (parsePossibleAssignment):
3202         (parsePostIncrement):
3203         (parseEffectfulExpression):
3204         * WebGPUShadingLanguageRI/Rewriter.js:
3205         (Rewriter.prototype.visitFunctionLikeBlock):
3206         (Rewriter.prototype.visitLetExpression):
3207         (Rewriter):
3208         * WebGPUShadingLanguageRI/StandardLibrary.js:
3209         (int.operator):
3210         (uint.operator):
3211         * WebGPUShadingLanguageRI/Test.html:
3212         * WebGPUShadingLanguageRI/Test.js:
3213         (TEST_prefixPlusPlus):
3214         (TEST_prefixPlusPlusResult):
3215         (TEST_postfixPlusPlus):
3216         (TEST_postfixPlusPlusResult):
3217         (TEST_prefixMinusMinus):
3218         (TEST_prefixMinusMinusResult):
3219         (TEST_postfixMinusMinus):
3220         (TEST_postfixMinusMinusResult):
3221         (TEST_plusEquals):
3222         (TEST_plusEqualsResult):
3223         (TEST_minusEquals):
3224         (TEST_minusEqualsResult):
3225         (TEST_timesEquals):
3226         (TEST_timesEqualsResult):
3227         (TEST_divideEquals):
3228         (TEST_divideEqualsResult):
3229         * WebGPUShadingLanguageRI/Visitor.js:
3230         (Visitor.prototype.visitProtocolDecl):
3231
3232 2017-09-15  Brent Fulgham  <bfulgham@apple.com>
3233
3234         Provide mechanism to immediately end tests
3235         https://bugs.webkit.org/show_bug.cgi?id=176364
3236         <rdar://problem/34254780>
3237
3238         Reviewed by Alex Christensen.
3239
3240         WebKitTestRunner does not output state if the top loading frame has not been removed. This prevents some
3241         tests that attempt to exercise failed load state from working properly.
3242         
3243         This change adds a new 'forceImmediateCompletion' handler for DumpRenderTree and WebKitTestRunner so
3244         that we can properly test these conditions.
3245
3246         * DumpRenderTree/TestRunner.h:
3247         * DumpRenderTree/mac/TestRunnerMac.mm:
3248         (TestRunner::forceImmediateCompletion): Added.
3249         * DumpRenderTree/win/TestRunnerWin.cpp:
3250         (TestRunner::forceImmediateCompletion): Ditto.
3251         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
3252         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
3253         (WTR::TestRunner::forceImmediateCompletion): Ditto.
3254         * WebKitTestRunner/InjectedBundle/TestRunner.h:
3255
3256 2017-09-15  Youenn Fablet  <youenn@apple.com>
3257
3258         Add an URL method to remove both query string and fragment identifier
3259         https://bugs.webkit.org/show_bug.cgi?id=176911
3260
3261         Reviewed by Alex Christensen.
3262
3263         Adding unit test for new URL method as well as modified setQuery and setFragmentIdentifier.
3264
3265         * TestWebKitAPI/Tests/WebCore/URL.cpp:
3266         (TestWebKitAPI::createURL):
3267         (TestWebKitAPI::TEST_F):
3268
3269 2017-09-14  Yousuke Kimoto  <yousuke.kimoto@sony.com>
3270
3271         [WinCairo] Add an option to build WebKitLegacy and WebKit
3272         https://bugs.webkit.org/show_bug.cgi?id=176891
3273
3274         Since TestWebKitAPI and MiniBrowser/win are used for WebKitLegacy,
3275         those subdirectories are ignored for WebKit build.
3276
3277         Reviewed by Alex Christensen.
3278
3279         * CMakeLists.txt:
3280
3281 2017-09-14  Lucas Forschler  <lforschler@apple.com>
3282
3283         Create a launcher for webkit-archives
3284         https://bugs.webkit.org/show_bug.cgi?id=176964
3285
3286         Reviewed by Aakash Jain.
3287
3288         * Scripts/run-webkit-archive: Added.
3289         (find_dyld_framework_path):
3290         (run_safari_for_webkit_development):
3291         (set_dyld_framework_path):
3292         (main):
3293
3294 2017-09-14  Alex Christensen  <achristensen@webkit.org>
3295
3296         Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
3297         https://bugs.webkit.org/show_bug.cgi?id=176889
3298         <rdar://problem/29270035>
3299
3300         Reviewed by Andy Estes.
3301
3302         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3303         (-[PrintDelegate _webView:printFrame:]):
3304         (-[PrintDelegate _webViewHeaderHeight:]):
3305         (-[PrintDelegate _webViewFooterHeight:]):
3306         (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
3307         (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
3308         (callbacksEqual):
3309         (TEST):
3310         * TestWebKitAPI/cocoa/TestWKWebView.h:
3311         * TestWebKitAPI/cocoa/TestWKWebView.mm:
3312         (-[TestWKWebView hostWindow]):
3313
3314 2017-09-14  Ryan Haddad  <ryanhaddad@apple.com>
3315
3316         Unreviewed, rolling out r222033.
3317
3318         This change caused API test WebKit.PrintFrame to time out.
3319
3320         Reverted changeset:
3321
3322         "Add WKUIDelegatePrivate equivalent of WKPageUIClient's
3323         drawHeader, drawFooter, headerHeight, and footerHeight"
3324         https://bugs.webkit.org/show_bug.cgi?id=176889
3325         http://trac.webkit.org/changeset/222033
3326
3327 2017-09-14  Youenn Fablet  <youenn@apple.com>
3328
3329         Allow WTF::map to take function as parameter
3330         https://bugs.webkit.org/show_bug.cgi?id=176909
3331
3332         Reviewed by Jer Noble.
3333
3334         * TestWebKitAPI/Tests/WTF/Vector.cpp:
3335         (TestWebKitAPI::multiplyByTwo):
3336         (TestWebKitAPI::TEST):
3337         (TestWebKitAPI::multiplyByTwoMoveOnly):
3338
3339 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
3340
3341         WSL IntLiteralType should become int32 if unified with a type variable
3342         https://bugs.webkit.org/show_bug.cgi?id=176707
3343
3344         Reviewed by Myles Maxfield.
3345         
3346         This makes it so that this works:
3347         
3348             T foo<T>(T x) { return x; }
3349             foo(42); // T becomes int32
3350         
3351         Previously, it did not work because IntLiteralType did not recognize TypeVariable as a number. Also,
3352         TypeVariable would try to evaluate protocol inheritance of IntLiteralType, which would not go well. One
3353         of the tests that this patch adds didn't just fail; it gave such an absurd 7-line type error that I felt
3354         like I was using SML.
3355         
3356         This fixes the problem by introducing what I think is a super deterministic way of handling literals and
3357         type variables:
3358         
3359         Before verifying a unification context, we now give all literals a chance to perform an extra 
3360         unification step. This is a two-phase process. This ensures that the unification performed by one 
3361         literal does not throw off the logic of some other literal. For example, if we do:
3362         
3363             void foo<T>(T, T) { }
3364             foo(42, 42u);
3365         
3366         Then we want to always fail to compile, rather than sometimes succeeding. So, we first ask each literal
3367         if it thinks that it needs to do extra unification. Both of the literals will report that they want to
3368         in this case, because they will notice that they got unified with either at type variable or a literal,
3369         which isn't specific enough. Then after they all register to do extra unification, they will both try to
3370         unify with their preferred types (int32 for 42, uint32 for 42u). The first one will succeed, and the
3371         second will give an error.
3372         
3373         Without the special two-phase arrangement, it was possible to either get a type error or not depending 
3374         on the order - for example foo(42, 42u) might fail while foo(42u, 42) succeeds. It was definitely not
3375         decidable, at least not unless you mandate the unification order as part of the type system spec. I 
3376         think that would have been nuts.
3377         
3378         Both IntLiteral and UintLiteral are now "flexible"; the uint one will reject non-int or signed int
3379         types and will prefer uint, but otherwise it's the same logic. This means that this will be valid:
3380         
3381             uint8 x = 5u;
3382         
3383         But this is still wrong:
3384         
3385             int x = 5u;
3386         
3387         To make this easy, I turned IntLiteral and UintLiteral (and IntLiteralType and UintLiteralType) into
3388         factory-built generic types (see createLiteral() and createLiteralType()). Because visitors use the
3389         constructor's declared name (GenericLiteral and GenericLiteralType in this case), it means that we can
3390         share a ton of code between the different literals. I love that ES6 lets you do that.
3391
3392         * WebGPUShadingLanguageRI/All.js:
3393         * WebGPUShadingLanguageRI/Checker.js:
3394         * WebGPUShadingLanguageRI/CreateLiteral.js: Added.
3395         (createLiteral.GenericLiteral):
3396         (createLiteral.GenericLiteral.prototype.get value):
3397         (createLiteral.GenericLiteral.prototype.get isConstexpr):
3398         (createLiteral.GenericLiteral.prototype.toString):
3399         (createLiteral):
3400         * WebGPUShadingLanguageRI/CreateLiteralType.js: Added.
3401         (createLiteralType.GenericLiteralType):
3402         (createLiteralType.GenericLiteralType.prototype.get origin):
3403         (createLiteralType.GenericLiteralType.prototype.get value):
3404         (createLiteralType.GenericLiteralType.prototype.get isPrimitive):
3405         (createLiteralType.GenericLiteralType.prototype.get isUnifiable):
3406         (createLiteralType.GenericLiteralType.prototype.get isLiteral):
3407         (createLiteralType.GenericLiteralType.prototype.typeVariableUnify):
3408         (createLiteralType.GenericLiteralType.prototype.unifyImpl):
3409         (createLiteralType.GenericLiteralType.prototype.prepareToVerify):
3410         (createLiteralType.GenericLiteralType.prototype.verifyAsArgument):
3411         (createLiteralType.GenericLiteralType.prototype.verifyAsParameter):
3412         (createLiteralType.GenericLiteralType.prototype.conversionCost):
3413         (createLiteralType.GenericLiteralType.prototype.commitUnification):
3414         (createLiteralType.GenericLiteralType.prototype.toString):
3415         (createLiteralType):
3416         * WebGPUShadingLanguageRI/Evaluator.js:
3417         (Evaluator.prototype.visitIntLiteral): Deleted.
3418         (Evaluator.prototype.visitUintLiteral): Deleted.
3419         * WebGPUShadingLanguageRI/IntLiteral.js:
3420         (let.IntLiteral.createLiteral.createType):
3421         (IntLiteral): Deleted.
3422         (IntLiteral.prototype.get value): Deleted.
3423         (IntLiteral.prototype.get isConstexpr): Deleted.
3424         (IntLiteral.prototype.toString): Deleted.
3425         * WebGPUShadingLanguageRI/IntLiteralType.js:
3426         (IntLiteralType): Deleted.
3427         (IntLiteralType.prototype.get origin): Deleted.
3428         (IntLiteralType.prototype.get value): Deleted.
3429         (IntLiteralType.prototype.get isPrimitive): Deleted.
3430         (IntLiteralType.prototype.get isUnifiable): Deleted.
3431         (IntLiteralType.prototype.typeVariableUnify): Deleted.
3432         (IntLiteralType.prototype.unifyImpl): Deleted.
3433         (IntLiteralType.prototype.verifyAsArgument): Deleted.
3434         (IntLiteralType.prototype.verifyAsParameter): Deleted.
3435         (IntLiteralType.prototype.conversionCost): Deleted.
3436         (IntLiteralType.prototype.commitUnification): Deleted.
3437         (IntLiteralType.prototype.toString): Deleted.
3438         * WebGPUShadingLanguageRI/Intrinsics.js:
3439         (Intrinsics):
3440         * WebGPUShadingLanguageRI/LiteralTypeChecker.js:
3441         (LiteralTypeChecker.prototype.visitIntLiteralType): Deleted.
3442         * WebGPUShadingLanguageRI/Node.js:
3443         (Node.prototype.prepareToVerify):
3444         (Node.prototype.commitUnification):
3445         (Node.prototype.get isLiteral):
3446         * WebGPUShadingLanguageRI/NullType.js:
3447         (NullType.prototype.get isLiteral):
3448         (NullType.prototype.toString):
3449         (NullType):
3450         * WebGPUShadingLanguageRI/Parse.js:
3451         (parseTerm):
3452         * WebGPUShadingLanguageRI/Rewriter.js:
3453         (Rewriter.prototype.visitGenericLiteralType):
3454         (Rewriter.prototype.visitIntLiteral): Deleted.
3455         (Rewriter.prototype.visitIntLiteralType): Deleted.
3456         (Rewriter.prototype.visitUintLiteral): Deleted.
3457         (Rewriter.prototype.visitBoolLiteral): Deleted.
3458         * WebGPUShadingLanguageRI/Test.html:
3459         * WebGPUShadingLanguageRI/Test.js:
3460         (makeUint):
3461         (checkUint):
3462         (TEST_uintSimpleMath):
3463         (TEST_equality):
3464         (TEST_notEquality):
3465         (TEST_intLiteralGeneric):
3466         (TEST_intLiteralGenericWithProtocols):
3467         (TEST_uintLiteralGeneric):
3468         (TEST_uintLiteralGenericWithProtocols):
3469         (TEST_intLiteralGenericSpecific):
3470         (TEST_twoIntLiterals):
3471         (TEST_unifyDifferentLiterals):
3472         (makeUInt): Deleted.
3473         (checkUInt): Deleted.
3474         * WebGPUShadingLanguageRI/Type.js:
3475         * WebGPUShadingLanguageRI/UintLiteral.js:
3476         (let.UintLiteral.createLiteral.createType):
3477         (UintLiteral): Deleted.
3478         (UintLiteral.prototype.get value): Deleted.
3479         (UintLiteral.prototype.get isConstexpr): Deleted.
3480         (UintLiteral.prototype.toString): Deleted.
3481         * WebGPUShadingLanguageRI/UintLiteralType.js: Added.
3482         (let.UintLiteralType.createLiteralType.verifyAsArgument):
3483         * WebGPUShadingLanguageRI/UnificationContext.js:
3484         (UnificationContext.prototype.verify):
3485         * WebGPUShadingLanguageRI/Visitor.js:
3486         (Visitor.prototype.visitProtocolDecl):
3487
3488 2017-09-14  Ryan Haddad  <ryanhaddad@apple.com>
3489
3490         Unreviewed, rolling out r221868.
3491
3492         Rolling out this change while we investigate test262 failures.
3493
3494         Reverted changeset:
3495
3496         "Turn on exception scope verification for JSC tests."
3497         https://bugs.webkit.org/show_bug.cgi?id=162351
3498         http://trac.webkit.org/changeset/221868
3499
3500 2017-09-14  Alex Christensen  <achristensen@webkit.org>
3501
3502         Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight
3503         https://bugs.webkit.org/show_bug.cgi?id=176889
3504         <rdar://problem/29270035>
3505
3506         Reviewed by Andy Estes.
3507
3508         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3509         (-[PrintDelegate _webView:printFrame:]):
3510         (-[PrintDelegate _webViewHeaderHeight:]):
3511         (-[PrintDelegate _webViewFooterHeight:]):
3512         (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]):
3513         (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]):
3514         (callbacksEqual):
3515         (TEST):
3516         * TestWebKitAPI/cocoa/TestWKWebView.h:
3517         * TestWebKitAPI/cocoa/TestWKWebView.mm:
3518         (-[TestWKWebView hostWindow]):
3519
3520 2017-09-14  Carlos Alberto Lopez Perez  <clopez@igalia.com>
3521
3522         [GTK] Add a switch to start the mini-browser in full-screen mode
3523         https://bugs.webkit.org/show_bug.cgi?id=176904
3524
3525         Reviewed by Carlos Garcia Campos.
3526
3527         * MiniBrowser/gtk/main.c:
3528         (main):
3529
3530 2017-09-14  Filip Pizlo  <fpizlo@apple.com>
3531
3532         Unreviewed, fix a typo that was preventing a test from running.
3533
3534         * WebGPUShadingLanguageRI/Test.js:
3535
3536 2017-09-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3537
3538         [GTK] Fail to build using internal jhbuild if libgtk3-dev is not installed in the system
3539         https://bugs.webkit.org/show_bug.cgi?id=176778
3540
3541         Reviewed by Carlos Alberto Lopez Perez.
3542
3543         We are building gtk+ in the jhbuild with introspection disabled, but Gtk-3.gir is required to build the
3544         WebKitGTK+ introspection. Also, if wayland-protocols is not installed, gtk+ is built without the wayland backend
3545         and it's no possible to enable the wayland target in WebKitGTK+ either.
3546
3547         * gtk/jhbuild.modules: Do not disable introspection when building gtk+ and add wayland-protocols as a dependency.
3548
3549 2017-09-14  Maureen Daum  <mdaum@apple.com>
3550
3551         Introduce the option to mark an HTML element as having AutoFill available.
3552         https://bugs.webkit.org/show_bug.cgi?id=176710
3553
3554         Reviewed by Alex Christensen.
3555
3556         Add an API test that verifies after we mark a field as having AutoFill available,
3557         Accessibility also considers it to have AutoFill available.
3558
3559         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add AutoFillAvailable.mm
3560         * TestWebKitAPI/Tests/WebKitCocoa/AutoFillAvailable.mm: Added.
3561         Create an input element, mark it as having AutoFill available, then focus it so that
3562         we can get the accessibility information for it. Ask accessibility whether it considers
3563         the field to have AutoFill available, and pick the alert message based on that.
3564         (-[AutoFillAvailable webProcessPlugIn:didCreateBrowserContextController:]):
3565         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3566         (TEST):
3567         (-[AutoFillAvailableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3568         Verify that we get the alert message indicating that accessibility indeed considers
3569         the input element as having AutoFill available after we explicitly marked it as so.
3570
3571 2017-09-13  John Wilander  <wilander@apple.com>
3572
3573         Introduce Storage Access API (document parts) as an experimental feature
3574         https://bugs.webkit.org/show_bug.cgi?id=175759
3575         <rdar://problem/34414107>
3576
3577         Reviewed by Alex Christensen.
3578
3579         * WebKitTestRunner/TestController.cpp:
3580         (WTR::TestController::resetPreferencesToConsistentValues):
3581             Turns the feature on for tests.
3582
3583 2017-09-13  Matt Lewis  <jlewis3@apple.com>
3584
3585         Unreviewed, rolling out r221976.
3586
3587         The test introduced was flaky from point of addition.
3588
3589         Reverted changeset:
3590
3591         "Introduce Storage Access API (document parts) as an
3592         experimental feature"
3593         https://bugs.webkit.org/show_bug.cgi?id=175759
3594         http://trac.webkit.org/changeset/221976
3595
3596 2017-09-13  Lucas Forschler  <lforschler@apple.com>
3597
3598         Compress spindumps on client side before packaging into layout test results zip (mac & ios)
3599         https://bugs.webkit.org/show_bug.cgi?id=176853
3600
3601         Reviewed by Aakash Jain.
3602
3603         * BuildSlaveSupport/test-result-archive:
3604         (main):
3605         (gzip_file): use gzip to compress a file, removing original
3606         (compress_spindumps): find and compress spindumps matching a filter
3607         (archive_test_results): refactor to snake_case
3608         (archiveTestResults): Deleted.
3609
3610 2017-09-13  Alex Christensen  <achristensen@webkit.org>
3611
3612         Add WKUIDelegatePrivate equivalent of WKPageUIClient's setIsResizable, getWindowFrame, and setWindowFrame
3613         https://bugs.webkit.org/show_bug.cgi?id=176857
3614         <rdar://problem/29270035>
3615
3616         Reviewed by Tim Horton.
3617
3618         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3619         (-[ModalDelegate _webViewRunModal:]):
3620         (-[ModalDelegate _webView:setResizable:]):
3621         (-[WindowFrameDelegate _webView:setWindowFrame:]):
3622         (-[WindowFrameDelegate _webView:getWindowFrameWithCompletionHandler:]):
3623         (-[WindowFrameDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3624         (TEST):
3625         (-[ResizableDelegate _webView:setResizable:]):
3626         (-[ResizableDelegate _webView:getIsResizableWithCompletionHandler:]):
3627         (-[ResizableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3628
3629 2017-09-13  Youenn Fablet  <youenn@apple.com>
3630
3631         Add a lambda-based map for Vectors
3632         https://bugs.webkit.org/show_bug.cgi?id=176487
3633
3634         Reviewed by Darin Adler.
3635
3636         * TestWebKitAPI/Tests/WTF/Vector.cpp:
3637         (TestWebKitAPI::TEST):
3638
3639 2017-09-13  John Wilander  <wilander@apple.com>
3640
3641         Introduce Storage Access API (document parts) as an experimental feature
3642         https://bugs.webkit.org/show_bug.cgi?id=175759
3643         <rdar://problem/33666847>
3644
3645         Reviewed by Alex Christensen.
3646
3647         * WebKitTestRunner/TestController.cpp:
3648         (WTR::TestController::resetPreferencesToConsistentValues):
3649             Turns the feature on for tests.
3650
3651 2017-09-13  Per Arne Vollan  <pvollan@apple.com>
3652
3653         [Win] DRT option --gc-between-tests is not implemented.
3654         https://bugs.webkit.org/show_bug.cgi?id=176849
3655
3656         Reviewed by Brent Fulgham.
3657
3658         Perform GC after the test if this option is enabled. This patch also set the initial value of the flag
3659         to true, in order to catch GC related issues in the test in which they occur.
3660  
3661         * DumpRenderTree/win/DumpRenderTree.cpp:
3662         (runTest):
3663
3664 2017-09-12  Wenson Hsieh  <wenson_hsieh@apple.com>
3665
3666         [iOS DnD] Support DataTransfer.getData and DataTransfer.setData when dragging or dropping
3667         https://bugs.webkit.org/show_bug.cgi?id=176672
3668         <rdar://problem/34353723>
3669
3670         Reviewed by Ryosuke Niwa.
3671
3672         Adds new tests and tweaks existing DataInteractionTests to cover the tweaks made in this patch.
3673         SinglePlainTextURLTypeIdentifiers: Verify that inline presentation style is requested when dragging plaintext.
3674         SinglePlainTextWordTypeIdentifiers: Verify that inline presentation style is requested when dragging a link.
3675         ExternalSourceInlineTextToFileInput:
3676                 Verify that an item provider marked as preferring inline presentation does not trigger file uploads by
3677                 dragging a piece of inline text into a file input.
3678         CanStartDragOnDivWithDraggableAttribute:
3679                 Verify that DataTransfer.setData and DataTransfer.getData work as expected by moving a draggable div.
3680                 The test harness writes the id of the draggable div via the DataTransfer, and upon drop, reads the id
3681                 back to figure out which element to append to the drop destination.
3682
3683         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
3684         (TestWebKitAPI::TEST):
3685
3686 2017-09-12  Ryosuke Niwa  <rniwa@webkit.org>
3687
3688         Dragging & dropping a file creates an attachment element even when it's disabled
3689         https://bugs.webkit.org/show_bug.cgi?id=176769
3690
3691         Reviewed by Tim Horton.
3692
3693         Added a webkit-test-runner flag to enable attachment element via runtime flag since this feature is now hidden
3694         behind a runtime-enabled flag which needs to be set at the time of global object initialization.
3695
3696         * DumpRenderTree/TestOptions.h:
3697         (TestOptions): Added.
3698         * DumpRenderTree/TestOptions.mm:
3699         (TestOptions::TestOptions):
3700         * DumpRenderTree/mac/DumpRenderTree.mm:
3701         (setWebPreferencesForTestOptions):
3702         * WebKitTestRunner/TestController.cpp:
3703         (WTR::TestController::resetPreferencesToConsistentValues):
3704         (WTR::updateTestOptionsFromTestHeader):
3705         * WebKitTestRunner/TestOptions.h:
3706         (WTR::TestOptions::hasSameInitializationOptions const):
3707         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
3708         (WTR::TestController::platformCreateWebView):
3709
3710 2017-09-11  Filip Pizlo  <fpizlo@apple.com>
3711
3712         WSL should allow you to say "protocol Foo : Bar { ... }"
3713         https://bugs.webkit.org/show_bug.cgi?id=176238
3714
3715         Reviewed by Mylex Maxfield.
3716         
3717         This makes protocol "subtyping" work. It's not really subtyping. Protocol A inherits protocol B
3718         if every signature in B can be resolved against some signature in A. Also, you can explicitly
3719         subtype protocols using extends syntax ("protocol Foo : Bar, Baz { ... }").
3720         
3721         Also makes the diagnostics when type variable constraints fail a _lot_ better. This will even
3722         tell you diagnostics about why a function didn't match when protocols are not inheriting, and
3723         then it will tell you why the inheritance failed.
3724
3725         * WebGPUShadingLanguageRI/All.js:
3726         * WebGPUShadingLanguageRI/AutoWrapper.js:
3727         (AutoWrapper.prototype.visitTypeVariable):
3728         (AutoWrapper):
3729         * WebGPUShadingLanguageRI/Checker.js:
3730         (Checker.prototype.visitProtocolDecl.set throw):
3731         * WebGPUShadingLanguageRI/ConstexprTypeParameter.js:
3732         (ConstexprTypeParameter.prototype.verifyAsArgument):
3733         (ConstexprTypeParameter.prototype.verifyAsParameter):
3734         * WebGPUShadingLanguageRI/FlattenProtocolExtends.js: Added.
3735         * WebGPUShadingLanguageRI/Func.js:
3736         (Func.prototype.get typeParametersForCallResolution):
3737         * WebGPUShadingLanguageRI/InferTypesForCall.js:
3738         (inferTypesForCall):
3739         * WebGPUShadingLanguageRI/IntLiteralType.js:
3740         (IntLiteralType.prototype.verifyAsArgument):
3741         * WebGPUShadingLanguageRI/NameResolver.js:
3742         (NameResolver.prototype.visitProtocolDecl):
3743         (NameResolver.prototype.visitProtocolRef): Deleted.
3744         (NameResolver.prototype.visitProtocolFuncDecl): Deleted.
3745         (NameResolver.prototype.visitTypeDef): Deleted.
3746         (NameResolver.prototype.visitStructType): Deleted.
3747         (NameResolver.prototype._resolveTypeArguments): Deleted.
3748         (NameResolver.prototype.visitTypeRef): Deleted.
3749         (NameResolver.prototype.visitReferenceType): Deleted.
3750         (NameResolver.prototype.visitVariableDecl): Deleted.
3751         (NameResolver.prototype.visitVariableRef): Deleted.
3752         (NameResolver.prototype.visitReturn): Deleted.
3753         (NameResolver.prototype.visitCallExpression): Deleted.
3754         * WebGPUShadingLanguageRI/Node.js:
3755         (Node.prototype.equals):
3756         * WebGPUShadingLanguageRI/NullType.js:
3757         (NullType.prototype.verifyAsArgument):
3758         * WebGPUShadingLanguageRI/Parse.js:
3759         (parseProtocolDecl):
3760         * WebGPUShadingLanguageRI/Prepare.js:
3761         (prepare):
3762         * WebGPUShadingLanguageRI/ProtocolDecl.js:
3763         (ProtocolDecl): Deleted.
3764         (ProtocolDecl.prototype.add): Deleted.
3765         (ProtocolDecl.prototype.get signatures): Deleted.
3766         (ProtocolDecl.prototype.signaturesByName): Deleted.
3767         (ProtocolDecl.prototype.get typeVariable): Deleted.
3768         (ProtocolDecl.prototype.signaturesByNameWithTypeVariable): Deleted.
3769         (ProtocolDecl.prototype.inherits): Deleted.
3770         (ProtocolDecl.prototype.hasHeir): Deleted.
3771         (ProtocolDecl.prototype.toString): Deleted.
3772         * WebGPUShadingLanguageRI/ProtocolFuncDecl.js:
3773         (ProtocolFuncDecl.prototype.get typeParametersForCallResolution):
3774         (ProtocolFuncDecl):
3775         * WebGPUShadingLanguageRI/Rewriter.js:
3776         (Rewriter.prototype.visitProtocolDecl):
3777         * WebGPUShadingLanguageRI/Test.html:
3778         * WebGPUShadingLanguageRI/Test.js:
3779         (TEST_nullTypeVariableUnify):
3780         (TEST_simpleProtocolExtends):
3781         (TEST_protocolExtendsTwo):
3782         * WebGPUShadingLanguageRI/Type.js:
3783         (Type.prototype.inherits):
3784         * WebGPUShadingLanguageRI/TypeDefResolver.js:
3785         (TypeDefResolver.prototype.visitTypeRef):
3786         (TypeDefResolver):
3787         * WebGPUShadingLanguageRI/TypeVariable.js:
3788         (TypeVariable.prototype.inherits):
3789         (TypeVariable.prototype.verifyAsArgument):
3790         (TypeVariable.prototype.verifyAsParameter):
3791         * WebGPUShadingLanguageRI/UnificationContext.js:
3792         (UnificationContext.prototype.verify):
3793         * WebGPUShadingLanguageRI/Visitor.js:
3794         (Visitor.prototype.visitProtocolDecl):
3795         (Visitor.prototype.visitTypeRef): Deleted.
3796         (Visitor.prototype.visitNativeType): Deleted.
3797         (Visitor.prototype.visitNativeTypeInstance): Deleted.
3798         (Visitor.prototype.visitTypeDef): Deleted.
3799         (Visitor.prototype.visitStructType): Deleted.
3800         (Visitor.prototype.visitTypeVariable): Deleted.
3801         (Visitor.prototype.visitConstexprTypeParameter): Deleted.
3802         (Visitor.prototype.visitField): Deleted.
3803         (Visitor.prototype.visitElementalType): Deleted.
3804         (Visitor.prototype.visitReferenceType): Deleted.
3805         (Visitor.prototype.visitPtrType): Deleted.
3806         (Visitor.prototype.visitArrayRefType): Deleted.
3807         (Visitor.prototype.visitArrayType): Deleted.
3808         (Visitor.prototype.visitVariableDecl): Deleted.
3809         (Visitor.prototype.visitAssignment): Deleted.
3810         (Visitor.prototype.visitDereferenceExpression): Deleted.
3811         (Visitor.prototype.visitDotExpression): Deleted.
3812         (Visitor.prototype.visitMakePtrExpression): Deleted.
3813         (Visitor.prototype.visitVariableRef): Deleted.
3814         (Visitor.prototype.visitIfStatement): Deleted.
3815         (Visitor.prototype.visitWhileLoop): Deleted.
3816         (Visitor.prototype.visitDoWhileLoop): Deleted.
3817         (Visitor.prototype.visitForLoop): Deleted.
3818         (Visitor.prototype.visitReturn): Deleted.
3819         (Visitor.prototype.visitContinue): Deleted.
3820         (Visitor.prototype.visitBreak): Deleted.
3821         (Visitor.prototype.visitIntLiteral): Deleted.
3822         (Visitor.prototype.visitIntLiteralType): Deleted.
3823         (Visitor.prototype.visitUintLiteral): Deleted.
3824         (Visitor.prototype.visitNullLiteral): Deleted.
3825         (Visitor.prototype.visitBoolLiteral): Deleted.
3826         (Visitor.prototype.visitNullType): Deleted.
3827         (Visitor.prototype.visitCallExpression): Deleted.
3828         (Visitor.prototype.visitLogicalNot): Deleted.
3829         (Visitor.prototype.visitFunctionLikeBlock): Deleted.
3830         * WebGPUShadingLanguageRI/WrapChecker.js:
3831         (WrapChecker.prototype.visitTypeVariable):
3832         (WrapChecker):
3833
3834 2017-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>
3835
3836         Remove duplicated test results from LayoutTest platform directories
3837         https://bugs.webkit.org/show_bug.cgi?id=176686
3838
3839         Reviewed by Michael Catanzaro.
3840
3841         After several rebaselines we might end up with the same result in the platform directory than the common result
3842         without noticing it. This patch adds a script to detect those cases and remove all duplicated results from the
3843         repository.
3844
3845         * Scripts/check-for-duplicated-platform-test-results: Added.
3846         (check_duplicate):
3847         (check_duplicate.sha1):
3848         (platform_list):
3849
3850 2017-09-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>
3851
3852         The EWS build system is forcing a non UTF-8 locale and breaks meson.
3853         https://bugs.webkit.org/show_bug.cgi?id=176761
3854
3855         Reviewed by Michael Catanzaro.
3856
3857         On 2011 in order to disable GCC smartquotes (UTF-8 pretty quotes)
3858         that were causing trouble with the commit-queue server, the tooling
3859         for the EWS bots started to force an LC_ALL=C locale.
3860
3861         This was needed back then apparently because the commit-queue server
3862         was unable to handle properly UTF-8 text.
3863
3864         6 years forward and none of the ports that commit-queue tests before
3865         landing a patch use GCC, but Clang. So this should not be an issue anymore.
3866
3867         Forcing a non UTF-8 locale breaks the Meson build system (that the
3868         GTK/WPE ports use for some dependencies of its JHBuild dependencies
3869         local build system).
3870         It has also the potential to break things in subtle ways that are
3871         hard to debug and detect. So better stop doing this.
3872
3873         This patch also changes TERM=none to TERM=dumb that is the proper
3874         way to disable VT100 codes (see bug 127922).
3875
3876         * Scripts/webkitpy/common/system/environment.py:
3877         (Environment.to_dictionary):
3878         (Environment.disable_jhbuild_VT100_output):
3879         * Scripts/webkitpy/common/system/environment_unittest.py:
3880         (EnvironmentTest.test_disable_jhbuild_VT100_output):
3881         * Scripts/webkitpy/port/base.py:
3882         (Port._build_driver):
3883         (Port._build_image_diff):
3884         * Scripts/webkitpy/port/port_testcase.py:
3885         (PortTestCase.test_build_driver):
3886         * Scripts/webkitpy/tool/commands/download_unittest.py:
3887         * Scripts/webkitpy/tool/steps/build.py:
3888         (Build.build):
3889         * Scripts/webkitpy/tool/steps/steps_unittest.py:
3890
3891 2017-09-12  Michael Catanzaro  <mcatanzaro@igalia.com>
3892
3893         [WPE][GTK] Run tests with G_DEBUG=fatal-criticals
3894         https://bugs.webkit.org/show_bug.cgi?id=176755
3895
3896         Reviewed by Carlos Garcia Campos.
3897
3898         * Scripts/webkitpy/port/gtk.py:
3899         (GtkPort.setup_environ_for_server):
3900         * Scripts/webkitpy/port/wpe.py:
3901         (WPEPort.setup_environ_for_server):
3902
3903 2017-09-12  Alex Christensen  <achristensen@webkit.org>
3904
3905         Fix build after r221922.
3906         https://bugs.webkit.org/show_bug.cgi?id=176728
3907
3908         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3909         (-[ModalDelegate _webViewRunModal:]):
3910         (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
3911         (TEST):
3912         svn-apply inserted the test too early in the file :(
3913         Shift it down to where all the used static variables are declared.
3914
3915 2017-09-12  Alex Christensen  <achristensen@webkit.org>
3916
3917         Add WKUIDelegatePrivate equivalent of WKPageUIClient's runModal
3918         https://bugs.webkit.org/show_bug.cgi?id=176728
3919         <rdar://problem/29270035>
3920
3921         Reviewed by Tim Horton.
3922
3923         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3924         (-[ModalDelegate _webViewRunModal:]):
3925         (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
3926         (TEST):
3927
3928 2017-09-12  Daniel Bates  <dabates@apple.com>
3929
3930         REGRESSION (r215784): The title of right-to-left pages are empty
3931         https://bugs.webkit.org/show_bug.cgi?id=176746
3932         <rdar://problem/34211419>
3933
3934         Reviewed by Brent Fulgham.
3935
3936         Add unit test to ensure we do not regress StringWithDirection.truncateFromEnd().
3937
3938         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3939         * TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp: Added.
3940         (TestWebKitAPI::TEST):
3941
3942 2017-09-12  Alex Christensen  <achristensen@webkit.org>
3943
3944         Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForNotificationPermissionRequest
3945         https://bugs.webkit.org/show_bug.cgi?id=176768
3946         <rdar://problem/29270035>
3947
3948         Reviewed by Tim Horton.
3949
3950         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3951         (-[NotificationDelegate initWithAllowNotifications:]):
3952         (-[NotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3953         (-[NotificationDelegate _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]):
3954         (TEST):
3955
3956 2017-09-12 Brent Fulgham  <bfulgham@apple.com>
3957
3958         Show punycode to user if a URL mixes Armenian Seh or Vo with other scripts
3959         https://bugs.webkit.org/show_bug.cgi?id=176578
3960         <rdar://problem/33906231>
3961
3962         Reviewed by Alex Christensen.
3963
3964         * TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
3965         (TestWebKitAPI::TEST):
3966
3967 2017-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>
3968
3969         [Freetype] Doesn't support coloured fonts
3970         https://bugs.webkit.org/show_bug.cgi?id=156579
3971
3972         Reviewed by Michael Catanzaro.
3973
3974         Bump webkitgtk-test-fonts to 0.0.6 version that includes the EmijoOne font.
3975
3976         * gtk/jhbuild.modules:
3977         * wpe/jhbuild.modules:
3978
3979 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
3980
3981         [iOS DnD] Support DataTransfer.setDragImage when starting a drag on iOS
3982         https://bugs.webkit.org/show_bug.cgi?id=176721
3983         <rdar://problem/34373660>
3984
3985         Reviewed by Tim Horton.
3986
3987         In DataInteractionSimulator, ask the UIDragInteractionDelegate (WKContentView) for targeted drag previews after
3988         retrieving UIDragItems during a lift. Remember these previews after the drag and drop simulation is complete, so
3989         API tests (currently, just DragLiftPreviewDataTransferSetDragImage) can verify that the generated drag previews
3990         are as expected.
3991
3992         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3993         * TestWebKitAPI/Tests/WebKitCocoa/DataTransfer-setDragImage.html: Added.
3994
3995         Adds a new test harness containing 5 draggable elements, each generating a drag image using different codepaths.
3996         DragLiftPreviewDataTransferSetDragImage uses this page to check that the frame of the targeted drag preview in
3997         each scenario is as expected.
3998
3999         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
4000         (checkCGRectIsEqualToCGRectWithLogging):
4001         (TestWebKitAPI::TEST):
4002         * TestWebKitAPI/ios/DataInteractionSimulator.h:
4003         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
4004         (-[DataInteractionSimulator _resetSimulatedState]):
4005         (-[DataInteractionSimulator _advanceProgress]):
4006         (-[DataInteractionSimulator liftPreviews]):
4007
4008 2017-09-11  Tim Horton  <timothy_horton@apple.com>
4009
4010         REGRESSION (r221272): WKWebView gets stuck zoomed in if the web process crashes
4011         https://bugs.webkit.org/show_bug.cgi?id=176767
4012         <rdar://problem/34196874>
4013
4014         Reviewed by Dan Bernstein.
4015
4016         * TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
4017         (TEST):
4018         Add a test ensuring that override layout size persists through Web
4019         Content process crash.
4020
4021 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
4022
4023         [iOS WK2] Support tapping to add items to the current drag session in web content
4024         https://bugs.webkit.org/show_bug.cgi?id=176421
4025         <rdar://problem/31144674>
4026
4027         Reviewed by Tim Horton.
4028
4029         Adds a new drag and drop test that begins a drag on a text selection, adds an image and a link, and then drops
4030         into a contenteditable area. This verifies that the text, link and image are inserted into the editable area
4031         upon drop.
4032
4033         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
4034         (TestWebKitAPI::TEST):
4035
4036 2017-09-11  Lucas Forschler  <lforschler@apple.com>
4037
4038         bisect-builds: add --list option
4039         https://bugs.webkit.org/show_bug.cgi?id=174836
4040
4041         Reviewed by Aakash Jain & Stephanie Lewis.
4042
4043         * Scripts/bisect-builds:
4044         (parse_args): add --list option
4045         (minified_platforms): update supported platform list (add ios simulator)
4046         (print_list_and_exit): helper function to print list and exit
4047
4048 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
4049
4050         [iOS WK2] ExternalSourceDataTransferItemGetAsEntry tests produce inconsistent results on test automation bots
4051         https://bugs.webkit.org/show_bug.cgi?id=176736
4052
4053         Reviewed by Andy Estes and Megan Gardner.
4054
4055         The test output dumped when dropping a file in DataTransferItem-getAsEntry.html should adhere to some deterministic order.
4056         Currently, this is not enforced, so on some systems, these tests fail due to expected test output being out of order. To
4057         fix this, simply have the test harness alphabetically sort the output before writing to the textarea.
4058
4059         * TestWebKitAPI/Tests/WebKitCocoa/DataTransferItem-getAsEntry.html:
4060         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
4061         (TestWebKitAPI::TEST):
4062
4063 2017-09-11  Ryosuke Niwa  <rniwa@webkit.org>
4064
4065         webkitbot should recognize commands even when colon is omitted
4066         https://bugs.webkit.org/show_bug.cgi?id=176680
4067         <rdar://problem/29933898>
4068
4069         Reviewed by Daniel Bates.
4070
4071         Recognize the IRC command even when : and , were not present.
4072         Unfortunately, there is no unit test for this code at the moment.
4073
4074         * Scripts/webkitpy/common/net/irc/ircbot.py:
4075         (IRCBot.on_pubmsg):
4076
4077 2017-09-11  Lucas Forschler  <lforschler@apple.com>
4078
4079         bisect-builds doesn't work due to missing requests module
4080         https://bugs.webkit.org/show_bug.cgi?id=175709
4081         
4082         Reviewed by Ryosuke Niwa.
4083
4084         * Scripts/bisect-builds: use urllib2 instead of the requests module.
4085         (get_s3_location_for_revision):
4086         (main):
4087
4088 2017-09-11  Filip Pizlo  <fpizlo@apple.com>
4089
4090         WSL Substitution should probably wrap type variables of substituted types rather than just wrapping the whole type
4091         https://bugs.webkit.org/show_bug.cgi?id=176677
4092
4093         Reviewed by Mylex Maxfield.
4094         
4095         This adds a checker that verifies that all type references and variable references are wrapped.
4096         
4097         Then this fixes errors found by that checker by making Substitution auto-wrap replacements rather than
4098         manually wrapping the outer type (for types) and cloning (for values).
4099
4100         * WebGPUShadingLanguageRI/All.js:
4101         * WebGPUShadingLanguageRI/AutoWrapper.js: Added.
4102         (AutoWrapper.prototype.visitVariableRef):
4103         (AutoWrapper.prototype.visitTypeRef):
4104         (AutoWrapper.prototype.visitConstexprTypeParameter):
4105         (AutoWrapper.prototype.visitFuncParameter):
4106         (AutoWrapper.prototype.visitVariableDecl):
4107         (AutoWrapper.prototype.visitStructType):
4108         (AutoWrapper.prototype.visitNativeType):
4109         (AutoWrapper):
4110         * WebGPUShadingLanguageRI/CheckWrapped.js:
4111         (checkExpressionWrapped):
4112         (checkProgramWrapped):
4113         (checkWrapped): Deleted.
4114         * WebGPUShadingLanguageRI/Checker.js:
4115         * WebGPUShadingLanguageRI/ExpressionFinder.js: Added.
4116         (ExpressionFinder):
4117         (ExpressionFinder.prototype.visitFunc):
4118         (ExpressionFinder.prototype.visitFuncParameter):
4119         (ExpressionFinder.prototype.visitConstexprTypeParameter):
4120         (ExpressionFinder.prototype.visitAssignment):
4121         (ExpressionFinder.prototype.visitCallExpression):
4122         (ExpressionFinder.prototype.visitReturn):
4123         (ExpressionFinder.prototype.visitWhileLoop):
4124         (ExpressionFinder.prototype.visitDoWhileLoop):
4125         (ExpressionFinder.prototype.visitIfStatement):
4126         (ExpressionFinder.prototype.visitForLoop):
4127         (ExpressionFinder.prototype.visitVariableDecl):
4128         * WebGPUShadingLanguageRI/NativeFuncInstance.js:
4129         (NativeFuncInstance):
4130         * WebGPUShadingLanguageRI/Node.js:
4131         (Node.prototype.substituteToUnification):
4132         (Node):
4133         (Node.prototype.clone): Deleted.
4134         * WebGPUShadingLanguageRI/Prepare.js:
4135         (prepare):
4136         * WebGPUShadingLanguageRI/StructLayoutBuilder.js:
4137         (StructLayoutBuilder.prototype.visitReferenceType):
4138         (StructLayoutBuilder.prototype.visitField):
4139         (StructLayoutBuilder):
4140         * WebGPUShadingLanguageRI/Substitution.js:
4141         (Substitution):
4142         (Substitution.prototype.visitTypeRef):
4143         (Substitution.prototype.visitVariableRef):
4144         * WebGPUShadingLanguageRI/Test.html:
4145         * WebGPUShadingLanguageRI/Test.js:
4146         (TEST_chainConstexpr):
4147         (TEST_chainGeneric):
4148         (TEST_chainStruct):
4149         (TEST_chainStructInvalid):
4150         * WebGPUShadingLanguageRI/Visitor.js:
4151         (Visitor.prototype.visitNativeTypeInstance):
4152         * WebGPUShadingLanguageRI/WrapChecker.js:
4153         (WrapChecker.prototype._foundUnwrapped.originString):
4154         (WrapChecker.prototype._foundUnwrapped):
4155         (WrapChecker):
4156
4157 2017-09-11  Ryan Haddad  <ryanhaddad@apple.com>
4158
4159         Fix multiple master.cfg unit test failures.
4160         https://bugs.webkit.org/show_bug.cgi?id=176745
4161
4162         Reviewed by Alexey Proskuryakov.
4163
4164         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
4165         (TestFactory.__init__): Add missing ':'.
4166         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results for Windows and iOS build steps.
4167
4168 2017-09-11  Jonathan Bedard  <jbedard@apple.com>
4169
4170         Older versions should adopt newer version's expectations on mac
4171         https://bugs.webkit.org/show_bug.cgi?id=176699
4172         <rdar://problem/34367907>
4173
4174         Reviewed by Alexey Proskuryakov.
4175
4176         Before:
4177                 mac-elcapitan-wk2
4178                 mac-elcapitan
4179                 mac-wk2
4180                 mac
4181                 wk2
4182         After:
4183                 mac-elcapitan-wk2
4184                 mac-elcapitan
4185                 mac-sierra-wk2
4186                 mac-sierra
4187                 mac-wk2
4188                 mac
4189                 wk2
4190
4191         * Scripts/webkitpy/port/mac.py:
4192         (MacPort.default_baseline_search_path): Use VERSION_FALLBACK_ORDER to have old
4193         versions inherit expectations from newer versions.
4194         * Scripts/webkitpy/port/mac_unittest.py:
4195         (MacTest.test_layout_test_searchpath_with_apple_additions): Check new behavior
4196         with older versions inheriting expectations from newer versions.
4197
4198 2017-09-11  Ryan Haddad  <ryanhaddad@apple.com>
4199
4200         Skip JSC test wsl-tests.yaml/Test.js
4201         https://bugs.webkit.org/show_bug.cgi?id=176727
4202
4203         Unreviewed test gardening.
4204
4205         * WebGPUShadingLanguageRI/wsl-tests.yaml:
4206
4207 2017-09-11  Alex Christensen  <achristensen@webkit.org>
4208
4209         Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForGeolocationPermissionRequest
4210         https://bugs.webkit.org/show_bug.cgi?id=176642
4211         <rdar://problem/29270035>
4212
4213         Reviewed by Darin Adler.
4214
4215         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
4216         (-[GeolocationDelegate initWithAllowGeolocation:]):
4217         (-[GeolocationDelegate _webView:requestGeolocationPermissionForFrame:decisionHandler:]):
4218         (-[GeolocationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
4219         (TEST):
4220
4221 2017-09-11  Wenson Hsieh  <wenson_hsieh@apple.com>
4222
4223   &