Add a third benchmark to TailBench
[WebKit-https.git] / Tools / ChangeLog
1 2017-11-06  Robin Morisset  <rmorisset@apple.com>
2
3         Add a third benchmark to TailBench
4         https://bugs.webkit.org/show_bug.cgi?id=178815
5
6         Reviewed by Saam Barati.
7
8         Add a new benchmark to TailBench: a BF interpreter written in a weird kinda functional style
9
10         * Scripts/run-jsc-benchmarks:
11
12 2017-11-04  Michael Catanzaro  <mcatanzaro@igalia.com>
13
14         [GTK] Fix gtk-doc generation with gtk-doc master
15         https://bugs.webkit.org/show_bug.cgi?id=179252
16
17         Reviewed by Carlos Garcia Campos.
18
19         gtkdoc-scangobj has changed to no longer use a shell when executing its subcommands. In
20         particular, this means we can no longer rely on shell stuff in our run command that we use
21         to run the scanner. We currently use the RUN envvar to set LD_LIBRARY_PATH, and the end
22         result is gtkdoc-scangobj now attempts to execute our environment variable instead of the
23         scanner itself. We can just set LD_LIBRARY_PATH directly, instead of using RUN, in order to
24         make documentation generation work again.
25
26         * gtk/gtkdoc.py:
27         (GTKDoc._run_gtkdoc_scangobj):
28
29 2017-11-04  Aishwarya Nirmal  <anirmal@apple.com>
30
31         [Touch Bar Web API] Add support for menuitem tag
32         https://bugs.webkit.org/show_bug.cgi?id=179020
33
34         Reviewed by Ryosuke Niwa.
35
36         Defines flags for the menu item test so that the element is recognized
37         only while its test is being run.
38
39         * DumpRenderTree/TestOptions.h:
40         * DumpRenderTree/TestOptions.mm:
41         (TestOptions::TestOptions):
42         * DumpRenderTree/mac/DumpRenderTree.mm:
43         (setWebPreferencesForTestOptions):
44         * WebKitTestRunner/TestController.cpp:
45         (WTR::TestController::resetPreferencesToConsistentValues):
46         (WTR::updateTestOptionsFromTestHeader):
47         * WebKitTestRunner/TestOptions.h:
48         (WTR::TestOptions::hasSameInitializationOptions const):
49
50 2017-11-03  Andy Estes  <aestes@apple.com>
51
52         [iOS] Append the platform name to the product directory on all embedded platforms
53         https://bugs.webkit.org/show_bug.cgi?id=179271
54
55         Reviewed by Joseph Pecoraro.
56
57         * Scripts/webkitdirs.pm:
58         (determineConfigurationProductDir):
59
60 2017-11-03  Basuke Suzuki  <Basuke.Suzuki@sony.com>
61
62         [WinCairo] Add --wincairo option to run-webkit-tests
63         https://bugs.webkit.org/show_bug.cgi?id=179217
64
65         Reviewed by Alex Christensen.
66
67         * Scripts/webkitpy/port/factory.py:
68         (platform_options):
69
70 2017-11-03  Michael Catanzaro  <mcatanzaro@igalia.com>
71
72         [WPE][GTK] Avoid duplicating code for dist and distcheck targets
73         https://bugs.webkit.org/show_bug.cgi?id=179154
74
75         Reviewed by Carlos Garcia Campos.
76
77         Move the script out of Tools/gtk because it is already used by WPE. Also, drop the .py
78         prefix because it is executable.
79
80         * Scripts/make-dist: Renamed from Tools/gtk/make-dist.py.
81
82 2017-11-03  Jonathan Bedard  <jbedard@apple.com>
83
84         TestController platformAdjustContext should use provided WKContext for Mac
85         https://bugs.webkit.org/show_bug.cgi?id=179124
86         <rdar://problem/35295176>
87
88         Reviewed by Darin Adler.
89
90         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
91         (WTR::initializeWebViewConfiguration): Use the provided WKContext, since that is
92         a WebProcessPool, instead of creating a second one.
93
94 2017-11-02  Christopher Reid  <chris.reid@sony.com>
95
96         Add a FileSystem namespace to FileSystem.cpp
97         https://bugs.webkit.org/show_bug.cgi?id=179063
98
99         Reviewed by Darin Adler.
100
101         * DumpRenderTree/win/DumpRenderTree.cpp:
102         * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
103         * TestWebKitAPI/Tests/WebCore/FileSystem.cpp:
104         * TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:
105         * TestWebKitAPI/Tests/WebCore/SharedBufferTest.cpp:
106         * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:
107         * TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
108
109 2017-11-02  Carlos Alberto Lopez Perez  <clopez@igalia.com>
110
111         [WPE][JHBuild] Update WPEBackend and WPEBackend-mesa
112         https://bugs.webkit.org/show_bug.cgi?id=179169
113
114         Reviewed by Michael Catanzaro.
115
116         Update WPEBackend and WPEBackend-mesa to last master as of today.
117
118         * wpe/jhbuild.modules:
119
120 2017-11-02  Frederic Wang  <fwang@igalia.com>
121
122         Add references to bug 179167 in FIXME comments
123         https://bugs.webkit.org/show_bug.cgi?id=179168
124
125         Reviewed by Daniel Bates.
126
127         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
128
129 2017-11-01  Jeremy Jones  <jeremyj@apple.com>
130
131         Implement WKFullscreenWindowController for iOS.
132         https://bugs.webkit.org/show_bug.cgi?id=178924
133         rdar://problem/34697120
134
135         Reviewed by Simon Fraser.
136
137         Enable ENABLE_FULLSCREEN_API for iOS.
138
139         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
140
141 2017-11-01  Simon Fraser  <simon.fraser@apple.com>
142
143         Misc display list and other cleanup
144         https://bugs.webkit.org/show_bug.cgi?id=179150
145
146         Reviewed by Tim Horton.
147
148         Add system trace points for display list recording.
149
150         * Tracing/SystemTracePoints.plist:
151
152 2017-11-01  Stephan Szabo  <stephan.szabo@sony.com>
153
154         [Win] Detect Visual Studio 2017 location
155         https://bugs.webkit.org/show_bug.cgi?id=175275
156
157         Reviewed by Yusuke Suzuki.
158
159         * Scripts/build-jsc:
160         * Scripts/build-webkit:
161         * Scripts/update-vswhere.py: Added.
162         * Scripts/webkitdirs.pm:
163         (requireModulesForVSWhere):
164         (pickCurrentVisualStudioInstallation):
165         (pickLegacyVisualStudioInstallation):
166         (visualStudioInstallDir):
167         (visualStudioInstallDirVSWhere):
168         (visualStudioInstallDirLegacy):
169         (visualStudioInstallDirFallback):
170         (msBuildInstallDir):
171         (visualStudioVersion):
172         (visualStudioVersionFromInstallDir):
173         (generateBuildSystemFromCMakeProject):
174
175 2017-11-01  Tim Horton  <timothy_horton@apple.com>
176
177         Fix the !USE(QUICKLOOK) build
178         https://bugs.webkit.org/show_bug.cgi?id=179128
179
180         Reviewed by Wenson Hsieh.
181
182         * TestWebKitAPI/Tests/WebCore/ios/PreviewLoader.cpp:
183
184 2017-11-01  Frederic Wang  <fwang@igalia.com>
185
186         Make iOS Find UI reveal matches in scrollable elements
187         https://bugs.webkit.org/show_bug.cgi?id=178789
188
189         Reviewed by Tim Horton.
190
191         This patch exposes WKWebView's findString function in order to test the fix for bug 178789.
192
193         * DumpRenderTree/ios/UIScriptControllerIOS.mm:
194         (WTR::UIScriptController::findString): Dummy implementation of findString.
195         * DumpRenderTree/mac/UIScriptControllerMac.mm:
196         (WTR::UIScriptController::findString): Ditto.
197         * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: Declare findString.
198         * TestRunnerShared/UIScriptContext/UIScriptController.cpp:
199         (WTR::UIScriptController::findString): Dummy implementation of findString.
200         * TestRunnerShared/UIScriptContext/UIScriptController.h: Declare findString.
201         * WebKitTestRunner/ios/UIScriptControllerIOS.mm:
202         (WTR::UIScriptController::findString): Implement findString by forwarding the call to the
203         web view.
204         * WebKitTestRunner/mac/UIScriptControllerMac.mm:
205         (WTR::UIScriptController::findString): Dummy implementation of findString.
206
207 2017-11-01  Alex Christensen  <achristensen@webkit.org>
208
209         Add a test for _WKInputDelegate.willSubmitFormValues
210         https://bugs.webkit.org/show_bug.cgi?id=179086
211
212         Reviewed by Darin Adler.
213
214         Hidden input types are not included in this submission because FormSubmission::create ignores them
215         because input.isTextField() returns false.  This is existing behavior that wasn't shown by a test.
216         HTTPBodies are also not sent to WKURLSchemeHandlers.  This is existing behavior that wasn't shown by a test.
217
218         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
219         * TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm: Added.
220         (-[FormSubmissionDelegate _webView:willSubmitFormValues:userObject:submissionHandler:]):
221         (TEST):
222
223 2017-10-31  Ross Kirsling  <ross.kirsling@sony.com>
224
225         Web Inspector: Add Inspector menu items to Mac MiniBrowser
226         https://bugs.webkit.org/show_bug.cgi?id=65218
227
228         Reviewed by Joseph Pecoraro.
229
230         Add Option-Command-I shortcut and corresponding Show/Close Web Inspector menu item to Mac MiniBrowser.
231         Only works when browser window is focused, but at least WI can be opened without having to Inspect Element.
232
233         * MiniBrowser/mac/BrowserWindowController.h:
234         * MiniBrowser/mac/BrowserWindowController.m:
235         (-[BrowserWindowController showHideWebInspector:]):
236         * MiniBrowser/mac/MainMenu.xib:
237         * MiniBrowser/mac/WK1BrowserWindowController.m:
238         (-[WK1BrowserWindowController validateMenuItem:]):
239         (-[WK1BrowserWindowController showHideWebInspector:]):
240         * MiniBrowser/mac/WK2BrowserWindowController.m:
241         (-[WK2BrowserWindowController validateMenuItem:]):
242         (-[WK2BrowserWindowController showHideWebInspector:]):
243
244 2017-10-31  Alex Christensen  <achristensen@webkit.org>
245
246         Use asynchronous ResourceHandleClient calls for WebKit1
247         https://bugs.webkit.org/show_bug.cgi?id=160677
248
249         Reviewed by Brady Eidson.
250
251         * TestWebKitAPI/Tests/mac/SimplifyMarkup.mm:
252         (TestWebKitAPI::TEST):
253         The HTML being loaded contains an iframe, so testing if the main resource has loaded doesn't necessarily mean all subresources are loaded.
254         Wait until they are loaded before continuing the test.  This is a test of editing commands once the page has loaded, not a test of loading.
255
256 2017-10-31  Commit Queue  <commit-queue@webkit.org>
257
258         Unreviewed, rolling out r224143.
259         https://bugs.webkit.org/show_bug.cgi?id=179091
260
261         The patch requires non-standard perl modules in macOS and
262         breaks AWFY (Requested by yusukesuzuki on #webkit).
263
264         Reverted changeset:
265
266         "[Win] Detect Visual Studio 2017 location"
267         https://bugs.webkit.org/show_bug.cgi?id=175275
268         https://trac.webkit.org/changeset/224143
269
270 2017-10-31  Tim Horton  <timothy_horton@apple.com>
271
272         Clean up some drag and drop feature flags
273         https://bugs.webkit.org/show_bug.cgi?id=179082
274
275         Reviewed by Simon Fraser.
276
277         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
278         * TestWebKitAPI/ios/UIKitSPI.h:
279
280 2017-10-31  Tim Horton  <timothy_horton@apple.com>
281
282         Fix up some content filtering feature flags
283         https://bugs.webkit.org/show_bug.cgi?id=179079
284
285         Reviewed by Simon Fraser.
286
287         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
288         * TestWebKitAPI/Tests/WebKitCocoa/ContentFilteringPlugIn.mm:
289         (-[MockContentFilterEnabler initWithCoder:]):
290         (-[MockContentFilterEnabler dealloc]):
291
292 2017-10-31  Youenn Fablet  <youenn@apple.com>
293
294         rwt should allow service worker to load localhost HTTPS resources with any certificate
295         https://bugs.webkit.org/show_bug.cgi?id=179018
296
297         Reviewed by Chris Dumez.
298
299         * WebKitTestRunner/TestController.cpp:
300         (WTR::TestController::resetStateToConsistentValues): allowing any SSL certificate for service workers.
301
302 2017-10-31  Wenson Hsieh  <wenson_hsieh@apple.com>
303
304         [Attachment Support] Implement WKWebView SPI for inserting attachment elements
305         https://bugs.webkit.org/show_bug.cgi?id=179013
306         <rdar://problem/35249668>
307
308         Reviewed by Tim Horton.
309
310         Adds a new API test suite to exercise attachment element insertion and manipulation.
311
312         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
313         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: Added.
314         (webViewForTestingAttachments):
315         (testHTMLData):
316         (testImageData):
317         (-[TestWKWebView synchronouslyInsertAttachmentWithFilename:contentType:data:options:]):
318         (-[TestWKWebView valueOfAttribute:forQuerySelector:]):
319         (TestWebKitAPI::TEST):
320
321 2017-10-31  Alex Christensen  <achristensen@webkit.org>
322
323         Fix custom header field setting with reloads and asynchronous navigation action policy decisions
324         https://bugs.webkit.org/show_bug.cgi?id=179064
325
326         Reviewed by Tim Horton.
327
328         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
329         (-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
330         (TEST):
331
332 2017-10-30  Michael Catanzaro  <mcatanzaro@igalia.com>
333
334         WKBundlePageWillSendSubmitEventCallback is called with incorrect frame parameter
335         https://bugs.webkit.org/show_bug.cgi?id=176719
336
337         Reviewed by Chris Dumez.
338
339         Test that WKBundlePageWillSendSubmitEventCallback is called with separate frame and
340         sourceFrame parameters when the target frame of the form submission is not the source frame.
341
342         * TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent.cpp:
343         (TestWebKitAPI::didReceiveMessageFromInjectedBundle):
344         * TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent_Bundle.cpp:
345         (TestWebKitAPI::willSendSubmitEvent):
346         * TestWebKitAPI/Tests/WebKit/auto-submitting-form.html:
347
348 2017-10-30  Alex Christensen  <achristensen@webkit.org>
349
350         ASSERTION FAILED: internalValuesConsistent(m_url) in WebCore::URLParser::URLParser
351         https://bugs.webkit.org/show_bug.cgi?id=178861
352
353         Reviewed by Tim Horton.
354
355         * TestWebKitAPI/Tests/WebCore/URLParser.cpp:
356         (TestWebKitAPI::TEST_F):
357
358 2017-10-30  Commit Queue  <commit-queue@webkit.org>
359
360         Unreviewed, rolling out r224078.
361         https://bugs.webkit.org/show_bug.cgi?id=179026
362
363         MotionMark regression (Requested by shallawa on #webkit).
364
365         Reverted changeset:
366
367         "When navigating back to a page, compositing layers may not
368         use accelerated drawing"
369         https://bugs.webkit.org/show_bug.cgi?id=178749
370         https://trac.webkit.org/changeset/224078
371
372 2017-10-30  Michael Catanzaro  <mcatanzaro@igalia.com>
373
374         [WPE] Fix build warnings
375         https://bugs.webkit.org/show_bug.cgi?id=178899
376
377         Reviewed by Carlos Alberto Lopez Perez.
378
379         * TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
380         (testContextMenuDownloadActions):
381         (testBlobDownload):
382         (beforeAll):
383         * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:
384         * TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
385         (testWebViewJavaScriptDialogs):
386         * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
387         * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
388         * WebKitTestRunner/PlatformWPE.cmake:
389         * WebKitTestRunner/wpe/HeadlessViewBackend.cpp:
390         * WebKitTestRunner/wpe/TestControllerWPE.cpp:
391         (WTR::threadDefaultContext): Deleted.
392
393 2017-10-30  Michael Catanzaro  <mcatanzaro@igalia.com>
394
395         [WPE] Upstream or stop using cairo-egl-device-create-for-egl-surface.patch
396         https://bugs.webkit.org/show_bug.cgi?id=178898
397
398         Reviewed by Žan Doberšek.
399
400         This patch seems to be unused.
401
402         * wpe/jhbuild.modules:
403         * wpe/patches/cairo-egl-device-create-for-egl-surface.patch: Removed.
404
405 2017-10-30  Michael Catanzaro  <mcatanzaro@igalia.com>
406
407         [WPE] Build more files under WebCore as unified sources and get rid of WebCorePlatformWPE build target
408         https://bugs.webkit.org/show_bug.cgi?id=178964
409
410         Reviewed by Carlos Alberto Lopez Perez.
411
412         * TestWebKitAPI/PlatformWPE.cmake:
413
414 2017-10-12  Frederic Wang  <fwang@igalia.com>
415
416         Remove support for running safari on the iOS simulator with Xcode < 9.0
417         https://bugs.webkit.org/show_bug.cgi?id=178203
418
419         Reviewed by Alexey Proskuryakov.
420
421         This is a follow-up of r223234. We no longer support iOS WebKit development for Xcode < 9.0
422         and do not have any iOS simulator builders in our infrastructure. Hence we can remove the
423         special case to calculate the iOS simulator applications path for these old versions.
424
425         * Scripts/webkitdirs.pm:
426         (iosSimulatorApplicationsPath): Remove special case for XCode < 9.0
427
428 2017-10-30  Michael Catanzaro  <mcatanzaro@igalia.com>
429
430         [WPE][GTK] Expose availability of certain editing commands in WebKitEditorState
431         https://bugs.webkit.org/show_bug.cgi?id=168219
432
433         Reviewed by Ryosuke Niwa.
434
435         Test it.
436
437         * TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:
438         (testWebViewEditorCutCopyPasteNonEditable):
439         (testWebViewEditorCutCopyPasteEditable):
440         (testWebViewEditorSelectAllNonEditable):
441         (testWebViewEditorSelectAllEditable):
442         (loadContentsAndTryToCutSelection):
443         (testWebViewEditorNonEditable):
444         (testWebViewEditorEditorStateTypingAttributes):
445         (testWebViewEditorInsertImage):
446         (testWebViewEditorCreateLink):
447
448 2017-10-28  Michael Catanzaro  <mcatanzaro@igalia.com>
449
450         [WPE] Build gst-plugins-base without pango support
451         https://bugs.webkit.org/show_bug.cgi?id=178918
452
453         Reviewed by Carlos Garcia Campos.
454
455         We need to build gst-plugins-base without pango support for WPE. Let's use JHBuild
456         conditions so we can make platform-specific changes in the shared GStreamer moduleset.
457
458         * gstreamer/jhbuild.modules:
459         * gtk/jhbuildrc:
460         * wpe/jhbuildrc:
461
462 2017-10-27  Stephan Szabo  <stephan.szabo@sony.com>
463
464         [Win] Detect Visual Studio 2017 location
465         https://bugs.webkit.org/show_bug.cgi?id=175275
466
467         Reviewed by Per Arne Vollan.
468
469         * Scripts/build-jsc:
470         * Scripts/build-webkit:
471         * Scripts/update-vswhere.py: Added.
472         * Scripts/webkitdirs.pm:
473         (pickCurrentVisualStudioInstallation):
474         (pickLegacyVisualStudioInstallation):
475         (visualStudioInstallDir):
476         (visualStudioInstallDirVSWhere):
477         (visualStudioInstallDirLegacy):
478         (visualStudioInstallDirFallback):
479         (msBuildInstallDir):
480         (visualStudioVersion):
481         (visualStudioVersionFromInstallDir):
482         (generateBuildSystemFromCMakeProject):
483
484 2017-10-27  Devin Rousso  <webkit@devinrousso.com>
485
486         Create watchlist for files related WebInspector Recording
487         https://bugs.webkit.org/show_bug.cgi?id=178965
488
489         Reviewed by Joseph Pecoraro.
490
491         * Scripts/webkitpy/common/config/watchlist:
492
493 2017-10-27  Jonathan Bedard  <jbedard@apple.com>
494
495         Windows and WebViews are retained after re-configure
496         https://bugs.webkit.org/show_bug.cgi?id=178902
497         <rdar://problem/35211518>
498
499         Reviewed by Alexey Proskuryakov.
500
501         The test runner effectively leaks windows every time a test changes configuration.
502         We give each test it's own AutoreleasePool to fix this problem.
503
504         * WebKitTestRunner/TestController.cpp:
505         (WTR::TestController::runTest): Add an AutoRelease pool scoping a test run
506         so that when a configuration changes, the old window and WebView are released.
507
508 2017-10-27  Eric Carlson  <eric.carlson@apple.com>
509
510         NowPlayingInfo should contain a unique identifier
511         https://bugs.webkit.org/show_bug.cgi?id=178872
512         <rdar://problem/34924012>
513
514         Unreviewed, fix a flakey test.
515
516         * TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:
517         (-[NowPlayingTestWebView hasActiveNowPlayingSession]): Update _lastUpdatedElapsedTime.
518         (-[NowPlayingTestWebView _handleActiveNowPlayingSessionInfoResponse:title:duration:elapsedTime:]): Deleted.
519
520 2017-10-27  Fujii Hironori  <Hironori.Fujii@sony.com>
521
522         autoinstall can't download from http://pypi.python.org
523         https://bugs.webkit.org/show_bug.cgi?id=178925
524
525         Reviewed by Ryosuke Niwa.
526
527         The web server pypi.python.org rejects non secure http.
528
529         * Scripts/webkitpy/thirdparty/__init__.py:
530         (AutoinstallImportHook._install_mechanize): Use https instead of http.
531         (AutoinstallImportHook._install_pep8): Ditto.
532         (AutoinstallImportHook._install_pylint): Ditto.
533         (AutoinstallImportHook._install_buildbot): Ditto.
534         (AutoinstallImportHook._install_coverage): Ditto.
535
536 2017-10-26  Fujii Hironori  <Hironori.Fujii@sony.com>
537
538         [GTK][WPE] install-dependencies can't find libapache2-mod-php7.0 on Ubuntu 17.10
539         https://bugs.webkit.org/show_bug.cgi?id=178854
540
541         Reviewed by Michael Catanzaro.
542
543         * Scripts/webkitpy/port/base.py:
544         (Port._debian_php_version): Return "-php7.1" if libphp7.1.so found.
545         (Port._is_debian_php_version_7): Deleted.
546         * gtk/install-dependencies: Install libapache2-mod-php instead of libapache2-mod-php7.0.
547         * wpe/install-dependencies: Ditto.
548
549 2017-10-25  Simon Fraser  <simon.fraser@apple.com>
550
551         When navigating back to a page, compositing layers may not use accelerated drawing
552         https://bugs.webkit.org/show_bug.cgi?id=178749
553         rdar://problem/35158946
554
555         Reviewed by Dean Jackson.
556
557         Fix WTR and DRT to parse "useAcceleratedDrawing" out of "webkit-test-runner" options
558         and use it to set the state of the web view.
559
560         * DumpRenderTree/TestOptions.h:
561         * DumpRenderTree/TestOptions.mm:
562         (TestOptions::TestOptions):
563         * DumpRenderTree/mac/DumpRenderTree.mm:
564         (setWebPreferencesForTestOptions):
565         * WebKitTestRunner/TestController.cpp:
566         (WTR::TestController::resetPreferencesToConsistentValues):
567         (WTR::updateTestOptionsFromTestHeader):
568         * WebKitTestRunner/TestOptions.h:
569         (WTR::TestOptions::hasSameInitializationOptions const):
570
571 2017-10-26  Alex Christensen  <achristensen@webkit.org>
572
573         Move WKWebViewConfiguration validation to WKWebView construction
574         https://bugs.webkit.org/show_bug.cgi?id=178840
575
576         Reviewed by Tim Horton.
577
578         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
579         * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: Added.
580         (TEST):
581
582 2017-10-26  Myles C. Maxfield  <mmaxfield@apple.com>
583
584         Demonstrate a possible structure of the WebGPU API
585         https://bugs.webkit.org/show_bug.cgi?id=178874
586
587         Reviewed by Dean Jackson.
588
589         Over the past few weeks, we've been putting together an example showing that a WebGPU API
590         which has implicit barriers can work on all three low-level graphics APIs. We've implemented
591         it on top of Vulkan first, because this is the API which has the strictest requirements and
592         is most difficult to use.
593
594         With this API, this is a valid WebGPU snippet:
595
596         auto device = WebGPU::Device::create(hInstance, hWnd);
597         auto& commandQueue = device->getCommandQueue();
598         auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { }, { }, { }, nullptr);
599         
600         … later, in the draw() function …
601         
602         auto renderPass = commandQueue->createRenderPass(nullptr);
603         renderPass->setRenderState(renderState);
604         renderPass->setViewport(0, 0, width, height);
605         renderPass->setScissorRect(0, 0, width, height);
606         renderPass->draw(3);
607         commandQueue->commitRenderPass(std::move(renderPass));
608         commandQueue->present();
609
610         This snippet doesn’t hook up any vertex attributes or resources, which means the vertex
611         shader has to say something like ({vec4(…), vec4(…), vec4(…)})[gl_VertexIndex]. It also
612         passes in “nullptr” when creating the render pass, which means “render to the screen, rather
613         than to a frame buffer.” You can also see that it doesn’t attach any resources to the draw
614         call.
615
616         In Direct3D 12 and Vulkan, resources are bound in sets, rather than individually. For
617         example, a set might contain two uniform buffers, a texture, and another uniform buffer. At
618         draw time, you swap in whole sets of resources with a single call. A shader invocation can
619         access a collection of sets. Because all shader resource accesses are indirected through
620         these sets, the shape of these sets needs to be supplied at the time you compile the render
621         state. Here is a snippet which bounds a single set which contains a uniform buffer and a
622         texture:
623
624         auto buffer = device->getBuffer(bufferInitialContents);
625         auto texture = device->getTexture(buffer width, height, WebGPU::PixelFormat::RGBA8, textureInitialContents);
626         // One resource set, which holds a single uniform buffer object and a single texture
627         auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { }, { }, { { WebGPU::ResourceType::UniformBufferObject, WebGPU::ResourceType::Texture } }, nullptr);
628         
629         … later, in the draw() function …
630         
631         auto renderPass = commandQueue->createRenderPass(nullptr);
632         renderPass->setRenderState(renderState);
633         renderPass->setResources(0, { WebGPU::UniformBufferObjectReference(buffer.get()), WebGPU::TextureReference(texture.get()) });
634         …
635         renderPass->draw(3);
636         commandQueue->commitRenderPass(std::move(renderPass));
637         commandQueue->present();
638         
639         The first argument to the setResources() call identifies which set to populate with the supplied resources.
640
641         One tenant of the low-level graphics APIs is that, if you’ve enabled double buffering (or
642         triple buffering), the GPU is executing one frame at the same time you are recording the
643         next frame. This often means that you need duplicate resources so the CPU and GPU don’t step
644         on each other’s toes. However, platforms have platform-specific requirements about whether
645         or not they can be double / triple buffered, and we don’t want to expose this to the Web for
646         fear of badly-authored programs.
647
648         To solve this, resources are reference counted, and the return type of getBuffer() is an
649         RAII type called BufferHolder which increments and decrements the reference count
650         automatically. The reference count is also incremented and decremented when the GPU is using
651         the resource in a Pass. When the reference count reaches 0, the resource isn’t destroyed;
652         instead, it’s simply moved to a “free list” which getBuffer() may pull from. Therefore,
653         applications don’t need to know whether the frame buffer is double buffered or triple
654         buffered; they can just getBuffer() each frame, and the correct number of buffers will be
655         created and recycled.
656         
657         {
658             auto buffer = device->getBuffer(bufferSize); // These get recycled
659             … populate the buffer …
660             auto renderPass = commandQueue->createRenderPass(nullptr);
661             renderPass->setRenderState(renderState);
662             renderPass->setResources(0, { WebGPU::UniformBufferObjectReference(buffer.get()) });
663             …
664             renderPass->draw(…);
665             commandQueue->commitRenderPass(std::move(renderPass));
666         }
667         commandQueue->present();
668
669         In Direct3D and Vulkan, vertex buffers and index buffers are not part of the resource sets
670         mentioned above. Instead, you tell the render state about the shape of the vertex and index
671         buffers, and you swap them out independently in the draw loop. Metal and Vulkan have almost
672         identical API to specify this shape of the vertex buffers, so I’ve mostly copied it. In this
673         example, we have two vertex attributes, a vec2 and a vec3, which both come from the same
674         buffer:
675         
676         // { Attribute format, offset within stride, buffer to pull from }
677         std::vector<WebGPU::RenderState::VertexAttribute> vertexAttributes = { {WebGPU::RenderState::VertexFormat::Float2, 0, 0}, {WebGPU::RenderState::VertexFormat::Float3, sizeof(float) * 2, 0} };
678         // A single vertex buffer, with a stride of 5 floats
679         auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { sizeof(float) * 5 }, vertexAttributes, resourceTypes, nullptr);
680         
681         … later, in the draw() function …
682         
683         auto renderPass = commandQueue->createRenderPass(nullptr);
684         renderPass->setRenderState(renderState);
685         renderPass->setVertexAttributeBuffers({ vertexBuffer.get() }); // The one vertex buffer which both attributes pull from
686         renderPass->setResources(…);
687         …
688         renderPass->draw(…);
689         commandQueue->commitRenderPass(std::move(renderPass));
690         commandQueue->present();
691
692         You can also tell the RenderState about how many render targets you have and their formats,
693         and then when you create the RenderPass, you specify the specific textures you want to
694         render into.
695
696         std::vector<WebGPU::PixelFormat> colorPixelFormats = { WebGPU::PixelFormat::RGBA8, WebGPU::PixelFormat::RGBA8 }; // Two render targets, with these formats
697         auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", vertexBufferStrides, vertexAttributes, resourceTypes, &colorPixelFormats);
698         
699         … later, in the draw() function …
700         
701         std::vector<std::reference_wrapper<WebGPU::Texture>> destinationTextures = { texture1->get(), texture2->get() };
702         auto renderPass = commandQueue->createRenderPass(&destinationTextures);
703         renderPass->setRenderState(renderState);
704         …
705         renderPass->draw(…);
706         commandQueue->commitRenderPass(std::move(renderPass));
707         
708         // Now, draw one of the textures to the screen. Note that no synchronization is necessary here!
709         auto renderPass = commandQueue->createRenderPass(nullptr);
710         renderPass->setRenderState(renderState2);
711         renderPass->setResources(0, { WebGPU:: TextureReference(texture1.get()) });
712         …
713         renderPass->draw(…);
714         commandQueue->commitRenderPass(std::move(renderPass));
715         commandQueue->present();
716
717         Just like how in Metal has Render Encoders and Compute Encoders, WebGPU has RenderPasses
718         and ComputePasses.
719
720         auto& computeState = device->getComputeState(computeShader, "main", resourceTypes);
721         …
722         auto computePass = commandQueue->createComputePass();
723         computePass->setComputeState(computeState);
724         computePass->setResources(0, resources);
725         computePass->dispatch(width, height, depth);
726         commandQueue->commitComputePass(std::move(computePass));
727         
728         // Now, draw the resources we just computed. Note that no synchronization is necessary here!
729         auto renderPass = commandQueue->createRenderPass(nullptr);
730         renderPass->setRenderState(renderState);
731         renderPass->setResources(0, resources });
732         …
733         renderPass->draw(…);
734         commandQueue->commitRenderPass(std::move(renderPass));
735         commandQueue->present();
736
737         There are also two other types of passes: one that corresponds to a Metal blit encoder, and
738         one that allows the CPU to change the contents of GPU buffers and textures. This last kind
739         of pass is a little interesting: you can’t just change the contents of a buffer at any time
740         you feel like it, because that resource might be in use by the GPU. Therefore, we need to do
741         the same kind of synchronization that we already do at render pass boundaries.
742
743         In addition, both Vulkan and Direct3D have a concept of a memory heap. A resource might
744         exist inside a heap which is fast, but invisible from the CPU, or in a heap which is slow,
745         but visible by the CPU. Certain operations are not possible from some types of images (e.g.
746         non-tiled textures may not be able to be sampled from). The usual way to get around this
747         problem is to have two resources: a slow staging resource which the CPU can see, and a fast
748         resource which the CPU can’t see. Uploading data is a two-pass algorithm, where the CPU
749         memcpy()s into the slow staging resource, and then a blit command is enqueued on the GPU to
750         copy the contents of the staging resource to the real resource. This requires that the
751         upload have access to the commandQueue so it can possibly enqueue a blit between the staging
752         and real resources. Therefore, a pass is the right level of abstraction for these facilities.
753
754         std::queue<boost::unique_future<std::vector<uint8_t>>> futureQueue; // Promises for data downloads from the GPU
755         
756         … later, in the draw() function …
757         
758         // See if any of the previously-enqueued downloads are finished
759         while (!futureQueue.empty() && futureQueue.front(). has_value()) {
760             std::vector<uint8_t>& data = futureQueue.front().get();
761             // Use the downloaded data
762             futureQueue.pop();
763         }
764         …
765         auto hostAccessPass = commandQueue->createHostAccessPass();
766         hostAccessPass->overwriteBuffer(buffer->get(), bufferContents); // Upload data to a resource
767         
768         futureQueue.emplace(hostAccessPass->getBufferContents(buffer->get()));
769         commandQueue->commitHostAccessPass(std::move(hostAccessPass));
770         
771         You can also issue copy commands between resources entirely on the GPU:
772         
773         auto blitPass = commandQueue->createBlitPass();
774         blitPass->copyTexture(source->get(), destination->get(), sourceX, sourceY, destinationX, destinationY, width, height);
775         commandQueue->commitBlitPass(std::move(blitPass));
776
777         * Scripts/webkitpy/style/checker.py:
778         * WebGPUAPIStructure/Example/Example.cpp: Added.
779         (readFile):
780         (drawWebGPU):
781         (wWinMain):
782         (MyRegisterClass):
783         (InitInstance):
784         (WndProc):
785         * WebGPUAPIStructure/Example/Example.h: Added.
786         * WebGPUAPIStructure/Example/Example.ico: Added.
787         * WebGPUAPIStructure/Example/Example.rc: Added.
788         * WebGPUAPIStructure/Example/Example.vcxproj: Added.
789         * WebGPUAPIStructure/Example/Example.vcxproj.filters: Added.
790         * WebGPUAPIStructure/Example/Example.vcxproj.user: Added.
791         * WebGPUAPIStructure/Example/resource.h: Added.
792         * WebGPUAPIStructure/Example/small.ico: Added.
793         * WebGPUAPIStructure/Example/stdafx.cpp: Added.
794         * WebGPUAPIStructure/Example/stdafx.h: Added.
795         * WebGPUAPIStructure/Example/targetver.h: Added.
796         * WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj: Added.
797         * WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj.filters: Added.
798         * WebGPUAPIStructure/WebGPU-Common/WebGPU.cpp: Added.
799         (WebGPU::BufferHolder::BufferHolder):
800         (WebGPU::BufferHolder::~BufferHolder):
801         (WebGPU::TextureHolder::TextureHolder):
802         (WebGPU::TextureHolder::~TextureHolder):
803         (WebGPU::SamplerHolder::SamplerHolder):
804         (WebGPU::SamplerHolder::~SamplerHolder):
805         * WebGPUAPIStructure/WebGPU-Common/WebGPU.h: Added.
806         (WebGPU::Queue::~Queue):
807         (WebGPU::RenderState::~RenderState):
808         (WebGPU::ComputeState::~ComputeState):
809         (WebGPU::Buffer::~Buffer):
810         (WebGPU::Texture::~Texture):
811         (WebGPU::Sampler::~Sampler):
812         (WebGPU::TextureReference::TextureReference):
813         (WebGPU::TextureReference::get const):
814         (WebGPU::SamplerReference::SamplerReference):
815         (WebGPU::SamplerReference::get const):
816         (WebGPU::UniformBufferObjectReference::UniformBufferObjectReference):
817         (WebGPU::UniformBufferObjectReference::get const):
818         (WebGPU::ShaderStorageBufferObjectReference::ShaderStorageBufferObjectReference):
819         (WebGPU::ShaderStorageBufferObjectReference::get const):
820         (WebGPU::RenderPass::~RenderPass):
821         (WebGPU::ComputePass::~ComputePass):
822         (WebGPU::BlitPass::~BlitPass):
823         (WebGPU::HostAccessPass::~HostAccessPass):
824         (WebGPU::BufferHolder::get):
825         (WebGPU::TextureHolder::get):
826         (WebGPU::SamplerHolder::get):
827         (WebGPU::Device::~Device):
828         * WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.cpp: Added.
829         (WebGPU::BlitPassImpl::BlitPassImpl):
830         (WebGPU::BlitPassImpl::copyTexture):
831         * WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.h: Added.
832         * WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.cpp: Added.
833         (WebGPU::BufferImpl::BufferImpl):
834         (WebGPU::BufferImpl::decrementReferenceCount):
835         * WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.h: Added.
836         (WebGPU::BufferImpl::getBuffer const):
837         (WebGPU::BufferImpl::getDeviceMemory const):
838         (WebGPU::BufferImpl::incrementReferenceCount):
839         (WebGPU::BufferImpl::getLength const):
840         * WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.cpp: Added.
841         (WebGPU::ComputePassImpl::ComputePassImpl):
842         (WebGPU::ComputePassImpl::setComputeState):
843         (WebGPU::ComputePassImpl::setResources):
844         (WebGPU::ComputePassImpl::dispatch):
845         * WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.h: Added.
846         * WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.cpp: Added.
847         (WebGPU::ComputeStateImpl::ComputeStateImpl):
848         * WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.h: Added.
849         (WebGPU::ComputeStateImpl::getPipeline const):
850         (WebGPU::ComputeStateImpl::getPipelineLayout const):
851         (WebGPU::ComputeStateImpl::getDescriptorSetLayouts const):
852         * WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.cpp: Added.
853         (WebGPU::Device::create):
854         (WebGPU::convertPixelFormat):
855         (WebGPU::convertFormat):
856         (WebGPU::debugReport):
857         (WebGPU::DeviceImpl::DeviceImpl):
858         (WebGPU::DeviceImpl::getCommandQueue):
859         (WebGPU::DeviceImpl::prepareShader):
860         (WebGPU::DeviceImpl::createPipelineLayout):
861         (WebGPU::DeviceImpl::createCompatibleRenderPass):
862         (WebGPU::convertVertexFormat):
863         (WebGPU::DeviceImpl::getRenderState):
864         (WebGPU::DeviceImpl::getComputeState):
865         (WebGPU::DeviceImpl::getBuffer):
866         (WebGPU::DeviceImpl::returnBuffer):
867         (WebGPU::DeviceImpl::getTexture):
868         (WebGPU::DeviceImpl::returnTexture):
869         (WebGPU::DeviceImpl::getSampler):
870         (WebGPU::DeviceImpl::returnSampler):
871         (WebGPU::DeviceImpl::~DeviceImpl):
872         * WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.h: Added.
873         (WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::UniqueDebugReportCallbackEXT):
874         (WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::operator=):
875         (WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::~UniqueDebugReportCallbackEXT):
876         (WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::destroy):
877         (WebGPU::DeviceImpl::TextureParameters::operator== const):
878         (WebGPU::DeviceImpl::TextureParametersHash::operator() const):
879         * WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.cpp: Added.
880         (WebGPU::HostAccessPassImpl::HostAccessPassImpl):
881         (WebGPU::HostAccessPassImpl::overwriteBuffer):
882         (WebGPU::HostAccessPassImpl::getBufferContents):
883         (WebGPU::HostAccessPassImpl::execute):
884         * WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.h: Added.
885         (WebGPU::HostAccessPassImpl::getFinishedEvent const):
886         * WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.cpp: Added.
887         (WebGPU::PassImpl::PassImpl):
888         (WebGPU::ResourceVisitor::operator()):
889         (WebGPU::ResourceVisitor::getBindings const):
890         (WebGPU::ResourceVisitor::releaseWriteDescriptorSets):
891         (WebGPU::ResourceVisitor::getDescriptorImageInfos const):
892         (WebGPU::ResourceVisitor::getDescriptorBufferInfos const):
893         (WebGPU::ResourceVisitor::getBuffers const):
894         (WebGPU::ResourceVisitor::getTextures const):
895         (WebGPU::ResourceVisitor::getSamplers const):
896         (WebGPU::ResourceVisitor::getImageCount const):
897         (WebGPU::ResourceVisitor::getSamplerCount const):
898         (WebGPU::ResourceVisitor::getUniformBufferCount const):
899         (WebGPU::ResourceVisitor::getStorageBufferCount const):
900         (WebGPU::PassImpl::setResources):
901         (WebGPU::PassImpl::insertBuffer):
902         (WebGPU::PassImpl::insertTexture):
903         (WebGPU::PassImpl::insertSampler):
904         * WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.h: Added.
905         (WebGPU::PassImpl::getCommandBuffer const):
906         (WebGPU::PassImpl::iterateBuffers):
907         (WebGPU::PassImpl::iterateTextures):
908         (WebGPU::PassImpl::ResourceReference::ResourceReference):
909         (WebGPU::PassImpl::ResourceReference::~ResourceReference):
910         (WebGPU::PassImpl::ResourceReference::operator=):
911         (WebGPU::PassImpl::ResourceReference::operator== const):
912         (WebGPU::PassImpl::ResourceReference::get const):
913         (WebGPU::PassImpl::ResourceReference::release):
914         (WebGPU::PassImpl::ResourceReferenceHash::operator() const):
915         * WebGPUAPIStructure/WebGPU-Vulkan/QueueImpl.cpp: Added.
916         (WebGPU::QueueImpl::QueueImpl):
917         (WebGPU::QueueImpl::prepareCurrentFrame):
918         (WebGPU::QueueImpl::createSpecificRenderPass):
919         (WebGPU::QueueImpl::createFramebuffer):
920         (WebGPU::QueueImpl::createRenderPass):
921         (WebGPU::QueueImpl::commitRenderPass):
922         (WebGPU::QueueImpl::createComputePass):
923         (WebGPU::QueueImpl::commitComputePass):
924         (WebGPU::QueueImpl::createBlitPass):
925         (WebGPU::QueueImpl::commitBlitPass):
926         (WebGPU::QueueImpl::createHostAccessPass):
927         (WebGPU::QueueImpl::commitHostAccessPass):
928         (WebGPU::QueueImpl::present):
929         (WebGPU::QueueImpl::commitPass):
930         (WebGPU::QueueImpl::synchronizeResources):
931         (WebGPU::QueueImpl::~QueueImpl):
932         * WebGPUAPIStructure/WebGPU-Vulkan/QueueImpl.h: Added.
933         * WebGPUAPIStructure/WebGPU-Vulkan/RenderPassImpl.cpp: Added.
934         (WebGPU::RenderPassImpl::RenderPassImpl):
935         (WebGPU::RenderPassImpl::setRenderState):
936         (WebGPU::RenderPassImpl::setVertexAttributeBuffers):
937         (WebGPU::RenderPassImpl::setResources):
938         (WebGPU::RenderPassImpl::setViewport):
939         (WebGPU::RenderPassImpl::setScissorRect):
940         (WebGPU::RenderPassImpl::draw):
941         * WebGPUAPIStructure/WebGPU-Vulkan/RenderPassImpl.h: Added.
942         * WebGPUAPIStructure/WebGPU-Vulkan/RenderStateImpl.cpp: Added.
943         (WebGPU::RenderStateImpl::RenderStateImpl):
944         * WebGPUAPIStructure/WebGPU-Vulkan/RenderStateImpl.h: Added.
945         (WebGPU::RenderStateImpl::getPipeline const):
946         (WebGPU::RenderStateImpl::getPipelineLayout const):
947         (WebGPU::RenderStateImpl::getDescriptorSetLayouts const):
948         * WebGPUAPIStructure/WebGPU-Vulkan/SamplerImpl.cpp: Added.
949         (WebGPU::SamplerImpl::SamplerImpl):
950         (WebGPU::SamplerImpl::decrementReferenceCount):
951         * WebGPUAPIStructure/WebGPU-Vulkan/SamplerImpl.h: Added.
952         (WebGPU::SamplerImpl::getSampler):
953         (WebGPU::SamplerImpl::incrementReferenceCount):
954         (WebGPU::SamplerImpl::getFilter):
955         (WebGPU::SamplerImpl::getMipmapMode):
956         (WebGPU::SamplerImpl::getAddressMode):
957         * WebGPUAPIStructure/WebGPU-Vulkan/TextureImpl.cpp: Added.
958         (WebGPU::TextureImpl::TextureImpl):
959         (WebGPU::TextureImpl::decrementReferenceCount):
960         * WebGPUAPIStructure/WebGPU-Vulkan/TextureImpl.h: Added.
961         (WebGPU::TextureImpl::getImage const):
962         (WebGPU::TextureImpl::getImageView const):
963         (WebGPU::TextureImpl::getFormat const):
964         (WebGPU::TextureImpl::incrementReferenceCount):
965         (WebGPU::TextureImpl::getWidth const):
966         (WebGPU::TextureImpl::getHeight const):
967         (WebGPU::TextureImpl::getTransferredToGPU const):
968         (WebGPU::TextureImpl::setTransferredToGPU):
969         * WebGPUAPIStructure/WebGPU-Vulkan/WebGPU-Vulkan.vcxproj: Added.
970         * WebGPUAPIStructure/WebGPU-Vulkan/WebGPU-Vulkan.vcxproj.filters: Added.
971         * WebGPUAPIStructure/WebGPU.sln: Added.
972
973 2017-10-26  Eric Carlson  <eric.carlson@apple.com>
974
975         NowPlayingInfo should contain a unique identifier
976         https://bugs.webkit.org/show_bug.cgi?id=178872
977
978         Reviewed by Jer Noble.
979
980         * TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:
981         (-[NowPlayingTestWebView hasActiveNowPlayingSession]): Use completion handler.
982         (TestWebKitAPI::TEST): Cleanup tests. Use new API.
983         (-[NowPlayingTestWebView waitForNowPlayingInfoToChange]): Deleted.
984
985 2017-10-26  Eric Carlson  <eric.carlson@apple.com>
986
987         [MediaStream] Clear cached gUM prompt state
988         https://bugs.webkit.org/show_bug.cgi?id=178754
989         <rdar://problem/32742356>
990
991         Unreviewed, fix a flakey test.
992
993         * TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
994         (-[GetUserMediaRepromptTestView haveStream:]): New, check several times for expected state.
995         (TestWebKitAPI::TEST): Don't assume stream state changes in the page immediately.
996
997 2017-10-26  Andy Estes  <aestes@apple.com>
998
999         [Payment Request] Enable Payment Request whenever Apple Pay is enabled
1000         https://bugs.webkit.org/show_bug.cgi?id=178880
1001
1002         Reviewed by Tim Horton.
1003
1004         * WebKitTestRunner/TestController.cpp:
1005         (WTR::TestController::resetPreferencesToConsistentValues):
1006
1007 2017-10-26  Joseph Pecoraro  <pecoraro@apple.com>
1008
1009         Add and update some watchlists
1010         https://bugs.webkit.org/show_bug.cgi?id=178304
1011
1012         Reviewed by Simon Fraser.
1013
1014         * Scripts/webkitpy/common/config/watchlist:
1015
1016 2017-10-26  Ryan Haddad  <ryanhaddad@apple.com>
1017
1018         Unreviewed, rolling out r223984.
1019
1020         Caused LayoutTest assertion failures.
1021
1022         Reverted changeset:
1023
1024         "When navigating back to a page, compositing layers may not
1025         use accelerated drawing"
1026         https://bugs.webkit.org/show_bug.cgi?id=178749
1027         https://trac.webkit.org/changeset/223984
1028
1029 2017-10-26  Christopher Reid  <chris.reid@sony.com>
1030
1031         Remove scopeguard from platform
1032         https://bugs.webkit.org/show_bug.cgi?id=178681
1033
1034         Reviewed by Brady Eidson.
1035
1036         * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
1037
1038 2017-09-21  Carlos Garcia Campos  <cgarcia@igalia.com>
1039
1040         WebDriver: Add support to import and run W3C tests
1041         https://bugs.webkit.org/show_bug.cgi?id=177304
1042
1043         Reviewed by Brian Burg.
1044
1045         WPT has now several WebDriver tests, and new ones are going to be added to cover the whole spec. This patch
1046         adds the initial support for running W3C tests. The script import-w3c-webdriver-tests reuses parts of the W3C
1047         test downloader to download the tests and required tools from WPT repository into WebDriverTests
1048         directory. Tests can be run with run-webdriver-tests, a new script that works similar to other test runner
1049         scripts. For now it shows a summary at the end of the execution, there aren't expectations yet, since we are not
1050         ready to run those tests in the bots. Once we are ready to properly run the tests, we can add the expectations
1051         support and run the tests in the bots.
1052
1053         * Scripts/import-w3c-webdriver-tests: Added.
1054         * Scripts/run-webdriver-tests: Added.
1055         * Scripts/webkitpy/style/checker.py: Skip WebDriverTests directory since it only contains third-party python
1056         code.
1057         * Scripts/webkitpy/thirdparty/__init__.py: Add support to autodownload mozlog and mozprocess since they are
1058         required by the WebDriver tests.
1059         * Scripts/webkitpy/webdriver_tests/__init__.py: Added.
1060         * Scripts/webkitpy/webdriver_tests/webdriver_driver.py: Added.
1061         * Scripts/webkitpy/webdriver_tests/webdriver_driver_gtk.py: Added.
1062         * Scripts/webkitpy/webdriver_tests/webdriver_test_result.py: Added.
1063         * Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py: Added.
1064         * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py: Added.
1065         * Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: Added.
1066         * Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py: Added.
1067
1068 2017-10-25  Eric Carlson  <eric.carlson@apple.com>
1069
1070         [MediaStream] Clear cached gUM prompt state
1071         https://bugs.webkit.org/show_bug.cgi?id=178754
1072         <rdar://problem/32742356>
1073
1074         Reviewed by Youenn Fablet.
1075
1076         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new test
1077
1078         * TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm: Added.
1079         (-[GetUserMediaRepromptUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
1080         (-[GetUserMediaRepromptUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):
1081         (TestWebKitAPI::TEST):
1082
1083         * TestWebKitAPI/Tests/WebKit/getUserMedia.html:
1084
1085 2017-10-25  Ross Kirsling  <ross.kirsling@sony.com>
1086
1087         Add committer status for Ross Kirsling
1088         https://bugs.webkit.org/show_bug.cgi?id=178832
1089
1090         Unreviewed.
1091
1092         * Scripts/webkitpy/common/config/contributors.json:
1093
1094 2017-10-25  Simon Fraser  <simon.fraser@apple.com>
1095
1096         When navigating back to a page, compositing layers may not use accelerated drawing
1097         https://bugs.webkit.org/show_bug.cgi?id=178749
1098         rdar://problem/35158946
1099
1100         Reviewed by Dean Jackson.
1101
1102         Fix WTR and DRT to parse "useAcceleratedDrawing" out of "webkit-test-runner" options
1103         and use it to set the state of the web view.
1104
1105         * DumpRenderTree/TestOptions.h:
1106         * DumpRenderTree/TestOptions.mm:
1107         (TestOptions::TestOptions):
1108         * DumpRenderTree/mac/DumpRenderTree.mm:
1109         (setWebPreferencesForTestOptions):
1110         * WebKitTestRunner/TestController.cpp:
1111         (WTR::TestController::resetPreferencesToConsistentValues):
1112         (WTR::updateTestOptionsFromTestHeader):
1113         * WebKitTestRunner/TestOptions.h:
1114         (WTR::TestOptions::hasSameInitializationOptions const):
1115
1116 2017-10-25  Robin Morisset  <rmorisset@apple.com>
1117
1118         Support the TailBench9000 benchmark in run-jsc-benchmarks
1119         https://bugs.webkit.org/show_bug.cgi?id=178451
1120
1121         Reviewed by Saam Barati.
1122
1123         * Scripts/run-jsc-benchmarks:
1124
1125 2017-10-25  Adrian Perez de Castro  <aperez@igalia.com>
1126
1127         [WPE] Remove GLib API functions which use Cairo
1128         https://bugs.webkit.org/show_bug.cgi?id=178205
1129
1130         Reviewed by Michael Catanzaro.
1131
1132         Add PLATFORM(GTK) guards for the API tests (or parts of them) which use cairo_surface_t (web
1133         page snapshots and favicons) which are not available in the WPE version of the GLib API.
1134
1135         * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:
1136         (testNotInitialized):
1137         (testPrivateBrowsing):
1138         (testFaviconDatabase):
1139         * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp:
1140         (testFindControllerHide):
1141         (beforeAll):
1142         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
1143         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
1144
1145 2017-10-25  Zan Dobersek  <zdobersek@igalia.com>
1146
1147         Make SERVICE_WORKER feature buildable on GTK, WPE
1148         https://bugs.webkit.org/show_bug.cgi?id=178574
1149
1150         Reviewed by Carlos Garcia Campos.
1151
1152         * Scripts/webkitperl/FeatureList.pm: Add the --service-worker option
1153         that enables the SERVICE_WORKER feature flag. For now it's enabled
1154         on Apple's Cocoa ports (even when build-webkit isn't used for those
1155         builds, the flag is enabled here for consistency).
1156
1157 2017-10-24  Michael Catanzaro  <mcatanzaro@igalia.com>
1158
1159         Unreviewed, fix name of Perl LibXML package on Fedora
1160         https://bugs.webkit.org/show_bug.cgi?id=178206
1161         <rdar://problem/35028586>
1162
1163         * gtk/install-dependencies:
1164         * wpe/install-dependencies:
1165
1166 2017-10-24  Alex Christensen  <achristensen@webkit.org>
1167
1168         Selecting and right-clicking URL-like strings with IDNA-disallowed characters in host or authority causes rendering engine crash
1169         https://bugs.webkit.org/show_bug.cgi?id=174267
1170
1171         Reviewed by Tim Horton.
1172
1173         * TestWebKitAPI/Tests/WebKit/CanHandleRequest_Bundle.cpp:
1174         (TestWebKitAPI::runTest):
1175
1176 2017-10-24  Eric Carlson  <eric.carlson@apple.com>
1177
1178         Web Inspector: Enable WebKit logging configuration and display
1179         https://bugs.webkit.org/show_bug.cgi?id=177027
1180         <rdar://problem/33964767>
1181
1182         Reviewed by Joseph Pecoraro.
1183
1184         Allow new 'dumpJSConsoleLogInStdErr' test header to redirect log console output to stderr.
1185
1186         * DumpRenderTree/TestOptions.h:
1187         * DumpRenderTree/TestOptions.mm:
1188         (TestOptions::TestOptions):
1189         * DumpRenderTree/mac/DumpRenderTree.mm:
1190         (runTest):
1191         * WebKitTestRunner/TestController.cpp:
1192         (WTR::updateTestOptionsFromTestHeader):
1193         (WTR::TestController::runTest):
1194         * WebKitTestRunner/TestOptions.h:
1195         (WTR::TestOptions::hasSameInitializationOptions const):
1196
1197 2017-10-24  Alex Christensen  <achristensen@webkit.org>
1198
1199         Apply custom header fields from WebsitePolicies to same-domain requests
1200         https://bugs.webkit.org/show_bug.cgi?id=178356
1201
1202         Reviewed by Brady Eidson.
1203
1204         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
1205         (expectHeaders):
1206
1207 2017-10-24  Stephan Szabo  <stephan.szabo@sony.com>
1208
1209         [Win][JSCOnly] Make jsconly build testapi and dlls and copy dlls when running tests
1210         https://bugs.webkit.org/show_bug.cgi?id=177279
1211
1212         Reviewed by Yusuke Suzuki.
1213
1214         * Scripts/build-jsc:
1215         * Scripts/run-jsc-stress-tests:
1216
1217 2017-10-23  Lucas Forschler  <lforschler@apple.com>
1218
1219         <rdar://problem/35045445>
1220         Update README to reference WebKit build archives, instead of 'nightly'
1221
1222         Reviewed by Aakash Jain.
1223
1224         * WebKitArchiveSupport/README:
1225
1226 2017-10-21  Tim Horton  <timothy_horton@apple.com>
1227
1228         Turn on ccache for Mac cmake builds by default
1229         https://bugs.webkit.org/show_bug.cgi?id=177059
1230
1231         Reviewed by Sam Weinig.
1232
1233         * ccache/ccache-clang:
1234         * ccache/ccache-wrapper: Added.
1235         Add a pass-through ccache wrapper to be used with CMake, in addition
1236         to the existing faux-clang wrappers.
1237
1238         * Scripts/build-webkit:
1239         Add --use-ccache and --no-use-ccache option, which will define
1240         WK_USE_CCACHE to YES or NO, respectively, which the underlying
1241         build systems respect. We do not define WK_USE_CCACHE if the option
1242         is not specified, because the underlying build systems have different
1243         default values.
1244
1245 2017-10-20  Aakash Jain  <aakash_jain@apple.com>
1246
1247         Do not run binding tests on multiple EWSes
1248         https://bugs.webkit.org/show_bug.cgi?id=178599
1249
1250         Reviewed by Alexey Proskuryakov. 
1251
1252         Remove old code which runs bindings tests and ignore it's result. We now have
1253         a dedicated bindings test EWS.
1254
1255         * Scripts/webkitpy/tool/steps/runtests.py:
1256         (RunTests.run): Removed bindings tests code.
1257         * Scripts/webkitpy/tool/steps/runtests_unittest.py: Updated unit-tests.
1258         (RunTestsTest.test_webkit_run_unit_tests): Ditto.
1259         * Scripts/webkitpy/tool/steps/steps_unittest.py: Ditto.
1260         * Scripts/webkitpy/tool/commands/download_unittest.py: Ditto.
1261
1262 2017-10-20  Youenn Fablet  <youenn@apple.com>
1263
1264         WebsiteDataStoreCustomPaths.mm is failing after r223718
1265         https://bugs.webkit.org/show_bug.cgi?id=178596
1266
1267         Unreviewed.
1268
1269         * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
1270         (TEST): Making default web site data store creation expected at the end of the test.
1271         We should probably not need need to create it.
1272         This should be fixed as a follow-up.
1273
1274 2017-10-20  Antoine Quint  <graouts@apple.com>
1275
1276         [Web Animations] Provide basic timeline and animation interfaces
1277         https://bugs.webkit.org/show_bug.cgi?id=178526
1278
1279         Reviewed by Dean Jackson.
1280
1281         Remove the WEB_ANIMATIONS compile-time flag.
1282
1283         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
1284
1285 2017-10-20  Tomas Popela  <tpopela@redhat.com>
1286
1287         Missing some perl packages in install-dependencies
1288         https://bugs.webkit.org/show_bug.cgi?id=178571
1289
1290         Reviewed by Žan Doberšek.
1291
1292         Install per-version and perl-Time-HiRes so we can use build-webkit
1293         script. Also add missing backlashes.
1294
1295         * wpe/install-dependencies:
1296
1297 2017-10-20  Commit Queue  <commit-queue@webkit.org>
1298
1299         Unreviewed, rolling out r222709 and r223572.
1300         https://bugs.webkit.org/show_bug.cgi?id=178587
1301
1302         Still getting mac-wk2 EWS bots stuck (Requested by ap on
1303         #webkit).
1304
1305         Reverted changesets:
1306
1307         "Log stack-trace for run-webkit-tests when interrupted"
1308         https://bugs.webkit.org/show_bug.cgi?id=176393
1309         https://trac.webkit.org/changeset/222709
1310
1311         "webkitpy: Hang when workers write to the same stack trace
1312         file"
1313         https://bugs.webkit.org/show_bug.cgi?id=178402
1314         https://trac.webkit.org/changeset/223572
1315
1316 2017-10-19  Nan Wang  <n_wang@apple.com>
1317
1318         AX: Provide a way for Accessibility to cache the selection while retrieving rects for speak selection
1319         https://bugs.webkit.org/show_bug.cgi?id=176247
1320         <rdar://problem/34217143>
1321
1322         Reviewed by Ryosuke Niwa.
1323
1324         * TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
1325         (TestWebKitAPI::TEST):
1326
1327 2017-10-19  Sam Weinig  <sam@webkit.org>
1328
1329         [Settings] Move global settings into their own file
1330         https://bugs.webkit.org/show_bug.cgi?id=178512
1331
1332         Reviewed by Darin Adler.
1333
1334         * TestWebKitAPI/Tests/WebKitLegacy/ios/AudioSessionCategoryIOS.mm:
1335         (TestWebKitAPI::TEST):
1336
1337 2017-10-19  Andy Estes  <aestes@apple.com>
1338
1339         [iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS devices
1340         https://bugs.webkit.org/show_bug.cgi?id=178181
1341         <rdar://problem/33660282>
1342
1343         Reviewed by Dan Bernstein.
1344
1345         * WebKitTestRunner/TestController.cpp:
1346         (WTR::TestController::databaseProcessName):
1347
1348 2017-10-19  Saam Barati  <sbarati@apple.com>
1349
1350         Turn poly proto back on by default and remove the option
1351         https://bugs.webkit.org/show_bug.cgi?id=178525
1352
1353         Reviewed by Mark Lam.
1354
1355         * Scripts/run-jsc-stress-tests:
1356
1357 2017-10-18  Ryosuke Niwa  <rniwa@webkit.org>
1358
1359         Don't expose raw HTML in pasteboard to the web content
1360         https://bugs.webkit.org/show_bug.cgi?id=178422
1361
1362         Reviewed by Wenson Hsieh.
1363
1364         Added a test case for sanitizing web archive in the system pasteboard to strip privacy sensitive information
1365         such as local file paths and potentially harmful scripts like event handlers serialized by WebKit prior to r223462.
1366
1367         * TestWebKitAPI/Tests/WebKitCocoa/PasteWebArchive.mm:
1368         (PasteWebArchive.SanitizesHTML):
1369
1370 2017-10-18  Youenn Fablet  <youenn@apple.com>
1371
1372         TestController should clear all fetch caches when resetting its state
1373         https://bugs.webkit.org/show_bug.cgi?id=178486
1374
1375         Reviewed by Chris Dumez.
1376
1377         Adding clearDOMCaches test runner method.
1378         Using that method when resetting state.
1379
1380         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1381         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1382         (WTR::TestRunner::clearDOMCaches):
1383         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1384         * WebKitTestRunner/TestInvocation.cpp:
1385         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
1386
1387 2017-10-18  Chelsea Pugh  <cpugh@apple.com>
1388
1389         [iOS] Use new class name from UIKit when checking UITextSuggestion type
1390         https://bugs.webkit.org/show_bug.cgi?id=178416
1391
1392         Reviewed by Tim Horton.
1393
1394         This updates our test using/mocking out UITextAutofillSuggestion instead of UIKeyboardLoginCredentialsSuggestion.
1395
1396         * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:
1397         (-[UITextAutofillSuggestion initWithUsername:password:]): Copied from UIKit's implementation. This will serve as
1398         a mock of this method for builds not containingit.
1399         (+[UITextAutofillSuggestion autofillSuggestionWithUsername:password:]): Ditto.
1400         (TestWebKitAPI::TEST): Use +[UITextAutofillSuggestion autofillSuggestionWithUsername:password:] inline instead of
1401         helper function for creating a new suggestion.
1402         (newUIKeyboardLoginCredentialsSuggestion): Deleted.
1403
1404         * TestWebKitAPI/ios/UIKitSPI.h:
1405
1406 2017-10-18  Fujii Hironori  <Hironori.Fujii@sony.com>
1407
1408         update-webkit-auxiliary-libs can't download WebKitAuxiliaryLibrary.zip due to 403 Forbidden
1409         https://bugs.webkit.org/show_bug.cgi?id=178381
1410
1411         Reviewed by Alexey Proskuryakov.
1412
1413         The web server developer.apple.com seems to reject HTTP requests
1414         without Accept header field.
1415
1416         * Scripts/update-webkit-dependency: Add 'Accept' header field to requests.
1417
1418 2017-10-18  Aakash Jain  <aakash_jain@apple.com>
1419
1420         webkitpy tests should have --json-output option
1421         https://bugs.webkit.org/show_bug.cgi?id=178481
1422
1423         Reviewed by Alexey Proskuryakov.
1424
1425         * Scripts/webkitpy/test/main.py:
1426         (Tester._parse_args): Added json-output argument.
1427         (Tester._run_tests): Write output to json file.
1428
1429 2017-10-18  Wenson Hsieh  <wenson_hsieh@apple.com>
1430
1431         Unreviewed, rolling out r223291.
1432
1433         See WebCore ChangeLog for more detail.
1434
1435         Reverted changeset:
1436
1437         "Remove Editor::simplifyMarkup"
1438         https://bugs.webkit.org/show_bug.cgi?id=178271
1439         https://trac.webkit.org/changeset/223291
1440
1441 2017-10-18  Chris Dumez  <cdumez@apple.com>
1442
1443         Add an efficient data structure for WebCore to query if there is a Service Worker registered for a given origin
1444         https://bugs.webkit.org/show_bug.cgi?id=177876
1445         <rdar://problem/34813129>
1446
1447         Reviewed by Ryosuke Niwa.
1448
1449         Clear service worker registrations between test runs to avoid flakiness.
1450
1451         * WebKitTestRunner/TestController.cpp:
1452         (WTR::TestController::resetStateToConsistentValues):
1453
1454 2017-10-18  Zan Dobersek  <zdobersek@igalia.com>
1455
1456         Remove remnants of OpenWebRTC
1457         https://bugs.webkit.org/show_bug.cgi?id=178437
1458
1459         Reviewed by Alejandro G. Castro.
1460
1461         Drop OpenWebRTC packages from the GTK's Jhbuild modules file. Relevant
1462         patches are also removed.
1463
1464         * gtk/jhbuild.modules:
1465         * gtk/patches/libnice-0001-TURN-allow-REALM-to-be-empty.patch: Removed.
1466         * gtk/patches/libnice-0001-nicesrc-spin-the-agent-mainloop-in-a-separate-thread.patch: Removed.
1467         * gtk/patches/rtspsrc-timeout-on-udpsrc-is-in-nanoseconds.patch: Removed.
1468         * gtk/patches/udpsrc-improve-timeouts.patch: Removed.
1469
1470 2017-10-17  Jonathan Bedard  <jbedard@apple.com>
1471
1472         webkitpy: Hang when workers write to the same stack trace file
1473         https://bugs.webkit.org/show_bug.cgi?id=178402
1474         <rdar://problem/35033432>
1475
1476         Reviewed by Aakash Jain.
1477
1478         Workers can hang if they all write to the same stack trace file when receiving
1479         a SIGTERM. Attach the pid to the stack trace file name so that each worker
1480         writes to a different file.
1481
1482         * Scripts/webkitpy/common/interupt_debugging.py:
1483         (log_stack_trace_on_term.handler): Name stack trace file path/<pid>-filename.
1484         (log_stack_trace_on_cntrl_c.handler): Ditto.
1485
1486 2017-10-17  John Wilander  <wilander@apple.com>
1487
1488         Add and remove cookie partition accordingly in intermediary redirect requests
1489         https://bugs.webkit.org/show_bug.cgi?id=178369
1490         <rdar://problem/34467603>
1491
1492         Reviewed by Brent Fulgham.
1493
1494         Adds the function statisticsNotifyObserver().
1495
1496         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1497         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
1498         (WTR::InjectedBundle::statisticsNotifyObserver):
1499         * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
1500         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1501         (WTR::TestRunner::statisticsNotifyObserver):
1502         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1503
1504 2017-10-17  Youenn Fablet  <youenn@apple.com>
1505
1506         Cache API implementation should be able to compute storage size for WebKit client applications.
1507         https://bugs.webkit.org/show_bug.cgi?id=178350
1508
1509         Reviewed by Chris Dumez.
1510
1511         Adding support for a domCacheSize getter.
1512
1513         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1514         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1515         (WTR::TestRunner::domCacheSize):
1516         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1517         * WebKitTestRunner/TestController.cpp:
1518         (WTR::FetchCacheSizeForOriginCallbackContext::FetchCacheSizeForOriginCallbackContext):
1519         (WTR::fetchCacheSizeForOriginCallback):
1520         (WTR::TestController::domCacheSize):
1521         * WebKitTestRunner/TestController.h:
1522         * WebKitTestRunner/TestInvocation.cpp:
1523         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
1524
1525 2017-10-17  Nael Ouedraogo  <nael.ouedraogo@crf.canon.fr>
1526
1527         [GStreamer][GTK][WPE] update-webkit-libs-jhbuild fails to detect changes in included moduleset files
1528         https://bugs.webkit.org/show_bug.cgi?id=178206
1529
1530         Reviewed by Michael Catanzaro.
1531
1532         The update-webkit-libs-jhbuild scripts computes MD5 sum of GTK/WPE jhbuild configuration files to check if it
1533         needs to rebuild the dependencies libraries. This patch fixes a bug when main GTK/WPE jhbuild modules
1534         configuration file includes additional files (for example GStreamer module). It parses jhbuild.modules file to
1535         check if additional files are included. If any, it computes MD5 sum for each of these included files.
1536
1537         * Scripts/update-webkit-libs-jhbuild:
1538         (getJhbuildIncludedFilePaths): New function that returns included files in jhbuild.modules
1539         (jhbuildConfigurationCheckFile): New function to check if MD5 sum file changes.
1540         (jhbuildConfigurationChanged): Add MD5 sum check for included files.
1541         (saveMd5File): New function to save MD5 sum of a file.
1542         (saveJhbuildMd5): Add saving included files MD5 sum.
1543         (deleteJhbuildMd5): Delete included files MD5 sum
1544         * gtk/install-dependencies: Add perl-libXML lib that is used to parse jhbuild file.
1545         * wpe/install-dependencies: Ditto.
1546
1547 2017-10-17  Tomas Popela  <tpopela@redhat.com>
1548
1549         Undefined WK_API_ENABLED warning when compiling COCOA content on WebKitGTK+
1550         https://bugs.webkit.org/show_bug.cgi?id=178208
1551
1552         Check whether we are on COCOA platform before checking for
1553         WK_API_ENABLED.
1554
1555         Reviewed by Ryosuke Niwa.
1556
1557         * WebKitTestRunner/TestController.cpp:
1558         (WTR::TestController::clearDOMCache):
1559
1560 2017-10-17  Keith Miller  <keith_miller@apple.com>
1561
1562         Change WebCore sources to work with unified source builds
1563         https://bugs.webkit.org/show_bug.cgi?id=178229
1564
1565         Rubber stamped by Tim Horton.
1566
1567         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
1568
1569 2017-10-16  Christopher Reid  <chris.reid@sony.com>
1570
1571         [Win] Webkit should still be able to build when unable to check if libraries are up to date
1572         https://bugs.webkit.org/show_bug.cgi?id=178367
1573
1574         Adding a option to skip the check to see if windows libraries are up to date.
1575         This option is useful when testing modified libraries. This option also allows
1576         building webkit when GitHub blocks requests to verify the latest library version.
1577
1578
1579         Reviewed by Per Arne Vollan.
1580
1581         * Scripts/build-webkit:
1582
1583 2017-10-12  Matt Rajca  <mrajca@apple.com>
1584
1585         Add API support for quirk that lets an arbitrary click allow auto-play.
1586         https://bugs.webkit.org/show_bug.cgi?id=178227
1587
1588         Reviewed by Alex Christensen.
1589
1590         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
1591         (TEST): Added API test.
1592
1593 2017-10-16  Maureen Daum  <mdaum@apple.com>
1594
1595         If an origin doesn't have databases in the Databases table we should still remove its information from disk in DatabaseTracker::deleteOrigin()
1596         https://bugs.webkit.org/show_bug.cgi?id=178281
1597         <rdar://problem/34576132>
1598
1599         Reviewed by Brent Fulgham.
1600
1601         Verify that if there is an entry in the Origins table but no entries in the Databases
1602         table that we still remove the directory for the origin, and that we remove the
1603         entry from the Origins table.
1604
1605         * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:
1606         (TestWebKitAPI::TEST):
1607
1608 2017-10-15  Ryosuke Niwa  <rniwa@webkit.org>
1609
1610         Cannot access images included in the content pasted from Microsoft Word
1611         https://bugs.webkit.org/show_bug.cgi?id=124391
1612         <rdar://problem/26862741>
1613
1614         Reviewed by Antti Koivisto.
1615
1616         Added tests for sanitizing HTML contents for copy & paste and drag & drop.
1617
1618         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1619         * TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm: Added.
1620         (readHTMLFromPasteboard): Added.
1621         (createWebViewWithCustomPasteboardDataEnabled): Added.
1622         (CopyHTML.Sanitizes): Added.
1623
1624         * TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm:
1625         (createWebViewWithCustomPasteboardDataEnabled): Added to enable more tests on bots.
1626
1627         * TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:
1628         (writeRTFToPasteboard): Added.
1629         (createWebViewWithCustomPasteboardDataEnabled): Added.
1630         (createHelloWorldString): Added.
1631         (PasteRTF.ExposesHTMLTypeInDataTransfer): Added.
1632         (PasteRTFD.ExposesHTMLTypeInDataTransfer): Added.
1633         (PasteRTFD.ImageElementUsesBlobURLInHTML): Added.
1634
1635         * TestWebKitAPI/Tests/WebKitCocoa/copy-html.html: Added.
1636         * TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html: Store the clipboardData contents for
1637         PasteRTF.ExposesHTMLTypeInDataTransfer and PasteRTFD.ExposesHTMLTypeInDataTransfer.
1638
1639         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
1640         (DataInteractionTests.DataTransferSanitizeHTML):
1641
1642 2017-10-16  Youenn Fablet  <youenn@apple.com>
1643
1644         Activate Cache API by default
1645         https://bugs.webkit.org/show_bug.cgi?id=178186
1646
1647         Reviewed by Chris Dumez.
1648
1649         Removing explicit activation of cache api.
1650
1651         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
1652         (WTR::InjectedBundle::beginTesting):
1653         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1654         (WTR::TestRunner::setCacheAPIEnabled): Deleted.
1655         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1656
1657 2017-10-16  Ross Kirsling  <ross.kirsling@sony.com>
1658
1659         run-webkit-tests help text should mention arguments too
1660         https://bugs.webkit.org/show_bug.cgi?id=178352
1661
1662         Reviewed by Tim Horton.
1663
1664         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
1665         (parse_args):
1666
1667 2017-10-16  Maureen Daum  <mdaum@apple.com>
1668
1669         If we fail to delete any database file, don't remove its information from the tracker database
1670         <rdar://problem/34576132> and https://bugs.webkit.org/show_bug.cgi?id=178251
1671
1672         Reviewed by Brady Eidson.
1673
1674         Add tests that verify we correctly delete databases and remove their information from
1675         the tracker database, even if the database doesn't exist. Verify that if we fail to
1676         delete a database, we don't remove its information from the tracker database.
1677
1678         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1679         Move DatabaseTrackerTest.cpp to DatabaseTrackerTest.mm so that we can use the cocoa
1680         method for creating a temporary directory in the tests.
1681         * TestWebKitAPI/Tests/WebCore/DatabaseTrackerTest.cpp: Removed.
1682         The existing test was copied to DatabaseTrackerTest.mm.
1683         * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: Added.
1684         (TestWebKitAPI::TEST):
1685         (TestWebKitAPI::addToDatabasesTable):
1686         (TestWebKitAPI::removeDirectoryAndAllContents):
1687         (TestWebKitAPI::createFileAtPath):
1688
1689 2017-10-16  Ryan Haddad  <ryanhaddad@apple.com>
1690
1691         Unreviewed, rolling out r223422.
1692
1693         These tests are for a change that was rolled out in r223420
1694
1695         Reverted changeset:
1696
1697         "If we fail to delete any database file, don't remove its
1698         information from the tracker database"
1699         https://bugs.webkit.org/show_bug.cgi?id=178251
1700         https://trac.webkit.org/changeset/223422
1701
1702 2017-10-16  Maureen Daum  <mdaum@apple.com>
1703
1704         If we fail to delete any database file, don't remove its information from the tracker database
1705         <rdar://problem/34576132> and https://bugs.webkit.org/show_bug.cgi?id=178251
1706
1707         Reviewed by Brady Eidson.
1708
1709         Add tests that verify we correctly delete databases and remove their information from
1710         the tracker database, even if the database doesn't exist. Verify that if we fail to
1711         delete a database, we don't remove its information from the tracker database.
1712
1713         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1714         Move DatabaseTrackerTest.cpp to DatabaseTrackerTest.mm so that we can use the cocoa
1715         method for creating a temporary directory in the tests.
1716         * TestWebKitAPI/Tests/WebCore/DatabaseTrackerTest.cpp: Removed.
1717         The existing test was copied to DatabaseTrackerTest.mm.
1718         * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: Added.
1719         (TestWebKitAPI::TEST):
1720         (TestWebKitAPI::addToDatabasesTable):
1721         (TestWebKitAPI::removeDirectoryAndAllContents):
1722         (TestWebKitAPI::createFileAtPath):
1723
1724 2017-10-16  David Kilzer  <ddkilzer@apple.com>
1725
1726         Add RELEASE_ASSERT_WITH_SECURITY_IMPLICATION() macro
1727         <https://webkit.org/b/178269>
1728
1729         Reviewed by Alex Christensen.
1730
1731         * Scripts/webkitpy/style/checkers/cpp.py:
1732         (check_language): Add checker to warn about using
1733         ASSERT_WITH_SECURITY_IMPLICATION().
1734         (CppChecker.categories): Add 'security/assertion' to list of
1735         enabled checkers.
1736         * Scripts/webkitpy/style/checkers/cpp_unittest.py:
1737         (CppStyleTest.test_debug_security_assertion): Add tests for
1738         new checker.
1739
1740 2017-10-16  Chris Dumez  <cdumez@apple.com>
1741
1742         Clicks on Link with download attribute causes all (other) links to trigger download when clicked
1743         https://bugs.webkit.org/show_bug.cgi?id=178267
1744         <rdar://problem/34985016>
1745
1746         Reviewed by Darin Adler.
1747
1748         Use PassThrough policy in WKTR's InjectedBundle's decidePolicyForNewWindowAction so that the
1749         request is sent to the UIProcess. This gets WKTR's closer to Safari behavior and helps
1750         reproduce the bug. Without this change, I would not be able to write a regression test for
1751         this bug that is very easily reproducible in Safari.
1752
1753         * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
1754         (WTR::InjectedBundlePage::decidePolicyForNewWindowAction):
1755
1756 2017-10-16  Emilio Cobos Álvarez  <emilio@crisal.io>
1757
1758         Add Emilio Cobos Álvarez to the contributors list.
1759         https://bugs.webkit.org/show_bug.cgi?id=178334
1760
1761         Reviewed by Antti Koivisto.
1762
1763         * Scripts/webkitpy/common/config/contributors.json:
1764
1765 2017-10-07  Maciej Stachowiak  <mjs@apple.com>
1766
1767         Improve --help documentation and add --list-plans to show available benchmarks.
1768         https://bugs.webkit.org/show_bug.cgi?id=178059
1769
1770         Reviewed by Ryosuke Niwa.
1771
1772         * Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
1773         (BenchmarkRunner.available_plans): New function that returns the list of available plans.
1774         (BenchmarkRunner.plan_directory): New method to centralize knowledge of where the plan files live.
1775         (BenchmarkRunner._find_plan_file): Updated to use BenchmarkRunner.plan_directory
1776
1777         * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
1778         
1779         (parse_args): Help cleanup: Reordered options to put more common
1780         ones at the top. Fixed wording. Added help for each
1781         option. Explained default for each option that has one.
1782
1783         New option: --list-plans which tells you the available benchmarks.
1784         
1785         Code cleanup: Removed use of dest where redundant, made variable
1786         names conforming to Python coding style.
1787         
1788         (run_benchmark_plan): Adapted for new variable names.
1789         (list_benchmark_plans): New helper for --list-plans option.
1790         (start): Account for --list-plans. Also use
1791         BechmarkRunner.available_plans and use
1792         BenchmarkRunner.plan_directory instead of duplicating
1793         code/knowledge here.
1794
1795 2017-10-16  Wenson Hsieh  <wenson_hsieh@apple.com>
1796
1797         On ToT, event.dataTransfer.getData("text/uri-list") returns an empty string when dragging an image
1798         https://bugs.webkit.org/show_bug.cgi?id=178301
1799         <rdar://problem/34990050>
1800
1801         Reviewed by Darin Adler.
1802
1803         Fixes issues in DumpRenderTree's LocalPasteboard to ensure that drag-drop-href-as-url.html exposes files, and
1804         also adds a new iOS drag and drop API test.
1805
1806         * DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
1807         (-[LocalPasteboard addTypes:owner:]):
1808         (-[LocalPasteboard setData:forType:]):
1809
1810         Fixes LocalPasteboard's implementation of changeCount to incremement when the pasteboard owner changes, rather
1811         than every time data is changed. This is consistent with NSPasteboard behavior.
1812
1813         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
1814         (TestWebKitAPI::TEST):
1815
1816         Adds a new API test to verify that an image and HTTP URL written by the platform is correctly web exposed.
1817
1818 2017-10-15  Darin Adler  <darin@apple.com>
1819
1820         UTF-8 decoding produces one replacement character per byte; Encoding standard requires one replacement character per illegal sequence instead
1821         https://bugs.webkit.org/show_bug.cgi?id=178207
1822
1823         Reviewed by Sam Weinig.
1824
1825         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added test.
1826         * TestWebKitAPI/Tests/WebCore/TextCodec.cpp: Added.
1827         (TestWebKitAPI::decodeHexTestBytes): Decodes a string so we can write readable tests.
1828         (TestWebKitAPI::escapeNonPrintableASCIICharacters): Encodes a string so we can write readable tests.
1829         (TestWebKitAPI::TEST): Added some UTF-8 tests and UTF-8 invalid sequences tests.
1830         Would be smart to add more tests for other cases, exercising the fast ASCII loop for example, and
1831         other encodings.
1832
1833 2017-10-14  Adrian Perez de Castro  <aperez@igalia.com>
1834
1835         [WPE] JHBuild build directory DependenciesWPE/Build is not removed by update-webkit-libs-jhbuild
1836         https://bugs.webkit.org/show_bug.cgi?id=178212
1837
1838         Reviewed by Michael Catanzaro.
1839
1840         * Scripts/update-webkit-libs-jhbuild:
1841         (cleanJhbuild): The WPE JHBuild also uses a separate "Build" subdirectory, so do not skip
1842         cleaning it when "--wpe" is passed to the script.
1843
1844 2017-10-13  Adrian Perez de Castro  <aperez@igalia.com>
1845
1846         [WPE] Fontconfig fails build in JHBuild with “error: conflicting types for ‘FcObjectTypeHash’”
1847         https://bugs.webkit.org/show_bug.cgi?id=178283
1848
1849         Reviewed by Žan Doberšek.
1850
1851         * wpe/jhbuild.modules: Flag Fontconfig to be built inside the source directory, otherwise
1852         compilation fails. While at it, pass "--disable-docs" to cut a bit on build time.
1853
1854 2017-10-13  Youenn Fablet  <youenn@apple.com>
1855
1856         Implement listing origins for which CacheStorage is storing data
1857         https://bugs.webkit.org/show_bug.cgi?id=178236
1858
1859         Reviewed by Chris Dumez.
1860
1861         Adding hasDOMCache API for checking whether origin is storing data through Cache API.
1862
1863         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1864         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1865         (WTR::TestRunner::hasDOMCache):
1866         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1867         * WebKitTestRunner/TestController.cpp:
1868         (WTR::FetchCacheOriginsCallbackContext::FetchCacheOriginsCallbackContext):
1869         (WTR::fetchCacheOriginsCallback):
1870         (WTR::TestController::hasDOMCache):
1871         * WebKitTestRunner/TestController.h:
1872         * WebKitTestRunner/TestInvocation.cpp:
1873         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
1874
1875 2017-10-13  Alex Christensen  <achristensen@webkit.org>
1876
1877         Remove Editor::simplifyMarkup
1878         https://bugs.webkit.org/show_bug.cgi?id=178271
1879
1880         Reviewed by Wenson Hsieh.
1881
1882         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1883         * TestWebKitAPI/Tests/mac/SimplifyMarkup.mm: Removed.
1884
1885 2017-10-11  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1886
1887         [GLib] WebKitNavigationAction should tell whether it is a redirect
1888         https://bugs.webkit.org/show_bug.cgi?id=178178
1889
1890         Test that WebKitNavigationAction properly reports being a redirect.
1891
1892         Reviewed by Carlos Garcia Campos.
1893
1894         * TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp:
1895         (testNavigationPolicy): test that loading /redirect leads to a redirect WebKitNavigationAction.
1896         (serverCallback): add a /redirect path to the server, which causes a redirect.
1897
1898 2017-10-13  Chris Dumez  <cdumez@apple.com>
1899
1900         Unreviewed, fix webkitpy failure after r223273
1901
1902         * Scripts/webkitpy/w3c/test_importer_unittest.py:
1903         (TestImporterTest.test_harnesslinks_conversion):
1904
1905 2017-10-12  Chris Dumez  <cdumez@apple.com>
1906
1907         import-w3c-tests modifies test sources and sometimes causes them to fail
1908         https://bugs.webkit.org/show_bug.cgi?id=178234
1909
1910         Reviewed by Ryosuke Niwa.
1911
1912         Update import-w3c-tests to stop rewriting tests as this is causing some tests
1913         to fail unexpectedly.
1914
1915         * Scripts/webkitpy/w3c/test_importer.py:
1916         (TestImporter.import_tests):
1917
1918 2017-10-12  Youenn Fablet  <youenn@apple.com>
1919
1920         Layout Test http/tests/cache-storage/cache-clearing.https.html is failing
1921         https://bugs.webkit.org/show_bug.cgi?id=178200
1922
1923         Reviewed by Chris Dumez.
1924
1925         Making clearDOMCache wait for removal completion to exit.
1926         This removes the risk to interact with the cache while deleting it which will end up be racy in tests.
1927
1928         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1929         (WTR::TestRunner::clearDOMCache):
1930         * WebKitTestRunner/TestController.cpp:
1931         (WTR::ClearDOMCacheCallbackContext::ClearDOMCacheCallbackContext):
1932         (WTR::clearDOMCacheCallback):
1933         (WTR::TestController::clearDOMCache):
1934         * WebKitTestRunner/TestInvocation.cpp:
1935         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
1936         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
1937
1938 2017-10-12  John Wilander  <wilander@apple.com>
1939
1940         ResourceLoadObserver::logFrameNavigation() should use redirectResponse.url()
1941         https://bugs.webkit.org/show_bug.cgi?id=175257
1942         <rdar://problem/33359866>
1943
1944         Reviewed by Brent Fulgham.
1945
1946         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1947         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1948         (WTR::TestRunner::isStatisticsRegisteredAsSubFrameUnder):
1949         (WTR::TestRunner::isStatisticsRegisteredAsRedirectingTo):
1950         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1951         * WebKitTestRunner/TestController.cpp:
1952         (WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
1953             Not implemented.
1954         (WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
1955             Not implemented.
1956         * WebKitTestRunner/TestController.h:
1957         * WebKitTestRunner/TestInvocation.cpp:
1958         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
1959         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
1960         (WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
1961             Implemented platform-specific.
1962         (WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
1963             Implemented platform-specific.
1964
1965 2017-10-12  Andy Estes  <aestes@apple.com>
1966
1967         [iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS devices
1968         https://bugs.webkit.org/show_bug.cgi?id=178181
1969         <rdar://problem/33660282>
1970
1971         Reviewed by Dan Bernstein.
1972
1973         * WebKitTestRunner/TestController.cpp:
1974         (WTR::TestController::databaseProcessName):
1975
1976 2017-10-12  Myles C. Maxfield  <mmaxfield@apple.com>
1977
1978         Emit SPIR-V from WSL compiler (Part 1)
1979         https://bugs.webkit.org/show_bug.cgi?id=177998
1980
1981         Reviewed by Filip Pizlo.
1982
1983         This patch implements the first half of a SPIR-V codegen phase for WSL.
1984         This includes all the operations which aren't actually emitting the contents
1985         of functions themselves. For example, this includes things like representing
1986         WSL types with SPIR-V types, and declaring shaders' inputs and outputs. A
1987         future patch will actually emit the contents of functions.
1988
1989         There are two helper visitors here: SPIRVTypeAnalyzer which generates SPIR-V
1990         types from WSL types, and SPIRVPrimitiveVariableAnalyzer which identifies
1991         input and output variables from a shader (and assigns location values to
1992         each one).
1993
1994         This patch is currently pursuing the "logical mode" detailed in
1995         https://bugs.webkit.org/show_bug.cgi?id=176967. In this mode, each pointer and
1996         array reference operation can be statically traced to the variable or array it
1997         is operating on.
1998
1999         This has the interesting property where accessing a pointer inside an array is
2000         forbidden, because the array index may be computed at runtime, so the compiler
2001         can't know at compile time which variable the pointer operation will be
2002         accessing. However, this isn't true for structs; the program must statically
2003         state which struct member it is accessing. Therefore, pointers or array
2004         references must not transitively appear within an array, but they may appear
2005         within a struct. The same logic applies to array references; those get lowered
2006         to just two indexes in SPIR-V (a lower bound and an upper bound).
2007
2008         So, outside of an array, SPIR-V types don't need to include any pointers because
2009         any operation with the pointer doesn't need access to the runtime value of the
2010         pointer. Inside of an array, pointers are forbidden. Therefore, SPIR-V types
2011         will never include any pointers.
2012
2013         This means that, for example, WSL can represent a linked list in logical mode.
2014         However, a WSL program cannot iterate across the list, because that would require
2015         assigning to a pointer. So instead, a program using a linked list could only say
2016         something like "list.ptr->ptr->ptr->value".
2017
2018         * WebGPUShadingLanguageRI/LateChecker.js:
2019         (LateChecker.prototype._checkShaderType):
2020         * WebGPUShadingLanguageRI/SPIR-V.js:
2021         (SPIRV.OperandChecker.prototype._isStar):
2022         (SPIRV.OperandChecker.prototype.nextComparisonType):
2023         (SPIRV.OperandChecker.prototype.finalize):
2024         (SPIRV.OperandChecker):
2025         * WebGPUShadingLanguageRI/SPIRV.html:
2026         * WebGPUShadingLanguageRI/SPIRVCodegen.js: Added.
2027         (findEntryPoints):
2028         (emitTypes.doEmitTypes):
2029         (emitTypes):
2030         (ConstantFinder.prototype.visitGenericLiteralType):
2031         (ConstantFinder):
2032         (generateSPIRV):
2033         * WebGPUShadingLanguageRI/SPIRVTypeAnalyzer.js: Added.
2034         (SPIRVTypeAnalyzer):
2035         (SPIRVTypeAnalyzer.prototype.get program):
2036         (SPIRVTypeAnalyzer.prototype.get typeMap):
2037         (SPIRVTypeAnalyzer.prototype.get currentId):
2038         (SPIRVTypeAnalyzer.prototype.get stack):
2039         (SPIRVTypeAnalyzer.prototype.visitTypeRef):
2040         (SPIRVTypeAnalyzer.prototype._encounterType):
2041         (SPIRVTypeAnalyzer.prototype.visitNullType):
2042         (SPIRVTypeAnalyzer.prototype.visitGenericLiteralType):
2043         (SPIRVTypeAnalyzer.prototype.visitNativeType):
2044         (SPIRVTypeAnalyzer.prototype.visitEnumType):
2045         (SPIRVTypeAnalyzer.prototype.visitPtrType):
2046         (SPIRVTypeAnalyzer.prototype.visitArrayRefType):
2047         (SPIRVTypeAnalyzer.prototype.visitArrayType):
2048         (SPIRVTypeAnalyzer.prototype.visitStructType):
2049         * WebGPUShadingLanguageRI/SPIRVVariableAnalyzer.js: Added.
2050         (SPIRVPrimitiveVariableAnalyzer):
2051         (SPIRVPrimitiveVariableAnalyzer.prototype.get program):
2052         (SPIRVPrimitiveVariableAnalyzer.prototype.get typeMap):
2053         (SPIRVPrimitiveVariableAnalyzer.prototype.get currentId):
2054         (SPIRVPrimitiveVariableAnalyzer.prototype.get currentLocation):
2055         (SPIRVPrimitiveVariableAnalyzer.prototype.get nameComponents):
2056         (SPIRVPrimitiveVariableAnalyzer.prototype.get result):
2057         (SPIRVPrimitiveVariableAnalyzer.prototype.visitTypeRef):
2058         (SPIRVPrimitiveVariableAnalyzer.prototype.visitNullType):
2059         (SPIRVPrimitiveVariableAnalyzer.prototype.visitGenericLiteralType):
2060         (SPIRVPrimitiveVariableAnalyzer.prototype.visitNativeType):
2061         (SPIRVPrimitiveVariableAnalyzer.prototype.visitEnumType):
2062         (SPIRVPrimitiveVariableAnalyzer.prototype.visitPtrType):
2063         (SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayRefType):
2064         (SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayType):
2065         (SPIRVPrimitiveVariableAnalyzer.prototype.visitStructType):
2066         * WebGPUShadingLanguageRI/WSL.md:
2067         * WebGPUShadingLanguageRI/index.html:
2068
2069 2017-09-29  Filip Pizlo  <fpizlo@apple.com>
2070
2071         Enable gigacage on iOS
2072         https://bugs.webkit.org/show_bug.cgi?id=177586
2073
2074         Reviewed by JF Bastien.
2075         
2076         Add a mode to test disabling Gigacage.
2077
2078         * Scripts/run-jsc-stress-tests:
2079         * Scripts/webkitruby/jsc-stress-test-writer-default.rb:
2080
2081 2017-10-11  Sam Weinig  <sam@webkit.org>
2082
2083         Remove out-parameter variants of copyToVector
2084         https://bugs.webkit.org/show_bug.cgi?id=178155
2085
2086         Reviewed by Tim Horton.
2087
2088         * DumpRenderTree/JavaScriptThreading.cpp:
2089         (stopJavaScriptThreads):
2090
2091 2017-10-12  Sam Weinig  <sam@webkit.org>
2092
2093         It should be possible to iterate just the values (and not the counts) of a HashCountedSet
2094         https://bugs.webkit.org/show_bug.cgi?id=178169
2095
2096         Reviewed by Daniel Bates.
2097
2098         * TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:
2099         (TestWebKitAPI::TEST):
2100         Add test for HashCountedSet's new values() range.
2101
2102 2017-10-11  Frederic Wang  <fwang@igalia.com>
2103
2104         run-safari --ios-simulator is no longer working with Xcode 9
2105         https://bugs.webkit.org/show_bug.cgi?id=177595
2106
2107         Reviewed by Daniel Bates.
2108
2109         In Xcode 9, the path of the simulator application is now in a new CoreSimulator subdirectory
2110         of the iphoneOS SDK platform. This patch updates webkitdirs.pm to use the new path in
2111         Xcode 9 or higher so that it is possible to run Safari on the iOS simulator again. It also
2112         does some minor code refactoring to improve code reuse.
2113
2114         * Scripts/configure-xcode-for-ios-development: Move sdkDirectory() and sdkPlatformDirectory()
2115         into webkitdirs.
2116         (sdkDirectory): Deleted.
2117         (sdkPlatformDirectory): Deleted.
2118         * Scripts/webkitdirs.pm: Expose new sdkDirectory() and sdkPlatformDirectory().
2119         (sdkDirectory): Moved from configure-xcode-for-ios-development.
2120         (sdkPlatformDirectory): Ditto.
2121         (XcodeSDKPath): Rely on sdkDirectory() to implement this function.
2122         (iosSimulatorApplicationsPath): In Xcode 9 or higher use the new path. It is calculated
2123         by relying on sdkPlatformDirectory().
2124
2125 2017-10-11  Dewei Zhu  <dewei_zhu@apple.com>
2126
2127         run-benchmark script should set '__XPC_DYLD_FRAMEWORK_PATH' while launching local-built Safari on Mac.
2128         https://bugs.webkit.org/show_bug.cgi?id=178199
2129
2130         Reviewed by Saam Barati.
2131
2132         '__XPC_DYLD_FRAMEWORK_PATH' should be set while launching Safari on run-benchmark script.
2133         'force_remove' function should support both file and directory.
2134
2135         * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
2136         (OSXSafariDriver.launch_url):
2137         * Scripts/webkitpy/benchmark_runner/utils.py:
2138         (force_remove):
2139
2140 2017-10-11  Saam Barati  <sbarati@apple.com>
2141
2142         Runtime disable poly proto because it may be a 3-4% Speedometer regression
2143         https://bugs.webkit.org/show_bug.cgi?id=178192
2144
2145         Reviewed by JF Bastien.
2146
2147         * Scripts/run-jsc-stress-tests:
2148
2149 2017-10-11  Youenn Fablet  <youenn@apple.com>
2150
2151         Add API to clean CacheStorage data
2152         https://bugs.webkit.org/show_bug.cgi?id=178034
2153
2154         Reviewed by Chris Dumez.
2155
2156         Adding internals API to trigger deleting all or origin-persistent cache storage persistent data. 
2157
2158         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
2159         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
2160         (WTR::TestRunner::clearDOMCache):
2161         * WebKitTestRunner/InjectedBundle/TestRunner.h:
2162         * WebKitTestRunner/TestController.cpp:
2163         (WTR::TestController::clearDOMCache):
2164         * WebKitTestRunner/TestController.h:
2165         * WebKitTestRunner/TestInvocation.cpp:
2166         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
2167
2168 2017-10-11  Chris Dumez  <cdumez@apple.com>
2169
2170         [Geolocation] Expose Coordinates.floorLevel
2171         https://bugs.webkit.org/show_bug.cgi?id=178173
2172         <rdar://problem/34918936>
2173
2174         Reviewed by Ryosuke Niwa.
2175
2176         Add test infrastructure for testing Coordinates.floorLevel.
2177
2178         * DumpRenderTree/TestRunner.cpp:
2179         (setMockGeolocationPositionCallback):
2180         * DumpRenderTree/TestRunner.h:
2181         * DumpRenderTree/mac/TestRunnerMac.mm:
2182         (TestRunner::setMockGeolocationPosition):
2183         * DumpRenderTree/win/TestRunnerWin.cpp:
2184         (TestRunner::setMockGeolocationPosition):
2185         * WebKitTestRunner/GeolocationProviderMock.cpp:
2186         (WTR::GeolocationProviderMock::setPosition):
2187         * WebKitTestRunner/GeolocationProviderMock.h:
2188         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
2189         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
2190         (WTR::InjectedBundle::setMockGeolocationPosition):
2191         * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
2192         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
2193         (WTR::TestRunner::setMockGeolocationPosition):
2194         * WebKitTestRunner/InjectedBundle/TestRunner.h:
2195         * WebKitTestRunner/TestController.cpp:
2196         (WTR::TestController::setMockGeolocationPosition):
2197         * WebKitTestRunner/TestController.h:
2198         * WebKitTestRunner/TestInvocation.cpp:
2199         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
2200
2201 2017-10-11  Youenn Fablet  <youenn@apple.com>
2202
2203         Bump default cache storage quota to 20MB
2204         https://bugs.webkit.org/show_bug.cgi?id=178132
2205
2206         Reviewed by Alex Christensen.
2207
2208         * WebKitTestRunner/TestController.cpp:
2209         (WTR::TestController::generateContextConfiguration const):
2210         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
2211         (WTR::initializeWebViewConfiguration): Setting quota to 400kb
2212
2213 2017-10-11  Commit Queue  <commit-queue@webkit.org>
2214
2215         Unreviewed, rolling out r223113 and r223121.
2216         https://bugs.webkit.org/show_bug.cgi?id=178182
2217
2218         Reintroduced 20% regression on Kraken (Requested by rniwa on
2219         #webkit).
2220
2221         Reverted changesets:
2222
2223         "Enable gigacage on iOS"
2224         https://bugs.webkit.org/show_bug.cgi?id=177586
2225         https://trac.webkit.org/changeset/223113
2226
2227         "Use one virtual allocation for all gigacages and their
2228         runways"
2229         https://bugs.webkit.org/show_bug.cgi?id=178050
2230         https://trac.webkit.org/changeset/223121
2231
2232 2017-10-11  Ryosuke Niwa  <rniwa@webkit.org>
2233
2234         Sanitize URL in pasteboard for other applications and cross origin content
2235         https://bugs.webkit.org/show_bug.cgi?id=178060
2236         <rdar://problem/34874518>
2237
2238         Reviewed by Wenson Hsieh.
2239
2240         Added API tests for sanitizing URLs copied from web content, and that the original URL is exposed to the web content.
2241
2242         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2243         * TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm: Added.
2244         (readURLFromPasteboard): A helper function.
2245         * TestWebKitAPI/Tests/WebKitCocoa/copy-url.html: Added.
2246         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
2247         (DataInteractionTests.DataTransferGetDataWhenDroppingCustomData): Rebaselined. https://www.apple.com is no longer
2248         normalized to https://www.apple.com/ by NSURL / UIPasteboard as expected.
2249         (DataInteractionTests.DataTransferSetDataValidURL): Added.
2250         (DataInteractionTests.DataTransferSetDataUnescapedURL): Added.
2251         (DataInteractionTests.qDataTransferSetDataInvalidURL): Added.
2252
2253 2017-10-11  Chris Dumez  <cdumez@apple.com>
2254
2255         Modernize Geolocation code
2256         https://bugs.webkit.org/show_bug.cgi?id=178148
2257
2258         Reviewed by Ryosuke Niwa.
2259
2260         * DumpRenderTree/mac/TestRunnerMac.mm:
2261         (TestRunner::setMockGeolocationPosition):
2262
2263 2017-10-11  Nael Ouedraogo  <nael.ouedraogo@crf.canon.fr>
2264
2265         [GStreamer] Many media source tests crashing with GStreamer-CRITICAL **: _gst_util_uint64_scale: assertion 'denom != 0' failed in gst_qtdemux_configure_stream()
2266         https://bugs.webkit.org/show_bug.cgi?id=176804
2267
2268         Reviewed by Michael Catanzaro.
2269
2270         Add patch to fix assert in qtdemux.
2271
2272         * gstreamer/jhbuild.modules:
2273         * gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch: Added.
2274
2275 2017-10-11  Tomas Popela  <tpopela@redhat.com>
2276
2277         Use https for trac changeset and browser links
2278         https://bugs.webkit.org/show_bug.cgi?id=178167
2279
2280         Reviewed by Alexey Proskuryakov.
2281
2282         Switch the http://trac.webkit.org/changeset and
2283         http://trac.webkit.org/browser links that are printed by webkitpy to
2284         https. Also update the test expectations.
2285
2286         * Scripts/webkitpy/common/checkout/checkout_unittest.py:
2287         * Scripts/webkitpy/common/config/committervalidator_unittest.py:
2288         (CommitterValidatorTest.test_flag_permission_rejection_message):
2289         * Scripts/webkitpy/common/config/urls.py:
2290         (view_source_url):
2291         (view_revision_url):
2292         * Scripts/webkitpy/common/net/bugzilla/bug_unittest.py:
2293         (BugTest.test_commit_revision):
2294         * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:
2295         * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
2296         * Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:
2297         (MainTest):
2298         (MainTest.test_run_with_upload_json_should_generate_perf_webkit_json):
2299         * Scripts/webkitpy/style/checkers/changelog_unittest.py:
2300         (ChangeLogCheckerTest.test_missing_bug_number):
2301         * Scripts/webkitpy/tool/bot/feeders_unittest.py:
2302         * Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
2303         * Scripts/webkitpy/tool/bot/ircbot_unittest.py:
2304         (IRCBotTest.test_rollout):
2305         (IRCBotTest.test_revert):
2306         (IRCBotTest.test_multi_rollout):
2307         (IRCBotTest.test_rollout_with_r_in_svn_revision):
2308         (IRCBotTest.test_multi_rollout_with_r_in_svn_revision):
2309         (IRCBotTest.test_rollout_invalidate_reason):
2310         (test_multi_rollout_invalidate_reason):
2311         * Scripts/webkitpy/tool/bot/sheriff_unittest.py:
2312         * Scripts/webkitpy/tool/commands/download_unittest.py:
2313         * Scripts/webkitpy/tool/commands/newcommitbot_unittest.py:
2314         * Scripts/webkitpy/tool/commands/queues_unittest.py:
2315         * Scripts/webkitpy/tool/commands/suggestnominations.py:
2316         (SuggestNominations._count_commit):
2317         * Scripts/webkitpy/tool/commands/upload_unittest.py:
2318         * Scripts/webkitpy/tool/servers/data/rebaselineserver/util.js:
2319         (getTracUrl):
2320         (getSortedKeys):
2321         * Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:
2322         (CloseBugForLandDiffTest.test_empty_state):
2323         * Scripts/webkitpy/tool/steps/commit_unittest.py:
2324         (CommitTest._test_check_test_expectations):
2325         * Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
2326         (UpdateChangeLogsForRevertTest):
2327
2328 2017-10-10  Ryosuke Niwa  <rniwa@webkit.org>
2329
2330         Enable custom pasteboard data in DumpRenderTree and WebKitTestRunner
2331         https://bugs.webkit.org/show_bug.cgi?id=178154
2332
2333         Reviewed by Wenson Hsieh.
2334
2335         Fixed the bug that LocalPasteboard would fail to load the promise type if data is set after declaring types
2336         by delaying the call to provideDataForType until when dataForType is called.
2337
2338         Without this fix, fast/events/dropzone-002.html would start failing after enabling custom pasteboard data.
2339         With this fix, fast/events/dropzone-005.html also starts passing.
2340
2341         * DumpRenderTree/mac/DumpRenderTree.mm:
2342         (resetWebPreferencesToConsistentValues):
2343         * DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
2344         (-[LocalPasteboard addTypes:owner:]):
2345         (-[LocalPasteboard dataForType:]):
2346         * WebKitTestRunner/TestController.cpp:
2347         (WTR::TestController::resetPreferencesToConsistentValues):
2348
2349 2017-10-10  Joanmarie Diggs  <jdiggs@igalia.com>
2350
2351         AX: [ATK] ARIA form role should be mapped to ATK_ROLE_LANDMARK; not ATK_ROLE_FORM
2352         https://bugs.webkit.org/show_bug.cgi?id=178137
2353
2354         Reviewed by Chris Fleizach.
2355
2356         Add handling for ATK_ROLE_LANDMARK resulting from the ARIA form role.
2357
2358         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
2359
2360 2017-10-10  Jonathan Bedard  <jbedard@apple.com>
2361
2362         run-webkit-tests: upload test results to multiple servers
2363         https://bugs.webkit.org/show_bug.cgi?id=178012
2364         <rdar://problem/34856501>
2365
2366         Reviewed by Lucas Forschler.
2367
2368         Allowing uploading of results to multiple servers makes developing new results
2369         databases much easier, and does not complicate uploading logic.
2370
2371         * Scripts/webkitpy/layout_tests/controllers/manager.py:
2372         (Manager.upload_results): Iterate through the list of results server hosts and
2373         send results to each one.
2374         * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
2375         (JSONLayoutResultsGenerator.__init__): Accept a list of test results servers.
2376         * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
2377         (JSONResultsGenerator.__init__): Accept a list of test results servers.
2378         (JSONResultsGenerator.get_json): Pick which server to download from by index.
2379         (JSONResultsGenerator.upload_json_files): Upload the JSON to each results server.
2380         (JSONResultsGenerator._get_archived_json_results): Pick which server to download from.
2381         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
2382         (parse_args): Allow multiple test-results-servers and results-server-hosts to be
2383         passed to run-webkit-tests. 
2384
2385 2017-10-09  Youenn Fablet  <youenn@apple.com>
2386
2387         Vector should be able to easily create from a list of movable only items
2388         https://bugs.webkit.org/show_bug.cgi?id=176432
2389
2390         Reviewed by Darin Adler.
2391
2392         * TestWebKitAPI/Tests/WTF/Vector.cpp:
2393         (TestWebKitAPI::TEST):
2394
2395 2017-09-29  Filip Pizlo  <fpizlo@apple.com>
2396
2397         Enable gigacage on iOS
2398         https://bugs.webkit.org/show_bug.cgi?id=177586
2399
2400         Reviewed by JF Bastien.
2401         
2402         Add a mode to test disabling Gigacage.
2403
2404         * Scripts/run-jsc-stress-tests:
2405         * Scripts/webkitruby/jsc-stress-test-writer-default.rb:
2406
2407 2017-10-09  Commit Queue  <commit-queue@webkit.org>
2408
2409         Unreviewed, rolling out r223015 and r223025.
2410         https://bugs.webkit.org/show_bug.cgi?id=178093
2411
2412         Regressed Kraken on iOS by 20% (Requested by keith_mi_ on
2413         #webkit).
2414
2415         Reverted changesets:
2416
2417         "Enable gigacage on iOS"
2418         https://bugs.webkit.org/show_bug.cgi?id=177586
2419         http://trac.webkit.org/changeset/223015
2420
2421         "Unreviewed, disable Gigacage on ARM64 Linux"
2422         https://bugs.webkit.org/show_bug.cgi?id=177586
2423         http://trac.webkit.org/changeset/223025
2424
2425 2017-10-09  Sam Weinig  <sam@webkit.org>
2426
2427         Make HashMap::keys() and HashMap::values() work with WTF::map/WTF::copyToVector
2428         https://bugs.webkit.org/show_bug.cgi?id=178072
2429
2430         Reviewed by Darin Adler.
2431
2432         * TestWebKitAPI/Tests/WTF/Vector.cpp:
2433         (TestWebKitAPI::TEST):
2434         
2435             Add tests for HashMap::keys() and HashMap::values() working with copyToVector.
2436
2437 2017-10-05  Frederic Wang  <fwang@igalia.com>
2438
2439         Remove WOFF2 from Source/ThirdParty.
2440         https://bugs.webkit.org/show_bug.cgi?id=177862
2441
2442         Reviewed by Michael Catanzaro.
2443
2444         * Scripts/webkitpy/style/checker.py: Remove woff2.
2445         * gtk/jhbuild.modules: Add new jhbuild module for woff2.
2446
2447 2017-10-08  Sam Weinig  <sam@webkit.org>
2448
2449         It should be possible to create a ListHashSet with a std::initializer_list.
2450         https://bugs.webkit.org/show_bug.cgi?id=178070
2451
2452         Reviewed by Darin Adler.
2453
2454         * TestWebKitAPI/Tests/WTF/ListHashSet.cpp:
2455         (TestWebKitAPI::TEST):
2456         Add a test for using std::initializer_list with ListHashSet.
2457
2458 2017-10-08  Sam Weinig  <sam@webkit.org>
2459
2460         There should be a version of copyToVector that returns a Vector, rather than using an out parameter
2461         https://bugs.webkit.org/show_bug.cgi?id=177732
2462
2463         Reviewed by Saam Barati.
2464
2465         * TestWebKitAPI/Tests/WTF/Vector.cpp:
2466         (TestWebKitAPI::TEST):
2467         Add tests for the new copyToVector and copyToVectorOf functions.
2468
2469 2017-10-08  Darin Adler  <darin@apple.com>
2470
2471         Fix bugs related to setting reflected floating point DOM attributes
2472         https://bugs.webkit.org/show_bug.cgi?id=178061
2473
2474         Reviewed by Sam Weinig.
2475
2476         * TestWebKitAPI/Tests/WTF/AtomicString.cpp: Added a test of the
2477         AtomicString::number function, based on the test cases we already
2478         had for String::numberToStringECMAScript, and with some additional
2479         cases with powers of 10 that check handling of trailng zeroes.
2480
2481         * TestWebKitAPI/Tests/WTF/WTFString.cpp: Added test cases to the
2482         existing tests of the String::numberToStringECMAScript function
2483         as above. Also added tests for String::number and for
2484         String::numberToStringFixedWidth. Also changed the tests to all use
2485         EXPECT instead of ASSERT macros since these are all non-fatal.
2486
2487         * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
2488         (WTR::dumpFrameScrollPosition): Use StringBuilder::appendECMAScriptNumber
2489         instead of String::number.
2490
2491 2017-10-08  Dean Jackson  <dino@apple.com>
2492
2493         Make sort-Xcode-project file handle UnifiedSources
2494         https://bugs.webkit.org/show_bug.cgi?id=178042
2495
2496         Reviewed by Sam Weinig.
2497
2498         Sort the UnifiedSource(\d+) files by number rather
2499         than alphabetically.
2500
2501         * Scripts/sort-Xcode-project-file:
2502         (sortChildrenByFileName):
2503         (sortFilesByFileName):
2504
2505 2017-09-29  Filip Pizlo  <fpizlo@apple.com>
2506
2507         Enable gigacage on iOS
2508         https://bugs.webkit.org/show_bug.cgi?id=177586
2509
2510         Reviewed by JF Bastien.
2511         
2512         Add a mode to test disabling Gigacage.
2513
2514         * Scripts/run-jsc-stress-tests:
2515         * Scripts/webkitruby/jsc-stress-test-writer-default.rb:
2516
2517 2017-10-06  Aishwarya Nirmal  <anirmal@apple.com>
2518
2519         [iOS] Respect the "caret-color" CSS property when editing
2520         https://bugs.webkit.org/show_bug.cgi?id=177489
2521         <rdar://problem/34600419>
2522
2523         Reviewed by Tim Horton.
2524
2525         Adds test for iOS caret color support.
2526
2527         * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:
2528         (TestWebKitAPI::TEST):
2529         * TestWebKitAPI/ios/UIKitSPI.h:
2530
2531 2017-10-06  Alex Christensen  <achristensen@webkit.org>
2532
2533         Add more infrastructure to apply custom header fields to same-origin requests
2534         https://bugs.webkit.org/show_bug.cgi?id=177629
2535
2536         Reviewed by Ryosuke Niwa.
2537
2538         * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp:
2539         (canonicalizeHTTPHeader):
2540         (shouldRemainUnchanged):
2541         (shouldBeInvalid):
2542         (shouldBecome):
2543         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
2544         (TEST):
2545         (expectHeaders):
2546         (-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
2547         (-[CustomHeaderFieldsDelegate webView:startURLSchemeTask:]):
2548         (-[CustomHeaderFieldsDelegate webView:stopURLSchemeTask:]):
2549
2550         Test main resource requests, subresource requests, and cross-origin requests.
2551
2552 2017-10-06  Wenson Hsieh  <wenson_hsieh@apple.com>
2553
2554         [iOS] Tweak support for classifying form controls (followup to r222487)
2555         https://bugs.webkit.org/show_bug.cgi?id=177917
2556         <rdar://problem/34820122>
2557
2558         Reviewed by Dean Jackson.
2559
2560         Minor cleanup around autofill API tests added in r222487. Additionally, augments some of these API tests to
2561         verify that after blurring the focused element, the content view no longer accepts autofill credentials (see
2562         WebKit ChangeLog for more details). Also augments tests to verify that the URL in the autofill context matches
2563         the document URL.
2564
2565         * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:
2566
2567         Remove the USE(APPLE_INTERNAL_SDK) guard for these API tests.
2568
2569         (newUIKeyboardLoginCredentialsSuggestion):
2570
2571         Add a stub implementation of UIKeyboardLoginCredentialsSuggestion. This allows
2572         [UIKeyboardLoginCredentialsSuggestion new] to return a nonnull object, which allows these API tests to verify
2573         that the credential filling codepath works as intended without any additional UIKit changes. Currently, tests
2574         for the value of username and password fields are passing even though the fields are not being populated because
2575         the expected string values are null, and the observed value is an empty string. We instead check the literal
2576         string values here instead of credentialSuggestion's properties, so that tests verifying the behavior of
2577         -insertTextSuggestion: will require username and password inputs to be populated.
2578
2579         (-[TestInputDelegate _webView:focusShouldStartInputSession:]):
2580         (-[AutofillTestView initWithFrame:]):
2581         (-[AutofillTestView _autofillInputView]):
2582         (-[AutofillTestView textInputHasAutofillContext]):
2583         (TestWebKitAPI::TEST):
2584
2585         Add an additional API test to verify that programmatic focus without user interaction (and also without testing
2586         overrides) does not activate autofill.
2587
2588         (createUIKeyboardLoginCredentialsSuggestion): Deleted.
2589         (-[WKWebView _privateTextInput]): Deleted.
2590         * TestWebKitAPI/ios/UIKitSPI.h:
2591
2592         Minor gardening to remove iOS version >= 11 guards that are now unnecessary. Additionally, add some more private
2593         header imports (with corresponding interface definitions for building and running with the public SDK).
2594
2595 2017-10-06  Antti Koivisto  <antti@apple.com>
2596
2597         Minor WeakPtr improvements
2598         https://bugs.webkit.org/show_bug.cgi?id=177958
2599
2600         Reviewed by Sam Weinig.
2601
2602         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
2603         (TestWebKitAPI::TEST):
2604         (TestWebKitAPI::Base::createWeakPtr): Deleted.
2605
2606 2017-10-06  Carlos Garcia Campos  <cgarcia@igalia.com>
2607
2608         Unreviewed. Fix parsing of GTK unit tests output in bot configuration.
2609
2610         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
2611         (RunGtkAPITests.commandComplete): Remove trailing ':' from the regular expression.
2612
2613 2017-10-06  Charles Turner  <cturner@igalia.com>
2614
2615         Disable bmalloc when running Valgrind
2616         https://bugs.webkit.org/show_bug.cgi?id=177923
2617
2618         Reviewed by Carlos Alberto Lopez Perez.
2619
2620         * Scripts/webkitpy/port/gtk.py:
2621         (GtkPort.setup_environ_for_server):
2622
2623 2017-10-06  Zan Dobersek  <zdobersek@igalia.com>
2624
2625         Implement TestController::platformContext() for WPE, returning the
2626         m_context pointer as the GTK+ port does. This fixes the crashes on
2627         the WPE testers.
2628
2629         Rubber-stamped by Carlos Garcia Campos.
2630
2631         * WebKitTestRunner/wpe/TestControllerWPE.cpp:
2632         (WTR::TestController::platformContext):
2633
2634 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
2635
2636         [GTK][WPE] Add API to configure and enable resource load statistics
2637         https://bugs.webkit.org/show_bug.cgi?id=177943
2638
2639         Reviewed by Michael Catanzaro.
2640
2641         Add a command line option to enable intelligent tracking prevention to MiniBrowser and tests cases to check the
2642         new API.
2643
2644         * MiniBrowser/gtk/main.c:
2645         (main):
2646         * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:
2647         (serverCallback):
2648         (testWebsiteDataConfiguration):
2649         (testWebsiteDataEphemeral):
2650         (testWebsiteDataResourceLoadStats):
2651         (beforeAll):
2652         * TestWebKitAPI/glib/WebKitGLib/TestMain.h:
2653         (Test::Test):
2654         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
2655         (directoryChangedCallback):
2656         (WebViewTest::waitUntilFileExists):
2657         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
2658
2659 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
2660
2661         [GTK][WPE] All resource load statistics tests added in r212183 crash in GTK bots, timeout in GTK and WPE bots since r219049
2662         https://bugs.webkit.org/show_bug.cgi?id=168171
2663
2664         Reviewed by Chris Dumez.
2665
2666         Implement all resource load statistics functions in TestController using the C API. Also enable the FileMonitor
2667         unit test. This test requires a platform implementation of Util::run(), so I've added UtilitiesGLib.cpp with an
2668         iplementation common to glib based ports using WTF RunLoop abstraction.
2669
2670         * TestWebKitAPI/PlatformGTK.cmake:
2671         * TestWebKitAPI/PlatformWPE.cmake:
2672         * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
2673         * TestWebKitAPI/glib/UtilitiesGLib.cpp: Copied from Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h.
2674         (TestWebKitAPI::Util::run):
2675         (TestWebKitAPI::Util::spinRunLoop):
2676         (TestWebKitAPI::Util::sleep):
2677         * TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:
2678         * TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp:
2679         * WebKitTestRunner/TestController.cpp:
2680         (WTR::TestController::platformAdjustContext):
2681         (WTR::TestController::setStatisticsLastSeen):
2682         (WTR::TestController::setStatisticsPrevalentResource):
2683         (WTR::ResourceStatisticsCallbackContext::ResourceStatisticsCallbackContext):
2684         (WTR::resourceStatisticsCallback):
2685         (WTR::TestController::isStatisticsPrevalentResource):
2686         (WTR::TestController::setStatisticsHasHadUserInteraction):
2687         (WTR::TestController::isStatisticsHasHadUserInteraction):
2688         (WTR::TestController::setStatisticsGrandfathered):
2689         (WTR::TestController::isStatisticsGrandfathered):
2690         (WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
2691         (WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
2692         (WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):
2693         (WTR::TestController::setStatisticsTimeToLiveUserInteraction):
2694         (WTR::TestController::setStatisticsTimeToLiveCookiePartitionFree):
2695         (WTR::TestController::statisticsProcessStatisticsAndDataRecords):
2696         (WTR::TestController::statisticsUpdateCookiePartitioning):
2697         (WTR::TestController::statisticsSetShouldPartitionCookiesForHost):
2698         (WTR::TestController::statisticsSubmitTelemetry):
2699         (WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
2700         (WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
2701         (WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
2702         (WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval):
2703         (WTR::TestController::setStatisticsGrandfatheringTime):
2704         (WTR::TestController::setStatisticsMaxStatisticsEntries):
2705         (WTR::TestController::setStatisticsPruneEntriesDownTo):
2706         (WTR::TestController::statisticsClearInMemoryAndPersistentStore):
2707         (WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
2708         (WTR::TestController::statisticsClearThroughWebsiteDataRemovalCallback):
2709         (WTR::TestController::statisticsClearThroughWebsiteDataRemoval):
2710         (WTR::TestController::statisticsResetToConsistentState):
2711         * WebKitTestRunner/TestController.h:
2712
2713 2017-10-05  Jer Noble  <jer.noble@apple.com>
2714
2715         [Cocoa] Enable ENABLE_ENCRYPTED_MEDIA build-time setting
2716         https://bugs.webkit.org/show_bug.cgi?id=177261
2717
2718         Reviewed by Eric Carlson.
2719
2720         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
2721
2722 2017-10-05  Alex Christensen  <achristensen@webkit.org>
2723
2724         Add ObjC equivalent of WKPageNavigationClient.didChangeBackForwardList
2725         https://bugs.webkit.org/show_bug.cgi?id=177966
2726         <rdar://problem/22387135>
2727
2728         Reviewed by Tim Horton.
2729
2730         * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
2731         (-[ListItemDelegate _webView:backForwardListItemAdded:removed:]):
2732         (-[ListItemDelegate webView:didFinishNavigation:]):
2733         (TEST):
2734
2735 2017-10-04  Megan Gardner  <megan_gardner@apple.com>
2736
2737         check-webkit-style erroneously requires a space between the carrot and brace in obj-c blocks.
2738         https://bugs.webkit.org/show_bug.cgi?id=177897
2739
2740         Reviewed by Dan Bernstein and Jonathan Bedard.
2741
2742         Remove the check for a space between ^ and {, 
2743         as this is valid and expected Obj-C. Now check to make sure there is
2744         no space at all between ^ and {, and also that there is a space between
2745         the end of an argument list and the {.
2746
2747         * Scripts/webkitpy/style/checkers/cpp.py:
2748         (regex_for_lambdas_and_blocks):
2749
2750 2017-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>
2751
2752         Unreviewed. Run WebKit2 C API tests in GTK+ bots again after the last WebKit2 -> WebKit rename.
2753
2754         * Scripts/run-gtk-tests:
2755         (TestRunner):
2756         (TestRunner._run_test):
2757
2758 2017-10-05  Darin Adler  <darin@apple.com>
2759
2760         Remove additional WebKitSystemInterface remnants
2761         https://bugs.webkit.org/show_bug.cgi?id=177948
2762
2763         Reviewed by Andy Estes.
2764
2765         * DumpRenderTree/PlatformMac.cmake: Removed code to link the
2766         WebKitSystemInterface library. Left in code that points to
2767         the WebKitLibraries directory, but maybe that can be removed by
2768         someone who is more certain it's no longer needed.
2769
2770         * Scripts/copy-webkitlibraries-to-product-directory: Removed code
2771         to copy and delete WebKitSystemInterface libraries and headers.
2772
2773         * WebKitTestRunner/PlatformMac.cmake: Removed code to link the
2774         WebKitSystemInterface library. Left in code that points to
2775         the WebKitLibraries directory, but maybe that can be removed by
2776         someone who is more certain it's no longer needed.
2777
2778 2017-10-05  Saam Barati  <sbarati@apple.com>
2779
2780         Unreviewed. Try to make debug type profiler tests stop timing out.
2781
2782         * Scripts/run-jsc-stress-tests:
2783
2784 2017-10-03  Frederic Wang  <fwang@igalia.com>
2785
2786         Remove Brotli from Source/ThirdParty
2787         https://bugs.webkit.org/show_bug.cgi?id=177804
2788
2789         Reviewed by Michael Catanzaro.
2790
2791         * gtk/jhbuild.modules: Build brotli 1.0.1 from the official github repository.
2792         * Scripts/webkitpy/style/checker.py: Remove brotli.
2793
2794 2017-10-04  Alex Christensen  <achristensen@webkit.org>
2795
2796         Stop linking with WebKitSystemInterface
2797         https://bugs.webkit.org/show_bug.cgi?id=177915
2798
2799         Reviewed by Antti Koivisto.
2800
2801         * DumpRenderTree/mac/Configurations/Base.xcconfig:
2802         * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
2803         * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
2804         * DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
2805         * WebKitTestRunner/Configurations/Base.xcconfig:
2806         * WebKitTestRunner/Configurations/DebugRelease.xcconfig:
2807         * WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
2808         * WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
2809         * WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
2810
2811 2017-10-04  Alex Christensen  <achristensen@webkit.org>
2812
2813         Remove unnecessary includes of WebKitSystemInterface on Cocoa platforms
2814         https://bugs.webkit.org/show_bug.cgi?id=177912
2815
2816         Reviewed by Saam Barati.
2817
2818         * DumpRenderTree/mac/DumpRenderTree.mm:
2819
2820 2017-10-04  Megan Gardner  <megan_gardner@apple.com>
2821
2822         Break out new touch debugging code into seperate file
2823         https://bugs.webkit.org/show_bug.cgi?id=177796
2824
2825         Reviewed by Simon Fraser.
2826
2827         Encapsulate the new debug touch code into it's own file.
2828         This allows for cleaner code and a better way to show the touches
2829         in a completely separate window, which should also be in screen
2830         coordinates, and not subject to any transforms that get put on the
2831         WebViews.
2832
2833         * TestRunnerShared/spi/UIKitTestSPI.h:
2834         * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
2835         * WebKitTestRunner/ios/HIDDebugTouchWindow.h: Added.
2836         * WebKitTestRunner/ios/HIDDebugTouchWindow.mm: Added.
2837         (+[HIDDebugTouchWindow sharedHIDDebugTouchWindow]):
2838         (-[HIDDebugTouchWindow init]):
2839         (-[HIDDebugTouchWindow dealloc]):
2840         (-[HIDDebugTouchWindow updateDebugIndicatorForTouch:withPointInWindowCoordinates:isTouching:]):
2841         (-[HIDDebugTouchWindow initDebugViewsIfNeeded]):
2842         * WebKitTestRunner/ios/HIDEventGenerator.h:
2843         * WebKitTestRunner/ios/HIDEventGenerator.mm:
2844         (-[HIDEventGenerator init]):
2845         (-[HIDEventGenerator _createIOHIDEventWithInfo:]):
2846         (-[HIDEventGenerator _createIOHIDEventType:]):
2847         (-[HIDEventGenerator _updateTouchPoints:count:]):
2848         (-[HIDEventGenerator touchDownAtPoints:touchCount:]):
2849         (-[HIDEventGenerator touchDown:touchCount:]):
2850         (-[HIDEventGenerator liftUpAtPoints:touchCount:]):
2851         (-[HIDEventGenerator liftUp:touchCount:]):
2852         (-[HIDEventGenerator moveToPoints:touchCount:duration:]):
2853         (-[HIDEventGenerator initDebugViewsIfNeeded]): Deleted.
2854         (-[HIDEventGenerator updateDebugIndicatorForTouch:withPoint:isTouching:]): Deleted.
2855         * WebKitTestRunner/ios/TestControllerIOS.mm:
2856         (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
2857
2858 2017-10-04  JF Bastien  <jfbastien@apple.com>
2859
2860         WTF: Update std::expected to match current proposal
2861         https://bugs.webkit.org/show_bug.cgi?id=177881
2862
2863         Reviewed by Mark Lam.
2864
2865         The proposal is likely to be in C++20 and I've been asked to help co-champion
2866         it. I'm therefore updating our implementation to more closely match the current
2867         proposal, and to make sure it'll work for us if standardized.
2868
2869          - Rename UnexpectedType to Unexpected to match the proposal.
2870          - Remove relational operators, only equality / inequality remains.
2871          - Fix minor type signatures.
2872          - Add UnexpectedType typedef.
2873          - Uncomment rebind implementation.
2874          - Add in-place construction tag, as well as explicit error construction tag.
2875          - Add template unexpected constructor.
2876          - Note that make_unexpected isn't in the proposal anymore, but we keep it because we don't have C++17 deduction guides.
2877          - Remove hashing, which isn't in the proposal anymore.
2878
2879         * TestWebKitAPI/Tests/WTF/Expected.cpp:
2880         (WTF::operator<<):
2881         (TestWebKitAPI::TEST):
2882
2883 2017-10-04  Lucas Forschler  <lforschler@apple.com>
2884
2885         https://bugs.webkit.org/show_bug.cgi?id=177888
2886         WebKitArchiveSupport - add API Gateway to source control
2887         This is a swagger configuration export via AWS API Gateway console.
2888
2889         Rubber-stamped by Alexey Proskuryakov.
2890
2891         * WebKitArchiveSupport/AWS-APIGateway: Added.
2892         * WebKitArchiveSupport/AWS-APIGateway/stage-v2.json: Added.
2893
2894 2017-10-04  Mark Lam  <mark.lam@apple.com>
2895
2896         Add support for using Probe DFG OSR Exit behind a runtime flag.
2897         https://bugs.webkit.org/show_bug.cgi?id=177844
2898         <rdar://problem/34801425>
2899
2900         Reviewed by Saam Barati.
2901
2902         Enable --useProbeOSrExit=true for dfg-eager and ftl-no-cjit-validate-sampling-profiler
2903         test configurations.
2904
2905         * Scripts/run-jsc-stress-tests:
2906
2907 2017-10-04  Jonathan Bedard  <jbedard@apple.com>
2908
2909         webkitpy.tool.steps.steps_unittest.StepsTest.test_runtests_api is flakey
2910         https://bugs.webkit.org/show_bug.cgi?id=177751
2911         <rdar://problem/34769470>
2912
2913         Reviewed by Daniel Bates.
2914
2915         Port._build_path() calls Tools/Scripts/webkit-build-directory and caches this
2916         result. When capturing output from the MockExecutive, the first invocation of
2917         Port._build_path() will log the running of Tools/Scripts/webkit-build-directory
2918         but subsequent invocations will not.
2919
2920         * Scripts/webkitpy/tool/steps/steps_unittest.py:
2921         (StepsTest):
2922         (StepsTest.setUp): Cache the build path before running tests.
2923
2924 2017-10-04  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2925
2926         [JHBuild][GTK][WKE] Circular dependency between harfbuzz and freetype6
2927         https://bugs.webkit.org/show_bug.cgi?id=177865
2928
2929         Reviewed by Michael Catanzaro.
2930
2931         Build freetype6 without harfbuzz support.
2932         This seems to be what distros like Fedora, Debian or OpenEmbedded do.
2933         Also explicitly enable support for freetype and fontconfig on harfbuzz.
2934
2935         * gtk/jhbuild.modules: Enable also support for icu.
2936         * wpe/jhbuild.modules:
2937
2938 2017-10-04  Yusuke Suzuki  <utatane.tea@gmail.com>
2939
2940         [Test262] Update Test262 to Oct 4 version
2941         https://bugs.webkit.org/show_bug.cgi?id=177859
2942
2943         Reviewed by Sam Weinig.
2944
2945         * Scripts/import-test262-tests:
2946
2947 2017-10-04  Ryosuke Niwa  <rniwa@webkit.org>
2948
2949         Use blob URL when pasting RTFD instead of overriding DocumentLoader
2950         https://bugs.webkit.org/show_bug.cgi?id=177801
2951         <rdar://problem/34542270>
2952
2953         Reviewed by Wenson Hsieh.
2954
2955         Added a regression test for an assertion failure when pasting an empty RTFD as well as a test for pasting
2956         RTFD with an image, which should result in an image element with a blob URL.
2957
2958         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2959         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
2960         * TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:
2961         * TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html:
2962
2963 2017-10-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2964
2965         [GLib] Let WebCore know of low power situations
2966         https://bugs.webkit.org/show_bug.cgi?id=177810
2967
2968         Reviewed by Carlos Garcia Campos.
2969
2970         * gtk/install-dependencies: add upower-glib dev packages for Debian, Arch and Fedora.
2971
2972 2017-10-03  Saam Barati  <sbarati@apple.com>
2973
2974         Implement polymorphic prototypes
2975         https://bugs.webkit.org/show_bug.cgi?id=176391
2976
2977         Reviewed by Filip Pizlo.
2978
2979         * Scripts/run-jsc-stress-tests:
2980
2981 2017-10-03  Myles C. Maxfield  <mmaxfield@apple.com> 
2982
2983         Create a SPIR-V assembler 
2984         https://bugs.webkit.org/show_bug.cgi?id=177726 
2985
2986         Reviewed by Filip Pizlo. 
2987
2988         Khronos has released a json file containing every SPIR-V opcode and operand at 
2989         https://github.com/KhronosGroup/SPIRV-Headers/blob/master/include/spirv/1.2/spirv.core.grammar.json 
2990         This patch creates a function which loads this file (via the fetch API), parses it, and creates
2991         an object which holds two things: 
2992         - For each opcode, a class which accepts the appropriate operands 
2993         - For each enum type, an object which holds each enum value 
2994         The constructor for each opcode is smart enough to do some basic type-checking of the argument, 
2995         according to the types listed in Khronos's json file. 
2996
2997         This patch also includes an example .html file which outputs a dummy SPIR-V program, 
2998         which happens to be compatible with the SPIR-V demo at 
2999         https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.cpp 
3000         If you modify this demo to use the generated SPIR-V program, you can see the result in 
3001         action.
3002
3003         This patch also commits a copy of Khronos's json file mentioned above. This isn't the first 
3004         Khronos file we've committed into our repository with this license, so there shouldn't be any 
3005         problems there. 
3006
3007         * WebGPUShadingLanguageRI/SPIR-V.js: Added. 
3008         (SPIRV.): 
3009         (SPIRVAssembler): 
3010         (SPIRVAssembler.prototype.append): 
3011         (SPIRVAssembler.prototype.get size): 
3012         (SPIRVAssembler.prototype.get storage): 
3013         (SPIRVAssembler.prototype.get result): 
3014         * WebGPUShadingLanguageRI/SPIRV.html: Added. 
3015         * WebGPUShadingLanguageRI/spirv.core.grammar.json: Added. 
3016
3017 2017-10-03  Chris Dumez  <cdumez@apple.com>
3018
3019         SharedStringHashStore should support removing hashes
3020         https://bugs.webkit.org/show_bug.cgi?id=177770
3021
3022         Reviewed by Alex Christensen.
3023
3024         Add API test coverage.
3025
3026         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3027         * TestWebKitAPI/Tests/WebKitCocoa/VisitedLinkStore.mm: Added.
3028         (TestWebKitAPI::TEST):
3029
3030 2017-10-03  Dewei Zhu  <dewei_zhu@apple.com>
3031
3032         Fix missing import for BenchmarkRunner.
3033         https://bugs.webkit.org/show_bug.cgi?id=177842
3034
3035         Reviewed by Ryosuke Niwa.
3036
3037         'show_results' requires BenchmarkRunner.
3038
3039         * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
3040
3041 2017-10-03  Olivier Blin  <olivier.blin@softathome.com>
3042
3043         [WPE] Bump deps to add support for xdg-shell-unstable-v6 protocol
3044         https://bugs.webkit.org/show_bug.cgi?id=177820
3045
3046         Reviewed by Žan Doberšek.
3047
3048         gnome-shell does not advertize the xdg-shell protocol anymore, but xdg-shell-unstable-v6 instead.
3049         Support has been added in WPEBackend-mesa, we need to update the requirements.
3050         wayland-1.10 is needed for wl_proxy_get_version(), used in the generated headers.
3051
3052         * wpe/jhbuild.modules:
3053
3054 2017-10-03  Alex Christensen  <achristensen@webkit.org>
3055
3056         Add ObjC SPI equivalent to WKPageLoaderClient.willGoToBackForwardListItem
3057         https://bugs.webkit.org/show_bug.cgi?id=177825
3058         <rdar://problem/22387505>
3059
3060         Reviewed by Tim Horton.
3061
3062         * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
3063         (-[BackForwardDelegate _webView:willGoToBackForwardListItem:inPageCache:]):
3064         (-[BackForwardDelegate webView:didFinishNavigation:]):
3065         (TEST):
3066
3067 2017-10-03  Antti Koivisto  <antti@apple.com>
3068
3069         Allow assigning WeakPtr<Derived> to WeakPtr<Base>
3070         https://bugs.webkit.org/show_bug.cgi?id=177817
3071
3072         Reviewed by Geoff Garen.
3073
3074         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
3075         (TestWebKitAPI::Base::weakPtrFactory):
3076         (TestWebKitAPI::TEST):
3077
3078 2017-10-03  Youenn Fablet  <youenn@apple.com>
3079
3080         Remove no longer needed WebRTC build infrastructure
3081         https://bugs.webkit.org/show_bug.cgi?id=177756
3082
3083         Reviewed by Alejandro G. Castro.
3084
3085         * Scripts/generate-libwebrtc-cmake: Removed.
3086         * Scripts/webkitpy/libwebrtc/__init__.py: Removed.
3087         * Scripts/webkitpy/libwebrtc/generate_cmake.py: Removed.
3088
3089 2017-10-03  Joanmarie Diggs  <jdiggs@igalia.com>
3090
3091         AX: [ATK] ARIA drag-and-drop attribute values should be exposed via AtkObject attributes
3092         https://bugs.webkit.org/show_bug.cgi?id=177763
3093
3094         Reviewed by Chris Fleizach.
3095
3096         Implement ariaIsGrabbed() and ariaDropEffects() for ATK.
3097
3098         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
3099         (WTR::AccessibilityUIElement::ariaIsGrabbed const):
3100         (WTR::AccessibilityUIElement::ariaDropEffects const):
3101
3102 2017-10-02  Myles C. Maxfield  <mmaxfield@apple.com>
3103
3104         Make WSL demo compatible with Microsoft Edge
3105         https://bugs.webkit.org/show_bug.cgi?id=177643
3106
3107         Reviewed by Saam Barati.
3108
3109         This patch does two things. The first is it migrates a loop over ParentNode.children to a legacy style loop
3110         because Microsoft Edge throws an exception when trying to use a for...of loop with it. This patch also hides
3111         the compilation behind a setTimeout(0) so there is some indication that something is happening during a
3112         compile.
3113
3114
3115         * Tools/WebGPUShadingLanguageRI/index.html:
3116
3117 2017-10-02  Joanmarie Diggs  <jdiggs@igalia.com>
3118
3119         AX: [ATK] The value of aria-level is not exposed on non-heading roles
3120         https://bugs.webkit.org/show_bug.cgi?id=177775
3121
3122         Reviewed by Chris Fleizach.
3123
3124         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
3125         (WTR::AccessibilityUIElement::hierarchicalLevel const):
3126
3127 2017-10-02  Geoffrey Garen  <ggaren@apple.com>
3128
3129         WeakPtr should have a move constructor
3130         https://bugs.webkit.org/show_bug.cgi?id=177789
3131
3132         Reviewed by Chris Dumez.
3133
3134         Chris made me write an API test. It wasn't that painful.
3135
3136         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
3137         (TestWebKitAPI::TEST):
3138
3139 2017-10-02  Filip Pizlo  <fpizlo@apple.com>
3140
3141         WSL ^ should be *
3142         https://bugs.webkit.org/show_bug.cgi?id=177705
3143
3144         Rubber stamped by Keith Miller.
3145         
3146         When I first wrote the prototype, I thought it would be cool to use ^ for pointers. Nobody agrees. I've
3147         gotten so much feedback to use *. This changes pointers to use *.
3148
3149         * WebGPUShadingLanguageRI/DereferenceExpression.js:
3150         (DereferenceExpression.prototype.toString):
3151         (DereferenceExpression):
3152         * WebGPUShadingLanguageRI/Intrinsics.js:
3153         (Intrinsics):
3154         * WebGPUShadingLanguageRI/Parse.js:
3155         (parseType):
3156         (parsePossiblePrefix):
3157         * WebGPUShadingLanguageRI/PtrType.js:
3158         (PtrType.prototype.toString):
3159         (PtrType):
3160         * WebGPUShadingLanguageRI/StandardLibrary.js:
3161         * WebGPUShadingLanguageRI/Test.js:
3162         (tests.simpleDereference):
3163         (tests.dereferenceStore):
3164         (tests.simpleMakePtr):
3165         (tests.loadNull):
3166         (tests.storeNull):
3167         (tests.returnNull):
3168         (tests.dereferenceDefaultNull):
3169         (tests.defaultInitializedNull):
3170         (tests.passNullToPtrMonomorphic):
3171         (tests.passNullToPtrPolymorphic):
3172         (tests.passNullAndNotNull):
3173         (tests.passNullAndNotNullFullPoly):
3174         (tests.passNullAndNotNullFullPolyReverse):
3175         (tests.chainGeneric):
3176         (tests.chainStruct):
3177         (tests.chainStructNewlyValid):
3178         (tests.chainStructDevice):
3179         (tests.paramChainStructDevice):
3180         (tests.simpleProtocolExtends):
3181         (tests.protocolExtendsTwo):
3182         (tests.overrideSubscriptStruct):
3183         (tests.overrideSubscriptStructAndDoStores):
3184         (tests.overrideSubscriptStructAndUsePointers):
3185         (tests.overrideSubscriptStructAndUsePointersIncorrectly):
3186         (tests.makeArrayRefFromPointer):
3187         (tests.nonArrayRefArrayLengthFail):
3188         (tests.constexprIsNotLValuePtr):
3189         (tests.genericAccessors):
3190         (tests.nestedSubscriptLValueEmulationSimple):
3191         (tests.nestedSubscriptLValueEmulationGeneric):
3192         (tests.shaderTypes):
3193         (tests.enumPtrBase):
3194         (tests.mutuallyRecursiveStructWithPointersBroken):
3195         (tests.mutuallyRecursiveStructWithPointers):
3196         (tests.linkedList):
3197         (tests.pointerToPointer):
3198         (tests.pointerGetter):
3199         (tests.operatorCastWithTypeVariableInferredFromReturnType):
3200         (tests.loneSetterPointer):
3201         (tests.anderWithNothingWrong):
3202         (tests.anderWithWrongNumberOfArguments):
3203         (tests.anderDoesntReturnPointer):
3204         (tests.anderDoesntTakeReference):
3205         (tests.anderWithArrayRef):
3206         (tests.pointerIndexGetter):
3207         (tests.loneIndexSetterPointer):
3208         (tests.indexAnderWithNothingWrong):
3209         (tests.indexAnderWithWrongNumberOfArguments):
3210         (tests.indexAnderDoesntReturnPointer):
3211         (tests.indexAnderDoesntTakeReference):
3212         (tests.indexAnderWithArrayRef):
3213         (tests.devicePtrPtr):
3214         (tests.threadgroupPtrPtr):
3215         (tests.constantPtrPtr):
3216         (tests.pointerIndexGetterInProtocol):
3217         (tests.loneIndexSetterPointerInProtocol):
3218         (tests.indexAnderWithNothingWrongInProtocol):
3219         (tests.indexAnderWithWrongNumberOfArgumentsInProtocol):
3220         (tests.indexAnderDoesntReturnPointerInProtocol):
3221         (tests.indexAnderDoesntTakeReferenceInProtocol):
3222         (tests.indexAnderWithArrayRefInProtocol):
3223         (tests.andReturnedArrayRef):
3224
3225 2017-10-02  Filip Pizlo  <fpizlo@apple.com>
3226
3227         WSL should be fine with &foo()[i] if foo() returns a []
3228         https://bugs.webkit.org/show_bug.cgi?id=177704
3229
3230         Reviewed by Saam Barati.
3231         
3232         Previously, we'd determine if a property access expression (base.field or base[index]) was an lvalue by
3233         asking if its base was an lvalue. This is right in all cases except if the base is of type []. Then, the
3234         property access expression is an lvalue so long as there is a setter or ander.
3235         
3236         This fixes the issue and adds a test.
3237         
3238         Also, this makes error messages in the case that something is not an lvalue a lot better. If something
3239         is not an lvalue because we could not find anders or setters, then we will tell you why we could not
3240         find them.
3241
3242         * WebGPUShadingLanguageRI/Checker.js:
3243         (Checker.prototype.visitAssignment):
3244         (Checker.prototype.visitReadModifyWriteExpression):
3245         (Checker.prototype.visitMakePtrExpression):
3246         (Checker.prototype._finishVisitingPropertyAccess):
3247         * WebGPUShadingLanguageRI/DotExpression.js:
3248         (DotExpression.prototype.get fieldName):
3249         (DotExpression.prototype.get isLValue): Deleted.
3250         (DotExpression.prototype.get addressSpace): Deleted.
3251         * WebGPUShadingLanguageRI/IndexExpression.js:
3252         (IndexExpression.prototype.get index):
3253         (IndexExpression.prototype.get isLValue): Deleted.
3254         (IndexExpression.prototype.get addressSpace): Deleted.
3255         * WebGPUShadingLanguageRI/PropertyAccessExpression.js:
3256         (PropertyAccessExpression):
3257         (PropertyAccessExpression.prototype.get isLValue):
3258         (PropertyAccessExpression.prototype.set isLValue):
3259         * WebGPUShadingLanguageRI/PropertyResolver.js:
3260         (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder.prototype.visitMakeArrayRefExpression):
3261         (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder):
3262         (PropertyResolver.prototype._visitRValuesWithinLValue):
3263         * WebGPUShadingLanguageRI/Test.js:
3264         (tests.storeNullArrayRef):
3265         (tests.andReturnedArrayRef):
3266
3267 2017-10-02  Wenson Hsieh  <wenson_hsieh@apple.com>
3268
3269         Guard iOS webkitGetAsEntry API tests on older iOS versions
3270
3271         Unreviewed test gardening. After r222688, these tests require custom pasteboard data to be enabled by default,
3272         so don't run them against shipping iOS.
3273
3274         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
3275
3276 2017-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
3277
3278         [WPE][GTK] Crash in webkit_web_resource_get_data_finish()
3279         https://bugs.webkit.org/show_bug.cgi?id=177107
3280
3281         Reviewed by Michael Catanzaro.
3282
3283         Add a test case to check we handle errors when webkit_web_resource_get_data() fails.
3284
3285         * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:
3286         (webViewloadChanged):
3287         (testWebResourceGetDataError):
3288         (beforeAll):
3289
3290 2017-10-02  Alex Christensen  <achristensen@webkit.org>
3291
3292         Fix build after r222715
3293         https://bugs.webkit.org/show_bug.cgi?id=177697
3294
3295         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
3296         (TEST):
3297         Use the public API instead of the removed SPI.
3298
3299 2017-10-02  Alex Christensen  <achristensen@webkit.org>
3300
3301         REGRESSION(r214201): WebProcess hangs during policy decisions
3302         https://bugs.webkit.org/show_bug.cgi?id=177590
3303         <rdar://problem/33362929>
3304
3305         Reviewed by Andy Estes.
3306
3307         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3308         * TestWebKitAPI/Tests/WebKitCocoa/JavaScriptDuringNavigation.mm: Added.
3309         (-[JSNavigationDelegate webView:didFinishNavigation:]):
3310         (-[JSNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
3311         (-[JSNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
3312         (-[JSNavigationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3313         (TEST):
3314
3315 2017-10-02  Jonathan Bedard  <jbedard@apple.com>
3316
3317         Log stack-trace for run-webkit-tests when interrupted
3318         https://bugs.webkit.org/show_bug.cgi?id=176393
3319         <rdar://problem/34262310>
3320
3321         Reviewed by Darin Adler.
3322
3323         When run-webkit-tests is stuck, it is difficult to immediately tell
3324         why. Saving a stack-trace when run-webkit-tests is terminated
3325         or stopped with CNTRL-C will make such issues easier to debug.
3326
3327         * Scripts/webkitpy/common/interupt_debugging.py: Added.
3328         (log_stack_trace): Given a Python frame object, log a stack trace to
3329         the provided file.
3330         (log_stack_trace_on_term): Attach a listener to SIGTERM so that a
3331         stack-trace can be logged when a program is terminated.
3332         (log_stack_trace_on_cntrl_c): Attach a listener to SIGINT so that a
3333         stack-trace can be logged when a program is CNTRL-Ced. 
3334         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
3335         (main): Set handlers to log stack trace on interruption.
3336
3337 2017-10-02  Michael Catanzaro  <mcatanzaro@igalia.com>
3338
3339         Remove ENABLE_CSS_REGIONS
3340         https://bugs.webkit.org/show_bug.cgi?id=177689
3341
3342         Reviewed by Darin Adler.
3343
3344         * Scripts/webkitperl/FeatureList.pm:
3345
3346 2017-09-30  Carlos Garcia Campos  <cgarcia@igalia.com>
3347
3348         Unreviewed. Upgrade webkitgtk-test-fonts to version 0.0.7.
3349
3350         This version upgrades liberation fonts to version 2, that has a wider glyph coverage.
3351
3352         * gtk/jhbuild.modules:
3353
3354 2017-09-29  Alex Christensen  <achristensen@webkit.org>
3355
3356         Expose WebPreferences::webGLEnabled through WKPreferences
3357         https://bugs.webkit.org/show_bug.cgi?id=177692
3358         <rdar://problem/24110556>
3359
3360         Reviewed by Andy Estes.
3361
3362         * TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:
3363         (-[AlertSaver alert]):
3364         (-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3365         (TEST):
3366
3367 2017-09-29  Alex Christensen  <achristensen@webkit.org>
3368
3369         Fix WKWebViewConfigurationPrivate after r222663
3370         https://bugs.webkit.org/show_bug.cgi?id=177644
3371
3372         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3373         * TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm: Added.
3374         (TEST):
3375
3376 2017-09-28  Ryosuke Niwa  <rniwa@webkit.org>
3377
3378         Image pasting is not working on tineye.com / gmail.com / GitHub.com due to lack of support for DataTransfer.items
3379         https://bugs.webkit.org/show_bug.cgi?id=170449
3380         <rdar://problem/31432525>
3381
3382         Reviewed by Wenson Hsieh.
3383
3384         Added an API test to paste an image from pasteboard. The test is shared between iOS and macOS.
3385
3386         The tests to paste image files are only enabled on macOS since putting files into pasteboard isn't a thing on iOS.
3387
3388         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3389         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: Added.
3390         (writeImageDataToPasteboard):
3391         (writeBundleFileToPasteboard):
3392         * TestWebKitAPI/Tests/WebKitCocoa/paste-image.html: Added.
3393         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-100px.tiff: Added.
3394         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-200px.png: Added.
3395         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-400px.gif: Added.
3396         * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-600px.jpg: Added.
3397         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Rebaselined the test now that types contain "Files".
3398
3399 2017-09-29  Wenson Hsieh  <wenson_hsieh@apple.com>
3400
3401         [iOS WK2] Implement -[WKContentView hasText] for compatibility with the UITextInput protocol
3402         https://bugs.webkit.org/show_bug.cgi?id=177662
3403         <rdar://problem/33410373>
3404
3405         Reviewed by Tim Horton.
3406
3407         Add EditorState API tests to check that the value of -[WKContentView hasText] is correct when editing both plain
3408         and rich text areas.
3409
3410         * TestWebKitAPI/EditingTestHarness.h:
3411         * TestWebKitAPI/EditingTestHarness.mm:
3412         (-[EditingTestHarness insertParagraph]):
3413         (-[EditingTestHarness insertText:]):
3414         (-[EditingTestHarness insertHTML:]):
3415         (-[EditingTestHarness selectAll]):
3416         (-[EditingTestHarness deleteBackwards]):
3417         * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:
3418
3419         Add versions of EditingTestHarness helpers that don't require us to expect any editor state after executing the
3420         edit command.
3421
3422         (TestWebKitAPI::checkContentViewHasTextWithFailureDescription):
3423         (TestWebKitAPI::TEST):
3424         * TestWebKitAPI/cocoa/TestWKWebView.h:
3425         * TestWebKitAPI/cocoa/TestWKWebView.mm:
3426         (-[TestWKWebView textInputContentView]):
3427
3428 2017-09-29  Charles Turner  <cturner@igalia.com>
3429
3430         Update my status.
3431
3432         Unreviewed.
3433
3434         * Scripts/webkitpy/common/config/contributors.json:
3435
3436 2017-09-28  Commit Queue  <commit-queue@webkit.org>
3437
3438         Unreviewed, rolling out r222639.
3439         https://bugs.webkit.org/show_bug.cgi?id=177630
3440
3441         Breaks AppleWin build (Requested by dolmstead on #webkit).
3442
3443         Reverted changeset:
3444
3445         "[WinCairo][MiniBrowser] Add ca-bundle to display secure
3446         pages."
3447         https://bugs.webkit.org/show_bug.cgi?id=168486
3448         http://trac.webkit.org/changeset/222639
3449
3450 2017-09-28  Joanmarie Diggs  <jdiggs@igalia.com>
3451
3452         AX: [ATK] object:state-changed notifications missing for multiple ARIA attributes
3453         https://bugs.webkit.org/show_bug.cgi?id=177542
3454
3455         Add platform support for the notifications. Also add support for getting the
3456         boolean argument indicating whether the state has been set or unset.
3457
3458         Reviewed by Chris Fleizach.
3459
3460         * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
3461
3462 2017-09-28  Basuke Suzuki  <Basuke.Suzuki@sony.com>
3463
3464         [WinCairo][MiniBrowser] Add ca-bundle to display secure pages.
3465         Copy cacert.pem file into bundle directory.
3466         https://bugs.webkit.org/show_bug.cgi?id=168486
3467
3468         Reviewed by Brent Fulgham.
3469
3470         * MiniBrowser/win/CMakeLists.txt:
3471
3472 2017-09-28  Lucas Forschler  <lforschler@apple.com>
3473
3474         check in AWS Lambda code used for WebKitArchiveSupport
3475         https://bugs.webkit.org/show_bug.cgi?id=177614
3476         
3477         Rubber-stamped by Alexey Proskuryakov.
3478
3479         * WebKitArchiveSupport/lambda: Added.
3480         * WebKitArchiveSupport/lambda/delete-minified-s3-archive-from-dynamodb.py: Added.
3481         (lambda_handler):
3482         * WebKitArchiveSupport/lambda/delete-s3-archive-from-dynamodb.py: Added.
3483         (lambda_handler):
3484         * WebKitArchiveSupport/lambda/register-archive-in-dynamodb.py: Added.
3485         (lambda_handler):
3486         * WebKitArchiveSupport/lambda/register-minified-s3-archive-in-dynamodb.py: Added.
3487         (lambda_handler):
3488
3489 2017-09-28  Jiewen Tan  <jiewen_tan@apple.com>
3490
3491         WeakPtrFactory should allow downcasting
3492         https://bugs.webkit.org/show_bug.cgi?id=177389
3493         <rdar://problem/34604174>
3494
3495         Reviewed by Geoffrey Garen.
3496
3497         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3498         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
3499         (TestWebKitAPI::Base::foo):
3500         (TestWebKitAPI::Base::createWeakPtr):
3501         (TestWebKitAPI::Derived::foo):
3502         (TestWebKitAPI::TEST):
3503
3504 2017-09-28  Megan Gardner  <megan_gardner@apple.com>
3505
3506         Add debug flag to WebKitTestRunner to show where touches are being generated
3507         https://bugs.webkit.org/show_bug.cgi?id=177583
3508
3509         Reviewed by Tim Horton and Wenson Hsieh.
3510
3511         Add a flag, and the ability to paint a dot where the HIDEventGenerator is creating fake touches to
3512         send through UIKit. This will help in debugging touch tests, because it will be easier to see if
3513         one is actually sending the touches at the locations that they expect. This will help differentiate between
3514         problems in the locations of the touches, and other problems that can come up when writing tests.
3515
3516         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
3517         (parse_args):
3518         * Scripts/webkitpy/port/driver.py:
3519         (Driver.cmd_line):
3520         * WebKitTestRunner/Options.cpp:
3521         (WTR::Options::Options):
3522         (WTR::handleOptionShowTouches):
3523         (WTR::OptionsHandler::OptionsHandler):
3524         * WebKitTestRunner/Options.h:
3525         * WebKitTestRunner/TestController.cpp:
3526         (WTR::TestController::initialize):
3527         * WebKitTestRunner/TestController.h:
3528         (WTR::TestController::shouldShowTouches const):
3529         * WebKitTestRunner/TestOptions.h:
3530         * WebKitTestRunner/ios/HIDEventGenerator.h:
3531         * WebKitTestRunner/ios/HIDEventGenerator.mm:
3532         (-[DebugTouchView pointInside:withEvent:]):
3533         (-[HIDEventGenerator setShouldShowTouches:]):
3534         (-[HIDEventGenerator initDebugViews]):
3535         (-[HIDEventGenerator updateDebugUI:withPoint:isTouching:]):
3536         (-[HIDEventGenerator _createIOHIDEventWithInfo:]):
3537         (-[HIDEventGenerator _createIOHIDEventType:]):
3538         (-[HIDEventGenerator _updateTouchPoints:count:]):
3539         (-[HIDEventGenerator touchDownAtPoints:touchCount:]):
3540         (-[HIDEventGenerator liftUpAtPoints:touchCount:]):
3541         (-[HIDEventGenerator moveToPoints:touchCount:duration:]):
3542         (-[HIDEventGenerator markerEventReceived:]):
3543         * WebKitTestRunner/ios/TestControllerIOS.mm:
3544         (WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
3545         * WebKitTestRunner/ios/mainIOS.mm:
3546         (-[WebKitTestRunnerApp _runTestController]):
3547
3548 2017-09-28  Mark Lam  <mark.lam@apple.com>
3549
3550         [Re-landing] Turn on exception scope verification for JSC tests.
3551         https://bugs.webkit.org/show_bug.cgi?id=162351
3552         <rdar://problem/29563911>
3553
3554         Reviewed by Saam Barati.
3555
3556         Update: I'm re-landing this patch now that test262 exception check validation
3557         failures have been fixed in r222617.  testapi still has some validation failures,
3558         but this patch does not affect testapi.
3559
3560         Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in
3561         run-jsc-stress-tests.  This turns on exception scope verification on JSC test
3562         runs (which currently does not include testapi).
3563
3564         Some stats on time to run JSC stress and mozilla tests:
3565         1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s
3566         2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s
3567         3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s
3568         4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s
3569
3570         The stats shows that (2) and (3) has effectively no time difference.  Hence, the
3571         cost of enabling --validateExceptionChecks=true is not significant.
3572
3573         It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about
3574         21% slower than (3).  To avoid making debug test runs a lot slower, we'll leave
3575         --dumpSimulatedThrows=true off.  We can manually add that when we see a regression
3576         and need to debug the issue.  Otherwise, we wont pay the price for it.
3577
3578         * Scripts/run-jsc-stress-tests:
3579
3580 2017-09-27  Alex Christensen  <achristensen@webkit.org>
3581
3582         Add WKContentRuleList notify action type
3583         https://bugs.webkit.org/show_bug.cgi?id=177013
3584         <rdar://problem/31073936>
3585
3586         Reviewed by Darin Adler.
3587
3588         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3589         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
3590         (WebCore::ContentExtensions::operator<<):
3591         (TestWebKitAPI::InMemoryCompiledContentExtension::create):
3592         (TestWebKitAPI::InMemoryCompiledContentExtension::data):
3593         (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension):
3594         (TestWebKitAPI::makeBackend):
3595         (TestWebKitAPI::TEST_F):
3596         (TestWebKitAPI::actionsEqual):
3597         (TestWebKitAPI::sequenceInstances):
3598         (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted.
3599         (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted.
3600         * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added.
3601         (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
3602         (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):
3603         (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]):
3604         (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
3605         (makeWarnContentRuleList):