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