826a4c5c3b054ed6a23b34b748595acf42d446c0
[WebKit-https.git] / Tools / ChangeLog
1 2018-03-31  Zalan Bujtas  <zalan@apple.com>
2
3         [LayoutReloaded] Do not clone Display.Box for FloatingState stacks.
4         https://bugs.webkit.org/show_bug.cgi?id=184218
5
6         Reviewed by Antti Koivisto.
7
8         Now that Display.Box is in a tree context, we can't just clone it for the purpose of caching its absolute position.
9
10         * LayoutReloaded/DisplayTree/Box.js:
11         (Display.Box.prototype.clone): Deleted.
12         * LayoutReloaded/FormattingContext/FloatingContext.js:
13         (FloatingContext.prototype._positionForFloating):
14         (FloatingContext.prototype._moveToNextVerticalPosition):
15         (FloatingContext.prototype._availableSpace):
16         (FloatingContext.prototype._findFloatingAtVerticalPosition):
17         (FloatingContext.prototype._adjustedFloatingPosition):
18         (FloatingContext.prototype._bottom):
19         (FloatingContext.prototype._addFloatingBox):
20         (FloatingContext.prototype._mapMarginBoxToFormattingRoot):
21         (FloatingContext.prototype._mapDisplayMarginBoxToFormattingRoot):
22         * LayoutReloaded/FormattingState/FloatingState.js:
23         (FloatingState.prototype.addFloating):
24
25 2018-03-31  Zalan Bujtas  <zalan@apple.com>
26
27         [LayoutReloaded] Remove all FormattingContext::absolute*Box functions.
28         https://bugs.webkit.org/show_bug.cgi?id=184215
29
30         Reviewed by Antti Koivisto.
31
32         Use Display.Box instead.
33
34         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
35         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
36         * LayoutReloaded/FormattingContext/FloatingContext.js:
37         (FloatingContext.prototype._availableSpace):
38         (FloatingContext.prototype._adjustedFloatingPosition):
39         (FloatingContext.prototype._mapBorderBoxToFormattingRoot):
40         (FloatingContext.prototype._mapContentBoxToFormattingRoot):
41         * LayoutReloaded/FormattingContext/FormattingContext.js:
42         (FormattingContext.prototype.absoluteBorderBox): Deleted.
43         (FormattingContext.prototype.absolutePaddingBox): Deleted.
44         (FormattingContext.prototype.absoluteContentBox): Deleted.
45         (FormattingContext.prototype._toAbsolutePosition): Deleted.
46         (FormattingContext.prototype._toRootAbsolutePosition): Deleted.
47         * LayoutReloaded/Utils.js:
48         (Utils.mapPosition):
49         (Utils.marginBox):
50         (Utils.borderBox):
51         (Utils.contentBox):
52
53 2018-03-31  Zalan Bujtas  <zalan@apple.com>
54
55         [LayoutReloaded] Remove FormattingContext::absoluteMarginBox
56         https://bugs.webkit.org/show_bug.cgi?id=184213
57
58         Reviewed by Antti Koivisto.
59
60         Display.Box already has the margin values.
61
62         * LayoutReloaded/FormattingContext/FloatingContext.js:
63         (FloatingContext.prototype._positionForFloating):
64         (FloatingContext.prototype._addFloatingBox):
65         (FloatingContext.prototype._mapMarginBoxToFormattingRoot):
66         (FloatingContext.prototype._formattingRoot):
67         * LayoutReloaded/FormattingContext/FormattingContext.js:
68         (FormattingContext.prototype.absoluteMarginBox): Deleted.
69         * LayoutReloaded/Utils.js:
70         (Utils.marginBox):
71
72 2018-03-31  Zalan Bujtas  <zalan@apple.com>
73
74         [layoutReloaded] Introduce margin to Display.Box
75         https://bugs.webkit.org/show_bug.cgi?id=184212
76
77         Reviewed by Antti Koivisto.
78
79         This is in preparation for moving margin box out of formatting context to Display.Box.
80
81         * LayoutReloaded/DisplayTree/Box.js:
82         (Display.Box):
83         (Display.Box.prototype.setRect):
84         (Display.Box.prototype.setTopLeft):
85         (Display.Box.prototype.setTop):
86         (Display.Box.prototype.setLeft):
87         (Display.Box.prototype.setSize):
88         (Display.Box.prototype.setWidth):
89         (Display.Box.prototype.setHeight):
90         (Display.Box.prototype.width):
91         (Display.Box.prototype.setMarginTop):
92         (Display.Box.prototype.setMarginLeft):
93         (Display.Box.prototype.setMarginBottom):
94         (Display.Box.prototype.setMarginRight):
95         (Display.Box.prototype.marginTop):
96         (Display.Box.prototype.marginLeft):
97         (Display.Box.prototype.marginBottom):
98         (Display.Box.prototype.marginRight):
99         (Display.Box.prototype.marginBox):
100         * LayoutReloaded/FormattingContext/FormattingContext.js:
101         (FormattingContext.prototype.absoluteMarginBox):
102         (FormattingContext.prototype._addToLayoutQueue):
103         * LayoutReloaded/FormattingState/FormattingState.js:
104         (FormattingState.prototype.createDisplayBox):
105
106 2018-03-31  Zalan Bujtas  <zalan@apple.com>
107
108         [LayoutReloaded] Add tree context to Display.Box
109         https://bugs.webkit.org/show_bug.cgi?id=184211
110
111         Reviewed by Antti Koivisto.
112
113         This is preparation for using the Display.Box tree to resolve absolute coordinates.
114
115         * LayoutReloaded/DisplayTree/Box.js:
116         (Display.Box):
117         (Display.Box.prototype.setParent):
118         (Display.Box.prototype.setNextSibling):
119         (Display.Box.prototype.setPreviousSibling):
120         (Display.Box.prototype.setFirstChild):
121         (Display.Box.prototype.setLastChild):
122         (Display.Box.prototype.parent):
123         (Display.Box.prototype.nextSibling):
124         (Display.Box.prototype.previousSibling):
125         (Display.Box.prototype.firstChild):
126         (Display.Box.prototype.lastChild):
127         * LayoutReloaded/FormattingState/FormattingState.js:
128         (FormattingState.prototype.createDisplayBox):
129
130 2018-03-30  Ryosuke Niwa  <rniwa@webkit.org>
131
132         Copying a list from Microsoft Word to TinyMCE fails when mso-list is the first property
133         https://bugs.webkit.org/show_bug.cgi?id=182938
134         <rdar://problem/37683007>
135
136         Reviewed by Wenson Hsieh.
137
138         Added more assertions to PasteHTML.PreservesMSOList for preserving an inline style which starts with mso-list
139         or the one which line-breaks right before it.
140
141         * TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:
142         * TestWebKitAPI/Tests/WebKitCocoa/mso-list.html:
143
144 2018-03-29  Ryosuke Niwa  <rniwa@webkit.org>
145
146         Copying a list from Microsoft Word to TinyMCE fails when mso-list is on tags other than P
147         https://bugs.webkit.org/show_bug.cgi?id=182954
148         <rdar://problem/37713141>
149
150         Reviewed by Wenson Hsieh.
151
152         Added a test case for a HTML generated by Microsoft Word which sets mso-list on h4.
153
154         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
155         * TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:
156         * TestWebKitAPI/Tests/WebKitCocoa/mso-list-compat-mode.html: Fixed the file path.
157         * TestWebKitAPI/Tests/WebKitCocoa/mso-list-on-h4.html: Added.
158
159 2018-03-29  Ross Kirsling  <ross.kirsling@sony.com>
160
161         run-jsc-benchmarks should recognize Windows-style build directory structure.
162         https://bugs.webkit.org/show_bug.cgi?id=184117
163
164         Reviewed by Yusuke Suzuki.
165
166         * Scripts/run-jsc-benchmarks:
167         Allow not only bin/jsc but also bin64/jsc.exe.
168
169 2018-03-29  Zalan Bujtas  <zalan@apple.com>
170
171         [LayoutReloaded] Decouple formatting state and context lifetime.
172         https://bugs.webkit.org/show_bug.cgi?id=184136
173
174         Reviewed by Antti Koivisto.
175
176         FormattingContext is about the layout logic. We don't need to hold on to it.
177
178         * LayoutReloaded/FormattingContext/FloatingContext.js:
179         (FloatingContext):
180         (FloatingContext.prototype.computePosition):
181         (FloatingContext.prototype._positionForClear):
182         (FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
183         (FloatingContext.prototype._addFloatingBox):
184         (FloatingContext.prototype._formattingContext):
185         (FloatingContext.prototype._formattingState):
186         * LayoutReloaded/FormattingContext/FormattingContext.js:
187         (FormattingContext):
188         * LayoutReloaded/FormattingState/BlockFormattingState.js:
189         (BlockFormattingState):
190         * LayoutReloaded/FormattingState/FloatingState.js:
191         (FloatingState):
192         (FloatingState.prototype.addFloating):
193         (FloatingState.prototype.formattingState):
194         (FloatingState.prototype.formattingContext): Deleted.
195         * LayoutReloaded/FormattingState/FormattingState.js:
196         (FormattingState):
197         (FormattingState.prototype.formattingContext): Deleted.
198         * LayoutReloaded/FormattingState/InlineFormattingState.js:
199         (InlineFormattingState):
200         * LayoutReloaded/LayoutState.js:
201         (LayoutState.prototype.layout):
202         (LayoutState.prototype.formattingContext):
203
204 2018-03-28  Zalan Bujtas  <zalan@apple.com>
205
206         [LayoutReloaded] Introduce FloatingState.
207         https://bugs.webkit.org/show_bug.cgi?id=184126
208
209         Reviewed by Antti Koivisto.
210
211         It holds the floating state (left/right floating stack) for a given formatting state (Block or Inline).
212         (FormattingState -> FloatingState/FormattingContext -> FloatingContext)
213
214         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
215         (BlockFormattingContext):
216         * LayoutReloaded/FormattingContext/FloatingContext.js:
217         (FloatingContext):
218         (FloatingContext.prototype.computePosition):
219         (FloatingContext.prototype.bottom):
220         (FloatingContext.prototype._positionForFloating):
221         (FloatingContext.prototype._positionForClear):
222         (FloatingContext.prototype._findInnerMostLeftAndRight):
223         (FloatingContext.prototype._isEmpty):
224         (FloatingContext.prototype._floatingState):
225         (FloatingContext.prototype._formattingContext):
226         (FloatingContext.prototype._lastFloating):
227         (FloatingContext.prototype._leftFloatingStack):
228         (FloatingContext.prototype._rightFloatingStack):
229         (FloatingContext.prototype._addFloating): Deleted.
230         * LayoutReloaded/FormattingContext/FormattingContext.js:
231         (FormattingContext):
232         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
233         (InlineFormattingContext):
234         * LayoutReloaded/FormattingState/BlockFormattingState.js:
235         (BlockFormattingState):
236         * LayoutReloaded/FormattingState/FloatingState.js: Copied from Tools/LayoutReloaded/FormattingState/InlineFormattingState.js.
237         (FloatingState):
238         (FloatingState.prototype.addFloating):
239         (FloatingState.prototype.leftFloatingStack):
240         (FloatingState.prototype.rightFloatingStack):
241         (FloatingState.prototype.lastFloating):
242         (FloatingState.prototype.formattingContext):
243         * LayoutReloaded/FormattingState/FormattingState.js:
244         (FormattingState):
245         (FormattingState.prototype.floatingState):
246         * LayoutReloaded/FormattingState/InlineFormattingState.js:
247         (InlineFormattingState):
248         * LayoutReloaded/test/index.html:
249
250 2018-03-28  Zalan Bujtas  <zalan@apple.com>
251
252         [LayoutReloaded] Convert floating left/right stack display boxes absolute to the formatting context's root.
253         https://bugs.webkit.org/show_bug.cgi?id=184123
254
255         Reviewed by Antti Koivisto.
256
257         1. The left/right floating array should hold the Display.Box (and not the Layout.Box)
258         2. Clone the Display.Box and convert its rect absolute to the formatting context's root so that we
259         don't have to keep converting the coordinates while computing the positions. 
260
261         * LayoutReloaded/DisplayTree/Box.js:
262         (Display.Box.prototype.clone):
263         (Display.Box.prototype.setRect):
264         * LayoutReloaded/FormattingContext/FloatingContext.js:
265         (FloatingContext.prototype.computePosition):
266         (FloatingContext.prototype._positionForFloating):
267         (FloatingContext.prototype._addFloating):
268         (FloatingContext.prototype._moveToNextVerticalPosition):
269         (FloatingContext.prototype._availableSpace):
270         (FloatingContext.prototype._findFloatingAtVerticalPosition):
271         (FloatingContext.prototype._adjustedFloatingPosition):
272         (FloatingContext.prototype._bottom):
273
274 2018-03-28  Chris Dumez  <cdumez@apple.com>
275
276         Unreviewed iOS build fix after r230060.
277
278         * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
279
280 2018-03-28  Chris Dumez  <cdumez@apple.com>
281
282         Unreviewed, disable new window.open() API tests introduced in r230051 on iOS.
283
284         I will investigate if this is testable on iOS.
285
286         * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
287
288 2018-03-28  Chris Dumez  <cdumez@apple.com>
289
290         Do process swap when opening a cross-origin URL via window.open(url, '_blank', 'noopener')
291         https://bugs.webkit.org/show_bug.cgi?id=183962
292         <rdar://problem/38817833>
293
294         Reviewed by Brady Eidson.
295
296         Add API test coverage.
297
298         * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
299         (-[PSONUIDelegate initWithNavigationDelegate:]):
300         (-[PSONUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
301
302 2018-03-28  Carlos Eduardo Ramalho  <cadubentzen@gmail.com>
303
304         Add Carlos Eduardo Ramalho as contributor
305         https://bugs.webkit.org/show_bug.cgi?id=184082
306
307         Reviewed by Carlos Alberto Lopez Perez.
308
309         * Scripts/webkitpy/common/config/contributors.json:
310
311 2018-03-28  Wenson Hsieh  <wenson_hsieh@apple.com>
312
313         [Extra zoom mode] Make boosted text autosizing values switchable at runtime
314         https://bugs.webkit.org/show_bug.cgi?id=184092
315         <rdar://problem/38939917>
316
317         Reviewed by Tim Horton.
318
319         Add an API test to check that toggling the boosted text autosizing preference causes text to lay out larger than
320         it would with normal text autosizing.
321
322         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
323         * TestWebKitAPI/Tests/ios/TextAutosizingBoost.mm: Added.
324         (TEST):
325
326 2018-03-28  Zalan Bujtas  <zalan@apple.com>
327
328         [LayoutReloaded] InlineFormattingContext::_handleText should support runs on multiple lines
329         https://bugs.webkit.org/show_bug.cgi?id=184101
330
331         Reviewed by Antti Koivisto.
332
333         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
334         (InlineFormattingContext):
335         (InlineFormattingContext.prototype.layout):
336         (InlineFormattingContext.prototype._handleText):
337         (InlineFormattingContext.prototype._createNewLine):
338         * LayoutReloaded/test/index.html:
339         * LayoutReloaded/test/simple-multiline-text.html: Added.
340
341 2018-03-28  Zalan Bujtas  <zalan@apple.com>
342
343         [LayoutReloaded] Add InlineTextBreaker::skipLeadingWhitespaceIfNeeded
344         https://bugs.webkit.org/show_bug.cgi?id=184099
345
346         Reviewed by Antti Koivisto.
347
348         * LayoutReloaded/misc/LayoutReloadedWebKit.patch:
349
350 2018-03-27  Carlos Garcia Campos  <cgarcia@igalia.com>
351
352         [GLIB] Add JSCWeakValue to JavaScriptCore GLib API
353         https://bugs.webkit.org/show_bug.cgi?id=184041
354
355         Reviewed by Michael Catanzaro.
356
357         Add test case for JSCWeakValue.
358
359         * TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
360         (weakValueClearedCallback):
361         (testJSCWeakValue):
362         (main):
363
364 2018-03-27  Zalan Bujtas  <zalan@apple.com>
365
366         [LayoutReloaded] Start using window.collectTextRuns() to layout text lines in inline formatting context
367         https://bugs.webkit.org/show_bug.cgi?id=184070
368
369         Reviewed by Antti Koivisto.
370
371         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
372         (InlineFormattingContext.prototype._handleText):
373         (InlineFormattingContext.prototype._commitLine):
374         * LayoutReloaded/FormattingContext/InlineFormatting/Line.js:
375         (Line.prototype.addTextLineBox):
376         (Line):
377         (Line.prototype.addLineBox): Deleted.
378         * LayoutReloaded/FormattingState/BlockFormattingState.js:
379         (BlockFormattingState):
380         * LayoutReloaded/FormattingState/FormattingState.js:
381         (FormattingState.prototype.displayBox):
382         (FormattingState):
383         (FormattingState.prototype._setFormattingContext): Deleted.
384         * LayoutReloaded/FormattingState/InlineFormattingState.js:
385         (InlineFormattingState):
386         * LayoutReloaded/LayoutTree/Text.js:
387         (Text.prototype.content):
388         * LayoutReloaded/Utils.js:
389         (Utils.textRuns):
390         (Utils.textRunsForLine):
391         (Utils._dumpLines.):
392         (Utils._dumpLines):
393         * LayoutReloaded/test/simple-inline-text.html:
394
395 2018-03-27  Eric Carlson  <eric.carlson@apple.com>
396
397         https://bugs.webkit.org/show_bug.cgi?id=183876
398         <rdar://problem/38726459>
399         
400         Unreviewed, fix for the test added in r229995 in the iOS simulator.
401
402         * TestWebKitAPI/Tests/WebKitCocoa/AVFoundationPreference.mm:
403         (TestWebKitAPI::AVFoundationPref::testWithPreference):
404
405 2018-03-27  Jiewen Tan  <jiewen_tan@apple.com>
406
407         [WebAuthN] Implement authenticatorGetAssertion
408         https://bugs.webkit.org/show_bug.cgi?id=183881
409         <rdar://problem/37258628>
410
411         Reviewed by Brent Fulgham.
412
413         * TestWebKitAPI/Tests/ios/LocalAuthenticator.mm:
414         (TestWebKitAPI::getTestKey):
415         (TestWebKitAPI::addTestKeyToKeychain):
416         (TestWebKitAPI::LAEvaluatePolicyFailedSwizzler::evaluatePolicyFailed):
417         (TestWebKitAPI::LAEvaluatePolicyPassedSwizzler::evaluatePolicyPassed):
418         (TestWebKitAPI::LAEvaluateAccessControlFailedSwizzler::LAEvaluateAccessControlFailedSwizzler):
419         (TestWebKitAPI::LAEvaluateAccessControlFailedSwizzler::evaluateAccessControlFailed):
420         (TestWebKitAPI::LAEvaluateAccessControlPassedSwizzler::LAEvaluateAccessControlPassedSwizzler):
421         (TestWebKitAPI::LAEvaluateAccessControlPassedSwizzler::evaluateAccessControlPassed):
422         (TestWebKitAPI::TEST):
423
424 2018-03-27  Brian Burg  <bburg@apple.com>
425
426         REGRESSION(r229937): WebDriver tests no longer run, test runner hangs when launching wpt web server
427         https://bugs.webkit.org/show_bug.cgi?id=184056
428         <rdar://problem/38925058>
429
430         Reviewed by Timothy Hatcher and Youenn Fablet.
431
432         * Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py:
433         (WebDriverW3CWebServer.start):
434         The config key used in upstream WPT has changed from 'host' to 'browser_host'.
435
436 2018-03-27  Timothy Hatcher  <timothy@hatcher.name>
437
438         Update my email address in contributors.json and scripts
439         https://bugs.webkit.org/show_bug.cgi?id=184054
440
441         * Scripts/validate-committer-lists:
442         (CommitterListFromGit):
443         * Scripts/webkitpy/common/config/contributors.json:
444
445 2018-03-27  Eric Carlson  <eric.carlson@apple.com>
446
447         Make AVFoundationEnabled preference available on iOS
448         https://bugs.webkit.org/show_bug.cgi?id=183876
449         <rdar://problem/38726459>
450
451         Reviewed by Youenn Fablet.
452
453         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
454         * TestWebKitAPI/Tests/WebKit/video.html: Added.
455         * TestWebKitAPI/Tests/WebKitCocoa/AVFoundationPreference.mm: Added.
456         (-[PreferenceTestMessageHandler userContentController:didReceiveScriptMessage:]):
457         (TestWebKitAPI::AVFoundationPref::SetUp):
458         (TestWebKitAPI::AVFoundationPref::testWithPreference):
459         (TestWebKitAPI::TEST_F):
460
461 2018-03-26  Brent Fulgham  <bfulgham@apple.com>
462
463         Warn against cookie access in the WebContent process using ProcessPrivilege assertions
464         https://bugs.webkit.org/show_bug.cgi?id=183911
465         <rdar://problem/38762306>
466
467         Reviewed by Youenn Fablet.
468
469         Add a set of ProcessPrivilege assertions to enforce the rule that the WebContent process
470         should never call Cookie API directly. That should only happen in the Networking or
471         UIProcess. 
472
473         * DumpRenderTree/mac/DumpRenderTree.mm:
474         (DumpRenderTreeMain):
475         * TestWebKitAPI/TestsController.cpp:
476         (TestWebKitAPI::TestsController::TestsController):
477         * WebKitTestRunner/TestController.cpp:
478         (WTR::TestController::initialize):
479
480 2018-03-26  Zalan Bujtas  <zalan@apple.com>
481
482         [LayoutReloaded] Add InlineText DOM interface and dependencies
483         https://bugs.webkit.org/show_bug.cgi?id=184010
484
485         Reviewed by Antti Koivisto.
486
487         to help inline text layout.
488
489         * LayoutReloaded/misc/LayoutReloadedWebKit.patch:
490
491 2018-03-25  Carlos Garcia Campos  <cgarcia@igalia.com>
492
493         [GTK][WPE] Add API to convert between DOM and JSCValue
494         https://bugs.webkit.org/show_bug.cgi?id=183448
495
496         Reviewed by Michael Catanzaro.
497
498         Add unit tests for non-deprecated DOM API and switch existing tests to use non-deprecated API except for the
499         ones that test the deprecated API.
500
501         * TestWebKitAPI/Tests/WebKitGLib/DOMElementTest.cpp: Added.
502         (DOMElementTest::create):
503         (DOMElementTest::testAutoFill):
504         (registerTests):
505         * TestWebKitAPI/Tests/WebKitGLib/EditorTest.cpp: Added.
506         (WebKitWebEditorTest::create):
507         (WebKitWebEditorTest::selectionChangedCallback):
508         (WebKitWebEditorTest::testSelectionchanged):
509         (registerTests):
510         * TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:
511         (WebKitFrameTest::testJavaScriptValues):
512         (registerTests):
513         * TestWebKitAPI/Tests/WebKitGLib/TestDOMElement.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObjectPrivate.h.
514         (testWebKitDOMElementAutoFill):
515         (beforeAll):
516         (afterAll):
517         * TestWebKitAPI/Tests/WebKitGLib/TestEditor.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKitGtk/TestEditor.cpp.
518         * TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp:
519         (testWebKitFrameJavaScriptValues):
520         (beforeAll):
521         * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
522         (inputElementIsUserEdited):
523         (testWebExtensionInputElementIsUserEdited):
524         (testWebExtensionFormSubmissionSteps):
525         (beforeAll):
526         * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
527         (documentLoadedCallback):
528         (serializeNode):
529         (contextMenuCallback):
530         (consoleMessageSentCallback):
531         (formControlsAssociatedCallback):
532         (willSubmitFormCallback):
533         (pageCreatedCallback):
534         (methodCallCallback):
535         * TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:
536         (checkLeaks):
537         (webProcessTestRunnerFinalize):
538         (checkLeaksAtExit):
539         * TestWebKitAPI/Tests/WebKitGtk/AutocleanupsTest.cpp:
540         (AutocleanupsTest::testWebProcessAutocleanups):
541         * TestWebKitAPI/Tests/WebKitGtk/DOMClientRectTest.cpp:
542         * TestWebKitAPI/Tests/WebKitGtk/DOMNodeFilterTest.cpp:
543         * TestWebKitAPI/Tests/WebKitGtk/DOMNodeTest.cpp:
544         * TestWebKitAPI/Tests/WebKitGtk/DOMXPathNSResolverTest.cpp:
545         * TestWebKitAPI/Tests/WebKitGtk/EditorTest.cpp: Removed.
546         * TestWebKitAPI/glib/CMakeLists.txt:
547         * TestWebKitAPI/glib/PlatformGTK.cmake:
548         * TestWebKitAPI/glib/PlatformWPE.cmake:
549
550 2018-03-24  Jonathan Bedard  <jbedard@apple.com>
551
552         webkitpy: Unrecognized mac versions always use WebKitTestRunner
553         https://bugs.webkit.org/show_bug.cgi?id=183681
554         <rdar://problem/38509162>
555
556         Reviewed by Daniel Bates.
557
558         When an unrecognized version is used, we were unconditionally adding '-wk2'
559         to the mac version name. This would mean that the port object would always
560         use WebKitTestRunner as the driver, even if DumpRenderTree was explicitly
561         requested.
562
563         * Scripts/webkitpy/port/apple.py:
564         (ApplePort.determine_full_port_name): Only add wk2 to port names if
565         WebKitTestRunner is specified.
566         * Scripts/webkitpy/port/mac.py:
567         (MacPort.__init__): Compare length of split string, and do not treat wk2 as a
568         version name.
569         * Scripts/webkitpy/port/mac_unittest.py:
570         (MacTest):
571         (MacTest.test_factory_with_future_version): Confirm that future versions correctly
572         assign the driver and have undefined version names.
573         (MacTest.test_factory_with_portname_version): Confirm that general versions correctly assign
574         the driver and have defined versions.
575         (MacTest.test_factory_with_portname_wk2): Ensure that mac ports ending in 'wk2' set
576         the driver to be WebKitTestRunner even if webkit_test_runner=False.
577
578 2018-03-23  Zan Dobersek  <zdobersek@igalia.com>
579
580         Fix the run-benchmark script, properly specifying the plan directory
581         where the Skipped file is located.
582
583         Rubber-stamped by Carlos Alberto Lopez Perez.
584
585         * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
586         (start):
587
588 2018-03-23  Tim Horton  <timothy_horton@apple.com>
589
590         Fix the build with no pasteboard
591         https://bugs.webkit.org/show_bug.cgi?id=183973
592
593         Reviewed by Dan Bernstein.
594
595         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
596
597 2018-03-23  Youenn Fablet  <youenn@apple.com>
598
599         Update WPT tools to a1ec330
600         https://bugs.webkit.org/show_bug.cgi?id=183934
601
602         Reviewed by Chris Dumez.
603
604         Update script to run WPT server  according updated WPT tools.
605
606         * Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py:
607         (main):
608         * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
609         (base_http_url):
610         (base_https_url):
611
612 2018-03-23  Sihui Liu  <sihui_liu@apple.com>
613
614         Local storage getItem() for an empty string returned UNDEFINED value.
615         https://bugs.webkit.org/show_bug.cgi?id=69138
616         <rdar://problem/13410974>
617
618         Reviewed by Brady Eidson.
619
620         Add API test coverage.
621
622         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
623         * TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm: Added.
624         (-[LocalStorageMessageHandler userContentController:didReceiveScriptMessage:]):
625         (TEST):
626         * TestWebKitAPI/Tests/WebKitCocoa/localstorage-empty-string-value.html: Added.
627
628 2018-03-23  Chris Dumez  <cdumez@apple.com>
629
630         Promptly terminate service worker processes when they are no longer needed
631         https://bugs.webkit.org/show_bug.cgi?id=183873
632         <rdar://problem/38676995>
633
634         Reviewed by Youenn Fablet.
635
636         Add API test coverage.
637
638         * TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
639
640 2018-03-23  Brady Eidson  <beidson@apple.com>
641
642         Go to back/forward list items after a process-swapped navigation.
643         <rdar://problem/38690544> and https://bugs.webkit.org/show_bug.cgi?id=183920
644
645         Reviewed by Andy Estes.
646
647         Add a new API test that does some process-swapping navigations (including a back navigation)
648         and verifies the state of the engine afterwards.
649
650         * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
651         (-[PSONMessageHandler userContentController:didReceiveScriptMessage:]):
652         (-[PSONScheme initWithBytes:]):
653         (-[PSONScheme webView:startURLSchemeTask:]):
654         (log):
655         (function):
656         (TEST): Deleted.
657
658 2018-03-23  Brendan McLoughlin  <brendan@bocoup.com>
659
660         Lint web-platform-tests changes with the wpt linter before exporting
661         https://bugs.webkit.org/show_bug.cgi?id=183796
662
663         Reviewed by Youenn Fablet.
664
665         * Scripts/webkitpy/w3c/test_exporter.py:
666         (TestExporter.__init__):
667         (TestExporter.do_export):
668         * Scripts/webkitpy/w3c/test_exporter_unittest.py:
669         (TestExporterTest.MockWPTLinter):
670         (TestExporterTest.MockWPTLinter.__init__):
671         (TestExporterTest.MockWPTLinter.lint):
672         (TestExporterTest.test_export):
673         (TestExporterTest.test_export_with_specific_branch):
674         * Scripts/webkitpy/w3c/wpt_linter.py: Added.
675         (WPTLinter):
676         (WPTLinter.__init__):
677         (WPTLinter.lint):
678
679 2018-03-23  David Kilzer  <ddkilzer@apple.com>
680
681         Stop using dispatch_set_target_queue()
682         <https://webkit.org/b/183908>
683         <rdar://problem/33553533>
684
685         Reviewed by Daniel Bates.
686
687         * Scripts/webkitpy/style/checkers/cpp.py:
688         (check_language): Add check for use of
689         dispatch_set_target_queue().
690         (CppChecker): Add 'runtime/dispatch_set_target_queue' category.
691         * Scripts/webkitpy/style/checkers/cpp_unittest.py:
692         (CppStyleTest): Add test.
693
694 2018-03-23  Youenn Fablet  <youenn@apple.com>
695
696         Allow fully whitelisted plug-ins to match non HTTP URLs
697         https://bugs.webkit.org/show_bug.cgi?id=183938
698         rdar://problem/38534312
699
700         Reviewed by Chris Dumez.
701
702         * TestWebKitAPI/Tests/WebCore/URL.cpp:
703         (TestWebKitAPI::TEST_F):
704
705 2018-03-23  JF Bastien  <jfbastien@apple.com>
706
707         dump-class-layout is just wrong
708         https://bugs.webkit.org/show_bug.cgi?id=183939
709
710         Reviewed by Yusuke Suzuki.
711
712         Looks like r229291 contained a half-renamed variable in it, so it
713         just doesn't work.
714
715         * Scripts/dump-class-layout:
716         (verify_type):
717         (verify_type_recursive):
718
719 2018-03-23  Carlos Garcia Campos  <cgarcia@igalia.com>
720
721         Unreviewed. Run JSC GLib API tests in GTK+ and WPE bots.
722
723         The test runners were still considering the JSC tests as google tests, but they are now GLib tests.
724
725         * Scripts/run-gtk-tests:
726         (GtkTestRunner.is_glib_test):
727         (GtkTestRunner.is_google_test):
728         * Scripts/run-wpe-tests:
729         (WPETestRunner.is_glib_test):
730         (WPETestRunner.is_google_test):
731
732 2018-03-22  Daniel Bates  <dabates@apple.com>
733
734         Expose SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest() as WebKit SPI
735         https://bugs.webkit.org/show_bug.cgi?id=183907
736         <rdar://problem/38759127>
737
738         Reviewed by Alex Christensen.
739
740         Adds unit tests for the modern Objective-C and C SPI to ensure we do not regress it.
741
742         We use the deprecated -[WKBrowsingContextController registerSchemeForCustomProtocol:]
743         in both the modern Objective-C API and C API tests to share code. Once we no longer
744         need to support the C API we should remove the tests and transition the modern Objective-
745         C tests to use -[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:].
746
747         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
748         * TestWebKitAPI/Tests/WebKitCocoa/SchemeRegistry.mm: Added.
749         (+[EchoURLProtocol canInitWithRequest:]):
750         (+[EchoURLProtocol canonicalRequestForRequest:]):
751         (+[EchoURLProtocol requestIsCacheEquivalent:toRequest:]):
752         (-[EchoURLProtocol startLoading]):
753         (-[EchoURLProtocol stopLoading]):
754         (-[WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequestLoadDelegate browsingContextController:didFailProvisionalLoadWithError:]):
755         (-[WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequestLoadDelegate browsingContextControllerDidFinishLoad:]):
756         (TestWebKitAPI::TEST):
757
758 2018-03-22  Adrian Perez de Castro  <aperez@igalia.com>
759
760         [WPE] Enable WOFF2 support
761         https://bugs.webkit.org/show_bug.cgi?id=178158
762
763         Reviewed by Frédéric Wang.
764
765         * wpe/jhbuild.modules: Add "brotli" and "woff2" to the JHBuild moduleset.
766
767 2018-03-22  Brendan McLoughlin  <brendan@bocoup.com>
768
769         Do not export web-platform-test files generated by the wpt importer to assist the webkit test runner
770         https://bugs.webkit.org/show_bug.cgi?id=183916
771
772         Reviewed by Youenn Fablet.
773
774         * Scripts/webkitpy/w3c/test_exporter.py:
775         (TestExporter.create_branch_with_patch):
776         * Scripts/webkitpy/w3c/test_exporter_unittest.py:
777         (TestExporterTest.test_export):
778         (TestExporterTest.test_export_with_specific_branch):
779
780 2018-03-22  Tim Horton  <timothy_horton@apple.com>
781
782         Improve readability of WebCore's OTHER_LDFLAGS
783         https://bugs.webkit.org/show_bug.cgi?id=183909
784         <rdar://problem/38760992>
785
786         Reviewed by Dan Bernstein.
787
788         * TestWebKitAPI/Configurations/Base.xcconfig:
789         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
790
791 2018-03-21  Fujii Hironori  <Hironori.Fujii@sony.com>
792
793         Unreviewed. Marked myself as a committer.
794
795         * Scripts/webkitpy/common/config/contributors.json:
796
797 2018-03-21  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>
798
799         Unreviewed, make the email address of Yoshiaki Jitsukawa all lower case.
800
801         * Scripts/webkitpy/common/config/contributors.json:
802
803 2018-03-21  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>
804
805         Unreviewed, add myself as a WebKit committer.
806
807         * Scripts/webkitpy/common/config/contributors.json:
808
809 2018-03-21  Chris Dumez  <cdumez@apple.com>
810
811         ScrollViewInsetTests.RestoreInitialContentOffsetAfterCrash API test is failing with async delegates
812         https://bugs.webkit.org/show_bug.cgi?id=183787
813
814         Reviewed by Wenson Hsieh.
815
816         Add API test coverage.
817
818         * TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:
819         (-[AsyncPolicyDelegateForInsetTest webView:didFinishNavigation:]):
820         (-[AsyncPolicyDelegateForInsetTest webView:decidePolicyForNavigationAction:decisionHandler:]):
821         (-[AsyncPolicyDelegateForInsetTest webView:decidePolicyForNavigationResponse:decisionHandler:]):
822         (-[AsyncPolicyDelegateForInsetTest webViewWebContentProcessDidTerminate:]):
823         (TestWebKitAPI::TEST):
824
825 2018-03-21  Chris Dumez  <cdumez@apple.com>
826
827         Fix DataInteractionTests.InjectedBundleAllowPerformTwoStepDrop to use synchronouslyLoadTestPageNamed
828         https://bugs.webkit.org/show_bug.cgi?id=183858
829
830         Reviewed by Wenson Hsieh.
831
832         Fix DataInteractionTests.InjectedBundleAllowPerformTwoStepDrop to use synchronouslyLoadTestPageNamed
833         instead of loadTestPageNamed because injecting script.
834
835         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
836         (TestWebKitAPI::TEST):
837
838 2018-03-21  Zalan Bujtas  <zalan@apple.com>
839
840         [LayoutReloaded] Enable formatting state for InlineFormattingContext
841         https://bugs.webkit.org/show_bug.cgi?id=183853
842
843         Reviewed by Antti Koivisto.
844
845         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
846         (BlockFormattingContext.prototype._contentHeight):
847         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
848         (InlineFormattingContext):
849         (InlineFormattingContext.prototype.layout):
850         (InlineFormattingContext.prototype._createNewLine):
851         * LayoutReloaded/LayoutState.js:
852         (LayoutState.prototype.formattingState):
853         * LayoutReloaded/README.md:
854         * LayoutReloaded/Utils.js:
855         (Utils._dumpTree):
856         * LayoutReloaded/test/index.html:
857         * LayoutReloaded/test/simple-inline-text.html: Added.
858
859 2018-03-21  Zalan Bujtas  <zalan@apple.com>
860
861         [LayoutReloaded] Move inline lines to InlineFormattingState.
862         https://bugs.webkit.org/show_bug.cgi?id=183814
863
864         Reviewed by Antti Koivisto.
865
866         InlineFormattingContext is not supposed to hold state.
867
868         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
869         (InlineFormattingContext):
870         (InlineFormattingContext.prototype._commitLine):
871         (InlineFormattingContext.prototype._createNewLine):
872         (InlineFormattingContext.prototype.lines): Deleted.
873         (InlineFormattingContext.prototype._initializeLine): Deleted.
874         * LayoutReloaded/FormattingState/InlineFormattingState.js:
875         (InlineFormattingState):
876         (InlineFormattingState.prototype.lines):
877         (InlineFormattingState.prototype.appendLine):
878
879 2018-03-21  Ms2ger  <Ms2ger@igalia.com>
880
881         [WPE] Disable most of TestWebKitFaviconDatabase.
882         https://bugs.webkit.org/show_bug.cgi?id=183813
883
884         Unreviewed test gardening.
885
886         The relevant APIs were mostly removed in r223953, making this test
887         time out consistently.
888
889         * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:
890
891 2018-03-21  Carlos Garcia Campos  <cgarcia@igalia.com>
892
893         [GTK][WPE] JSC bindings not introspectable
894         https://bugs.webkit.org/show_bug.cgi?id=136989
895
896         Reviewed by Michael Catanzaro.
897
898         Use the new API instead of the deprecated one.
899
900         * MiniBrowser/gtk/main.c:
901         (aboutDataScriptMessageReceivedCallback):
902         * TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:
903         (WebKitFrameTest::testJavaScriptContext):
904         * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
905         (testWebViewRunJavaScript):
906         * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
907         (consoleMessageSentCallback):
908         (echoCallback):
909         (windowObjectCleared):
910         (methodCallCallback):
911         * TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:
912         (runTest):
913         (webProcessTestRunnerFinalize):
914         (windowObjectClearedCallback):
915         * TestWebKitAPI/glib/PlatformGTK.cmake:
916         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
917         (WebViewTest::javascriptResultToCString):
918         (WebViewTest::javascriptResultToNumber):
919         (WebViewTest::javascriptResultToBoolean):
920         (WebViewTest::javascriptResultIsNull):
921         (WebViewTest::javascriptResultIsUndefined):
922
923 2018-03-21  Carlos Garcia Campos  <cgarcia@igalia.com>
924
925         [GTK][WPE] Initial implementation of JavaScriptCore glib bindings
926         https://bugs.webkit.org/show_bug.cgi?id=164061
927
928         Reviewed by Michael Catanzaro.
929
930         Add unit tests for the new API and generate the API documentation with generate-gtkdoc.
931
932         * Scripts/webkitpy/style/checker.py: Ignore some style errors in public GLib API headers.
933         * TestWebKitAPI/PlatformGTK.cmake:
934         * TestWebKitAPI/PlatformWPE.cmake:
935         * TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp: Added.
936         (LeakChecker::~LeakChecker):
937         (LeakChecker::watch):
938         (ExceptionHandler::ExceptionHandler):
939         (ExceptionHandler::~ExceptionHandler):
940         (ExceptionHandler::push):
941         (ExceptionHandler::pop):
942         (jscContextGarbageCollect):
943         (testJSCBasic):
944         (testJSCTypes):
945         (foo):
946         (callback):
947         (doubleAndSetInResult):
948         (sumFunction):
949         (testJSCFunction):
950         (testJSCObject):
951         (fooCreate):
952         (fooCreateWithFoo):
953         (fooFree):
954         (setFoo):
955         (getFoo):
956         (setSibling):
957         (getSibling):
958         (multiplyFoo):
959         (getMultiplyFoo):
960         (getMultiplyFooAsync):
961         (bazCreate):
962         (testJSCClass):
963         (barCreate):
964         (barFree):
965         (setBar):
966         (getBar):
967         (testJSCPrototypes):
968         (createError):
969         (testJSCExceptions):
970         (testJSCPromises):
971         (fooFreeAndLog):
972         (testJSCGarbageCollector):
973         (testsJSCVirtualMachine):
974         (testsJSCAutocleanups):
975         (main):
976         * gtk/generate-gtkdoc:
977         (get_generator_for_config):
978
979 2018-03-20  Tim Horton  <timothy_horton@apple.com>
980
981         Enable the minimal simulator feature flag when appropriate
982         https://bugs.webkit.org/show_bug.cgi?id=183807
983
984         Reviewed by Dan Bernstein.
985
986         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
987
988 2018-03-20  Zalan Bujtas  <zalan@apple.com>
989
990         [LayoutReloaded] Disconnect Display.Box from Layout.Box
991         https://bugs.webkit.org/show_bug.cgi?id=183805
992
993         Reviewed by Antti Koivisto.
994
995         Display.Box is only accessed through the FormattingState.
996
997         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
998         (BlockFormattingContext):
999         (BlockFormattingContext.prototype.layout):
1000         (BlockFormattingContext.prototype._placeInFlowPositionedChildren):
1001         (BlockFormattingContext.prototype._layoutOutOfFlowDescendants):
1002         (BlockFormattingContext.prototype._adjustBottomWithFIXME):
1003         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
1004         * LayoutReloaded/FormattingContext/FormattingContext.js:
1005         (FormattingContext):
1006         (FormattingContext.prototype.formattingRoot):
1007         (FormattingContext.prototype.formattingState):
1008         (FormattingContext.prototype.layoutState):
1009         (FormattingContext.prototype._toAbsolutePosition):
1010         (FormattingContext.prototype._toRootAbsolutePosition):
1011         (FormattingContext.prototype._addToLayoutQueue):
1012         (FormattingContext.prototype.displayBox):
1013         (FormattingContext.prototype._outOfFlowDescendants):
1014         (FormattingContext.prototype.rootContainer): Deleted.
1015         (FormattingContext.prototype.layoutContext): Deleted.
1016         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
1017         (InlineFormattingContext):
1018         (InlineFormattingContext.prototype.layout):
1019         (InlineFormattingContext.prototype._initializeLine):
1020         * LayoutReloaded/FormattingState/BlockFormattingState.js:
1021         (BlockFormattingState):
1022         * LayoutReloaded/FormattingState/FormattingState.js:
1023         (FormattingState):
1024         (FormattingState.prototype.formattingRoot):
1025         (FormattingState.prototype.layoutState):
1026         (FormattingState.prototype.createDisplayBox):
1027         (FormattingState.prototype.displayBoxMap):
1028         (FormattingState.prototype.displayBox):
1029         (FormattingState.prototype.layoutContext): Deleted.
1030         * LayoutReloaded/FormattingState/InlineFormattingState.js:
1031         (InlineFormattingState):
1032         * LayoutReloaded/Layout.js:
1033         (layout):
1034         * LayoutReloaded/LayoutReloaded.xcworkspace/contents.xcworkspacedata:
1035         * LayoutReloaded/LayoutState.js: Renamed from Tools/LayoutReloaded/LayoutContext.js.
1036         (LayoutState):
1037         (LayoutState.prototype.layout):
1038         (LayoutState.prototype._createFormattingState):
1039         (LayoutState.prototype.formattingStates):
1040         (LayoutState.prototype.initialDisplayBox):
1041         * LayoutReloaded/LayoutTree/Box.js:
1042         (Layout.Box.prototype.isOutOfFlowPositioned):
1043         (Layout.Box.prototype.containingBlock):
1044         (Layout.Box.prototype.setDisplayBox): Deleted.
1045         (Layout.Box.prototype.displayBox): Deleted.
1046         * LayoutReloaded/Utils.js:
1047         (Utils.layoutTreeDump):
1048         (Utils._findDisplayBox):
1049         (Utils._dumpBox):
1050         (Utils._dumpTree):
1051         * LayoutReloaded/misc/headers/BlockFormattingContext.h:
1052         * LayoutReloaded/misc/headers/FormattingContext.h:
1053         * LayoutReloaded/misc/headers/LayoutContext.h:
1054         * LayoutReloaded/test/index.html:
1055
1056 2018-03-19  Ryosuke Niwa  <rniwa@webkit.org>
1057
1058         Expose content attributes on _WKLinkIconParameters
1059         https://bugs.webkit.org/show_bug.cgi?id=183768
1060
1061         Reviewed by Alex Christensen.
1062
1063         Expanded the basic test case for _WKLinkIconParameters's properties including newly added "attributes".
1064
1065         * TestWebKitAPI/Tests/WebKitCocoa/IconLoadingDelegate.mm:
1066         (IconLoading.DefaultFavicon):
1067
1068 2018-03-20  Wenson Hsieh  <wenson_hsieh@apple.com>
1069
1070         Add AssistedNodeInformation plumbing for form control placeholder text and label text
1071         https://bugs.webkit.org/show_bug.cgi?id=183802
1072         <rdar://problem/38686273>
1073
1074         Reviewed by Tim Horton.
1075
1076         Adds a new API test to exercise new placeholder and label SPI on _WKFocusedFormElement.
1077
1078         * TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm:
1079         (-[InputDelegate _webView:focusShouldStartInputSession:]):
1080         (-[InputDelegate shouldStartInputSessionHandler]):
1081         (-[InputDelegate setShouldStartInputSessionHandler:]):
1082         (TEST):
1083         (-[FormSubmissionDelegate webView:startURLSchemeTask:]): Deleted.
1084         (-[FormSubmissionDelegate webView:stopURLSchemeTask:]): Deleted.
1085         (-[FormSubmissionDelegate _webView:willSubmitFormValues:userObject:submissionHandler:]): Deleted.
1086
1087 2018-03-20  Basuke Suzuki  <Basuke.Suzuki@sony.com>
1088
1089         [WinCairo] Fix to run-webkit-httpd from native Windows.
1090         https://bugs.webkit.org/show_bug.cgi?id=183605
1091
1092         Reviewed by Daniel Bates.
1093
1094         This fix is to run Apache HTTP server from native Windows. The environment is different
1095         from cygwin, which is used for AppleWin, in following points:
1096         - A temporary file behaves differently. It cannot reopen by anybody when indicated as 
1097           delete on close. To solve this situation, filesystem.mkdtemp() is used instead.
1098         - It's not unix so that `tail` command is not available. Replaced with python equivalent
1099           function.
1100
1101         * Scripts/webkitpy/common/system/filesystem.py:
1102         (FileSystem.mkdtemp.TemporaryDirectory.__init__):
1103         (FileSystem.mkdtemp.TemporaryDirectory.__exit__): The existing contents would be deleted.
1104         (FileSystem.mkdtemp):
1105         * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py:
1106         (parse_args):
1107         (run_server):
1108         (run_server_with_log_file):
1109         (follow_file):
1110
1111 2018-03-20  Brady Eidson  <beidson@apple.com>
1112
1113         First piece of process swapping on navigation.
1114         https://bugs.webkit.org/show_bug.cgi?id=183665
1115
1116         Reviewed by Andy Estes.
1117
1118         Expose the "swaps processes on navigation" setting in MiniBrowser UI for testing:
1119
1120         * MiniBrowser/mac/AppDelegate.m:
1121         (defaultConfiguration):
1122         * MiniBrowser/mac/SettingsController.h:
1123         * MiniBrowser/mac/SettingsController.m:
1124         (-[SettingsController _populateMenu]):
1125         (-[SettingsController validateMenuItem:]):
1126         (-[SettingsController processSwapOnNavigationEnabled]):
1127         (-[SettingsController toggleProcessSwapOnNavigation:]):
1128
1129         Makes sure the current behavior is tested:
1130         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1131         * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: Added.
1132         (-[PSONNavigationDelegate webView:didFinishNavigation:]):
1133         (-[PSONScheme webView:startURLSchemeTask:]):
1134         (-[PSONScheme webView:stopURLSchemeTask:]):
1135         (TEST):
1136
1137 2018-03-20  Chris Dumez  <cdumez@apple.com>
1138
1139         QuickLook.NavigationDelegate API test is failing on iOS with async policy delegates
1140         https://bugs.webkit.org/show_bug.cgi?id=183791
1141
1142         Reviewed by Alex Christensen.
1143
1144         Add API test coverage.
1145
1146         * TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:
1147         (-[QuickLookAsyncNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
1148         (-[QuickLookAsyncNavigationDelegate _webView:didStartLoadForQuickLookDocumentInMainFrameWithFileName:uti:]):
1149         (-[QuickLookAsyncNavigationDelegate _webView:didFinishLoadForQuickLookDocumentInMainFrame:]):
1150         (-[QuickLookAsyncNavigationDelegate webView:didFinishNavigation:]):
1151         (TEST):
1152
1153 2018-03-20  Tim Horton  <timothy_horton@apple.com>
1154
1155         Add and adopt WK_PLATFORM_NAME and adjust default feature defines
1156         https://bugs.webkit.org/show_bug.cgi?id=183758
1157         <rdar://problem/38017644>
1158
1159         Reviewed by Dan Bernstein.
1160
1161         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
1162
1163 2018-03-20  Chris Dumez  <cdumez@apple.com>
1164
1165         Unreviewed, rolling out r229726 and r229763.
1166
1167         Caused some API test failures on iOS
1168
1169         Reverted changesets:
1170
1171         "Make policy decisions asynchronous"
1172         https://bugs.webkit.org/show_bug.cgi?id=180568
1173         https://trac.webkit.org/changeset/229726
1174
1175         "Rebaseline three webarchive tests for WK2 after r229726."
1176         https://bugs.webkit.org/show_bug.cgi?id=180568
1177         https://trac.webkit.org/changeset/229763
1178
1179 2018-03-20  Zalan Bujtas  <zalan@apple.com>
1180
1181         [LayoutReloaded] Move Display.Box handling from FormattingContext to FormattingState
1182         https://bugs.webkit.org/show_bug.cgi?id=183779
1183
1184         Reviewed by Antti Koivisto.
1185
1186         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1187         (BlockFormattingContext.prototype._computeStaticPosition):
1188         (BlockFormattingContext.prototype._computeOutOfFlowWidth):
1189         (BlockFormattingContext.prototype._computeFloatingWidth):
1190         (BlockFormattingContext.prototype._computeInFlowWidth):
1191         (BlockFormattingContext.prototype._computeOutOfFlowHeight):
1192         (BlockFormattingContext.prototype._computeFloatingHeight):
1193         (BlockFormattingContext.prototype._computeInFlowHeight):
1194         (BlockFormattingContext.prototype._horizontalConstraint):
1195         (BlockFormattingContext.prototype._contentHeight):
1196         (BlockFormattingContext.prototype._adjustBottomWithFIXME):
1197         (BlockFormattingContext.prototype._computeInFlowPositionedPosition):
1198         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
1199         * LayoutReloaded/FormattingContext/FloatingContext.js:
1200         (FloatingContext.prototype.computePosition):
1201         (FloatingContext.prototype._positionForClear):
1202         (FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
1203         (FloatingContext.prototype._availableSpace):
1204         (FloatingContext.prototype._adjustedFloatingPosition):
1205         * LayoutReloaded/FormattingContext/FormattingContext.js:
1206         (FormattingContext):
1207         (FormattingContext.prototype.absoluteMarginBox):
1208         (FormattingContext.prototype.absoluteBorderBox):
1209         (FormattingContext.prototype.absolutePaddingBox):
1210         (FormattingContext.prototype.absoluteContentBox):
1211         (FormattingContext.prototype._toAbsolutePosition):
1212         (FormattingContext.prototype._toRootAbsolutePosition):
1213         (FormattingContext.prototype._addToLayoutQueue):
1214         (FormattingContext.prototype.displayBox):
1215         (FormattingContext.prototype._createDisplayBox): Deleted.
1216         (FormattingContext.prototype.toDisplayBox): Deleted.
1217         (FormattingContext.prototype.toLayoutBox): Deleted.
1218         * LayoutReloaded/FormattingState/FormattingState.js:
1219         (FormattingState):
1220         (FormattingState.prototype.createDisplayBox):
1221         (FormattingState.prototype.displayBox):
1222
1223 2018-03-20  Zalan Bujtas  <zalan@apple.com>
1224
1225         [LayoutReloaded] Introduce FormattingState (Block/Inline/etc)
1226         https://bugs.webkit.org/show_bug.cgi?id=183777
1227
1228         Reviewed by Antti Koivisto.
1229
1230         This is in preparation for moving out states from the formatting contexts.
1231
1232         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1233         (BlockFormattingContext):
1234         * LayoutReloaded/FormattingContext/FormattingContext.js:
1235         (FormattingContext):
1236         (FormattingContext.prototype.layoutState):
1237         (FormattingContext.prototype.layoutContext):
1238         (FormattingContext.prototype.layout):
1239         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
1240         (InlineFormattingContext):
1241         * LayoutReloaded/FormattingState/BlockFormattingState.js: Copied from Tools/LayoutReloaded/LayoutContext.js.
1242         (BlockFormattingState):
1243         * LayoutReloaded/FormattingState/FormattingState.js: Copied from Tools/LayoutReloaded/LayoutContext.js.
1244         (FormattingState):
1245         (FormattingState.prototype.formattingContext):
1246         (FormattingState.prototype.layoutContext):
1247         (FormattingState.prototype._setFormattingContext):
1248         * LayoutReloaded/FormattingState/InlineFormattingState.js: Copied from Tools/LayoutReloaded/LayoutContext.js.
1249         (InlineFormattingState):
1250         * LayoutReloaded/LayoutContext.js:
1251         (LayoutContext):
1252         (LayoutContext.prototype.layout):
1253         (LayoutContext.prototype._createFormattingState):
1254         (LayoutContext.prototype._createFormattingContext): Deleted.
1255         * LayoutReloaded/LayoutReloaded.xcworkspace/contents.xcworkspacedata:
1256         * LayoutReloaded/test/index.html:
1257
1258 2018-03-19  Zalan Bujtas  <zalan@apple.com>
1259
1260         [LayoutReloaded] Layout.Box should not create the formatting context.
1261         https://bugs.webkit.org/show_bug.cgi?id=183766
1262
1263         Reviewed by Antti Koivisto.
1264
1265         Since the formattingContext's lifetime is tied to the layout, the LayoutContext
1266         should construct it instead.
1267
1268         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1269         (BlockFormattingContext):
1270         (BlockFormattingContext.prototype.layout):
1271         (BlockFormattingContext.prototype._layoutOutOfFlowDescendants):
1272         (BlockFormattingContext.prototype._contentHeight):
1273         * LayoutReloaded/FormattingContext/FormattingContext.js:
1274         (FormattingContext):
1275         (FormattingContext.prototype.layoutContext):
1276         (FormattingContext.prototype.toDisplayBox):
1277         (FormattingContext.prototype._outOfFlowDescendants):
1278         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
1279         (InlineFormattingContext):
1280         (InlineFormattingContext.prototype.layout):
1281         * LayoutReloaded/Layout.js:
1282         (layout):
1283         * LayoutReloaded/LayoutContext.js:
1284         (LayoutContext.prototype.layout):
1285         (LayoutContext.prototype._createFormattingContext):
1286         (LayoutContext):
1287         (LayoutContext.prototype.layoutFormattingContext): Deleted.
1288         * LayoutReloaded/LayoutTree/Box.js:
1289         (Layout.Box):
1290         (Layout.Box.prototype.establishedFormattingContext): Deleted.
1291         * LayoutReloaded/misc/headers/Box.h:
1292
1293 2018-03-19  Chris Dumez  <cdumez@apple.com>
1294
1295         Have one service worker process per security origin
1296         https://bugs.webkit.org/show_bug.cgi?id=183600
1297         <rdar://problem/35280128>
1298
1299         Reviewed by Brady Eidson.
1300
1301         Add API test coverage.
1302
1303         * TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
1304
1305 2018-03-19  Zalan Bujtas  <zalan@apple.com>
1306
1307         [LayoutReloaded] Remove border/padding/contentBox() functions from Layout.Box
1308         https://bugs.webkit.org/show_bug.cgi?id=183761
1309
1310         Reviewed by Antti Koivisto.
1311
1312         Display.Box has them.
1313
1314         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1315         (BlockFormattingContext.prototype._computeOutOfFlowWidth):
1316         (BlockFormattingContext.prototype._computeOutOfFlowHeight):
1317         (BlockFormattingContext.prototype._horizontalConstraint):
1318         (BlockFormattingContext.prototype._contentHeight):
1319         (BlockFormattingContext.prototype._adjustBottomWithFIXME):
1320         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
1321         * LayoutReloaded/FormattingContext/FloatingContext.js:
1322         (FloatingContext.prototype._availableSpace):
1323         * LayoutReloaded/FormattingContext/FormattingContext.js:
1324         (FormattingContext.prototype.absoluteBorderBox):
1325         (FormattingContext.prototype.absolutePaddingBox):
1326         (FormattingContext.prototype.absoluteContentBox):
1327         * LayoutReloaded/LayoutTree/Box.js:
1328         (Layout.Box.prototype.isDescendantOf):
1329         (Layout.Box):
1330         (Layout.Box.prototype.borderBox): Deleted.
1331         (Layout.Box.prototype.paddingBox): Deleted.
1332         (Layout.Box.prototype.contentBox): Deleted.
1333
1334 2018-03-19  Jiewen Tan  <jiewen_tan@apple.com>
1335
1336         Unreviewed, another quick fix for r229699
1337
1338         Restricts ENABLE_WEB_AUTHN to only macOS and iOS.
1339
1340         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
1341         * TestWebKitAPI/Tests/ios/LocalAuthenticator.mm:
1342
1343 2018-03-19  Zalan Bujtas  <zalan@apple.com>
1344
1345         [LayoutReloaded] Move statically positioned absolute box positioning to _computeOutOfFlowPosition
1346         https://bugs.webkit.org/show_bug.cgi?id=183750
1347
1348         Reviewed by Antti Koivisto.
1349
1350         * LayoutReloaded/DisplayTree/Box.js:
1351         (Display.Box.prototype.setTop):
1352         (Display.Box.prototype.paddingBox):
1353         (Display.Box.prototype.contentBox):
1354         (Display.Box):
1355         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1356         (BlockFormattingContext.prototype._computeStaticPosition):
1357         (BlockFormattingContext.prototype._layoutOutOfFlowDescendants):
1358         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
1359         * LayoutReloaded/FormattingContext/FormattingContext.js:
1360         (FormattingContext.prototype.absoluteMarginBox):
1361         (FormattingContext.prototype.absoluteBorderBox):
1362         (FormattingContext.prototype.absolutePaddingBox):
1363         (FormattingContext.prototype.absoluteContentBox):
1364         (FormattingContext.prototype._toAbsolutePosition):
1365         (FormattingContext.prototype._toRootAbsolutePosition):
1366         (FormattingContext.prototype.toDisplayBox):
1367         * LayoutReloaded/LayoutTree/InitialBlockContainer.js:
1368         (Layout.InitialBlockContainer.prototype.establishesBlockFormattingContext):
1369         (Layout.InitialBlockContainer):
1370         (Layout.InitialBlockContainer.prototype.paddingBox): Deleted.
1371         (Layout.InitialBlockContainer.prototype.contentBox): Deleted.
1372         * LayoutReloaded/Utils.js:
1373         (Utils.isStaticallyPositioned):
1374
1375 2018-03-19  Chris Dumez  <cdumez@apple.com>
1376
1377         WebKit.WebsitePoliciesAutoplayQuirks API test times out with async policy delegates
1378         https://bugs.webkit.org/show_bug.cgi?id=183702
1379         <rdar://problem/38566060>
1380
1381         Reviewed by Alex Christensen.
1382
1383         Add API test coverage.
1384
1385         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
1386         (-[AsyncAutoplayPoliciesDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
1387         (-[AsyncAutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
1388         (-[AsyncAutoplayPoliciesDelegate _webView:handleAutoplayEvent:withFlags:]):
1389         (TEST):
1390
1391 2018-03-19  Daniel Bates  <dabates@apple.com>
1392
1393         test-webkitpy no longer runs WebKit2 tests
1394         https://bugs.webkit.org/show_bug.cgi?id=183724
1395
1396         Reviewed by Alexey Proskuryakov.
1397
1398         The WebKit2 tests have seen been moved from Source/WebKit2/Scripts/webkit2 to Source/WebKit/Scripts/webkit.
1399
1400         * Scripts/webkitpy/test/main.py:
1401         (main):
1402
1403 2018-03-19  Daniel Bates  <dabates@apple.com>
1404
1405         Make run-webkit-app work for non-GUI apps
1406         https://bugs.webkit.org/show_bug.cgi?id=183701
1407
1408         Reviewed by Lucas Forschler.
1409
1410         Launch the app directly if it is an executable file. Otherwise, assume it is an app bundle
1411         and launch it using open(1) as we currently do.
1412
1413         Note that open(1) is meant for launching GUI apps. Standard output and standard error are
1414         not sent to the tty when using open(1) to launch a non-GUI app.
1415
1416         * Scripts/run-webkit-app: We make the assumption that 
1417         * Scripts/webkitdirs.pm:
1418             - Define and export constant DO_NOT_USE_OPEN_COMMAND.
1419
1420 2018-03-19  Daniel Bates  <dabates@apple.com>
1421
1422         run-webkit-app -g does not work
1423         https://bugs.webkit.org/show_bug.cgi?id=183699
1424
1425         Reviewed by Lucas Forschler.
1426
1427         Check for the optional command line argument -g/--guard-malloc before taking the
1428         first argument passed to be the path to the app to run.
1429
1430         * Scripts/run-webkit-app:
1431
1432 2018-03-18  Commit Queue  <commit-queue@webkit.org>
1433
1434         Unreviewed, rolling out r229689.
1435         https://bugs.webkit.org/show_bug.cgi?id=183735
1436
1437         Causes fast/loader/inner-iframe-loads-data-url-into-parent-on-
1438         unload-crash.html to fail with async delegates (Requested by
1439         cdumez_ on #webkit).
1440
1441         Reverted changeset:
1442
1443         "WebKit.WebsitePoliciesAutoplayQuirks API test times out with
1444         async policy delegates"
1445         https://bugs.webkit.org/show_bug.cgi?id=183702
1446         https://trac.webkit.org/changeset/229689
1447
1448 2018-03-18  Zalan Bujtas  <zalan@apple.com>
1449
1450         [LayoutReloaded] Remove left/right width/height getters from Layout.Box
1451         https://bugs.webkit.org/show_bug.cgi?id=183734
1452
1453         Reviewed by Antti Koivisto.
1454
1455         ...and use Display.Box instead.
1456
1457         * LayoutReloaded/DisplayTree/Box.js:
1458         (Display.Box.prototype.bottomRight):
1459         (Display.Box.prototype.size):
1460         (Display.Box.prototype.height):
1461         (Display.Box.prototype.width):
1462         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1463         (BlockFormattingContext.prototype._computeStaticPosition):
1464         (BlockFormattingContext.prototype._adjustBottomWithFIXME):
1465         (BlockFormattingContext.prototype._computeInFlowPositionedPosition):
1466         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
1467         * LayoutReloaded/FormattingContext/FloatingContext.js:
1468         (FloatingContext.prototype._positionForClear):
1469         (FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
1470         (FloatingContext.prototype._adjustedFloatingPosition):
1471         * LayoutReloaded/FormattingContext/FormattingContext.js:
1472         (FormattingContext.prototype.absoluteMarginBox):
1473         (FormattingContext.prototype.absoluteBorderBox):
1474         (FormattingContext.prototype.absolutePaddingBox):
1475         (FormattingContext.prototype.absoluteContentBox):
1476         (FormattingContext.prototype._toAbsolutePosition):
1477         (FormattingContext.prototype._toRootAbsolutePosition):
1478         * LayoutReloaded/LayoutTree/Box.js:
1479         (Layout.Box.prototype.rect): Deleted.
1480         (Layout.Box.prototype.topLeft): Deleted.
1481         (Layout.Box.prototype.bottomRight): Deleted.
1482         * LayoutReloaded/Utils.js:
1483         (Utils._dumpBox):
1484         (Utils.mapToContainer): Deleted.
1485
1486 2018-03-18  Zalan Bujtas  <zalan@apple.com>
1487
1488         [LayoutReloaded] Remove left/right width/height setters from Layout.Box
1489         https://bugs.webkit.org/show_bug.cgi?id=183731
1490
1491         Reviewed by Antti Koivisto.
1492
1493         ...and use Display.Box instead.
1494
1495         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1496         (BlockFormattingContext.prototype._computeStaticPosition):
1497         (BlockFormattingContext.prototype._computeOutOfFlowWidth):
1498         (BlockFormattingContext.prototype._computeFloatingWidth):
1499         (BlockFormattingContext.prototype._computeInFlowWidth):
1500         (BlockFormattingContext.prototype._computeOutOfFlowHeight):
1501         (BlockFormattingContext.prototype._computeFloatingHeight):
1502         (BlockFormattingContext.prototype._computeInFlowHeight):
1503         (BlockFormattingContext.prototype._computeInFlowPositionedPosition):
1504         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
1505         * LayoutReloaded/FormattingContext/FloatingContext.js:
1506         (FloatingContext.prototype.computePosition):
1507         * LayoutReloaded/FormattingContext/FormattingContext.js:
1508         (FormattingContext.prototype._toDisplayBox):
1509         (FormattingContext.prototype._toLayoutBox):
1510         * LayoutReloaded/Layout.js:
1511         (layout):
1512         * LayoutReloaded/LayoutTree/Box.js:
1513         (Layout.Box.prototype.setTopLeft): Deleted.
1514         (Layout.Box.prototype.setSize): Deleted.
1515         (Layout.Box.prototype.setWidth): Deleted.
1516         (Layout.Box.prototype.setHeight): Deleted.
1517
1518 2018-03-18  Zalan Bujtas  <zalan@apple.com>
1519
1520         [LayoutReloaded] Collect out-of-flow positioned boxes for a given formatting context.
1521         https://bugs.webkit.org/show_bug.cgi?id=183730
1522
1523         Reviewed by Antti Koivisto.
1524
1525         Collect and layout out-of-flow positioned boxes as the final step of the formatting context layout.
1526
1527         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1528         (BlockFormattingContext.prototype.layout):
1529         (BlockFormattingContext.prototype._placeInFlowPositionedChildren):
1530         (BlockFormattingContext.prototype._layoutOutOfFlowDescendants):
1531         (BlockFormattingContext.prototype._placePositionedDescendants): Deleted.
1532         (BlockFormattingContext.prototype._placeOutOfFlowDescendants): Deleted.
1533         * LayoutReloaded/FormattingContext/FormattingContext.js:
1534         (FormattingContext.prototype._toAbsolutePosition):
1535         (FormattingContext.prototype._outOfFlowDescendants):
1536         (FormattingContext):
1537         * LayoutReloaded/LayoutTree/Box.js:
1538         (Layout.Box.prototype.nextInFlowOrFloatSibling):
1539         (Layout.Box.prototype.isDescendantOf):
1540         * LayoutReloaded/LayoutTree/Container.js:
1541         (Layout.Container.prototype.firstInFlowOrFloatChild):
1542         (Layout.Container.prototype.hasInFlowOrFloatChild):
1543         (Layout.Container.prototype.outOfFlowDescendants):
1544         (Layout.Container):
1545         * LayoutReloaded/Utils.js:
1546         (Utils.isDescendantOf): Deleted.
1547         (Utils.collectOutOfFlowDescendants): Deleted.
1548
1549 2018-03-17  Jiewen Tan  <jiewen_tan@apple.com>
1550
1551         [WebAuthN] Implement authenticatorMakeCredential
1552         https://bugs.webkit.org/show_bug.cgi?id=183527
1553         <rdar://problem/35275886>
1554
1555         Reviewed by Brent Fulgham.
1556
1557         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1558         * TestWebKitAPI/Tests/ios/LocalAuthenticator.mm: Added.
1559         (TestWebKitAPI::getTestKey):
1560         (TestWebKitAPI::cleanUpKeychain):
1561         (TestWebKitAPI::LACantEvaluatePolicySwizzler::LACantEvaluatePolicySwizzler):
1562         (TestWebKitAPI::LACantEvaluatePolicySwizzler::cantEvaluatePolicy):
1563         (TestWebKitAPI::LACanEvaluatePolicySwizzler::LACanEvaluatePolicySwizzler):
1564         (TestWebKitAPI::LACanEvaluatePolicySwizzler::canEvaluatePolicy):
1565         (TestWebKitAPI::LAEvaluatePolicyFailedSwizzler::LAEvaluatePolicyFailedSwizzler):
1566         (TestWebKitAPI::LAEvaluatePolicyFailedSwizzler::evaluatePolicyFailed):
1567         (TestWebKitAPI::LAEvaluatePolicyPassedSwizzler::LAEvaluatePolicyPassedSwizzler):
1568         (TestWebKitAPI::LAEvaluatePolicyPassedSwizzler::evaluatePolicyPassed):
1569         (TestWebKitAPI::TestLocalAuthenticator::setFailureFlag):
1570         (TestWebKitAPI::TEST):
1571
1572 2018-03-17  Zalan Bujtas  <zalan@apple.com>
1573
1574         [LayoutReloaded] BlockFormattingContext::placePositionedDescendants takes care of both in- and out-of-flow placement
1575         https://bugs.webkit.org/show_bug.cgi?id=183727
1576
1577         Reviewed by Antti Koivisto.
1578
1579         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1580         (BlockFormattingContext.prototype.layout):
1581         (BlockFormattingContext.prototype._placePositionedDescendants):
1582         (BlockFormattingContext.prototype._placeInFlowPositionedChildren):
1583         (BlockFormattingContext.prototype._placeOutOfFlowDescendants):
1584         * LayoutReloaded/test/absolute-position-when-containing-block-is-not-in-the-formatting-context.html: Added.
1585         * LayoutReloaded/test/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html: Added.
1586         * LayoutReloaded/test/index.html:
1587         * LayoutReloaded/test/relative-position-when-containing-block-is-not-in-the-formatting-context.html: Added.
1588
1589 2018-03-17  Zalan Bujtas  <zalan@apple.com>
1590
1591         [LayoutReloaded] Ensure that positioning happens within the formatting context
1592         https://bugs.webkit.org/show_bug.cgi?id=183722
1593
1594         Reviewed by Antti Koivisto.
1595
1596         All sizing and positioning need to happen in the formatting context that the box lives in
1597         including the final position of in- and out-of-flow descendants.
1598
1599         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1600         (BlockFormattingContext.prototype.layout):
1601         (BlockFormattingContext.prototype._placeInFlowPositionedChildren):
1602         * LayoutReloaded/LayoutTree/Box.js:
1603         (Layout.Box.prototype.establishesBlockFormattingContext):
1604         (Layout.Box.prototype.isPositioned):
1605         (Layout.Box.prototype.isRelativelyPositioned):
1606         (Layout.Box.prototype.isAbsolutelyPositioned):
1607         (Layout.Box.prototype.isOutOfFlowPositioned):
1608         (Layout.Box.prototype.containingBlock):
1609         (Layout.Box.prototype.isRelativePositioned): Deleted.
1610         (Layout.Box.prototype.isAbsolutePositioned): Deleted.
1611         * LayoutReloaded/Utils.js:
1612         (Utils.isRelativelyPositioned):
1613         (Utils.isAbsolutelyPositioned):
1614         (Utils.isRelativePositioned): Deleted.
1615         (Utils.isAbsolutePositioned): Deleted.
1616         * LayoutReloaded/misc/headers/Box.h:
1617
1618 2018-03-16  Wenson Hsieh  <wenson_hsieh@apple.com>
1619
1620         Unreviewed, rolling out r229688.
1621
1622         There's a solution that doesn't require this SPI.
1623
1624         Reverted changeset:
1625
1626         "Add SPI to expose width and height anchors for WKWebView's
1627         content view"
1628         https://bugs.webkit.org/show_bug.cgi?id=183711
1629         https://trac.webkit.org/changeset/229688
1630
1631 2018-03-16  Zalan Bujtas  <zalan@apple.com>
1632
1633         [LayoutReloaded] Move move functions to the base class from BlockFormattingContext
1634         https://bugs.webkit.org/show_bug.cgi?id=183719
1635
1636         Reviewed by Antti Koivisto.
1637
1638         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1639         (BlockFormattingContext):
1640         (BlockFormattingContext.prototype.layout):
1641         (BlockFormattingContext.prototype._shrinkToFitWidth):
1642         (BlockFormattingContext.prototype._toAbsolutePosition): Deleted.
1643         (BlockFormattingContext.prototype._needsLayout): Deleted.
1644         (BlockFormattingContext.prototype._addToLayoutQueue): Deleted.
1645         (BlockFormattingContext.prototype._nextInLayoutQueue): Deleted.
1646         (BlockFormattingContext.prototype._removeFromLayoutQueue): Deleted.
1647         (BlockFormattingContext.prototype._createDisplayBox): Deleted.
1648         (BlockFormattingContext.prototype._toDisplayBox): Deleted.
1649         (BlockFormattingContext.prototype._toLayoutBox): Deleted.
1650         * LayoutReloaded/FormattingContext/FormattingContext.js:
1651         (FormattingContext):
1652         (FormattingContext.prototype._toAbsolutePosition):
1653         (FormattingContext.prototype._descendantNeedsLayout):
1654         (FormattingContext.prototype._addToLayoutQueue):
1655         (FormattingContext.prototype._nextInLayoutQueue):
1656         (FormattingContext.prototype._removeFromLayoutQueue):
1657         (FormattingContext.prototype._createDisplayBox):
1658         (FormattingContext.prototype._toDisplayBox):
1659         (FormattingContext.prototype._toLayoutBox):
1660         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
1661         (InlineFormattingContext.prototype.layout):
1662
1663 2018-03-16  Chris Dumez  <cdumez@apple.com>
1664
1665         WebKit.WebsitePoliciesAutoplayQuirks API test times out with async policy delegates
1666         https://bugs.webkit.org/show_bug.cgi?id=183702
1667
1668         Reviewed by Alex Christensen.
1669
1670         Add API test coverage.
1671
1672         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
1673         (-[AsyncAutoplayPoliciesDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
1674         (-[AsyncAutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
1675         (-[AsyncAutoplayPoliciesDelegate _webView:handleAutoplayEvent:withFlags:]):
1676         (TEST):
1677
1678 2018-03-16  Wenson Hsieh  <wenson_hsieh@apple.com>
1679
1680         Add SPI to expose width and height anchors for WKWebView's content view
1681         https://bugs.webkit.org/show_bug.cgi?id=183711
1682         <rdar://problem/38562899>
1683
1684         Reviewed by Tim Horton.
1685
1686         Adds an API test exercising the new SPI.
1687
1688         * TestWebKitAPI/Tests/WebKitCocoa/AutoLayoutIntegration.mm:
1689         (checkCGRect):
1690         (TEST):
1691
1692 2018-03-16  Chris Dumez  <cdumez@apple.com>
1693
1694         WebKit.RestoreSessionStateContainingScrollRestorationDefault API test is failing with async policy delegates
1695         https://bugs.webkit.org/show_bug.cgi?id=183679
1696
1697         Reviewed by Alex Christensen.
1698
1699         Add API test coverage.
1700
1701         * TestWebKitAPI/Tests/WebKit/RestoreSessionState.cpp:
1702         (TestWebKitAPI::decidePolicyForNavigationAction):
1703         (TestWebKitAPI::decidePolicyForResponse):
1704         (TestWebKitAPI::TEST):
1705
1706 2018-03-16  Zalan Bujtas  <zalan@apple.com>
1707
1708         [LayoutReloaded] Introduce Display.Box
1709         https://bugs.webkit.org/show_bug.cgi?id=183700
1710
1711         Reviewed by Antti Koivisto.
1712
1713         Display.Box objects will end up in the display(box) tree. Currently
1714         they are just hanging off of the Layout.Box objects.
1715
1716         * LayoutReloaded/DisplayTree/Box.js: Added.
1717         (Display.Box):
1718         (Display.Box.prototype.rect):
1719         (Display.Box.prototype.top):
1720         (Display.Box.prototype.left):
1721         (Display.Box.prototype.bottom):
1722         (Display.Box.prototype.right):
1723         (Display.Box.prototype.topLeft):
1724         (Display.Box.prototype.bottomRight):
1725         (Display.Box.prototype.setTopLeft):
1726         (Display.Box.prototype.setSize):
1727         (Display.Box.prototype.setWidth):
1728         (Display.Box.prototype.setHeight):
1729         (Display.Box.prototype.borderBox):
1730         (Display.Box.prototype.paddingBox):
1731         (Display.Box.prototype.contentBox):
1732         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1733         (BlockFormattingContext):
1734         (BlockFormattingContext.prototype.layout):
1735         (BlockFormattingContext.prototype._toAbsolutePosition):
1736         (BlockFormattingContext.prototype._needsLayout):
1737         (BlockFormattingContext.prototype._addToLayoutQueue):
1738         (BlockFormattingContext.prototype._nextInLayoutQueue):
1739         (BlockFormattingContext.prototype._removeFromLayoutQueue):
1740         (BlockFormattingContext.prototype._createDisplayBox):
1741         (BlockFormattingContext.prototype._toDisplayBox):
1742         (BlockFormattingContext.prototype._toLayoutBox):
1743         * LayoutReloaded/Layout.js:
1744         (layout):
1745         * LayoutReloaded/LayoutReloaded.xcworkspace/contents.xcworkspacedata:
1746         * LayoutReloaded/LayoutTree/Box.js:
1747         (Layout.Box):
1748         (Layout.Box.prototype.setDisplayBox):
1749         (Layout.Box.prototype.displayBox):
1750         (Layout.Box.prototype.rect):
1751         (Layout.Box.prototype.setTopLeft):
1752         (Layout.Box.prototype.setSize):
1753         (Layout.Box.prototype.setWidth):
1754         (Layout.Box.prototype.setHeight):
1755         (Layout.Box.prototype.borderBox):
1756         (Layout.Box.prototype.paddingBox):
1757         (Layout.Box.prototype.contentBox):
1758         * LayoutReloaded/test/index.html:
1759
1760 2018-03-16  Chris Dumez  <cdumez@apple.com>
1761
1762         URLSchemeHandler.Basic API test fails with async policy delegates
1763         https://bugs.webkit.org/show_bug.cgi?id=183678
1764
1765         Reviewed by Alex Christensen.
1766
1767         Add API test coverage.
1768
1769         * TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
1770         (-[URLSchemeHandlerAsyncNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
1771         (-[URLSchemeHandlerAsyncNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
1772         (TEST):
1773
1774 2018-03-16  Zalan Bujtas  <zalan@apple.com>
1775
1776         [LayoutReloaded] Utils.computed* functions should just take node instead of box.
1777         https://bugs.webkit.org/show_bug.cgi?id=183697
1778
1779         Reviewed by Antti Koivisto.
1780
1781         This is in preparation for introducing the display tree.
1782
1783         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1784         (BlockFormattingContext.prototype._computeOutOfFlowWidth):
1785         (BlockFormattingContext.prototype._computeFloatingWidth):
1786         (BlockFormattingContext.prototype._computeInFlowWidth):
1787         (BlockFormattingContext.prototype._computeOutOfFlowHeight):
1788         (BlockFormattingContext.prototype._computeFloatingHeight):
1789         (BlockFormattingContext.prototype._computeInFlowHeight):
1790         (BlockFormattingContext.prototype._shrinkToFitWidth):
1791         * LayoutReloaded/FormattingContext/BlockFormatting/BlockMarginCollapse.js:
1792         (BlockMarginCollapse._nonCollapsedMarginTop):
1793         (BlockMarginCollapse._nonCollapsedMarginBottom):
1794         (BlockMarginCollapse._collapsedMarginTopFromFirstChild):
1795         (BlockMarginCollapse._collapsedMarginBottomFromLastChild):
1796         * LayoutReloaded/FormattingContext/FormattingContext.js:
1797         (FormattingContext.prototype.marginTop):
1798         (FormattingContext.prototype.marginLeft):
1799         (FormattingContext.prototype.marginBottom):
1800         (FormattingContext.prototype.marginRight):
1801         * LayoutReloaded/LayoutTree/Box.js:
1802         (Layout.Box.prototype.paddingBox):
1803         (Layout.Box.prototype.contentBox):
1804         (Layout.Box):
1805         * LayoutReloaded/Utils.js:
1806         (Utils.computedMarginTop):
1807         (Utils.computedMarginLeft):
1808         (Utils.computedMarginBottom):
1809         (Utils.computedMarginRight):
1810         (Utils.computedBorderTopLeft):
1811         (Utils.computedBorderBottomRight):
1812         (Utils.computedPaddingTopLeft):
1813         (Utils.computedPaddingBottomRight):
1814         (Utils.computedBorderAndPaddingTop):
1815         (Utils.computedBorderAndPaddingLeft):
1816         (Utils.computedBorderAndPaddingBottom):
1817         (Utils.computedBorderAndPaddingRight):
1818         (Utils.computedHorizontalBorderAndPadding):
1819         (Utils.computedVerticalBorderAndPadding):
1820         (Utils.computedLineHeight):
1821         (Utils.hasClearLeft):
1822         (Utils.hasClearRight):
1823         (Utils.hasClearBoth):
1824
1825 2018-03-15  Zalan Bujtas  <zalan@apple.com>
1826
1827         [LayoutReloaded] Should never need to go beyond the root container when asking for the containing block.
1828         https://bugs.webkit.org/show_bug.cgi?id=183691
1829
1830         Reviewed by Antti Koivisto.
1831
1832         While laying out the boxes in a block formatting context, if we happen to need
1833         to get to the containing block of a box to compute geometry, it should always be a
1834         descendant of the root container (or the root container itself).
1835         Nothing outside of the formatting context should be able to impact the boxes inside.
1836
1837         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1838         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
1839         (BlockFormattingContext.prototype._toAbsolutePosition):
1840         (BlockFormattingContext):
1841         * LayoutReloaded/FormattingContext/BlockFormatting/BlockMarginCollapse.js:
1842         (BlockMarginCollapse._isMarginTopCollapsedWithParent):
1843         (BlockMarginCollapse._isMarginBottomCollapsedWithParent):
1844         * LayoutReloaded/LayoutTree/Box.js:
1845         (Layout.Box.prototype.isRootBox):
1846         (Layout.Box.prototype.isRootElement): Deleted.
1847         * LayoutReloaded/Utils.js:
1848         (Utils.isDescendantOf):
1849         (Utils.mapStaticToAbsolute): Deleted.
1850         * LayoutReloaded/misc/headers/Box.h:
1851
1852 2018-03-15  Wenson Hsieh  <wenson_hsieh@apple.com>
1853
1854         [iOS WK2] Hit-testing fails when specifying a large top content inset
1855         https://bugs.webkit.org/show_bug.cgi?id=183648
1856         <rdar://problem/38421894>
1857
1858         Reviewed by Tim Horton.
1859
1860         Adds four new API tests to verify that adding top or bottom content insets to the WKWebView's scroll view does
1861         not cause the DOMWindow's innerHeight to shrink. Currently, doing so would cause the innerHeight to be reported
1862         as (viewHeight - inset.top) or (viewHeight - inset.bottom).
1863
1864         See WebKit ChangeLog for more details.
1865
1866         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1867         * TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm: Added.
1868         (TestWebKitAPI::TEST):
1869
1870 2018-03-15  Aakash Jain  <aakash_jain@apple.com>
1871
1872         Add unit-test for NetworkTransaction URLError handling
1873         https://bugs.webkit.org/show_bug.cgi?id=183664
1874
1875         Reviewed by Alexey Proskuryakov.
1876
1877         * Scripts/webkitpy/common/net/networktransaction_unittest.py:
1878         (NetworkTransactionTest._raise_URLError): Method to raise URLError.
1879         (NetworkTransactionTest.test_retry_on_HTTPError): Renamed from test_retry.
1880         (NetworkTransactionTest.test_retry_on_URLError): unit-test for testing URLError handling.
1881
1882 2018-03-15  Aakash Jain  <aakash_jain@apple.com>
1883
1884         EWS should print the URL in logs on URLError
1885         https://bugs.webkit.org/show_bug.cgi?id=183651
1886
1887         Reviewed by Alexey Proskuryakov.
1888
1889         * Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
1890         (Bugzilla.open_url): Pass the url.
1891         * Scripts/webkitpy/common/net/networktransaction.py:
1892         (NetworkTransaction.run): Accept optional url parameter and print it on URLError.
1893
1894 2018-03-15  Zalan Bujtas  <zalan@apple.com>
1895
1896         [LayoutReloaded] Introduce Layout namespace
1897         https://bugs.webkit.org/show_bug.cgi?id=183659
1898
1899         Reviewed by Antti Koivisto.
1900
1901         This is in preparation for introducing the display tree.
1902         Box -> Layout.Box
1903
1904         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
1905         (BlockFormattingContext.prototype.layout):
1906         (BlockFormattingContext.prototype.computeWidth):
1907         (BlockFormattingContext.prototype.computeHeight):
1908         (BlockFormattingContext.prototype.marginTop):
1909         (BlockFormattingContext.prototype.marginBottom):
1910         (BlockFormattingContext.prototype._computeStaticPosition):
1911         (BlockFormattingContext.prototype._placeInFlowPositionedChildren):
1912         (BlockFormattingContext.prototype._placeOutOfFlowDescendants):
1913         (BlockFormattingContext.prototype._computeOutOfFlowWidth):
1914         (BlockFormattingContext.prototype._computeFloatingWidth):
1915         (BlockFormattingContext.prototype._computeInFlowWidth):
1916         (BlockFormattingContext.prototype._computeOutOfFlowHeight):
1917         (BlockFormattingContext.prototype._computeFloatingHeight):
1918         (BlockFormattingContext.prototype._computeInFlowHeight):
1919         (BlockFormattingContext.prototype._horizontalConstraint):
1920         (BlockFormattingContext.prototype._contentHeight):
1921         (BlockFormattingContext.prototype._adjustBottomWithFIXME):
1922         (BlockFormattingContext.prototype._computeInFlowPositionedPosition):
1923         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
1924         (BlockFormattingContext.prototype._shrinkToFitWidth):
1925         (BlockFormattingContext):
1926         (BlockFormattingContext.prototype._computeHorizontalConstraint): Deleted.
1927         (BlockFormattingContext.prototype._computeContentHeight): Deleted.
1928         * LayoutReloaded/FormattingContext/BlockFormatting/BlockMarginCollapse.js:
1929         (BlockMarginCollapse.marginTop):
1930         (BlockMarginCollapse.marginBottom):
1931         (BlockMarginCollapse._isMarginTopCollapsedWithSibling):
1932         (BlockMarginCollapse._isMarginBottomCollapsedWithSibling):
1933         (BlockMarginCollapse._isMarginTopCollapsedWithParent):
1934         (BlockMarginCollapse._isMarginBottomCollapsedWithParent):
1935         (BlockMarginCollapse._nonCollapsedMarginTop):
1936         (BlockMarginCollapse._nonCollapsedMarginBottom):
1937         (BlockMarginCollapse._collapsedMarginTopFromFirstChild):
1938         (BlockMarginCollapse._collapsedMarginBottomFromLastChild):
1939         (BlockMarginCollapse._hasAdjoiningMarginTopAndBottom):
1940         (BlockMarginCollapse):
1941         * LayoutReloaded/FormattingContext/FloatingContext.js:
1942         (FloatingContext.prototype.computePosition):
1943         (FloatingContext.prototype._positionForClear):
1944         (FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
1945         * LayoutReloaded/FormattingContext/FormattingContext.js:
1946         (FormattingContext.prototype.computeWidth):
1947         (FormattingContext.prototype.computeHeight):
1948         (FormattingContext.prototype.marginTop):
1949         (FormattingContext.prototype.marginLeft):
1950         (FormattingContext.prototype.marginBottom):
1951         (FormattingContext.prototype.marginRight):
1952         (FormattingContext.prototype.absoluteMarginBox):
1953         (FormattingContext.prototype.absoluteBorderBox):
1954         (FormattingContext.prototype.absolutePaddingBox):
1955         (FormattingContext.prototype.absoluteContentBox):
1956         (FormattingContext):
1957         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
1958         (InlineFormattingContext.prototype.layout):
1959         * LayoutReloaded/LayoutTree/BlockContainer.js:
1960         (BlockContainer): Deleted.
1961         (BlockContainer.prototype.establishesInlineFormattingContext): Deleted.
1962         * LayoutReloaded/LayoutTree/Box.js:
1963         (Box): Deleted.
1964         (Box.prototype.id): Deleted.
1965         (Box.prototype.setRendererName): Deleted.
1966         (Box.prototype.name): Deleted.
1967         (Box.prototype.node): Deleted.
1968         (Box.prototype.parent): Deleted.
1969         (Box.prototype.nextSibling): Deleted.
1970         (Box.prototype.nextInFlowSibling): Deleted.
1971         (Box.prototype.previousSibling): Deleted.
1972         (Box.prototype.previousInFlowSibling): Deleted.
1973         (Box.prototype.setParent): Deleted.
1974         (Box.prototype.setNextSibling): Deleted.
1975         (Box.prototype.setPreviousSibling): Deleted.
1976         (Box.prototype.rect): Deleted.
1977         (Box.prototype.topLeft): Deleted.
1978         (Box.prototype.bottomRight): Deleted.
1979         (Box.prototype.setTopLeft): Deleted.
1980         (Box.prototype.setSize): Deleted.
1981         (Box.prototype.setWidth): Deleted.
1982         (Box.prototype.setHeight): Deleted.
1983         (Box.prototype.isContainer): Deleted.
1984         (Box.prototype.isBlockLevelBox): Deleted.
1985         (Box.prototype.isBlockContainerBox): Deleted.
1986         (Box.prototype.isInlineLevelBox): Deleted.
1987         (Box.prototype.setIsAnonymous): Deleted.
1988         (Box.prototype.isAnonymous): Deleted.
1989         (Box.prototype.establishesFormattingContext): Deleted.
1990         (Box.prototype.establishedFormattingContext): Deleted.
1991         (Box.prototype.establishesBlockFormattingContext): Deleted.
1992         (Box.prototype.establishesInlineFormattingContext): Deleted.
1993         (Box.prototype.isPositioned): Deleted.
1994         (Box.prototype.isRelativePositioned): Deleted.
1995         (Box.prototype.isAbsolutePositioned): Deleted.
1996         (Box.prototype.isFixedPositioned): Deleted.
1997         (Box.prototype.isInFlow): Deleted.
1998         (Box.prototype.isOutOfFlowPositioned): Deleted.
1999         (Box.prototype.isInFlowPositioned): Deleted.
2000         (Box.prototype.isFloatingPositioned): Deleted.
2001         (Box.prototype.isFloatingOrOutOfFlowPositioned): Deleted.
2002         (Box.prototype.isRootElement): Deleted.
2003         (Box.prototype.containingBlock): Deleted.
2004         (Box.prototype.borderBox): Deleted.
2005         (Box.prototype.paddingBox): Deleted.
2006         (Box.prototype.contentBox): Deleted.
2007         * LayoutReloaded/LayoutTree/Container.js:
2008         (Container): Deleted.
2009         (Container.prototype.isContainer): Deleted.
2010         (Container.prototype.setFirstChild): Deleted.
2011         (Container.prototype.setLastChild): Deleted.
2012         (Container.prototype.firstChild): Deleted.
2013         (Container.prototype.firstInFlowChild): Deleted.
2014         (Container.prototype.lastChild): Deleted.
2015         (Container.prototype.lastInFlowChild): Deleted.
2016         (Container.prototype.hasChild): Deleted.
2017         (Container.prototype.hasInFlowChild): Deleted.
2018         * LayoutReloaded/LayoutTree/InitialBlockContainer.js:
2019         (InitialBlockContainer): Deleted.
2020         (InitialBlockContainer.prototype.establishesBlockFormattingContext): Deleted.
2021         (InitialBlockContainer.prototype.paddingBox): Deleted.
2022         (InitialBlockContainer.prototype.contentBox): Deleted.
2023         * LayoutReloaded/LayoutTree/InlineBox.js:
2024         (InlineBox): Deleted.
2025         (InlineBox.prototype.setText): Deleted.
2026         (InlineBox.prototype.text): Deleted.
2027         * LayoutReloaded/TreeBuilder.js:
2028         (TreeBuilder.prototype.createTree):
2029         (TreeBuilder.prototype._createAndAttachBox):
2030         * LayoutReloaded/Utils.js:
2031         (Utils._dumpBox):
2032
2033 2018-03-14  Chris Fleizach  <cfleizach@apple.com>
2034
2035         AX: Implement accessible dismiss action on iOS
2036         https://bugs.webkit.org/show_bug.cgi?id=183352
2037         <rdar://problem/38161500>
2038
2039         Reviewed by Zalan Bujtas.
2040
2041         * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
2042         (WTR::AccessibilityUIElement::dismiss const):
2043         * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
2044         * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
2045         * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
2046         (WTR::AccessibilityUIElement::dismiss):
2047
2048 2018-03-14  Youenn Fablet  <youenn@apple.com>
2049
2050         Update libwebrtc up to 36af4e9614f707f733eb2340fae66d6325aaac5b
2051         https://bugs.webkit.org/show_bug.cgi?id=183481
2052
2053         Reviewed by Eric Carlson.
2054
2055         * Scripts/webkitpy/style/checker.py: Do not check style.
2056
2057 2018-03-14  Brendan McLoughlin  <brendan@bocoup.com>
2058
2059         Add label on github when exporting wpt tests to w3c/web-platform-test repo
2060         https://bugs.webkit.org/show_bug.cgi?id=183575
2061
2062         Reviewed by Youenn Fablet.
2063
2064         * Scripts/webkitpy/w3c/test_exporter.py:
2065         (TestExporter.make_pull_request):
2066         (parse_args):
2067         * Scripts/webkitpy/w3c/test_exporter_unittest.py:
2068         (TestExporterTest.test_export):
2069
2070 2018-03-14  Zalan Bujtas  <zalan@apple.com>
2071
2072         [LayoutReloaded] Add InlineBox dump
2073         https://bugs.webkit.org/show_bug.cgi?id=183625
2074
2075         Reviewed by Antti Koivisto.
2076
2077         Right now line boxes live off of the inline formatting context but that's temporary and
2078         they will be moved over to the BoxTree.
2079
2080         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
2081         (BlockFormattingContext.prototype._computeContentHeight):
2082         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
2083         (InlineFormattingContext):
2084         (InlineFormattingContext.prototype.lines):
2085         (InlineFormattingContext.prototype.layout):
2086         (InlineFormattingContext.prototype._handleText):
2087         (InlineFormattingContext.prototype._commitLine):
2088         (InlineFormattingContext.prototype._initializeLine):
2089         * LayoutReloaded/FormattingContext/InlineFormatting/Line.js:
2090         (Line):
2091         (Line.prototype.isEmpty):
2092         (Line.prototype.rect):
2093         (Line.prototype.lineBoxes):
2094         (Line.prototype.addLineBox):
2095         (Line.prototype.appendFragment): Deleted.
2096         * LayoutReloaded/README.md:
2097         * LayoutReloaded/Utils.js:
2098         (Utils.computedLineHeight):
2099         (Utils.isBlockContainerElement):
2100         (Utils.textHeight):
2101         (Utils._dumpBox):
2102         (Utils._dumpLines.):
2103         (Utils._dumpLines):
2104         (Utils._dumpTree):
2105         (Utils.precisionRound):
2106         (Utils):
2107         * LayoutReloaded/misc/LayoutReloadedWebKit.patch:
2108         * LayoutReloaded/test/index.html:
2109
2110 2018-03-14  Tim Horton  <timothy_horton@apple.com>
2111
2112         Fix the build after r229567
2113
2114         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
2115
2116 2018-03-13  Jer Noble  <jer.noble@apple.com>
2117
2118         [iOS] Muted media playback can interrupt out-of-process audio
2119         https://bugs.webkit.org/show_bug.cgi?id=183606
2120         <rdar://problem/37466253>
2121
2122         Reviewed by Eric Carlson.
2123
2124         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2125         * TestWebKitAPI/Tests/WebKitLegacy/ios/AudioSessionCategoryIOS.mm:
2126         (TestWebKitAPI::TEST):
2127         * TestWebKitAPI/Tests/WebKitLegacy/ios/video-with-paused-audio-and-playing-muted.html: Added.
2128
2129 2018-03-13  Ross Kirsling  <ross.kirsling@sony.com>
2130
2131         [Win] Layout Test fast/html/menuitem-element.html is failing.
2132         https://bugs.webkit.org/show_bug.cgi?id=179299
2133
2134         Reviewed by Per Arne Vollan.
2135
2136         * DumpRenderTree/win/DumpRenderTree.cpp:
2137         (setWebPreferencesForTestOptions):
2138         Recognize test option "enableMenuItemElement".
2139
2140 2018-03-12  Tim Horton  <timothy_horton@apple.com>
2141
2142         Stop using SDK conditionals to control feature definitions
2143         https://bugs.webkit.org/show_bug.cgi?id=183430
2144         <rdar://problem/38251619>
2145
2146         Reviewed by Dan Bernstein.
2147
2148         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
2149         * TestWebKitAPI/Configurations/WebKitTargetConditionals.xcconfig: Renamed.
2150
2151 2018-03-12  Ross Kirsling  <ross.kirsling@sony.com>
2152
2153         [DRT] TestOptions should not be ObjC.
2154         https://bugs.webkit.org/show_bug.cgi?id=183487
2155
2156         Reviewed by Per Arne Vollan.
2157
2158         * DumpRenderTree/CMakeLists.txt:
2159         * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
2160         * DumpRenderTree/PlatformMac.cmake:
2161         Move TestOptions to platform-agnostic sources.
2162
2163         * DumpRenderTree/TestOptions.h:
2164         * DumpRenderTree/TestOptions.cpp: Renamed from Tools/DumpRenderTree/TestOptions.mm.
2165         * DumpRenderTree/mac/DumpRenderTree.mm:
2166         Remove NSURL dependency and align with WTR as much as possible.
2167
2168         * DumpRenderTree/win/DumpRenderTree.cpp:
2169         Consume TestOptions (recognizing just the ones that have WebPreferences defined for now).
2170
2171 2018-03-12  Yoav Weiss  <yoav@yoav.ws>
2172
2173         Runtime flag for link prefetch and remove link subresource.
2174         https://bugs.webkit.org/show_bug.cgi?id=183540
2175
2176         Reviewed by Chris Dumez.
2177
2178         Remove the LINK_PREFETCH build time flag.
2179
2180         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
2181
2182 2018-03-12  Wenson Hsieh  <wenson_hsieh@apple.com>
2183
2184         REGRESSION(r211643): Dismissing WKActionSheet should not also dismiss its presenting view controller
2185         https://bugs.webkit.org/show_bug.cgi?id=183549
2186         <rdar://problem/34960698>
2187
2188         Reviewed by Andy Estes.
2189
2190         Add TestWebKitAPI support for testing WKWebViews embedded within presented view controllers, and use this to
2191         check that dismissing an action sheet does not additionally cause the view controller being used to present the
2192         web view to also dismiss.
2193
2194         * TestWebKitAPI/ClassMethodSwizzler.h: Added.
2195         * TestWebKitAPI/ClassMethodSwizzler.mm: Added.
2196         (TestWebKitAPI::ClassMethodSwizzler::ClassMethodSwizzler):
2197         (TestWebKitAPI::ClassMethodSwizzler::~ClassMethodSwizzler):
2198
2199         Add ClassMethodSwizzler, an RAII which swizzles an Objective-C class method over its lifetime.
2200
2201         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2202         * TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
2203
2204         Add a new API test that loads a view controller which embeds a WKWebView, and verifies that presenting and then
2205         dismissing an action sheet from that web view does not cause the view controller to also dismiss.
2206
2207         (TestWebKitAPI::setOverrideViewControllerForFullscreenPresentation):
2208         (TestWebKitAPI::overrideViewControllerForFullscreenPresentation):
2209
2210         Mock +[UIViewController _viewControllerForFullScreenPresentationFromView:] to return the web view. This works
2211         around the fact that TestWebKitAPI is not a UI application, so certain pieces of UIKit API and SPI need to be
2212         stubbed or mocked to simulate being a UI application. We can remove these workarounds once
2213         https://webkit.org/b/175204 is addressed, and TestWebKitAPI becomes a UI application that can actually maintain
2214         a root view controller and key window.
2215
2216         (TestWebKitAPI::TEST):
2217         * TestWebKitAPI/cocoa/TestWKWebView.h:
2218         * TestWebKitAPI/cocoa/TestWKWebView.mm:
2219         (-[TestWKWebView initWithFrame:configuration:addToWindow:]):
2220
2221         Add a new initializer for TestWKWebView that doesn't force the view to be hosted within a UIWindow. This is used
2222         by TestWKWebViewController to create a TestWKWebView in -loadView.
2223
2224         * TestWebKitAPI/ios/TestWKWebViewController.h: Added.
2225         * TestWebKitAPI/ios/TestWKWebViewController.mm: Added.
2226         (-[TestWKWebViewControllerWindow _beginKeyWindowDeferral]):
2227         (-[TestWKWebViewControllerWindow _endKeyWindowDeferral]):
2228
2229         Stub out these methods to prevent UIKit from hitting assertions when making this UIWindow the key window. This
2230         can also be removed once TestWebKitAPI is a UI application.
2231
2232         (-[TestWKWebViewController initWithFrame:configuration:]):
2233         (-[TestWKWebViewController loadView]):
2234         (-[TestWKWebViewController webView]):
2235         (-[TestWKWebViewController dismissViewControllerAnimated:completion:]):
2236         (-[TestWKWebViewController dismissalHandler]):
2237         (-[TestWKWebViewController setDismissalHandler:]):
2238
2239         Add a UIViewController helper subclass whose -view is a WKWebView. The new API test presents this view
2240         controller. Tests may also provide a dismissalHandler, which is invoked when the view controller is being
2241         dismissed. The new API test uses this hook to verify that the view controller containing the web view isn't also
2242         dismissed after the action sheet goes away.
2243
2244         * TestWebKitAPI/ios/UIKitSPI.h:
2245
2246 2018-03-12  Basuke Suzuki  <Basuke.Suzuki@sony.com>
2247
2248         [webkitpy] Remove openssl command dependency.
2249         https://bugs.webkit.org/show_bug.cgi?id=183494
2250
2251         Reviewed by Ryosuke Niwa.
2252
2253         Added Python implementation of PEM file perser and switched to use that
2254         from external `openssl` command.
2255
2256         * Scripts/webkitpy/common/system/pemfile.py: Added.
2257         (load):
2258         (BadFormatError):
2259         (Pem):
2260         (Pem.__init__):
2261         (Pem.get):
2262         (Pem.get_all):
2263         (Pem.certificate):
2264         (Pem.private_key):
2265         (Pem.csr):
2266         (Pem.certificate_request):
2267         (Pem.certificate_signing_request):
2268         (_parse_pem_format):
2269         (_parse_pem_format.find_begin):
2270         (_parse_pem_format.find_end):
2271         (_parse_pem_format.sections):
2272         * Scripts/webkitpy/common/system/pemfile_unittest.py: Added.
2273         (PemFileTest):
2274         (PemFileTest.test_parse):
2275         (PemFileTest.test_parse_bad_format):
2276         * Scripts/webkitpy/port/base.py:
2277         (Port.start_websocket_server):
2278         (Port._extract_certificate_from_pem): Deleted.
2279         (Port._extract_private_key_from_pem): Deleted.
2280
2281 2018-03-12  Javier Fernandez  <jfernandez@igalia.com>
2282
2283         Remove GridLayout runtime flag
2284         https://bugs.webkit.org/show_bug.cgi?id=183484
2285
2286         Reviewed by Myles C. Maxfield.
2287
2288         The Grid Layout feature has been enabled by default for almost a
2289         year, so I think it's time to remove the runtime flag and the
2290         codepath run when the feature is disabled.
2291
2292         * DumpRenderTree/mac/DumpRenderTree.mm:
2293         (enableExperimentalFeatures):
2294
2295 2018-03-12  Antoine Quint  <graouts@apple.com>
2296
2297         [Web Animations] Implement CSS Animations and CSS Transitions as Web Animations
2298         https://bugs.webkit.org/show_bug.cgi?id=183504
2299         <rdar://problem/38372965>
2300
2301         Reviewed by Jon Lee.
2302
2303         Add a new <!-- webkit-test-runner --> flag to enable the CSS Animations and CSS Transitions
2304         as Web Animations runtime flag in the new tests we've created for this feature.
2305
2306         * DumpRenderTree/TestOptions.h:
2307         * DumpRenderTree/TestOptions.mm:
2308         (TestOptions::TestOptions):
2309         * DumpRenderTree/mac/DumpRenderTree.mm:
2310         (setWebPreferencesForTestOptions):
2311         * WebKitTestRunner/TestController.cpp:
2312         (WTR::TestController::resetPreferencesToConsistentValues):
2313         (WTR::updateTestOptionsFromTestHeader):
2314         * WebKitTestRunner/TestOptions.h:
2315         (WTR::TestOptions::hasSameInitializationOptions const):
2316
2317 2018-03-11  Zalan Bujtas  <zalan@apple.com>
2318
2319         [LayoutReloaded] Add Line class for InlineFormattingContext -and move files around.
2320         https://bugs.webkit.org/show_bug.cgi?id=183551
2321
2322         Reviewed by Wenson Hsieh.
2323
2324         * LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js: Renamed from Tools/LayoutReloaded/BlockFormattingContext.js.
2325         (BlockFormattingContext):
2326         (BlockFormattingContext.prototype.layout):
2327         (BlockFormattingContext.prototype.computeWidth):
2328         (BlockFormattingContext.prototype.computeHeight):
2329         (BlockFormattingContext.prototype.marginTop):
2330         (BlockFormattingContext.prototype.marginBottom):
2331         (BlockFormattingContext.prototype._computeStaticPosition):
2332         (BlockFormattingContext.prototype._placeInFlowPositionedChildren):
2333         (BlockFormattingContext.prototype._placeOutOfFlowDescendants):
2334         (BlockFormattingContext.prototype._computeOutOfFlowWidth):
2335         (BlockFormattingContext.prototype._computeFloatingWidth):
2336         (BlockFormattingContext.prototype._computeInFlowWidth):
2337         (BlockFormattingContext.prototype._computeOutOfFlowHeight):
2338         (BlockFormattingContext.prototype._computeFloatingHeight):
2339         (BlockFormattingContext.prototype._computeInFlowHeight):
2340         (BlockFormattingContext.prototype._computeHorizontalConstraint):
2341         (BlockFormattingContext.prototype._computeContentHeight):
2342         (BlockFormattingContext.prototype._computeInFlowPositionedPosition):
2343         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
2344         (BlockFormattingContext.prototype._shrinkToFitWidth):
2345         * LayoutReloaded/FormattingContext/BlockFormatting/BlockMarginCollapse.js: Renamed from Tools/LayoutReloaded/BlockMarginCollapse.js.
2346         (BlockMarginCollapse.marginTop):
2347         (BlockMarginCollapse.marginBottom):
2348         (BlockMarginCollapse._isMarginTopCollapsedWithSibling):
2349         (BlockMarginCollapse._isMarginBottomCollapsedWithSibling):
2350         (BlockMarginCollapse._isMarginTopCollapsedWithParent):
2351         (BlockMarginCollapse._isMarginBottomCollapsedWithParent):
2352         (BlockMarginCollapse._nonCollapsedMarginTop):
2353         (BlockMarginCollapse._nonCollapsedMarginBottom):
2354         (BlockMarginCollapse._collapsedMarginTopFromFirstChild):
2355         (BlockMarginCollapse._collapsedMarginBottomFromLastChild):
2356         (BlockMarginCollapse._marginValue):
2357         (BlockMarginCollapse._hasAdjoiningMarginTopAndBottom):
2358         (BlockMarginCollapse):
2359         * LayoutReloaded/FormattingContext/FloatingContext.js: Renamed from Tools/LayoutReloaded/FloatingContext.js.
2360         (FloatingContext):
2361         (FloatingContext.prototype.computePosition):
2362         (FloatingContext.prototype.bottom):
2363         (FloatingContext.prototype._positionForFloating):
2364         (FloatingContext.prototype._positionForClear):
2365         (FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
2366         (FloatingContext.prototype._addFloating):
2367         (FloatingContext.prototype._findInnerMostLeftAndRight):
2368         (FloatingContext.prototype._moveToNextVerticalPosition):
2369         (FloatingContext.prototype._availableSpace):
2370         (FloatingContext.prototype._findFloatingAtVerticalPosition):
2371         (FloatingContext.prototype._isEmpty):
2372         (FloatingContext.prototype._adjustedFloatingPosition):
2373         (FloatingContext.prototype._bottom):
2374         (FloatingContext.prototype._formattingContext):
2375         * LayoutReloaded/FormattingContext/FormattingContext.js: Renamed from Tools/LayoutReloaded/FormattingContext.js.
2376         (FormattingContext):
2377         (FormattingContext.prototype.rootContainer):
2378         (FormattingContext.prototype.floatingContext):
2379         (FormattingContext.prototype.layout):
2380         (FormattingContext.prototype.computeWidth):
2381         (FormattingContext.prototype.computeHeight):
2382         (FormattingContext.prototype.marginTop):
2383         (FormattingContext.prototype.marginLeft):
2384         (FormattingContext.prototype.marginBottom):
2385         (FormattingContext.prototype.marginRight):
2386         (FormattingContext.prototype.absoluteMarginBox):
2387         (FormattingContext.prototype.absoluteBorderBox):
2388         (FormattingContext.prototype.absolutePaddingBox):
2389         (FormattingContext.prototype.absoluteContentBox):
2390         * LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js: Renamed from Tools/LayoutReloaded/InlineFormattingContext.js.
2391         (InlineFormattingContext):
2392         (InlineFormattingContext.prototype.layout):
2393         (InlineFormattingContext.prototype._handleInlineBox):
2394         (InlineFormattingContext.prototype._handleText):
2395         (InlineFormattingContext.prototype._commitLine):
2396         (InlineFormattingContext.prototype._line):
2397         * LayoutReloaded/FormattingContext/InlineFormatting/Line.js: Copied from Tools/LayoutReloaded/InitialBlockContainer.js.
2398         (Line):
2399         (Line.prototype.isEmpty):
2400         (Line.prototype.availableWidth):
2401         (Line.prototype.appendFragment):
2402         * LayoutReloaded/LayoutReloaded.xcworkspace/contents.xcworkspacedata:
2403         * LayoutReloaded/LayoutTree/BlockContainer.js: Renamed from Tools/LayoutReloaded/BlockContainer.js.
2404         (BlockContainer):
2405         (BlockContainer.prototype.establishesInlineFormattingContext):
2406         * LayoutReloaded/LayoutTree/Box.js: Renamed from Tools/LayoutReloaded/Box.js.
2407         (Box):
2408         (Box.prototype.id):
2409         (Box.prototype.setRendererName):
2410         (Box.prototype.name):
2411         (Box.prototype.node):
2412         (Box.prototype.parent):
2413         (Box.prototype.nextSibling):
2414         (Box.prototype.nextInFlowSibling):
2415         (Box.prototype.previousSibling):
2416         (Box.prototype.previousInFlowSibling):
2417         (Box.prototype.setParent):
2418         (Box.prototype.setNextSibling):
2419         (Box.prototype.setPreviousSibling):
2420         (Box.prototype.rect):
2421         (Box.prototype.topLeft):
2422         (Box.prototype.bottomRight):
2423         (Box.prototype.setTopLeft):
2424         (Box.prototype.setSize):
2425         (Box.prototype.setWidth):
2426         (Box.prototype.setHeight):
2427         (Box.prototype.isContainer):
2428         (Box.prototype.isBlockLevelBox):
2429         (Box.prototype.isBlockContainerBox):
2430         (Box.prototype.isInlineLevelBox):
2431         (Box.prototype.setIsAnonymous):
2432         (Box.prototype.isAnonymous):
2433         (Box.prototype.establishesFormattingContext):
2434         (Box.prototype.establishedFormattingContext):
2435         (Box.prototype.establishesBlockFormattingContext):
2436         (Box.prototype.establishesInlineFormattingContext):
2437         (Box.prototype.isPositioned):
2438         (Box.prototype.isRelativePositioned):
2439         (Box.prototype.isAbsolutePositioned):
2440         (Box.prototype.isFixedPositioned):
2441         (Box.prototype.isInFlow):
2442         (Box.prototype.isOutOfFlowPositioned):
2443         (Box.prototype.isInFlowPositioned):
2444         (Box.prototype.isFloatingPositioned):
2445         (Box.prototype.isFloatingOrOutOfFlowPositioned):
2446         (Box.prototype.isRootElement):
2447         (Box.prototype.containingBlock):
2448         (Box.prototype.borderBox):
2449         (Box.prototype.paddingBox):
2450         (Box.prototype.contentBox):
2451         * LayoutReloaded/LayoutTree/Container.js: Renamed from Tools/LayoutReloaded/Container.js.
2452         (Container):
2453         (Container.prototype.isContainer):
2454         (Container.prototype.setFirstChild):
2455         (Container.prototype.setLastChild):
2456         (Container.prototype.firstChild):
2457         (Container.prototype.firstInFlowChild):
2458         (Container.prototype.lastChild):
2459         (Container.prototype.lastInFlowChild):
2460         (Container.prototype.hasChild):
2461         (Container.prototype.hasInFlowChild):
2462         * LayoutReloaded/LayoutTree/InitialBlockContainer.js: Renamed from Tools/LayoutReloaded/InitialBlockContainer.js.
2463         (InitialBlockContainer):
2464         (InitialBlockContainer.prototype.establishesBlockFormattingContext):
2465         (InitialBlockContainer.prototype.paddingBox):
2466         (InitialBlockContainer.prototype.contentBox):
2467         * LayoutReloaded/LayoutTree/InlineBox.js: Renamed from Tools/LayoutReloaded/InlineBox.js.
2468         (InlineBox):
2469         (InlineBox.prototype.setText):
2470         (InlineBox.prototype.text):
2471         * LayoutReloaded/LayoutTree/Text.js: Renamed from Tools/LayoutReloaded/Text.js.
2472         (Text):
2473         (Text.prototype.node):
2474         (Text.prototype.content):
2475         (Text.prototype.length):
2476         * LayoutReloaded/Utils.js:
2477         (Utils.nextBreakingOpportunity):
2478         (Utils.measureText):
2479         * LayoutReloaded/misc/headers/Line.h: Copied from Tools/LayoutReloaded/misc/headers/Text.h.
2480         * LayoutReloaded/misc/headers/Text.h:
2481         * LayoutReloaded/test/border-simple.html:
2482         * LayoutReloaded/test/index.html:
2483
2484 2018-03-10  Wenson Hsieh  <wenson_hsieh@apple.com>
2485
2486         [macOS] Copying a table from the Numbers app and pasting into iCloud Numbers fails
2487         https://bugs.webkit.org/show_bug.cgi?id=183485
2488         <rdar://problem/38041984>
2489
2490         Reviewed by Ryosuke Niwa.
2491
2492         Add new API tests to cover scenarios in which we paste image data alongside text data.
2493
2494         * TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:
2495         (TestWebKitAPI::TEST):
2496         * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
2497         (TestWebKitAPI::TEST):
2498
2499 2018-03-09  Zalan Bujtas  <zalan@apple.com>
2500
2501         [LayoutReloaded] Initial commit -block formatting context.
2502         https://bugs.webkit.org/show_bug.cgi?id=183462
2503
2504         Reviewed by Antti Koivisto.
2505
2506         See README.md
2507
2508         * LayoutReloaded/BlockContainer.js: Added.
2509         (BlockContainer):
2510         (BlockContainer.prototype.establishesInlineFormattingContext):
2511         * LayoutReloaded/BlockFormattingContext.js: Added.
2512         (BlockFormattingContext):
2513         (BlockFormattingContext.prototype.layout):
2514         (BlockFormattingContext.prototype.computeWidth):
2515         (BlockFormattingContext.prototype.computeHeight):
2516         (BlockFormattingContext.prototype.marginTop):
2517         (BlockFormattingContext.prototype.marginBottom):
2518         (BlockFormattingContext.prototype._computeStaticPosition):
2519         (BlockFormattingContext.prototype._placeInFlowPositionedChildren):
2520         (BlockFormattingContext.prototype._placeOutOfFlowDescendants):
2521         (BlockFormattingContext.prototype._computeOutOfFlowWidth):
2522         (BlockFormattingContext.prototype._computeFloatingWidth):
2523         (BlockFormattingContext.prototype._computeInFlowWidth):
2524         (BlockFormattingContext.prototype._computeOutOfFlowHeight):
2525         (BlockFormattingContext.prototype._computeFloatingHeight):
2526         (BlockFormattingContext.prototype._computeInFlowHeight):
2527         (BlockFormattingContext.prototype._computeHorizontalConstraint):
2528         (BlockFormattingContext.prototype._computeContentHeight):
2529         (BlockFormattingContext.prototype._computeInFlowPositionedPosition):
2530         (BlockFormattingContext.prototype._computeOutOfFlowPosition):
2531         (BlockFormattingContext.prototype._shrinkToFitWidth):
2532         * LayoutReloaded/BlockMarginCollapse.js: Added.
2533         (BlockMarginCollapse.marginTop):
2534         (BlockMarginCollapse.marginBottom):
2535         (BlockMarginCollapse._isMarginTopCollapsedWithSibling):
2536         (BlockMarginCollapse._isMarginBottomCollapsedWithSibling):
2537         (BlockMarginCollapse._isMarginTopCollapsedWithParent):
2538         (BlockMarginCollapse._isMarginBottomCollapsedWithParent):
2539         (BlockMarginCollapse._nonCollapsedMarginTop):
2540         (BlockMarginCollapse._nonCollapsedMarginBottom):
2541         (BlockMarginCollapse._collapsedMarginTopFromFirstChild):
2542         (BlockMarginCollapse._collapsedMarginBottomFromLastChild):
2543         (BlockMarginCollapse._marginValue):
2544         (BlockMarginCollapse._hasAdjoiningMarginTopAndBottom):
2545         (BlockMarginCollapse):
2546         * LayoutReloaded/Box.js: Added.
2547         (Box):
2548         (Box.prototype.id):
2549         (Box.prototype.setRendererName):
2550         (Box.prototype.name):
2551         (Box.prototype.node):
2552         (Box.prototype.parent):
2553         (Box.prototype.nextSibling):
2554         (Box.prototype.nextInFlowSibling):
2555         (Box.prototype.previousSibling):
2556         (Box.prototype.previousInFlowSibling):
2557         (Box.prototype.setParent):
2558         (Box.prototype.setNextSibling):
2559         (Box.prototype.setPreviousSibling):
2560         (Box.prototype.rect):
2561         (Box.prototype.topLeft):
2562         (Box.prototype.bottomRight):
2563         (Box.prototype.setTopLeft):
2564         (Box.prototype.setSize):
2565         (Box.prototype.setWidth):
2566         (Box.prototype.setHeight):
2567         (Box.prototype.isContainer):
2568         (Box.prototype.isBlockLevelBox):
2569         (Box.prototype.isBlockContainerBox):
2570         (Box.prototype.isInlineLevelBox):
2571         (Box.prototype.setIsAnonymous):
2572         (Box.prototype.isAnonymous):
2573         (Box.prototype.establishesFormattingContext):
2574         (Box.prototype.establishedFormattingContext):
2575         (Box.prototype.establishesBlockFormattingContext):
2576         (Box.prototype.establishesInlineFormattingContext):
2577         (Box.prototype.isPositioned):
2578         (Box.prototype.isRelativePositioned):
2579         (Box.prototype.isAbsolutePositioned):
2580         (Box.prototype.isFixedPositioned):
2581         (Box.prototype.isInFlow):
2582         (Box.prototype.isOutOfFlowPositioned):
2583         (Box.prototype.isInFlowPositioned):
2584         (Box.prototype.isFloatingPositioned):
2585         (Box.prototype.isFloatingOrOutOfFlowPositioned):
2586         (Box.prototype.isRootElement):
2587         (Box.prototype.containingBlock):
2588         (Box.prototype.borderBox):
2589         (Box.prototype.paddingBox):
2590         (Box.prototype.contentBox):
2591         * LayoutReloaded/Container.js: Added.
2592         (Container):
2593         (Container.prototype.isContainer):
2594         (Container.prototype.setFirstChild):
2595         (Container.prototype.setLastChild):
2596         (Container.prototype.firstChild):
2597         (Container.prototype.firstInFlowChild):
2598         (Container.prototype.lastChild):
2599         (Container.prototype.lastInFlowChild):
2600         (Container.prototype.hasChild):
2601         (Container.prototype.hasInFlowChild):
2602         * LayoutReloaded/FloatingContext.js: Added.
2603         (FloatingContext):
2604         (FloatingContext.prototype.computePosition):
2605         (FloatingContext.prototype.bottom):
2606         (FloatingContext.prototype._positionForFloating):
2607         (FloatingContext.prototype._positionForClear):
2608         (FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
2609         (FloatingContext.prototype._addFloating):
2610         (FloatingContext.prototype._findInnerMostLeftAndRight):
2611         (FloatingContext.prototype._moveToNextVerticalPosition):
2612         (FloatingContext.prototype._availableSpace):
2613         (FloatingContext.prototype._findFloatingAtVerticalPosition):
2614         (FloatingContext.prototype._isEmpty):
2615         (FloatingContext.prototype._adjustedFloatingPosition):
2616         (FloatingContext.prototype._bottom):
2617         (FloatingContext.prototype._formattingContext):
2618         * LayoutReloaded/FormattingContext.js: Added.
2619         (FormattingContext):
2620         (FormattingContext.prototype.rootContainer):
2621         (FormattingContext.prototype.floatingContext):
2622         (FormattingContext.prototype.layout):
2623         (FormattingContext.prototype.computeWidth):
2624         (FormattingContext.prototype.computeHeight):
2625         (FormattingContext.prototype.marginTop):
2626         (FormattingContext.prototype.marginLeft):
2627         (FormattingContext.prototype.marginBottom):
2628         (FormattingContext.prototype.marginRight):
2629         (FormattingContext.prototype.absoluteMarginBox):
2630         (FormattingContext.prototype.absoluteBorderBox):
2631         (FormattingContext.prototype.absolutePaddingBox):
2632         (FormattingContext.prototype.absoluteContentBox):
2633         * LayoutReloaded/InitialBlockContainer.js: Added.
2634         (InitialBlockContainer):
2635         (InitialBlockContainer.prototype.establishesBlockFormattingContext):
2636         (InitialBlockContainer.prototype.paddingBox):
2637         (InitialBlockContainer.prototype.contentBox):
2638         * LayoutReloaded/InlineBox.js: Added.
2639         (InlineBox):
2640         (InlineBox.prototype.setText):
2641         (InlineBox.prototype.text):
2642         * LayoutReloaded/InlineFormattingContext.js: Added.
2643         (InlineFormattingContext):
2644         (InlineFormattingContext.prototype.layout):
2645         (InlineFormattingContext.prototype._handleInlineBox):
2646         (InlineFormattingContext.prototype._handleText):
2647         * LayoutReloaded/Layout.js: Added.
2648         (layout):
2649         * LayoutReloaded/LayoutContext.js: Added.
2650         (LayoutContext):
2651         (LayoutContext.prototype.layoutFormattingContext):
2652         * LayoutReloaded/LayoutReloaded.xcworkspace/contents.xcworkspacedata: Added.
2653         * LayoutReloaded/LayoutReloaded.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: Added.
2654         * LayoutReloaded/README.md: Added.
2655         * LayoutReloaded/Text.js: Added.
2656         (Text):
2657         * LayoutReloaded/TreeBuilder.js: Added.
2658         (TreeBuilder.prototype.createTree):
2659         (TreeBuilder.prototype._createAndAttachBox):
2660         (TreeBuilder.prototype._appendChild):
2661         (TreeBuilder.prototype._findBox):
2662         (TreeBuilder.prototype._findNode):
2663         (TreeBuilder):
2664         * LayoutReloaded/Utils.js: Added.
2665         (LayoutPoint):
2666         (LayoutPoint.prototype.setLeft):
2667         (LayoutPoint.prototype.setTop):
2668         (LayoutPoint.prototype.left):
2669         (LayoutPoint.prototype.top):
2670         (LayoutPoint.prototype.shiftLeft):
2671         (LayoutPoint.prototype.shiftTop):
2672         (LayoutPoint.prototype.moveBy):
2673         (LayoutPoint.prototype.equal):
2674         (LayoutPoint.prototype.clone):
2675         (LayoutSize):
2676         (LayoutSize.prototype.setWidth):
2677         (LayoutSize.prototype.setHeight):
2678         (LayoutSize.prototype.width):
2679         (LayoutSize.prototype.height):
2680         (LayoutSize.prototype.growBy):
2681         (LayoutSize.prototype.shrinkBy):
2682         (LayoutSize.prototype.isEmpty):
2683         (LayoutSize.prototype.equal):
2684         (LayoutSize.prototype.clone):
2685         (LayoutRect):
2686         (LayoutRect.prototype.setTop):
2687         (LayoutRect.prototype.setLeft):
2688         (LayoutRect.prototype.setBottom):
2689         (LayoutRect.prototype.setRight):
2690         (LayoutRect.prototype.left):
2691         (LayoutRect.prototype.top):
2692         (LayoutRect.prototype.bottom):
2693         (LayoutRect.prototype.right):
2694         (LayoutRect.prototype.setTopLeft):
2695         (LayoutRect.prototype.topLeft):
2696         (LayoutRect.prototype.topRight):
2697         (LayoutRect.prototype.bottomRight):
2698         (LayoutRect.prototype.setWidth):
2699         (LayoutRect.prototype.setHeight):
2700         (LayoutRect.prototype.setSize):
2701         (LayoutRect.prototype.size):
2702         (LayoutRect.prototype.width):
2703         (LayoutRect.prototype.height):
2704         (LayoutRect.prototype.growBy):
2705         (LayoutRect.prototype.shrinkBy):
2706         (LayoutRect.prototype.moveBy):
2707         (LayoutRect.prototype.isEmpty):
2708         (LayoutRect.prototype.equal):
2709         (LayoutRect.prototype.intersects):
2710         (LayoutRect.prototype.contains):
2711         (LayoutRect.prototype.clone):
2712         (ASSERT_NOT_REACHED):
2713         (ASSERT):
2714         (Utils.computedValue):
2715         (Utils.propertyIsAuto):
2716         (Utils.isWidthAuto):
2717         (Utils.isHeightAuto):
2718         (Utils.isTopAuto):
2719         (Utils.isLeftAuto):
2720         (Utils.isBottomAuto):
2721         (Utils.isRightAuto):
2722         (Utils.width):
2723         (Utils.height):
2724         (Utils.top):
2725         (Utils.bottom):
2726         (Utils.left):
2727         (Utils.right):
2728         (Utils.hasBorderTop):
2729         (Utils.hasBorderBottom):
2730         (Utils.hasPaddingTop):
2731         (Utils.hasPaddingBottom):
2732         (Utils.computedMarginTop):
2733         (Utils.computedMarginLeft):
2734         (Utils.computedMarginBottom):
2735         (Utils.computedMarginRight):
2736         (Utils.computedBorderTopLeft):
2737         (Utils.computedBorderBottomRight):
2738         (Utils.computedPaddingTopLeft):
2739         (Utils.computedPaddingBottomRight):
2740         (Utils.computedBorderAndPaddingTop):
2741         (Utils.computedBorderAndPaddingLeft):
2742         (Utils.computedBorderAndPaddingBottom):
2743         (Utils.computedBorderAndPaddingRight):
2744         (Utils.computedHorizontalBorderAndPadding):
2745         (Utils.computedVerticalBorderAndPadding):
2746         (Utils.hasClear):
2747         (Utils.hasClearLeft):
2748         (Utils.hasClearRight):
2749         (Utils.hasClearBoth):
2750         (Utils.isBlockLevelElement):
2751         (Utils.isBlockContainerElement):
2752         (Utils.isInlineLevelElement):
2753         (Utils.isTableElement):
2754         (Utils.isRelativePositioned):
2755         (Utils.isAbsolutePositioned):
2756         (Utils.isFixedPositioned):
2757         (Utils.isOverflowVisible):
2758         (Utils.isFloatingPositioned):
2759         (Utils.isFloatingLeft):
2760         (Utils.mapToContainer):
2761         (Utils.mapStaticToAbsolute):
2762         (Utils.collectOutOfFlowDescendants):
2763         (Utils.nextBreakingOpportunity):
2764         (Utils.measureText):
2765         (Utils.layoutTreeDump):
2766         (Utils._dumpBox):
2767         (Utils._dumpTree):
2768         (Utils):
2769         * LayoutReloaded/misc/LayoutReloadedWebKit.patch: Added.
2770         * LayoutReloaded/misc/headers/BlockContainer.h: Added.
2771         * LayoutReloaded/misc/headers/BlockFormattingContext.h: Added.
2772         * LayoutReloaded/misc/headers/BlockMarginCollapse.h: Added.
2773         * LayoutReloaded/misc/headers/Box.h: Added.
2774         * LayoutReloaded/misc/headers/Container.h: Added.
2775         * LayoutReloaded/misc/headers/FloatingContext.h: Added.
2776         * LayoutReloaded/misc/headers/FormattingContext.h: Added.
2777         * LayoutReloaded/misc/headers/InitialBlockContainer.h: Added.
2778         * LayoutReloaded/misc/headers/InlineBox.h: Added.
2779         * LayoutReloaded/misc/headers/LayoutContext.h: Added.
2780         * LayoutReloaded/misc/headers/Text.h: Added.
2781         * LayoutReloaded/test/TestHarness.js: Added.
2782         (verifyLayoutTreeDump):
2783         (runLayout):
2784         * LayoutReloaded/test/absolute-auto-with-sibling-margin-bottom.html: Added.
2785         * LayoutReloaded/test/absolute-bottom.html: Added.
2786         * LayoutReloaded/test/absolute-height-stretch.html: Added.
2787         * LayoutReloaded/test/absolute-left-auto.html: Added.
2788         * LayoutReloaded/test/absolute-left-right-top-bottom-auto.html: Added.
2789         * LayoutReloaded/test/absolute-nested.html: Added.
2790         * LayoutReloaded/test/absolute-nested2.html: Added.
2791         * LayoutReloaded/test/absolute-simple.html: Added.
2792         * LayoutReloaded/test/absolute-width-shrink-to-fit.html: Added.
2793         * LayoutReloaded/test/absolute-width-stretch.html: Added.
2794         * LayoutReloaded/test/absolute-with-inline-preferred-width.html: Added.
2795         * LayoutReloaded/test/absolute-with-static-block-position-nested.html: Added.
2796         * LayoutReloaded/test/almost-intruding-left-float-simple.html: Added.
2797         * LayoutReloaded/test/border-simple.html: Added.
2798         * LayoutReloaded/test/fixed-nested.html: Added.
2799         * LayoutReloaded/test/float-left-when-container-has-padding-margin.html: Added.
2800         * LayoutReloaded/test/floating-box-clear-both-simple.html: Added.
2801         * LayoutReloaded/test/floating-box-clear-right-simple.html: Added.
2802         * LayoutReloaded/test/floating-box-left-and-right-multiple-with-top-offset.html: Added.
2803         * LayoutReloaded/test/floating-box-left-and-right-multiple.html: Added.
2804         * LayoutReloaded/test/floating-box-right-simple.html: Added.
2805         * LayoutReloaded/test/floating-box-with-clear-siblings.html: Added.
2806         * LayoutReloaded/test/floating-box-with-clear-simple.html: Added.
2807         * LayoutReloaded/test/floating-box-with-new-formatting-context.html: Added.
2808         * LayoutReloaded/test/floating-box-with-relative-positioned-sibling.html: Added.
2809         * LayoutReloaded/test/floating-left-right-simple.html: Added.
2810         * LayoutReloaded/test/floating-left-right-with-all-margins.html: Added.
2811         * LayoutReloaded/test/floating-lefts-and-rights-simple.html: Added.
2812         * LayoutReloaded/test/floating-multiple-lefts-in-body.html: Added.
2813         * LayoutReloaded/test/floating-multiple-lefts-multiple-lines.html: Added.
2814         * LayoutReloaded/test/floating-multiple-lefts.html: Added.
2815         * LayoutReloaded/test/floating-sizing.html: Added.
2816         * LayoutReloaded/test/floating-sizing2.html: Added.
2817         * LayoutReloaded/test/floating-sizing3.html: Added.
2818         * LayoutReloaded/test/floating-with-new-block-formatting-context.html: Added.
2819         * LayoutReloaded/test/index.html: Added.
2820         * LayoutReloaded/test/inline-content-simple.html: Added.
2821         * LayoutReloaded/test/intruding-left-float-simple.html: Added.
2822         * LayoutReloaded/test/margin-collapse-bottom-bottom.html: Added.
2823         * LayoutReloaded/test/margin-collapse-bottom-nested.html: Added.
2824         * LayoutReloaded/test/margin-collapse-first-last-are-floating.html: Added.
2825         * LayoutReloaded/test/margin-collapse-simple.html: Added.
2826         * LayoutReloaded/test/margin-collapse-top-nested.html: Added.
2827         * LayoutReloaded/test/margin-collapse-when-child-has-padding-border.html: Added.
2828         * LayoutReloaded/test/margin-collapse-with-block-formatting-context.html: Added.
2829         * LayoutReloaded/test/margin-collapse-with-block-formatting-context2.html: Added.
2830         * LayoutReloaded/test/margin-left-right-sizing-out-of-flow.html: Added.
2831         * LayoutReloaded/test/margin-left-right-sizing.html: Added.
2832         * LayoutReloaded/test/margin-propagation-simple-content-height.html: Added.
2833         * LayoutReloaded/test/margin-sibling-collapse-propagated.html: Added.
2834         * LayoutReloaded/test/margin-simple.html: Added.
2835         * LayoutReloaded/test/negative-margin-simple.html: Added.
2836         * LayoutReloaded/test/padding-nested.html: Added.
2837         * LayoutReloaded/test/padding-simple.html: Added.
2838         * LayoutReloaded/test/relative-auto-with-parent-offset.html: Added.
2839         * LayoutReloaded/test/relative-auto.html: Added.
2840         * LayoutReloaded/test/relative-bottom.html: Added.
2841         * LayoutReloaded/test/relative-right.html: Added.
2842         * LayoutReloaded/test/relative-siblings.html: Added.
2843         * LayoutReloaded/test/relative-simple.html: Added.
2844
2845 2018-03-09  Stephan Szabo  <stephan.szabo@sony.com>
2846
2847         WebKitTestRunner: Do not build accessibility files/idl when !HAVE(ACCESSIBILITY)
2848         https://bugs.webkit.org/show_bug.cgi?id=183516
2849
2850         Reviewed by Alex Christensen.
2851
2852         * WebKitTestRunner/CMakeLists.txt:
2853
2854 2018-03-09  Basuke Suzuki  <Basuke.Suzuki@sony.com>
2855
2856         [webkitpy, WinCairo] Launch Apache HTTPD for HTTP Tests.
2857         https://bugs.webkit.org/show_bug.cgi?id=183265
2858
2859         Reviewed by Daniel Bates.
2860
2861         Launch apache httpd server from python script for WinCairo HTTP LayoutTests. By now, AppleWin uses
2862         Cygwin to launch httpd server. This patch enables native Windows to run HTTP LayoutTests by starting
2863         and stopping httpd server from the script.
2864
2865         * Scripts/webkitpy/layout_tests/servers/apache_http_server.py:
2866         (LayoutTestApacheHttpd.__init__):
2867         (LayoutTestApacheHttpd._copy_apache_config_file):
2868         (LayoutTestApacheHttpd):
2869         (LayoutTestApacheHttpd.platform):
2870         (LayoutTestApacheHttpd._spawn_process):
2871         (LayoutTestApacheHttpd._stop_running_server):
2872         (LayoutTestApacheHttpd._run):
2873         (LayoutTestApacheHttpd._server_error):
2874         * Scripts/webkitpy/layout_tests/servers/http_server_base.py:
2875         (HttpServerBase.aliases):
2876         (HttpServerBase):
2877         (HttpServerBase._build_alias_path_pairs):
2878         (HttpServerBase._build_alias_path_pairs._make_path):
2879         * Scripts/webkitpy/layout_tests/servers/http_server_base_unittest.py:
2880         (TestHttpServerBase.test_corrupt_pid_file):
2881         (TestHttpServerBase):
2882         (TestHttpServerBase.test_build_alias_path_pairs):
2883         * Scripts/webkitpy/port/base.py:
2884         (Port._apache_config_file_name_for_platform):
2885         * Scripts/webkitpy/port/port_testcase.py:
2886         (test_apache_config_file_name_for_platform):
2887         * Scripts/webkitpy/port/win.py:
2888         (WinPort._path_to_apache):
2889         (WinCairoPort.default_baseline_search_path):
2890         (WinCairoPort):
2891         (WinCairoPort.check_httpd):
2892
2893 2018-03-09  Carlos Garcia Campos  <cgarcia@igalia.com>
2894
2895         [GTK] Do not use WebKitDOMHTMLFormElement as argument of signal WebKitWebPage::will-submit-form
2896         https://bugs.webkit.org/show_bug.cgi?id=183510
2897
2898         Reviewed by Michael Catanzaro.
2899
2900         Update the test to use WebKitDOMElement instead and fix a memory leak.
2901
2902         * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
2903         (handleFormSubmissionCallback):
2904         (willSubmitFormCallback):
2905
2906 2018-03-08  Stephan Szabo  <stephan.szabo@sony.com>
2907
2908         WebKitTestRunner: Don't use accessibility controller when !HAVE(ACCESSIBILITY)
2909         https://bugs.webkit.org/show_bug.cgi?id=183475
2910
2911         Reviewed by Youenn Fablet.
2912
2913         * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
2914         (WTR::InjectedBundle::done):
2915         * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
2916         (WTR::InjectedBundlePage::didClearWindowForFrame):
2917
2918 2018-03-08  Ms2ger  <Ms2ger@igalia.com>
2919
2920         [WPE] Update expectations for API tests
2921         https://bugs.webkit.org/show_bug.cgi?id=183434
2922
2923         Unreviewed test gardening.
2924
2925         * TestWebKitAPI/glib/TestExpectations.json:
2926
2927 2018-03-07  Carlos Garcia Campos  <cgarcia@igalia.com>
2928
2929         [GTK][WPE] Leak checker is not working in WebKitGLib web process tests
2930         https://bugs.webkit.org/show_bug.cgi?id=183404
2931
2932         Reviewed by Michael Catanzaro.
2933
2934         This might have regressed when we started to use the JSC garbage collector timers. The thing is that we expect
2935         that the WebProcessTester object that we expose to JavaScript is released when the web frame is destroyed, but
2936         that's no longer the case. On window object cleared a GC is scheduled, but JSC timers do the actual garbage
2937         collection later. In the case of tests that never happens because the web process finishes quickly after the
2938         test. We need to force a garbage collection at some point when the web page is destroyed. We can't use the
2939         WebKitWebPage destroy signal, since we are also checking that WebKitWebPage isn't leaked. The
2940         API::InjectedBundle::Client::willDestroyPage() always happen when the page is closed, even if WebKitWebPage is
2941         still alive, so we can force the GC at that point. The only problem is that the frame is detached right after
2942         that point, so we can't check WebKitFrame leaks. The only frame in the tests is the main one, so we can assume
2943         that if WebKitWebPage is released, the frame is too.
2944
2945         * TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:
2946         (WebKitFrameTest::testMainFrame): Stop checking we don't leak WebKitFrame.
2947         (WebKitFrameTest::testURI): Ditto.
2948         (WebKitFrameTest::testJavaScriptContext): Ditto.
2949         * TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp:
2950         (testWebKitFrameMainFrame): Use new WebViewTest::runWebProcessTest() API.
2951         (testWebKitFrameURI): Ditto.
2952         (testWebKitFrameJavaScriptContext): Ditto.
2953         (webkitFrameTestRun): Deleted.
2954         * TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:
2955         (runTest): We no longer need the special case for dom-cache test.
2956         (windowObjectClearedCallback): Only expose test runner object to JavaScript when loading tests.
2957         (webkit_web_extension_initialize): Call webkitWebExtensionSetGarbageCollectOnPageDestroy() to ensure a garbage
2958         collection is performed when the page is closing.
2959         * TestWebKitAPI/Tests/WebKitGtk/DOMClientRectTest.cpp:
2960         (WebKitDOMClientRectTest::testDivClientRectsPositionAndLength): Fix memory leak,
2961         webkit_dom_client_rect_list_item() returns a full reference.
2962         * TestWebKitAPI/Tests/WebKitGtk/TestAutocleanups.cpp:
2963         (testWebProcessAutocleanups):Use new WebViewTest::runWebProcessTest() API.
2964         * TestWebKitAPI/Tests/WebKitGtk/TestDOMClientRect.cpp:
2965         (testWebKitDOMClientRectDivBoundingClientRectPosition): Use new WebViewTest::runWebProcessTest() API.
2966         (testWebKitDOMClientRectDivClientRectsPositionAndLength): Use new WebViewTest::runWebProcessTest() API.
2967         (prepareDOMForClientRectPositionTests): Deleted.
2968         * TestWebKitAPI/Tests/WebKitGtk/TestDOMNode.cpp:
2969         (testWebKitDOMNodeHierarchyNavigation): Use new WebViewTest::runWebProcessTest() API.
2970         (testWebKitDOMNodeInsertion): Ditto.
2971         (testWebKitDOMNodeTagNamesNodeList): Ditto.
2972         (testWebKitDOMNodeTagNamesHTMLCollection): Ditto.
2973         (testWebKitDOMObjectCache): We no longer need to run the test several times, since runWebProcessTest() loads
2974         about blank after every test.
2975         (prepareDOMForTagNamesTests): Deleted.
2976         * TestWebKitAPI/Tests/WebKitGtk/TestDOMNodeFilter.cpp:
2977         (testWebKitDOMNodeFilterTreeWalker): Use new WebViewTest::runWebProcessTest() API.
2978         (testWebKitDOMNodeFilterNodeIterator): Ditto.
2979         (runTest): Deleted.
2980         * TestWebKitAPI/Tests/WebKitGtk/TestDOMXPathNSResolver.cpp:
2981         (testWebKitDOMXPathNSResolverNative): Use new WebViewTest::runWebProcessTest() API.
2982         (testWebKitDOMXPathNSResolverCustom): Ditto.
2983         * TestWebKitAPI/Tests/WebKitGtk/TestEditor.cpp:
2984         (testWebKitWebEditorSelectionChanged): Use new WebViewTest::runWebProcessTest() API.
2985         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
2986         (WebViewTest::runWebProcessTest): It now receives the contents, so it automatically loads the view using
2987         "webprocess://test" as base URI, used to detect tests in the web process. It also loads about:blank after every
2988         test to ensure that window object is cleared.
2989         * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
2990
2991 2018-03-07  Youenn Fablet  <youenn@apple.com>
2992
2993         Match unsupported plugins based on domains and not origin
2994         https://bugs.webkit.org/show_bug.cgi?id=183384
2995
2996         Reviewed by Chris Dumez.
2997
2998         * TestWebKitAPI/Tests/WebCore/URL.cpp:
2999         (TestWebKitAPI::TEST_F):
3000         * WebKitTestRunner/TestController.cpp:
3001         (WTR::TestController::setPluginSupportedMode): Update to whitelist
3002         localhost and not http://localhost:8080
3003
3004 2018-03-07  Jonathan Bedard  <jbedard@apple.com>
3005
3006         webkitpy: Allow apple_additions() to define additional ports
3007         https://bugs.webkit.org/show_bug.cgi?id=183412
3008         <rdar://problem/38232353>
3009
3010         Reviewed by Aakash Jain.
3011
3012         * Scripts/webkitpy/port/factory.py:
3013         (PortFactory.get): Allow apple_additions to define port classes to be used
3014         in run-webkit-tests.
3015
3016 2018-03-07  Jonathan Bedard  <jbedard@apple.com>
3017
3018         webkitpy: Remove obsolete function from MockAppleAdditions
3019         https://bugs.webkit.org/show_bug.cgi?id=183415
3020         <rdar://problem/38236407>
3021
3022         Reviewed by Aakash Jain.
3023
3024         * Scripts/webkitpy/port/port_testcase.py:
3025         (bind_mock_apple_additions.MockAppleAdditions):
3026         (bind_mock_apple_additions.MockAppleAdditions.ios_os_name): Deleted.
3027         (bind_mock_apple_additions.MockAppleAdditions.mac_os_name): Deleted.
3028
3029 2018-03-07  Jonathan Bedard  <jbedard@apple.com>
3030
3031         webkitpy: --dedicated-simulators does not boot the correct number of simulators
3032         https://bugs.webkit.org/show_bug.cgi?id=183409
3033         <rdar://problem/38224631>
3034
3035         Reviewed by Aakash Jain.
3036
3037         * Scripts/webkitpy/port/ios_simulator.py:
3038         (IOSSimulatorPort.default_child_processes): When not using dedicated simulators,
3039         we should use the number of booted simulators as our default child processes.
3040
3041 2018-03-07  Alejandro G. Castro  <alex@igalia.com>
3042
3043         Make NetworkRTCResolver port agnostic
3044         https://bugs.webkit.org/show_bug.cgi?id=178855
3045
3046         Reviewed by Youenn Fablet.
3047
3048         Added new unit tests for he resolve and stopResolve functions. We need to compile them for the
3049         other platforms when the APIs are supported.
3050
3051         * TestWebKitAPI/PlatformGTK.cmake:
3052         * TestWebKitAPI/Tests/WebCore/DNS.cpp:
3053
3054 2018-03-06  Youenn Fablet  <youenn@apple.com>
3055
3056         didReceiveServerRedirectForProvisionalNavigation is not called in case of document redirection with service worker registration change
3057         https://bugs.webkit.org/show_bug.cgi?id=183299
3058         <rdar://problem/37547029>
3059
3060         Reviewed by Alex Christensen.
3061
3062         Add support for checking whether this callback is called.
3063         Used in the added layout test.
3064
3065         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
3066         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
3067         (WTR::TestRunner::didReceiveServerRedirectForProvisionalNavigation const):
3068         (WTR::TestRunner::clearDidReceiveServerRedirectForProvisionalNavigation):
3069         * WebKitTestRunner/InjectedBundle/TestRunner.h:
3070         * WebKitTestRunner/TestController.cpp:
3071         (WTR::TestController::createOtherPage):
3072         (WTR::TestController::resetStateToConsistentValues):
3073         (WTR::TestController::didReceiveServerRedirectForProvisionalNavigation):
3074         * WebKitTestRunner/TestController.h:
3075         (WTR::TestController::didReceiveServerRedirectForProvisionalNavigation const):
3076         (WTR::TestController::clearDidReceiveServerRedirectForProvisionalNavigation):
3077         * WebKitTestRunner/TestInvocation.cpp:
3078         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
3079
3080 2018-03-06  Chris Dumez  <cdumez@apple.com>
3081
3082         fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html fails with async policy delegates
3083         https://bugs.webkit.org/show_bug.cgi?id=183345
3084
3085         Reviewed by Alex Christensen.
3086
3087         Add layout test infrastructure so a test can know when didCancelClientRedirectForFrame has
3088         been called. The tests used to rely on a 0-timer but this does not work when the client
3089         responds to the navigation policy asynchronously.
3090
3091         * DumpRenderTree/TestRunner.cpp:
3092         (getDidCancelClientRedirect):
3093         (TestRunner::staticValues):
3094         * DumpRenderTree/TestRunner.h:
3095         (TestRunner::didCancelClientRedirect const):
3096         (TestRunner::setDidCancelClientRedirect):
3097         * DumpRenderTree/mac/FrameLoadDelegate.mm:
3098         (-[FrameLoadDelegate webView:didCancelClientRedirectForFrame:]):
3099         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
3100         * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
3101         (WTR::InjectedBundlePage::didCancelClientRedirectForFrame):
3102         * WebKitTestRunner/InjectedBundle/TestRunner.h:
3103         (WTR::TestRunner::didCancelClientRedirect const):
3104         (WTR::TestRunner::setDidCancelClientRedirect):
3105
3106 2018-03-06  Zan Dobersek  <zdobersek@igalia.com>
3107
3108         REGRESSION(r229309): s_exceptionInstructions allocation change causing crashes in LLInt on WPE
3109         https://bugs.webkit.org/show_bug.cgi?id=183366
3110
3111         Reviewed by Michael Catanzaro.
3112
3113         Have the TestRunnerInjectedBundle CMake library link against libraries
3114         in the WebKitTestRunnerInjectedBundle_LIBRARIES list, and not the
3115         WebKitTestRunner_LIBRARIES list, which is used for the WebKitTestRunner
3116         executable. This allows narrowing down the libraries to only those that
3117         are necessary for the injected bundle shared object.
3118
3119         The GTK+ port already has this list specified, adding one for the WPE
3120         port.
3121
3122         * WebKitTestRunner/CMakeLists.txt:
3123         Link the TestRunnerInjectedBundle library against the libraries in the
3124         WebKitTestRunnerInjectedBundle_LIBRARIES list.
3125         * WebKitTestRunner/PlatformWPE.cmake:
3126         Specify the WebKitTestRunnerInjectedBundle_LIBRARIES list, including the
3127         basic system dependencies, WebCoreTestSupport and WebKit. This follows
3128         the GTK+ port.
3129
3130 2018-03-06  Dominik Infuehr  <dinfuehr@igalia.com>
3131
3132         [ARM] Disable tests that run out of memory
3133         https://bugs.webkit.org/show_bug.cgi?id=182699
3134
3135         Reviewed by Žan Doberšek.
3136
3137         Add run mode to allow running modules.yaml-tests without
3138         disabling LLInt for specific tests.
3139
3140         * Scripts/run-jsc-stress-tests:
3141
3142 2018-03-05  Yusuke Suzuki  <utatane.tea@gmail.com>
3143
3144         Fix std::make_unique / new[] using system malloc
3145         https://bugs.webkit.org/show_bug.cgi?id=182975
3146
3147         Reviewed by JF Bastien.
3148
3149         * TestWebKitAPI/CMakeLists.txt:
3150         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3151         * TestWebKitAPI/Tests/WTF/UniqueArray.cpp: Copied from Source/WebKit/Platform/win/LoggingWin.cpp.
3152         (TestWebKitAPI::NonTrivialDestructor::NonTrivialDestructor):
3153         (TestWebKitAPI::NonTrivialDestructor::~NonTrivialDestructor):
3154         (TestWebKitAPI::NonTrivialDestructor::setLog):
3155         (TestWebKitAPI::TEST):
3156
3157 2018-03-05  Myles C. Maxfield  <mmaxfield@apple.com>
3158
3159         DumpRenderTree build fix
3160
3161         Unreviewed.
3162
3163         * DumpRenderTree/mac/LayoutTestHelper.m:
3164
3165 2018-03-05  Andy Estes  <aestes@apple.com>
3166
3167         [Mac] Teach WebCore::Pasteboard about file promise drags
3168         https://bugs.webkit.org/show_bug.cgi?id=183314
3169         <rdar://problem/38105493>
3170
3171         Reviewed by Darin Adler.
3172
3173         * DumpRenderTree/DumpRenderTreeFileDraggingSource.h:
3174         * DumpRenderTree/DumpRenderTreeFileDraggingSource.m:
3175         (-[DumpRenderTreeFileDraggingSource initWithPromisedFileURLs:]):
3176         (-[DumpRenderTreeFileDraggingSource dealloc]):
3177
3178         Taught DumpRenderTreeFileDraggingSource to store the promised file URLs.
3179
3180         * DumpRenderTree/mac/DumpRenderTree.mm:
3181         (runTest):
3182
3183         Called +[DumpRenderTreeDraggingInfo clearAllFilePromiseReceivers] after running a test.
3184
3185         * DumpRenderTree/mac/DumpRenderTreeDraggingInfo.h:
3186         * DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm:
3187         (-[DumpRenderTreeFilePromiseReceiver initWithPromisedUTIs:]):
3188         (-[DumpRenderTreeFilePromiseReceiver fileTypes]):
3189         (-[DumpRenderTreeFilePromiseReceiver fileNames]):
3190         (-[DumpRenderTreeFilePromiseReceiver dealloc]):
3191         (copyFile):
3192         (-[DumpRenderTreeFilePromiseReceiver receivePromisedFilesAtDestination:options:operationQueue:reader:]):
3193
3194         We can't instantiate real NSFilePromiseReceivers in DumpRenderTree. They rely on the
3195         pasteboard server to generate unique file URLs, which is incompatible with our swizzled
3196         NSPasteboard.
3197
3198         Instead, create a subclass of NSFilePromiseReceiver that implements its own promise resolution.
3199         -receivePromisedFilesAtDestination:... asks its DumpRenderTreeFileDraggingSource for the
3200         array of file URLs, then copies each to the destination directory on the specified operation
3201         queue. It emulates how NSPasteboard tries to find a unique destination name by appending
3202         numbers to the file name.
3203
3204         All receivers are collected in a global array that is cleared when each test finishes.
3205         DumpRenderTreeFilePromiseReceiver will delete the files it copied in -dealloc.
3206
3207         (+[DumpRenderTreeDraggingInfo clearAllFilePromiseReceivers]):
3208         (-[DumpRenderTreeDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
3209         
3210         If NSFilesPromisePboardType is on the pasteboard and classArray contains
3211         NSFilePromiseReceiver, construct a DumpRenderTreeFilePromiseReceiver, add it to the array of
3212         all file promise receivers, then wrap it in an NSDraggingItem and call block.
3213
3214         * DumpRenderTree/mac/EventSendingController.mm:
3215         (+[EventSendingController isSelectorExcludedFromWebScript:]):
3216         (+[EventSendingController webScriptNameForSelector:]):
3217         (-[EventSendingController beginDragWithFilePromises:]):
3218
3219         Implement eventSender.beginDragWithFilePromises() by placing file UTIs on the pasteboard
3220         with type NSFilesPromisePboardType, creating a DumpRenderTreeFileDraggingSource with the
3221         file URLs, and creating a new DumpRenderTreeDraggingInfo and passing it to
3222         -[WebView draggingEntered:].
3223
3224 2018-03-05  Aakash Jain  <aakash_jain@apple.com>
3225
3226         [webkitpy] Bugzilla class should use NetworkTransaction for network operations
3227         https://bugs.webkit.org/show_bug.cgi?id=183222
3228
3229         Reviewed by Alexey Proskuryakov.
3230
3231         * Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
3232         (Bugzilla.open_url): Method which uses NetworkTransaction for opening url.
3233         (Bugzilla.fetch_user): Used self.open_url instead of directly calling browser.open().
3234         (Bugzilla.add_user_to_groups): Ditto.
3235         (Bugzilla._fetch_bug_page): Ditto.
3236         (Bugzilla.fetch_attachment_contents): Ditto.
3237         (Bugzilla.get_bug_id_for_attachment_id): Ditto.
3238         (Bugzilla.authenticate): Ditto.
3239         (Bugzilla.add_attachment_to_bug): Ditto.
3240         (Bugzilla.add_patch_to_bug): Ditto.
3241         (Bugzilla.create_bug): Ditto.
3242         (Bugzilla.clear_attachment_flags): Ditto.
3243         (Bugzilla.set_flag_on_attachment): Ditto.
3244         (Bugzilla.obsolete_attachment): Ditto.
3245         (Bugzilla.add_cc_to_bug): Ditto.
3246         (Bugzilla.post_comment_to_bug): Ditto.
3247         (Bugzilla.close_bug_as_fixed): Ditto.
3248         (Bugzilla.reassign_bug): Ditto.
3249         (Bugzilla.reopen_bug): Ditto.
3250         (Bugzilla._fetch_bug_page_by_url): Deleted, not required anymore.
3251         * Scripts/webkitpy/common/net/networktransaction.py:
3252         (NetworkTransaction.run): Added a FIXME.
3253
3254 2018-03-05  Joseph Pecoraro  <pecoraro@apple.com>
3255
3256         dump-class-layout mishandles duplicates base classes and miscomputes padding
3257         https://bugs.webkit.org/show_bug.cgi?id=183311
3258
3259         Reviewed by Simon Fraser.
3260
3261         * Scripts/dump-class-layout:
3262         (verify_type):
3263         (verify_type_recursive):
3264         Keep a list of seen (offset, type) that we have output and don't re-output them.
3265         The Python types list the base classes as members multiple times as you iterate
3266         through the members, so just ignore them if we have seem them already at a
3267         specific offset.
3268
3269 2018-03-05  Carlos Alberto Lopez Perez  <clopez@igalia.com>
3270
3271         [GTK][Wayland] The GTK Wayland bot exits early because of assertions related with libsecret since r221925
3272         https://bugs.webkit.org/show_bug.cgi?id=183330
3273
3274         Reviewed by Michael Catanzaro.
3275
3276         Add libsecret to the JHBuild and build it only when the system version is
3277         less than 0.18.6 (unreleased as of writing this) in order to cherry pick
3278         a fix for a bug that causes crashes with layout tests.
3279
3280         * gtk/jhbuild.modules:
3281         * gtk/patches/libsecret-secret-methods-Don-t-unref-NULL-when-search-fails.patch: Added.
3282
3283 2018-03-05  Claudio Saavedra  <csaavedra@igalia.com>
3284
3285         [GTK] Implement WTR's PlatformWebView::setWindowIsKey()
3286         https://bugs.webkit.org/show_bug.cgi?id=183143
3287
3288         Reviewed by Carlos Garcia Campos.
3289
3290         Implement ::setWindowIsKey() by keeping a second window to be
3291         presented when the webview's window is to lose its key status.
3292
3293         * WebKitTestRunner/PlatformWebView.h:
3294         * WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
3295         (WTR::PlatformWebView::PlatformWebView):
3296         (WTR::PlatformWebView::~PlatformWebView):
3297         (WTR::PlatformWebView::setWindowIsKey):
3298
3299 2018-03-05  Yusuke Suzuki  <utatane.tea@gmail.com>
3300
3301         Unreviewed, attempt to fix Apple port build
3302
3303         * TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
3304
3305 2018-03-05  Yusuke Suzuki  <utatane.tea@gmail.com>
3306
3307         Unreviewed, attempt to fix WPE build
3308
3309         * WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:
3310         (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
3311         * WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:
3312         (WTR::PlatformWebView::windowSnapshotImage):
3313         * WebKitTestRunner/wpe/TestControllerWPE.cpp:
3314         (WTR::TestController::platformRunUntil):
3315
3316 2018-03-04  Yusuke Suzuki  <utatane.tea@gmail.com>
3317
3318         [WTF] Move currentCPUTime and sleep(Seconds) to CPUTime.h and Seconds.h respectively
3319         https://bugs.webkit.org/show_bug.cgi?id=183312
3320
3321         Reviewed by Mark Lam.
3322
3323         Remove wtf/CurrentTime.h include pragma.
3324
3325         * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
3326         * DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp:
3327         * DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp:
3328         * DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp:
3329         * TestWebKitAPI/Tests/WTF/Condition.cpp:
3330         * TestWebKitAPI/Tests/WTF/Signals.cpp:
3331         * TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
3332         * TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
3333         * TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
3334         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
3335         * TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp:
3336         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
3337
3338 2018-03-04  Tim Horton  <timothy_horton@apple.com>
3339
3340         Make !ENABLE(DATA_DETECTION) iOS build actually succeed
3341         https://bugs.webkit.org/show_bug.cgi?id=183283
3342         <rdar://problem/38062148>
3343
3344         Reviewed by Sam Weinig.
3345
3346         * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
3347
3348 2018-03-02  Chris Dumez  <cdumez@apple.com>
3349
3350         Converting a load to a download does not work with async policy delegates
3351         https://bugs.webkit.org/show_bug.cgi?id=183254
3352         <rdar://problem/38035334>
3353
3354         Reviewed by Youenn Fablet.
3355
3356         Add layout test infrastructure for responding to the decidePolicyForNavigationResponse
3357         delegate asynchronously.
3358
3359         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
3360         * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
3361         (WTR::InjectedBundlePage::decidePolicyForResponse):
3362         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
3363         (WTR::TestRunner::setShouldDecideResponsePolicyAfterDelay):
3364         * WebKitTestRunner/InjectedBundle/TestRunner.h:
3365         (WTR::TestRunner::shouldDecideResponsePolicyAfterDelay const):
3366         * WebKitTestRunner/TestController.cpp:
3367         (WTR::TestController::resetStateToConsistentValues):
3368         (WTR::TestController::decidePolicyForNavigationResponse):
3369         * WebKitTestRunner/TestController.h:
3370         (WTR::TestController::setShouldDecideResponsePolicyAfterDelay):
3371         * WebKitTestRunner/TestInvocation.cpp:
3372         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
3373
3374 2018-03-01  Youenn Fablet  <youenn@apple.com>
3375
3376         Add API test to validate setting of service worker and cache storage directories
3377         https://bugs.webkit.org/show_bug.cgi?id=182543
3378
3379         Reviewed by Chris Dumez.
3380
3381         * TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
3382
3383 2018-03-01  Ross Kirsling  <ross.kirsling@sony.com>
3384
3385         [Win][DRT] Implement setSpatialNavigationEnabled.
3386         https://bugs.webkit.org/show_bug.cgi?id=183166
3387
3388         Reviewed by Per Arne Vollan.
3389
3390         * DumpRenderTree/TestRunner.cpp:
3391         (setSpatialNavigationEnabledCallback):
3392         * DumpRenderTree/win/DumpRenderTree.cpp:
3393         (resetWebPreferencesToConsistentValues):
3394         * DumpRenderTree/win/TestRunnerWin.cpp:
3395         (TestRunner::setSpatialNavigationEnabled):
3396
3397 2018-03-01  Basuke Suzuki  <Basuke.Suzuki@sony.com>
3398
3399         [webkitpy] Use shell=False to launch apache http server.
3400         https://bugs.webkit.org/show_bug.cgi?id=183191
3401
3402         Reviewed by Aakash Jain.
3403
3404         * Scripts/webkitpy/layout_tests/servers/apache_http_server.py:
3405         (LayoutTestApacheHttpd.__init__):
3406         (LayoutTestApacheHttpd._run):
3407
3408 2018-03-01  Chris Dumez  <cdumez@apple.com>
3409
3410         Unreviewed, update WebKit.CustomHeaderFields API test after r229133.
3411
3412         We no longer do policy checks for 'about:blank'.
3413
3414         * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
3415         (-[CustomHeaderFieldsDelegate webView:startURLSchemeTask:]):
3416         (TEST):
3417
3418 2018-02-28  Jonathan Bedard  <jbedard@apple.com>
3419
3420         [webkitpy] Remove concept of 'future' versions (Follow-up fix 2)
3421         https://bugs.webkit.org/show_bug.cgi?id=183184
3422         <rdar://problem/37958594>
3423
3424         Reviewed by Aakash Jain.
3425
3426         Unlisted Apple versions can't run webkitpy tests because they don't
3427         have specified port names.
3428
3429         * Scripts/webkitpy/port/apple.py:
3430         (ApplePort.determine_full_port_name): Return valid port name for unnamed
3431         versions.
3432         * Scripts/webkitpy/port/base.py:
3433         (Port.version_name): Check both public and internal version mapping
3434         when returning a version name.
3435         * Scripts/webkitpy/port/mac.py:
3436         (MacPort.__init__): If no os version is defined, use the current version.
3437
3438 2018-02-28  John Wilander  <wilander@apple.com>
3439
3440         Add a second tier of prevalence to facilitate telemetry on very prevalent domains
3441         https://bugs.webkit.org/show_bug.cgi?id=183218
3442         <rdar://problem/37992388>
3443
3444         Reviewed by Brent Fulgham.
3445
3446         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
3447             Added two new testRunner functions:
3448             - setStatisticsVeryPrevalentResource()
3449             - isStatisticsVeryPrevalentResource()
3450         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
3451         (WTR::TestRunner::setStatisticsVeryPrevalentResource):
3452         (WTR::TestRunner::isStatisticsVeryPrevalentResource):
3453         * WebKitTestRunner/InjectedBundle/TestRunner.h:
3454         * WebKitTestRunner/TestController.cpp:
3455         (WTR::TestController::setStatisticsVeryPrevalentResource):
3456         (WTR::TestController::isStatisticsVeryPrevalentResource):
3457         * WebKitTestRunner/TestController.h:
3458         * WebKitTestRunner/TestInvocation.cpp:
3459         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
3460
3461 2018-02-28  Jonathan Bedard  <jbedard@apple.com>
3462
3463         [webkitpy] Remove concept of 'future' versions (Follow-up fix)
3464         https://bugs.webkit.org/show_bug.cgi?id=183184
3465         <rdar://problem/37958594>
3466
3467         Reviewed by David Kilzer.
3468
3469         The factory also relies on future in a non-obvious way.
3470
3471         * Scripts/webkitpy/common/system/platforminfo.py:
3472         (PlatformInfo.os_version_name): Check both public and internal version mapping
3473         when returning a version name.
3474         * Scripts/webkitpy/common/system/platforminfo_mock.py:
3475         (MockPlatformInfo.os_version_name): Ditto.
3476
3477 2018-02-28  Zan Dobersek  <zdobersek@igalia.com>
3478
3479         Unreviewed WPE fixup after r229080.
3480
3481         Add empty definitions for two AccessibilityUIElement methods,
3482         avoiding undefined symbols in the WKTR injected bundle.
3483
3484         * WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp:
3485         (WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
3486         (WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
3487
3488 2018-02-27  Jonathan Bedard  <jbedard@apple.com>
3489
3490         Remove concept of 'future'
3491         https://bugs.webkit.org/show_bug.cgi?id=183184
3492         <rdar://problem/37958594>
3493
3494         Reviewed by Aakash Jain.
3495
3496         Remove concept of 'future' from expectations and instead
3497         use a system of inheritance centered around the current version
3498         of an OS for Mac and iOS.
3499
3500         Inheritance works like so:
3501
3502         | ....
3503         V Future
3504         > High Sierra (mac)
3505         ^ mac-sierra
3506         | mac-elcapitan
3507         | ....
3508
3509         This does not change expectation inheritance for any currently running
3510         configurations, it generalizes the logic already used.
3511
3512         * Scripts/webkitpy/common/version_name_map.py:
3513         (VersionNameMap.__init__): Remove all future versions.
3514         (VersionNameMap.mapping_for_platform): Return empty dicts instead of
3515         asserting.
3516         * Scripts/webkitpy/port/apple.py:
3517         (ApplePort):
3518         (ApplePort._allowed_versions): Return all available versions.
3519         (ApplePort._generate_all_test_configurations): Instead of picking from a set
3520         of allowed versions, assume that every specified version is allowed.
3521         (ApplePort._port_name_with_version): Deleted.
3522         * Scripts/webkitpy/port/darwin.py: Add CURRENT_VERSION overridden by subclasses.
3523         (DarwinPort):
3524         * Scripts/webkitpy/port/ios.py:
3525         (IOSPort):
3526         (IOSPort.default_baseline_search_path): Use system of inheritance centered around
3527         the current version.
3528         * Scripts/webkitpy/port/mac.py:
3529         (MacPort):
3530         (MacPort.__init__): Use current version by default.
3531         (MacPort.default_baseline_search_path): Use system of inheritance centered around
3532         the current version.
3533         (MacPort.configuration_specifier_macros): Use the same set of version names
3534         supported in default_baseline_search_path.
3535         * Scripts/webkitpy/port/mac_unittest.py:
3536         (MacTest.test_versions): Remove 'future' tests.
3537
3538 2018-02-27  Michael Catanzaro  <mcatanzaro@igalia.com>
3539
3540         Unreviewed GTK test gardening
3541
3542         * TestWebKitAPI/glib/TestExpectations.json:
3543
3544 2018-02-27  Doug Russell  <doug@getitdownonpaper.com>
3545
3546         AX: Spell check and style attributes should be optional when fetching attributed string
3547         https://bugs.webkit.org/show_bug.cgi?id=160744
3548
3549         Reviewed by Chris Fleizach.
3550
3551         The overhead of fetching a spell checked attributed string via AX API is substantial. 
3552         In some cases on the order of 7/8 of the total time spent fetching the string.
3553
3554         This change introduces the new attribute AXAttributedStringForTextMarkerRangeWithOptions which accepts an NSDictionary as it's parameter with keys "AXTextMarkerRange" (AXTextMarkerRangeRef) and "AXSpellCheck" (NSNumber(BOOL)).
3555
3556         AXAttributedStringForTextMarkerRange will remain unchanged.
3557
3558         * DumpRenderTree/AccessibilityUIElement.cpp:
3559         (attributedStringForTextMarkerRangeCallback):
3560         (attributedStringForTextMarkerRangeWithOptionsCallback):
3561         (AccessibilityUIElement::attributedStringForTextMarkerRange):
3562         (AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
3563         (AccessibilityUIElement::getJSClass):
3564         * DumpRenderTree/AccessibilityUIElement.h:
3565         * DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
3566         (AccessibilityUIElement::attributedStringForTextMarkerRange):
3567         (AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
3568         * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
3569         (createJSStringRef):
3570         (AccessibilityUIElement::attributedStringForTextMarkerRange):
3571         (AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
3572         * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
3573         * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
3574         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
3575         (WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
3576         (WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
3577         * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
3578         (WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
3579         (WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
3580         * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
3581         (WTR::createJSStringRef):
3582         (WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
3583         (WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
3584
3585 2018-02-27  Daniel Bates  <dabates@apple.com>
3586
3587         Standardize terminology for marked text
3588         https://bugs.webkit.org/show_bug.cgi?id=180999
3589
3590         Reviewed by Zalan Bujtas.
3591
3592         The name MarkerSubrange is a misnomer for a data structure that associates a text subrange with a type
3593         and optional document marker. In particular, a MarkerSubrange may not always correspond to a document
3594         marker. For instance, selected text is represented using a MarkerSubrange that does not have a
3595         corresponding document marker. Let's standardize on the phrase "marked text" as the canonical way to
3596         describe these tagged text subranges.
3597
3598         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3599         * TestWebKitAPI/Tests/WebCore/MarkedText.cpp: Added.
3600         (WebCore::operator<<):
3601         (TestWebKitAPI::TEST):
3602         * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Removed.
3603
3604 2018-02-27  Aakash Jain  <aakash_jain@apple.com>
3605
3606         webkitpy Bugzilla transactions should retry on URLError
3607         https://bugs.webkit.org/show_bug.cgi?id=183156
3608
3609         Reviewed by Alexey Proskuryakov.
3610
3611         * Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
3612         (Bugzilla): Use NetworkTransaction.
3613         (Bugzilla._fetch_bug_page_by_url):
3614         (Bugzilla.bug_id_for_attachment_id):
3615         (Bugzilla.get_bug_id_for_attachment_id):
3616
3617 2018-02-27  Wenson Hsieh  <wenson_hsieh@apple.com>
3618
3619         [Extra zoom mode] Implement additional SPI for adjusting viewport shrink-to-fit behavior
3620         https://bugs.webkit.org/show_bug.cgi?id=183100
3621         <rdar://problem/37840987>
3622
3623         Reviewed by Tim Horton.
3624
3625         Add API tests that exercise -_setMinimumAllowedLayoutWidth: and -_setForceHorizontalViewportShrinkToFit:. See
3626         WebKit ChangeLog for more detail.
3627
3628         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
3629         * TestWebKitAPI/Tests/ios/ViewportSizingTests.mm: Added.
3630         (TestWebKitAPI::while):
3631         (viewportTestPageMarkup):
3632         (TestWebKitAPI::TEST):
3633
3634 2018-02-27  Yusuke Suzuki  <utatane.tea@gmail.com>
3635
3636         Unreviewed, skip FTL tests if FTL is disabled
3637         https://bugs.webkit.org/show_bug.cgi?id=183071
3638
3639         * Scripts/run-jsc-stress-tests:
3640
3641 2018-02-26  Don Olmstead  <don.olmstead@sony.com>
3642
3643         Fix WebCore includes within WebKitLegacy
3644         https://bugs.webkit.org/show_bug.cgi?id=183147
3645
3646         Reviewed by Tim Horton.
3647
3648         * MiniBrowser/win/ResourceLoadDelegate.cpp:
3649
3650 2018-02-26  Yousuke Kimoto  <yousuke.kimoto@sony.com>
3651
3652         [WinCairo] WebKit2_C.h should be included for TestWebKit
3653         https://bugs.webkit.org/show_bug.cgi?id=182682
3654
3655         Reviewed by Yusuke Suzuki.
3656
3657         * TestWebKitAPI/config.h:
3658
3659 2018-02-25  Fujii Hironori  <Hironori.Fujii@sony.com>
3660
3661         [WK2] http/tests/navigation/new-window-redirect-history.html crashes
3662         https://bugs.webkit.org/show_bug.cgi?id=127683
3663
3664         Reviewed by Dan Bernstein.
3665
3666         m_previousTestBackForwardListItem was null for the new window.
3667         m_previousTestBackForwardListItem is initialized only for the main
3668         window in InjectedBundlePage::prepare.
3669
3670         * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
3671         (WTR::InjectedBundlePage::dumpBackForwardList):
3672         Do null-check of m_previousTestBackForwardListItem.
3673
3674 2018-02-25  Alexey Proskuryakov  <ap@apple.com>
3675
3676         Various crashes in WebKitTestRunner, especially when system is under heavy load
3677         https://bugs.webkit.org/show_bug.cgi?id=183109
3678
3679         Reviewed by Tim Horton.
3680
3681         WebKitTestRunner had many places where it sent messages to WebContent with a timeout,
3682         but it didn't handle the timeout when it did occur. Nearly all of those would result
3683         in logic errors and failing tests, and most would even result in stack corruption,
3684         as the response handler modified local variables.
3685
3686         There is only one timeout scenario that we actually mean to handle in WKTR. That's
3687         when a test freezes after it is done (e.g. an infinite loop in beforeunload) - we don't
3688         want to blame the next test for freezing, so we silently relaunch WebContent.
3689         Everything else is cargo cult code that never worked.
3690
3691         This patch addresses the crashes, and actually makes tests pass a lot more on an
3692         overloaded system.
3693
3694         * WebKitTestRunner/TestController.cpp:
3695         (WTR::TestController::resetStateToConsistentValues): Moved m_doneResetting assignment
3696         to where it's actually needed, for clarity.
3697         (WTR::TestController::reattachPageToWebProcess): This function used to always hit
3698         and ignore message timeout, as m_doneResetting is only updated by navigation callback
3699         when the state is Resetting. This change makes it faster.
3700         (WTR::TestController::platformResetStateToConsistentValues): Style fix.
3701         (WTR::TestController::clearServiceWorkerRegistrations): Timing out here wasn't
3702         handled in a meaningful manner, and would even corrupt the stack.
3703         (WTR::TestController::clearDOMCache): Ditto.
3704         (WTR::TestController::clearDOMCaches): Ditto.
3705         (WTR::TestController::hasDOMCache): Ditto.
3706         (WTR::TestController::domCacheSize): Ditto.
3707         (WTR::TestController::isStatisticsPrevalentResource): Ditto.
3708         (WTR::TestController::isStatisticsRegisteredAsSubFrameUnder): Ditto.
3709         (WTR::TestController::isStatisticsRegisteredAsRedirectingTo): Ditto.
3710         (WTR::TestController::isStatisticsHasHadUserInteraction): Ditto.
3711         (WTR::TestController::isStatisticsGrandfathered): Ditto.
3712         (WTR::TestController::statisticsUpdateCookiePartitioning): Ditto.
3713         (WTR::TestController::statisticsSetShouldPartitionCookiesForHost): Ditto.
3714         (WTR::TestController::statisticsClearInMemoryAndPersistentStore): Ditto.
3715         (WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours): Ditto.
3716         (WTR::TestController::statisticsClearThroughWebsiteDataRemoval): Ditto.
3717
3718         * WebKitTestRunner/TestInvocation.cpp:
3719         (WTR::TestInvocation::shortTimeout const): Made shortTimeout shorter (on a hunch).
3720         (WTR::TestInvocation::invoke): Removed a timeout waiting for initial response. There
3721         is never a logical reason for such a timeout, as we always have a new or responsive
3722         WebContent process here.
3723         (WTR::TestInvocation::dumpResults): Removed another timeout that we don't know how to
3724         properly handle.
3725         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): Removed assignment to
3726         m_errorMessage, which had no effect in this context.
3727
3728         * WebKitTestRunner/TestInvocation.h: Removed no longer used code.
3729
3730         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
3731         (WTR::TestController::cocoaResetStateToConsistentValues): Use a named constant for
3732         no timeout.
3733         
3734         * WebKitTestRunner/ios/TestControllerIOS.mm:
3735         (WTR::TestController::platformConfigureViewForTest): Removed a useless timeout.
3736         Not sure if timing out here would corrupt the stack or not, but there is no reason
3737         to impose arbitrary limits on individual steps of a test.
3738
3739         * WebKitTestRunner/mac/TestControllerMac.mm:
3740         (WTR::TestController::platformConfigureViewForTest): Use a named constant for
3741         no timeout.
3742
3743 2018-02-25  Ali Juma  <ajuma@chromium.org>
3744
3745         Unreviewed. Change my status to committer.
3746
3747         * Scripts/webkitpy/common/config/contributors.json:
3748
3749 2018-02-25  Chris Dumez  <cdumez@apple.com>
3750
3751         Service workers do not work well inside Web.app
3752         https://bugs.webkit.org/show_bug.cgi?id=183105
3753         <rdar://problem/37864140>
3754
3755         Reviewed by Youenn Fablet.
3756
3757         Add API test coverage.
3758
3759         * TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
3760
3761 2018-02-25  Aakash Jain  <aakash_jain@apple.com>
3762
3763         [build.webkit.org] unit-tests fail if buildbot 0.8.6p1 is not installed locally
3764         https://bugs.webkit.org/show_bug.cgi?id=183103
3765
3766         Reviewed by Alexey Proskuryakov.
3767
3768         * BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Removed extra imports.
3769
3770 2018-02-24  Wenson Hsieh  <wenson_hsieh@apple.com>
3771
3772         Unreviewed, fix the TestWebKitAPI build after r228825.
3773
3774         I removed a `>= iOS 11` check in r228825, but forgot that this was also neeed to guard against tvOS and watchOS
3775         builds. This fixes the build by restoring the compile-time guard and also makes it explicit for these platforms.
3776
3777         * TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
3778
3779 2018-02-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3780
3781         Remove currentTime() / currentTimeMS()
3782         https://bugs.webkit.org/show_bug.cgi?id=183052
3783
3784         Reviewed by Mark Lam.
3785
3786         * DumpRenderTree/TestRunner.cpp:
3787         (preciseTimeCallback):
3788         * DumpRenderTree/mac/TestRunnerMac.mm:
3789         (TestRunner::setMockGeolocationPosition):
3790         * TestWebKitAPI/Tests/WTF/Condition.cpp:
3791         * TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
3792         * TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
3793         * WebKitTestRunner/GeolocationProviderMock.cpp:
3794         (WTR::GeolocationProviderMock::setPosition):
3795         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
3796         (WTR::TestRunner::preciseTime):
3797
3798 2018-02-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3799
3800         Remove sleep(double) and sleepMS(double) interfaces
3801         https://bugs.webkit.org/show_bug.cgi?id=183038
3802
3803         Reviewed by Mark Lam.
3804
3805         * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
3806         (PluginTest::indicateTestFailure):
3807         * DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp:
3808         (EvaluteJSWithinNPP_New::NPP_New):
3809         * DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp:
3810         (InvokeDestroysPluginWithinNPP_New::NPP_New):
3811         * DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp:
3812         * TestWebKitAPI/Tests/WTF/Signals.cpp:
3813         (TEST):
3814         * TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
3815         (TestWebKitAPI::testThreadGroup):
3816         * TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
3817         (TestWebKitAPI::TEST):
3818         * TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
3819         (TestWebKitAPI::TEST):
3820         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
3821         (TestWebKitAPI::TEST):
3822         * TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp:
3823         (TestWebKitAPI::Util::sleep):
3824
3825 2018-02-21  Don Olmstead  <don.olmstead@sony.com>
3826
3827         [CMake][Win] Use cmakeconfig.h rather than config.h and Platform.h
3828         https://bugs.webkit.org/show_bug.cgi?id=182883
3829
3830         Reviewed by Per Arne Vollan.
3831
3832         * DumpRenderTree/config.h:
3833         * TestWebKitAPI/config.h:
3834
3835 2018-02-21  Michael Catanzaro  <mcatanzaro@igalia.com>
3836
3837         [GTK] Unsafe g_setenv use in MiniBrowser main
3838         https://bugs.webkit.org/show_bug.cgi?id=182978
3839
3840         Reviewed by Carlos Garcia Campos.
3841
3842         setenv (and g_setenv) will randomly crash if called too late.
3843
3844         * MiniBrowser/gtk/main.c:
3845         (main):
3846
3847 2018-02-21  Aakash Jain  <aakash_jain@apple.com>
3848
3849         webkitpy NetworkTransaction should retry on URLError
3850         https://bugs.webkit.org/show_bug.cgi?id=182987
3851
3852         Reviewed by Alexey Proskuryakov.
3853
3854         * Scripts/webkitpy/common/net/networktransaction.py:
3855         (NetworkTransaction.run): Retry on urllib2.URLError.
3856
3857 2018-02-21  Ms2ger  <Ms2ger@igalia.com>
3858
3859         [WTR][WPE] Correct the process names in TestController.
3860         https://bugs.webkit.org/show_bug.cgi?id=178700
3861
3862         Reviewed by Michael Catanzaro.
3863
3864         Similar to r228731 for GTK.
3865
3866         * Scripts/webkitpy/port/wpe.py:
3867         (WPEPort._get_crash_log): removed the code to convert WebProcess name.
3868         * WebKitTestRunner/TestController.cpp: return the correct process names for WPE.
3869         (WTR::TestController::webProcessName):
3870         (WTR::TestController::networkProcessName):
3871         (WTR::TestController::databaseProcessName):
3872
3873 2018-02-21  Ms2ger  <Ms2ger@igalia.com>
3874
3875         [ATK] Remove attributeSet variable from AccessibilityUIElement::attributedStringForRange().
3876         https://bugs.webkit.org/show_bug.cgi?id=183000
3877
3878         Reviewed by Joanmarie Diggs.
3879
3880         It is never initialized, but is passed to atk_attribute_set_free.
3881         This caused a crash in accessibility/content-editable-as-textarea.html on the debug bots.
3882
3883         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
3884         (WTR::AccessibilityUIElement::attributedStringForRange):
3885
3886 2018-02-21  Myles C. Maxfield  <mmaxfield@apple.com>
3887
3888         [Cocoa] Make system-ui obey the user-installed-font policy
3889         https://bugs.webkit.org/show_bug.cgi?id=182860
3890         <rdar://problem/36158249>
3891
3892         Reviewed by Antti Koivisto.
3893
3894         Create a font, FakeHelvetica-ArmenianCharacter.ttf, which supports a particular Armenian
3895         character which isn't isn't supported by any other font on the system.
3896
3897         * WebKitTestRunner/FakeHelvetica-ArmenianCharacter.ttf:
3898         * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
3899
3900 2018-02-20  Timothy Horton  <timothy_horton@apple.com>
3901
3902         Try to fix the 32-bit build after r228857
3903
3904         * WebKitTestRunner/mac/UIScriptControllerMac.mm:
3905         (WTR::UIScriptController::firstResponderSuppressionForWebView):
3906
3907 2018-02-20  Nan Wang  <n_wang@apple.com>
3908
3909         AX: Keyboard focus not following VoiceOver cursor into web content or within web content.
3910         https://bugs.webkit.org/show_bug.cgi?id=182752
3911         <rdar://problem/37518233>
3912
3913         Reviewed by Ryosuke Niwa.
3914
3915         * DumpRenderTree/mac/UIScriptControllerMac.mm:
3916         (WTR::UIScriptController::firstResponderSuppressionForWebView):
3917         (WTR::UIScriptController::makeWindowContentViewFirstResponder):
3918         (WTR::UIScriptController::isWindowContentViewFirstResponder const):
3919         * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
3920         * TestRunnerShared/UIScriptContext/UIScriptController.cpp:
3921         (WTR::UIScriptController::firstResponderSuppressionForWebView):
3922         (WTR::UIScriptController::makeWindowContentViewFirstResponder):
3923         (WTR::UIScriptController::isWindowContentViewFirstResponder const):
3924         * TestRunnerShared/UIScriptContext/UIScriptController.h:
3925         * WebKitTestRunner/mac/UIScriptControllerMac.mm:
3926         (WTR::UIScriptController::firstResponderSuppressionForWebView):
3927         (WTR::UIScriptController::makeWindowContentViewFirstResponder):
3928         (WTR::UIScriptController::isWindowContentViewFirstResponder const):
3929
3930 2018-02-20  Fujii Hironori  <Hironori.Fujii@sony.com>
3931
3932         [GTK] jhbuild: Remove gtk-doc
3933         https://bugs.webkit.org/show_bug.cgi?id=182956
3934
3935         Reviewed by Michael Catanzaro.
3936
3937         jhbuild doesn't need to build gtk-doc because major LTS Linux
3938         distributions have gtk-doc v1.25, and
3939         Tools/gtk/install-dependencies installs gtk-doc.
3940
3941         * gtk/jhbuild.modules: Removed gtk-doc.
3942
3943 2018-02-20  Tim Horton  <timothy_horton@apple.com>
3944
3945         Introduce HAVE(IOSURFACE_ACCELERATOR)
3946         https://bugs.webkit.org/show_bug.cgi?id=182955
3947         <rdar://problem/37699510>
3948
3949         Reviewed by Sam Weinig.
3950
3951         * DumpRenderTree/ios/PixelDumpSupportIOS.mm:
3952         (createBitmapContextFromWebView):
3953         * WebKitTestRunner/ios/PlatformWebViewIOS.mm:
3954         (WTR::PlatformWebView::windowSnapshotImage):
3955
3956 2018-02-20  Chris Dumez  <cdumez@apple.com>
3957
3958         Provisional load may get committed before receiving the decidePolicyForNavigationResponse response
3959         https://bugs.webkit.org/show_bug.cgi?id=182720
3960         <rdar://problem/37515204>
3961
3962         Reviewed by Alex Christensen.
3963
3964         Add API test coverage.
3965
3966         * TestWebKitAPI/Tests/WebKitCocoa/AsyncPolicyForNavigationResponse.mm:
3967         (-[TestAsyncNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
3968         (TestWebKitAPI::TEST):
3969
3970 2018-02-20  Nan Wang  <n_wang@apple.com>
3971
3972         AX: AOM: Dispatch accessibleclick event
3973         https://bugs.webkit.org/show_bug.cgi?id=180898
3974         <rdar://problem/36086710>
3975
3976         Reviewed by Ryosuke Niwa.
3977
3978         * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
3979         (WTR::AccessibilityUIElement::syncPress):
3980         * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
3981         * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
3982         (WTR::AccessibilityUIElement::syncPress):
3983
3984 2018-02-20  Wenson Hsieh  <wenson_hsieh@apple.com>
3985
3986         [iOS 11.3 Beta] Can't copy a URL from Safari and paste it into the Gmail app
3987         https://bugs.webkit.org/show_bug.cgi?id=182952
3988         <rdar://problem/37636190>
3989
3990         Reviewed by Tim Horton.
3991
3992         Adds a new iOS copy/paste test that copies an anchor element via action sheet, and checks that upon pasting,
3993         both "text/plain" and "text/uri-list" are provided. Additionally tweaks an existing iOS drag and drop test to
3994         check for the same behavior.
3995
3996         * TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
3997         (TestWebKitAPI::TEST):
3998         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
3999         (TestWebKitAPI::TEST):
4000
4001 2018-02-20  Philippe Normand  <pnormand@igalia.com>
4002
4003         [GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser
4004         https://bugs.webkit.org/show_bug.cgi?id=173655
4005
4006         Reviewed by Xabier Rodriguez-Calvar.
4007
4008         The FIXME in GStreamerUtilities.cpp asks to pass the command line
4009         parameters to the GStreamer initialization function.
4010
4011         Based on initial patch by: Vanessa Chipirrás Navalón  <vchipirras@igalia.com>
4012
4013         * MiniBrowser/gtk/main.c:
4014         (main): Add the group containing the Gstreamer options that the console displays.
4015
4016 2018-02-19  Fujii Hironori  <Hironori.Fujii@sony.com>
4017
4018         [WTR][GTK] crash log backtrace doesn't show symbol names for DatabaseProcess and NetworkProcess
4019         https://bugs.webkit.org/show_bug.cgi?id=182953
4020
4021         Reviewed by Carlos Garcia Campos.
4022
4023         * Scripts/webkitpy/port/gtk.py:
4024         (GtkPort._get_crash_log): Removed the code to convert WebProcess name.
4025         * WebKitTestRunner/TestController.cpp:
4026         (WTR::TestController::webProcessName): Return the correct program name for GTK+ port.
4027         (WTR::TestController::networkProcessName): Ditto.
4028         (WTR::TestController::databaseProcessName): Ditto.
4029
4030 2018-02-19  Ryan Haddad  <ryanhaddad@apple.com>
4031
4032         Unreviewed, rolling out r228696.
4033
4034         The API test added with this change is timing out on macOS.
4035
4036         Reverted changeset:
4037
4038         "Null pointer dereference in
4039         WebPageProxy::urlSchemeHandlerForScheme()"
4040         https://bugs.webkit.org/show_bug.cgi?id=182905
4041         https://trac.webkit.org/changeset/228696
4042
4043 2018-02-16  Ryosuke Niwa  <rniwa@webkit.org>
4044
4045         Add an entitlement check for service worker on iOS
4046         https://bugs.webkit.org/show_bug.cgi?id=182865
4047         <rdar://problem/37505903>
4048
4049         Reviewed by Brady Eidson.
4050
4051         Added the service worker entitlements to WebKitTestRunner and TestWebKitAPI on iOS.
4052
4053         * TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
4054         * WebKitTestRunner/Configurations/WebKitTestRunnerApp-iOS.entitlements:
4055         * WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
4056         * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
4057
4058 2018-02-16  Youenn Fablet  <youenn@apple.com>
4059
4060         Allow specifying which plug-ins are supported
4061         https://bugs.webkit.org/show_bug.cgi?id=182748
4062
4063         Reviewed by Chris Dumez.
4064
4065         Add support for a test runner API to specificy supported plug-ins.
4066
4067         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
4068         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
4069         (WTR::TestRunner::setPluginsAsUnsupported):
4070         * WebKitTestRunner/InjectedBundle/TestRunner.h:
4071         * WebKitTestRunner/TestController.cpp:
4072         (WTR::TestController::resetStateToConsistentValues):
4073         (WTR::TestController::setPluginsAsUnsupported):
4074         * WebKitTestRunner/TestController.h:
4075         * WebKitTestRunner/TestInvocation.cpp:
4076         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
4077
4078 2018-02-16  Per Arne Vollan  <pvollan@apple.com>
4079
4080         Implement stopping of run loop in the WebContent process when using NSRunLoop.
4081         https://bugs.webkit.org/show_bug.cgi?id=182499
4082         <rdar://problem/37247424>
4083
4084         Reviewed by Brent Fulgham.
4085
4086         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
4087         * TestWebKitAPI/Tests/WebKitCocoa/WebProcessTerminate.mm: Added.
4088         (TEST):
4089
4090 2018-02-15  Alexey Proskuryakov  <ap@apple.com>
4091
4092         Speed up dSYM generation on build.webkit.org with -gline-tables-only
4093         https://bugs.webkit.org/show_bug.cgi?id=182841
4094         rdar://problem/34579649
4095
4096         Reviewed by Aakash Jain.
4097
4098         Build speed and binary size improvements are so substantial that I'm willing to make
4099         CI builds less suitable for debugging, which is not a common scenario anyway.
4100         Crash logs will still have line numbers in them.
4101
4102         * BuildSlaveSupport/build.webkit.org-config/steps.py: (CompileWebKit.start):
4103
4104 2018-02-15  Don Olmstead  <don.olmstead@sony.com>
4105
4106         WebCore headers should not be included relatively within dependent projects
4107         https://bugs.webkit.org/show_bug.cgi?id=182805
4108
4109         Reviewed by Chris Dumez.
4110
4111         * TestWebKitAPI/win/TestWebCoreStubs.cpp:
4112         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
4113         * WebKitTestRunner/InjectedBundle/wpe/AccessibilityControllerWPE.cpp:
4114         * WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp:
4115         * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
4116         * WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
4117
4118 2018-02-15  Tomas Popela  <tpopela@redhat.com>
4119
4120         run-jsc-stress-tests - skip a test if any of the run commands evals to skip
4121         https://bugs.webkit.org/show_bug.cgi?id=182729
4122
4123         If multiple run commands are specified and one of them evals to skip,
4124         then the test is not skipped, because the run is scheduled while
4125         evaluating other commands.
4126
4127         Remember if the test is going to be skipped - if yes, just stop
4128         evaluating the other run commands.
4129
4130         Reviewed by Saam Barati.
4131
4132         * Scripts/run-jsc-stress-tests:
4133
4134 2018-02-14  Charlie Turner  <cturner@igalia.com>
4135
4136         Get Garden-O-Matic running again.
4137         https://bugs.webkit.org/show_bug.cgi?id=179089
4138
4139         Reviewed by Carlos Alberto Lopez Perez.
4140
4141         * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js:
4142         (parseCommitData): Author field is not always spelled 'author' these days.
4143         * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:
4144         No longer have a 32-bit builder.
4145         * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/perf.js:
4146         (ui.perf.View.base.init): createElement has a required parameter these days.
4147         * Scripts/webkitpy/tool/commands/gardenomatic.py:
4148         (GardenOMatic): Override use_globs so that platform lookup in config.js works.
4149
4150 2018-02-14  Don Olmstead  <don.olmstead@sony.com>
4151
4152         Remove unused ForwardingHeaders directories from Tools
4153         https://bugs.webkit.org/show_bug.cgi?id=182813
4154
4155         Reviewed by Konstantin Tokarev.
4156
4157         * DumpRenderTree/ForwardingHeaders/runtime/ArrayBufferView.h: Removed.
4158         * DumpRenderTree/ForwardingHeaders/runtime/JSArrayBufferView.h: Removed.
4159         * DumpRenderTree/ForwardingHeaders/runtime/JSExportMacros.h: Removed.
4160         * DumpRenderTree/ForwardingHeaders/runtime/TypedArrayInlines.h: Removed.
4161         * TestWebKitAPI/ForwardingHeaders/WebCore/LayoutUnit.h: Removed.
4162
4163 2018-02-14  Daniel Bates  <dabates@apple.com>
4164
4165         Disallow cross-origin subresources from asking for credentials
4166         https://bugs.webkit.org/show_bug.cgi?id=182579
4167         <rdar://problem/36162271>
4168
4169         Reviewed by Andy Estes.
4170
4171         Add test option allowCrossOriginSubresourcesToAskForCredential (defaults to false)
4172         so that tests can toggle between the old behavior and new behavior.
4173
4174         * DumpRenderTree/TestOptions.h:
4175         * DumpRenderTree/TestOptions.mm:
4176         (TestOptions::TestOptions):
4177         * DumpRenderTree/mac/DumpRenderTree.mm:
4178         (setWebPreferencesForTestOptions):
4179         * WebKitTestRunner/TestController.cpp:
4180         (WTR::TestController::resetPreferencesToConsistentValues):
4181         (WTR::updateTestOptionsFromTestHeader):
4182         * WebKitTestRunner/TestOptions.h:
4183         (WTR::TestOptions::hasSameInitializationOptions const):
4184
4185 2018-02-12  Ryosuke Niwa  <rniwa@webkit.org>
4186
4187         REGRESSION (r223440): Copying & pasting a list from Microsoft Word to TinyMCE fails
4188         https://bugs.webkit.org/show_bug.cgi?id=182564
4189
4190         Reviewed by Wenson Hsieh.
4191
4192         Updated assertions to make sure the trailing "}" of @list rules is includd in the style, the "style" element
4193         is wrapped by "head" element (not present in the pasted markup since the fragment parsing algorithm strips away),
4194         and the style content is enclosed in "<!--" and "-->".
4195
4196         Also use execCommand('insertHTML', ~) to insert the HTML obtained via dataTransfer.getData instead of innerHTML
4197         to make sure our pasting code preserves the special style element for MSO list quirks.
4198
4199         Finally, added two more test cases for pasting content from Microsoft Word's compatibility mode.
4200
4201         * TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:
4202         (TEST):
4203         * TestWebKitAPI/Tests/WebKitCocoa/PasteWebArchive.mm:
4204         (TEST):
4205
4206 2018-02-14  Ross Kirsling  <ross.kirsling@sony.com>
4207
4208         [Tools] --wincairo should imply --64-bit by default.
4209         https://bugs.webkit.org/show_bug.cgi?id=182753
4210
4211         Reviewed by Daniel Bates.
4212
4213         WinCairo does not currently support 32-bit and `--wincairo` itself should refer to a working platform.
4214         This patch ensures x64 is determined correctly for `build-webkit --no-ninja` and `run-webkit-tests`.
4215
4216         * Scripts/webkitdirs.pm:
4217         (determinePassedArchitecture):
4218         (shouldBuild32Bit):
4219         (determineShouldBuild32Bit):
4220         (determineIsWin64):
4221         * Scripts/webkitpy/common/config/ports.py:
4222         (WinCairoPort.build_webkit_command):
4223         * Scripts/webkitpy/common/config/ports_unittest.py:
4224         (DeprecatedPortTest.test_wincairo_port):
4225         * Scripts/webkitpy/port/win.py:
4226         (WinCairoPort):
4227
4228 2018-02-13  Commit Queue  <commit-queue@webkit.org>
4229
4230         Unreviewed, rolling out r228431.
4231         https://bugs.webkit.org/show_bug.cgi?id=182766
4232
4233         Regressed CMake build stability (Requested by dolmstead on
4234         #webkit).
4235
4236         Reverted changeset:
4237
4238         "[CMake] Make WebCore headers copies"
4239         https://bugs.webkit.org/show_bug.cgi?id=182512
4240         https://trac.webkit.org/changeset/228431
4241
4242 2018-02-13  Don Olmstead  <don.olmstead@sony.com>
4243
4244         [CMake] Make WebCore headers copies
4245         https://bugs.webkit.org/show_bug.cgi?id=182512
4246
4247         Reviewed by Keith Miller.
4248
4249         * DumpRenderTree/CMakeLists.txt:
4250         * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
4251         * DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npapi.h:
4252         * DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npfunctions.h:
4253         * DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npruntime.h:
4254         * TestWebKitAPI/PlatformGTK.cmake:
4255         * TestWebKitAPI/PlatformWPE.cmake:
4256         * TestWebKitAPI/PlatformWin.cmake:
4257         * TestWebKitAPI/win/TestWebCoreStubs.cpp:
4258         (loadResourceIntoBuffer):
4259         * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
4260         * WebKitTestRunner/InjectedBundle/wpe/AccessibilityControllerWPE.cpp:
4261         * WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp:
4262         * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
4263         * WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
4264
4265 2018-02-13  Chris Dumez  <cdumez@apple.com>
4266
4267         REGRESSION (r228299): Broke reader mode in Safari
4268         https://bugs.webkit.org/show_bug.cgi?id=182697
4269         <rdar://problem/37399012>
4270
4271         Reviewed by Ryosuke Niwa.