[watchOS] Remove unused Proximity Networking code
[WebKit-https.git] / Tools / ChangeLog-2018-09-11
1 2018-09-11  Jiewen Tan  <jiewen_tan@apple.com>
2
3         [WebAuthN] Polish AuthenticatorManager and rename it to AuthenticatorCoordinator
4         https://bugs.webkit.org/show_bug.cgi?id=189277
5         <rdar://problem/44115936>
6
7         Reviewed by Chris Dumez.
8
9         * TestWebKitAPI/Tests/ios/LocalAuthenticator.mm:
10         (TestWebKitAPI::TEST):
11
12 2018-09-10  Michael Saboff  <msaboff@apple.com>
13
14         Test262 failure with Named Capture Groups - using a reference before the group is defined
15         https://bugs.webkit.org/show_bug.cgi?id=189407
16
17         Reviewed by Alex Christensen.
18
19         Updated test.
20
21         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
22         (TestWebKitAPI::TEST_F):
23
24 2018-09-10  Thomas Denney  <tdenney@apple.com>
25
26         [WHLSL] Inlining should be optional
27         https://bugs.webkit.org/show_bug.cgi?id=188641
28
29         Reviewed by Myles C. Maxfield.
30
31         Inlining functions is now optional, and disabled by default. This patch
32         additionally resolves https://bugs.webkit.org/show_bug.cgi?id=189326 as
33         the code for calling functions was completely rewritten.
34
35         * WebGPUShadingLanguageRI/All.js: Add LateCheckAndLayoutBuffers.js
36         * WebGPUShadingLanguageRI/CallFunction.js:
37         (callFunction): Remove dependency on inlining.
38         * WebGPUShadingLanguageRI/Evaluator.js:
39         (Evaluator.prototype._snapshot): Allow null srcPtr in the case of void
40         returns from functions.
41         (Evaluator.prototype._evaluateArguments): Abstract out argument
42         evaluation, ensuring that the order is right-to-left for
43         FunctionLikeBlocks (i.e. inlined functions) and regular calls.
44         (Evaluator.prototype._evaluateFunction): Abstracted out function body
45         evaluation for inlined and non-inlined functions.
46         (Evaluator.prototype.visitFunctionLikeBlock): Ditto.
47         (Evaluator.prototype.visitCallExpression): Ditto.
48         * WebGPUShadingLanguageRI/Inline.js:
49         (_inlineFunction): Moved logic that is needed regardless of inlining
50         into LateCheckAndLayoutBuffers.js
51         (resolveInlinedFunction): Deleted.
52         * WebGPUShadingLanguageRI/LateCheckAndLayoutBuffers.js: Moved logic for
53         late checking.
54         * WebGPUShadingLanguageRI/Prepare.js: Make inlining optional and off by
55         default.
56         * WebGPUShadingLanguageRI/SPIRV.html: Update include.
57         * WebGPUShadingLanguageRI/Test.html: Ditto.
58         * WebGPUShadingLanguageRI/Test.js: Right-to-left argument evaluation,
59         and inlining tests.
60         * WebGPUShadingLanguageRI/index.html: Update include.
61
62 2018-09-10  Wenson Hsieh  <wenson_hsieh@apple.com>
63
64         [iOS] Unable to change the value of select elements while preserving focus state
65         https://bugs.webkit.org/show_bug.cgi?id=189475
66         <rdar://problem/41125764>
67
68         Reviewed by Tim Horton.
69
70         Adds a pair of new API tests to verify that (1) resigning first responder while preserving focus does not blur
71         the focused element, and (2) if another element is focused and presents an input view while preserving focus,
72         then we reset preservation state and allow first responder resignation to blur the focused element.
73
74         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
75         * TestWebKitAPI/Tests/ios/FocusPreservationTests.mm: Added.
76         (webViewForTestingFocusPreservation):
77         (TestWebKitAPI::TEST):
78         * TestWebKitAPI/cocoa/TestWKWebView.h:
79         * TestWebKitAPI/cocoa/TestWKWebView.mm:
80         (-[TestWKWebView textInputContentView]):
81         * TestWebKitAPI/ios/UIKitSPI.h:
82
83 2018-09-10  Thomas Denney  <tdenney@apple.com>
84
85         [WHLSL] Add the test shader type
86         https://bugs.webkit.org/show_bug.cgi?id=189484
87
88         Reviewed by Myles C. Maxfield.
89
90         Tests are now precedeed by the 'test' keyword so that they are treated
91         as entry points, in the same way as vertex and fragment shaders.
92
93         * WebGPUShadingLanguageRI/LateChecker.js:
94         (LateChecker.prototype._checkShaderType): Allow tests to return any
95         type, as some currently return void/pointer types.
96         * WebGPUShadingLanguageRI/Parse.js:
97         (parseFuncDecl): Add the test keyword.
98         * WebGPUShadingLanguageRI/Test.js: Prepend 'test' to every single test.
99
100 2018-09-10  Don Olmstead  <don.olmstead@sony.com>
101
102         CBOR coders should only be compiled if WebAuthN is enabled
103         https://bugs.webkit.org/show_bug.cgi?id=189425
104
105         Reviewed by Jiewen Tan.
106
107         Just places ENABLE(WEB_AUTHN) guards around CBOR test files.
108
109         * TestWebKitAPI/Tests/WebCore/CBORReaderTest.cpp:
110         * TestWebKitAPI/Tests/WebCore/CBORValueTest.cpp:
111         * TestWebKitAPI/Tests/WebCore/CBORWriterTest.cpp:
112
113 2018-09-10  Daniel Bates  <dabates@apple.com>
114
115         [iOS] Make WKWebView become the first responder to support testing key presses to non-editable elements
116         https://bugs.webkit.org/show_bug.cgi?id=189432
117
118         Reviewed by Simon Fraser.
119
120         Make the WKWebView become the first responder immediately without the need to focus an editable
121         element. This allows us to test that DOM keyboard events are dispatched to non-editable elements.
122
123         * WebKitTestRunner/ios/PlatformWebViewIOS.mm:
124         (WTR::PlatformWebView::PlatformWebView):
125
126 2018-09-10  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
127
128         [WTF] Add Markable<T, Traits>
129         https://bugs.webkit.org/show_bug.cgi?id=189231
130
131         Reviewed by Sam Weinig.
132
133         Add tests for Markable.
134
135         * TestWebKitAPI/CMakeLists.txt:
136         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
137         * TestWebKitAPI/Tests/WTF/Markable.cpp: Added.
138         (TestWebKitAPI::TEST):
139
140 2018-09-10  Simon Fraser  <simon.fraser@apple.com>
141
142         Before tracking Document leaks, clear all caches
143         https://bugs.webkit.org/show_bug.cgi?id=189459
144
145         Reviewed by Sam Weinig.
146
147         It's not enough to clear the page and memory caches; font caches can reference Documents (for SVG fonts),
148         so just call WebCore::releaseMemory(), which empties caches including the page and memory caches, and
149         does the GC that we need to happen.
150
151         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
152         (WTR::InjectedBundle::didReceiveMessageToPage):
153
154 2018-09-07  Matt Rajca  <mrajca@apple.com>
155
156         https://bugs.webkit.org/show_bug.cgi?id=189433
157         <rdar://problem/44186498> Touch Bar displays an active PIP button for audio elements (and it doesn't do anything)
158
159         Reviewed by Eric Carlson.
160
161         An API test has been added that checks the value of the canTogglePictureInPicture and ensures it
162         is NO when audio elements are playing.
163
164         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
165         * TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.html:
166         * TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
167         (TestWebKitAPI::TEST):
168         * TestWebKitAPI/Tests/WebKitCocoa/audio-with-controls.html: Added.
169
170 2018-09-09  Commit Queue  <commit-queue@webkit.org>
171
172         Unreviewed, rolling out r235832.
173         https://bugs.webkit.org/show_bug.cgi?id=189464
174
175         Broke WebKit2 tests (Requested by ap on #webkit).
176
177         Reverted changeset:
178
179         "[Cocoa] Turn on ARC for WebKitTestRunner"
180         https://bugs.webkit.org/show_bug.cgi?id=189228
181         https://trac.webkit.org/changeset/235832
182
183 2018-09-08  Simon Fraser  <simon.fraser@apple.com>
184
185         accessibility/notification-listeners.html abandons a document
186         https://bugs.webkit.org/show_bug.cgi?id=188724
187
188         Reviewed by Darin Adler.
189         
190         AccessibilityControllerMac leaked m_globalNotificationHandler, which leaks a JSValueProtect'd function,
191         which leaks a Document. Fix by using adoptNS().
192
193         * WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:
194         (WTR::AccessibilityController::addNotificationListener):
195
196 2018-09-08  Wenson Hsieh  <wenson_hsieh@apple.com>
197
198         [Cocoa] Use more bridging casts in TestWebKitAPI
199         https://bugs.webkit.org/show_bug.cgi?id=189457
200
201         Reviewed by Darin Adler.
202
203         Adds some bridging casts to TestWebKitAPI, when converting betweeen several common types of objects, including:
204         CFStringRef <=> NSString
205         CFURLRef <=> NSURL
206         WKPreferences <=> WKPreferencesRef
207         CFDataRef <=> NSData
208
209         * TestWebKitAPI/Tests/WebCore/cocoa/SharedBuffer.mm:
210         (TestWebKitAPI::TEST_F):
211         * TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:
212         (readHTMLFromPasteboard):
213         (createWebViewWithCustomPasteboardDataEnabled):
214         * TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm:
215         (createWebViewWithCustomPasteboardDataEnabled):
216         * TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
217         (TEST):
218         * TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:
219         (writeHTMLToPasteboard):
220         (createWebViewWithCustomPasteboardDataSetting):
221         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
222         (TEST):
223         * TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:
224         (TestWebKitAPI::setUpWebView):
225         (TestWebKitAPI::TEST):
226         * TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:
227         (writeRTFToPasteboard):
228         (writeRTFDToPasteboard):
229         (createWebViewWithCustomPasteboardDataEnabled):
230         (TEST):
231         * TestWebKitAPI/Tests/WebKitCocoa/PasteWebArchive.mm:
232         (createWebViewWithCustomPasteboardDataEnabled):
233         * TestWebKitAPI/Tests/WebKitCocoa/RestoreSessionStateWithoutNavigation.mm:
234         (TestWebKitAPI::TEST):
235         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
236         (webViewForTestingAttachments):
237         * TestWebKitAPI/Tests/WebKitLegacy/mac/AccessingPastedImage.mm:
238         (writeRTFDToPasteboard):
239         (TestWebKitAPI::TEST):
240         * TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
241         (TestWebKitAPI::TEST):
242         * TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
243         (checkRichTextTypePrecedesPlainTextType):
244         (TestWebKitAPI::TEST):
245         (TestWebKitAPI::setUpTestWebViewForDataTransferItems):
246         * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
247         (TestWebKitAPI::TEST):
248         * TestWebKitAPI/mac/PlatformUtilitiesMac.mm:
249         (TestWebKitAPI::Util::createInjectedBundlePath):
250         (TestWebKitAPI::Util::createURLForResource):
251         (TestWebKitAPI::Util::URLForNonExistentResource):
252         (TestWebKitAPI::Util::MIMETypeForWKURLResponse):
253         * TestWebKitAPI/mac/WebKitAgnosticTest.mm:
254         (TestWebKitAPI::WebKitAgnosticTest::loadURL):
255
256 2018-09-02  Darin Adler  <darin@apple.com>
257
258         [Cocoa] Turn on ARC for WebKitTestRunner
259         https://bugs.webkit.org/show_bug.cgi?id=189228
260
261         Reviewed by Sam Weinig.
262
263         * TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:
264         (+[EventSerializer dictionaryForEvent:relativeToTime:]): Removed autorelease.
265
266         * TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:
267         (-[LayoutTestSpellChecker setResultsFromJSObject:inContext:]): Removed autorelease.
268
269         * WebKitTestRunner/Configurations/Base.xcconfig: Added CLANG_ENABLE_OBJC_ARC.
270
271         * WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:
272         (WTR::AccessibilityController::accessibleElementById): Use a __bridge cast.
273         * WebKitTestRunner/InjectedBundle/ios/AccessibilityTextMarkerIOS.mm:
274         (WTR::AccessibilityTextMarker::isEqual): Ditto.
275
276         * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
277         (WTR::AccessibilityUIElement::AccessibilityUIElement): Removed retain.
278         (WTR::AccessibilityUIElement::~AccessibilityUIElement): Removed release.
279         (WTR::AccessibilityUIElement::removeNotificationListener): Removed release.
280         (WTR::AccessibilityUIElement::lineTextMarkerRangeForTextMarker): Use a __bridge cast.
281         (WTR::AccessibilityUIElement::textMarkerRangeForElement): Ditto.
282         (WTR::AccessibilityUIElement::textMarkerRangeLength): Ditto.
283         (WTR::AccessibilityUIElement::previousTextMarker): Ditto.
284         (WTR::AccessibilityUIElement::nextTextMarker): Ditto.
285         (WTR::AccessibilityUIElement::stringForTextMarkerRange): Ditto.
286         (WTR::AccessibilityUIElement::textMarkerRangeForMarkers): Ditto.
287         (WTR::AccessibilityUIElement::startTextMarkerForTextMarkerRange): Ditto.
288         (WTR::AccessibilityUIElement::endTextMarkerForTextMarkerRange): Ditto.
289         (WTR::AccessibilityUIElement::accessibilityElementForTextMarker): Ditto.
290         (WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): Ditto.
291         (WTR::_CGPathEnumerationIteration): Ditto.
292         (WTR::AccessibilityUIElement::pathDescription const): Ditto.
293
294         * WebKitTestRunner/InjectedBundle/mac/AccessibilityNotificationHandler.mm:
295         (-[AccessibilityNotificationHandler dealloc]): Removed [super dealloc].
296
297         * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
298         (WTR::AccessibilityUIElement::AccessibilityUIElement): Removed retain.
299         (WTR::AccessibilityUIElement::~AccessibilityUIElement): Removed release.
300         (WTR::AccessibilityUIElement::removeNotificationListener): Removed release.
301         (WTR::createJSStringRef): Removed autorelease.
302
303         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
304         (WTR::initializeWebViewConfiguration): Removed release.
305         (WTR::TestController::cocoaPlatformInitialize): Removed release.
306         (WTR::TestController::platformCreateOtherPage): Removed autorelease.
307
308         * WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
309         (-[TestRunnerWKWebView dealloc]): Removed [super dealloc] and also many
310         cases of setting properties to nil that were only present for memory
311         management reasons.
312
313         * WebKitTestRunner/ios/GeneratedTouchesDebugWindow.mm:
314         (-[GeneratedTouchesDebugWindow dealloc]): Removed release and [super dealloc].
315
316         * WebKitTestRunner/ios/HIDEventGenerator.mm:
317         (-[HIDEventGenerator dealloc]): Deleted.
318         (-[HIDEventGenerator _sendMarkerHIDEventWithCompletionBlock:]): Removed
319         Block_copy.
320         (-[HIDEventGenerator markerEventReceived:]): Removed Block_release.
321         (-[HIDEventGenerator interpolatedEvents:]): Removed release.
322         (-[HIDEventGenerator sendEventStream:completionBlock:]): Removed autorelease.
323
324         * WebKitTestRunner/ios/PlatformWebViewIOS.mm:
325         (-[WebKitTestRunnerWindow dealloc]): Removed [super dealloc].
326         (WTR::PlatformWebView::PlatformWebView): Removed release.
327         (WTR::PlatformWebView::~PlatformWebView): Removed release.
328         (WTR::PlatformWebView::addChromeInputField): Removed release.
329         (WTR::PlatformWebView::removeChromeInputField): Removed release.
330
331         * WebKitTestRunner/ios/TestControllerIOS.mm:
332         (WTR::TestController::initializeInjectedBundlePath): Use __bridge cast.
333         (WTR::TestController::initializeTestPluginDirectory): Ditto.
334
335         * WebKitTestRunner/ios/UIScriptControllerIOS.mm:
336         (WTR::UIScriptController::accessibilitySpeakSelectionContent const):
337         Use __bridge cast.
338         (WTR::UIScriptController::enterText): Ditto.
339         (WTR::UIScriptController::selectFormPopoverTitle const): Ditto.
340         (WTR::UIScriptController::textContentType const): Ditto.
341         (WTR::UIScriptController::formInputLabel const): Ditto.
342         (WTR::UIScriptController::scrollingTreeAsText const): Ditto.
343
344         * WebKitTestRunner/mac/PlatformWebViewMac.mm:
345         (WTR::PlatformWebView::~PlatformWebView): Removed release.
346         (WTR::PlatformWebView::addChromeInputField): Removed release.
347
348         * WebKitTestRunner/mac/TestControllerMac.mm:
349         (WTR::allowedFontFamilySet): Removed retain.
350         (WTR::systemHiddenFontFamilySet): Removed retain.
351
352         * WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm:
353         (-[WebKitTestRunnerDraggingInfo draggingDestinationWindow]): Removed retain.
354         (-[WebKitTestRunnerDraggingInfo dealloc]): Deleted.
355
356         * WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:
357         (+[WebKitTestRunnerPasteboard _pasteboardWithName:]): Removed release.
358         (+[WebKitTestRunnerPasteboard releaseLocalPasteboards]): Removed release.
359         Method name is still OK because setting localPasteboards to nil will
360         still release them.
361         (+[NSPasteboard superAlloc]): Added. Helper so that LocalPasteboard can
362         bypass +[NSPasteboard alloc].
363         (+[NSPasteboard superAllocWithZone:]): Ditto.
364         (+[LocalPasteboard alloc]): Call superAlloc instead of class_createInstance.
365         This is a different way to achieve the "bypass NSPasteboard" behavior we need.
366         (+[LocalPasteboard allocWithZone:]): Added. Calls superAllocWithZone: for the
367         same reason as above. Needed because, at least at this time, +[NSObject alloc]
368         calls +allocWithZone: so we have to override both.
369         (-[LocalPasteboard dealloc]): Deleted.
370         (-[LocalPasteboard addTypes:owner:]): Removed release.
371
372         * WebKitTestRunner/mac/WebKitTestRunnerWindow.mm:
373         (-[WebKitTestRunnerWindow dealloc]): Removed [super dealloc].
374
375         * WebKitTestRunner/mac/main.mm:
376         (disableAppNapInUIProcess): Removed retain.
377
378 2018-09-07  Fujii Hironori  <Hironori.Fujii@sony.com>
379
380         [WinCairo][MiniBrowser][WebKit] REGRESSION(r235398): ASSERTION FAILED: !m_client.didReceiveTitleForFrame
381         https://bugs.webkit.org/show_bug.cgi?id=189336
382
383         Reviewed by Alex Christensen.
384
385         WKPageSetPageLoaderClient is deprecated. Replaced it with
386         WKPageSetPageNavigationClient.
387
388         * MiniBrowser/win/WebKitBrowserWindow.cpp:
389         (WebKitBrowserWindow::WebKitBrowserWindow):
390         Call WKPageSetPageNavigationClient instead of WKPageSetPageLoaderClient.
391         (WebKitBrowserWindow::didFinishNavigation):
392         Copied from didReceiveTitleForFrame. Use WKPageCopyTitle to get the title.
393         (WebKitBrowserWindow::didCommitNavigation):
394         Copied from didCommitLoadForFrame. Use WKPageCopyCommittedURL to get the URL.
395         (WebKitBrowserWindow::didReceiveTitleForFrame): Deleted.
396         (WebKitBrowserWindow::didCommitLoadForFrame): Deleted.
397         * MiniBrowser/win/WebKitBrowserWindow.h: Renamed the class methods.
398
399 2018-09-07  Daniel Bates  <dabates@apple.com>
400
401         [iOS] uiController.typeCharacterUsingHardwareKeyboard("`", ...) dispatches DOM key events for ~
402         https://bugs.webkit.org/show_bug.cgi?id=189325
403
404         Reviewed by Wenson Hsieh.
405
406         Fixes an issue where the test infrastructure would incorrectly synthesized a shift key press followed
407         by a ` key press (i.e. type '~') when instructed to simulate typing a grave accent (`). Typing a
408         grave accent does not require holding the shift key.
409
410         * WebKitTestRunner/ios/HIDEventGenerator.mm:
411         (shouldWrapWithShiftKeyEventForCharacter):
412
413 2018-09-07  Frederic Wang  <fwang@igalia.com>
414
415         [CSSOM View] Handle the scrollingElement in Element::scroll(Left/Top/Width/Height/To)
416         https://bugs.webkit.org/show_bug.cgi?id=182230
417
418         Reviewed by Simon Fraser.
419
420         This patch enables CSSOMViewScrollingAPI during test execution.
421
422         * DumpRenderTree/mac/DumpRenderTree.mm:
423         (enableExperimentalFeatures):
424         (resetWebPreferencesToConsistentValues):
425         * DumpRenderTree/win/DumpRenderTree.cpp:
426         (enableExperimentalFeatures):
427         * WebKitTestRunner/TestController.cpp:
428         (WTR::TestController::resetPreferencesToConsistentValues):
429
430 2018-09-07  Simon Fraser  <simon.fraser@apple.com>
431
432         resultsjsonparser needs to handle leak failures
433         https://bugs.webkit.org/show_bug.cgi?id=189430
434
435         Reviewed by Alexey Proskuryakov.
436         
437         Teach resultsjsonparser how to handle LEAK failures, building a FailureDocumentLeak
438         with a list of the leaked URLs.
439
440         * Scripts/webkitpy/common/net/resultsjsonparser.py:
441         (JSONTestResult._failure_types_from_actual_result):
442         * Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
443         (ParsedJSONResultsTest):
444         (test_basic):
445
446 2018-09-07  Aakash Jain  <aakash_jain@apple.com>
447
448         [ews-build] API tests should output result summary in json
449         https://bugs.webkit.org/show_bug.cgi?id=189417
450
451         Reviewed by Lucas Forschler.
452
453         * BuildSlaveSupport/ews-build/steps.py:
454         (RunAPITests): Passed --json-output parameter to run-api-tests.
455         * BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
456
457 2018-09-07  Commit Queue  <commit-queue@webkit.org>
458
459         Unreviewed, rolling out r235784.
460         https://bugs.webkit.org/show_bug.cgi?id=189421
461
462         RunLoopCF does not agree to the fix (Requested by yusukesuzuki
463         on #webkit).
464
465         Reverted changeset:
466
467         "[RunLoopGeneric] OneShotTimer should be inactive when fired."
468         https://bugs.webkit.org/show_bug.cgi?id=189335
469         https://trac.webkit.org/changeset/235784
470
471 2018-09-07  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>
472
473         [RunLoopGeneric] OneShotTimer should be inactive when fired.
474         https://bugs.webkit.org/show_bug.cgi?id=189335
475
476         Reviewed by Yusuke Suzuki.
477
478         * TestWebKitAPI/Tests/WTF/RunLoop.cpp:
479         (TestWebKitAPI::TEST):
480
481         Add test expectations about timer's active state.
482
483         Add a new test to restart a one-shot timer within
484         its fired callback.
485
486 2018-09-06  Zalan Bujtas  <zalan@apple.com>
487
488         [LFC] Add support for min/max-height percentage values.
489         https://bugs.webkit.org/show_bug.cgi?id=189391
490
491         Reviewed by Antti Koivisto.
492
493         * LayoutReloaded/misc/LFC-passing-tests.txt:
494
495 2018-09-06  Simon Fraser  <simon.fraser@apple.com>
496
497         Log when leak detection changes the test result
498         https://bugs.webkit.org/show_bug.cgi?id=189293
499
500         Reviewed by Jon Lee.
501         
502         When you have an "Leak" expectation in TestExpectations, it's confusing to see a test unexpectedly pass,
503         but then show up as an expected fail at the end (because leak detection happens at the end of a shard).
504         So log when leak detection changes a test result.
505
506         * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
507         (LayoutTestRunner._annotate_results_with_additional_failures):
508         * Scripts/webkitpy/layout_tests/models/test_expectations.py:
509         (TestExpectations):
510
511 2018-09-06  Wenson Hsieh  <wenson_hsieh@apple.com>
512
513         [macOS] [WK2] Support changing attributes for selected text (text shadow, underline, strike-through)
514         https://bugs.webkit.org/show_bug.cgi?id=189356
515         <rdar://problem/44185674>
516
517         Reviewed by Tim Horton.
518
519         Adds a new API test to verify that some font attributes (text shadow, underline, and strike-through) can be
520         added and removed using NSFontPanel.
521
522         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
523         * TestWebKitAPI/Tests/mac/FontManagerTests.mm:
524
525         Add the new API test.
526
527         (TestWebKitAPI::TEST):
528         * TestWebKitAPI/cocoa/TestWKWebView.h:
529         * TestWebKitAPI/mac/NSFontPanelTesting.h: Added.
530         * TestWebKitAPI/mac/NSFontPanelTesting.mm: Added.
531
532         Introduce a new file that extends NSFontPanel with some additional testing functionality. This includes the
533         ability to interact with the text shadow toggle button, choose the text shadow blur radius and opacity, and
534         change underline and strike-through styles.
535
536         (findSubviewOfClass):
537         (findMenuItemWithTitle):
538         (-[NSFontPanel fontEffectsBox]):
539
540         NSFontEffectsBox (an internal AppKit class) is the sender in the case where -changeAttributes: is invoked
541         through interaction with the font panel. To simulate this for testing, grab this font effects box and pass it
542         directory to -changeAttributes:.
543
544         (-[NSFontPanel chooseUnderlineMenuItemWithTitle:]):
545         (-[NSFontPanel chooseStrikeThroughMenuItemWithTitle:]):
546
547         The supported values for these menu items are "none" and "single", which adds a single underline or
548         strike-through to selected text. We grab these menu items by asking for the font panel's NSToolbar, and finding
549         the relevant menu items via toolbar item identifiers.
550
551         (-[NSFontPanel _didChangeAttributes]):
552         (-[NSFontPanel shadowBlurSlider]):
553         (-[NSFontPanel shadowOpacitySlider]):
554         (-[NSFontPanel shadowToggleButton]):
555         (-[NSFontPanel toggleShadow]):
556         (-[NSFontPanel shadowOpacity]):
557         (-[NSFontPanel setShadowOpacity:]):
558         (-[NSFontPanel shadowBlur]):
559         (-[NSFontPanel setShadowBlur:]):
560         (-[NSFontPanel _toolbarItemWithIdentifier:]):
561
562 2018-09-06  Simon Fraser  <simon.fraser@apple.com>
563
564         run-webkit-tests prints confusing messages when test expectations list results that are not compatible with the run options
565         https://bugs.webkit.org/show_bug.cgi?id=189219
566
567         Reviewed by Jon Lee.
568         
569         If you call run-webkit-tests without --pixel-tests, and a non-ref test is marked as ImageOnlyFailure,
570         it will be reported as unexpectedly passing. This is more confusing if you run without --world-leaks, yet
571         tests are marked as [ Leak ] in TestExpectations.
572         
573         Fix by filtering out expectations that don't apply given the run options. So without --pixel-tests,
574         a non-ref ImageOnlyFailure becomes a Pass, and without --world-leaks, a Leak becomes a Pass.
575         
576         Add various unit tests to test the various combinations.
577
578         * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
579         (LayoutTestRunner._update_summary_with_result):
580         (LayoutTestRunner._annotate_results_with_additional_failures):
581         * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:
582         (LayoutTestRunnerTests.test_update_summary_with_result):
583         * Scripts/webkitpy/layout_tests/models/test_expectations.py:
584         (TestExpectationsModel.get_expectations_or_pass):
585         (TestExpectationsModel):
586         (TestExpectationsModel.expectations_to_string):
587         (TestExpectationsModel.get_expectations_string):
588         (TestExpectations.filtered_expectations_for_test):
589         (TestExpectations):
590         (TestExpectations.matches_an_expected_result):
591         * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
592         * Scripts/webkitpy/layout_tests/models/test_run_results.py:
593         (summarize_results):
594         * Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:
595         (summarized_results):
596         (SummarizedResultsTest.setUp):
597         (SummarizedResultsTest.test_summarized_results_include_passes):
598         (SummarizedResultsTest):
599         (SummarizedResultsTest.test_summarized_results_world_leaks_disabled):
600         * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
601         * Scripts/webkitpy/layout_tests/views/buildbot_results_unittest.py:
602         (BuildBotPrinterTests.test_print_unexpected_results):
603         (BuildBotPrinterTests.test_print_unexpected_results_with_options):
604         (BuildBotPrinterTests.test_print_results):
605         * Scripts/webkitpy/port/test.py:
606         (unit_test_list):
607
608 2018-09-06  Zalan Bujtas  <zalan@apple.com>
609
610         [LFC][BFC] Add support for min(max)-height
611         https://bugs.webkit.org/show_bug.cgi?id=189377
612
613         Reviewed by Antti Koivisto.
614
615         * LayoutReloaded/misc/LFC-passing-tests.txt:
616
617 2018-09-06  Dewei Zhu  <dewei_zhu@apple.com>
618
619         BenchmarkResults.format should support specifying depth of tests to show.
620         https://bugs.webkit.org/show_bug.cgi?id=189135
621
622         Reviewed by Ryosuke Niwa.
623
624         Added the option to specify the depth of tests to show.
625
626         * Scripts/webkitpy/benchmark_runner/benchmark_results.py:
627         (BenchmarkResults):
628         (BenchmarkResults.format): Added 'max_depth' option.
629         (BenchmarkResults._format_tests): Added unit tests for 'max_depth'.
630
631
632 2018-09-06  Simon Fraser  <simon.fraser@apple.com>
633
634         An EWS run that has leak test failures does not correctly add bugzilla comments showing the failures
635         https://bugs.webkit.org/show_bug.cgi?id=189368
636
637         Reviewed by Alexey Proskuryakov.
638         
639         Include FailureDocumentLeak in ALL_FAILURE_CLASSES (with a fairly redundant test),
640         which should fix EWS showing leaks in Bugzilla.
641
642         * Scripts/webkitpy/layout_tests/models/test_failures.py:
643         (FailureDocumentLeak.__init__):
644         * Scripts/webkitpy/layout_tests/models/test_failures_unittest.py:
645         (TestFailuresTest.test_all_failure_classes):
646
647 2018-09-06  Commit Queue  <commit-queue@webkit.org>
648
649         Unreviewed, rolling out r235755.
650         https://bugs.webkit.org/show_bug.cgi?id=189367
651
652         Didn't address the review comment (Requested by rniwa on
653         #webkit).
654
655         Reverted changeset:
656
657         "BenchmarkResults.format should support specifying depth of
658         tests to show."
659         https://bugs.webkit.org/show_bug.cgi?id=189135
660         https://trac.webkit.org/changeset/235755
661
662 2018-08-29  Dewei Zhu  <dewei_zhu@apple.com>
663
664         BenchmarkResults.format should support specifying depth of tests to show.
665         https://bugs.webkit.org/show_bug.cgi?id=189135
666
667         Reviewed by Ryosuke Niwa.
668
669         Added the option to specify the depth of tests to show.
670
671         * Scripts/webkitpy/benchmark_runner/benchmark_results.py:
672         (BenchmarkResults):
673         (BenchmarkResults.format): Added 'max_depth' option.
674         (BenchmarkResults._format_tests): Added unit tests for 'max_depth'.
675
676 2018-09-06  Thomas Denney  <tdenney@apple.com>
677
678         [WHLSL] Call arguments should be copied as soon as they are evaluated
679         https://bugs.webkit.org/show_bug.cgi?id=189360
680
681         Reviewed by Myles C. Maxfield.
682
683         Previously all call arguments were evaluated and then their results were
684         copied into new buffers for the call. However, the results are not
685         necessarily independent, so the result should be copied immediately
686         after evaluation.
687
688         * WebGPUShadingLanguageRI/Evaluator.js:
689         (Evaluator.prototype.visitCallExpression): Move location of copy.
690         (Evaluator):
691         * WebGPUShadingLanguageRI/Test.js: Add new test to verify correct
692         behavior.
693
694 2018-09-06  Thomas Denney  <tdenney@apple.com>
695
696         [WHLSL] The test suite should log the compile time for the standard library
697         https://bugs.webkit.org/show_bug.cgi?id=189354
698
699         Reviewed by Myles C. Maxfield.
700
701         The test suite previously only logged the time for test execution, and
702         not the compile time for the standard library.
703
704         * WebGPUShadingLanguageRI/Test.js:
705
706 2018-09-06  Wenson Hsieh  <wenson_hsieh@apple.com>
707
708         [macOS] Cannot change font size at selection until font panel is shown
709         https://bugs.webkit.org/show_bug.cgi?id=189295
710         <rdar://problem/35593389>
711
712         Reviewed by Ryosuke Niwa.
713
714         Add API tests to simulate using menu items to increase or decrease font size, and also simulate using
715         NSFontPanel to specify the font family, font size, and other traits.
716
717         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
718         * TestWebKitAPI/Tests/mac/FontManagerTests.mm: Added.
719         (-[TestWKWebView selectedText]):
720         (-[TestWKWebView selectNextWord]):
721         (-[TestWKWebView stylePropertyAtSelectionStart:]):
722         (-[TestWKWebView stylePropertyAtSelectionEnd:]):
723         (webViewForFontManagerTesting):
724         (menuItemCellForFontAction):
725         (TestWebKitAPI::TEST):
726
727 2018-09-06  Zalan Bujtas  <zalan@apple.com>
728
729         [LFC][BFC] Add support for min(max)-width
730         https://bugs.webkit.org/show_bug.cgi?id=189358
731
732         Reviewed by Antti Koivisto.
733
734         * LayoutReloaded/misc/LFC-passing-tests.txt:
735
736 2018-09-06  Myles C. Maxfield  <mmaxfield@apple.com>
737
738         [WHLSL] The parser is too slow
739         https://bugs.webkit.org/show_bug.cgi?id=189014
740
741         Reviewed by Filip Pizlo.
742
743         This patch includes three changes:
744         1. Migrate from using try/catch to simply returning the WSyntaxError. This means that
745            each parser call has to check for this sentinel value. The lexer still can throw if
746            it encounters an unknown token or an unmatched "/*" token (which is rare).
747         2. After removing try/catch, making the sentinel values not inherit from Error (the
748            Error constructor was taking lots of time)
749         3. Previously, every time the parser failed (which is many times per expression) it was
750            running a regex over the entire source text to figure out where the error occurred.
751            Instead, we can preprocess the text string to find these line numbers ahead of time.
752
753         Together, these make the parser 75x faster. Parsing the standard library goes from 2.5
754         hours down to 2 minutes. Because it's now a reasonable length, this patch uncomments
755         the bulk of the standard library.
756
757         * WebGPUShadingLanguageRI/All.js:
758         * WebGPUShadingLanguageRI/Lexer.js:
759         (Lexer):
760         (Lexer.prototype.lineNumberForIndex):
761         * WebGPUShadingLanguageRI/Parse.js:
762         (fail):
763         (backtrackingScope):
764         (testScope):
765         (genericConsume):
766         (consumeEndOfTypeArgs):
767         (parseTerm):
768         (parseConstexpr):
769         (parseTypeArguments):
770         (parseType.getAddressSpace):
771         (parseType):
772         (parseTypeDef):
773         (genericParseLeft):
774         (parseCallExpression.let.parseArguments):
775         (isCallExpression):
776         (parseSuffixOperator):
777         (parsePossibleSuffix):
778         (parsePreIncrement):
779         (parsePossiblePrefix):
780         (parsePossibleTernaryConditional):
781         (parsePossibleAssignment):
782         (parsePostIncrement):
783         (parseEffectfulExpression):
784         (genericParseCommaExpression):
785         (parseEffectfulStatement):
786         (parseReturn):
787         (parseBreak):
788         (parseContinue):
789         (parseIfStatement):
790         (parseWhile):
791         (parseFor):
792         (parseDo):
793         (parseVariableDecls):
794         (parseSwitchCase):
795         (parseSwitchStatement):
796         (parseStatement):
797         (parseBlockBody):
798         (parseBlock):
799         (parseParameter):
800         (parseFuncName):
801         (parseFuncDecl):
802         (parseFuncDef):
803         (parseField):
804         (parseStructType):
805         (parseNativeFunc):
806         (parseNative):
807         (parseRestrictedFuncDef):
808         (parseEnumMember):
809         (parseEnumType):
810         (parse):
811         * WebGPUShadingLanguageRI/SPIRV.html:
812         * WebGPUShadingLanguageRI/StandardLibrary.js:
813         (let.standardLibrary):
814         * WebGPUShadingLanguageRI/Test.html:
815         * WebGPUShadingLanguageRI/Test.js:
816         (checkFail.doPrep): Deleted.
817         * WebGPUShadingLanguageRI/WLexicalError.js: Added.
818         (WLexicalError):
819         * WebGPUShadingLanguageRI/index.html:
820
821 2018-09-06  Xan Lopez  <xan@igalia.com>
822
823         [test262] Do not call keys on a reference
824         https://bugs.webkit.org/show_bug.cgi?id=189301
825
826         Reviewed by Keith Miller.
827
828         * Scripts/test262/Runner.pm:
829         (UpdateResults):
830
831 2018-09-06  David Kilzer  <ddkilzer@apple.com>
832
833         svn-create-patch fails when svn mv is used on directory trees
834         <https://webkit.org/b/14590>
835
836         Reviewed by Daniel Bates.
837
838         * Scripts/VCSUtils.pm: Export parseSvnDiffStartLine() for
839         svn-create-patch.
840         (parseDiffStartLine): Use parseSvnDiffStartLine().
841         (parseGitDiffStartLine): Document a prerequisite.  Fix a bug
842         when parsing Git patches using `git diff --no-prefix` that have
843         non-native line endings.  Found by new tests written for
844         Scripts/webkitperl/VCSUtils_unittest/parseDiffStartLine.pl.
845         (parseSvnDiffStartLine): Add.  Extract logic from
846         parseDiffStartLine() for use with svn-create-patch.
847
848         * Scripts/svn-create-patch: Update copyright and license.
849         (generateDiff): Return early for moved directories since
850         individual files within the directory are handled separately.
851         (generateFileList): Keep track of moved directories in the
852         @additionWithHistoryDirectories array, then process this array
853         in reverse order to create delete/add patches for each file in
854         a moved directory.  This also prevents duplicate patches.
855         (manufacturePatchForAdditionWithHistory): Fix a long-standing
856         bug where the path used to describe property changes contained
857         the original (moved-from) path instead of the new (moved-to)
858         path. This could cause svn-apply to fail mysteriously when
859         trying to apply an empty patch created by the property change
860         containing the moved-from path.
861
862         * Scripts/webkitperl/VCSUtils_unittest/parseDiffStartLine.pl: Add.
863         Tests for parseDiffStartLine(), parseGitDiffStartLine() and
864         parseSvnDiffStartLine().
865
866 2018-09-05  Don Olmstead  <don.olmstead@sony.com>
867
868         [CMake] Allow port specific options on gtest
869         https://bugs.webkit.org/show_bug.cgi?id=189313
870
871         Reviewed by Alex Christensen.
872
873         Use the global property set by the gtest CMake file to add to the
874         compilation definitions for TestWebKitAPI rather than repeating the
875         logic.
876
877         * TestWebKitAPI/CMakeLists.txt:
878
879 2018-09-05  Woodrow Wang  <woodrow_wang@apple.com>
880
881         Add infrastructure to dump resource load statistics
882         https://bugs.webkit.org/show_bug.cgi?id=189213
883
884         Reviewed by Daniel Bates.
885
886         The dumping functionality is not currently used, but will be included in tests for
887         <https://bugs.webkit.org/show_bug.cgi?id=187773>.
888
889         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
890         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
891         (WTR::TestRunner::setDumpResourceLoadStatistics):
892         * WebKitTestRunner/InjectedBundle/TestRunner.h:
893         * WebKitTestRunner/TestController.cpp:
894         (WTR::resourceStatisticsStringResultCallback):
895         (WTR::TestController::dumpResourceLoadStatistics):
896         * WebKitTestRunner/TestController.h:
897         * WebKitTestRunner/TestInvocation.cpp:
898         (WTR::TestInvocation::dumpResults):
899         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
900         (WTR::TestInvocation::setDumpResourceLoadStatistics):
901         * WebKitTestRunner/TestInvocation.h:
902
903 2018-09-05  Wenson Hsieh  <wenson_hsieh@apple.com>
904
905         [macOS] DragAndDropTests.ExposeMultipleURLsInDataTransfer fails on macOS versions prior to Mojave
906         https://bugs.webkit.org/show_bug.cgi?id=189315
907
908         Reviewed by Tim Horton.
909
910         Fix the test failure by explicitly enabling custom pasteboard data.
911
912         * TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
913         (TEST):
914
915 2018-09-05  Woodrow Wang  <woodrow_wang@apple.com>
916
917         Added runtime feature flag for web API statistics
918         https://bugs.webkit.org/show_bug.cgi?id=189211
919
920         Reviewed by Daniel Bates.
921
922         Added functionality to set the runtime flag with a JavaScript exposed function
923         for testing.
924
925         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
926         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
927         (WTR::TestRunner::setWebAPIStatisticsEnabled):
928         * WebKitTestRunner/InjectedBundle/TestRunner.h:
929
930 2018-09-05  Ross Kirsling  <ross.kirsling@sony.com>
931
932         Add WinCairo to bot watcher's dashboard.
933         https://bugs.webkit.org/show_bug.cgi?id=189273
934
935         Reviewed by Aakash Jain.
936
937         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Windows10.png: Added.
938         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Windows10@2x.png: Added.
939
940         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
941         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
942         (table.queue-grid tr.platform.windows-10 img.logo): Added.
943         (table.queue-grid tr.platform.windows-8 img.logo): Deleted.
944         (table.queue-grid tr.platform.windows-xp img.logo): Deleted.
945         Add Win10 section to dashboard. Remove unused WinXP and Win8 sections.
946
947         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
948         (BubbleQueueServer):
949         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
950         (WebKitBuildbot):
951         Add WinCairo build, test, and EWS bots to Win10 section of dashboard.
952
953 2018-09-05  David Kilzer  <ddkilzer@apple.com>
954
955         REGRESSION (r209470): EditingHistory folder is missing in EditingHistory Xcode project
956
957         Found using `tidy-Xcode-project-file --missing` (see Bug
958         188754).  Fixes were made manually.
959
960         * EditingHistory/EditingHistory.xcodeproj/project.pbxproj:
961         (EditingHistory): Change the path of the folder to
962         "EditingHistory", then remove the now-redundant name.
963         (EditingHistory/Resources/DumpEditingHistory.js): Remove
964         redundant file reference since another file reference exists at
965         the top of the project file list, and that file reference is the
966         one used in the "Copy Bundle Resources" build phase.
967         (EditingHistory/Resources/EditingHistoryUtil.js): Ditto.
968
969 2018-09-05  David Kilzer  <ddkilzer@apple.com>
970
971         REGRESSION (r160736): Bundle folder is missing in MiniBrowser Xcode project
972
973         Found using `tidy-Xcode-project-file --missing` (see Bug
974         188754).  Folder fix was made manually.
975
976         * MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
977         (Bundle): Change the path of the folder to "mac/Bundle", and set
978         the name back to "Bundle".
979         (Bundle/Info.plist): Change file reference to be relative to its
980         group.  Accomplished using Xcode after fixing the folder path.
981         (Bundle/MiniBrowserBundle_Prefix.pch): Ditto.
982
983 2018-09-05  David Kilzer  <ddkilzer@apple.com>
984
985         REGRESSION (r184033): ContentExtensionTester folder is missing in ContentExtensionTester Xcode project
986
987         Found using `tidy-Xcode-project-file --missing` (see Bug
988         188754).  Fixes were made manually.
989
990         * ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj:
991         (ContentExtensionTester): Change the path of the folder to map
992         to "." (which exists and is where main.m is located), and then
993         set the folder's name back to "ContentExtensionTester".
994         (main.m): Change file reference to be relative to its group now
995         that the group's path is fixed.
996
997 2018-09-04  Don Olmstead  <don.olmstead@sony.com>
998
999         Add generic entrypoint and run loop in TestWebKitAPI
1000         https://bugs.webkit.org/show_bug.cgi?id=189287
1001
1002         Reviewed by Michael Catanzaro.
1003
1004         The implementations in jsconly are platform agnostic.
1005
1006         * TestWebKitAPI/PlatformJSCOnly.cmake:
1007         Use the glib implementation of Utilities when using that as a run loop
1008         otherwise use the generic implementation.
1009
1010         * TestWebKitAPI/PlatformUtilities.h:
1011         Remove repeated entries from Utilities.h.
1012
1013         * TestWebKitAPI/PlatformWPE.cmake:
1014         Use the generic main.cpp.
1015         
1016         * TestWebKitAPI/generic/UtilitiesGeneric.cpp: Renamed from Tools/TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp.
1017         (TestWebKitAPI::Util::run):
1018         (TestWebKitAPI::Util::spinRunLoop):
1019         Moved to a generic implementation and added spinRunLoop.
1020
1021         * TestWebKitAPI/generic/main.cpp: Renamed from Tools/TestWebKitAPI/jsconly/main.cpp.
1022         Share between JSCOnly and WPE
1023
1024         * TestWebKitAPI/wpe/main.cpp: Removed.
1025
1026 2018-09-04  Don Olmstead  <don.olmstead@sony.com>
1027
1028         [CMake] Make TestWebKitAPI dependencies explicit
1029         https://bugs.webkit.org/show_bug.cgi?id=189282
1030
1031         Reviewed by Fujii Hironori.
1032
1033         The config.h file includes files from JSC, WebCore and WebKit which
1034         places a dependency on those headers even when just building TestWTF.
1035         This makes the depedencies explicit for all CMake ports and shoud
1036         remove any race conditions that can be encountered when building tests.
1037
1038         * TestWebKitAPI/CMakeLists.txt:
1039         * TestWebKitAPI/PlatformGTK.cmake:
1040         * TestWebKitAPI/PlatformWPE.cmake:
1041         * TestWebKitAPI/PlatformWin.cmake:
1042
1043 2018-09-04  Wenson Hsieh  <wenson_hsieh@apple.com>
1044
1045         Populate "text/uri-list" with multiple URLs when the pasteboard contains multiple URLs
1046         https://bugs.webkit.org/show_bug.cgi?id=188890
1047         <rdar://problem/43648605>
1048
1049         Reviewed by Tim Horton.
1050
1051         * DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
1052         (-[LocalPasteboard pasteboardItems]):
1053
1054         Implement this method to avoid crashing when running layout tests that access the pasteboard.
1055
1056         * TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
1057
1058         Add a test to verify that on macOS and iOS, multiple URLs dropped onto the page are accessible via
1059         "text/uri-list".
1060
1061         * TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:
1062
1063         Add a test that exercises 5 different ways to write one or more URLs to the pasteboard on macOS; in all cases,
1064         the URLs written to the pasteboard should be exposed to the page via "text/uri-list". In all of these different
1065         cases, the results of using `-[NSPasteboardItem stringForType:]`, `-[NSURL URLFromPasteboard:]` and
1066         `-[NSPasteboard stringForType:]` will yield different results, so the purpose of this API test is to ensure that
1067         our logic for grabbing a list of URLs from the pasteboard on macOS is robust enough to handle all of these
1068         different behaviors.
1069
1070         * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
1071
1072         Add a test to verify that on iOS, using `-[UIPasteboard setURLs:]` to write to multiple URLs to the pasteboard
1073         and then pasting results in "text/uri-list" exposing a list of all the URLs written to the pasteboard.
1074
1075         * WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:
1076         (-[LocalPasteboard pasteboardItems]):
1077
1078         Implement this method to avoid crashing when running layout tests that access the pasteboard.
1079
1080 2018-09-04  Simon Fraser  <simon.fraser@apple.com>
1081
1082         REGRESSION(r235408): GTK bots exiting early
1083         https://bugs.webkit.org/show_bug.cgi?id=189063
1084
1085         Reviewed by Michael Catanzaro.
1086         
1087         WebKitTestRunner was running the world leak checks even when run without --world-leaks,
1088         causing GTK bot timeouts. So guard updateLiveDocumentsAfterTest(), checkForWorldLeaks()
1089         and findAndDumpWorldLeaks() with m_checkForWorldLeaks checks, and in
1090         TestController::handleControlCommand() print a message if the control script sends the
1091         "#CHECK FOR WORLD LEAKS" command if WTR was not run with --world-leaks.
1092         
1093         I tested that running with --world-leaks still works.
1094
1095         * WebKitTestRunner/TestController.cpp:
1096         (WTR::TestController::resetStateToConsistentValues):
1097         (WTR::TestController::updateLiveDocumentsAfterTest):
1098         (WTR::TestController::checkForWorldLeaks):
1099         (WTR::TestController::findAndDumpWorldLeaks):
1100         (WTR::TestController::handleControlCommand):
1101         (WTR::TestController::run):
1102
1103 2018-09-04  Myles C. Maxfield  <mmaxfield@apple.com>
1104
1105         Unreviewed follow-up to r235635
1106         https://bugs.webkit.org/show_bug.cgi?id=188940
1107
1108         Use "let" variables instead of "var" variables.
1109
1110         * WebGPUShadingLanguageRI/StandardLibrary.js:
1111         (let.standardLibrary):
1112
1113 2018-09-04  Myles C. Maxfield  <mmaxfield@apple.com>
1114
1115         [WHLSL] Implement texture types
1116         https://bugs.webkit.org/show_bug.cgi?id=188940
1117
1118         Rubber-stamped by Dean Jackson.
1119
1120         Implement the texture types and operations. This includes Sample(), Load(), Store(), Gather(), and GetDimensions().
1121         These functions were implemented according to section 15 of the Vulkan 1.1.83 spec, which lists each operation
1122         and how to compute its results.
1123
1124         * WebGPUShadingLanguageRI/All.js:
1125         * WebGPUShadingLanguageRI/Casts.js: Moved from Intrinsics. The texture operations need to cast too, so these are
1126         moved into a common location.
1127         (cast):
1128         (bitwiseCast):
1129         (castToUchar):
1130         (castToUshort):
1131         (castToUint):
1132         (castToChar):
1133         (castToShort):
1134         (castToInt):
1135         (castToHalf):
1136         (castToFloat):
1137         * WebGPUShadingLanguageRI/Intrinsics.js: Use Casts.js and call into TextureOperations.js.
1138         (Intrinsics.):
1139         (Intrinsics.checkFalse):
1140         (Intrinsics.boxVector):
1141         (Intrinsics.unboxVector):
1142         (Intrinsics):
1143         (Intrinsics.cast): Deleted.
1144         (Intrinsics.bitwiseCast): Deleted.
1145         (Intrinsics.castToHalf): Deleted.
1146         * WebGPUShadingLanguageRI/SPIRV.html:
1147         * WebGPUShadingLanguageRI/Sampler.js: Added. Represent the Sampler type. 
1148         (Sampler):
1149         (Sampler.prototype.get rAddressMode):
1150         (Sampler.prototype.get sAddressMode):
1151         (Sampler.prototype.get tAddressMode):
1152         (Sampler.prototype.get minFilter):
1153         (Sampler.prototype.get magFilter):
1154         (Sampler.prototype.get mipmapFilter):
1155         (Sampler.prototype.get lodMinClamp):
1156         (Sampler.prototype.get lodMaxClamp):
1157         (Sampler.prototype.get maxAnisotropy):
1158         (Sampler.prototype.get compareFunction):
1159         (Sampler.prototype.get borderColor):
1160         (Sampler.prototype.calculateBorderColor.computeValues):
1161         (Sampler.prototype.calculateBorderColor):
1162         * WebGPUShadingLanguageRI/StandardLibrary.js: Update the standard library. Some of the functions were
1163         either missing or wrong.
1164         (let.standardLibrary):
1165         * WebGPUShadingLanguageRI/Test.html:
1166         * WebGPUShadingLanguageRI/Test.js: Test many, many combinations of the texture operations.
1167         (makeSampler):
1168         (make1DTexture):
1169         (make1DTextureArray):
1170         (make2DTexture):
1171         (make2DTextureArray):
1172         (make3DTexture):
1173         (makeTextureCube):
1174         (makeRW1DTexture):
1175         (makeRW1DTextureArray):
1176         (makeRW2DTexture):
1177         (makeRW2DTextureArray):
1178         (makeRW3DTexture):
1179         (make2DDepthTexture):
1180         (make2DDepthTextureArray):
1181         (makeDepthTextureCube):
1182         (makeRW2DDepthTexture):
1183         (makeRW2DDepthTextureArray):
1184         (checkFloat4):
1185         * WebGPUShadingLanguageRI/Texture.js: Added. Represents each of the texture types.
1186         (Texture):
1187         (Texture.prototype.get dimension):
1188         (Texture.prototype.get width):
1189         (Texture.prototype.get height):
1190         (Texture.prototype.get depth):
1191         (Texture.prototype.get levelCount):
1192         (Texture.prototype.get layerCount):
1193         (Texture.prototype.get innerType):
1194         (Texture.prototype.get data):
1195         (Texture.prototype.elementChecked):
1196         (Texture.prototype.setElementChecked):
1197         (Texture1D):
1198         (Texture1D.prototype.widthAtLevel):
1199         (Texture1D.prototype.heightAtLevel):
1200         (Texture1D.prototype.depthAtLevel):
1201         (Texture1D.prototype.element):
1202         (Texture1D.prototype.setElement):
1203         (Texture1DArray):
1204         (Texture1DArray.prototype.widthAtLevel):
1205         (Texture1DArray.prototype.heightAtLevel):
1206         (Texture1DArray.prototype.depthAtLevel):
1207         (Texture1DArray.prototype.element):
1208         (Texture1DArray.prototype.setElement):
1209         (Texture2D):
1210         (Texture2D.prototype.widthAtLevel):
1211         (Texture2D.prototype.heightAtLevel):
1212         (Texture2D.prototype.depthAtLevel):
1213         (Texture2D.prototype.element):
1214         (Texture2D.prototype.setElement):
1215         (Texture2DArray):
1216         (Texture2DArray.prototype.widthAtLevel):
1217         (Texture2DArray.prototype.heightAtLevel):
1218         (Texture2DArray.prototype.depthAtLevel):
1219         (Texture2DArray.prototype.element):
1220         (Texture2DArray.prototype.setElement):
1221         (Texture3D):
1222         (Texture3D.prototype.widthAtLevel):
1223         (Texture3D.prototype.heightAtLevel):
1224         (Texture3D.prototype.depthAtLevel):
1225         (Texture3D.prototype.element):
1226         (Texture3D.prototype.setElement):
1227         (TextureCube):
1228         (TextureCube.prototype.widthAtLevel):
1229         (TextureCube.prototype.heightAtLevel):
1230         (TextureCube.prototype.depthAtLevel):
1231         (TextureCube.prototype.element):
1232         (TextureCube.prototype.setElement):
1233         (Texture1DRW):
1234         (Texture1DRW.prototype.widthAtLevel):
1235         (Texture1DRW.prototype.heightAtLevel):
1236         (Texture1DRW.prototype.depthAtLevel):
1237         (Texture1DRW.prototype.element):
1238         (Texture1DRW.prototype.setElement):
1239         (Texture1DArrayRW):
1240         (Texture1DArrayRW.prototype.widthAtLevel):
1241         (Texture1DArrayRW.prototype.heightAtLevel):
1242         (Texture1DArrayRW.prototype.depthAtLevel):
1243         (Texture1DArrayRW.prototype.element):
1244         (Texture1DArrayRW.prototype.setElement):
1245         (Texture2DRW):
1246         (Texture2DRW.prototype.widthAtLevel):
1247         (Texture2DRW.prototype.heightAtLevel):
1248         (Texture2DRW.prototype.depthAtLevel):
1249         (Texture2DRW.prototype.element):
1250         (Texture2DRW.prototype.setElement):
1251         (Texture2DArrayRW):
1252         (Texture2DArrayRW.prototype.widthAtLevel):
1253         (Texture2DArrayRW.prototype.heightAtLevel):
1254         (Texture2DArrayRW.prototype.depthAtLevel):
1255         (Texture2DArrayRW.prototype.element):
1256         (Texture2DArrayRW.prototype.setElement):
1257         (let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW):
1258         (let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.widthAtLevel):
1259         (let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.heightAtLevel):
1260         (let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.depthAtLevel):
1261         (let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.element):
1262         (let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.setElement):
1263         * WebGPUShadingLanguageRI/TextureOperations.js: Added. This implements the texture operations
1264         as described in section 15 of the Vulkan 1.1.83 spec.
1265         (depthCompareOperation):
1266         (conversionToRGBA):
1267         (projectionOperation):
1268         (cubeMapFaceSelection):
1269         (cubeMapCoordinateTransformation):
1270         (cubeMapDerivativeTransformation):
1271         (scaleFactorOperation):
1272         (levelOfDetailOperation):
1273         (nearest):
1274         (imageLevelSelection):
1275         (strqaToUVWATransformation):
1276         (rne):
1277         (uvwaToIJKLNTransformationAndArrayLayerSelection):
1278         (integerTexelCoordinateOperations):
1279         (mirror):
1280         (transform):
1281         (wrappingOperation):
1282         (calculateLambda):
1283         (shouldBeBorder):
1284         (accessColor):
1285         (computeTau):
1286         (reduce):
1287         (texelGathering):
1288         (computeColorFromLevel):
1289         (texelFiltering):
1290         (castToInnerTypeForGather):
1291         (gatherTexture):
1292         (castToInnerType):
1293         (sampleTexture):
1294         * WebGPUShadingLanguageRI/index.html:
1295
1296 2018-09-04  Alexey Proskuryakov  <ap@apple.com>
1297
1298         Removing an accidentally committed debugging print.
1299
1300         * Scripts/run-leaks: (runLeaks)
1301
1302 2018-09-04  Alexey Proskuryakov  <ap@apple.com>
1303
1304         run-leaks should run leaks with --list (on Mojave)
1305         https://bugs.webkit.org/show_bug.cgi?id=187716
1306         <rdar://problem/42261676>
1307
1308         Reviewed by Lucas Forschler.
1309
1310         Also enabled dumping memgraphs. We'll be pruning these aggressively, as they take
1311         significant space.
1312
1313         * Scripts/run-leaks:
1314         (main): Added an option to store memgraphs.
1315         (runLeaks): As there is no way to test whether the new format is supported in advance,
1316         we have to try with --list first, and retry if that fails. Also, made leaks operate
1317         on a memgraph file if we are saving it anyway.
1318
1319         * Scripts/webkitpy/port/leakdetector.py:
1320         (LeakDetector._leaks_args): Pass --memgraph-file to run-leaks.
1321         (LeakDetector.leaks_file_name): Removed an incorrect comment.
1322         (LeakDetector.memgraph_file_name): Added.
1323         (LeakDetector.check_for_leaks): Changed how arguments are passed to _leaks_args.
1324         It is a bit ugly that leaks path ends up being computed twice, but this is the least
1325         ugly approach that I could find.
1326
1327         * Scripts/webkitpy/port/leakdetector_unittest.py: Updated for _leaks_args changes.
1328
1329 2018-09-04  Chris Dumez  <cdumez@apple.com>
1330
1331         Add process pool configuration flag to turn on automatic process pre-warming
1332         https://bugs.webkit.org/show_bug.cgi?id=189263
1333         <rdar://problem/44101941>
1334
1335         Reviewed by Antti Koivisto.
1336
1337         Add API test coverage.
1338
1339         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1340         * TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/InitialWarmedProcessUsed.mm.
1341         (TEST):
1342         * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
1343         * TestWebKitAPI/Tests/WebKitCocoa/SetMaximumPrewarmedProcessCount.mm: Removed.
1344
1345 2018-09-04  Keith Miller  <keith_miller@apple.com>
1346
1347         Perl doesn't like calling keys on a reference
1348         https://bugs.webkit.org/show_bug.cgi?id=189261
1349
1350         Reviewed by Michael Saboff.
1351
1352         * Scripts/test262/Runner.pm:
1353         (UpdateResults):
1354
1355 2018-09-04  Jer Noble  <jer.noble@apple.com>
1356
1357         REGRESSION (r234081): TestWebKitAPI.VideoControlsManager.VideoControlsManagerAudioElementFollowingUserInteraction is a flaky timeout
1358         https://bugs.webkit.org/show_bug.cgi?id=187972
1359         <rdar://problem/42667737>
1360
1361         Reviewed by Darin Adler.
1362
1363         Ensure that listeners are added in time to catch messages broadcast at them.
1364
1365         * TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm:
1366         (TestWebKitAPI::TEST):
1367
1368 2018-09-04  Ross Kirsling  <ross.kirsling@sony.com>
1369
1370         Update googletest
1371         https://bugs.webkit.org/show_bug.cgi?id=175722
1372
1373         Reviewed by Brent Fulgham.
1374
1375         * TestWebKitAPI/config.h:
1376         Instead of modifying the gtest source, add the necessary WTF includes here.
1377
1378         * TestWebKitAPI/Configurations/Base.xcconfig
1379         Remove obsoleted definitions GTEST_HAS_TR1_TUPLE=0 and GTEST_HAS_RTTI=0.
1380
1381 2018-09-03  Pablo Saavedra  <psaavedra@igalia.com>
1382
1383         [WPE] Add more WPE bots to dashboard
1384         https://bugs.webkit.org/show_bug.cgi?id=189245
1385
1386         Reviewed by Daniel Bates.
1387
1388         There are two missing bots which are not listed in the dashboard for
1389         a while: WPE Linux 64-bit Debug (Build) and WPE Linux 64-bit Debug (Tests)
1390
1391         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
1392         (WebKitBuildbot):
1393
1394 2018-09-01  Michael Catanzaro  <mcatanzaro@igalia.com>
1395
1396         [WPE] 2.21.91 fails to build with ENABLE_MINIBROWSER
1397         https://bugs.webkit.org/show_bug.cgi?id=189006
1398
1399         Reviewed by Darin Adler.
1400
1401         The MiniBrowser source code is missing from the tarball. Oops! Add it.
1402
1403         * wpe/manifest.txt.in:
1404
1405 2018-09-01  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>
1406
1407         [WinCairo] Add CryptoDigestOpenSSL
1408         https://bugs.webkit.org/show_bug.cgi?id=188978
1409
1410         Reviewed by Darin Adler.
1411
1412         Add API tests for the PAL::CryptoDigest class.
1413
1414         * TestWebKitAPI/PlatformWin.cmake:
1415         Add CryptoDigest.cpp to TestWebCoreLib_Sources.
1416
1417         Define -DSTATICALLY_LINKED_WITH_PAL=1 to avoid warnings since
1418         without the definition the functions marked with PAL_EXPORT are supposed to be
1419         imported from another shared library, but as it is, TestWebCoreLib
1420         links PAL statically.
1421
1422         * TestWebKitAPI/Tests/WebCore/CryptoDigest.cpp: Added.
1423         (TestWebKitAPI::toHex):
1424         (TestWebKitAPI::expect):
1425         (TestWebKitAPI::expectSHA1):
1426         (TestWebKitAPI::expectSHA224):
1427         (TestWebKitAPI::expectSHA256):
1428         (TestWebKitAPI::expectSHA384):
1429         (TestWebKitAPI::expectSHA512):
1430         (TestWebKitAPI::TEST):
1431
1432 2018-09-01  Dan Bernstein  <mitz@apple.com>
1433
1434         [Cocoa] Crash using KVO for 'serverTrust' property of WKWebView - "this class is not key value coding-compliant for the key serverTrust"
1435         https://bugs.webkit.org/show_bug.cgi?id=189222
1436         <rdar://problem/33283179>
1437
1438         Reviewed by Sam Weinig.
1439
1440         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1441         * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm: Added.
1442         (TEST):
1443
1444 2018-08-31  Aditya Keerthi  <akeerthi@apple.com>
1445
1446         Unreviewed, add an alternate email for Aditya Keerthi.
1447
1448         * Scripts/webkitpy/common/config/contributors.json:
1449
1450 2018-08-31  Wenson Hsieh  <wenson_hsieh@apple.com>
1451
1452         [iOS] Consolidate the implementations of readString, stringForType, and readURL in PlatformPasteboardIOS.mm
1453         https://bugs.webkit.org/show_bug.cgi?id=189054
1454         <rdar://problem/43819779>
1455
1456         Reviewed by Tim Horton.
1457
1458         See WebCore/ChangeLog for more detail.
1459
1460         * TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm:
1461         (createWebViewWithCustomPasteboardDataEnabled):
1462
1463 2018-08-31  Commit Queue  <commit-queue@webkit.org>
1464
1465         Unreviewed, rolling out r235565.
1466         https://bugs.webkit.org/show_bug.cgi?id=189212
1467
1468         Broke the WHLSL build (Requested by litherum on #webkit).
1469
1470         Reverted changeset:
1471
1472         "[WHLSL] Remove useless code in NameResolver"
1473         https://bugs.webkit.org/show_bug.cgi?id=189176
1474         https://trac.webkit.org/changeset/235565
1475
1476 2018-08-31  Myles C. Maxfield  <mmaxfield@apple.com>
1477
1478         [WHLSL] Remove useless code in NameResolver
1479         https://bugs.webkit.org/show_bug.cgi?id=189176
1480
1481         Reviewed by Dean Jackson and Thomas Denney.
1482
1483         The check will always pass becase the standard library contains at least one function with the correct name.
1484
1485         * WebGPUShadingLanguageRI/NameResolver.js:
1486         (NameResolver.prototype.visitDotExpression):
1487         (NameResolver.prototype._handlePropertyAccess): Deleted.
1488         (NameResolver.prototype.visitIndexExpression): Deleted.
1489
1490 2018-08-31  Simon Fraser  <simon.fraser@apple.com>
1491
1492         Make it possible to mark tests as leaks in TestExpectations
1493         https://bugs.webkit.org/show_bug.cgi?id=189088
1494
1495         Reviewed by Jon Lee.
1496         
1497         Have webkitpy parse out "Leak" expectations in TestExpectations, and do the right
1498         thing if the test run did not use --world-leaks. Add unit tests for leaks combined
1499         with various other result combinations.
1500
1501         * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
1502         (LayoutTestRunner._update_summary_with_result):
1503         (LayoutTestRunner._annotate_results_with_additional_failures):
1504         * Scripts/webkitpy/layout_tests/models/test_expectations.py:
1505         (TestExpectationParser):
1506         (TestExpectations): The 'Leak' line was duplicated here, so remove a copy.
1507         (TestExpectations.remove_leak_failures):
1508         (TestExpectations.matches_an_expected_result):
1509         * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
1510         (Base.get_basic_tests):
1511         * Scripts/webkitpy/port/test.py:
1512         (TestList.add_reftest):
1513         (unit_test_list):
1514
1515 2018-08-31  Zalan Bujtas  <zalan@apple.com>
1516
1517         [LFC] Add margin box verification back now that Display::Box has non-computed horizontal margin.
1518         https://bugs.webkit.org/show_bug.cgi?id=189193
1519
1520         Reviewed by Antti Koivisto.
1521
1522         * LayoutReloaded/misc/LFC-passing-tests.txt:
1523
1524 2018-08-31  Antti Koivisto  <antti@apple.com>
1525
1526         Replace OptionSet |= and -= operators with add() and remove() functions
1527         https://bugs.webkit.org/show_bug.cgi?id=189169
1528
1529         Reviewed by Anders Carlsson.
1530
1531         * TestWebKitAPI/Tests/WTF/OptionSet.cpp:
1532         (TestWebKitAPI::TEST):
1533
1534 2018-08-31  Daniel Bates  <dabates@apple.com>
1535
1536         lldb-webkit: KeyError thrown for OptionSet with invalid value
1537         https://bugs.webkit.org/show_bug.cgi?id=189070
1538
1539         Update comment to explain that we return early and do not compute the set of enumerators in the
1540         OptionSet when the underlying value of the set is an invalid value.
1541
1542         Additionally, update the change log entry for r235482 to reflect the updated title for the bug
1543         and to better describe the change that was made.
1544
1545         * lldb/lldb_webkit.py:
1546         (WTFOptionSetProvider.update):
1547
1548 2018-08-31  David Kilzer  <ddkilzer@apple.com>
1549
1550         WebKitLauncher: Move WebKitLauncher.entitlements into Configurations directory
1551
1552         This makes the Configurations folder in the Xcode project match
1553         what's in the Configurations directory on disk.  Found by
1554         tidy-Xcode-project-file (see Bug 188754).
1555
1556         * WebKitLauncher/Configurations/WebKitLauncher.entitlements: Rename from Tools/WebKitLauncher/WebKitLauncher.entitlements.
1557         * WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj:
1558         - Update project for file move.
1559
1560 2018-08-31  David Kilzer  <ddkilzer@apple.com>
1561
1562         WebKitLauncher: Fix build failures
1563
1564         * WebKitLauncher/Configurations/Base.xcconfig:
1565         (ARCHS): Use $(ARCHS_STANDARD_32_64_BIT).
1566         (MACOSX_DEPLOYMENT_TARGET): Update from Snow Leopard to Sierra.
1567
1568         * WebKitLauncher/WebKitNightlyEnabler.m:
1569         (myApplicationWillFinishLaunching):
1570         * WebKitLauncher/main.m:
1571         (displayErrorAndQuit):
1572         (locateSafariBundle):
1573         - Use pragma to ignore deprecation warnings.
1574
1575 2018-08-31  David Kilzer  <ddkilzer@apple.com>
1576
1577         MobileMiniBrowser: Move test2s.mp4 into Resources directory
1578
1579         This makes the Resources folder in the Xcode project match
1580         what's in the Resources directory on disk.  Found by
1581         tidy-Xcode-project-file (see Bug 188754).
1582
1583         * MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
1584         - Update project for file move.
1585         * MobileMiniBrowser/MobileMiniBrowserFramework/Resources/test2s.mp4: Rename from Tools/MobileMiniBrowser/MobileMiniBrowserFramework/test2s.mp4.
1586
1587 2018-08-31  Frederic Wang  <fwang@igalia.com>
1588
1589         Bug 182053 - [CSSOM View] Implement standard behavior for scrollingElement
1590         https://bugs.webkit.org/show_bug.cgi?id=182053
1591
1592         Reviewed by Simon Fraser.
1593
1594         Add FIXMEs comments to add the new developer flag in the future and  disable it for now.
1595
1596         * DumpRenderTree/mac/DumpRenderTree.mm:
1597         (enableExperimentalFeatures):
1598         (resetWebPreferencesToConsistentValues):
1599         * DumpRenderTree/win/DumpRenderTree.cpp:
1600         (enableExperimentalFeatures):
1601         * WebKitTestRunner/TestController.cpp:
1602         (WTR::TestController::resetPreferencesToConsistentValues):
1603
1604 2018-08-30  Thomas Denney  <tdenney@apple.com>
1605
1606         [WHLSL] Fix array indexing behavior
1607         https://bugs.webkit.org/show_bug.cgi?id=189175
1608
1609         Array, pointer, and array ref types are now parsed and then constructed
1610         in reverse so that the declaration order matches the indexing order, as
1611         in C/C++.
1612
1613         Reviewed by Myles C. Maxfield.
1614
1615         * WebGPUShadingLanguageRI/Parse.js:
1616         (parseType):
1617         * WebGPUShadingLanguageRI/Test.js:
1618
1619 2018-08-30  Wenson Hsieh  <wenson_hsieh@apple.com>
1620
1621         Followup to [iOS] TestWebKitAPI.PasteImage tests are flaky failures
1622         https://bugs.webkit.org/show_bug.cgi?id=185965
1623
1624         Reviewed by Andy Estes.
1625
1626         The first attempt to fix these flaky tests on iOS caused timeouts on macOS while waiting for a "loaded" message
1627         from the page. To (hopefully) fix this across both platforms, make sure that we first register our script
1628         message handlers in the UI process *before* evaluating script that could propagate the script message.
1629
1630         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
1631         (-[TestWKWebView waitForMessage:afterEvaluatingScript:]):
1632         (TEST):
1633
1634 2018-08-30  Thomas Denney  <tdenney@apple.com>
1635
1636         [WHLSL] Implement tests to verify array indexing order matches our desires
1637         https://bugs.webkit.org/show_bug.cgi?id=189099
1638
1639         Reviewed by Myles C. Maxfield.
1640
1641         * WebGPUShadingLanguageRI/Test.js: Add new test for array indexing order
1642         and the option to explicitly disable tests (this test is disabled by
1643         default).
1644         * WebGPUShadingLanguageRI/TypeRef.js:
1645         (TypeRef.wrap): Fixes  typo.
1646
1647 2018-08-30  Sihui Liu  <sihui_liu@apple.com>
1648
1649         WKNavigation.ProcessCrashDuringCallback is failing on iOS
1650         https://bugs.webkit.org/show_bug.cgi?id=189148
1651
1652         Reviewed by Chris Dumez.
1653
1654         We should not deference WebView or we may get WKErrorWebViewInvalidated error, because 
1655         WebView could be destroyed before Web Process termination is noticed.
1656
1657         * TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
1658         (TEST):
1659
1660 2018-08-30  Zalan Bujtas  <zalan@apple.com>
1661
1662         [LFC][Floating] Formatting context roots avoid floats.
1663         https://bugs.webkit.org/show_bug.cgi?id=189150
1664
1665         Reviewed by Antti Koivisto.
1666
1667         * LayoutReloaded/misc/LFC-passing-tests.txt:
1668
1669 2018-08-30  Wenson Hsieh  <wenson_hsieh@apple.com>
1670
1671         [iOS] TestWebKitAPI.PasteImage tests are flaky failures
1672         https://bugs.webkit.org/show_bug.cgi?id=185965
1673
1674         Reviewed by Andy Estes.
1675
1676         These tests pass reliably when run locally, but sometimes fail in automation when checking that the image
1677         element with its "src" attribute set to a new blob URL has an empty size. It's possible that this is happening
1678         because we're checking the size of the image element prior to image load after setting the blob URL; we can fix
1679         this by waiting for the "load" event (which is also done in some of the other tests in this file).
1680
1681         * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
1682         (TEST):
1683
1684 2018-08-30  Michael Catanzaro  <mcatanzaro@igalia.com>
1685
1686         Unreviewed, rolling out r235114.
1687
1688         ostree server deleted our commits?
1689
1690         Reverted changeset:
1691
1692         "[Flatpak] Update to GNOME master runtime"
1693         https://bugs.webkit.org/show_bug.cgi?id=188731
1694         https://trac.webkit.org/changeset/235114
1695
1696 2018-08-29  Myles C. Maxfield  <mmaxfield@apple.com>
1697
1698         [WHLSL] Test row-majorness of matrices
1699         https://bugs.webkit.org/show_bug.cgi?id=189101
1700
1701         The matrix multiplication functions are temporarily commented out of the standard library,
1702         so I've temporarily copy/pasted them into the test. Matrix multiplication is not
1703         commutative, so it requires the right indexing order.
1704
1705         Reviewed by Dean Jackson and Thomas Denney.
1706
1707         * WebGPUShadingLanguageRI/Intrinsics.js:
1708         * WebGPUShadingLanguageRI/StandardLibrary.js:
1709         (let.standardLibrary):
1710         * WebGPUShadingLanguageRI/Test.js:
1711
1712 2018-08-29  Jer Noble  <jer.noble@apple.com>
1713
1714         Unreviewed test gardening; NowPlayingTest API tests require High Sierra.
1715
1716         * TestWebKitAPI/Tests/WebKitCocoa/NowPlaying.mm:
1717
1718 2018-08-29  Youenn Fablet  <youenn@apple.com>
1719
1720         Remove WebRTC legacy API implementation
1721         https://bugs.webkit.org/show_bug.cgi?id=189040
1722
1723         Reviewed by Eric Carlson.
1724
1725         * DumpRenderTree/mac/DumpRenderTree.mm:
1726         (enableExperimentalFeatures):
1727         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1728         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1729         (WTR::TestRunner::setWebRTCLegacyAPIEnabled): Deleted.
1730         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1731         * WebKitTestRunner/TestController.cpp:
1732         (WTR::TestController::resetPreferencesToConsistentValues):
1733
1734 2018-08-29  Daniel Bates  <dabates@apple.com>
1735
1736         lldb-webkit: KeyError thrown for OptionSet with invalid value
1737         https://bugs.webkit.org/show_bug.cgi?id=189070
1738
1739         Reviewed by Simon Fraser.
1740
1741         Do not compute what enumerators are in an OptionSet with an invalid value. A local OptionSet
1742         variable is only considered valid when execution passes over its assignment/constructor.
1743
1744         The LLDB Python API does not provide a way to determine whether a variable has a valid
1745         value (SBValue.IsValid() does not seem to check if the actual bit pattern in memory for
1746         a variable represents a valid value). So, we use a simple heuristic: when the value of
1747         the OptionSet is greater than the value of the bitmask with all enumerators set then we
1748         consider the OptionSet to be invalid. When the variable obtains a valid value then LLDB
1749         will notify us to update our state.
1750
1751         * lldb/lldb_webkit.py:
1752         (WTFOptionSetProvider.update):
1753
1754 2018-08-29  Chris Dumez  <cdumez@apple.com>
1755
1756         [PSON] We should only process-swap when eTLD+1 changes on navigation
1757         https://bugs.webkit.org/show_bug.cgi?id=189090
1758         <rdar://problem/43799225>
1759
1760         Reviewed by Geoffrey Garen.
1761
1762         Update existing PSON API tests to use different registrable domains instead of different
1763         protocols, as we now only process-swap when the eTLD+1 (aka "registrable domain") changes.
1764
1765         Add test coverage to make sure that we do not process swap when eTLD+1 does not change.
1766
1767         * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
1768
1769 2018-08-29  Youenn Fablet  <youenn@apple.com>
1770
1771         Add a runtime flag for WebRTC unified plan
1772         https://bugs.webkit.org/show_bug.cgi?id=189068
1773
1774         Reviewed by Eric Carlson.
1775
1776         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
1777         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
1778         (WTR::TestRunner::setWebRTCUnifiedPlanEnabled):
1779         * WebKitTestRunner/InjectedBundle/TestRunner.h:
1780
1781 2018-08-29  Don Olmstead  <don.olmstead@sony.com>
1782
1783         [CMake] Split Tools/CMakeLists.txt into platform files
1784         https://bugs.webkit.org/show_bug.cgi?id=189093
1785
1786         Reviewed by Michael Catanzaro.
1787
1788         * CMakeLists.txt:
1789         * PlatformGTK.cmake: Added.
1790         * PlatformMac.cmake: Added.
1791         * PlatformWPE.cmake: Added.
1792         * PlatformWin.cmake: Added.
1793
1794 2018-08-29  Jer Noble  <jer.noble@apple.com>
1795
1796         Muted elements do not have their Now Playing status updated when unmuted.
1797         https://bugs.webkit.org/show_bug.cgi?id=189069
1798
1799         Reviewed by Eric Carlson.
1800
1801         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1802         * TestWebKitAPI/Tests/WebKitCocoa/NowPlaying.mm: Added.
1803         (userInfoHasNowPlayingApplicationPID):
1804         (getNowPlayingClient):
1805         (getNowPlayingClientPid):
1806         (NowPlayingTest::webView):
1807         (NowPlayingTest::configuration):
1808         (NowPlayingTest::webViewPid):
1809         (NowPlayingTest::loadPage):
1810         (NowPlayingTest::runScriptWithUserGesture):
1811         (NowPlayingTest::runScriptWithoutUserGesture):
1812         (NowPlayingTest::executeAndWaitForPlaying):
1813         (NowPlayingTest::executeAndWaitForWebViewToBecomeNowPlaying):
1814         (NowPlayingTest::observers):
1815         (NowPlayingTest::addObserver):
1816         (NowPlayingTest::removeObserver):
1817         (NowPlayingTest::notificationCallback):
1818         (NowPlayingTest::receivedNotification):
1819         (NowPlayingTest::performAfterReceivingNotification):
1820         (TEST_F):
1821         * TestWebKitAPI/Tests/WebKitCocoa/now-playing.html: Added.
1822
1823 2018-08-29  Thomas Denney  <tdenney@apple.com>
1824
1825         [WHLSL] Ensure that isLValue is copied by the rewriter
1826         https://bugs.webkit.org/show_bug.cgi?id=189083
1827
1828         The value of isLValue was not propagated when new TernaryExpressions are
1829         created in Rewriter.
1830
1831         Reviewed by Myles C. Maxfield.
1832
1833         * WebGPUShadingLanguageRI/Rewriter.js:
1834         (Rewriter.prototype.visitTernaryExpression):
1835         * WebGPUShadingLanguageRI/Test.js: Add new test to verify the value is
1836         propagated.
1837
1838 2018-08-29  Myles C. Maxfield  <mmaxfield@apple.com>
1839
1840         [WHLSL] Add more functions to the standard library
1841         https://bugs.webkit.org/show_bug.cgi?id=188873
1842
1843         Reviewed by Filip Pizlo.
1844
1845         This patch adds the rest of the standard library to StandardLibrary.js, and updates the compiler to be able to compile it.
1846
1847         There are a few major pieces:
1848         1. Swizzle operators are now implemented in the language, instead of as native functions
1849         2. Vector constructors are now implemented in the language, instead of as native functions
1850         3. The matrix type is implemented
1851         4. Vector operator&[] is illegal, and is removed from the compiler
1852         5. Vector index setters & index getters are now implemented in the language, instead of as native functions
1853         6. Vector and matrix equality operators are implemented in the language, instead of as native functions
1854         7. Casting a scalar to a boolean is implemented in the language, instead of as native functions
1855         8. Casting a vector to a boolean is not part of the language, and is removed from the compiler
1856         9. Half-precision floating point types are implemented
1857
1858         * WebGPUShadingLanguageRI/All.js:
1859         * WebGPUShadingLanguageRI/BuiltinMatrixGetter.js: Copied from Tools/WebGPUShadingLanguageRI/BuiltinVectorIndexSetter.js.
1860         (BuiltinMatrixGetter):
1861         (BuiltinMatrixGetter.prototype.get height):
1862         (BuiltinMatrixGetter.prototype.get width):
1863         (BuiltinMatrixGetter.prototype.toString):
1864         (BuiltinMatrixGetter.functions):
1865         (BuiltinMatrixGetter.prototype.instantiateImplementation):
1866         * WebGPUShadingLanguageRI/BuiltinMatrixSetter.js: Renamed from Tools/WebGPUShadingLanguageRI/BuiltinVectorIndexSetter.js.
1867         (BuiltinMatrixSetter):
1868         (BuiltinMatrixSetter.prototype.get height):
1869         (BuiltinMatrixSetter.prototype.get width):
1870         (BuiltinMatrixSetter.prototype.toString):
1871         (BuiltinMatrixSetter.functions):
1872         (BuiltinMatrixSetter.prototype.instantiateImplementation):
1873         * WebGPUShadingLanguageRI/BuiltinVectorConstructors.js: Removed.
1874         * WebGPUShadingLanguageRI/BuiltinVectorEqualityOperator.js: Removed.
1875         * WebGPUShadingLanguageRI/BuiltinVectorGetter.js:
1876         (BuiltinVectorGetter.prototype.instantiateImplementation):
1877         (BuiltinVectorGetter):
1878         * WebGPUShadingLanguageRI/BuiltinVectorSetter.js:
1879         (BuiltinVectorSetter.functions):
1880         (BuiltinVectorSetter.prototype.instantiateImplementation):
1881         (BuiltinVectorSetter):
1882         * WebGPUShadingLanguageRI/CallExpression.js:
1883         (CallExpression.prototype.resolve):
1884         * WebGPUShadingLanguageRI/CheckTypesWithArguments.js:
1885         (checkTypesWithArguments.TypeWithArgumentsChecker.prototype.visitTypeRef):
1886         (checkTypesWithArguments.TypeWithArgumentsChecker):
1887         (checkTypesWithArguments):
1888         * WebGPUShadingLanguageRI/Checker.js:
1889         (Checker.prototype.visitVectorType):
1890         (Checker.prototype.visitMatrixType):
1891         * WebGPUShadingLanguageRI/ConstexprFolder.js:
1892         (ConstexprFolder.prototype.visitCallExpression):
1893         (ConstexprFolder):
1894         * WebGPUShadingLanguageRI/Evaluator.js:
1895         (Evaluator.prototype.visitTernaryExpression):
1896         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:
1897         (FlattenedStructOffsetGatherer.prototype.visitMatrixType):
1898         (FlattenedStructOffsetGatherer):
1899         * WebGPUShadingLanguageRI/Intrinsics.js:
1900         (Intrinsics.):
1901         (Intrinsics):
1902         * WebGPUShadingLanguageRI/MatrixType.js: Renamed from Tools/WebGPUShadingLanguageRI/BuiltinVectorIndexGetter.js.
1903         (MatrixType):
1904         (MatrixType.prototype.get elementType):
1905         (MatrixType.prototype.get numRows):
1906         (MatrixType.prototype.get numColumns):
1907         (MatrixType.prototype.get numRowsValue):
1908         (MatrixType.prototype.get numColumnsValue):
1909         (MatrixType.prototype.get size):
1910         (MatrixType.prototype.unifyImpl):
1911         (MatrixType.prototype.populateDefaultValue):
1912         (MatrixType.prototype.toString):
1913         * WebGPUShadingLanguageRI/NameContext.js:
1914         (NameContext.prototype.add):
1915         * WebGPUShadingLanguageRI/NativeType.js:
1916         (NativeType.create):
1917         (NativeType):
1918         * WebGPUShadingLanguageRI/OperatorAnderIndexer.js: Renamed from Tools/WebGPUShadingLanguageRI/OperatorAnderIndex.js.
1919         (OperatorAnderIndexer):
1920         * WebGPUShadingLanguageRI/OperatorBool.js: Removed.
1921         * WebGPUShadingLanguageRI/Prepare.js:
1922         (let.prepare):
1923         * WebGPUShadingLanguageRI/Program.js:
1924         (Program.prototype.add):
1925         * WebGPUShadingLanguageRI/Rewriter.js:
1926         (Rewriter.prototype.visitMatrixType):
1927         (Rewriter):
1928         * WebGPUShadingLanguageRI/SPIRV.html:
1929         * WebGPUShadingLanguageRI/StandardLibrary.js:
1930         (operator.bool):
1931         (bool.operator):
1932         (uchar.operator):
1933         (ushort.operator):
1934         (char.operator):
1935         (short.operator):
1936         (uint.operator):
1937         (int.operator):
1938         (half.operator):
1939         (float.operator):
1940         (uchar2.operator):
1941         (uchar3.operator):
1942         (uchar4.operator):
1943         (ushort2.operator):
1944         (ushort3.operator):
1945         (ushort4.operator):
1946         (uint2.operator):
1947         (uint3.operator):
1948         (uint4.operator):
1949         (char2.operator):
1950         (char3.operator):
1951         (char4.operator):
1952         (short2.operator):
1953         (short3.operator):
1954         (short4.operator):
1955         (int2.operator):
1956         (int3.operator):
1957         (int4.operator):
1958         (half2.operator):
1959         (half3.operator):
1960         (half4.operator):
1961         (float2.operator):
1962         (float3.operator):
1963         (float4.operator):
1964         (half2x2.operator):
1965         (half2x3.operator):
1966         (half2x4.operator):
1967         (half3x2.operator):
1968         (half3x3.operator):
1969         (half3x4.operator):
1970         (half4x2.operator):
1971         (half4x3.operator):
1972         (half4x4.operator):
1973         (float2x2.operator):
1974         (float2x3.operator):
1975         (float2x4.operator):
1976         (float3x2.operator):
1977         (float3x3.operator):
1978         (float3x4.operator):
1979         (float4x2.operator):
1980         (float4x3.operator):
1981         (float4x4.operator):
1982         (operator.bool2):
1983         (operator.bool3):
1984         (operator.bool4):
1985         (uint.operator.length):
1986         (operator.uchar2):
1987         (operator.uchar3):
1988         (operator.uchar4):
1989         (operator.ushort2):
1990         (operator.ushort3):
1991         (operator.ushort4):
1992         (operator.uint2):
1993         (operator.uint3):
1994         (operator.uint4):
1995         (operator.char2):
1996         (operator.char3):
1997         (operator.char4):
1998         (operator.short2):
1999         (operator.short3):
2000         (operator.short4):
2001         (operator.int2):
2002         (operator.int3):
2003         (operator.int4):
2004         (operator.half2):
2005         (operator.half3):
2006         (operator.half4):
2007         (operator.float2):
2008         (operator.float3):
2009         (operator.float4):
2010         (bool2.operator):
2011         (bool3.operator):
2012         (bool4.operator):
2013         (allVectorTypeNames):
2014         * WebGPUShadingLanguageRI/SwizzleOp.js: Removed.
2015         * WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js:
2016         (synthesizeDefaultConstructorOperator.FindAllTypes.prototype.visitMatrixType):
2017         (synthesizeDefaultConstructorOperator.FindAllTypes):
2018         (synthesizeDefaultConstructorOperator):
2019         * WebGPUShadingLanguageRI/SynthesizeOperatorBool.js: Removed.
2020         * WebGPUShadingLanguageRI/Test.html:
2021         * WebGPUShadingLanguageRI/Test.js:
2022         (makeHalf):
2023         (checkHalf):
2024         * WebGPUShadingLanguageRI/Visitor.js:
2025         (Visitor.prototype.visitMatrixType):
2026         (Visitor):
2027         * WebGPUShadingLanguageRI/index.html:
2028
2029 2018-08-29  Simon Fraser  <simon.fraser@apple.com>
2030
2031         Teach webkitpy how to check leaks and treat leaks as test failures
2032         https://bugs.webkit.org/show_bug.cgi?id=189067
2033
2034         Reviewed by Darin Adler.
2035         
2036         Add a new "--world-leaks" argument to run-webkit-tests. When enabled, DRT/WTR are launched
2037         with a --world-leaks argument (which is renamed in this patch for consistency). This enables the
2038         behavior added in r235408, namely that they check for leaked documents after each test, and at
2039         the end of one (if --run-singly) or a set of tests run in a single DRT/WTR instance handle the
2040         "#CHECK FOR WORLD LEAKS" command to get still-live documents.
2041         
2042         LayoutTestRunner in webkitpy now has the notion of doing "post-tests work", called via _finished_test_group(),
2043         and here it sends the "#CHECK FOR WORLD LEAKS" command to the runner and parses the resulting output block.
2044         If this results block includes leaks, we convert an existing TestResult into a LEAK failure
2045         in TestRunResults.change_result_to_failure(). Leaks are then added to the ouput JSON for display in results.html
2046
2047         Unit tests are updated with some leak examples.
2048
2049         * DumpRenderTree/mac/DumpRenderTree.mm:
2050         (initializeGlobalsFromCommandLineOptions):
2051         * Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
2052         (ParsedJSONResultsTest):
2053         * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
2054         (LayoutTestRunner._annotate_results_with_additional_failures):
2055         (LayoutTestRunner._handle_finished_test_group):
2056         (Worker.handle):
2057         (Worker._run_test):
2058         (Worker._do_post_tests_work):
2059         (Worker._finished_test_group):
2060         (Worker._run_test_in_another_thread):
2061         * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
2062         (JSONLayoutResultsGenerator):
2063         * Scripts/webkitpy/layout_tests/models/test_expectations.py:
2064         (TestExpectationParser):
2065         (TestExpectations):
2066         * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
2067         (Base.get_basic_tests):
2068         * Scripts/webkitpy/layout_tests/models/test_failures.py:
2069         (determine_result_type):
2070         (FailureLeak):
2071         (FailureLeak.__init__):
2072         (FailureLeak.message):
2073         (FailureDocumentLeak):
2074         (FailureDocumentLeak.__init__):
2075         (FailureDocumentLeak.message):
2076         * Scripts/webkitpy/layout_tests/models/test_results.py:
2077         (TestResult.convert_to_failure):
2078         * Scripts/webkitpy/layout_tests/models/test_run_results.py:
2079         (TestRunResults.change_result_to_failure):
2080         (_interpret_test_failures):
2081         (summarize_results):
2082         * Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:
2083         (get_result):
2084         (run_results):
2085         (summarized_results):
2086         * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
2087         (parse_args):
2088         * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
2089         (parse_args):
2090         (RunTest.test_check_for_world_leaks):
2091         * Scripts/webkitpy/port/driver.py:
2092         (DriverPostTestOutput):
2093         (DriverPostTestOutput.__init__):
2094         (Driver.do_post_tests_work):
2095         (Driver._parse_world_leaks_output):
2096         (Driver.cmd_line):
2097         (DriverProxy.do_post_tests_work):
2098         * Scripts/webkitpy/port/test.py:
2099         (unit_test_list):
2100         * WebKitTestRunner/Options.cpp:
2101         (WTR::OptionsHandler::OptionsHandler):
2102         * WebKitTestRunner/TestController.cpp:
2103         (WTR::TestController::checkForWorldLeaks):
2104
2105 2018-08-29  David Kilzer  <ddkilzer@apple.com>
2106
2107         Remove empty directories from from svn.webkit.org repository
2108         <https://webkit.org/b/189081>
2109
2110         * DumpRenderTree/TestNetscapePlugIn/unix: Removed.
2111         * WebKitTestRunner/UIScriptContext: Removed.
2112
2113 2018-08-29  Pablo Saavedra  <psaavedra@igalia.com>
2114
2115         [GTK][WPE] Add JSCOnly Release bot for Linux ARMv7 Thumb2 SoftFP
2116         https://bugs.webkit.org/show_bug.cgi?id=189077
2117
2118         Reviewed by Michael Catanzaro.
2119
2120         Deployed new bot for WPE Release in Linux ARMv7 Thumb2 SoftFP
2121         This bot (jsconly-linux-igalia-bot-5) will run the 'JSCOnly
2122         Linux ARMv7 Thumb2 SoftFP Release' buildjob.
2123
2124         * BuildSlaveSupport/build.webkit.org-config/config.json:
2125         * BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
2126
2127 2018-08-28  Daniel Bates  <dabates@apple.com>
2128
2129         lldb-webkit: KeyError thrown for OptionSet
2130         https://bugs.webkit.org/show_bug.cgi?id=189062
2131
2132         Reviewed by Simon Fraser.
2133
2134         For some reason lldb(1) may not retrieve the enumerator names for an enum value
2135         when it calls update() on the synthetic children provider. If this occurs then
2136         bail out as we cannot compute what enumerators are in the set.
2137
2138         * lldb/lldb_webkit.py:
2139         (WTFOptionSetProvider.update):
2140
2141 2018-08-28  Sihui Liu  <sihui_liu@apple.com>
2142
2143         Add error information to help debug test failure in WKNavigation.ProcessCrashDuringCallback
2144         https://bugs.webkit.org/show_bug.cgi?id=189037
2145
2146         Reviewed by Chris Dumez.
2147
2148         * TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
2149         (TEST):
2150
2151 2018-08-28  David Kilzer  <ddkilzer@apple.com>
2152
2153         Fix incorrect use of `sourceTree = "<group>";` for built products and frameworks in Xcode projects
2154
2155         Found by tidy-Xcode-project-file script (see Bug 188754).
2156
2157         * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
2158         (IOKit.framework): Use `sourceTree = "<absolute>";` to match
2159         other frameworks in the project.
2160         * MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
2161         (WebKit.framework): Use `sourceTree = BUILT_PRODUCTS_DIR;` for
2162         built product instead of relative build directory path.
2163         * jsc-cli/jsc-cli.xcodeproj/project.pbxproj:
2164         (JavaScriptCore.framework): Ditto.
2165         * lldb/lldbWebKitTester/lldbWebKitTester.xcodeproj/project.pbxproj:
2166         (libWTF.a): Use `sourceTree = BUILT_PRODUCTS_DIR;` for built
2167         product.
2168
2169 2018-08-28  Alex Christensen  <achristensen@webkit.org>
2170
2171         Fix 32-bit Mac build.
2172
2173         * TestWebKitAPI/Tests/WebKitCocoa/RestoreSessionStateWithoutNavigation.mm:
2174
2175 2018-08-28  Alex Christensen  <achristensen@webkit.org>
2176
2177         REGRESSION (r235391): [iOS] TestWebKitAPI.WebKit.RestoreSessionStateWithoutNavigation is timing out
2178         https://bugs.webkit.org/show_bug.cgi?id=189050
2179
2180         Reviewed by Tim Horton.
2181
2182         * TestWebKitAPI/Tests/WebKitCocoa/RestoreSessionStateWithoutNavigation.mm:
2183         This test wasn't run on iOS before.  Let's re-introduce the WK_HAVE_C_SPI guard.
2184
2185 2018-08-28  Wenson Hsieh  <wenson_hsieh@apple.com>
2186
2187         [iOS] WKAttachmentTests.DropFolderAsAttachmentAndMoveByDragging encounters an exception on iOS simulator
2188         https://bugs.webkit.org/show_bug.cgi?id=189049
2189
2190         Reviewed by Tim Horton.
2191
2192         Wrap an NSURL in a RetainPtr to prevent it from being freed prematurely. It seems this broke when I changed the
2193         load handler from an Objective-C block that captured `folderURL` to a C++ lambda that didn't retain `folderURL`.
2194
2195         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
2196         (simulateFolderDragWithURL):
2197
2198 2018-08-27  Wenson Hsieh  <wenson_hsieh@apple.com>
2199
2200         [Attachment Support] Remove WebCore::AttachmentDisplayOptions and friends
2201         https://bugs.webkit.org/show_bug.cgi?id=189004
2202
2203         Reviewed by Dan Bernstein.
2204
2205         Move off of deprecated attachment insertion SPI.
2206
2207         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
2208         (-[TestWKWebView synchronouslyInsertAttachmentWithFileWrapper:contentType:]):
2209         (-[TestWKWebView synchronouslyInsertAttachmentWithFilename:contentType:data:]):
2210         (-[_WKAttachment synchronouslySetDisplayOptions:error:]): Deleted.
2211
2212 2018-08-27  Simon Fraser  <simon.fraser@apple.com>
2213
2214         Teach WebKitTestRunner and DumpRenderTree about detecting world leaks
2215         https://bugs.webkit.org/show_bug.cgi?id=188994
2216
2217         Reviewed by Tim Horton.
2218         
2219         This patch adds the notion of a "control command" in the protocol between webkitpy and 
2220         WebKitTestRunner/DumpRenderTree. A command is simply an input string starting with a #
2221         that is checked for before trying to parse the input as test URL. For now, just one
2222         commmand is supported, which is "#CHECK FOR WORLD LEAKS".
2223         
2224         In response to the command, the tool dumps an output block in the usual pseudo-MIME-style,
2225         with a trailing "#EOF". Future patches will add support to webkitpy to parse this output.
2226         
2227         DumpRenderTree stubs out the command, returning an empty block.
2228         
2229         WebKitTestRunner responds to the command by dumping the list of live documents, if it was
2230         run with the --check-for-world-leaks option.
2231         
2232         When run with --check-for-world-leaks, WebKitTestRunner gets the list of live documents via
2233         WKBundleGetLiveDocumentURLs() after every test (this allows it to detect the first test
2234         that leaked a document), and keeps them in a map of document identifier to test and live document URL.
2235         Then when it receives the "#CHECK FOR WORLD LEAKS" command, it calls into the bundle to
2236         clear the page and memory caches, runs a GC, then posts a task (in the Document::postTaks() sense)
2237         after which it requests the list of live documents for a final time, excluding any that are loaded
2238         in live Frames (thus omitting the about:blank that will be loaded at this point). Documents in this
2239         list are therefore leaked (or abandoned).
2240         
2241         Future patches will hook up webkitpy reporting for leaked documents.
2242
2243         * DumpRenderTree/mac/DumpRenderTree.mm:
2244         (initializeGlobalsFromCommandLineOptions):
2245         (handleControlCommand):
2246         (runTestingServerLoop):
2247         * DumpRenderTree/win/DumpRenderTree.cpp:
2248         (handleControlCommand):
2249         (main):
2250         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
2251         (WTR::postGCTask):
2252         (WTR::InjectedBundle::reportLiveDocuments):
2253         (WTR::InjectedBundle::didReceiveMessageToPage):
2254         * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
2255         * WebKitTestRunner/Options.cpp:
2256         (WTR::handleOptionCheckForWorldLeaks):
2257         (WTR::OptionsHandler::OptionsHandler):
2258         * WebKitTestRunner/Options.h:
2259         * WebKitTestRunner/TestController.cpp:
2260         (WTR::AsyncTask::run):
2261         (WTR::AsyncTask::currentTask):
2262         (WTR::TestController::initialize):
2263         (WTR::TestController::ensureViewSupportsOptionsForTest):
2264         (WTR::TestController::resetStateToConsistentValues):
2265         (WTR::TestController::updateLiveDocumentsAfterTest):
2266         (WTR::TestController::checkForWorldLeaks):
2267         (WTR::TestController::findAndDumpWorldLeaks):
2268         (WTR::TestController::willDestroyWebView):
2269         (WTR::parseInputLine):
2270         (WTR::TestController::waitForCompletion):
2271         (WTR::TestController::handleControlCommand):
2272         (WTR::TestController::runTestingServerLoop):
2273         (WTR::TestController::run):
2274         (WTR::TestController::didReceiveLiveDocumentsList):
2275         (WTR::TestController::didReceiveMessageFromInjectedBundle):
2276         * WebKitTestRunner/TestController.h:
2277         (WTR::AsyncTask::AsyncTask):
2278         (WTR::AsyncTask::taskComplete):
2279         (WTR::TestController::AbandonedDocumentInfo::AbandonedDocumentInfo):
2280         * WebKitTestRunner/TestInvocation.cpp:
2281         (WTR::TestInvocation::invoke):
2282         * WebKitTestRunner/TestOptions.h:
2283         (WTR::TestOptions::hasSameInitializationOptions const):
2284
2285 2018-08-27  Alex Christensen  <achristensen@webkit.org>
2286
2287         Fix API test after r235398
2288         https://bugs.webkit.org/show_bug.cgi?id=188997
2289
2290         * TestWebKitAPI/Tests/WebKit/ShouldKeepCurrentBackForwardListItemInList.cpp:
2291         (TestWebKitAPI::setPageLoaderClient):
2292         (TestWebKitAPI::willGoToBackForwardListItem): Deleted.
2293         willGoToBackForwardListItem is unused and unsupported.  Removing its check.
2294
2295 2018-08-27  Daniel Bates  <dabates@apple.com>
2296
2297         Partial revert of r235376
2298         https://bugs.webkit.org/show_bug.cgi?id=189011
2299
2300         For now revert the unit tests added in r235376 as the following tests are failing on Apple Sierra
2301         Debug and Apple High Sierra Debug bots:
2302
2303             lldb_webkit_unittest.TestSummaryProviders.serial_test_WTFOptionSetProvider_simple
2304             lldb_webkit_unittest.TestSummaryProviders.serial_test_WTFOptionSet_SummaryProvider_simple
2305
2306         Will investigate offline.
2307
2308         * lldb/lldbWebKitTester/main.cpp:
2309         (testSummaryProviders):
2310         * lldb/lldb_webkit_unittest.py:
2311         (TestSummaryProviders.serial_test_WTFHashSet_tablesize_and_size):
2312         (TestSummaryProviders.serial_test_WTFOptionSet_SummaryProvider_empty): Deleted.
2313         (TestSummaryProviders.serial_test_WTFOptionSet_SummaryProvider_simple): Deleted.
2314         (TestSummaryProviders.serial_test_WTFOptionSetProvider_empty): Deleted.
2315         (TestSummaryProviders.serial_test_WTFOptionSetProvider_simple): Deleted.
2316
2317 2018-08-27  Aditya Keerthi  <akeerthi@apple.com>
2318
2319         Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
2320         https://bugs.webkit.org/show_bug.cgi?id=188931
2321
2322         Reviewed by Wenson Hsieh.
2323
2324         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER.
2325
2326 2018-08-27  Justin Fan  <justin_fan@apple.com>
2327
2328         Add Justin Fan to list of WebKit contributors
2329         https://bugs.webkit.org/show_bug.cgi?id=184431
2330
2331         * Scripts/webkitpy/common/config/contributors.json:
2332
2333 2018-08-27  Simon Fraser  <simon.fraser@apple.com>
2334
2335         Convert timeout values in WebKitTestRunner to WTF::Seconds
2336         https://bugs.webkit.org/show_bug.cgi?id=188987
2337
2338         Reviewed by Ryosuke Niwa.
2339         
2340         Replace various 'int' timeout values with WTF::Seconds. The timeout argument
2341         comes in as milliseconds, so convert on input. When sending messages to the InjectedBundle
2342         using integers, convert to and from milliseconds.
2343         
2344         Also do some #pragma once, and initializer cleanup.
2345
2346         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
2347         (WTR::InjectedBundle::didReceiveMessageToPage):
2348         (WTR::InjectedBundle::beginTesting):
2349         (WTR::InjectedBundle::InjectedBundle): Deleted.
2350         * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
2351         * WebKitTestRunner/InjectedBundle/TestRunner.h:
2352         (WTR::TestRunner::timeout):
2353         (WTR::TestRunner::setCustomTimeout):
2354         * WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
2355         (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
2356         * WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
2357         (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer):
2358         (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
2359         * WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:
2360         (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
2361         * WebKitTestRunner/TestController.cpp:
2362         (WTR::TestController::TestController):
2363         (WTR::parseInputLine):
2364         (WTR::TestController::runTest):
2365         (WTR::TestController::runUntil):
2366         (WTR::TestController::didReceiveMessageFromInjectedBundle):
2367         * WebKitTestRunner/TestController.h:
2368         * WebKitTestRunner/TestInvocation.cpp:
2369         (WTR::TestInvocation::shortTimeout const):
2370         (WTR::TestInvocation::createTestSettingsDictionary):
2371         * WebKitTestRunner/TestInvocation.h:
2372         * WebKitTestRunner/TestOptions.h:
2373         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
2374         (WTR::TestController::platformRunUntil):
2375         * WebKitTestRunner/gtk/TestControllerGtk.cpp:
2376         (WTR::TestController::platformRunUntil):
2377         * WebKitTestRunner/wpe/TestControllerWPE.cpp:
2378         (WTR::TestController::platformRunUntil):
2379
2380 2018-08-27  Simon Fraser  <simon.fraser@apple.com>
2381
2382         Convert timeout values in WebKitTestRunner to WTF::Seconds
2383         https://bugs.webkit.org/show_bug.cgi?id=188987
2384
2385         Reviewed by Ryosuke Niwa.
2386         
2387         Replace various 'int' timeout values with WTF::Seconds. The timeout argument
2388         comes in as milliseconds, so convert on input. When sending messages to the InjectedBundle
2389         using integers, convert to and from milliseconds.
2390         
2391         Also do some #pragma once, and initializer cleanup.
2392
2393         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
2394         (WTR::InjectedBundle::didReceiveMessageToPage):
2395         (WTR::InjectedBundle::beginTesting):
2396         (WTR::InjectedBundle::InjectedBundle): Deleted.
2397         * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
2398         * WebKitTestRunner/InjectedBundle/TestRunner.h:
2399         (WTR::TestRunner::timeout):
2400         (WTR::TestRunner::setCustomTimeout):
2401         * WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
2402         (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
2403         * WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
2404         (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer):
2405         (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
2406         * WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:
2407         (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
2408         * WebKitTestRunner/TestController.cpp:
2409         (WTR::TestController::TestController):
2410         (WTR::parseInputLine):
2411         (WTR::TestController::runTest):
2412         (WTR::TestController::runUntil):
2413         (WTR::TestController::didReceiveMessageFromInjectedBundle):
2414         * WebKitTestRunner/TestController.h:
2415         * WebKitTestRunner/TestInvocation.cpp:
2416         (WTR::TestInvocation::shortTimeout const):
2417         (WTR::TestInvocation::createTestSettingsDictionary):
2418         * WebKitTestRunner/TestInvocation.h:
2419         * WebKitTestRunner/TestOptions.h:
2420         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
2421         (WTR::TestController::platformRunUntil):
2422         * WebKitTestRunner/gtk/TestControllerGtk.cpp:
2423         (WTR::TestController::platformRunUntil):
2424         * WebKitTestRunner/wpe/TestControllerWPE.cpp:
2425         (WTR::TestController::platformRunUntil):
2426
2427 2018-08-27  Alex Christensen  <achristensen@webkit.org>
2428
2429         REGRESSION(r234985/r234989) WKPageLoadHTMLString with a 16-bit String has the wrong encoding
2430         https://bugs.webkit.org/show_bug.cgi?id=189002
2431
2432         Reviewed by Tim Horton.
2433
2434         * TestWebKitAPI/Tests/WebKit/WillLoad.cpp:
2435         (TestWebKitAPI::TEST_F):
2436
2437 2018-08-27  Wenson Hsieh  <wenson_hsieh@apple.com>
2438
2439         [Cocoa] Exception (fileType 'dyn.agq8u' is not a valid UTI) raised when dragging an attachment whose file wrapper is a directory
2440         https://bugs.webkit.org/show_bug.cgi?id=188903
2441         <rdar://problem/43702993>
2442
2443         Reviewed by Tim Horton.
2444
2445         Add two API tests and adjust existing WKAttachment API tests. The new tests exercise the following scenarios, in
2446         both iOS and macOS:
2447         •       Dropping a folder as an attachment element, and then moving that attachment element in the document by
2448                 dragging and dropping.
2449         •       Using WKWebView SPI to insert a folder and a file with an unknown extension, and then using more
2450                 _WKAttachment SPI to swap the attachments' backing file wrappers.
2451
2452         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
2453         (runTestWithTemporaryFolder):
2454
2455         Add a helper function to run a test with a new folder path, created in the temporary directory and populated
2456         with some sample content. This folder is deleted after running the test.
2457
2458         (simulateFolderDragWithURL):
2459
2460         Add a helper function to prepare a given DragAndDropSimulator for simulating a dragged folder from a source
2461         external to the web view.
2462
2463         (platformCopyRichTextWithMultipleAttachments):
2464         (platformCopyRichTextWithImage):
2465         (platformCopyPNG):
2466         (TestWebKitAPI::TEST):
2467
2468         Add new API tests, and adjust existing tests to reflect new -setFileWrapper:…: behavior. Specifically,
2469         ChangeAttachmentDataAndFileInformation previously required that changing a _WKAttachment's NSFileWrapper would
2470         preserve the previous NSFileWrapper's preferred name if the new file wrapper does not have a preferred name, but
2471         this quirk is no longer supported.
2472
2473         Also add a few bridging casts for the eventual transition of TestWebKitAPI to ARC.
2474
2475         * TestWebKitAPI/cocoa/DragAndDropSimulator.h:
2476
2477         Add a new hook to clear any external drag information on an existing DragAndDropSimulator. This is convenient
2478         when using the same DragAndDropSimulator to perform multiple drags in a single test.
2479
2480         * TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
2481         (-[DragAndDropSimulator clearExternalDragInformation]):
2482         * TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
2483         (-[DragAndDropSimulator clearExternalDragInformation]):
2484
2485 2018-08-27  Alex Christensen  <achristensen@webkit.org>
2486
2487         Translate 4 tests using WKPageLoaderClient to ObjC
2488         https://bugs.webkit.org/show_bug.cgi?id=188827
2489
2490         Reviewed by Tim Horton.
2491
2492         They use processDidBecomeUnresponsive, didChangeBackForwardList, or willGoToBackForwardListItem.
2493         Rather than introduce these to WKPageNavigationClient, I just translated the tests to use WKNavigationDelegate, which already have equivalent callbacks.
2494         willGoToBackForwardListItem had userData from the InjectedBundle, but nobody was using it so I did not add that to the ObjC SPI, so I don't test that unused
2495         bundle functionality any more.
2496
2497         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2498         * TestWebKitAPI/Tests/WebKit/ResponsivenessTimer.cpp: Removed.
2499         * TestWebKitAPI/Tests/WebKit/ResponsivenessTimerDoesntFireEarly.cpp: Removed.
2500         * TestWebKitAPI/Tests/WebKit/RestoreSessionStateWithoutNavigation.cpp: Removed.
2501         * TestWebKitAPI/Tests/WebKit/ShouldGoToBackForwardListItem.cpp: Removed.
2502         * TestWebKitAPI/Tests/WebKit/ShouldGoToBackForwardListItem_Bundle.cpp: Removed.
2503         * TestWebKitAPI/Tests/WebKitCocoa/ResponsivenessTimer.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit/ResponsivenessTimer.cpp.
2504         (-[ResponsivenessTimerDelegate webView:didFinishNavigation:]):
2505         (-[ResponsivenessTimerDelegate _webViewWebProcessDidBecomeUnresponsive:]):
2506         (TestWebKitAPI::TEST):
2507         (): Deleted.
2508         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
2509         (TestWebKitAPI::processDidBecomeUnresponsive): Deleted.
2510         (TestWebKitAPI::setPageLoaderClient): Deleted.
2511         * TestWebKitAPI/Tests/WebKitCocoa/ResponsivenessTimerDoesntFireEarly.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit/ResponsivenessTimerDoesntFireEarly.cpp.
2512         (-[ResponsivenessDelegate webView:didFinishNavigation:]):
2513         (-[ResponsivenessDelegate _webViewWebProcessDidBecomeUnresponsive:]):
2514         (TestWebKitAPI::TEST):
2515         (TestWebKitAPI::didReceiveMessageFromInjectedBundle): Deleted.
2516         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
2517         (TestWebKitAPI::processDidBecomeUnresponsive): Deleted.
2518         (TestWebKitAPI::setInjectedBundleClient): Deleted.
2519         (TestWebKitAPI::setPageLoaderClient): Deleted.
2520         * TestWebKitAPI/Tests/WebKitCocoa/RestoreSessionStateWithoutNavigation.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit/RestoreSessionStateWithoutNavigation.cpp.
2521         (-[SessionStateDelegate webView:didFinishNavigation:]):
2522         (-[SessionStateDelegate _webView:backForwardListItemAdded:removed:]):
2523         (TestWebKitAPI::createSessionStateData):
2524         (TestWebKitAPI::TEST):
2525         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
2526         (TestWebKitAPI::didChangeBackForwardListForPage): Deleted.
2527         (TestWebKitAPI::setPageLoaderClient): Deleted.
2528         * TestWebKitAPI/Tests/WebKitCocoa/ShouldGoToBackForwardListItem.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit/ShouldGoToBackForwardListItem.cpp.
2529         (-[BackForwardClient webView:didFinishNavigation:]):
2530         (-[BackForwardClient _webView:willGoToBackForwardListItem:inPageCache:]):
2531         (TestWebKitAPI::TEST):
2532         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
2533         (TestWebKitAPI::willGoToBackForwardListItem): Deleted.
2534         (TestWebKitAPI::setPageLoaderClient): Deleted.
2535
2536 2018-08-27  Wenson Hsieh  <wenson_hsieh@apple.com>
2537
2538         [Cocoa] "video.html" appears at the top level of the TestWebKitAPI Xcode project
2539         https://bugs.webkit.org/show_bug.cgi?id=188989
2540
2541         Reviewed by Andy Estes.
2542
2543         Move this into the Tests/WebKit/Resources group in the project.
2544
2545         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2546
2547 2018-08-27  Thomas Denney  <tdenney@apple.com>
2548
2549         Avoid an exception in the interactive interpreter
2550         https://bugs.webkit.org/show_bug.cgi?id=188991
2551
2552         Reviewed by Myles C. Maxfield.
2553
2554         * WebGPUShadingLanguageRI/index.html: Corrects a typo in the name of a
2555         local variable
2556
2557 2018-08-27  Thomas Denney  <tdenney@apple.com>
2558
2559         Allow new vector types to work with the interactive interpreter
2560         https://bugs.webkit.org/show_bug.cgi?id=188988
2561
2562         Reviewed by Myles C. Maxfield.
2563
2564         * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js:
2565         (FlattenedStructOffsetGatherer.prototype.visitTypeRef): Do not
2566         unncessarily visit the type arguments of a TypeRef, as by this point
2567         there are none that are relevant.
2568         * WebGPUShadingLanguageRI/Intrinsics.js:
2569         (Intrinsics): Treat VectorType as a primitive type.
2570
2571 2018-08-27  Keith Rollin  <krollin@apple.com>
2572
2573         Build system support for LTO
2574         https://bugs.webkit.org/show_bug.cgi?id=187785
2575         <rdar://problem/42353132>
2576
2577         Reviewed by Dan Bernstein.
2578
2579         Add tools/scripts support for controlling LTO builds.
2580
2581         * Scripts/build-webkit: Add --lto-mode={none,thin,full}.
2582         * Scripts/set-webkit-configuration: Add support for saving LTO
2583         configuration to WebKitBuild/LTO.
2584         * Scripts/webkitdirs.pm: Add support for reading configuration from
2585         WebKitBuild/LTO and providing it to xcodebuild.
2586         (determineLTOMode):
2587         (ltoMode):
2588         (XcodeOptions):
2589
2590 2018-08-27  Daniel Bates  <dabates@apple.com>
2591
2592         lldb-webkit: Pretty-print OptionSet
2593         https://bugs.webkit.org/show_bug.cgi?id=188936
2594
2595         Reviewed by Simon Fraser.
2596
2597         Add LLDB formatters to pretty-print an OptionSet.
2598
2599         * lldb/lldbWebKitTester/main.cpp:
2600         (testSummaryProviders):
2601         * lldb/lldb_webkit.py:
2602         (__lldb_init_module):
2603         (__lldb_init_module.lldb_webkit):
2604         (WTFOptionSet_SummaryProvider):
2605         (WTFOptionSetProvider):
2606         (WTFOptionSetProvider.__init__):
2607         (WTFOptionSetProvider.has_children):
2608         (WTFOptionSetProvider.num_children):
2609         (WTFOptionSetProvider.get_child_index):
2610         (WTFOptionSetProvider.get_child_at_index):
2611         (WTFOptionSetProvider.update):
2612         * lldb/lldb_webkit_unittest.py:
2613         (TestSummaryProviders.serial_test_WTFHashSet_tablesize_and_size):
2614         (TestSummaryProviders):
2615         (TestSummaryProviders.serial_test_WTFOptionSet_SummaryProvider_empty):
2616         (TestSummaryProviders.serial_test_WTFOptionSet_SummaryProvider_simple):
2617         (TestSummaryProviders.serial_test_WTFOptionSetProvider_empty):
2618         (TestSummaryProviders.serial_test_WTFOptionSetProvider_simple):
2619
2620 2018-08-27  Wenson Hsieh  <wenson_hsieh@apple.com>
2621
2622         [Attachment Support] [WK2] Images copied from Mail message view paste with the wrong file name in compose
2623         https://bugs.webkit.org/show_bug.cgi?id=188957
2624         <rdar://problem/43737715>
2625
2626         Reviewed by Darin Adler.
2627
2628         Add a new API test to verify that pasting a web archive containing several image elements with alt attributes
2629         generates _WKAttachments whose names reflect those alt attributes.
2630
2631         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
2632         (testGIFFileURL):
2633         (testGIFData):
2634         (TestWebKitAPI::TEST):
2635
2636 2018-08-27  Alex Christensen  <achristensen@webkit.org>
2637
2638         Unreviewed, rolling out r235367.
2639
2640         Broke iOS build.
2641
2642         Reverted changeset:
2643
2644         "Translate 4 tests using WKPageLoaderClient to ObjC"
2645         https://bugs.webkit.org/show_bug.cgi?id=188827
2646         https://trac.webkit.org/changeset/235367
2647
2648 2018-08-27  Alex Christensen  <achristensen@webkit.org>
2649
2650         Fix GTK build.
2651
2652         * TestWebKitAPI/CMakeLists.txt:
2653
2654 2018-08-27  Alex Christensen  <achristensen@webkit.org>
2655
2656         Fix iOS build.
2657
2658         * TestWebKitAPI/PlatformWebView.h:
2659
2660 2018-08-27  Alex Christensen  <achristensen@webkit.org>
2661
2662         Translate 4 tests using WKPageLoaderClient to ObjC
2663         https://bugs.webkit.org/show_bug.cgi?id=188827
2664
2665         Reviewed by Tim Horton.
2666
2667         They use processDidBecomeUnresponsive, didChangeBackForwardList, or willGoToBackForwardListItem.
2668         Rather than introduce these to WKPageNavigationClient, I just translated the tests to use WKNavigationDelegate, which already have equivalent callbacks.
2669         willGoToBackForwardListItem had userData from the InjectedBundle, but nobody was using it so I did not add that to the ObjC SPI, so I don't test that unused
2670         bundle functionality any more.
2671
2672         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2673         * TestWebKitAPI/Tests/WebKit/ResponsivenessTimer.cpp: Removed.
2674         * TestWebKitAPI/Tests/WebKit/ResponsivenessTimerDoesntFireEarly.cpp: Removed.
2675         * TestWebKitAPI/Tests/WebKit/RestoreSessionStateWithoutNavigation.cpp: Removed.
2676         * TestWebKitAPI/Tests/WebKit/ShouldGoToBackForwardListItem.cpp: Removed.
2677         * TestWebKitAPI/Tests/WebKit/ShouldGoToBackForwardListItem_Bundle.cpp: Removed.
2678         * TestWebKitAPI/Tests/WebKitCocoa/ResponsivenessTimer.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit/ResponsivenessTimer.cpp.
2679         (-[ResponsivenessTimerDelegate webView:didFinishNavigation:]):
2680         (-[ResponsivenessTimerDelegate _webViewWebProcessDidBecomeUnresponsive:]):
2681         (TestWebKitAPI::TEST):
2682         (): Deleted.
2683         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
2684         (TestWebKitAPI::processDidBecomeUnresponsive): Deleted.
2685         (TestWebKitAPI::setPageLoaderClient): Deleted.
2686         * TestWebKitAPI/Tests/WebKitCocoa/ResponsivenessTimerDoesntFireEarly.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit/ResponsivenessTimerDoesntFireEarly.cpp.
2687         (-[ResponsivenessDelegate webView:didFinishNavigation:]):
2688         (-[ResponsivenessDelegate _webViewWebProcessDidBecomeUnresponsive:]):
2689         (TestWebKitAPI::TEST):
2690         (TestWebKitAPI::didReceiveMessageFromInjectedBundle): Deleted.
2691         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
2692         (TestWebKitAPI::processDidBecomeUnresponsive): Deleted.
2693         (TestWebKitAPI::setInjectedBundleClient): Deleted.
2694         (TestWebKitAPI::setPageLoaderClient): Deleted.
2695         * TestWebKitAPI/Tests/WebKitCocoa/RestoreSessionStateWithoutNavigation.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit/RestoreSessionStateWithoutNavigation.cpp.
2696         (-[SessionStateDelegate webView:didFinishNavigation:]):
2697         (-[SessionStateDelegate _webView:backForwardListItemAdded:removed:]):
2698         (TestWebKitAPI::createSessionStateData):
2699         (TestWebKitAPI::TEST):
2700         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
2701         (TestWebKitAPI::didChangeBackForwardListForPage): Deleted.
2702         (TestWebKitAPI::setPageLoaderClient): Deleted.
2703         * TestWebKitAPI/Tests/WebKitCocoa/ShouldGoToBackForwardListItem.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit/ShouldGoToBackForwardListItem.cpp.
2704         (-[BackForwardClient webView:didFinishNavigation:]):
2705         (-[BackForwardClient _webView:willGoToBackForwardListItem:inPageCache:]):
2706         (TestWebKitAPI::TEST):
2707         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
2708         (TestWebKitAPI::willGoToBackForwardListItem): Deleted.
2709         (TestWebKitAPI::setPageLoaderClient): Deleted.
2710
2711 2018-08-27  Keith Miller  <keith_miller@apple.com>
2712
2713         test262-runner -s --test-only should replace test results
2714         https://bugs.webkit.org/show_bug.cgi?id=188450
2715
2716         Reviewed by Michael Saboff.
2717
2718         * Scripts/test262/Runner.pm:
2719         (main):
2720         (SetFailureForTest):
2721         (UpdateResults):
2722
2723 2018-08-26  Sam Weinig  <sam@webkit.org>
2724
2725         Using _WKRemoteObjectInterface with a protocol that inherits from a non-NSObject protocol crashes
2726         https://bugs.webkit.org/show_bug.cgi?id=188958
2727
2728         Reviewed by Anders Carlsson.
2729
2730         * TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.h:
2731         Update test protocol to have inheritance.
2732
2733 2018-08-26  Wenson Hsieh  <wenson_hsieh@apple.com>
2734
2735         [Attachment Support] Dropping and pasting images should insert inline image elements with _WKAttachments
2736         https://bugs.webkit.org/show_bug.cgi?id=188933
2737         <rdar://problem/43699724>
2738
2739         Reviewed by Darin Adler.
2740
2741         Rebaseline existing API tests that involve dropping or pasting image files, and additionally write some new
2742         tests. These new tests exercise the following cases:
2743         •       Inserting and removing newlines before an inline image with an attachment element does not cause new
2744                 _WKAttachments to be created and destroyed.
2745         •       Pasting an image, cutting it, and then pasting it again propagates an attachment update to the UI
2746                 process with the original _WKAttachment.
2747         •       A pasted attachment in the document can be moved around by dragging, and doing so does not cause us to
2748                 lose a _WKAttachment.
2749
2750         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
2751         (-[TestWKWebView expectElementCount:tagName:]):
2752         (TestWebKitAPI::TEST):
2753
2754         Add the new tests described above, and also adjust existing tests to check that images are dropped or pasted
2755         as image elements, but still have associated attachment elements whose attachment identifiers (observed via
2756         script) match that of the corresponding _WKAttachment's uniqueIdentifier in the UI process.
2757
2758         * TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
2759         (-[DragAndDropSimulator runFrom:to:]):
2760         (-[DragAndDropSimulator continueDragSession]):
2761         (-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
2762
2763         Teach DragAndDropSimulator on macOS to wait until the drop has been handled by the web process before returning
2764         execution to the caller. This ensures that tests which involve dropping promised files as attachments aren't
2765         flaky, due to how the promised data is retrieved asynchronously when performing the drop.
2766
2767         (-[DragAndDropSimulator _webView:didPerformDragOperation:]):
2768
2769 2018-08-26  Lucas Forschler  <lforschler@apple.com>
2770
2771         Open svn.webkit.org for commits.
2772
2773 2018-08-24  Myles C. Maxfield  <mmaxfield@apple.com>
2774
2775         Unreviewed test fix after r235249
2776         https://bugs.webkit.org/show_bug.cgi?id=178981
2777
2778         * WebGPUShadingLanguageRI/Test.js:
2779
2780 2018-08-24  Alex Christensen  <achristensen@webkit.org>
2781
2782         Introduce _WKInspector
2783         https://bugs.webkit.org/show_bug.cgi?id=188923
2784         <rdar://problem/34657861>
2785
2786         Reviewed by Brian Burg.
2787
2788         * MiniBrowser/mac/WK2BrowserWindowController.m:
2789         (-[WK2BrowserWindowController validateMenuItem:]):
2790         (-[WK2BrowserWindowController showHideWebInspector:]):
2791
2792 2018-08-24  Jonathan Bedard  <jbedard@apple.com>
2793
2794         Fix handling of iOS minor versions in default_baseline_search_path
2795         https://bugs.webkit.org/show_bug.cgi?id=188902
2796
2797         Reviewed by Aakash Jain.
2798
2799         * Scripts/webkitpy/port/ios.py:
2800         (IOSPort.default_baseline_search_path): When the major version matches the major version of the CURRENT_VERSION, treat
2801         it as a the CURRENT_VERSION.
2802
2803 2018-08-24  Antti Koivisto  <antti@apple.com>
2804
2805         Allow creating WeakPtrs to const objects
2806         https://bugs.webkit.org/show_bug.cgi?id=188785
2807
2808         Reviewed by Geoff Garen.
2809
2810         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
2811         (TestWebKitAPI::Base::weakPtrFactory const):
2812         (TestWebKitAPI::TEST):
2813         (TestWebKitAPI::Base::weakPtrFactory): Deleted.
2814
2815 2018-08-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2816
2817         [GTK][WPE] Add API to inject/register user content in isolated worlds
2818         https://bugs.webkit.org/show_bug.cgi?id=188883
2819
2820         Reviewed by Michael Catanzaro.
2821
2822         Add test cases for the new API.
2823
2824         * TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:
2825         (isStyleSheetInjectedForURLAtPath):
2826         (isScriptInjectedForURLAtPath):
2827         (testUserContentManagerInjectedStyleSheet):
2828         (testUserContentManagerInjectedScript):
2829         (UserScriptMessageTest::registerHandler):
2830         (UserScriptMessageTest::unregisterHandler):
2831         (UserScriptMessageTest::postMessageAndWaitUntilReceived):
2832         (testUserContentManagerScriptMessageInWorldReceived):
2833         (beforeAll):
2834
2835 2018-08-23  Simon Fraser  <simon.fraser@apple.com>
2836
2837         Add support for dumping GC heap snapshots, and a viewer
2838         https://bugs.webkit.org/show_bug.cgi?id=186416
2839
2840         Reviewed by Joseph Pecoraro.
2841
2842         Add a viewer for GC heap snapshots. A snapshot JSON file can be dragged into this
2843         page for inspection (or set via the 'filename' URL parameter).
2844
2845         For now, this page shows all objects, all roots, and the shortest path from a root
2846         to all HTMLDocuments and Windows.
2847
2848         * GCHeapInspector/gc-heap-inspector.html: Added.
2849         * GCHeapInspector/heap-analysis/HeapSnapshot.js: Copied from Source/WebInspectorUI/UserInterface/Workers/HeapSnapshot/HeapSnapshot.js.
2850         * GCHeapInspector/script/interface.js: Added.
2851
2852 2018-08-23  Alex Christensen  <achristensen@webkit.org>
2853
2854         Add new _webViewRequestPointerLock SPI with a completionHandler
2855         https://bugs.webkit.org/show_bug.cgi?id=188907
2856         <rdar://problem/35871109>
2857
2858         Reviewed by Andy Estes.
2859
2860         * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
2861         (-[PointerLockDelegate _webViewRequestPointerLock:completionHandler:]):
2862         (-[PointerLockDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
2863         (TEST):
2864
2865 2018-08-23  David Fenton  <david_fenton@apple.com>
2866
2867         Unreviewed, rolling out r235129.
2868
2869         broke internal builds
2870
2871         Reverted changeset:
2872
2873         "Allow creating WeakPtrs to const objects"
2874         https://bugs.webkit.org/show_bug.cgi?id=188785
2875         https://trac.webkit.org/changeset/235129
2876
2877 2018-08-23  Jonathan Bedard  <jbedard@apple.com>
2878
2879         API tests should output json results
2880         https://bugs.webkit.org/show_bug.cgi?id=188869
2881         <rdar://problem/43615652>
2882
2883         Reviewed by Aakash Jain.
2884
2885         JSON output for API tests is of the form:
2886             {
2887                 "Failed": [{"name": <test name>, "output": <test log>}],
2888                 "Timedout": [...],
2889                 "Skipped": [...],
2890                 "Crashed": [...]
2891             }
2892         Tests which are successful are not displayed in the json output.
2893
2894         * Scripts/webkitpy/api_tests/manager.py:
2895         (Manager.run): Print test results to provided file as a json dictionary.
2896         * Scripts/webkitpy/api_tests/run_api_tests.py:
2897         (run): Pass json option.
2898         (parse_args): Add --json-output flag.
2899
2900 2018-08-23  Andy Estes  <aestes@apple.com>
2901
2902         [Apple Pay] Introduce Apple Pay JS v4 on iOS 12 and macOS Mojave
2903         https://bugs.webkit.org/show_bug.cgi?id=188829
2904
2905         Reviewed by Tim Horton.
2906
2907         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
2908
2909 2018-08-23  Myles C. Maxfield  <mmaxfield@apple.com>
2910
2911         [WSL] Ternary expressions appear to be unimplemented
2912         https://bugs.webkit.org/show_bug.cgi?id=178981
2913
2914         Reviewed by Saam Barati.
2915
2916         Implement ternary statements. These can be both lvalues and rvalues. (a ? b : c ? d : e)
2917         is parsed as (a ? b : (c ? d : e)).
2918
2919         * WebGPUShadingLanguageRI/All.js:
2920         * WebGPUShadingLanguageRI/Checker.js:
2921         (Checker.prototype.visitTernaryExpression):
2922         * WebGPUShadingLanguageRI/Evaluator.js:
2923         (Evaluator.prototype.visitTernaryExpression):
2924         * WebGPUShadingLanguageRI/NormalUsePropertyResolver.js:
2925         (NormalUsePropertyResolver.prototype.visitTernaryExpression):
2926         (NormalUsePropertyResolver):
2927         * WebGPUShadingLanguageRI/Parse.js:
2928         (parsePossibleTernaryConditional):
2929         * WebGPUShadingLanguageRI/PropertyResolver.js:
2930         (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder.prototype.visitTernaryExpression):
2931         (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder):
2932         (PropertyResolver.prototype._visitRValuesWithinLValue):
2933         * WebGPUShadingLanguageRI/Rewriter.js:
2934         (Rewriter.prototype.visitTernaryExpression):
2935         * WebGPUShadingLanguageRI/SPIRV.html:
2936         * WebGPUShadingLanguageRI/Test.html:
2937         * WebGPUShadingLanguageRI/Test.js:
2938         * WebGPUShadingLanguageRI/Visitor.js:
2939         (Visitor.prototype.visitProtocolDecl):
2940         * WebGPUShadingLanguageRI/index.html:
2941
2942 2018-08-22  Ryosuke Niwa  <rniwa@webkit.org>
2943
2944         Assert in NetworkBlobRegistry::unregisterBlobURL after network process had terminated
2945         https://bugs.webkit.org/show_bug.cgi?id=188880
2946
2947         Reviewed by Saam Barati.
2948
2949         Fixed the bug that testRunner's terminateNetworkProcess, terminateServiceWorkerProcess, and terminateStorageProcess
2950         were asynchronously terminating respective processes. Do so synchronously so that we can deterministically
2951         test WebKit's behavior in layout tests.
2952
2953         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
2954         (WTR::TestRunner::terminateNetworkProcess):
2955         (WTR::TestRunner::terminateServiceWorkerProcess):
2956         (WTR::TestRunner::terminateStorageProcess):
2957         * WebKitTestRunner/TestInvocation.cpp:
2958         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
2959         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
2960
2961 2018-08-23  Myles C. Maxfield  <mmaxfield@apple.com>
2962
2963         [WHLSL] Allow native types to have type arguments (like "vector<float, 4>")
2964         https://bugs.webkit.org/show_bug.cgi?id=188773
2965
2966         Reviewed by Filip Pizlo.
2967
2968         Before this patch, it was impossible to represent "native typedef vector<float, 4>" because NativeTypes couldn't have
2969         typeArguments.
2970
2971         Previously, the way to identify a type was strictly by name, which was represented by a string. Therefore, when something like
2972         "vector<int, 3>" was parsed, it would produce a TypeRef with the name "vector" and typeArguments [TypeRef, IntLiteral]. Then,
2973         there was a pass to convert the TypeRef to have the name "int3" and no typeArguments. After this transformation, each type could
2974         be uniquely identified by name. That name was then matched to the string-only NativeType name.
2975
2976         This is okay for vectors and matrices, but it is unfortunate for textures (e.g. Texture2D<float4>) because they don't have any
2977         natural string-only name. In addition, the canonicalization would have to be made aware of the fact that Texture2D<float4> is
2978         the same as Texture2D<vector<float, 4>>. Similarly, an author may wish to typedef float4 to a different name.
2979
2980         It would be possible to mangle the names of the texture types to something unique, but then we lose information about the inner
2981         type. For example, if we did this, Visitor wouldn't recurse into the float4 when encountering Texture2D<float4> because that
2982         information would be lost. This could potentially make operations like programWithUnnecessaryThingsRemoved() more difficult to
2983         implement in the future.
2984
2985         So, it would be better to have each type uniquely identified by (name, typeArguments). TypeRef will therefore also have
2986         typeArguments which are used to determine which type it is referencing. After this analysis is done to determine what each
2987         TypeRef is referencing, subsequent passes shouldn't care about the typeArguments and should only care about the .type field
2988         which had been set - this was true even before this patch.
2989
2990         This means that NameContext has to aggregate types that accept typeArguments into arrays, where each array holds all the Types
2991         that have the same name but different typeArguments. Then, when we need to match a TypeRef with a Type, we can ask the
2992         NameContext for the appropriate array. This is the same way that function resolution works.
2993
2994         We can use Node.unify() to determine whether a TypeRef matches a NativeType. Eventually, this will go away, but for now, this is
2995         an okay start. This works just about the same way that function overload resolution works. 
2996
2997         * WebGPUShadingLanguageRI/All.js:
2998         * WebGPUShadingLanguageRI/CallExpression.js:
2999         (CallExpression.prototype.resolve):
3000         * WebGPUShadingLanguageRI/CheckTypesWithArguments.js: Copied from Tools/WebGPUShadingLanguageRI/ResolveTypeDefs.js. After types
3001         have been resolved, there should be no TypeRefs with name "vector" that don't have type arguments. This is just a sanity check.
3002         (checkTypesWithArguments.TypeWithArgumentsChecker.prototype.visitTypeRef):
3003         (checkTypesWithArguments.TypeWithArgumentsChecker):
3004         (checkTypesWithArguments):
3005         * WebGPUShadingLanguageRI/Checker.js:
3006         (Checker.prototype.visitProgram): Program.types mirrors NameContext: it's a Map that maps strings to types. Because types with
3007         typeArguments share names, this has to be updated to map strings to arrays for these types.
3008         (Checker.prototype.visitTypeRef):
3009         * WebGPUShadingLanguageRI/InferTypesForCall.js:
3010         (inferTypesForCall): Don't know why this was here.
3011         (inferTypesForTypeArguments): Same as inferTypesForCall, but this one is for matching type arguments.
3012         * WebGPUShadingLanguageRI/Intrinsics.js: Adding the types. This patch also adds some scalar types like half, char, etc, but they
3013         don't have any functions which accept them. Those will be tested in my next patch which adds math functions for these types. This
3014         moves in the direction of matching the standard library in the spec.
3015         (Intrinsics.cast):
3016         (Intrinsics.bitwiseCast):
3017         (Intrinsics.castToHalf):
3018         (Intrinsics.):
3019         (Intrinsics):
3020         * WebGPUShadingLanguageRI/NameContext.js: Aggregate types with typeArguments into arrays.
3021         (NameContext.prototype.add):
3022         (NameContext.prototype.get let):
3023         (NameContext.underlyingThings.prototype.else):
3024         (NameContext.prototype.Symbol.iterator):
3025         (NameContext):
3026         * WebGPUShadingLanguageRI/NameResolver.js:
3027         (NameResolver.prototype.visitTypeRef): Call TypeRef.resolve().
3028         (NameResolver.prototype.visitCallExpression):
3029         (NameResolver):
3030         (NameResolver.prototype.visitVectorType): Deleted.
3031         * WebGPUShadingLanguageRI/NativeType.js: NativeTypes can have type arguments now.
3032         (NativeType):
3033         (NativeType.prototype.get typeArguments):
3034         (NativeType.prototype.toString):
3035         (NativeType.create):
3036         * WebGPUShadingLanguageRI/Prepare.js:
3037         (let.prepare):
3038         * WebGPUShadingLanguageRI/Program.js: Update to work with types aggregated into arrays.
3039         (Program.prototype.add):
3040         (Program.prototype.toString):
3041         (Program):
3042         * WebGPUShadingLanguageRI/RemoveTypeArguments.js: Removed.
3043         * WebGPUShadingLanguageRI/ResolveNames.js: Update to work with types aggregated into arrays.
3044         (resolveNamesInTypes):
3045         * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: Resolve the type overload for types with typeArguments.
3046         * WebGPUShadingLanguageRI/ResolveTypeDefs.js: Update to work with types aggregated into arrays.
3047         (resolveTypeDefsInTypes):
3048         * WebGPUShadingLanguageRI/Rewriter.js: TypeRefs and Native/Vector types can have typeArguments.
3049         (Rewriter.prototype.visitTypeRef):
3050         (Rewriter.prototype.visitVectorType):
3051         (Rewriter):
3052         * WebGPUShadingLanguageRI/SPIRV.html:
3053         * WebGPUShadingLanguageRI/StandardLibrary.js: Matches Intrinsics.
3054         (bool.operator):
3055         * WebGPUShadingLanguageRI/StatementCloner.js: Native types can have typeArguments.
3056         (StatementCloner.prototype.visitNativeType):
3057         * WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js: Vector types need constructors too.
3058         (synthesizeDefaultConstructorOperator.FindAllTypes.prototype.visitVectorType):
3059         (synthesizeDefaultConstructorOperator.FindAllTypes):
3060         (synthesizeDefaultConstructorOperator):
3061         * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: No reason to distinguish between wrapping and instantiating a TypeRef.
3062         (synthesizeStructAccessors.createTypeRef):
3063         * WebGPUShadingLanguageRI/Test.html:
3064         * WebGPUShadingLanguageRI/Test.js:
3065         * WebGPUShadingLanguageRI/TypeOverloadResolutionFailure.js: Copied from Tools/WebGPUShadingLanguageRI/ResolveTypeDefs.js.
3066         (TypeOverloadResolutionFailure):
3067         (TypeOverloadResolutionFailure.prototype.get type):
3068         (TypeOverloadResolutionFailure.prototype.get reason):
3069         (TypeOverloadResolutionFailure.prototype.toString):
3070         * WebGPUShadingLanguageRI/TypeRef.js:
3071         (TypeRef.wrap):
3072         (TypeRef.prototype.resolve): Figure out which item in the possibleOverloads array matches this.
3073         (TypeRef.prototype.toString):
3074         (TypeRef):
3075         (TypeRef.instantiate): Deleted.
3076         * WebGPUShadingLanguageRI/UnificationContext.js: We need to give literals a chance to assume their preferred type. This
3077         adds this facility back into the compiler (it was previously deleted).
3078         (UnificationContext.prototype.verify):
3079         * WebGPUShadingLanguageRI/VectorType.js: Vector types have type arguments.
3080         (VectorType):
3081         (VectorType.prototype.get elementType):
3082         (VectorType.prototype.get numElements):
3083         (VectorType.prototype.get numElementsValue):
3084         (VectorType.prototype.toString):
3085         * WebGPUShadingLanguageRI/Visitor.js: Iterate over the typeArguments.
3086         (Visitor.prototype.visitTypeRef):
3087         (Visitor.prototype.visitNativeType):
3088         (Visitor.prototype.visitVectorType):
3089         (Visitor):
3090         * WebGPUShadingLanguageRI/index.html:
3091
3092 2018-08-23  Wenson Hsieh  <wenson_hsieh@apple.com>
3093
3094         [Attachment Support] Attachment elements don't appear in drag images on macOS
3095         https://bugs.webkit.org/show_bug.cgi?id=188823
3096         <rdar://problem/43616378>
3097
3098         Reviewed by Tim Horton.
3099
3100         Adjusts a couple of existing tests to additionally verify that the drag image generated when dragging an
3101         attachment element in macOS is not completely transparent.
3102
3103         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
3104         (isCompletelyTransparent):
3105         (TestWebKitAPI::TEST):
3106
3107 2018-08-23  Jonathan Bedard  <jbedard@apple.com>
3108
3109         Explain test name matching in run-api-tests help
3110         https://bugs.webkit.org/show_bug.cgi?id=188280
3111
3112         Reviewed by Ryosuke Niwa.
3113
3114         Improve the run-api-tests help message to explain how test
3115         name matching works.
3116
3117         * Scripts/webkitpy/api_tests/run_api_tests.py:
3118         (parse_args):
3119         * Scripts/webkitpy/port/base.py:
3120         (Port):
3121         (Port.path_to_api_test_binaries): Make binary names a globally accessible array.
3122         * Scripts/webkitpy/port/win.py:
3123         (WinPort):
3124         (WinPort.path_to_api_test_binaries): Ditto.
3125
3126 2018-08-23  Youenn Fablet  <youenn@apple.com>
3127
3128         Use "wpt serve" to launch WPT server
3129         https://bugs.webkit.org/show_bug.cgi?id=188848
3130
3131         Reviewed by Ryosuke Niwa.
3132
3133         Use "wpt serve" provided by WPT instead of using our custom launcher.
3134         This simplifies things and will avoid future breakage.
3135         Further simplify web_platform_test_server.py by removing no longer needed actions.
3136         - Do not copy files but use alias
3137         - Do not kill main pid, which leaves subprocesses alive, use interrupt instead.
3138         - Stop enumerating subprocess pids.
3139
3140         * Scripts/webkitpy/common/system/executive_mock.py:
3141         (MockExecutive.interrupt):
3142         * Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py: Removed.
3143         * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
3144         (WebPlatformTestServer.__init__):
3145         (WebPlatformTestServer.ports_to_forward):
3146         (WebPlatformTestServer._prepare_config):
3147         (WebPlatformTestServer._spawn_process):
3148         (WebPlatformTestServer._stop_running_server):
3149
3150 2018-08-23  Jonathan Bedard  <jbedard@apple.com>
3151
3152         run-api-tests: Add --webkit-only, --webcore-only and --webkit-legacy-only options to run WebKit, WebCore and WebKitLegacy tests 
3153         https://bugs.webkit.org/show_bug.cgi?id=188262
3154
3155         Reviewed by Ryosuke Niwa.
3156
3157         * Scripts/webkitpy/api_tests/run_api_tests.py:
3158         (parse_args):
3159
3160 2018-08-22  Wenson Hsieh  <wenson_hsieh@apple.com>
3161
3162         [Attachment Support] Support dragging attachment elements out as files on macOS
3163         https://bugs.webkit.org/show_bug.cgi?id=181294
3164         <rdar://problem/36298801>
3165
3166         Reviewed by Tim Horton.
3167
3168         Add DragAndDropSimulator support for intercepting calls to -beginDraggingSessionWithitems:event:source:. This
3169         enables us to write API tests for macOS that exercise the attachment SPI in combination with dragging attachment
3170         elements.
3171
3172         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
3173         (-[TestWKWebView attachmentElementMidPoint]):
3174
3175         Add a helper method local to this test suite that grabs the midpoint (in client coordinates) or the first
3176         attachment element in the document.
3177
3178         (TestWebKitAPI::TEST):
3179
3180         Add a new API test to verify that dragging an attachment element on macOS produces file providers which may be
3181         used to write attachment data to a path on disk. Additionally, refactor an existing API test,
3182         MoveAttachmentElementAsIconByDragging, so that it runs on both iOS and macOS, to test the ability to move
3183         attachment elements around in a document by using drag and drop.
3184
3185         * TestWebKitAPI/cocoa/DragAndDropSimulator.h:
3186         * TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
3187         (-[DragAndDropTestWKWebView beginDraggingSessionWithItems:event:source:]):
3188         (-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
3189         (-[DragAndDropSimulator dealloc]):
3190         (-[DragAndDropSimulator runFrom:to:]):
3191         (-[DragAndDropSimulator beginDraggingSessionInWebView:withItems:source:]):
3192
3193         Begin a drag session and kick off the -continueDragSession loop. Unlike -performDragInWebView:…, which spins
3194         the main runloop until dragging ends, this version returns execution to the web view and schedules dragging
3195         updates asynchronously. This matches AppKit behavior.
3196
3197         (-[DragAndDropSimulator continueDragSession]):
3198
3199         Increment the dragging progress amount, send a drag update to the web view, and continue scheduling calls to
3200         itself until the progress reaches 1.
3201
3202         (-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
3203         (-[DragAndDropSimulator initializeDraggingInfo:dragImage:source:]):
3204
3205         Pull out common logic for creating a new TestDraggingInfo after starting a drag.
3206
3207         (-[DragAndDropSimulator insertedAttachments]):
3208         (-[DragAndDropSimulator removedAttachments]):
3209         (-[DragAndDropSimulator draggingSession]):
3210         (-[DragAndDropSimulator receivePromisedFiles]):
3211
3212         Helper method to save promised files written to the pasteboard after a drag to the temporary directory. These
3213         files are tracked by DragAndDropSimulator and automatically cleaned up after the test finishes.
3214
3215         (-[DragAndDropSimulator endDataTransfer]):
3216
3217         Add a method stub on macOS, so that MoveAttachmentElementAsIconByDragging can be made cross-platform.
3218
3219         (-[DragAndDropSimulator _webView:didInsertAttachment:withSource:]):
3220         (-[DragAndDropSimulator _webView:didRemoveAttachment:]):
3221
3222         Implement method stubs to keep track of inserted or removed attachments while simulating a drag.
3223
3224 2018-08-22  Aditya Keerthi  <akeerthi@apple.com>
3225
3226         [iOS] Add support for the inputmode attribute
3227         https://bugs.webkit.org/show_bug.cgi?id=183621
3228
3229         Reviewed by Tim Horton.
3230
3231         Added an API test to verify that the correct UIKeyboardType is set depending on
3232         the type, inputmode, and pattern specified for an input field.
3233
3234         * TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
3235         (TestWebKitAPI::TEST):
3236         * TestWebKitAPI/ios/UIKitSPI.h:
3237
3238 2018-08-22  Alex Christensen  <achristensen@webkit.org>
3239
3240         Fix API test on Sierra after r235139
3241         https://bugs.webkit.org/show_bug.cgi?id=188810
3242
3243         * TestWebKitAPI/Tests/mac/LimitTitleSize.mm:
3244         (TEST):
3245
3246 2018-08-22  David Kilzer  <ddkilzer@apple.com>
3247
3248         Move files in WebCore project to match Xcode folder structure
3249         <https://webkit.org/b/188851>
3250
3251         Reviewed by Tim Horton.
3252
3253         * Scripts/extract-localizable-strings:
3254         * Scripts/update-webkit-localizable-strings:
3255         - Update to match new location of extract-localizable-strings.pl.
3256
3257 2018-08-21  Alex Christensen  <achristensen@webkit.org>
3258
3259         Roll out r235139 and r235146
3260         https://bugs.webkit.org/show_bug.cgi?id=188805
3261
3262         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3263         * TestWebKitAPI/Tests/WebKit/ShouldKeepCurrentBackForwardListItemInList.cpp:
3264
3265 2018-08-21  Wenson Hsieh  <wenson_hsieh@apple.com>
3266
3267         [Attachment Support] Remove _WKAttachments and notify the UI client upon mainframe navigation
3268         https://bugs.webkit.org/show_bug.cgi?id=188715
3269         <rdar://problem/43541790>
3270
3271         Reviewed by Tim Horton.
3272
3273         Adds API tests to exercises cases where (1) the UI client is notified of attachment removal upon mainframe
3274         navigation, and (2) the UI client is notified of attachment removal upon web content process termination.
3275
3276         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
3277         (TestWebKitAPI::ObserveAttachmentUpdatesForScope::expectAttachmentUpdates):
3278         (TestWebKitAPI::TEST):
3279
3280 2018-08-21  Alex Christensen  <achristensen@webkit.org>
3281
3282         Transition ResizeReversePaginatedWebView API test from WKPageLoaderClient to WKPageNavigationClient
3283         https://bugs.webkit.org/show_bug.cgi?id=188821
3284
3285         Reviewed by Simon Fraser.
3286
3287         * TestWebKitAPI/Tests/WebKit/ResizeReversePaginatedWebView.cpp:
3288         (TestWebKitAPI::didLayout):
3289         (TestWebKitAPI::TEST):
3290
3291 2018-08-21  Myles C. Maxfield  <mmaxfield@apple.com>
3292
3293         [WHLSL] Call expressions shouldn't have type arguments
3294         https://bugs.webkit.org/show_bug.cgi?id=188770
3295
3296         Reviewed by Filip Pizlo.
3297
3298         Call expressions only had type arguments for casts, becuase native types can have type arguments.
3299         However, instead of putting those type arguments on the CallExpression, we should parse the casted
3300         type as a real type and not as an identifier, which puts the type arguments in the TypeRef.
3301
3302         Test: casts
3303
3304         * WebGPUShadingLanguageRI/CallExpression.js:
3305         (CallExpression):
3306         (CallExpression.prototype.get name):
3307         (CallExpression.resolve):
3308         (CallExpression.prototype.get typeArguments): Deleted.
3309         (CallExpression.prototype.becomeCast): Deleted.
3310         * WebGPUShadingLanguageRI/NameResolver.js:
3311         (NameResolver.prototype.visitCallExpression):
3312         * WebGPUShadingLanguageRI/Parse.js:
3313         (parseConstexpr):
3314         (parseTypeDef):
3315         (parseLeftOperatorCall):
3316         (parseCallExpression.let.parseArguments):
3317         (parsePossiblePrefix):
3318         (parsePossibleRelationalEquality):
3319         (parseLeftLogicalExpression):
3320         (parseIfStatement):
3321         (parseWhile):
3322         (parseFor):
3323         (parseDo):
3324         * WebGPUShadingLanguageRI/RemoveTypeArguments.js:
3325         * WebGPUShadingLanguageRI/Rewriter.js:
3326         (Rewriter.prototype.visitCallExpression):
3327
3328 2018-08-21  Alex Christensen  <achristensen@webkit.org>
3329
3330         Translate WebKit.LimitTitleSize API test into ObjC
3331         https://bugs.webkit.org/show_bug.cgi?id=188810
3332
3333         Reviewed by Andy Estes.
3334
3335         It uses WKPageLoaderClient.didReceiveTitleForFrame which has been replaced by KVO.
3336         I'm translating the test into ObjC rather than introducing a new callback to WKPageNavigationClient.
3337
3338         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3339         * TestWebKitAPI/Tests/WebKit/LimitTitleSize.cpp: Removed.
3340         * TestWebKitAPI/Tests/mac/LimitTitleSize.mm:
3341         (TEST):
3342         (-[LimitTitleSizeTestObserver observeValueForKeyPath:ofObject:change:context:]):
3343         (TestWebKitAPI::TEST): Deleted.
3344
3345 2018-08-21  Alex Christensen  <achristensen@webkit.org>
3346
3347         Remove unused shouldKeepCurrentBackForwardListItemInList check
3348         https://bugs.webkit.org/show_bug.cgi?id=188805
3349
3350         Reviewed by Andy Estes.
3351
3352         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3353         * TestWebKitAPI/Tests/WebKit/ShouldKeepCurrentBackForwardListItemInList.cpp: Removed.
3354
3355 2018-08-21  Alex Christensen  <achristensen@webkit.org>
3356
3357         Transition more API tests from WKPageLoaderClient to WKPageNavigationClient
3358         https://bugs.webkit.org/show_bug.cgi?id=188813
3359
3360         Reviewed by Andy Estes.
3361
3362         * TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayout.cpp:
3363         (TestWebKitAPI::didLayout):
3364         (TestWebKitAPI::setPageLoaderClient):
3365         * TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFails.cpp:
3366         (TestWebKitAPI::didFinishNavigation):
3367         (TestWebKitAPI::didLayout):
3368         (TestWebKitAPI::setPageLoaderClient):
3369         (TestWebKitAPI::didFinishLoadForFrame): Deleted.
3370         * TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutForImages.cpp:
3371         (TestWebKitAPI::didLayout):
3372         (TestWebKitAPI::setPageLoaderClient):
3373
3374 2018-08-21  Wenson Hsieh  <wenson_hsieh@apple.com>
3375
3376         [Attachment Support] Augment _WKAttachment SPI to handle NSFileWrappers in addition to NSData
3377         https://bugs.webkit.org/show_bug.cgi?id=188496
3378         <rdar://problem/43216836>
3379
3380         Reviewed by Tim Horton.
3381
3382         Adjusts existing attachment API tests. See below for more detail.
3383
3384         * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
3385         (-[TestWKWebView synchronouslyInsertAttachmentWithFileWrapper:contentType:]):
3386         (-[TestWKWebView synchronouslyInsertAttachmentWithFilename:contentType:data:]):
3387         (-[_WKAttachment synchronouslySetData:newContentType:newFilename:error:]):
3388         (-[_WKAttachment synchronouslySetFileWrapper:newContentType:error:]):
3389
3390         Move off of deprecated attachment SPI, and add new helper functions to synchronously insert a new attachment or
3391         update an existing attachment with a file wrapper.
3392
3393         (-[_WKAttachment expectRequestedDataToBe:]):
3394         (TestWebKitAPI::TEST):
3395
3396         Add a new test to verify that file-URL-backed NSFileWrappers can be used to insert and update attachment data.
3397         Also augment an existing test to check that an attachment element which has been copied and pasted within the
3398         same document has a different _WKAttachment wrapper object than its duplicate, but both _WKAttachments are
3399         backed by the same NSFileWrapper that was originally used to insert the attachment.
3400
3401         Additionally, add another macOS test to verify that dropping promised files in an attachment-element-enabled
3402         editable area inserts attachment elements into the document and notifies the UI client with the inserted
3403         attachment data.
3404
3405         (-[_WKAttachment synchronouslyRequestInfo:]): Deleted.
3406         (-[_WKAttachment synchronouslyRequestData:]): Deleted.
3407         * TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
3408         (-[DragAndDropSimulator _webView:didInsertAttachment:withSource:]):
3409
3410         Move off of -_webView:didInsertAttachment:.
3411
3412         (-[DragAndDropSimulator _webView:didInsertAttachment:]): Deleted.
3413
3414 2018-08-21  David Kilzer  <ddkilzer@apple.com>
3415
3416         sort-Xcode-project-file: top-level files and folders are sorted unintentionally when `mainGroup` has no name
3417         <https://webkit.org/b/188755>
3418
3419         Reviewed by Andy Estes.
3420
3421         * Scripts/sort-Xcode-project-file: Fix regular expression to
3422         make `mainGroup` name optional.
3423
3424 2018-08-21  Andy VanWagoner  <andy@vanwagoner.family>
3425
3426         Unreviewed, add myself to committers list.
3427
3428         * Scripts/webkitpy/common/config/contributors.json:
3429
3430 2018-08-21  Antti Koivisto  <antti@apple.com>
3431
3432         Allow creating WeakPtrs to const objects
3433         https://bugs.webkit.org/show_bug.cgi?id=188785
3434
3435         Reviewed by Geoffrey Garen.
3436
3437         * TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
3438         (TestWebKitAPI::Base::weakPtrFactory const):
3439         (TestWebKitAPI::TEST):
3440         (TestWebKitAPI::Base::weakPtrFactory): Deleted.
3441
3442 2018-08-21  Per Arne Vollan  <pvollan@apple.com>
3443
3444         [WebGL] Contexts are not updated when display configuration changed.
3445         https://bugs.webkit.org/show_bug.cgi?id=188750
3446
3447         Reviewed by Brent Fulgham.
3448