[Win] Pass close_fds = True in Python popen call.
[WebKit-https.git] / Tools / ChangeLog
1 2017-03-30  Per Arne Vollan  <pvollan@apple.com>
2
3         [Win] Pass close_fds = True in Python popen call.
4         https://bugs.webkit.org/show_bug.cgi?id=170172
5
6         Reviewed by Brent Fulgham.
7
8         This was previously not supported on Windows, but in Python 2.7.10 it is.
9
10         * Scripts/webkitpy/common/system/executive.py:
11         (Executive._should_close_fds):
12         * Scripts/webkitpy/port/server_process.py:
13         (ServerProcess._start):
14
15 2017-03-30  Aakash Jain  <aakash_jain@apple.com>
16
17         Change my status to be a WebKit reviewer.
18
19         Unreviewed status update edit.
20
21         * Scripts/webkitpy/common/config/contributors.json:
22
23 2017-03-30  Carlos Alberto Lopez Perez  <clopez@igalia.com>
24
25         Change my status to be a WebKit reviewer.
26
27         Unreviewed status update edit.
28
29         * Scripts/webkitpy/common/config/contributors.json:
30
31 2017-03-29  Tim Horton  <timothy_horton@apple.com>
32
33         Swipe gesture tests don't work on macOS Sierra
34         https://bugs.webkit.org/show_bug.cgi?id=161675
35         <rdar://problem/23379930>
36
37         Reviewed by Darin Adler.
38
39         * DumpRenderTree/mac/UIScriptControllerMac.mm:
40         (WTR::UIScriptController::platformPlayBackEventStream):
41         (WTR::UIScriptController::beginBackSwipe):
42         (WTR::UIScriptController::completeBackSwipe):
43         * TestRunnerShared/EventSerialization/mac/EventSerializerMac.h: Copied from Tools/DumpRenderTree/mac/UIScriptControllerMac.mm.
44         * TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm: Added.
45         (eventIsOfType):
46         (eventIsOfTypes):
47         (eventIsOfGestureType):
48         (eventIsOfGestureTypes):
49         (+[EventSerializer dictionaryForEvent:relativeToTime:]):
50         (+[EventSerializer createEventForDictionary:inWindow:relativeToTime:]):
51         (+[EventSerializer playEventStream:inWindow:completionHandler:]):
52         * TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.h: Copied from Tools/WebKitTestRunner/mac/UIScriptControllerMac.mm.
53         * TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm: Added.
54         (beginSwipeBackEventStream):
55         (completeSwipeBackEventStream):
56         * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
57         * TestRunnerShared/UIScriptContext/UIScriptController.cpp:
58         (WTR::UIScriptController::playBackEventStream):
59         (WTR::UIScriptController::beginBackSwipe):
60         (WTR::UIScriptController::completeBackSwipe):
61         (WTR::UIScriptController::platformPlayBackEventStream):
62         (WTR::UIScriptController::platformClearAllCallbacks): Deleted.
63         * TestRunnerShared/UIScriptContext/UIScriptController.h:
64         * TestRunnerShared/spi/CoreGraphicsSPI.h: Added.
65         * TestRunnerShared/spi/IOKitSPI.h: Renamed from Tools/WebKitTestRunner/ios/IOKitSPI.h.
66         * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
67         * WebKitTestRunner/mac/UIScriptControllerMac.mm:
68         (WTR::playBackEvents):
69         (WTR::UIScriptController::beginBackSwipe):
70         (WTR::UIScriptController::completeBackSwipe):
71         (WTR::UIScriptController::platformPlayBackEventStream):
72
73 2017-03-29  Jonathan Bedard  <jbedard@apple.com>
74
75         webkitpy: Robust test clean-up
76         https://bugs.webkit.org/show_bug.cgi?id=170255
77
78         Reviewed by Alexey Proskuryakov.
79
80         On-device testing is the motivation for this change.  Failure to run clean-up functions can
81         result in zombie processes, residual NFS mounts and other undesirable remnants from a failed
82         test run.  Make an effort to clean-up even if exceptions are thrown during set-up or clean-up.
83
84         * Scripts/webkitpy/layout_tests/controllers/manager.py:
85         (Manager._set_up_run): Clean up test run if set-up fails.
86         * Scripts/webkitpy/port/ios.py:
87         (IOSPort.clean_up_test_run): Continue cleaning up devices even after an exception is thrown.
88
89 2017-03-29  Jonathan Bedard  <jbedard@apple.com>
90
91         Simulator testing stops after the first crash
92         <rdar://problem/31325362>
93
94         Unreviewed infrastructure fix.
95
96         * Scripts/webkitpy/xcode/simulated_device.py:
97         (SimulatedDevice):
98         (SimulatedDevice.launch_app): Increase timeout when attempting to launch app.
99
100 2017-03-29  Jonathan Bedard  <jbedard@apple.com>
101
102         webkitpy: Standardize web-server port definitions
103         https://bugs.webkit.org/show_bug.cgi?id=170144
104         <rdar://problem/31284026>
105
106         Reviewed by Daniel Bates.
107
108         Default web-server ports should be declared in global variables.
109         Add functions to web-servers which return the ports these servers
110         are using so that other tools can forward them.
111
112         * Scripts/webkitpy/layout_tests/servers/apache_http_server.py:
113         (LayoutTestApacheHttpd.__init__): Use shared constants in http_server_base.py.
114         * Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:
115         (TestLayoutTestApacheHttpd.test_start_cmd): Check port_to_forward for expected values.
116         * Scripts/webkitpy/layout_tests/servers/http_server.py:
117         (Lighttpd.__init__): Use shared constants in http_server_base.py.
118         (Lighttpd._prepare_config): Ditto.
119         * Scripts/webkitpy/layout_tests/servers/http_server_base.py:
120         (HttpServerBase): Add default port constants.
121         (HttpServerBase.ports_to_forward): Add function to return ports used for http server.
122         * Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:
123         (TestHttpServer.test_start_cmd): Check port_to_forward for expected values.
124         * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
125          (WebPlatformTestServer.ports_to_forward): Add function to return ports used for web-platform tests.
126         * Scripts/webkitpy/layout_tests/servers/websocket_server.py:
127         (PyWebSocket): Make default port values public.
128         (PyWebSocket.__init__): Use public default port.
129         (PyWebSocket.ports_to_forward): Return port used in an array.
130         * Scripts/webkitpy/port/base.py:
131         (Port.to.ports_to_forward): Return all ports used the various web-servers managed by the port object.
132         (Port.to.start_websocket_server): Use PyWebSocket port constants.
133
134 2017-03-29  Wenson Hsieh  <wenson_hsieh@apple.com>
135
136         Links with empty hrefs should not be drag sources
137         https://bugs.webkit.org/show_bug.cgi?id=170241
138         <rdar://problem/31305505>
139
140         Reviewed by Tim Horton.
141
142         Adds a new API test: DataInteractionTests.LinkWithEmptyHREF.
143
144         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
145         (TestWebKitAPI::TEST):
146         * TestWebKitAPI/ios/DataInteractionSimulator.h:
147
148         Expose the current phase of the data interaction simulator for verifying behaviors in unit tests.
149
150         * TestWebKitAPI/ios/DataInteractionSimulator.mm:
151         (-[DataInteractionSimulator phase]):
152
153 2017-03-29  Jonathan Bedard  <jbedard@apple.com>
154
155         Use TCP instead of FIFOs for Simulator/Device communication
156         https://bugs.webkit.org/show_bug.cgi?id=169419
157         <rdar://problem/30949615>
158
159         Reviewed by Alexey Proskuryakov.
160
161         Using TCP instead of FIFOs when communicating with devices allows the device being tested
162         to be on a different machine then the one handling the management of the test run.
163
164         * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
165         * DumpRenderTree/mac/DumpRenderTree.mm:
166         (dumpRenderTree): Call setUp/tearDownIOSLayoutTestCommunication() instead of using FIFOs.
167         * Scripts/webkitpy/port/device.py:
168         (Device.__init__): Initialize the listening_socket.
169         (Device.listening_port): Return port of listening socket.
170         (Device.prepare_for_testing): Open listening socket on an open port, prepare platform device
171         fro testing.
172         (Device.finished_testing): Close listening socket associated with this device, call the
173         platform device's finished_testing function if it exists.
174         * Scripts/webkitpy/port/ios.py:
175         (IOSPort.setup_test_run): Prepare each device for testing.
176         (IOSPort.clean_up_test_run): Notify each device that testing has completed.
177         * Scripts/webkitpy/port/ios_simulator.py:
178         (IOSSimulatorPort): Work around device persistence bug.
179         (IOSSimulatorPort.__init__): Ditto.
180         * Scripts/webkitpy/port/simulator_process.py:
181         (SimulatorProcess):
182         (SimulatorProcess.NonBlockingFileFromSocket): Add to work around shortcomings in
183         Python 2’s makefile.
184         (SimulatorProcess.NonBlockingFileFromSocket.__init__): Initialize file with socket.
185         (SimulatorProcess.ReadFileSocket.close): Close file and then socket;
186         (SimulatorProcess.__init__): Pass TCP port over environment, remove FIFO names.
187         (SimulatorProcess.__getattr__): Expose all file attributes.
188         (SimulatorProcess._accept_connection_create_file): Wait for connection from server and
189         create and return a file-like object from the incoming connection.
190         (SimulatorProcess._start): Use TCP connections instead of FIFOs.
191         (SimulatorProcess._start.handler): Output server port in timeout exception.
192         (SimulatorProcess._reset): Deleted.
193         * TestRunnerShared/IOSLayoutTestCommunication.cpp: Added.
194         (connectToServer): Return socket connected to the provided server address.
195         (setupiOSLayoutTestCommunication): Connect stdin, stdout and stderr as socket to a
196         TCP server running on localhost.
197         (tearDownIOSLayoutTestCommunication): Close stdin, stdout and stderr TCP sockets.
198         * TestRunnerShared/IOSLayoutTestCommunication.h: Added.
199         * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
200         * WebKitTestRunner/ios/TestControllerIOS.mm:
201         (WTR::TestController::platformInitialize): Call setUpIOSLayoutTestCommunication()
202         instead of using FIFOs.
203         (WTR::TestController::platformDestroy): Call tearDownIOSLayoutTestCommunication().
204
205 2017-03-29  Jonathan Bedard  <jbedard@apple.com>
206
207         webkitpy: Add IOSDevicePort and IOSPort tests
208         https://bugs.webkit.org/show_bug.cgi?id=170206
209         <rdar://problem/31308364>
210
211         Reviewed by Alexey Proskuryakov.
212
213         * Scripts/webkitpy/port/darwin_testcase.py: Removed unused import.
214         * Scripts/webkitpy/port/ios_device_unittest.py: Added.
215         (iosDeviceTest): Contains tests for the IOSDevicePort.
216         (iosDeviceTest.make_port): Creates an IOSDevicePort with arguments.
217         (iosDeviceTest.test_operating_system): Check for the correct operating system.
218         * Scripts/webkitpy/port/ios_simulator_unittest.py: Moved from Tools/Scripts/webkitpy/port/ios_unittest.py.
219         (iosSimulatorTest): Inherit from ios_testcase.
220         (iosSimulatorTest.make_port): Ditto.
221         (iosSimulatorTest.test_get_crash_log): Ditto.
222         * Scripts/webkitpy/port/ios_testcase.py: Added.
223         (iOSTest): Contains shared tests for the IOSDevicePort and IOSSimulatorPort.
224         (iOSTest.test_driver_name): Tests for iOS app driver.
225         (iOSTest.test_baseline_searchpath): Check that ios and ios-wk1 are in the baseline search path.
226         * Scripts/webkitpy/port/ios_unittest.py: Moved to ios_simulator_unittest.py.
227         * Scripts/webkitpy/port/port_testcase.py:
228         (PortTestCase): Rename is_simulator to disable_setup to more accurately describe it's meaning.
229         (PortTestCase.test_diff_image): Use disable_setup instead of is_simulator.
230         (PortTestCase.test_diff_image_crashed): Ditto.
231
232 2017-03-28  Jason Marcell  <jmarcell@apple.com>
233
234         Fix `index-expected.txt` for dashboard test results.
235         https://bugs.webkit.org/show_bug.cgi?id=170214
236
237         Reviewed by Alexey Proskuryakov.
238
239         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/index-expected.txt:
240
241 2017-03-28  Alexey Proskuryakov  <ap@apple.com>
242
243         Bot watcher's dashboard has separate settings for "mac" and "macos"
244         https://bugs.webkit.org/show_bug.cgi?id=170164
245
246         Reviewed by Tim Horton.
247
248         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js:
249         (Settings.prototype.parsePlatformFamily): Aded a special case for "macos".
250
251 2017-03-28  Alexey Proskuryakov  <ap@apple.com>
252
253         Fix dashboard test results on the dashboard
254         https://bugs.webkit.org/show_bug.cgi?id=170158
255
256         Reviewed by Tim Horton.
257
258         Link to result diff instead of stdio. Looking at the diff, I wonder if it can be
259         further improved, as it's not super readable, but stdio is entirely useless in this context.
260
261         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:
262         (Buildbot.prototype.dashboardTestResultsURLForIteration): Generate formatted diff link.
263
264         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
265         Fixed a typo in step name, so that it's actually treated as productive.
266
267         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
268         (BuildbotTesterQueueView.prototype.appendBuilderQueueStatus):
269         (BuildbotTesterQueueView.prototype.update):
270         (BuildbotTesterQueueView.prototype._presentPopoverForGenericTestFailures):
271         Added special handling for dashboard test results.
272
273 2017-03-28  Aakash Jain  <aakash_jain@apple.com>
274
275         Fix Dashboard test _presentPopoverForJavaScriptCoreTestRegressions
276         https://bugs.webkit.org/show_bug.cgi?id=170193
277
278         Reviewed by Alexey Proskuryakov.
279
280         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js:
281         Fixed the order of arguments.
282
283 2017-03-28  Aakash Jain  <aakash_jain@apple.com>
284
285         Dashboard tests fails to fetch the revision from commits
286         https://bugs.webkit.org/show_bug.cgi?id=170191
287
288         Reviewed by Alexey Proskuryakov.
289
290         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockTrac.js:
291         Added recordedCommitIndicesByRevisionNumber.
292         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js:
293         (setup): Populated trac.recordedCommitIndicesByRevisionNumber since the dashboard code uses this variable.
294
295 2017-03-28  Timothy Horton  <timothy_horton@apple.com>
296
297         Safari crashes when attempting to close tab that is displaying PDF
298         https://bugs.webkit.org/show_bug.cgi?id=170201
299         <rdar://problem/31242019>
300
301         Reviewed by Wenson Hsieh.
302
303         * TestWebKitAPI/Tests/WebKit2Cocoa/DoAfterNextPresentationUpdateAfterCrash.mm:
304         (TEST):
305         Add a test for doAfterNextStablePresentationUpdate just like the existing
306         non-stable one.
307
308 2017-03-28  Jonathan Bedard  <jbedard@apple.com>
309
310         webkitpy: Use host pattern for devices
311         https://bugs.webkit.org/show_bug.cgi?id=170121
312
313         Reviewed by Daniel Bates.
314
315         Devices should be treated like hosts throughout webkitpy
316         so that more code can be re-used.  Add the needed properties
317         and use executive over custom implemented polling/killing
318         functions.
319
320         * Scripts/webkitpy/port/device.py:
321         (Device):
322         (Device.executive): Add optional executive property.
323         (Device.filesystem): Add optional filesystem property.
324         (Device.user): Add optional user property.
325         (Device.platform): Add optional platform property.
326         (Device.workspace): Add optional workspace property.
327         (Device.poll): Deleted.
328         * Scripts/webkitpy/port/simulator_process.py:
329         (SimulatorProcess.Popen.poll): Use the devices executive.
330         (SimulatorProcess.stop): Ditto.
331         (SimulatorProcess._kill): Ditto.
332         * Scripts/webkitpy/xcode/simulated_device.py:
333         (SimulatedDevice.__init__): Add executive, filesystem, user, platform
334         and workspace to the platform device.
335         (SimulatedDevice.poll): Deleted.
336
337 2017-03-28  Aakash Jain  <aakash_jain@apple.com>
338
339         Dashboard test fails with error: latestIterationGetter is not a function
340         https://bugs.webkit.org/show_bug.cgi?id=170167
341
342         Reviewed by Alexey Proskuryakov.
343
344         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js:
345         (this.view._latestProductiveIteration): Configure _latestProductiveIteration in setup.
346
347 2017-03-27  Lucas Forschler  <lforschler@apple.com>
348
349         Another test v8.
350
351 2017-03-27  Lucas Forschler  <lforschler@apple.com>
352
353         Another test v7.
354
355 2017-03-27  Lucas Forschler  <lforschler@apple.com>
356
357         Another test v6.
358
359 2017-03-27  Lucas Forschler  <lforschler@apple.com>
360
361         Another test v5.
362
363 2017-03-27  Lucas Forschler  <lforschler@apple.com>
364
365         Another test v4.
366
367 2017-03-27  Lucas Forschler  <lforschler@apple.com>
368
369         Another test v3.
370
371 2017-03-27  Lucas Forschler  <lforschler@apple.com>
372
373         Another test v2.
374
375 2017-03-27  Lucas Forschler  <lforschler@apple.com>
376
377         Another test.
378
379 2017-03-27  Lucas Forschler  <lforschler@apple.com>
380
381         <rdar://problem/30949128>
382         Update build.webkit.org to use port 16000 for PBChangeSource.
383         
384         Reviewed by Alexey Proskuryakov.
385
386         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
387
388 2017-03-27  Jason Marcell  <jmarcell@apple.com>
389
390         Bots should run the dashboard tests
391         https://bugs.webkit.org/show_bug.cgi?id=168994
392
393         Reviewed by Daniel Bates and David Kilzer.
394
395         We pull the `--results-directory` argument value out so that `RunDashboardTests` can override it so that we can separately run the dashboard layout tests.
396
397         * BuildSlaveSupport/build.webkit.org-config/master.cfg:
398         (RunWebKitTests): Define a class variable called resultDirectory for the `--results-directory` argument so that subclasses can override this if needed.
399         (RunWebKitTests.start): Set the `--results-directory` argument value to the value of self.resultDirectory.
400         (RunDashboardTests): Subclass of RunWebKitTests in which we run the layout tests for the Bot Watcher's Dashboard.
401         (RunDashboardTests.start): Override the `--layout-tests-directory` to point to the dashboard layout tests.
402         (ExtractTestResults.addCustomURLs): Update the current results URL label to indicate that it links to layout tests results and add a new link to link to dashboard layout test results.
403         (TestFactory.__init__): Update unit tests to account for new RunDashboardTests step.
404         * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
405         * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
406
407 2017-03-27  Jonathan Bedard  <jbedard@apple.com>
408
409         webkitpy: Look for 'ios' test expectations for IOSPorts
410         https://bugs.webkit.org/show_bug.cgi?id=169413
411
412         Reviewed by Alexey Proskuryakov.
413
414         Test expectations for iOS tests should include the 'ios' folder.  Modify
415         default_baseline_search_path to include 'ios' folder and derivatives for
416         IOSPort.
417
418         * Scripts/webkitpy/port/ios.py:
419         (IOSPort._generate_all_test_configurations): Moved from IOSSimulatorPort.
420         (IOSPort.default_baseline_search_path): Add ios expectations along with port specific expectations.
421         (IOSPort.test_expectations_file_position): Added for testing.
422         * Scripts/webkitpy/port/ios_simulator.py:
423         (IOSSimulatorPort._generate_all_test_configurations): Moved to IOSPort.
424         (IOSSimulatorPort.default_baseline_search_path): Moved to IOSPort.
425
426 2017-03-27  Jonathan Bedard  <jbedard@apple.com>
427
428         REGRESSION: Reseting _device_map on each child process
429         <rdar://problem/31274476>
430
431         Unreviewed infrastructure fix.
432
433         * Scripts/webkitpy/port/ios_simulator.py:
434         (IOSSimulatorPort): Add _DEVICE_MAP class variable.
435         (IOSSimulatorPort.__init__): Use shared class variable
436         (IOSSimulatorPort._device_for_worker_number_map): Use _DEVICE_MAP class variable
437         (IOSSimulatorPort._create_devices): Ditto.
438         (IOSSimulatorPort._quit_ios_simulator): Ditto.
439         (IOSSimulatorPort.clean_up_test_run): Ditto.
440
441 2017-03-27  Jonathan Bedard  <jbedard@apple.com>
442
443         REGRESSION: Failing to iterate over Simulator.managed_devices map
444         <rdar://problem/31274476>
445
446         Unreviewed infrastructure fix.
447
448         * Scripts/webkitpy/port/ios_simulator.py:
449         (IOSSimulatorPort._create_devices): Iterate through managed_devices by worker number.
450
451 2017-03-27  Alex Christensen  <achristensen@webkit.org>
452
453         Make WebSockets work in network process
454         https://bugs.webkit.org/show_bug.cgi?id=169930
455
456         Reviewed by Youenn Fablet.
457
458         * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
459         Add terminateNetworkProcess for the new test
460         http/tests/websocket/tests/hybi/network-process-crash-error.html
461         * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
462         (WTR::TestRunner::setAllowsAnySSLCertificate):
463         (WTR::TestRunner::terminateNetworkProcess):
464         * WebKitTestRunner/InjectedBundle/TestRunner.h:
465         * WebKitTestRunner/TestController.cpp:
466         (WTR::TestController::setAllowsAnySSLCertificate):
467         (WTR::TestController::terminateNetworkProcess):
468         * WebKitTestRunner/TestController.h:
469         * WebKitTestRunner/TestInvocation.cpp:
470         (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
471         (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
472         * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
473         (WTR::TestController::platformContext):
474         * WebKitTestRunner/gtk/TestControllerGtk.cpp:
475         (WTR::TestController::platformContext):
476         (WTR::TestController::platformLibraryPathForTesting):
477         Add some infrastructure for http/tests/websocket/tests/hybi/simple-wss.html
478         which calls testRunner.setAllowsAnySSLCertificate.  It used to only be effective
479         for the WebProcess, but SocketStreamHandleImpl::createStreams is now in the NetworkProcess,
480         and we need its call to Settings::allowsAnySSLCertificate to be loosened for this test,
481         which tests that wss works, but our test certificate has an invalid certificate chain.
482         We want production software to not have the ability to have its security weakened, so this
483         is a test code path that is only implemented in WebKitTestRunner.
484
485 2017-03-25  Jonathan Bedard  <jbedard@apple.com>
486
487         webkitpy: Use generalized device instead of platform specific one
488         https://bugs.webkit.org/show_bug.cgi?id=170078
489
490         Reviewed by Daniel Bates.
491
492         SimulatedDevice is re-created each time 'xcrun simctl list' is called.  Device
493         should remain persistent.  Changing Device to a more explicit interface.
494         SimulatedDevice no longer inherits from Device and IOSSimulator returns Devices
495         wrapping SimulatedDevices.
496
497         * Scripts/webkitpy/port/device.py: Added.
498         (Device):
499         (Device.__init__): Construct with platform device.
500         (Device.install_app): Install app at app path on platform device.
501         (Device.launch_app): Launch app with bundle ID on platform device.
502         (Device.poll): Poll platform device.
503         (Device.udid): Access platform device UDID.
504         (Device.__nonzero__): Check if instantiated with a valid platform device.
505         (Device.__eq__): Compare by udid.
506         (Device.__ne__): Ditto.
507         (Device.__repr__): Print out platform_device representation.
508         * Scripts/webkitpy/port/ios_simulator.py:
509         (IOSSimulatorPort.__init__): Initialize the _device_map to an empty dictionary.
510         (IOSSimulatorPort._device_for_worker_number_map):  Return self._device_map.
511         (IOSSimulatorPort._create_simulators): Call Simulator.managed_devices directly.
512         (IOSSimulatorPort._create_devices): Place Simulator.managed_devices into the
513         device map.
514         (IOSSimulatorPort._quit_ios_simulator): Reset self._device_map.
515         * Scripts/webkitpy/xcode/device.py: Removed.
516         * Scripts/webkitpy/xcode/simulated_device.py:
517         (SimulatedDevice):
518         (SimulatedDevice.__init__): Move host, name and did to SimulatedDevice.
519         (SimulatedDevice.__eq__): Compare two simulated devices.
520         (SimulatedDevice.__ne__): Ditto.
521         (SimulatedDevice.__repr__): Print name and udid.
522
523 2017-03-25  Adrian Perez de Castro  <aperez@igalia.com>
524
525         [GTK] No value returned from PrintCustomWidgetTest::createWebKitPrintOperation() in TestPrinting.cpp
526         https://bugs.webkit.org/show_bug.cgi?id=170059
527
528         Reviewed by Carlos Garcia Campos.
529
530         * TestWebKitAPI/Tests/WebKit2Gtk/TestPrinting.cpp: Use "void" as return type in the declaration,
531         the only use of the method in this same file ignores the returned value anyway.
532
533 2017-03-24  Srinivasan Vijayaraghavan  <svijayaraghavan@apple.com>
534
535         webkitpy should be able to run API tests
536         https://bugs.webkit.org/show_bug.cgi?id=170028
537
538         Reviewed by Alexey Proskuryakov.
539
540         * Scripts/webkitpy/common/config/ports.py:
541         (DeprecatedPort.run_api_tests_command): Added.
542         * Scripts/webkitpy/port/base.py:
543         (Port.api_results_directory): Added.
544         * Scripts/webkitpy/tool/steps/runtests.py:
545         (RunTests.run): Check if we should be running API tests.
546         (RunTests._run_api_tests): Generate script to run API tests with json output.
547         * Scripts/webkitpy/tool/steps/steps_unittest.py: Unit tests.
548
549 2017-03-24  Srinivasan Vijayaraghavan  <svijayaraghavan@apple.com>
550
551         Add JSON results for API tests
552         https://bugs.webkit.org/show_bug.cgi?id=170021
553
554         Reviewed by Alexey Proskuryakov.
555
556         * Scripts/run-api-tests:
557         (runTestsBySuite): Appends failures and timeouts to JSON data.
558         (writeJsonDataIfApplicable): Writes JSON data to a file.
559
560 2017-03-24  Lucas Forschler  <lforschler@apple.com>
561
562         update committer_auth.py to be python 2.7 compliant
563         https://bugs.webkit.org/show_bug.cgi?id=170063
564         
565         Reviewed by Alexey Proskuryakov.
566
567         * BuildSlaveSupport/build.webkit.org-config/committer_auth.py:
568         (CommitterAuth.authenticate):
569             convert e.message to e.args[0]
570
571 2017-03-24  Srinivasan Vijayaraghavan  <svijayaraghavan@apple.com>
572
573         webkitpy: Parse JSON results from run-api-tests
574         https://bugs.webkit.org/show_bug.cgi?id=170062
575
576         Reviewed by Alexey Proskuryakov.
577
578         * Scripts/webkitpy/common/net/apitestresults.py: Added.
579         (APITestResults): Structure to represent API test results.
580         (APITestResults.__init__):
581         (APITestResults.intersection): Return the failures common to both sets of results.
582         (APITestResults.results_from_string): Create an APITestResults object from a JSON results string.
583         (APITestResults.equals): Return True if both results were the same.
584         (APITestResults.is_subset): Return True if failing tests are a subset of the other failing tests.
585         (APITestResults.all_passed): Return True if everything passed.
586         (APITestResults.failing_tests): List of tests that didn't pass.
587         (APITestResults.did_exceed_test_failure_limit): Always False.
588         * Scripts/webkitpy/common/net/apitestresults_unittest.py: Added.
589         (APITestResultsTest): Unit tests.
590         * Scripts/webkitpy/tool/bot/apitestresultsreader.py: Added.
591         (APITestResultsReader): Read contents of JSON results file.
592
593 2017-03-24  Alex Christensen  <achristensen@webkit.org>
594
595         REGRESSION: Content Blocker: Blocking "a[href*=randomString]" doesn't work
596         https://bugs.webkit.org/show_bug.cgi?id=169167
597
598         Reviewed by Simon Fraser.
599
600         * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
601         (TestWebKitAPI::TEST_F):
602         Test an example of a selector that was incorrectly determined to be invalid.
603
604 2017-03-24  Jonathan Bedard  <jbedard@apple.com>
605
606         Increase timeout for booting simulators.
607         <rdar://problem/31080009>
608
609         Unreviewed infrastructure fix.
610
611         * Scripts/webkitpy/xcode/simulator.py:
612         (Simulator.wait_until_device_is_booted): Increase timeout.
613         (Simulator.wait_until_device_is_in_state): Increase timeout.
614
615 2017-03-24  Carlos Garcia Campos  <cgarcia@igalia.com>
616
617         Unreviewed. Fix GTK+ test /webkit2/WebKitWebView/javascript-dialogs after r214277.
618
619         Since r214277 beforeunload events are not fired unless there's some user interaction, so we need to simulate it
620         in our unit tests to work.
621
622         * TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:
623         (testWebViewJavaScriptDialogs):
624
625 2017-03-24  Carlos Garcia Campos  <cgarcia@igalia.com>
626
627         [GTK] Add MIMETypeRegistry implementation using xdgmime and remove the GTK+ one
628         https://bugs.webkit.org/show_bug.cgi?id=170001
629
630         Reviewed by Michael Catanzaro.
631
632         Ignore style of xdgmime sources.
633
634         * Scripts/webkitpy/tool/steps/checkstyle.py:
635
636 2017-03-23  Wenson Hsieh  <wenson_hsieh@apple.com>
637
638         Dragging on a large image should not revert to a file icon if data interaction is enabled
639         https://bugs.webkit.org/show_bug.cgi?id=170018
640         <rdar://problem/31184508>
641
642         Reviewed by Tim Horton.
643
644         Add new tests for data interaction. LargeImageToTargetDiv verifies the change made in this patch, while
645         AttachmentElementItemProviders was a test that was previously removed due to <rdar://problem/31038797>.
646
647         * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
648         * TestWebKitAPI/Tests/WebKit2Cocoa/large-red-square.png: Added.
649         * TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
650         (TestWebKitAPI::TEST):
651
652 2017-03-23  Fujii Hironori  <Hironori.Fujii@sony.com>
653
654         Update WinCairoRequirements.zip
655         https://bugs.webkit.org/show_bug.cgi?id=169950
656
657         Reviewed by Alex Christensen.
658
659         * Scripts/update-webkit-wincairo-libs: Replace $winCairoLibsURL.
660
661 == Rolled over to ChangeLog-2017-03-23 ==