2017-12-28 Fujii Hironori [Win][CMake] Use add_custom_command to copy each forwarding header files https://bugs.webkit.org/show_bug.cgi?id=180921 Reviewed by Brent Fulgham. TestWTFLib needs forwarding headers of WebCore. Use add_dependencies instead of invoking the DerivedSources/WebCore/preBuild.cmd. * TestWebKitAPI/PlatformWin.cmake: 2017-12-22 Wenson Hsieh Unreviewed, try to fix the Sierra build again after r226277. The macOS 10.12 SDK does not know about NSControlStateValue. Apply the same tweak in r226279, but to MiniBrowser this time. * MiniBrowser/AppKitCompatibilityDeclarations.h: 2017-12-22 Wenson Hsieh Fix build failures due to using deprecated AppKit symbols https://bugs.webkit.org/show_bug.cgi?id=181110 Reviewed by Dan Bernstein and Tim Horton. Transition to non-deprecated AppKit constants in MiniBrowser. * MiniBrowser/AppKitCompatibilityDeclarations.h: Added. * MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: * MiniBrowser/mac/SettingsController.m: (-[SettingsController validateMenuItem:]): * MiniBrowser/mac/WK1BrowserWindowController.m: (-[WK1BrowserWindowController validateMenuItem:]): * MiniBrowser/mac/WK2BrowserWindowController.m: (-[WK2BrowserWindowController validateMenuItem:]): 2017-12-21 Michael Catanzaro [WPE][GTK] Deprecate and replace webkit_form_submission_request_get_text_fields https://bugs.webkit.org/show_bug.cgi?id=176725 Reviewed by Carlos Garcia Campos. Test the new function. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: (testWebViewSubmitForm): 2017-12-22 Jonathan Bedard webkitpy: Refactor simulator code (Part 1) https://bugs.webkit.org/show_bug.cgi?id=180555 Reviewed by Alexey Proskuryakov. The new SimulatedDeviceManager defined in this patch is designed to act as a singleton. Consumers may request devices with certain attributes, the the manager will then return a list of devices fulfilling the request. The manager will pick between: - Existing and booted simulators - Existing simulators currently shut down - Custom constructed simulators These simulators will then be globally available. This patch duplicates code in webkitpy/xcode/simulated_device.py, webkitpy/xcode/simulator.py and webkitpy/port/ios_simulator.py. This duplicated code will be removed in parts 2 and 3. * Scripts/webkitpy/common/version_name_map.py: (VersionNameMap.__init__): Add tvOS and watchOS. * Scripts/webkitpy/xcode/device_type.py: Added. (DeviceType): Holds the software and hardware information for a specific device. Designed to allow for partial matching. (DeviceType.from_string): Parses a string (such as iPhone 6s) into a DeviceType object. (DeviceType._define_software_variant_from_hardware_family): The software_variant of a device can usually be implied from its hardware_family. (DeviceType.check_consistency): Verify that the software_variant matches the hardware_family and that software_version and hardware_variant have their respective prerequisites. (DeviceType.__init__): (DeviceType.__str__): Converts a DeviceType object into a human readable string. (DeviceType.__eq__): Compares two DeviceType objects treating None as a wildcard. (DeviceType.__contains__): Allow partial version mapping. * Scripts/webkitpy/xcode/device_type_unittest.py: Added. (DeviceTypeTest): (DeviceTypeTest.test_iphone_initialization): (DeviceTypeTest.test_ipad_initialization): (DeviceTypeTest.test_generic_ios_device): (DeviceTypeTest.test_watch_initialization): (DeviceTypeTest.test_tv_initialization): (DeviceTypeTest.test_from_string): (DeviceTypeTest.test_comparison): (DeviceTypeTest.test_contained_in): * Scripts/webkitpy/xcode/new_simulated_device.py: Added. (DeviceRequest): Adds additional options to be used when requesting a device. (DeviceRequest.__init__): (SimulatedDeviceManager): (SimulatedDeviceManager.Runtime): Representation of a supported simulated runtime. Designed as an internal representation, not to be used outside this class. (SimulatedDeviceManager.Runtime.__init__): (SimulatedDeviceManager._create_runtimes): Extract a list of available runtimes. (SimulatedDeviceManager._create_device_with_runtime): Return a new or existing device with the provided runtime matching the provided dictionary. (SimulatedDeviceManager.populate_available_devices): Use simctl to update the list of devices available on this machine. (SimulatedDeviceManager.available_devices): Populate the list of available device if empty and return that list. (SimulatedDeviceManager._find_exisiting_device_for_request): Return an existing device matching the provided request if one exists. (SimulatedDeviceManager._find_available_name): Given a name base, return a string which does not match the name of an initialized device. (SimulatedDeviceManager. get_runtime_for_device_type): Map device type to runtime object. (SimulatedDeviceManager._disambiguate_device_type): The user may have requested a DeviceType with only partial definitions. In this case, use existing runtimes and devices to generate a DeviceType to build. (SimulatedDeviceManager._get_device_identifier_for_type): Return a simctl device type string given a DeviceType object. (SimulatedDeviceManager._create_or_find_device_for_request): Given a DeviceRequest object, either find an existing device which matches the request or create one matching (SimulatedDeviceManager._does_fulfill_request): Given a device and list of requests, return the request which the provided device matches, if there are any. (SimulatedDeviceManager._wait_until_device_in_state): Wait until a device enters a specific state. (SimulatedDeviceManager.initialize_devices): Given a list of requests, return a list of devices which fulfill the requests. This function will use both existing devices and create devices. This function will also start the Simulator.app. (SimulatedDeviceManager.max_supported_simulators): Uses the number of available cores, maximum number of processes and the available RAM to calculate the number of simulated devices this machine can support. (SimulatorManager.swap): Shuts down the specified device and boots a new one which matches the specified request. (SimulatorManager.tear_down): Shut down any simulators managed by this class. (SimulatedDevice): (SimulatedDevice.DeviceState): Copied from webkitpy/xcode/simulator.py. (SimulatedDevice.__init__): (SimulatedDevice.state): Use the device's plist to determine the current state of the device. Note that this function will cache the result for a second. (SimulatedDevice.is_booted_or_booting): (SimulatedDevice._shut_down): Shut down this device and remove it from the list of initialized devices. (SimulatedDevice._delete): Delete this device and remove it from the list of available devices. (SimulatedDevice._tear_down): Shut down and delete this device, if it is managed by the SimulatorManager. (SimulatedDevice.install_app): Copied from webkitpy/xcode/simulated_device.py. (SimulatedDevice.launch_app): Ditto. (SimulatedDevice.__eq__): Ditto. (SimulatedDevice.__ne__): Ditto. (SimulatedDevice.__repr__): Map state to string and include device type. * Scripts/webkitpy/xcode/new_simulated_device_unittest.py: Added. (SimulatedDeviceTest): (SimulatedDeviceTest.reset_simulated_device_manager): (SimulatedDeviceTest.tear_down): (SimulatedDeviceTest.mock_host_for_simctl): (device_by_criteria): (test_available_devices): (test_existing_simulator): (change_state_to): (test_swapping_devices): 2017-12-21 Ling Ho "Release 32-bit Build EWS" queue should be moved up to macOS High Sierra on Bot Watcher's Dashboard https://bugs.webkit.org/show_bug.cgi?id=181071 Reviewed by Alexey Proskuryakov. 2017-12-21 Mark Lam Add WTF::PoisonedUniquePtr to replace std::unique_ptr when poisoning is desired. https://bugs.webkit.org/show_bug.cgi?id=181062 Reviewed by Chris Dumez. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp: - Removed an unneeded #include. * TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp: Added. (TestWebKitAPI::TEST): (TestWebKitAPI::poisonedPtrFoo): * TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp: Added. (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp: Added. (TestWebKitAPI::TEST): 2017-12-21 Jeremy Jones Update FULLSCREEN_API feature defines. https://bugs.webkit.org/show_bug.cgi?id=181015 Reviewed by Tim Horton. Change enabled iphone sdk for FULLSCREEN_API. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-12-21 Don Olmstead [AppleWin] Auxiliary libraries should be updated within build-webkit https://bugs.webkit.org/show_bug.cgi?id=181065 Reviewed by Alex Christensen. * EWSTools/Start-Queue.ps1: * Scripts/build-webkit: (cMakeArgsFromFeatures): Deleted. (writeCongrats): Deleted. * Scripts/update-webkit: 2017-12-21 Jer Noble Add initial DOM support for Media Capabilities https://bugs.webkit.org/show_bug.cgi?id=181064 Reviewed by Eric Carlson. * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-12-21 Guillaume Emont build-jsc: allow to build out of tree https://bugs.webkit.org/show_bug.cgi?id=180810 Reviewed by Carlos Alberto Lopez Perez. * Scripts/build-jsc: 2017-12-20 Jonathan Bedard webkitpy: simctl cannot handle partial runtime version matches https://bugs.webkit.org/show_bug.cgi?id=181055 Reviewed by Alexey Proskuryakov. A request for a simulator runtime of iOS 11 should be fulfilled by iOS 11.0.1. * Scripts/webkitpy/xcode/simulator.py: (Simulator.runtime): Allow for partial matching of iOS runtime versions. * Scripts/webkitpy/xcode/simulator_unittest.py: (test_failed_partial_version_match): Test that partial version mapping does not give false positives. 2017-12-20 Daniel Bates MarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEffectiveRange} are failing https://bugs.webkit.org/show_bug.cgi?id=181014 Reviewed by Simon Fraser. Adds a new test to ensure we compute overlapping subranges in paint order for the default overlap strategy. Enable tests MarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEffectiveRange} now that they pass. * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: (TestWebKitAPI::TEST): 2017-12-20 Daniel Bates Remove Alternative Presentation Button https://bugs.webkit.org/show_bug.cgi?id=180500 Reviewed by Simon Fraser. We no longer need the alternative presentation button. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/ClickAlternativePresentationButton.mm: Removed. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST): (-[AlternativePresentationButtonDelegate _webView:didClickAlternativePresentationButtonWithUserInfo:]): Deleted. (-[AlternativePresentationButtonDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Deleted. 2017-12-20 Ryosuke Niwa REGRESSION(r222699): Drag & drop from a web page to Gmail fails https://bugs.webkit.org/show_bug.cgi?id=181019 Reviewed by Wenson Hsieh. Added assertions for filenames. * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: 2017-12-19 Daniel Bates MarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEffectiveRange} are failing https://bugs.webkit.org/show_bug.cgi?id=181014 Temporarily disable tests while I investigate offline. * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: (TestWebKitAPI::TEST): 2017-12-19 Wenson Hsieh Unreviewed, rebaseline an API test result for El Capitan and Sierra. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (TestWebKitAPI::TEST): 2017-12-19 Ryosuke Niwa Don't convert pasted content to use blob URL in WebKit1 https://bugs.webkit.org/show_bug.cgi?id=180969 Reviewed by Wenson Hsieh. Added API tests to make sure we can access the images in the pasted content. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html: * TestWebKitAPI/Tests/WebKitLegacy/mac: Added. * TestWebKitAPI/Tests/WebKitLegacy/mac/AccessingPastedImage.mm: Added. (writeRTFDToPasteboard): (-[SubresourceForBlobURLFrameLoadDelegate webView:didFinishLoadForFrame:]): (-[SubresourceForBlobURLFrameLoadDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]): (TestWebKitAPI::TEST): 2017-12-19 Daniel Bates Implement InlineTextBox painting using marker subranges https://bugs.webkit.org/show_bug.cgi?id=180984 Reviewed by David Hyatt. Update unit tests now that we use subranges for the painting of dragged content. * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: (WebCore::operator<<): (WebCore::operator==): Deleted; moved to class MarkerSubrange. 2017-12-19 Daniel Bates Add support for computing the frontmost longest effective marker subrange https://bugs.webkit.org/show_bug.cgi?id=180985 Reviewed by Dave Hyatt. Adds a test case to ensure that we compute the minimum list of maximal length non- overlapping subranges when using strategy OverlapStrategy::FrontmostWithLongestEffectiveRange. * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: (TestWebKitAPI::TEST): 2017-12-18 Wenson Hsieh [Attachment Support] The 'webkitattachmentbloburl' attribute should not persist after markup serialization https://bugs.webkit.org/show_bug.cgi?id=180924 Reviewed by Tim Horton. Tweaks some existing tests to check that temporary attachment serialization attributes don't stick around on the attachment elements. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (-[TestWKWebView hasAttribute:forQuerySelector:]): (TestWebKitAPI::TEST): 2017-12-18 Wenson Hsieh [Attachment Support] Support representing pasted or dropped content using attachment elements https://bugs.webkit.org/show_bug.cgi?id=180892 Reviewed by Tim Horton. Adds a new API test to exercise pasting an attributed string with multiple attachments of different types. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (testZIPData): (platformCopyRichTextWithMultipleAttachments): (TestWebKitAPI::TEST): 2017-12-18 Brady Eidson Add ability to API test Service Workers via a custom protocol. https://bugs.webkit.org/show_bug.cgi?id=180911 Reviewed by Chris Dumez. Adds a very basic SW test: - Verify WebsiteDataStore can wipe all SW registration data. - Fire up a web page with a service worker - Verify SW registration data for that page exists in the WebsiteDataStore. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: Added. 2017-12-18 Wenson Hsieh [Attachment Support] Insert images as inline attachments when pasting and dropping https://bugs.webkit.org/show_bug.cgi?id=180853 Reviewed by Tim Horton. Adds new WKAttachment API tests and test support. See comments below for more detail. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: Tweak the editing test page markup, such that document.body.innerHTML doesn't additionally contain the contents of the script tag. (webViewForTestingAttachments): (testImageFileURL): (testImageData): (testPDFFileURL): (testPDFData): (platformCopyRichTextWithAttachment): (platformCopyPNG): (platformImageWithData): Add some platform helper functions, which some of the platform-agnostic tests below use to resolve differences between iOS and macOS when writing to the pasteboard and creating an image from data. (TestWebKitAPI::TEST): Add new API tests to exercise drag and drop/copy and paste of rich content (namely, images and files) on iOS and macOS. iOS attachment tests use DataInteractionSimulator to simulate UIKit drag and drop coordination. On macOS, handling of dropped content is much closer to handling of pasted content (they use the same codepaths to read from the platform pasteboard), so exercising paste codepaths on Mac is sufficient. * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator _resetSimulatedState]): (-[DataInteractionSimulator insertedAttachments]): (-[DataInteractionSimulator removedAttachments]): Teach the iOS drag and drop simulator to keep track of attachment elements that are inserted during a drop. We also keep track of removed attachments here too, though no default drop handling scenario should trigger attachment removal, so we simply use this to check that no _WKAttachments were removed during a drop. (-[DataInteractionSimulator _webView:didInsertAttachment:]): (-[DataInteractionSimulator _webView:didRemoveAttachment:]): 2017-12-18 Fujii Hironori [WinCairo] Move the destination of WinCairoRequirements.zip into WebKitLibraries and register it and related files as git ignore files. https://bugs.webkit.org/show_bug.cgi?id=180875 Reviewed by Darin Adler. update-webkit-wincairo-libs.py gets broken by r226002. Downloaded WinCairoRequirements.zip can not be found to unzip because the destination was changed. * Scripts/update-webkit-wincairo-libs.py: Specify the correct zip path to unzip. 2017-12-18 Alexey Proskuryakov BitVector::OutOfLineBits is always reported as a leak https://bugs.webkit.org/show_bug.cgi?id=121662 Adding one more signature to ignore list. * Scripts/webkitpy/port/leakdetector.py: (LeakDetector._callstacks_to_exclude_from_leaks): 2017-12-18 Carlos Garcia Campos [GTK][WPE] Add WebKitWebView::web-process-terminated signal and deprecate web-process-crashed https://bugs.webkit.org/show_bug.cgi?id=180862 Reviewed by Michael Catanzaro. Use WebKitWebView::web-process-terminated instead of web-process-crashed in tests. I'm not adding a test for WEBKIT_WEB_PROCESS_EXCEEDED_MEMORY_LIMIT because we would need to allocate more than 1GB in the test and wait 30 seconds, and we don't want to do either in unit tests. * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: (webProcessTerminatedCallback): (testWebKitWebViewProcessCrashed): (webProcessCrashedCallback): Deleted. * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: (WebViewTest::initializeWebView): (WebViewTest::webProcessTerminated): (WebViewTest::webProcessCrashed): Deleted. * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: 2017-12-17 Mark Lam Enhance Ref and RefPtr to be able to work with smart pointers. https://bugs.webkit.org/show_bug.cgi?id=180762 Reviewed by JF Bastien and Darin Adler. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/Poisoned.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/PoisonedRef.cpp: Added. (TestWebKitAPI::TEST): (TestWebKitAPI::passWithRef): (TestWebKitAPI::PoisonedRefCheckingRefLogger::PoisonedRefCheckingRefLogger): (TestWebKitAPI::PoisonedRefCheckingRefLogger::ref): (TestWebKitAPI::PoisonedRefCheckingRefLogger::deref): (TestWebKitAPI::DerivedPoisonedRefCheckingRefLogger::DerivedPoisonedRefCheckingRefLogger): * TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp: Added. (TestWebKitAPI::TEST): (TestWebKitAPI::f1): (TestWebKitAPI::ConstRefCounted::create): (TestWebKitAPI::returnConstRefCountedRef): (TestWebKitAPI::returnRefCountedRef): (TestWebKitAPI::PoisonedRefPtrCheckingRefLogger::PoisonedRefPtrCheckingRefLogger): (TestWebKitAPI::loggerName): (TestWebKitAPI::PoisonedRefPtrCheckingRefLogger::ref): (TestWebKitAPI::PoisonedRefPtrCheckingRefLogger::deref): 2017-12-16 Youenn Fablet Add a script to automate W3c web-platform-tests pull request creations from WebKit commits https://bugs.webkit.org/show_bug.cgi?id=169462 Reviewed by Darin Adler. Adding some git helper routines used by WPT exporter. Copying WPT github utility files from Chromium. Updating web.py/web_mock.py to cope with these new files. Implementing test exporter in test_exporter.py. This script takes a WebKit commit as input and will create a WPT commit in a local WPT clone. It will then push the commit to a public GitHub repository identified by a username parameter. This parameter is passed through the command line or searched through git config/environment variables. The script can optionally create a pull request to the official WPT GitHub repository. User must provide a GitHub token to allow the script to make the PR on behalf of the user. In that case, a comment is added to the corresponding bugzilla if a bug ID is given or can be found from the change log, to easily link the pull request with the bugzilla bug. * Scripts/export-w3c-test-changes: Added. * Scripts/webkitpy/common/checkout/scm/git.py: (Git.reset_hard): (Git): (Git.am): (Git.commit): (Git.format_patch): (Git.request_pull): (Git.remote): (Git.push): (Git.checkout_new_branch): * Scripts/webkitpy/common/net/web.py: (Web.request): Copied from Chromium. * Scripts/webkitpy/common/net/web_mock.py: Copied needed code from Chromium. * Scripts/webkitpy/w3c/test_exporter.py: Added. (TestExporter): (TestExporter.__init__): (TestExporter._init_repository): (TestExporter.download_and_commit_patch): (TestExporter.clean): (TestExporter.create_branch_with_patch): (TestExporter.push_to_public_repository): (TestExporter.make_pull_request): (TestExporter.delete_local_branch): (TestExporter.create_git_patch): (TestExporter.create_upload_remote_if_needed): (TestExporter.do_export): (parse_args): (configure_logging): (configure_logging.LogHandler): (configure_logging.LogHandler.format): (main): * Scripts/webkitpy/w3c/test_exporter_unittest.py: Added. (TestExporterTest): (TestExporterTest.MockBugzilla): (TestExporterTest.MockBugzilla.__init__): (TestExporterTest.MockBugzilla.fetch_bug_dictionary): (TestExporterTest.MockBugzilla.post_comment_to_bug): (TestExporterTest.MockGit): (TestExporterTest.MockGit.clone): (TestExporterTest.MockGit.__init__): (TestExporterTest.MockGit.fetch): (TestExporterTest.MockGit.checkout): (TestExporterTest.MockGit.reset_hard): (TestExporterTest.MockGit.push): (TestExporterTest.MockGit.format_patch): (TestExporterTest.MockGit.delete_branch): (TestExporterTest.MockGit.checkout_new_branch): (TestExporterTest.MockGit.am): (TestExporterTest.MockGit.commit): (TestExporterTest.MockGit.remote): (TestExporterTest.test_export): * Scripts/webkitpy/w3c/common.py: Copied from chromium. * Scripts/webkitpy/w3c/wpt_github.py: Copied from chromium. * Scripts/webkitpy/w3c/wpt_github_mock.py: Copied from chromium. * Scripts/webkitpy/w3c/wpt_github_unittest.py: Copied from chromium. 2017-12-16 Dan Bernstein WKWebView has no equivalent of -[WebView setAlwaysShowVerticalScroller:] https://bugs.webkit.org/show_bug.cgi?id=180613 Reviewed by Geoff Garen. * MiniBrowser/mac/MainMenu.xib: Added Always Show {Horizontal,Vertical} Scroller menu items to the View menu. * MiniBrowser/mac/WK1BrowserWindowController.m: (-[WK1BrowserWindowController validateMenuItem:]): Set the state of the new menu items based on -alwaysShow{Horizontal,Vertical}Scroller. (-[WK1BrowserWindowController toggleAlwaysShowsHorizontalScroller:]): Toggle the value. (-[WK1BrowserWindowController toggleAlwaysShowsVerticalScroller:]): Ditto. * MiniBrowser/mac/WK2BrowserWindowController.m: (-[WK2BrowserWindowController validateMenuItem:]): Set the state of the new menu items based on the new property. (-[WK2BrowserWindowController toggleAlwaysShowsHorizontalScroller:]): Toggle the property. (-[WK2BrowserWindowController toggleAlwaysShowsVerticalScroller:]): Ditto. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewAlwaysShowsScroller.mm: Added. (TEST): 2017-12-16 Basuke Suzuki [WinCairo] Move the destination of WinCairoRequirements.zip into WebKitLibraries and register it and related files as git ignore files. https://bugs.webkit.org/show_bug.cgi?id=180875 Reviewed by Alex Christensen. Bug fix. Specify the download destination correctly. * Scripts/update-webkit-wincairo-libs.py: 2017-12-16 Brent Fulgham Plugin processes are repeatedly spun up to do nothing https://bugs.webkit.org/show_bug.cgi?id=180885 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm: (runTestWithWebsiteDataStore): Check that deleting website data did not trigger any plugin processes to start up. 2017-12-16 Yusuke Suzuki Remove unnecessary boolean result of start() functions https://bugs.webkit.org/show_bug.cgi?id=180856 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/ParkingLot.cpp: 2017-12-15 David Quesada Unreviewed, adding myself to contributors.json * Scripts/webkitpy/common/config/contributors.json: 2017-12-15 Ryan Haddad Unreviewed, rolling out r225941. This change introduced LayoutTest crashes and assertion failures. Reverted changeset: "Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic" https://bugs.webkit.org/show_bug.cgi?id=180770 https://trac.webkit.org/changeset/225941 2017-12-15 Alex Christensen Introduce SPI _WKWebsitePolicies.websiteDataStore https://bugs.webkit.org/show_bug.cgi?id=180880 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm: (-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): (-[WebsitePoliciesWebsiteDataStoreDelegate webView:startURLSchemeTask:]): (-[WebsitePoliciesWebsiteDataStoreDelegate webView:stopURLSchemeTask:]): (TEST): 2017-12-15 Nael Ouedraogo [GTK] Add proxy option to Minibrowser https://bugs.webkit.org/show_bug.cgi?id=180750 Reviewed by Michael Catanzaro. Add command line option to set proxy settings in GTK minibrowser. * MiniBrowser/gtk/main.c: (main): 2017-12-14 Basuke Suzuki [webkitpy, Windows] Remove unnecessary debug message https://bugs.webkit.org/show_bug.cgi?id=180844 Reviewed by Ryosuke Niwa. * Scripts/webkitpy/common/system/crashlogs.py: (CrashLogs._find_newest_log_win): Delete debug print 2017-12-14 David Kilzer check-webkit-style: Stop warning about underscores in webrtc source Reviewed by Joseph Pecoraro. * Scripts/webkitpy/style/checker.py: (_PATH_RULES_SPECIFIER): Suppress readability/naming/underscores warnings under Source/ThirdParty/libwebrtc/Source/webrtc. 2017-12-14 Jonathan Bedard webkitpy: Replace Version.contained_in with Version.__contains__ https://bugs.webkit.org/show_bug.cgi?id=180772 Reviewed by David Kilzer. Using __contains__ instead of contained_in allows for the more Pythonic 'in' operator to be used. * Scripts/webkitpy/common/version.py: (Version): (Version.__contains__): Replace contained_in. Note that self is now the container. (Version.contained_in): Deleted. * Scripts/webkitpy/common/version_name_map.py: (VersionNameMap.to_name): * Scripts/webkitpy/common/version_unittest.py: (VersionTestCase.test_contained_in): 2017-12-14 Ryan Haddad Unreviewed, rolling out r225931. Breaks internal builds. Reverted changeset: "Fix Mac CMake build" https://bugs.webkit.org/show_bug.cgi?id=180835 https://trac.webkit.org/changeset/225931 2017-12-14 Devin Rousso Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic https://bugs.webkit.org/show_bug.cgi?id=180770 Reviewed by Joseph Pecoraro. * Scripts/webkitpy/common/config/watchlist: 2017-12-14 Alexey Proskuryakov Improve leaks detector output https://bugs.webkit.org/show_bug.cgi?id=180828 Reviewed by Joseph Pecoraro. Fixing two issues: 1. run-leaks omits many lines from leaks tool output, making it incompatible with other tools. Notably, symbolication cannot be performed. 2. run-leaks output goes to "run-webkit-tests --debug-rwt-logging" output. This makes it much longer than needed, sometimes even overloading buildbot. We don't need full output in test log, as separate files are created for each of these. * Scripts/run-leaks: Represent each line in leaks output when parsing, and print everything except for explicitly excluded leaks. From my testing and reading the code, it looks like none of our tools should be broken by this change. * Scripts/webkitpy/port/leakdetector.py: I couldn't find a way to run a helper tool without dumping all of its output to debug log, so switched to using a file for leaks. * Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v1.0.pl: * Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v2.0-new.pl: * Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v2.0-old.pl: * Scripts/webkitpy/port/leakdetector_unittest.py: Updated tests for new behavior. 2017-12-14 Brady Eidson REGRESSION (r225789): API tests WKProcessPool.InitialWarmedProcessUsed and WebKit.WebsiteDataStoreCustomPaths are failing. https://bugs.webkit.org/show_bug.cgi?id=180722 Reviewed by Chris Dumez. * TestWebKitAPI/Tests/WebKitCocoa/InitialWarmedProcessUsed.mm: (TEST): 2017-12-14 Alex Christensen Fix Mac CMake build https://bugs.webkit.org/show_bug.cgi?id=180835 Reviewed by Andy Estes. * DumpRenderTree/mac/DumpRenderTree.mm: * MiniBrowser/mac/WK1BrowserWindowController.m: 2017-12-14 Jonathan Bedard webkitpy: Better name-version mapping (Follow-up fix) https://bugs.webkit.org/show_bug.cgi?id=179621 Unreviewed infrastructure fix. r225856 caused some undesired logging on Linux and Windows. * Scripts/webkitpy/port/mac.py: (MacPort.__init__): Use most recent OS release if not on a Mac. (MacPort.default_baseline_search_path): Make platform explicit. (MacPort.configuration_specifier_macros): Ditto. 2017-12-14 Carlos Garcia Campos WebDriver: add a common way to run tests with pytest https://bugs.webkit.org/show_bug.cgi?id=180800 Reviewed by Carlos Alberto Lopez Perez. We currently use pytestrunner from wpt for w3c tests and our own code for selenium tests. Using the same code for both would simplify everything, but also allows us to have a custom results recorder to support other test expectations like TIMEOUT. The code to run selenium tests with pytest has been moved to a new file pytest_runner.py and made generic to be used also for w3c tests. * Scripts/webkitpy/webdriver_tests/pytest_runner.py: Added. (TemporaryDirectory): (TemporaryDirectory.__enter__): (TemporaryDirectory.__exit__): (CollectRecorder): (CollectRecorder.__init__): (CollectRecorder.pytest_collectreport): (HarnessResultRecorder): (HarnessResultRecorder.__init__): (HarnessResultRecorder.pytest_collectreport): (SubtestResultRecorder): (SubtestResultRecorder.__init__): (SubtestResultRecorder.pytest_runtest_logreport): (SubtestResultRecorder._was_timeout): (SubtestResultRecorder.record_pass): (SubtestResultRecorder.record_fail): (SubtestResultRecorder.record_error): (SubtestResultRecorder.record_skip): (SubtestResultRecorder.record): (collect): (run): * Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py: (do_delayed_imports): Import pytest_runner here to avoid cycles. (WebDriverSeleniumExecutor.__init__): Save the driver parameter as args member and call do_delayed_imports() if needed. (WebDriverSeleniumExecutor.collect): Use pytest_runner. (WebDriverSeleniumExecutor.run): Ditto. * Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py: (WebDriverTestRunner.print_results): Handle all possible tests results. (WebDriverTestRunner.print_results.report): Helper to dump test results. * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py: (WebDriverTestRunnerSelenium.run): * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py: (WebDriverTestRunnerW3C.__init__): Do not set PYTEST_TIMEOUT env var. (WebDriverTestRunnerW3C._is_test): Fix check for support files. (WebDriverTestRunnerW3C.run): Pass the timeout as parameter to WebDriverW3CExecutor.run(). * Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: (do_delayed_imports): Import pytest_runner here to avoid cycles. (WebDriverW3CExecutor.__init__): Call do_delayed_imports() if needed. (WebDriverW3CExecutor.run): Use pytest_runner. 2017-12-13 Matt Lewis Unreviewed, rolling out r225864. This caused the Layout test step to crash out on Debug testers Reverted changeset: "REGRESSION (r225789): API tests WKProcessPool.InitialWarmedProcessUsed and WebKit.WebsiteDataStoreCustomPaths are failing." https://bugs.webkit.org/show_bug.cgi?id=180722 https://trac.webkit.org/changeset/225864 2017-12-13 Youenn Fablet Update ContentFiltering.LazilyLoadPlatformFrameworks test to account for libwebrtc using VideoProcessing framework https://bugs.webkit.org/show_bug.cgi?id=180713 Reviewed by Andy Estes. Reenable the check for non High Sierra builds. * TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm: (-[LazilyLoadPlatformFrameworksController expectParentalControlsLoaded:networkExtensionLoaded:]): 2017-12-13 Brady Eidson REGRESSION (r225789): API tests WKProcessPool.InitialWarmedProcessUsed and WebKit.WebsiteDataStoreCustomPaths are failing. https://bugs.webkit.org/show_bug.cgi?id=180722 Reviewed by Chris Dumez. * TestWebKitAPI/Tests/WebKitCocoa/InitialWarmedProcessUsed.mm: (TEST): Call a new SPI to get the count of WebProcesses hosting WebPages. 2017-12-13 Mark Lam Fill out some Poisoned APIs, fix some bugs, and add some tests. https://bugs.webkit.org/show_bug.cgi?id=180724 Reviewed by JF Bastien. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp: Added. (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/Poisoned.cpp: Added. (TestWebKitAPI::initializeTestPoison): (TestWebKitAPI::TEST): 2017-12-13 Jonathan Bedard webkitpy: Better name-version mapping (Part 2) https://bugs.webkit.org/show_bug.cgi?id=179621 Reviewed by David Kilzer. Now that we have a central mapping of version numbers to version names, this mapping should be used to compute version names. This patch treats passes versions as objects, only mapping them to names when strings are needed. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo.__init__): Store os_version as a version object instead of a string. (PlatformInfo.os_version_name): Convert os_version to a string through the VersionNameMap. * Scripts/webkitpy/common/system/platforminfo_mock.py: (MockPlatformInfo.__init__): Store os_version as a version object. (MockPlatformInfo.os_version_name): Mirror PlatformInfo. * Scripts/webkitpy/common/system/platforminfo_unittest.py: (TestPlatformInfo.test_real_code): Only Mac and Windows have defined version objects. (TestPlatformInfo.test_os_version): Deleted, this behavior is now managed by VersionNameMap. * Scripts/webkitpy/common/version.py: (Version.__cmp__): Allow a version object to be compared with 'None'. * Scripts/webkitpy/common/version_name_map.py: (VersionNameMap.map): Check for the apple_additions VersionNameMap. (VersionNameMap.__init__): Add a wincairo mapping, the same as the win mapping. * Scripts/webkitpy/common/version_unittest.py: (VersionTestCase.test_compare_versions): Test comparing a version object to 'None'. * Scripts/webkitpy/layout_tests/models/test_configuration.py: (TestConfiguration.__init__): Strip formatting from version name. Note that this object still accepts a string because the version string implicitly contains the platform as well. * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: Win7 should be 7SP0 as it is in the VersionNameMap. * Scripts/webkitpy/port/apple.py: (ApplePort): Replace VERSION_FALLBACK_ORDER with a minimum and maximum version. This is required because it may be the case that scripts are aware of more versions than the port actually supports. (ApplePort.determine_full_port_name): Use the host operating system to compute the full port name. (ApplePort._allowed_versions): Return a list of valid port versions by iterating through the VersionNameMap. (ApplePort._generate_all_test_configurations): Compute a list of configurations by iterating through _allowed_versions and converting each version to a string. (ApplePort._apple_baseline_path): Return a layout test expectation directory inside apple_additions. (ApplePort._skipped_file_search_paths): Deleted. (ApplePort._allowed_port_names): Deleted. (ApplePort._future_port_name): Deleted. * Scripts/webkitpy/port/base.py: (Port.__init__): Replace _version string with _os_version object. (Port.version_name): Convert version object to string. (Port.test_configuration): Pass version string to TestConfiguration. (Port.version): Deleted. * Scripts/webkitpy/port/darwin_testcase.py: (DarwinTest.assert_name): Convert an os_version_string to a version object and construct a port. * Scripts/webkitpy/port/factory_unittest.py: (FactoryTest.test_mac): Replace version strings with version objects. (FactoryTest.test_win): Ditto. * Scripts/webkitpy/port/gtk.py: (GtkPort._generate_all_test_configurations): Replace _version with version_name(). * Scripts/webkitpy/port/ios.py: (IOSPort.version_name): Both Simulator and device share the same version-name convention. (IOSPort._generate_all_test_configurations): Replace _version with version_name(). (IOSPort.default_baseline_search_path): Use the internal mapping of version names to construct apple_additions expectations. (IOSPort._apple_additions_path): Deleted. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.ios_version): Return None if no version is defined. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest): (IOSDeviceTest.test_layout_test_searchpath_with_apple_additions): Conform with the new mock apple_additions. (IOSDeviceTest.make_port): Deleted. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort._create_devices): Use Version object over list of version strings. * Scripts/webkitpy/port/ios_simulator_unittest.py: (IOSSimulatorTest): (IOSSimulatorTest.make_port): Use iOS 11 as the default version for testing. (IOSSimulatorTest.test_layout_test_searchpath_with_apple_additions): Conform with the new mock apple_additions. * Scripts/webkitpy/port/ios_testcase.py: (IOSTest.make_port): Use iOS 11 as the default version for testing. * Scripts/webkitpy/port/mac.py: (MacPort): (MacPort.__init__): Use Version object for _os_version. (MacPort.default_baseline_search_path): Use the internal mapping of version names to construct apple_additions expectations. (MacPort.configuration_specifier_macros): Automatically construct macros based on VersionNameMap. (MacPort._apple_additions_path): Deleted. * Scripts/webkitpy/port/mac_unittest.py: (MacTest): Use Version object instead of version string. (MacTest.test_version): * Scripts/webkitpy/port/port_testcase.py: (bind_mock_apple_additions): Add a mock VersionNameMap to mock apple_additions. (bind_mock_apple_additions.MockAppleAdditions): (bind_mock_apple_additions.MockAppleAdditions.version_name_mapping): * Scripts/webkitpy/port/test.py: (TestPort): (TestPort.__init__): Use VersionNameMap to compute the correct Version from a port name. (TestPort.version_name): Mirror Port object. (TestPort.baseline_search_path): Replace win7 with 7sp0. (TestPort._all_systems): Ditto. (TestPort.configuration_specifier_macros): Ditto. * Scripts/webkitpy/port/win.py: (WinPort): (WinPort.__init__): Construct Version object from port name. (WinPort.default_baseline_search_path): Use the internal mapping of version names to construct apple_additions expectations. (WinCairoPort): (WinCairoPort.default_baseline_search_path): Use MIN/MAX instead of the VERSION_FALLBACK_ORDER. (WinCairoPort._future_port_name): Deleted. * Scripts/webkitpy/port/win_unittest.py: (WinPortTest.test_baseline_search_path): Add new Windows versions not previously included. (WinPortTest._assert_version): Handle expected_version as a Version object. (WinPortTest.test_versions): Pass Version objects instead of version strings. * Scripts/webkitpy/port/wpe.py: (WPEPort._generate_all_test_configurations): Replace _version with version_name(). * Scripts/webkitpy/tool/commands/queries_unittest.py: (PrintExpectationsTest.test_multiple): Replace win7 with 7sp0. (PrintBaselinesTest.test_multiple): Ditto. * Scripts/webkitpy/tool/commands/queues.py: (PatchProcessingQueue._new_port_name_from_old): Use os_version_name() instead of Version object. 2017-12-12 Daniel Bates [WK] Add modern WebKit SPI to set auto fill button type and query if the auto fill button is enabled https://bugs.webkit.org/show_bug.cgi?id=180686 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/WebKitCocoa/ClickAutoFillButton.mm: (-[ClickAutoFillButton webProcessPlugIn:didCreateBrowserContextController:]): 2017-12-12 Alex Christensen Fix possible out-of-bounds read in protocolIsInHTTPFamily https://bugs.webkit.org/show_bug.cgi?id=180688 Reviewed by Daniel Bates. * TestWebKitAPI/Tests/WebCore/URL.cpp: (TestWebKitAPI::TEST_F): 2017-12-12 JF Bastien makeString: support more integral types https://bugs.webkit.org/show_bug.cgi?id=180720 Reviewed by Sam Weinig. Test a few more types can be made string'd. * TestWebKitAPI/Tests/WTF/StringConcatenate.cpp: (TestWebKitAPI::TEST): 2017-12-12 Alicia Boya García Flakiness dashboard: Make GTK and WPE builds inherit expectations from WK2 https://bugs.webkit.org/show_bug.cgi?id=178782 Reviewed by Michael Catanzaro. * TestResultServer/static-dashboards/flakiness_dashboard.js: 2017-12-12 Jonathan Bedard MobileMiniBrowser using the wrong toolchain https://bugs.webkit.org/show_bug.cgi?id=180716 Reviewed by Tim Horton. Move Debug/Release configurations from xcodeproj into Base.xcconfig. * MobileMiniBrowser/Configurations/Base.xcconfig: * MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj: 2017-12-12 Youenn Fablet Update ContentFiltering.LazilyLoadPlatformFrameworks test to account for libwebrtc using VideoProcessing framework https://bugs.webkit.org/show_bug.cgi?id=180713 Reviewed by Andy Estes. Temporarily disabling a subcheck until we make the test more robust and/or libwebrtc weak linking VideoProcessing framework. * TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm: (-[LazilyLoadPlatformFrameworksController expectParentalControlsLoaded:networkExtensionLoaded:]): 2017-12-12 Caio Lima [ESNext][BigInt] Implement BigInt literals and JSBigInt https://bugs.webkit.org/show_bug.cgi?id=179000 Reviewed by Darin Adler and Yusuke Suzuki. * Scripts/run-jsc-stress-tests: 2017-12-12 Carlos Alberto Lopez Perez [GTK][WPE] Bump GStreamer version to 1.12 in jhbuild https://bugs.webkit.org/show_bug.cgi?id=171677 Reviewed by Carlos Garcia Campos. Bump gstreamer related modules and rebase patches still needed and not merged * gstreamer/jhbuild.modules: * gstreamer/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Removed. This was needed for OpenWebRTC. Not longer supported. * gstreamer/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Rebased. * gstreamer/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Rebased. * gstreamer/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Rebased. * gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch: Added a note about merge commit not still in 1.12.4. 2017-12-12 Yusuke Suzuki [WTF] Thread::create should have Thread::tryCreate https://bugs.webkit.org/show_bug.cgi?id=180333 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/Condition.cpp: * TestWebKitAPI/Tests/WTF/ParkingLot.cpp: * TestWebKitAPI/Tests/WTF/Signals.cpp: (TEST): * TestWebKitAPI/Tests/WTF/ThreadGroup.cpp: (TestWebKitAPI::testThreadGroup): (TestWebKitAPI::TEST): 2017-12-11 Basuke Suzuki [WinCairo] Enable running sharded tests https://bugs.webkit.org/show_bug.cgi?id=180660 Reviewed by Alex Christensen. The sharder splits the test inputs into groups of test based on the directory, but separation of base name and directory name was wrong because of this bug. Once sharded correctly, the execution of layout test on native Windows environment is in parallel and much less time to run. * Scripts/webkitpy/port/win.py: (WinCairoPort): 2017-12-11 Fujii Hironori [WinCairo] DLLLauncherMain should use SetDllDirectory https://bugs.webkit.org/show_bug.cgi?id=180642 Reviewed by Alex Christensen. Windows have icuuc.dll in the system directory. WebKit should find one in WebKitLibraries directory, not one in the system directory. * win/DLLLauncher/DLLLauncherMain.cpp: (modifyPath): Use SetDllDirectory for WebKitLibraries directory instead of modifying path. Do not add a path for GStreamer because nobody is using now. 2017-12-11 David Quesada Turn on ENABLE_APPLICATION_MANIFEST https://bugs.webkit.org/show_bug.cgi?id=180562 rdar://problem/35924737 Reviewed by Geoffrey Garen. * Configurations/FeatureDefines.xcconfig: 2017-12-11 Zan Dobersek Unreviewed, rolling out r225737. Breaks Git clones of the repository, including EWSs and webkitbot. Reverted changeset: "Add a script to automate W3c web-platform-tests pull request creations from WebKit commits" https://bugs.webkit.org/show_bug.cgi?id=169462 https://trac.webkit.org/changeset/225737 2017-12-11 Carlos Garcia Campos [GTK] WebDriver: run-webdriver-tests is leaking a DumpRenderTree directory in tmp https://bugs.webkit.org/show_bug.cgi?id=180426 Reviewed by Michael Catanzaro. This happens when running the tests with Xvfb driver, because _setup_environ_for_test() is called twice and the DTR temp directory is created there every time. Only the last directory created is cleaned up by the driver destructor. The DRT temp directory is only needed for layout tests, so we could even avoid its creation by moving it to the start() method like other drivers do (included the base driver implementation). Since API and WebDriver tests don't call start(), the directory is not even created, and the required env vars are not set either in that case. Weston driver was behaving differently for some reason, it's now consistent with all other drivers. * Scripts/webkitpy/port/headlessdriver.py: (HeadlessDriver._setup_environ_for_test): Do not set DUMPRENDERTREE_TEMP and XDG_CACHE_HOME if _driver_tempdir is None. (HeadlessDriver._start): Use Port._driver_tempdir() to create the driver temp directory. * Scripts/webkitpy/port/waylanddriver.py: (WaylandDriver._setup_environ_for_test): Do not set DUMPRENDERTREE_TEMP and XDG_CACHE_HOME if _driver_tempdir is None. (WaylandDriver._start): Use Port._driver_tempdir() to create the driver temp directory. * Scripts/webkitpy/port/westondriver.py: (WestonDriver._setup_environ_for_test): Do not set DUMPRENDERTREE_TEMP and XDG_CACHE_HOME if _driver_tempdir is None. (WestonDriver._start): Use Port._driver_tempdir() to create the driver temp directory. (WestonDriver.stop): Do not delete the temp directory, it's done by the parent class. (WestonDriver._ensure_driver_tmpdir_subdirectory): Deleted. * Scripts/webkitpy/port/westondriver_unittest.py: (WestonDriverTest.make_driver): (WestonDriverTest.test_stop): * Scripts/webkitpy/port/xorgdriver.py: (XorgDriver._setup_environ_for_test): Do not set DUMPRENDERTREE_TEMP and XDG_CACHE_HOME if _driver_tempdir is None. (XorgDriver._start): Use Port._driver_tempdir() to create the driver temp directory. * Scripts/webkitpy/port/xvfbdriver.py: (XvfbDriver._setup_environ_for_test): Do not set DUMPRENDERTREE_TEMP and XDG_CACHE_HOME if _driver_tempdir is None. (XvfbDriver._start): Use Port._driver_tempdir() to create the driver temp directory. 2017-12-10 Zan Dobersek Unreviewed webkitpy fix on Linux platforms after r225721. Add an empty 'linux' entry to the PUBLIC_TABLE mapping in the VersionNameMap class. This avoids asserting in this class's mapping_for_platform() method when the code is evaluated on a Linux system, which happens when the static VERSION_FALLBACK_ORDER member in the WinCairoPort class is constructed. This can occur during a test-webkitpy run or when trying to construct a WPEPort instance in PortFactory, which isn't possible because again the WinCairoPort instance is constructed first, leading to the same assert in both cases. * Scripts/webkitpy/common/version_name_map.py: (VersionNameMap.__init__): 2017-12-10 Youenn Fablet Add a script to automate W3c web-platform-tests pull request creations from WebKit commits https://bugs.webkit.org/show_bug.cgi?id=169462 Reviewed by Darin Adler. Adding some git helper routines used by WPT exporter. Copying WPT github utility files from Chromium. Updating web.py/web_mock.py to cope with these new files. Implementing test exporter in test_exporter.py. This script takes a WebKit commit as input and will create a WPT commit in a local WPT clone. It will then push the commit to a public GitHub repository identified by a username parameter. This parameter is passed through the command line or searched through git config/environment variables. The script can optionally create a pull request to the official WPT GitHub repository. User must provide a GitHub token to allow the script to make the PR on behalf of the user. In that case, a comment is added to the corresponding bugzilla if a bug ID is given or can be found from the change log, to easily link the pull request with the bugzilla bug. * Scripts/export-w3c-test-changes: Added. * Scripts/webkitpy/common/checkout/scm/git.py: (Git.reset_hard): (Git): (Git.am): (Git.commit): (Git.format_patch): (Git.request_pull): (Git.remote): (Git.push): (Git.checkout_new_branch): * Scripts/webkitpy/common/net/web.py: (Web.request): Copied from Chromium. * Scripts/webkitpy/common/net/web_mock.py: Copied needed code from Chromium. * Scripts/webkitpy/w3c/test_exporter.py: Added. (TestExporter): (TestExporter.__init__): (TestExporter._init_repository): (TestExporter.download_and_commit_patch): (TestExporter.clean): (TestExporter.create_branch_with_patch): (TestExporter.push_to_public_repository): (TestExporter.make_pull_request): (TestExporter.delete_local_branch): (TestExporter.create_git_patch): (TestExporter.create_upload_remote_if_needed): (TestExporter.do_export): (parse_args): (configure_logging): (configure_logging.LogHandler): (configure_logging.LogHandler.format): (main): * Scripts/webkitpy/w3c/test_exporter_unittest.py: Added. (TestExporterTest): (TestExporterTest.MockBugzilla): (TestExporterTest.MockBugzilla.__init__): (TestExporterTest.MockBugzilla.fetch_bug_dictionary): (TestExporterTest.MockBugzilla.post_comment_to_bug): (TestExporterTest.MockGit): (TestExporterTest.MockGit.clone): (TestExporterTest.MockGit.__init__): (TestExporterTest.MockGit.fetch): (TestExporterTest.MockGit.checkout): (TestExporterTest.MockGit.reset_hard): (TestExporterTest.MockGit.push): (TestExporterTest.MockGit.format_patch): (TestExporterTest.MockGit.delete_branch): (TestExporterTest.MockGit.checkout_new_branch): (TestExporterTest.MockGit.am): (TestExporterTest.MockGit.commit): (TestExporterTest.MockGit.remote): (TestExporterTest.test_export): * Scripts/webkitpy/w3c/common.py: Copied from chromium. * Scripts/webkitpy/w3c/wpt_github.py: Copied from chromium. * Scripts/webkitpy/w3c/wpt_github_mock.py: Copied from chromium. * Scripts/webkitpy/w3c/wpt_github_unittest.py: Copied from chromium. 2017-12-10 Konstantin Tokarev [python] Modernize "except" usage for python3 compatibility https://bugs.webkit.org/show_bug.cgi?id=180612 Reviewed by Michael Catanzaro. * BuildSlaveSupport/build.webkit.org-config/committer_auth.py: (CommitterAuth.auth_json): (CommitterAuth.authenticate): (CommitterAuth.is_webkit_committer): (CommitterAuth.is_webkit_trac_user): * BuildSlaveSupport/wait-for-SVN-server.py: (getLatestSVNRevision): * QueueStatusServer/handlers/updatebase.py: (UpdateBase._int_from_request): * Scripts/webkitpy/bindings/main.py: (BindingsTests.generate_from_idl): (BindingsTests.generate_supplemental_dependency): (BindingsTests.detect_changes): * Scripts/webkitpy/codegen/main.py: (BuiltinsGeneratorTests.generate_from_js_builtins): (BuiltinsGeneratorTests.detect_changes): * Scripts/webkitpy/common/checkout/changelog.py: (ChangeLog.parse_latest_entry_from_file): * Scripts/webkitpy/common/checkout/checkout.py: (Checkout.bug_id_for_this_commit): * Scripts/webkitpy/common/checkout/scm/git.py: (Git.in_working_directory): (Git.clone): (Git._string_to_int_or_none): (Git._commit_on_branch): * Scripts/webkitpy/common/checkout/scm/svn.py: (SVN.revisions_changing_file): * Scripts/webkitpy/common/config/committers.py: (CommitterList.load_json): * Scripts/webkitpy/common/message_pool.py: (_Worker.run): * Scripts/webkitpy/common/net/buildbot/buildbot.py: (Builder.force_build.predicate): (Builder._fetch_revision_to_build_map): (BuildBot._fetch_build_dictionary): * Scripts/webkitpy/common/net/credentials.py: (Credentials._credentials_from_git): * Scripts/webkitpy/common/net/networktransaction.py: (NetworkTransaction.run): * Scripts/webkitpy/common/net/networktransaction_unittest.py: (NetworkTransactionTest.test_exception): (NetworkTransactionTest.test_timeout): * Scripts/webkitpy/common/net/statusserver.py: (StatusServer._fetch_url): * Scripts/webkitpy/common/net/unittestresults.py: (UnitTestResults.results_from_string): * Scripts/webkitpy/common/prettypatch.py: (PrettyPatch.check_pretty_patch): (PrettyPatch.pretty_patch_text): * Scripts/webkitpy/common/prettypatch_unittest.py: (PrettyPatchTest.check_ruby): * Scripts/webkitpy/common/system/autoinstall.py: (AutoInstaller._extract_tar): (AutoInstaller._unzip): (AutoInstaller._replace_domain_with_next_mirror): (AutoInstaller._download_to_stream): (AutoInstaller.install): * Scripts/webkitpy/common/system/crashlogs.py: (CrashLogs._find_newest_log_darwin): (CrashLogs._find_newest_log_win): (CrashLogs._find_all_logs_darwin): * Scripts/webkitpy/common/system/executive.py: (Executive.kill_process): (Executive.running_pids): * Scripts/webkitpy/common/system/filesystem.py: (FileSystem.maybe_make_directory): (FileSystem.remove): * Scripts/webkitpy/common/system/user.py: (User._wait_on_list_response): (User.edit): (User.page): (User.can_open_url): * Scripts/webkitpy/common/system/workspace.py: (Workspace.create_zip): * Scripts/webkitpy/common/watchlist/watchlistparser.py: (WatchListParser._parse_definition_section): * Scripts/webkitpy/common/webkitunittest.py: (TestCase._assertRaisesRegexp): * Scripts/webkitpy/inspector/main.py: (InspectorGeneratorTests.generate_from_json): (InspectorGeneratorTests.detect_changes): * Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py: (LayoutTestFinder._read_test_names_from_file): * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: (LayoutTestRunner.run_tests): * Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager.upload_results): * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py: (JSONResultsGenerator.upload_json_files): (JSONResultsGenerator._get_archived_json_results): * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: (MiscTests.test_parse_warning): (SemanticTests.test_bad_bugid): * Scripts/webkitpy/layout_tests/models/test_run_results.py: (summarize_results): * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (main): * Scripts/webkitpy/layout_tests/servers/http_server.py: (Lighttpd._remove_stale_logs): * Scripts/webkitpy/layout_tests/servers/http_server_base.py: (HttpServerBase._is_running_on_port): (HttpServerBase._check_that_all_ports_are_available): * Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py: (BaseTest.assert_servers_are_down): (BaseTest.assert_servers_are_up): (BaseTest.integration_test_server__fails): (BaseTest.maybe_make_dir): * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: (run_server): * Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py: * Scripts/webkitpy/layout_tests/servers/websocket_server.py: (PyWebSocket.is_running): (PyWebSocket._remove_stale_logs): * Scripts/webkitpy/performance_tests/perftestsrunner.py: (_merge_slave_config_json): (_merge_outputs_if_needed): (_upload_json): * Scripts/webkitpy/port/base.py: (Port._build_driver): (Port._build_image_diff): (Port._symbols_string): * Scripts/webkitpy/port/leakdetector.py: (LeakDetector.count_total_bytes_and_unique_leaks): (LeakDetector.check_for_leaks): * Scripts/webkitpy/port/leakdetector_valgrind.py: (LeakDetectorValgrind._parse_leaks_output): * Scripts/webkitpy/port/mac.py: (MacPort.reset_preferences): (MacPort.stop_helper): * Scripts/webkitpy/port/port_testcase.py: (PortTestCase.assert_servers_are_down): (PortTestCase.assert_servers_are_up): (PortTestCase.integration_test_http_server__fails): (PortTestCase.integration_test_websocket_server__fails): * Scripts/webkitpy/port/server_process.py: (ServerProcess.write): (ServerProcess._wait_for_data_and_update_buffers_using_select): (ServerProcess._non_blocking_read_win32): * Scripts/webkitpy/port/win.py: (WinPort._runtime_feature_list): * Scripts/webkitpy/port/xvfbdriver.py: (XvfbDriver._xvfb_read_display_id): * Scripts/webkitpy/style/checkers/jsonchecker.py: (JSONChecker.check): * Scripts/webkitpy/style/checkers/xml.py: (XMLChecker.check): * Scripts/webkitpy/style/filereader.py: (TextFileReader.process_file): * Scripts/webkitpy/style/filereader_unittest.py: (TextFileReaderTest.test_process_file__does_not_exist): * Scripts/webkitpy/style/optparser.py: (ArgumentParser.parse): * Scripts/webkitpy/tool/bot/irc_command.py: (CreateBug.execute): (Rollout.execute): * Scripts/webkitpy/tool/bot/ircbot.py: (IRCBot.process_message): * Scripts/webkitpy/tool/bot/layouttestresultsreader.py: (LayoutTestResultsReader._read_file_contents): * Scripts/webkitpy/tool/bot/patchanalysistask.py: (PatchAnalysisTask._run_command): * Scripts/webkitpy/tool/bot/queueengine.py: (QueueEngine.run): * Scripts/webkitpy/tool/commands/abstractsequencedcommand.py: (AbstractSequencedCommand.execute): * Scripts/webkitpy/tool/commands/download.py: (AbstractPatchSequencingCommand._prepare_to_process): * Scripts/webkitpy/tool/commands/earlywarningsystem.py: (AbstractEarlyWarningSystem.review_patch): * Scripts/webkitpy/tool/commands/queries.py: (FailureReason._blame_line_for_revision): * Scripts/webkitpy/tool/commands/queues.py: (AbstractQueue._cc_watchers): (AbstractQueue.run_webkit_patch): (CommitQueue.process_work_item): (StyleQueue.review_patch): * Scripts/webkitpy/tool/commands/rebaseline.py: (AbstractParallelRebaselineCommand._run_webkit_patch): * Scripts/webkitpy/tool/commands/stepsequence.py: (StepSequence.run_and_handle_errors): * Scripts/webkitpy/tool/commands/suggestnominations.py: (SuggestNominations._count_recent_patches): * Scripts/webkitpy/tool/multicommandtool.py: (MultiCommandTool.main): * Scripts/webkitpy/tool/servers/rebaselineserver.py: (_rebaseline_test): (_move_test_baselines): * Scripts/webkitpy/tool/steps/addsvnmimetypeforpng_unittest.py: (AddSvnMimetypeForPngTest.test_run): * Scripts/webkitpy/tool/steps/checkstyle.py: (CheckStyle.run): * Scripts/webkitpy/tool/steps/commit.py: (Commit._check_test_expectations): (Commit.run): * Scripts/webkitpy/tool/steps/confirmdiff.py: (ConfirmDiff._show_pretty_diff): * Scripts/webkitpy/tool/steps/haslanded.py: (HasLanded.diff_diff): * Scripts/webkitpy/tool/steps/preparechangelog.py: (PrepareChangeLog.run): * Scripts/webkitpy/tool/steps/promptforbugortitle.py: (PromptForBugOrTitle.run): * Scripts/webkitpy/tool/steps/sortxcodeprojectfiles.py: (SortXcodeProjectFiles.run): * Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py: (WebDriverW3CWebServer._wait_for_server.check_port): * TestResultServer/model/datastorefile.py: (DataStoreFile.save_data): * jhbuild/jhbuildutils.py: (enter_jhbuild_environment_if_available): 2017-12-09 Yusuke Suzuki Fix WTF::Hasher tuple expansion with variadic args https://bugs.webkit.org/show_bug.cgi?id=180623 Reviewed by JF Bastien. * TestWebKitAPI/Tests/WTF/Hasher.cpp: (TestWebKitAPI::TEST): 2017-12-09 Konstantin Tokarev [python] Replace print >> operator with print() function for python3 compatibility https://bugs.webkit.org/show_bug.cgi?id=180611 Reviewed by Michael Catanzaro. * CygwinDownloader/cygwin-downloader.py: (download_url_to_file): * Scripts/webkitpy/common/system/profiler.py: (Perf.profile_after_exit): * Scripts/webkitpy/common/version_check.py: * Scripts/webkitpy/layout_tests/lint_test_expectations.py: (main): * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (main): * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: (run_server): * Scripts/webkitpy/tool/commands/analyzechangelog.py: (ChangeLogAnalyzer._print_status): * Scripts/webkitpy/tool/commands/queries.py: (BugsToCommit.execute): (PatchesInCommitQueue.execute): (PatchesToCommitQueue.execute): (PatchesToReview._print_report): (WhatBroke._print_builder_line): (WhatBroke._print_blame_information_for_builder): (WhatBroke.execute): (ResultsFor._print_layout_test_results): (ResultsFor.execute): (FailureReason._print_blame_information_for_transition): (FailureReason._explain_failures_for_builder): (FailureReason._builder_to_explain): (FailureReason.execute): (FindFlakyTests._find_failures): (FindFlakyTests._print_statistics): (FindFlakyTests._walk_backwards_from): (execute): (PrintExpectations.execute): (PrintBaselines.execute): (PrintBaselines._print_baselines): (FindResolvedBugs.execute): * Scripts/webkitpy/tool/commands/rebaseline.py: (AbstractParallelRebaselineCommand._run_webkit_patch): (AbstractParallelRebaselineCommand._rebaseline): * Scripts/webkitpy/tool/servers/gardeningserver.py: (GardeningHTTPRequestHandler.rebaselineall): * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: (GardeningServerTest.disabled_test_rebaselineall.run_command): (GardeningServerTest): 2017-12-08 Basuke Suzuki [Win] The way to detect Windows 10 is wrong https://bugs.webkit.org/show_bug.cgi?id=179344 Reviewed by Alex Christensen. Python2.7 doesn't return correct information on Windows 10. Use platform.win32_ver() instead of sys.getwindowsversion(). * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo._win_version): (PlatformInfo._win_version_str): * Scripts/webkitpy/common/system/platforminfo_unittest.py: (fake_sys): (fake_sys.FakeSysModule): (fake_platform): (fake_platform.FakePlatformModule.win32_ver): (TestPlatformInfo.test_os_name_and_wrappers): (TestPlatformInfo.test_os_version): (TestPlatformInfo.test_display_name): (TestPlatformInfo.test_total_bytes_memory): 2017-12-08 Basuke Suzuki [WinCairo] Fix runtime error after r225229 https://bugs.webkit.org/show_bug.cgi?id=180614 Reviewed by Alex Christensen. The list of fallback versions doesn't match with version name mapping introduced recently. It should be safe by creating the list automatically from the name map for consistency. * Scripts/webkitpy/common/version_name_map.py: (VersionNameMap.__init__): (VersionNameMap.to_name): (VersionNameMap.from_name): (VersionNameMap): (VersionNameMap.names): (VersionNameMap.mapping_for_platform): * Scripts/webkitpy/port/win.py: (WinCairoPort): (WinCairoPort.default_baseline_search_path): 2017-12-08 David Quesada ApplicationManifestParser should strip whitespace from the raw input https://bugs.webkit.org/show_bug.cgi?id=180539 rdar://problem/35915075 Reviewed by Joseph Pecoraro. Added an API test for parsing manifests with surrounding whitespace. Also drive-by fix ApplicationManifestParserTest.Display. Earlier versions of the manifest spec explicitly stated that the "display" value should be treated as if it were run through String.prototype.trim(), which allowed for the really weird edge case of an array containing one string. This behavior was lost when I changed ApplicationManifestParser's JSON parsing from using JavaScriptCore to WTF's JSON parsing. Update the unit test accordingly. * TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp: (TEST_F): 2017-12-08 Konstantin Tokarev [python] Replace print operator with print() function for python3 compatibility https://bugs.webkit.org/show_bug.cgi?id=180592 Reviewed by Michael Catanzaro. * BuildSlaveSupport/wait-for-SVN-server.py: (getLatestSVNRevision): (waitForSVNRevision): * Scripts/download-latest-github-release.py: (find_latest_release): (main): * Scripts/update-wasm-gcc-torture.py: (update_lkgr): (untar_torture): (list_js_files): (waterfall_known_failures): * Scripts/update-webkit-wincairo-libs.py: * Scripts/webkitpy/benchmark_runner/benchmark_runner.py: (BenchmarkRunner.show_results): * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: (SimpleHTTPServerDriver.fetch_result): * Scripts/webkitpy/benchmark_runner/run_benchmark.py: (list_benchmark_plans): * Scripts/webkitpy/bindings/main.py: (BindingsTests.generate_from_idl): (BindingsTests.generate_supplemental_dependency): (BindingsTests.detect_changes): (BindingsTests.run_tests): (BindingsTests.main): * Scripts/webkitpy/codegen/main.py: (BuiltinsGeneratorTests.generate_from_js_builtins): (BuiltinsGeneratorTests.detect_changes): (BuiltinsGeneratorTests.single_builtin_test): (BuiltinsGeneratorTests.run_test): (BuiltinsGeneratorTests.run_tests): (BuiltinsGeneratorTests.main): * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: (MockBugzilla.fetch_attachment): * Scripts/webkitpy/common/net/buildbot/buildbot.py: (Builder._fetch_revision_to_build_map): * Scripts/webkitpy/common/system/crashlogs.py: (CrashLogs._find_newest_log_win): * Scripts/webkitpy/common/system/outputcapture_unittest.py: (OutputCaptureTest.test_output_capture_scope): * Scripts/webkitpy/common/system/profiler.py: (GooglePProf.profile_after_exit): (Perf.profile_after_exit): * Scripts/webkitpy/common/system/user.py: (User.prompt_with_multiple_lists): (User.prompt_with_list): (User._warn_if_application_is_xcode): (User.edit_changelog): * Scripts/webkitpy/inspector/main.py: (InspectorGeneratorTests.generate_from_json): (InspectorGeneratorTests.detect_changes): (InspectorGeneratorTests.run_tests): (InspectorGeneratorTests.main): * Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager._print_expectation_line_for_test): (Manager._print_expectations_for_subset): (Manager._print_expectations_for_subset.if): * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: (run_server): * Scripts/webkitpy/port/config_standalone.py: (main): * Scripts/webkitpy/port/darwin_testcase.py: (DarwinTest.test_spindump.logging_run_command): (DarwinTest.test_sample_process.logging_run_command): * Scripts/webkitpy/port/ios.py: (IOSPort.clean_up_test_run): * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest.test_spindump.logging_run_command): (IOSDeviceTest.test_sample_process.logging_run_command): * Scripts/webkitpy/port/ios_simulator_unittest.py: (IOSSimulatorTest.test_xcrun.throwing_run_command): * Scripts/webkitpy/port/leakdetector_unittest.py: (test_count_total_bytes_and_unique_leaks.mock_run_script): * Scripts/webkitpy/port/mac_unittest.py: (MacTest.test_xcrun.throwing_run_command): * Scripts/webkitpy/style/checkers/contributors.py: (ContributorsChecker.check): * Scripts/webkitpy/tool/commands/abstractlocalservercommand.py: (AbstractLocalServerCommand.execute): * Scripts/webkitpy/tool/commands/adduserstogroups.py: (AddUsersToGroups.execute): * Scripts/webkitpy/tool/commands/analyzechangelog.py: (AnalyzeChangeLog._generate_jsons): (AnalyzeChangeLog.execute): (ChangeLogAnalyzer._set_filename): (ChangeLogAnalyzer.analyze): * Scripts/webkitpy/tool/commands/bugfortest.py: (BugForTest.execute): * Scripts/webkitpy/tool/commands/bugsearch.py: (execute): * Scripts/webkitpy/tool/commands/findusers.py: (FindUsers.execute): * Scripts/webkitpy/tool/commands/gardenomatic.py: (GardenOMatic.execute): * Scripts/webkitpy/tool/commands/rebaseline.py: (RebaselineTest.execute): * Scripts/webkitpy/tool/commands/rebaselineserver.py: (RebaselineServer._prepare_config): * Scripts/webkitpy/tool/commands/setupgitclone.py: (SetupGitClone.execute): (SetupGitClone._get_username_and_email): * Scripts/webkitpy/tool/commands/suggestnominations.py: (SuggestNominations._print_nominations): (SuggestNominations._print_counts): * Scripts/webkitpy/tool/commands/upload.py: (CommitMessageForCurrentDiff.execute): (CreateBug.prompt_for_bug_title_and_comment): * Scripts/webkitpy/tool/multicommandtool.py: (HelpCommand.execute): * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: (TestGardeningHTTPRequestHandler._serve_text): (TestGardeningHTTPRequestHandler._serve_json): * Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py: (AddSvnMimetypeForPng.run): * Scripts/webkitpy/tool/steps/suggestreviewers.py: (SuggestReviewers.run): * Scripts/webkitpy/w3c/test_importer.py: (TestImporter.update_tests_options): * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py: (WebDriverTestRunnerSelenium.run): * TestResultServer/model/jsonresults_unittest.py: * gtk/ycm_extra_conf.py: (FlagsForFile): * lldb/lldb_webkit.py: (btjs): 2017-12-08 Eric Carlson Move Logger from PAL to WTF so it can be used outside of WebCore https://bugs.webkit.org/show_bug.cgi?id=180561 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::TEST_F): 2017-12-08 Chris Dumez Different WebKitTestRunner instances should use different service worker registrations databases https://bugs.webkit.org/show_bug.cgi?id=180589 Reviewed by Brady Eidson. * WebKitTestRunner/TestController.cpp: (WTR::TestController::generateContextConfiguration const): 2017-12-08 Fujii Hironori Tools/ImageDiff/cg/PlatformImageCG.cpp doesn't need to include https://bugs.webkit.org/show_bug.cgi?id=180578 Reviewed by Konstantin Tokarev. * ImageDiff/cg/PlatformImageCG.cpp: Removed unnecessary #include . 2017-12-08 Zan Dobersek Unreviewed WPE build fix after r225671. * WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp: Include the ActivateFonts.h header to have a usable WTR::installFakeHelvetica() function declaration. 2017-12-07 Zan Dobersek Unreviewed GTK+ and WPE build fix. Add TestRunner::installFakeHelvetica(), WTR::installFakeHelvetica() and WTF::uninstallFakeHelvetica() definitions, filling out the declarations added in r225641. This fills up missing symbols in the WKTR's InjectedBundle library, unbreaking layout tests for both configurations. * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp: (WTR::installFakeHelvetica): (WTR::uninstallFakeHelvetica): * WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp: (WTR::TestRunner::inspectorTestStubURL): (WTR::TestRunner::installFakeHelvetica): * WebKitTestRunner/InjectedBundle/wpe/ActivateFontsWPE.cpp: (WTR::installFakeHelvetica): (WTR::uninstallFakeHelvetica): * WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp: (WTR::TestRunner::installFakeHelvetica): 2017-12-07 Yusuke Suzuki Use StaticLock instead of NeverDestroyed https://bugs.webkit.org/show_bug.cgi?id=180507 Reviewed by Saam Barati. * DumpRenderTree/JavaScriptThreading.cpp: (javaScriptThreads): (runJavaScriptThread): (startJavaScriptThreads): (stopJavaScriptThreads): (javaScriptThreadsMutex): Deleted. 2017-12-07 Alex Christensen Always synchronously continue with fragment navigations https://bugs.webkit.org/show_bug.cgi?id=180544 and Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm: (-[DecidePolicyForNavigationActionFragmentDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): (TEST): Add a test that verifies that decidePolicyForNavigationAction is called for fragment navigations. 2017-12-07 Myles C. Maxfield [Cocoa] Add SPI to disallow user-installed fonts https://bugs.webkit.org/show_bug.cgi?id=180062 Reviewed by Simon Fraser. * WebKitTestRunner/InjectedBundle/ActivateFonts.h: * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::InjectedBundlePage::resetAfterTest): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm: (WTR::resourcesDirectoryURL): (WTR::activateFonts): (WTR::installFakeHelvetica): (WTR::uninstallFakeHelvetica): * WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm: (WTR::TestRunner::installFakeHelvetica): * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: * WebKitTestRunner/fonts/FakeHelvetica-Helvetica-400.ttf: Added. * WebKitTestRunner/fonts/FakeHelvetica-Helvetica-500.ttf: Added. * WebKitTestRunner/fonts/FakeHelvetica-Helvetica2-400.ttf: Added. * WebKitTestRunner/fonts/FakeHelvetica-Helvetica2-500.ttf: Added. 2017-12-07 David Quesada [Web App Manifest] Support display-mode media feature https://bugs.webkit.org/show_bug.cgi?id=180376 rdar://problem/35837993 Reviewed by Geoffrey Garen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp: (WebCore::operator<<): (ApplicationManifestParserTest::testDisplay): (TEST_F): Add unit tests for the parsing of the 'display' manifest property. * TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKitCocoa/display-mode.html: Added. Update API tests to include _WKApplicationManifest.displayMode. * WebKitTestRunner/TestController.cpp: (WTR::parseStringTestHeaderValueAsRelativePath): (WTR::updateTestOptionsFromTestHeader): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateWebView): Teach WKTR to look for and apply an app manifest. A new directive 'applicationManifest' can specify a path (relative to the test file itself) to a JSON app manifest to be applied to the web view before running the test. 2017-12-07 Eric Carlson Add WebRTC watchlist rule, update MediaStream rule https://bugs.webkit.org/show_bug.cgi?id=180536 Reviewed by Youenn Fablet. * Scripts/webkitpy/common/config/watchlist: 2017-12-06 Chris Dumez We should be able to recover after a Service Worker process crash https://bugs.webkit.org/show_bug.cgi?id=180477 Reviewed by Brady Eidson and Youenn Fablet. Add testRunner API to terminate the Service Worker process. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::terminateServiceWorkerProcess): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::terminateServiceWorkerProcess): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): 2017-12-02 Darin Adler Modernize some aspects of text codecs, eliminate WebKit use of strcasecmp https://bugs.webkit.org/show_bug.cgi?id=180009 Reviewed by Alex Christensen. * DumpRenderTree/cg/PixelDumpSupportCG.cpp: Removed include of StringExtras.h. * TestWebKitAPI/CMakeLists.txt: Added LineEnding.cpp. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto. * TestWebKitAPI/Tests/WTF/LineEnding.cpp: Added. Has tests for the LineEnding functions rewritten in this patch. * TestWebKitAPI/Tests/WebCore/TextCodec.cpp: Updated test now that the decode function doesn't have defaults for as many arguments any more. Also changed so that the tests log the fact that the decode function returns an error and updated expected results to expect all the errors. * WebKitTestRunner/cg/TestInvocationCG.cpp: Ditto. 2017-12-06 Alexey Proskuryakov Exclude another leak callstack. * Scripts/webkitpy/port/leakdetector.py: (LeakDetector._callstacks_to_exclude_from_leaks): 2017-12-06 Jeff Miller -[WKWebViewConfiguration copyWithZone] doesn't copy _groupIdentifier https://bugs.webkit.org/show_bug.cgi?id=180504 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: Add a test to verify that the _groupIdentifier is copied. 2017-12-06 David Quesada [Web App Manifest] Add SPI for fetching the manifest https://bugs.webkit.org/show_bug.cgi?id=180294 rdar://problem/34747968 Reviewed by Geoffrey Garen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm: Added. Added two API tests for _WKApplicationManifest: - Testing _WKApplicationManifest's conformance to NSCoding. - Testing -[WKWebView _getApplicationManifestWithCompletionHandler:], verifying the values of the resulting _WKApplicationManifest. (TestWebKitAPI::TEST): * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Added a new testRunner method getApplicationManifestThen(), used by the LayoutTests to request the document load its associated manifest. The layout tests formerly called an unimplemented function getManifestThen(), but I added 'Application' to somewhat differentiate this from the app cache manifest. * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::getApplicationManifestThen): (WTR::TestRunner::didGetApplicationManifest): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-12-05 Stephan Szabo Switch windows build to Visual Studio 2017 https://bugs.webkit.org/show_bug.cgi?id=172412 Reviewed by Per Arne Vollan. * Scripts/build-webkit: * Scripts/webkitdirs.pm: (visualStudioInstallDir): (visualStudioInstallDirFallback): (msBuildInstallDir): (setupAppleWinEnv): (setupCygwinEnv): (generateBuildSystemFromCMakeProject): (pickLegacyVisualStudioInstallation): Deleted. (visualStudioInstallDirLegacy): Deleted. (visualStudioVersion): Deleted. (visualStudioVersionFromInstallDir): Deleted. 2017-12-05 Alex Christensen Fix crash when loading a file URL that does not have a fileSystemPath representation https://bugs.webkit.org/show_bug.cgi?id=180448 Reviewed by Chris Dumez. * TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm: (TEST): Test opening a URL that used to crash WebKit. 2017-12-05 Michael Saboff Make WebKit build for ARM64_32 https://bugs.webkit.org/show_bug.cgi?id=180447 Reviewed by Mark Lam. Add an instance of the _TestWTFAlwaysMissing for arm64_32 architecture. * TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-iOS-v2.tbd: 2017-12-05 Aakash Jain [build.webkit.org] Rename mastercfg_unittest to steps_unittest https://bugs.webkit.org/show_bug.cgi?id=180432 Rubber-stamped by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Removed. * BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Copied from BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py. 2017-12-05 Aakash Jain [build.webkit.org] Fix style issues in mastercfg_unittest.py https://bugs.webkit.org/show_bug.cgi?id=180439 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Added imports directly instead of relying on imports from other files. We will try to import minimum required modules. Currently we are importing everything from master.cfg, loadConfig.py, factories.py and steps.py 2017-12-05 Aakash Jain [build.webkit.org] Rename MasterCfgTest to RunWebKitTestsTest https://bugs.webkit.org/show_bug.cgi?id=180391 Rubber-stamped by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: (RunWebKitTestsTest): Renamed from MasterCfgTest. 2017-12-01 Filip Pizlo GC constraint solving should be parallel https://bugs.webkit.org/show_bug.cgi?id=179934 Reviewed by JF Bastien. * Scripts/run-jsc-benchmarks: Add splay-latency test, since this change needed to be carefully validated with that benchmark. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/ConcurrentPtrHashSet.cpp: Added. This has unit tests of the new concurrent data structure. The tests focus on correctness under serial execution, which appears to be enough for now (it's so easy to catch a concurrency bug by just running the GC). (TestWebKitAPI::TEST): 2017-12-04 Nan Wang AX: AOM: Implement relation type properties https://bugs.webkit.org/show_bug.cgi?id=179500 Reviewed by Ryosuke Niwa. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: (WTR::AccessibilityUIElement::ariaDetailsElementAtIndex): (WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex): (WTR::AccessibilityUIElement::ariaDescribedByReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaDetailsReferencingElementAtIndex): * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::ariaDetailsElementAtIndex): (WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex): 2017-12-04 Simon Fraser Minor DisplayRefreshMonitor-related cleanup https://bugs.webkit.org/show_bug.cgi?id=179802 Reviewed by Sam Weinig. New trace point for when the CVDisplayLink fires on its own thread. * Tracing/SystemTracePoints.plist: 2017-12-04 David Quesada Add a class for parsing application manifests https://bugs.webkit.org/show_bug.cgi?id=177973 rdar://problem/34747949 Reviewed by Geoffrey Garen. Add basic unit tests for ApplicationManifestParser. For each of the implemented top-level properties, attempt to parse manifests with varying types of valid and invalid data to ensure the resulting ApplicationManifest is configured with the appropriate values per the spec. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Add ENABLE_APPLICATION_MANIFEST feature flag. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp: Added. (ApplicationManifestParserTest::SetUp): (ApplicationManifestParserTest::parseString): (ApplicationManifestParserTest::parseTopLevelProperty): (ApplicationManifestParserTest::testStartURL): (ApplicationManifestParserTest::testName): (ApplicationManifestParserTest::testDescription): (ApplicationManifestParserTest::testShortName): (ApplicationManifestParserTest::testScope): (assertManifestHasDefaultValues): (TEST_F): 2017-12-04 Aakash Jain Add docstring in EarlyWarningSystemTask to explain return values https://bugs.webkit.org/show_bug.cgi?id=180303 Reviewed by Daniel Bates. * Scripts/webkitpy/tool/bot/earlywarningsystemtask.py: (EarlyWarningSystemTask.run): Added docstring to explain return values. * Scripts/webkitpy/tool/commands/earlywarningsystem.py: (AbstractEarlyWarningSystem.review_patch): Added comment to explain the result of unlocking a patch. 2017-12-04 JF Bastien Update std::expected to match libc++ coding style https://bugs.webkit.org/show_bug.cgi?id=180264 Reviewed by Alex Christensen. Update tests according to name changes as well as removal of now-gone APIs. * TestWebKitAPI/Tests/WTF/Expected.cpp: (std::experimental::fundamentals_v3::operator<<): (TestWebKitAPI::TEST): (WTF::operator<<): Deleted. * TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp: (TestWebKitAPI::testParseHTMLInteger): (TestWebKitAPI::testParseHTMLNonNegativeInteger): 2017-12-04 Ross Kirsling download-latest-github-release.py should use existing release ANY time latest is not found https://bugs.webkit.org/show_bug.cgi?id=180293 Reviewed by Per Arne Vollan. * Scripts/download-latest-github-release.py: (find_latest_release): Handle all URLErrors, not just HTTPErrors. Stop special-casing 404s. (main): Rearrange logic so any failure to detect a latest release falls back to an existing release. Improve logging. (Status): (download_release): (load_version_info): Renamed from existing_version info. (has_latest_release): Deleted. Cleanup. 2017-12-04 Joseph Pecoraro Exclude some more leak callstacks https://bugs.webkit.org/show_bug.cgi?id=180379 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/port/leakdetector.py: (LeakDetector._types_to_exclude_from_leaks): (LeakDetector._callstacks_to_exclude_from_leaks): (LeakDetector._leaks_args): (LeakDetector._types_to_exlude_from_leaks): Deleted. * Scripts/webkitpy/port/leakdetector_unittest.py: (LeakDetectorTest.test_leaks_args): 2017-12-03 Yusuke Suzuki WTF shouldn't have both Thread and ThreadIdentifier https://bugs.webkit.org/show_bug.cgi?id=180308 Reviewed by Darin Adler. * DumpRenderTree/mac/DumpRenderTree.mm: (dumpRenderTree): (runThread): Deleted. (runPthread): Deleted. (testThreadIdentifierMap): Deleted. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/ParkingLot.cpp: * TestWebKitAPI/Tests/WTF/Threading.cpp: Added. (TestWebKitAPI::TEST): 2017-12-03 Aakash Jain webkitpy EWS keeps retrying a failing patch https://bugs.webkit.org/show_bug.cgi?id=180302 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/tool/bot/patchanalysistask.py: (PatchAnalysisTask._test_patch): Instead of returning false, call report_failure() which raises an exception, this exception is catched by earlywarningsystem.py and it posts a comment on bugzilla. Returning false simply unlocks the patch and returns it to the queue. 2017-12-03 Darin Adler Add WTF::Hasher, an easier to use replacement for WTF::IntegerHasher https://bugs.webkit.org/show_bug.cgi?id=180318 Reviewed by JF Bastien. * TestWebKitAPI/CMakeLists.txt: Added Hasher.cpp. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto. * TestWebKitAPI/Tests/WTF/Hasher.cpp: Added. Contains tests of the new WTF::Hasher class. * TestWebKitAPI/Tests/WTF/StringHasher.cpp: Include StringHasher.h instead of Hasher.h. 2017-12-01 Carlos Garcia Campos WebDriver: auto-install pytest instead of importing it from wpt tools directory https://bugs.webkit.org/show_bug.cgi?id=180243 Reviewed by Brian Burg. We don't really need the (old) version included in wpt tools dir, so we can simply remove it and use autoinstall instead. * Scripts/webkitpy/thirdparty/__init__.py: (AutoinstallImportHook.find_module): Check pytest. (AutoinstallImportHook._install_pytest): Install pytest. * Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py: Import autoinstalled pytest. * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py: (WebDriverTestRunnerW3C.run): Update the subtest path since the new pytest uses a different strategy for rootdir. * Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: Import autoinstalled pytest. 2017-12-01 Dewei Zhu Hardcoded python path is not compatible with virtual environment. https://bugs.webkit.org/show_bug.cgi?id=180300 Reviewed by Stephanie Lewis. Hardcoding '/usr/bin/python' does not work with python virtual environment. Use 'python' instead. * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: (SimpleHTTPServerDriver.serve): 2017-12-01 Aakash Jain [build.webkit.org] Move python code to load config from master.cfg in separate file https://bugs.webkit.org/show_bug.cgi?id=180278 Reviewed by Daniel Bates. * BuildSlaveSupport/build.webkit.org-config/master.cfg: Moved appropriate code to loadConfig.py * BuildSlaveSupport/build.webkit.org-config/loadConfig.py: Ditto. * BuildSlaveSupport/build.webkit.org-config/steps.py: Removed extra import. 2017-12-01 Brian Burg Web Inspector: move Inspector::Protocol::Array to JSON namespace https://bugs.webkit.org/show_bug.cgi?id=173662 Reviewed by Joseph Pecoraro. Add duplicate test cases for JSON::ArrayOf based on JSON::Array. * TestWebKitAPI/Tests/WTF/JSONValue.cpp: (TestWebKitAPI::TEST): 2017-12-01 Wenson Hsieh [Attachment Support] Implement SPI for clients to update a given attachment's data https://bugs.webkit.org/show_bug.cgi?id=180184 Reviewed by Tim Horton. Adds two new API tests to exercise the attachment data update flow. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (TestWebKitAPI::ObserveAttachmentUpdatesForScope::ObserveAttachmentUpdatesForScope): (-[_WKAttachment synchronouslySetDisplayOptions:error:]): (-[_WKAttachment synchronouslyRequestData:]): (-[_WKAttachment synchronouslySetData:newContentType:newFilename:error:]): (TestWebKitAPI::TEST): 2017-12-01 Alicia Boya García [GTK] Add SampleMap.cpp API tests to CMake https://bugs.webkit.org/show_bug.cgi?id=180252 Reviewed by Žan Doberšek. * TestWebKitAPI/PlatformGTK.cmake: 2017-11-30 Carlos Garcia Campos WebDriver: add support for importing and running selenium tests https://bugs.webkit.org/show_bug.cgi?id=180145 Reviewed by Brian Burg. We currently import and run W3C tests, which are the best ones to ensure our implementation is spec compliant. However, the selenium API is what user will actually use in the end, so it's important to ensure that we don't break the selenium support. This patch adds webdriver_test_runner_selenium.py and webdriver_selenium_executor.py to run selenium tests. The script import-w3c-webdriver-tests has been renamed as import-webdriver-tests and it can now import selenium tests too. * Scripts/import-w3c-webdriver-tests: Removed. * Scripts/import-webdriver-tests: Added. (Importer): (Importer.__init__): (Importer.download_tests): (Importer.import_tests): (Importer.import_tests.should_skip_file): * Scripts/webkitpy/webdriver_tests/webdriver_driver.py: (WebDriver.browser_path): (WebDriver): (WebDriver.browser_args): (WebDriver.selenium_name): * Scripts/webkitpy/webdriver_tests/webdriver_driver_gtk.py: (WebDriverGtk.browser_path): (WebDriverGtk): (WebDriverGtk.browser_args): (WebDriverGtk.capabilities): (WebDriverGtk.selenium_name): * Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py: (WebDriverWPE.browser_args): (WebDriverWPE.capabilities): * Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py: Added. (_ensure_directory_in_path): (CollectRecorder): (CollectRecorder.__init__): (CollectRecorder.pytest_collectreport): (WebDriverSeleniumExecutor): (WebDriverSeleniumExecutor.__init__): (WebDriverSeleniumExecutor.collect): (WebDriverSeleniumExecutor.run): * Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py: (WebDriverTestRunner): (WebDriverTestRunner.__init__): (WebDriverTestRunner.run): (WebDriverTestRunner.print_results): (WebDriverTestRunner.dump_results_to_json_file): * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py: Added. (WebDriverTestRunnerSelenium): (WebDriverTestRunnerSelenium.__init__): (WebDriverTestRunnerSelenium._tests_dir): (WebDriverTestRunnerSelenium.collect_tests): (WebDriverTestRunnerSelenium.run): (WebDriverTestRunnerSelenium.results): * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py: (WebDriverTestRunnerW3C.__init__): (WebDriverTestRunnerW3C.run): * Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: 2017-11-30 Alex Christensen REGRESSION (r224791): cookies are shared between ephemeral sessions in the same process pool https://bugs.webkit.org/show_bug.cgi?id=180235 Reviewed by Joseph Pecoraro. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/CookiePrivateBrowsing.mm: Added. (-[CookiePrivateBrowsingDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-11-30 Stephan Szabo Make LegacyCustomProtocolManager optional for network process https://bugs.webkit.org/show_bug.cgi?id=176230 Reviewed by Alex Christensen. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-30 Dewei Zhu HTTP server driver is responsible for ensuring the dependencies of HTTP server. https://bugs.webkit.org/show_bug.cgi?id=180231 Reviewed by Stephanie Lewis. Added the logic to ensure system environment meet the requirments of launching the http server. * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: (SimpleHTTPServerDriver.serve): (SimpleHTTPServerDriver.set_device_id): (SimpleHTTPServerDriver): (SimpleHTTPServerDriver._ensure_http_server_dependencies): 2017-11-30 Basuke Suzuki [WinCairo] Cannot build without Internet connection https://bugs.webkit.org/show_bug.cgi?id=180068 Reviewed by Alex Christensen With no Internet connection, if libraries has been downloaded before, trust that version and keep building. * Scripts/download-latest-github-release.py: (Status): (current_release): (has_latest_release): (main): 2017-11-30 Alex Christensen WKURLSchemeHandler.request should include HTTPBody https://bugs.webkit.org/show_bug.cgi?id=180220 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm: (-[FormSubmissionDelegate webView:startURLSchemeTask:]): 2017-11-30 Carlos Alberto Lopez Perez Add a script for automatically running the buildbot configurations on a test environment. https://bugs.webkit.org/show_bug.cgi?id=169084 Reviewed by Michael Catanzaro. This new script does the following: - Creates a temporal workingdir. - Installs buildbot and its dependencies there (very same version used by the webkit.org buildbot master https://build.webkit.org/about ). This is important as there are problems that that may not be detected if you don't test with the same version that will be used on production. - Copies the buildmaster config files to the temporal workingdir. - Performs the required steps to start a buildmaster. - Creates the required config for each slave and starts all of them. The test buildmaster should be accessible at http://localhost:8710/ allowing to trigger manual builds. This allows to test any configuration changes on this test environment that is pretty much identical to the production one. * BuildSlaveSupport/build.webkit.org-config/run-buildbot-test.py: Added. (check_tcp_port_open): (upgrade_db_needed): (create_tempdir): (print_if_error_stdout_stderr): (setup_master_workdir): (wait_for_master_ready): (start_master): (get_list_workers): (start_worker): (clean): (cmd_exists): (check_buildbot_installed): (setup_virtualenv): (configdir_is_valid): (main): 2017-11-30 Aakash Jain [build.webkit.org] Move python code from master.cfg in separate files https://bugs.webkit.org/show_bug.cgi?id=180180 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/master.cfg: Moved code to steps.py and master.cfg appropriately. * BuildSlaveSupport/build.webkit.org-config/factories.py: Moved all factory related code from master.cfg. * BuildSlaveSupport/build.webkit.org-config/steps.py: Moved all steps related code from master.cfg 2017-11-30 Wenson Hsieh WKAttachmentTests.InPlaceImageAttachmentToggleDisplayMode times out on macOS bots https://bugs.webkit.org/show_bug.cgi?id=180200 Reviewed by Alexey Proskuryakov. Rewrites an API test to avoid checking against the hard-coded platform-dependent size of an attachment element. Instead, first insert the attachment element as an icon and compute its size, and then check that the size of the element is restored to this original value after toggling the display mode to in-place mode and back. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (-[TestWKWebView attachmentElementSize]): (-[TestWKWebView waitForAttachmentElementSizeToBecome:]): (TestWebKitAPI::TEST): (platformAttachmentIconElementSize): Deleted. 2017-11-30 Michael Catanzaro [WPE] Stop building Wayland in JHBuild moduleset https://bugs.webkit.org/show_bug.cgi?id=179951 Reviewed by Žan Doberšek. Since Wayland is not used for running tests, and since it does not seem to depend on anything in the JHBuild moduleset, I think we can remove it safely without having to worry that the system version of Wayland might use libraries in the JHBuild environment (which would be unsafe). * wpe/install-dependencies: Install Wayland. * wpe/jhbuild.modules: Stop building Wayland. 2017-11-30 Alexey Proskuryakov Silence the BitVector leak for https://bugs.webkit.org/show_bug.cgi?id=121662 The out of line data pointer isn't stored directly, so the leaks tool cannot see it. * Scripts/webkitpy/port/leakdetector.py: (LeakDetector._callstacks_to_exclude_from_leaks): 2017-11-29 Aakash Jain Fix build.webkit.org broken unit-test after r225080 https://bugs.webkit.org/show_bug.cgi?id=180176 Reviewed by Carlos Garcia Campos. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Updated expected_build_steps. 2017-11-29 Wenson Hsieh [Attachment Support] Implement SPI for clients to make an attachment element display in-place https://bugs.webkit.org/show_bug.cgi?id=180153 Reviewed by Tim Horton. Adds new API tests to cover inserting in-place attachments and updating the display mode of existing attachments, as well as performing a few editing operations (paragraph insertion, cut/paste, list insertion) on attachment elements. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (platformAttachmentIconElementSize): (testVideoData): (testPDFData): (displayOptionsWithMode): (-[TestWKWebView waitForAttachmentElementSizeToBecome:]): (-[_WKAttachment synchronouslySetDisplayOptions:error:]): (TestWebKitAPI::TEST): 2017-11-29 Simon Fraser API test fix after r225288. Make the test work on iOS. * TestWebKitAPI/Tests/WebKit/NoHistoryItemScrollToFragment.mm: (-[DidScrollToFragmentScrollViewDelegate scrollViewDidScroll:]): (TestWebKitAPI::TEST): 2017-11-29 Simon Fraser REGRESSION (r213590): Scrolling to anchors broken in web views when content loaded via HTML string https://bugs.webkit.org/show_bug.cgi?id=180155 rdar://problem/34220827 Reviewed by Zalan Bujtas. API test that loads a page with a relative anchor, and simulates a click to scroll to it. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit/NoHistoryItemScrollToFragment.mm: Added. (-[DidScrollToFragmentDelegate _webViewDidScroll:]): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit/scroll-to-anchor.html: Added. 2017-11-29 Ryan Haddad webkitpy EWS should be present on the dashboard. https://bugs.webkit.org/show_bug.cgi?id=179801 Reviewed by Aakash Jain. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js: (BubbleQueueServer): Add Webkitpy EWS. 2017-11-29 Simon Fraser Viewport unit values affected by Comand-+ zoom https://bugs.webkit.org/show_bug.cgi?id=145614 Reviewed by Zalan Bujtas. Fix Command+ and Command- in MiniBrowser to do zooming, rather than being tied to editing commands. * MiniBrowser/mac/MainMenu.xib: 2017-11-29 Alex Christensen Add test for _WKVisitedLinkStore.addVisitedLinkWithString https://bugs.webkit.org/show_bug.cgi?id=180152 Reviewed by Chris Dumez. * TestWebKitAPI/Tests/WebKitCocoa/VisitedLinkStore.mm: (TestWebKitAPI::TEST): 2017-11-29 Jonathan Bedard webkitpy: Trying to use iOS versions from machines without iOS SDKs doesn't make sense https://bugs.webkit.org/show_bug.cgi?id=179534 Reviewed by Brent Fulgham. Provide more specific information in builders.py so that machines do not try and calculate an iOS SDK version while running tests. * Scripts/webkitpy/port/builders.py: Explicitly specify a version for iOS Simulator. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort._version_from_name): Attempt to extract the iOS version from the name of the port. (IOSSimulatorPort.ios_version): Use specified iOS version if a version is detected in in the provided name string (just like Mac). 2017-11-29 Robin Morisset The recursive tail call optimisation is wrong on closures https://bugs.webkit.org/show_bug.cgi?id=179835 Reviewed by Saam Barati. This just includes merge-sort-cps.js to the list of benchmarks ran by run-jsc-benchmarks --tail-bench * Scripts/run-jsc-benchmarks: 2017-11-28 Carlos Garcia Campos WebDriver: add an option to dump test results to a json file https://bugs.webkit.org/show_bug.cgi?id=180082 Reviewed by Brian Burg. Add --json-output command line option to run-webdriver-tests to dump test results to a json file in a format compatible with the W3C report. WebDriverTestResult now represents a test file and contains a list of subtests, instead of having one WebDriverTestResult per subtest. This way we can store also the harness result and dump the results to different formats. * Scripts/run-webdriver-tests: * Scripts/webkitpy/webdriver_tests/webdriver_test_result.py: (WebDriverTestResult.__init__): (WebDriverTestResult): (WebDriverTestResult.add_subtest_results): * Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py: (WebDriverTestRunner.print_results): (WebDriverTestRunner): (WebDriverTestRunner.dump_results_to_json_file): * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py: (WebDriverTestRunnerW3C.run): 2017-11-28 Alexey Proskuryakov Stop silencing leaks in TextCodecICU::registerCodecs, as the problem was fixed a while ago. https://bugs.webkit.org/show_bug.cgi?id=118505 Reviewed by Joseph Pecoraro. * Scripts/valgrind/suppressions.txt: * Scripts/webkitpy/port/leakdetector.py: (LeakDetector._callstacks_to_exclude_from_leaks): 2017-11-28 Ms2ger Stop modifying self.expectations in TestExpectationLine.expected_behavior. https://bugs.webkit.org/show_bug.cgi?id=180074 Reviewed by Simon Fraser. In particular, getting the property multiple times on a skipped test expectation line (which happens when using `Tools/Scripts/run-webkit-tests --print-expectations` if a directory containing multiple tests is skipped) would yield [pass, skip], then [pass, skip, skip], then [pass, skip, skip, skip], and so on. * Scripts/webkitpy/layout_tests/models/test_expectations.py: (TestExpectationLine.expected_behavior): copy self.expectations before modifying it. 2017-11-14 Carlos Garcia Campos Move JSONValues to WTF and convert uses of InspectorValues.h to JSONValues.h https://bugs.webkit.org/show_bug.cgi?id=173793 Reviewed by Joseph Pecoraro. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/JSONValue.cpp: Renamed from Tools/TestWebKitAPI/Tests/JavaScriptCore/InspectorValue.cpp. (TestWebKitAPI::TEST): 2017-11-28 Ryan Haddad Bugs filed from the flakiness dashboard should include a link to the dashboard https://bugs.webkit.org/show_bug.cgi?id=180090 Reviewed by Aakash Jain. * TestResultServer/static-dashboards/flakiness_dashboard.js: (createBugHTML): Open the bug compose page in a new tab and include a link to the flakiness dashboard results for the selected test. 2017-11-28 Jonathan Bedard webkitpy: Standardize Version representation https://bugs.webkit.org/show_bug.cgi?id=179677 Reviewed by Alex Christensen. Standardize a single method of representing versions in the Version object constructor. Provide static methods for converting string and lists/tuples to Version objects. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo.__init__): Parse Version object from string instead of using the constructor. (PlatformInfo.xcode_sdk_version): Ditto. (PlatformInfo.xcode_version): Ditto. (PlatformInfo._win_version): Construct Version object from list. * Scripts/webkitpy/common/system/platforminfo_mock.py: (MockPlatformInfo.xcode_sdk_version): (MockPlatformInfo.xcode_version): * Scripts/webkitpy/common/version.py: (Version): (Version.from_string): Parse string of the form 'x.x.x'. (Version.from_iterable): Construct a version object from a list, tuple or other indexable object. (Version.__init__): Construct a Version object from integers. * Scripts/webkitpy/common/version_name_map.py: (VersionNameMap.__init__): Use integer Version constructor. (VersionNameMap._automap_to_major_version): Ditto. (VersionNameMap.to_name): (VersionNameMap.strip_name_formatting): Construct Version from string. * Scripts/webkitpy/common/version_name_map_unittest.py: (VersionMapTestCase.test_mac_version_by_name): Use integer Version constructor. (VersionMapTestCase.test_mac_name_by_version): Ditto. (VersionMapTestCase.test_ios_name_by_version): Ditto. * Scripts/webkitpy/common/version_unittest.py: (VersionTestCase.test_string_constructor): (VersionTestCase.test_from_list): (VersionTestCase.test_from_tuple): (VersionTestCase.test_int_constructor): (VersionTestCase.test_len): (VersionTestCase.test_set_by_int): (VersionTestCase.test_set_by_string): (VersionTestCase.test_get_by_int): (VersionTestCase.test_get_by_string): (VersionTestCase.test_string): (VersionTestCase.test_contained_in): (VersionTestCase.test_compare_versions): (VersionTestCase.test_list_constructor): Deleted. (VersionTestCase.test_tuple_constructor): Deleted. (VersionTestCase.test_copy_constructor): Deleted. (VersionTestCase.test_none_constructor): Deleted. * Scripts/webkitpy/port/ios.py: (IOSPort.default_baseline_search_path): Handle case where ios_version is None. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.ios_version): Return None rather than an empty version. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.simulator_runtime): Parse Version object from string instead of using the constructor. (IOSSimulatorPort.ios_version): Return None rather than an empty version. * Scripts/webkitpy/xcode/simulator.py: (Simulator._parse_runtimes): Parse Version object from string instead of using the constructor. (Simulator._parse_devices): Ditto. * Scripts/webkitpy/xcode/simulator_unittest.py: 2017-11-28 Daniel Bates [Cocoa] First pass at implementing alternative presentation button element https://bugs.webkit.org/show_bug.cgi?id=179785 Part of Reviewed by Brent Fulgham. Add a test that substitutes the alternative presentation button for an element in the page and clicks it. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add test. * TestWebKitAPI/Tests/WebKitCocoa/ClickAlternativePresentationButton.mm: Added. (didClickAlternativePresentationButton): (-[ClickAlternativePresentationButton webProcessPlugIn:didCreateBrowserContextController:]): * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST): (-[AlternativePresentationButtonDelegate _webView:didClickAlternativePresentationButtonWithUserInfo:]): (-[AlternativePresentationButtonDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): 2017-11-28 Carlos Garcia Campos REGRESSION(r225166): [GTK] Skipped unit tests are considered failures after glib upgrade https://bugs.webkit.org/show_bug.cgi?id=180072 Reviewed by Michael Catanzaro. This is a bug in GLib that has already been fixed. Backport the patch to fix it until there's a new GLib release we can depend on. * gtk/jhbuild.modules: * gtk/patches/glib-gtester-do-not-consider-skipped-tests-as-failures.patch: Added. 2017-11-28 Fujii Hironori webkitpy: PlatformInfo raises AssertionError "assert self.os_version is not None" in Cygwin since Bug 179621 https://bugs.webkit.org/show_bug.cgi?id=180069 Reviewed by Daniel Bates. "Version 10.0.16299" was interpreted as 0.0.16299. Fix the wrong regexp for 'ver' command. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo._win_version_from_cmd): Replace \d with \d+. 2017-11-28 Carlos Garcia Campos [GTK] WebDriver: disable XSS auditor when running WebDriver tests https://bugs.webkit.org/show_bug.cgi?id=180075 Reviewed by Carlos Alberto Lopez Perez. Some tests are now doing inline('') which is rejected by the XSS auditor because the script source is part of the request URL. * Scripts/webkitpy/webdriver_tests/webdriver_driver_gtk.py: (WebDriverGtk.capabilities): Disable XSS auditor. 2017-11-28 Carlos Garcia Campos WebDriver: add timeout option to run-webdriver-tests script https://bugs.webkit.org/show_bug.cgi?id=179940 Reviewed by Carlos Alberto Lopez Perez. We need to handle timeouts to be able to run the tests in the bots. pytest doesn't support timeouts, but there's a plugin pytest_timeout that can be used for that. * Scripts/run-webdriver-tests: Add --timeout command line option. * Scripts/webkitpy/thirdparty/__init__.py: (AutoinstallImportHook.find_module): Check if pytest_timeout is imported to install it. (AutoinstallImportHook._install_pytest_timeout): Install pytest_timeout from pypi. * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py: (WebDriverTestRunnerW3C.__init__): Set PYTEST_TIMEOUT env var with the timeout given. * Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: (WebDriverW3CExecutor.run): Clarify that the timeout received by do_wdspec() is ignored, and pass 0 instead of 25. 2017-11-27 Aakash Jain Do not run webkitpy tests on multiple EWSes https://bugs.webkit.org/show_bug.cgi?id=179834 Reviewed by Alexey Proskuryakov. Do not run webkitpy tests in every EWS. We now have a dedicated webkitpy test EWS. * Scripts/webkitpy/tool/steps/runtests.py: (RunTests.run): Do not run webkitpy tests in EWSes. These tests will still run when --non-interactive option is not passed. 2017-11-27 Jonathan Bedard webkitpy: Better name-version mapping (Part 1) https://bugs.webkit.org/show_bug.cgi?id=179621 Reviewed by David Kilzer. Mapping version numbers to version names should occur in a central location. This has a few advantages. First, it makes iterating through versions easier. Second, it allows for apple_additions to define an additional set of name mappings. Lastly, it will allow, in a future patch, for us to track version instead of version name, only mapping version to version name when required. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo.__init__): (PlatformInfo._determine_os_name): Use VersionNameMap instead of custom functions mapping version to name. (PlatformInfo._determine_linux_version): Deleted. (PlatformInfo._determine_mac_version): Deleted. (PlatformInfo._determine_win_version): Deleted. * Scripts/webkitpy/common/system/platforminfo_unittest.py: (TestPlatformInfo.test_os_name_and_wrappers): (TestPlatformInfo.test_os_version): (TestPlatformInfo.test_display_name): (TestPlatformInfo.test_total_bytes_memory): * Scripts/webkitpy/common/version.py: (Version.contained_in): Add partial version mapping. * Scripts/webkitpy/common/version_name_map.py: Added. (VersionNameMap): Holds a mapping of version name to version object. (VersionNameMap.map): Don't re-create VersionNameMap every time. (VersionNameMap.__init__): Initialize mapping, use platform to define the default system platform. (VersionNameMap._automap_to_major_version): Some operating systems, such as iOS, have a naming scheme based on their major version and os name. Automatically generate such mappings. (VersionNameMap.to_name): Given a version object, platform name and table, find the closest matching version name. (VersionNameMap.strip_name_formatting): Remove spaces and extract the major version, if a version string is included in the name. (VersionNameMap.from_name): Return an os name and version given a version name. * Scripts/webkitpy/common/version_name_map_unittest.py: Added. (VersionMapTestCase): (VersionMapTestCase.test_default_system_platform): (VersionMapTestCase.test_mac_version_by_name): (VersionMapTestCase.test_ios_version_by_name): (VersionMapTestCase.test_mac_name_by_version): (VersionMapTestCase.test_ios_name_by_version): * Scripts/webkitpy/common/version_unittest.py: (VersionTestCase.test_contained_in): * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.ios_version): Map os_version name to version number. 2017-11-27 Don Olmstead [CMake][Win] Conditionally select DLL CRT or static CRT https://bugs.webkit.org/show_bug.cgi?id=170594 Reviewed by Alex Christensen. * DumpRenderTree/PlatformWin.cmake: * MiniBrowser/win/CMakeLists.txt: 2017-11-27 Yacine Bandou [GTK][WPE] Add "enable-encrypted-media" property to WebKitWebSettings https://bugs.webkit.org/show_bug.cgi?id=18005 Reviewed by Michael Catanzaro. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: (testWebKitSettings): 2017-11-27 Tim Horton One too many zeroes in macOS version number in FeatureDefines https://bugs.webkit.org/show_bug.cgi?id=180011 Reviewed by Dan Bernstein. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-27 Per Arne Vollan [Win] The number of webkit-patch iterations on EWS should be configurable. https://bugs.webkit.org/show_bug.cgi?id=178517 Reviewed by Darin Adler. Add a new RESET_AFTER_ITERATION argument to the EWS shell script. * EWSTools/start-queue-win.sh: 2017-11-27 Per Arne Vollan [Win] Switch to VS2017 on EWS bots. https://bugs.webkit.org/show_bug.cgi?id=178516 Reviewed by Darin Adler. * EWSTools/start-queue-win.sh: 2017-11-27 Carlos Garcia Campos [SOUP] Layout test media/track/track-text-track-cue-list.html crash with g_source_set_ready_time: assertion 'source->ref_count > 0' failed https://bugs.webkit.org/show_bug.cgi?id=176806 Reviewed by Carlos Alberto Lopez Perez. This was caused by a GLib bug that has already been fixed. Upgrade glib to 2.54.2. * gtk/jhbuild.modules: * gtk/patches/gdate-suppress-string-format-literal-warning.patch: Removed. 2017-11-24 Darin Adler * TestWebKitAPI/Tests/WTF/OptionSet.cpp: (TestWebKitAPI::TEST): Added a test for OptionSet operator|. 2017-11-24 Mark Lam Move unsafe jsc shell test functions to the $vm object. https://bugs.webkit.org/show_bug.cgi?id=179980 Reviewed by Yusuke Suzuki. Always set --useDollarVM=true for jsc runs of benchmarks. This is needed because some microbenchmarks relies on createBuiltin(). Also set --useDollarVM=true for runExceptionFuzz and runExecutableAllocationFuzz. * Scripts/run-jsc-benchmarks: * Scripts/run-jsc-stress-tests: 2017-11-23 Darin Adler Reduce WTF::String operations that do unnecessary Unicode operations instead of ASCII https://bugs.webkit.org/show_bug.cgi?id=179907 Reviewed by Sam Weinig. * DumpRenderTree/mac/DumpRenderTree.mm: (changeWindowScaleIfNeeded): Use containsIgnoringASCIICase. * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::urlContains const): Ditto. 2017-11-22 Ali Juma Implement VisualViewport API attributes https://bugs.webkit.org/show_bug.cgi?id=179385 Reviewed by Frédéric Wang. Enable the VisualViewportAPI in layout tests. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * DumpRenderTree/win/DumpRenderTree.cpp: (enableExperimentalFeatures): 2017-11-22 Tim Horton and Michael Catanzaro Remove build-webkit's notion of feature flags having a default value https://bugs.webkit.org/show_bug.cgi?id=177338 Reviewed by Carlos Alberto Lopez Perez. Delegate feature flag default values to the build system. (FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone) * BuildSlaveSupport/build.webkit.org-config/config.json: * BuildSlaveSupport/build.webkit.org-config/master.cfg: (Factory.__init__): Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable bots instead of --default-cmake-features. * Scripts/build-webkit: (cMakeArgsFromFeatures): Deleted. Default feature values to 'undef'. Remove the --default-cmake-features argument; it is now the default. Add --no-experimental-features to replace it. Stop printing the default feature flag value in the help. Avoid propagating undefined values to the build system; only mention flags that are overridden on the command line. This has the nice side effect of using the default CMake features for CMake builds, but still allowing toggling of them using the prettier --FEATURE and --no-FEATURE arguments. * Scripts/webkitdirs.pm: (generateBuildSystemFromCMakeProject): No longer need to suppress CMake warnings about unused arguments. * Scripts/webkitperl/FeatureList.pm: Remove the default values from the feature list. 2017-11-22 Mark Lam [Re-landing] Pass --useDollarVM=true to all JSC tests. https://bugs.webkit.org/show_bug.cgi?id=179647 Reviewed by Saam Barati. * Scripts/run-jsc-stress-tests: 2017-11-22 Commit Queue Unreviewed, rolling out r225093. https://bugs.webkit.org/show_bug.cgi?id=179938 Compilation failed on WinCairo 64-bit Release (Requested by fredw on #webkit). Reverted changeset: "Implement VisualViewport API attributes" https://bugs.webkit.org/show_bug.cgi?id=179385 https://trac.webkit.org/changeset/225093 2017-11-21 Ali Juma Implement VisualViewport API attributes https://bugs.webkit.org/show_bug.cgi?id=179385 Reviewed by Frédéric Wang. Enable the VisualViewportAPI in layout tests. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * DumpRenderTree/win/DumpRenderTree.cpp: (enableExperimentalFeatures): 2017-11-21 Carlos Garcia Campos [WPE] Run unit tests in the bots https://bugs.webkit.org/show_bug.cgi?id=179910 Reviewed by Michael Catanzaro. Add a step to run unit tests in WPE test bots. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (RunGLibAPITests): (RunGtkAPITests): (RunWPEAPITests): (TestFactory.__init__): (RunGtkAPITests.start): Deleted. (RunGtkAPITests.commandComplete): Deleted. (RunGtkAPITests.evaluateCommand): Deleted. (RunGtkAPITests.getText): Deleted. (RunGtkAPITests.getText2): Deleted. * wpe/jhbuild.modules: Upgrade WPEBackend-mesa to fix crashes when running unit tests. 2017-11-21 Tomas Popela Fix WebKitGTK+ compilation Reviewed by Carlos Garcia Campos. File "/builddir/build/BUILD/webkitgtk-2.19.2/Tools/gtk/generate-gtkdoc", line 31, in import common ImportError: No module named common * gtk/manifest.txt.in: Add Tools/glib/common.py to the tarball. 2017-11-21 Ms2ger [GTK] Avoid warning in jhbuildrc. https://bugs.webkit.org/show_bug.cgi?id=179913 Reviewed by Carlos Garcia Campos. Apparently this is not quite a real python file; this declaration causes warnings like I: unknown keys defined in configuration file: top_level_directory which break run-webkit-tests. * gtk/jhbuildrc: 2017-11-21 Carlos Garcia Campos Unreviewed. Fix WPE make distcheck. * wpe/manifest.txt.in: Add generate-inspector-gresource-manifest.py to the tarball. 2017-11-20 Carlos Garcia Campos Unreviewed. Fix GTK+ make distcheck. * gtk/manifest.txt.in: Add generate-inspector-gresource-manifest.py to the tarball. 2017-11-20 Michael Catanzaro [WPE] Disable ACCELERATED_2D_CANVAS in FeatureList.pm https://bugs.webkit.org/show_bug.cgi?id=179889 Reviewed by Darin Adler. * Scripts/webkitperl/FeatureList.pm: 2017-11-20 Michael Catanzaro Unreviewed, speculative attempt to fix run-gtk-tests after r225047 https://bugs.webkit.org/show_bug.cgi?id=173772 * jhbuild/jhbuildutils.py: (enter_jhbuild_environment_if_available): 2017-11-20 Mario Sanchez Prada [GTK] New API to add, retrieve and delete cookies via WebKitCookieManager https://bugs.webkit.org/show_bug.cgi?id=177932 Reviewed by Carlos Garcia Campos. Added new test cases to cover the newly added API for WebKitCookieManager: webkit_cookie_manager_add_cookie, webkit_cookie_manager_get_cookies and webkit_cookie_manager_delete_cookie. * TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp: (testCookieManagerAddCookie): Added. (testCookieManagerGetCookies): Added. (testCookieManagerDeleteCookie): Added. (serverCallback): Small update to avoid hardcoding strings we reuse. (beforeAll): Added the new test cases to the test suite. 2017-11-20 Stephan Szabo [Win] Update ruby JSC test writer for gigacage changes https://bugs.webkit.org/show_bug.cgi?id=178757 Reviewed by Keith Miller. * Scripts/webkitruby/jsc-stress-test-writer-ruby.rb: Add additionalEnv to ruby test writer Plan 2017-11-20 Michael Catanzaro Remove ENABLE_ALLINONE_BUILD option https://bugs.webkit.org/show_bug.cgi?id=179823 Reviewed by Darin Adler. * Scripts/webkitperl/FeatureList.pm: 2017-11-20 Carlos Garcia Campos Unreviewed. Fix WPE build after r225047. Remove changes from an old patch committed by mistake in r225047. * WebKitTestRunner/PlatformWebView.h: * WebKitTestRunner/wpe/PlatformWebViewWPE.cpp: (WTR::PlatformWebView::windowSnapshotImage): 2017-11-20 Carlos Garcia Campos [WPE] Add run-wpe-tests script to run WPE glib API tests https://bugs.webkit.org/show_bug.cgi?id=173772 Reviewed by Michael Catanzaro. Move common code from run-gtk-tests to api_test_runner.py, to be shared by both run-gtk-tests and un-wpe-tests. * Scripts/run-gtk-tests: (GtkTestRunner): (GtkTestRunner.__init__): (GtkTestRunner._start_accessibility_daemons): (GtkTestRunner._setup_testing_environment): (GtkTestRunner._tear_down_testing_environment): (GtkTestRunner.is_glib_test): (GtkTestRunner.is_google_test): * Scripts/run-wpe-tests: Added. (WPETestRunner): (WPETestRunner.__init__): (WPETestRunner.is_glib_test): (WPETestRunner.is_google_test): * Scripts/webkitpy/port/headlessdriver.py: Added. (HeadlessDriver): (HeadlessDriver._setup_environ_for_test): (HeadlessDriver._start): * Scripts/webkitpy/port/headlessdriver_unittest.py: Added. (HeadlessDriverTest): (HeadlessDriverTest.make_driver): (HeadlessDriverTest.make_environment): (HeadlessDriverTest.test_environment_needed_variables): (HeadlessDriverTest.test_environment_forbidden_variables): * Scripts/webkitpy/port/wpe.py: (WPEPort._driver_class): * WebKitTestRunner/PlatformWebView.h: * WebKitTestRunner/wpe/PlatformWebViewWPE.cpp: (WTR::PlatformWebView::windowSnapshotImage): * glib/api_test_runner.py: Copied from Tools/Scripts/run-gtk-tests. (SkippedTest): (SkippedTest.__init__): (SkippedTest.__str__): (SkippedTest.skip_entire_suite): (SkippedTest.skip_for_build_type): (TestTimeout): (TestRunner): (TestRunner.__init__): (TestRunner._test_programs_base_dir): (TestRunner._get_tests_from_dir): (TestRunner._get_tests): (TestRunner._create_driver): (TestRunner._setup_testing_environment): (TestRunner._tear_down_testing_environment): (TestRunner._test_cases_to_skip): (TestRunner._should_run_test_program): (TestRunner._kill_process): (TestRunner._start_timeout): (TestRunner._start_timeout._alarm_handler): (TestRunner._stop_timeout): (TestRunner._waitpid): (TestRunner._run_test_glib): (TestRunner._run_test_glib.parse_line): (TestRunner._run_test_glib.parse_line.set_test_result): (TestRunner._get_tests_from_google_test_suite): (TestRunner._run_google_test): (TestRunner._run_google_test_suite): (TestRunner.is_glib_test): (TestRunner.is_google_test): (TestRunner._run_test): (TestRunner.run_tests): (add_options): * glib/common.py: Renamed from Tools/gtk/common.py. (get_build_path.is_valid_build_directory): * gtk/generate-gtkdoc: * gtk/jhbuildrc: * gtk/ycm_extra_conf.py: 2017-11-20 Carlos Garcia Campos [WPE] Build C API tests https://bugs.webkit.org/show_bug.cgi?id=179817 Reviewed by Michael Catanzaro. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/PlatformWPE.cmake: * TestWebKitAPI/PlatformWebView.h: * TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp: (TestWebKitAPI::Util::URLForNonExistentResource): (TestWebKitAPI::Util::isKeyDown): * TestWebKitAPI/wpe/PlatformWebViewWPE.cpp: Added. (TestWebKitAPI::PlatformWebView::PlatformWebView): (TestWebKitAPI::PlatformWebView::~PlatformWebView): (TestWebKitAPI::PlatformWebView::initialize): (TestWebKitAPI::PlatformWebView::page const): (TestWebKitAPI::PlatformWebView::resizeTo): (TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress): (TestWebKitAPI::PlatformWebView::simulateAltKeyPress): (TestWebKitAPI::PlatformWebView::simulateRightClick): (TestWebKitAPI::PlatformWebView::simulateMouseMove): 2017-11-20 Carlos Garcia Campos [WPE] Add env var WPE_USE_HEADLESS_VIEW_BACKEND https://bugs.webkit.org/show_bug.cgi?id=173770 Reviewed by Michael Catanzaro. Move HeadlessViewBackend implementation to a common place and build it as a private static library to be used by WTR, GLib API tests and eventually C API tests too. WTR uses the HeadlessViewBackend unconditionally, but GLib API tests use it only when WPE_USE_HEADLESS_VIEW_BACKEND environment variable is present and not "0". * CMakeLists.txt: Include wpe/HeadlessViewBackend directory for developer builds. * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: (testAutomationSessionRequestSession): * TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp: (testCookieManagerEphemeral): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp: (testPrivateBrowsing): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: (testWebContextProxySettings): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: (testWebViewWebContext): (testWebViewEphemeral): * TestWebKitAPI/glib/PlatformWPE.cmake: * TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::createWebViewBackend): (Test::createWebView): * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: (WebViewTest::initializeWebView): * WebKitTestRunner/PlatformWPE.cmake: * wpe/HeadlessViewBackend/CMakeLists.txt: Added. * wpe/HeadlessViewBackend/HeadlessViewBackend.cpp: Renamed from Tools/WebKitTestRunner/wpe/HeadlessViewBackend.cpp. (HeadlessViewBackend::HeadlessViewBackend): * wpe/HeadlessViewBackend/HeadlessViewBackend.h: Renamed from Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h. 2017-11-20 Carlos Garcia Campos [WPE] webkit_web_view_new() should enable specifying wpe_view_backend object https://bugs.webkit.org/show_bug.cgi?id=178655 Reviewed by Michael Catanzaro. Update unit tests to create web views using helper methods that have a different implementation for GTK and WPE. Also add a new test case to check the new API to create a WebKitWebView with a WPE backend. Use WKViewCreate in WTR and fix a memory leak in HeadlessViewBackend. * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: (testAutomationSessionRequestSession): * TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp: (testWebKitWebViewSessionState): (testWebKitWebViewSessionStateWithFormData): (testWebKitWebViewNavigationAfterSessionRestore): * TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp: (testWebResourceGetDataError): * TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp: (testWebViewNewWithUserContentManager): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: (testWebContextEphemeral): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: (testWebViewWebContext): (testWebViewWebContextLifetime): (testWebViewWebBackend): (testWebViewSettings): (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp: (testWebsiteDataEphemeral): * TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::createWebView): * WebKitTestRunner/wpe/HeadlessViewBackend.cpp: (HeadlessViewBackend::~HeadlessViewBackend): * WebKitTestRunner/wpe/PlatformWebViewWPE.cpp: (WTR::PlatformWebView::PlatformWebView): 2017-11-20 Carlos Garcia Campos [GTK][WPE] webkit_cookie_manager_delete_all_cookies doesn't delete the cookies if called before a web process is running https://bugs.webkit.org/show_bug.cgi?id=175265 Reviewed by Michael Catanzaro. Add test case. * TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp: (testCookieManagerPersistentStorageDeleteAll): (serverCallback): (beforeAll): 2017-11-19 Tim Horton Remove unused TOUCH_ICON_LOADING feature flag https://bugs.webkit.org/show_bug.cgi?id=179873 Reviewed by Simon Fraser. * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-19 Tim Horton Remove unused LEGACY_VENDOR_PREFIXES feature flag https://bugs.webkit.org/show_bug.cgi?id=179872 Reviewed by Darin Adler. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-19 Yusuke Suzuki Unreviewed, rolling out r225016. Break webkit-patch on Ubuntu and Debian Linux Reverted changeset: "webkitpy: Better name-version mapping (Part 1)" https://bugs.webkit.org/show_bug.cgi?id=179621 https://trac.webkit.org/changeset/225016 2017-11-18 Jonathan Bedard webkitpy: Better name-version mapping (Part 1) https://bugs.webkit.org/show_bug.cgi?id=179621 Reviewed by David Kilzer. Mapping version numbers to version names should occur in a central location. This has a few advantages. First, it makes iterating through versions easier. Second, it allows for apple_additions to define an additional set of name mappings. Lastly, it will allow, in a future patch, for us to track version instead of version name, only mapping version to version name when required. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo.__init__): (PlatformInfo._determine_os_name): Use VersionNameMap instead of custom functions mapping version to name. (PlatformInfo._determine_linux_version): Deleted. (PlatformInfo._determine_mac_version): Deleted. (PlatformInfo._determine_win_version): Deleted. * Scripts/webkitpy/common/system/platforminfo_unittest.py: (TestPlatformInfo.test_os_name_and_wrappers): (TestPlatformInfo.test_os_version): (TestPlatformInfo.test_display_name): (TestPlatformInfo.test_total_bytes_memory): * Scripts/webkitpy/common/version.py: (Version.contained_in): Add partial version mapping. * Scripts/webkitpy/common/version_name_map.py: Added. (VersionNameMap): Holds a mapping of version name to version object. (VersionNameMap.map): Don't re-create VersionNameMap every time. (VersionNameMap.__init__): Initialize mapping, use platform to define the default system platform. (VersionNameMap._automap_to_major_version): Some operating systems, such as iOS, have a naming scheme based on their major version and os name. Automatically generate such mappings. (VersionNameMap.to_name): Given a version object, platform name and table, find the closest matching version name. (VersionNameMap.strip_name_formatting): Remove spaces and extract the major version, if a version string is included in the name. (VersionNameMap.from_name): Return an os name and version given a version name. * Scripts/webkitpy/common/version_name_map_unittest.py: Added. (VersionMapTestCase): (VersionMapTestCase.test_default_system_platform): (VersionMapTestCase.test_mac_version_by_name): (VersionMapTestCase.test_ios_version_by_name): (VersionMapTestCase.test_mac_name_by_version): (VersionMapTestCase.test_ios_name_by_version): * Scripts/webkitpy/common/version_unittest.py: (VersionTestCase.test_contained_in): 2017-11-17 John Wilander Storage Access API: UI process should update network process about granted access https://bugs.webkit.org/show_bug.cgi?id=176943 Reviewed by Alex Christensen. This adds the TestRunner function setStatisticsHasHadNonRecentUserInteraction() which enables testing of prevalent resources with user interaction outside the 24 hour window. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStorageAccessAPIEnabled): (WTR::TestRunner::setStatisticsHasHadNonRecentUserInteraction): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsHasHadNonRecentUserInteraction): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::initializeWebViewConfiguration): (WTR::TestController::setStatisticsHasHadNonRecentUserInteraction): 2017-11-17 Ryan Haddad Disable failing API tests for rdar://problem/35344202. Unreviewed test gardening. * TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm: 2017-11-17 Joanmarie Diggs AX: [ATK] Fix WKTR's methods for testing row header and column header presence and count https://bugs.webkit.org/show_bug.cgi?id=179837 Reviewed by Chris Fleizach. Add support to rowHeaders() for tables. Return an empty array in rowHeaders() and columnHeaders() upon failure. Rename getRowHeaders() and getColumnHeaders() to getTableRowHeaders() and getTableColumnHeaders() respectively. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::rowHeaders const): (WTR::AccessibilityUIElement::columnHeaders const): (WTR::AccessibilityUIElement::attributesOfColumnHeaders): (WTR::AccessibilityUIElement::attributesOfRowHeaders): 2017-11-16 Don Olmstead [WinCairo] Update WinCairoRequirements https://bugs.webkit.org/show_bug.cgi?id=179790 Reviewed by Alex Christensen. * TestWebKitAPI/PlatformWin.cmake: 2017-11-16 Daniel Bates Add feature define for alternative presentation button element https://bugs.webkit.org/show_bug.cgi?id=179692 Part of Reviewed by Andy Estes. Only enabled on Cocoa platforms by default. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-16 Per Arne Vollan Win EWS bots should reboot after N webkit-patch iterations. https://bugs.webkit.org/show_bug.cgi?id=177970 Reviewed by Brent Fulgham. * EWSTools/start-queue-win.sh: 2017-11-15 Carlos Garcia Campos [WPE] Add initial support for WebDriver https://bugs.webkit.org/show_bug.cgi?id=179727 Reviewed by Michael Catanzaro. Make it possible to run WebDriver tests with WPE. * Scripts/run-webdriver-tests: Add --wpe alias for --platform=wpe. * Scripts/webkitpy/port/wpe.py: (WPEPort.__init__): Initialize _display_server from options. (WPEPort._driver_class): Use WaylandDriver when wayland is passed as display server option. * Scripts/webkitpy/webdriver_tests/webdriver_driver.py: (WebDriver.browser_env): Add virtual method to get the environment that should be used. * Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py: Copied from Tools/Scripts/webkitpy/webdriver_tests/webdriver_driver.py. (WebDriverWPE): (WebDriverWPE.__init__): (WebDriverWPE.binary_path): (WebDriverWPE.browser_name): (WebDriverWPE.capabilities): (WebDriverWPE.browser_env): * Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: (WebDriverW3CExecutor.__init__): Update the environment with the one provided by the driver. * wpe/jhbuild.modules: Upgrade dyz to newer version that supports automation. 2017-11-15 Alex Christensen WebViews scheduled in custom run loop modes should be able to do more than 50ms of work at a time https://bugs.webkit.org/show_bug.cgi?id=179742 Reviewed by Jer Noble. * TestWebKitAPI/Tests/mac/WebViewScheduleInRunLoop.mm: (-[ScheduleInRunLoopDelegate webView:didFinishLoadForFrame:]): (TestWebKitAPI::TEST): Load more than one scheduled WebView to test work that typically takes more than 50 ms. 2017-11-15 Ryan Haddad Unreviewed, rolling out r223781. The test is now returning false, so the FIXME is not needed anymore. Reverted changeset: "WebsiteDataStoreCustomPaths.mm is failing after r223718" https://bugs.webkit.org/show_bug.cgi?id=178596 https://trac.webkit.org/changeset/223781 2017-11-15 Ryan Haddad Unreviewed, rolling out r224863. Introduced LayoutTest crashes on iOS Simulator. Reverted changeset: "Move JSONValues to WTF and convert uses of InspectorValues.h to JSONValues.h" https://bugs.webkit.org/show_bug.cgi?id=173793 https://trac.webkit.org/changeset/224863 2017-11-15 Michael Catanzaro Remove GTK web inspector images https://bugs.webkit.org/show_bug.cgi?id=179716 Reviewed by Carlos Garcia Campos. * Scripts/webkitdirs.pm: (shouldRemoveCMakeCache): * glib/generate-inspector-gresource-manifest.py: (get_filenames.should_ignore_resource): * gtk/manifest.txt.in: * wpe/manifest.txt.in: 2017-11-15 Jonathan Bedard REGRESSION(r221877): 'future' handled incorrectly for mac https://bugs.webkit.org/show_bug.cgi?id=179711 Reviewed by Alex Christensen. * Scripts/webkitpy/port/mac.py: (MacPort.default_baseline_search_path): Use platform/mac- instead of platform/ as the baseline search path. 2017-11-14 Nan Wang AX: AOM: Implement AccessibleNode class and support label and role attributes https://bugs.webkit.org/show_bug.cgi?id=179494 Reviewed by Ryosuke Niwa. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-11-14 Basuke Suzuki [Windows] Fix error while launching subprocess on Windows Python https://bugs.webkit.org/show_bug.cgi?id=179637 Reviewed by Alex Christensen. To pass environment variables to subprocess.popen on Windows Python 2, the dict values must be str not unicode. Also is_native_win() method is added to port. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo.is_native_win): * Scripts/webkitpy/common/system/platforminfo_mock.py: (MockPlatformInfo.is_native_win): * Scripts/webkitpy/common/system/platforminfo_unittest.py: (TestPlatformInfo.test_os_name_and_wrappers): * Scripts/webkitpy/port/server_process.py: (ServerProcess.__init__): 2017-11-14 Carlos Garcia Campos Move JSONValues to WTF and convert uses of InspectorValues.h to JSONValues.h https://bugs.webkit.org/show_bug.cgi?id=173793 Reviewed by Brian Burg. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/JSONValue.cpp: Renamed from Tools/TestWebKitAPI/Tests/JavaScriptCore/InspectorValue.cpp. (TestWebKitAPI::TEST): 2017-11-14 Jonathan Bedard webkitpy: Use more verbose version info from simctl https://bugs.webkit.org/show_bug.cgi?id=179687 Reviewed by Tim Horton. * Scripts/webkitpy/xcode/simulator.py: (Simulator): Address FIXME, use more verbose version. (Simulator._parse_runtimes): 'Internal' no longer stands along, check os for this string instead. * Scripts/webkitpy/xcode/simulator_unittest.py: Mock simctl output specifies iOS 8.4.1, not iOS 8.4. 2017-11-14 Daniel Bates Update comment in FeatureDefines.xcconfig to reflect location of Visual Studio property files for feature defines Following r195498 and r201917 the Visual Studio property files for feature defines have moved from directory WebKitLibraries/win/tools/vsprops to directory Source/cmake/tools/vsprops. Update the comment in FeatureDefines.xcconfig to reflect the new location and names of these files. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-14 Jer Noble Enable Modern EME tests in DumpRenderTree https://bugs.webkit.org/show_bug.cgi?id=179544 Reviewed by Alex Christensen. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): 2017-11-14 Commit Queue Unreviewed, rolling out r224800. https://bugs.webkit.org/show_bug.cgi?id=179684 "Broke CLoop test mozilla/js1_6/Array/regress-304828.js" (Requested by mlam on #webkit). Reverted changeset: "Pass --useDollarVM=true to all JSC tests." https://bugs.webkit.org/show_bug.cgi?id=179647 https://trac.webkit.org/changeset/224800 2017-11-14 Antti Koivisto Enable display:contents by default https://bugs.webkit.org/show_bug.cgi?id=179655 Reviewed by Sam Weinig. No need to enable this specifically for tests anymore. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-11-14 Tim Horton Long pressing a phone number with spaces in it results in a link sheet instead of a data detectors sheet https://bugs.webkit.org/show_bug.cgi?id=179646 Reviewed by Simon Fraser. * TestWebKitAPI/Tests/ios/ActionSheetTests.mm: (-[ActionSheetObserver _dataDetectionContextForWebView:]): (TestWebKitAPI::TEST): Add a test that ensures that a phone number with spaces in it invokes a data detectors sheet, not a normal link sheet. 2017-11-14 Emilio Cobos Álvarez Add committer status for Emilio Cobos Álvarez. https://bugs.webkit.org/show_bug.cgi?id=179667 Unreviewed. * Scripts/webkitpy/common/config/contributors.json: 2017-11-13 Mark Lam Pass --useDollarVM=true to all JSC tests. https://bugs.webkit.org/show_bug.cgi?id=179647 Reviewed by Saam Barati. * Scripts/run-jsc-stress-tests: 2017-11-13 Simon Fraser When navigating back to a page, compositing layers may not use accelerated drawing https://bugs.webkit.org/show_bug.cgi?id=178749 rdar://problem/35158946 Reviewed by Dean Jackson. Fix WTR and DRT to parse "useAcceleratedDrawing" out of "webkit-test-runner" options and use it to set the state of the web view. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (setWebPreferencesForTestOptions): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): (WTR::updateTestOptionsFromTestHeader): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const): 2017-11-13 Basuke Suzuki [Windows] Fix Python error for subprocess.popen with close_fds https://bugs.webkit.org/show_bug.cgi?id=179553 Reviewed by Per Arne Vollan. * Scripts/webkitpy/port/server_process.py: (ServerProcess._start): (ServerProcess._should_close_fds): 2017-11-13 Michael Catanzaro [GTK] Require woff2 1.0.2 and drop direct brotli dependency https://bugs.webkit.org/show_bug.cgi?id=179630 Reviewed by Frédéric Wang. * gtk/jhbuild.modules: 2017-11-08 Keith Miller Async iteration should only fetch the next method once and add feature flag https://bugs.webkit.org/show_bug.cgi?id=179451 Reviewed by Geoffrey Garen. Add feature flag for Async iteration. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-13 Gabriel Ivascu [GTK] Automatically adjust font size when gtk-xft-dpi changes https://bugs.webkit.org/show_bug.cgi?id=142673 Reviewed by Michael Catanzaro. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: (testWebKitSettings): 2017-11-13 Jonathan Bedard check-webkit-style cannot construct valid iOS version without an iOS SDK https://bugs.webkit.org/show_bug.cgi?id=179616 Reviewed by David Kilzer. Instead of throwing an exception when we ask for an unavailable SDK on Mac, we should return None. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo.xcode_sdk_version): Return 'None' version if the machine does not have the requested SDK. 2017-11-13 Keith Miller Uninitialized variable in sort-Xcode-project-file https://bugs.webkit.org/show_bug.cgi?id=179581 Reviewed by Simon Fraser. Previously all the unified source files were named UnifiedSource.mm. This was changed to UnifiedSource-mm.mm to stop Xcode from creating hashes for mm and cpp unified source files with the same number. This broke the expectations in sort-Xcode-project-file. * Scripts/sort-Xcode-project-file: (sortChildrenByFileName): (sortFilesByFileName): 2017-11-13 JF Bastien std::expected: fix and test move https://bugs.webkit.org/show_bug.cgi?id=179617 Reviewed by Alex Christensen. Test that unique_ptr can be moved around properly, both has a value and an error (and in a specialization). * TestWebKitAPI/Tests/WTF/Expected.cpp: (TestWebKitAPI::snowflake::reset): (TestWebKitAPI::snowflake::snowflake): (TestWebKitAPI::snowflake::~snowflake): (TestWebKitAPI::TEST): 2017-11-13 Basuke Suzuki [Windows] Make the port's normalize_test_name() method platform independent. https://bugs.webkit.org/show_bug.cgi?id=179572 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/port/base.py: (Port.normalize_test_name): 2017-11-13 Wenson Hsieh [Attachment Support] Implement SPI for clients to request data for a given attachment https://bugs.webkit.org/show_bug.cgi?id=179586 Reviewed by Darin Adler. Augments existing API tests in WKAttachmentTests to additionally check that -requestData: yields the correct result when performing various editing operations. Also adds a new API test that cuts and pastes an attachment inserted using WKWebView attachment SPI, and expects that the data of the attachment can still be fetched using the _WKAttachment SPI, as well as another test that inserts an empty NSData and expects that requestData: also yields an empty NSData result. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (-[NSData shortDescription]): (-[_WKAttachment synchronouslyRequestData:]): (-[_WKAttachment expectRequestedDataToBe:]): (TestWebKitAPI::TEST): 2017-11-12 Gabriel Ivascu [GTK] Add functionality to handle font sizes in points https://bugs.webkit.org/show_bug.cgi?id=179285 Reviewed by Carlos Garcia Campos and Michael Catanzaro. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: (testWebKitSettings): 2017-11-10 Fujii Hironori check-webkit-style: AttributeError: 'NoneType' object has no attribute 'major' https://bugs.webkit.org/show_bug.cgi?id=179522 Reviewed by Aakash Jain. IOSSimulatorPort.ios_version should return a Version object. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.ios_version): Return a Version object. 2017-11-10 Basuke Suzuki [Win] The way to detect Windows 10 is wrong https://bugs.webkit.org/show_bug.cgi?id=179344 Reviewed by Alex Christensen. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo._determine_win_version): 2017-11-10 Basuke Suzuki [WinCairo] LayoutTests doesn't read TextExpectations files correctly https://bugs.webkit.org/show_bug.cgi?id=179219 Reviewed by Alex Christensen. * Scripts/webkitpy/layout_tests/models/test_expectations.py: (TestExpectationParser._parse_line): * Scripts/webkitpy/port/apple.py: (ApplePort.__init__): (ApplePort._allowed_port_names): (ApplePort): (ApplePort._future_port_name): (ApplePort._generate_all_test_configurations): * Scripts/webkitpy/port/win.py: (WinCairoPort.default_baseline_search_path): (WinCairoPort): (WinCairoPort._future_port_name): 2017-11-10 Basuke Suzuki [WinCairo] Treat 'future' version correctly https://bugs.webkit.org/show_bug.cgi?id=179345 Reviewed by Alex Christensen. * Scripts/webkitpy/port/win.py: (WinCairoPort.default_baseline_search_path): 2017-11-10 Wenson Hsieh Finish rolling out r224544 Rubber-stamped by Tim Horton. Now that https://bugs.webkit.org/show_bug.cgi?id=179431 has been fixed, we can once again allow one of the API tests added in r224512 (WKAttachmentTests.AttachmentUpdatesWhenChangingFontStyles) to test toggling underline style with a selected attachment element. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (TestWebKitAPI::TEST): 2017-11-10 Alex Christensen _WKThumbnailView initialization with WKWebView needs to call correct initWithFrame https://bugs.webkit.org/show_bug.cgi?id=179537 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WebKit/WKThumbnailView.mm: (-[WKThumbnailViewDelegate webView:didFinishNavigation:]): (TestWebKitAPI::TEST): 2017-11-10 Jonathan Bedard webkitpy: Remove find_system_pid from port classes https://bugs.webkit.org/show_bug.cgi?id=179514 Reviewed by David Kilzer. Removing dead code. * Scripts/webkitpy/port/base.py: (Port.find_system_pid): Deleted. * Scripts/webkitpy/port/server_process.py: (ServerProcess._start): * Scripts/webkitpy/port/win.py: (WinPort.find_system_pid): Deleted. 2017-11-10 Aakash Jain fix style failures in webkitpy: multiple statements on one line (semicolon) https://bugs.webkit.org/show_bug.cgi?id=179530 Reviewed by Alex Christensen. * Scripts/webkitpy/common/net/buildbot/buildbot.py: Removed semicolon. * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: Ditto. * Scripts/webkitpy/tool/steps/runtests.py: Ditto. 2017-11-10 Aakash Jain fix style failures in webkitpy: expected 2 blank lines found 1 https://bugs.webkit.org/show_bug.cgi?id=179529 Reviewed by Alex Christensen. * Scripts/webkitpy/benchmark_runner/run_benchmark.py: Added a blank line to follow style guidelines. * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: Ditto. * Scripts/webkitpy/common/system/platforminfo_mock.py: Ditto. * Scripts/webkitpy/common/version.py: Ditto. * Scripts/webkitpy/layout_tests/models/test_failures.py: Ditto. * Scripts/webkitpy/port/mac_unittest.py: Ditto. * Scripts/webkitpy/port/simulator_process.py: Ditto. 2017-11-10 Alex Christensen REGRESSION(r224267): WebViews scheduled with custom run loop modes don't load https://bugs.webkit.org/show_bug.cgi?id=179515 Reviewed by Andy Estes. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/mac/WebViewScheduleInRunLoop.mm: Added. (-[ScheduleInRunLoopDelegate webView:didFinishLoadForFrame:]): (TestWebKitAPI::TEST): 2017-11-10 Fujii Hironori [webkitpy] Fix PlatformInfo._win_version since r224657 https://bugs.webkit.org/show_bug.cgi?id=179520 Reviewed by Aakash Jain. There are two problems. The return value of sys.getwindowsversion() doesn't match with Version.__init__ expects. Truncate the 4th and 5th of it. _win_version_tuple_from_cmd was deleted in r224657. But, it is still needed for Cygwin Python. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo._win_version): Return [0:3] of getwindowsversion(). Call _win_version_from_cmd for Cygwin Python. (PlatformInfo._win_version_from_cmd): Restored. 2017-11-10 Guillaume Emont build-jsc: build testmasm for all platforms using cmake https://bugs.webkit.org/show_bug.cgi?id=179512 Reviewed by Michael Catanzaro. * Scripts/build-jsc: 2017-11-09 Jonathan Bedard webkitpy: Unify version parsing code https://bugs.webkit.org/show_bug.cgi?id=179426 Unreviewed fix to r224657. * Scripts/webkitpy/common/version.py: (Version.__init__): Check if an object is iterable. 2017-11-09 Jonathan Bedard webkitpy: Unify version parsing code https://bugs.webkit.org/show_bug.cgi?id=179426 Reviewed by David Kilzer. webkitpy needs to parse version strings or version lists frequently. Rather than duplicate this code each time it's needed, unify it in a Version class. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo.__init__): Convert mac version string to version object and use _win_version instead of _win_version_tuple. (PlatformInfo.xcode_sdk_version): Convert SDK version string to Version object before returning it. (PlatformInfo.xcode_version): Return Version object instead of version string. (PlatformInfo._determine_mac_version): Accept Version object instead of string, eliminate parsing. (PlatformInfo._determine_win_version): Accept Version object instead of tuple. (PlatformInfo._win_version): Return Version object instead of tuple, have Version object own version string parsing. (PlatformInfo._win_version_tuple): Renamed to _win_version(). (PlatformInfo._win_version_tuple_from_cmd): Deleted. * Scripts/webkitpy/common/system/platforminfo_mock.py: (MockPlatformInfo.xcode_sdk_version): Return Version object instead of string. (MockPlatformInfo.xcode_version): Dittio. * Scripts/webkitpy/common/version.py: Added. (Version): Version object. (Version.__init__): Initialize the Version object with a string, integer, tuple of integers, list of integers or another Version object. (Version.__len__): Return 5 so that the Version object can be treated as a list or tuple. (Version.__getitem__): Get item in Version object by index or string. (Version.__setitem__): Set item in Version object by index or string. (Version.__str__): Convert version to printable string, omitting trailing 0's. (Version.__cmp__): Compare two version strings, major taking precedence over minor, minor taking precedence over build. * Scripts/webkitpy/common/version_unittest.py: Added. (VersionTestCase): Test behavior of Version object. * Scripts/webkitpy/port/ios.py: (IOSPort.default_baseline_search_path): ios_version now returns a Version object. (IOSPort._is_valid_ios_version): Deleted. (IOSPort.get_option): Deleted. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.determine_full_port_name): Use Version object instead of owning parsing. (IOSDevicePort.ios_version): Return Version object instead of string. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.simulator_runtime): Use from_version instead of from_version_string. (IOSSimulatorPort.ios_version): Return Version object instead of string. (IOSSimulatorPort.use_multiple_simulator_apps): Use Version object instead of string. * Scripts/webkitpy/xcode/simulator.py: (Runtime.from_version): Accept Version object instead of string. (Runtime.from_version_string): Replaced by from_version. (Runtime.__repr__): When printing, a runtime's version will be a Version object instead of a tuple. (Simulator._parse_runtimes): Use Version object instead of tuple. (Simulator._parse_devices): Ditto. * Scripts/webkitpy/xcode/simulator_unittest.py: Use Version object instead of tuples. 2017-11-09 Basuke Suzuki [WinCairo] Cannot find ImageDiff executable https://bugs.webkit.org/show_bug.cgi?id=179508 Reviewed by Per Arne Vollan. * Scripts/webkitpy/port/win.py: (WinPort.is_cygwin): (WinPort._path_to_image_diff): (WinPort.find_system_pid): 2017-11-09 Fujii Hironori [WinCairo EWS] svn-apply: 'cp' is not recognized as an internal or external command https://bugs.webkit.org/show_bug.cgi?id=179469 Reviewed by Per Arne Vollan. WinCairo EWS bots haven't installed Cygwin. * Scripts/svn-apply: (scmCopy): Use 'copy' function instead of 'cp' command. 2017-11-09 Carlos Alberto Lopez Perez [WPE] Update dyz (WPE MiniBrowser) https://bugs.webkit.org/show_bug.cgi?id=179492 Reviewed by Michael Catanzaro. Update it to the last version as of today. This version not longer uses the C API. * wpe/jhbuild.modules: 2017-11-09 Christopher Reid Use enum classes within FileSystem https://bugs.webkit.org/show_bug.cgi?id=175172 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: 2017-11-09 Brent Fulgham Test fix after r224609 https://bugs.webkit.org/show_bug.cgi?id=178565 Unreviewed test fix after r224609. Correct two test cases that attempt to push local file URLs in violation of our same origin policies. The fix is to grant universal file access, as we do for similar LayoutTests. * TestWebKitAPI/Tests/WebKit/EphemeralSessionPushStateNoHistoryCallback.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit/PrivateBrowsingPushStateNoHistoryCallback.cpp: (TestWebKitAPI::TEST): 2017-11-09 Michael Catanzaro Unreviewed, remove Dan from the soup network watchlist Per his request. It's not Hotel California; we should probably let him leave. * Scripts/webkitpy/common/config/watchlist: 2017-11-08 Don Olmstead Add Windows powershell EWS script https://bugs.webkit.org/show_bug.cgi?id=179453 Reviewed by Brent Fulgham. * EWSTools/Start-Queue.ps1: Added. 2017-11-08 Jeremy Jones HTMLMediaElement should not use element fullscreen on iOS https://bugs.webkit.org/show_bug.cgi?id=179418 rdar://problem/35409277 Reviewed by Eric Carlson. Add ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN to determine if HTMLMediaElement should use element full screen or not. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-08 Tim Horton [ios-simulator] API test WebKit.BundleParameters is a flaky failure https://bugs.webkit.org/show_bug.cgi?id=178363 Reviewed by Brent Fulgham. * TestWebKitAPI/Tests/WTF/RefCounter.cpp: (TestWebKitAPI::TEST): Add a test. 2017-11-08 Wenson Hsieh [Attachment Support] Implement delegate hooks for attachment element insertion and removal https://bugs.webkit.org/show_bug.cgi?id=179016 Reviewed by Tim Horton. See WebCore/ChangeLog for more details. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (-[AttachmentUpdateObserver init]): (-[AttachmentUpdateObserver inserted]): (-[AttachmentUpdateObserver removed]): (-[AttachmentUpdateObserver _webView:didInsertAttachment:]): (-[AttachmentUpdateObserver _webView:didRemoveAttachment:]): (TestWebKitAPI::ObserveAttachmentUpdatesForScope::ObserveAttachmentUpdatesForScope): (TestWebKitAPI::ObserveAttachmentUpdatesForScope::~ObserveAttachmentUpdatesForScope): (TestWebKitAPI::ObserveAttachmentUpdatesForScope::observer const): (TestWebKitAPI::ObserveAttachmentUpdatesForScope::expectAttachmentUpdates): (-[TestWKWebView _synchronouslyExecuteEditCommand:argument:]): (-[TestWKWebView expectUpdatesAfterCommand:withArgument:expectedRemovals:expectedInsertions:]): (TestWebKitAPI::TEST): 2017-11-08 Carlos Garcia Campos Web Inspector: use JSON::{Array,Object,Value} instead of Inspector{Array,Object,Value} https://bugs.webkit.org/show_bug.cgi?id=173619 Reviewed by Brian Burg. Update InspectorValue unit tests to use JSON namespace and add more basic tests to cover all the API. * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/Tests/JavaScriptCore/InspectorValue.cpp: (TestWebKitAPI::TEST): 2017-11-07 Carlos Garcia Campos REGRESSION(r224179): [GTK] Several WebViewEditor tests are failing since r224179 https://bugs.webkit.org/show_bug.cgi?id=179366 Reviewed by Michael Catanzaro. Use always a toplevel window for WebViewEditor tests instead of creating and destroying one only to flush editor state. * TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp: 2017-11-07 Carlos Garcia Campos [GTK][WPE] Build inspector resources using copy-user-interface-resources.pl script https://bugs.webkit.org/show_bug.cgi?id=179317 Reviewed by Michael Catanzaro. Move generate-inspector-gresource-manifest.py to glib dir to be shared by GTK+ and WPE ports and update it to receive an input directory instead of a list of patterns. File::Copy::Recursive is required by copy-user-interface-resources.pl, so make sure it's installed. * glib/generate-inspector-gresource-manifest.py: Renamed from Tools/gtk/generate-inspector-gresource-manifest.py. (get_filenames): (get_filenames.should_ignore_resource): * gtk/install-dependencies: * wpe/generate-inspector-gresource-manifest.py: Removed. * wpe/install-dependencies: 2017-11-07 Don Olmstead Fix webkitpy tests after rev 224549. Unreviewed build fix. * Scripts/webkitpy/common/config/ports.py: (WinCairoPort.run_webkit_tests_command): * Scripts/webkitpy/common/config/ports_unittest.py: (DeprecatedPortTest.test_wincairo_port): 2017-11-07 Aakash Jain Enable webkitpy EWS bubbles https://bugs.webkit.org/show_bug.cgi?id=178539 Reviewed by Alexey Proskuryakov. * QueueStatusServer/config/queues.py: Added webkitpy EWS. 2017-11-07 Don Olmstead Add a WinCairo EWS queue https://bugs.webkit.org/show_bug.cgi?id=179390 Reviewed by Lucas Forschler. * QueueStatusServer/config/queues.py: * QueueStatusServer/model/queues.py: * Scripts/webkitpy/common/config/ews.json: * Scripts/webkitpy/common/config/ports.py: * Scripts/webkitpy/common/config/ports_unittest.py: * Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: 2017-11-07 Aakash Jain fix check-webkit-style errors in webkitpy about not having two spaces before inline comment https://bugs.webkit.org/show_bug.cgi?id=171506 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/common/checkout/scm/scm_unittest.py: (SCMTest._shared_test_reverse_diff): Added two spaces before inline comment. (test_create_patch_is_full_patch): Ditto. * Scripts/webkitpy/common/thread/messagepump.py: (MessagePump): Ditto. * Scripts/webkitpy/layout_tests/servers/http_server.py: (Lighttpd._prepare_config): Ditto. * Scripts/webkitpy/style/checker.py: Ditto. * Scripts/webkitpy/style/checkers/cpp_unittest.py: (OrderOfIncludesTest.test_check_preprocessor_in_include_section): Ditto. 2017-11-07 Aakash Jain Add support for webkitpy tests EWS https://bugs.webkit.org/show_bug.cgi?id=178480 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/common/config/ews.json: Added webkitpy EWS. * Scripts/webkitpy/common/net/generictestresults.py: Renamed from Scripts/webkitpy/common/net/bindingstestresults.py. * Scripts/webkitpy/common/net/generictestresults_unittest.py: Renamed from Scripts/webkitpy/common/net/bindingstestresults_unittest.py. * Scripts/webkitpy/tool/bot/patchanalysistask.py: (PatchAnalysisTask._test_patch): Do not retry webkitpy test since they are not flaky. * Scripts/webkitpy/tool/bot/bindingstestresultsreader.py: Updated import for BindingsTestResult. * Scripts/webkitpy/tool/bot/retrylogic_unittest.py: Ditto. * Scripts/webkitpy/tool/bot/webkitpytestresultsreader.py: Copied from Scripts/webkitpy/tool/bot/bindingstestresultsreader.py. * Scripts/webkitpy/tool/commands/earlywarningsystem.py: (AbstractEarlyWarningSystem.begin_work_queue): Added webkitpy test result reader. * Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: Updated unit-tests. * Scripts/webkitpy/tool/steps/checkpatchrelevance.py: Run webkitpy EWS only for relevant changes. * Scripts/webkitpy/tool/steps/runtests.py: (RunTests.run): Run webkitpy tests when --group=webkitpy is passed. (RunTests._run_webkitpy_tests): Method to invoke webkitpy tests. * Scripts/webkitpy/tool/steps/steps_unittest.py: (test_runtests_webkitpy): Added unit-test. 2017-11-07 Commit Queue Unreviewed, rolling out r224512 and r224521. https://bugs.webkit.org/show_bug.cgi?id=179388 An API test added with this change is failing an assertion on the bots. (Requested by ryanhaddad on #webkit). Reverted changesets: "[Attachment Support] Implement delegate hooks for attachment element insertion and removal" https://bugs.webkit.org/show_bug.cgi?id=179016 https://trac.webkit.org/changeset/224512 "Remove stray logging from a newly added API test" https://trac.webkit.org/changeset/224521 2017-11-06 Wenson Hsieh Remove stray logging from a newly added API test This was only for debugging purposes, and should have been removed before landing. Rubber-stamped by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (TestWebKitAPI::TEST): 2017-11-06 Jonathan Bedard Only build ImageDiff for mac https://bugs.webkit.org/show_bug.cgi?id=179349 Reviewed by Tim Horton. * ImageDiff/Makefile: 2017-11-06 Wenson Hsieh Unreviewed, fix the internal build after updating to a newer SDK There shouldn't be any need to include and implement these method stubs anymore, even when building against the shipping iOS 11 SDK. * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[MockDropSession session]): Deleted. 2017-11-06 Wenson Hsieh [Attachment Support] Implement delegate hooks for attachment element insertion and removal https://bugs.webkit.org/show_bug.cgi?id=179016 Reviewed by Tim Horton. Introduces new API tests to check that various editing operations will or won't result in the new attachment insertion and removal delegate hooks being fired. Additionally refactors an existing test to verify that attachments insertion and removal is observable by the UI delegate. * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (-[AttachmentUpdateObserver init]): (-[AttachmentUpdateObserver inserted]): (-[AttachmentUpdateObserver removed]): (-[AttachmentUpdateObserver _webView:didInsertAttachment:]): (-[AttachmentUpdateObserver _webView:didRemoveAttachment:]): (TestWebKitAPI::ObserveAttachmentUpdatesForScope::ObserveAttachmentUpdatesForScope): (TestWebKitAPI::ObserveAttachmentUpdatesForScope::~ObserveAttachmentUpdatesForScope): (TestWebKitAPI::ObserveAttachmentUpdatesForScope::expectAttachmentUpdates): Implement a testing mechanism to temporarily bind a UI delegate to a given WKWebView and listen for inserted or removed attachments over the course of a particular scope. The API tests use this mechanism to check that the UI delegate hooks added in this patch are invoked with the right attachments when performing edit commands. (-[TestWKWebView _synchronouslyExecuteEditCommand:argument:]): (-[TestWKWebView expectUpdatesAfterCommand:withArgument:expectedRemovals:expectedInsertions:]): (TestWebKitAPI::TEST): 2017-11-06 Christopher Reid Use enum classes within FileSystem https://bugs.webkit.org/show_bug.cgi?id=175172 Reviewed by Myles C. Maxfield. * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: 2017-11-06 Michael Catanzaro [WPE] -Wsign-compare warning in EventSenderProxyWPE.cpp https://bugs.webkit.org/show_bug.cgi?id=179039 Reviewed by Žan Doberšek. * WebKitTestRunner/wpe/EventSenderProxyWPE.cpp: (WTR::EventSenderProxy::updateTouchPoint): (WTR::EventSenderProxy::releaseTouchPoint): 2017-11-06 Robin Morisset Add a third benchmark to TailBench https://bugs.webkit.org/show_bug.cgi?id=178815 Reviewed by Saam Barati. Add a new benchmark to TailBench: a BF interpreter written in a weird kinda functional style * Scripts/run-jsc-benchmarks: 2017-11-04 Michael Catanzaro [GTK] Fix gtk-doc generation with gtk-doc master https://bugs.webkit.org/show_bug.cgi?id=179252 Reviewed by Carlos Garcia Campos. gtkdoc-scangobj has changed to no longer use a shell when executing its subcommands. In particular, this means we can no longer rely on shell stuff in our run command that we use to run the scanner. We currently use the RUN envvar to set LD_LIBRARY_PATH, and the end result is gtkdoc-scangobj now attempts to execute our environment variable instead of the scanner itself. We can just set LD_LIBRARY_PATH directly, instead of using RUN, in order to make documentation generation work again. * gtk/gtkdoc.py: (GTKDoc._run_gtkdoc_scangobj): 2017-11-04 Aishwarya Nirmal [Touch Bar Web API] Add support for menuitem tag https://bugs.webkit.org/show_bug.cgi?id=179020 Reviewed by Ryosuke Niwa. Defines flags for the menu item test so that the element is recognized only while its test is being run. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (setWebPreferencesForTestOptions): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): (WTR::updateTestOptionsFromTestHeader): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const): 2017-11-03 Andy Estes [iOS] Append the platform name to the product directory on all embedded platforms https://bugs.webkit.org/show_bug.cgi?id=179271 Reviewed by Joseph Pecoraro. * Scripts/webkitdirs.pm: (determineConfigurationProductDir): 2017-11-03 Basuke Suzuki [WinCairo] Add --wincairo option to run-webkit-tests https://bugs.webkit.org/show_bug.cgi?id=179217 Reviewed by Alex Christensen. * Scripts/webkitpy/port/factory.py: (platform_options): 2017-11-03 Michael Catanzaro [WPE][GTK] Avoid duplicating code for dist and distcheck targets https://bugs.webkit.org/show_bug.cgi?id=179154 Reviewed by Carlos Garcia Campos. Move the script out of Tools/gtk because it is already used by WPE. Also, drop the .py prefix because it is executable. * Scripts/make-dist: Renamed from Tools/gtk/make-dist.py. 2017-11-03 Jonathan Bedard TestController platformAdjustContext should use provided WKContext for Mac https://bugs.webkit.org/show_bug.cgi?id=179124 Reviewed by Darin Adler. * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::initializeWebViewConfiguration): Use the provided WKContext, since that is a WebProcessPool, instead of creating a second one. 2017-11-02 Christopher Reid Add a FileSystem namespace to FileSystem.cpp https://bugs.webkit.org/show_bug.cgi?id=179063 Reviewed by Darin Adler. * DumpRenderTree/win/DumpRenderTree.cpp: * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: * TestWebKitAPI/Tests/WebCore/FileSystem.cpp: * TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp: * TestWebKitAPI/Tests/WebCore/SharedBufferTest.cpp: * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: * TestWebKitAPI/Tests/WebKitCocoa/Download.mm: 2017-11-02 Carlos Alberto Lopez Perez [WPE][JHBuild] Update WPEBackend and WPEBackend-mesa https://bugs.webkit.org/show_bug.cgi?id=179169 Reviewed by Michael Catanzaro. Update WPEBackend and WPEBackend-mesa to last master as of today. * wpe/jhbuild.modules: 2017-11-02 Frederic Wang Add references to bug 179167 in FIXME comments https://bugs.webkit.org/show_bug.cgi?id=179168 Reviewed by Daniel Bates. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-01 Jeremy Jones Implement WKFullscreenWindowController for iOS. https://bugs.webkit.org/show_bug.cgi?id=178924 rdar://problem/34697120 Reviewed by Simon Fraser. Enable ENABLE_FULLSCREEN_API for iOS. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-11-01 Simon Fraser Misc display list and other cleanup https://bugs.webkit.org/show_bug.cgi?id=179150 Reviewed by Tim Horton. Add system trace points for display list recording. * Tracing/SystemTracePoints.plist: 2017-11-01 Stephan Szabo [Win] Detect Visual Studio 2017 location https://bugs.webkit.org/show_bug.cgi?id=175275 Reviewed by Yusuke Suzuki. * Scripts/build-jsc: * Scripts/build-webkit: * Scripts/update-vswhere.py: Added. * Scripts/webkitdirs.pm: (requireModulesForVSWhere): (pickCurrentVisualStudioInstallation): (pickLegacyVisualStudioInstallation): (visualStudioInstallDir): (visualStudioInstallDirVSWhere): (visualStudioInstallDirLegacy): (visualStudioInstallDirFallback): (msBuildInstallDir): (visualStudioVersion): (visualStudioVersionFromInstallDir): (generateBuildSystemFromCMakeProject): 2017-11-01 Tim Horton Fix the !USE(QUICKLOOK) build https://bugs.webkit.org/show_bug.cgi?id=179128 Reviewed by Wenson Hsieh. * TestWebKitAPI/Tests/WebCore/ios/PreviewLoader.cpp: 2017-11-01 Frederic Wang Make iOS Find UI reveal matches in scrollable elements https://bugs.webkit.org/show_bug.cgi?id=178789 Reviewed by Tim Horton. This patch exposes WKWebView's findString function in order to test the fix for bug 178789. * DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::findString): Dummy implementation of findString. * DumpRenderTree/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::findString): Ditto. * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: Declare findString. * TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::findString): Dummy implementation of findString. * TestRunnerShared/UIScriptContext/UIScriptController.h: Declare findString. * WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::findString): Implement findString by forwarding the call to the web view. * WebKitTestRunner/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::findString): Dummy implementation of findString. 2017-11-01 Alex Christensen Add a test for _WKInputDelegate.willSubmitFormValues https://bugs.webkit.org/show_bug.cgi?id=179086 Reviewed by Darin Adler. Hidden input types are not included in this submission because FormSubmission::create ignores them because input.isTextField() returns false. This is existing behavior that wasn't shown by a test. HTTPBodies are also not sent to WKURLSchemeHandlers. This is existing behavior that wasn't shown by a test. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm: Added. (-[FormSubmissionDelegate _webView:willSubmitFormValues:userObject:submissionHandler:]): (TEST): 2017-10-31 Ross Kirsling Web Inspector: Add Inspector menu items to Mac MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=65218 Reviewed by Joseph Pecoraro. Add Option-Command-I shortcut and corresponding Show/Close Web Inspector menu item to Mac MiniBrowser. Only works when browser window is focused, but at least WI can be opened without having to Inspect Element. * MiniBrowser/mac/BrowserWindowController.h: * MiniBrowser/mac/BrowserWindowController.m: (-[BrowserWindowController showHideWebInspector:]): * MiniBrowser/mac/MainMenu.xib: * MiniBrowser/mac/WK1BrowserWindowController.m: (-[WK1BrowserWindowController validateMenuItem:]): (-[WK1BrowserWindowController showHideWebInspector:]): * MiniBrowser/mac/WK2BrowserWindowController.m: (-[WK2BrowserWindowController validateMenuItem:]): (-[WK2BrowserWindowController showHideWebInspector:]): 2017-10-31 Alex Christensen Use asynchronous ResourceHandleClient calls for WebKit1 https://bugs.webkit.org/show_bug.cgi?id=160677 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/mac/SimplifyMarkup.mm: (TestWebKitAPI::TEST): The HTML being loaded contains an iframe, so testing if the main resource has loaded doesn't necessarily mean all subresources are loaded. Wait until they are loaded before continuing the test. This is a test of editing commands once the page has loaded, not a test of loading. 2017-10-31 Commit Queue Unreviewed, rolling out r224143. https://bugs.webkit.org/show_bug.cgi?id=179091 The patch requires non-standard perl modules in macOS and breaks AWFY (Requested by yusukesuzuki on #webkit). Reverted changeset: "[Win] Detect Visual Studio 2017 location" https://bugs.webkit.org/show_bug.cgi?id=175275 https://trac.webkit.org/changeset/224143 2017-10-31 Tim Horton Clean up some drag and drop feature flags https://bugs.webkit.org/show_bug.cgi?id=179082 Reviewed by Simon Fraser. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * TestWebKitAPI/ios/UIKitSPI.h: 2017-10-31 Tim Horton Fix up some content filtering feature flags https://bugs.webkit.org/show_bug.cgi?id=179079 Reviewed by Simon Fraser. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * TestWebKitAPI/Tests/WebKitCocoa/ContentFilteringPlugIn.mm: (-[MockContentFilterEnabler initWithCoder:]): (-[MockContentFilterEnabler dealloc]): 2017-10-31 Youenn Fablet rwt should allow service worker to load localhost HTTPS resources with any certificate https://bugs.webkit.org/show_bug.cgi?id=179018 Reviewed by Chris Dumez. * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues): allowing any SSL certificate for service workers. 2017-10-31 Wenson Hsieh [Attachment Support] Implement WKWebView SPI for inserting attachment elements https://bugs.webkit.org/show_bug.cgi?id=179013 Reviewed by Tim Horton. Adds a new API test suite to exercise attachment element insertion and manipulation. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: Added. (webViewForTestingAttachments): (testHTMLData): (testImageData): (-[TestWKWebView synchronouslyInsertAttachmentWithFilename:contentType:data:options:]): (-[TestWKWebView valueOfAttribute:forQuerySelector:]): (TestWebKitAPI::TEST): 2017-10-31 Alex Christensen Fix custom header field setting with reloads and asynchronous navigation action policy decisions https://bugs.webkit.org/show_bug.cgi?id=179064 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm: (-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): (TEST): 2017-10-30 Michael Catanzaro WKBundlePageWillSendSubmitEventCallback is called with incorrect frame parameter https://bugs.webkit.org/show_bug.cgi?id=176719 Reviewed by Chris Dumez. Test that WKBundlePageWillSendSubmitEventCallback is called with separate frame and sourceFrame parameters when the target frame of the form submission is not the source frame. * TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent.cpp: (TestWebKitAPI::didReceiveMessageFromInjectedBundle): * TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent_Bundle.cpp: (TestWebKitAPI::willSendSubmitEvent): * TestWebKitAPI/Tests/WebKit/auto-submitting-form.html: 2017-10-30 Alex Christensen ASSERTION FAILED: internalValuesConsistent(m_url) in WebCore::URLParser::URLParser https://bugs.webkit.org/show_bug.cgi?id=178861 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebCore/URLParser.cpp: (TestWebKitAPI::TEST_F): 2017-10-30 Commit Queue Unreviewed, rolling out r224078. https://bugs.webkit.org/show_bug.cgi?id=179026 MotionMark regression (Requested by shallawa on #webkit). Reverted changeset: "When navigating back to a page, compositing layers may not use accelerated drawing" https://bugs.webkit.org/show_bug.cgi?id=178749 https://trac.webkit.org/changeset/224078 2017-10-30 Michael Catanzaro [WPE] Fix build warnings https://bugs.webkit.org/show_bug.cgi?id=178899 Reviewed by Carlos Alberto Lopez Perez. * TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp: (testContextMenuDownloadActions): (testBlobDownload): (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: (testWebViewJavaScriptDialogs): * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: * WebKitTestRunner/PlatformWPE.cmake: * WebKitTestRunner/wpe/HeadlessViewBackend.cpp: * WebKitTestRunner/wpe/TestControllerWPE.cpp: (WTR::threadDefaultContext): Deleted. 2017-10-30 Michael Catanzaro [WPE] Upstream or stop using cairo-egl-device-create-for-egl-surface.patch https://bugs.webkit.org/show_bug.cgi?id=178898 Reviewed by Žan Doberšek. This patch seems to be unused. * wpe/jhbuild.modules: * wpe/patches/cairo-egl-device-create-for-egl-surface.patch: Removed. 2017-10-30 Michael Catanzaro [WPE] Build more files under WebCore as unified sources and get rid of WebCorePlatformWPE build target https://bugs.webkit.org/show_bug.cgi?id=178964 Reviewed by Carlos Alberto Lopez Perez. * TestWebKitAPI/PlatformWPE.cmake: 2017-10-12 Frederic Wang Remove support for running safari on the iOS simulator with Xcode < 9.0 https://bugs.webkit.org/show_bug.cgi?id=178203 Reviewed by Alexey Proskuryakov. This is a follow-up of r223234. We no longer support iOS WebKit development for Xcode < 9.0 and do not have any iOS simulator builders in our infrastructure. Hence we can remove the special case to calculate the iOS simulator applications path for these old versions. * Scripts/webkitdirs.pm: (iosSimulatorApplicationsPath): Remove special case for XCode < 9.0 2017-10-30 Michael Catanzaro [WPE][GTK] Expose availability of certain editing commands in WebKitEditorState https://bugs.webkit.org/show_bug.cgi?id=168219 Reviewed by Ryosuke Niwa. Test it. * TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp: (testWebViewEditorCutCopyPasteNonEditable): (testWebViewEditorCutCopyPasteEditable): (testWebViewEditorSelectAllNonEditable): (testWebViewEditorSelectAllEditable): (loadContentsAndTryToCutSelection): (testWebViewEditorNonEditable): (testWebViewEditorEditorStateTypingAttributes): (testWebViewEditorInsertImage): (testWebViewEditorCreateLink): 2017-10-28 Michael Catanzaro [WPE] Build gst-plugins-base without pango support https://bugs.webkit.org/show_bug.cgi?id=178918 Reviewed by Carlos Garcia Campos. We need to build gst-plugins-base without pango support for WPE. Let's use JHBuild conditions so we can make platform-specific changes in the shared GStreamer moduleset. * gstreamer/jhbuild.modules: * gtk/jhbuildrc: * wpe/jhbuildrc: 2017-10-27 Stephan Szabo [Win] Detect Visual Studio 2017 location https://bugs.webkit.org/show_bug.cgi?id=175275 Reviewed by Per Arne Vollan. * Scripts/build-jsc: * Scripts/build-webkit: * Scripts/update-vswhere.py: Added. * Scripts/webkitdirs.pm: (pickCurrentVisualStudioInstallation): (pickLegacyVisualStudioInstallation): (visualStudioInstallDir): (visualStudioInstallDirVSWhere): (visualStudioInstallDirLegacy): (visualStudioInstallDirFallback): (msBuildInstallDir): (visualStudioVersion): (visualStudioVersionFromInstallDir): (generateBuildSystemFromCMakeProject): 2017-10-27 Devin Rousso Create watchlist for files related WebInspector Recording https://bugs.webkit.org/show_bug.cgi?id=178965 Reviewed by Joseph Pecoraro. * Scripts/webkitpy/common/config/watchlist: 2017-10-27 Jonathan Bedard Windows and WebViews are retained after re-configure https://bugs.webkit.org/show_bug.cgi?id=178902 Reviewed by Alexey Proskuryakov. The test runner effectively leaks windows every time a test changes configuration. We give each test it's own AutoreleasePool to fix this problem. * WebKitTestRunner/TestController.cpp: (WTR::TestController::runTest): Add an AutoRelease pool scoping a test run so that when a configuration changes, the old window and WebView are released. 2017-10-27 Eric Carlson NowPlayingInfo should contain a unique identifier https://bugs.webkit.org/show_bug.cgi?id=178872 Unreviewed, fix a flakey test. * TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm: (-[NowPlayingTestWebView hasActiveNowPlayingSession]): Update _lastUpdatedElapsedTime. (-[NowPlayingTestWebView _handleActiveNowPlayingSessionInfoResponse:title:duration:elapsedTime:]): Deleted. 2017-10-27 Fujii Hironori autoinstall can't download from http://pypi.python.org https://bugs.webkit.org/show_bug.cgi?id=178925 Reviewed by Ryosuke Niwa. The web server pypi.python.org rejects non secure http. * Scripts/webkitpy/thirdparty/__init__.py: (AutoinstallImportHook._install_mechanize): Use https instead of http. (AutoinstallImportHook._install_pep8): Ditto. (AutoinstallImportHook._install_pylint): Ditto. (AutoinstallImportHook._install_buildbot): Ditto. (AutoinstallImportHook._install_coverage): Ditto. 2017-10-26 Fujii Hironori [GTK][WPE] install-dependencies can't find libapache2-mod-php7.0 on Ubuntu 17.10 https://bugs.webkit.org/show_bug.cgi?id=178854 Reviewed by Michael Catanzaro. * Scripts/webkitpy/port/base.py: (Port._debian_php_version): Return "-php7.1" if libphp7.1.so found. (Port._is_debian_php_version_7): Deleted. * gtk/install-dependencies: Install libapache2-mod-php instead of libapache2-mod-php7.0. * wpe/install-dependencies: Ditto. 2017-10-25 Simon Fraser When navigating back to a page, compositing layers may not use accelerated drawing https://bugs.webkit.org/show_bug.cgi?id=178749 rdar://problem/35158946 Reviewed by Dean Jackson. Fix WTR and DRT to parse "useAcceleratedDrawing" out of "webkit-test-runner" options and use it to set the state of the web view. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (setWebPreferencesForTestOptions): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): (WTR::updateTestOptionsFromTestHeader): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const): 2017-10-26 Alex Christensen Move WKWebViewConfiguration validation to WKWebView construction https://bugs.webkit.org/show_bug.cgi?id=178840 Reviewed by Tim Horton. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: Added. (TEST): 2017-10-26 Myles C. Maxfield Demonstrate a possible structure of the WebGPU API https://bugs.webkit.org/show_bug.cgi?id=178874 Reviewed by Dean Jackson. Over the past few weeks, we've been putting together an example showing that a WebGPU API which has implicit barriers can work on all three low-level graphics APIs. We've implemented it on top of Vulkan first, because this is the API which has the strictest requirements and is most difficult to use. With this API, this is a valid WebGPU snippet: auto device = WebGPU::Device::create(hInstance, hWnd); auto& commandQueue = device->getCommandQueue(); auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { }, { }, { }, nullptr); … later, in the draw() function … auto renderPass = commandQueue->createRenderPass(nullptr); renderPass->setRenderState(renderState); renderPass->setViewport(0, 0, width, height); renderPass->setScissorRect(0, 0, width, height); renderPass->draw(3); commandQueue->commitRenderPass(std::move(renderPass)); commandQueue->present(); This snippet doesn’t hook up any vertex attributes or resources, which means the vertex shader has to say something like ({vec4(…), vec4(…), vec4(…)})[gl_VertexIndex]. It also passes in “nullptr” when creating the render pass, which means “render to the screen, rather than to a frame buffer.” You can also see that it doesn’t attach any resources to the draw call. In Direct3D 12 and Vulkan, resources are bound in sets, rather than individually. For example, a set might contain two uniform buffers, a texture, and another uniform buffer. At draw time, you swap in whole sets of resources with a single call. A shader invocation can access a collection of sets. Because all shader resource accesses are indirected through these sets, the shape of these sets needs to be supplied at the time you compile the render state. Here is a snippet which bounds a single set which contains a uniform buffer and a texture: auto buffer = device->getBuffer(bufferInitialContents); auto texture = device->getTexture(buffer width, height, WebGPU::PixelFormat::RGBA8, textureInitialContents); // One resource set, which holds a single uniform buffer object and a single texture auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { }, { }, { { WebGPU::ResourceType::UniformBufferObject, WebGPU::ResourceType::Texture } }, nullptr); … later, in the draw() function … auto renderPass = commandQueue->createRenderPass(nullptr); renderPass->setRenderState(renderState); renderPass->setResources(0, { WebGPU::UniformBufferObjectReference(buffer.get()), WebGPU::TextureReference(texture.get()) }); … renderPass->draw(3); commandQueue->commitRenderPass(std::move(renderPass)); commandQueue->present(); The first argument to the setResources() call identifies which set to populate with the supplied resources. One tenant of the low-level graphics APIs is that, if you’ve enabled double buffering (or triple buffering), the GPU is executing one frame at the same time you are recording the next frame. This often means that you need duplicate resources so the CPU and GPU don’t step on each other’s toes. However, platforms have platform-specific requirements about whether or not they can be double / triple buffered, and we don’t want to expose this to the Web for fear of badly-authored programs. To solve this, resources are reference counted, and the return type of getBuffer() is an RAII type called BufferHolder which increments and decrements the reference count automatically. The reference count is also incremented and decremented when the GPU is using the resource in a Pass. When the reference count reaches 0, the resource isn’t destroyed; instead, it’s simply moved to a “free list” which getBuffer() may pull from. Therefore, applications don’t need to know whether the frame buffer is double buffered or triple buffered; they can just getBuffer() each frame, and the correct number of buffers will be created and recycled. { auto buffer = device->getBuffer(bufferSize); // These get recycled … populate the buffer … auto renderPass = commandQueue->createRenderPass(nullptr); renderPass->setRenderState(renderState); renderPass->setResources(0, { WebGPU::UniformBufferObjectReference(buffer.get()) }); … renderPass->draw(…); commandQueue->commitRenderPass(std::move(renderPass)); } commandQueue->present(); In Direct3D and Vulkan, vertex buffers and index buffers are not part of the resource sets mentioned above. Instead, you tell the render state about the shape of the vertex and index buffers, and you swap them out independently in the draw loop. Metal and Vulkan have almost identical API to specify this shape of the vertex buffers, so I’ve mostly copied it. In this example, we have two vertex attributes, a vec2 and a vec3, which both come from the same buffer: // { Attribute format, offset within stride, buffer to pull from } std::vector vertexAttributes = { {WebGPU::RenderState::VertexFormat::Float2, 0, 0}, {WebGPU::RenderState::VertexFormat::Float3, sizeof(float) * 2, 0} }; // A single vertex buffer, with a stride of 5 floats auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { sizeof(float) * 5 }, vertexAttributes, resourceTypes, nullptr); … later, in the draw() function … auto renderPass = commandQueue->createRenderPass(nullptr); renderPass->setRenderState(renderState); renderPass->setVertexAttributeBuffers({ vertexBuffer.get() }); // The one vertex buffer which both attributes pull from renderPass->setResources(…); … renderPass->draw(…); commandQueue->commitRenderPass(std::move(renderPass)); commandQueue->present(); You can also tell the RenderState about how many render targets you have and their formats, and then when you create the RenderPass, you specify the specific textures you want to render into. std::vector colorPixelFormats = { WebGPU::PixelFormat::RGBA8, WebGPU::PixelFormat::RGBA8 }; // Two render targets, with these formats auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", vertexBufferStrides, vertexAttributes, resourceTypes, &colorPixelFormats); … later, in the draw() function … std::vector> destinationTextures = { texture1->get(), texture2->get() }; auto renderPass = commandQueue->createRenderPass(&destinationTextures); renderPass->setRenderState(renderState); … renderPass->draw(…); commandQueue->commitRenderPass(std::move(renderPass)); // Now, draw one of the textures to the screen. Note that no synchronization is necessary here! auto renderPass = commandQueue->createRenderPass(nullptr); renderPass->setRenderState(renderState2); renderPass->setResources(0, { WebGPU:: TextureReference(texture1.get()) }); … renderPass->draw(…); commandQueue->commitRenderPass(std::move(renderPass)); commandQueue->present(); Just like how in Metal has Render Encoders and Compute Encoders, WebGPU has RenderPasses and ComputePasses. auto& computeState = device->getComputeState(computeShader, "main", resourceTypes); … auto computePass = commandQueue->createComputePass(); computePass->setComputeState(computeState); computePass->setResources(0, resources); computePass->dispatch(width, height, depth); commandQueue->commitComputePass(std::move(computePass)); // Now, draw the resources we just computed. Note that no synchronization is necessary here! auto renderPass = commandQueue->createRenderPass(nullptr); renderPass->setRenderState(renderState); renderPass->setResources(0, resources }); … renderPass->draw(…); commandQueue->commitRenderPass(std::move(renderPass)); commandQueue->present(); There are also two other types of passes: one that corresponds to a Metal blit encoder, and one that allows the CPU to change the contents of GPU buffers and textures. This last kind of pass is a little interesting: you can’t just change the contents of a buffer at any time you feel like it, because that resource might be in use by the GPU. Therefore, we need to do the same kind of synchronization that we already do at render pass boundaries. In addition, both Vulkan and Direct3D have a concept of a memory heap. A resource might exist inside a heap which is fast, but invisible from the CPU, or in a heap which is slow, but visible by the CPU. Certain operations are not possible from some types of images (e.g. non-tiled textures may not be able to be sampled from). The usual way to get around this problem is to have two resources: a slow staging resource which the CPU can see, and a fast resource which the CPU can’t see. Uploading data is a two-pass algorithm, where the CPU memcpy()s into the slow staging resource, and then a blit command is enqueued on the GPU to copy the contents of the staging resource to the real resource. This requires that the upload have access to the commandQueue so it can possibly enqueue a blit between the staging and real resources. Therefore, a pass is the right level of abstraction for these facilities. std::queue>> futureQueue; // Promises for data downloads from the GPU … later, in the draw() function … // See if any of the previously-enqueued downloads are finished while (!futureQueue.empty() && futureQueue.front(). has_value()) { std::vector& data = futureQueue.front().get(); // Use the downloaded data futureQueue.pop(); } … auto hostAccessPass = commandQueue->createHostAccessPass(); hostAccessPass->overwriteBuffer(buffer->get(), bufferContents); // Upload data to a resource futureQueue.emplace(hostAccessPass->getBufferContents(buffer->get())); commandQueue->commitHostAccessPass(std::move(hostAccessPass)); You can also issue copy commands between resources entirely on the GPU: auto blitPass = commandQueue->createBlitPass(); blitPass->copyTexture(source->get(), destination->get(), sourceX, sourceY, destinationX, destinationY, width, height); commandQueue->commitBlitPass(std::move(blitPass)); * Scripts/webkitpy/style/checker.py: * WebGPUAPIStructure/Example/Example.cpp: Added. (readFile): (drawWebGPU): (wWinMain): (MyRegisterClass): (InitInstance): (WndProc): * WebGPUAPIStructure/Example/Example.h: Added. * WebGPUAPIStructure/Example/Example.ico: Added. * WebGPUAPIStructure/Example/Example.rc: Added. * WebGPUAPIStructure/Example/Example.vcxproj: Added. * WebGPUAPIStructure/Example/Example.vcxproj.filters: Added. * WebGPUAPIStructure/Example/Example.vcxproj.user: Added. * WebGPUAPIStructure/Example/resource.h: Added. * WebGPUAPIStructure/Example/small.ico: Added. * WebGPUAPIStructure/Example/stdafx.cpp: Added. * WebGPUAPIStructure/Example/stdafx.h: Added. * WebGPUAPIStructure/Example/targetver.h: Added. * WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj: Added. * WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj.filters: Added. * WebGPUAPIStructure/WebGPU-Common/WebGPU.cpp: Added. (WebGPU::BufferHolder::BufferHolder): (WebGPU::BufferHolder::~BufferHolder): (WebGPU::TextureHolder::TextureHolder): (WebGPU::TextureHolder::~TextureHolder): (WebGPU::SamplerHolder::SamplerHolder): (WebGPU::SamplerHolder::~SamplerHolder): * WebGPUAPIStructure/WebGPU-Common/WebGPU.h: Added. (WebGPU::Queue::~Queue): (WebGPU::RenderState::~RenderState): (WebGPU::ComputeState::~ComputeState): (WebGPU::Buffer::~Buffer): (WebGPU::Texture::~Texture): (WebGPU::Sampler::~Sampler): (WebGPU::TextureReference::TextureReference): (WebGPU::TextureReference::get const): (WebGPU::SamplerReference::SamplerReference): (WebGPU::SamplerReference::get const): (WebGPU::UniformBufferObjectReference::UniformBufferObjectReference): (WebGPU::UniformBufferObjectReference::get const): (WebGPU::ShaderStorageBufferObjectReference::ShaderStorageBufferObjectReference): (WebGPU::ShaderStorageBufferObjectReference::get const): (WebGPU::RenderPass::~RenderPass): (WebGPU::ComputePass::~ComputePass): (WebGPU::BlitPass::~BlitPass): (WebGPU::HostAccessPass::~HostAccessPass): (WebGPU::BufferHolder::get): (WebGPU::TextureHolder::get): (WebGPU::SamplerHolder::get): (WebGPU::Device::~Device): * WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.cpp: Added. (WebGPU::BlitPassImpl::BlitPassImpl): (WebGPU::BlitPassImpl::copyTexture): * WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.h: Added. * WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.cpp: Added. (WebGPU::BufferImpl::BufferImpl): (WebGPU::BufferImpl::decrementReferenceCount): * WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.h: Added. (WebGPU::BufferImpl::getBuffer const): (WebGPU::BufferImpl::getDeviceMemory const): (WebGPU::BufferImpl::incrementReferenceCount): (WebGPU::BufferImpl::getLength const): * WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.cpp: Added. (WebGPU::ComputePassImpl::ComputePassImpl): (WebGPU::ComputePassImpl::setComputeState): (WebGPU::ComputePassImpl::setResources): (WebGPU::ComputePassImpl::dispatch): * WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.h: Added. * WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.cpp: Added. (WebGPU::ComputeStateImpl::ComputeStateImpl): * WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.h: Added. (WebGPU::ComputeStateImpl::getPipeline const): (WebGPU::ComputeStateImpl::getPipelineLayout const): (WebGPU::ComputeStateImpl::getDescriptorSetLayouts const): * WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.cpp: Added. (WebGPU::Device::create): (WebGPU::convertPixelFormat): (WebGPU::convertFormat): (WebGPU::debugReport): (WebGPU::DeviceImpl::DeviceImpl): (WebGPU::DeviceImpl::getCommandQueue): (WebGPU::DeviceImpl::prepareShader): (WebGPU::DeviceImpl::createPipelineLayout): (WebGPU::DeviceImpl::createCompatibleRenderPass): (WebGPU::convertVertexFormat): (WebGPU::DeviceImpl::getRenderState): (WebGPU::DeviceImpl::getComputeState): (WebGPU::DeviceImpl::getBuffer): (WebGPU::DeviceImpl::returnBuffer): (WebGPU::DeviceImpl::getTexture): (WebGPU::DeviceImpl::returnTexture): (WebGPU::DeviceImpl::getSampler): (WebGPU::DeviceImpl::returnSampler): (WebGPU::DeviceImpl::~DeviceImpl): * WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.h: Added. (WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::UniqueDebugReportCallbackEXT): (WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::operator=): (WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::~UniqueDebugReportCallbackEXT): (WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::destroy): (WebGPU::DeviceImpl::TextureParameters::operator== const): (WebGPU::DeviceImpl::TextureParametersHash::operator() const): * WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.cpp: Added. (WebGPU::HostAccessPassImpl::HostAccessPassImpl): (WebGPU::HostAccessPassImpl::overwriteBuffer): (WebGPU::HostAccessPassImpl::getBufferContents): (WebGPU::HostAccessPassImpl::execute): * WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.h: Added. (WebGPU::HostAccessPassImpl::getFinishedEvent const): * WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.cpp: Added. (WebGPU::PassImpl::PassImpl): (WebGPU::ResourceVisitor::operator()): (WebGPU::ResourceVisitor::getBindings const): (WebGPU::ResourceVisitor::releaseWriteDescriptorSets): (WebGPU::ResourceVisitor::getDescriptorImageInfos const): (WebGPU::ResourceVisitor::getDescriptorBufferInfos const): (WebGPU::ResourceVisitor::getBuffers const): (WebGPU::ResourceVisitor::getTextures const): (WebGPU::ResourceVisitor::getSamplers const): (WebGPU::ResourceVisitor::getImageCount const): (WebGPU::ResourceVisitor::getSamplerCount const): (WebGPU::ResourceVisitor::getUniformBufferCount const): (WebGPU::ResourceVisitor::getStorageBufferCount const): (WebGPU::PassImpl::setResources): (WebGPU::PassImpl::insertBuffer): (WebGPU::PassImpl::insertTexture): (WebGPU::PassImpl::insertSampler): * WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.h: Added. (WebGPU::PassImpl::getCommandBuffer const): (WebGPU::PassImpl::iterateBuffers): (WebGPU::PassImpl::iterateTextures): (WebGPU::PassImpl::ResourceReference::ResourceReference): (WebGPU::PassImpl::ResourceReference::~ResourceReference): (WebGPU::PassImpl::ResourceReference::operator=): (WebGPU::PassImpl::ResourceReference::operator== const): (WebGPU::PassImpl::ResourceReference::get const): (WebGPU::PassImpl::ResourceReference::release): (WebGPU::PassImpl::ResourceReferenceHash::operator() const): * WebGPUAPIStructure/WebGPU-Vulkan/QueueImpl.cpp: Added. (WebGPU::QueueImpl::QueueImpl): (WebGPU::QueueImpl::prepareCurrentFrame): (WebGPU::QueueImpl::createSpecificRenderPass): (WebGPU::QueueImpl::createFramebuffer): (WebGPU::QueueImpl::createRenderPass): (WebGPU::QueueImpl::commitRenderPass): (WebGPU::QueueImpl::createComputePass): (WebGPU::QueueImpl::commitComputePass): (WebGPU::QueueImpl::createBlitPass): (WebGPU::QueueImpl::commitBlitPass): (WebGPU::QueueImpl::createHostAccessPass): (WebGPU::QueueImpl::commitHostAccessPass): (WebGPU::QueueImpl::present): (WebGPU::QueueImpl::commitPass): (WebGPU::QueueImpl::synchronizeResources): (WebGPU::QueueImpl::~QueueImpl): * WebGPUAPIStructure/WebGPU-Vulkan/QueueImpl.h: Added. * WebGPUAPIStructure/WebGPU-Vulkan/RenderPassImpl.cpp: Added. (WebGPU::RenderPassImpl::RenderPassImpl): (WebGPU::RenderPassImpl::setRenderState): (WebGPU::RenderPassImpl::setVertexAttributeBuffers): (WebGPU::RenderPassImpl::setResources): (WebGPU::RenderPassImpl::setViewport): (WebGPU::RenderPassImpl::setScissorRect): (WebGPU::RenderPassImpl::draw): * WebGPUAPIStructure/WebGPU-Vulkan/RenderPassImpl.h: Added. * WebGPUAPIStructure/WebGPU-Vulkan/RenderStateImpl.cpp: Added. (WebGPU::RenderStateImpl::RenderStateImpl): * WebGPUAPIStructure/WebGPU-Vulkan/RenderStateImpl.h: Added. (WebGPU::RenderStateImpl::getPipeline const): (WebGPU::RenderStateImpl::getPipelineLayout const): (WebGPU::RenderStateImpl::getDescriptorSetLayouts const): * WebGPUAPIStructure/WebGPU-Vulkan/SamplerImpl.cpp: Added. (WebGPU::SamplerImpl::SamplerImpl): (WebGPU::SamplerImpl::decrementReferenceCount): * WebGPUAPIStructure/WebGPU-Vulkan/SamplerImpl.h: Added. (WebGPU::SamplerImpl::getSampler): (WebGPU::SamplerImpl::incrementReferenceCount): (WebGPU::SamplerImpl::getFilter): (WebGPU::SamplerImpl::getMipmapMode): (WebGPU::SamplerImpl::getAddressMode): * WebGPUAPIStructure/WebGPU-Vulkan/TextureImpl.cpp: Added. (WebGPU::TextureImpl::TextureImpl): (WebGPU::TextureImpl::decrementReferenceCount): * WebGPUAPIStructure/WebGPU-Vulkan/TextureImpl.h: Added. (WebGPU::TextureImpl::getImage const): (WebGPU::TextureImpl::getImageView const): (WebGPU::TextureImpl::getFormat const): (WebGPU::TextureImpl::incrementReferenceCount): (WebGPU::TextureImpl::getWidth const): (WebGPU::TextureImpl::getHeight const): (WebGPU::TextureImpl::getTransferredToGPU const): (WebGPU::TextureImpl::setTransferredToGPU): * WebGPUAPIStructure/WebGPU-Vulkan/WebGPU-Vulkan.vcxproj: Added. * WebGPUAPIStructure/WebGPU-Vulkan/WebGPU-Vulkan.vcxproj.filters: Added. * WebGPUAPIStructure/WebGPU.sln: Added. 2017-10-26 Eric Carlson NowPlayingInfo should contain a unique identifier https://bugs.webkit.org/show_bug.cgi?id=178872 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm: (-[NowPlayingTestWebView hasActiveNowPlayingSession]): Use completion handler. (TestWebKitAPI::TEST): Cleanup tests. Use new API. (-[NowPlayingTestWebView waitForNowPlayingInfoToChange]): Deleted. 2017-10-26 Eric Carlson [MediaStream] Clear cached gUM prompt state https://bugs.webkit.org/show_bug.cgi?id=178754 Unreviewed, fix a flakey test. * TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm: (-[GetUserMediaRepromptTestView haveStream:]): New, check several times for expected state. (TestWebKitAPI::TEST): Don't assume stream state changes in the page immediately. 2017-10-26 Andy Estes [Payment Request] Enable Payment Request whenever Apple Pay is enabled https://bugs.webkit.org/show_bug.cgi?id=178880 Reviewed by Tim Horton. * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-10-26 Joseph Pecoraro Add and update some watchlists https://bugs.webkit.org/show_bug.cgi?id=178304 Reviewed by Simon Fraser. * Scripts/webkitpy/common/config/watchlist: 2017-10-26 Ryan Haddad Unreviewed, rolling out r223984. Caused LayoutTest assertion failures. Reverted changeset: "When navigating back to a page, compositing layers may not use accelerated drawing" https://bugs.webkit.org/show_bug.cgi?id=178749 https://trac.webkit.org/changeset/223984 2017-10-26 Christopher Reid Remove scopeguard from platform https://bugs.webkit.org/show_bug.cgi?id=178681 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: 2017-09-21 Carlos Garcia Campos WebDriver: Add support to import and run W3C tests https://bugs.webkit.org/show_bug.cgi?id=177304 Reviewed by Brian Burg. WPT has now several WebDriver tests, and new ones are going to be added to cover the whole spec. This patch adds the initial support for running W3C tests. The script import-w3c-webdriver-tests reuses parts of the W3C test downloader to download the tests and required tools from WPT repository into WebDriverTests directory. Tests can be run with run-webdriver-tests, a new script that works similar to other test runner scripts. For now it shows a summary at the end of the execution, there aren't expectations yet, since we are not ready to run those tests in the bots. Once we are ready to properly run the tests, we can add the expectations support and run the tests in the bots. * Scripts/import-w3c-webdriver-tests: Added. * Scripts/run-webdriver-tests: Added. * Scripts/webkitpy/style/checker.py: Skip WebDriverTests directory since it only contains third-party python code. * Scripts/webkitpy/thirdparty/__init__.py: Add support to autodownload mozlog and mozprocess since they are required by the WebDriver tests. * Scripts/webkitpy/webdriver_tests/__init__.py: Added. * Scripts/webkitpy/webdriver_tests/webdriver_driver.py: Added. * Scripts/webkitpy/webdriver_tests/webdriver_driver_gtk.py: Added. * Scripts/webkitpy/webdriver_tests/webdriver_test_result.py: Added. * Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py: Added. * Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py: Added. * Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: Added. * Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py: Added. 2017-10-25 Eric Carlson [MediaStream] Clear cached gUM prompt state https://bugs.webkit.org/show_bug.cgi?id=178754 Reviewed by Youenn Fablet. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new test * TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm: Added. (-[GetUserMediaRepromptUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]): (-[GetUserMediaRepromptUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit/getUserMedia.html: 2017-10-25 Ross Kirsling Add committer status for Ross Kirsling https://bugs.webkit.org/show_bug.cgi?id=178832 Unreviewed. * Scripts/webkitpy/common/config/contributors.json: 2017-10-25 Simon Fraser When navigating back to a page, compositing layers may not use accelerated drawing https://bugs.webkit.org/show_bug.cgi?id=178749 rdar://problem/35158946 Reviewed by Dean Jackson. Fix WTR and DRT to parse "useAcceleratedDrawing" out of "webkit-test-runner" options and use it to set the state of the web view. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (setWebPreferencesForTestOptions): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): (WTR::updateTestOptionsFromTestHeader): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const): 2017-10-25 Robin Morisset Support the TailBench9000 benchmark in run-jsc-benchmarks https://bugs.webkit.org/show_bug.cgi?id=178451 Reviewed by Saam Barati. * Scripts/run-jsc-benchmarks: 2017-10-25 Adrian Perez de Castro [WPE] Remove GLib API functions which use Cairo https://bugs.webkit.org/show_bug.cgi?id=178205 Reviewed by Michael Catanzaro. Add PLATFORM(GTK) guards for the API tests (or parts of them) which use cairo_surface_t (web page snapshots and favicons) which are not available in the WPE version of the GLib API. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp: (testNotInitialized): (testPrivateBrowsing): (testFaviconDatabase): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp: (testFindControllerHide): (beforeAll): * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: 2017-10-25 Zan Dobersek Make SERVICE_WORKER feature buildable on GTK, WPE https://bugs.webkit.org/show_bug.cgi?id=178574 Reviewed by Carlos Garcia Campos. * Scripts/webkitperl/FeatureList.pm: Add the --service-worker option that enables the SERVICE_WORKER feature flag. For now it's enabled on Apple's Cocoa ports (even when build-webkit isn't used for those builds, the flag is enabled here for consistency). 2017-10-24 Michael Catanzaro Unreviewed, fix name of Perl LibXML package on Fedora https://bugs.webkit.org/show_bug.cgi?id=178206 * gtk/install-dependencies: * wpe/install-dependencies: 2017-10-24 Alex Christensen Selecting and right-clicking URL-like strings with IDNA-disallowed characters in host or authority causes rendering engine crash https://bugs.webkit.org/show_bug.cgi?id=174267 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit/CanHandleRequest_Bundle.cpp: (TestWebKitAPI::runTest): 2017-10-24 Eric Carlson Web Inspector: Enable WebKit logging configuration and display https://bugs.webkit.org/show_bug.cgi?id=177027 Reviewed by Joseph Pecoraro. Allow new 'dumpJSConsoleLogInStdErr' test header to redirect log console output to stderr. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (runTest): * WebKitTestRunner/TestController.cpp: (WTR::updateTestOptionsFromTestHeader): (WTR::TestController::runTest): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const): 2017-10-24 Alex Christensen Apply custom header fields from WebsitePolicies to same-domain requests https://bugs.webkit.org/show_bug.cgi?id=178356 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm: (expectHeaders): 2017-10-24 Stephan Szabo [Win][JSCOnly] Make jsconly build testapi and dlls and copy dlls when running tests https://bugs.webkit.org/show_bug.cgi?id=177279 Reviewed by Yusuke Suzuki. * Scripts/build-jsc: * Scripts/run-jsc-stress-tests: 2017-10-23 Lucas Forschler Update README to reference WebKit build archives, instead of 'nightly' Reviewed by Aakash Jain. * WebKitArchiveSupport/README: 2017-10-21 Tim Horton Turn on ccache for Mac cmake builds by default https://bugs.webkit.org/show_bug.cgi?id=177059 Reviewed by Sam Weinig. * ccache/ccache-clang: * ccache/ccache-wrapper: Added. Add a pass-through ccache wrapper to be used with CMake, in addition to the existing faux-clang wrappers. * Scripts/build-webkit: Add --use-ccache and --no-use-ccache option, which will define WK_USE_CCACHE to YES or NO, respectively, which the underlying build systems respect. We do not define WK_USE_CCACHE if the option is not specified, because the underlying build systems have different default values. 2017-10-20 Aakash Jain Do not run binding tests on multiple EWSes https://bugs.webkit.org/show_bug.cgi?id=178599 Reviewed by Alexey Proskuryakov. Remove old code which runs bindings tests and ignore it's result. We now have a dedicated bindings test EWS. * Scripts/webkitpy/tool/steps/runtests.py: (RunTests.run): Removed bindings tests code. * Scripts/webkitpy/tool/steps/runtests_unittest.py: Updated unit-tests. (RunTestsTest.test_webkit_run_unit_tests): Ditto. * Scripts/webkitpy/tool/steps/steps_unittest.py: Ditto. * Scripts/webkitpy/tool/commands/download_unittest.py: Ditto. 2017-10-20 Youenn Fablet WebsiteDataStoreCustomPaths.mm is failing after r223718 https://bugs.webkit.org/show_bug.cgi?id=178596 Unreviewed. * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: (TEST): Making default web site data store creation expected at the end of the test. We should probably not need need to create it. This should be fixed as a follow-up. 2017-10-20 Antoine Quint [Web Animations] Provide basic timeline and animation interfaces https://bugs.webkit.org/show_bug.cgi?id=178526 Reviewed by Dean Jackson. Remove the WEB_ANIMATIONS compile-time flag. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-10-20 Tomas Popela Missing some perl packages in install-dependencies https://bugs.webkit.org/show_bug.cgi?id=178571 Reviewed by Žan Doberšek. Install per-version and perl-Time-HiRes so we can use build-webkit script. Also add missing backlashes. * wpe/install-dependencies: 2017-10-20 Commit Queue Unreviewed, rolling out r222709 and r223572. https://bugs.webkit.org/show_bug.cgi?id=178587 Still getting mac-wk2 EWS bots stuck (Requested by ap on #webkit). Reverted changesets: "Log stack-trace for run-webkit-tests when interrupted" https://bugs.webkit.org/show_bug.cgi?id=176393 https://trac.webkit.org/changeset/222709 "webkitpy: Hang when workers write to the same stack trace file" https://bugs.webkit.org/show_bug.cgi?id=178402 https://trac.webkit.org/changeset/223572 2017-10-19 Nan Wang AX: Provide a way for Accessibility to cache the selection while retrieving rects for speak selection https://bugs.webkit.org/show_bug.cgi?id=176247 Reviewed by Ryosuke Niwa. * TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm: (TestWebKitAPI::TEST): 2017-10-19 Sam Weinig [Settings] Move global settings into their own file https://bugs.webkit.org/show_bug.cgi?id=178512 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WebKitLegacy/ios/AudioSessionCategoryIOS.mm: (TestWebKitAPI::TEST): 2017-10-19 Andy Estes [iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS devices https://bugs.webkit.org/show_bug.cgi?id=178181 Reviewed by Dan Bernstein. * WebKitTestRunner/TestController.cpp: (WTR::TestController::databaseProcessName): 2017-10-19 Saam Barati Turn poly proto back on by default and remove the option https://bugs.webkit.org/show_bug.cgi?id=178525 Reviewed by Mark Lam. * Scripts/run-jsc-stress-tests: 2017-10-18 Ryosuke Niwa Don't expose raw HTML in pasteboard to the web content https://bugs.webkit.org/show_bug.cgi?id=178422 Reviewed by Wenson Hsieh. Added a test case for sanitizing web archive in the system pasteboard to strip privacy sensitive information such as local file paths and potentially harmful scripts like event handlers serialized by WebKit prior to r223462. * TestWebKitAPI/Tests/WebKitCocoa/PasteWebArchive.mm: (PasteWebArchive.SanitizesHTML): 2017-10-18 Youenn Fablet TestController should clear all fetch caches when resetting its state https://bugs.webkit.org/show_bug.cgi?id=178486 Reviewed by Chris Dumez. Adding clearDOMCaches test runner method. Using that method when resetting state. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::clearDOMCaches): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-10-18 Chelsea Pugh [iOS] Use new class name from UIKit when checking UITextSuggestion type https://bugs.webkit.org/show_bug.cgi?id=178416 Reviewed by Tim Horton. This updates our test using/mocking out UITextAutofillSuggestion instead of UIKeyboardLoginCredentialsSuggestion. * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm: (-[UITextAutofillSuggestion initWithUsername:password:]): Copied from UIKit's implementation. This will serve as a mock of this method for builds not containingit. (+[UITextAutofillSuggestion autofillSuggestionWithUsername:password:]): Ditto. (TestWebKitAPI::TEST): Use +[UITextAutofillSuggestion autofillSuggestionWithUsername:password:] inline instead of helper function for creating a new suggestion. (newUIKeyboardLoginCredentialsSuggestion): Deleted. * TestWebKitAPI/ios/UIKitSPI.h: 2017-10-18 Fujii Hironori update-webkit-auxiliary-libs can't download WebKitAuxiliaryLibrary.zip due to 403 Forbidden https://bugs.webkit.org/show_bug.cgi?id=178381 Reviewed by Alexey Proskuryakov. The web server developer.apple.com seems to reject HTTP requests without Accept header field. * Scripts/update-webkit-dependency: Add 'Accept' header field to requests. 2017-10-18 Aakash Jain webkitpy tests should have --json-output option https://bugs.webkit.org/show_bug.cgi?id=178481 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/test/main.py: (Tester._parse_args): Added json-output argument. (Tester._run_tests): Write output to json file. 2017-10-18 Wenson Hsieh Unreviewed, rolling out r223291. See WebCore ChangeLog for more detail. Reverted changeset: "Remove Editor::simplifyMarkup" https://bugs.webkit.org/show_bug.cgi?id=178271 https://trac.webkit.org/changeset/223291 2017-10-18 Chris Dumez Add an efficient data structure for WebCore to query if there is a Service Worker registered for a given origin https://bugs.webkit.org/show_bug.cgi?id=177876 Reviewed by Ryosuke Niwa. Clear service worker registrations between test runs to avoid flakiness. * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues): 2017-10-18 Zan Dobersek Remove remnants of OpenWebRTC https://bugs.webkit.org/show_bug.cgi?id=178437 Reviewed by Alejandro G. Castro. Drop OpenWebRTC packages from the GTK's Jhbuild modules file. Relevant patches are also removed. * gtk/jhbuild.modules: * gtk/patches/libnice-0001-TURN-allow-REALM-to-be-empty.patch: Removed. * gtk/patches/libnice-0001-nicesrc-spin-the-agent-mainloop-in-a-separate-thread.patch: Removed. * gtk/patches/rtspsrc-timeout-on-udpsrc-is-in-nanoseconds.patch: Removed. * gtk/patches/udpsrc-improve-timeouts.patch: Removed. 2017-10-17 Jonathan Bedard webkitpy: Hang when workers write to the same stack trace file https://bugs.webkit.org/show_bug.cgi?id=178402 Reviewed by Aakash Jain. Workers can hang if they all write to the same stack trace file when receiving a SIGTERM. Attach the pid to the stack trace file name so that each worker writes to a different file. * Scripts/webkitpy/common/interupt_debugging.py: (log_stack_trace_on_term.handler): Name stack trace file path/-filename. (log_stack_trace_on_cntrl_c.handler): Ditto. 2017-10-17 John Wilander Add and remove cookie partition accordingly in intermediary redirect requests https://bugs.webkit.org/show_bug.cgi?id=178369 Reviewed by Brent Fulgham. Adds the function statisticsNotifyObserver(). * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::statisticsNotifyObserver): * WebKitTestRunner/InjectedBundle/InjectedBundle.h: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::statisticsNotifyObserver): * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-10-17 Youenn Fablet Cache API implementation should be able to compute storage size for WebKit client applications. https://bugs.webkit.org/show_bug.cgi?id=178350 Reviewed by Chris Dumez. Adding support for a domCacheSize getter. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::domCacheSize): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::FetchCacheSizeForOriginCallbackContext::FetchCacheSizeForOriginCallbackContext): (WTR::fetchCacheSizeForOriginCallback): (WTR::TestController::domCacheSize): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-10-17 Nael Ouedraogo [GStreamer][GTK][WPE] update-webkit-libs-jhbuild fails to detect changes in included moduleset files https://bugs.webkit.org/show_bug.cgi?id=178206 Reviewed by Michael Catanzaro. The update-webkit-libs-jhbuild scripts computes MD5 sum of GTK/WPE jhbuild configuration files to check if it needs to rebuild the dependencies libraries. This patch fixes a bug when main GTK/WPE jhbuild modules configuration file includes additional files (for example GStreamer module). It parses jhbuild.modules file to check if additional files are included. If any, it computes MD5 sum for each of these included files. * Scripts/update-webkit-libs-jhbuild: (getJhbuildIncludedFilePaths): New function that returns included files in jhbuild.modules (jhbuildConfigurationCheckFile): New function to check if MD5 sum file changes. (jhbuildConfigurationChanged): Add MD5 sum check for included files. (saveMd5File): New function to save MD5 sum of a file. (saveJhbuildMd5): Add saving included files MD5 sum. (deleteJhbuildMd5): Delete included files MD5 sum * gtk/install-dependencies: Add perl-libXML lib that is used to parse jhbuild file. * wpe/install-dependencies: Ditto. 2017-10-17 Tomas Popela Undefined WK_API_ENABLED warning when compiling COCOA content on WebKitGTK+ https://bugs.webkit.org/show_bug.cgi?id=178208 Check whether we are on COCOA platform before checking for WK_API_ENABLED. Reviewed by Ryosuke Niwa. * WebKitTestRunner/TestController.cpp: (WTR::TestController::clearDOMCache): 2017-10-17 Keith Miller Change WebCore sources to work with unified source builds https://bugs.webkit.org/show_bug.cgi?id=178229 Rubber stamped by Tim Horton. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-10-16 Christopher Reid [Win] Webkit should still be able to build when unable to check if libraries are up to date https://bugs.webkit.org/show_bug.cgi?id=178367 Adding a option to skip the check to see if windows libraries are up to date. This option is useful when testing modified libraries. This option also allows building webkit when GitHub blocks requests to verify the latest library version. Reviewed by Per Arne Vollan. * Scripts/build-webkit: 2017-10-12 Matt Rajca Add API support for quirk that lets an arbitrary click allow auto-play. https://bugs.webkit.org/show_bug.cgi?id=178227 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm: (TEST): Added API test. 2017-10-16 Maureen Daum If an origin doesn't have databases in the Databases table we should still remove its information from disk in DatabaseTracker::deleteOrigin() https://bugs.webkit.org/show_bug.cgi?id=178281 Reviewed by Brent Fulgham. Verify that if there is an entry in the Origins table but no entries in the Databases table that we still remove the directory for the origin, and that we remove the entry from the Origins table. * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: (TestWebKitAPI::TEST): 2017-10-15 Ryosuke Niwa Cannot access images included in the content pasted from Microsoft Word https://bugs.webkit.org/show_bug.cgi?id=124391 Reviewed by Antti Koivisto. Added tests for sanitizing HTML contents for copy & paste and drag & drop. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm: Added. (readHTMLFromPasteboard): Added. (createWebViewWithCustomPasteboardDataEnabled): Added. (CopyHTML.Sanitizes): Added. * TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm: (createWebViewWithCustomPasteboardDataEnabled): Added to enable more tests on bots. * TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm: (writeRTFToPasteboard): Added. (createWebViewWithCustomPasteboardDataEnabled): Added. (createHelloWorldString): Added. (PasteRTF.ExposesHTMLTypeInDataTransfer): Added. (PasteRTFD.ExposesHTMLTypeInDataTransfer): Added. (PasteRTFD.ImageElementUsesBlobURLInHTML): Added. * TestWebKitAPI/Tests/WebKitCocoa/copy-html.html: Added. * TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html: Store the clipboardData contents for PasteRTF.ExposesHTMLTypeInDataTransfer and PasteRTFD.ExposesHTMLTypeInDataTransfer. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (DataInteractionTests.DataTransferSanitizeHTML): 2017-10-16 Youenn Fablet Activate Cache API by default https://bugs.webkit.org/show_bug.cgi?id=178186 Reviewed by Chris Dumez. Removing explicit activation of cache api. * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setCacheAPIEnabled): Deleted. * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-10-16 Ross Kirsling run-webkit-tests help text should mention arguments too https://bugs.webkit.org/show_bug.cgi?id=178352 Reviewed by Tim Horton. * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): 2017-10-16 Maureen Daum If we fail to delete any database file, don't remove its information from the tracker database and https://bugs.webkit.org/show_bug.cgi?id=178251 Reviewed by Brady Eidson. Add tests that verify we correctly delete databases and remove their information from the tracker database, even if the database doesn't exist. Verify that if we fail to delete a database, we don't remove its information from the tracker database. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Move DatabaseTrackerTest.cpp to DatabaseTrackerTest.mm so that we can use the cocoa method for creating a temporary directory in the tests. * TestWebKitAPI/Tests/WebCore/DatabaseTrackerTest.cpp: Removed. The existing test was copied to DatabaseTrackerTest.mm. * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: Added. (TestWebKitAPI::TEST): (TestWebKitAPI::addToDatabasesTable): (TestWebKitAPI::removeDirectoryAndAllContents): (TestWebKitAPI::createFileAtPath): 2017-10-16 Ryan Haddad Unreviewed, rolling out r223422. These tests are for a change that was rolled out in r223420 Reverted changeset: "If we fail to delete any database file, don't remove its information from the tracker database" https://bugs.webkit.org/show_bug.cgi?id=178251 https://trac.webkit.org/changeset/223422 2017-10-16 Maureen Daum If we fail to delete any database file, don't remove its information from the tracker database and https://bugs.webkit.org/show_bug.cgi?id=178251 Reviewed by Brady Eidson. Add tests that verify we correctly delete databases and remove their information from the tracker database, even if the database doesn't exist. Verify that if we fail to delete a database, we don't remove its information from the tracker database. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Move DatabaseTrackerTest.cpp to DatabaseTrackerTest.mm so that we can use the cocoa method for creating a temporary directory in the tests. * TestWebKitAPI/Tests/WebCore/DatabaseTrackerTest.cpp: Removed. The existing test was copied to DatabaseTrackerTest.mm. * TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm: Added. (TestWebKitAPI::TEST): (TestWebKitAPI::addToDatabasesTable): (TestWebKitAPI::removeDirectoryAndAllContents): (TestWebKitAPI::createFileAtPath): 2017-10-16 David Kilzer Add RELEASE_ASSERT_WITH_SECURITY_IMPLICATION() macro Reviewed by Alex Christensen. * Scripts/webkitpy/style/checkers/cpp.py: (check_language): Add checker to warn about using ASSERT_WITH_SECURITY_IMPLICATION(). (CppChecker.categories): Add 'security/assertion' to list of enabled checkers. * Scripts/webkitpy/style/checkers/cpp_unittest.py: (CppStyleTest.test_debug_security_assertion): Add tests for new checker. 2017-10-16 Chris Dumez Clicks on Link with download attribute causes all (other) links to trigger download when clicked https://bugs.webkit.org/show_bug.cgi?id=178267 Reviewed by Darin Adler. Use PassThrough policy in WKTR's InjectedBundle's decidePolicyForNewWindowAction so that the request is sent to the UIProcess. This gets WKTR's closer to Safari behavior and helps reproduce the bug. Without this change, I would not be able to write a regression test for this bug that is very easily reproducible in Safari. * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::InjectedBundlePage::decidePolicyForNewWindowAction): 2017-10-16 Emilio Cobos Álvarez Add Emilio Cobos Álvarez to the contributors list. https://bugs.webkit.org/show_bug.cgi?id=178334 Reviewed by Antti Koivisto. * Scripts/webkitpy/common/config/contributors.json: 2017-10-07 Maciej Stachowiak Improve --help documentation and add --list-plans to show available benchmarks. https://bugs.webkit.org/show_bug.cgi?id=178059 Reviewed by Ryosuke Niwa. * Scripts/webkitpy/benchmark_runner/benchmark_runner.py: (BenchmarkRunner.available_plans): New function that returns the list of available plans. (BenchmarkRunner.plan_directory): New method to centralize knowledge of where the plan files live. (BenchmarkRunner._find_plan_file): Updated to use BenchmarkRunner.plan_directory * Scripts/webkitpy/benchmark_runner/run_benchmark.py: (parse_args): Help cleanup: Reordered options to put more common ones at the top. Fixed wording. Added help for each option. Explained default for each option that has one. New option: --list-plans which tells you the available benchmarks. Code cleanup: Removed use of dest where redundant, made variable names conforming to Python coding style. (run_benchmark_plan): Adapted for new variable names. (list_benchmark_plans): New helper for --list-plans option. (start): Account for --list-plans. Also use BechmarkRunner.available_plans and use BenchmarkRunner.plan_directory instead of duplicating code/knowledge here. 2017-10-16 Wenson Hsieh On ToT, event.dataTransfer.getData("text/uri-list") returns an empty string when dragging an image https://bugs.webkit.org/show_bug.cgi?id=178301 Reviewed by Darin Adler. Fixes issues in DumpRenderTree's LocalPasteboard to ensure that drag-drop-href-as-url.html exposes files, and also adds a new iOS drag and drop API test. * DumpRenderTree/mac/DumpRenderTreePasteboard.mm: (-[LocalPasteboard addTypes:owner:]): (-[LocalPasteboard setData:forType:]): Fixes LocalPasteboard's implementation of changeCount to incremement when the pasteboard owner changes, rather than every time data is changed. This is consistent with NSPasteboard behavior. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): Adds a new API test to verify that an image and HTTP URL written by the platform is correctly web exposed. 2017-10-15 Darin Adler UTF-8 decoding produces one replacement character per byte; Encoding standard requires one replacement character per illegal sequence instead https://bugs.webkit.org/show_bug.cgi?id=178207 Reviewed by Sam Weinig. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added test. * TestWebKitAPI/Tests/WebCore/TextCodec.cpp: Added. (TestWebKitAPI::decodeHexTestBytes): Decodes a string so we can write readable tests. (TestWebKitAPI::escapeNonPrintableASCIICharacters): Encodes a string so we can write readable tests. (TestWebKitAPI::TEST): Added some UTF-8 tests and UTF-8 invalid sequences tests. Would be smart to add more tests for other cases, exercising the fast ASCII loop for example, and other encodings. 2017-10-14 Adrian Perez de Castro [WPE] JHBuild build directory DependenciesWPE/Build is not removed by update-webkit-libs-jhbuild https://bugs.webkit.org/show_bug.cgi?id=178212 Reviewed by Michael Catanzaro. * Scripts/update-webkit-libs-jhbuild: (cleanJhbuild): The WPE JHBuild also uses a separate "Build" subdirectory, so do not skip cleaning it when "--wpe" is passed to the script. 2017-10-13 Adrian Perez de Castro [WPE] Fontconfig fails build in JHBuild with “error: conflicting types for ‘FcObjectTypeHash’” https://bugs.webkit.org/show_bug.cgi?id=178283 Reviewed by Žan Doberšek. * wpe/jhbuild.modules: Flag Fontconfig to be built inside the source directory, otherwise compilation fails. While at it, pass "--disable-docs" to cut a bit on build time. 2017-10-13 Youenn Fablet Implement listing origins for which CacheStorage is storing data https://bugs.webkit.org/show_bug.cgi?id=178236 Reviewed by Chris Dumez. Adding hasDOMCache API for checking whether origin is storing data through Cache API. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::hasDOMCache): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::FetchCacheOriginsCallbackContext::FetchCacheOriginsCallbackContext): (WTR::fetchCacheOriginsCallback): (WTR::TestController::hasDOMCache): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-10-13 Alex Christensen Remove Editor::simplifyMarkup https://bugs.webkit.org/show_bug.cgi?id=178271 Reviewed by Wenson Hsieh. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/mac/SimplifyMarkup.mm: Removed. 2017-10-11 Gustavo Noronha Silva [GLib] WebKitNavigationAction should tell whether it is a redirect https://bugs.webkit.org/show_bug.cgi?id=178178 Test that WebKitNavigationAction properly reports being a redirect. Reviewed by Carlos Garcia Campos. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp: (testNavigationPolicy): test that loading /redirect leads to a redirect WebKitNavigationAction. (serverCallback): add a /redirect path to the server, which causes a redirect. 2017-10-13 Chris Dumez Unreviewed, fix webkitpy failure after r223273 * Scripts/webkitpy/w3c/test_importer_unittest.py: (TestImporterTest.test_harnesslinks_conversion): 2017-10-12 Chris Dumez import-w3c-tests modifies test sources and sometimes causes them to fail https://bugs.webkit.org/show_bug.cgi?id=178234 Reviewed by Ryosuke Niwa. Update import-w3c-tests to stop rewriting tests as this is causing some tests to fail unexpectedly. * Scripts/webkitpy/w3c/test_importer.py: (TestImporter.import_tests): 2017-10-12 Youenn Fablet Layout Test http/tests/cache-storage/cache-clearing.https.html is failing https://bugs.webkit.org/show_bug.cgi?id=178200 Reviewed by Chris Dumez. Making clearDOMCache wait for removal completion to exit. This removes the risk to interact with the cache while deleting it which will end up be racy in tests. * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::clearDOMCache): * WebKitTestRunner/TestController.cpp: (WTR::ClearDOMCacheCallbackContext::ClearDOMCacheCallbackContext): (WTR::clearDOMCacheCallback): (WTR::TestController::clearDOMCache): * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-10-12 John Wilander ResourceLoadObserver::logFrameNavigation() should use redirectResponse.url() https://bugs.webkit.org/show_bug.cgi?id=175257 Reviewed by Brent Fulgham. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::isStatisticsRegisteredAsSubFrameUnder): (WTR::TestRunner::isStatisticsRegisteredAsRedirectingTo): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::isStatisticsRegisteredAsSubFrameUnder): Not implemented. (WTR::TestController::isStatisticsRegisteredAsRedirectingTo): Not implemented. * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::isStatisticsRegisteredAsSubFrameUnder): Implemented platform-specific. (WTR::TestController::isStatisticsRegisteredAsRedirectingTo): Implemented platform-specific. 2017-10-12 Andy Estes [iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS devices https://bugs.webkit.org/show_bug.cgi?id=178181 Reviewed by Dan Bernstein. * WebKitTestRunner/TestController.cpp: (WTR::TestController::databaseProcessName): 2017-10-12 Myles C. Maxfield Emit SPIR-V from WSL compiler (Part 1) https://bugs.webkit.org/show_bug.cgi?id=177998 Reviewed by Filip Pizlo. This patch implements the first half of a SPIR-V codegen phase for WSL. This includes all the operations which aren't actually emitting the contents of functions themselves. For example, this includes things like representing WSL types with SPIR-V types, and declaring shaders' inputs and outputs. A future patch will actually emit the contents of functions. There are two helper visitors here: SPIRVTypeAnalyzer which generates SPIR-V types from WSL types, and SPIRVPrimitiveVariableAnalyzer which identifies input and output variables from a shader (and assigns location values to each one). This patch is currently pursuing the "logical mode" detailed in https://bugs.webkit.org/show_bug.cgi?id=176967. In this mode, each pointer and array reference operation can be statically traced to the variable or array it is operating on. This has the interesting property where accessing a pointer inside an array is forbidden, because the array index may be computed at runtime, so the compiler can't know at compile time which variable the pointer operation will be accessing. However, this isn't true for structs; the program must statically state which struct member it is accessing. Therefore, pointers or array references must not transitively appear within an array, but they may appear within a struct. The same logic applies to array references; those get lowered to just two indexes in SPIR-V (a lower bound and an upper bound). So, outside of an array, SPIR-V types don't need to include any pointers because any operation with the pointer doesn't need access to the runtime value of the pointer. Inside of an array, pointers are forbidden. Therefore, SPIR-V types will never include any pointers. This means that, for example, WSL can represent a linked list in logical mode. However, a WSL program cannot iterate across the list, because that would require assigning to a pointer. So instead, a program using a linked list could only say something like "list.ptr->ptr->ptr->value". * WebGPUShadingLanguageRI/LateChecker.js: (LateChecker.prototype._checkShaderType): * WebGPUShadingLanguageRI/SPIR-V.js: (SPIRV.OperandChecker.prototype._isStar): (SPIRV.OperandChecker.prototype.nextComparisonType): (SPIRV.OperandChecker.prototype.finalize): (SPIRV.OperandChecker): * WebGPUShadingLanguageRI/SPIRV.html: * WebGPUShadingLanguageRI/SPIRVCodegen.js: Added. (findEntryPoints): (emitTypes.doEmitTypes): (emitTypes): (ConstantFinder.prototype.visitGenericLiteralType): (ConstantFinder): (generateSPIRV): * WebGPUShadingLanguageRI/SPIRVTypeAnalyzer.js: Added. (SPIRVTypeAnalyzer): (SPIRVTypeAnalyzer.prototype.get program): (SPIRVTypeAnalyzer.prototype.get typeMap): (SPIRVTypeAnalyzer.prototype.get currentId): (SPIRVTypeAnalyzer.prototype.get stack): (SPIRVTypeAnalyzer.prototype.visitTypeRef): (SPIRVTypeAnalyzer.prototype._encounterType): (SPIRVTypeAnalyzer.prototype.visitNullType): (SPIRVTypeAnalyzer.prototype.visitGenericLiteralType): (SPIRVTypeAnalyzer.prototype.visitNativeType): (SPIRVTypeAnalyzer.prototype.visitEnumType): (SPIRVTypeAnalyzer.prototype.visitPtrType): (SPIRVTypeAnalyzer.prototype.visitArrayRefType): (SPIRVTypeAnalyzer.prototype.visitArrayType): (SPIRVTypeAnalyzer.prototype.visitStructType): * WebGPUShadingLanguageRI/SPIRVVariableAnalyzer.js: Added. (SPIRVPrimitiveVariableAnalyzer): (SPIRVPrimitiveVariableAnalyzer.prototype.get program): (SPIRVPrimitiveVariableAnalyzer.prototype.get typeMap): (SPIRVPrimitiveVariableAnalyzer.prototype.get currentId): (SPIRVPrimitiveVariableAnalyzer.prototype.get currentLocation): (SPIRVPrimitiveVariableAnalyzer.prototype.get nameComponents): (SPIRVPrimitiveVariableAnalyzer.prototype.get result): (SPIRVPrimitiveVariableAnalyzer.prototype.visitTypeRef): (SPIRVPrimitiveVariableAnalyzer.prototype.visitNullType): (SPIRVPrimitiveVariableAnalyzer.prototype.visitGenericLiteralType): (SPIRVPrimitiveVariableAnalyzer.prototype.visitNativeType): (SPIRVPrimitiveVariableAnalyzer.prototype.visitEnumType): (SPIRVPrimitiveVariableAnalyzer.prototype.visitPtrType): (SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayRefType): (SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayType): (SPIRVPrimitiveVariableAnalyzer.prototype.visitStructType): * WebGPUShadingLanguageRI/WSL.md: * WebGPUShadingLanguageRI/index.html: 2017-09-29 Filip Pizlo Enable gigacage on iOS https://bugs.webkit.org/show_bug.cgi?id=177586 Reviewed by JF Bastien. Add a mode to test disabling Gigacage. * Scripts/run-jsc-stress-tests: * Scripts/webkitruby/jsc-stress-test-writer-default.rb: 2017-10-11 Sam Weinig Remove out-parameter variants of copyToVector https://bugs.webkit.org/show_bug.cgi?id=178155 Reviewed by Tim Horton. * DumpRenderTree/JavaScriptThreading.cpp: (stopJavaScriptThreads): 2017-10-12 Sam Weinig It should be possible to iterate just the values (and not the counts) of a HashCountedSet https://bugs.webkit.org/show_bug.cgi?id=178169 Reviewed by Daniel Bates. * TestWebKitAPI/Tests/WTF/HashCountedSet.cpp: (TestWebKitAPI::TEST): Add test for HashCountedSet's new values() range. 2017-10-11 Frederic Wang run-safari --ios-simulator is no longer working with Xcode 9 https://bugs.webkit.org/show_bug.cgi?id=177595 Reviewed by Daniel Bates. In Xcode 9, the path of the simulator application is now in a new CoreSimulator subdirectory of the iphoneOS SDK platform. This patch updates webkitdirs.pm to use the new path in Xcode 9 or higher so that it is possible to run Safari on the iOS simulator again. It also does some minor code refactoring to improve code reuse. * Scripts/configure-xcode-for-ios-development: Move sdkDirectory() and sdkPlatformDirectory() into webkitdirs. (sdkDirectory): Deleted. (sdkPlatformDirectory): Deleted. * Scripts/webkitdirs.pm: Expose new sdkDirectory() and sdkPlatformDirectory(). (sdkDirectory): Moved from configure-xcode-for-ios-development. (sdkPlatformDirectory): Ditto. (XcodeSDKPath): Rely on sdkDirectory() to implement this function. (iosSimulatorApplicationsPath): In Xcode 9 or higher use the new path. It is calculated by relying on sdkPlatformDirectory(). 2017-10-11 Dewei Zhu run-benchmark script should set '__XPC_DYLD_FRAMEWORK_PATH' while launching local-built Safari on Mac. https://bugs.webkit.org/show_bug.cgi?id=178199 Reviewed by Saam Barati. '__XPC_DYLD_FRAMEWORK_PATH' should be set while launching Safari on run-benchmark script. 'force_remove' function should support both file and directory. * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: (OSXSafariDriver.launch_url): * Scripts/webkitpy/benchmark_runner/utils.py: (force_remove): 2017-10-11 Saam Barati Runtime disable poly proto because it may be a 3-4% Speedometer regression https://bugs.webkit.org/show_bug.cgi?id=178192 Reviewed by JF Bastien. * Scripts/run-jsc-stress-tests: 2017-10-11 Youenn Fablet Add API to clean CacheStorage data https://bugs.webkit.org/show_bug.cgi?id=178034 Reviewed by Chris Dumez. Adding internals API to trigger deleting all or origin-persistent cache storage persistent data. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::clearDOMCache): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::clearDOMCache): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): 2017-10-11 Chris Dumez [Geolocation] Expose Coordinates.floorLevel https://bugs.webkit.org/show_bug.cgi?id=178173 Reviewed by Ryosuke Niwa. Add test infrastructure for testing Coordinates.floorLevel. * DumpRenderTree/TestRunner.cpp: (setMockGeolocationPositionCallback): * DumpRenderTree/TestRunner.h: * DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::setMockGeolocationPosition): * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::setMockGeolocationPosition): * WebKitTestRunner/GeolocationProviderMock.cpp: (WTR::GeolocationProviderMock::setPosition): * WebKitTestRunner/GeolocationProviderMock.h: * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::setMockGeolocationPosition): * WebKitTestRunner/InjectedBundle/InjectedBundle.h: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setMockGeolocationPosition): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::setMockGeolocationPosition): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): 2017-10-11 Youenn Fablet Bump default cache storage quota to 20MB https://bugs.webkit.org/show_bug.cgi?id=178132 Reviewed by Alex Christensen. * WebKitTestRunner/TestController.cpp: (WTR::TestController::generateContextConfiguration const): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::initializeWebViewConfiguration): Setting quota to 400kb 2017-10-11 Commit Queue Unreviewed, rolling out r223113 and r223121. https://bugs.webkit.org/show_bug.cgi?id=178182 Reintroduced 20% regression on Kraken (Requested by rniwa on #webkit). Reverted changesets: "Enable gigacage on iOS" https://bugs.webkit.org/show_bug.cgi?id=177586 https://trac.webkit.org/changeset/223113 "Use one virtual allocation for all gigacages and their runways" https://bugs.webkit.org/show_bug.cgi?id=178050 https://trac.webkit.org/changeset/223121 2017-10-11 Ryosuke Niwa Sanitize URL in pasteboard for other applications and cross origin content https://bugs.webkit.org/show_bug.cgi?id=178060 Reviewed by Wenson Hsieh. Added API tests for sanitizing URLs copied from web content, and that the original URL is exposed to the web content. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm: Added. (readURLFromPasteboard): A helper function. * TestWebKitAPI/Tests/WebKitCocoa/copy-url.html: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (DataInteractionTests.DataTransferGetDataWhenDroppingCustomData): Rebaselined. https://www.apple.com is no longer normalized to https://www.apple.com/ by NSURL / UIPasteboard as expected. (DataInteractionTests.DataTransferSetDataValidURL): Added. (DataInteractionTests.DataTransferSetDataUnescapedURL): Added. (DataInteractionTests.qDataTransferSetDataInvalidURL): Added. 2017-10-11 Chris Dumez Modernize Geolocation code https://bugs.webkit.org/show_bug.cgi?id=178148 Reviewed by Ryosuke Niwa. * DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::setMockGeolocationPosition): 2017-10-11 Nael Ouedraogo [GStreamer] Many media source tests crashing with GStreamer-CRITICAL **: _gst_util_uint64_scale: assertion 'denom != 0' failed in gst_qtdemux_configure_stream() https://bugs.webkit.org/show_bug.cgi?id=176804 Reviewed by Michael Catanzaro. Add patch to fix assert in qtdemux. * gstreamer/jhbuild.modules: * gstreamer/patches/gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch: Added. 2017-10-11 Tomas Popela Use https for trac changeset and browser links https://bugs.webkit.org/show_bug.cgi?id=178167 Reviewed by Alexey Proskuryakov. Switch the http://trac.webkit.org/changeset and http://trac.webkit.org/browser links that are printed by webkitpy to https. Also update the test expectations. * Scripts/webkitpy/common/checkout/checkout_unittest.py: * Scripts/webkitpy/common/config/committervalidator_unittest.py: (CommitterValidatorTest.test_flag_permission_rejection_message): * Scripts/webkitpy/common/config/urls.py: (view_source_url): (view_revision_url): * Scripts/webkitpy/common/net/bugzilla/bug_unittest.py: (BugTest.test_commit_revision): * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py: * Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py: (MainTest): (MainTest.test_run_with_upload_json_should_generate_perf_webkit_json): * Scripts/webkitpy/style/checkers/changelog_unittest.py: (ChangeLogCheckerTest.test_missing_bug_number): * Scripts/webkitpy/tool/bot/feeders_unittest.py: * Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py: * Scripts/webkitpy/tool/bot/ircbot_unittest.py: (IRCBotTest.test_rollout): (IRCBotTest.test_revert): (IRCBotTest.test_multi_rollout): (IRCBotTest.test_rollout_with_r_in_svn_revision): (IRCBotTest.test_multi_rollout_with_r_in_svn_revision): (IRCBotTest.test_rollout_invalidate_reason): (test_multi_rollout_invalidate_reason): * Scripts/webkitpy/tool/bot/sheriff_unittest.py: * Scripts/webkitpy/tool/commands/download_unittest.py: * Scripts/webkitpy/tool/commands/newcommitbot_unittest.py: * Scripts/webkitpy/tool/commands/queues_unittest.py: * Scripts/webkitpy/tool/commands/suggestnominations.py: (SuggestNominations._count_commit): * Scripts/webkitpy/tool/commands/upload_unittest.py: * Scripts/webkitpy/tool/servers/data/rebaselineserver/util.js: (getTracUrl): (getSortedKeys): * Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py: (CloseBugForLandDiffTest.test_empty_state): * Scripts/webkitpy/tool/steps/commit_unittest.py: (CommitTest._test_check_test_expectations): * Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py: (UpdateChangeLogsForRevertTest): 2017-10-10 Ryosuke Niwa Enable custom pasteboard data in DumpRenderTree and WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=178154 Reviewed by Wenson Hsieh. Fixed the bug that LocalPasteboard would fail to load the promise type if data is set after declaring types by delaying the call to provideDataForType until when dataForType is called. Without this fix, fast/events/dropzone-002.html would start failing after enabling custom pasteboard data. With this fix, fast/events/dropzone-005.html also starts passing. * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * DumpRenderTree/mac/DumpRenderTreePasteboard.mm: (-[LocalPasteboard addTypes:owner:]): (-[LocalPasteboard dataForType:]): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-10-10 Joanmarie Diggs AX: [ATK] ARIA form role should be mapped to ATK_ROLE_LANDMARK; not ATK_ROLE_FORM https://bugs.webkit.org/show_bug.cgi?id=178137 Reviewed by Chris Fleizach. Add handling for ATK_ROLE_LANDMARK resulting from the ARIA form role. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: 2017-10-10 Jonathan Bedard run-webkit-tests: upload test results to multiple servers https://bugs.webkit.org/show_bug.cgi?id=178012 Reviewed by Lucas Forschler. Allowing uploading of results to multiple servers makes developing new results databases much easier, and does not complicate uploading logic. * Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager.upload_results): Iterate through the list of results server hosts and send results to each one. * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py: (JSONLayoutResultsGenerator.__init__): Accept a list of test results servers. * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py: (JSONResultsGenerator.__init__): Accept a list of test results servers. (JSONResultsGenerator.get_json): Pick which server to download from by index. (JSONResultsGenerator.upload_json_files): Upload the JSON to each results server. (JSONResultsGenerator._get_archived_json_results): Pick which server to download from. * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): Allow multiple test-results-servers and results-server-hosts to be passed to run-webkit-tests. 2017-10-09 Youenn Fablet Vector should be able to easily create from a list of movable only items https://bugs.webkit.org/show_bug.cgi?id=176432 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): 2017-09-29 Filip Pizlo Enable gigacage on iOS https://bugs.webkit.org/show_bug.cgi?id=177586 Reviewed by JF Bastien. Add a mode to test disabling Gigacage. * Scripts/run-jsc-stress-tests: * Scripts/webkitruby/jsc-stress-test-writer-default.rb: 2017-10-09 Commit Queue Unreviewed, rolling out r223015 and r223025. https://bugs.webkit.org/show_bug.cgi?id=178093 Regressed Kraken on iOS by 20% (Requested by keith_mi_ on #webkit). Reverted changesets: "Enable gigacage on iOS" https://bugs.webkit.org/show_bug.cgi?id=177586 http://trac.webkit.org/changeset/223015 "Unreviewed, disable Gigacage on ARM64 Linux" https://bugs.webkit.org/show_bug.cgi?id=177586 http://trac.webkit.org/changeset/223025 2017-10-09 Sam Weinig Make HashMap::keys() and HashMap::values() work with WTF::map/WTF::copyToVector https://bugs.webkit.org/show_bug.cgi?id=178072 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): Add tests for HashMap::keys() and HashMap::values() working with copyToVector. 2017-10-05 Frederic Wang Remove WOFF2 from Source/ThirdParty. https://bugs.webkit.org/show_bug.cgi?id=177862 Reviewed by Michael Catanzaro. * Scripts/webkitpy/style/checker.py: Remove woff2. * gtk/jhbuild.modules: Add new jhbuild module for woff2. 2017-10-08 Sam Weinig It should be possible to create a ListHashSet with a std::initializer_list. https://bugs.webkit.org/show_bug.cgi?id=178070 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/ListHashSet.cpp: (TestWebKitAPI::TEST): Add a test for using std::initializer_list with ListHashSet. 2017-10-08 Sam Weinig There should be a version of copyToVector that returns a Vector, rather than using an out parameter https://bugs.webkit.org/show_bug.cgi?id=177732 Reviewed by Saam Barati. * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): Add tests for the new copyToVector and copyToVectorOf functions. 2017-10-08 Darin Adler Fix bugs related to setting reflected floating point DOM attributes https://bugs.webkit.org/show_bug.cgi?id=178061 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WTF/AtomicString.cpp: Added a test of the AtomicString::number function, based on the test cases we already had for String::numberToStringECMAScript, and with some additional cases with powers of 10 that check handling of trailng zeroes. * TestWebKitAPI/Tests/WTF/WTFString.cpp: Added test cases to the existing tests of the String::numberToStringECMAScript function as above. Also added tests for String::number and for String::numberToStringFixedWidth. Also changed the tests to all use EXPECT instead of ASSERT macros since these are all non-fatal. * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::dumpFrameScrollPosition): Use StringBuilder::appendECMAScriptNumber instead of String::number. 2017-10-08 Dean Jackson Make sort-Xcode-project file handle UnifiedSources https://bugs.webkit.org/show_bug.cgi?id=178042 Reviewed by Sam Weinig. Sort the UnifiedSource(\d+) files by number rather than alphabetically. * Scripts/sort-Xcode-project-file: (sortChildrenByFileName): (sortFilesByFileName): 2017-09-29 Filip Pizlo Enable gigacage on iOS https://bugs.webkit.org/show_bug.cgi?id=177586 Reviewed by JF Bastien. Add a mode to test disabling Gigacage. * Scripts/run-jsc-stress-tests: * Scripts/webkitruby/jsc-stress-test-writer-default.rb: 2017-10-06 Aishwarya Nirmal [iOS] Respect the "caret-color" CSS property when editing https://bugs.webkit.org/show_bug.cgi?id=177489 Reviewed by Tim Horton. Adds test for iOS caret color support. * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/UIKitSPI.h: 2017-10-06 Alex Christensen Add more infrastructure to apply custom header fields to same-origin requests https://bugs.webkit.org/show_bug.cgi?id=177629 Reviewed by Ryosuke Niwa. * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp: (canonicalizeHTTPHeader): (shouldRemainUnchanged): (shouldBeInvalid): (shouldBecome): * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm: (TEST): (expectHeaders): (-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): (-[CustomHeaderFieldsDelegate webView:startURLSchemeTask:]): (-[CustomHeaderFieldsDelegate webView:stopURLSchemeTask:]): Test main resource requests, subresource requests, and cross-origin requests. 2017-10-06 Wenson Hsieh [iOS] Tweak support for classifying form controls (followup to r222487) https://bugs.webkit.org/show_bug.cgi?id=177917 Reviewed by Dean Jackson. Minor cleanup around autofill API tests added in r222487. Additionally, augments some of these API tests to verify that after blurring the focused element, the content view no longer accepts autofill credentials (see WebKit ChangeLog for more details). Also augments tests to verify that the URL in the autofill context matches the document URL. * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm: Remove the USE(APPLE_INTERNAL_SDK) guard for these API tests. (newUIKeyboardLoginCredentialsSuggestion): Add a stub implementation of UIKeyboardLoginCredentialsSuggestion. This allows [UIKeyboardLoginCredentialsSuggestion new] to return a nonnull object, which allows these API tests to verify that the credential filling codepath works as intended without any additional UIKit changes. Currently, tests for the value of username and password fields are passing even though the fields are not being populated because the expected string values are null, and the observed value is an empty string. We instead check the literal string values here instead of credentialSuggestion's properties, so that tests verifying the behavior of -insertTextSuggestion: will require username and password inputs to be populated. (-[TestInputDelegate _webView:focusShouldStartInputSession:]): (-[AutofillTestView initWithFrame:]): (-[AutofillTestView _autofillInputView]): (-[AutofillTestView textInputHasAutofillContext]): (TestWebKitAPI::TEST): Add an additional API test to verify that programmatic focus without user interaction (and also without testing overrides) does not activate autofill. (createUIKeyboardLoginCredentialsSuggestion): Deleted. (-[WKWebView _privateTextInput]): Deleted. * TestWebKitAPI/ios/UIKitSPI.h: Minor gardening to remove iOS version >= 11 guards that are now unnecessary. Additionally, add some more private header imports (with corresponding interface definitions for building and running with the public SDK). 2017-10-06 Antti Koivisto Minor WeakPtr improvements https://bugs.webkit.org/show_bug.cgi?id=177958 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WTF/WeakPtr.cpp: (TestWebKitAPI::TEST): (TestWebKitAPI::Base::createWeakPtr): Deleted. 2017-10-06 Carlos Garcia Campos Unreviewed. Fix parsing of GTK unit tests output in bot configuration. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (RunGtkAPITests.commandComplete): Remove trailing ':' from the regular expression. 2017-10-06 Charles Turner Disable bmalloc when running Valgrind https://bugs.webkit.org/show_bug.cgi?id=177923 Reviewed by Carlos Alberto Lopez Perez. * Scripts/webkitpy/port/gtk.py: (GtkPort.setup_environ_for_server): 2017-10-06 Zan Dobersek Implement TestController::platformContext() for WPE, returning the m_context pointer as the GTK+ port does. This fixes the crashes on the WPE testers. Rubber-stamped by Carlos Garcia Campos. * WebKitTestRunner/wpe/TestControllerWPE.cpp: (WTR::TestController::platformContext): 2017-10-05 Carlos Garcia Campos [GTK][WPE] Add API to configure and enable resource load statistics https://bugs.webkit.org/show_bug.cgi?id=177943 Reviewed by Michael Catanzaro. Add a command line option to enable intelligent tracking prevention to MiniBrowser and tests cases to check the new API. * MiniBrowser/gtk/main.c: (main): * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp: (serverCallback): (testWebsiteDataConfiguration): (testWebsiteDataEphemeral): (testWebsiteDataResourceLoadStats): (beforeAll): * TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::Test): * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: (directoryChangedCallback): (WebViewTest::waitUntilFileExists): * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: 2017-10-05 Carlos Garcia Campos [GTK][WPE] All resource load statistics tests added in r212183 crash in GTK bots, timeout in GTK and WPE bots since r219049 https://bugs.webkit.org/show_bug.cgi?id=168171 Reviewed by Chris Dumez. Implement all resource load statistics functions in TestController using the C API. Also enable the FileMonitor unit test. This test requires a platform implementation of Util::run(), so I've added UtilitiesGLib.cpp with an iplementation common to glib based ports using WTF RunLoop abstraction. * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/PlatformWPE.cmake: * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: * TestWebKitAPI/glib/UtilitiesGLib.cpp: Copied from Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h. (TestWebKitAPI::Util::run): (TestWebKitAPI::Util::spinRunLoop): (TestWebKitAPI::Util::sleep): * TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp: * TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp: * WebKitTestRunner/TestController.cpp: (WTR::TestController::platformAdjustContext): (WTR::TestController::setStatisticsLastSeen): (WTR::TestController::setStatisticsPrevalentResource): (WTR::ResourceStatisticsCallbackContext::ResourceStatisticsCallbackContext): (WTR::resourceStatisticsCallback): (WTR::TestController::isStatisticsPrevalentResource): (WTR::TestController::setStatisticsHasHadUserInteraction): (WTR::TestController::isStatisticsHasHadUserInteraction): (WTR::TestController::setStatisticsGrandfathered): (WTR::TestController::isStatisticsGrandfathered): (WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin): (WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin): (WTR::TestController::setStatisticsSubresourceUniqueRedirectTo): (WTR::TestController::setStatisticsTimeToLiveUserInteraction): (WTR::TestController::setStatisticsTimeToLiveCookiePartitionFree): (WTR::TestController::statisticsProcessStatisticsAndDataRecords): (WTR::TestController::statisticsUpdateCookiePartitioning): (WTR::TestController::statisticsSetShouldPartitionCookiesForHost): (WTR::TestController::statisticsSubmitTelemetry): (WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned): (WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval): (WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured): (WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval): (WTR::TestController::setStatisticsGrandfatheringTime): (WTR::TestController::setStatisticsMaxStatisticsEntries): (WTR::TestController::setStatisticsPruneEntriesDownTo): (WTR::TestController::statisticsClearInMemoryAndPersistentStore): (WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours): (WTR::TestController::statisticsClearThroughWebsiteDataRemovalCallback): (WTR::TestController::statisticsClearThroughWebsiteDataRemoval): (WTR::TestController::statisticsResetToConsistentState): * WebKitTestRunner/TestController.h: 2017-10-05 Jer Noble [Cocoa] Enable ENABLE_ENCRYPTED_MEDIA build-time setting https://bugs.webkit.org/show_bug.cgi?id=177261 Reviewed by Eric Carlson. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-10-05 Alex Christensen Add ObjC equivalent of WKPageNavigationClient.didChangeBackForwardList https://bugs.webkit.org/show_bug.cgi?id=177966 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm: (-[ListItemDelegate _webView:backForwardListItemAdded:removed:]): (-[ListItemDelegate webView:didFinishNavigation:]): (TEST): 2017-10-04 Megan Gardner check-webkit-style erroneously requires a space between the carrot and brace in obj-c blocks. https://bugs.webkit.org/show_bug.cgi?id=177897 Reviewed by Dan Bernstein and Jonathan Bedard. Remove the check for a space between ^ and {, as this is valid and expected Obj-C. Now check to make sure there is no space at all between ^ and {, and also that there is a space between the end of an argument list and the {. * Scripts/webkitpy/style/checkers/cpp.py: (regex_for_lambdas_and_blocks): 2017-10-05 Carlos Garcia Campos Unreviewed. Run WebKit2 C API tests in GTK+ bots again after the last WebKit2 -> WebKit rename. * Scripts/run-gtk-tests: (TestRunner): (TestRunner._run_test): 2017-10-05 Darin Adler Remove additional WebKitSystemInterface remnants https://bugs.webkit.org/show_bug.cgi?id=177948 Reviewed by Andy Estes. * DumpRenderTree/PlatformMac.cmake: Removed code to link the WebKitSystemInterface library. Left in code that points to the WebKitLibraries directory, but maybe that can be removed by someone who is more certain it's no longer needed. * Scripts/copy-webkitlibraries-to-product-directory: Removed code to copy and delete WebKitSystemInterface libraries and headers. * WebKitTestRunner/PlatformMac.cmake: Removed code to link the WebKitSystemInterface library. Left in code that points to the WebKitLibraries directory, but maybe that can be removed by someone who is more certain it's no longer needed. 2017-10-05 Saam Barati Unreviewed. Try to make debug type profiler tests stop timing out. * Scripts/run-jsc-stress-tests: 2017-10-03 Frederic Wang Remove Brotli from Source/ThirdParty https://bugs.webkit.org/show_bug.cgi?id=177804 Reviewed by Michael Catanzaro. * gtk/jhbuild.modules: Build brotli 1.0.1 from the official github repository. * Scripts/webkitpy/style/checker.py: Remove brotli. 2017-10-04 Alex Christensen Stop linking with WebKitSystemInterface https://bugs.webkit.org/show_bug.cgi?id=177915 Reviewed by Antti Koivisto. * DumpRenderTree/mac/Configurations/Base.xcconfig: * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig: * DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/DebugRelease.xcconfig: * WebKitTestRunner/Configurations/InjectedBundle.xcconfig: * WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig: * WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig: 2017-10-04 Alex Christensen Remove unnecessary includes of WebKitSystemInterface on Cocoa platforms https://bugs.webkit.org/show_bug.cgi?id=177912 Reviewed by Saam Barati. * DumpRenderTree/mac/DumpRenderTree.mm: 2017-10-04 Megan Gardner Break out new touch debugging code into seperate file https://bugs.webkit.org/show_bug.cgi?id=177796 Reviewed by Simon Fraser. Encapsulate the new debug touch code into it's own file. This allows for cleaner code and a better way to show the touches in a completely separate window, which should also be in screen coordinates, and not subject to any transforms that get put on the WebViews. * TestRunnerShared/spi/UIKitTestSPI.h: * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: * WebKitTestRunner/ios/HIDDebugTouchWindow.h: Added. * WebKitTestRunner/ios/HIDDebugTouchWindow.mm: Added. (+[HIDDebugTouchWindow sharedHIDDebugTouchWindow]): (-[HIDDebugTouchWindow init]): (-[HIDDebugTouchWindow dealloc]): (-[HIDDebugTouchWindow updateDebugIndicatorForTouch:withPointInWindowCoordinates:isTouching:]): (-[HIDDebugTouchWindow initDebugViewsIfNeeded]): * WebKitTestRunner/ios/HIDEventGenerator.h: * WebKitTestRunner/ios/HIDEventGenerator.mm: (-[HIDEventGenerator init]): (-[HIDEventGenerator _createIOHIDEventWithInfo:]): (-[HIDEventGenerator _createIOHIDEventType:]): (-[HIDEventGenerator _updateTouchPoints:count:]): (-[HIDEventGenerator touchDownAtPoints:touchCount:]): (-[HIDEventGenerator touchDown:touchCount:]): (-[HIDEventGenerator liftUpAtPoints:touchCount:]): (-[HIDEventGenerator liftUp:touchCount:]): (-[HIDEventGenerator moveToPoints:touchCount:duration:]): (-[HIDEventGenerator initDebugViewsIfNeeded]): Deleted. (-[HIDEventGenerator updateDebugIndicatorForTouch:withPoint:isTouching:]): Deleted. * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::updatePlatformSpecificTestOptionsForTest const): 2017-10-04 JF Bastien WTF: Update std::expected to match current proposal https://bugs.webkit.org/show_bug.cgi?id=177881 Reviewed by Mark Lam. The proposal is likely to be in C++20 and I've been asked to help co-champion it. I'm therefore updating our implementation to more closely match the current proposal, and to make sure it'll work for us if standardized. - Rename UnexpectedType to Unexpected to match the proposal. - Remove relational operators, only equality / inequality remains. - Fix minor type signatures. - Add UnexpectedType typedef. - Uncomment rebind implementation. - Add in-place construction tag, as well as explicit error construction tag. - Add template unexpected constructor. - Note that make_unexpected isn't in the proposal anymore, but we keep it because we don't have C++17 deduction guides. - Remove hashing, which isn't in the proposal anymore. * TestWebKitAPI/Tests/WTF/Expected.cpp: (WTF::operator<<): (TestWebKitAPI::TEST): 2017-10-04 Lucas Forschler https://bugs.webkit.org/show_bug.cgi?id=177888 WebKitArchiveSupport - add API Gateway to source control This is a swagger configuration export via AWS API Gateway console. Rubber-stamped by Alexey Proskuryakov. * WebKitArchiveSupport/AWS-APIGateway: Added. * WebKitArchiveSupport/AWS-APIGateway/stage-v2.json: Added. 2017-10-04 Mark Lam Add support for using Probe DFG OSR Exit behind a runtime flag. https://bugs.webkit.org/show_bug.cgi?id=177844 Reviewed by Saam Barati. Enable --useProbeOSrExit=true for dfg-eager and ftl-no-cjit-validate-sampling-profiler test configurations. * Scripts/run-jsc-stress-tests: 2017-10-04 Jonathan Bedard webkitpy.tool.steps.steps_unittest.StepsTest.test_runtests_api is flakey https://bugs.webkit.org/show_bug.cgi?id=177751 Reviewed by Daniel Bates. Port._build_path() calls Tools/Scripts/webkit-build-directory and caches this result. When capturing output from the MockExecutive, the first invocation of Port._build_path() will log the running of Tools/Scripts/webkit-build-directory but subsequent invocations will not. * Scripts/webkitpy/tool/steps/steps_unittest.py: (StepsTest): (StepsTest.setUp): Cache the build path before running tests. 2017-10-04 Carlos Alberto Lopez Perez [JHBuild][GTK][WKE] Circular dependency between harfbuzz and freetype6 https://bugs.webkit.org/show_bug.cgi?id=177865 Reviewed by Michael Catanzaro. Build freetype6 without harfbuzz support. This seems to be what distros like Fedora, Debian or OpenEmbedded do. Also explicitly enable support for freetype and fontconfig on harfbuzz. * gtk/jhbuild.modules: Enable also support for icu. * wpe/jhbuild.modules: 2017-10-04 Yusuke Suzuki [Test262] Update Test262 to Oct 4 version https://bugs.webkit.org/show_bug.cgi?id=177859 Reviewed by Sam Weinig. * Scripts/import-test262-tests: 2017-10-04 Ryosuke Niwa Use blob URL when pasting RTFD instead of overriding DocumentLoader https://bugs.webkit.org/show_bug.cgi?id=177801 Reviewed by Wenson Hsieh. Added a regression test for an assertion failure when pasting an empty RTFD as well as a test for pasting RTFD with an image, which should result in an image element with a blob URL. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: * TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm: * TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html: 2017-10-03 Gustavo Noronha Silva [GLib] Let WebCore know of low power situations https://bugs.webkit.org/show_bug.cgi?id=177810 Reviewed by Carlos Garcia Campos. * gtk/install-dependencies: add upower-glib dev packages for Debian, Arch and Fedora. 2017-10-03 Saam Barati Implement polymorphic prototypes https://bugs.webkit.org/show_bug.cgi?id=176391 Reviewed by Filip Pizlo. * Scripts/run-jsc-stress-tests: 2017-10-03 Myles C. Maxfield Create a SPIR-V assembler https://bugs.webkit.org/show_bug.cgi?id=177726 Reviewed by Filip Pizlo. Khronos has released a json file containing every SPIR-V opcode and operand at https://github.com/KhronosGroup/SPIRV-Headers/blob/master/include/spirv/1.2/spirv.core.grammar.json This patch creates a function which loads this file (via the fetch API), parses it, and creates an object which holds two things: - For each opcode, a class which accepts the appropriate operands - For each enum type, an object which holds each enum value The constructor for each opcode is smart enough to do some basic type-checking of the argument, according to the types listed in Khronos's json file. This patch also includes an example .html file which outputs a dummy SPIR-V program, which happens to be compatible with the SPIR-V demo at https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/demos/cube.cpp If you modify this demo to use the generated SPIR-V program, you can see the result in action. This patch also commits a copy of Khronos's json file mentioned above. This isn't the first Khronos file we've committed into our repository with this license, so there shouldn't be any problems there. * WebGPUShadingLanguageRI/SPIR-V.js: Added. (SPIRV.): (SPIRVAssembler): (SPIRVAssembler.prototype.append): (SPIRVAssembler.prototype.get size): (SPIRVAssembler.prototype.get storage): (SPIRVAssembler.prototype.get result): * WebGPUShadingLanguageRI/SPIRV.html: Added. * WebGPUShadingLanguageRI/spirv.core.grammar.json: Added. 2017-10-03 Chris Dumez SharedStringHashStore should support removing hashes https://bugs.webkit.org/show_bug.cgi?id=177770 Reviewed by Alex Christensen. Add API test coverage. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/VisitedLinkStore.mm: Added. (TestWebKitAPI::TEST): 2017-10-03 Dewei Zhu Fix missing import for BenchmarkRunner. https://bugs.webkit.org/show_bug.cgi?id=177842 Reviewed by Ryosuke Niwa. 'show_results' requires BenchmarkRunner. * Scripts/webkitpy/benchmark_runner/run_benchmark.py: 2017-10-03 Olivier Blin [WPE] Bump deps to add support for xdg-shell-unstable-v6 protocol https://bugs.webkit.org/show_bug.cgi?id=177820 Reviewed by Žan Doberšek. gnome-shell does not advertize the xdg-shell protocol anymore, but xdg-shell-unstable-v6 instead. Support has been added in WPEBackend-mesa, we need to update the requirements. wayland-1.10 is needed for wl_proxy_get_version(), used in the generated headers. * wpe/jhbuild.modules: 2017-10-03 Alex Christensen Add ObjC SPI equivalent to WKPageLoaderClient.willGoToBackForwardListItem https://bugs.webkit.org/show_bug.cgi?id=177825 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm: (-[BackForwardDelegate _webView:willGoToBackForwardListItem:inPageCache:]): (-[BackForwardDelegate webView:didFinishNavigation:]): (TEST): 2017-10-03 Antti Koivisto Allow assigning WeakPtr to WeakPtr https://bugs.webkit.org/show_bug.cgi?id=177817 Reviewed by Geoff Garen. * TestWebKitAPI/Tests/WTF/WeakPtr.cpp: (TestWebKitAPI::Base::weakPtrFactory): (TestWebKitAPI::TEST): 2017-10-03 Youenn Fablet Remove no longer needed WebRTC build infrastructure https://bugs.webkit.org/show_bug.cgi?id=177756 Reviewed by Alejandro G. Castro. * Scripts/generate-libwebrtc-cmake: Removed. * Scripts/webkitpy/libwebrtc/__init__.py: Removed. * Scripts/webkitpy/libwebrtc/generate_cmake.py: Removed. 2017-10-03 Joanmarie Diggs AX: [ATK] ARIA drag-and-drop attribute values should be exposed via AtkObject attributes https://bugs.webkit.org/show_bug.cgi?id=177763 Reviewed by Chris Fleizach. Implement ariaIsGrabbed() and ariaDropEffects() for ATK. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::ariaIsGrabbed const): (WTR::AccessibilityUIElement::ariaDropEffects const): 2017-10-02 Myles C. Maxfield Make WSL demo compatible with Microsoft Edge https://bugs.webkit.org/show_bug.cgi?id=177643 Reviewed by Saam Barati. This patch does two things. The first is it migrates a loop over ParentNode.children to a legacy style loop because Microsoft Edge throws an exception when trying to use a for...of loop with it. This patch also hides the compilation behind a setTimeout(0) so there is some indication that something is happening during a compile. * Tools/WebGPUShadingLanguageRI/index.html: 2017-10-02 Joanmarie Diggs AX: [ATK] The value of aria-level is not exposed on non-heading roles https://bugs.webkit.org/show_bug.cgi?id=177775 Reviewed by Chris Fleizach. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::hierarchicalLevel const): 2017-10-02 Geoffrey Garen WeakPtr should have a move constructor https://bugs.webkit.org/show_bug.cgi?id=177789 Reviewed by Chris Dumez. Chris made me write an API test. It wasn't that painful. * TestWebKitAPI/Tests/WTF/WeakPtr.cpp: (TestWebKitAPI::TEST): 2017-10-02 Filip Pizlo WSL ^ should be * https://bugs.webkit.org/show_bug.cgi?id=177705 Rubber stamped by Keith Miller. When I first wrote the prototype, I thought it would be cool to use ^ for pointers. Nobody agrees. I've gotten so much feedback to use *. This changes pointers to use *. * WebGPUShadingLanguageRI/DereferenceExpression.js: (DereferenceExpression.prototype.toString): (DereferenceExpression): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/Parse.js: (parseType): (parsePossiblePrefix): * WebGPUShadingLanguageRI/PtrType.js: (PtrType.prototype.toString): (PtrType): * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.js: (tests.simpleDereference): (tests.dereferenceStore): (tests.simpleMakePtr): (tests.loadNull): (tests.storeNull): (tests.returnNull): (tests.dereferenceDefaultNull): (tests.defaultInitializedNull): (tests.passNullToPtrMonomorphic): (tests.passNullToPtrPolymorphic): (tests.passNullAndNotNull): (tests.passNullAndNotNullFullPoly): (tests.passNullAndNotNullFullPolyReverse): (tests.chainGeneric): (tests.chainStruct): (tests.chainStructNewlyValid): (tests.chainStructDevice): (tests.paramChainStructDevice): (tests.simpleProtocolExtends): (tests.protocolExtendsTwo): (tests.overrideSubscriptStruct): (tests.overrideSubscriptStructAndDoStores): (tests.overrideSubscriptStructAndUsePointers): (tests.overrideSubscriptStructAndUsePointersIncorrectly): (tests.makeArrayRefFromPointer): (tests.nonArrayRefArrayLengthFail): (tests.constexprIsNotLValuePtr): (tests.genericAccessors): (tests.nestedSubscriptLValueEmulationSimple): (tests.nestedSubscriptLValueEmulationGeneric): (tests.shaderTypes): (tests.enumPtrBase): (tests.mutuallyRecursiveStructWithPointersBroken): (tests.mutuallyRecursiveStructWithPointers): (tests.linkedList): (tests.pointerToPointer): (tests.pointerGetter): (tests.operatorCastWithTypeVariableInferredFromReturnType): (tests.loneSetterPointer): (tests.anderWithNothingWrong): (tests.anderWithWrongNumberOfArguments): (tests.anderDoesntReturnPointer): (tests.anderDoesntTakeReference): (tests.anderWithArrayRef): (tests.pointerIndexGetter): (tests.loneIndexSetterPointer): (tests.indexAnderWithNothingWrong): (tests.indexAnderWithWrongNumberOfArguments): (tests.indexAnderDoesntReturnPointer): (tests.indexAnderDoesntTakeReference): (tests.indexAnderWithArrayRef): (tests.devicePtrPtr): (tests.threadgroupPtrPtr): (tests.constantPtrPtr): (tests.pointerIndexGetterInProtocol): (tests.loneIndexSetterPointerInProtocol): (tests.indexAnderWithNothingWrongInProtocol): (tests.indexAnderWithWrongNumberOfArgumentsInProtocol): (tests.indexAnderDoesntReturnPointerInProtocol): (tests.indexAnderDoesntTakeReferenceInProtocol): (tests.indexAnderWithArrayRefInProtocol): (tests.andReturnedArrayRef): 2017-10-02 Filip Pizlo WSL should be fine with &foo()[i] if foo() returns a [] https://bugs.webkit.org/show_bug.cgi?id=177704 Reviewed by Saam Barati. Previously, we'd determine if a property access expression (base.field or base[index]) was an lvalue by asking if its base was an lvalue. This is right in all cases except if the base is of type []. Then, the property access expression is an lvalue so long as there is a setter or ander. This fixes the issue and adds a test. Also, this makes error messages in the case that something is not an lvalue a lot better. If something is not an lvalue because we could not find anders or setters, then we will tell you why we could not find them. * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitAssignment): (Checker.prototype.visitReadModifyWriteExpression): (Checker.prototype.visitMakePtrExpression): (Checker.prototype._finishVisitingPropertyAccess): * WebGPUShadingLanguageRI/DotExpression.js: (DotExpression.prototype.get fieldName): (DotExpression.prototype.get isLValue): Deleted. (DotExpression.prototype.get addressSpace): Deleted. * WebGPUShadingLanguageRI/IndexExpression.js: (IndexExpression.prototype.get index): (IndexExpression.prototype.get isLValue): Deleted. (IndexExpression.prototype.get addressSpace): Deleted. * WebGPUShadingLanguageRI/PropertyAccessExpression.js: (PropertyAccessExpression): (PropertyAccessExpression.prototype.get isLValue): (PropertyAccessExpression.prototype.set isLValue): * WebGPUShadingLanguageRI/PropertyResolver.js: (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder.prototype.visitMakeArrayRefExpression): (PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder): (PropertyResolver.prototype._visitRValuesWithinLValue): * WebGPUShadingLanguageRI/Test.js: (tests.storeNullArrayRef): (tests.andReturnedArrayRef): 2017-10-02 Wenson Hsieh Guard iOS webkitGetAsEntry API tests on older iOS versions Unreviewed test gardening. After r222688, these tests require custom pasteboard data to be enabled by default, so don't run them against shipping iOS. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: 2017-10-02 Carlos Garcia Campos [WPE][GTK] Crash in webkit_web_resource_get_data_finish() https://bugs.webkit.org/show_bug.cgi?id=177107 Reviewed by Michael Catanzaro. Add a test case to check we handle errors when webkit_web_resource_get_data() fails. * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp: (webViewloadChanged): (testWebResourceGetDataError): (beforeAll): 2017-10-02 Alex Christensen Fix build after r222715 https://bugs.webkit.org/show_bug.cgi?id=177697 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST): Use the public API instead of the removed SPI. 2017-10-02 Alex Christensen REGRESSION(r214201): WebProcess hangs during policy decisions https://bugs.webkit.org/show_bug.cgi?id=177590 Reviewed by Andy Estes. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/JavaScriptDuringNavigation.mm: Added. (-[JSNavigationDelegate webView:didFinishNavigation:]): (-[JSNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): (-[JSNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]): (-[JSNavigationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-10-02 Jonathan Bedard Log stack-trace for run-webkit-tests when interrupted https://bugs.webkit.org/show_bug.cgi?id=176393 Reviewed by Darin Adler. When run-webkit-tests is stuck, it is difficult to immediately tell why. Saving a stack-trace when run-webkit-tests is terminated or stopped with CNTRL-C will make such issues easier to debug. * Scripts/webkitpy/common/interupt_debugging.py: Added. (log_stack_trace): Given a Python frame object, log a stack trace to the provided file. (log_stack_trace_on_term): Attach a listener to SIGTERM so that a stack-trace can be logged when a program is terminated. (log_stack_trace_on_cntrl_c): Attach a listener to SIGINT so that a stack-trace can be logged when a program is CNTRL-Ced. * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (main): Set handlers to log stack trace on interruption. 2017-10-02 Michael Catanzaro Remove ENABLE_CSS_REGIONS https://bugs.webkit.org/show_bug.cgi?id=177689 Reviewed by Darin Adler. * Scripts/webkitperl/FeatureList.pm: 2017-09-30 Carlos Garcia Campos Unreviewed. Upgrade webkitgtk-test-fonts to version 0.0.7. This version upgrades liberation fonts to version 2, that has a wider glyph coverage. * gtk/jhbuild.modules: 2017-09-29 Alex Christensen Expose WebPreferences::webGLEnabled through WKPreferences https://bugs.webkit.org/show_bug.cgi?id=177692 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm: (-[AlertSaver alert]): (-[AlertSaver webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-09-29 Alex Christensen Fix WKWebViewConfigurationPrivate after r222663 https://bugs.webkit.org/show_bug.cgi?id=177644 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm: Added. (TEST): 2017-09-28 Ryosuke Niwa Image pasting is not working on tineye.com / gmail.com / GitHub.com due to lack of support for DataTransfer.items https://bugs.webkit.org/show_bug.cgi?id=170449 Reviewed by Wenson Hsieh. Added an API test to paste an image from pasteboard. The test is shared between iOS and macOS. The tests to paste image files are only enabled on macOS since putting files into pasteboard isn't a thing on iOS. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm: Added. (writeImageDataToPasteboard): (writeBundleFileToPasteboard): * TestWebKitAPI/Tests/WebKitCocoa/paste-image.html: Added. * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-100px.tiff: Added. * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-200px.png: Added. * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-400px.gif: Added. * TestWebKitAPI/Tests/WebKitCocoa/sunset-in-cupertino-600px.jpg: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Rebaselined the test now that types contain "Files". 2017-09-29 Wenson Hsieh [iOS WK2] Implement -[WKContentView hasText] for compatibility with the UITextInput protocol https://bugs.webkit.org/show_bug.cgi?id=177662 Reviewed by Tim Horton. Add EditorState API tests to check that the value of -[WKContentView hasText] is correct when editing both plain and rich text areas. * TestWebKitAPI/EditingTestHarness.h: * TestWebKitAPI/EditingTestHarness.mm: (-[EditingTestHarness insertParagraph]): (-[EditingTestHarness insertText:]): (-[EditingTestHarness insertHTML:]): (-[EditingTestHarness selectAll]): (-[EditingTestHarness deleteBackwards]): * TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm: Add versions of EditingTestHarness helpers that don't require us to expect any editor state after executing the edit command. (TestWebKitAPI::checkContentViewHasTextWithFailureDescription): (TestWebKitAPI::TEST): * TestWebKitAPI/cocoa/TestWKWebView.h: * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView textInputContentView]): 2017-09-29 Charles Turner Update my status. Unreviewed. * Scripts/webkitpy/common/config/contributors.json: 2017-09-28 Commit Queue Unreviewed, rolling out r222639. https://bugs.webkit.org/show_bug.cgi?id=177630 Breaks AppleWin build (Requested by dolmstead on #webkit). Reverted changeset: "[WinCairo][MiniBrowser] Add ca-bundle to display secure pages." https://bugs.webkit.org/show_bug.cgi?id=168486 http://trac.webkit.org/changeset/222639 2017-09-28 Joanmarie Diggs AX: [ATK] object:state-changed notifications missing for multiple ARIA attributes https://bugs.webkit.org/show_bug.cgi?id=177542 Add platform support for the notifications. Also add support for getting the boolean argument indicating whether the state has been set or unset. Reviewed by Chris Fleizach. * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: 2017-09-28 Basuke Suzuki [WinCairo][MiniBrowser] Add ca-bundle to display secure pages. Copy cacert.pem file into bundle directory. https://bugs.webkit.org/show_bug.cgi?id=168486 Reviewed by Brent Fulgham. * MiniBrowser/win/CMakeLists.txt: 2017-09-28 Lucas Forschler check in AWS Lambda code used for WebKitArchiveSupport https://bugs.webkit.org/show_bug.cgi?id=177614 Rubber-stamped by Alexey Proskuryakov. * WebKitArchiveSupport/lambda: Added. * WebKitArchiveSupport/lambda/delete-minified-s3-archive-from-dynamodb.py: Added. (lambda_handler): * WebKitArchiveSupport/lambda/delete-s3-archive-from-dynamodb.py: Added. (lambda_handler): * WebKitArchiveSupport/lambda/register-archive-in-dynamodb.py: Added. (lambda_handler): * WebKitArchiveSupport/lambda/register-minified-s3-archive-in-dynamodb.py: Added. (lambda_handler): 2017-09-28 Jiewen Tan WeakPtrFactory should allow downcasting https://bugs.webkit.org/show_bug.cgi?id=177389 Reviewed by Geoffrey Garen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/WeakPtr.cpp: (TestWebKitAPI::Base::foo): (TestWebKitAPI::Base::createWeakPtr): (TestWebKitAPI::Derived::foo): (TestWebKitAPI::TEST): 2017-09-28 Megan Gardner Add debug flag to WebKitTestRunner to show where touches are being generated https://bugs.webkit.org/show_bug.cgi?id=177583 Reviewed by Tim Horton and Wenson Hsieh. Add a flag, and the ability to paint a dot where the HIDEventGenerator is creating fake touches to send through UIKit. This will help in debugging touch tests, because it will be easier to see if one is actually sending the touches at the locations that they expect. This will help differentiate between problems in the locations of the touches, and other problems that can come up when writing tests. * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): * Scripts/webkitpy/port/driver.py: (Driver.cmd_line): * WebKitTestRunner/Options.cpp: (WTR::Options::Options): (WTR::handleOptionShowTouches): (WTR::OptionsHandler::OptionsHandler): * WebKitTestRunner/Options.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::initialize): * WebKitTestRunner/TestController.h: (WTR::TestController::shouldShowTouches const): * WebKitTestRunner/TestOptions.h: * WebKitTestRunner/ios/HIDEventGenerator.h: * WebKitTestRunner/ios/HIDEventGenerator.mm: (-[DebugTouchView pointInside:withEvent:]): (-[HIDEventGenerator setShouldShowTouches:]): (-[HIDEventGenerator initDebugViews]): (-[HIDEventGenerator updateDebugUI:withPoint:isTouching:]): (-[HIDEventGenerator _createIOHIDEventWithInfo:]): (-[HIDEventGenerator _createIOHIDEventType:]): (-[HIDEventGenerator _updateTouchPoints:count:]): (-[HIDEventGenerator touchDownAtPoints:touchCount:]): (-[HIDEventGenerator liftUpAtPoints:touchCount:]): (-[HIDEventGenerator moveToPoints:touchCount:duration:]): (-[HIDEventGenerator markerEventReceived:]): * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::updatePlatformSpecificTestOptionsForTest const): * WebKitTestRunner/ios/mainIOS.mm: (-[WebKitTestRunnerApp _runTestController]): 2017-09-28 Mark Lam [Re-landing] Turn on exception scope verification for JSC tests. https://bugs.webkit.org/show_bug.cgi?id=162351 Reviewed by Saam Barati. Update: I'm re-landing this patch now that test262 exception check validation failures have been fixed in r222617. testapi still has some validation failures, but this patch does not affect testapi. Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in run-jsc-stress-tests. This turns on exception scope verification on JSC test runs (which currently does not include testapi). Some stats on time to run JSC stress and mozilla tests: 1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s 2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s 3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s 4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s The stats shows that (2) and (3) has effectively no time difference. Hence, the cost of enabling --validateExceptionChecks=true is not significant. It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about 21% slower than (3). To avoid making debug test runs a lot slower, we'll leave --dumpSimulatedThrows=true off. We can manually add that when we see a regression and need to debug the issue. Otherwise, we wont pay the price for it. * Scripts/run-jsc-stress-tests: 2017-09-27 Alex Christensen Add WKContentRuleList notify action type https://bugs.webkit.org/show_bug.cgi?id=177013 Reviewed by Darin Adler. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (WebCore::ContentExtensions::operator<<): (TestWebKitAPI::InMemoryCompiledContentExtension::create): (TestWebKitAPI::InMemoryCompiledContentExtension::data): (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension): (TestWebKitAPI::makeBackend): (TestWebKitAPI::TEST_F): (TestWebKitAPI::actionsEqual): (TestWebKitAPI::sequenceInstances): (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted. (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted. * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added. (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]): (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]): (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]): (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (makeWarnContentRuleList): (TEST): 2017-09-27 Wenson Hsieh Drag event DataTransfer has unexpected types "dyn.ah62d4..." https://bugs.webkit.org/show_bug.cgi?id=172526 Reviewed by Ryosuke Niwa. Adds new API tests on iOS to cover various cases of using DataTransfer.setData, DataTransfer.getData, and DataTransfer.types, as well as their interaction with platform objects (source NSItemProviders in the case of drag and drop, and the general UIPasteboard for copy and paste). * TestWebKitAPI/PlatformUtilities.h: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/dump-datatransfer-types.html: Added. Introduce a new API test harness that both drag-and-drop and copy-and-paste tests use to dump DataTransfer's web-exposed types and values. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkFirstTypeIsPresentAndSecondTypeIsMissing): (checkJSONWithLogging): (TestWebKitAPI::TEST): (checkTypeIdentifierAndIsNotOtherTypeIdentifier): Deleted. * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: (TestWebKitAPI::checkJSONWithLogging): (TestWebKitAPI::setUpWebViewForPasteboardTests): (TestWebKitAPI::TEST): * TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm: (TestWebKitAPI::Util::jsonMatchesExpectedValues): 2017-09-27 Lucas Forschler Add macOS High Sierra and iOS Simulator 11 support to bisect-builds. https://bugs.webkit.org/show_bug.cgi?id=177578 Reviewed by Alexey Proskuryakov. * Scripts/bisect-builds: (minified_platforms): (unminified_platforms): 2017-09-27 Ryan Haddad Update TestResultsServer for High Sierra queues. https://bugs.webkit.org/show_bug.cgi?id=177500 Reviewed by Alexey Proskuryakov. * TestResultServer/static-dashboards/builders.jsonp: 2017-09-27 Lucas Forschler bisect-builds:add a README to the archive. https://bugs.webkit.org/show_bug.cgi?id=177376 Reviewed by Alexey Proskuryakov & Jon Davis. * BuildSlaveSupport/built-product-archive: (addFilesToArchive): refactor function (was previously addLauncherToArchive) (createZip): Teach function to add the README (addLauncherToArchive): Deleted. (refactored to addFilesToArchive) * BuildSlaveSupport/run-webkit-archive: Deleted. (Moved to WebKitArchiveSupport) * WebKitArchiveSupport: Added. * WebKitArchiveSupport/README: Added. README which will be packaged up with the archive. * WebKitArchiveSupport/run-webkit-archive: Added. (Moved from BuildSlaveSupport) 2017-09-26 Tim Horton Mac CMake bot should provide verbose build output https://bugs.webkit.org/show_bug.cgi?id=177512 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/config.json: It's hard to diagnose weird bot-only build problems without the full verbose build output, so turn that on. The Xcode builders do it too, so why not CMake! 2017-09-26 Tim Horton Make it possible to easily get verbose ninja output from build-webkit https://bugs.webkit.org/show_bug.cgi?id=177511 Reviewed by Sam Weinig. * Scripts/build-webkit: Add a -v/--verbose argument to build-webkit, which sets the environment variable VERBOSE=1, which buildCMakeGeneratedProject already checks. * Scripts/webkitdirs.pm: (buildCMakeGeneratedProject): Add ninja verbosity arguments to @makeArgs, which are appended after the -- and thus handed to ninja; the previous implementation (appending to @args) would only work if @makeArgs was non-empty and thus the -- was included. 2017-09-26 Said Abou-Hallawa Followup (r222427): SynchronizedFixedQueue should not have a public constructor https://bugs.webkit.org/show_bug.cgi?id=177458 Reviewed by Tim Horton. Fix the definition and the creation of SynchronizedFixedQueue. * TestWebKitAPI/Tests/WTF/SynchronizedFixedQueue.cpp: (TestWebKitAPI::ToUpperConverter::ToUpperConverter): (TestWebKitAPI::ToUpperConverter::startProducing): (TestWebKitAPI::ToUpperConverter::startConsuming): (TestWebKitAPI::ToUpperConverter::stopProducing): (TestWebKitAPI::ToUpperConverter::stopConsuming): (TestWebKitAPI::ToUpperConverter::enqueueLower): 2017-09-26 Wenson Hsieh [ios-simulator] API test DataInteractionTests.ExternalSourceDataTransferItemGetFolderAsEntry is failing https://bugs.webkit.org/show_bug.cgi?id=177271 Reviewed by Tim Horton and Megan Gardner. Rebaseline a failing API test. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-09-26 Per Arne Vollan Set LF eol-style on Windows shell script, because the script failed on one of the EWS bots, when it had the 'native' style. Unreviewed Windows EWS fix. * EWSTools/start-queue-win.sh: Modified property svn:eol-style. 2017-09-26 Jonathan Bedard webkitpy: Notify parent process when a worker is spawned https://bugs.webkit.org/show_bug.cgi?id=177467 Reviewed by Daniel Bates. When we fork the parent process, there may be resources in that process which workers will take ownership of. Notify ports when a new worker is created so that these resources can be correctly managed. * Scripts/webkitpy/common/message_pool.py: (_MessagePool._start_workers): After all workers are started, notify the caller that a worker has been created, unless we are running inline, in which case the parent process is still the worker. * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: (LayoutTestRunner._handle_did_spawn_worker): Notify the port that a worker process has been created. * Scripts/webkitpy/port/base.py: (Port.did_spawn_worker): Add function so that ports may manage any resources created on the parent process but managed by the provided worker. * Scripts/webkitpy/port/device.py: (Device.release_worker_resources): Call release_worker_resources on the platform_device if such a function is defined. * Scripts/webkitpy/port/ios.py: (IOSPort.did_spawn_worker): Release any worker resources on the iOS device object associated with the spawned worker. * Scripts/webkitpy/test/runner.py: (Runner.handle): Ignore the did_spawn_worker message during testing. 2017-09-26 Jer Noble Thrown ObjC exception when right clicking on containing mp4 link https://bugs.webkit.org/show_bug.cgi?id=177370 Reviewed by Darin Adler. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.html: Added. * TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm: Added. (-[ContextMenuImgWithVideoDelegate _webView:contextMenu:forElement:]): (TestWebKitAPI::TEST): 2017-09-26 Per Arne Vollan [Win] 'webkit-patch clean' is failing on bot. https://bugs.webkit.org/show_bug.cgi?id=177488 Reviewed by Brent Fulgham. If 'os.remove' throws an exception, catch it. * Scripts/webkitpy/common/checkout/scm/svn.py: (SVN.discard_working_directory_changes): 2017-09-25 Frederik Riedel Expose way to set values of classified form controls as {Legacy WebKit, WebKit} SPI https://bugs.webkit.org/show_bug.cgi?id=174394 Reviewed by Ryosuke Niwa. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm: Added. (-[WKWebView _privateTextInput]): Testing helpers. (TestWebKitAPI::TEST): Added test cases to test AutoFill for web views. * TestWebKitAPI/ios/UIKitSPI.h: 2017-09-25 Frederic Wang Change my status to reviewer and reformat with validate-committer-lists Unreviewed. * Scripts/webkitpy/common/config/contributors.json: 2017-09-25 Ryan Haddad Add High Sierra bots to buildbot and dashboard. https://bugs.webkit.org/show_bug.cgi?id=177437 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/config.json: Add High Sierra queues, move Leaks and JSC queues over from Sierra. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: Add High Sierra. (WebKitBuildbot): 2017-09-25 Chris Dumez [WK2] Add API to query if a download was user-initiated https://bugs.webkit.org/show_bug.cgi?id=177435 Reviewed by Alex Christensen. Add API test coverage. * TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm: (TestWebKitAPI::decideDestinationWithSuggestedFilename): * TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (-[DownloadDelegate _downloadDidStart:]): (-[DownloadDelegate _downloadDidFinish:]): (runTest): (TEST): (-[BlobDownloadDelegate _downloadDidStart:]): (-[BlobDownloadDelegate _downloadDidFinish:]): (-[RedirectedDownloadDelegate _downloadDidStart:]): (-[RedirectedDownloadDelegate _downloadDidFinish:]): 2017-09-25 Commit Queue Unreviewed, rolling out r222455. https://bugs.webkit.org/show_bug.cgi?id=177460 broke iOS build (Requested by alexchristensen on #webkit). Reverted changeset: "Add WKContentRuleList notify action type" https://bugs.webkit.org/show_bug.cgi?id=177013 http://trac.webkit.org/changeset/222455 2017-09-25 Per Arne Vollan [Win] run-api-tests is failing. https://bugs.webkit.org/show_bug.cgi?id=177454 Reviewed by Brent Fulgham. TestWebKit.exe has changed name to TestWebKitLegacy.exe. * Scripts/run-api-tests: (testToolPaths): 2017-09-25 Per Arne Vollan [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation. https://bugs.webkit.org/show_bug.cgi?id=177244 Reviewed by Alex Christensen. The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder. * EWSTools/start-queue-win.sh: 2017-09-25 Alex Christensen Add WKContentRuleList notify action type https://bugs.webkit.org/show_bug.cgi?id=177013 Reviewed by Darin Adler. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (WebCore::ContentExtensions::operator<<): (TestWebKitAPI::InMemoryCompiledContentExtension::create): (TestWebKitAPI::InMemoryCompiledContentExtension::data): (TestWebKitAPI::InMemoryCompiledContentExtension::InMemoryCompiledContentExtension): (TestWebKitAPI::makeBackend): (TestWebKitAPI::TEST_F): (TestWebKitAPI::actionsEqual): (TestWebKitAPI::sequenceInstances): (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): Deleted. (TestWebKitAPI::InMemoryCompiledContentExtension::~InMemoryCompiledContentExtension): Deleted. * TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm: Added. (-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]): (-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]): (-[ContentRuleListNotificationDelegate webView:stopURLSchemeTask:]): (-[ContentRuleListNotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (makeWarnContentRuleList): (TEST): 2017-09-25 Carlos Alberto Lopez Perez REGRESSION(r222160) [GTK] [Debug] Internal compiler error on the buildbot (huge memory usage by GCC) https://bugs.webkit.org/show_bug.cgi?id=177223 Reviewed by Carlos Garcia Campos. When the user environment sets the variable NUMBER_OF_PROCESSORS this should be passed down to the build system (ninja or make) always. Playing with the number of this variable is needed when using icecc (as you usually want to launch more parallel build process than your number of cores), or when you want to limit the number of parallel build process for hardware capacity reasons. * Scripts/build-webkit: 2017-09-24 Fujii Hironori [GTK] Incremental builds fail every time Web Inspector icons are removed https://bugs.webkit.org/show_bug.cgi?id=177349 Reviewed by Carlos Garcia Campos. Removing GTK WebInspector image files always breaks the GTK and WPE ports incremental builds. * Scripts/webkitdirs.pm: (shouldRemoveCMakeCache): Check the timestamp of Source/WebInspectorUI/UserInterface/Images/gtk directory if isGtk() or isWPE(). 2017-09-24 Joanmarie Diggs [ATK] Object attributes are missing for ARIA live region roles https://bugs.webkit.org/show_bug.cgi?id=171174 Reviewed by Chris Fleizach. Add support for testing property values for AXARIALive, AXARIAAtomic, and AXARIARelevant. Also add handling for testing whether AXElementBusy is "supported" (in ATK, busy is a state and is supported on all elements regardless of whether the state is present or absent from the state set). * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::boolAttributeValue): (WTR::AccessibilityUIElement::isAttributeSupported): 2017-09-23 Michael Catanzaro Unreviewed Mac CMake build fixup after r222194 * DumpRenderTree/PlatformMac.cmake: 2017-09-22 Zalan Bujtas WeakPtrFactory should populate m_ref lazily. https://bugs.webkit.org/show_bug.cgi?id=177375 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WTF/WeakPtr.cpp: (TestWebKitAPI::TEST): 2017-09-22 Filip Pizlo WSL should report an error if you try to create an operator overload that will never be called https://bugs.webkit.org/show_bug.cgi?id=177092 Reviewed by JF Bastien. This adds all kinds of checks to ensure that your operator overloads make sense. This adds all kinds of tests for those checks. In the process of writing those tests, I hit an awesome bug: function instantiation was instantiating all types, which meant that if that instantiated function needed to resolve calls to protocol functions, we'd fail because we would have cloned top-level struct types. We need to preserve the uninstantiated argument types, type arguments, and return type (for casts) in order to be able to resolve protocol calls. But we also need the instantiated version of the type arguments for execution. So, this adds some more stuff to the CallExpression class. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/ArrayRefType.js: (ArrayRefType.prototype.unifyImpl): * WebGPUShadingLanguageRI/ArrayType.js: (ArrayType.prototype.get isArray): * WebGPUShadingLanguageRI/CallExpression.js: (CallExpression.resolve): (CallExpression.prototype.resolve): (CallExpression.prototype.resolveToOverload): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype._checkOperatorOverload): (Checker.prototype.visitFuncDef): (Checker.prototype.visitProtocolDecl): (Checker.prototype.visitMakeArrayRefExpression): * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype._createEPtr): * WebGPUShadingLanguageRI/EPtr.js: (EPtr): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype._snapshot): (Evaluator.prototype._runBody): (Evaluator.prototype.visitFunctionLikeBlock): (Evaluator.prototype.visitCallExpression): (Evaluator): (Evaluator.prototype.runFunc): Deleted. * WebGPUShadingLanguageRI/ExternalOrigin.js: Added. * WebGPUShadingLanguageRI/Func.js: (Func.prototype.toDeclString): * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression): (FuncInstantiator.prototype.getUnique.InstantiationSubstitution): (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates.prototype.visitCallExpression): (FuncInstantiator.prototype.getUnique.InstantiationInstantiateImmediates): (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/LateChecker.js: (LateChecker.prototype.visitReferenceType): (LateChecker.prototype._checkShaderType): * WebGPUShadingLanguageRI/Lexer.js: (Lexer._textIsIdentifierImpl): (Lexer.textIsIdentifier): (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/Parse.js: (parseType.getAddressSpace): (parseType): * WebGPUShadingLanguageRI/Prepare.js: (let.prepare): * WebGPUShadingLanguageRI/PtrType.js: (PtrType.prototype.unifyImpl): * WebGPUShadingLanguageRI/ReferenceType.js: (ReferenceType): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitReferenceType): (Rewriter.prototype.processDerivedCallData): * WebGPUShadingLanguageRI/StandardLibrary.js: (intToString): * WebGPUShadingLanguageRI/StatementCloner.js: (StatementCloner.prototype.visitFuncDef): * WebGPUShadingLanguageRI/StructLayoutBuilder.js: (StructLayoutBuilder.prototype.visitCallExpression): (StructLayoutBuilder): * WebGPUShadingLanguageRI/Substitution.js: (Substitution.prototype.visitTypeRef): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (checkNumber): (set target): (tests.literalBool): (tests.identityBool): (tests.intSimpleMath): (tests.uintSimpleMath): (tests.uint8SimpleMath): (tests.equality): (tests.logicalNegation): (tests.notEquality): (tests.equalityTypeFailure): (tests.generalNegation): (tests.add1): (tests.simpleGeneric): (tests.nameResolutionFailure): (tests.simpleVariable): (tests.simpleAssignment): (tests.simpleDefault): (tests.simpleDereference): (tests.dereferenceStore): (tests.simpleMakePtr): (tests.threadArrayLoad): (tests.threadArrayLoadIntLiteral): (tests.deviceArrayLoad): (tests.threadArrayStore): (tests.deviceArrayStore): (tests.deviceArrayStoreIntLiteral): (tests.simpleProtocol): (tests.typeMismatchReturn): (tests.typeMismatchVariableDecl): (tests.typeMismatchAssignment): (tests.typeMismatchReturnParam): (tests.badAdd): (tests.lexerKeyword): (tests.simpleNoReturn): (tests.simpleUnreachableCode): (tests.simpleStruct): (tests.genericStructInstance): (tests.doubleGenericCallsDoubleGeneric): (tests.doubleGenericCallsSingleGeneric): (tests.loadNull): (tests.storeNull): (tests.returnNull): (tests.dereferenceDefaultNull): (tests.defaultInitializedNull): (tests.passNullToPtrMonomorphic): (tests.passNullToPtrPolymorphic): (tests.passNullToPolymorphic): (tests.loadNullArrayRef): (tests.storeNullArrayRef): (tests.returnNullArrayRef): (tests.dereferenceDefaultNullArrayRef): (tests.defaultInitializedNullArrayRef): (tests.defaultInitializedNullArrayRefIntLiteral): (tests.passNullToPtrMonomorphicArrayRef): (tests.passNullToPtrPolymorphicArrayRef): (tests.returnIntLiteralUint): (tests.returnIntLiteralDouble): (tests.badIntLiteralForInt): (tests.badIntLiteralForUint): (tests.badIntLiteralForDouble): (tests.passNullAndNotNull): (tests.passNullAndNotNullFullPoly): (tests.passNullAndNotNullFullPolyReverse): (tests.nullTypeVariableUnify): (tests.doubleNot): (tests.simpleRecursion): (tests.protocolMonoSigPolyDef): (tests.protocolPolySigPolyDef): (tests.protocolDoublePolySigDoublePolyDef): (tests.protocolDoublePolySigDoublePolyDefExplicit): (tests.variableShadowing): (tests.ifStatement): (tests.ifElseStatement): (tests.ifElseIfStatement): (tests.ifElseIfElseStatement): (tests.returnIf): (tests.simpleWhile): (tests.protocolMonoPolySigDoublePolyDefExplicit): (tests.ambiguousOverloadSimple): (tests.ambiguousOverloadOverlapping): (tests.ambiguousOverloadTieBreak): (tests.intOverloadResolution): (tests.intOverloadResolutionReverseOrder): (tests.intOverloadResolutionGeneric): (tests.intLiteralGeneric): (tests.intLiteralGenericWithProtocols): (tests.uintLiteralGeneric): (tests.uintLiteralGenericWithProtocols): (tests.intLiteralGenericSpecific): (tests.simpleConstexpr): (tests.break): (tests.continue): (tests.doWhile): (tests.forLoop): (tests.chainConstexpr): (tests.chainGeneric): (tests.chainStruct): (tests.chainStructNewlyValid): (tests.chainStructDevice): (tests.paramChainStructDevice): (tests.simpleProtocolExtends): (tests.protocolExtendsTwo): (tests.prefixPlusPlus): (tests.prefixPlusPlusResult): (tests.postfixPlusPlus): (tests.postfixPlusPlusResult): (tests.prefixMinusMinus): (tests.prefixMinusMinusResult): (tests.postfixMinusMinus): (tests.postfixMinusMinusResult): (tests.plusEquals): (tests.plusEqualsResult): (tests.minusEquals): (tests.minusEqualsResult): (tests.timesEquals): (tests.timesEqualsResult): (tests.divideEquals): (tests.divideEqualsResult): (tests.twoIntLiterals): (tests.unifyDifferentLiterals): (tests.unifyDifferentLiteralsBackwards): (tests.unifyVeryDifferentLiterals): (tests.unifyVeryDifferentLiteralsBackwards): (tests.assignUintToInt): (tests.buildArrayThenSumIt): (tests.buildArrayThenSumItUsingArrayReference): (tests.overrideSubscriptStruct): (tests.overrideSubscriptStructAndDoStores): (tests.overrideSubscriptStructAndUsePointers): (tests.overrideSubscriptStructAndUsePointersIncorrectly): (tests.makeArrayRefFromLocal): (tests.makeArrayRefFromPointer): (tests.makeArrayRefFromArrayRef): (tests.simpleLength): (tests.nonArrayRefArrayLengthSucceed): (tests.nonArrayRefArrayLengthFail): (tests.constexprIsNotLValuePtr): (tests.constexprIsNotLValueAssign): (tests.constexprIsNotLValueRMW): (tests.assignLength): (tests.assignLengthHelper): (tests.simpleGetter): (tests.simpleSetter): (tests.genericAccessors): (tests.bitSubscriptAccessor): (tests.nestedSubscriptLValueEmulationSimple): (tests.nestedSubscriptLValueEmulationGeneric): (tests.boolBitAnd): (tests.boolBitOr): (tests.boolBitXor): (tests.boolBitNot): (tests.intBitAnd): (tests.intBitOr): (tests.intBitXor): (tests.intBitNot): (tests.intLShift): (tests.intRShift): (tests.uintBitAnd): (tests.uintBitOr): (tests.uintBitXor): (tests.uintBitNot): (tests.uintLShift): (tests.uintRShift): (tests.uint8BitAnd): (tests.uint8BitOr): (tests.uint8BitXor): (tests.uint8BitNot): (tests.uint8LShift): (tests.uint8RShift): (tests.floatMath): (tests.genericCastInfer): (tests.booleanMath): (tests.typedefArray): (tests.shaderTypes): (tests.builtinVectors): (tests.instantiateStructInStruct): (tests.instantiateStructInStructWithInt2): (tests.simpleEnum): (tests.enumWithManualValues): (tests.enumWithoutZero): (tests.enumDuplicates): (tests.enumWithSomeManualValues): (tests.enumConstexprGenericFunction): (tests.enumConstexprGenericStruct): (tests.trap): (tests.swizzle): (tests.enumWithExplicitIntBase): (tests.enumWithUintBase): (tests.enumFloatBase): (tests.enumPtrBase): (tests.enumArrayRefBase): (tests.emptyStruct): (tests.enumStructBase): (tests.enumNoMembers): (tests.simpleSwitch): (tests.exhaustiveUint8Switch): (tests.notQuiteExhaustiveUint8Switch): (tests.notQuiteExhaustiveUint8SwitchWithDefault): (tests.switchFallThrough): (tests.switchBreak): (tests.enumSwitchBreakExhaustive): (tests.enumSwitchBreakNotQuiteExhaustive): (tests.enumSwitchBreakNotQuiteExhaustiveWithDefault): (tests.simpleRecursiveStruct): (tests.mutuallyRecursiveStruct): (tests.mutuallyRecursiveStructWithPointersBroken): (tests.mutuallyRecursiveStructWithPointers): (tests.linkedList): (tests.pointerToPointer): (tests.arrayRefToArrayRef): (tests.pointerGetter): (tests.loneSetter): (tests.setterWithMismatchedType): (tests.setterWithMatchedType): (tests.operatorWithUninferrableTypeVariable): (tests.operatorWithoutUninferrableTypeVariable): (tests.operatorCastWithUninferrableTypeVariable): (tests.operatorCastWithTypeVariableInferredFromReturnType): (tests.incWrongArgumentLength): (tests.decWrongArgumentLength): (tests.incWrongTypes): (tests.decWrongTypes): (tests.plusWrongArgumentLength): (tests.minusWrongArgumentLength): (tests.timesWrongArgumentLength): (tests.divideWrongArgumentLength): (tests.moduloWrongArgumentLength): (tests.bitAndWrongArgumentLength): (tests.bitOrWrongArgumentLength): (tests.bitXorWrongArgumentLength): (tests.lShiftWrongArgumentLength): (tests.rShiftWrongArgumentLength): (tests.bitNotWrongArgumentLength): (tests.equalsWrongArgumentLength): (tests.lessThanWrongArgumentLength): (tests.lessEqualWrongArgumentLength): (tests.greaterWrongArgumentLength): (tests.greaterEqualWrongArgumentLength): (tests.equalsWrongReturnType): (tests.notEqualsOverload): (tests.lessThanWrongReturnType): (tests.lessEqualWrongReturnType): (tests.greaterThanWrongReturnType): (tests.greaterEqualWrongReturnType): (tests.dotOperatorWrongArgumentLength): (tests.dotOperatorSetterWrongArgumentLength): (tests.loneSetterPointer): (tests.setterWithNoGetterOverload): (tests.setterWithNoGetterOverloadFixed): (tests.anderWithNothingWrong): (tests.anderWithWrongNumberOfArguments): (tests.anderDoesntReturnPointer): (tests.anderDoesntTakeReference): (tests.anderWithArrayRef): (tests.pointerIndexGetter): (tests.loneIndexSetter): (tests.notLoneIndexSetter): (tests.indexSetterWithMismatchedType): (tests.indexOperatorWrongArgumentLength): (tests.indexOperatorSetterWrongArgumentLength): (tests.loneIndexSetterPointer): (tests.indexSetterWithNoGetterOverload): (tests.indexSetterWithNoGetterOverloadFixed): (tests.indexAnderWithNothingWrong): (tests.indexAnderWithWrongNumberOfArguments): (tests.indexAnderDoesntReturnPointer): (tests.indexAnderDoesntTakeReference): (tests.indexAnderWithArrayRef): (tests.devicePtrPtr): (tests.threadgroupPtrPtr): (tests.constantPtrPtr): (tests.pointerIndexGetterInProtocol): (tests.loneIndexSetterInProtocol): (tests.notLoneIndexSetterInProtocol): (tests.indexSetterWithMismatchedTypeInProtocol): (tests.indexOperatorWrongArgumentLengthInProtocol): (tests.indexOperatorSetterWrongArgumentLengthInProtocol): (tests.loneIndexSetterPointerInProtocol): (tests.indexSetterWithNoGetterOverloadInProtocol): (tests.indexSetterWithNoGetterOverloadFixedInProtocol): (tests.indexAnderWithNothingWrongInProtocol): (tests.indexAnderWithWrongNumberOfArgumentsInProtocol): (tests.indexAnderDoesntReturnPointerInProtocol): (tests.indexAnderDoesntTakeReferenceInProtocol): (tests.indexAnderWithArrayRefInProtocol): (doTest): (this.window.let._.of.doTest): (TEST_literalBool): Deleted. (TEST_identityBool): Deleted. (TEST_intSimpleMath): Deleted. (TEST_uintSimpleMath): Deleted. (TEST_uint8SimpleMath): Deleted. (TEST_equality): Deleted. (TEST_logicalNegation): Deleted. (TEST_notEquality): Deleted. (TEST_equalityTypeFailure): Deleted. (): Deleted. (TEST_add1): Deleted. (TEST_simpleGeneric): Deleted. (TEST_nameResolutionFailure): Deleted. (TEST_simpleAssignment): Deleted. (TEST_simpleDefault): Deleted. (TEST_simpleDereference): Deleted. (TEST_dereferenceStore): Deleted. (TEST_simpleMakePtr): Deleted. (TEST_threadArrayLoad): Deleted. (TEST_threadArrayLoadIntLiteral): Deleted. (TEST_deviceArrayLoad): Deleted. (TEST_threadArrayStore): Deleted. (TEST_deviceArrayStore): Deleted. (TEST_deviceArrayStoreIntLiteral): Deleted. (TEST_simpleProtocol): Deleted. (TEST_typeMismatchReturn): Deleted. (TEST_simpleNoReturn): Deleted. (TEST_genericStructInstance): Deleted. (TEST_doubleGenericCallsDoubleGeneric): Deleted. (TEST_doubleGenericCallsSingleGeneric): Deleted. (TEST_dereferenceDefaultNull): Deleted. (TEST_dereferenceDefaultNullArrayRef): Deleted. (TEST_returnIntLiteralDouble): Deleted. (TEST_badIntLiteralForInt): Deleted. (TEST_passNullAndNotNullFullPoly): Deleted. (TEST_passNullAndNotNullFullPolyReverse): Deleted. (TEST_nullTypeVariableUnify.recurse): Deleted. (TEST_nullTypeVariableUnify.everyOrder): Deleted. (TEST_nullTypeVariableUnify.everyPair): Deleted. (TEST_nullTypeVariableUnify): Deleted. (TEST_simpleRecursion): Deleted. (TEST_protocolPolySigPolyDef): Deleted. (TEST_protocolDoublePolySigDoublePolyDef): Deleted. (TEST_protocolDoublePolySigDoublePolyDefExplicit): Deleted. (TEST_variableShadowing): Deleted. (TEST_ifStatement): Deleted. (TEST_ifElseStatement): Deleted. (TEST_ifElseIfStatement): Deleted. (TEST_ifElseIfElseStatement): Deleted. (TEST_returnIf): Deleted. (TEST_simpleWhile): Deleted. (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted. (TEST_intOverloadResolution): Deleted. (TEST_intOverloadResolutionReverseOrder): Deleted. (TEST_intOverloadResolutionGeneric): Deleted. (TEST_intLiteralGeneric): Deleted. (TEST_intLiteralGenericWithProtocols): Deleted. (TEST_uintLiteralGeneric): Deleted. (TEST_uintLiteralGenericWithProtocols): Deleted. (TEST_intLiteralGenericSpecific): Deleted. (TEST_simpleConstexpr): Deleted. (TEST_break): Deleted. (TEST_forLoop): Deleted. (TEST_chainConstexpr): Deleted. (TEST_chainGeneric): Deleted. (TEST_chainStruct): Deleted. (TEST_chainStructNewlyValid): Deleted. (TEST_chainStructDevice): Deleted. (TEST_paramChainStructDevice): Deleted. (TEST_simpleProtocolExtends): Deleted. (TEST_protocolExtendsTwo): Deleted. (TEST_prefixPlusPlus): Deleted. (TEST_prefixPlusPlusResult): Deleted. (TEST_postfixPlusPlus): Deleted. (TEST_postfixPlusPlusResult): Deleted. (TEST_prefixMinusMinus): Deleted. (TEST_prefixMinusMinusResult): Deleted. (TEST_postfixMinusMinus): Deleted. (TEST_postfixMinusMinusResult): Deleted. (TEST_plusEquals): Deleted. (TEST_plusEqualsResult): Deleted. (TEST_minusEquals): Deleted. (TEST_minusEqualsResult): Deleted. (TEST_timesEquals): Deleted. (TEST_timesEqualsResult): Deleted. (TEST_divideEquals): Deleted. (TEST_divideEqualsResult): Deleted. (TEST_twoIntLiterals): Deleted. (TEST_unifyDifferentLiterals): Deleted. (TEST_buildArrayThenSumItUsingArrayReference): Deleted. (TEST_overrideSubscriptStruct): Deleted. (TEST_overrideSubscriptStructAndDoStores): Deleted. (TEST_overrideSubscriptStructAndUsePointers): Deleted. (TEST_overrideSubscriptStructAndUsePointersIncorrectly): Deleted. (TEST_makeArrayRefFromPointer): Deleted. (TEST_makeArrayRefFromArrayRef): Deleted. (TEST_nonArrayRefArrayLengthSucceed): Deleted. (TEST_nonArrayRefArrayLengthFail): Deleted. (TEST_simpleSetter): Deleted. (TEST_genericAccessors): Deleted. (TEST_bitSubscriptAccessor): Deleted. (TEST_nestedSubscriptLValueEmulationSimple): Deleted. (TEST_nestedSubscriptLValueEmulationGeneric): Deleted. (TEST_boolBitAnd): Deleted. (TEST_boolBitOr): Deleted. (TEST_boolBitXor): Deleted. (TEST_boolBitNot): Deleted. (TEST_intBitAnd): Deleted. (TEST_intBitOr): Deleted. (TEST_intBitXor): Deleted. (TEST_intBitNot): Deleted. (TEST_intLShift): Deleted. (TEST_intRShift): Deleted. (TEST_uintBitAnd): Deleted. (TEST_uintBitOr): Deleted. (TEST_uintBitXor): Deleted. (TEST_uintBitNot): Deleted. (TEST_uintLShift): Deleted. (TEST_uintRShift): Deleted. (TEST_uint8BitAnd): Deleted. (TEST_uint8BitOr): Deleted. (TEST_uint8BitXor): Deleted. (TEST_uint8BitNot): Deleted. (TEST_uint8LShift): Deleted. (TEST_uint8RShift): Deleted. (TEST_floatMath): Deleted. (TEST_booleanMath): Deleted. (TEST_typedefArray): Deleted. (TEST_shaderTypes): Deleted. (TEST_instantiateStructInStruct): Deleted. (TEST_instantiateStructInStructWithInt2): Deleted. (TEST_simpleEnum): Deleted. (TEST_enumWithManualValues): Deleted. (TEST_enumWithoutZero): Deleted. (TEST_enumConstexprGenericFunction): Deleted. (TEST_enumConstexprGenericStruct): Deleted. (TEST_trap): Deleted. (TEST_enumWithExplicitIntBase): Deleted. (TEST_enumWithUintBase): Deleted. (TEST_enumFloatBase): Deleted. (TEST_enumStructBase): Deleted. (TEST_simpleSwitch): Deleted. (TEST_exhaustiveUint8Switch): Deleted. (TEST_notQuiteExhaustiveUint8Switch): Deleted. (TEST_switchFallThrough): Deleted. (TEST_switchBreak): Deleted. (TEST_enumSwitchBreakExhaustive): Deleted. (TEST_enumSwitchBreakNotQuiteExhaustive): Deleted. (TEST_simpleRecursiveStruct): Deleted. (TEST_linkedList): Deleted. * WebGPUShadingLanguageRI/Type.js: (Type.prototype.get isArray): * WebGPUShadingLanguageRI/TypeRef.js: (TypeRef.wrap): * WebGPUShadingLanguageRI/TypeVariableTracker.js: (TypeVariableTracker.prototype.set get return): (TypeVariableTracker.prototype.visitVariableRef): (TypeVariableTracker): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/index.html: 2017-09-22 Matt Lewis Unreviewed, rolling out r222394. This broke the Windows Debug Build. Reverted changeset: "Remove build-webkit's notion of feature flags having a default value" https://bugs.webkit.org/show_bug.cgi?id=177338 http://trac.webkit.org/changeset/222394 2017-09-22 Tim Horton and Michael Catanzaro Remove build-webkit's notion of feature flags having a default value https://bugs.webkit.org/show_bug.cgi?id=177338 Reviewed by Alex Christensen. Delegate feature flag default values to the build system. (FeatureDefines.xcconfig for Xcode, WebKitFeatures.cmake and Options*.cmake for CMake, and FeatureDefines.h for everyone) * BuildSlaveSupport/build.webkit.org-config/config.json: * BuildSlaveSupport/build.webkit.org-config/master.cfg: (Factory.__init__): Update GTK and WPE buildbot configuration to use --no-experimental-features on old stable bots instead of --default-cmake-features. * Scripts/build-webkit: (cMakeArgsFromFeatures): Default feature values to 'undef'. Remove the --default-cmake-features argument; it is now the default. Add --no-experimental-features to replace it. Stop printing the default feature flag value in the help. Avoid propagating undefined values to the build system; only mention flags that are overridden on the command line. This has the nice side effect of using the default CMake features for CMake builds, but still allowing toggling of them using the prettier --FEATURE and --no-FEATURE arguments. * Scripts/webkitdirs.pm: (generateBuildSystemFromCMakeProject): No longer need to suppress CMake warnings about unused arguments. * Scripts/webkitperl/FeatureList.pm: Remove the default values from the feature list. 2017-09-21 Joseph Pecoraro Unreviewed, add the ability to skip a test262 test. * Scripts/run-jsc-stress-tests: Other handlers have :skip but a few didn't. 2017-09-21 Ryan Haddad Change architecture for ios-ews queue to arm64. https://bugs.webkit.org/show_bug.cgi?id=177332 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/common/config/ews.json: 2017-09-21 Tim Horton Use 'ninja' from the SDK if it exists https://bugs.webkit.org/show_bug.cgi?id=177330 Reviewed by Alex Christensen. * Scripts/webkitdirs.pm: (canUseNinja): Check for ninja with xcrun in addition to commandExists() for Cocoa platforms. (generateBuildSystemFromCMakeProject): (canUseNinjaGenerator): Deleted. Remove canUseNinjaGenerator; as noted in bug 177057, the Ninja generator is available in all versions of CMake supported by WebKit. 2017-09-21 Chris Dumez Regression(r222308): new API tests are failing for !NETWORK_SESSION https://bugs.webkit.org/show_bug.cgi?id=177321 Reviewed by Alex Christensen. Unskip API tests now that they pass everywhere. * TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (TEST): 2017-09-21 Filip Pizlo Unreviewed, fix ability to run tests in browser. * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/index.html: 2017-09-21 Jonathan Bedard webkitpy: Ignore failure to get updated selenium version https://bugs.webkit.org/show_bug.cgi?id=177205 Reviewed by Lucas Forschler. Sometime asking PyPI for the latest version of Selenium fails. We should try and fallback to, at a minimum, version 3.5.0 or a newer installed version. * Scripts/webkitpy/thirdparty/__init__.py: (AutoinstallImportHook.greater_than_equal_to_version): Return true if the second version string is greater than or equal to the first version string. (AutoinstallImportHook._install_selenium): If we can't get the latest PyPI url, fallback to version 3.5.0 or a newer installed version. 2017-09-21 Filip Pizlo WSL should have some post-instantiation type checking https://bugs.webkit.org/show_bug.cgi?id=177303 Reviewed by Keith Miller. This patch removes the Primitive protocol! Yay! The Primitive protocol was an attempt to handle the fact that Metal wouldn't allow us to point a non-thread pointer at data structures that have pointers. This type checking rule interacts badly with generics. I was able to get it to mostly work by making Primitive into a dynamic protocol - a type belongs to it if it happens to be isPrimitive. But that was a mistake, since it makes it hard to create pointers that are generic over address space. Also, it's not an appropriate rule for targeting SPIR-V logical mode. That rule will be different, and possibly more complicated. All of these kinds of rules are easier to implement of we run them after instantiation, since then they don't get in the way of generics. That's what this patch does. This means that we get all of the same type checking power as before, and we still can catch the errors that Metal requires us to check for. It's easier to do those checks now. Finally, this removes the shader type checker's incomplete reimplementation of isPrimitive (which was called NonNumericSearcher). The shader type checker calls isPrimitive now. * WebGPUShadingLanguageRI/AddressSpace.js: (needsPrimitiveProtocol): Deleted. (protocolSuffix): Deleted. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype._checkShaderType): (Checker.prototype._checkShaderType.NonNumericSearcher): Deleted. (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType): Deleted. (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType): Deleted. (Checker.prototype.visitReferenceType): Deleted. * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef): * WebGPUShadingLanguageRI/Inline.js: (_inlineFunction): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/LateChecker.js: Added. (LateChecker): (LateChecker.prototype.visitReferenceType): (LateChecker.prototype._checkShaderType): (LateChecker.prototype.visitFuncDef): * WebGPUShadingLanguageRI/LexerToken.js: (LexerToken.prototype.get isInternal): Deleted. * WebGPUShadingLanguageRI/NativeType.js: (NativeType): (NativeType.prototype.get name): (NativeType.prototype.get isPrimitive): (NativeType.prototype.set isPrimitive): (NativeType.prototype.toString): * WebGPUShadingLanguageRI/Parse.js: (parseNative): * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js: (programWithUnnecessaryThingsRemoved): * WebGPUShadingLanguageRI/ProtocolDecl.js: * WebGPUShadingLanguageRI/ReferenceType.js: (ReferenceType.prototype.get elementType): (ReferenceType.prototype.get isPrimitive): Deleted. * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/StatementCloner.js: (StatementCloner.prototype.visitNativeType): * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: (synthesizeStructAccessors): * WebGPUShadingLanguageRI/Test.js: (TEST_passNullAndNotNullFullPoly): (TEST_passNullAndNotNullFullPolyReverse): (TEST_nullTypeVariableUnify): (TEST_chainStructNewlyValid): (TEST_chainStructDevice): (TEST_chainStructInvalid): Deleted. * WebGPUShadingLanguageRI/Type.js: (Type.prototype.get isPrimitive): 2017-09-21 Chris Dumez Unreviewed, temporarily disable new API tests introduced in r222308 until they pass on El Capitan * TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (TEST): 2017-09-21 Commit Queue Unreviewed, rolling out r222272. https://bugs.webkit.org/show_bug.cgi?id=177316 This patch broke builds on some Win EWS bots. (Requested by perarne on #webkit). Reverted changeset: "[Win] Cygwin 64-bit EWS process cannot find Visual Studio installation." https://bugs.webkit.org/show_bug.cgi?id=177244 http://trac.webkit.org/changeset/222272 2017-09-21 Filip Pizlo Unreviewed, fix a bug in the interactive app that was introduced by bad merging. * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js: (FlattenedStructOffsetGatherer.prototype.visitTypeRef): (FlattenedStructOffsetGatherer): * WebGPUShadingLanguageRI/index.html: 2017-09-20 Filip Pizlo WSL should support switch https://bugs.webkit.org/show_bug.cgi?id=176978 Reviewed by Keith Miller. This adds fairly complete support for switch statements. This includes things like verifying whether or not a default statement is needed. This even works when the programmer lists all of the values of an integer type. To test that last part, this patch adds uint8 support. It's easy add it, but of course it meant adding a lot of tests. This also fixes enum bugs, since switch does things to enums that we previously didn't test. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitSwitchStatement): * WebGPUShadingLanguageRI/EnumLiteral.js: (EnumLiteral.prototype.get valueForSelectedType): * WebGPUShadingLanguageRI/EnumType.js: (EnumType.prototype.allValues): (EnumType.prototype.valuesEqual): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitSwitchStatement): * WebGPUShadingLanguageRI/Inliner.js: (Inliner.prototype.visitCallExpression): (Inliner): (Inliner.prototype.visitCastExpression): Deleted. * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics.): (Intrinsics): * WebGPUShadingLanguageRI/LoopChecker.js: (LoopChecker): (LoopChecker.prototype.visitFuncDef): (LoopChecker.prototype.visitWhileLoop): (LoopChecker.prototype.visitDoWhileLoop): (LoopChecker.prototype.visitForLoop): (LoopChecker.prototype.visitSwitchStatement): (LoopChecker.prototype.visitBreak): (LoopChecker.prototype.visitContinue): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.commit): * WebGPUShadingLanguageRI/Parse.js: (parseSwitchCase): (parseSwitchStatement): (parseStatement): (parseBlockBody): (parseBlock): * WebGPUShadingLanguageRI/Prepare.js: (let.prepare): * WebGPUShadingLanguageRI/ReturnChecker.js: (ReturnChecker.prototype._mergeReturnStyle): (ReturnChecker.prototype.visitIfStatement): (ReturnChecker.prototype.visitWhileLoop): (ReturnChecker.prototype.visitDoWhileLoop): (ReturnChecker.prototype.visitForLoop): (ReturnChecker.prototype.visitSwitchStatement): (ReturnChecker.prototype.visitContinue): (ReturnChecker): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitSwitchStatement): (Rewriter.prototype.visitSwitchCase): * WebGPUShadingLanguageRI/StandardLibrary.js: (uint8.operator): (bool.operator): (_generateSwizzle): * WebGPUShadingLanguageRI/SwitchCase.js: Added. (SwitchCase): (SwitchCase.prototype.get origin): (SwitchCase.prototype.get isDefault): (SwitchCase.prototype.get value): (SwitchCase.prototype.get body): (SwitchCase.prototype.toString): * WebGPUShadingLanguageRI/SwitchStatement.js: Added. (SwitchStatement): (SwitchStatement.prototype.get origin): (SwitchStatement.prototype.get value): (SwitchStatement.prototype.add): (SwitchStatement.prototype.get switchCases): (SwitchStatement.prototype.toString): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (makeUint8): (makeEnum): (checkUint8): (TEST_uint8SimpleMath): (TEST_equality): (TEST_notEquality): (TEST_uint8BitAnd): (TEST_uint8BitOr): (TEST_uint8BitXor): (TEST_uint8BitNot): (TEST_uint8LShift): (TEST_uint8RShift): (TEST_enumWithExplicitIntBase): (TEST_enumWithUintBase): (TEST_enumFloatBase): (TEST_enumStructBase): (TEST_simpleSwitch): (TEST_exhaustiveUint8Switch): (TEST_notQuiteExhaustiveUint8Switch): (TEST_switchFallThrough): (TEST_switchBreak): (TEST_enumSwitchBreakExhaustive): (TEST_enumSwitchBreakNotQuiteExhaustive): (doTest): * WebGPUShadingLanguageRI/UnificationContext.js: (UnificationContext): (UnificationContext.prototype.addExtraNode): (UnificationContext.prototype.get nodes): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/index.html: 2017-09-20 Filip Pizlo WSL needs a way to verify that structs are not cyclic https://bugs.webkit.org/show_bug.cgi?id=177044 Reviewed by Myles Maxfield. This adds a recursive type checking phase. Even before adding this phase, the compiler would successfully detect recursive types - but at the cost of also rejecting programs that had recursive types indirectly through pointers. To make both things work, I had to change Visitor to no longer visit TypeRef.type by default. This resulted in some other changes in a few other parts of the code that previously relied on that behavior. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CheckRecursiveTypes.js: Added. (checkRecursiveTypes): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType): (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType): (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitTypeRef): (Checker.prototype._checkShaderType.NonNumericSearcher): (Checker.prototype._checkShaderType): (Checker.prototype.visitTypeRef): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/Prepare.js: (let.prepare): * WebGPUShadingLanguageRI/RecursiveTypeChecker.js: Added. (RecursiveTypeChecker): (RecursiveTypeChecker.prototype.visitFuncDef): (RecursiveTypeChecker.prototype.visitNativeFunc): (RecursiveTypeChecker.prototype.visitStructType): (RecursiveTypeChecker.prototype.visitReferenceType): (RecursiveTypeChecker.prototype.visitTypeRef): * WebGPUShadingLanguageRI/StructLayoutBuilder.js: (StructLayoutBuilder.prototype.visitTypeRef): (StructLayoutBuilder): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_simpleRecursiveStruct): * WebGPUShadingLanguageRI/TypeDefResolver.js: (TypeDefResolver.prototype.visitTypeRef): (TypeDefResolver): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/index.html: 2017-09-21 Ryan Haddad Update TestResultsServer for iOS 11 queues. https://bugs.webkit.org/show_bug.cgi?id=177285 Reviewed by Alexey Proskuryakov. * TestResultServer/static-dashboards/builders.jsonp: 2017-09-21 Alex Christensen REGRESSION(r221465) WKWebViews without WebGL delegate callbacks crash when WebGL contexts are created https://bugs.webkit.org/show_bug.cgi?id=177306 Reviewed by Chris Dumez. * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm: (-[WebGLTestDelegate webView:startURLSchemeTask:]): (-[DelegateWithoutWebGL webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-09-20 Joseph Pecoraro Update test262 tests https://bugs.webkit.org/show_bug.cgi?id=177220 Reviewed by Saam Barati and Yusuke Suzuki. * Scripts/import-test262-tests: - better detect upstream git repository url from import location - update JSTest test262 resources when importing from repository - take seconds instead of 20+ minutes to write yaml with --failures - update "negative" command to only include just the exception type 2017-09-20 Chris Dumez [WK2] Add API to get the redirect chain of a WKDownload https://bugs.webkit.org/show_bug.cgi?id=176628 Reviewed by Alex Christensen. Add API test coverage for the 2 cases: 1. Download started as a download and is redirected while downloading. 2. Download started as a load and was redirected during the initial load. * TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]): (-[RedirectedDownloadDelegate _downloadDidFinish:]): (TEST): 2017-09-20 Alex Christensen Add infrastructure for adding custom headers to requests per website https://bugs.webkit.org/show_bug.cgi?id=177255 Reviewed by Geoffrey Garen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/HTTPHeaderField.cpp: Added. (shouldRemainUnchanged): (shouldBeInvalid): (shouldBecome): (TEST): * TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm: (TEST): 2017-09-20 Daniel Bates Spelling and grammar dots should not overlap https://bugs.webkit.org/show_bug.cgi?id=177265 Reviewed by David Hyatt. Add unit tests for the subdivision algorithm. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Added. (WebCore::operator<<): (WebCore::operator==): (TestWebKitAPI::TEST): 2017-09-20 Filip Pizlo WSL should not type-check functions in the standard library that it does not use https://bugs.webkit.org/show_bug.cgi?id=177269 Reviewed by JS Bastien. Once we added all of the swizzling operators, the size of the standard library ballooned to the point where it's just not practical to compile anything anymore. If you want to compile "int foo(int x) { return x}" then it will take some ridiculous amount of time (many seconds) because WSL will have to type check all of those swizzling operators. This change makes it so that after parsing the whole program, we remove the things that we aren't using. We can make a really good estimate of what we need even before doing any name resolution. In practice, this change removes almost all of the things from Program before we get to the hard work of type checking. That's true because the standard library contains _many_ things and you'd have to try very hard to use all of them. This is a 13x speed-up for Test.js. It went from 155 seconds to 12 seconds on my machine. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/ConstexprTypeParameter.js: (ConstexprTypeParameter.prototype.get origin): * WebGPUShadingLanguageRI/Intrinsics.js: * WebGPUShadingLanguageRI/Lexer.js: (Lexer): (Lexer.prototype.get originKind): * WebGPUShadingLanguageRI/LexerToken.js: (LexerToken.prototype.get lexer): (LexerToken.prototype.get origin): (LexerToken.prototype.get originKind): (LexerToken.prototype.get isInternal): * WebGPUShadingLanguageRI/NameContext.js: (isWildcardKind): (NameContext.prototype.add): (NameContext.prototype.get let): (NameContext.prototype.mapFor): Deleted. * WebGPUShadingLanguageRI/NameFinder.js: Added. (NameFinder): (NameFinder.get worklist): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/OriginKind.js: Added. (isOriginKind): * WebGPUShadingLanguageRI/Prepare.js: (let.prepare): * WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js: Added. (programWithUnnecessaryThingsRemoved): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (doTest): * WebGPUShadingLanguageRI/index.html: 2017-09-20 Alex Christensen Remove ActionType::CSSDisplayNoneStyleSheet https://bugs.webkit.org/show_bug.cgi?id=177275 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (WebCore::ContentExtensions::operator<<): (TestWebKitAPI::testRequest): (TestWebKitAPI::TEST_F): 2017-09-20 Jonathan Bedard Device iOS 11 builds fail with FileProvider linker errors https://bugs.webkit.org/show_bug.cgi?id=177272 Reviewed by David Kilzer. For iOS device and simulator, the SYSTEM_LIBRARY_DIR should never be on the framework search path as neither platform should ever link with Mac frameworks. * DumpRenderTree/mac/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: 2017-09-20 Alex Christensen Remove ActionType::InvalidAction https://bugs.webkit.org/show_bug.cgi?id=177262 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (WebCore::ContentExtensions::operator<<): 2017-09-20 Myles C. Maxfield Make a playground where people can try WSL https://bugs.webkit.org/show_bug.cgi?id=177125 Reviewed by Filip Pizlo. This patch creates a webpage, index.html, which lets users type in a WSL program and run it, and see the results. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallFunction.js: (callFunction): * WebGPUShadingLanguageRI/Checker.js: (Checker): (Checker.prototype._checkShaderType.NonNumericSearcher): (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType): (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType): (Checker.prototype._checkShaderType): (Checker.prototype.visitFuncDef): (Checker.prototype._requireBool): * WebGPUShadingLanguageRI/FlattenedStructOffsetGatherer.js: Copied from Tools/WebGPUShadingLanguageRI/CallFunction.js. (FlattenedStructOffsetGatherer): (FlattenedStructOffsetGatherer.prototype.get result): (FlattenedStructOffsetGatherer.prototype.visitReferenceType): (FlattenedStructOffsetGatherer.prototype.visitField): (FlattenedStructOffsetGatherer.prototype.visitNativeType): * WebGPUShadingLanguageRI/Func.js: (Func.prototype.toDeclString): * WebGPUShadingLanguageRI/Inline.js: (resolveInlinedFunction): * WebGPUShadingLanguageRI/NameContext.js: (NameContext.prototype.get let): * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: (resolveOverloadImpl): * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_shaderTypes): * WebGPUShadingLanguageRI/index.html: Added. 2017-09-20 Myles C. Maxfield [WSL] Restrict vertex and fragment entry points according to WSL.md https://bugs.webkit.org/show_bug.cgi?id=177253 Reviewed by Filip Pizlo. Entry points can't have template arguments, and their argument/return types need to be restricted. * WebGPUShadingLanguageRI/Checker.js: (Checker): (Checker.prototype._checkShaderType.NonNumericSearcher): (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitArrayRefType): (Checker.prototype._checkShaderType.NonNumericSearcher.prototype.visitPtrType): (Checker.prototype._checkShaderType): (Checker.prototype.visitFuncDef): (Checker.prototype._requireBool): * WebGPUShadingLanguageRI/Func.js: (Func.prototype.toDeclString): * WebGPUShadingLanguageRI/Test.js: (TEST_shaderTypes): 2017-09-20 Per Arne Vollan [Win] Cygwin 64-bit EWS process cannot find Visual Studio installation. https://bugs.webkit.org/show_bug.cgi?id=177244 Reviewed by Alex Christensen. The 64-bit EWS shell process should try to find Visual Studio in the 32-bit program files folder. * EWSTools/start-queue-win.sh: 2017-09-20 Myles C. Maxfield Create vector swizzle operators in WSL's standard library https://bugs.webkit.org/show_bug.cgi?id=177116 Reviewed by Filip Pizlo. Because there are 481 possible swizzling operators, StandardLibrary.js generates them instead of including them by hand. Adding so many functions slows down the compiler quite a bit. * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/StandardLibrary.js: (intToString): (_generateSwizzle): 2017-09-20 Ms2ger [WPE] Update fontconfig to 2.12.4. https://bugs.webkit.org/show_bug.cgi?id=177228 Reviewed by Carlos Garcia Campos. * wpe/jhbuild.modules: * wpe/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS-18.patch: Removed. 2017-09-19 Myles C. Maxfield WSL should be able to trap when something fatal happens https://bugs.webkit.org/show_bug.cgi?id=177110 Reviewed by Filip Pizlo. WSL programs can include a statement "trap;" which causes the entry point to immediately return the default value of its return type. This is implemented by throw/catch and populateDefaultValue(). * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/EvaluationCommon.js: * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitTrapStatement): * WebGPUShadingLanguageRI/Parse.js: (parseStatement): * WebGPUShadingLanguageRI/ReturnChecker.js: (ReturnChecker.prototype.visitTrapStatement): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitTrapStatement): * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: * WebGPUShadingLanguageRI/TrapStatement.js: Copied from Tools/WebGPUShadingLanguageRI/EvaluationCommon.js. (TrapStatement): (TrapStatement.prototype.get origin): (TrapStatement.prototype.toString): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): 2017-09-19 Ryan Haddad Unreviewed follow-up to r222229, remove invalid triggers. * BuildSlaveSupport/build.webkit.org-config/config.json: 2017-09-19 Simon Fraser tiled-drawing/tiled-backing-in-window.html fails on Retina displays https://bugs.webkit.org/show_bug.cgi?id=177113 Reviewed by Tim Horton. This test removes the view from the window, and then dumps the layer tree, at which point some layers would report a contentsScale of 2 on Retina displays. This occurs because WebKitTestRunner overrides the default device scale factor on NSWindow, but windowless views fall back to [NSScreen mainScreen].backingScaleFactor (in WebViewImpl::intrinsicDeviceScaleFactor()). Fix by having PlatformWebView::changeWindowScaleIfNeeded() call -_setOverrideDeviceScaleFactor: on the view. * WebKitTestRunner/mac/PlatformWebViewMac.mm: (WTR::PlatformWebView::changeWindowScaleIfNeeded): 2017-09-19 Wenson Hsieh REGRESSION (r215613): Incorrect corners clipping with border-radius https://bugs.webkit.org/show_bug.cgi?id=176498 Reviewed by Tim Horton. Add WebCore API tests for RoundedRect::contains(). * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/RoundedRectTests.cpp: Added. (TestWebKitAPI::layoutRect): (TestWebKitAPI::TEST): 2017-09-19 Youenn Fablet Allow WTF::map to use any class that is iterable and has a size getter https://bugs.webkit.org/show_bug.cgi?id=177026 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): 2017-09-19 Ryan Haddad Update bot configuration for iOS 11. https://bugs.webkit.org/show_bug.cgi?id=177165 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/config.json: * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js: (BubbleQueueServer): * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: (WebKitBuildbot): * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css: (table.queue-grid tr.platform.ios-simulator-10 img.logo): Deleted. (table.queue-grid tr.platform.ios-10 img.logo): Deleted. * BuildSlaveSupport/build.webkit.org-config/wkbuild.py: (_should_file_trigger_build): * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py: (ShouldBuildTest): (ShouldBuildTest.test_should_build): 2017-09-19 Filip Pizlo Primitive protocol should have capital name https://bugs.webkit.org/show_bug.cgi?id=177097 Reviewed by JF Bastien. As soon as I started programming in WSL, I found that I preferred to capitalize protocol names. So, my early decision to call the primitive protocol "primitive" instead of "Primitive" seems absurd now. This change reverses that decision. Aesthetically, this is a slight improvement. For example: struct Bar { Foo f; } This makes more sense since all of the non-keyword type identifiers are capital. The one place where this is an aesthetic regression is native primitive typedefs, which now look like: native Primitive typedef bool; I'm happy with that tradeoff, since native typedefs are only in the standard library. Users don't see this. * WebGPUShadingLanguageRI/AddressSpace.js: (protocolSuffix): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/NativeType.js: (NativeType.prototype.toString): (NativeType): * WebGPUShadingLanguageRI/Parse.js: (parseNative): * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.js: (TEST_passNullAndNotNullFullPoly): (TEST_passNullAndNotNullFullPolyReverse): 2017-09-18 Filip Pizlo Cannot put typedefs of templated structs inside structs https://bugs.webkit.org/show_bug.cgi?id=177123 Reviewed by Michael Saboff. Ever since I wrote the generic type instantiation code in WSL, it had a bizarre stink to it. I did not know what it was, until I met this test case: struct Foo { int2 x; } The problem was that Type has a getter called instantiatedType, which invoked InstantiateImmediates. That's great. Where we went wrong was that TypeRef overrode instantiatedType, and then InstantiateImmediates called TypeRef.instantiatedType from its visitTypeRef. What a mess. None of that was necessary for anything, and it was just wrong. This patch fixes it so that: - Type has an instantiatedType getter, which does InstantiateImmediates. I didn't change this. This was the only part of the status quo that really made sense. - TypeRef no longer overrides instantiatedType. - InstantianteImmediates.prototype.visitTypeRef now does what TypeRef's instantiatedType would have done. And voila! This test case passes and so do all of the other test cases. The reason why that specific test case did not work was that the use of a TypeDef (int2) for a generic type instantiation (vec2) caused there to be two TypeRef's in a row, sorta like this, if we could use wrap() to denote a TypeRef that just wrapped another type: wrap(vec2) We would call instantiatedType on this monstrosity. Since TypeRef overrode instantiatedType, we would stop there because that TypeRef has no type arguments - it's just a wrapper. Well, actually, we'd do something a bit stranger than stopping there - there's more to the story - but the effect was the same. Now we do InstantiateImmediates, which recursively builds a new type. This chews through the wrapper and then instantiates the wrapped type, as we want it to. Also, this approach no longer has the stink. instantiatedType isn't overriden by anyone anymore! * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/InstantiateImmediates.js: (InstantiateImmediates.prototype.visitTypeRef): (InstantiateImmediates.prototype.visitReferenceType): Deleted. * WebGPUShadingLanguageRI/Test.js: (TEST_instantiateStructInStructWithInt2): * WebGPUShadingLanguageRI/TypeRef.js: (TypeRef.wrap): (TypeRef.prototype.setTypeAndArguments): (TypeRef.prototype.toString): (TypeRef): (TypeRef.prototype.get instantiatedType): Deleted. 2017-09-19 Per Arne Vollan [Win] WebKit fails to build with 64-bit Perl. https://bugs.webkit.org/show_bug.cgi?id=177106 Reviewed by Brent Fulgham. Visual Studio is installed in the 32-bit program files folder. * Scripts/webkitdirs.pm: (programFilesPathX86): (visualStudioInstallDir): (msBuildInstallDir): 2017-09-18 Filip Pizlo [WSL] Cannot put templated structs inside structs https://bugs.webkit.org/show_bug.cgi?id=177120 Reviewed by Myles Maxfield. It turns out that we still need to instantiate structs even if not passing type arguments, since its fields may need to be instantiated. This makes Myles's test case pass. When writing the test case, I encountered parser bugs, and I fixed them. * WebGPUShadingLanguageRI/CallFunction.js: (callFunction): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitReferenceType): * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique): (FuncInstantiator): * WebGPUShadingLanguageRI/Parse.js: (parseSuffixOperator): (parsePossibleSuffix): (parsePostIncrement): * WebGPUShadingLanguageRI/StructType.js: (StructType.prototype.instantiate): * WebGPUShadingLanguageRI/Test.js: (checkNumber): (checkEnum): (TEST_instantiateStructInStruct): * WebGPUShadingLanguageRI/TypeRef.js: (TypeRef.prototype.get instantiatedType): (TypeRef.prototype.get isPrimitive): 2017-09-18 Filip Pizlo WSL should support enum https://bugs.webkit.org/show_bug.cgi?id=176977 Reviewed by Myles Maxfield. This implements enum. Enums members are referenced Java-style. For example, if we have an enum like: enum Bank { GP, FP } Then you refer to the members by saying Bank.GP and Bank.FP. Also adds a hack that makes operator- on a literal fold the literal. This fixes two issues: - Lets you use negative literals in constexprs. - Means that negative literals also get literal type unification. WSL's constexpr support is really thin, but I think it's all we really need for now. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitEnumType): (Checker.prototype.visitEnumLiteral): * WebGPUShadingLanguageRI/ConstexprFolder.js: Added. (ConstexprFolder.prototype.visitCallExpression): (ConstexprFolder.prototype.visitTypeOrVariableRef): (ConstexprFolder): * WebGPUShadingLanguageRI/CreateLiteral.js: (createLiteral.GenericLiteral.prototype.get valueForSelectedType): (createLiteral.GenericLiteral.prototype.get negConstexpr): * WebGPUShadingLanguageRI/DoubleLiteral.js: (let.DoubleLiteral.createLiteral.negConstexpr): * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype.visitEnumLiteral): * WebGPUShadingLanguageRI/EnumLiteral.js: Added. (EnumLiteral): (EnumLiteral.prototype.get member): (EnumLiteral.prototype.get type): (EnumLiteral.prototype.get isConstexpr): (EnumLiteral.prototype.unifyImpl): (EnumLiteral.prototype.toString): * WebGPUShadingLanguageRI/EnumMember.js: Added. (EnumMember): (EnumMember.prototype.get origin): (EnumMember.prototype.get name): (EnumMember.prototype.toString): * WebGPUShadingLanguageRI/EnumType.js: Added. (EnumType): (EnumType.prototype.add): (EnumType.prototype.get origin): (EnumType.prototype.get name): (EnumType.prototype.get baseType): (EnumType.prototype.get memberNames): (EnumType.prototype.memberByName): (EnumType.prototype.get members): (EnumType.prototype.get memberMap): (EnumType.prototype.get isPrimitive): (EnumType.prototype.populateDefaultValue): (EnumType.prototype.get size): (EnumType.prototype.toString): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitGenericLiteral): (Evaluator.prototype.visitEnumLiteral): * WebGPUShadingLanguageRI/FloatLiteral.js: (let.FloatLiteral.createLiteral.negConstexpr): * WebGPUShadingLanguageRI/FoldConstexprs.js: Added. (foldConstexprs): * WebGPUShadingLanguageRI/IntLiteral.js: (let.IntLiteral.createLiteral.negConstexpr): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/Parse.js: (parseConstexpr): (parsePossibleSuffix): (parseEnumMember): (parseEnumType): (parse): * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitEnumType): (Rewriter.prototype.visitEnumMember): (Rewriter.prototype.visitEnumLiteral): * WebGPUShadingLanguageRI/StructType.js: (StructType.prototype.get origin): (StructType.prototype.instantiate): * WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js: Added. (synthesizeEnumFunctions): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (checkEnum): (TEST_simpleEnum): (TEST_enumWithManualValues): (TEST_enumWithoutZero): (TEST_enumConstexprGenericFunction): (TEST_enumConstexprGenericStruct): * WebGPUShadingLanguageRI/UintLiteral.js: (let.UintLiteral.createLiteral.negConstexpr): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): 2017-09-18 Filip Pizlo WSL prepare() should cache the parsed standard library https://bugs.webkit.org/show_bug.cgi?id=177118 Reviewed by Myles Maxfield. The execution time of Test.js is too damn high! So I made it 2x faster by caching the parsed standard library. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CloneProgram.js: Added. (cloneProgram): * WebGPUShadingLanguageRI/Prepare.js: (let.prepare): (prepare): Deleted. * WebGPUShadingLanguageRI/StatementCloner.js: Added. (StatementCloner.prototype.visitFuncDef): (StatementCloner.prototype.visitNativeFunc): (StatementCloner.prototype.visitNativeType): (StatementCloner.prototype.visitTypeDef): (StatementCloner.prototype.visitStructType): (StatementCloner.prototype.visitConstexprTypeParameter): (StatementCloner.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (doTest): 2017-09-18 Michael Catanzaro [CMake] Rename WebKit target to WebKitLegacy and rename WebKit2 target to WebKit https://bugs.webkit.org/show_bug.cgi?id=174558 Reviewed by Alex Christensen. With help from Stephan Szabo, thanks! * DumpRenderTree/PlatformMac.cmake: * DumpRenderTree/PlatformWin.cmake: * DumpRenderTree/win/AccessibilityControllerWin.cpp: * DumpRenderTree/win/DRTDesktopNotificationPresenter.h: * DumpRenderTree/win/DumpRenderTree.cpp: * DumpRenderTree/win/EditingDelegate.h: * DumpRenderTree/win/EventSender.cpp: * DumpRenderTree/win/FrameLoadDelegate.cpp: * DumpRenderTree/win/FrameLoadDelegate.h: * DumpRenderTree/win/GCControllerWin.cpp: * DumpRenderTree/win/HistoryDelegate.cpp: * DumpRenderTree/win/HistoryDelegate.h: * DumpRenderTree/win/PolicyDelegate.h: * DumpRenderTree/win/ResourceLoadDelegate.cpp: * DumpRenderTree/win/ResourceLoadDelegate.h: * DumpRenderTree/win/TestRunnerWin.cpp: * DumpRenderTree/win/TextInputControllerWin.cpp: * DumpRenderTree/win/UIDelegate.cpp: * DumpRenderTree/win/UIDelegate.h: * DumpRenderTree/win/WorkQueueItemWin.cpp: * MiniBrowser/gtk/CMakeLists.txt: * MiniBrowser/mac/CMakeLists.txt: * MiniBrowser/win/AccessibilityDelegate.cpp: * MiniBrowser/win/AccessibilityDelegate.h: * MiniBrowser/win/CMakeLists.txt: * MiniBrowser/win/Common.cpp: * MiniBrowser/win/DOMDefaultImpl.h: * MiniBrowser/win/MiniBrowser.cpp: * MiniBrowser/win/MiniBrowser.h: * MiniBrowser/win/MiniBrowserWebHost.cpp: * MiniBrowser/win/MiniBrowserWebHost.h: * MiniBrowser/win/PageLoadTestClient.h: * MiniBrowser/win/PrintWebUIDelegate.cpp: * MiniBrowser/win/PrintWebUIDelegate.h: * MiniBrowser/win/ResourceLoadDelegate.cpp: * MiniBrowser/win/ResourceLoadDelegate.h: * MiniBrowser/win/WebDownloadDelegate.h: * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/PlatformWPE.cmake: * TestWebKitAPI/PlatformWin.cmake: * TestWebKitAPI/Tests/WebKitLegacy/win/ScaleWebView.cpp: * TestWebKitAPI/Tests/WebKitLegacy/win/WebViewDestruction.cpp: * TestWebKitAPI/glib/CMakeLists.txt: * WebKitTestRunner/CMakeLists.txt: * WebKitTestRunner/PlatformGTK.cmake: * WebKitTestRunner/PlatformWPE.cmake: 2017-09-18 Myles C. Maxfield Fill out vector types in WSL's standard library https://bugs.webkit.org/show_bug.cgi?id=177063 Reviewed by Filip Pizlo. Now that we have struct types, operator&[], and operator==, fill out a few of the builtin vector types in the standard library. This patch creates three new types: vec2, vec3, and vec4, each of which takes a type argument, so you can say vec4. This patch also adds typedefs of int4, uint4, float4, and double4 (along with their 2- and 3- length siblings). This patch does not include the swizzling operators, so you can't say float4.yzw. * WebGPUShadingLanguageRI/StandardLibrary.js: (operator.T.vec2.T): (bool.operator.T.Equatable): (thread.T.operator.T): (operator.T.vec3.T): (operator.T.vec4.T): * WebGPUShadingLanguageRI/Test.js: (TEST_builtinVectors): 2017-09-18 Myles C. Maxfield WSL needs to annotate vertex shaders and fragment shaders https://bugs.webkit.org/show_bug.cgi?id=177066 Reviewed by Filip Pizlo. Metal Shading Language requires annotating vertex and fragment shaders, so this information needs to be in the source WSL file. * WebGPUShadingLanguageRI/Func.js: (Func): (Func.prototype.get shaderType): * WebGPUShadingLanguageRI/FuncDef.js: (FuncDef): * WebGPUShadingLanguageRI/NativeFunc.js: (NativeFunc): * WebGPUShadingLanguageRI/Parse.js: (parseFuncDecl): (parseProtocolFuncDecl): (parseFuncDef): (parseNativeFunc): * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: (resolveOverloadImpl): * WebGPUShadingLanguageRI/Test.js: 2017-09-18 Filip Pizlo WSL should know that constexpr parameters are not lvalues https://bugs.webkit.org/show_bug.cgi?id=177104 Reviewed by Saam Barati. This should be an error: void foo() { x = 42; } Previously, it wasn't, because VariableRef always thought that it was an LValue. This patch teaches the type checker that not all VariableRefs are LValues. * WebGPUShadingLanguageRI/ConstexprTypeParameter.js: (ConstexprTypeParameter.prototype.get varIsLValue): * WebGPUShadingLanguageRI/FuncParameter.js: (FuncParameter.prototype.get varIsLValue): * WebGPUShadingLanguageRI/Test.js: (TEST_nonArrayRefArrayLengthSucceed): (TEST_nonArrayRefArrayLengthFail): (TEST_nonArrayRefArrayLength): Deleted. (TEST_assignLength): Deleted. * WebGPUShadingLanguageRI/VariableDecl.js: (VariableDecl.prototype.get varIsLValue): * WebGPUShadingLanguageRI/VariableRef.js: (VariableRef.prototype.get isLValue): 2017-09-18 Ryan Haddad Unreviewed, rolling out r222170. The API test added with this change is failing. Reverted changeset: "Allow WTF::map to use any class that is iterable and has a size getter" https://bugs.webkit.org/show_bug.cgi?id=177026 http://trac.webkit.org/changeset/222170 2017-09-18 Myles C. Maxfield Add a section in WSL's documentation about how API objects and WSL interact https://bugs.webkit.org/show_bug.cgi?id=177089 Reviewed by Filip Pizlo. No global variables; entry points accept arguments. Buffers are array references ([]), and texture and sampler opaque types exist. Data is passed between stages in return values. * WebGPUShadingLanguageRI/WSL.md: 2017-09-18 Filip Pizlo Unreviewed, fix typo. * WebGPUShadingLanguageRI/WSL.md: 2017-09-18 Filip Pizlo WSL cannot use typedefs of arrays https://bugs.webkit.org/show_bug.cgi?id=177061 Reviewed by Saam Barati. This test case didn't work before because of a missing visit call in Checker. * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitTypeRef): * WebGPUShadingLanguageRI/Test.js: (TEST_typedefArray): 2017-09-18 Youenn Fablet Allow WTF::map to use any class that is iterable and has a size getter https://bugs.webkit.org/show_bug.cgi?id=177026 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): 2017-09-16 Filip Pizlo Figure out how WSL will support field overloads like float4.xz and friends https://bugs.webkit.org/show_bug.cgi?id=177031 Reviewed by JF Bastien. WSL needs to support getters and setters, so that we can do things like: float4 vec; vec.zx = float2(1, 2); // z = 1, x = 2 There's no way to express this float4.zx returning a pointer to something, since it's doing swizzling. It could return a crazy smart pointer, but that sounds like a lot of work. So, I decided to go for lvalue emulation instead. The idea of lvalue emulation is that when we try to make an lvalue work for an assignment or RMW operation (like += and friends), we consider the possibility that we have to first load the value using a getter and then store it with a setter. This patch makes this work recursively, so that this will work: float4 vec; vec.zwx.y = 42; // now w is 42 This works because we decompose it automatically: float4 vec; float3 tmp = vec.zwx; tmp.y = 42; vec.zwx = tmp; This'll work to any depth. To check if this works, this patch adds two substantial new tests called TEST_genericAccessors() and TEST_bitSubscriptAccessor(). This tests that this stuff works with a lot of generic types, and that it's possible to turn integers into bitvectors using subscript overloading. This patch also adds smaller unit tests also. Oh, and it's now possible to get an array's length. * WebGPUShadingLanguageRI/AddressSpace.js: (needsPrimitiveProtocol): (protocolSuffix): * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/AnonymousVariable.js: Added. (AnonymousVariable): (AnonymousVariable.prototype.get origin): (AnonymousVariable.prototype.get name): (AnonymousVariable.prototype.toString): * WebGPUShadingLanguageRI/ArrayRefType.js: (ArrayRefType.prototype.argumentForAndOverload): (ArrayRefType.prototype.argumentTypeForAndOverload): * WebGPUShadingLanguageRI/ArrayType.js: (ArrayType.prototype.argumentForAndOverload): (ArrayType.prototype.argumentTypeForAndOverload): (ArrayType): * WebGPUShadingLanguageRI/Assignment.js: (Assignment): * WebGPUShadingLanguageRI/CallAssignment.js: Removed. * WebGPUShadingLanguageRI/CallExpression.js: (CallExpression.resolve): (CallExpression.prototype.resolve): (CallExpression.prototype.resolveToOverload): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProgram): (Checker.prototype.visitFuncDef): (Checker.prototype.visitNativeFunc): (Checker.prototype.visitProtocolDecl): (Checker.prototype.visitIdentityExpression): (Checker.prototype.visitReadModifyWriteExpression): (Checker.prototype.visitAnonymousVariable): (Checker.prototype.visitMakeArrayRefExpression): (Checker.prototype._finishVisitingPropertyAccess): (Checker.prototype.visitDotExpression): (Checker.prototype.visitIndexExpression): (Checker.prototype.visitCallExpression): (Checker): (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitTypeRef): Deleted. (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitVariableRef): Deleted. (Checker.prototype.visitProtocolDecl.NoticeTypeVariable): Deleted. (Checker.prototype.visitProtocolDecl.set throw): Deleted. * WebGPUShadingLanguageRI/CommaExpression.js: * WebGPUShadingLanguageRI/DotExpression.js: (DotExpression): (DotExpression.prototype.get struct): (DotExpression.prototype.get getFuncName): (DotExpression.prototype.get andFuncName): (DotExpression.prototype.get setFuncName): * WebGPUShadingLanguageRI/EBuffer.js: * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype.visitAnonymousVariable): (EBufferBuilder.prototype.visitLetExpression): Deleted. * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitIdentityExpression): (Evaluator.prototype.visitMakePtrExpression): (Evaluator.prototype.visitAnonymousVariable): (Evaluator.prototype.visitDotExpression): Deleted. (Evaluator.prototype.visitLetExpression): Deleted. * WebGPUShadingLanguageRI/ExpressionFinder.js: (ExpressionFinder.prototype.visitReadModifyWriteExpression): (ExpressionFinder.prototype.visitIdentityExpression): * WebGPUShadingLanguageRI/ForLoop.js: (ForLoop.prototype.toString): (ForLoop): * WebGPUShadingLanguageRI/Func.js: (Func): * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression): (FuncInstantiator.prototype.getUnique.InstantiationSubstitution): (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef): (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc): (FuncInstantiator.prototype.getUnique.Instantiate): (FuncInstantiator.prototype.getUnique): (FuncInstantiator): * WebGPUShadingLanguageRI/IdentityExpression.js: Added. (IdentityExpression): (IdentityExpression.prototype.get target): (IdentityExpression.prototype.get unifyNode): (IdentityExpression.prototype.get isConstexpr): (IdentityExpression.prototype.get isLValue): (IdentityExpression.prototype.get addressSpace): (IdentityExpression.prototype.toString): * WebGPUShadingLanguageRI/IndexExpression.js: Added. (IndexExpression): (IndexExpression.prototype.get array): (IndexExpression.prototype.get index): (IndexExpression.prototype.get isLValue): (IndexExpression.prototype.get addressSpace): (IndexExpression.prototype.get getFuncName): (IndexExpression.prototype.get andFuncName): (IndexExpression.prototype.get setFuncName): (IndexExpression.prototype.toString): * WebGPUShadingLanguageRI/InferTypesForCall.js: (inferTypesForCall): * WebGPUShadingLanguageRI/Inline.js: (_inlineFunction): * WebGPUShadingLanguageRI/Inliner.js: (Inliner.prototype.visitCallExpression): (Inliner.prototype.visitDotExpression): Deleted. * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/LetExpression.js: Removed. * WebGPUShadingLanguageRI/MakeArrayRefExpression.js: (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression): Deleted. * WebGPUShadingLanguageRI/NameContext.js: (NameContext): (NameContext.prototype.add): (NameContext.prototype.doStatement): (NameContext.prototype.handleDefining): Deleted. (NameContext.prototype.isDefined): Deleted. (NameContext.prototype.define): Deleted. (NameContext.prototype.defineAll): Deleted. * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.doStatement): (NameResolver.prototype.visitProtocolDecl): (NameResolver.prototype.visitProgram): Deleted. * WebGPUShadingLanguageRI/NativeFunc.js: (NativeFunc): * WebGPUShadingLanguageRI/NativeFuncInstance.js: (NativeFuncInstance): (NativeFuncInstance.prototype.get implementationData): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.visit): (Node.visit): (Node.unify): Deleted. * WebGPUShadingLanguageRI/NormalUsePropertyResolver.js: Added. (NormalUsePropertyResolver.prototype.visitDotExpression): (NormalUsePropertyResolver.prototype.visitIndexExpression): (NormalUsePropertyResolver): * WebGPUShadingLanguageRI/Parse.js: (finishParsingPostIncrement): (parsePossibleSuffix): (finishParsingPreIncrement): (genericParseCommaExpression): (parseFuncName): * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/Program.js: (Program): (Program.prototype.get globalNameContext): (Program.prototype.add): * WebGPUShadingLanguageRI/PropertyAccessExpression.js: Added. (PropertyAccessExpression): (PropertyAccessExpression.prototype.get resultType): (PropertyAccessExpression.prototype.rewriteAfterCloning): (PropertyAccessExpression.prototype.updateCallsAfterChangingBase): (PropertyAccessExpression.prototype.emitGet): (PropertyAccessExpression.prototype.emitSet): * WebGPUShadingLanguageRI/PropertyResolver.js: Added. (PropertyResolver.prototype._visitPropertyAccess): (PropertyResolver.prototype.visitDotExpression): (PropertyResolver.prototype.visitIndexExpression): (PropertyResolver.prototype._handleReadModifyWrite): (PropertyResolver.prototype.visitReadModifyWriteExpression): (PropertyResolver.prototype.visitAssignment): (PropertyResolver.visitMakePtrExpression): (PropertyResolver.prototype.visitMakeArrayRefExpression): (PropertyResolver): * WebGPUShadingLanguageRI/PtrType.js: (PtrType.prototype.argumentForAndOverload): (PtrType.prototype.argumentTypeForAndOverload): (PtrType.prototype.returnTypeFromAndOverload): * WebGPUShadingLanguageRI/ReadModifyWriteExpression.js: Added. (ReadModifyWriteExpression): (ReadModifyWriteExpression.prototype.get lValue): (ReadModifyWriteExpression.prototype.oldValueRef): (ReadModifyWriteExpression.prototype.newValueRef): (ReadModifyWriteExpression.prototype.toString): * WebGPUShadingLanguageRI/ResolveNames.js: (createNameResolver): (resolveNamesInTypes): (resolveNamesInProtocols): (resolveNamesInFunctions): (resolveNames): Deleted. * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: (resolveOverloadImpl): * WebGPUShadingLanguageRI/ResolveProperties.js: Added. (resolveProperties): * WebGPUShadingLanguageRI/ResolveTypeDefs.js: (resolveTypeDefsInTypes): (resolveTypeDefsInProtocols): (resolveTypeDefsInFunctions): (resolveTypeDefs): Deleted. * WebGPUShadingLanguageRI/ReturnChecker.js: (ReturnChecker.prototype._isBoolCastFromLiteralTrue): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter): (Rewriter.prototype.visitVariableDecl): (Rewriter.prototype.visitTypeRef): (Rewriter.prototype.visitAssignment): (Rewriter.prototype.visitReadModifyWriteExpression): (Rewriter.prototype.visitDereferenceExpression): (Rewriter.prototype._handlePropertyAccessExpression): (Rewriter.prototype.visitDotExpression): (Rewriter.prototype.visitIndexExpression): (Rewriter.prototype.visitReturn): (Rewriter.prototype.visitGenericLiteralType): (Rewriter.prototype.visitNullType): (Rewriter.prototype.processDerivedCallData): (Rewriter.prototype.visitCallExpression): (Rewriter.prototype.visitFunctionLikeBlock): (Rewriter.prototype.visitIfStatement): (Rewriter.prototype.visitForLoop): (Rewriter.prototype.visitAnonymousVariable): (Rewriter.prototype.visitIdentityExpression): (Rewriter.prototype.visitLetExpression): Deleted. * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/StructLayoutBuilder.js: (StructLayoutBuilder.prototype.visitNativeFuncInstance): (StructLayoutBuilder): * WebGPUShadingLanguageRI/StructType.js: (StructType.prototype.instantiate): * WebGPUShadingLanguageRI/Substitution.js: (Substitution.prototype.get map): * WebGPUShadingLanguageRI/SuffixCallAssignment.js: Removed. * WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: Added. (synthesizeStructAccessors.createTypeParameters): (synthesizeStructAccessors.): (synthesizeStructAccessors.createFieldType): (synthesizeStructAccessors.createTypeRef): (synthesizeStructAccessors.setupAnder): (synthesizeStructAccessors): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (checkNumber): (TEST_simpleProtocol): (TEST_assignLength): (TEST_simpleSetter): (TEST_genericAccessors): * WebGPUShadingLanguageRI/Type.js: (Type.prototype.get isRef): (Type.prototype.argumentForAndOverload): (Type.prototype.argumentTypeForAndOverload): (Type.prototype.returnTypeFromAndOverload): (Type): * WebGPUShadingLanguageRI/TypeParameterRewriter.js: Added. (TypeParameterRewriter.prototype.visitConstexprTypeParameter): (TypeParameterRewriter.prototype.visitTypeVariable): (TypeParameterRewriter): * WebGPUShadingLanguageRI/TypeVariableTracker.js: Added. (TypeVariableTracker): * WebGPUShadingLanguageRI/Value.js: (Value.prototype.become): (Value): * WebGPUShadingLanguageRI/VariableRef.js: (VariableRef.prototype.get unifyNode): (VariableRef.prototype.get addressSpace): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitNativeFuncInstance): (Visitor.prototype.visitProtocolDecl): (Visitor): Deleted. * WebGPUShadingLanguageRI/VisitorBase.js: Removed. 2017-09-18 Andy Estes [Cocoa] Upstream WKSetCrashReportApplicationSpecificInformation() from WebKitSystemInterface https://bugs.webkit.org/show_bug.cgi?id=177048 Reviewed by Alex Christensen. * DumpRenderTree/mac/DumpRenderTree.mm: (runTest): * WebKitTestRunner/cocoa/CrashReporterInfo.mm: (WTR::setCrashReportApplicationSpecificInformationToURL): 2017-09-18 Tim Horton build-webkit spawns fewer subprocesses than ninja uses by default https://bugs.webkit.org/show_bug.cgi?id=177057 Reviewed by Alex Christensen. * Scripts/build-webkit: By default, ninja will parallelize over (cores + 2) jobs. build-webkit specifies -j(cores), which overrides this. Remove our override if building with ninja; just let it do its own thing. In my testing, this minor change is the difference between ~10% idle CPU time and 0. 2017-09-18 Lucas Forschler Land a patch to verify svn->git update is working. 2017-09-18 Ms2ger Update my status. Unreviewed. * Scripts/webkitpy/common/config/contributors.json: 2017-09-17 Filip Pizlo Start working on WSL documentation https://bugs.webkit.org/show_bug.cgi?id=177064 Reviewed by Mylex Maxfield. This is a work in progress. I'd like to check it in and then keep adding to it. * WebGPUShadingLanguageRI/WSL.md: Added. 2017-09-17 Myles C. Maxfield WSL needs to understand && and || https://bugs.webkit.org/show_bug.cgi?id=177062 Reviewed by Filip Pizlo. Very similar to LogicalNot. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype.visitLogicalExpression): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitLogicalExpression): * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/LogicalExpression.js: Added. (LogicalExpression): (LogicalExpression.prototype.get text): (LogicalExpression.prototype.get left): (LogicalExpression.prototype.get right): (LogicalExpression.prototype.toString): * WebGPUShadingLanguageRI/Parse.js: (parseLeftLogicalExpression): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitLogicalExpression): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): 2017-09-18 Ms2ger Update my status. Unreviewed. * Scripts/webkitpy/common/config/contributors.json: 2017-09-17 Filip Pizlo Start working on WSL documentation https://bugs.webkit.org/show_bug.cgi?id=177064 Reviewed by Mylex Maxfield. This is a work in progress. I'd like to check it in and then keep adding to it. * WebGPUShadingLanguageRI/WSL.md: Added. 2017-09-17 Myles C. Maxfield WSL needs to understand && and || https://bugs.webkit.org/show_bug.cgi?id=177062 Reviewed by Filip Pizlo. Very similar to LogicalNot. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype.visitLogicalExpression): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitLogicalExpression): * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/LogicalExpression.js: Added. (LogicalExpression): (LogicalExpression.prototype.get text): (LogicalExpression.prototype.get left): (LogicalExpression.prototype.get right): (LogicalExpression.prototype.toString): * WebGPUShadingLanguageRI/Parse.js: (parseLeftLogicalExpression): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitLogicalExpression): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): 2017-09-17 Myles C. Maxfield WSL needs float and double support https://bugs.webkit.org/show_bug.cgi?id=177058 Reviewed by Filip Pizlo. Use the existing int and uint types as a model. The types themselves are straighforward. Just like int and uint, you can't pass a float as a double argument and vice-versa. This patch adds operator+, -, *, and / for floats and doubles. Float literals are more complicated. If your number has a "." character in it, it is treated as a float literal. You can add a suffix of "f" or "d" to force the literal to pretend to be a float or a double. These literals are able to masquerade as either floats or doubles (unlike an explicit type). However, these literals are not able to masquerade as ints or uints. There's also a nice check that your float literal can actually fit in a float. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/DoubleLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js. (let.DoubleLiteral.createLiteral.createType): * WebGPUShadingLanguageRI/DoubleLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js. (let.DoubleLiteralType.createLiteralType.verifyAsArgument): * WebGPUShadingLanguageRI/FloatLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js. (let.FloatLiteral.createLiteral.createType): * WebGPUShadingLanguageRI/FloatLiteralType.js: Copied from Tools/WebGPUShadingLanguageRI/Type.js. (let.FloatLiteralType.createLiteralType.verifyAsArgument): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/NativeType.js: (NativeType): (NativeType.prototype.get isFloating): (NativeType.prototype.set isFloating): (NativeType.prototype.get isFloat): Deleted. (NativeType.prototype.set isFloat): Deleted. * WebGPUShadingLanguageRI/Parse.js: (parseTerm): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitGenericLiteral): * WebGPUShadingLanguageRI/StandardLibrary.js: (uint.operator): (int.operator): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (makeFloat): (makeDouble): (checkNumber): (checkFloat): (checkDouble): * WebGPUShadingLanguageRI/Type.js: (Type.prototype.get isFloating): (Type.prototype.get isFloat): Deleted. 2017-09-17 Michael Saboff https://bugs.webkit.org/show_bug.cgi?id=177038 Add an option to run-jsc-stress-tests to limit tests variations to a basic set Reviewed by JF Bastien. Added the --basic option that runs defaults tests with the following modes, default, no-llint, no-cjit-validate-phases, no-cjit-collect-continuously, dfg-eager and for FTL platforms: no-ftl, ftl-eager-no-cjit and ftl-no-cjit-small-pool. This takes about half the time as running all 16 modes of a full run. * Scripts/run-jsc-stress-tests: 2017-09-16 Tim Horton Fix the Tools build with CMake on macOS https://bugs.webkit.org/show_bug.cgi?id=177030 Reviewed by Geoffrey Garen. * TestWebKitAPI/CMakeLists.txt: Add a workaround identical to what the gtest CMakeLists has. 2017-09-16 Carlos Garcia Campos [GTK] Bump fontconfig version to 2.12.4 https://bugs.webkit.org/show_bug.cgi?id=176997 Reviewed by Michael Catanzaro. It's the latest stable version and we can get rid of the patches we have. * WebKitTestRunner/gtk/fonts/fonts.conf: Remove hinting config we no longer need with newer FreeType and deprecated that current fontconfig just ignores. * gtk/jhbuild.modules: * gtk/patches/fontconfig-2.11.1-add-autogen.patch: Removed. * gtk/patches/fontconfig-Avoid-conflicts-with-integer-width-macros-from-TS-18661-1-2014.patch: Removed. * gtk/patches/fontconfig-Fix-the-build-issue-with-gperf-3.1.patch: Removed. * gtk/patches/fontconfig-fix-osx-cache.diff: Removed. 2017-09-15 Lucas Forschler Move run-webkit-archive from Tools/Scripts to Tools/BuildSlaveSupport Reviewed by Alexey Proskuryakov. * Scripts/run-webkit-archive: Removed. 2017-09-15 Lucas Forschler teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives. https://bugs.webkit.org/show_bug.cgi?id=176965 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/built-product-archive: (addLauncherToArchive): Helper function to add the launcher script (createZip): teach function about addLauncherToArchive * BuildSlaveSupport/run-webkit-archive: Added. (check_for_valid_platform): Add logic to ensure platform is Darwin (find_dyld_framework_path): Find the dyld framework path (run_safari_for_webkit_development): launch SafariForWebKitDevelopment (set_dyld_framework_path): export the environment for dydl framework path 2017-09-15 Myles C. Maxfield [WSL] Small cleanup in Evaluator https://bugs.webkit.org/show_bug.cgi?id=176971 Reviewed by Filip Pizlo. Use the symbols for break and continue instead of the objects themselves. No tests because there is no behavior change. * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitWhileLoop): (Evaluator.prototype.visitDoWhileLoop): (Evaluator.prototype.visitForLoop): (Evaluator.prototype.visitBreak): (Evaluator.prototype.visitContinue): 2017-09-15 Filip Pizlo WSL Evaluator should only allocate EBuffers when dealing with intrinsics https://bugs.webkit.org/show_bug.cgi?id=176973 Reviewed by Myles Maxfield. Whether or not two temporary values share the same EBuffer is ultimately observable in WSL, because you can do this: thread int^ operator&[](thread int^ ptr, uint index) { g_ptr = ptr; return ptr; } And then this is a thing: 42[0]; // g_ptr now points to 42's location Normally this would have a lot of bad implications. But in WSL, if you did choose to do this, you'd get a pointer to something well-defined: the EBuffer of 42's GenericLiteral. Each static occurrence of a literal gets its own location, and the semantics of the language call for 42 to be stored into this location when `42` "executes". So, while the programmer could do all kinds of strange things, at least the strangeness they would see is something we can spec. But to do this, the interpreter needs to allocate EBuffers in the same way a compiler would. It cannot allocate them during execution, except when interacting with intrinsics, which won't know the difference. In the process, I found places that needed to use AutoWrapper instead of TypeRef.wrap. * WebGPUShadingLanguageRI/AutoWrapper.js: (AutoWrapper.prototype.visitGenericLiteralType): (AutoWrapper.prototype.visitNullType): (AutoWrapper): * WebGPUShadingLanguageRI/CallExpression.js: (CallExpression.prototype.resolve): * WebGPUShadingLanguageRI/CallFunction.js: (callFunction): * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/CreateLiteralType.js: (createLiteralType.GenericLiteralType.prototype.commitUnification): * WebGPUShadingLanguageRI/EBuffer.js: (EBuffer): (EBuffer.setCanAllocateEBuffers): (EBuffer.disallowAllocation): (EBuffer.allowAllocation): * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype.visitVariableDecl): (EBufferBuilder.prototype.visitFuncDef): (EBufferBuilder.prototype.visitFunctionLikeBlock): (EBufferBuilder.prototype.visitCallExpression): (EBufferBuilder.prototype.visitMakePtrExpression): (EBufferBuilder.prototype.visitGenericLiteral): (EBufferBuilder.prototype.visitNullLiteral): (EBufferBuilder.prototype.visitBoolLiteral): (EBufferBuilder.prototype.visitLogicalNot): (EBufferBuilder): * WebGPUShadingLanguageRI/EPtr.js: (EPtr.box): (EPtr.prototype.box): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype._snapshot): (Evaluator.prototype.runFunc): (Evaluator.prototype._runBody): (Evaluator.prototype.visitFunctionLikeBlock): (Evaluator.prototype.visitMakePtrExpression): (Evaluator.prototype.visitGenericLiteral): (Evaluator.prototype.visitNullLiteral): (Evaluator.prototype.visitBoolLiteral): (Evaluator.prototype.visitLogicalNot): (Evaluator.prototype.visitCallExpression): (Evaluator): (Evaluator.prototype.runBody): Deleted. * WebGPUShadingLanguageRI/Inliner.js: (Inliner.prototype.visitCallExpression): * WebGPUShadingLanguageRI/InstantiateImmediates.js: (InstantiateImmediates.prototype.visitTypeRef): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitMakePtrExpression): (Rewriter.prototype.visitGenericLiteral): (Rewriter.prototype.visitNullLiteral): (Rewriter.prototype.processDerivedCallData): (Rewriter.prototype.visitFunctionLikeBlock): (Rewriter.prototype.visitLogicalNot): * WebGPUShadingLanguageRI/TypeRef.js: (TypeRef.prototype.toString): (TypeRef): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): 2017-09-14 Filip Pizlo Rationalize how WSL's operator&[] works https://bugs.webkit.org/show_bug.cgi?id=176958 Reviewed by Myles Maxfield. This makes operator&[] work with non-array-ref types. The way this works is that if you do base[index] then we pattern match base's type and proceed accordingly: If base's type is T^: => Reject If base's type is T[]: => Accept If base's type is T[c]: => Wrap it with a MakeArrayRefExpression and accept. All other cases: => Wrap it with a MakePtrExpression and accept. This makes it possible for operator&[] to work with lvalues. It also means that operator&[] gets to "see" the temporary values we create via snapshot() in the interpreter. We'll have to fix that, and I've filed bug 176973 for that. Once that's fixed, this will have well-defined behavior, though with the very peculiar caveat that an expression like this: totallyNotAnLValue()[42] Could be used to get a pointer to a non-lvalue. But we can be extremely precise about what that means and prohibit dangling pointers, which is kinda crazy. In order to do this, I had to make MakeArrayRefExpression work, so I did that and added tests for it. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/ArrayRefType.js: (ArrayRefType.prototype.unifyImpl): (ArrayRefType.prototype.toString): (ArrayRefType): * WebGPUShadingLanguageRI/ArrayType.js: (ArrayType): (ArrayType.prototype.get numElementsValue): (ArrayType.prototype.get size): (ArrayType.prototype.populateDefaultValue): (ArrayType.prototype.unifyImpl): * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/ConvertPtrToArrayRefExpression.js: Added. (ConvertPtrToArrayRefExpression): (ConvertPtrToArrayRefExpression.prototype.get lValue): (ConvertPtrToArrayRefExpression.prototype.toString): * WebGPUShadingLanguageRI/CreateLiteral.js: (createLiteral.GenericLiteral.withType): (createLiteral.GenericLiteral.prototype.get isLiteral): (createLiteral.GenericLiteral.prototype.unifyImpl): * WebGPUShadingLanguageRI/DotExpression.js: (DotExpression.prototype.get addressSpace): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitMakeArrayRefExpression): (Evaluator.prototype.visitConvertPtrToArrayRefExpression): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/MakeArrayRefExpression.js: Added. (MakeArrayRefExpression): (MakeArrayRefExpression.prototype.get lValue): (MakeArrayRefExpression.prototype.becomeConvertPtrToArrayRefExpression): (MakeArrayRefExpression.prototype.toString): * WebGPUShadingLanguageRI/MakePtrExpression.js: (MakePtrExpression.prototype.toString): (MakePtrExpression): * WebGPUShadingLanguageRI/PtrType.js: (PtrType.prototype.toString): (PtrType): * WebGPUShadingLanguageRI/ReferenceType.js: (ReferenceType): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitArrayType): (Rewriter.prototype.visitMakeArrayRefExpression): (Rewriter.prototype.visitConvertPtrToArrayRefExpression): * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_buildArrayThenSumItUsingArrayReference): (TEST_overrideSubscriptStruct): (TEST_overrideSubscriptStructAndUsePointers): (TEST_overrideSubscriptStructAndUsePointersIncorrectly): (TEST_makeArrayRefFromPointer): (TEST_makeArrayRefFromArrayRef): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): 2017-09-14 Filip Pizlo WSL should support ++, --, +=, and all of those things https://bugs.webkit.org/show_bug.cgi?id=176975 Reviewed by Myles Maxfield. This adds an internal AST construct called LetExpression, that allows us to anonymously capture a value. This change uses LetExpression to implement prefix and suffix ++/-- and all of the +=/-=/etc. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype.visitVariableDecl): (EBufferBuilder.prototype.visitLetExpression): (EBufferBuilder): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitLetExpression): * WebGPUShadingLanguageRI/LetExpression.js: Added. (LetExpression): (LetExpression.prototype.get origin): (LetExpression.prototype.get name): (LetExpression.prototype.toString): * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/Parse.js: (isCallExpression): (finishParsingPostIncrement): (parsePossibleSuffix): (finishParsingPreIncrement): (parsePreIncrement): (parsePossiblePrefix): (parsePossibleAssignment): (parsePostIncrement): (parseEffectfulExpression): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitFunctionLikeBlock): (Rewriter.prototype.visitLetExpression): (Rewriter): * WebGPUShadingLanguageRI/StandardLibrary.js: (int.operator): (uint.operator): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_prefixPlusPlus): (TEST_prefixPlusPlusResult): (TEST_postfixPlusPlus): (TEST_postfixPlusPlusResult): (TEST_prefixMinusMinus): (TEST_prefixMinusMinusResult): (TEST_postfixMinusMinus): (TEST_postfixMinusMinusResult): (TEST_plusEquals): (TEST_plusEqualsResult): (TEST_minusEquals): (TEST_minusEqualsResult): (TEST_timesEquals): (TEST_timesEqualsResult): (TEST_divideEquals): (TEST_divideEqualsResult): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): 2017-09-15 Brent Fulgham Provide mechanism to immediately end tests https://bugs.webkit.org/show_bug.cgi?id=176364 Reviewed by Alex Christensen. WebKitTestRunner does not output state if the top loading frame has not been removed. This prevents some tests that attempt to exercise failed load state from working properly. This change adds a new 'forceImmediateCompletion' handler for DumpRenderTree and WebKitTestRunner so that we can properly test these conditions. * DumpRenderTree/TestRunner.h: * DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::forceImmediateCompletion): Added. * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::forceImmediateCompletion): Ditto. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::forceImmediateCompletion): Ditto. * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-09-15 Youenn Fablet Add an URL method to remove both query string and fragment identifier https://bugs.webkit.org/show_bug.cgi?id=176911 Reviewed by Alex Christensen. Adding unit test for new URL method as well as modified setQuery and setFragmentIdentifier. * TestWebKitAPI/Tests/WebCore/URL.cpp: (TestWebKitAPI::createURL): (TestWebKitAPI::TEST_F): 2017-09-14 Yousuke Kimoto [WinCairo] Add an option to build WebKitLegacy and WebKit https://bugs.webkit.org/show_bug.cgi?id=176891 Since TestWebKitAPI and MiniBrowser/win are used for WebKitLegacy, those subdirectories are ignored for WebKit build. Reviewed by Alex Christensen. * CMakeLists.txt: 2017-09-14 Lucas Forschler Create a launcher for webkit-archives https://bugs.webkit.org/show_bug.cgi?id=176964 Reviewed by Aakash Jain. * Scripts/run-webkit-archive: Added. (find_dyld_framework_path): (run_safari_for_webkit_development): (set_dyld_framework_path): (main): 2017-09-14 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight https://bugs.webkit.org/show_bug.cgi?id=176889 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[PrintDelegate _webView:printFrame:]): (-[PrintDelegate _webViewHeaderHeight:]): (-[PrintDelegate _webViewFooterHeight:]): (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]): (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]): (callbacksEqual): (TEST): * TestWebKitAPI/cocoa/TestWKWebView.h: * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView hostWindow]): 2017-09-14 Ryan Haddad Unreviewed, rolling out r222033. This change caused API test WebKit.PrintFrame to time out. Reverted changeset: "Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight" https://bugs.webkit.org/show_bug.cgi?id=176889 http://trac.webkit.org/changeset/222033 2017-09-14 Youenn Fablet Allow WTF::map to take function as parameter https://bugs.webkit.org/show_bug.cgi?id=176909 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::multiplyByTwo): (TestWebKitAPI::TEST): (TestWebKitAPI::multiplyByTwoMoveOnly): 2017-09-14 Filip Pizlo WSL IntLiteralType should become int32 if unified with a type variable https://bugs.webkit.org/show_bug.cgi?id=176707 Reviewed by Myles Maxfield. This makes it so that this works: T foo(T x) { return x; } foo(42); // T becomes int32 Previously, it did not work because IntLiteralType did not recognize TypeVariable as a number. Also, TypeVariable would try to evaluate protocol inheritance of IntLiteralType, which would not go well. One of the tests that this patch adds didn't just fail; it gave such an absurd 7-line type error that I felt like I was using SML. This fixes the problem by introducing what I think is a super deterministic way of handling literals and type variables: Before verifying a unification context, we now give all literals a chance to perform an extra unification step. This is a two-phase process. This ensures that the unification performed by one literal does not throw off the logic of some other literal. For example, if we do: void foo(T, T) { } foo(42, 42u); Then we want to always fail to compile, rather than sometimes succeeding. So, we first ask each literal if it thinks that it needs to do extra unification. Both of the literals will report that they want to in this case, because they will notice that they got unified with either at type variable or a literal, which isn't specific enough. Then after they all register to do extra unification, they will both try to unify with their preferred types (int32 for 42, uint32 for 42u). The first one will succeed, and the second will give an error. Without the special two-phase arrangement, it was possible to either get a type error or not depending on the order - for example foo(42, 42u) might fail while foo(42u, 42) succeeds. It was definitely not decidable, at least not unless you mandate the unification order as part of the type system spec. I think that would have been nuts. Both IntLiteral and UintLiteral are now "flexible"; the uint one will reject non-int or signed int types and will prefer uint, but otherwise it's the same logic. This means that this will be valid: uint8 x = 5u; But this is still wrong: int x = 5u; To make this easy, I turned IntLiteral and UintLiteral (and IntLiteralType and UintLiteralType) into factory-built generic types (see createLiteral() and createLiteralType()). Because visitors use the constructor's declared name (GenericLiteral and GenericLiteralType in this case), it means that we can share a ton of code between the different literals. I love that ES6 lets you do that. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/CreateLiteral.js: Added. (createLiteral.GenericLiteral): (createLiteral.GenericLiteral.prototype.get value): (createLiteral.GenericLiteral.prototype.get isConstexpr): (createLiteral.GenericLiteral.prototype.toString): (createLiteral): * WebGPUShadingLanguageRI/CreateLiteralType.js: Added. (createLiteralType.GenericLiteralType): (createLiteralType.GenericLiteralType.prototype.get origin): (createLiteralType.GenericLiteralType.prototype.get value): (createLiteralType.GenericLiteralType.prototype.get isPrimitive): (createLiteralType.GenericLiteralType.prototype.get isUnifiable): (createLiteralType.GenericLiteralType.prototype.get isLiteral): (createLiteralType.GenericLiteralType.prototype.typeVariableUnify): (createLiteralType.GenericLiteralType.prototype.unifyImpl): (createLiteralType.GenericLiteralType.prototype.prepareToVerify): (createLiteralType.GenericLiteralType.prototype.verifyAsArgument): (createLiteralType.GenericLiteralType.prototype.verifyAsParameter): (createLiteralType.GenericLiteralType.prototype.conversionCost): (createLiteralType.GenericLiteralType.prototype.commitUnification): (createLiteralType.GenericLiteralType.prototype.toString): (createLiteralType): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitIntLiteral): Deleted. (Evaluator.prototype.visitUintLiteral): Deleted. * WebGPUShadingLanguageRI/IntLiteral.js: (let.IntLiteral.createLiteral.createType): (IntLiteral): Deleted. (IntLiteral.prototype.get value): Deleted. (IntLiteral.prototype.get isConstexpr): Deleted. (IntLiteral.prototype.toString): Deleted. * WebGPUShadingLanguageRI/IntLiteralType.js: (IntLiteralType): Deleted. (IntLiteralType.prototype.get origin): Deleted. (IntLiteralType.prototype.get value): Deleted. (IntLiteralType.prototype.get isPrimitive): Deleted. (IntLiteralType.prototype.get isUnifiable): Deleted. (IntLiteralType.prototype.typeVariableUnify): Deleted. (IntLiteralType.prototype.unifyImpl): Deleted. (IntLiteralType.prototype.verifyAsArgument): Deleted. (IntLiteralType.prototype.verifyAsParameter): Deleted. (IntLiteralType.prototype.conversionCost): Deleted. (IntLiteralType.prototype.commitUnification): Deleted. (IntLiteralType.prototype.toString): Deleted. * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/LiteralTypeChecker.js: (LiteralTypeChecker.prototype.visitIntLiteralType): Deleted. * WebGPUShadingLanguageRI/Node.js: (Node.prototype.prepareToVerify): (Node.prototype.commitUnification): (Node.prototype.get isLiteral): * WebGPUShadingLanguageRI/NullType.js: (NullType.prototype.get isLiteral): (NullType.prototype.toString): (NullType): * WebGPUShadingLanguageRI/Parse.js: (parseTerm): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitGenericLiteralType): (Rewriter.prototype.visitIntLiteral): Deleted. (Rewriter.prototype.visitIntLiteralType): Deleted. (Rewriter.prototype.visitUintLiteral): Deleted. (Rewriter.prototype.visitBoolLiteral): Deleted. * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (makeUint): (checkUint): (TEST_uintSimpleMath): (TEST_equality): (TEST_notEquality): (TEST_intLiteralGeneric): (TEST_intLiteralGenericWithProtocols): (TEST_uintLiteralGeneric): (TEST_uintLiteralGenericWithProtocols): (TEST_intLiteralGenericSpecific): (TEST_twoIntLiterals): (TEST_unifyDifferentLiterals): (makeUInt): Deleted. (checkUInt): Deleted. * WebGPUShadingLanguageRI/Type.js: * WebGPUShadingLanguageRI/UintLiteral.js: (let.UintLiteral.createLiteral.createType): (UintLiteral): Deleted. (UintLiteral.prototype.get value): Deleted. (UintLiteral.prototype.get isConstexpr): Deleted. (UintLiteral.prototype.toString): Deleted. * WebGPUShadingLanguageRI/UintLiteralType.js: Added. (let.UintLiteralType.createLiteralType.verifyAsArgument): * WebGPUShadingLanguageRI/UnificationContext.js: (UnificationContext.prototype.verify): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): 2017-09-14 Ryan Haddad Unreviewed, rolling out r221868. Rolling out this change while we investigate test262 failures. Reverted changeset: "Turn on exception scope verification for JSC tests." https://bugs.webkit.org/show_bug.cgi?id=162351 http://trac.webkit.org/changeset/221868 2017-09-14 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's drawHeader, drawFooter, headerHeight, and footerHeight https://bugs.webkit.org/show_bug.cgi?id=176889 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[PrintDelegate _webView:printFrame:]): (-[PrintDelegate _webViewHeaderHeight:]): (-[PrintDelegate _webViewFooterHeight:]): (-[PrintDelegate _webView:drawHeaderInRect:forPageWithTitle:URL:]): (-[PrintDelegate _webView:drawFooterInRect:forPageWithTitle:URL:]): (callbacksEqual): (TEST): * TestWebKitAPI/cocoa/TestWKWebView.h: * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView hostWindow]): 2017-09-14 Carlos Alberto Lopez Perez [GTK] Add a switch to start the mini-browser in full-screen mode https://bugs.webkit.org/show_bug.cgi?id=176904 Reviewed by Carlos Garcia Campos. * MiniBrowser/gtk/main.c: (main): 2017-09-14 Filip Pizlo Unreviewed, fix a typo that was preventing a test from running. * WebGPUShadingLanguageRI/Test.js: 2017-09-14 Carlos Garcia Campos [GTK] Fail to build using internal jhbuild if libgtk3-dev is not installed in the system https://bugs.webkit.org/show_bug.cgi?id=176778 Reviewed by Carlos Alberto Lopez Perez. We are building gtk+ in the jhbuild with introspection disabled, but Gtk-3.gir is required to build the WebKitGTK+ introspection. Also, if wayland-protocols is not installed, gtk+ is built without the wayland backend and it's no possible to enable the wayland target in WebKitGTK+ either. * gtk/jhbuild.modules: Do not disable introspection when building gtk+ and add wayland-protocols as a dependency. 2017-09-14 Maureen Daum Introduce the option to mark an HTML element as having AutoFill available. https://bugs.webkit.org/show_bug.cgi?id=176710 Reviewed by Alex Christensen. Add an API test that verifies after we mark a field as having AutoFill available, Accessibility also considers it to have AutoFill available. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add AutoFillAvailable.mm * TestWebKitAPI/Tests/WebKitCocoa/AutoFillAvailable.mm: Added. Create an input element, mark it as having AutoFill available, then focus it so that we can get the accessibility information for it. Ask accessibility whether it considers the field to have AutoFill available, and pick the alert message based on that. (-[AutoFillAvailable webProcessPlugIn:didCreateBrowserContextController:]): * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST): (-[AutoFillAvailableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Verify that we get the alert message indicating that accessibility indeed considers the input element as having AutoFill available after we explicitly marked it as so. 2017-09-13 John Wilander Introduce Storage Access API (document parts) as an experimental feature https://bugs.webkit.org/show_bug.cgi?id=175759 Reviewed by Alex Christensen. * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): Turns the feature on for tests. 2017-09-13 Matt Lewis Unreviewed, rolling out r221976. The test introduced was flaky from point of addition. Reverted changeset: "Introduce Storage Access API (document parts) as an experimental feature" https://bugs.webkit.org/show_bug.cgi?id=175759 http://trac.webkit.org/changeset/221976 2017-09-13 Lucas Forschler Compress spindumps on client side before packaging into layout test results zip (mac & ios) https://bugs.webkit.org/show_bug.cgi?id=176853 Reviewed by Aakash Jain. * BuildSlaveSupport/test-result-archive: (main): (gzip_file): use gzip to compress a file, removing original (compress_spindumps): find and compress spindumps matching a filter (archive_test_results): refactor to snake_case (archiveTestResults): Deleted. 2017-09-13 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's setIsResizable, getWindowFrame, and setWindowFrame https://bugs.webkit.org/show_bug.cgi?id=176857 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[ModalDelegate _webViewRunModal:]): (-[ModalDelegate _webView:setResizable:]): (-[WindowFrameDelegate _webView:setWindowFrame:]): (-[WindowFrameDelegate _webView:getWindowFrameWithCompletionHandler:]): (-[WindowFrameDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): (-[ResizableDelegate _webView:setResizable:]): (-[ResizableDelegate _webView:getIsResizableWithCompletionHandler:]): (-[ResizableDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): 2017-09-13 Youenn Fablet Add a lambda-based map for Vectors https://bugs.webkit.org/show_bug.cgi?id=176487 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): 2017-09-13 John Wilander Introduce Storage Access API (document parts) as an experimental feature https://bugs.webkit.org/show_bug.cgi?id=175759 Reviewed by Alex Christensen. * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): Turns the feature on for tests. 2017-09-13 Per Arne Vollan [Win] DRT option --gc-between-tests is not implemented. https://bugs.webkit.org/show_bug.cgi?id=176849 Reviewed by Brent Fulgham. Perform GC after the test if this option is enabled. This patch also set the initial value of the flag to true, in order to catch GC related issues in the test in which they occur. * DumpRenderTree/win/DumpRenderTree.cpp: (runTest): 2017-09-12 Wenson Hsieh [iOS DnD] Support DataTransfer.getData and DataTransfer.setData when dragging or dropping https://bugs.webkit.org/show_bug.cgi?id=176672 Reviewed by Ryosuke Niwa. Adds new tests and tweaks existing DataInteractionTests to cover the tweaks made in this patch. SinglePlainTextURLTypeIdentifiers: Verify that inline presentation style is requested when dragging plaintext. SinglePlainTextWordTypeIdentifiers: Verify that inline presentation style is requested when dragging a link. ExternalSourceInlineTextToFileInput: Verify that an item provider marked as preferring inline presentation does not trigger file uploads by dragging a piece of inline text into a file input. CanStartDragOnDivWithDraggableAttribute: Verify that DataTransfer.setData and DataTransfer.getData work as expected by moving a draggable div. The test harness writes the id of the draggable div via the DataTransfer, and upon drop, reads the id back to figure out which element to append to the drop destination. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-09-12 Ryosuke Niwa Dragging & dropping a file creates an attachment element even when it's disabled https://bugs.webkit.org/show_bug.cgi?id=176769 Reviewed by Tim Horton. Added a webkit-test-runner flag to enable attachment element via runtime flag since this feature is now hidden behind a runtime-enabled flag which needs to be set at the time of global object initialization. * DumpRenderTree/TestOptions.h: (TestOptions): Added. * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (setWebPreferencesForTestOptions): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): (WTR::updateTestOptionsFromTestHeader): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateWebView): 2017-09-11 Filip Pizlo WSL should allow you to say "protocol Foo : Bar { ... }" https://bugs.webkit.org/show_bug.cgi?id=176238 Reviewed by Mylex Maxfield. This makes protocol "subtyping" work. It's not really subtyping. Protocol A inherits protocol B if every signature in B can be resolved against some signature in A. Also, you can explicitly subtype protocols using extends syntax ("protocol Foo : Bar, Baz { ... }"). Also makes the diagnostics when type variable constraints fail a _lot_ better. This will even tell you diagnostics about why a function didn't match when protocols are not inheriting, and then it will tell you why the inheritance failed. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/AutoWrapper.js: (AutoWrapper.prototype.visitTypeVariable): (AutoWrapper): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/ConstexprTypeParameter.js: (ConstexprTypeParameter.prototype.verifyAsArgument): (ConstexprTypeParameter.prototype.verifyAsParameter): * WebGPUShadingLanguageRI/FlattenProtocolExtends.js: Added. * WebGPUShadingLanguageRI/Func.js: (Func.prototype.get typeParametersForCallResolution): * WebGPUShadingLanguageRI/InferTypesForCall.js: (inferTypesForCall): * WebGPUShadingLanguageRI/IntLiteralType.js: (IntLiteralType.prototype.verifyAsArgument): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProtocolDecl): (NameResolver.prototype.visitProtocolRef): Deleted. (NameResolver.prototype.visitProtocolFuncDecl): Deleted. (NameResolver.prototype.visitTypeDef): Deleted. (NameResolver.prototype.visitStructType): Deleted. (NameResolver.prototype._resolveTypeArguments): Deleted. (NameResolver.prototype.visitTypeRef): Deleted. (NameResolver.prototype.visitReferenceType): Deleted. (NameResolver.prototype.visitVariableDecl): Deleted. (NameResolver.prototype.visitVariableRef): Deleted. (NameResolver.prototype.visitReturn): Deleted. (NameResolver.prototype.visitCallExpression): Deleted. * WebGPUShadingLanguageRI/Node.js: (Node.prototype.equals): * WebGPUShadingLanguageRI/NullType.js: (NullType.prototype.verifyAsArgument): * WebGPUShadingLanguageRI/Parse.js: (parseProtocolDecl): * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/ProtocolDecl.js: (ProtocolDecl): Deleted. (ProtocolDecl.prototype.add): Deleted. (ProtocolDecl.prototype.get signatures): Deleted. (ProtocolDecl.prototype.signaturesByName): Deleted. (ProtocolDecl.prototype.get typeVariable): Deleted. (ProtocolDecl.prototype.signaturesByNameWithTypeVariable): Deleted. (ProtocolDecl.prototype.inherits): Deleted. (ProtocolDecl.prototype.hasHeir): Deleted. (ProtocolDecl.prototype.toString): Deleted. * WebGPUShadingLanguageRI/ProtocolFuncDecl.js: (ProtocolFuncDecl.prototype.get typeParametersForCallResolution): (ProtocolFuncDecl): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitProtocolDecl): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_nullTypeVariableUnify): (TEST_simpleProtocolExtends): (TEST_protocolExtendsTwo): * WebGPUShadingLanguageRI/Type.js: (Type.prototype.inherits): * WebGPUShadingLanguageRI/TypeDefResolver.js: (TypeDefResolver.prototype.visitTypeRef): (TypeDefResolver): * WebGPUShadingLanguageRI/TypeVariable.js: (TypeVariable.prototype.inherits): (TypeVariable.prototype.verifyAsArgument): (TypeVariable.prototype.verifyAsParameter): * WebGPUShadingLanguageRI/UnificationContext.js: (UnificationContext.prototype.verify): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolDecl): (Visitor.prototype.visitTypeRef): Deleted. (Visitor.prototype.visitNativeType): Deleted. (Visitor.prototype.visitNativeTypeInstance): Deleted. (Visitor.prototype.visitTypeDef): Deleted. (Visitor.prototype.visitStructType): Deleted. (Visitor.prototype.visitTypeVariable): Deleted. (Visitor.prototype.visitConstexprTypeParameter): Deleted. (Visitor.prototype.visitField): Deleted. (Visitor.prototype.visitElementalType): Deleted. (Visitor.prototype.visitReferenceType): Deleted. (Visitor.prototype.visitPtrType): Deleted. (Visitor.prototype.visitArrayRefType): Deleted. (Visitor.prototype.visitArrayType): Deleted. (Visitor.prototype.visitVariableDecl): Deleted. (Visitor.prototype.visitAssignment): Deleted. (Visitor.prototype.visitDereferenceExpression): Deleted. (Visitor.prototype.visitDotExpression): Deleted. (Visitor.prototype.visitMakePtrExpression): Deleted. (Visitor.prototype.visitVariableRef): Deleted. (Visitor.prototype.visitIfStatement): Deleted. (Visitor.prototype.visitWhileLoop): Deleted. (Visitor.prototype.visitDoWhileLoop): Deleted. (Visitor.prototype.visitForLoop): Deleted. (Visitor.prototype.visitReturn): Deleted. (Visitor.prototype.visitContinue): Deleted. (Visitor.prototype.visitBreak): Deleted. (Visitor.prototype.visitIntLiteral): Deleted. (Visitor.prototype.visitIntLiteralType): Deleted. (Visitor.prototype.visitUintLiteral): Deleted. (Visitor.prototype.visitNullLiteral): Deleted. (Visitor.prototype.visitBoolLiteral): Deleted. (Visitor.prototype.visitNullType): Deleted. (Visitor.prototype.visitCallExpression): Deleted. (Visitor.prototype.visitLogicalNot): Deleted. (Visitor.prototype.visitFunctionLikeBlock): Deleted. * WebGPUShadingLanguageRI/WrapChecker.js: (WrapChecker.prototype.visitTypeVariable): (WrapChecker): 2017-09-12 Carlos Garcia Campos Remove duplicated test results from LayoutTest platform directories https://bugs.webkit.org/show_bug.cgi?id=176686 Reviewed by Michael Catanzaro. After several rebaselines we might end up with the same result in the platform directory than the common result without noticing it. This patch adds a script to detect those cases and remove all duplicated results from the repository. * Scripts/check-for-duplicated-platform-test-results: Added. (check_duplicate): (check_duplicate.sha1): (platform_list): 2017-09-12 Carlos Alberto Lopez Perez The EWS build system is forcing a non UTF-8 locale and breaks meson. https://bugs.webkit.org/show_bug.cgi?id=176761 Reviewed by Michael Catanzaro. On 2011 in order to disable GCC smartquotes (UTF-8 pretty quotes) that were causing trouble with the commit-queue server, the tooling for the EWS bots started to force an LC_ALL=C locale. This was needed back then apparently because the commit-queue server was unable to handle properly UTF-8 text. 6 years forward and none of the ports that commit-queue tests before landing a patch use GCC, but Clang. So this should not be an issue anymore. Forcing a non UTF-8 locale breaks the Meson build system (that the GTK/WPE ports use for some dependencies of its JHBuild dependencies local build system). It has also the potential to break things in subtle ways that are hard to debug and detect. So better stop doing this. This patch also changes TERM=none to TERM=dumb that is the proper way to disable VT100 codes (see bug 127922). * Scripts/webkitpy/common/system/environment.py: (Environment.to_dictionary): (Environment.disable_jhbuild_VT100_output): * Scripts/webkitpy/common/system/environment_unittest.py: (EnvironmentTest.test_disable_jhbuild_VT100_output): * Scripts/webkitpy/port/base.py: (Port._build_driver): (Port._build_image_diff): * Scripts/webkitpy/port/port_testcase.py: (PortTestCase.test_build_driver): * Scripts/webkitpy/tool/commands/download_unittest.py: * Scripts/webkitpy/tool/steps/build.py: (Build.build): * Scripts/webkitpy/tool/steps/steps_unittest.py: 2017-09-12 Michael Catanzaro [WPE][GTK] Run tests with G_DEBUG=fatal-criticals https://bugs.webkit.org/show_bug.cgi?id=176755 Reviewed by Carlos Garcia Campos. * Scripts/webkitpy/port/gtk.py: (GtkPort.setup_environ_for_server): * Scripts/webkitpy/port/wpe.py: (WPEPort.setup_environ_for_server): 2017-09-12 Alex Christensen Fix build after r221922. https://bugs.webkit.org/show_bug.cgi?id=176728 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[ModalDelegate _webViewRunModal:]): (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (TEST): svn-apply inserted the test too early in the file :( Shift it down to where all the used static variables are declared. 2017-09-12 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's runModal https://bugs.webkit.org/show_bug.cgi?id=176728 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[ModalDelegate _webViewRunModal:]): (-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (TEST): 2017-09-12 Daniel Bates REGRESSION (r215784): The title of right-to-left pages are empty https://bugs.webkit.org/show_bug.cgi?id=176746 Reviewed by Brent Fulgham. Add unit test to ensure we do not regress StringWithDirection.truncateFromEnd(). * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp: Added. (TestWebKitAPI::TEST): 2017-09-12 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForNotificationPermissionRequest https://bugs.webkit.org/show_bug.cgi?id=176768 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[NotificationDelegate initWithAllowNotifications:]): (-[NotificationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (-[NotificationDelegate _webView:requestNotificationPermissionForSecurityOrigin:decisionHandler:]): (TEST): 2017-09-12 Brent Fulgham Show punycode to user if a URL mixes Armenian Seh or Vo with other scripts https://bugs.webkit.org/show_bug.cgi?id=176578 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm: (TestWebKitAPI::TEST): 2017-09-12 Carlos Garcia Campos [Freetype] Doesn't support coloured fonts https://bugs.webkit.org/show_bug.cgi?id=156579 Reviewed by Michael Catanzaro. Bump webkitgtk-test-fonts to 0.0.6 version that includes the EmijoOne font. * gtk/jhbuild.modules: * wpe/jhbuild.modules: 2017-09-11 Wenson Hsieh [iOS DnD] Support DataTransfer.setDragImage when starting a drag on iOS https://bugs.webkit.org/show_bug.cgi?id=176721 Reviewed by Tim Horton. In DataInteractionSimulator, ask the UIDragInteractionDelegate (WKContentView) for targeted drag previews after retrieving UIDragItems during a lift. Remember these previews after the drag and drop simulation is complete, so API tests (currently, just DragLiftPreviewDataTransferSetDragImage) can verify that the generated drag previews are as expected. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/DataTransfer-setDragImage.html: Added. Adds a new test harness containing 5 draggable elements, each generating a drag image using different codepaths. DragLiftPreviewDataTransferSetDragImage uses this page to check that the frame of the targeted drag preview in each scenario is as expected. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkCGRectIsEqualToCGRectWithLogging): (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator _resetSimulatedState]): (-[DataInteractionSimulator _advanceProgress]): (-[DataInteractionSimulator liftPreviews]): 2017-09-11 Tim Horton REGRESSION (r221272): WKWebView gets stuck zoomed in if the web process crashes https://bugs.webkit.org/show_bug.cgi?id=176767 Reviewed by Dan Bernstein. * TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm: (TEST): Add a test ensuring that override layout size persists through Web Content process crash. 2017-09-11 Wenson Hsieh [iOS WK2] Support tapping to add items to the current drag session in web content https://bugs.webkit.org/show_bug.cgi?id=176421 Reviewed by Tim Horton. Adds a new drag and drop test that begins a drag on a text selection, adds an image and a link, and then drops into a contenteditable area. This verifies that the text, link and image are inserted into the editable area upon drop. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-09-11 Lucas Forschler bisect-builds: add --list option https://bugs.webkit.org/show_bug.cgi?id=174836 Reviewed by Aakash Jain & Stephanie Lewis. * Scripts/bisect-builds: (parse_args): add --list option (minified_platforms): update supported platform list (add ios simulator) (print_list_and_exit): helper function to print list and exit 2017-09-11 Wenson Hsieh [iOS WK2] ExternalSourceDataTransferItemGetAsEntry tests produce inconsistent results on test automation bots https://bugs.webkit.org/show_bug.cgi?id=176736 Reviewed by Andy Estes and Megan Gardner. The test output dumped when dropping a file in DataTransferItem-getAsEntry.html should adhere to some deterministic order. Currently, this is not enforced, so on some systems, these tests fail due to expected test output being out of order. To fix this, simply have the test harness alphabetically sort the output before writing to the textarea. * TestWebKitAPI/Tests/WebKitCocoa/DataTransferItem-getAsEntry.html: * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-09-11 Ryosuke Niwa webkitbot should recognize commands even when colon is omitted https://bugs.webkit.org/show_bug.cgi?id=176680 Reviewed by Daniel Bates. Recognize the IRC command even when : and , were not present. Unfortunately, there is no unit test for this code at the moment. * Scripts/webkitpy/common/net/irc/ircbot.py: (IRCBot.on_pubmsg): 2017-09-11 Lucas Forschler bisect-builds doesn't work due to missing requests module https://bugs.webkit.org/show_bug.cgi?id=175709 Reviewed by Ryosuke Niwa. * Scripts/bisect-builds: use urllib2 instead of the requests module. (get_s3_location_for_revision): (main): 2017-09-11 Filip Pizlo WSL Substitution should probably wrap type variables of substituted types rather than just wrapping the whole type https://bugs.webkit.org/show_bug.cgi?id=176677 Reviewed by Mylex Maxfield. This adds a checker that verifies that all type references and variable references are wrapped. Then this fixes errors found by that checker by making Substitution auto-wrap replacements rather than manually wrapping the outer type (for types) and cloning (for values). * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/AutoWrapper.js: Added. (AutoWrapper.prototype.visitVariableRef): (AutoWrapper.prototype.visitTypeRef): (AutoWrapper.prototype.visitConstexprTypeParameter): (AutoWrapper.prototype.visitFuncParameter): (AutoWrapper.prototype.visitVariableDecl): (AutoWrapper.prototype.visitStructType): (AutoWrapper.prototype.visitNativeType): (AutoWrapper): * WebGPUShadingLanguageRI/CheckWrapped.js: (checkExpressionWrapped): (checkProgramWrapped): (checkWrapped): Deleted. * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/ExpressionFinder.js: Added. (ExpressionFinder): (ExpressionFinder.prototype.visitFunc): (ExpressionFinder.prototype.visitFuncParameter): (ExpressionFinder.prototype.visitConstexprTypeParameter): (ExpressionFinder.prototype.visitAssignment): (ExpressionFinder.prototype.visitCallExpression): (ExpressionFinder.prototype.visitReturn): (ExpressionFinder.prototype.visitWhileLoop): (ExpressionFinder.prototype.visitDoWhileLoop): (ExpressionFinder.prototype.visitIfStatement): (ExpressionFinder.prototype.visitForLoop): (ExpressionFinder.prototype.visitVariableDecl): * WebGPUShadingLanguageRI/NativeFuncInstance.js: (NativeFuncInstance): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.substituteToUnification): (Node): (Node.prototype.clone): Deleted. * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/StructLayoutBuilder.js: (StructLayoutBuilder.prototype.visitReferenceType): (StructLayoutBuilder.prototype.visitField): (StructLayoutBuilder): * WebGPUShadingLanguageRI/Substitution.js: (Substitution): (Substitution.prototype.visitTypeRef): (Substitution.prototype.visitVariableRef): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_chainConstexpr): (TEST_chainGeneric): (TEST_chainStruct): (TEST_chainStructInvalid): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitNativeTypeInstance): * WebGPUShadingLanguageRI/WrapChecker.js: (WrapChecker.prototype._foundUnwrapped.originString): (WrapChecker.prototype._foundUnwrapped): (WrapChecker): 2017-09-11 Ryan Haddad Fix multiple master.cfg unit test failures. https://bugs.webkit.org/show_bug.cgi?id=176745 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (TestFactory.__init__): Add missing ':'. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Update expected results for Windows and iOS build steps. 2017-09-11 Jonathan Bedard Older versions should adopt newer version's expectations on mac https://bugs.webkit.org/show_bug.cgi?id=176699 Reviewed by Alexey Proskuryakov. Before: mac-elcapitan-wk2 mac-elcapitan mac-wk2 mac wk2 After: mac-elcapitan-wk2 mac-elcapitan mac-sierra-wk2 mac-sierra mac-wk2 mac wk2 * Scripts/webkitpy/port/mac.py: (MacPort.default_baseline_search_path): Use VERSION_FALLBACK_ORDER to have old versions inherit expectations from newer versions. * Scripts/webkitpy/port/mac_unittest.py: (MacTest.test_layout_test_searchpath_with_apple_additions): Check new behavior with older versions inheriting expectations from newer versions. 2017-09-11 Ryan Haddad Skip JSC test wsl-tests.yaml/Test.js https://bugs.webkit.org/show_bug.cgi?id=176727 Unreviewed test gardening. * WebGPUShadingLanguageRI/wsl-tests.yaml: 2017-09-11 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's decidePolicyForGeolocationPermissionRequest https://bugs.webkit.org/show_bug.cgi?id=176642 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[GeolocationDelegate initWithAllowGeolocation:]): (-[GeolocationDelegate _webView:requestGeolocationPermissionForFrame:decisionHandler:]): (-[GeolocationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-09-11 Wenson Hsieh [iOS DnD] Elements in the DOM with the `draggable` attribute should be draggable https://bugs.webkit.org/show_bug.cgi?id=176664 Reviewed by Tim Horton. Adds a new API test checking that elements marked as drag sources via the `draggable` attribute can be dragged with a non-null drag preview. Additionally, refactor the drag and drop simulator to not plumb drag/drop interaction delegate calls through to the WKContentView via -_simulate*-prefixed testing SPI, but rather by grabbing the WKWebView's drag and drop interaction delegates (i.e. the WKContentView) and calling delegate methods directly. This avoids requiring boilerplate plumbing on WKWebView and WKContentView for each of the drag and drop delegate methods, so these have been removed from WKWebView and WKContentView. Additionally, renames MockDataOperationSession and MockDataInteractionSession to MockDragSession and MockDropSession, respectively, and adjusts their ivars on DataInteractionSimulator to match. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/custom-draggable-div.html: Added. Add a new test harness covering dragging and dropping elements with the draggable attribute, using DataTransfer API (setData and getData) as well. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[WKWebView dropInteractionDelegate]): (-[WKWebView dragInteractionDelegate]): (-[WKWebView dropInteraction]): (-[WKWebView dragInteraction]): Add testing utilities to ask a WKWebView for information about its drag/drop interactions and delegates. In this case, this will return the WKWebView's WKContentView. (-[DataInteractionSimulator _resetSimulatedState]): (-[DataInteractionSimulator simulateAllTouchesCanceled:]): (-[DataInteractionSimulator runFrom:to:additionalItemRequestLocations:]): (-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]): (-[DataInteractionSimulator _sendQueuedAdditionalItemRequest]): (-[DataInteractionSimulator _advanceProgress]): When beginning a drag session, ask the delegate for targeted lift previews and verify that these are non-null. This check would fail prior to the tweak in DragDropInteractionState in this patch. (-[DataInteractionSimulator _webView:showCustomSheetForElement:]): (-[MockDataOperationSession initWithProviders:location:window:allowMove:]): Deleted. (-[MockDataOperationSession session]): Deleted. (-[MockDataOperationSession isLocal]): Deleted. (-[MockDataOperationSession progress]): Deleted. (-[MockDataOperationSession setProgressIndicatorStyle:]): Deleted. (-[MockDataOperationSession progressIndicatorStyle]): Deleted. (-[MockDataOperationSession operationMask]): Deleted. (-[MockDataOperationSession localDragSession]): Deleted. (-[MockDataOperationSession hasItemsConformingToTypeIdentifier:]): Deleted. (-[MockDataOperationSession canCreateItemsOfClass:]): Deleted. (-[MockDataOperationSession loadObjectsOfClass:completion:]): Deleted. (-[MockDataInteractionSession initWithWindow:allowMove:]): Deleted. (-[MockDataInteractionSession localOperationMask]): Deleted. (-[MockDataInteractionSession externalOperationMask]): Deleted. Replace various places where we called -_simulate* methods on WKWebView with calls to the UIDragInteractionDelegate or UIDropInteractionDelegate (the WKContentView) instead. Also, adjust for some mechanical renaming of drag and drop sessions. (-[MockDataInteractionSession session]): Deleted. * TestWebKitAPI/ios/UIKitSPI.h: 2017-09-11 Joseph Pecoraro Make the WPT entry point for LayoutTests/http/wpt more discoverable https://bugs.webkit.org/show_bug.cgi?id=176494 Reviewed by Youenn Fablet. * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: (run_server): Output a tip for how to access the http/wpt tests. 2017-09-11 Mark Lam Turn on exception scope verification for JSC tests. https://bugs.webkit.org/show_bug.cgi?id=162351 Reviewed by Saam Barati. Added the option to --validateExceptionChecks=true option to BASE_OPTIONS in run-jsc-stress-tests. This turns on exception scope verification on JSC test runs (which currently does not include testapi). Some stats on time to run JSC stress and mozilla tests: 1. Release build w/o --validateExceptionChecks=true: real 16m22.544s, user 156m24.080s, sys 123m3.649s 2. Debug build w/o --validateExceptionChecks=true: real 78m34.206s, user 1661m57.008s, sys 73m21.177s 3. Debug build w/ --validateExceptionChecks=true: real 77m41.106s, user 1656m13.924s, sys 73m42.309s 4. Debug build w/ --validateExceptionChecks=true --dumpSimulatedThrows=true: real 92m56.918s, user 2012m56.441s, sys 75m14.174s The stats shows that (2) and (3) has effectively no time difference. Hence, the cost of enabling --validateExceptionChecks=true is not significant. It would be nice to enable --dumpSimulatedThrows=true as well, but (4) is about 21% slower than (3). To avoid making debug test runs a lot slower, we'll leave --dumpSimulatedThrows=true off. We can manually add that when we see a regression and need to debug the issue. Otherwise, we wont pay the price for it. * Scripts/run-jsc-stress-tests: 2017-09-11 Myles C. Maxfield WSL should support for loops https://bugs.webkit.org/show_bug.cgi?id=176682 Reviewed by Filip Pizlo. Follows the pattern of the existing infrastructure of while loops. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitForLoop): * WebGPUShadingLanguageRI/ForLoop.js: Copied from Tools/WebGPUShadingLanguageRI/LoopChecker.js. (ForLoop): (ForLoop.prototype.get origin): (ForLoop.prototype.get initialization): (ForLoop.prototype.get condition): (ForLoop.prototype.get increment): (ForLoop.prototype.get body): (ForLoop.prototype.toString): * WebGPUShadingLanguageRI/LoopChecker.js: (LoopChecker.prototype.visitForLoop): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitForLoop): * WebGPUShadingLanguageRI/Parse.js: (parseFor): * WebGPUShadingLanguageRI/ReturnChecker.js: (ReturnChecker.prototype._isBoolCastFromLiteralTrue): (ReturnChecker.prototype.visitWhileLoop): (ReturnChecker.prototype.visitDoWhileLoop): (ReturnChecker.prototype.visitForLoop): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitForLoop): (Rewriter): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_forLoop): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitForLoop): 2017-09-11 Robin Morisset Just added myself to the contributors.json file as a committer Unreviewed 2017-09-10 Filip Pizlo IntLiteral should prefer int32 during overload resolution https://bugs.webkit.org/show_bug.cgi?id=176675 Reviewed by Myles Maxfield. This makes intLiteralType prefer to resolve to int over other types. This also adds tests that if you pass intLiteral to T, then you can make it work by saying int(intLiteral). * WebGPUShadingLanguageRI/IntLiteralType.js: (IntLiteralType): (IntLiteralType.prototype.conversionCost): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.conversionCost): * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: (resolveOverloadImpl): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitIntLiteralType): * WebGPUShadingLanguageRI/Test.js: (TEST_intOverloadResolution): (TEST_intOverloadResolutionReverseOrder): (TEST_intOverloadResolutionGeneric): (TEST_intLiteralGeneric): * WebGPUShadingLanguageRI/UnificationContext.js: (UnificationContext.prototype.get conversionCost): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitIntLiteralType): 2017-09-10 Filip Pizlo WSL should be able to handle a simple constexpr type parameter https://bugs.webkit.org/show_bug.cgi?id=176676 Reviewed by Myles Maxfield. This adds a test that uses a constexpr type parameter, and then fixed enough bugs to get this to work. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallExpression.js: (CallExpression.prototype.resolve): * WebGPUShadingLanguageRI/CheckWrapped.js: Added. (checkWrapped): * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitCallExpression): (Evaluator): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.substituteToUnification): (Node.prototype.clone): (Node): * WebGPUShadingLanguageRI/Substitution.js: (Substitution): (Substitution.prototype.visitVariableRef): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_simpleConstexpr): * WebGPUShadingLanguageRI/WrapChecker.js: Added. (WrapChecker): (WrapChecker.prototype.visitVariableRef): (WrapChecker.prototype.visitTypeRef): (WrapChecker.prototype.visitIntLiteral): (WrapChecker.prototype._foundUnwrapped): (WrapChecker.visitConstexprTypeParameter): (WrapChecker.prototype.visitFuncParameter): (WrapChecker.prototype.visitVariableDecl): (WrapChecker.prototype.visitStructType): (WrapChecker.prototype.visitNativeType): 2017-09-11 Carlos Alberto Lopez Perez [WPE] Bump freetype version to 2.8.0 https://bugs.webkit.org/show_bug.cgi?id=176501 Reviewed by Michael Catanzaro. Bump freetype on WPE like r221670 did on GTK. * wpe/jhbuild.modules: * wpe/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Removed. 2017-09-10 Carlos Garcia Campos REGRESSION: [GTK] Generated HTML API documentation is missing descriptions https://bugs.webkit.org/show_bug.cgi?id=176667 Reviewed by Michael Catanzaro. This is happening since we moved the implementation files to glib dirs. The generate-gtkdoc script assumes that header and implementation files are always in the same directory. To reduce the input we pass to gtk-doc we ignore cpp files for which there isn't a public header. The code to do this check doesn't consider cpp files in a different directory than the header file. It also assumes that header and cpp files have the same filename except for the extension, which is true in all cases but WebKitWebView that we have two files WebKitWebView.cpp and WebKitWebViewGtk.cpp. * gtk/generate-gtkdoc: (files_to_ignore): Check also cpp files with the Gtk suffix. (files_to_ignore.add_file_if_exists): Check if a file with the given name exists in any of the source dirs. 2017-09-10 Myles C. Maxfield WSL should support while loops https://bugs.webkit.org/show_bug.cgi?id=176581 Reviewed by Filip Pizlo. There are a few interesting pieces to this patch: 1. Because the evaluator is just a node-based descent through the tree, the implementation of break and continue are just "throw". 2. The ReturnChecker now has to return a three-state enum because of nested blocks. The outer block cares about if the inner block has "break" as opposed to it having no returns nor breaks/continues. 3. ReturnChecker will treat "while (true)" the same as { }, but will not descend deeper for things like "while (3 == 3)". 4. This patch also adds a few more boolean conditional functions like operator<(). 5. I added another pass which makes sure there are no bare break/return keywords outside of loops. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Break.js: Copied from Tools/WebGPUShadingLanguageRI/CheckUnreachableCode.js. (Break): (Break.prototype.get origin): (Break.prototype.toString): * WebGPUShadingLanguageRI/CheckLoops.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js. (checkLoops): * WebGPUShadingLanguageRI/CheckReturns.js: (checkReturns): * WebGPUShadingLanguageRI/CheckUnreachableCode.js: (checkUnreachableCode): * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/Continue.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js. (Continue): (Continue.prototype.get origin): (Continue.prototype.toString): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitWhileLoop): (Evaluator.prototype.visitBreak): (Evaluator.prototype.visitContinue): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/LoopChecker.js: Copied from Tools/WebGPUShadingLanguageRI/ReturnChecker.js. (LoopChecker): (LoopChecker.prototype.visitFuncDef): (LoopChecker.prototype.visitWhileLoop): (LoopChecker.prototype.visitBreak): (LoopChecker.prototype.visitContinue): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitWhileLoop): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.visit): * WebGPUShadingLanguageRI/Parse.js: (parsePossibleRelationalInequality): (parseBreak): (parseContinue): (parseWhile): * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/ReturnChecker.js: (ReturnChecker): (ReturnChecker.prototype.visitFuncDef): (ReturnChecker.prototype.visitBlock): (ReturnChecker.prototype.visitIfStatement): (ReturnChecker.prototype.visitWhileLoop): (ReturnChecker.prototype.visitReturn): (ReturnChecker.prototype.visitBreak): (ReturnChecker.prototype.visitContinue): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitContinue): (Rewriter.prototype.visitBreak): (Rewriter.prototype.visitWhileLoop): (Rewriter): * WebGPUShadingLanguageRI/StandardLibraryPrologue.js: * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_returnIf): (TEST_simpleWhile): * WebGPUShadingLanguageRI/UnreachableCodeChecker.js: (UnreachableCodeChecker): (UnreachableCodeChecker.prototype.visitBlock): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitWhileLoop): (Visitor.prototype.visitContinue): (Visitor.prototype.visitBreak): * WebGPUShadingLanguageRI/WhileLoop.js: Copied from Tools/WebGPUShadingLanguageRI/CheckReturns.js. (WhileLoop): (WhileLoop.prototype.get origin): (WhileLoop.prototype.get conditional): (WhileLoop.prototype.get body): (WhileLoop.prototype.toString): 2017-09-07 Filip Pizlo WSL overload resolution should not be cascading https://bugs.webkit.org/show_bug.cgi?id=176333 Reviewed by Myles Maxfield. This removes the cascading nature of overload resolution that WSL used to have, and replaces it with something C++-like. If there are multiple overload candidates that match the callsite, then we resolve them against each other. Anytime a function cannot be resolved onto another function, it is removed, since this means that this function is in some way more general than the other one, and we are just looking for the most specific function. If this process ends with only one function being selected, then we succeed, else we fail. Also changed the syntax for defining generic casts to: operator Thingy(things) Also fixed parsing of cast expressions. It's now possible to say a cast expression in WSL. The removal of cascading causes some problems. For example, the following two operators in our standard library are ambiguous for bool(bool): operator T(T) operator bool(T) I think that what we really want is to say that the following operators are restricted to the standard library: operator T() operator T(T) It should not be possible to ever overload these. These changes are mostly tested by existing tests and the changes in the standard library, which has to be parsed for every test. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/ArrayRefType.js: (ArrayRefType.prototype.unifyImpl): * WebGPUShadingLanguageRI/CallExpression.js: (CallExpression): (CallExpression.prototype.get isCast): (CallExpression.prototype.get returnType): (CallExpression.prototype.resolve): (CallExpression.prototype.becomeCast): (CallExpression.prototype.setCastData): (CallExpression.prototype.toString): * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitLogicalNot): * WebGPUShadingLanguageRI/Func.js: (Func.prototype.get returnTypeForOverloadResolution): * WebGPUShadingLanguageRI/FuncDef.js: (FuncDef): * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique.FindTypeVariable.prototype.visitTypeVariable): (FuncInstantiator.prototype.getUnique.FindTypeVariable): (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression): (FuncInstantiator.prototype.getUnique.InstantiationSubstitution): * WebGPUShadingLanguageRI/FunctionLikeBlock.js: (FunctionLikeBlock.prototype.toString): (FunctionLikeBlock): * WebGPUShadingLanguageRI/InferTypesForCall.js: Added. (inferTypesForCall): * WebGPUShadingLanguageRI/Inline.js: (resolveInlinedFunction): * WebGPUShadingLanguageRI/Lexer.js: (Lexer): (Lexer.prototype.next): * WebGPUShadingLanguageRI/NameContext.js: (NameContext): (NameContext.prototype.mapFor): (NameContext.prototype.add): (NameContext.prototype.get let): (NameContext.prototype.Symbol.iterator): (NameContext.get currentStatement): Deleted. * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProgram): (NameResolver.prototype.determinePossibleOverloads): (NameResolver.prototype.visitProtocolFuncDecl): (NameResolver.prototype.visitCallExpression): (NameResolver): * WebGPUShadingLanguageRI/NativeFunc.js: (NativeFunc): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.visit): * WebGPUShadingLanguageRI/Parse.js: (parsePossiblePrefix): (parseFuncDecl): (parseNativeFunc): (parseNative): (parsePreferredFuncDef): (parse): * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/Program.js: (Program.prototype.resolveFuncOverload): Deleted. (Program.prototype.get nameContext): Deleted. * WebGPUShadingLanguageRI/ProtocolDecl.js: (ProtocolDecl.prototype.inherits): (ProtocolDecl.prototype.hasHeir): * WebGPUShadingLanguageRI/PtrType.js: (PtrType.prototype.unifyImpl): * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: (resolveOverloadImpl): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitProtocolFuncDecl): (Rewriter.prototype.processDerivedCallData): (Rewriter.prototype.visitCastExpression): Deleted. * WebGPUShadingLanguageRI/StandardLibrary.js: Added. (preferred.operator.T.T): (operator.T.Equatable.bool): * WebGPUShadingLanguageRI/StandardLibraryEpilogue.js: Removed. * WebGPUShadingLanguageRI/StandardLibraryPrologue.js: Removed. * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (doLex): (checkUInt): (checkBool): * WebGPUShadingLanguageRI/TypeRef.js: (TypeRef.prototype.toString): (TypeRef): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitCallExpression): (Visitor.prototype.visitCastExpression): Deleted. 2017-09-10 Brady Eidson Try to avoid creating the default WKWebsiteDataStore until its actually needed. and https://bugs.webkit.org/show_bug.cgi?id=176551 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: (TEST): 2017-09-10 Michael Catanzaro [GTK] Improve Ctrl+W and Ctrl+Q shortcuts in MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=176619 Reviewed by Carlos Garcia Campos. There are two different problems here. First, Ctrl+W is closing the entire window. That made sense when I implemented the shortcut a couple years ago, but now MiniBrowser supports tabs and it should really close only one single tab. Fix that. Next, the keyboard shortcuts are not using webkit_web_view_try_close() and so are bypassing onbeforeunload handlers, which are respected when closing with the mouse. Fix that too. * MiniBrowser/gtk/BrowserWindow.c: (browserWindowTryCloseCurrentWebView): (browserWindowTryClose): (browser_window_init): 2017-09-07 Myles C. Maxfield Add "if" statements to WSL https://bugs.webkit.org/show_bug.cgi?id=176294 Reviewed by Filip Pizlo. Rolling back in after skipping Test.js on debug. Fairly straightforward implementation. ReturnChecker only returns true iff there is an else block, and both the if body and the else body recursively return true. In order to accept both syntaxes: if (foo) bar; ... and ... if (foo) { bar; } This patch lets parseStatement() call parseBlock(). This means that the following is valid: int x = 7; if (foo) { int x = 8; // x is 8 here! } // x is 7 here! This production means that these blocks don't require "if" statements, so you can just have: int foo() { int x = 7; { int x = 8; // x is 8 here! } // x is 7 here! } However, this patch doesn't touch the following use-case: if (int x = bar()) { // use x here } * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitIfStatement): * WebGPUShadingLanguageRI/IfStatement.js: Copied from Tools/WebGPUShadingLanguageRI/TypeDef.js. (IfStatement): (IfStatement.prototype.get origin): (IfStatement.prototype.get conditional): (IfStatement.prototype.get body): (IfStatement.prototype.get elseBody): (IfStatement.prototype.toString): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitIfStatement): * WebGPUShadingLanguageRI/Parse.js: (parseTypeParameters): (parseIfStatement): (parseStatement): * WebGPUShadingLanguageRI/ReturnChecker.js: (ReturnChecker.prototype.visitIfStatement): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitIfStatement): (Rewriter): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_variableShadowing): (TEST_ifStatement): (TEST_ifElseStatement): (TEST_ifElseIfStatement): (TEST_ifElseIfElseStatement): (TEST_returnIf): (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted. * WebGPUShadingLanguageRI/TypeDef.js: (TypeDef.prototype.toString): (TypeDef): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitIfStatement): 2017-09-09 Michael Catanzaro [GTK] Unreviewed, fix typo forwad -> forward * MiniBrowser/gtk/BrowserWindow.c: (browserWindowUpdateNavigationActions): (backForwardlistChanged): (browserWindowSwitchTab): (backForwadlistChanged): Deleted. 2017-09-09 Ryan Haddad Unreviewed, rolling out r221801. This change introduced a webkitpy test failure. Reverted changeset: "bisect-builds doesn't work due to missing requests module" https://bugs.webkit.org/show_bug.cgi?id=175709 http://trac.webkit.org/changeset/221801 2017-09-09 Ryan Haddad Unreviewed, rolling out r221776. This change caused wsl-tests.yaml/Test.js to time out on Debug JSC bots. Reverted changeset: "Add "if" statements to WSL" https://bugs.webkit.org/show_bug.cgi?id=176294 http://trac.webkit.org/changeset/221776 2017-09-09 Michael Catanzaro MiniBrowser closes tab instead of window on close signal https://bugs.webkit.org/show_bug.cgi?id=176587 Reviewed by Carlos Garcia Campos. This has been broken since we added support for multiple tabs. We need to run try_close for every open tab, not just the current one. If there are no onbeforeonload handlers then all tabs will close; if there are some, then they'll be respected, but the remaining tabs will be closed. Note that we cannot simply iterate through the tabs of the GtkNotebook, as we'd be deleting tabs as we go, so save all the tabs into a separate list and then try to close each in turn. * MiniBrowser/gtk/BrowserWindow.c: (browserWindowTryClose): (browserWindowDeleteEvent): 2017-09-09 Zan Dobersek Unreviewed WPE build fix. * TestWebKitAPI/PlatformWPE.cmake: Link WebCore archives into the TestWebCore binary as a group. 2017-09-08 Lucas Forschler bisect-builds doesn't work due to missing requests module https://bugs.webkit.org/show_bug.cgi?id=175709 Reviewed by Ryosuke Niwa. * Scripts/bisect-builds: update import to webkitpy.thirdparty.autoinstalled * Scripts/webkitpy/thirdparty/__init__.py: add logic to install requests module. (AutoinstallImportHook.find_module): (AutoinstallImportHook): (AutoinstallImportHook._install_requests): * Scripts/webkitpy/thirdparty/__init___unittest.py: (ThirdpartyTest.test_imports): 2017-09-08 Lucas Forschler Test commit to verify trac sync is working. 2017-09-08 Lucas Forschler Test commit to verify git sync is working. 2017-09-08 Lucas Forschler bisect-builds should not print out extracting command https://bugs.webkit.org/show_bug.cgi?id=175632 Reviewed by Alexey Proskuryakov. * Scripts/bisect-builds: (extract_archive): 2017-09-07 Joseph Pecoraro WebKit should claim that it can show responses for a broader range of JSON MIMETypes https://bugs.webkit.org/show_bug.cgi?id=176252 Reviewed by Ryosuke Niwa. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm: Added. (-[WKNavigationResponseTestNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]): (-[WKNavigationResponseTestNavigationDelegate webView:didCommitNavigation:]): (-[WKNavigationResponseTestSchemeHandler webView:startURLSchemeTask:]): (-[WKNavigationResponseTestSchemeHandler webView:stopURLSchemeTask:]): (TEST): Test for canShowMIMEType with multiple JSON mime types and a garbage mime type. Previously canShowMIMEType would have been YES for "application/json" but NO for "application/vnd.api+json". Now it shows YES for both. * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/PlatformWPE.cmake: * TestWebKitAPI/PlatformWin.cmake: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/MIMETypeRegistry.cpp: Added. (TestWebKitAPI::TEST): Tests for MIMETypeRegistry's dynamic JSON mime type detection. 2017-09-07 Matthew Stewart Add Live PLT implemented with WebDriver https://bugs.webkit.org/show_bug.cgi?id=176436 Reviewed by Stephanie Lewis. Adds a new PLT that runs on live websites. * Scripts/run-webdriver-plt.py: Added. (parse_args): (start): (make_suites): (main): * Scripts/webkitpy/webdriver_plt/__init__.py: Added. * Scripts/webkitpy/webdriver_plt/liveplt.py: Added. (PageLoadTest): (PageLoadTest.__init__): (PageLoadTest.start): (PageLoadTest.run_suite): (PageLoadTest._get_driver_for_browser): (PageLoadTest._setup_browser_window): (PageLoadTest.run_one_test): (PageLoadTest.get_results): * Scripts/webkitpy/webdriver_plt/pltresults.py: Added. (PLTResults): (PLTResults.__init__): (PLTResults.__add__): (PLTResults.add_timing_result): (PLTResults.mean): (PLTResults.geometric_mean): (PLTResults.mean_coef_variance): (PLTResults.print_results): (PLTResults.print_url_results): (PLTResults._format_time): * Scripts/webkitpy/webdriver_plt/suites/__init__.py: Added. * Scripts/webkitpy/webdriver_plt/suites/arabic.suite: Added. * Scripts/webkitpy/webdriver_plt/suites/cjk.suite: Added. * Scripts/webkitpy/webdriver_plt/suites/news.suite: Added. * Scripts/webkitpy/webdriver_plt/suites/search.suite: Added. * Scripts/webkitpy/webdriver_plt/suites/shopping.suite: Added. * Scripts/webkitpy/webdriver_plt/suites/social.suite: Added. * Scripts/webkitpy/webdriver_plt/suites/suite.py: Added. (Suite): (Suite.__init__): (Suite.get_available_suites): * Scripts/webkitpy/webdriver_plt/urlresults.py: Added. (URLResults): (URLResults.__init__): (URLResults.__add__): (URLResults.mean): (URLResults.coef_variance): (URLResults.print_results): (URLResults._format_time): 2017-09-07 Myles C. Maxfield Add "if" statements to WSL https://bugs.webkit.org/show_bug.cgi?id=176294 Reviewed by Filip Pizlo. Fairly straightforward implementation. ReturnChecker only returns true iff there is an else block, and both the if body and the else body recursively return true. In order to accept both syntaxes: if (foo) bar; ... and ... if (foo) { bar; } This patch lets parseStatement() call parseBlock(). This means that the following is valid: int x = 7; if (foo) { int x = 8; // x is 8 here! } // x is 7 here! This production means that these blocks don't require "if" statements, so you can just have: int foo() { int x = 7; { int x = 8; // x is 8 here! } // x is 7 here! } However, this patch doesn't touch the following use-case: if (int x = bar()) { // use x here } * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitIfStatement): * WebGPUShadingLanguageRI/IfStatement.js: Copied from Tools/WebGPUShadingLanguageRI/TypeDef.js. (IfStatement): (IfStatement.prototype.get origin): (IfStatement.prototype.get conditional): (IfStatement.prototype.get body): (IfStatement.prototype.get elseBody): (IfStatement.prototype.toString): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitIfStatement): * WebGPUShadingLanguageRI/Parse.js: (parseTypeParameters): (parseIfStatement): (parseStatement): * WebGPUShadingLanguageRI/ReturnChecker.js: (ReturnChecker.prototype.visitIfStatement): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitIfStatement): (Rewriter): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_variableShadowing): (TEST_ifStatement): (TEST_ifElseStatement): (TEST_ifElseIfStatement): (TEST_ifElseIfElseStatement): (TEST_returnIf): (TEST_protocolMonoPolySigDoublePolyDefExplicit): Deleted. * WebGPUShadingLanguageRI/TypeDef.js: (TypeDef.prototype.toString): (TypeDef): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitIfStatement): 2017-09-07 Lucas Forschler Test commit after server upgrade from subversion 1.9.5 to 1.9.7 2017-09-07 Chris Dumez [WK2] Add C API to retrieve the originating page of a WKDownload https://bugs.webkit.org/show_bug.cgi?id=176557 Reviewed by Alex Christensen. Add layout test coverage for both the ObjC and C API. * TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm: (TestWebKitAPI::decideDestinationWithSuggestedFilename): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (-[RedirectedDownloadDelegate _downloadDidStart:]): (TEST): 2017-09-07 Filip Pizlo WSL Node.prototype.visit should probably do memoization https://bugs.webkit.org/show_bug.cgi?id=176286 Reviewed by Mark Lam. Visitors can sometimes revisit the same thing. For example, we may visit a FuncDef because it belongs to Program and we may visit it again because a CallExpression resolved to it. That's just plain silly. Our tests don't currently do this, so it's not a performance problem, yet. Also, we usually avoid that kind of repetitive visiting inside the visitor implementations. But as far as I can tell, this is an emergent property rather than a deliberate design. This change just makes the policy super explicit. If you visit something more than once with the same visitor, you get the same answer back. This is achieved by means of a memo table inside each visitor. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/FuncInstantiator.js: * WebGPUShadingLanguageRI/Node.js: (Node.prototype.visit): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Visitor.js: (Visitor): * WebGPUShadingLanguageRI/VisitorBase.js: Added. (VisitorBase): 2017-09-07 Wenson Hsieh [Directory Upload] Extend drag and drop support to iOS https://bugs.webkit.org/show_bug.cgi?id=176492 Reviewed by Tim Horton. Adds two new iOS drag and drop unit tests, which both exercise the DataTransferItem.webKitGetAsEntry codepath upon drop. (...)GetFolderAsEntry creates a new folder in the temporary directory and uses it to generate an item provider. This item provider is then dropped over a custom drop handling element, which writes information about the exposed FileSystemEntries into a textarea. (...)ExternalSourceDataTransferItemGetPlainTextFileAsEntry does something similar, except that it only drops a plain text file instead. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/DataTransferItem-getAsEntry.html: Added. Introduce a new test page that dumps information about DataTransferItems' file system entries upon drop. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (runTestWithTemporaryTextFile): (runTestWithTemporaryFolder): Introduce helpers to set up and tear down temporary files and folders over the duration of a test. (TestWebKitAPI::setUpTestWebViewForDataTransferItems): (TestWebKitAPI::TEST): 2017-09-07 Filip Pizlo WSL should check recursion https://bugs.webkit.org/show_bug.cgi?id=176553 Reviewed by Michael Saboff and Mark Lam. This adds a recursion checker. Previously, we would only check for recursion during inlining, but that generally only happens when we call the function. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CheckRecursion.js: Added. (checkRecursion): * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/RecursionChecker.js: Added. (RecursionChecker): (RecursionChecker.prototype.visitFuncDef): (RecursionChecker.prototype.visitCallExpression): * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (TEST_simpleRecursion): 2017-09-07 Chris Dumez [WK2] Notify client when downloads are redirected https://bugs.webkit.org/show_bug.cgi?id=176481 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (-[UIDownloadAsFileTestDelegate _webView:contextMenu:forElement:]): (-[RedirectedDownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]): (-[RedirectedDownloadDelegate _download:didReceiveServerRedirectToURL:]): (-[RedirectedDownloadDelegate _downloadDidFinish:]): (TEST): Add API test coverage. * WebKitTestRunner/TestController.cpp: (WTR::TestController::createWebViewWithOptions): (WTR::TestController::downloadDidReceiveServerRedirectToURL): * WebKitTestRunner/TestController.h: Add layout test infrastructure. 2017-09-07 Per Arne Vollan [Win] fast/canvas/2d.getPath.modification.html is failing. https://bugs.webkit.org/show_bug.cgi?id=176534 Reviewed by Alex Christensen. We need to enable Inspector additions at runtime in order to expose the getPath function. * DumpRenderTree/win/DumpRenderTree.cpp: (resetWebPreferencesToConsistentValues): 2017-09-07 Filip Pizlo WSL tests should run in run-javascriptcore-tests https://bugs.webkit.org/show_bug.cgi?id=176550 Reviewed by Keith Miller. * Scripts/run-javascriptcore-tests: (runJSCStressTests): * WebGPUShadingLanguageRI/wsl-tests.yaml: Added. 2017-09-07 Lucas Forschler bisect-builds started failing with invalid json https://bugs.webkit.org/show_bug.cgi?id=176478 Once we hit 1000 items in our dynamoDB, we ran into an upper limit on the AWS API Gateway looping mechanism. This prevented us from doing a body mapping template to reformat the json. This fix is to simply return the raw json, and adjust the json parsing in our code. The AWS rest API has been fixed, and updated to v2. This change is for the script which operates against the endpoint. Reviewed by Aakash Jain. * Scripts/bisect-builds: (get_sorted_revisions): 2017-09-07 Filip Pizlo [WSL] Rationalize how protocol inheritance deals with type parameters https://bugs.webkit.org/show_bug.cgi?id=176334 Reviewed by Mark Lam. This adds a bunch of tests for structs, protocols, and functions interacting in interesting ways. The most complex of these tests triggers the case where the protocol contains a function with one type parameter and the real function has more than one. This should give a WTypeError, and now it does. * WebGPUShadingLanguageRI/ProtocolDecl.js: (ProtocolDecl.prototype.hasHeir): Fix the handling of a mismatch of number of type parameters by actually passing the type parameters and then correctly handling the error. * WebGPUShadingLanguageRI/Test.js: Add a bunch of tests for this case and a lot of other protocol cases. (TEST_protocolMonoSigPolyDef): (TEST_protocolPolySigPolyDef): (TEST_protocolDoublePolySigDoublePolyDef): (TEST_protocolDoublePolySigDoublePolyDefExplicit): (TEST_protocolMonoPolySigDoublePolyDefExplicit): * WebGPUShadingLanguageRI/TypeVariable.js: (TypeVariable.prototype.get origin): This wasn't implemented before, which made error reporting harder. 2017-09-07 Per Arne Vollan [Win] Dashboard test is failing. https://bugs.webkit.org/show_bug.cgi?id=176527 Reviewed by Brent Fulgham. Skip test on Windows since WebKitTestRunner is required, but not built on Windows. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (TestFactory.__init__): 2017-09-07 Adrian Perez de Castro [WPE][CMake] Add "dist" and "distcheck" targets https://bugs.webkit.org/show_bug.cgi?id=176448 Reviewed by Carlos Garcia Campos. Add "dist" and "distcheck" CMake targets, which create release tarballs. These are available only when configuring with -DDEVELOPER_MODE=TRUE. * wpe/manifest.txt.in: Added. 2017-09-07 Per Arne Vollan [Win] Enable DatatransferItems in DRT. https://bugs.webkit.org/show_bug.cgi?id=176424 Reviewed by Brent Fulgham. * DumpRenderTree/win/DumpRenderTree.cpp: (resetWebPreferencesToConsistentValues): 2017-09-07 Carlos Garcia Campos [GTK] Bump libxml2 version to 1.9.5 https://bugs.webkit.org/show_bug.cgi?id=176502 Reviewed by Carlos Alberto Lopez Perez. It has been released very recently, but it fixes the issues that prevented us from upgrading to 1.9.4. * gtk/jhbuild.modules: 2017-09-06 Joseph Pecoraro Remove new-run-webkit-httpd as it appears to be old https://bugs.webkit.org/show_bug.cgi?id=176493 Reviewed by Alexey Proskuryakov. * Scripts/new-run-webkit-httpd: Removed. 2017-09-06 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's pageDidScroll https://bugs.webkit.org/show_bug.cgi?id=176482 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[DidScrollDelegate _webViewDidScroll:]): (TEST): 2017-09-06 Eric Carlson Require LoggingHelper overrides to provide identifier https://bugs.webkit.org/show_bug.cgi?id=176477 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::TEST_F): 2017-09-06 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's pinnedStateDidChange https://bugs.webkit.org/show_bug.cgi?id=176474 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]): (TEST): 2017-09-06 Alex Christensen Unreviewed, rolling out r221694. broke build Reverted changeset: "Add WKUIDelegatePrivate equivalent of WKPageUIClient's pinnedStateDidChange" https://bugs.webkit.org/show_bug.cgi?id=176474 http://trac.webkit.org/changeset/221694 2017-09-06 Per Arne Vollan [Win] test-webkitpy test timeout_context_unittest is failing. https://bugs.webkit.org/show_bug.cgi?id=176471 Reviewed by Brent Fulgham. This assert failure is possibly caused by different time resolution on various platforms. * Scripts/webkitpy/common/timeout_context_unittest.py: (TimeoutContextTests.test_timeout_data): 2017-09-06 Aakash Jain status-bubbles turn orange after checking relevance of patch https://bugs.webkit.org/show_bug.cgi?id=176457 Reviewed by Alexey Proskuryakov. * QueueStatusServer/handlers/statusbubble.py: Added "Checked relevance of patch" as a progress_statuses. 2017-09-06 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's pinnedStateDidChange https://bugs.webkit.org/show_bug.cgi?id=176474 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]): (TEST): 2017-09-06 Filip Pizlo WSL: Inliner doesn't allow double-negation https://bugs.webkit.org/show_bug.cgi?id=176440 Reviewed by Mylex Maxfield. The problem was that we were visiting the operands to calls while inside doVisit. This is too strict since it rejects nested calls like foo(foo(x)). The solution is to visit the operands to calls before entering doVisit. This also fixes some other issues in the parser that made the Inliner's error really strange. * WebGPUShadingLanguageRI/Func.js: (Func): * WebGPUShadingLanguageRI/Inliner.js: (Inliner.prototype.visitCallExpression): (Inliner): * WebGPUShadingLanguageRI/Parse.js: (parseOperatorFuncDefValues): (parseNonOperatorFuncDefValues): (parseGenericFuncDefValues): (parseFuncDecl): * WebGPUShadingLanguageRI/Test.js: * WebGPUShadingLanguageRI/VisitingSet.js: (VisitingSet.prototype.doVisit): (VisitingSet): 2017-09-06 Myles C. Maxfield WSL should support the bool type https://bugs.webkit.org/show_bug.cgi?id=176285 Reviewed by Filip Pizlo. I forgot to commit a couple files. * WebGPUShadingLanguageRI/StandardLibraryEpilogue.js: Added. (const.standardLibraryEpilogue.operator.bool.T.Equatable): * WebGPUShadingLanguageRI/StandardLibraryPrologue.js: Added. (operator.T.T): 2017-09-06 Myles C. Maxfield WSL should correctly handle the interaction between casting operators and complex types https://bugs.webkit.org/show_bug.cgi?id=176316 Reviewed by Filip Pizlo. This allows the standard library to include all identity cast operators for all exsting and yet-to-exist types. The standard library now has a function with the signature: operator T<>(T). This means "for all T, define a cast operator from T to T<>." The duplicate <>s lets us say things like operator OutputVector(InputVector x). For testing, this patch also adds the ability to cast an arbitrary Equatable type to bool, by comparing the value to the default value for that type. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CastExpression.js: Copied from Tools/WebGPUShadingLanguageRI/NativeFuncInstance.js. (CastExpression): (CastExpression.prototype.get functionName): (CastExpression.prototype.get returnType): (CastExpression.prototype.toString): * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/Func.js: (Func.prototype.toDeclString): * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc): (FuncInstantiator.prototype.getUnique.Instantiate): (FuncInstantiator.prototype.getUnique): (FuncInstantiator): * WebGPUShadingLanguageRI/Inliner.js: (Inliner.prototype.visitCastExpression): (Inliner): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/NativeFunc.js: * WebGPUShadingLanguageRI/NativeFuncInstance.js: (NativeFuncInstance): * WebGPUShadingLanguageRI/Parse.js: (parsePossiblePrefix): (parseFuncDecl): (parseOperatorFuncDefValues): Deleted. (parseNonOperatorFuncDefValues): Deleted. (parseGenericFuncDefValues): Deleted. * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/Program.js: (Program.prototype.resolveFuncOverload): * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: (resolveOverloadImpl): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.processDerivedCallData): (Rewriter.prototype.visitCastExpression): (Rewriter.prototype.visitCallExpression): * WebGPUShadingLanguageRI/StandardLibrary.js: Removed. * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: * WebGPUShadingLanguageRI/TypeDefResolver.js: (TypeDefResolver): (TypeDefResolver.prototype.visitFuncDef): Deleted. * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitCastExpression): 2017-09-06 Daniel Bates Copy WebKit Permalink may generate wrong URL with SVN checkout https://bugs.webkit.org/show_bug.cgi?id=176427 Reviewed by Darin Adler. Fixes an issue where Copy WebKit Permalink would generate an incorrect URL for any file not in the top-level directory of the repository when using an SVN checkout of WebKit. Copy WebKit Permalink changes directories to the containing directory D of the active Xcode document F before running "svn info ". Currently we use the value of "Path" from the output of "svn info" when generating the permalink. This path is relative to D. But we want the path to F relative to the top-level checkout directory. We need to explicitly compute this. * CopyPermalink/Copy WebKit Permalink.workflow/Contents/document.wflow: 2017-09-06 Carlos Garcia Campos [GTK] Bump freetype version to 2.8.0 https://bugs.webkit.org/show_bug.cgi?id=176351 Reviewed by Carlos Alberto Lopez Perez. Remove the patch we were using since it was reverted upstream. * gtk/jhbuild.modules: * gtk/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Removed. 2017-09-06 Yoshiaki Jitsukawa [Win] Tools/TestWebKitAPI/Tests/WTF/PriorityQueue.cpp fails to compile with MSVC 2015 https://bugs.webkit.org/show_bug.cgi?id=176442 Reviewed by Keith Miller. * TestWebKitAPI/Tests/WTF/PriorityQueue.cpp: (TEST): 2017-09-05 Darin Adler Fix a few minor problems found while working toward removing unneeded calls to updateStyle https://bugs.webkit.org/show_bug.cgi?id=176279 Reviewed by Antti Koivisto. * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::setSelectedChild const): Handle null here. The old code instead would trigger an Objective-C exception unnecessarily. 2017-09-05 Wenson Hsieh [iOS WK2] Add plumbing for WKContentView to ask the web process for additional drag items https://bugs.webkit.org/show_bug.cgi?id=176348 Work towards Reviewed by Tim Horton. Introduces new test infrastructure to simulate tapping to add additional items to the current drag session. We add -[DataInteractionSimulator runFrom:to:additionalItemRequestLocations:], for which the last argument is a dictionary mapping progress (a double between 0 and 1) to NSValues representing the location from which the drag and drop simulation will request an additional drag item. During the simulated drag and drop, when the progress value exceeds a value in the map of remaining additional item request locations, we halt drag simulation progress for that runloop and instead request additional items from the location specified. The only (useful) passing test we can create using the new machinery is one that verifies that preventDefault() on dragstart works as expected, preventing additional items from being added. While this trivially passes now, since the web-process-side of the additional items flow is not yet implemented, it should continue to pass after the web process portion is implemented. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/selected-text-image-link-and-editable.html: Added. Add a new test page that contains some non-editable text, an image, a link, and a rich text editable area. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[MockDragDropSession addItems:]): Convenience method to add additional mock drag items to a drag or drop session. (-[DataInteractionSimulator _resetSimulatedState]): (-[DataInteractionSimulator runFrom:to:]): Converted into a convenience wrapper around the latter version, passing in nil for the additional item request locations dictionary. (-[DataInteractionSimulator runFrom:to:additionalItemRequestLocations:]): (-[DataInteractionSimulator _enqueuePendingAdditionalItemRequestLocations]): (-[DataInteractionSimulator _sendQueuedAdditionalItemRequest]): New helper methods to detect when and where additional items should be "added", and subsequently simulate adding drag items at these given locations. (-[DataInteractionSimulator _advanceProgress]): 2017-09-05 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's mouseDidMoveOverElement https://bugs.webkit.org/show_bug.cgi?id=176428 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[MouseMoveOverElementDelegate _webView:mouseDidMoveOverElement:withFlags:userInfo:]): (TEST): * TestWebKitAPI/cocoa/TestWKWebView.h: * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView mouseMoveToPoint:withFlags:]): 2017-09-05 Matthew Stewart Benchmark Runner WebDriver maximize window on browser launch https://bugs.webkit.org/show_bug.cgi?id=175702 Reviewed by Stephanie Lewis. * Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py: (LinuxBrowserDriver.launch_webdriver): added driver.maximize_window() * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py: (OSXBrowserDriver._launch_webdriver): added driver.maximize_window() * Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py: (WebDriverBenchmarkRunner._run_one_test): added driver.quit() 2017-09-05 Matthew Stewart Fix Benchmark Runner selenium autoinstall imports https://bugs.webkit.org/show_bug.cgi?id=175727 Reviewed by Stephanie Lewis. This fixes run-benchmark taking a long time to start with WebDriver. Inside webdriver's __init__.py file, it imports many other modules. So if we try to directly import autoinstalled.selenium.webdriver, it will re-run the autoinstall __init__.py for each new imported module that contains ".selenium" TODO: fix this inside the autoinstall code, to only do one install per import. * Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py: (LinuxChromeDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py: (LinuxFirefoxDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: (OSXChromeDriver.launch_driver): (OSXChromeCanaryDriver.launch_driver): (create_chrome_options): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: (OSXFirefoxDriver.launch_driver): (OSXFirefoxNightlyDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: (OSXSafariDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py: (WebDriverBenchmarkRunner._run_one_test): 2017-09-05 Aakash Jain EWS should report when a step succeeds https://bugs.webkit.org/show_bug.cgi?id=176332 Reviewed by Sam Weinig. Most of the EWSes report only if a step fails, but do not report when a step succeed. For e.g.: If a build succeeds, EWS does not report it. Information about a step passing is sometimes very valuable, especially when waiting for a patch to complete processing. Sometimes, patch authors know that their changes are not covered by any tests. Having EWS display that build was successful and it is currently running tests is valuable. * Scripts/webkitpy/tool/commands/earlywarningsystem.py: (AbstractEarlyWarningSystem.command_passed): Update the EWS status server when a command pass. This is similar to what is done in Commit Queue and Style Queue. * Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: (EarlyWarningSystemTest._default_expected_logs): Updated unit-tests appropriately. 2017-09-05 Myles C. Maxfield WSL should support the bool type https://bugs.webkit.org/show_bug.cgi?id=176285 Reviewed by Filip Pizlo. Very similar to the int and uint types. This patch also adds support for a logical negation expression "!x". This patch also reverts the ability of the program author to create their own "operator!()", and instead adds the ability of the program author to create their own "operator bool()". The code is generic, so programmers can make two arbitrary types Foo and Bar, and implement a "operator Bar(Foo)." The logical negation expression is a built-in, and requires its argument be a bool. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/BoolLiteral.js: Copied from Tools/WebGPUShadingLanguageRI/NativeFunc.js. (BoolLiteral): (BoolLiteral.prototype.get value): (BoolLiteral.prototype.get isConstexpr): (BoolLiteral.prototype.toString): * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitBoolLiteral): (Evaluator.prototype.visitLogicalNot): * WebGPUShadingLanguageRI/Func.js: (Func): (Func.prototype.get isCast): (Func.prototype.toDeclString): * WebGPUShadingLanguageRI/FuncDef.js: (FuncDef): (FuncDef.prototype.get body): (FuncDef.prototype.rewrite): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/LogicalNot.js: Copied from Tools/WebGPUShadingLanguageRI/NativeFunc.js. (LogicalNot): (LogicalNot.prototype.get operand): (LogicalNot.prototype.toString): * WebGPUShadingLanguageRI/NativeFunc.js: (NativeFunc): * WebGPUShadingLanguageRI/Parse.js: (parseTerm): (parsePossiblePrefix): (parsePossibleRelationalEquality): (parseFuncName): (parseOperatorFuncDefValues): (parseNonOperatorFuncDefValues): (parseGenericFuncDefValues): (parseFuncDecl): (parseProtocolFuncDecl): (parseFuncDef): (parseNative): (parse): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitBoolLiteral): (Rewriter.prototype.visitLogicalNot): (Rewriter): * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (makeUInt): (makeBool): (checkUInt): (checkBool): (TEST_literalBool): (TEST_identityBool): (TEST_intSimpleMath): (TEST_uintSimpleMath): (TEST_equality): (TEST_logicalNegation): (TEST_notEquality): (TEST_equalityTypeFailure): (TEST_add1): Deleted. * WebGPUShadingLanguageRI/TypeDefResolver.js: (TypeDefResolver.prototype.visitFuncDef): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitBoolLiteral): (Visitor.prototype.visitLogicalNot): 2017-09-05 Matt Lewis Unreviewed, rolling out r221603. This caused accessibility/mac/select-element-selection-with- optgroups.html to consistently timeout on macOS Reverted changeset: "Fix a few minor problems found while working toward removing unneeded calls to updateStyle" https://bugs.webkit.org/show_bug.cgi?id=176279 http://trac.webkit.org/changeset/221603 2017-09-05 Youenn Fablet WebKitTestRunner should set the cache storage directory path https://bugs.webkit.org/show_bug.cgi?id=176373 Reviewed by Chris Dumez. * WebKitTestRunner/TestController.cpp: (WTR::TestController::generateContextConfiguration const): 2017-09-05 Joseph Pecoraro test262: Completion values for control flow do not match the spec https://bugs.webkit.org/show_bug.cgi?id=171265 Reviewed by Saam Barati. * Scripts/run-jsc-stress-tests: Include a :failDueToOutdatedOrBadTest to mark failures with justification. 2017-09-05 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's unavailablePluginButtonClicked https://bugs.webkit.org/show_bug.cgi?id=176274 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[PluginDelegate _webView:unavailablePluginButtonClickedWithReason:pluginInfo:]): (TEST): 2017-09-05 Carlos Garcia Campos [GTK] Wrong use of PLUGIN_ARCHITECTURE(X11) in several places https://bugs.webkit.org/show_bug.cgi?id=176329 Reviewed by Michael Catanzaro. * CMakeLists.txt: Build TestNetscapePlugIn when NETSCAPE_PLUGIN_API is enabled and only link to X11 libraries when building the X11 target. * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: * DumpRenderTree/TestNetscapePlugIn/Tests/unix/CallInvalidateRectWithNullNPPArgument.cpp: Renamed from Tools/DumpRenderTree/TestNetscapePlugIn/Tests/x11/CallInvalidateRectWithNullNPPArgument.cpp. * DumpRenderTree/TestNetscapePlugIn/main.cpp: (NP_Initialize): (NPP_HandleEvent): (NPP_GetValue): 2017-09-04 Eric Carlson Switch HTMLMediaElement to release logging https://bugs.webkit.org/show_bug.cgi?id=176065 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::LogObserver::level const): 2017-09-03 Darin Adler Fix a few minor problems found while working toward removing unneeded calls to updateStyle https://bugs.webkit.org/show_bug.cgi?id=176279 Reviewed by Antti Koivisto. * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::setSelectedChild const): Handle null here. The old code instead would trigger an Objective-C exception unnecessarily. 2017-09-04 Wenson Hsieh [iOS DnD] Refactor drag and drop logic in WKContentView in preparation for supporting multiple drag items in a drag session https://bugs.webkit.org/show_bug.cgi?id=176264 Reviewed by Darin Adler. Adds two new iOS drag and drop tests to check that the clientX and clientY attributes of mouse events propagated to the page during drop are correct. Each test drags from an image element and drops into three custom-drop- handling elements; `dragenter`, `dragover`, and `drop` event listeners on the body then use the clientX and clientY event attributes to hit-test for drop target elements. The first test is suffixed with "-Basic"; the second test, suffixed with "-WithScrollOffset", makes the document scrollable to check that clientY is correct when scrolled. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/drop-targets.html: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::testDragAndDropOntoTargetElements): (TestWebKitAPI::TEST): * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView stringByEvaluatingJavaScript:]): Log a warning message when an API test fails due to JavaScript evaluation in TestWKWebView. 2017-09-03 Filip Pizlo WSL IntLiteral should have variable type so that it can unify with things like uint https://bugs.webkit.org/show_bug.cgi?id=176209 Reviewed by Mylex Maxfield. This introduces IntLiteralType, which can unify with any number type that can represent the int literal. This means that all of the following are legal: double x = 0; // 0 unifies with double double y = x + 5; // should resolve to double+double double z = array[0]; // 0 unifies with uint We can do similar things with float literals, so that you don't have to suffix "f" all the time. I think that this is very different from what C does. C just supports implicit type conversions. That's why "double x = 0" works in C. We don't do type conversions. Instead, we let each literal unify itself with one type. Also updated Test.html so that it runs again and is better at printing things. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/IntLiteral.js: (IntLiteral): (IntLiteral.prototype.toString): * WebGPUShadingLanguageRI/IntLiteralType.js: Added. (IntLiteralType): (IntLiteralType.prototype.get origin): (IntLiteralType.prototype.get value): (IntLiteralType.prototype.get isPrimitive): (IntLiteralType.prototype.get isUnifiable): (IntLiteralType.prototype.typeVariableUnify): (IntLiteralType.prototype.unifyImpl): (IntLiteralType.prototype.verifyAsArgument): (IntLiteralType.prototype.verifyAsParameter): (IntLiteralType.prototype.commitUnification): (IntLiteralType.prototype.toString): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics.): (Intrinsics): * WebGPUShadingLanguageRI/LiteralTypeChecker.js: (LiteralTypeChecker.prototype.visitIntLiteralType): (LiteralTypeChecker): * WebGPUShadingLanguageRI/NativeType.js: (NativeType): (NativeType.prototype.get isNumber): (NativeType.prototype.set isNumber): (NativeType.prototype.get isInt): (NativeType.prototype.set isInt): (NativeType.prototype.get isFloat): (NativeType.prototype.set isFloat): * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitIntLiteral): (Rewriter.prototype.visitIntLiteralType): * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.html: * WebGPUShadingLanguageRI/Test.js: (this.window.this.print): (doPrep): (doLex): (checkNumber): (checkInt): (TEST_nameResolutionFailure): (TEST_threadArrayLoadIntLiteral): (TEST_deviceArrayStoreIntLiteral): (TEST_returnIntLiteralDouble): * WebGPUShadingLanguageRI/Type.js: (Type.prototype.get isNumber): (Type.prototype.get isInt): (Type.prototype.get isFloat): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitIntLiteral): (Visitor.prototype.visitIntLiteralType): 2017-09-03 Filip Pizlo Add more tests for null behavior in WSL https://bugs.webkit.org/show_bug.cgi?id=176318 Reviewed by Myles Maxfield. This adds more tests for the unification behavior of null. In the process, I found a couple small bugs and fixed them. * WebGPUShadingLanguageRI/Checker.js: * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression): (FuncInstantiator.prototype.getUnique.InstantiationSubstitution): * WebGPUShadingLanguageRI/Substitution.js: (Substitution.prototype.visitTypeRef): * WebGPUShadingLanguageRI/Test.js: (TEST_passNullAndNotNullFullPoly): (TEST_passNullAndNotNullFullPolyReverse): (TEST_nullTypeVariableUnify.recurse): (TEST_nullTypeVariableUnify.everyOrder): (TEST_nullTypeVariableUnify.everyPair): (TEST_nullTypeVariableUnify): * WebGPUShadingLanguageRI/TypeRef.js: (TypeRef.wrap): * WebGPUShadingLanguageRI/TypeVariable.js: (TypeVariable.prototype.verifyAsArgument): 2017-09-04 Commit Queue Unreviewed, rolling out r221494 and r221500. https://bugs.webkit.org/show_bug.cgi?id=176258 This caused the windows build to fail. (Requested by mlewis13 on #webkit). Reverted changesets: "Switch HTMLMediaElement to release logging" https://bugs.webkit.org/show_bug.cgi?id=176065 http://trac.webkit.org/changeset/221494 "Switch HTMLMediaElement to release logging" https://bugs.webkit.org/show_bug.cgi?id=176065 http://trac.webkit.org/changeset/221500 2017-09-03 Darin Adler REGRESSION (r220052): [Sierra] API test VideoControlsManager.VideoControlsManagerFullSizeVideoInWideMainFrame is a flaky failure https://bugs.webkit.org/show_bug.cgi?id=175329 Reviewed by Wenson Hsieh. These tests rely on using setTimeout to wait a run loop iteration for the video controls to appear. With changes to how loading occurs, it can now take two run loop iterations. The concept here is inherently a bit flaky and racy -- end users will not be able to tell how many run loop cycles it takes for controls to come up, and websites can't tell either -- but for now changing the tests to wait one more run loop should get rid of the flakiness. * TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm: Re-enable test. * TestWebKitAPI/Tests/WebKitCocoa/full-size-autoplaying-video-with-audio.html: Add a second setTimeout and a comment. * TestWebKitAPI/Tests/WebKitCocoa/skinny-autoplaying-video-with-audio.html: Ditto. * TestWebKitAPI/Tests/WebKitCocoa/wide-autoplaying-video-with-audio.html: Ditto. 2017-09-03 Sam Weinig Make webkit-patch post --no-review enable EWS just like webkit-patch post-commits --no-review https://bugs.webkit.org/show_bug.cgi?id=176321 Reviewed by Darin Adler. * Scripts/webkitpy/tool/commands/upload.py: Add the SubmitToEWS step to Post command 2017-09-03 Chris Dumez Have getFileMetadata() return a std::optional https://bugs.webkit.org/show_bug.cgi?id=176293 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WebCore/FileSystem.cpp: (TestWebKitAPI::TEST_F): 2017-09-02 Filip Pizlo WSL should support structs https://bugs.webkit.org/show_bug.cgi?id=176290 Reviewed by Mylex Maxfield. This adds parsing of struct types and makes them work. This required adding a struct layout phase, which in turn required being a bit more careful about how we instantiate functions and types. We cannot have any instantiation TypeRefs left once we're doing struct layout. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallFunction.js: (callFunction): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/DotExpression.js: Added. (DotExpression): (DotExpression.prototype.get struct): (DotExpression.prototype.get fieldName): (DotExpression.prototype.get isLValue): (DotExpression.prototype.toString): * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype._createEPtr): * WebGPUShadingLanguageRI/EPtr.js: (EPtr.prototype.copyFrom): Deleted. (EPtr.prototype.toString): Deleted. * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitAssignment): (Evaluator.prototype.visitDotExpression): * WebGPUShadingLanguageRI/Field.js: (Field): * WebGPUShadingLanguageRI/FuncDef.js: (FuncDef.prototype.rewrite): * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique): (FuncInstantiator): * WebGPUShadingLanguageRI/Inline.js: (inline): (_inlineFunction): (resolveInlinedFunction): * WebGPUShadingLanguageRI/Inliner.js: (Inliner.prototype.visitDotExpression): * WebGPUShadingLanguageRI/InstantiateImmediates.js: (InstantiateImmediates.prototype.visitTypeRef): (InstantiateImmediates.prototype.visitVariableDecl): (InstantiateImmediates): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype._resolveTypeArguments): (NameResolver.prototype.visitTypeRef): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.visit): * WebGPUShadingLanguageRI/OverloadResolutionFailure.js: Added. (OverloadResolutionFailure): (OverloadResolutionFailure.prototype.get func): (OverloadResolutionFailure.prototype.get reason): (OverloadResolutionFailure.prototype.toString): * WebGPUShadingLanguageRI/Parse.js: (parsePossibleSuffix): (parseField): (parseStructType): (parse): * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: (resolveOverloadImpl): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitDotExpression): (Rewriter.prototype.visitVariableRef): * WebGPUShadingLanguageRI/StructLayoutBuilder.js: Added. (StructLayoutBuilder): (StructLayoutBuilder.prototype.visitStructType): (StructLayoutBuilder.prototype.get offset): (StructLayoutBuilder.prototype.visitField): (StructLayoutBuilder.prototype.visitVariableRef): (StructLayoutBuilder.prototype.visitVariableDecl): * WebGPUShadingLanguageRI/StructType.js: (StructType.prototype.add): (StructType.prototype.instantiate): (StructType.prototype.populateDefaultValue): * WebGPUShadingLanguageRI/Substitution.js: (Substitution.prototype.visitTypeRef): (Substitution.prototype.visitVariableRef): (Substitution): * WebGPUShadingLanguageRI/Test.js: (TEST_genericStructInstance): * WebGPUShadingLanguageRI/Type.js: (Type.prototype.inherits): * WebGPUShadingLanguageRI/TypeRef.js: (TypeRef.instantiate): * WebGPUShadingLanguageRI/VariableRef.js: (VariableRef.wrap): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitTypeRef): (Visitor.prototype.visitDotExpression): (Visitor.prototype.visitVariableRef): 2017-09-02 Filip Pizlo WSL NullType should be a special type variable so it can unify with any pointer type https://bugs.webkit.org/show_bug.cgi?id=176235 Reviewed by Myles Maxfield. Null is just a type variable that plays by weird rules: - Other type variables don't recognize it, so if it's unified with T, it fails. - It behaves like a type variable for pointer and array reference types. - It arises only in argument (RHS) position. - Once Checker finds it to be equals to something, we need to remember what that was. I refactored some of the type system code to allow for the possibility of type variables being unified during equals() tests. It turns out that we were playing fast and loose here; I needed to beef up UnificationContext.prototype.verify. I added tests for this. I added an equalsWithCommit() that triggers commitUnification(), which allows NullType to remember what type it got unified with. NullLiteral then just instantiates its own NullType, which is what Checker uses as the type of the NullLiteral. Everything else just works. This adds a bunch of tests to make sure we generate type errors in various weird cases while also accepting a number of safe cases. I also added a way to run the tests in-browser. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/ArrayRefType.js: (ArrayRefType.prototype.get isArrayRef): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/ConstexprTypeParameter.js: (ConstexprTypeParameter.prototype.typeVariableUnify): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitDereferenceExpression): (Evaluator.prototype.visitNullLiteral): * WebGPUShadingLanguageRI/Func.js: (Func.prototype.toString): (Func): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/NativeFunc.js: (NativeFunc.prototype.toDeclString): (NativeFunc): (NativeFunc.prototype.toString): Deleted. * WebGPUShadingLanguageRI/NativeFuncInstance.js: (NativeFuncInstance.prototype.toDeclString): (NativeFuncInstance): (NativeFuncInstance.prototype.toString): Deleted. * WebGPUShadingLanguageRI/Node.js: (Node.unify): (Node.prototype._typeVariableUnifyImpl): (Node.prototype.equals): * WebGPUShadingLanguageRI/NullLiteral.js: Added. (NullLiteral): (NullLiteral.prototype.toString): * WebGPUShadingLanguageRI/NullType.js: (NullType): (NullType.prototype.get isPrimitive): (NullType.prototype.get isUnifiable): (NullType.prototype.typeVariableUnify): (NullType.prototype.unifyImpl): (NullType.prototype.verifyAsArgument): (NullType.prototype.verifyAsParameter): (NullType.prototype.toString): * WebGPUShadingLanguageRI/Parse.js: (parseTerm): (parseType.getAddressSpace): (parseType): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitNullLiteral): * WebGPUShadingLanguageRI/Test.html: Added. * WebGPUShadingLanguageRI/Test.js: (this.window.this.print): (TEST_doubleGenericCallsSingleGeneric): (TEST_dereferenceDefaultNull): (TEST_dereferenceDefaultNullArrayRef): (doTest): (let.s.in.this.s.startsWith.string_appeared_here.s.match): Deleted. * WebGPUShadingLanguageRI/Type.js: (Type.prototype.get isArrayRef): * WebGPUShadingLanguageRI/TypeVariable.js: (TypeVariable.prototype.typeVariableUnify): * WebGPUShadingLanguageRI/UnificationContext.js: (UnificationContext.prototype.verify): (UnificationContext): (UnificationContext.prototype.isUnunified): Deleted. * WebGPUShadingLanguageRI/VariableRef.js: (VariableRef.prototype.get unifyNode): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitNullLiteral): 2017-09-03 Sam Weinig Remove CanvasProxy https://bugs.webkit.org/show_bug.cgi?id=176288 Reviewed by Yusuke Suzuki. CanvasProxy does not appear to be in any current HTML spec and was disabled and unimplemented in our tree. Time to get rid of it. * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-09-01 Filip Pizlo WSL should check unreachable code and no returns https://bugs.webkit.org/show_bug.cgi?id=176262 Reviewed by Myles Maxfield. This adds phases to check whether non-void functions return and whether there is any code after a return in any block. Added tests for simple versions of both of those things. We cannot add more complex versions until we support control flow statements. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CheckReturns.js: Added. (checkReturns): * WebGPUShadingLanguageRI/CheckUnreachableCode.js: Added. (checkUnreachableCode): * WebGPUShadingLanguageRI/Parse.js: (parseReturn): * WebGPUShadingLanguageRI/Prepare.js: (prepare): * WebGPUShadingLanguageRI/ReturnChecker.js: Added. (ReturnChecker.prototype.visitFuncDef): (ReturnChecker.prototype.visitBlock): (ReturnChecker.prototype.visitReturn): (ReturnChecker): * WebGPUShadingLanguageRI/Test.js: (TEST_simpleNoReturn): * WebGPUShadingLanguageRI/UnreachableCodeChecker.js: Added. (UnreachableCodeChecker.prototype.visitBlock): (UnreachableCodeChecker): 2017-09-01 Filip Pizlo WSL should use & for getting a ^ and @ for getting a [] https://bugs.webkit.org/show_bug.cgi?id=176245 Reviewed by Myles Maxfield. Using \ as an operator was a bad decision since that's an escape character in so many contexts. Henceforth, & is for making pointers, for example: thread int^ foo() { int x; return &x; } And @ is for making array references, for example: thread int[] foo() { int[42] x; return @x; } Having separate operators makes it easy to have pointers to fixed-size arrays: thread int[42]^ foo() { int[42] x; return &x; } * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/MakePtrExpression.js: (MakePtrExpression.prototype.toString): (MakePtrExpression): * WebGPUShadingLanguageRI/Parse.js: (parsePossibleSuffix): (parsePossiblePrefix): (parseFuncName): * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.js: (TEST_simpleMakePtr): 2017-09-01 Myles C. Maxfield WSL's lexer will never emit keyword tokens https://bugs.webkit.org/show_bug.cgi?id=176248 Reviewed by Filip Pizlo. Because all tokens are also identified as idents, we need to handle them together. * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/Test.js: (doLex): (checkLexerToken): (TEST_lexerKeyword): 2017-09-01 Alex Christensen Rename WebKit2 API tests after directory rename https://bugs.webkit.org/show_bug.cgi?id=176250 Reviewed by Tim Horton. * TestWebKitAPI/Tests/Lots of files... Renamed WebKit2 to WebKit and WebKit1 to WebKitLegacy. 2017-09-01 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's toolbarsAreVisible https://bugs.webkit.org/show_bug.cgi?id=176246 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[ToolbarDelegate _webView:getToolbarsAreVisibleWithCompletionHandler:]): (-[ToolbarDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-09-01 Eric Carlson Switch HTMLMediaElement to release logging https://bugs.webkit.org/show_bug.cgi?id=176065 Unreviewed build fix. * TestWebKitAPI/Tests/WebCore/Logging.cpp: 2017-09-01 Filip Pizlo WSL should have more tests of type checking failures https://bugs.webkit.org/show_bug.cgi?id=176244 Reviewed by Myles Maxfield. * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/Test.js: (TEST_typeMismatchReturn): 2017-09-01 Filip Pizlo WSL should be be able to call a function declared in a protocol from a generic function https://bugs.webkit.org/show_bug.cgi?id=176242 Reviewed by Myles Maxfield. It turns out that we need to know when a function is resolved to a protocol signature, so we need to have a type for this. This introduces ProtocolFuncDecl. Also, this introduces parsing of protocol decls. When instantiating a function, we need to rewrite its CallExpressions if they were previously resolved to a PrtococolFuncDecl instead of a FuncDef or NativeFunc. In that case, we need to rerun the resolution on the program. That resolution is guaranteed to succeed if the type system works correctly. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallExpression.js: (CallExpression.prototype.resolve): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype._createEPtr): * WebGPUShadingLanguageRI/Func.js: (Func): (Func.prototype.get origin): * WebGPUShadingLanguageRI/FuncDef.js: (FuncDef): (FuncDef.prototype.get origin): Deleted. * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator): (FuncInstantiator.prototype.getUnique.InstantiationSubstitution.prototype.visitCallExpression): (FuncInstantiator.prototype.getUnique.InstantiationSubstitution): * WebGPUShadingLanguageRI/NativeFunc.js: (NativeFunc): (NativeFunc.prototype.get origin): Deleted. * WebGPUShadingLanguageRI/NativeFuncInstance.js: (NativeFuncInstance): * WebGPUShadingLanguageRI/Node.js: (Node.prototype.substitute): * WebGPUShadingLanguageRI/Parse.js: (parseProtocolFuncDecl): (parseProtocolDecl): (parse): * WebGPUShadingLanguageRI/Program.js: (Program): (Program.prototype.get protocols): (Program.prototype.add): * WebGPUShadingLanguageRI/ProtocolDecl.js: (ProtocolDecl.prototype.add): (ProtocolDecl.prototype.hasHeir): (ProtocolDecl.prototype.addSignature): Deleted. * WebGPUShadingLanguageRI/ProtocolFuncDecl.js: Added. (ProtocolFuncDecl): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitStructType): (Rewriter.prototype.visitTypeVariable): (Rewriter.prototype.visitProtocolFuncDecl): (Rewriter.prototype.visitCallExpression): * WebGPUShadingLanguageRI/StructType.js: (StructType.prototype.instantiate): * WebGPUShadingLanguageRI/Substitution.js: (Substitution): (Substitution.mapping): Deleted. * WebGPUShadingLanguageRI/Test.js: (TEST_simpleGeneric): (TEST_simpleAssignment): (TEST_simpleDefault): (TEST_simpleDereference): (TEST_dereferenceStore): (TEST_simpleMakePtr): (TEST_threadArrayLoad): (TEST_deviceArrayLoad): (TEST_threadArrayStore): (TEST_deviceArrayStore): (TEST_simpleProtocol): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitProtocolFuncDecl): 2017-09-01 Eric Carlson Switch HTMLMediaElement to release logging https://bugs.webkit.org/show_bug.cgi?id=176065 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::LogObserver::level const): 2017-09-01 Ross Kirsling download-latest-github-release.py should have friendlier output for non-404 errors https://bugs.webkit.org/show_bug.cgi?id=176201 Reviewed by Brent Fulgham. * Scripts/download-latest-github-release.py: 2017-09-01 Filip Pizlo [WSL] Add tests for storing to arrays https://bugs.webkit.org/show_bug.cgi?id=176237 Reviewed by Myles Maxfield. Storing to arrays works now. * WebGPUShadingLanguageRI/ArrayType.js: (ArrayType): * WebGPUShadingLanguageRI/Test.js: (TEST_threadArrayStore): (TEST_deviceArrayStore): 2017-09-01 Alex Christensen Replace WKUIDelegatePrivate's isPlayingMediaDidChange with KVO _isPlayingAudio on WKWebView https://bugs.webkit.org/show_bug.cgi?id=176212 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[AudioObserver observeValueForKeyPath:ofObject:change:context:]): (TEST): (-[MediaDelegate _webView:isPlayingMediaDidChange:]): Deleted. 2017-09-01 Filip Pizlo WSL Rewriter should be an identity on things that aren't inside function bodies https://bugs.webkit.org/show_bug.cgi?id=176208 Reviewed by Myles Maxfield. Previously, if the Rewriter encountered a FunctionDef, StructType, NativeType, etc., then it would either crash or try to rewrite them. That's unfortunate because we use the Rewriter to rewrite struct and function bodies. If a function calls another function, then rewriting the caller should not mean also rewriting the callee. Previously we "fixed" this by religiously wrapping references to types with TypeDef and doing other such hacks. But that's subtly wrong. It only worked because Rewriter wasn't rewriting TypeRef.type. I think that Rewriter has to rewrite that in the long run because it may refer to another TypeRef, and it may be an instantiation that is using types that themselves need to be rewritten. * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/NullType.js: (NullType): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitFuncDef): (Rewriter.prototype.visitNativeFunc): (Rewriter.prototype.visitNativeFuncInstance): (Rewriter.prototype.visitNativeType): (Rewriter.prototype.visitTypeDef): (Rewriter.prototype.visitStructType): (Rewriter.prototype.visitTypeVariable): (Rewriter.prototype.visitConstexprTypeParameter): (Rewriter.prototype.visitNativeTypeInstance): (Rewriter.prototype.visitTypeRef): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitNativeTypeInstance): 2017-09-01 Alex Christensen Disable ObjC WebGL policy SPI on iOS https://bugs.webkit.org/show_bug.cgi?id=176233 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm: 2017-08-31 Carlos Garcia Campos [GTK] Improve the way unit test are run and the results reported https://bugs.webkit.org/show_bug.cgi?id=176104 Reviewed by Carlos Alberto Lopez Perez. There are several issues with the way unit tests are run by run-gtk-tests and also with the way results are reported: - The results summary only mentions the test binaries, not the actual test cases, so you always have to scroll up to find the actual test cases failing. - The number of reported failures is the number of test binaries that failed, so if a new test case fails for the same binary in a new revision, we won't notice it just looking at the number of failures. - We show detailed information about skipped test in the results summary, which is just noise. - In the case of glib tests, when a test case times out, we finish the test suite, instead of continuing with the rest of the test cases like we do for normal failures or crashes. If a new test case fails after a test case that timed out we will not notice it until we fix or skip the test cases timing out. - In the case of glib tests, the timeout is applied to the whole suite, instead of per test case, we have a hack to make it longer only for that. It has worked so far, but it doesn't scale, and it's an ugly hack. - It's not currently possible to detect flaky tests, because again, we know the binaries/suites that failed but not the actual test cases. This patch fixes all these issues and makes it possible to add support for flaky tests in a follow up patch. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (RunGtkAPITests.commandComplete): Update the RunGtkAPITests step to parse the new output. * Scripts/run-gtk-tests: (TestRunner._start_timeout): Helper to start the timeout if needed. (TestRunner._start_timeout._alarm_handler): Raise timeout exception. (TestRunner._stop_timeout): Helper to stop the timeout if needed. (TestRunner._waitpid): Merged waitpid and return_code_from_exit_status. (TestRunner._run_test_glib): Do not double the timeout anymore, we now start/stop the timeout for every test case. Return a dictionary where keys are test cases and values the results only in case of failures. (TestRunner._run_test_glib.parse_line): Update the parser to also detect test cases and the results. (TestRunner._run_test_glib.parse_line.set_test_result): Helper to set the result of a test case. (TestRunner._run_google_test): Return a dictionary where key is the test case and value is the result only in case of failure. (TestRunner._run_google_test_suite): Updated now that _run_google_test returns a dictionary. (TestRunner.run_tests): Handle the results dictionary and show the results with information about test cases failing and grouped by test binaries. 2017-08-31 Filip Pizlo WSL should support loading from arrays https://bugs.webkit.org/show_bug.cgi?id=176207 Reviewed by Saam Barati. Getting a test that loads from arrays to work required doing a lot of things: - a[i] now parses to ^(operator\[](a, i)). - added operator\[] for four array reference types. - to make thread|threadgroup|device T[] work, you need T:primitive. - so this adds the magical primitive protocol. This required a little bit of rejuggling in the name resolver and type checker. The main thing is that to prevent the rewriter from copying the types referenced by some function, you need to make sure that when you add a reference to a type, you wrap it in a TypeRef. This doesn't completely feel right, but I'm sure we'll figure out the balance eventually. See bug 176208. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/EArrayRef.js: Added. (EArrayRef): (EArrayRef.prototype.get ptr): (EArrayRef.prototype.get length): (EArrayRef.prototype.toString): * WebGPUShadingLanguageRI/EPtr.js: (EPtr.prototype.plus): (EPtr.prototype.toString): (EPtr): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitUintLiteral): * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc): (FuncInstantiator.prototype.getUnique.Instantiate): (FuncInstantiator.prototype.getUnique): (FuncInstantiator): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/Lexer.js: (Lexer.prototype.next): (Lexer): * WebGPUShadingLanguageRI/NameContext.js: (NameContext.prototype.recognizeIntrinsics): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProtocolRef): * WebGPUShadingLanguageRI/NativeFuncInstance.js: (NativeFuncInstance.prototype.get isNative): * WebGPUShadingLanguageRI/Parse.js: (parseTerm): (parseTypeDef): (parseNative): (parsePossibleSuffix): (parse): * WebGPUShadingLanguageRI/ProtocolDecl.js: (ProtocolDecl): * WebGPUShadingLanguageRI/ProtocolRef.js: (ProtocolRef.prototype.get isPrimitive): (ProtocolRef): * WebGPUShadingLanguageRI/PtrType.js: (PtrType.prototype.populateDefaultValue): Deleted. * WebGPUShadingLanguageRI/ReferenceType.js: (ReferenceType.prototype.populateDefaultValue): (ReferenceType): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitUintLiteral): (Rewriter.prototype.visitFunc): Deleted. (Rewriter.prototype.visitTypeVariable): Deleted. (Rewriter.prototype.visitConstexprTypeParameter): Deleted. * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/Test.js: (TEST_threadArrayLoad): (TEST_deviceArrayLoad): * WebGPUShadingLanguageRI/TypeRef.js: (TypeRef.prototype.get instantiatedType): * WebGPUShadingLanguageRI/TypeVariable.js: (TypeVariable.prototype.toString): (TypeVariable): * WebGPUShadingLanguageRI/UintLiteral.js: Added. (UintLiteral): (UintLiteral.prototype.get value): (UintLiteral.prototype.get isConstexpr): (UintLiteral.prototype.toString): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitNativeFuncInstance): (Visitor.prototype.visitTypeVariable): (Visitor.prototype.visitPtrType): (Visitor.prototype.visitArrayRefType): (Visitor.prototype.visitUintLiteral): * WebGPUShadingLanguageRI/WTrapError.js: Added. (WTrapError): 2017-08-31 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's isPlayingAudioDidChange https://bugs.webkit.org/show_bug.cgi?id=176203 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[MediaDelegate _webView:isPlayingMediaDidChange:]): (-[MediaDelegate webView:didFinishNavigation:]): (TEST): 2017-08-31 Alex Christensen Add ObjC SPI corresponding to WKPageLoaderClient's webGLLoadPolicy and resolveWebGLLoadPolicy https://bugs.webkit.org/show_bug.cgi?id=175779 Reviewed by Tim Horton. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm: Added. (-[WebGLTestDelegate webView:startURLSchemeTask:]): (-[WebGLTestDelegate webView:stopURLSchemeTask:]): (-[WebGLTestDelegate _webView:webGLLoadPolicyForURL:decisionHandler:]): (-[WebGLTestDelegate _webView:resolveWebGLLoadPolicyForURL:decisionHandler:]): (-[WebGLTestDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (urlsEqual): (runTest): (TEST): 2017-08-31 Don Olmstead [CMake] Make USE_CF conditional within Windows https://bugs.webkit.org/show_bug.cgi?id=176173 Reviewed by Alex Christensen. * DumpRenderTree/config.h: * MiniBrowser/win/CMakeLists.txt: * MiniBrowser/win/stdafx.h: * TestWebKitAPI/PlatformWin.cmake: 2017-08-31 Filip Pizlo WSL should support makeptr (\) https://bugs.webkit.org/show_bug.cgi?id=176197 Reviewed by Saam Barati. This required introducing some sanity about how pointers are carried around in the evaluator. It turns out that we need to be careful about when a pointer to an rvalue is dereferenced. It should be dereferenced basically immediately. If it cannot be, then we need to snapshot the value. To do that, we need to know the types of things in a few more places. That's what this change accomplishes. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallFunction.js: (callFunction): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/DereferenceExpression.js: (DereferenceExpression.prototype.get isLValue): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype._snapshot): (Evaluator.prototype.runBody): (Evaluator.prototype.visitFunctionLikeBlock): (Evaluator.prototype.visitDereferenceExpression): (Evaluator.prototype.visitMakePtrExpression): (Evaluator.prototype.visitCommaExpression): (Evaluator.prototype.visitCallExpression): (Evaluator): (Evaluator.prototype._dereference): Deleted. * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitFuncDef): (FuncInstantiator.prototype.getUnique.Instantiate.prototype.visitNativeFunc): (FuncInstantiator.prototype.getUnique.Instantiate): (FuncInstantiator.prototype.getUnique): (FuncInstantiator): * WebGPUShadingLanguageRI/FunctionLikeBlock.js: (FunctionLikeBlock): (FunctionLikeBlock.prototype.get returnType): (FunctionLikeBlock.prototype.toString): * WebGPUShadingLanguageRI/Inliner.js: (Inliner.prototype.visitCallExpression): (Inliner): * WebGPUShadingLanguageRI/MakePtrExpression.js: Added. (MakePtrExpression): (MakePtrExpression.prototype.get lValue): (MakePtrExpression.prototype.toString): * WebGPUShadingLanguageRI/NativeFuncInstance.js: Added. (NativeFuncInstance): (NativeFuncInstance.prototype.get func): (NativeFuncInstance.prototype.toString): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitMakePtrExpression): (Rewriter.prototype.visitCallExpression): * WebGPUShadingLanguageRI/Test.js: (TEST_dereferenceStore): (TEST_simpleMakePtr): * WebGPUShadingLanguageRI/Value.js: (Value.prototype.get isLValue): (Value): * WebGPUShadingLanguageRI/VariableRef.js: (VariableRef.prototype.get isLValue): (VariableRef.prototype.get addressSpace): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitMakePtrExpression): (Visitor.prototype.visitCallExpression): 2017-08-31 Ryan Haddad Unreviewed, rolling out r221445. This change broke Sierra Release builds. Reverted changeset: "Switch HTMLMediaElement to release logging" https://bugs.webkit.org/show_bug.cgi?id=176065 http://trac.webkit.org/changeset/221445 2017-08-31 Filip Pizlo WSL should support dereference (^) https://bugs.webkit.org/show_bug.cgi?id=176192 Reviewed by Myles Maxfield. This implements DereferenceExpression. It also renames Evaluator.prototype.visitFunctionBody, because that name confusingly implies that there is a class named FunctionBody. It's now called runBody. I made the check to see if a type is a pointer type be the isPtr method, so that we can have other pointer types that are implemented via something other than PtrType. We might want it if for example we wanted a pointer type that is generic over address space. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallFunction.js: (callFunction): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/DereferenceExpression.js: Added. (DereferenceExpression): (DereferenceExpression.prototype.get ptr): (DereferenceExpression.prototype.toString): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitFunctionLikeBlock): (Evaluator.prototype._dereference): (Evaluator.prototype.visitDereferenceExpression): (Evaluator.prototype.visitFunctionBody): Deleted. * WebGPUShadingLanguageRI/PtrType.js: (PtrType.prototype.get isPtr): (PtrType.prototype.populateDefaultValue): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitAssignment): (Rewriter.prototype.visitDereferenceExpression): * WebGPUShadingLanguageRI/Test.js: (TEST_simpleDereference): * WebGPUShadingLanguageRI/Type.js: (Type.prototype.get isPtr): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitDereferenceExpression): 2017-08-31 Filip Pizlo There should only be one callFunction API in WSL https://bugs.webkit.org/show_bug.cgi?id=176189 Reviewed by Saam Barati. This removes the need for callFunctionByRef, which was weird. It's now the case the TypedValue is always a tuple of type and ePtr, and TypedValue has a super simple API for boxing and unboxing single-cell values like ints. * WebGPUShadingLanguageRI/CallFunction.js: (callFunction): (callFunctionByRef): Deleted. * WebGPUShadingLanguageRI/Test.js: (makeInt): * WebGPUShadingLanguageRI/TypedValue.js: (TypedValue): (TypedValue.prototype.get type): (TypedValue.prototype.get ePtr): (TypedValue.box): (TypedValue.prototype.get value): (TypedValue.prototype.toString): 2017-08-31 Filip Pizlo WSL EPtr does not need to carry around the type https://bugs.webkit.org/show_bug.cgi?id=176188 Reviewed by Saam Barati. To validate that the interpreter is modeling a statically typed execution environment, it's really best if values don't know their types at all. A pointer is just a pointer (i.e a buffer and offset in our world), and it's the job of the AST node that uses it to figure out what its type should be. I think this makes the code simpler overall. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallFunction.js: (callFunctionByRef): (callFunction): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype._createEPtr): * WebGPUShadingLanguageRI/EPtr.js: (EPtr): (EPtr.box): (EPtr.prototype.copyFrom): (EPtr.prototype.toString): * WebGPUShadingLanguageRI/EValue.js: Removed. * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitFunctionLikeBlock): (Evaluator.prototype.visitVariableDecl): (Evaluator.prototype.visitAssignment): (Evaluator.prototype.visitIntLiteral): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitAssignment): * WebGPUShadingLanguageRI/StructType.js: (StructType.prototype.instantiate): * WebGPUShadingLanguageRI/Test.js: (checkInt): 2017-08-31 Filip Pizlo WSL doesn't need to wrap primitives like ints and floats in specialized classes like EInt and EFloat https://bugs.webkit.org/show_bug.cgi?id=176184 Reviewed by Saam Barati. The only use for EInt and EFloat was that users of the interpreter want to be able to reason about values that know their type. But for the actual interpreter, it makes most sense for EBuffer to hold values directly - for example, ints in the case of values of type int. Then, all of the logic of doing math on those things can be implemented in Intrinsics.js. So, this removes EInt and EFloat but introduces a new TypedValue class that is used only on the boundary of the interpreter. You can either use the interpreter by speaking its internal language (EPtr to an EBuffer that has the values) or by using the simple API (which uses TypedValue as a trade-off between power and convenience). * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallFunction.js: (callFunction): * WebGPUShadingLanguageRI/EFloat.js: Removed. * WebGPUShadingLanguageRI/EInt.js: Removed. * WebGPUShadingLanguageRI/EPtr.js: (EPtr.box): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitIntLiteral): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics): * WebGPUShadingLanguageRI/Test.js: (makeInt): (checkInt): (TEST_add1): (TEST_simpleGeneric): (TEST_simpleAssignment): (TEST_simpleDefault): * WebGPUShadingLanguageRI/TypedValue.js: Added. (TypedValue): (TypedValue.prototype.toString): 2017-08-31 David Quesada WKNavigationDelegatePrivate client redirect SPI needs to be able to detect redirects scheduled before the document finishes loading https://bugs.webkit.org/show_bug.cgi?id=176128 rdar://problem/34068476 Reviewed by Brady Eidson. Removed API test for the deleted WKNavigationDelegatePrivate method, and added two new tests for the two new methods. * TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm: (-[ClientRedirectNavigationDelegate _webView:willPerformClientRedirectToURL:delay:]): (-[ClientRedirectNavigationDelegate _webViewDidCancelClientRedirect:]): (-[ClientRedirectNavigationDelegate webView:didFinishNavigation:]): (TEST): 2017-08-31 Filip Pizlo WSL should handle variable assignments and variable declarations https://bugs.webkit.org/show_bug.cgi?id=176180 Reviewed by Saam Barati. Just fills in VariableDecl and Assignment logic so that we can test variables. * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype._createEPtrForNode): (EBufferBuilder.prototype.visitFuncParameter): (EBufferBuilder.prototype.visitVariableDecl): (EBufferBuilder): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitVariableDecl): (Evaluator.prototype.visitAssignment): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitVariableDecl): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitFuncParameter): (Rewriter.prototype.visitVariableDecl): * WebGPUShadingLanguageRI/Test.js: (makeInt): (TEST_add1): (TEST_simpleGeneric): (TEST_simpleAssignment): (TEST_simpleDefault): * WebGPUShadingLanguageRI/Visitor.js: (Visitor.prototype.visitVariableDecl): 2017-08-31 Chris Dumez getFileMetadata() does not work as expected for symbolic links https://bugs.webkit.org/show_bug.cgi?id=176143 Reviewed by Andreas Kling. Add API test coverage. * TestWebKitAPI/Tests/WebCore/FileSystem.cpp: (TestWebKitAPI::TEST_F): 2017-08-31 Filip Pizlo WSL parser should pass the token as the origin to the AST https://bugs.webkit.org/show_bug.cgi?id=176177 Reviewed by Keith Miller. Parse.js was sometimes passing token.origin as the origin, but that's just the filename component of the origin. This fixes the problem and adds a test. The test previously failed because instead of reporting the origin of the type error as ":1", it reported undefined. * WebGPUShadingLanguageRI/Parse.js: (parseProtocolRef): (consumeEndOfTypeArgs): (parseTypeParameters): (parseTerm): (parseTypeArguments): (parseType): (parseTypeDef): (parseNative): (parseLeftOperatorCall): (parsePossibleSuffix): (parsePossiblePrefix): (parsePossibleRelationalEquality): (parseLeftLogicalExpression): (parsePossibleTernaryConditional): (parsePossibleAssignment): (genericParseCommaExpression): (parseReturn): (parseVariableDecls): (parseBlock): * WebGPUShadingLanguageRI/Test.js: (checkFail): (TEST_nameResolutionFailure): 2017-08-31 Keith Miller Add a filter argument to WSL test suite. https://bugs.webkit.org/show_bug.cgi?id=176176 Reviewed by Filip Pizlo. * WebGPUShadingLanguageRI/Test.js: (this.string_appeared_here.i.switch): (let.s.in.this.s.startsWith.string_appeared_here.s.match): (let.s.in.this.s.startsWith): Deleted. 2017-08-30 Filip Pizlo WSL should be able to run a program that uses generics https://bugs.webkit.org/show_bug.cgi?id=176152 Reviewed by Keith Miller. This fixes the WSL parser and type checker to the point that we can: - Parse a function call! - Type check a generic function call with an inferred type parameter. - Instantiate a generic function. - Inline a function call. - Evaluate an inlined function call. This also changes the test suite so that it's a little nicer to add new tests. Functions whose names start with "TEST_" are tests. * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/EBufferBuilder.js: (EBufferBuilder.prototype.visitFuncParameter): (EBufferBuilder): * WebGPUShadingLanguageRI/Evaluator.js: (Evaluator.prototype.visitFunctionLikeBlock): * WebGPUShadingLanguageRI/FuncDef.js: (FuncDef.prototype.toString): (FuncDef): * WebGPUShadingLanguageRI/FuncInstantiator.js: (FuncInstantiator.prototype.getUnique): (FuncInstantiator): * WebGPUShadingLanguageRI/Inliner.js: (Inliner.prototype.visitCallExpression): (Inliner): * WebGPUShadingLanguageRI/Lexer.js: (Lexer): * WebGPUShadingLanguageRI/NameContext.js: (NameContext): (NameContext.prototype.add): (NameContext.prototype.get let): (NameContext.prototype.defineAll): (NameContext.get intrinsics): Deleted. (NameContext.set program): Deleted. (NameContext.get program): Deleted. * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype.visitProgram): * WebGPUShadingLanguageRI/Parse.js: (parseTerm): (parsePossibleSuffix): (genericParseCommaExpression): (parseReturn): * WebGPUShadingLanguageRI/Program.js: (Program.prototype.resolveFuncOverload): * WebGPUShadingLanguageRI/ProtocolDecl.js: (ProtocolDecl.prototype.inherits): * WebGPUShadingLanguageRI/ResolveOverloadImpl.js: (resolveOverloadImpl): * WebGPUShadingLanguageRI/Rewriter.js: (Rewriter.prototype.visitFuncParameter): (Rewriter.prototype.visitCallExpression): (Rewriter.prototype._map): Deleted. * WebGPUShadingLanguageRI/Test.js: (checkInt): (TEST_add1): (TEST_simpleGeneric): (let.s.in.this.s.startsWith): (load): Deleted. * WebGPUShadingLanguageRI/TypeVariable.js: (TypeVariable.prototype.typeVariableUnify): * WebGPUShadingLanguageRI/UnificationContext.js: (UnificationContext.prototype.union): 2017-08-30 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's didClickAutoFillButton https://bugs.webkit.org/show_bug.cgi?id=176139 Reviewed by Tim Horton. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/ClickAutoFillButton.mm: Added. (didClickAutoFillButton): (-[ClickAutoFillButton webProcessPlugIn:didCreateBrowserContextController:]): * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (-[AutoFillDelegate _webView:didClickAutoFillButtonWithUserInfo:]): (-[AutoFillDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-08-31 Carlos Garcia Campos [GTK] Several InputMethodFilter tests are failing and crashing https://bugs.webkit.org/show_bug.cgi?id=176158 Reviewed by Carlos Alberto Lopez Perez. This started to happen after the GTK+ upgrade from 3.16 to 3.22 in the internal jhbuild. Now, GtkIMContext doesn't emit the preedit signals when using the compose key (GDK_KEY_Multi_key). The composition results are committed directly when they are ready. The test InputMethodFilterComposeKey was failing because it expected preedit events that no longer happen. Tests InputMethodFilterContextFocusOutDuringOngoingComposition and InputMethodFilterContextMouseClickDuringOngoingComposition were crashing because InputMethodFilter::confirmCurrentComposition() accessed the WebPageProxy unconditionally, that is not available in testing mode. I wonder how this ever worked. Other tests results have also been updated because logHandleKeyboardEventWithCompositionResultsForTesting() now uses hexadecimal numbers for the key codes, for consistency with all other event logs. * TestWebKitAPI/Tests/WebKit/gtk/InputMethodFilter.cpp: (TestWebKitAPI::TestInputMethodFilter::TestInputMethodFilter): (TestWebKitAPI::TEST): (TestWebKitAPI::verifyCanceledComposition): Deleted. 2017-08-31 Carlos Garcia Campos [GTK][Wayland] Crash when gdk_keymap_get_entries_for_keyval returns TRUE but n_keys=0 https://bugs.webkit.org/show_bug.cgi?id=176154 Reviewed by Carlos Alberto Lopez Perez. Also check the n_keys > 0 when using gdk_keymap_get_entries_for_keyval(). * TestWebKitAPI/Tests/WebKit/gtk/InputMethodFilter.cpp: (TestWebKitAPI::TestInputMethodFilter::sendKeyEventToFilter): * TestWebKitAPI/Tests/WebKitGtk/TestPrinting.cpp: Remove duplicated code and use WebViewTest::keyStroke instead. * TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp: (WebViewTest::keyStroke): * TestWebKitAPI/gtk/PlatformWebViewGtk.cpp: (TestWebKitAPI::doKeyStroke): * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp: (WTR::EventSenderProxy::keyDown): 2017-08-31 Carlos Garcia Campos Unreviewed. Fix GTK+ test /webkit2/WebKitAutomationSession/request-session. It fails when comparing the browser version if micro version is 0 (or if both micro and minor are 0 too). * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Use a helper method to convert major, minor, micro numbers into a version string, using the same approach as WebKitAutomationSession. 2017-08-30 Dan Bernstein [iOS] REGRESSION (r218144) -[WKContentView targetForAction:withSender:] returns the content view for actions implemented only by the WKWebView, causing a crash https://bugs.webkit.org/show_bug.cgi?id=176077 Reviewed by Sam Weinig. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/WKContentViewTargetForAction.mm: Added. (-[TestWKContentViewTargetForActionView testAction:]): (TEST): * TestWebKitAPI/ios/UIKitSPI.h: 2017-08-30 Carlos Alberto Lopez Perez [GTK] install-dependencies script should install CUPS headers https://bugs.webkit.org/show_bug.cgi?id=176129 Reviewed by Michael Catanzaro. When building GTK+ on the JHBuild, it will enable the CUPS print backend if the CUPS headers are installed. Having a print backend on GTK+ is needed for the print-related API tests. * gtk/install-dependencies: 2017-08-30 Filip Pizlo Rename ArrayLang to WebGPU Shading Language, or WSL for short, pronounced "whistle" https://bugs.webkit.org/show_bug.cgi?id=176117 Reviewed by Myles Maxfield. Renamed ArrayLangRI to WebGPUShadingLanguageRI. Renamed ALSyntaxError/ALTypeError to WSyntaxError/WTypeError. Renamed all references to "ArrayLang" in the code to "WSL". * ArrayLangRI: Removed. * ArrayLangRI/ALSyntaxError.js: Removed. * ArrayLangRI/ALTypeError.js: Removed. * ArrayLangRI/AddressSpace.js: Removed. * ArrayLangRI/All.js: Removed. * ArrayLangRI/ArrayRefType.js: Removed. * ArrayLangRI/ArrayType.js: Removed. * ArrayLangRI/Assignment.js: Removed. * ArrayLangRI/Block.js: Removed. * ArrayLangRI/CallAssignment.js: Removed. * ArrayLangRI/CallExpression.js: Removed. * ArrayLangRI/CallFunction.js: Removed. * ArrayLangRI/Check.js: Removed. * ArrayLangRI/Checker.js: Removed. * ArrayLangRI/CommaExpression.js: Removed. * ArrayLangRI/ConstexprTypeParameter.js: Removed. * ArrayLangRI/EBuffer.js: Removed. * ArrayLangRI/EBufferBuilder.js: Removed. * ArrayLangRI/EFloat.js: Removed. * ArrayLangRI/EInt.js: Removed. * ArrayLangRI/EPtr.js: Removed. * ArrayLangRI/EValue.js: Removed. * ArrayLangRI/EvaluationCommon.js: Removed. * ArrayLangRI/Evaluator.js: Removed. * ArrayLangRI/Expression.js: Removed. * ArrayLangRI/Field.js: Removed. * ArrayLangRI/Func.js: Removed. * ArrayLangRI/FuncDef.js: Removed. * ArrayLangRI/FuncInstantiator.js: Removed. * ArrayLangRI/FuncParameter.js: Removed. * ArrayLangRI/FunctionLikeBlock.js: Removed. * ArrayLangRI/Inline.js: Removed. * ArrayLangRI/Inliner.js: Removed. * ArrayLangRI/InstantiateImmediates.js: Removed. * ArrayLangRI/IntLiteral.js: Removed. * ArrayLangRI/Intrinsics.js: Removed. * ArrayLangRI/Lexer.js: Removed. * ArrayLangRI/LexerToken.js: Removed. * ArrayLangRI/NameContext.js: Removed. * ArrayLangRI/NameResolver.js: Removed. * ArrayLangRI/NativeFunc.js: Removed. * ArrayLangRI/NativeType.js: Removed. * ArrayLangRI/NativeTypeInstance.js: Removed. * ArrayLangRI/Node.js: Removed. * ArrayLangRI/NullType.js: Removed. * ArrayLangRI/Parse.js: Removed. * ArrayLangRI/Prepare.js: Removed. * ArrayLangRI/Program.js: Removed. * ArrayLangRI/Protocol.js: Removed. * ArrayLangRI/ProtocolDecl.js: Removed. * ArrayLangRI/ProtocolRef.js: Removed. * ArrayLangRI/PtrType.js: Removed. * ArrayLangRI/ReferenceType.js: Removed. * ArrayLangRI/ResolveNames.js: Removed. * ArrayLangRI/ResolveOverloadImpl.js: Removed. * ArrayLangRI/ResolveTypeDefs.js: Removed. * ArrayLangRI/Return.js: Removed. * ArrayLangRI/ReturnException.js: Removed. * ArrayLangRI/Rewriter.js: Removed. * ArrayLangRI/StandardLibrary.js: Removed. * ArrayLangRI/StructType.js: Removed. * ArrayLangRI/Substitution.js: Removed. * ArrayLangRI/SuffixCallAssignment.js: Removed. * ArrayLangRI/Test.js: Removed. * ArrayLangRI/Type.js: Removed. * ArrayLangRI/TypeDef.js: Removed. * ArrayLangRI/TypeDefResolver.js: Removed. * ArrayLangRI/TypeOrVariableRef.js: Removed. * ArrayLangRI/TypeRef.js: Removed. * ArrayLangRI/TypeVariable.js: Removed. * ArrayLangRI/UnificationContext.js: Removed. * ArrayLangRI/Value.js: Removed. * ArrayLangRI/VariableDecl.js: Removed. * ArrayLangRI/VariableRef.js: Removed. * ArrayLangRI/VisitingSet.js: Removed. * ArrayLangRI/Visitor.js: Removed. * WebGPUShadingLanguageRI: Copied from Tools/ArrayLangRI. * WebGPUShadingLanguageRI/ALSyntaxError.js: Removed. * WebGPUShadingLanguageRI/ALTypeError.js: Removed. * WebGPUShadingLanguageRI/All.js: * WebGPUShadingLanguageRI/CallFunction.js: (callFunctionByRef): * WebGPUShadingLanguageRI/Checker.js: (Checker.prototype.visitProtocolDecl.set throw): * WebGPUShadingLanguageRI/Intrinsics.js: (Intrinsics.prototype.add): (Intrinsics): * WebGPUShadingLanguageRI/Lexer.js: (Lexer): * WebGPUShadingLanguageRI/NameContext.js: (NameContext.prototype.add): * WebGPUShadingLanguageRI/NameResolver.js: (NameResolver.prototype._resolveTypeArguments): (NameResolver.prototype.visitTypeRef): (NameResolver.prototype.visitVariableRef): * WebGPUShadingLanguageRI/Parse.js: * WebGPUShadingLanguageRI/StandardLibrary.js: * WebGPUShadingLanguageRI/StructType.js: (StructType.prototype.add): (StructType.prototype.instantiate): * WebGPUShadingLanguageRI/TypeDefResolver.js: (TypeDefResolver.prototype.visitTypeRef): (TypeDefResolver): * WebGPUShadingLanguageRI/VisitingSet.js: (VisitingSet.prototype.doVisit): (VisitingSet): * WebGPUShadingLanguageRI/WSyntaxError.js: Copied from Tools/ArrayLangRI/ALSyntaxError.js. (ALSyntaxError): Deleted. * WebGPUShadingLanguageRI/WTypeError.js: Copied from Tools/ArrayLangRI/ALTypeError.js. (ALTypeError): Deleted. 2017-08-30 Eric Carlson Add Logger observer and helper class https://bugs.webkit.org/show_bug.cgi?id=176106 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::LoggingTest::LoggingTest): (TestWebKitAPI::LoggingTest::Logger::create): (TestWebKitAPI::TEST_F): (TestWebKitAPI::LogObserver::log): (TestWebKitAPI::LogObserver::channel const): 2017-08-29 Filip Pizlo Initial reference implementation scaffolding for ArrayLang https://bugs.webkit.org/show_bug.cgi?id=175925 Reviewed by Myles Maxfield. This introduces a very rough scaffolding for an AST walk interpreter and type checker for an experimental shader language we are calling ArrayLang for now. The idea is to have a strong core type system that includes generics and memory-safe pointers and array references. Everything has deterministic semantics right up to the limit of what is portably possible. This language will support generics. This will be valid: protocol Addable { Addable operator+(Addable, Addable); } T add(T a, T b) { return a + b; } This language will support pointers and array references. This will be valid: thread int^ foo() { int x; return \x; } Each variable behaves as if it was declared "static", with one copy per type instantiation. Functions cannot recurse and there is no stack. Currently, this just tests that the following function can be parsed, checked, and called: int foo(int x) { return x + 1; } * ArrayLangRI: Added. * ArrayLangRI/ALSyntaxError.js: Added. (ALSyntaxError): * ArrayLangRI/ALTypeError.js: Added. (ALTypeError): * ArrayLangRI/AddressSpace.js: Added. (isAddressSpace): (validateAddressSpace): * ArrayLangRI/All.js: Added. * ArrayLangRI/ArrayRefType.js: Added. (ArrayRefType.prototype.unifyImpl): (ArrayRefType.prototype.toString): (ArrayRefType): * ArrayLangRI/ArrayType.js: Added. (ArrayType): (ArrayType.prototype.get origin): (ArrayType.prototype.get elementType): (ArrayType.prototype.get numElements): (ArrayType.prototype.get isPrimitive): (ArrayType.prototype.toString): (ArrayType.prototype.get size): (ArrayType.prototype.unifyImpl): * ArrayLangRI/Assignment.js: Added. (Assignment): (Assignment.prototype.get lhs): (Assignment.prototype.get rhs): (Assignment.prototype.toString): * ArrayLangRI/Block.js: Added. (Block): (Block.prototype.get origin): (Block.prototype.add): (Block.prototype.get statements): (Block.prototype.toString): * ArrayLangRI/CallAssignment.js: Added. (CallAssignment): (CallAssignment.prototype.get name): (CallAssignment.prototype.get lhs): (CallAssignment.prototype.get rhs): (CallAssignment.prototype.toString): * ArrayLangRI/CallExpression.js: Added. (CallExpression): (CallExpression.prototype.get name): (CallExpression.prototype.get typeArguments): (CallExpression.prototype.get argumentList): (CallExpression.prototype.toString): * ArrayLangRI/CallFunction.js: Added. (callFunctionByRef): (callFunction): * ArrayLangRI/Check.js: Added. (check): * ArrayLangRI/Checker.js: Added. (Checker): (Checker.prototype.visitProgram): (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitTypeRef): (Checker.prototype.visitProtocolDecl.NoticeTypeVariable.prototype.visitVariableRef): (Checker.prototype.visitProtocolDecl.NoticeTypeVariable): (Checker.prototype.visitProtocolDecl.set throw): * ArrayLangRI/CommaExpression.js: Added. (CommaExpression): (CommaExpression.prototype.get list): (CommaExpression.prototype.toString): * ArrayLangRI/ConstexprTypeParameter.js: Added. (ConstexprTypeParameter): (ConstexprTypeParameter.prototype.get name): (ConstexprTypeParameter.prototype.get type): (ConstexprTypeParameter.prototype.get isConstexpr): (ConstexprTypeParameter.prototype.get isUnifiable): (ConstexprTypeParameter.prototype.typeVariableUnify): (ConstexprTypeParameter.prototype.unifyImpl): (ConstexprTypeParameter.prototype.verifyAsArgument): (ConstexprTypeParameter.prototype.verifyAsParameter): (ConstexprTypeParameter.prototype.toString): * ArrayLangRI/EBuffer.js: Added. (EBuffer): (EBuffer.get index): * ArrayLangRI/EBufferBuilder.js: Added. (EBufferBuilder): (EBufferBuilder.prototype._createEPtr): (EBufferBuilder.prototype.visitFuncParameter): * ArrayLangRI/EFloat.js: Added. (EFloat): (EFloat.prototype.get value): (EFloat.prototype.add): (EFloat.prototype.toString): * ArrayLangRI/EInt.js: Added. (EInt): (EInt.prototype.get value): (EInt.prototype.add): (EInt.prototype.toString): * ArrayLangRI/EPtr.js: Added. (EPtr): (EPtr.box): (EPtr.prototype.get buffer): (EPtr.prototype.get offset): (EPtr.prototype.loadValue): (EPtr.prototype.copyFrom): (EPtr.prototype.toString): * ArrayLangRI/EValue.js: Added. (EValue): (EValue.prototype.get type): * ArrayLangRI/EvaluationCommon.js: Added. * ArrayLangRI/Evaluator.js: Added. (Evaluator): (Evaluator.prototype.visitFunctionBody): (Evaluator.prototype.visitFunctionLikeBlock): (Evaluator.prototype.visitReturn): (Evaluator.prototype.visitCommaExpression): (Evaluator.prototype.visitVariableRef): (Evaluator.prototype.visitIntLiteral): (Evaluator.prototype.visitCallExpression): * ArrayLangRI/Expression.js: Added. (Expression): (Expression.prototype.get origin): * ArrayLangRI/Field.js: Added. (Field): (Field.prototype.get origin): (Field.prototype.get name): (Field.prototype.get type): (Field.prototype.toString): * ArrayLangRI/Func.js: Added. (Func): (Func.prototype.get name): (Func.prototype.get returnType): (Func.prototype.get typeParameters): (Func.prototype.get parameters): (Func.prototype.get parameterTypes): (Func.prototype.get kind): (Func.prototype.toString): * ArrayLangRI/FuncDef.js: Added. (FuncDef): (FuncDef.prototype.get origin): (FuncDef.prototype.toString): * ArrayLangRI/FuncInstantiator.js: Added. (FuncInstantiator): (FuncInstantiator.prototype.getUnique): * ArrayLangRI/FuncParameter.js: Added. (FuncParameter): (FuncParameter.prototype.get origin): (FuncParameter.prototype.get name): (FuncParameter.prototype.get type): (FuncParameter.prototype.toString): * ArrayLangRI/FuncSignature.js: Added. * ArrayLangRI/FunctionLikeBlock.js: Added. (FunctionLikeBlock): (FunctionLikeBlock.prototype.get origin): (FunctionLikeBlock.prototype.get argumentList): (FunctionLikeBlock.prototype.get parameters): (FunctionLikeBlock.prototype.get body): (FunctionLikeBlock.prototype.toString): * ArrayLangRI/Inline.js: Added. (inline): (_inlineFunction): (resolveInlinedFunction): * ArrayLangRI/Inliner.js: Added. (Inliner): (Inliner.prototype.visitCallExpression): * ArrayLangRI/InstantiateImmediates.js: Added. (InstantiateImmediates.prototype.visitTypeRef): (InstantiateImmediates.prototype.visitReferenceType): (InstantiateImmediates.prototype.visitStructType): (InstantiateImmediates.prototype.visitNativeType): (InstantiateImmediates.prototype.visitTypeVariable): (InstantiateImmediates): * ArrayLangRI/IntLiteral.js: Added. (IntLiteral): (IntLiteral.prototype.get value): (IntLiteral.prototype.get isConstexpr): (IntLiteral.prototype.toString): * ArrayLangRI/Intrinsics.js: Added. (Intrinsics): (Intrinsics.prototype.add): * ArrayLangRI/Lexer.js: Added. (Lexer): (Lexer.prototype.get lineNumber): (Lexer.prototype.get origin): (Lexer.prototype.get originString): (Lexer.prototype.lineNumberForIndex): (Lexer.prototype.get state): (Lexer.prototype.set state): (Lexer.prototype.next): * ArrayLangRI/LexerToken.js: Added. (LexerToken): (LexerToken.prototype.get kind): (LexerToken.prototype.get text): (LexerToken.prototype.get origin): (LexerToken.prototype.get index): (LexerToken.prototype.get lineNumber): (LexerToken.prototype.get originString): (LexerToken.prototype.toString): * ArrayLangRI/NameContext.js: Added. (isWildcardKind): (NameContext): (NameContext.prototype.mapFor): (NameContext.prototype.add): (NameContext.get currentStatement): (NameContext.get intrinsics): (NameContext.set program): (NameContext.get program): (NameContext.prototype.get let): * ArrayLangRI/NameResolver.js: Added. (NameResolver): (NameResolver.prototype.visitProgram): (NameResolver.prototype._visitTypeParametersAndBuildNameContext): (NameResolver.prototype.visitFunc): (NameResolver.prototype.visitFuncDef): (NameResolver.prototype.visitBlock): (NameResolver.prototype.visitProtocolDecl): (NameResolver.prototype.visitTypeDef): (NameResolver.prototype.visitStructType): (NameResolver.prototype._resolveTypeArguments): (NameResolver.prototype.visitTypeRef): (NameResolver.prototype.visitReferenceType): (NameResolver.prototype.visitVariableRef): (NameResolver.prototype.visitReturn): (NameResolver.prototype.visitCallExpression): * ArrayLangRI/NativeFunc.js: Added. (NativeFunc): (NativeFunc.prototype.get origin): (NativeFunc.prototype.get isNative): (NativeFunc.prototype.toString): * ArrayLangRI/NativeType.js: Added. (NativeType): (NativeType.prototype.get origin): (NativeType.prototype.get name): (NativeType.prototype.get isPrimitive): (NativeType.prototype.get typeParameters): (NativeType.prototype.get isNative): (NativeType.prototype.instantiate): (NativeType.prototype.toString): * ArrayLangRI/NativeTypeInstance.js: Added. (NativeTypeInstance): (NativeTypeInstance.prototype.get type): (NativeTypeInstance.prototype.get typeArguments): (NativeTypeInstance.prototype.get isPrimitive): (NativeTypeInstance.prototype.get isNative): (NativeTypeInstance.prototype.unifyImpl): (NativeTypeInstance.prototype.toString): * ArrayLangRI/Node.js: Added. (Node.prototype.visit): (Node.unify): (Node.prototype.unifyImpl): (Node.prototype.typeVariableUnify): (Node.prototype.get unifyNode): (Node.prototype.get isUnifiable): (Node.prototype.get isNative): (Node.prototype.equals): (Node.prototype.substitute): (Node.prototype.substituteToUnification): (Node): * ArrayLangRI/NullType.js: Added. (NullType): * ArrayLangRI/Parse.js: Added. (genericConsume): (consume): (genericTest): (test): (tryConsumeKind): (parseProtocolRef): (consumeEndOfTypeArgs): (parseTypeParameters): (parseTerm): (parseConstexpr): (parseTypeArguments): (parseType.getAddressSpace): (parseType): (parseTypeDef): (parseNative): (genericParseLeft): (parseLeftOperatorCall): (parsePossibleSuffix): (parsePossiblePrefix): (parsePossibleProduct): (parsePossibleSum): (parsePossibleShift): (parsePossibleRelationalInequality): (parsePossibleRelationalEquality): (parsePossibleBitwiseXor): (parsePossibleBitwiseOr): (parseLeftLogicalExpression): (parsePossibleLogicalOr): (parsePossibleTernaryConditional): (parsePossibleAssignment): (parseAssignment): (parseEffectfulExpression): (genericParseCommaExpression): (parseCommaExpression): (parseExpression): (parseEffectfulStatement): (parseReturn): (parseVariableDecls): (parseStatement): (parseBlock): (parseParameter): (parseFuncName): (parseFuncDef): (parse): * ArrayLangRI/Prepare.js: Added. (prepare): * ArrayLangRI/Program.js: Added. (Program): (Program.prototype.get topLevelStatements): (Program.prototype.get functions): (Program.prototype.get types): (Program.prototype.get funcInstantiator): (Program.prototype.add): (Program.prototype.resolveFuncOverload): (Program.prototype.get nameContext): (Program.prototype.toString): * ArrayLangRI/Protocol.js: Added. (Protocol): (Protocol.prototype.get origin): (Protocol.prototype.get name): (Protocol.prototype.get kind): (Protocol.prototype.toString): * ArrayLangRI/ProtocolDecl.js: Added. (ProtocolDecl): (ProtocolDecl.prototype.addSignature): (ProtocolDecl.prototype.get signatures): (ProtocolDecl.prototype.signaturesByName): (ProtocolDecl.prototype.get typeVariable): (ProtocolDecl.prototype.signaturesByNameWithTypeVariable): (ProtocolDecl.prototype.inherits): (ProtocolDecl.prototype.hasHeir): (ProtocolDecl.prototype.toString): * ArrayLangRI/ProtocolRef.js: Added. (ProtocolRef): (ProtocolRef.prototype.inherits): (ProtocolRef.prototype.hasHeir): * ArrayLangRI/PtrType.js: Added. (PtrType.prototype.unifyImpl): (PtrType.prototype.toString): (PtrType): * ArrayLangRI/ReferenceType.js: Added. (ReferenceType): (ReferenceType.prototype.get origin): (ReferenceType.prototype.get addressSpace): (ReferenceType.prototype.get elementType): (ReferenceType.prototype.get isPrimitive): (ReferenceType.prototype.get size): * ArrayLangRI/ResolveNames.js: Added. (resolveNames): * ArrayLangRI/ResolveOverloadImpl.js: Added. (resolveOverloadImpl): * ArrayLangRI/ResolveTypeDefs.js: Added. (resolveTypeDefs): * ArrayLangRI/Return.js: Added. (Return): (Return.prototype.get origin): (Return.prototype.get value): (Return.prototype.toString): * ArrayLangRI/ReturnException.js: Added. (ReturnException): (ReturnException.prototype.get value): * ArrayLangRI/Rewriter.js: Added. (Rewriter): (Rewriter.prototype._map): (Rewriter.prototype._getMapping): (Rewriter.prototype.visitFunc): (Rewriter.prototype.visitFuncParameter): (Rewriter.prototype.visitBlock): (Rewriter.prototype.visitCommaExpression): (Rewriter.prototype.visitProtocolRef): (Rewriter.prototype.visitTypeRef): (Rewriter.prototype.visitTypeVariable): (Rewriter.prototype.visitConstexprTypeParameter): (Rewriter.prototype.visitField): (Rewriter.prototype.visitReferenceType): (Rewriter.visitPtrType): (Rewriter.prototype.visitArrayRefType): (Rewriter.prototype.visitArrayType): (Rewriter.prototype.visitAssignment): (Rewriter.prototype.visitVariableRef): (Rewriter.prototype.visitReturn): (Rewriter.prototype.visitIntLiteral): (Rewriter.prototype.visitCallExpression): (Rewriter.prototype.visitFunctionLikeBlock): * ArrayLangRI/StandardLibrary.js: Added. * ArrayLangRI/StructType.js: Added. (StructType): (StructType.prototype.add): (StructType.prototype.get name): (StructType.prototype.get typeParameters): (StructType.prototype.get fieldNames): (StructType.prototype.fieldByName): (StructType.prototype.get fields): (StructType.prototype.get fieldMap): (StructType.prototype.get isPrimitive): (StructType.prototype.instantiate): (StructType.prototype.toString): * ArrayLangRI/Substitution.js: Added. (Substitution): (Substitution.mapping): (Substitution.prototype.visitTypeRef): (Substitution.prototype.visitVariableRef): * ArrayLangRI/SuffixCallAssignment.js: Added. (SuffixCallAssignment): (SuffixCallAssignment.prototype.get name): (SuffixCallAssignment.prototype.get lhs): (SuffixCallAssignment.prototype.toString): * ArrayLangRI/Test.js: Added. (load): * ArrayLangRI/Type.js: Added. (Type.prototype.get typeParameters): (Type.prototype.get kind): (Type.prototype.inherits): (Type.prototype.get instantiatedType): (Type): * ArrayLangRI/TypeDef.js: Added. (TypeDef): (TypeDef.prototype.get origin): (TypeDef.prototype.get name): (TypeDef.prototype.get typeParameters): (TypeDef.prototype.get type): * ArrayLangRI/TypeDefResolver.js: Added. (TypeDefResolver): (TypeDefResolver.prototype.visitTypeRef): * ArrayLangRI/TypeOrVariableRef.js: Added. (TypeOrVariableRef): (TypeOrVariableRef.prototype.get origin): (TypeOrVariableRef.prototype.get name): (TypeOrVariableRef.prototype.toString): * ArrayLangRI/TypeRef.js: Added. (TypeRef): (TypeRef.wrap): (TypeRef.prototype.get origin): (TypeRef.prototype.get name): (TypeRef.prototype.get typeArguments): (TypeRef.prototype.get isPrimitive): (TypeRef.prototype.get instantiatedType): (TypeRef.prototype.get unifyNode): (TypeRef.prototype.populateDefaultValue): (TypeRef.prototype.get size): (TypeRef.prototype.setTypeAndArguments): (TypeRef.prototype.unifyImpl): (TypeRef.prototype.toString): * ArrayLangRI/TypeVariable.js: Added. (TypeVariable): (TypeVariable.prototype.get name): (TypeVariable.prototype.get protocol): (TypeVariable.prototype.get isPrimitive): (TypeVariable.prototype.get isUnifiable): (TypeVariable.prototype.inherits): (TypeVariable.prototype.typeVariableUnify): (TypeVariable.prototype.unifyImpl): (TypeVariable.prototype.verifyAsArgument): (TypeVariable.prototype.verifyAsParameter): (TypeVariable.prototype.toString): * ArrayLangRI/UnificationContext.js: Added. (UnificationContext): (UnificationContext.prototype.union): (UnificationContext.prototype.find): (UnificationContext.prototype.get nodes): (UnificationContext.prototype.verify): (UnificationContext.prototype.isUnunified): * ArrayLangRI/Value.js: Added. (Value.prototype.get kind): (Value.prototype.get isConstexpr): (Value): * ArrayLangRI/VariableDecl.js: Added. (VariableDecl): (VariableDecl.prototype.get origin): (VariableDecl.prototype.get name): (VariableDecl.prototype.get type): (VariableDecl.prototype.get initializer): (VariableDecl.prototype.toString): * ArrayLangRI/VariableRef.js: Added. (VariableRef): (VariableRef.prototype.get name): (VariableRef.prototype.get isConstexpr): (VariableRef.prototype.get unifyNode): (VariableRef.prototype.toString): * ArrayLangRI/VisitingSet.js: Added. (VisitingSet): (VisitingSet.prototype.doVisit): * ArrayLangRI/Visitor.js: Added. (Visitor.prototype.visitProgram): (Visitor.prototype.visitFunc): (Visitor.prototype.visitFuncParameter): (Visitor.prototype.visitFuncDef): (Visitor.prototype.visitNativeFunc): (Visitor.prototype.visitBlock): (Visitor.prototype.visitCommaExpression): (Visitor.prototype.visitProtocolRef): (Visitor.prototype.visitProtocolDecl): (Visitor.prototype.visitTypeRef): (Visitor.prototype.visitNativeType): (Visitor.prototype.visitTypeDef): (Visitor.prototype.visitStructType): (Visitor.prototype.visitTypeVariable): (Visitor.prototype.visitConstexprTypeParameter): (Visitor.prototype.visitField): (Visitor.prototype.visitElementalType): (Visitor.prototype.visitPtrType): (Visitor.prototype.visitArrayRefType): (Visitor.prototype.visitArrayType): (Visitor.prototype.visitAssignment): (Visitor.prototype.visitVariableRef): (Visitor.prototype.visitReturn): (Visitor.prototype.visitIntLiteral): (Visitor.prototype.visitCallExpression): (Visitor.prototype.visitFunctionLikeBlock): (Visitor): 2017-08-30 Stephan Szabo [Win][JSCOnly] Support running JSC tests for win-cairo from windows command prompt https://bugs.webkit.org/show_bug.cgi?id=174985 Reviewed by Keith Miller. * Scripts/run-javascriptcore-tests: * Scripts/run-jsc-stress-tests: * Scripts/webkitruby/jsc-stress-test-writer-default.rb: * Scripts/webkitruby/jsc-stress-test-writer-ruby.rb: Added. 2017-08-30 Adrian Perez de Castro [GTK] Do not use autogen whenever possible in JHBuild modules https://bugs.webkit.org/show_bug.cgi?id=176098 Reviewed by Carlos Alberto Lopez Perez. * gtk/jhbuild.modules: Added autogen-sh="configure" attributes for many Autootools modules. 2017-08-30 Tomas Popela [GTK] Avoid building fontconfig documentation in jhbuild https://bugs.webkit.org/show_bug.cgi?id=176097 Reviewed by Carlos Alberto Lopez Perez. Disable building fontconfig documentation in jhbuild as it needs the docbook-utils-pdf package installed which depends on quite a few packages (on Fedora it's 226 packages (mostly textlive) with installed size of 274 MB). The documentation is not needed at all in jhbuild, so disable it to save some bandwidth and disc space. * gtk/install-dependencies: Pass --disable-docs to fontconfig. * gtk/jhbuild.modules: Don't install docbook-utils-pdf on Fedora. 2017-08-30 Tomas Popela Unreviewed, remove trailing space * gtk/jhbuildrc: 2017-08-29 Carlos Garcia Campos REGRESSION(r221064): [GTK] Editor not correctly working after r221064 https://bugs.webkit.org/show_bug.cgi?id=176052 Reviewed by Michael Catanzaro. Run the test inside a window to ensure display updates happen. * TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp: (testWebViewEditorEditorStateTypingAttributes): 2017-08-29 Don Olmstead [CMake] Use find_package for zlib https://bugs.webkit.org/show_bug.cgi?id=176075 Reviewed by Alex Christensen. * TestWebKitAPI/PlatformWin.cmake: 2017-08-29 Brent Fulgham ResourceLoadStatistics logic does not understand custom WebsiteData stores https://bugs.webkit.org/show_bug.cgi?id=176037 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm: (TEST): Update for ResourceLoadStatistics directories. 2017-08-29 Brady Eidson Rename "potentionally trustworthy" to "potentially trustworthy" https://bugs.webkit.org/show_bug.cgi?id=176081 Reviewed by Daniel Bates. * TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp: (TestWebKitAPI::TEST_F): 2017-08-29 Stephan Szabo [Win][JSCOnly] Fix call for updating wincairo-libs in build-jsc https://bugs.webkit.org/show_bug.cgi?id=176080 Reviewed by Brent Fulgham. * Scripts/build-jsc: 2017-08-29 Adrian Perez de Castro [WPE] Avoid using autogen for JHBuild modules, trying to fix the EWS Unreviewed build fix. This also makes the JHBuild process faster, because there are less modules which will trigger slow, ancient Perl and M4 based tooling. * wpe/jhbuild.modules: 2017-08-29 Don Olmstead [CMake] Use find_package for libxml2 and libxstl https://bugs.webkit.org/show_bug.cgi?id=176042 Reviewed by Konstantin Tokarev. * TestWebKitAPI/PlatformWin.cmake: 2017-08-29 Per Arne Vollan [Win] A WTF test is timing out in run-api-tests. https://bugs.webkit.org/show_bug.cgi?id=176056 Reviewed by Brent Fulgham. The test SynchronizedFixedQueue.ProduceOnly relies on that putting a thread to sleep for 1ms will wake it up before another thread which is put to sleep for 10ms. I believe this is not neccessarily true on Windows where the thread scheduling does not have millisecond accuracy. Fix the test timeout by adjusting the sleep time slightly. * TestWebKitAPI/Tests/WTF/SynchronizedFixedQueue.cpp: (TestWebKitAPI::ToUpperConverter::startProducing): 2017-08-29 Eric Carlson Unreviewed, update my watchlist filters. * Scripts/webkitpy/common/config/watchlist: 2017-08-29 Carlos Garcia Campos Unreviewed. REGRESSION(r221219): Fix unit tests using resources from WebKit directory. The WebKit2 directory was renamed as WebKit in r221219, but neither run-gtk-tests script nor Test::getResourcesDir() were updated to use the new name. * Scripts/run-gtk-tests: (TestRunner._setup_testing_environment): * TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::getResourcesDir): 2017-08-28 Eric Carlson Logger should use makeString instead of String::format https://bugs.webkit.org/show_bug.cgi?id=176035 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::TEST_F): Update test. 2017-08-28 Michael Catanzaro [GStreamer] The glvideoflip GStreamer element isn't available. Video mirroring and rotation functionalities are thus disabled. https://bugs.webkit.org/show_bug.cgi?id=175576 Reviewed by Carlos Alberto Lopez Perez. Build graphene to enable the glvideoflip element. * gstreamer/jhbuild.modules: * gtk/jhbuild.modules: * jhbuild/jhbuild-wrapper: * wpe/jhbuild.modules: 2017-08-28 Ms2ger Ensure that the alert function is called in TestWebExtensions. https://bugs.webkit.org/show_bug.cgi?id=175880 Reviewed by Carlos Garcia Campos. The test relied on a bug in the HTMLDocument JavaScript bindings: when calling document.open() with three arguments, it would call any function set as the "open" property on the window object, rather than just the real Window::open() method. This bug was fixed by the removal of custom bindings for HTMLDocument in r218437. As a result, the test no longer called alert(), which caused it to fail. Instead, call the window.open() function directly. * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: (testWebExtensionIsolatedWorld): 2017-08-27 Wenson Hsieh Picking an emoji via the emoji dialog (Ctrl+Cmd+Space) fires inconsistent beforeinput events. https://bugs.webkit.org/show_bug.cgi?id=170955 Reviewed by Ryosuke Niwa. Replace UIScriptController.insertText with UIScriptController.replaceTextAtRange, and implement replaceTextAtRange in WebKit1. See corresponding layout tests (input-event-insert-replacement.html and before-input-prevent-insert-replacement.html) for more detail. * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: * DumpRenderTree/mac/AppKitTestSPI.h: Added. Introduce an SPI header for private AppKit headers needed to support DumpRenderTree. * DumpRenderTree/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::replaceTextAtRange): (WTR::UIScriptController::insertText): Deleted. * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: * TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::replaceTextAtRange): (WTR::UIScriptController::insertText): Deleted. * TestRunnerShared/UIScriptContext/UIScriptController.h: * WebKitTestRunner/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::replaceTextAtRange): (WTR::UIScriptController::insertText): Deleted. Replace UIScriptController.insertText with UIScriptController.replaceTextAtRange, which better describes the behavior of this function. 2017-08-27 Wenson Hsieh [iOS WK2] Web process crashes after changing selection to the end of the document when speaking a selection https://bugs.webkit.org/show_bug.cgi?id=176011 Reviewed by Ryosuke Niwa. Introduces AccessibilityTests, and adds three new tests that traverse selection-rect-finding codepaths when speaking selected content. See WebKit and WebCore ChangeLogs for more detail. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm: Added. (-[WKWebView rectsAtSelectionOffset:withText:]): (checkCGRectValueAtIndex): (TestWebKitAPI::TEST): 2017-08-25 Eric Carlson Add Logger::logAlways https://bugs.webkit.org/show_bug.cgi?id=175996 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::TEST_F): 2017-08-25 Alex Christensen Disable saveDataToFile API test. https://bugs.webkit.org/show_bug.cgi?id=176000 * TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: The test was only working on High Sierra. It needs investigation on older operating systems. 2017-08-25 Alex Christensen Rename TestWebKitAPI/Tests/WebKit2* to WebKit* following Source directory rename. Rubber-stamped by Brady Eidson. * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLs.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLsPlugin.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLsProtocol.h: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/AllAhem.svg: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/AlwaysRevalidatedURLSchemes.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-shm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-wal: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/AutoLayoutIntegration.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegate.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegatePlugIn.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegateProtocol.h: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleParametersPlugIn.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandlePlugIn.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandleProtocol.h: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/CancelFontSubresource.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/CancelFontSubresourcePlugIn.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/Coding.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.h: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ContentFilteringPlugIn.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/CookieAcceptPolicy.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/CookieMessage.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/Copying.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/DecidePolicyForNavigationAction.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/DoAfterNextPresentationUpdateAfterCrash.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/DownloadRequestBlobURL.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/DownloadRequestOriginalURL.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/DownloadRequestOriginalURL2.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/DownloadRequestOriginalURLFrame.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/DuplicateCompletionHandlerCalls.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/EditorStateTests.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/EmptyGrandfatheredResourceLoadStatistics.plist: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/FindInPage.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/FixedLayoutSize.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenDelegate.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenDelegate.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenLayoutConstraints.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenLayoutConstraints.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/Geolocation.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/GeolocationGetCurrentPositionResult.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3-shm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3-wal: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBIndexUpgradeToV2.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBIndexUpgradeToV2.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexUpgrade.blob: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexUpgrade.sqlite3: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill-1.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess-1.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess-2.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess-3.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence-1.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence-2.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibility.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-shm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-wal: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibilityRead.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibilityWrite.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/InitialWarmedProcessUsed.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/InteractionDeadlockAfterCrash.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LineBreaking.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LoadAlternateHTMLString.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LoadDataWithNilMIMEType.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LoadInvalidURLRequest.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.localstorage: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.localstorage-shm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageQuirkEnabled.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageQuirkTest.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/NSFileManagerExtras.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ObservedRenderingProgressEventsAfterCrash.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/OverrideContentSecurityPolicy.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/PictureInPictureDelegate.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/PictureInPictureDelegate.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/Preferences.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/PrepareForMoveToWindow.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ProvisionalURLNotChange.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/QuickLook.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptions.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptionsPlugIn.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptionsProtocol.h: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ResourceLoadStatistics.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/RunOpenPanel.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ShouldOpenExternalURLsInNewWindowActions.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/ShrinkToFit.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/SnapshotStore.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobThenDelete.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobToBeDeleted.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/UIDelegate.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/UserContentWorld.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/UserContentWorldPlugIn.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/UserContentWorldProtocol.h: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/UserInitiatedActionInNavigationAction.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/VisibleContentRect.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKContentExtensionStore.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKContentViewEditingActions.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKNSNumber.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKObject.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKPDFView.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKPDFViewResizeCrash.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKPDFViewStablePresentationUpdateCallback.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-leaks.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDefaultNavigationDelegate.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDiagnosticLogging.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDoesNotLogDuringInitialization.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewEvaluateJavaScript.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewGetContents.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewSnapshot.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewTextInput.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-1.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-2.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/apple.gif: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/attachment-element.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/autofocus-contenteditable.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/autofocused-text-input.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/autoplaying-video-with-audio.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/background-image-link-and-input.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/blinking-div.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/change-video-source-on-click.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/change-video-source-on-end.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/compressed-files.zip: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-and-target.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-and-textarea.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-in-iframe.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/disableGetUserMedia.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/div-and-large-image.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/double-click-does-not-select-trailing-space.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/dragstart-change-selection-offscreen.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/dragstart-clear-selection.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/duplicate-completion-handler-calls.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/editable-body.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/editor-state-test-harness.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/enormous-video-with-sound.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/enormous.svg: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/file-uploading.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/focus-inputs.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/full-size-autoplaying-video-with-audio.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/gif-and-file-input.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/image-and-contenteditable.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/image-and-textarea.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/image-in-link-and-input.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/image-map.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/input-field-in-scrollable-document.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-input-field-focus-onload.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-red-square.png: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-hides-controls-after-seek-to-end.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-mutes-onplaying.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-offscreen.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-playing-scroll-away.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-seek-after-ending.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-seek-to-beginning-and-play-after-ending.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-test-now-playing.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-with-audio.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-with-audio.mp4: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-video-without-audio.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-autoplaying-click-to-pause.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-autoplaying-scroll-to-video.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-paused-video-hides-controls.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-playing-muted-video-hides-controls.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-playing-video-keeps-controls.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio-autoplay.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/link-and-input.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/link-and-target-div.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/offscreen-iframe-of-media-document.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/open-multiple-external-url.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/page-with-csp-iframe.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/page-with-csp.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/page-without-csp-iframe.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/page-without-csp.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/password-protected.pages: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/play-audio-on-click.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/prevent-operation.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/prevent-start.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/rendered-image-excluding-overflow.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/rich-and-plain-text.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/silence-long.m4a: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/skinny-autoplaying-video-with-audio.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/text-and-password-inputs.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/textarea-to-input.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/two-paragraph-contenteditable.html: Removed. * TestWebKitAPI/Tests/WebKit2Cocoa/wide-autoplaying-video-with-audio.html: Removed. * TestWebKitAPI/Tests/WebKit2Gtk: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/AccessibilityTestServer.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/AutocleanupsTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/DOMClientRectTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/DOMDOMWindowTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/DOMXPathNSResolverTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/EditorTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/InspectorTestServer.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestAutocleanups.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestDOMClientRect.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestDOMDOMWindow.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNodeFilter.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestDOMXPathNSResolver.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestEditor.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestInspector.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestOptionMenu.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestPrinting.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitAccessibility.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitVersion.cpp: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp: Removed. * TestWebKitAPI/Tests/WebKit2ObjC: Removed. * TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme.mm: Removed. * TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm: Removed. * TestWebKitAPI/Tests/WebKit2ObjC/PreventImageLoadWithAutoResizing.mm: Removed. * TestWebKitAPI/Tests/WebKit2ObjC/PreventImageLoadWithAutoResizing_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm: Removed. * TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextGroupTest.mm: Removed. * TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextLoadDelegateTest.mm: Removed. * TestWebKitAPI/Tests/WebKitCocoa: Copied from TestWebKitAPI/Tests/WebKit2Cocoa. * TestWebKitAPI/Tests/WebKitGtk: Copied from TestWebKitAPI/Tests/WebKit2Gtk. * TestWebKitAPI/Tests/WebKitObjC: Copied from TestWebKitAPI/Tests/WebKit2ObjC. * TestWebKitAPI/glib/PlatformGTK.cmake: 2017-08-25 Alex Christensen Rename TestWebKitAPI/Tests/WebKit2 to WebKit following Source directory rename. Rubber-stamped by Brady Eidson. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/PlatformWin.cmake: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit: Copied from TestWebKitAPI/Tests/WebKit2. * TestWebKitAPI/Tests/WebKit2: Removed. * TestWebKitAPI/Tests/WebKit2/18-characters.html: Removed. * TestWebKitAPI/Tests/WebKit2/AboutBlankLoad.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/Ahem.ttf: Removed. * TestWebKitAPI/Tests/WebKit2/CanHandleRequest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/CanHandleRequest_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/CloseFromWithinCreatePage.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/CloseThenTerminate.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/CookieManager.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DeferredViewInWindowStateChange.mm: Removed. * TestWebKitAPI/Tests/WebKit2/DidAssociateFormControls.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DidAssociateFormControls_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DidNotHandleKeyDown.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DidRemoveFrameFromHiearchyInPageCache.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DidRemoveFrameFromHiearchyInPageCache_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/DownloadDecideDestinationCrash.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/EnumerateMediaDevices.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/EnvironmentUtilitiesTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/EphemeralSessionPushStateNoHistoryCallback.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/EventModifiers.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/FailedLoad.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/Find.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/FindMatches.mm: Removed. * TestWebKitAPI/Tests/WebKit2/ForceRepaint.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/FrameHandle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/FrameMIMETypeHTML.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/FrameMIMETypePNG.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/Geolocation.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/GetInjectedBundleInitializationUserDataCallback.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/GetInjectedBundleInitializationUserDataCallback_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/GetUserMediaNavigation.mm: Removed. * TestWebKitAPI/Tests/WebKit2/HitTestResultNodeHandle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/HitTestResultNodeHandle_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/InjectedBundleBasic.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/InjectedBundleBasic_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/InjectedBundleFrameHitTest.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/InjectedBundleFrameHitTest_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/InjectedBundleInitializationUserDataCallbackWins.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/InjectedBundleInitializationUserDataCallbackWins_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/InjectedBundleMakeAllShadowRootsOpen.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/InjectedBundleMakeAllShadowRootsOpen_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/LayoutMilestonesWithAllContentInFrame.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/LimitTitleSize.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/LoadAlternateHTMLStringWithNonDirectoryURL.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/LoadCanceledNoServerRedirectCallback.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/LoadCanceledNoServerRedirectCallback_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/LoadPageOnCrash.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/MediaStreamTrackDetached.mm: Removed. * TestWebKitAPI/Tests/WebKit2/MenuTypesForMouseEvents.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ModalAlertsSPI.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/MouseMoveAfterCrash.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/MouseMoveAfterCrash_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NavigationClientDefaultCrypto.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NetworkProcessCrashWithPendingConnection.mm: Removed. * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayout.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFails.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFails_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutForImages.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutForImages_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFrames.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFrames_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayout_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/PageGroup.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ParentFrame.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ParentFrame_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/PasteboardNotifications.mm: Removed. * TestWebKitAPI/Tests/WebKit2/PasteboardNotifications_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/PendingAPIRequestURL.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/PrivateBrowsingPushStateNoHistoryCallback.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ProcessDidTerminate.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ProvisionalURLAfterWillSendRequestCallback.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ReloadPageAfterCrash.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ResizeReversePaginatedWebView.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ResizeWindowAfterCrash.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ResponsivenessTimer.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ResponsivenessTimerDoesntFireEarly.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ResponsivenessTimerDoesntFireEarly_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/RestoreSessionState.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/RestoreSessionStateContainingFormData.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/RestoreSessionStateWithoutNavigation.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ScrollPinningBehaviors.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ShouldGoToBackForwardListItem.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ShouldGoToBackForwardListItem_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ShouldKeepCurrentBackForwardListItemInList.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/StopLoadingDuringDidFailProvisionalLoad.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/StopLoadingDuringDidFailProvisionalLoad_bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/TerminateTwice.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/UserMedia.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/UserMessage.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/UserMessage_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/ViewportSizeForViewportUnits.mm: Removed. * TestWebKitAPI/Tests/WebKit2/WKBackForwardList.mm: Removed. * TestWebKitAPI/Tests/WebKit2/WKBundleFileHandle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKBundleFileHandle_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKImageCreateCGImageCrash.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKPageConfiguration.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKPageCopySessionStateWithFiltering.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKPageGetScaleFactorNotZero.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKPageIsPlayingAudio.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKRetainPtr.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKString.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKStringJSString.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WKThumbnailView.mm: Removed. * TestWebKitAPI/Tests/WebKit2/WKURL.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WebArchive.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WebArchive_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WebCoreStatisticsWithNoWebProcess.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WillLoad.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WillLoad_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WillSendSubmitEvent.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/WillSendSubmitEvent_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/all-content-in-one-iframe.html: Removed. * TestWebKitAPI/Tests/WebKit2/associate-form-controls.html: Removed. * TestWebKitAPI/Tests/WebKit2/auto-submitting-form.html: Removed. * TestWebKitAPI/Tests/WebKit2/autoplay-check-frame.html: Removed. * TestWebKitAPI/Tests/WebKit2/autoplay-check-in-iframe.html: Removed. * TestWebKitAPI/Tests/WebKit2/autoplay-check.html: Removed. * TestWebKitAPI/Tests/WebKit2/autoplay-inherits-gesture-from-document.html: Removed. * TestWebKitAPI/Tests/WebKit2/autoplay-muted-with-controls.html: Removed. * TestWebKitAPI/Tests/WebKit2/autoplay-no-audio-check.html: Removed. * TestWebKitAPI/Tests/WebKit2/autoplay-with-controls.html: Removed. * TestWebKitAPI/Tests/WebKit2/autoplay-zero-volume-check.html: Removed. * TestWebKitAPI/Tests/WebKit2/bundle-file.html: Removed. * TestWebKitAPI/Tests/WebKit2/chinese-character-with-image.html: Removed. * TestWebKitAPI/Tests/WebKit2/close-from-within-create-page.html: Removed. * TestWebKitAPI/Tests/WebKit2/closed-shadow-tree-test.html: Removed. * TestWebKitAPI/Tests/WebKit2/cocoa: Removed. * TestWebKitAPI/Tests/WebKit2/cocoa/WeakObjCPtr.mm: Removed. * TestWebKitAPI/Tests/WebKit2/contentBlockerCheck.html: Removed. * TestWebKitAPI/Tests/WebKit2/custom-protocol-sync-xhr.html: Removed. * TestWebKitAPI/Tests/WebKit2/encrypted.pdf: Removed. * TestWebKitAPI/Tests/WebKit2/enumerateMediaDevices.html: Removed. * TestWebKitAPI/Tests/WebKit2/execCopy.html: Removed. * TestWebKitAPI/Tests/WebKit2/file-with-anchor.html: Removed. * TestWebKitAPI/Tests/WebKit2/file-with-mse.html: Removed. * TestWebKitAPI/Tests/WebKit2/file-with-video.html: Removed. * TestWebKitAPI/Tests/WebKit2/find.html: Removed. * TestWebKitAPI/Tests/WebKit2/findRanges.html: Removed. * TestWebKitAPI/Tests/WebKit2/geolocationGetCurrentPosition.html: Removed. * TestWebKitAPI/Tests/WebKit2/geolocationGetCurrentPositionWithHighAccuracy.html: Removed. * TestWebKitAPI/Tests/WebKit2/geolocationWatchPosition.html: Removed. * TestWebKitAPI/Tests/WebKit2/geolocationWatchPositionWithHighAccuracy.html: Removed. * TestWebKitAPI/Tests/WebKit2/getUserMedia.html: Removed. * TestWebKitAPI/Tests/WebKit2/gtk: Removed. * TestWebKitAPI/Tests/WebKit2/gtk/InputMethodFilter.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/icon.png: Removed. * TestWebKitAPI/Tests/WebKit2/input-focus-blur.html: Removed. * TestWebKitAPI/Tests/WebKit2/js-autoplay-audio.html: Removed. * TestWebKitAPI/Tests/WebKit2/js-play-with-controls.html: Removed. * TestWebKitAPI/Tests/WebKit2/large-red-square-image.html: Removed. * TestWebKitAPI/Tests/WebKit2/link-with-download-attribute-with-slashes.html: Removed. * TestWebKitAPI/Tests/WebKit2/link-with-download-attribute.html: Removed. * TestWebKitAPI/Tests/WebKit2/link-with-title.html: Removed. * TestWebKitAPI/Tests/WebKit2/lots-of-iframes.html: Removed. * TestWebKitAPI/Tests/WebKit2/lots-of-images.html: Removed. * TestWebKitAPI/Tests/WebKit2/lots-of-text-vertical-lr.html: Removed. * TestWebKitAPI/Tests/WebKit2/lots-of-text.html: Removed. * TestWebKitAPI/Tests/WebKit2/mac: Removed. * TestWebKitAPI/Tests/WebKit2/mac/AttributedSubstringForProposedRangeWithImage.mm: Removed. * TestWebKitAPI/Tests/WebKit2/mac/ContextMenuDownload.mm: Removed. * TestWebKitAPI/Tests/WebKit2/mac/EditorCommands.mm: Removed. * TestWebKitAPI/Tests/WebKit2/mac/GetBackingScaleFactor.mm: Removed. * TestWebKitAPI/Tests/WebKit2/mac/GetBackingScaleFactor_Bundle.mm: Removed. * TestWebKitAPI/Tests/WebKit2/mac/GetPIDAfterAbortedProcessLaunch.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/mac/InjectedBundleAppleEvent.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/mac/InjectedBundleAppleEvent_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/mac/RestoreStateAfterTermination.mm: Removed. * TestWebKitAPI/Tests/WebKit2/many-iframes.html: Removed. * TestWebKitAPI/Tests/WebKit2/mediastreamtrack-detached.html: Removed. * TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html: Removed. * TestWebKitAPI/Tests/WebKit2/mouse-button-listener.html: Removed. * TestWebKitAPI/Tests/WebKit2/mouse-move-listener.html: Removed. * TestWebKitAPI/Tests/WebKit2/navigation-client-default-crypto.html: Removed. * TestWebKitAPI/Tests/WebKit2/no-autoplay-with-controls.html: Removed. * TestWebKitAPI/Tests/WebKit2/open-and-close-window.html: Removed. * TestWebKitAPI/Tests/WebKit2/push-state.html: Removed. * TestWebKitAPI/Tests/WebKit2/set-long-title.html: Removed. * TestWebKitAPI/Tests/WebKit2/should-open-external-schemes.html: Removed. * TestWebKitAPI/Tests/WebKit2/simple-accelerated-compositing.html: Removed. * TestWebKitAPI/Tests/WebKit2/simple-form.html: Removed. * TestWebKitAPI/Tests/WebKit2/simple-iframe.html: Removed. * TestWebKitAPI/Tests/WebKit2/simple-tall.html: Removed. * TestWebKitAPI/Tests/WebKit2/simple.html: Removed. * TestWebKitAPI/Tests/WebKit2/simple2.html: Removed. * TestWebKitAPI/Tests/WebKit2/simple3.html: Removed. * TestWebKitAPI/Tests/WebKit2/spacebar-scrolling.html: Removed. * TestWebKitAPI/Tests/WebKit2/test-mse.mp4: Removed. * TestWebKitAPI/Tests/WebKit2/test-without-audio-track.mp4: Removed. * TestWebKitAPI/Tests/WebKit2/test.mp4: Removed. * TestWebKitAPI/Tests/WebKit2/test.pdf: Removed. * TestWebKitAPI/Tests/WebKit2/webfont.html: Removed. 2017-08-25 Alex Christensen Rename TestWebKitAPI/Tests/WebKit to WebKitLegacy following Source directory rename. Rubber-stamped by Brady Eidson. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit: Removed. * TestWebKitAPI/Tests/WebKit/ios: Removed. * TestWebKitAPI/Tests/WebKit/ios/AudioSessionCategoryIOS.mm: Removed. * TestWebKitAPI/Tests/WebKit/ios/SnapshotViaRenderInContext.mm: Removed. * TestWebKitAPI/Tests/WebKit/ios/audio-only.html: Removed. * TestWebKitAPI/Tests/WebKit/ios/video-with-audio.html: Removed. * TestWebKitAPI/Tests/WebKit/ios/video-with-audio.mp4: Removed. * TestWebKitAPI/Tests/WebKit/ios/video-with-muted-audio-and-webaudio.html: Removed. * TestWebKitAPI/Tests/WebKit/ios/video-with-muted-audio.html: Removed. * TestWebKitAPI/Tests/WebKit/ios/video-without-audio.html: Removed. * TestWebKitAPI/Tests/WebKit/ios/video-without-audio.mp4: Removed. * TestWebKitAPI/Tests/WebKit/win: Removed. * TestWebKitAPI/Tests/WebKit/win/ScaleWebView.cpp: Removed. * TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp: Removed. * TestWebKitAPI/Tests/WebKitLegacy: Copied from TestWebKitAPI/Tests/WebKit. 2017-08-25 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's saveDataToFileInDownloadsFolder https://bugs.webkit.org/show_bug.cgi?id=176000 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/UIDelegate.mm: (-[FocusDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): (-[SaveDataToFileDelegate _webView:saveDataToFile:suggestedFilename:mimeType:originatingURL:]): (-[SaveDataToFileDelegate webView:didFinishNavigation:]): 2017-08-25 Youenn Fablet WPT server should not need to copy test harness files https://bugs.webkit.org/show_bug.cgi?id=175938 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (WebPlatformTestServer.__init__): Stopping explicit resource files copy when launching the WPT server. Use aliases instead. 2017-08-25 Eric Carlson Add String::format variant that takes va_args https://bugs.webkit.org/show_bug.cgi?id=175988 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WTF/WTFString.cpp: (TestWebKitAPI::testWithFormatAndArguments): (TestWebKitAPI::TEST): 2017-08-25 Jonathan Bedard Follow-up Internal build fix for r221187 https://bugs.webkit.org/show_bug.cgi?id=175960 Unreviewed build fix. * TestWebKitAPI/ios/DataInteractionSimulator.h: Move UIItemProvider declaration into #if block. 2017-08-25 Don Olmstead [WinCairo] Use GitHub releases for WinCairoRequirements https://bugs.webkit.org/show_bug.cgi?id=175972 Reviewed by Brent Fulgham. * Scripts/build-webkit: (cMakeArgsFromFeatures): Deleted. (writeCongrats): Deleted. * Scripts/download-latest-github-release.py: (Status): (parse_args): (main): * Scripts/update-webkit-wincairo-libs.py: Renamed from Tools/Scripts/update-webkit-wincairo-libs. 2017-08-25 Jonathan Bedard Fix build breakage with Public iOS 11 SDK https://bugs.webkit.org/show_bug.cgi?id=175960 Reviewed by Wenson Hsieh. * TestWebKitAPI/ios/DataInteractionSimulator.h: Add UIItemProvider declaration. 2017-08-24 Chris Dumez [Directory Upload] Add basic support for input.webkitdirectory https://bugs.webkit.org/show_bug.cgi?id=175950 Reviewed by Geoffrey Garen. * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): Enable Directory Upload feature for testing, given that it is currently disabled by default. (WTR::runOpenPanel): Print additional text when directories are allowed to extend testing coverage. 2017-08-24 Alex Christensen Add WKUIDelegatePrivate equivalent of WKPageUIClient's handleAutoplayEvent https://bugs.webkit.org/show_bug.cgi?id=175965 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/UIDelegate.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm: (-[AutoplayPoliciesDelegate _webView:handleAutoplayEvent:withFlags:]): (TEST): (handleAutoplayEvent): Deleted. 2017-08-24 Alex Christensen didNotHandleWheelEvent test times out https://bugs.webkit.org/show_bug.cgi?id=175967 * TestWebKitAPI/Tests/WebKit2Cocoa/UIDelegate.mm: Skip the test until WebCore's wheel event handling is reliable enough to test. 2017-08-24 Jonathan Bedard Update configure-xcode-for-ios-development for iOS 11 https://bugs.webkit.org/show_bug.cgi?id=173937 Reviewed by Daniel Bates. Xcode 9 has removed the following headers from the iOS 11 Simulator SDK: /usr/include/crt_externs.h /usr/include/mach/mach_types.defs /usr/include/mach/machine/machine_types.defs /usr/include/mach/std_types.defs /usr/include/objc/objc-class.h /usr/include/objc/objc-runtime.h /usr/include/objc/Protocol.h /usr/include/readline/history.h /usr/include/readline/readline.h To solve this problem, configure-xcode-for-ios-development copies these headers from the active macOS SDK into the iOS Simulator SDK. * Scripts/configure-xcode-for-ios-development: (copyMissingHeadersFromSDKToSDKIfNeeded): Copy all missing header from one SDK into another if those headers do not exist in the destination SDK. (copyMissingHeadersToIPhoneOSSDKIfNeeded): Deleted. 2017-08-24 Alex Christensen Add WKUIDelegatePrivate callback corresponding to PageUIClient's didNotHandleWheelEvent https://bugs.webkit.org/show_bug.cgi?id=175957 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKit2Cocoa/UIDelegate.mm: (synthesizeWheelEvents): (-[WheelDelegate _webView:didNotHandleWheelEvent:]): (-[WheelDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-08-24 Tim Horton Layout size override changes during in-flight animated resize are dropped on the floor forever https://bugs.webkit.org/show_bug.cgi?id=175916 Reviewed by Beth Dakin. * TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: (TEST): Add a test ensuring that override layout size changes during an animated resize actually take effect. 2017-08-23 Matt Lewis Disabled VideoControlsManagerMultipleVideosSwitchControlledVideoWhenScrolling. https://bugs.webkit.org/show_bug.cgi?id=175909 Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm: (TestWebKitAPI::TEST): 2017-08-24 Don Olmstead [CMake] Use find_package for SQLite https://bugs.webkit.org/show_bug.cgi?id=175803 Reviewed by Konstantin Tokarev. * TestWebKitAPI/PlatformWin.cmake: 2017-08-23 Jonathan Bedard Leaking CARenderServerBuffer in PlatformWebView::windowSnapshotImage() https://bugs.webkit.org/show_bug.cgi?id=175905 Reviewed by Tim Horton. * WebKitTestRunner/ios/PlatformWebViewIOS.mm: (WTR::PlatformWebView::windowSnapshotImage): Pass CARenderServerBuffer to CGDataProviderCreateWithData so that the buffer can be destroyed. 2017-08-23 Alex Christensen Add WKUIDelegatePrivate callbacks corresponding to WKPageUIClient's takeFocus, focus, and unfocus https://bugs.webkit.org/show_bug.cgi?id=175896 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/UIDelegate.mm: (-[UITestDelegate _showWebView:]): (TEST): (tabEvent): (synthesizeTab): (-[FocusDelegate _webView:takeFocus:]): (-[FocusDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (-[UITestDelegate _webViewShow:]): Deleted. 2017-08-23 Eric Carlson Platform code should be able to safely log in release builds https://bugs.webkit.org/show_bug.cgi?id=175854 Reviewed by Jer Noble. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::TEST_F): 2017-08-23 Jonathan Bedard Access expectations path through apple_additions https://bugs.webkit.org/show_bug.cgi?id=174800 Unreviewed follow-up fix for r221087. * Scripts/webkitpy/port/ios.py: (IOSPort._apple_additions_path): Use iOS mapping instead of Mac mapping. 2017-08-23 Jonathan Bedard Access expectations path through apple_additions https://bugs.webkit.org/show_bug.cgi?id=174800 Reviewed by David Kilzer. Follow-up fix. Mapping of operating system names was done incorrectly. * Scripts/webkitpy/port/ios.py: (IOSPort._apple_additions_path): Correctly find the operating system to be replaced. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest.test_layout_test_searchpath_with_apple_additions): Add test for operating system name replacement. * Scripts/webkitpy/port/ios_simulator_unittest.py: (IOSSimulatorTest.test_layout_test_searchpath_with_apple_additions): Add test for operating system name replacement. * Scripts/webkitpy/port/mac.py: Correctly find the operating system to be replaced. (MacPort._apple_additions_path): * Scripts/webkitpy/port/mac_unittest.py: (MacTest.test_layout_test_searchpath_with_apple_additions): Add test for operating system name replacement. * Scripts/webkitpy/port/port_testcase.py: (bind_mock_apple_additions.MockAppleAdditions.ios_os_name): Change the passed name so that operating system name replacement can be tested. (bind_mock_apple_additions.MockAppleAdditions.mac_os_name): Ditto. 2017-08-23 Jonathan Bedard Access expectations path through apple_additions https://bugs.webkit.org/show_bug.cgi?id=174800 Reviewed by Alexey Proskuryakov. When external test expectations are imported through additional-platform-directory, they will over-write any WebKit expectations. Access some expectations from apple_additions to correct these precedence issues. * Scripts/webkitpy/port/ios.py: (IOSPort._apple_additions_path): Convert test expectation directory to a path coming from apple_additions. (IOSPort.default_baseline_search_path): Alternate between WebKit path and apple_additions path for layout test expectations. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest.test_layout_test_searchpath_with_apple_additions): Added to test layout-test search paths. * Scripts/webkitpy/port/ios_simulator_unittest.py: (IOSSimulatorTest.test_layout_test_searchpath_with_apple_additions): Added to test layout-test search paths. * Scripts/webkitpy/port/mac.py: (MacPort._apple_additions_path): Convert test expectation directory to a path coming from apple_additions. (MacPort.default_baseline_search_path): Alternate between WebKit path and apple_additions path for layout test expectations. * Scripts/webkitpy/port/mac_unittest.py: (MacTest.test_layout_test_searchpath_with_apple_additions): Added to test layout-test search paths. * Scripts/webkitpy/port/port_testcase.py: (bind_mock_apple_additions): Added to create mock apple_additions for a block. (bind_mock_apple_additions.MockAppleAdditions): Contains apple_addition stubs for testing. * Scripts/webkitpy/port/win.py: (WinPort.default_baseline_search_path): Include apple_additions test expectation for Windows. 2017-08-22 Zan Dobersek Unreviewed. The WPE port should build TestWebKitAPI with the same compiler flags as the GTK+ port, disabling a few flags that are sprouting a lot of warning output. * TestWebKitAPI/PlatformWPE.cmake: 2017-08-20 Wenson Hsieh [iOS WK2] WKWebView schedules nonstop layout after pressing cmb+b,i,u inside a contenteditable div https://bugs.webkit.org/show_bug.cgi?id=175116 Reviewed by Darin Adler and Ryosuke Niwa. Introduces new testing infrastructure and API tests to test EditorState updates in the UI process. The new EditorStateTests run on both iOS and Mac. * TestWebKitAPI/EditingTestHarness.h: Added. * TestWebKitAPI/EditingTestHarness.mm: Added. EditingTestHarness is a helper object that API tests may use to apply editing commands and store EditorState history. This test harness adds sugaring around various editing commands, and simplifies the process of checking the state of the latest observed EditorState. (-[EditingTestHarness initWithWebView:]): (-[EditingTestHarness dealloc]): (-[EditingTestHarness webView]): (-[EditingTestHarness latestEditorState]): (-[EditingTestHarness editorStateHistory]): (-[EditingTestHarness insertText:andExpectEditorStateWith:]): (-[EditingTestHarness insertHTML:andExpectEditorStateWith:]): (-[EditingTestHarness selectAllAndExpectEditorStateWith:]): (-[EditingTestHarness moveBackwardAndExpectEditorStateWith:]): (-[EditingTestHarness moveWordBackwardAndExpectEditorStateWith:]): (-[EditingTestHarness toggleBold]): (-[EditingTestHarness toggleItalic]): (-[EditingTestHarness toggleUnderline]): (-[EditingTestHarness setForegroundColor:]): (-[EditingTestHarness alignJustifiedAndExpectEditorStateWith:]): (-[EditingTestHarness alignLeftAndExpectEditorStateWith:]): (-[EditingTestHarness alignCenterAndExpectEditorStateWith:]): (-[EditingTestHarness alignRightAndExpectEditorStateWith:]): (-[EditingTestHarness insertParagraphAndExpectEditorStateWith:]): (-[EditingTestHarness deleteBackwardAndExpectEditorStateWith:]): (-[EditingTestHarness _execCommand:argument:expectEntries:]): Dispatches an editing command to the web process, and blocks until a response is received. If an expected entries dictionary is given, this will additionally verify that the latest EditorState contains all the expected keys and values. (-[EditingTestHarness latestEditorStateContains:]): (-[EditingTestHarness _webView:editorStateDidChange:]): * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/EditorStateTests.mm: Added. (TestWebKitAPI::setUpEditorStateTestHarness): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/editor-state-test-harness.html: Added. 2017-08-22 Wenson Hsieh [WK2] EditorState updates should be rolled into the layer update lifecycle when possible https://bugs.webkit.org/show_bug.cgi?id=175370 Reviewed by Ryosuke Niwa. Tweaks API tests that involve editing to wait for a presentation update before checking against UI process-side information sent via EditorState updates. This allows any EditorState update scheduled by the test to propagate to the UI process. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm: (-[CandidateTestWebView typeString:inputMessage:]): (+[CandidateTestWebView setUpWithFrame:testPage:]): * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewTextInput.mm: * TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm: (TestWebKitAPI::AcceptsFirstMouse::runTest): * TestWebKitAPI/Tests/mac/WKWebViewMacEditingTests.mm: * TestWebKitAPI/cocoa/TestWKWebView.h: * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView waitForNextPresentationUpdate]): Add a new helper method to spin until the next presentation update. * TestWebKitAPI/mac/WebKitAgnosticTest.h: * TestWebKitAPI/mac/WebKitAgnosticTest.mm: (TestWebKitAPI::WebKitAgnosticTest::waitForNextPresentationUpdate): 2017-08-22 Alex Christensen Add UIDelegatePrivate SPI corresponding to WKPageUIClient.showPage https://bugs.webkit.org/show_bug.cgi?id=175797 Reviewed by Geoffrey Garen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/UIDelegate.mm: Added. (-[UITestDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (-[UITestDelegate _showPage:]): (-[UITestDelegate webView:startURLSchemeTask:]): (-[UITestDelegate webView:stopURLSchemeTask:]): (TEST): 2017-08-22 Devin Rousso Unreviewed, change my IRC nick. * Scripts/webkitpy/common/config/contributors.json: 2017-08-22 Matt Lewis Unreviewed, rolling out r221026. This caused a consistent API failure on iOS Simulator. Reverted changeset: "Add UIDelegatePrivate SPI corresponding to WKPageUIClient.showPage" https://bugs.webkit.org/show_bug.cgi?id=175797 http://trac.webkit.org/changeset/221026 2017-08-22 Alex Christensen Add UIDelegatePrivate SPI corresponding to WKPageUIClient.showPage https://bugs.webkit.org/show_bug.cgi?id=175797 Reviewed by Geoffrey Garen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/UIDelegate.mm: Added. (-[UITestDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (-[UITestDelegate _showPage:]): (-[UITestDelegate webView:startURLSchemeTask:]): (-[UITestDelegate webView:stopURLSchemeTask:]): (TEST): 2017-08-22 Jonathan Bedard Fix leak-checking for iOS Simulators https://bugs.webkit.org/show_bug.cgi?id=175735 Reviewed by David Kilzer. Follow-up fix to r220942. _proc may be undefined. * Scripts/webkitpy/port/server_process.py: (ServerProcess._wait_for_stop): Handle case where _proc is undefined. 2017-08-22 Carlos Alberto Lopez Perez [GTK][WPE] install-dependencies should install the required gstreamer packages needed for production builds. https://bugs.webkit.org/show_bug.cgi?id=175822 Reviewed by Xabier Rodriguez-Calvar. * gtk/install-dependencies: Add the bad plugins to the list. * wpe/install-dependencies: Add all the gst related packages (copied from GTK listing). 2017-08-21 Myles C. Maxfield DataInteractionTests.ExternalSourceAttributedStringToContentEditable hits a debug assertion https://bugs.webkit.org/show_bug.cgi?id=175787 Reviewed by Wenson Hsieh. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-08-21 Myles C. Maxfield Typo in "webkit-patch land" https://bugs.webkit.org/show_bug.cgi?id=175788 Reviewed by Tim Horton. * Scripts/webkitpy/tool/steps/commit.py: (Commit._commit_warning): 2017-08-20 Sam Weinig StringView could use a function to strip leading/trailing characters without allocation https://bugs.webkit.org/show_bug.cgi?id=175757 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/StringView.cpp: Add tests for StringView::stripLeadingAndTrailingMatchedCharacters(). 2017-08-21 Yoshiaki Jitsukawa [PAL] Move spi/mac directory into PAL https://bugs.webkit.org/show_bug.cgi?id=175649 Reviewed by Myles C. Maxfield. * TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm: 2017-08-21 Per Arne Vollan [Win] DRT should only allow any https certificate for localhost. https://bugs.webkit.org/show_bug.cgi?id=175147 Reviewed by Brent Fulgham. Add check to make sure only localhost requests allow any https certificate. * DumpRenderTree/win/DumpRenderTree.cpp: (runTest): 2017-08-21 Eric Carlson Add WTFLogChannel level to allow runtime log filtering https://bugs.webkit.org/show_bug.cgi?id=175731 Unreviewed build fix. * TestWebKitAPI/Tests/WebCore/Logging.cpp: (TestWebKitAPI::LoggingTest::output): Disable testing output by default because it fails on some of the bots. 2017-08-21 Eric Carlson Add WTFLogChannel level to allow runtime log filtering https://bugs.webkit.org/show_bug.cgi?id=175731 Reviewed by Jer Noble. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/Logging.cpp: Added. (TestWebKitAPI::LoggingTest::output): (TestWebKitAPI::TEST_F): 2017-08-19 Wenson Hsieh [iOS WK2] Add a version of DataInteractionTests.ExternalSourceAttributedStringToContentEditable that doesn't hit a debug assertion https://bugs.webkit.org/show_bug.cgi?id=175509 Reviewed by Ryosuke Niwa. Removes ExternalSourceAttributedStringToContentEditable and adds ExternalSourceColoredAttributedStringToContentEditable, which tests dropping an attributed string with colored text instead of a bold attributed string of system font. Due to a recent change in behavior in UIKit, the original test (which this patch renames to ExternalSourceBoldSystemAttributedStringToContentEditable) hits a debug assertion when dropping text of system bold font. Since the original intent of this test was to verify that the attributed string UTI can be accepted in richly contenteditable areas, it suffices to check that some other style attribute, such as color, carries over from the NSAttributedString to the DOM. Also marks ExternalSourceBoldSystemAttributedStringToContentEditable as disabled for the time being. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-08-18 Ryan Haddad Unreviewed, rolling out r220938. The API tests added with this change are failing. Reverted changeset: "Add WTFLogChannel level to allow runtime log filtering" https://bugs.webkit.org/show_bug.cgi?id=175731 http://trac.webkit.org/changeset/220938 2017-08-18 Devin Rousso Unreviewed, change my email. * Scripts/webkitpy/common/config/contributors.json: 2017-08-18 Jonathan Bedard Fix leak-checking for iOS Simulators https://bugs.webkit.org/show_bug.cgi?id=175735 Reviewed by Darin Adler. If the leak checking currently occurs in ServerProcess, we can’t check leaks on an iOS Simulator (or device) because the process will have already been killed by the time we check for leaks. Duplicate leak-checking code and share code waiting on a process to stop. * Scripts/webkitpy/port/server_process.py: (ServerProcess.stop): Move code waiting for the process to close to _wait_for_stop(...). (ServerProcess._wait_for_stop): Share code shutting down a process between ServerProcess and SimulatorProcess. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess.stop): Before closing the process, check for leaks. 2017-08-18 Eric Carlson Add WTFLogChannel level to allow runtime log filtering https://bugs.webkit.org/show_bug.cgi?id=175731 Reviewed by Jer Noble. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/Logging.cpp: Added. (TestWebKitAPI::LoggingTest::output): (TestWebKitAPI::TEST_F): 2017-08-18 Alexey Proskuryakov Add Dean Johnson to contributors.json for Bugzilla autocomplete. * Scripts/webkitpy/common/config/contributors.json: 2017-08-18 Ross Kirsling [Tools] Add script to download a GitHub release https://bugs.webkit.org/show_bug.cgi?id=175279 Reviewed by Brent Fulgham. * Scripts/download-latest-github-release.py: Added. 2017-08-18 Commit Queue Unreviewed, rolling out r220854. https://bugs.webkit.org/show_bug.cgi?id=175716 I'm not sure we really need this (Requested by KaL on #webkit). Reverted changeset: "[GTK][WPE] Add NTLM authentication enabled API" https://bugs.webkit.org/show_bug.cgi?id=122952 http://trac.webkit.org/changeset/220854 2017-08-17 Michael Catanzaro [GTK] Make TestContextMenu work on Fedora https://bugs.webkit.org/show_bug.cgi?id=175708 Reviewed by Carlos Garcia Campos. TestContextMenu has been broken for as long as I remember, but not on the bots, only for me and my student last summer who was trying to work on a context menu API. It's trying to load an MPEG-2 video file and confirm that right-clicking on it shows media element context menu entries. Doesn't work on Fedora. Dunno why, since Fedora actually can play MPEG-2, but I don't care to investigate. Let's switch it to WebM so I can move on. * TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp: (prepareContextMenuTestView): * TestWebKitAPI/Tests/WebKitGLib/resources/silence.mpg: Removed. * TestWebKitAPI/Tests/WebKitGLib/resources/silence.webm: Added. 2017-08-17 Yoshiaki Jitsukawa check-webkit-style shouldn't check spacing in #elif preprocessor lines https://bugs.webkit.org/show_bug.cgi?id=175652 Reviewed by Alex Christensen. * Scripts/webkitpy/style/checkers/cpp.py: (check_spacing): * Scripts/webkitpy/style/checkers/cpp_unittest.py: (CppStyleTest.test_spacing_for_binary_ops): 2017-08-17 Wenson Hsieh Fix the build on other platforms after r220865 https://bugs.webkit.org/show_bug.cgi?id=175683 Reviewed by Tim Horton. Check __IPHONE_OS_VERSION_MAX_ALLOWED instead of __IPHONE_OS_VERSION_MIN_REQUIRED in an SPI header. SPI availability is determined by SDK version rather than deployment version. * TestWebKitAPI/ios/UIKitSPI.h: 2017-08-17 Andreas Kling Disable CSS regions at compile time https://bugs.webkit.org/show_bug.cgi?id=175630 Reviewed by Antti Koivisto. * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-17 Wenson Hsieh Unreviewed, try to fix the internal iOS 10 build after r220865. * TestWebKitAPI/ios/UIKitSPI.h: On the iOS 10 SDK, UIApplication_Private.h cannot be imported in the simulator. Simply fall back to using the extern declaration when building for pre-iOS 11; once the bots stop building for iOS 10, we can safely remove this compiler guard. 2017-08-17 Wenson Hsieh [iOS] Respect type fidelities when copying image elements to the pasteboard https://bugs.webkit.org/show_bug.cgi?id=175638 Reviewed by Ryosuke Niwa. Add API tests that simulate copying an image element using the action sheet, and verifying that the pasteboard contains UTIs in order of fidelity (image type before URL). Also pulls out UIKit SPI (UIApplicationInitialize) used in UIPasteboardTests and ActionSheetTests into a common UIKitSPI header. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/ios/ActionSheetTests.mm: (-[ActionSheetObserver _webView:actionsForElement:defaultActions:]): (TestWebKitAPI::TEST): (TestWebKitAPI::presentActionSheetAndChooseAction): (-[ActionSheetObserver waitForActionSheetAfterBlock:]): Deleted. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkEstimatedSize): (checkSuggestedNameAndEstimatedSize): Replace -estimatedDisplayedSize with its non-deprecated counterpart, -preferredPresentationSize. * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/UIKitSPI.h: Added. 2017-08-17 Jonathan Bedard Recursively create resource load statistics folder for testing https://bugs.webkit.org/show_bug.cgi?id=175676 Reviewed by Brady Eidson. * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::cocoaPlatformInitialize): Recursively create resourceLoadStatisticsFolder. 2017-08-17 Carlos Garcia Campos [GTK][WPE] Add NTLM authentication enabled API https://bugs.webkit.org/show_bug.cgi?id=122952 Reviewed by Michael Catanzaro. Add a test case to check we can enable/disable NTLM. * TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp: (testWebViewAuthenticationNTLM): (beforeAll): 2017-08-16 Yoshiaki Jitsukawa [PAL] Move spi/ios and spi/win directories into PAL https://bugs.webkit.org/show_bug.cgi?id=175171 Reviewed by Antti Koivisto. * DumpRenderTree/mac/EventSendingController.mm: 2017-08-16 Andy Estes [Payment Request] Add an ENABLE flag and an experimental feature preference https://bugs.webkit.org/show_bug.cgi?id=175622 Reviewed by Tim Horton. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-08-15 Aakash Jain undefined URL in PopoverTracker for failed step https://bugs.webkit.org/show_bug.cgi?id=175593 Reviewed by Daniel Bates. This fix is a workaround for Buildbot 0.9 bug where it does not provide a URL to stdio for a build step. Buildbot 0.8 always included a URL to the stdio of the step. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: (BuildbotIteration.prototype._parseData): Pass the URL while instantiating BuildbotTestResults. (BuildbotIteration.prototype._urlForStep): Method to get the URL for a step. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTestResults.js: (BuildbotTestResults): Accept URL in constructor. 2017-08-14 Simon Fraser Remove Proximity Events and related code https://bugs.webkit.org/show_bug.cgi?id=175545 Reviewed by Daniel Bates. No platform enables Proximity Events, so remove code inside ENABLE(PROXIMITY_EVENTS) and other related code. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-14 Simon Fraser Remove ENABLE(REQUEST_AUTOCOMPLETE) code, which was disabled everywhere https://bugs.webkit.org/show_bug.cgi?id=175504 Reviewed by Sam Weinig. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-14 Simon Fraser Remove ENABLE_VIEW_MODE_CSS_MEDIA and related code https://bugs.webkit.org/show_bug.cgi?id=175557 Reviewed by Jon Lee. No port cares about the ENABLE(VIEW_MODE_CSS_MEDIA) feature, so remove it. * DumpRenderTree/TestRunner.cpp: (TestRunner::staticFunctions): (setViewModeMediaFeatureCallback): Deleted. * DumpRenderTree/TestRunner.h: * DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::setViewModeMediaFeature): Deleted. * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::setViewModeMediaFeature): Deleted. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-14 Andy Estes REGRESSION (r220456): Crash in PreviewLoader::shouldCreateForMIMEType() when a ResourceResponse has a null MIME type https://bugs.webkit.org/show_bug.cgi?id=175548 Reviewed by Brady Eidson. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/ios/PreviewLoader.cpp: Added. (TestWebKitAPI::TEST): Added an API test for PreviewLoader::shouldCreateForMIMEType(). 2017-08-14 Youenn Fablet WPT server should be able to do logging even if its output folder is not created at launch time https://bugs.webkit.org/show_bug.cgi?id=175543 Reviewed by Alexey Proskuryakov. Removing no longer used stdout/stderr member variables. Creating if needed the output folder so that we can create WPT server output log folder at WPT server launch time. * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (WebPlatformTestServer.__init__): (WebPlatformTestServer._prepare_config): (WebPlatformTestServer._spawn_process): (WebPlatformTestServer._stop_running_server): 2017-08-14 Daniel Bates webkit-patch: Passing --no-review should submit patch to EWS by default https://bugs.webkit.org/show_bug.cgi?id=148899 Reviewed by David Kilzer. Make "webkit-patch upload --no-review" and "webkit-patch post-commits --no-review" submit the patch(es) for EWS analysis by default. Add a new optional command line argument, --no-ews, to these commands to not submit a non-reviewed patch(es) for EWS analysis. Frequently I want to post a draft of a patch without review to have the EWS bots process it to catch build and test breakage before I clean it up and post it for formal review. Currently this requires using "webkit-patch upload --no-review --open-bug" to upload the patch and open the bug in Safari so that I can click the Submit for EWS analysis button. We should teach "webkit-patch upload" and "webkit-patch post-commits" how to do this. * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: (Bugzilla._parse_attachment_id_from_add_patch_to_bug_response): Add helper function to parse the attachment id from the response page after adding an attachment to the bug. (Bugzilla.add_patch_to_bug): Modified to parse and return the attachment id from the HTTP response after uploading the patch. * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: (MockBugzilla.add_patch_to_bug): Return a dummy attachment id for testing purposes. * Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py: (test__parse_attachment_id_from_add_patch_to_bug_response): Added. * Scripts/webkitpy/tool/commands/upload.py: (Upload): Add step SubmitToEWS to the list of steps when uploading a patch. (PostCommits.__init__): Add --no-ews option to the list of applicable option flags for this command. (PostCommits.execute): Submit the patch to EWS, if applicable. * Scripts/webkitpy/tool/commands/upload_unittest.py: (test_upload): Set options.ews to False as the upload command expects this option to be specified. (test_upload_with_no_review_and_ews): Added. * Scripts/webkitpy/tool/steps/__init__.py: Import module SubmitToEWS. * Scripts/webkitpy/tool/steps/options.py: (Options): Added command line option --no-ews (defaults: False - submit to EWS). * Scripts/webkitpy/tool/steps/postdiff.py: (PostDiff.options): Add --no-ews option to the list of applicable option flags for this command. (PostDiff.run): Submit the patch to EWS, if applicable. * Scripts/webkitpy/tool/steps/submittoews.py: Added. (SubmitToEWS): (SubmitToEWS.options): Return an empty array as we this step does not have any command line options. (SubmitToEWS.run): Submit the specified attachment ids for EWS analysis. 2017-08-14 Ryan Haddad Disable two flaky VideoControlsManager API tests. Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm: (TestWebKitAPI::TEST): 2017-08-14 Tim Horton Only create directory and sandbox extension handle for storage directories if they are set https://bugs.webkit.org/show_bug.cgi?id=175522 Reviewed by Brady Eidson. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDoesNotLogDuringInitialization.mm: Added. (TEST): Add a test that making a WKWebView with an ephemeral WKWebsiteDataStore doesn't log anything to stderr. 2017-08-14 Jonathan Bedard sub-categorize Sandbox violation logs https://bugs.webkit.org/show_bug.cgi?id=175536 Reviewed by David Kilzer. * Scripts/webkitpy/common/system/crashlogs.py: (CrashLogs._parse_darwin_crash_log): Add 'Sandbox-' to the log name if the log is a Sandbox violation. (CrashLogs._find_all_logs_darwin): Update comment. * Scripts/webkitpy/common/system/crashlogs_unittest.py: (make_mock_sandbox_report_darwin): Create a Sandbox violation log for testing. (CrashLogsTest.create_crash_logs_darwin): Add Sandbox violation to list of crashes. (CrashLogsTest.test_find_all_log_darwin): 8 logs in testing instead of 7. (CrashLogsTest.test_duplicate_log_darwin): Check for Sandbox violation log. * Scripts/webkitpy/port/darwin.py: (DarwinPort._merge_crash_logs): Handle Sandbox violation case. 2017-08-14 Daniel Bates Add Automator service to copy permalink to Clipboard https://bugs.webkit.org/show_bug.cgi?id=170978 Reviewed by Joseph Pecoraro. It is helpful to reference using a hyperlink a particular line of code when having a discussion on IRC or in a bug. You can get such a link by navigating to the file in the Trac Browse Source viewer and selecting the line your are interested in. I found myself doing this often enough that I wrote an Automator service to do it for me. This Automator service works with Xcode 8 and Xcode 9 beta 5 (9M202q) or later. * CopyPermalink/Copy WebKit Permalink.workflow/Contents/Info.plist: Added. * CopyPermalink/Copy WebKit Permalink.workflow/Contents/document.wflow: Added. * CopyPermalink/README: Added. 2017-08-14 Chris Dumez Address flakiness related to download tests https://bugs.webkit.org/show_bug.cgi?id=175338 Unreviewed, forgot in r220626 to reset m_shouldLogDownloadCallbacks to false between tests. * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues): 2017-08-11 Ryosuke Niwa Replace DATA_TRANSFER_ITEMS by a runtime flag and add a stub implementation https://bugs.webkit.org/show_bug.cgi?id=175474 Reviewed by Wenson Hsieh. Enable dataTransfer.items by default in DumpRenderTree and WebKitTestRunner for testing purposes. * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-08-12 Chris Dumez Address flakiness related to download tests https://bugs.webkit.org/show_bug.cgi?id=175338 Reviewed by Ryosuke Niwa. - Update WKTR so that the flag set by testRunner.waitUntilDownloadFinished() is actually queried when a download completes. Previously, this would be identical to a call to testRunner.waitUntilDone() because any download completion would call testRunner.notifyDone(). - Disable logging of download callbacks by default and add a testRunner.setShouldLogDownloadCallbacks(true) API to allow tests to enable such logging. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setShouldLogDownloadCallbacks): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::downloadDidStart): (WTR::TestController::decideDestinationWithSuggestedFilename): (WTR::TestController::downloadDidFinish): (WTR::TestController::downloadDidFail): (WTR::TestController::downloadDidCancel): * WebKitTestRunner/TestController.h: (WTR::TestController::setShouldLogDownloadCallbacks): * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): 2017-08-11 Jonathan Bedard Create mock ITP data in testing to prevent grandfathering https://bugs.webkit.org/show_bug.cgi?id=174720 Unreviewed follow-up fix for r220604. * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::cocoaPlatformInitialize): Release resourceLogPlist. 2017-08-11 Jonathan Bedard Create mock ITP data in testing to prevent grandfathering https://bugs.webkit.org/show_bug.cgi?id=174720 Reviewed by Brent Fulgham. We don't need to be triggering grandfathering when each test runner starts. On Mac, this may launch plugins which can cause layout tests to fail later if the test runner does not shut-down before the plugins unload. * WebKitTestRunner/TestController.h: Add declaration of cocoaPlatformInitialize. * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::cocoaPlatformInitialize): Write the minimum data required to prevent grandfathering from being triggered. * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformInitialize): Call cocoaPlatformInitialize. * WebKitTestRunner/mac/TestControllerMac.mm: (WTR::TestController::platformInitialize): Ditto. 2017-08-11 Sam Weinig WTF::Function does not allow for reference / non-default constructible return types https://bugs.webkit.org/show_bug.cgi?id=175244 Reviewed by Chris Dumez. * TestWebKitAPI/Tests/WTF/Function.cpp: (TestWebKitAPI::TEST): 2017-08-11 Carlos Garcia Campos [Soup] Cannot access HTTPS sites using a HTTP proxy that requires authentication https://bugs.webkit.org/show_bug.cgi?id=175378 Reviewed by Sergio Villar Senin. Add two test cases to check proxy authentication. * TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp: (Tunnel::Tunnel): (Tunnel::~Tunnel): (Tunnel::connect): (Tunnel::connected): (serverCallback): (ProxyAuthenticationTest::ProxyAuthenticationTest): (ProxyAuthenticationTest::~ProxyAuthenticationTest): (ProxyAuthenticationTest::proxyServerPortAsString): (testWebViewAuthenticationProxy): (testWebViewAuthenticationProxyHTTPS): (beforeAll): 2017-08-11 Xabier Rodriguez Calvar [GStreamer][GTK][WPE] Unify GStreamer JHBuild moduleset for both GTK+ and WPE https://bugs.webkit.org/show_bug.cgi?id=175428 Both ports share the GStreamer code as multimedia backend and till not so long they were using different versions. Now they do use the same versions and it does not make any sense anymore (and neither had sense before) to have differences in the modulesets. In this patch I created a GStreamer moduleset and referenced it from both GTK+'s and WPE's. GStreamer patches were also moved there. Reviewed by Žan Doberšek. * gstreamer/jhbuild.modules: Added. * gstreamer/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Renamed from Tools/gtk/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch. * gstreamer/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Renamed from Tools/gtk/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch. * gstreamer/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Renamed from Tools/gtk/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch. * gstreamer/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Renamed from Tools/gtk/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch. * gstreamer/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch: Renamed from Tools/gtk/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch. * gstreamer/patches/openh264-configure.patch: Renamed from Tools/gtk/patches/openh264-configure.patch. * gtk/jhbuild.modules: * wpe/jhbuild.modules: * wpe/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Removed. * wpe/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Removed. * wpe/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Removed. * wpe/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Removed. * wpe/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch: Removed. 2017-08-10 Don Olmstead Unreviewed, adding Ross Kirsling to contributors.json * Scripts/webkitpy/common/config/contributors.json: 2017-08-10 Yusuke Suzuki Unreviewed, attempt to fix build failure with VC2017 * TestWebKitAPI/Tests/WTF/PriorityQueue.cpp: (TEST): 2017-08-10 Yusuke Suzuki Unreviewed, suppress warnings on GCC * TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp: (TestWebKitAPI::CheckedArithmeticTester::run): 2017-08-10 Dan Bernstein [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE https://bugs.webkit.org/show_bug.cgi?id=173223 Reviewed by Tim Horton. The rebuilds were happening due to a difference in the compiler options that the IDE and xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make xcodebuild pass that option, too, set INDEX_ENABLE_DATA_STORE to YES and INDEX_DATA_STORE_DIR to the Index Datastore path specified in Xcode Locations preferences > Advanced when a Custom Absolute path is selected. * Scripts/webkitdirs.pm: (determineBaseProductDir): 2017-08-10 Yusuke Suzuki Run more WTF tests https://bugs.webkit.org/show_bug.cgi?id=174970 Reviewed by Michael Catanzaro. Some of WTF tests are not executed in non Apple ports while they are generic ones. This patch adds these tests to non-Apple port TestWebKitAPI. Currently, we do not add Signals.cpp since it depends on signal functionality. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/PriorityQueue.cpp: (isHigherPriority): (TEST): * TestWebKitAPI/Tests/WTF/Signals.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/ThreadMessages.cpp. (TEST): * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: (TEST): 2017-08-10 obinna obike Remove obsolete link from webkit-queues status page https://bugs.webkit.org/show_bug.cgi?id=175337 Reviewed by Aakash Jain. * QueueStatusServer/templates/recentstatus.html: Removed the link to the ews-watcher server. 2017-08-10 Brian Burg WKPreferences should conform to NSCopying https://bugs.webkit.org/show_bug.cgi?id=175303 Reviewed by Dan Bernstein. Add unit test to make sure a WKPreference and its copy are not aliased to each other or affect each other's properties. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/Copying.mm: Added. (TEST): 2017-08-10 Tim Horton Remove some unused lambda captures so that WebKit builds with -Wunused-lambda-capture https://bugs.webkit.org/show_bug.cgi?id=175436 Reviewed by Simon Fraser. * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: (TestWebKitAPI::TEST_F): 2017-08-10 Lucas Forschler Fix duplicated code in r220534. Unreviewed cleanup. * Scripts/bisect-builds: 2017-08-08 Jiewen Tan [WebCrypto] Enable SerializedCryptoKeyWrapTest in iOS https://bugs.webkit.org/show_bug.cgi?id=175344 Reviewed by Alexey Proskuryakov. Add entitlements to TestWebKitAPI project for iOS. Then add Keychain Access entitlement to the project. Finally enable the existing tests for iOS. * TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements: Added. * TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/cocoa/SerializedCryptoKeyWrap.mm: 2017-08-10 Lucas Forschler Write a tool to bisect WebKit builds https://bugs.webkit.org/show_bug.cgi?id=174596 Reviewed by Dean Johnson and Kocsen Chung. * Scripts/bisect-builds: Added. (bisect_builds): main bisection algorithm (download_archive):download an archive from S3 using existing tools (extract_archive):extract an archive using existing tools (find_le):Find rightmost value less than or equal to x (find_ge):Find leftmost item greater than or equal to x (get_api_url):generate url for the rest api/database (get_indices_from_revisions):convert revisions to list indexes for bisection (get_sorted_revisions):retrieve sorted revision list (get_s3_location_for_revision):calculate the S3 archive storage location (parse_args):parse command line arguments (pick_next_build):compute the next build to bisect (prompt_did_reproduce):prompt user for direction for bisection (set_webkit_output_dir):set the folder for bisected builds to avoid overwriting engineering build output (test_archive):Platform specific logic to test downloaded archive (minified_platforms):return a list of minified platforms in the database (unminified_platforms):return a list of full platforms in the database (is_supported_platform):check if platform is supported (validate_options):validate command line options (main): 2017-08-10 Lucas Forschler Remove bisect-builds script. https://bugs.webkit.org/show_bug.cgi?id=175433 Reviewed by Aakash Jain. * Scripts/bisect-builds: Removed. 2017-08-10 Michael Catanzaro Remove ENABLE_GAMEPAD_DEPRECATED https://bugs.webkit.org/show_bug.cgi?id=175361 Reviewed by Carlos Garcia Campos. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-10 Carlos Alberto Lopez Perez REGRESSION(r220515) [GTK][CMake] Build with ENABLE_GEOLOCATION fails on Debian Jessie https://bugs.webkit.org/show_bug.cgi?id=175426 Reviewed by Carlos Garcia Campos. * gtk/install-dependencies: libgeoclue-dev packages not really needed on Debian/Ubuntu. 2017-08-10 Ms2ger Add Ms2ger as contributor. https://bugs.webkit.org/show_bug.cgi?id=175325 Reviewed by Carlos Alberto Lopez Perez. * Scripts/webkitpy/common/config/contributors.json: 2017-08-09 Dewei Zhu Fix run-benchmark after r220483. https://bugs.webkit.org/show_bug.cgi?id=175415 Reviewed by Ryosuke Niwa. Update run-benchmark script to adapt new Timeout implementation introduced in r220483. * Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py: (WebServerBenchmarkRunner._run_one_test): 2017-08-09 Chris Dumez Disable Beacon API on WK1 DRT and WK2 when not using NETWORK_SESSION https://bugs.webkit.org/show_bug.cgi?id=175401 Reviewed by Brady Eidson. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): 2017-08-09 Yoshiaki Jitsukawa [PAL] Move spi/cocoa and spi/cg directories into PAL https://bugs.webkit.org/show_bug.cgi?id=175175 Reviewed by Myles C. Maxfield. * DumpRenderTree/ios/PixelDumpSupportIOS.mm: * DumpRenderTree/mac/DumpRenderTree.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/NSFileManagerExtras.mm: * WebKitTestRunner/ios/PlatformWebViewIOS.mm: * Scripts/webkitpy/style/checker.py: * Scripts/webkitpy/style/checker_unittest.py: (GlobalVariablesTest.test_path_rules_specifier): Add path rules specifiers for PassKitSPI.h and DataDetectorsCoreSPI.h * Scripts/webkitpy/style/checkers/cpp.py: (check_braces): * Scripts/webkitpy/style/checkers/cpp_unittest.py: (WebKitStyleTest.test_braces.CF_OPTIONS): (WebKitStyleTest.test_braces): Prevent CF_OPTIONS() from being handled as funtion definition. 2017-08-09 Don Olmstead [WTF] Move TextStream into WTF https://bugs.webkit.org/show_bug.cgi?id=175211 Reviewed by Myles C. Maxfield. * TestWebKitAPI/Tests/WebCore/CalculationValue.cpp: 2017-08-09 Andy Estes Part 3 of: Rename DatabaseProcess to StorageProcess https://bugs.webkit.org/show_bug.cgi?id=175034 Reviewed by Brady Eidson. * WebKitTestRunner/TestController.cpp: (WTR::TestController::databaseProcessName): Updated to return "com.apple.WebKit.Storage.Development" on macOS and iOS Simulator. 2017-08-09 Commit Queue Unreviewed, rolling out r220466, r220477, and r220487. https://bugs.webkit.org/show_bug.cgi?id=175411 This change broke existing API tests and follow up fixes did not resolve all the issues. (Requested by ryanhaddad on #webkit). Reverted changesets: https://bugs.webkit.org/show_bug.cgi?id=175244 http://trac.webkit.org/changeset/220466 "WTF::Function does not allow for reference / non-default constructible return types" https://bugs.webkit.org/show_bug.cgi?id=175244 http://trac.webkit.org/changeset/220477 https://bugs.webkit.org/show_bug.cgi?id=175244 http://trac.webkit.org/changeset/220487 2017-08-09 Sam Weinig Update for https://bugs.webkit.org/show_bug.cgi?id=175244. Remove one addition of null Function test. 2017-08-09 Jonathan Bedard Allow nested timeouts in webkitpy https://bugs.webkit.org/show_bug.cgi?id=175390 Reviewed by David Kilzer. We need to be able to nest timeouts in webkitpy. In particular, we have a few cases where functions which use timeouts also call the executive. For on-device testing, we need to have timeouts inside the executive to detect and recover from any issues connecting with devices. * Scripts/webkitpy/benchmark_runner/utils.py: (TimeoutError): Deleted. (timeout): Deleted. * Scripts/webkitpy/common/timeout_context.py: Added. (Timeout): A timeout context designed to be nested. (Timeout.TimeoutData): The data required to construct an alarm for a given timeout. (Timeout.TimeoutData.__init__): (Timeout.default_handler): Timeout handler used if none is specified. (Timeout.current): Access data about the most urgent timeout. (Timeout.__init__): Construct a Timeout object with seconds and an optional handler. (Timeout._bind_timeout_data_to_alarm): Given data about a timeout, initialize an alarm for that timeout. (Timeout.__enter__): Un-bind all alarms. Add data for this timeout to the ordered list and bind the most urgent timeout data. (Timeout.__exit__): Un-bind all alarms. Remove data for this timeout from the ordered list and bind the most urgent timeout data, if such data exists. * Scripts/webkitpy/common/timeout_context_unittest.py: Added. (TimeoutContextTests): (TimeoutContextTests.test_current_timeout): Test that accessing the nearest timeout works as expected. (TimeoutContextTests.test_invalid_timeout): Test a timeout of 0. (TimeoutContextTests.test_timeout_data): Confirm that timeouts are constructed correctly. (TimeoutContextTests.test_nested_inner_precedence): Check that a more urgent inner timeout takes precedence over a less urgent outer timeout. (TimeoutContextTests.test_nested_outer_precedence): Check that a more urgent outer timeout takes precedence over a less urgent inner timeout. (TimeoutContextTests.test_no_timeout): Test a block of code without a timeout. (TimeoutContextTests.test_basic_timeout): Test a block of code expected to timeout. (TimeoutContextTests.test_exception_constructor_timeout): Test a timeout where the handler is an exception. (TimeoutContextTests.test_nested_inner_timeout): Confirm that a more urgent inner timeout is triggered. (TimeoutContextTests.test_nested_outer_timeout): Confirm that a more urgent outer timeout is triggered. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess._start): Use Timeout class. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice.launch_app._log_debug_error): Use Timeout class. (SimulatedDevice.launch_app): Ditto. (SimulatedDevice.launch_app._install_timeout): Deleted. * Scripts/webkitpy/xcode/simulator.py: (Simulator.wait_until_device_is_booted):Use Timeout class. (Simulator.wait_until_device_is_in_state): Ditto. 2017-08-09 Wenson Hsieh [iOS DnD] ENABLE_DRAG_SUPPORT should be turned off for iOS 10 and enabled by default https://bugs.webkit.org/show_bug.cgi?id=175392 Reviewed by Tim Horton and Megan Gardner. Tweak FeatureDefines to enable drag and drop by default, and disable only on unsupported platforms (i.e. iOS 10). * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-09 Sam Weinig Update for https://bugs.webkit.org/show_bug.cgi?id=175244. * TestWebKitAPI/Tests/WTF/Function.cpp: Remove tests of null Functions, as they are no longer supported. 2017-08-09 Daniel Bates REGRESSION (r219013): OAuth flows are broken when redirecting back to application after authentication https://bugs.webkit.org/show_bug.cgi?id=175247 Reviewed by Brady Eidson. Add tests for redirects. * TestWebKitAPI/Tests/WebKit2Cocoa/DecidePolicyForNavigationAction.mm: (TEST): * TestWebKitAPI/cocoa/TestProtocol.mm: (createRedirectURL): (-[TestProtocol startLoading]): 2017-08-08 Wenson Hsieh Unreviewed, rolling out r220393. This patch regresses the performance of WebPage::editorState. Reverted changeset: "[iOS WK2] WKWebView schedules nonstop layout after pressing cmb+b,i,u inside a contenteditable div" https://bugs.webkit.org/show_bug.cgi?id=175116 http://trac.webkit.org/changeset/220393 2017-08-08 obinna obike Created Individual EWS Pages https://bugs.webkit.org/show_bug.cgi?id=174477 Reviewed by Aakash Jain. Created individual pages for each EWS. Changed the link within each status bubble to go directly to the individual EWS page. Also added a link to original status page showing all EWSes. * QueueStatusServer/handlers/patch.py: (Patch.get): Handles the case for individual ews queue as well as for all EWS queues. * QueueStatusServer/handlers/statusbubble.py: (StatusBubble._build_bubble): Updated url for specific EWS. * QueueStatusServer/main.py: Added a link to the individual ews in the routes dictionary. * QueueStatusServer/templates/patch.html: Added a link to go directly to the page with all ews queues. * QueueStatusServer/templates/statusbubble.html: If you click on a statusbubble it takes you directly to the individual ews page. 2017-08-08 Stephan Szabo Separate jsc stress test script writer from run-jsc-stress-tests https://bugs.webkit.org/show_bug.cgi?id=175216 Reviewed by Mark Lam. * Scripts/run-jsc-stress-tests: * Scripts/webkitruby/jsc-stress-test-writer-default.rb: Added. 2017-08-08 Michael Catanzaro Unreviewed, fix Ubuntu LTS build https://bugs.webkit.org/show_bug.cgi?id=174490 * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: 2017-08-08 Wenson Hsieh [Mac WK2] WebViewImpl should hold a weak pointer to its WKWebView or WKView https://bugs.webkit.org/show_bug.cgi?id=175302 Reviewed by Tim Horton. Adds a new unit test checking that delayed event processing in text input context does not cause unwanted behaviors. See WebKit ChangeLog for more details. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h: Renamed from Tools/TestWebKitAPI/Tests/TestWebKitAPI/mac/NSTextInputClientSPI.h. * TestWebKitAPI/Tests/mac/WKWebViewMacEditingTests.mm: Renamed from Tools/TestWebKitAPI/Tests/mac/WKWebViewSelectionTests.mm. (-[SlowTextInputContext handleEventByInputMethod:completionHandler:]): (-[SlowTextInputContext handleEvent:completionHandler:]): (-[SlowInputWebView inputContext]): (-[SlowInputWebView _web_superInputContext]): (TEST): 2017-08-08 John Wilander Resource Load Statistics: Clear web processes' state on history removal https://bugs.webkit.org/show_bug.cgi?id=175271 Reviewed by Chris Dumez. Test infrastructure for asynchronous tests of website data removal for _WKWebsiteDataTypeResourceLoadStatistics. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::statisticsClearThroughWebsiteDataRemoval): (WTR::TestRunner::statisticsCallClearThroughWebsiteDataRemovalCallback): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::statisticsClearThroughWebsiteDataRemoval): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): (WTR::TestInvocation::didClearStatisticsThroughWebsiteDataRemoval): * WebKitTestRunner/TestInvocation.h: * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::statisticsClearThroughWebsiteDataRemoval): 2017-08-08 Alicia Boya García Add Alicia Boya García as contributor https://bugs.webkit.org/show_bug.cgi?id=175326 Reviewed by Michael Catanzaro. * Scripts/webkitpy/common/config/contributors.json: 2017-08-08 Michael Catanzaro [CMake] Properly test if compiler supports compiler flags https://bugs.webkit.org/show_bug.cgi?id=174490 Reviewed by Konstantin Tokarev. * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: * MiniBrowser/gtk/CMakeLists.txt: * TestRunnerShared/Bindings/JSWrapper.cpp: (WTR::JSWrapper::initialize): * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: * TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp: (TestWebKitAPI::CheckedArithmeticTester::run): * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp: (formControlsAssociatedCallback): * TestWebKitAPI/glib/CMakeLists.txt: * TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::getResourcesDir): * WebKitTestRunner/CMakeLists.txt: * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: (WTR::menuItemClickCallback): (WTR::staticConvertMenuItemToType): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setUseDashboardCompatibilityMode): * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: (WTR::AccessibilityNotificationHandler::disconnectAccessibilityCallbacks): * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::helpText const): (WTR::AccessibilityUIElement::attributedStringForRange): * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp: (WTR::EventSenderProxy::updateTouchPoint): (WTR::EventSenderProxy::releaseTouchPoint): 2017-08-08 Wenson Hsieh [iOS WK2] WKWebView schedules nonstop layout after pressing cmb+b,i,u inside a contenteditable div https://bugs.webkit.org/show_bug.cgi?id=175116 Reviewed by Darin Adler and Ryosuke Niwa. Introduces new testing infrastructure and API tests to test EditorState updates in the UI process. The new EditorStateTests run on both iOS and Mac. * TestWebKitAPI/EditingTestHarness.h: Added. * TestWebKitAPI/EditingTestHarness.mm: Added. EditingTestHarness is a helper object that API tests may use to apply editing commands and store EditorState history. This test harness adds sugaring around various editing commands, and simplifies the process of checking the state of the latest observed EditorState. (-[EditingTestHarness initWithWebView:]): (-[EditingTestHarness dealloc]): (-[EditingTestHarness webView]): (-[EditingTestHarness latestEditorState]): (-[EditingTestHarness editorStateHistory]): (-[EditingTestHarness insertText:andExpectEditorStateWith:]): (-[EditingTestHarness insertHTML:andExpectEditorStateWith:]): (-[EditingTestHarness selectAllAndExpectEditorStateWith:]): (-[EditingTestHarness moveBackwardAndExpectEditorStateWith:]): (-[EditingTestHarness moveWordBackwardAndExpectEditorStateWith:]): (-[EditingTestHarness toggleBold]): (-[EditingTestHarness toggleItalic]): (-[EditingTestHarness toggleUnderline]): (-[EditingTestHarness setForegroundColor:]): (-[EditingTestHarness alignJustifiedAndExpectEditorStateWith:]): (-[EditingTestHarness alignLeftAndExpectEditorStateWith:]): (-[EditingTestHarness alignCenterAndExpectEditorStateWith:]): (-[EditingTestHarness alignRightAndExpectEditorStateWith:]): (-[EditingTestHarness insertParagraphAndExpectEditorStateWith:]): (-[EditingTestHarness deleteBackwardAndExpectEditorStateWith:]): (-[EditingTestHarness _execCommand:argument:expectEntries:]): Dispatches an editing command to the web process, and blocks until a response is received. If an expected entries dictionary is given, this will additionally verify that the latest EditorState contains all the expected keys and values. (-[EditingTestHarness latestEditorStateContains:]): (-[EditingTestHarness _webView:editorStateDidChange:]): * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/EditorStateTests.mm: Added. (TestWebKitAPI::setUpEditorStateTestHarness): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/editor-state-test-harness.html: Added. 2017-08-04 Brent Fulgham Prevent domain from being set to a TLD https://bugs.webkit.org/show_bug.cgi?id=175226 Reviewed by Chris Dumez. Extend the public suffix tests to include cases used by the Public Domain 'Public Suffix List'. * TestWebKitAPI/Tests/mac/PublicSuffix.cpp: (TestWebKitAPI::TEST): 2017-08-07 Stephan Szabo [XCode] webkit-patch should run sort-Xcode-project-file https://bugs.webkit.org/show_bug.cgi?id=174036 Reviewed by Simon Fraser. * Scripts/webkitpy/common/config/ports.py: * Scripts/webkitpy/tool/commands/download.py: * Scripts/webkitpy/tool/commands/download_unittest.py: * Scripts/webkitpy/tool/commands/upload.py: * Scripts/webkitpy/tool/commands/upload_unittest.py: * Scripts/webkitpy/tool/steps/__init__.py: * Scripts/webkitpy/tool/steps/options.py: * Scripts/webkitpy/tool/steps/sortxcodeprojectfiles.py: Added. 2017-08-07 Devin Rousso Web Inspector: Preview Canvas path when viewing a recording https://bugs.webkit.org/show_bug.cgi?id=174967 Reviewed by Brian Burg. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (setWebPreferencesForTestOptions): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): (WTR::updateTestOptionsFromTestHeader): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const): Add plumbing for new InspectorAdditions runtime flag. 2017-08-07 obinna obike Sorted EWS Queues on Patch page https://bugs.webkit.org/show_bug.cgi?id=173667 Reviewed by Aakash Jain. * QueueStatusServer/handlers/patch.py: (Patch.get): Sorted queue_status. * QueueStatusServer/templates/patch.html: Changed queue_status.items to queue_status because it's a list. 2017-08-07 Yoshiaki Jitsukawa check-webkit-style: NS_ERROR_ENUM and NS_OPTIONS should not be handled as function definitions. https://bugs.webkit.org/show_bug.cgi?id=175286 Reviewed by Myles C. Maxfield. * Scripts/webkitpy/style/checkers/cpp.py: (check_braces): * Scripts/webkitpy/style/checkers/cpp_unittest.py: (WebKitStyleTest.test_braces.NS_ERROR_ENUM): (WebKitStyleTest.test_braces): (WebKitStyleTest.test_braces.NS_OPTIONS): 2017-08-07 Brian Burg Remove CANVAS_PATH compilation guard https://bugs.webkit.org/show_bug.cgi?id=175207 Reviewed by Sam Weinig. * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-07 Per Arne Vollan [Win] Use Visual Studio 2017 if installed. https://bugs.webkit.org/show_bug.cgi?id=175188 Reviewed by Sam Weinig. If installed, use VS2017 to build WebKit. If not, fall back to VS2015. * Scripts/webkitdirs.pm: (visualStudioInstallDir): (msBuildInstallDir): 2017-08-05 Carlos Garcia Campos [GTK][WPE] Add API to provide browser information required by automation https://bugs.webkit.org/show_bug.cgi?id=175130 Reviewed by Michael Catanzaro. * MiniBrowser/gtk/main.c: (automationStartedCallback): Set browser information when a new automation session is started. * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: (testAutomationSessionApplicationInfo): (beforeAll): 2017-08-06 Ryan Haddad Unreviewed, rolling out r220295. This change introduced 4 errors in webkitpy tests. Reverted changeset: "[XCode] webkit-patch should run sort-Xcode-project-file" https://bugs.webkit.org/show_bug.cgi?id=174036 http://trac.webkit.org/changeset/220295 2017-08-04 Ryan Haddad Disable API test NowPlayingControlsTests.NowPlayingControlsIOS. Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit2Cocoa/NowPlayingControlsTests.mm: (TestWebKitAPI::TEST): 2017-08-05 Filip Pizlo REGRESSION (r219895-219897): Number of leaks on Open Source went from 9240 to 235983 and is now at 302372 https://bugs.webkit.org/show_bug.cgi?id=175083 Reviewed by Oliver Hunt. Leaks results are super confusing if leaks runs while some VMs are destructing. This calls a new SPI to wait for VM destructions to finish before running the next test. This makes it easier to understand leaks results from workers tests, and leads to fewer reported leaks. * DumpRenderTree/mac/DumpRenderTree.mm: (runTest): 2017-08-05 Yoshiaki Jitsukawa check-webkit-style: fix path-specific rules for WebKit2 rename https://bugs.webkit.org/show_bug.cgi?id=175182 Reviewed by David Kilzer. * Scripts/webkitpy/style/checker.py: 2017-08-04 Youenn Fablet [Cache API] Add Cache and CacheStorage IDL definitions https://bugs.webkit.org/show_bug.cgi?id=175201 Reviewed by Brady Eidson. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): (resetWebPreferencesToConsistentValues): * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setCacheAPIEnabled): * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-08-04 John Wilander Resource Load Statistics: Report user interaction immediately, but only when needed https://bugs.webkit.org/show_bug.cgi?id=175090 Reviewed by Chris Dumez. * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): Now calls WebCore::ResourceLoadObserver::clearState(). 2017-08-04 Tim Horton Add an API test for r220286 https://bugs.webkit.org/show_bug.cgi?id=175206 Reviewed by Simon Fraser. * TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: (-[AnimatedResizeWebView _webView:didChangeSafeAreaShouldAffectObscuredInsets:]): (createAnimatedResizeWebView): (TEST): Add a test to ensure that we don't call _webView:didChangeSafeAreaShouldAffectObscuredInsets: during an animated resize. 2017-08-04 Stephan Szabo [XCode] webkit-patch should run sort-Xcode-project-file https://bugs.webkit.org/show_bug.cgi?id=174036 Reviewed by Simon Fraser. * Scripts/webkitpy/common/config/ports.py: * Scripts/webkitpy/tool/commands/download.py: * Scripts/webkitpy/tool/commands/upload.py: * Scripts/webkitpy/tool/steps/__init__.py: * Scripts/webkitpy/tool/steps/options.py: * Scripts/webkitpy/tool/steps/sortxcodeprojectfiles.py: Added. 2017-08-04 Carlos Alberto Lopez Perez REGRESSION(r219857): run-benchmark --allplans broken https://bugs.webkit.org/show_bug.cgi?id=175186 Reviewed by Saam Barati. r219857 forgot to update also the calls to BenchmarkRunner() that is done when the script is run with --allplans. To fix this (and avoid future issues like this), let's factorize the calls to the benchhmark runner in a run_benchmark_plan() function. * Scripts/webkitpy/benchmark_runner/run_benchmark.py: (run_benchmark_plan): (start): 2017-08-04 Aakash Jain Dashboard bubbles sometimes show failure count instead of crash count https://bugs.webkit.org/show_bug.cgi?id=175157 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTestResults.js: (BuildbotTestResults.prototype.resultSummarizer): Use the regex for the precise match first. 2017-08-04 Joseph Pecoraro Add tests for NeverDestroyed https://bugs.webkit.org/show_bug.cgi?id=175146 Reviewed by Darin Adler. * CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: New files and sort. * TestWebKitAPI/Tests/WTF/Logger.h: * TestWebKitAPI/Tests/WTF/Logger.cpp: (TestWebKitAPI::log): (TestWebKitAPI::takeLogStr): * TestWebKitAPI/Tests/WTF/RefLogger.h: * TestWebKitAPI/Tests/WTF/RefLogger.cpp: (TestWebKitAPI::log): Deleted. (TestWebKitAPI::takeLogStr): Deleted. Extract log() / takeLogStr() from RefLogger to a general Logger.h/cpp. * TestWebKitAPI/Tests/WTF/LifecycleLogger.h: * TestWebKitAPI/Tests/WTF/LifecycleLogger.cpp: Added. (TestWebKitAPI::LifecycleLogger::LifecycleLogger): (TestWebKitAPI::LifecycleLogger::operator=): (TestWebKitAPI::LifecycleLogger::~LifecycleLogger): (TestWebKitAPI::LifecycleLogger::setName): (TestWebKitAPI::TEST): Add a class that logs construction / assignment / modifications. * TestWebKitAPI/Tests/WTF/NeverDestroyed.cpp: Added. (TestWebKitAPI::TEST): (TestWebKitAPI::list): Test construction behavior is as expected both directly and using makeNeverDestroyed. 2017-08-04 Lucas Forschler minification logic is not implemented for ios builds Reviewed by Dean Johnson * BuildSlaveSupport/built-product-archive: (minifyDirectory): refactor minifySource -> minifyDirectory (archiveBuiltProduct): add ios minification logic (minifySource): Deleted. 2017-08-04 Matt Lewis Unreviewed, rolling out r220271. Rolling out due to Layout Test failing on iOS Simulator. Reverted changeset: "Remove STREAMS_API compilation guard" https://bugs.webkit.org/show_bug.cgi?id=175165 http://trac.webkit.org/changeset/220271 2017-08-04 Ryan Haddad Unreviewed, rolling out r220268. This change caused assertion failures on macOS and iOS Debug WK2. Reverted changeset: "Resource Load Statistics: Report user interaction immediately, but only when needed" https://bugs.webkit.org/show_bug.cgi?id=175090 http://trac.webkit.org/changeset/220268 2017-08-04 Youenn Fablet Remove STREAMS_API compilation guard https://bugs.webkit.org/show_bug.cgi?id=175165 Reviewed by Darin Adler. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-04 John Wilander Resource Load Statistics: Report user interaction immediately, but only when needed https://bugs.webkit.org/show_bug.cgi?id=175090 Reviewed by Chris Dumez. * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): Now calls WebCore::ResourceLoadObserver::clearState(). 2017-08-03 Brian Burg Remove ENABLE(WEB_SOCKET) guards https://bugs.webkit.org/show_bug.cgi?id=167044 Reviewed by Joseph Pecoraro. * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-03 Carlos Alberto Lopez Perez REGRESSION(r219850): run-benchmark script broken on Linux https://bugs.webkit.org/show_bug.cgi?id=175126 Reviewed by Stephanie Lewis. The run-benchmark script dynamically generates the list of supported browsers and platforms (currently Linux and OSX) by loading all python files from Tools/Scripts/webkitpy/benchmark_runner/browser_driver and getting the browser_name and platform variables from the classes defined there. This means that this classes should not raise an exception when loaded on other platforms or otherwise they will broke the whole script. Its fine if they raise an exception when executing any of the methods they implement, but not when just loading/importing the class. Move the argument variable definitions that call on the platform specific OSXBrowserDriver._screen_size() function from beeing variables that are evaluated when loading the file, to be functions that are only evaluated when the actual functionality needs to be executed. * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: (OSXChromeDriver.launch_url): (OSXChromeCanaryDriver.launch_url): (create_args): (create_chrome_options): (create_window_size_arg): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: (OSXFirefoxDriver.launch_url): (OSXFirefoxNightlyDriver.launch_url): (OSXFirefoxNightlyDriver.launch_driver): (create_args): 2017-08-03 Yoshiaki Jitsukawa [PAL] Move spi/cf directory into PAL https://bugs.webkit.org/show_bug.cgi?id=175057 Reviewed by Antti Koivisto. * Scripts/webkitpy/style/checker.py: * Scripts/webkitpy/style/checker_unittest.py: (GlobalVariablesTest.test_path_rules_specifier): Ignore "readability/naming/underscores" style errors for sources under the WebCore/PAL/pal/spi directory. * TestWebKitAPI/Tests/WebKit2Cocoa/CookieAcceptPolicy.mm: 2017-08-03 Youenn Fablet Remove FETCH_API compilation guard https://bugs.webkit.org/show_bug.cgi?id=175154 Reviewed by Chris Dumez. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-08-03 Lucas Forschler Enable archive minification on iOS builds https://bugs.webkit.org/show_bug.cgi?id=174718 Reviewed by Aakash Jain. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (BuildFactory.__init__): 2017-08-03 Carlos Alberto Lopez Perez [GTK][WKE] Pass the --memory-limited option on the GTK and WPE buildbots for the JSC tests. https://bugs.webkit.org/show_bug.cgi?id=175140 Reviewed by Alexey Proskuryakov. We are having lately issues with JSC tests causing problems on the GTK+ and WPE bots due to the high amount of memory some tests need to run. The best thing we can do now is to workaround this by disabling all the tests marked as memoryLimited on the GTK and WPE bots. We may revise this on the future. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (RunJavaScriptCoreTests.start): 2017-08-03 Brady Eidson Add SW IDLs and stub out basic functionality. https://bugs.webkit.org/show_bug.cgi?id=175115 Reviewed by Chris Dumez. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * Scripts/webkitpy/bindings/main.py: 2017-08-03 Per Arne Vollan [Win] The test http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html is failing. https://bugs.webkit.org/show_bug.cgi?id=159510 Reviewed by Daniel Bates. Allow any https certificate when running tests. * DumpRenderTree/win/DumpRenderTree.cpp: (runTest): 2017-08-02 Youenn Fablet HTTP tests with 'https' suffix are only run over HTTPS for WK2, not WK1 https://bugs.webkit.org/show_bug.cgi?id=175089 Reviewed by Chris Dumez. * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): Using absolutePath if available. * DumpRenderTree/mac/DumpRenderTree.mm: (computeTestURL): Removing http/tests/ specific URL computation. * Scripts/webkitpy/port/driver.py: (Driver._command_from_driver_input): Making webkitpy passing HTTP urls for HTTP served tests to all test runners, including WK1. 2017-08-02 Lucas Forschler download-built-product should allow for a proxy option https://bugs.webkit.org/show_bug.cgi?id=174875 Reviewed by Aakash Jain, Alexey Proskuryakov, Dean Johnson * BuildSlaveSupport/build.webkit.org-config/master.cfg: (DownloadBuiltProduct.start): Teach buildbot to pass along proxy for Apple bots 2017-08-02 Jonathan Bedard check-webkit-style: deleting lines in a file runs the linter on the whole file https://bugs.webkit.org/show_bug.cgi?id=175078 Reviewed by David Kilzer. Deleting lines in a file should not cause linter errors to be blamed on the patch. is an example of this happening. * Scripts/webkitpy/style/checkers/test_expectations.py: (TestExpectationsChecker._should_log_linter_warning): Do not log a linter error if the file it is associated with only has deleted lines * Scripts/webkitpy/style/main_unittest.py: (ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line): Added files should have every line number in the file when processing. (ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line_only_deletes): Test case where the file with the linter errors only contained deletes. (ExpectationLinterInStyleCheckerTest.test_linter_added_file_with_error): Added files should have every line number in the file when processing. 2017-08-02 Jonathan Bedard webkitpy: Allow caller to specify response to unicode encode/decode error in filesystem https://bugs.webkit.org/show_bug.cgi?id=175075 Reviewed by David Kilzer. We have no way of handling text files with illegal unicode characters. Allow the callers of filesystem.read_text_file to specify one of Python 2.7's supported responses ('strict', 'ignore', or 'replace'). See https://docs.python.org/2/howto/unicode.html for details on these responses. * Scripts/webkitpy/common/system/filesystem.py: (FileSystem.read_text_file): Allow caller to specify unicode error handling. (FileSystem.write_text_file): Ditto. * Scripts/webkitpy/common/system/filesystem_mock.py: (MockFileSystem.read_text_file): Allow caller to specify unicode error handling. (MockFileSystem.write_text_file): Ditto. * Scripts/webkitpy/common/system/filesystem_unittest.py: (RealFileSystemTest.test_read_text_file_unicode_decode_error): Test reading a file with illegal unicode content. (RealFileSystemTest.test_write_text_file_unicode_encode_error): Test writing illegal unicode content to a file. 2017-08-02 Aakash Jain Intermittent exception in buildPageURLForIteration for Buildbot 0.9 dashboard https://bugs.webkit.org/show_bug.cgi?id=175072 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js: (Buildbot): Make sure this._builderNameToIDMap is always defined for Buildbot 0.9. 2017-08-02 Michael Catanzaro [CMake] Remove obsolete code in TestWebKitAPI/CMakeLists.txt https://bugs.webkit.org/show_bug.cgi?id=175019 Reviewed by Darin Adler. * TestWebKitAPI/CMakeLists.txt: 2017-08-01 Csaba Osztrogonác Enabling uploading archives to S3 https://bugs.webkit.org/show_bug.cgi?id=174198 Unreviewed unit test fix after r219235. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: 2017-08-01 Csaba Osztrogonác Fix JSCOnly ARM buildbots after r220047 https://bugs.webkit.org/show_bug.cgi?id=174993 Unreviewed fix after r220087. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (BuildAndRemoteJSCTestsFactory.__init__): 2017-08-01 Chris Dumez Add initial support for navigator.sendBeacon https://bugs.webkit.org/show_bug.cgi?id=175007 Reviewed by Sam Weinig. Enable the Beacon API at runtime in the context of layout tests since the feature is currently disabled by default. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setModernMediaControlsEnabled): (WTR::TestRunner::setBeaconAPIEnabled): * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-08-01 Aakash Jain Update Bot Watcher's Dashboard for Buildbot 0.9 https://bugs.webkit.org/show_bug.cgi?id=174777 Reviewed by Daniel Bates. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js: (Buildbot): Check if USE_BUILDBOT_VERSION_LESS_THAN_09 is passed. (Buildbot.prototype._computeBuilderNameToIDMap): Fetch the builder name to ID mapping from buidbot and store in a dictionary. (Buildbot.prototype.buildPageURLForIteration): Updated URL as per Buildbot 0.9 format. Buildbot 0.9 currently does not support builder name in the build url. See . * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: (isMultiCodebaseGotRevisionProperty): Adapting to new data format. (parseRevisionProperty): Ditto. (BuildbotIteration.prototype.failureLogURL): Return the URL to build page if precise failure url is not available. For Buildbot 0.9, build page URL would be appropriate in most cases as per the new UI. (BuildbotIteration.prototype._parseData): Parsing the data as per new data format. Many variable names and data types have changed in Buildbot 0.9. (BuildbotIteration.prototype._adjustBuildDataForBuildbot09): Adjust the Buildbot 0.8 data to new format. (BuildbotIteration.prototype._updateIfDataAvailable): Update method for Buildbot 0.9 data. We are performing two API calls, one for build information, another for step information of that build. We need to wait until data from both REST API calls are available. (BuildbotIteration.prototype._deprecatedUpdateWithData): Renamed from _updateWithData, used for Buildbot 0.8 data. (BuildbotIteration.prototype.get buildURL): URL to fetch build information from Buildbot. Also fetches got_revision property. (BuildbotIteration.prototype.get buildStepsURL): URL to fetch the steps information from Buildbot. (BuildbotIteration.prototype.urlFailedToLoad): Callback method to be used when URL fails to load. Made it a separate function now. (BuildbotIteration.prototype.update): Modified to support both Buildbot 0.9 and 0.8 data format. (BuildbotIteration.prototype.actualUpdate): Update method for Buildbot 0.9 data. (BuildbotIteration.prototype.deprecatedUpdate): Update method for Buildbot 0.8 data. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueue.js: (BuildbotQueue.prototype.get baseURL): Updated URL as per Buildbot 0.9 format. (BuildbotQueue.prototype.get allIterationsURL): Ditto. (BuildbotQueue.prototype.get overviewURL): Ditto. (BuildbotQueue.prototype.get buildsURL): URL to fetch builds data in Buildbot 0.9. (BuildbotQueue.prototype.get buildsInfoURL): Returns the appropriate URL to use to fetch builds information from Buildbot 0.8 or 0.9. (BuildbotQueue.prototype.getBuilds): Method compatible with both Buildbot 0.8 and 0.9 to get build information from data fetched from Buildbot. Also, reversing the Buildbot 0.8 data to make it similar to 0.9 data format. (BuildbotQueue.prototype.isBuildComplete): Method compatible with both Buildbot 0.8 and 0.9 to check if the build has completed. (BuildbotQueue.prototype.getIterationID): Method compatible with both Buildbot 0.8 and 0.9 to get the Iteration ID. (BuildbotQueue.prototype.update): Supports both Buildbot 0.8 and 0.9. Buildbot 0.9 REST API doesn't have cachedBuilds and currentBuilds. Therefore we are fetching information for fixed number of build. Also iterating the loop incrementally since the build data is already reverse sorted. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTestResults.js: (BuildbotTestResults.prototype._parseResults): Updated as per Buildbot 0.9 format. Note that we do not need to worry about 0.8 or 0.9 data format here, since the data is already converted to 0.9 format. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: (WebKitBuildbot): Pass the USE_BUILDBOT_VERSION_LESS_THAN_09 flag. 2017-08-01 Devin Rousso Web Inspector: simplify WebInspector with WI https://bugs.webkit.org/show_bug.cgi?id=175058 Reviewed by Joseph Pecoraro. * Scripts/check-inspector-strings: (extract_ui_strings): * Scripts/extract-localizable-js-strings: 2017-08-01 Youenn Fablet Layout tests with 'https' suffix should be run over HTTPS https://bugs.webkit.org/show_bug.cgi?id=174992 Reviewed by Chris Dumez. Updating the test-name <-> uri conversion routines to use https when test names contain ".https." in them. This covers WPT tests, WPT WebKit tests and HTTP layout tests. Covered by corresponding unit tests. * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: (run_server): * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (base_http_url): (base_https_url): (base_url): Deleted. * Scripts/webkitpy/port/base.py: (Port.to.web_platform_test_server_base_http_url): (Port.to): (Port.to.web_platform_test_server_base_https_url): (Port.to.web_platform_test_server_base_url): Deleted. * Scripts/webkitpy/port/driver.py: (Driver.__init__): (Driver.wpt_test_path_to_uri): (Driver): (Driver.http_test_path_to_uri): (Driver.test_to_uri): (Driver.uri_to_test): * Scripts/webkitpy/port/driver_unittest.py: (DriverTest.test_test_to_uri): (DriverTest.test_uri_to_test): 2017-07-26 Jiewen Tan Add tests to detect mistakes in backward compatibility when the structured clone algorithm is changed in the future https://bugs.webkit.org/show_bug.cgi?id=173998 Reviewed by Darin Adler. Since the structured clone algorithm is used for data stored in persistent databases, we need tests to help us detect mistakes in backward compatibility in the future when we change it. The way it works is to read from a pre-baked database and see if all the values are matched with the expectations. Surprisedly, some of structured clonable objects cannot be stored into the indexedDB. Those are FileList, ObjectReference, MessagePortReference, ArrayBufferView, ArrayBufferTransfer, NonMapProperties, NonSetProperties, SharedArrayBuffer, WasmModule, DOMPointReadOnly, DOMPoint, DOMRectReadOnly, DOMRect, DOMMatrixReadOnly, DOMMatrix, DOMQuad and Error. CryptoKey objects are not included as well as they need new API for encrypting/decrypting the internal key data slot. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibility.mm: Added. (-[IndexedDBStructuredCloneBackwardCompatibilityMessageHandler userContentController:didReceiveScriptMessage:]): (getNextMessage): (TEST): Here is the API test that moves the pre-baked database to the location where TestWebKitAPI can read from. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-shm: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-wal: Added. These are the pre-baked databases. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibilityRead.html: Added. This is the actual test that do all the reads and comparisons. * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBStructuredCloneBackwardCompatibilityWrite.html: Added. This is the page that bakes the database. It never runs automatically. It is for someone who needs to teach IndexedDB new stuffs. Then it can be used to bake the database again. 2017-08-01 Brady Eidson API test URLSchemeHandler.Exceptions is Exiting out early on macOS Debug.. https://bugs.webkit.org/show_bug.cgi?id=175030 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: (-[TaskSchemeHandler webView:startURLSchemeTask:]): Stop calling an invalid NSError constructor. 2017-08-01 Brady Eidson Part 2 of: Rename DatabaseProcess to StorageProcess. https://bugs.webkit.org/show_bug.cgi?id=174880 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/IDBIndexUpgradeToV2.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/ResourceLoadStatistics.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: 2017-07-31 Csaba Osztrogonác Fix JSCOnly ARM buildbots after r220047 https://bugs.webkit.org/show_bug.cgi?id=174993 Reviewed by Saam Barati. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (BuildAndRemoteJSCTestsFactory.__init__): 2017-07-30 Yusuke Suzuki [WTF] Introduce Private Symbols https://bugs.webkit.org/show_bug.cgi?id=174935 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/StringImpl.cpp: (TestWebKitAPI::TEST): 2017-07-30 Darin Adler Remove code in HTMLObjectElement attribute parsing that forces style resolution and layout https://bugs.webkit.org/show_bug.cgi?id=130653 Reviewed by Antti Koivisto. * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::InjectedBundlePage::didFinishLoadForFrame): Omit now-unneeded "shouldDump" argument when calling frameDidChangeLocation. (WTR::InjectedBundlePage::frameDidChangeLocation): Removed "shouldDump" argument. This was causing WebKitTestRunner to not dump anything in cases where DumpRenderTree will dump, and thus causing mysterious failures of a couple of tests. There are two remaining issues: 1) WebKitTestRunner won't run its dump code if there is no "page", and there is no such consideration in DumpRenderTree and 2) Both DumpRenderTree and WebKitTestRunner share the same logic flaw that causes "top loading frame" to get set to one of the subframes in tests where the following sequence occurs: test calls waitUntilDone, main frame finishes loading, subframe starts loading. It would be good to clean that up some day, but for now this patch makes the two work identically rather than changing both. * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: Updated for change above. 2017-07-30 Wenson Hsieh [WK2] Replace RetainPtr<> with auto when adopting allocated ObjC objects in DataInteractionTests https://bugs.webkit.org/show_bug.cgi?id=174963 Reviewed by Darin Adler. Replaces several uses of RetainPtr<>s with auto. Some test cases in this file use auto, while other test cases declare using RetainPtr<>. This patch changes them to all use auto. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-07-30 Brady Eidson Add URLSchemeHandler API tests that verify the lack of URLSchemeTask object leaks. https://bugs.webkit.org/show_bug.cgi?id=174958 Reviewed by Darin Adler. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-leaks.mm: Added. (-[LeakSchemeHandler webView:startURLSchemeTask:]): (-[LeakSchemeHandler webView:stopURLSchemeTask:]): (runUntilTasksInFlight): (TEST): 2017-07-28 Commit Queue Unreviewed, rolling out r219990. https://bugs.webkit.org/show_bug.cgi?id=174961 "broke PLT on iOS (rdar://problem/33602751)" (Requested by estes on #webkit). Reverted changeset: "Part 2 of: Rename DatabaseProcess to StorageProcess." https://bugs.webkit.org/show_bug.cgi?id=174880 http://trac.webkit.org/changeset/219990 2017-07-28 Brady Eidson API tests that use URLSchemeHandler are failing. https://bugs.webkit.org/show_bug.cgi?id=174950 Reviewed by Alex Christensen. Fix the NoMIMEType test to be correct. * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: (-[SchemeHandler initWithData:mimeType:]): (-[SchemeHandler webView:startURLSchemeTask:]): (TEST): 2017-07-28 Daniel Bates prepare-ChangeLog should not list added layout tests in PAL ChangeLog https://bugs.webkit.org/show_bug.cgi?id=174876 Reviewed by Alex Christensen. Do not list added layout tests in the PAL ChangeLog as such tests are unlikely to be related to a PAL change. Unit tests are more appropriate for PAL changes than layout tests because they provide a more direct way to test the platform abstraction. As a side effect of this change we no longer list added layout tests in WebCore/platform/gtk/po/ChangeLog. * Scripts/prepare-ChangeLog: (generateNewChangeLogs): Only list added layout tests in the WebCore ChangeLog regardless of the current working directory. 2017-07-28 Jonathan Bedard Using "auto -> returnType" breaks prepare-ChangeLog https://bugs.webkit.org/show_bug.cgi?id=174930 Unreviewed test fix. We need to check parentheses before printing 'const' or 'volatile' in the ChangeLog. * Scripts/prepare-ChangeLog: (get_function_line_ranges_for_cpp): 2017-07-28 JF Bastien Using "auto -> returnType" breaks prepare-ChangeLog https://bugs.webkit.org/show_bug.cgi?id=174930 Reviewed by Daniel Bates. Teach prepare-ChangeLog about C++ auto arrow return, and while I'm here also teach it about const and volatile overloads. I didn't do reference and rvalue reference overloads because we don't really use them, and the current parser throws away those characters and it doesn't seem worth making it more complex. * Scripts/prepare-ChangeLog: (get_function_line_ranges_for_cpp): * Scripts/webkitperl/prepare-ChangeLog_unittest/resources/cpp_unittests-expected.txt: * Scripts/webkitperl/prepare-ChangeLog_unittest/resources/cpp_unittests.cpp: (Foo::Arrow::arrow): (Foo::Arrow::otherArrow): (Foo::Arrow::otherArrow const): (Foo::Arrow::otherArrow volatile): (Foo::Arrow::otherArrow const volatile): 2017-07-28 Adrian Perez de Castro [GTK] Building with ENABLE_VIDEO=OFF fails https://bugs.webkit.org/show_bug.cgi?id=174940 Reviewed by Alex Christensen. When GStreamer usage is completely disabled at build time, CMake does not query pkg-config for the GStreamer. This adds missing USE(GSTREAMER) guards in order to make testing code buildable when GStreamer usage is disabled. * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp: (methodCallCallback): Add missing USE(GSTREAMER) guard. 2017-07-28 Claudio Saavedra [WPE] Implement EventSenderProxy in WTR https://bugs.webkit.org/show_bug.cgi?id=173419 Reviewed by Žan Doberšek. Add the implementation of EventSenderProxy to the WTR. This allows us to extend the coverage of the test suite in WKWPE. * WebKitTestRunner/EventSenderProxy.h: * WebKitTestRunner/PlatformWPE.cmake: Add dependency on libxkbcommon needed to deal with key events. * WebKitTestRunner/wpe/EventSenderProxyWPE.cpp: (WTR::EventSenderProxy::EventSenderProxy): (WTR::senderButtonToWPEButton): (WTR::EventSenderProxy::mouseDown): (WTR::EventSenderProxy::mouseUp): (WTR::EventSenderProxy::mouseMoveTo): (WTR::EventSenderProxy::mouseScrollBy): (WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): (WTR::EventSenderProxy::leapForward): (WTR::wkEventModifiersToWPE): (WTR::getXKBKeySymForKeyRef): (WTR::EventSenderProxy::keyDown): (WTR::EventSenderProxy::addTouchPoint): (WTR::EventSenderProxy::updateTouchPoint): (WTR::EventSenderProxy::setTouchModifier): (WTR::EventSenderProxy::setTouchPointRadius): (WTR::EventSenderProxy::getUpdatedTouchEvents): (WTR::EventSenderProxy::removeUpdatedTouchEvents): (WTR::EventSenderProxy::prepareAndDispatchTouchEvent): (WTR::EventSenderProxy::touchStart): (WTR::EventSenderProxy::touchMove): (WTR::EventSenderProxy::touchEnd): (WTR::EventSenderProxy::touchCancel): (WTR::EventSenderProxy::clearTouchPoints): (WTR::EventSenderProxy::releaseTouchPoint): (WTR::EventSenderProxy::cancelTouchPoint): 2017-07-27 Brady Eidson Part 2 of: Rename DatabaseProcess to StorageProcess. https://bugs.webkit.org/show_bug.cgi?id=174880 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/IDBIndexUpgradeToV2.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/ResourceLoadStatistics.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: 2017-07-26 Mark Lam Add ability to only run specific tests in run-javascriptcore-tests. https://bugs.webkit.org/show_bug.cgi?id=174884 Reviewed by Saam Barati. For example, if we only want to run testapi, we can do so as follows: $ run-javascriptcore-tests --testapi Previously, specifying --testapi effectively does nothing because we run all tests by default. Only --no-testapi had the effect of disabling the test set. This old behavior for --testapi is not very useful or meaningful. We're now changing it to mean that we will only run that test. With this change, we can also run more than one set of tests. For example, if we only want to run testmasm and testair, we can do so as follows: $ run-javascriptcore-tests --testmasm --testair By default, if no specific test option is specified, run-javascriptcore-tests will run all tests. Note that the jsc stress tests (--jsc-stress) are a different set of tests than the mozilla tests (--mozilla-tests) even though both are run via the lower level run-jsc-stress-tests test harness. Hence, if you only specify one of the tests, the other set will not run. For example, the following only runs the mozilla tests: $ run-javascriptcore-tests --mozilla-tests Note also that --jit-stress-tests is not for choosing a different set of tests. Instead, it is used for determining whether we run JIT'ed test configurations on the jsc stress tests and mozilla tests. As a result, specifying --jit-stress-tests will not omit other tests. For example, the following still runs all tests: $ run-javascriptcore-tests --jit-stress-tests * Scripts/run-javascriptcore-tests: (defaultStringForTestState): (enableTestOrNot): (runJSCStressTests): 2017-07-26 Mark Lam Make run-javascriptcore-test run testair, testb3, and testmasm. https://bugs.webkit.org/show_bug.cgi?id=174837 Reviewed by Saam Barati and Filip Pizlo. 1. Refactors code for running testapi so that we can use it to run other tests. 2. Added running of testmasm, testair, testb3. Note: the existing testapi invocation code does not support remote invocation of the tests (e.g. on a ARM device). Hence, the new additions of testmasm, testair, and testb3 also do not support remote invocation. If we wish to add remote invocation support, we should do that in a separate patch. * Scripts/run-javascriptcore-tests: (testPath): (runTest): (testapiPath): Deleted. 2017-07-26 Aakash Jain Remove duplicate code from Buildbot.js in dashboard https://bugs.webkit.org/show_bug.cgi?id=174870 Reviewed by Daniel Bates. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js: (Buildbot.prototype.javaScriptCoreTestFailuresURLForIteration): Remove duplicate code and reuse buildPageURLForIteration() to construct URL. (Buildbot.prototype.javaScriptCoreTestStdioUrlForIteration): Ditto. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbot.js: (MockBuildbot.prototype.javaScriptCoreTestStdioUrlForIteration): Ditto for tests. 2017-07-26 Brady Eidson Add test to verify certain child processes are not launched as a side effect of enabling ResourceLoadStatistics. https://bugs.webkit.org/show_bug.cgi?id=174851 Reviewed by Chris Dumez. * TestWebKitAPI/Tests/WebKit2Cocoa/ResourceLoadStatistics.mm: (TEST): 2017-07-26 Brian Burg Remove WEB_TIMING feature flag https://bugs.webkit.org/show_bug.cgi?id=174795 Reviewed by Alex Christensen. * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-07-26 Chris Dumez Pressing the Escape key should not be a valid user gesture to enter fullscreen https://bugs.webkit.org/show_bug.cgi?id=174864 Reviewed by Geoffrey Garen. Add support for eventSender.keyDown('escape') in DRT to match the behavior of WKTR. * DumpRenderTree/mac/EventSendingController.mm: (-[EventSendingController keyDown:withModifiers:withLocation:]): 2017-07-26 Romain Bellessort Unreviewed, added Romain Bellessort to contributors.json. * Scripts/webkitpy/common/config/contributors.json: 2017-07-26 Zan Dobersek [WPE] WebGL2 support https://bugs.webkit.org/show_bug.cgi?id=174249 Reviewed by Alex Christensen. * Scripts/webkitperl/FeatureList.pm: Enable WebGL2 for WPE when building through build-webkit. 2017-07-26 Carlos Garcia Campos Unreviewed. Fix GTK distcheck. * gtk/make-dist.py: (ensure_version_if_possible): Use the right pkg-config filename, it's webkit2gtk not webkitgtk. 2017-07-25 Brady Eidson ResourceLoadStatistics grandfathering happens much too often. and https://bugs.webkit.org/show_bug.cgi?id=174825 Reviewed by Chris Dumez. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/EmptyGrandfatheredResourceLoadStatistics.plist: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/ResourceLoadStatistics.mm: Added. (TEST): 2017-07-25 Matthew Stewart Fix autoinstaller failing on autoinstall_everything https://bugs.webkit.org/show_bug.cgi?id=174830 Reviewed by Joseph Pecoraro. * Scripts/webkitpy/thirdparty/__init__.py: (AutoinstallImportHook.find_module): (AutoinstallImportHook.install_chromedriver): (AutoinstallImportHook.install_geckodriver): (AutoinstallImportHook._install_chromedriver): Deleted. (AutoinstallImportHook._install_geckodriver): Deleted. 2017-07-25 Jonathan Bedard Replace --runtime with something for both ios-simulator and ios-device https://bugs.webkit.org/show_bug.cgi?id=173775 Reviewed by Aakash Jain. Add --version flag for both iOS simulator and iOS device. * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): Add --version flag and move --no-install. * Scripts/webkitpy/port/factory.py: (platform_options): Move --no-intall to run_webkit_tests.py. * Scripts/webkitpy/port/ios.py: (IOSPort): (IOSPort._is_valid_ios_version): Check that the provided version string is legal. (IOSPort.get_option): If accessing the iOS version, check that it is a valid version string. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.ios_version): Consult --version flag before checking connected devices for iOS version. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest.make_port): Set --version option so that we can generate test expectation paths without devices connected. (IOSDeviceTest.test_additional_platform_directory): Deleted. (IOSDeviceTest.test_baseline_searchpath): Deleted. (IOSDeviceTest.test_expectations_ordering): Deleted. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.simulator_runtime): If no runtime is specified, use the --version flag to specify a runtime. (IOSSimulatorPort.ios_version): First check the --version flag, then the --runtime flag and then use the default runtime. 2017-07-25 Carlos Garcia Campos [GTK] TestWebKitAPI tests are no longer built since the WebKit2 rename https://bugs.webkit.org/show_bug.cgi?id=174815 Reviewed by Carlos Alberto Lopez Perez. Only WebKitGTK specific tests are built, but not WebKit2, WTF nor WebCore ones. We are still checking ENABLE_WEBKIT2 in the makefile, that was renamed to ENABLE_WEBKIT. Also, all WebKit2 test paths were updated to use WebKit dir, while the tests are still in WebKit2 directory. This patch also removes TestWebKitAPIInjectedBundle_PATH that is unused and now makes the configure to fail (it used to be a warning, I think), probably because of a newer CMake version. * CMakeLists.txt: * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/PlatformGTK.cmake: 2017-07-24 Matthew Stewart Fix BenchmarkRunner to only import selenium when needed https://bugs.webkit.org/show_bug.cgi?id=174808 Reviewed by Stephanie Lewis. * Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py: (LinuxChromeDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py: (LinuxFirefoxDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: (OSXChromeDriver.launch_driver): (OSXChromeCanaryDriver.launch_driver): (create_chrome_options): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: (OSXFirefoxDriver.launch_driver): (OSXFirefoxNightlyDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: (OSXSafariDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py: (WebDriverBenchmarkRunner._run_one_test): 2017-07-23 Darin Adler More NeverDestroyed and related cleanup https://bugs.webkit.org/show_bug.cgi?id=174745 Reviewed by Alex Christensen. * DumpRenderTree/JavaScriptThreading.cpp: (javaScriptThreadsMutex): Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL. (javaScriptThreads): Ditto. 2017-07-24 Matthew Stewart Subclass Benchmark Runner script for WebDriver support https://bugs.webkit.org/show_bug.cgi?id=174390 Reviewed by Dewei Zhu, Stephanie Lewis. Add WebServerBenchmarkRunner and WebDriverBenchmarkRunner subclasses. * Scripts/webkitpy/benchmark_runner/benchmark_builder.py: (BenchmarkBuilder.__init__): * Scripts/webkitpy/benchmark_runner/benchmark_runner.py: (BenchmarkRunner.__init__): (BenchmarkRunner._find_plan_file): (BenchmarkRunner._run_one_test.and): (BenchmarkRunner.execute): (BenchmarkRunner._get_result): Deleted. * Scripts/webkitpy/benchmark_runner/run_benchmark.py: (parse_args): (start): * Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py: Added. (WebDriverBenchmarkRunner): (WebDriverBenchmarkRunner._get_result): (WebDriverBenchmarkRunner._run_one_test): * Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py: Added. (WebServerBenchmarkRunner): (WebServerBenchmarkRunner.__init__): (WebServerBenchmarkRunner._get_result): (WebServerBenchmarkRunner._run_one_test): 2017-07-24 Matthew Stewart Add BenchmarkRunner patches with WebDriver support for each testing plan https://bugs.webkit.org/show_bug.cgi?id=174443 Reviewed by Dewei Zhu, Stephanie Lewis. * Scripts/webkitpy/benchmark_runner/benchmark_builder.py: (BenchmarkBuilder.__enter__): * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/ARES-6.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/ContentAnimation.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/Dromaeo.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/JSBench.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/JetStream.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/Kraken.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/MotionMark.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/Octane.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/Speedometer.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webdriver/SunSpider.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/ARES-6.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/Animometer.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/ContentAnimation.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/Dromaeo.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/JSBench.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/JetStream.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/Kraken.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/MotionMark.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/Octane.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/Speedometer.patch: * Scripts/webkitpy/benchmark_runner/data/patches/webserver/SunSpider.patch: * Scripts/webkitpy/benchmark_runner/data/plans/ares6.plan: * Scripts/webkitpy/benchmark_runner/data/plans/content-animation.plan: * Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-cssquery.plan: * Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-dom.plan: * Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-jslib.plan: * Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: * Scripts/webkitpy/benchmark_runner/data/plans/jsbench.plan: * Scripts/webkitpy/benchmark_runner/data/plans/kraken.plan: * Scripts/webkitpy/benchmark_runner/data/plans/motionmark.plan: * Scripts/webkitpy/benchmark_runner/data/plans/octane.plan: * Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: * Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan: 2017-07-24 Matthew Stewart Add functions to autoinstaller needed for Benchmark Runner script https://bugs.webkit.org/show_bug.cgi?id=174331 Reviewed by Dean Johnson, Dewei Zhu, Stephanie Lewis. Adds autoinstaller functions to install selenium and webdriver binaries which will be used by the browser driver part of Benchmark Runner. * Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py: (BrowserDriver.restore_env): (BrowserDriver): (BrowserDriver.get_webdriver_binary_path): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py: (LinuxChromeDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py: (LinuxFirefoxDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: (OSXChromeDriver.launch_driver): (OSXChromeCanaryDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: (OSXFirefoxDriver.launch_driver): (OSXFirefoxNightlyDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: * Scripts/webkitpy/benchmark_runner/utils.py: (get_driver_binary_path): * Scripts/webkitpy/common/system/autoinstall.py: (AutoInstaller._unzip): * Scripts/webkitpy/thirdparty/__init__.py: (AutoinstallImportHook.find_module): (AutoinstallImportHook._install_selenium): (AutoinstallImportHook): (AutoinstallImportHook._install_chromedriver): (AutoinstallImportHook._install_geckodriver): (AutoinstallImportHook.get_latest_pypi_url): (AutoinstallImportHook.install_binary): (autoinstall_everything): (get_driver_filename): (get_os_info): 2017-07-24 Matthew Stewart Add WebDriver support in browser driver part of BenchmarkRunner https://bugs.webkit.org/show_bug.cgi?id=174445 Reviewed by Stephanie Lewis. Adds a launch_driver function to each BrowserDriver subclass. This function sets up the arguments for the webdriver and launches the webdriver specific to that browser. * Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py: (BrowserDriver.launch_webdriver): (BrowserDriver): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py: (LinuxBrowserDriver.launch_webdriver): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py: (LinuxChromeDriver.launch_url): (LinuxChromeDriver): (LinuxChromeDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py: (EpiphanyBrowserDriver.launch_url): (EpiphanyBrowserDriver): (EpiphanyBrowserDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py: (LinuxFirefoxDriver): (LinuxFirefoxDriver.launch_url): (LinuxFirefoxDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py: (GTKMiniBrowserDriver.launch_url): (GTKMiniBrowserDriver): (GTKMiniBrowserDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py: (OSXBrowserDriver._launch_webdriver): (OSXBrowserDriver): (OSXBrowserDriver._screen_size): (OSXBrowserDriver._insert_url): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: (OSXChromeDriver): (OSXChromeDriver.launch_url): (OSXChromeDriver.launch_driver): (OSXChromeCanaryDriver): (OSXChromeCanaryDriver.launch_url): (OSXChromeCanaryDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: (OSXFirefoxDriver): (OSXFirefoxDriver.launch_url): (OSXFirefoxDriver.launch_driver): (OSXFirefoxNightlyDriver): (OSXFirefoxNightlyDriver.launch_url): (OSXFirefoxNightlyDriver.launch_driver): * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: (OSXSafariDriver.launch_driver): 2017-07-24 Wenson Hsieh [Mac WK2] Add an API test to cover r219765 (null dereference in [WKWebView dealloc]) https://bugs.webkit.org/show_bug.cgi?id=174793 Reviewed by Tim Horton. Adds a new unit test that invokes some asynchronous NSTextInputClient SPI methods as the web view is tearing down. Without r219765, this test will dereference null and crash. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/TestWebKitAPI/mac/NSTextInputClientSPI.h: Added. * TestWebKitAPI/Tests/mac/WKWebViewSelectionTests.mm: (TEST): 2017-07-24 Basuke Suzuki [Win] Implement Authentication dialog in MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=174662 Reviewed by Alex Christensen. * MiniBrowser/win/Common.cpp: (CustomUserAgent): (DisplayAuthDialog): (AuthDialogProc): * MiniBrowser/win/MiniBrowserLib.rc: * MiniBrowser/win/MiniBrowserLibResource.h: * MiniBrowser/win/ResourceLoadDelegate.cpp: (ResourceLoadDelegate::didReceiveAuthenticationChallenge): 2017-07-24 Jonathan Bedard Handle case where line_numbers is None instead of an array of line numbers https://bugs.webkit.org/show_bug.cgi?id=174775 Reviewed by Aakash Jain. Added files set line_numbers to None in process_file. * Scripts/webkitpy/style/filereader.py: (TextFileReader.process_file): Handle case where line_number is set to None. * Scripts/webkitpy/style/main_unittest.py: (ExpectationLinterInStyleCheckerTest.test_linter_added_file_with_error): Test case of an added file. 2017-07-24 Zan Dobersek [WPE] Add libepoxy to the Jhbuild moduleset https://bugs.webkit.org/show_bug.cgi?id=174711 Reviewed by Carlos Alberto Lopez Perez. * wpe/jhbuild.modules: Add libepoxy 1.4.3 to WPE's Jhbuild moduleset. 2017-07-24 Zan Dobersek [WPE] libepoxy headers can use EGL_CAST, which might not be defined by eglplatform.h https://bugs.webkit.org/show_bug.cgi?id=174780 Reviewed by Carlos Garcia Campos. * WebKitTestRunner/wpe/HeadlessViewBackend.cpp: Manually define the EGL_CAST macro to the C++ version that uses static_cast<> in case the eglplatform.h header doesn't provide that macro. This replicates the work in WebCore's EpoxyEGL.h header, but we can't include that header here. 2017-07-22 Wenson Hsieh [iOS WK2] Remove _WKDraggableElementInfo and fold PositionInformationTests into WKRequestActivatedElementInfo https://bugs.webkit.org/show_bug.cgi?id=174758 Reviewed by Dan Bernstein. Migrate position-information-related unit tests from the PositionInformationTests suite to WKRequestActivatedElementInfo as 2 new unit tests. See WebKit2 ChangeLog for more details. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm: (TestWebKitAPI::checkElementTypeAndBoundingRect): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/ios/PositionInformationTests.mm: Removed. * TestWebKitAPI/cocoa/TestWKWebView.h: * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView activatedElementAtPosition:]): 2017-07-22 Chris Dumez REGRESSION(r204565): WKObject is broken https://bugs.webkit.org/show_bug.cgi?id=174736 Reviewed by Dan Bernstein. Add API test that used to crash. * TestWebKitAPI/Tests/WebKit2Cocoa/WKObject.mm: (TestWebKitAPI::TEST): 2017-07-22 Yusuke Suzuki [WTF] Extend ThreadGroup::add results from bool to ThreadGroupAddResult https://bugs.webkit.org/show_bug.cgi?id=174705 Reviewed by Mark Lam. * TestWebKitAPI/Tests/WTF/ThreadGroup.cpp: (TestWebKitAPI::testThreadGroup): (TestWebKitAPI::TEST): 2017-07-21 Jonathan Bedard Fail gracefully when xcrun fails in IOSSimulatorPort constructor https://bugs.webkit.org/show_bug.cgi?id=174724 Reviewed by Aakash Jain. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.__init__): Ignore any errors when attempting to find a running simulator. Errors here should be treated the same as no simulators found. 2017-07-21 Yousuke Kimoto [CMake] Add an option to stop build after generating project files https://bugs.webkit.org/show_bug.cgi?id=174664 Reviewed by Konstantin Tokarev. Add "--generate-project-only" to stop build after generating project files. * Scripts/build-webkit: Add '--generate-project-only' option and a checker to stop build. * Scripts/webkitdirs.pm: Add a function to check '--generate-project-only' option and the same checker as the above (buildCMakeProjectOrExit): Add a cheker to stop build stop build after generating project files. (determineIsGenerateProjectOnly): Check if '--generate-project-only' option is specified (isGenerateProjectOnly): ditto 2017-07-21 Yusuke Suzuki [WTF] Newly added AtomicStringImpl should use BufferInternal static string if StringImpl is static https://bugs.webkit.org/show_bug.cgi?id=174501 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/StringImpl.cpp: (TestWebKitAPI::TEST): 2017-07-20 David Quesada Add SPI to notify WKNavigationDelegate about client redirects https://bugs.webkit.org/show_bug.cgi?id=174680 rdar://problem/33184886 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm: (-[DidPerformClientRedirectNavigationDelegate _webView:didPerformClientRedirectForNavigation:]): (TEST): Add API test for -[id _webView:didPerformClientRedirectForNavigation:]. 2017-07-20 Brady Eidson Test WebKit2CustomProtocolsTest.ProcessPoolDestroyedDuringLoading added in r219664 fails on El Capitan. https://bugs.webkit.org/show_bug.cgi?id=174685 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm: (TestWebKitAPI::TEST): Use a scoped AutodrainedPool instead of a RetainPtr. 2017-07-20 Brady Eidson Deprecate WebIconDatabase in WebKitLegacy/mac. https://bugs.webkit.org/show_bug.cgi?id=174607 Reviewed by Alex Christensen. * DumpRenderTree/mac/TestRunnerMac.mm: 2017-07-20 Jonathan Bedard lint-test-expectations should be run during style checking https://bugs.webkit.org/show_bug.cgi?id=173559 Reviewed by Aakash Jain. * Scripts/webkitpy/layout_tests/models/test_expectations.py: (TestExpectationsModel._already_seen_better_match): Append returns 'None' when successful, prevents identifying errors on specific lines in a file. * Scripts/webkitpy/style/main_unittest.py: (ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line_edit_in_file): Test for the case where a linter error is in the file modified, but the line modified is not related to the linter error. 2017-07-20 Brady Eidson Remove WebIconDatabase from WebKitLegacy/win. https://bugs.webkit.org/show_bug.cgi?id=174608 Reviewed by Alex Christensen. * DumpRenderTree/win/DumpRenderTree.cpp: (main): * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::setIconDatabaseEnabled): 2017-07-20 Zan Dobersek [WPE] Adjust priority of GSource used in WKTR's HeadlessViewBackend https://bugs.webkit.org/show_bug.cgi?id=174671 Reviewed by Carlos Garcia Campos. * WebKitTestRunner/wpe/HeadlessViewBackend.cpp: (HeadlessViewBackend::HeadlessViewBackend): Use the RunLoopDispatcher priority for this source in order to have it dispatched on the same priority as the other WebKit-controlled GSource objects. 2017-07-19 Jonathan Bedard lint-test-expectations should be run during style checking https://bugs.webkit.org/show_bug.cgi?id=173559 Reviewed by Daniel Bates. Follow up fix addressing style and a few minor bugs. * Scripts/webkitpy/layout_tests/models/test_expectations.py: (TestExpectationParser.__init__): Use lambda x: x instead of str (TestExpectationsModel.__init__): Make lambda x: x the default argument. (TestExpectationsModel._already_seen_better_match): Use a temporary variable to reduce the calls of _shorten_filename, fix minor bug in appending the current expectation's line number instead of the previous ones, clarify treatment of None in file-to-line-number mapping. (TestExpectations._report_warnings): Collapse call. * Scripts/webkitpy/style/checkers/test_expectations.py: (TestExpectationsChecker.lint_test_expectations): * Scripts/webkitpy/style/filereader.py: Re-write comment. (TextFileReader.process_file): Add comment explaining treatment of None in file-to-line-number mapping. (TextFileReader.delete_file): Collapse call. 2017-07-19 Chris Dumez Unreviewed attempt to fix API test failure after r219663. The test was hard-coding an exception string and the string has changed slightly in r219663. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: (TEST): 2017-07-19 Megan Gardner Don't write file URLs to iOS Pasteboard https://bugs.webkit.org/show_bug.cgi?id=174647 Reviewed by Wenson Hsieh. Updating tests to reflect the lack of file URLs for images. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkTypeIdentifierAndIsNotOtherTypeIdentifier): (checkEstimatedSize): (TestWebKitAPI::TEST): 2017-07-19 Brady Eidson iBooks sometimes crashes when closing a book. and https://bugs.webkit.org/show_bug.cgi?id=174658 Reviewed by Oliver Hunt. * TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsTest.mm: (-[ProcessPoolDestroyedDuringLoadingProtocol startLoading]): (-[ProcessPoolDestroyedDuringLoadingProtocol finishTheLoad]): (-[ProcessPoolDestroyedDuringLoadingProtocol stopLoading]): (TestWebKitAPI::TEST): Add a "spin the runloop X number of times" utility: * TestWebKitAPI/Utilities.h: * TestWebKitAPI/cocoa/UtilitiesCocoa.mm: (TestWebKitAPI::Util::spinRunLoop): 2017-07-19 Jonathan Bedard lint-test-expectations should be run during style checking https://bugs.webkit.org/show_bug.cgi?id=173559 Reviewed by David Kilzer. Running the test expectation linter requires reading both files and lines not in the patch because, for example, deletion of a test can cause a lint failure even though no test expectations where modified. This means that the linter will occasionally warn about lines which were not changed in a given patch but whose error is related to a change made in that patch. * Scripts/webkitpy/common/system/filesystem_mock.py: (MockFileSystem.open_text_file_for_reading): Add 'errors' argument to mimic filesystem. * Scripts/webkitpy/layout_tests/models/test_expectations.py: (TestExpectationWarning): Added class to pass warnings as an object instead of a string. (TestExpectationWarning.__init__): Construct warning with file name, line number, line content, description of the error and the name of the associated test. (TestExpectationWarning.__str__): Convert to string so that existing printing code works. (TestExpectationParser.__init__): Pass shorten_filename function to TestExpectationsParser to add a deleted file to the related_files dictionary. (TestExpectationParser._check_test_exists): If the test does not exist, add the missing path to the related_files dictionary. (TestExpectationLine.__init__): Add related_files dictionary, which tracks files and line numbers related to this test expectation line. This will allow tracking linter errors in the style checker occurring across multiple files. (TestExpectationsModel._already_seen_better_match): Add redundant expectation lines to related_files dictionary. (TestExpectations.__init__): Pass self._shorten_filename to TestExpectationParser. (TestExpectations._report_warnings): Construct warning object instead of string when adding to warnings list. * Scripts/webkitpy/port/win.py: Changed logging level form warning to debug to clean-up log. * Scripts/webkitpy/style/checker.py: (ProcessorBase.do_association_check): Add required function for processor classes. (StyleProcessor): (StyleProcessor.do_association_check): Run the TestExpectations linter when checking for errors between associated files. * Scripts/webkitpy/style/checkers/test_expectations.py: (TestExpectationsChecker.check_test_expectations): Reflect changed import statements. (TestExpectationsChecker): (TestExpectationsChecker._should_log_linter_warning): Given a warning, a dictionary of modified files, the current working directory and the host, determine if the linter warning is associated with the changes. (TestExpectationsChecker.lint_test_expectations): Lint test expectations for the style checker. * Scripts/webkitpy/style/filereader.py: (TextFileReader): (TextFileReader.__init__): Track modified files in dictionary instead of a counter. (TextFileReader.file_count): Use dictionary to determine the number of modified files. (TextFileReader.process_file): Track both the number of files changed and which lines in those files were changed. (TextFileReader.do_association_check): Run the processor's association check on all modified or deleted files processed by TextFileReader. (TextFileReader.delete_file): Track deleted files in _files dictionary. (TextFileReader.count_delete_only_file): Deleted. * Scripts/webkitpy/style/filereader_unittest.py: (TextFileReaderTest.test_delete_file): Renamed function to reflect new function name. (TextFileReaderTest.test_count_delete_only_file): Moved to test_delete_file. * Scripts/webkitpy/style/main.py: (CheckWebKitStyle.main): When running the style checker on a specific list of files, explicitly run the association check on the file reader. * Scripts/webkitpy/style/main_unittest.py: (ExpectationLinterInStyleCheckerTest): Added to test the TestExpectationLinter now embedded in the style checker. (ExpectationLinterInStyleCheckerTest.setUp): Set up the style checker configuration. (ExpectationLinterInStyleCheckerTest._generate_file_reader): Given a filesystem object, construct the TextFileReader object with a StyleProcessor used to run style checks on specific files. (ExpectationLinterInStyleCheckerTest._generate_testing_host): Generate a host used for testing the test expectation linter inside the style checker. This host must contain a mock file system with the basic structure of test expectations. (ExpectationLinterInStyleCheckerTest.test_no_linter_errors): (ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line): (ExpectationLinterInStyleCheckerTest.test_linter_duplicate_line_no_edit): (ExpectationLinterInStyleCheckerTest.test_linter_deleted_file): (ExpectationLinterInStyleCheckerTest.test_linter_deleted_file_no_edit): * Scripts/webkitpy/style/patchreader.py: (PatchReader.check): Specify which file was deleted, run the association check. * Scripts/webkitpy/style/patchreader_unittest.py: (PatchReaderTest.MockTextFileReader.delete_file): Renamed count_delete_only_file. (PatchReaderTest.MockTextFileReader.do_association_check): Added. (PatchReaderTest.MockTextFileReader.count_delete_only_file): Renamed delete_file. 2017-07-19 Yusuke Suzuki [WTF] Implement WTF::ThreadGroup https://bugs.webkit.org/show_bug.cgi?id=174081 Reviewed by Mark Lam. Add WTF::ThreadGroup tests. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/ThreadGroup.cpp: Added. (TestWebKitAPI::testThreadGroup): (TestWebKitAPI::TEST): 2017-07-18 Andy Estes [Xcode] Enable CLANG_WARN_RANGE_LOOP_ANALYSIS https://bugs.webkit.org/show_bug.cgi?id=174631 Reviewed by Tim Horton. * DumpRenderTree/mac/Configurations/Base.xcconfig: * MiniBrowser/Configurations/Base.xcconfig: * MobileMiniBrowser/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: 2017-07-18 Andy Estes [Xcode] Enable CLANG_WARN_OBJC_LITERAL_CONVERSION https://bugs.webkit.org/show_bug.cgi?id=174631 Reviewed by Sam Weinig. * DumpRenderTree/mac/Configurations/Base.xcconfig: * MiniBrowser/Configurations/Base.xcconfig: * MobileMiniBrowser/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: 2017-07-18 Daniel Bates lldb: Add type summary for StringView https://bugs.webkit.org/show_bug.cgi?id=174637 Reviewed by Sam Weinig. For debugging convenience, adds a pretty-print type summary for StringView. Evaluating a StringView object will print output that has the form: (WTF::StringView) $4 = { length = 2, contents = 'li' } { m_characters = 0x000000011b57abb5 "eeeeeefjh0n" m_length = 2 m_is8Bit = true m_underlyingString = 0x0000614000000a90 } * lldb/lldb_webkit.py: (__lldb_init_module): Use WTFStringView_SummaryProvider to format StringView types. (WTFStringView_SummaryProvider): (WTFStringViewProvider): (WTFStringViewProvider.__init__): (WTFStringViewProvider.is_8bit): Access field StringView.m_is8Bit. (WTFStringViewProvider.get_length): Access field StringView.m_length. (WTFStringViewProvider.get_characters): Access field StringView.m_characters. (WTFStringViewProvider.to_string): Returns the string represented by the StringView. 2017-07-18 Andy Estes [Xcode] Enable CLANG_WARN_NON_LITERAL_NULL_CONVERSION https://bugs.webkit.org/show_bug.cgi?id=174631 Reviewed by Dan Bernstein. * DumpRenderTree/mac/Configurations/Base.xcconfig: * MiniBrowser/Configurations/Base.xcconfig: * MobileMiniBrowser/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: 2017-07-18 Devin Rousso Web Inspector: Add memoryCost to Inspector Protocol objects https://bugs.webkit.org/show_bug.cgi?id=174478 Reviewed by Joseph Pecoraro. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/JavaScriptCore/InspectorValue.cpp: Added. (TestWebKitAPI::TEST(InspectorValue, MemoryCostNull)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostBoolean)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostDouble)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostInteger)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostString)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostStringEmpty)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostStringNull)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostStringGrowing)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostStringUnicode)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostObject)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostObjectEmpty)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostObjectGrowing)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostArray)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostArrayEmpty)): (TestWebKitAPI::TEST(InspectorValue, MemoryCostArrayGrowing)): 2017-07-18 Andy Estes [Xcode] Enable CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING https://bugs.webkit.org/show_bug.cgi?id=174631 Reviewed by Darin Adler. * DumpRenderTree/mac/Configurations/Base.xcconfig: * MiniBrowser/Configurations/Base.xcconfig: * MobileMiniBrowser/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: 2017-07-17 Wenson Hsieh Unreviewed, fix the iOS build. I missed a spot when renaming -synchronouslyLoadHTML: to -synchronouslyLoadHTMLString:. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-07-17 Wenson Hsieh [iOS DnD] Web process uses too much memory when beginning a drag on a very large image https://bugs.webkit.org/show_bug.cgi?id=174585 Reviewed by Tim Horton. Adds a new test verifying that we don't try to allocate any image buffer equal to the true size of the image being dragged when initiating a drag. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/enormous.svg: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/cocoa/TestWKWebView.h: Add a new -synchronouslyLoadHTMLString: helper that works like -synchronouslyLoadTestPage:, but takes markup. * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView synchronouslyLoadHTMLString:]): 2017-07-17 Michael Catanzaro [CMake] Macros in WebKitMacros.cmake should be prefixed with WEBKIT_ namespace https://bugs.webkit.org/show_bug.cgi?id=174547 Reviewed by Alex Christensen. * DumpRenderTree/PlatformWin.cmake: * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: 2017-07-17 Yoshiaki Jitsukawa Update style checker to deal with "final" https://bugs.webkit.org/show_bug.cgi?id=174528 Reviewed by Alex Christensen. check-webkit-style shouldn't complain about an open brace to start a line after a function definition with "final" or "const final". * Scripts/webkitpy/style/checkers/cpp.py: (check_braces): * Scripts/webkitpy/style/checkers/cpp_unittest.py: (CppStyleTest.test_brace_at_begin_of_line): 2017-07-17 Alex Christensen Modernize content extension code https://bugs.webkit.org/show_bug.cgi?id=174588 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter): (TestWebKitAPI::testRequest): (TestWebKitAPI::makeBackend): (TestWebKitAPI::TEST_F): 2017-07-17 Brady Eidson WKHTTPCookieStore observing only works on the default cookie store. and https://bugs.webkit.org/show_bug.cgi?id=174580 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (runTestWithWebsiteDataStore): Refactor the cookie observing test out so it can be called for the default store, a non-persistent store, and a custom store. (TEST): 2017-07-16 Sam Weinig [Scripts] Fix missing variable warnings from svn-create-patch when there are untracked files https://bugs.webkit.org/show_bug.cgi?id=174575 Reviewed by Brady Eidson. * Scripts/svn-create-patch: (findModificationType): Add support for more status codes. C -> conflicted, ? -> untracked, ! -> missing. Give a default value of "unknown". (generateFileList): Handle all the new modification types. Abort on conflicted, missing, and unknown. Log for untracked, which matches our old behavior. 2017-07-17 Charlie Turner Add some missing build dependencies on Fedora https://bugs.webkit.org/show_bug.cgi?id=174578 Unreviewed dependency update. * gtk/install-dependencies: 2017-07-16 Brady Eidson Crash when a WKHTTPCookieStore outlives its owning WKWebsiteDataStore. and https://bugs.webkit.org/show_bug.cgi?id=174574 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (-[CookieNavigationDelegate webView:didFinishNavigation:]): (TEST): 2017-07-16 Bernhard M. Wiedemann [GTK] Sort inspector GResource manifest to ensure reproducible builds https://bugs.webkit.org/show_bug.cgi?id=174540 Reviewed by Michael Catanzaro. * gtk/generate-inspector-gresource-manifest.py: (get_filenames): sort list of input files 2017-07-15 Brady Eidson Make sure all CFHTTPCookieStorageRefs we create are scheduled. and https://bugs.webkit.org/show_bug.cgi?id=174513 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): Make this test more reliable by clearing everything beforehand. 2017-07-15 David Kilzer Make it possible to extend check-webkit-style with Apple-internal checkers Reviewed by Darin Adler. * Scripts/webkitpy/style/checker.py: Import apple_additions. (_all_categories): Add categories from apple_additions() if it exists. (CheckerDispatcher._create_checker): Create python checker from apple_additions() if it exists. 2017-07-15 Wenson Hsieh [iOS WK2] Presenting an action sheet on an image map prevents selection UI from updating https://bugs.webkit.org/show_bug.cgi?id=174539 Reviewed by Darin Adler. Adds a new unit test suite to cover action sheet popover presentation. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/image-map.html: Added. * TestWebKitAPI/Tests/ios/ActionSheetTests.mm: Added. (-[ActionSheetObserver waitForActionSheetAfterBlock:]): Runs the given block and waits until the UI process has indicated that it will present an action sheet. (-[ActionSheetObserver _webView:actionsForElement:defaultActions:]): (TestWebKitAPI::IPadUserInterfaceSwizzler::IPadUserInterfaceSwizzler): Helper class to alter the behavior of [[UIDevice currentDevice] userInterfaceIdiom] for testing. (TestWebKitAPI::IPadUserInterfaceSwizzler::padUserInterfaceIdiom): (TestWebKitAPI::TEST): 2017-07-15 Sam Weinig [Scripts] Make svn-create-patch work better when called in sub directories https://bugs.webkit.org/show_bug.cgi?id=174551 Reviewed by Darin Adler. - Fixes manufacturePatchForAdditionWithHistory to use the correct path by ensuring that the prefix is applied as is done in generateDiff. - Silence output of explanatory lines from svn stat (" > move to ...") that show up in STDERR when running svn-create-patch. - Add verbose logging that I found useful while debugging this issue. * Scripts/svn-create-patch: (findBaseUrl): (findMimeType): (findSourceFileAndRevision): (generateDiff): (generateFileList): (manufacturePatchForAdditionWithHistory): 2017-07-15 Jonathan Bedard Unreviewed build fix after r219537. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: 2017-07-14 Jonathan Bedard Add iOS 11 SPI https://bugs.webkit.org/show_bug.cgi?id=174430 Reviewed by Tim Horton. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: Define drag-and-drop API required for testing. * TestWebKitAPI/ios/DataInteractionSimulator.h: Ditto. * TestWebKitAPI/ios/DataInteractionSimulator.mm: Ditto. 2017-07-14 Jonathan Bedard Failing to install on iPad simulators https://bugs.webkit.org/show_bug.cgi?id=174532 Reviewed by Stephanie Lewis. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice.install_app): Place install command in retry try-except block. 2017-07-14 Jeff Miller Add test for -[WKProcessPool _setObjectsForBundleParametersWithDictionary:]. https://bugs.webkit.org/show_bug.cgi?id=174524 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm: (TEST): Renamed TestParameter to TestParameter1. Add test for -[WKProcessPool _setObjectsForBundleParametersWithDictionary:]. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleParametersPlugIn.mm: (-[BundleParametersPlugIn webProcessPlugIn:didCreateBrowserContextController:]): Observe changes for two bundle parameters. (-[BundleParametersPlugIn dealloc]): Remove observers for two bundle parameters. 2017-07-14 Commit Queue Unreviewed, rolling out r219510. https://bugs.webkit.org/show_bug.cgi?id=174525 Need to revert length() == 0 check for null string (Requested by yusukesuzuki on #webkit). Reverted changeset: "[WTF] Newly added AtomicStringImpl should use BufferInternal static string if StringImpl is static" https://bugs.webkit.org/show_bug.cgi?id=174501 http://trac.webkit.org/changeset/219510 2017-07-14 Jer Noble [MSE] Removing samples when presentation order does not match decode order can cause bad behavior. https://bugs.webkit.org/show_bug.cgi?id=174514 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WebCore/SampleMap.cpp: (TestWebKitAPI::TEST_F): 2017-07-14 Yusuke Suzuki [WTF] Newly added AtomicStringImpl should use BufferInternal static string if StringImpl is static https://bugs.webkit.org/show_bug.cgi?id=174501 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WTF/StringImpl.cpp: (TestWebKitAPI::TEST): 2017-07-14 Jonathan Bedard Bring mac expectations in-line with other platforms https://bugs.webkit.org/show_bug.cgi?id=174472 Reviewed by David Kilzer. The override order for Mac test expectations does not conform to the pattern used by iOS, GTK, Windows and WPE. Before this change, El Capitan's baseline search path looks like this: platform/mac-wk2 platform/wk2 platform/mac-elcapitan platform/mac-sierra generic After this change, El Capitan's baseline search path looks like this: platform/mac-sierra-wk2 platform/mac-sierra platform/mac-wk2 platform/wk2 generic * Scripts/webkitpy/port/mac.py: (MacPort.__init__): If a specific version is specified in the port name, use that as the os version. (MacPort.default_baseline_search_path): Expectation search paths should work the same way they do on other ports. Port + version overrides port, port overrides generic and wk1/wk2 should override expectations for the two combined. * Scripts/webkitpy/port/mac_unittest.py: (MacTest.test_tests_for_other_platforms): Deleted. (MacTest._assert_search_path): Deleted. (MacTest.test_baseline_search_path): Deleted. * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: (TestRebaselineTest.test_baseline_directory): Adjust expectations for new over-ride order. (test_rebaseline_test_and_print_scm_changes): Ditto. (test_rebaseline_and_copy_test): Ditto. (test_rebaseline_and_copy_test_no_existing_result): Ditto. (test_rebaseline_and_copy_test_with_lion_result): Ditto. (test_rebaseline_and_copy_no_overwrite_test): Ditto. 2017-07-13 Michael Catanzaro Fix style checker unit test Unreviewed WebKit2 => WebKit fixup. * Scripts/webkitpy/style/checker_unittest.py: (CheckerDispatcherSkipTest.test_should_skip_with_warning): 2017-07-13 Matthew Hanson Use the old WebKit/WebKit2 targets for CMake builds. (v2) Unreviewed build fix. r219492 missed one hunk from its partial revert of r219489. This patch reverts that hunk. * TestWebKitAPI/CMakeLists.txt: 2017-07-13 Matthew Hanson Use the old WebKit/WebKit2 targets for CMake builds. Unreviewed build fix. We can update the target names to match the Framework names in a future patch. This is a partial revert of r219489. * TestWebKitAPI/CMakeLists.txt: WebKitLegacy => WebKit WebKit => WebKit2 2017-07-13 Matthew Hanson Fix TestWebKit API. https://bugs.webkit.org/show_bug.cgi?id=174164 rdar://problem/33137595 Reviewed by Dan Bernstein. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * TestWebKitAPI/PlatformGTK.cmake: 2017-07-13 Matthew Hanson Update tools and configurations after renaming Source/WebKit2 to Source/WebKit. https://bugs.webkit.org/show_bug.cgi?id=174164 rdar://problem/33137595 Reviewed by Dan Bernstein. * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py: (ShouldBuildTest): * DumpRenderTree/mac/Configurations/Base.xcconfig: * Scripts/build-webkit: * Scripts/do-file-rename: * Scripts/do-webcore-rename: * Scripts/update-webkit-localizable-strings: * Scripts/webkitpy/common/config/watchlist: * Scripts/webkitpy/style/checker.py: * Scripts/webkitpy/style/checkers/featuredefines.py: * gtk/make-dist.py: (ensure_version_if_possible): * gtk/manifest.txt.in: 2017-07-05 Matthew Hanson Update tools and configurations after renaming Source/WebKit to Source/WebKitLegacy. https://bugs.webkit.org/show_bug.cgi?id=174162 rdar://problem/33137594 Reviewed by Dan Bernstein. Mass rename of Source/WebKit to Source/WebKitLegacy in OpenSource tooling. * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py: * DumpRenderTree/mac/InternalHeaders/WebKit/WebTypesInternal.h: * EWSTools/configure-clang-linux.sh: * Scripts/build-webkit: * Scripts/do-file-rename: * Scripts/do-webcore-rename: * Scripts/update-webkit-localizable-strings: * Scripts/webkitpy/common/checkout/checkout_unittest.py: * Scripts/webkitpy/style/checkers/changelog_unittest.py: * Scripts/webkitpy/style/checkers/featuredefines.py: * gtk/manifest.txt.in: 2017-07-13 Jonathan Bedard Add script to rebase patches during the WebKit2->WebKit/WebKit->WebKitLegacy transition https://bugs.webkit.org/show_bug.cgi?id=174438 Reviewed by Aakash Jain. Given a patch, this will convert the changes from the path to the new directory structure. * Scripts/rebase-patch-after-webkit-move: Added. (append_source): Append 'Source' to the provided path. (is_editable_line): Return true if a line the script expects to modify. (needs_rebase): Return if a line needs to be rebased based on it's content. (rebase_line): Rebase the provided line. (rebase): Rebase a patch given the lines of that patch and a file to output the rebased patch to. (parse_arguments): Parse the command line arguments and return the patches to be rebased, if they were provided. 2017-07-12 Nan Wang AX: [iOS] Implement a way to retrieve a text marker range with desired text that is closest to a position https://bugs.webkit.org/show_bug.cgi?id=174393 Reviewed by Chris Fleizach. * DumpRenderTree/AccessibilityUIElement.cpp: (textMarkerRangeMatchesTextNearMarkersCallback): (AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): (AccessibilityUIElement::getJSClass): * DumpRenderTree/AccessibilityUIElement.h: * DumpRenderTree/ios/AccessibilityUIElementIOS.mm: (AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): 2017-07-12 Matt Lewis Unreviewed, rolling out r219409. The revision caused the Windows builds to fail. Reverted changeset: "AX: [iOS] Implement a way to retrieve a text marker range with desired text that is closest to a position" https://bugs.webkit.org/show_bug.cgi?id=174393 http://trac.webkit.org/changeset/219409 2017-07-12 Nan Wang AX: [iOS] Implement a way to retrieve a text marker range with desired text that is closest to a position https://bugs.webkit.org/show_bug.cgi?id=174393 Reviewed by Chris Fleizach. * DumpRenderTree/AccessibilityUIElement.cpp: (textMarkerRangeMatchesTextNearMarkersCallback): (AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): (AccessibilityUIElement::getJSClass): * DumpRenderTree/AccessibilityUIElement.h: * DumpRenderTree/ios/AccessibilityUIElementIOS.mm: (AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers): 2017-07-12 Emilio Cobos Álvarez Make prepare-ChangeLog -g generate a more standard ChangeLog entry. https://bugs.webkit.org/show_bug.cgi?id=174197 Reviewed by Darin Adler. This bit me the first time I tried to submit a patch to WebKit, and still I have to manually edit the ChangeLog every time I use the script. This generates a more convenient and standard ChangeLog entry. * Scripts/prepare-ChangeLog: (generateNewChangeLogs): 2017-07-12 Matt Lewis Unreviewed, rolling out r219401. This revision rolled out the previous patch, but after talking with reviewer, a rebaseline is what was needed.Rolling back in before rebaseline. Reverted changeset: "Unreviewed, rolling out r219379." https://bugs.webkit.org/show_bug.cgi?id=174400 http://trac.webkit.org/changeset/219401 2017-07-12 Matt Lewis Unreviewed, rolling out r219379. This revision caused a consistent failure in the test fast/dom/Window/property-access-on-cached-window-after-frame- removed.html. Reverted changeset: "Remove NAVIGATOR_HWCONCURRENCY" https://bugs.webkit.org/show_bug.cgi?id=174400 http://trac.webkit.org/changeset/219379 2017-07-12 Zan Dobersek [WPE] Use libepoxy https://bugs.webkit.org/show_bug.cgi?id=172104 Reviewed by Michael Catanzaro. * WebKitTestRunner/wpe/HeadlessViewBackend.h: Include the header, dropping the EGL and GLES2 inclusions. 2017-07-12 Zan Dobersek [GTK][WPE] Align Jhbuild patches for GStreamer packages https://bugs.webkit.org/show_bug.cgi?id=174363 Reviewed by Michael Catanzaro. Align the patches we apply over Jhbuild-managed GStreamer dependency packages between the GTK+ and WPE port. There's no reason for the two ports to apply different patches over same versions of GStreamer releases. This aligns the two ports on this specific issue. Next we'll look into creating a single GStreamer-specific Jhbuild moduleset that will allow us to keep these patches in a single place, avoiding duplicate files. * gtk/jhbuild.modules: * gtk/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Added. * gtk/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Renamed from Tools/gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch. * gtk/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Added. * wpe/patches/gstreamer-typefind-Only-push-a-CAPS-event-downstream-if-the-.patch: Removed. 2017-07-11 Dean Jackson Remove NAVIGATOR_HWCONCURRENCY https://bugs.webkit.org/show_bug.cgi?id=174400 Reviewed by Sam Weinig. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-07-11 Ansh Shukla WKWindowFeatures needs to expose scrollbar, fullscreen, and dialog configuration properties https://bugs.webkit.org/show_bug.cgi?id=174239 Reviewed by Brady Eidson. Create windows with specific features set and make sure those are properly reflected in the WKWindowFeatures object. * TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm: (resetToConsistentState): (-[CheckWindowFeaturesUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (TEST): 2017-07-11 Jonathan Bedard Do not duplicate files when deleting directories with svn 1.9 https://bugs.webkit.org/show_bug.cgi?id=174339 Reviewed by David Kilzer. * Scripts/svn-create-patch: (diffOptionsForFile): No longer pass -N option, since this does not work in SVN 1.9.4. (generateFileList): Determine which files are deleted because they are part of a directory being deleted. 2017-07-11 Dean Jackson Rolling out r219372. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-07-11 Dean Jackson Remove NAVIGATOR_HWCONCURRENCY https://bugs.webkit.org/show_bug.cgi?id=174400 Reviewed by Sam Weinig. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-07-11 Lucas Forschler Teach build workers to fetch archives from S3. https://bugs.webkit.org/show_bug.cgi?id=174384 Reviewed by Aakash Jain. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (DownloadBuiltProduct): 2017-07-11 Lucas Forschler Configure buildbot to transfer all archives to S3. Previously this was Mac only, but it's time to expand! https://bugs.webkit.org/show_bug.cgi?id=174378 Reviewed by Aakash Jain. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (BuildFactory.__init__): 2017-07-11 Zan Dobersek [WPE] Bump GStreamer packages in jhbuild.modules to 1.10.5 https://bugs.webkit.org/show_bug.cgi?id=174350 Reviewed by Xabier Rodriguez-Calvar. Bump the various GStreamer dependencies listed in WPE's Jhbuild modules file to the 1.10.5 version. One gstreamer patch is added. The two gst-plugins-bad patches are removed. The patches for gst-plugins-good are updated, removing the stale ones and adding the additional changes to qtdemux, souphttpsrc and rtpbin elements that will help with the EMEv3 development. * wpe/jhbuild.modules: * wpe/patches/gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch: Removed. * wpe/patches/gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch: Removed. * wpe/patches/gst-plugins-good-0003-rtpbin-receive-bundle-support.patch: Added. * wpe/patches/gst-plugins-good-0005-souphttpsrc-cookie-jar-and-context-query-support.patch: Added. * wpe/patches/gst-plugins-good-0006-qtdemux-add-context-for-a-preferred-protection.patch: Added. * wpe/patches/gst-plugins-good-0008-qtdemux-also-push-buffers-without-encryption-info-in.patch: Added. * wpe/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Removed. * wpe/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Removed. * wpe/patches/gstreamer-0001-protection-added-function-to-filter-system-ids.patch: Added. 2017-07-10 John Wilander Resource Load Statistics: Prune statistics in orders of importance https://bugs.webkit.org/show_bug.cgi?id=174215 Reviewed by Chris Dumez. Nest infrastructure. Adds these functions: 1. testRunner.setStatisticsLastSeen() 2. setStatisticsMaxStatisticsEntries() 3. setStatisticsPruneEntriesDownTo() * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsLastSeen): (WTR::TestRunner::setStatisticsMaxStatisticsEntries): (WTR::TestRunner::setStatisticsPruneEntriesDownTo): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsLastSeen): (WTR::TestController::setMaxStatisticsEntries): (WTR::TestController::setPruneEntriesDownTo): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::setStatisticsLastSeen): (WTR::TestController::setStatisticsMaxStatisticsEntries): (WTR::TestController::setStatisticsPruneEntriesDownTo): 2017-07-03 Brian Burg Web Replay: remove some unused code https://bugs.webkit.org/show_bug.cgi?id=173903 Rubber-stamped by Joseph Pecoraro. * Scripts/run-input-generator-tests: Removed. * Scripts/webkitpy/replay/__init__.py: Removed. * Scripts/webkitpy/replay/main.py: Removed. 2017-07-10 Zan Dobersek [WPE] Fix layout test baseline and TestExpectations hierarchy https://bugs.webkit.org/show_bug.cgi?id=174092 Reviewed by Michael Catanzaro. Like for the GTK+ port, override the default_baseline_search_path() and _port_specific_expectations_files() methods in the webkitpy.port.WPEPort class. Both methods operate on a short list of search paths that defaults to 'wpe' and 'wk2', along with any other user-specified platform directory. The test_expectations_file_position() method is overridden for testing purposes, and relevant unit tests are added. * Scripts/webkitpy/port/wpe.py: (WPEPort._search_paths): (WPEPort): (WPEPort.default_baseline_search_path): (WPEPort._port_specific_expectations_files): (WPEPort.test_expectations_file_position): * Scripts/webkitpy/port/wpe_unittest.py: (WPEPortTest.test_default_baseline_search_path): (WPEPortTest): (WPEPortTest.test_port_specific_expectations_files): 2017-07-10 Chris Dumez Further WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore clean up https://bugs.webkit.org/show_bug.cgi?id=174301 Reviewed by Brent Fulgham. Rename some of the testRunner API for clarity and to better match what it calls internally. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::statisticsUpdateCookiePartitioning): (WTR::TestRunner::statisticsSetShouldPartitionCookiesForHost): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::statisticsUpdateCookiePartitioning): (WTR::TestController::statisticsSetShouldPartitionCookiesForHost): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::statisticsUpdateCookiePartitioning): (WTR::TestController::statisticsSetShouldPartitionCookiesForHost): 2017-07-10 Charlie Turner [GStreamer] Live twitch.tv videos do not play https://bugs.webkit.org/show_bug.cgi?id=174222 Reviewed by Michael Catanzaro. Upgrade GStreamer to 1.10.5. It contains a change to typefind that fixes videos not playing on twitch.tv. * gtk/jhbuild.modules: 2017-07-09 Zan Dobersek Add WebGL2 configuration option to build-webkit https://bugs.webkit.org/show_bug.cgi?id=174251 Reviewed by Michael Catanzaro. * Scripts/webkitperl/FeatureList.pm: Add the 'webgl2' option, making it possible to enable the ENABLE_WEBGL2 flag through the build-webkit script. The feature is marked as enabled for the Apple Cocoa ports. 2017-07-08 Chris Dumez Simplify WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore https://bugs.webkit.org/show_bug.cgi?id=174290 Reviewed by Brent Fulgham. Rename testRunner API to match the new internal API names. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::statisticsProcessStatisticsAndDataRecords): (WTR::TestRunner::statisticsSubmitTelemetry): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::statisticsProcessStatisticsAndDataRecords): (WTR::TestController::statisticsSubmitTelemetry): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::statisticsProcessStatisticsAndDataRecords): (WTR::TestController::statisticsSubmitTelemetry): 2017-07-08 Yusuke Suzuki Drop NOSNIFF compile flag https://bugs.webkit.org/show_bug.cgi?id=174289 Reviewed by Michael Catanzaro. * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-07-07 Wenson Hsieh [iOS DnD] For cross-app drags, 'drop' event handlers are never invoked if dataTransfer.dropEffect is not set while dragging https://bugs.webkit.org/show_bug.cgi?id=174219 Reviewed by Ryosuke Niwa. Add plumbing and support to mock the value of -allowsMoveOperation on the simulated UIDragDropSession objects. Setting the DataInteractionSimulator's shouldAllowMoveOperation property to NO simulates a drag operation coming in from another app out-of-process, for which move operations won't cause a drop to be performed in the first place. Also tweaks 2 existing unit tests regarding file uploads via JavaScript to simulate items coming in from a different application, and adds a new test to check that if a drop area specifically requests a MOVE operation, no action is taken when dropping. * TestWebKitAPI/Tests/WebKit2Cocoa/file-uploading.html: * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[MockDragDropSession initWithItems:location:window:allowMove:]): (-[MockDragDropSession allowsMoveOperation]): (-[MockDataOperationSession initWithProviders:location:window:allowMove:]): (-[MockDataInteractionSession initWithWindow:allowMove:]): (-[DataInteractionSimulator initWithWebView:]): (-[DataInteractionSimulator runFrom:to:]): (-[DataInteractionSimulator _advanceProgress]): (-[MockDragDropSession initWithItems:location:window:]): Deleted. (-[MockDataOperationSession initWithProviders:location:window:]): Deleted. (-[MockDataInteractionSession initWithWindow:]): Deleted. 2017-07-07 Commit Queue Unreviewed, rolling out r219238, r219239, and r219241. https://bugs.webkit.org/show_bug.cgi?id=174265 "fast/workers/dedicated-worker-lifecycle.html is flaky" (Requested by yusukesuzuki on #webkit). Reverted changesets: "[WTF] Implement WTF::ThreadGroup" https://bugs.webkit.org/show_bug.cgi?id=174081 http://trac.webkit.org/changeset/219238 "Unreviewed, build fix after r219238" https://bugs.webkit.org/show_bug.cgi?id=174081 http://trac.webkit.org/changeset/219239 "Unreviewed, CLoop build fix after r219238" https://bugs.webkit.org/show_bug.cgi?id=174081 http://trac.webkit.org/changeset/219241 2017-07-07 Yusuke Suzuki [GTK][WPE] Enable X-Content-Type-Options: nosniff https://bugs.webkit.org/show_bug.cgi?id=174250 Reviewed by Carlos Alberto Lopez Perez. * Scripts/webkitperl/FeatureList.pm: 2017-07-07 Charlie Turner [GStreamer] vid.me videos do not play https://bugs.webkit.org/show_bug.cgi?id=172240 Reviewed by Xabier Rodriguez-Calvar. Build httpsoupsrc again for use in adaptive streaming pipelines, and have the existing libsoup build against GNOME to avoid header drift against GStreamer's linked Soup library. * gtk/jhbuild.modules: 2017-07-06 Lucas Forschler Write a support script to enable buildbot to upload to S3 https://bugs.webkit.org/show_bug.cgi?id=174196 Reviewed by Stephanie Lewis. * BuildSlaveSupport/build.webkit.org-config/transfer-archive-to-s3: Added. (uploadToS3): (archiveExists): 2017-07-06 Lucas Forschler Enabling uploading archives to S3. https://bugs.webkit.org/show_bug.cgi?id=174198 Reviewed by Stephanie Lewis. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (ArchiveMinifiedBuiltProduct): Create a minified archive from a full archive (UploadMinifiedBuiltProduct): Upload minified archive to build master (TransferToS3): Transfer full and minified archives to S3 2017-07-05 Yusuke Suzuki [WTF] Implement WTF::ThreadGroup https://bugs.webkit.org/show_bug.cgi?id=174081 Reviewed by Mark Lam. Add WTF::ThreadGroup tests. * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/ThreadGroup.cpp: Added. (TestWebKitAPI::TEST): 2017-07-06 Yusuke Suzuki [WTF] Clean up StringStatics.cpp by using LazyNeverDestroyed<> for Atoms https://bugs.webkit.org/show_bug.cgi?id=174150 Reviewed by Mark Lam. * TestWebKitAPI/Tests/WTF/StringBuilder.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/TestsController.cpp: (TestWebKitAPI::TestsController::TestsController): 2017-07-06 Lucas Forschler Enabling uploading archives to S3. https://bugs.webkit.org/show_bug.cgi?id=174198 Reviewed by Lucas Forschler. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (ArchiveMinifiedBuiltProduct): Create a minified archive from a full archive (UploadMinifiedBuiltProduct): Upload minified archive to build master (TransferToS3): Transfer full and minified archives to S3 2017-07-06 Carlos Alberto Lopez Perez [GTK][WPE] kill-old-process should kill more webkit related process https://bugs.webkit.org/show_bug.cgi?id=174220 Reviewed by Michael Catanzaro. Generate list of possible webkit-related process names and add them to the list of process to kill. Also update the possible system related process for GTK+/WPE. * BuildSlaveSupport/kill-old-processes: (listAllWebKitPrograms): (main): 2017-07-06 Chris Dumez FileMonitor should not be ref counted https://bugs.webkit.org/show_bug.cgi?id=174166 Reviewed by Brent Fulgham. Update the API tests to reflect the API change. * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: (TestWebKitAPI::TEST_F): 2017-07-06 Commit Queue Unreviewed, rolling out r219194. https://bugs.webkit.org/show_bug.cgi?id=174207 it broke some layout tests (Requested by clopez on #webkit). Reverted changeset: "[GStreamer] vid.me videos do not play" https://bugs.webkit.org/show_bug.cgi?id=172240 http://trac.webkit.org/changeset/219194 2017-07-06 Matt Lewis Unreviewed, rolling out r219178. This caused a consistent failure with the API test StringBuilderTest.ToAtomicStringOnEmpty on all Debug testers. Reverted changeset: "[WTF] Clean up StringStatics.cpp by using LazyNeverDestroyed<> for Atoms" https://bugs.webkit.org/show_bug.cgi?id=174150 http://trac.webkit.org/changeset/219178 2017-07-06 Alicia Boya García Add CWD to Perl library path (no longer the default since 5.26.0) https://bugs.webkit.org/show_bug.cgi?id=174200 Reviewed by Michael Catanzaro. * Scripts/webkitpy/tool/commands/setupgitclone.py: (SetupGitClone._get_username_and_email): 2017-07-06 Gyuyoung Kim Unreviewed, update my email address. * Scripts/webkitpy/common/config/contributors.json: 2017-07-06 Charlie Turner [GStreamer] vid.me videos do not play https://bugs.webkit.org/show_bug.cgi?id=172240 Reviewed by Xabier Rodriguez-Calvar. Build httpsoupsrc again for use in adaptive streaming pipelines, and have the existing libsoup build against GNOME to avoid header drift against GStreamer's linked Soup library. * gtk/jhbuild.modules: 2017-07-05 Don Olmstead [WTF] Move SoftLinking.h into WTF https://bugs.webkit.org/show_bug.cgi?id=174000 Reviewed by Alex Christensen. * DumpRenderTree/mac/TestRunnerMac.mm: * Scripts/webkitpy/style/checkers/cpp_unittest.py: (test_primary_header): (ErrorCollector.__init__): Deleted. (ErrorCollector.__call__): Deleted. (ErrorCollector.results): Deleted. (ErrorCollector.result_list): Deleted. (ErrorCollector.verify_all_categories_are_seen): Deleted. (MockIo.open): Deleted. (CppFunctionsTest.test_convert_to_lower_with_underscores): Deleted. (CppFunctionsTest.test_create_acronym): Deleted. (CppFunctionsTest.test_is_c_or_objective_c): Deleted. (CppFunctionsTest.test_parameter): Deleted. (CppFunctionsTest.test_single_line_view): Deleted. (CppFunctionsTest.test_create_skeleton_parameters): Deleted. (CppFunctionsTest.test_find_parameter_name_index): Deleted. (CppFunctionsTest.test_parameter_list): Deleted. (CppFunctionsTest.test_check_parameter_against_text): Deleted. (CppStyleTestBase.process_file_data): Deleted. (CppStyleTestBase.perform_lint): Deleted. (CppStyleTestBase.perform_single_line_lint): Deleted. (CppStyleTestBase.perform_multi_line_lint): Deleted. (CppStyleTestBase.perform_language_rules_check): Deleted. (CppStyleTestBase.perform_function_lengths_check): Deleted. (CppStyleTestBase.perform_pass_ptr_check): Deleted. (CppStyleTestBase.perform_leaky_pattern_check): Deleted. (CppStyleTestBase.perform_include_what_you_use): Deleted. (CppStyleTestBase.perform_header_guard_check): Deleted. (CppStyleTestBase.assert_lint): Deleted. (CppStyleTestBase.assert_lint_one_of_many_errors_re): Deleted. (CppStyleTestBase.assert_multi_line_lint): Deleted. (CppStyleTestBase.assert_multi_line_lint_re): Deleted. (CppStyleTestBase.assert_language_rules_check): Deleted. (CppStyleTestBase.assert_include_what_you_use): Deleted. (CppStyleTestBase.assert_header_guard): Deleted. (CppStyleTestBase.assert_blank_lines_check): Deleted. (CppStyleTestBase.assert_positions_equal): Deleted. (FunctionDetectionTest.test_basic_function_detection): Deleted. (FunctionDetectionTest.test_function_declaration_detection): Deleted. (FunctionDetectionTest.test_pure_function_detection): Deleted. (FunctionDetectionTest.test_override_and_final_function_detection): Deleted. (FunctionDetectionTest.test_ignore_macros): Deleted. (FunctionDetectionTest.test_non_functions): Deleted. (FunctionDetectionTest.test_non_functions.Stuff): Deleted. (FunctionDetectionTest.test_parameter_list): Deleted. (Cpp11StyleTest.test_rvaule_reference_in_parameter_pack): Deleted. (CppStyleTest.test_asm_lines_ignored): Deleted. (CppStyleTest.test_get_line_width): Deleted. (CppStyleTest.test_find_next_multi_line_comment_start): Deleted. (CppStyleTest.test_find_next_multi_line_comment_end): Deleted. (CppStyleTest.test_remove_multi_line_comments_from_range): Deleted. (CppStyleTest.test_position): Deleted. (CppStyleTest.test_rfind_in_lines): Deleted. (CppStyleTest.test_close_expression): Deleted. (CppStyleTest.test_spaces_at_end_of_line): Deleted. (CppStyleTest.test_cstyle_cast): Deleted. (CppStyleTest.test_runtime_casting): Deleted. (CppStyleTest.test_runtime_selfinit): Deleted. (CppStyleTest.test_runtime_rtti): Deleted. (CppStyleTest.test_static_cast_readability): Deleted. (CppStyleTest.test_check_for_unnamed_params): Deleted. (CppStyleTest.void): Deleted. (CppStyleTest.test_deprecated_cast): Deleted. (CppStyleTest.test_mock_method): Deleted. (CppStyleTest.test_sizeof_type): Deleted. (CppStyleTest.cases): Deleted. (CppStyleTest.for): Deleted. (CppStyleTest.test_typedef_for_pointer_to_function): Deleted. (CppStyleTest.test_typedef_for_pointer_to_function.void): Deleted. (CppStyleTest.test_include_what_you_use_no_implementation_files): Deleted. (CppStyleTest.test_include_what_you_use): Deleted. (CppStyleTest.test_files_belong_to_same_module): Deleted. (CppStyleTest.test_cleanse_line): Deleted. (CppStyleTest.test_multi_line_comments): Deleted. (CppStyleTest.test_multi_line_comments.Foo): Deleted. (CppStyleTest.test_multiline_strings): Deleted. (CppStyleTest.test_platformh_comments): Deleted. (CppStyleTest.test_explicit_single_argument_constructors): Deleted. (CppStyleTest.test_explicit_single_argument_constructors.Foo): Deleted. (CppStyleTest.test_explicit_single_argument_constructors.Qualifier): Deleted. (CppStyleTest.test_explicit_single_argument_constructors.definition): Deleted. (CppStyleTest.test_slash_star_comment_on_single_line): Deleted. (CppStyleTest.test_suspicious_usage_of_if): Deleted. (CppStyleTest.test_suspicious_usage_of_memset): Deleted. (CppStyleTest.test_check_posix_threading): Deleted. (CppStyleTest.test_insecure_string_operations): Deleted. (CppStyleTest.test_format_strings): Deleted. (CppStyleTest.test_insecure_temp_file): Deleted. (CppStyleTest.test_variable_length_array_detection): Deleted. (CppStyleTest.test_braces): Deleted. (CppStyleTest.test_check_check): Deleted. (CppStyleTest.test_brace_at_begin_of_line): Deleted. (CppStyleTest.test_mismatching_spaces_in_parens): Deleted. (CppStyleTest.test_spacing_for_fncall): Deleted. (CppStyleTest.test_spacing_for_fncall.foo): Deleted. (CppStyleTest.test_spacing_before_braces): Deleted. (CppStyleTest.test_spacing_between_braces): Deleted. (CppStyleTest.test_spacing_before_brackets): Deleted. (CppStyleTest.test_cpp_lambda_functions): Deleted. (CppStyleTest.test_objective_c_block): Deleted. (CppStyleTest.test_objective_c_block_as_argument): Deleted. (CppStyleTest.test_spacing_around_else): Deleted. (CppStyleTest.test_spacing_for_binary_ops): Deleted. (CppStyleTest.test_spacing_for_binary_ops.hash_map): Deleted. (CppStyleTest.test_operator_methods): Deleted. (CppStyleTest.test_spacing_in_objective_c_properties): Deleted. (CppStyleTest.test_spacing_before_last_semicolon): Deleted. (CppStyleTest.test_static_or_global_stlstrings): Deleted. (CppStyleTest.test_no_spaces_in_function_calls): Deleted. (CppStyleTest.test_one_spaces_between_code_and_comments): Deleted. (CppStyleTest.test_one_spaces_after_punctuation_in_comments): Deleted. (CppStyleTest.test_space_after_comment_marker): Deleted. (CppStyleTest.test_newline_at_eof): Deleted. (CppStyleTest.test_newline_at_eof.do_test): Deleted. (CppStyleTest.test_extra_newlines_at_eof): Deleted. (CppStyleTest.test_extra_newlines_at_eof.do_test): Deleted. (CppStyleTest.test_invalid_utf8): Deleted. (CppStyleTest.test_invalid_utf8.do_test): Deleted. (CppStyleTest.test_is_blank_line): Deleted. (CppStyleTest.test_blank_lines_check): Deleted. (CppStyleTest.test_allow_blank_line_before_closing_namespace): Deleted. (CppStyleTest.test_allow_blank_line_before_if_else_chain): Deleted. (CppStyleTest.test_else_on_same_line_as_closing_braces): Deleted. (CppStyleTest.test_else_clause_not_on_same_line_as_else): Deleted. (CppStyleTest.test_comma): Deleted. (CppStyleTest.test_declaration): Deleted. (CppStyleTest.test_pointer_reference_marker_location): Deleted. (CppStyleTest.test_indent): Deleted. (CppStyleTest.test_indent.Foo): Deleted. (CppStyleTest.test_not_alabel): Deleted. (CppStyleTest.test_tab): Deleted. (CppStyleTest.test_unnamed_namespaces_in_headers): Deleted. (CppStyleTest.test_build_class): Deleted. (CppStyleTest.test_build_class.definitions): Deleted. (CppStyleTest.test_build_class.Foo): Deleted. (CppStyleTest.test_build_class.DERIVE_FROM_GOO): Deleted. (CppStyleTest.test_build_end_comment): Deleted. (CppStyleTest.test_build_forward_decl): Deleted. (CppStyleTest.test_build_forward_decl.Foo): Deleted. (CppStyleTest.test_build_header_guard): Deleted. (CppStyleTest.test_build_header_guard.Foo_h): Deleted. (CppStyleTest.test_build_header_guard.Foo_h.for): Deleted. (CppStyleTest.test_build_printf_format): Deleted. (CppStyleTest.test_runtime_printf_format): Deleted. (CppStyleTest.assert_lintLogCodeOnError): Deleted. (CppStyleTest.test_build_storage_class): Deleted. (CppStyleTest.test_build_storage_class.unsignedLongLong): Deleted. (CppStyleTest.test_build_storage_class.declaration): Deleted. (CppStyleTest.test_build_storage_class.after): Deleted. (CppStyleTest.test_build_storage_class.is): Deleted. (CppStyleTest.test_legal_copyright): Deleted. (CppStyleTest.test_invalid_increment): Deleted. (CppStyleTest.test_enum_bitfields): Deleted. (CppStyleTest.test_plain_integral_bitfields): Deleted. (CleansedLinesTest.test_init_empty): Deleted. (CleansedLinesTest.test_collapse_strings): Deleted. (OrderOfIncludesTest.tearDown): Deleted. (OrderOfIncludesTest.test_check_next_include_order__no_config): Deleted. (OrderOfIncludesTest.test_check_next_include_order__no_self): Deleted. (OrderOfIncludesTest.test_check_next_include_order__likely_then_config): Deleted. (OrderOfIncludesTest.test_check_next_include_order__other_then_config): Deleted. (OrderOfIncludesTest.test_check_next_include_order__config_then_other_then_likely): Deleted. (OrderOfIncludesTest.test_check_alphabetical_include_order): Deleted. (OrderOfIncludesTest.test_check_alphabetical_include_order_errors_reported_for_both_lines): Deleted. (OrderOfIncludesTest.test_check_line_break_after_own_header): Deleted. (OrderOfIncludesTest.test_check_line_break_before_own_header): Deleted. (OrderOfIncludesTest.test_check_preprocessor_in_include_section): Deleted. (OrderOfIncludesTest.test_check_preprocessor_in_include_section.BAZ): Deleted. (OrderOfIncludesTest.test_check_preprocessor_in_include_section.FOOBAR): Deleted. (OrderOfIncludesTest.test_primary_header): Deleted. (OrderOfIncludesTest.test_public_primary_header): Deleted. (OrderOfIncludesTest.test_check_wtf_includes): Deleted. (OrderOfIncludesTest.test_classify_include): Deleted. (OrderOfIncludesTest.test_try_drop_common_suffixes): Deleted. (CheckForFunctionLengthsTest.tearDown): Deleted. (CheckForFunctionLengthsTest.set_min_confidence): Deleted. (CheckForFunctionLengthsTest.assert_function_lengths_check): Deleted. (CheckForFunctionLengthsTest.trigger_lines): Deleted. (CheckForFunctionLengthsTest.trigger_test_lines): Deleted. (CheckForFunctionLengthsTest.assert_function_length_check_definition): Deleted. (CheckForFunctionLengthsTest.assert_function_length_check_definition_ok): Deleted. (CheckForFunctionLengthsTest.assert_function_length_check_at_error_level): Deleted. (CheckForFunctionLengthsTest.assert_function_length_check_below_error_level): Deleted. (CheckForFunctionLengthsTest.assert_function_length_check_above_error_level): Deleted. (CheckForFunctionLengthsTest.function_body): Deleted. (CheckForFunctionLengthsTest.function_body_with_blank_lines): Deleted. (CheckForFunctionLengthsTest.function_body_with_no_lints): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_declaration): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_declaration_with_block_following): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_class_definition): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_class_definition.Test): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_trivial): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_empty): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity0): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_at_severity0): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity0): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity1v0): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_at_severity1v0): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity1): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_at_severity1): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity1): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_plus_indented): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_plus_blanks): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_complex_definition_severity1): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_for_test): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_for_split_line_test): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_for_bad_test_doesnt_break): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_with_embedded_no_lints): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_with_no_lint): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity2): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity2): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity2): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity3): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity3): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity3): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity4): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_severity4): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity4): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity5): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_at_severity5): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity5): Deleted. (CheckForFunctionLengthsTest.test_function_length_check_definition_huge_lines): Deleted. (CheckForFunctionLengthsTest.test_function_length_not_determinable): Deleted. (NoNonVirtualDestructorsTest.test_no_error): Deleted. (NoNonVirtualDestructorsTest.test_no_error.Foo): Deleted. (NoNonVirtualDestructorsTest.test_no_error.MyClass): Deleted. (NoNonVirtualDestructorsTest.test_no_error.Qualified): Deleted. (NoNonVirtualDestructorsTest.test_no_destructor_when_virtual_needed): Deleted. (NoNonVirtualDestructorsTest.test_no_destructor_when_virtual_needed.Foo): Deleted. (NoNonVirtualDestructorsTest.test_enum_casing): Deleted. (NoNonVirtualDestructorsTest.test_enum_casing.Foo): Deleted. (NoNonVirtualDestructorsTest.test_enum_casing.Enum123): Deleted. (NoNonVirtualDestructorsTest.test_enum_trailing_semicolon): Deleted. (NoNonVirtualDestructorsTest.test_enum_trailing_semicolon.CPP11EnumClass): Deleted. (NoNonVirtualDestructorsTest.test_enum_trailing_semicolon.MyEnum): Deleted. (NoNonVirtualDestructorsTest.test_destructor_non_virtual_when_virtual_needed): Deleted. (NoNonVirtualDestructorsTest.test_destructor_non_virtual_when_virtual_needed.Foo): Deleted. (NoNonVirtualDestructorsTest.test_no_warn_when_derived): Deleted. (NoNonVirtualDestructorsTest.test_no_warn_when_derived.Foo): Deleted. (NoNonVirtualDestructorsTest.test_internal_braces): Deleted. (NoNonVirtualDestructorsTest.test_internal_braces.Foo): Deleted. (NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor): Deleted. (NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor.Foo): Deleted. (NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor.Foo.Goo): Deleted. (NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor.Goo): Deleted. (NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor): Deleted. (NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor.Foo): Deleted. (NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor.Foo.Goo): Deleted. (NoNonVirtualDestructorsTest.test_qualified_class_needs_virtual_destructor): Deleted. (NoNonVirtualDestructorsTest.test_qualified_class_needs_virtual_destructor.Qualified): Deleted. (NoNonVirtualDestructorsTest.test_multi_line_declaration_no_error): Deleted. (NoNonVirtualDestructorsTest.test_multi_line_declaration_no_error.Foo): Deleted. (NoNonVirtualDestructorsTest.test_multi_line_declaration_with_error): Deleted. (NoNonVirtualDestructorsTest.test_multi_line_declaration_with_error.Foo): Deleted. (LeakyPatternTest.assert_leaky_pattern_check): Deleted. (LeakyPatternTest.test_get_dc): Deleted. (LeakyPatternTest.test_get_dc.HWndDC): Deleted. (LeakyPatternTest.test_own_get_dc): Deleted. (LeakyPatternTest.test_create_dc): Deleted. (LeakyPatternTest.test_create_compatible_dc): Deleted. (WebKitStyleTest.test_indentation): Deleted. (WebKitStyleTest.test_indentation.Foo): Deleted. (WebKitStyleTest.test_indentation.Document): Deleted. (WebKitStyleTest.test_spacing): Deleted. (WebKitStyleTest.test_line_breaking): Deleted. (WebKitStyleTest.test_braces): Deleted. (WebKitStyleTest.test_braces.MyClass): Deleted. (WebKitStyleTest.test_braces.NS_ENUM): Deleted. (WebKitStyleTest.test_braces.CPP11EnumClass): Deleted. (WebKitStyleTest.test_braces.SOMETHING): Deleted. (WebKitStyleTest.test_null_false_zero): Deleted. (WebKitStyleTest.test_directive_indentation): Deleted. (WebKitStyleTest.test_using_std): Deleted. (WebKitStyleTest.test_using_namespace): Deleted. (WebKitStyleTest.test_max_macro): Deleted. (WebKitStyleTest.test_min_macro): Deleted. (WebKitStyleTest.test_wtf_move): Deleted. (WebKitStyleTest.test_ctype_fucntion): Deleted. (WebKitStyleTest.test_names): Deleted. (WebKitStyleTest.test_names.HTMLDocument): Deleted. (WebKitStyleTest.test_names.WebWindowFadeAnimation): Deleted. (WebKitStyleTest.test_names.declarations): Deleted. (WebKitStyleTest.test_names.struct): Deleted. (WebKitStyleTest.test_names.VectorType): Deleted. (WebKitStyleTest.test_parameter_names): Deleted. (WebKitStyleTest.test_comments): Deleted. (WebKitStyleTest.test_webkit_export_check): Deleted. (WebKitStyleTest.test_member_initialization_list): Deleted. (WebKitStyleTest.test_member_initialization_list.MyClass): Deleted. (WebKitStyleTest.test_other): Deleted. (CppCheckerTest.mock_handle_style_error): Deleted. (CppCheckerTest._checker): Deleted. (CppCheckerTest.test_init): Deleted. (CppCheckerTest.test_eq): Deleted. (CppCheckerTest.test_eq.mock_handle_style_error2): Deleted. (CppCheckerTest.test_ne): Deleted. * TestWebKitAPI/Tests/WebKit/ios/AudioSessionCategoryIOS.mm: * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: * TestWebKitAPI/cocoa/TestWKWebView.mm: * TestWebKitAPI/ios/DataInteractionSimulator.mm: * WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm: * WebKitTestRunner/ios/HIDEventGenerator.mm: 2017-07-05 Saam Barati NewArray in FTLLowerDFGToB3 does not handle speculating on doubles when having a bad time https://bugs.webkit.org/show_bug.cgi?id=174188 Reviewed by Mark Lam. * Scripts/run-jsc-stress-tests: 2017-07-05 Yusuke Suzuki [WTF] Clean up StringStatics.cpp by using LazyNeverDestroyed<> for Atoms https://bugs.webkit.org/show_bug.cgi?id=174150 Reviewed by Mark Lam. * TestWebKitAPI/Tests/WTF/StringBuilder.cpp: (TestWebKitAPI::TEST): 2017-07-03 Myles C. Maxfield Remove copy of ICU headers from WebKit https://bugs.webkit.org/show_bug.cgi?id=116407 Reviewed by Alex Christensen. * DumpRenderTree/mac/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: 2017-07-05 Chris Dumez Regression(r218821): Bad cast to WebKit::DiagnosticLoggingClient in WKWebView's _setDiagnosticLoggingDelegate https://bugs.webkit.org/show_bug.cgi?id=174163 Reviewed by Alex Christensen. Add API test coverage. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDiagnosticLogging.mm: Added. (TEST): 2017-07-05 Wenson Hsieh When dragging a selection, clearing the selection in dragstart should not crash the web process https://bugs.webkit.org/show_bug.cgi?id=174142 Reviewed by Tim Horton. Adds a unit test checking that the web process does not crash when the selection is cleared while a selection drag is starting up. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/dragstart-clear-selection.html: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-07-05 Daniel Bates Do not pass API::FrameInfo for source frame or clear out page of target frame on API navigation https://bugs.webkit.org/show_bug.cgi?id=174170 Reviewed by Brady Eidson. Update tests as needed for the behavior change. * TestWebKitAPI/Tests/WebKit2Cocoa/DecidePolicyForNavigationAction.mm: (TEST): 2017-07-05 Jonathan Bedard Add WebKitPrivateFrameworkStubs for iOS 11 https://bugs.webkit.org/show_bug.cgi?id=173988 Reviewed by David Kilzer. * DumpRenderTree/mac/Configurations/Base.xcconfig: iphoneos and iphonesimulator should use the same directory for private framework stubs. * WebKitTestRunner/Configurations/Base.xcconfig: Ditto. 2017-07-05 Eric Carlson [MediaStream] Protect request and web view during gUM client callback https://bugs.webkit.org/show_bug.cgi?id=174096 Reviewed by Youenn Fablet. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/GetUserMediaNavigation.mm: New test. 2017-07-05 Wenson Hsieh Unreviewed, guard iOS 11-dependent UIPasteboardTests to be iOS 11+ only * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: 2017-07-05 Matt Lewis Unreviewed, rolling out r219128. Spoke with engineer who originally submitted, Patch for APi test to follow. Reverted changeset: "Unreviewed, rolling out r219070." https://bugs.webkit.org/show_bug.cgi?id=174082 http://trac.webkit.org/changeset/219128 2017-07-05 Matt Lewis Unreviewed, rolling out r219070. This revision caused consistent failures of the API test UIPasteboardTests.DoNotPastePlainTextAsURL on iOS. Reverted changeset: "Pasting single words copied to UIPasteboard inserts URLs in editable areas" https://bugs.webkit.org/show_bug.cgi?id=174082 http://trac.webkit.org/changeset/219070 2017-07-04 Michael Catanzaro Remove unused EFL logo from bot watcher dashboard https://bugs.webkit.org/show_bug.cgi?id=174136 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL.png: Removed. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL@2x.png: Removed. 2017-07-04 Michael Catanzaro [GTK] Add more GTK bots to dashboard https://bugs.webkit.org/show_bug.cgi?id=174129 Reviewed by Carlos Alberto Lopez Perez. We have a bunch of GTK bots that I never look at because they're not on the dashboard. Add them. This also changes the sort order to put WPE above GTK so that it's not buried under all the less-essential GTK bots. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: (WebKitBuildbot): 2017-07-04 Michael Catanzaro [WPE] Add WPE to bot watcher dashboard https://bugs.webkit.org/show_bug.cgi?id=174119 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/CREDIT: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WPE.png: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WPE@2x.png: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: (WebKitBuildbot): * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css: (table.queue-grid tr.platform.linux-wpe img.logo): 2017-07-03 Lucas Forschler https://bugs.webkit.org/show_bug.cgi?id=174105 Reviewed by Stephanie Lewis. * BuildSlaveSupport/built-product-archive: (main): Add a -minify parser option (createZip): Pass along the optional Minify argument if requested (minifySource): This will trim down archives, logic limited to Mac platform. 2017-07-03 Matt Rajca Add/remove appropriate media element behavior restrictions when updateWebsitePolicies is called https://bugs.webkit.org/show_bug.cgi?id=174103 Reviewed by Alex Christensen. Added an API test. * TestWebKitAPI/Tests/WebKit2/autoplay-check.html: Expose a pause method. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm: (TEST): Added test. * TestWebKitAPI/cocoa/TestWKWebView.h: * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView stringByEvaluatingJavaScript:]): Don't simulate a user gesture when invoking the script. 2017-07-03 Matt Lewis Unreviewed, rolling out r219103. Caused multiple build failures. Reverted changeset: "Remove copy of ICU headers from WebKit" https://bugs.webkit.org/show_bug.cgi?id=116407 http://trac.webkit.org/changeset/219103 2017-07-03 Myles C. Maxfield Remove copy of ICU headers from WebKit https://bugs.webkit.org/show_bug.cgi?id=116407 Reviewed by Alex Christensen. Use WTF's copy of ICU headers. * DumpRenderTree/mac/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: 2017-07-03 Brady Eidson Switch all WebKit API related to favicons from WebIconDatabase over to new WebCore::IconLoader mechanism. https://bugs.webkit.org/show_bug.cgi?id=174073 Reviewed by Andy Estes. * DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::setIconDatabaseEnabled): Call new SPI for this setting instead of WebIconDatabase stuff. * TestWebKitAPI/Tests/mac/WebViewIconLoading.mm: (-[MainFrameIconKVO observeValueForKeyPath:ofObject:change:context:]): 2017-07-03 Matt Lewis Unreviewed, rolling out r219083. The revision caused an API failure on all testing platforms. Reverted changeset: "[MediaStream] Protect request and web view during gUM client callback" https://bugs.webkit.org/show_bug.cgi?id=174096 http://trac.webkit.org/changeset/219083 2017-07-03 Jonathan Bedard webkitpy: Properly number duplicated crashlogs https://bugs.webkit.org/show_bug.cgi?id=172002 Reviewed by Aakash Jain. * Scripts/webkitpy/common/system/crashlogs.py: (CrashLogs._find_all_logs_darwin): Number multiple crash logs for a single process with an increasing integer. * Scripts/webkitpy/common/system/crashlogs_unittest.py: (CrashLogsTest.create_crash_logs_darwin): Create duplicated crashlog for testing. (CrashLogsTest.test_find_all_log_darwin): Now 7 Darwin logs instead of 5. (CrashLogsTest.test_duplicate_log_darwin): Test that duplicated logs are correctly numbered. 2017-07-03 Ryosuke Niwa WebContent processes crash when the network process crashes with pending connection requests https://bugs.webkit.org/show_bug.cgi?id=174065 Reviewed by Tim Horton. Add a API to ensure UI process tries to relaunch a new network process when the network process crashes with pending network connection requests. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/NetworkProcessCrashWithPendingConnection.mm: Added. * TestWebKitAPI/cocoa/TestNavigationDelegate.h: * TestWebKitAPI/cocoa/TestNavigationDelegate.mm: (-[TestNavigationDelegate webViewWebContentProcessDidTerminate:]): Added. 2017-07-03 Eric Carlson [MediaStream] Protect request and web view during gUM client callback https://bugs.webkit.org/show_bug.cgi?id=174096 Reviewed by Youenn Fablet. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/GetUserMediaNavigation.mm: New test. 2017-07-03 Andy Estes [Xcode] Add an experimental setting to build with ccache https://bugs.webkit.org/show_bug.cgi?id=173875 Reviewed by Tim Horton. On systems that already have ccache(1) installed, this patch adds experimental support for it to Xcode builds. It can be enabled with the WK_USE_CCACHE build setting. When ccache is enabled, CC is overridden to invoke Tools/ccache/ccache-clang. This script finds the "-isysroot" argument to determine the active SDK, uses xcrun(1) and the SDK to find the toolchain from which to run clang, and then invokes ccache with the required arguments. ccache is invoked with CCACHE_SLOPPINESS="pch_defines,time_macros", which is required for precompiled headers to work properly [1]. LDPLUSPLUS is overridden to invoke Tools/ccache/ccache-clang++. It behaves the same as ccache-clang, except it tells ccache to execute clang++ instead of clang. This is important during linking. [1] https://ccache.samba.org/manual.html#_precompiled_headers * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: Included ccache.xcconfig. * MiniBrowser/Configurations/DebugRelease.xcconfig: Ditto. * MobileMiniBrowser/Configurations/DebugRelease.xcconfig: Ditto. * TestWebKitAPI/Configurations/DebugRelease.xcconfig: Ditto. * WebKitTestRunner/Configurations/DebugRelease.xcconfig: Ditto. * ccache/README.md: Added. * ccache/ccache-clang: Added. * ccache/ccache-clang++: Added. * ccache/ccache.xcconfig: Added. Overrides CC and LDPLUSPLUS when WK_USE_CACHE=YES. 2017-07-03 Alex Christensen REGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encode single quotes https://bugs.webkit.org/show_bug.cgi?id=174051 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebCore/URLParser.cpp: (TestWebKitAPI::TEST_F): 2017-07-03 Matt Lewis Unreviewed, rolling out r219024. This patch cause 3 didferent test to fail. Reverted changeset: "REGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encode single quotes" https://bugs.webkit.org/show_bug.cgi?id=174051 http://trac.webkit.org/changeset/219024 2017-07-03 Chris Dumez Drop ResourceLoadStatisticsStore's statisticsLock https://bugs.webkit.org/show_bug.cgi?id=174080 Reviewed by Brent Fulgham. Port WebKitTestRunner to new Asynchronous Cocoa SPI. * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::isStatisticsPrevalentResource): (WTR::TestController::isStatisticsHasHadUserInteraction): (WTR::TestController::isStatisticsGrandfathered): 2017-07-03 Wenson Hsieh Pasting single words copied to UIPasteboard inserts URLs in editable areas https://bugs.webkit.org/show_bug.cgi?id=174082 Reviewed by Tim Horton. Adds 3 new unit tests to UIPasteboardTests to test cases of pasting plain text and URLs. * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: (TestWebKitAPI::setUpWebViewForPasteboardTests): (TestWebKitAPI::TEST): 2017-07-02 Brady Eidson Add API test for all parts of WebKit1 API related to favicons. https://bugs.webkit.org/show_bug.cgi?id=174069 Reviewed by Andy Estes. These two API tests cover all WebKit1 API related to icons. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/mac/WebViewIconLoading.mm: Added. (mainResourceData): (defaultFaviconData): (customFaviconData): (imageFromData): (+[IconLoadingProtocol canInitWithRequest:]): (+[IconLoadingProtocol canonicalRequestForRequest:]): (-[IconLoadingProtocol startLoading]): (-[IconLoadingProtocol stopLoading]): (-[IconLoadingFrameLoadDelegate webView:didReceiveIcon:forFrame:]): (-[MainFrameIconKVO observeValueForKeyPath:ofObject:change:context:]): (TestWebKitAPI::TEST): 2017-07-01 Dan Bernstein [iOS] Remove code only needed when building for iOS 9.x https://bugs.webkit.org/show_bug.cgi?id=174068 Reviewed by Tim Horton. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::initializeWebViewConfiguration): * WebKitTestRunner/ios/HIDEventGenerator.mm: (-[HIDEventGenerator _createIOHIDEventType:]): 2017-07-01 Brady Eidson When setting a custom cookie storage location on a WKWebsiteDataStore, cookies aren't actually removed. and https://bugs.webkit.org/show_bug.cgi?id=174035 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: 2017-07-01 Dan Bernstein [macOS] Remove code only needed when building for OS X Yosemite https://bugs.webkit.org/show_bug.cgi?id=174067 Reviewed by Tim Horton. * DumpRenderTree/mac/Configurations/Base.xcconfig: * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: * DumpRenderTree/mac/DumpRenderTree.mm: (setDefaultsToConsistentValuesForTesting): * DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm: (-[DumpRenderTreeDraggingInfo resetSpringLoading]): * MiniBrowser/Configurations/Base.xcconfig: * MiniBrowser/Configurations/DebugRelease.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/DebugRelease.xcconfig: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp: (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm: * TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm: * TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm: (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/mac/StringTruncator.mm: (TestWebKitAPI::TEST): * WebKitTestRunner/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/DebugRelease.xcconfig: * WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: (WTR::InjectedBundle::platformInitialize): * WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm: (-[WebKitTestRunnerDraggingInfo resetSpringLoading]): 2017-07-01 Chris Dumez Replace ResourceLoadStatisticsStore C API with Cocoa SPI https://bugs.webkit.org/show_bug.cgi?id=174060 Reviewed by Brent Fulgham. Port WebKitTestRunner over to the new Cocoa SPI. * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsNotifyPagesWhenDataRecordsWereScanned): (WTR::TestRunner::setStatisticsNotifyPagesWhenTelemetryWasCaptured): Drop calls to the WKResourceLoadStatisticsStore C API here. Those were no-ops since this code runs in the WebContent process, not the UIProcess. * WebKitTestRunner/TestController.cpp: * WebKitTestRunner/cocoa/TestControllerCocoa.mm: 2017-06-30 Megan Gardner Unreviewed mac build fix. * TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm: (TestWebKitAPI::TEST): 2017-06-30 Megan Gardner Add API to get WKActivatedElementInfo https://bugs.webkit.org/show_bug.cgi?id=174001 Tests for now SPI to get activatedElementInfo. Reviewed by Tim Horton. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/WKRequestActivatedElementInfo.mm: Added. (TestWebKitAPI::TEST): 2017-06-30 Chris Dumez Move store logic from WebResourceLoadStatisticsManager to WebResourceLoadStatisticsStore https://bugs.webkit.org/show_bug.cgi?id=174038 Reviewed by Brent Fulgham. Fix typo in API name. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsMinimumTimeBetweenDataRecordsRemoval): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-06-30 Alex Christensen REGRESSION(r215096) Queries of URLs with non-special schemes should not percent-encode single quotes https://bugs.webkit.org/show_bug.cgi?id=174051 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebCore/URLParser.cpp: (TestWebKitAPI::TEST_F): 2017-06-30 Daniel Bates API::FrameInfo should know the web page that contains the frame; add API property webView to WKFrameInfo https://bugs.webkit.org/show_bug.cgi?id=165160 Reviewed by Brady Eidson. Add tests to ensure that -[WKFrameInfo webView] is computed correctly for the source and target frame for navigations and window creation. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/DecidePolicyForNavigationAction.mm: Added. Derived from file ShouldOpenExternalURLsInNewWindowActions.mm. (-[DecidePolicyForNavigationActionController webView:decidePolicyForNavigationAction:decisionHandler:]): (-[DecidePolicyForNavigationActionController webView:didFinishNavigation:]): (-[DecidePolicyForNavigationActionController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (TEST): 2017-06-29 Jer Noble Make Legacy EME API controlled by RuntimeEnabled setting. https://bugs.webkit.org/show_bug.cgi?id=173994 Reviewed by Sam Weinig. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-06-30 Jonathan Bedard Follow-up fix for r218996 Unreviewed infrastructure fix. Repeated calls to 'ios_version' make the log noisy, memoize the function. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort): Memoize ios_version(). 2017-06-30 Wenson Hsieh [iOS DnD] Drag caret rect is incorrectly computed when dropping in editable content in iframes https://bugs.webkit.org/show_bug.cgi?id=174017 Reviewed by Simon Fraser. Add a new test verifying that the drag caret is visually contained within the bounds of an iframe. Before these changes, the caret would appear outside of the iframe. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-in-iframe.html: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkDragCaretRectIsContainedInRect): (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator _resetSimulatedState]): (-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]): (-[DataInteractionSimulator _advanceProgress]): (-[DataInteractionSimulator lastKnownDragCaretRect]): 2017-06-30 Jonathan Bedard Add support for different versions of iOS when loading test expectations https://bugs.webkit.org/show_bug.cgi?id=173774 Rubber-stamped by Aakash Jain. When running layout tests, we should support multiple version of iOS the same way we do Mac. * Scripts/webkitpy/port/ios.py: (IOSPort.default_baseline_search_path): Add ios- test expectation. (IOSPort.test_expectations_file_position): Added new file expectations, increment expected file position. (IOSPort.ios_version): iOS ports must define a function to retrieve the iOS version. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.ios_version): Ask connected devices for implementation. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest.test_additional_platform_directory): Skip test until bug 173775 is finished. (IOSDeviceTest.test_baseline_searchpath): Ditto. (IOSDeviceTest.test_expectations_ordering): Ditto. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.ios_version): If a runtime is specified, ask the runtime for the iOS version. Otherwise, ask the platform. 2017-06-30 Jacobo Aragunde Pérez Fontconfig build breaks with glibc 2.15+ https://bugs.webkit.org/show_bug.cgi?id=174019 Reviewed by Carlos Alberto Lopez Perez. Apply patch by Khem Raj adapted to fontconfig 2.11.1. * wpe/jhbuild.modules: * wpe/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS-18.patch: Added. 2017-06-29 Wenson Hsieh [iOS DnD] Web content process crashes when the selection is moved far offscreen in dragstart https://bugs.webkit.org/show_bug.cgi?id=174010 Reviewed by Tim Horton. Adds a new API test to ensure that we don't crash trying to dereference a null RefPtr when the TextIndicator snapshot fails for any reason. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/dragstart-change-selection-offscreen.html: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-06-29 Chris Fleizach AX: Cannot call setValue() on contenteditable or ARIA text controls https://bugs.webkit.org/show_bug.cgi?id=173520 Reviewed by Ryosuke Niwa. Add setValue() method to WKTR (already existed in DRT). * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::setValue): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::setValue): 2017-06-28 Simon Fraser getBoundingClientRect returns wrong value for combination of page zoom and scroll https://bugs.webkit.org/show_bug.cgi?id=173841 rdar://problem/32983841 Reviewed by Dean Jackson. Make "Zoom In" and "Zoom Out" work correctly in the WebKit1 window. Previously they always did text zooming. * MiniBrowser/mac/WK1BrowserWindowController.m: (-[WK1BrowserWindowController zoomIn:]): (-[WK1BrowserWindowController zoomOut:]): (-[WK1BrowserWindowController canResetZoom]): (-[WK1BrowserWindowController resetZoom:]): 2017-06-29 John Wilander Fix for intermittent Layout Test fail http/tests/loading/resourceLoadStatistics/telemetry-generation.html https://bugs.webkit.org/show_bug.cgi?id=173940 Reviewed by Brent Fulgham. This change allows the TestController to turn off regular resource load statistics telemetry submission and to manually control when telemetry is calculated and submitted. * WebKitTestRunner/TestController.cpp: (WTR::TestController::initialize): Turns off automatic resource load statistics telemetry submission. 2017-06-29 Commit Queue Unreviewed, rolling out r218512. https://bugs.webkit.org/show_bug.cgi?id=173981 "It changes the behavior of the JS API's JSEvaluateScript which breaks TurboTax" (Requested by saamyjoon on #webkit). Reverted changeset: "test262: Completion values for control flow do not match the spec" https://bugs.webkit.org/show_bug.cgi?id=171265 http://trac.webkit.org/changeset/218512 2017-06-29 Jonathan Bedard Add WebKitSystemInterface for iOS 11 https://bugs.webkit.org/show_bug.cgi?id=173936 Reviewed by Lucas Forschler. * Scripts/copy-webkitlibraries-to-product-directory: Copy iOS 11 WebKitSystemInterface libraries. 2017-06-28 Keith Miller VMTraps has some races https://bugs.webkit.org/show_bug.cgi?id=173941 Reviewed by Michael Saboff. Add new testing mode for testing the Watchdog with our stress tests. * Scripts/run-jsc-stress-tests: 2017-06-29 Carlos Garcia Campos [GTK][WPE] Implement API::IconLoadingClient and rework WebKitFaviconDatabase to use IconDatabase directly https://bugs.webkit.org/show_bug.cgi?id=173877 Reviewed by Brady Eidson. Update favicons unit test to ensure we wait until the database is updated in testGetFavicon() before starting the next tests. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp: (testGetFavicon): 2017-06-28 Tim Horton MobileSafari was constantly using 10-15% CPU viewing a PDF https://bugs.webkit.org/show_bug.cgi?id=173944 Reviewed by Simon Fraser. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/WKPDFViewStablePresentationUpdateCallback.mm: Add a test that we ever call the stable presentation update callback when we have a WKPDFView up, instead of infinitely looping. 2017-06-28 Alex Christensen Prevent displaying URLs with small capital letters https://bugs.webkit.org/show_bug.cgi?id=173949 Reviewed by Brent Fulgham. * TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm: (TestWebKitAPI::TEST): 2017-06-28 Brent Fulgham Unreviewed test fix. Disable the file monitor tests on iOS because the 'system' API is unavailable on that platform. * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: 2017-06-28 Brent Fulgham Teach ResourceLoadStatistics to recognize changes in the file system https://bugs.webkit.org/show_bug.cgi?id=173800 Reviewed by Chris Dumez. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/FileMonitor.cpp: Added. (TestWebKitAPI::FileMonitorTest::tempFilePath): (TestWebKitAPI::handleFileModification): (TestWebKitAPI::handleFileDeletion): (TestWebKitAPI::resetTestState): (TestWebKitAPI::TEST_F): 2017-06-28 Brady Eidson DocumentLoader should always notify the client if there are pending icon loads when the load is stopped. https://bugs.webkit.org/show_bug.cgi?id=173874 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm: 2017-06-28 Don Olmstead Unreviewed, adding Don Olmstead to contributors.json * Scripts/webkitpy/common/config/contributors.json: 2017-06-28 Alex Christensen WebsitePolicies given with navigation policy for redirects should apply to the provisional document https://bugs.webkit.org/show_bug.cgi?id=173886 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm: (ParsedRange::ParsedRange): (-[TestSchemeHandler initWithVideoData:]): (-[TestSchemeHandler webView:startURLSchemeTask:]): (-[TestSchemeHandler webView:stopURLSchemeTask:]): (TEST): 2017-06-27 JF Bastien WebAssembly: running out of executable memory should throw OoM https://bugs.webkit.org/show_bug.cgi?id=171537 Reviewed by Saam Barati. * Scripts/run-jsc-stress-tests: add a configuration which runs the tests under limited executable memory and avoids non-WebAssembly code generation so that we more reliably run out of executable memory in WebAssembly. 2017-06-27 Wenson Hsieh [iOS DnD] Support dragging out of contenteditable areas without a prior selection https://bugs.webkit.org/show_bug.cgi?id=173854 Reviewed by Ryosuke Niwa and Tim Horton. Adds a new test to check that an image can be dragged out of a contenteditable and dropped. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-and-target.html: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-06-27 Don Olmstead [PAL] Add symbol export macros for PAL https://bugs.webkit.org/show_bug.cgi?id=171519 Reviewed by Konstantin Tokarev. * DumpRenderTree/config.h: * TestWebKitAPI/CMakeLists.txt: * TestWebKitAPI/config.h: * WebKitTestRunner/config.h: 2017-06-27 John Wilander Resource Load Statistics: Add telemetry https://bugs.webkit.org/show_bug.cgi?id=173499 Reviewed by Brent Fulgham. Adds three new testRunner functions: - installStatisticsDidRunTelemetryCallback() - statisticsFireTelemetryHandler() - setStatisticsNotifyPagesWhenTelemetryWasCaptured() * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::installStatisticsDidRunTelemetryCallback): (WTR::TestRunner::statisticsDidRunTelemetryCallback): (WTR::TestRunner::statisticsFireTelemetryHandler): (WTR::TestRunner::setStatisticsNotifyPagesWhenTelemetryWasCaptured): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues): (WTR::TestController::statisticsFireTelemetryHandler): (WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-06-27 Ting-Wei Lan Add missing includes to fix compilation error on FreeBSD https://bugs.webkit.org/show_bug.cgi?id=172919 Reviewed by Mark Lam. * ImageDiff/cairo/PlatformImageCairo.cpp: 2017-06-26 Jonathan Bedard Unreviewed, rolling out r218783. Causing accessibility/mac/setting-attributes-is- asynchronous.html to crash consistently on mac-wk2 Debug Reverted changeset: "AX: Cannot call setValue() on contenteditable or ARIA text controls" https://bugs.webkit.org/show_bug.cgi?id=173520 http://trac.webkit.org/changeset/218783 2017-06-26 Yusuke Suzuki [WTF] Drop Thread::create(obsolete things) API since we can use lambda https://bugs.webkit.org/show_bug.cgi?id=173825 Reviewed by Saam Barati. * DumpRenderTree/JavaScriptThreading.cpp: (runJavaScriptThread): (startJavaScriptThreads): * DumpRenderTree/mac/DumpRenderTree.mm: (runThread): (runPthread): (testThreadIdentifierMap): 2017-06-26 David Kilzer [TestWebKitAPI] Fix false-positive bad release warnings found by clang static analyzer Reviewed by Geoffrey Garen. The clang static analyzer can't reason about objects that are assigned to a delegate as +1 retained, and then released later in a different method when the delegate is cleared. Instead, use a common idiom where the object setting the delegate retains it as an instance variable on initialization. Then the same object clears the delegate and releases its instance variable during teardown. Also add EXPECT_TRUE() tests to make sure the delegate objects match before teardown. * TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm: (TestWebKitAPI::FullscreenZoomInitialFrame::initializeView): (TestWebKitAPI::FullscreenZoomInitialFrame::teardownView): * TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm: (TestWebKitAPI::PageVisibilityStateWithWindowChanges::initializeView): (TestWebKitAPI::PageVisibilityStateWithWindowChanges::teardownView): 2017-06-26 David Kilzer [TestWebKitAPI] REGRESSION (r218750): Fix leak of NSURLResponse in WKURLSchemeHandler-1.mm Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: (-[RedirectSchemeHandler webView:startURLSchemeTask:]): Use adoptNS() to fix the leak. Also use auto/adoptNS() for other objects in this test. 2017-06-26 Joanmarie Diggs [ATK] Add support for aria-details and aria-errormessage https://bugs.webkit.org/show_bug.cgi?id=172588 Reviewed by Chris Fleizach. Add additional methods to test ARIA properties which are exposed via AtkRelation. Also bump minimum versions of at-spi2-core and at-spi2-atk to versions which support the details and error-message relation types. * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: (WTR::AccessibilityUIElement::ariaDetailsElementAtIndex): (WTR::AccessibilityUIElement::ariaDetailsReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex): (WTR::AccessibilityUIElement::ariaErrorMessageReferencingElementAtIndex): * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::ariaDetailsElementAtIndex): (WTR::AccessibilityUIElement::ariaDetailsReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex): (WTR::AccessibilityUIElement::ariaErrorMessageReferencingElementAtIndex): * gtk/jhbuild.modules: 2017-06-26 Carlos Garcia Campos Unreviewed. Add libfii to GTK+ install dependencies script. * gtk/install-dependencies: 2017-06-25 Michael Catanzaro Unreviewed, rolling out r215190. Broke product select element on GNOME Bugzilla Reverted changeset: "[GTK] Misplaced right click menu on web page due to deprecated gtk_menu_popup()" https://bugs.webkit.org/show_bug.cgi?id=170553 http://trac.webkit.org/changeset/215190 2017-06-24 Joseph Pecoraro Remove Reflect.enumerate https://bugs.webkit.org/show_bug.cgi?id=173806 Reviewed by Yusuke Suzuki. * Scripts/run-jsc-stress-tests: 2017-06-24 Chris Fleizach AX: Cannot call setValue() on contenteditable or ARIA text controls https://bugs.webkit.org/show_bug.cgi?id=173520 Reviewed by Ryosuke Niwa. Add setValue() method to WKTR (already existed in DRT). * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::setValue): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::setValue): 2017-06-23 Keith Miller Switch VMTraps to use halt instructions rather than breakpoint instructions https://bugs.webkit.org/show_bug.cgi?id=173677 Reviewed by JF Bastien. * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: (TEST): 2017-06-23 Youenn Fablet Set getUserMedia permission to true by default on WTR https://bugs.webkit.org/show_bug.cgi?id=173610 Reviewed by Alex Christensen. Adding a way to reset the getUserMedia permission to pending. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::setUserMediaPermissionAsUnset): * WebKitTestRunner/InjectedBundle/InjectedBundle.h: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setUserMediaPermissionAsUnset): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues): (WTR::TestController::setUserMediaPermissionAsUnset): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): 2017-06-23 Alex Christensen Add SPI to WKURLSchemeTask for redirection https://bugs.webkit.org/show_bug.cgi?id=173730 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: (-[SchemeHandler webView:startURLSchemeTask:]): (-[SchemeHandler webView:stopURLSchemeTask:]): (TEST): (-[RedirectSchemeHandler webView:startURLSchemeTask:]): (-[RedirectSchemeHandler webView:stopURLSchemeTask:]): (-[RedirectSchemeHandler webView:didReceiveServerRedirectForProvisionalNavigation:]): (-[RedirectSchemeHandler webView:decidePolicyForNavigationResponse:decisionHandler:]): (-[RedirectSchemeHandler userContentController:didReceiveScriptMessage:]): 2017-06-23 Carlos Garcia Campos [WPE] Use JSC API to send script messages from web extension in tests https://bugs.webkit.org/show_bug.cgi?id=173757 Reviewed by Žan Doberšek. The GTK+ uses DOM bindings to send the messages. We can just build the message string and use JSEvaluateScript to run postMessage(). Fixes: /wpe/WebKitSecurityManager/file-xhr /wpe/WebKitConsoleMessage/console-api /wpe/WebKitConsoleMessage/js-exception /wpe/WebKitConsoleMessage/network-error /wpe/WebKitConsoleMessage/security-error * TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp: (testWebKitConsoleMessageSecurityError): Remove ifdefs. (beforeAll): Ditto. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: (testWebContextSecurityFileXHR): Ditto. (beforeAll): Ditto. * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp: (consoleMessageSentCallback): Use JSEvaluateScript in WPE. We need to escape the '"' in the message string. (pageCreatedCallback): Remove ifdefs. 2017-06-23 Carlos Garcia Campos Unreviewed. Fix WPE /wpe/WebKitWebView/javascript-dialogs and /wpe/WebKitWebView/window-properties Skip onbeforeunload dialog tests for now in WPE since we don't have a implemention for simulateUserInteraction(). And do not expect changes in "geometry" property of WebKitWindowProperties that doesn't exist yet in WPE. * TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: (testWebViewJavaScriptDialogs): (testWebViewWindowProperties): 2017-06-22 Carlos Garcia Campos [GTK] Upgrade pixman and cairo in jhbuild https://bugs.webkit.org/show_bug.cgi?id=173710 Reviewed by Carlos Alberto Lopez Perez. * gtk/jhbuild.modules: 2017-06-22 Carlos Garcia Campos REGRESSION(r218686): [GTK] Several unit tests are failing after r218686 in the bots https://bugs.webkit.org/show_bug.cgi?id=173711 Reviewed by Carlos Alberto Lopez Perez. I can't reproduce it locally, but it's complaining about a g_setenv() and I only added one in r218686 to recover the XDG_RUNTIME_DIR, because it's required by Wayland to work. So, I guess that env var is not set in the bots. * TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp: (WebKitTestBus::run): Ensure value is not nullptr before calling g_setenv(). 2017-06-22 David Kilzer REGRESSION (r218419): 7 leaks in PluginLoadClientPolicies.mm Reviewed by Joseph Pecoraro. Use RetainPtr<> to create NSMutableDictionary and NSNumber objects to fix leaks and to avoid the autoreleasepool. * TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm: (TEST): 2017-06-22 Matt Lewis Unreviewed, rolling out r218633. The test is failing frequently on Sierra Debug and Windows Reverted changeset: "AX: Cannot call setValue() on contenteditable or ARIA text controls" https://bugs.webkit.org/show_bug.cgi?id=173520 http://trac.webkit.org/changeset/218633 2017-06-22 David Kilzer [TestWebKitAPI] Fix misuse of -[NSData dataWithBytesNoCopy:length:] with global variables Reviewed by Chris Dumez. Per documentation, -[NSData dataWithBytesNoCopy:length:] takes ownership of malloc()-ed memory, then frees it when it's released. These tests were passing global variables into the method, which is not malloc()-ed memory, which violates the API contract. The fix is to switch to use -[NSData dataWithBytesNoCopy:length:freeWhenDone:] and to pass NO for the last argument. Caught by the clang static analyzer. * TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: (TEST): 2017-06-22 Carlos Garcia Campos [GTK] Upgrade Harfbuzz to version 1.4.2 https://bugs.webkit.org/show_bug.cgi?id=173592 Reviewed by Carlos Alberto Lopez Perez. * gtk/jhbuild.modules: 2017-06-22 Carlos Garcia Campos [WPE] Update WPEBackend-mesa https://bugs.webkit.org/show_bug.cgi?id=173705 Reviewed by Carlos Alberto Lopez Perez. A crash has been fixed, needed for unit tests to work. * wpe/jhbuild.modules: 2017-06-22 Carlos Garcia Campos Remove unused coordinated graphics C API https://bugs.webkit.org/show_bug.cgi?id=173706 Reviewed by Žan Doberšek. * TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewIsActiveSetIsActive.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewIsActiveSetIsActive_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewRestoreZoomAndScrollBackForward.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewUserViewportToContents.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/backforward1.html: Removed. * TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/backforward2.html: Removed. 2017-06-22 Carlos Garcia Campos [WPE] Build glib API tests https://bugs.webkit.org/show_bug.cgi?id=173702 Reviewed by Žan Doberšek. Many of the tests pass without problems, others need to be investigated, and some others are known issues. The main difference between the GTK+ and WPE WebKitWebView is that in GTK+ it's a GtkWidget, so initially unowned. The tests assume that webkit_web_view_new methods return a floating reference. This patch adds Test::adoptView() method that returns a GRefPtr with a different implementation in GTK+ and WPE. In the case of GTK+, it sinks the floating reference, while in WPE it simply adopts the reference. Another difference is that in GTK+ the web view is initially hidden and needs to be added to a window to make it visible. Also, some tests need the web view to be realized to work, and others need that the view is added to a toplevel window, instead of a popup window. All those things are not needed at all in WPE. I've added several #ifdefs with FIXME comments for the things that we know don't work in WPE yet, for example, because we haven't implemented the methods to send events to the web view. Those will be removed eventually when we fix the issues and implement the missing features. * CMakeLists.txt: * TestWebKitAPI/Tests/WebKit2Gtk/EditorTest.cpp: * TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: (testAutomationSessionRequestSession): * TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp: (testWebKitWebViewSessionState): (testWebKitWebViewSessionStateWithFormData): (testWebKitWebViewNavigationAfterSessionRestore): * TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp: (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp: (testCookieManagerEphemeral): * TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp: (testBlobDownload): (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp: (testProcessPerWebView): * TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: (testWebViewCreateNavigationData): (testWebViewJavaScriptDialogs): (testWebViewWindowProperties): (testWebViewMouseTarget): (testWebViewGeolocationPermissionRequests): (testWebViewUserMediaPermissionRequests): (testWebViewAudioOnlyUserMediaPermissionRequests): (testWebViewFileChooserRequest): (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp: (testPrivateBrowsing): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp: (testFindControllerHide): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp: * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: (testWebKitSettings): (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp: (testWebViewNewWithUserContentManager): (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: (testWebContextEphemeral): (testWebContextProxySettings): (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: (testWebViewWebContext): (testWebViewWebContextLifetime): (testWebViewEphemeral): (testWebViewSettings): (testWebViewCanShowMIMEType): (testWebViewPageVisibility): (testWebViewIsPlayingAudio): (beforeAll): * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp: (testWebsiteDataEphemeral): * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp: (documentLoadedCallback): (pageCreatedCallback): (methodCallCallback): * TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h: * TestWebKitAPI/glib/CMakeLists.txt: * TestWebKitAPI/glib/PlatformGTK.cmake: * TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp: * TestWebKitAPI/glib/WebKitGLib/TestMain.cpp: (main): * TestWebKitAPI/glib/WebKitGLib/TestMain.h: (Test::adoptView): * TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp: (WebKitTestBus::run): * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: (WebViewTest::~WebViewTest): (WebViewTest::initializeWebView): * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: * TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp: Added. (WebViewTest::platformDestroy): (WebViewTest::platformInitializeWebView): (WebViewTest::quitMainLoopAfterProcessingPendingEvents): (WebViewTest::resizeView): (WebViewTest::hideView): (parentWindowMapped): (WebViewTest::showInWindow): (WebViewTest::showInWindowAndWaitUntilMapped): (WebViewTest::mouseMoveTo): (WebViewTest::clickMouseButton): (WebViewTest::emitPopupMenuSignal): (WebViewTest::keyStroke): (WebViewTest::doMouseButtonEvent): * TestWebKitAPI/glib/WebKitGLib/wpe/WebViewTestWPE.cpp: Copied from Tools/TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h. (WebViewTest::platformDestroy): (WebViewTest::platformInitializeWebView): (WebViewTest::quitMainLoopAfterProcessingPendingEvents): (WebViewTest::resizeView): (WebViewTest::hideView): (WebViewTest::mouseMoveTo): (WebViewTest::clickMouseButton): (WebViewTest::keyStroke): 2017-06-22 Carlos Garcia Campos [GTK] Move WebKit2 GLib API tests to glib directories https://bugs.webkit.org/show_bug.cgi?id=173642 Reviewed by Žan Doberšek. * CMakeLists.txt: * TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: Removed. * TestWebKitAPI/Tests/WebKit2Gtk/resources/webkit2gtk-tests.gresource.xml: Removed. * TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/FrameTest.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAuthentication.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestAutomationSession.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestBackForwardList.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp. (testWebKitConsoleMessageNetworkError): * TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestCookieManager.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestFrame.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp. (testLoadFromGResource): * TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestMultiprocess.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestSSL.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebExtensions.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFaviconDatabase.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitFindController.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitPolicyClient.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSecurityOrigin.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitSettings.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitUserContentManager.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp. * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp. (testWebViewRunJavaScript): * TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebsiteData.cpp. * TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp. (registerGResource): * TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp. * TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.h: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h. * TestWebKitAPI/Tests/WebKitGLib/resources/blank.ico: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/blank.ico. * TestWebKitAPI/Tests/WebKitGLib/resources/boring.html: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/boring.html. * TestWebKitAPI/Tests/WebKitGLib/resources/link-title.js: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/link-title.js. * TestWebKitAPI/Tests/WebKitGLib/resources/silence.mpg: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/silence.mpg. * TestWebKitAPI/Tests/WebKitGLib/resources/simple.json: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/simple.json. * TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.pem: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test-cert.pem. * TestWebKitAPI/Tests/WebKitGLib/resources/test-key.pem: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test-key.pem. * TestWebKitAPI/Tests/WebKitGLib/resources/test.pdf: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/test.pdf. * TestWebKitAPI/Tests/WebKitGLib/resources/track.ogg: Renamed from Tools/TestWebKitAPI/Tests/WebKit2Gtk/resources/track.ogg. * TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml: Added. * TestWebKitAPI/glib/CMakeLists.txt: Added. * TestWebKitAPI/glib/PlatformGTK.cmake: Added. * TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.cpp. * TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.h. * TestWebKitAPI/glib/WebKitGLib/TestMain.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.cpp. (registerGResource): * TestWebKitAPI/glib/WebKitGLib/TestMain.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/TestMain.h. (Test::getResourcesDir): * TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.cpp. * TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestBus.h. * TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.cpp. * TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebKitTestServer.h. * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp. * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: Renamed from Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h. 2017-06-22 Carlos Garcia Campos [WPE] Add initial web extensions API https://bugs.webkit.org/show_bug.cgi?id=173640 Reviewed by Žan Doberšek. Add style checker exceptions for WPE web extensions API files. * Scripts/webkitpy/style/checker.py: 2017-06-21 Wenson Hsieh [iOS DnD] [WK2] Cancelling a drag interaction using the ObjC SPI causes subsequent dragging to fail https://bugs.webkit.org/show_bug.cgi?id=173659 Reviewed by Tim Horton. Adds a new test to verify that a lift cancelled within the UI process does not cause subsequent dragging to fail. * TestWebKitAPI/Tests/WebKit2Cocoa/link-and-target-div.html: Augment this test page to log dragend and dragstart events on the drag source as well. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkStringArraysAreEqual): (TestWebKitAPI::TEST): 2017-06-21 Antoine Quint Ensure DRT always logs rAF suspension debugging code https://bugs.webkit.org/show_bug.cgi?id=173681 Reviewed by Tim "Mr. T" Horton. * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): 2017-06-21 Chris Dumez Allow constructing a WTF:Function from a function pointer https://bugs.webkit.org/show_bug.cgi?id=173660 Reviewed by Alex Christensen. Add API test coverage. * TestWebKitAPI/Tests/WTF/Function.cpp: (TestWebKitAPI::returnThree): (TestWebKitAPI::returnFour): (TestWebKitAPI::returnPassedValue): (TestWebKitAPI::TEST): 2017-06-21 Antoine Quint Add logging to identify when the Page suspends scripted animations https://bugs.webkit.org/show_bug.cgi?id=173626 Reviewed by Tim Horton. Turn the new logging on for WK1/DRT since the issue we're trying to pinpoint only occurs on WK1 bots. * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): 2017-06-21 Chris Fleizach AX: Cannot call setValue() on contenteditable or ARIA text controls https://bugs.webkit.org/show_bug.cgi?id=173520 Reviewed by Ryosuke Niwa. Add setValue() method to WKTR (already existed in DRT). * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::setValue): * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::setValue): 2017-06-21 Zan Dobersek List libtasn1 packages in GTK+ and WPE install-dependencies scripts as one of the dependencies required to build the product. Rubber-stamped by Carlos Garcia Campos. * gtk/install-dependencies: * wpe/install-dependencies: 2017-06-20 Myles C. Maxfield Disable font variations on macOS Sierra and iOS 10 https://bugs.webkit.org/show_bug.cgi?id=173618 Reviewed by Jon Lee. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-06-20 Wenson Hsieh [iOS DnD] [WK2] Remove custom logic for disambiguating long press action sheet gestures and drag lift https://bugs.webkit.org/show_bug.cgi?id=173578 Reviewed by Tim Horton. Slight tweak to ensure that DataInteractionTests.CustomActionSheetPopover still passes and verifies that showing a custom popover does not cause dragging to fail when the popover is presented. * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator _advanceProgress]): 2017-06-20 Carlos Garcia Campos [WPE] Add initial implementation of glib API https://bugs.webkit.org/show_bug.cgi?id=173546 Reviewed by Žan Doberšek. Disable geolocation because WPE doesn't implement any provider and update the style checker exceptions to include WPE glib API files. * Scripts/webkitperl/FeatureList.pm: * Scripts/webkitpy/style/checker.py: * Scripts/webkitpy/style/checkers/cpp.py: (check_identifier_name_in_declaration): 2017-06-20 Carlos Garcia Campos [GTK] Upgrade to ICU to version 57.1 https://bugs.webkit.org/show_bug.cgi?id=173538 Reviewed by Žan Doberšek. * gtk/jhbuild.modules: 2017-06-20 Carlos Garcia Campos [GTK] Remove unneeded modules from the jhbuild https://bugs.webkit.org/show_bug.cgi?id=170540 Reviewed by Michael Catanzaro. We are building libxslt and libffi that we don't really need to build from sources. * gtk/jhbuild.modules: 2017-06-19 Frederic Wang [Mac] Add an experimental feature setting for async frame scrolling https://bugs.webkit.org/show_bug.cgi?id=173359 Reviewed by Simon Fraser. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): Do not enable async frame scrolling for now. (resetWebPreferencesToConsistentValues): Disable async frame scrolling by default. * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): Initalize to async frame scrolling to false. 2017-06-19 Guillaume Emont Unreviewed, adding myself to contributors.json * Scripts/webkitpy/common/config/contributors.json: 2017-06-19 Joseph Pecoraro test262: Completion values for control flow do not match the spec https://bugs.webkit.org/show_bug.cgi?id=171265 Reviewed by Saam Barati. * Scripts/run-jsc-stress-tests: Include a :failDueToOutdatedOrBadTest to mark failures with justification. 2017-06-19 Zalan Bujtas Opening certain mails brings up a mail that grows indefinitely. https://bugs.webkit.org/show_bug.cgi?id=173562 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/AutoLayoutIntegration.mm: (TEST): 2017-06-19 Wenson Hsieh [iOS DnD] Support .zip archives for file uploads via drag and drop https://bugs.webkit.org/show_bug.cgi?id=173511 Reviewed by Tim Horton. Adds tests for dropping .zip archives into a JavaScript-based file upload area, as well as into a file input. Also verifies that URLs are not handled as file drops. See WebCore ChangeLog for more details. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/compressed-files.zip: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (testZIPArchive): (TestWebKitAPI::TEST): 2017-06-18 Darin Adler Fix Ref to deref before assignment, add tests for this to RefPtr, Ref, Function https://bugs.webkit.org/show_bug.cgi?id=173526 Reviewed by Sam Weinig. * TestWebKitAPI/CMakeLists.txt: Added Function.cpp. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto. * TestWebKitAPI/Tests/WTF/Function.cpp: Added. Contains basic tests and some tests for assignment before destruction ones. * TestWebKitAPI/Tests/WTF/MoveOnly.h: Added a () operator so this can be used as a function, so it can be used in WTF::Function tests. * TestWebKitAPI/Tests/WTF/Ref.cpp: Use EXPECT macros insead of ASSERT. Added tests for swap and for assignment before deref. * TestWebKitAPI/Tests/WTF/RefLogger.cpp: Stopped using inlining; no good reason to inline everything. Also removed the unnecessary clearing of the log every time the DerivedRefLogger constructor is called. * TestWebKitAPI/Tests/WTF/RefLogger.h: Ditto. * TestWebKitAPI/Tests/WTF/RefPtr.cpp: Use EXPECT macros instead of ASSERT. Added tests for assignment before deref and similar for releaseNonNull. 2017-06-19 Sam Weinig [WebIDL] Properly model buffer source / typed arrays as their own IDL types https://bugs.webkit.org/show_bug.cgi?id=173513 Reviewed by Alex Christensen. * DumpRenderTree/Bindings/CodeGeneratorDumpRenderTree.pm: * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm: Replace IsNonPointerType subroutine with IsPrimitiveType so we can remove IsNonPointerType. 2017-06-19 Per Arne Vollan [Win] fast/dom/assign-to-window-status.html is flaky. https://bugs.webkit.org/show_bug.cgi?id=173512 Reviewed by Alex Christensen. We should not dump status callbacks when test is done. * DumpRenderTree/win/UIDelegate.cpp: (UIDelegate::setStatusText): 2017-06-19 Carlos Alberto Lopez Perez [WPE][JHBuild] Update WPEBackend-mesa https://bugs.webkit.org/show_bug.cgi?id=173433 Unreviewed. Update WPEBackend-mesa back (like it was done originally in r218344) after fixing the issue with the DISPLAY environment variables that caused the crashes. * wpe/jhbuild.modules: 2017-06-19 Carlos Alberto Lopez Perez Rename unit test file after r218482 https://bugs.webkit.org/show_bug.cgi?id=173483 Unreviewed. * Scripts/webkitpy/port/waylanddriver_unittest.py: Renamed from Tools/Scripts/webkitpy/port/wayland_unittest.py. 2017-06-19 Carlos Garcia Campos Unreviewed. Fix wrong style checker condition added in r218487. * Scripts/webkitpy/style/checkers/cpp.py: (check_identifier_name_in_declaration): 2017-06-19 Adrian Perez de Castro Missing includes make builds fail with GCC 7.x https://bugs.webkit.org/show_bug.cgi?id=173544 Unreviewed gardening. Fix compilation with GCC 7. * TestWebKitAPI/Tests/WTF/HashSet.cpp: * TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.h: 2017-06-19 Carlos Garcia Campos [GTK] Move GTK+ API files that could be shared to glib dirs https://bugs.webkit.org/show_bug.cgi?id=173545 Reviewed by Žan Doberšek. Update paths of GTK+ API in watchlist and style checker. * Scripts/webkitpy/common/config/watchlist: * Scripts/webkitpy/style/checker.py: * Scripts/webkitpy/style/checkers/cpp.py: (check_identifier_name_in_declaration): 2017-06-19 Carlos Alberto Lopez Perez Port setup_environ_for_server should not set environment variables related with the driver. https://bugs.webkit.org/show_bug.cgi?id=173483 Reviewed by Carlos Garcia Campos. The port setup_environ_for_server() should not set environment variables that depend on the type of driver (like DISPLAY or GDK_BACKEND). This varibles should be only set on the driver setup_environ_for_test(). This causes that (for example) the variable DISPLAY or XAUTHORITY leaks into the test environment even when running the tests with a driver that is not the Xorg or Xvfb one. * Scripts/webkitpy/port/base.py: Stop setting XAUTHORITY and DISPLAY here. (Port.to.setup_environ_for_server): * Scripts/webkitpy/port/driver.py: Remove unneded WEBKIT_OUTPUTDIR that is already set on base.py (Driver._setup_environ_for_driver): * Scripts/webkitpy/port/driver_unittest.py: (DriverTest.test_setup_environ_for_test): (DriverTest): (DriverTest.test_setup_environ_base_vars): * Scripts/webkitpy/port/gtk.py: Stop setting GDK_BACKEND here and do that on the driver (Xvfb). (GtkPort.setup_environ_for_server): * Scripts/webkitpy/port/wayland_unittest.py: Added. (WaylandDriverTest): (WaylandDriverTest.make_driver): (WaylandDriverTest.make_environment): (WaylandDriverTest.test_checkdriver): (WaylandDriverTest.test_environment_needed_variables): (WaylandDriverTest.test_environment_forbidden_variables): (WaylandDriverTest.test_environment_optional_variables): * Scripts/webkitpy/port/waylanddriver.py: Allow the driver to run also with WAYLAND_SOCKET. (WaylandDriver.check_driver): (WaylandDriver._setup_environ_for_test): * Scripts/webkitpy/port/xorgdriver.py: (XorgDriver.check_driver): (XorgDriver._setup_environ_for_test): * Scripts/webkitpy/port/xorgdriver_unittest.py: Added. (XorgDriverTest): (XorgDriverTest.make_driver): (XorgDriverTest.make_environment): (XorgDriverTest.test_checkdriver): (XorgDriverTest.test_environment_needed_variables): (XorgDriverTest.test_environment_forbidden_variables): (XorgDriverTest.test_environment_optional_variables): * Scripts/webkitpy/port/xvfbdriver.py: (XvfbDriver._setup_environ_for_test): * Scripts/webkitpy/port/xvfbdriver_unittest.py: (XvfbDriverTest.assertDriverStartSuccessful): 2017-05-14 Frederic Wang Add heuristic to avoid flattening "fullscreen" iframes https://bugs.webkit.org/show_bug.cgi?id=171914 Reviewed by Simon Fraser. * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): Use WebKitFrameFlatteningDisabled. 2017-06-18 Chris Dumez Crash when re-entering MediaDevicesEnumerationRequest::cancel() https://bugs.webkit.org/show_bug.cgi?id=173522 Reviewed by Darin Adler. Add API test for re-entering Function's assignment operators. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/Function.cpp: Added. (TestWebKitAPI::TestObject::TestObject): (TestWebKitAPI::TestObject::~TestObject): (TestWebKitAPI::TestObject::operator()): (TestWebKitAPI::TEST): 2017-06-16 Dan Bernstein [Cocoa] Some declarations have missing or incorrect availability attributes https://bugs.webkit.org/show_bug.cgi?id=173508 Reviewed by Tim Horton. * TestWebKitAPI/Tests/ios/PositionInformationTests.mm: (TestWebKitAPI::TEST): Updated for renames. 2017-06-16 Wenson Hsieh [iOS DnD] Upstream iOS drag and drop implementation into OpenSource WebKit https://bugs.webkit.org/show_bug.cgi?id=173366 Reviewed by Tim Horton. Move test pages and pieces of DataInteractionSimulator hidden behind WebKitAdditions into TestWebKitAPI. No change in behavior. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/autofocus-contenteditable.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/background-image-link-and-input.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/contenteditable-and-textarea.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/div-and-large-image.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/file-uploading.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/image-and-contenteditable.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/image-and-textarea.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/link-and-input.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/link-and-target-div.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/prevent-operation.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/prevent-start.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/textarea-to-input.html: Added. * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[MockDragDropSession initWithItems:location:window:]): (-[MockDragDropSession allowsMoveOperation]): (-[MockDragDropSession isRestrictedToDraggingApplication]): (-[MockDragDropSession hasItemsConformingToTypeIdentifiers:]): (-[MockDragDropSession canLoadObjectsOfClass:]): (-[MockDragDropSession canLoadObjectsOfClasses:]): (-[MockDragDropSession items]): (-[MockDragDropSession setItems:]): (-[MockDragDropSession locationInView:]): (-[MockDataOperationSession initWithProviders:location:window:]): (-[MockDataOperationSession session]): (-[MockDataOperationSession isLocal]): (-[MockDataOperationSession progress]): (-[MockDataOperationSession setProgressIndicatorStyle:]): (-[MockDataOperationSession progressIndicatorStyle]): (-[MockDataOperationSession operationMask]): (-[MockDataOperationSession localDragSession]): (-[MockDataOperationSession hasItemsConformingToTypeIdentifier:]): (-[MockDataOperationSession canCreateItemsOfClass:]): (-[MockDataOperationSession loadObjectsOfClass:completion:]): (-[MockDataInteractionSession initWithWindow:]): (-[MockDataInteractionSession localOperationMask]): (-[MockDataInteractionSession externalOperationMask]): (-[MockDataInteractionSession session]): (-[DataInteractionSimulator _advanceProgress]): 2017-06-16 Alex Christensen Show punycode to user if a URL has dotless i or j followed by diacritic dot https://bugs.webkit.org/show_bug.cgi?id=173431 Reviewed by Darin Adler. * TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm: (TestWebKitAPI::TEST): 2017-06-16 Chris Dumez [WK2] Add WKProcessPool SPI to efficiently reset all plugin load client policies https://bugs.webkit.org/show_bug.cgi?id=173472 Reviewed by Brady Eidson. Add API test coverage. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm: Added. (TEST): 2017-06-16 Brady Eidson REGRESSION (r218015) IconLoaders for already-cached resources expect to be asynchronous, no longer are. and https://bugs.webkit.org/show_bug.cgi?id=173478 Reviewed by Daniel Bates. * TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm: 2017-06-16 Chris Dumez DRT fails to reset page visibility between tests https://bugs.webkit.org/show_bug.cgi?id=173485 Reviewed by Alexey Proskuryakov. DRT fails to reset page visibility between tests and relies on tests calling testRunner.resetPageVisibility(). Fix this to address flakiness. I confirmed this by commenting out the call to testRunner.resetPageVisibility() in fast/events/page-visibility-onvisibilitychange.html and running the test in a loop. The test became flaky without the DRT change and was no longer flaky with the DRT change. WebKitTestRunner already does this. * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebViewToConsistentStateBeforeTesting): 2017-06-16 Alex Christensen Implement basic authentication in MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=173443 Reviewed by Tim Horton. * MiniBrowser/mac/WK2BrowserWindowController.m: (-[WK2BrowserWindowController webView:didReceiveAuthenticationChallenge:completionHandler:]): 2017-06-16 Jer Noble [WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients https://bugs.webkit.org/show_bug.cgi?id=173398 Reviewed by Eric Carlson. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/MediaStreamTrackDetached.mm: Added. (-[MediaStreamTrackDetachedUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]): (-[MediaStreamTrackDetachedUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): (-[MediaStreamTrackDetachedUIDelegate _webView:mediaCaptureStateDidChange:]): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2/mediastreamtrack-detached.html: Added. 2017-06-16 Matt Lewis Unreviewed, rolling out r218375. The API test MediaStreamTrackDetached is still timing out after the patch Reverted changeset: "[WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients" https://bugs.webkit.org/show_bug.cgi?id=173398 http://trac.webkit.org/changeset/218375 2017-06-15 Jer Noble [WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients https://bugs.webkit.org/show_bug.cgi?id=173398 Reviewed by Eric Carlson. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/MediaStreamTrackDetached.mm: Added. (-[MediaStreamTrackDetachedUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]): (-[MediaStreamTrackDetachedUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): (-[MediaStreamTrackDetachedUIDelegate _webView:mediaCaptureStateDidChange:]): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2/mediastreamtrack-detached.html: Added. 2017-06-15 Matt Lewis Unreviewed, rolling out r218365. The revision caused API timeouts on all builds. Reverted changeset: "[WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients" https://bugs.webkit.org/show_bug.cgi?id=173398 http://trac.webkit.org/changeset/218365 2017-06-15 Jer Noble [WebRTC] Removing a MediaStreamTrack from a MediaStream reports no recording to WebKit clients https://bugs.webkit.org/show_bug.cgi?id=173398 Reviewed by Eric Carlson. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/MediaStreamTrackDetached.mm: Added. (-[MediaStreamTrackDetachedUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]): (-[MediaStreamTrackDetachedUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): (-[MediaStreamTrackDetachedUIDelegate _webView:mediaCaptureStateDidChange:]): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2/mediastreamtrack-detached.html: Added. 2017-06-15 Carlos Alberto Lopez Perez REGRESSION(r218344): [WPE] Thousands of layout test crashes https://bugs.webkit.org/show_bug.cgi?id=173433 Unreviewed. * wpe/jhbuild.modules: Revert the update of WPEBackend-mesa. 2017-06-15 Carlos Alberto Lopez Perez [WPE] The run-minibrowser script should allow to execute also a WPE launcher https://bugs.webkit.org/show_bug.cgi?id=173061 Reviewed by Žan Doberšek. Launch dyz with the script run-minibrowser for the wpe port. It is now built as part of the WPE dependencies with JHBuild. * Scripts/run-minibrowser: * Scripts/webkitdirs.pm: (launcherPath): (launcherName): * wpe/install-dependencies: Luajit is needed for building dyz. * wpe/jhbuild.modules: Add dyz and update the revision for WPEBackend-mesa. 2017-06-15 Wenson Hsieh Using -[WebItemProviderPasteboard setItemProviders:] to swap out item providers before a drop breaks item provider loading https://bugs.webkit.org/show_bug.cgi?id=173338 Reviewed by Tim Horton. Adds new unit tests to ensure that -_webView:willPerformDropWithSession: can be used to filter out drag items used by WebKit when handling a drop. These tests ensure that WebItemProviderPasteboard is still able to handle these remaining items on drop. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: Add -overridePerformDropBlock, which can be set to provide custom handling of dropped items. (-[DataInteractionSimulator _webView:willPerformDropWithSession:]): 2017-06-15 Per Arne Vollan [Win] Crash in accessibility layout test. https://bugs.webkit.org/show_bug.cgi?id=173401 Reviewed by Brent Fulgham. We should not manually release the punkVal IUnknown member in a _variant_t object, since the punkVal member will be automatically released when the _variant_t object goes out of scope if the vt member does not equal VT_UNKNOWN | VT_BYREF. See https://msdn.microsoft.com/en-us/library/windows/desktop/ms221165(v=vs.85).aspx. * DumpRenderTree/win/AccessibilityUIElementWin.cpp: (AccessibilityUIElement::titleUIElement): 2017-06-15 Carlos Garcia Campos [GTK] Add API to allow overriding popup menus https://bugs.webkit.org/show_bug.cgi?id=172905 Reviewed by Michael Catanzaro. Add a unit test to check the new API. * TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: * TestWebKitAPI/Tests/WebKit2Gtk/TestOptionMenu.cpp: Added. (OptionMenuTest::OptionMenuTest): (OptionMenuTest::~OptionMenuTest): (OptionMenuTest::destroyMenu): (OptionMenuTest::showOptionMenuCallback): (OptionMenuTest::menuCloseCallback): (OptionMenuTest::showOptionMenu): (OptionMenuTest::clickAtPositionAndWaitUntilOptionMenuShown): (OptionMenuTest::close): (OptionMenuTest::activateItem): (OptionMenuTest::selectItem): (testOptionMenuSimple): (testOptionMenuGroups): (testOptionMenuActivate): (testOptionMenuSelect): (beforeAll): (afterAll): 2017-06-15 Fujii Hironori [WinCairo] DumpRenderTree.cpp: error C3861: 'CFURLCacheCreate': identifier not found https://bugs.webkit.org/show_bug.cgi?id=173399 Reviewed by Per Arne Vollan. OpenCFLite doesn't have CFURLCacheCreate and CFURLCacheSetSharedURLCache. Curl port needs to do nothing because libcurl doesn't have disk cache. * DumpRenderTree/win/DumpRenderTree.cpp: (prepareConsistentTestingEnvironment): Call CFURLCacheCreate() and CFURLCacheSetSharedURLCache() only if USE(CFURLCONNECTION). 2017-06-14 Tomas Popela [GTK] integer expression expected if running Tools/gtk/install-dependencies https://bugs.webkit.org/show_bug.cgi?id=173356 Reviewed by Michael Catanzaro. Use the correct operator to compare the strings. * gtk/install-dependencies: 2017-06-14 Commit Queue Unreviewed, rolling out r218285. https://bugs.webkit.org/show_bug.cgi?id=173391 API test fails on iOS (Requested by alexchristensen on #webkit). Reverted changeset: "Add SPI for immediate injection of user scripts" https://bugs.webkit.org/show_bug.cgi?id=173342 http://trac.webkit.org/changeset/218285 2017-06-14 Chris Dumez WebKit falsely reports that a web process is unresponsive if you close a page shortly after stopping a load https://bugs.webkit.org/show_bug.cgi?id=173384 Reviewed by Dan Bernstein. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/ResponsivenessTimer.cpp: Added. Add API test coverage. * TestWebKitAPI/cocoa/UtilitiesCocoa.mm: (TestWebKitAPI::Util::sleep): Update implementation of Util::sleep() so that we actually run the run loop. Otherwise, we don't process events while sleeping. 2017-06-14 Alex Christensen Add SPI for immediate injection of user scripts https://bugs.webkit.org/show_bug.cgi?id=173342 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm: (waitForMessage): (TEST): 2017-06-14 Claudio Saavedra Add WPE to the flakiness dashboard https://bugs.webkit.org/show_bug.cgi?id=173365 Reviewed by Carlos Alberto Lopez Perez. * TestResultServer/static-dashboards/builders.jsonp: * TestResultServer/static-dashboards/flakiness_dashboard.js: * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: (resetGlobals): * TestResultServer/static-dashboards/loader_unittests.js: 2017-06-14 Brady Eidson WKIconLoadingDelegate never gets asked about the default favicon if touch/touch-precomposed icons are in the and https://bugs.webkit.org/show_bug.cgi?id=173376 Reviewed by Alex Christensen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/IconLoadingDelegate.mm: Added. (-[IconLoadingDelegate webView:shouldLoadIconWithParameters:completionHandler:]): (-[IconLoadingSchemeHandler initWithData:mimeType:]): (-[IconLoadingSchemeHandler webView:startURLSchemeTask:]): (-[IconLoadingSchemeHandler webView:stopURLSchemeTask:]): (TEST): 2017-06-14 Tim Horton WKContentViewEditingActions API test always fails https://bugs.webkit.org/show_bug.cgi?id=173374 Reviewed by Wenson Hsieh. * TestWebKitAPI/Tests/WebKit2Cocoa/WKContentViewEditingActions.mm: (TEST): selectAll isn't working, because canPerformAction for selectAll returns NO if selectionIsNone (which is true in the non-contenteditable case). Instead, make use of r218180's test page, which knows how to select itself. Also, reset the pasteboard at the beginning of the test to reduce confusion (I landed the test broken because my simulator had the correct text stuck in its pasteboard). 2017-06-14 Jonathan Bedard Configure screen scale for running layout tests on plus devices https://bugs.webkit.org/show_bug.cgi?id=173319 Reviewed by Tim Horton. * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Include UIKitTestSPI.h in project. * DumpRenderTree/mac/DumpRenderTree.mm: (dumpRenderTree): Set screen scale to 2.0. * TestRunnerShared/spi/UIKitTestSPI.h: Copied from Tools/WebKitTestRunner/ios/UIKitSPI.h, add _setScale for UIScreen. * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Include UIKitTestSPI.h in project. * WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: Import UIKitTestSPI.h instead of UIKitSPI.h. * WebKitTestRunner/ios/HIDEventGenerator.h: Ditto. * WebKitTestRunner/ios/HIDEventGenerator.mm: Ditto. * WebKitTestRunner/ios/PlatformWebViewIOS.mm: Ditto. * WebKitTestRunner/ios/TestControllerIOS.mm: Ditto. (WTR::TestController::platformInitialize): Set screen scale to 2.0. * WebKitTestRunner/ios/UIKitSPI.h: Moved to TestRunnerShared/spi/UIKitTestSPI.h. * WebKitTestRunner/ios/UIScriptControllerIOS.mm: Import UIKitTestSPI.h instead of UIKitSPI.h. * WebKitTestRunner/ios/mainIOS.mm: Ditto. 2017-06-14 Alexey Proskuryakov Add iOS 11 support to the bot watcher's dashboard https://bugs.webkit.org/show_bug.cgi?id=173369 Reviewed by Lucas Forschler. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS11.png: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS11@2x.png: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS11Simulator.png: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS11Simulator@2x.png: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css: 2017-06-14 Carlos Alberto Lopez Perez [GTK][WPE] Raise the timeout values for layout tests https://bugs.webkit.org/show_bug.cgi?id=173368 Reviewed by Carlos Garcia Campos. Raise the values to 15 seconds in Release builds and 30 seconds (2x) in Debug builds. When running under valgrind a 10x multiplier is applied. * Scripts/webkitpy/port/gtk.py: (GtkPort.default_timeout_ms): * Scripts/webkitpy/port/gtk_unittest.py: (GtkPortTest.test_default_timeout_ms): * Scripts/webkitpy/port/wpe.py: (WPEPort.default_timeout_ms): * Scripts/webkitpy/port/wpe_unittest.py: Copied from Tools/Scripts/webkitpy/port/gtk_unittest.py. (WPEPortTest): (WPEPortTest.make_port): (WPEPortTest.test_default_timeout_ms): (WPEPortTest.test_get_crash_log): 2017-06-14 Alex Christensen Test persistent WKHTTPCookieStorages on iOS. https://bugs.webkit.org/show_bug.cgi?id=173284 * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): Make the bots green again for now. There's still a problem, and I'll investigate and fix. 2017-06-14 Per Arne Vollan [Win] DRT should not use disk cache. https://bugs.webkit.org/show_bug.cgi?id=173361 Reviewed by Darin Adler. Like on macOS/iOS, DRT on Windows should only use memory cache. * DumpRenderTree/win/DumpRenderTree.cpp: (setDefaultsToConsistentValuesForTesting): (prepareConsistentTestingEnvironment): 2017-06-14 Nael Ouedraogo MediaSource duration attribute should not be equal to Infinity when set to a value greater than 2^64 https://bugs.webkit.org/show_bug.cgi?id=171668 Reviewed by Jer Noble. MediaSource duration attribute is a double represented in MediaSource by a MediaTime instance created with MediaTime::CreateWithDouble(). This method implements an overflow control mechanism which sets MediaTime to Infinity when the double value passed as argument is greater than 2^64. This patch removes the overflow control mechanism when time value is represented as a double. This patch also modifies the behavior of mathematical operations between a double MediaTime and rational MediaTime: the rational MediaTime is converted to a double before applying the operation. Double MediaTime precision is the same as for double. Overflow mechanisms still apply to the conversion of a double MediaTime to rational with setTimescale() method. No behavior change for rational MediaTime. * TestWebKitAPI/Tests/WTF/MediaTime.cpp: Add tests to check operation results between double and rational MediaTime. (TestWebKitAPI::TEST): 2017-06-13 Alex Christensen Test persistent WKHTTPCookieStorages on iOS https://bugs.webkit.org/show_bug.cgi?id=173284 * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): 2017-06-13 Matt Rajca WebsitePolicies: let clients select specific autoplay quirks https://bugs.webkit.org/show_bug.cgi?id=173343 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm: (-[AutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): (TEST): Updated tests. 2017-06-13 Daniel Bates Implement W3C Secure Contexts Draft Specification https://bugs.webkit.org/show_bug.cgi?id=158121 Reviewed by Brent Fulgham. Part 4 Expose the isSecureContext attribute by default in DumpRenderTree and WebKitTestRunner. Teach DumpRenderTree for Mac and WebKitTestRunner to parse the test option enableIsSecureContextAttribute to toggle the runtime enabled feature flag isSecureContextAttributeEnabled. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (setWebPreferencesForTestOptions): * DumpRenderTree/win/DumpRenderTree.cpp: (enableExperimentalFeatures): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): (WTR::updateTestOptionsFromTestHeader): * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions): 2017-06-13 Alex Christensen Test persistent WKHTTPCookieStorages on iOS https://bugs.webkit.org/show_bug.cgi?id=173284 Reviewed by Alexey Proskuryakov. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): 2017-06-13 Carlos Garcia Campos [GTK] Blob download doesn't work https://bugs.webkit.org/show_bug.cgi?id=172442 Reviewed by Carlos Alberto Lopez Perez. Add a unit test to check blob downloads. * TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp: (testBlobDownload): (beforeAll): 2017-06-13 Carlos Garcia Campos [GTK] Do not include WTR, DumpRendererTree and ImageDiff in tarballs https://bugs.webkit.org/show_bug.cgi?id=173316 Reviewed by Alex Christensen. It's not really possible to run layout tests from the tarball, so it's better not to include those files. * gtk/manifest.txt.in: 2017-06-13 Carlos Garcia Campos [WTR] Crash in WebGeolocationManagerProxy::~WebGeolocationManagerProxy() when running several tests https://bugs.webkit.org/show_bug.cgi?id=173315 Reviewed by Darin Adler. This has started to happen after r218165, but I don't think it's a regression, but that r218165 revealed the bug somehow in WTR. The problem is that GeolocationProviderMock keeps a pointer to the WKGeolocationManagerRef returned by WKContextGetGeolocationManager. But in TestController::generatePageConfiguration() the context is freed before the GeolocationProviderMock. When the GeolocationProviderMock is then destroyed, it calls WKGeolocationManagerSetProvider(m_geolocationManager, 0); but the WKGeolocationManagerRef has already been destroyed. GeolocationProviderMock should keep a reference to the WKContext to ensure the WKGeolocationManagerRef is not destroyed. * WebKitTestRunner/GeolocationProviderMock.cpp: (WTR::GeolocationProviderMock::GeolocationProviderMock): * WebKitTestRunner/GeolocationProviderMock.h: 2017-06-13 Wenson Hsieh Unable to paste text that was copied from a page into the universal search field https://bugs.webkit.org/show_bug.cgi?id=173293 Reviewed by Ryosuke Niwa. Adds 2 new unit tests for copying plain and rich selected web content. See WebCore and WebKit ChangeLogs for more detail. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/rich-and-plain-text.html: Added. * TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: Added. (TestWebKitAPI::dataForPasteboardType): (TestWebKitAPI::setUpWebViewForPasteboardTests): (TestWebKitAPI::TEST): 2017-06-13 Joanmarie Diggs AX: [ATK] Implement missing AtkRelation types https://bugs.webkit.org/show_bug.cgi?id=155494 Reviewed by Darin Adler. Add additional methods to test ARIA properties which are exposed via AtkRelation. Implement ATK support for ariaOwnsElementAtIndex(). * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: (WTR::AccessibilityUIElement::ariaLabelledByElementAtIndex): (WTR::AccessibilityUIElement::ariaDescribedByElementAtIndex): (WTR::AccessibilityUIElement::ariaOwnsReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaFlowToReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaControlsReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaLabelledByReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaDescribedByReferencingElementAtIndex): * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::ariaOwnsElementAtIndex): (WTR::AccessibilityUIElement::ariaOwnsReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaFlowToReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaControlsReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaLabelledByElementAtIndex): (WTR::AccessibilityUIElement::ariaLabelledByReferencingElementAtIndex): (WTR::AccessibilityUIElement::ariaDescribedByElementAtIndex): (WTR::AccessibilityUIElement::ariaDescribedByReferencingElementAtIndex): 2017-06-12 Daniel Bates Add unit tests for SecurityOrigin::IsPotentiallyTrustworthy() https://bugs.webkit.org/show_bug.cgi?id=173286 Reviewed by Brent Fulgham. * TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp: (TestWebKitAPI::TEST_F): 2017-06-12 Lucas Forschler Teach copy-webkitlibraries-to-product-directory script about updated libraries. Reviewed by Conrad Schultz. * Scripts/copy-webkitlibraries-to-product-directory: 2017-06-12 Tim Horton [iOS] Cmd-C doesn't copy text from WKWebView https://bugs.webkit.org/show_bug.cgi?id=173277 Reviewed by Dan Bernstein. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * Tests/WebKit2Cocoa/WKContentViewEditingActions.mm: Add a test ensuring that -copy on WKContentView will cause text to be copied. 2017-06-12 Jiewen Tan [WebCrypto] Remove experimental feature flag of SubtleCrypto https://bugs.webkit.org/show_bug.cgi?id=173197 Reviewed by Brent Fulgham. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setSubtleCryptoEnabled): Deleted. * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-06-12 Wenson Hsieh [iOS DnD] Allow the injected bundle to add client data when writing an image to the pasteboard https://bugs.webkit.org/show_bug.cgi?id=173238 Reviewed by Ryosuke Niwa and Tim Horton. Add a new unit test to verify that data inserted by the injected bundle when beginning a drag on an image element is plumbed across to the UI delegate. Also refactors injected bundle unit tests to use the new version of adjustedDataInteractionItemProvidersForItemProvider: that takes representing objects and additional data. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator _webView:adjustedDataInteractionItemProvidersForItemProvider:representingObjects:additionalData:]): (-[DataInteractionSimulator _webView:adjustedDataInteractionItemProviders:]): Deleted. 2017-06-12 Wenson Hsieh WebItemProviderPasteboard should call its completion block immediately after a synchronous load https://bugs.webkit.org/show_bug.cgi?id=173225 Reviewed by Tim Horton. Adds a new unit test to verify whether the completion block is called synchronously or asynchronously, in both cases where the synchronous timeout is very large, and the synchronous timeout is not used (0). * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-06-12 Jonathan Bedard Return correct process names for iOS on-device testing https://bugs.webkit.org/show_bug.cgi?id=173263 Reviewed by Alex Christensen. When running tests on iOS devices, process names do not end with '.Development' as they do on Mac and iOS simulator. * WebKitTestRunner/TestController.cpp: (WTR::TestController::webProcessName): Return correct process name without '.Development' for iOS on-device testing. (WTR::TestController::networkProcessName): Ditto. (WTR::TestController::databaseProcessName): Ditto. 2017-06-12 Chris Dumez Regression(r217867): Legacy SessionHistoryEntryData format should not change https://bugs.webkit.org/show_bug.cgi?id=173267 Reviewed by Simon Fraser. Restrict test to stop covering saving / restore of scrollRestoration via the legacy SessionHistoryEntryData. Maintain coverage for the default value of scrollRestoration though as this covers the crash that r217867 was fixing. * TestWebKitAPI/Tests/WebKit2/RestoreSessionState.cpp: (TestWebKitAPI::createSessionStateData): (TestWebKitAPI::TEST): (TestWebKitAPI::createSessionStateDataContainingScrollRestoration): Deleted. 2017-06-12 Carlos Garcia Campos [GTK] Stop dismissing menus attached to the web view for every injected event https://bugs.webkit.org/show_bug.cgi?id=172708 Reviewed by Alex Christensen. It's a workaround we added in r184015 that has worked so far for the context menu, but doesn't really work now that we also attach popup menus to the web view. We really need to be able to show a popup menu, and then send events while the menu is open. * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: (WTR::EventSendingController::contextClick): Use WKBundlePageCopyContextMenuAtPointInWindow() also in GTK+ port. * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp: (WTR::EventSenderProxy::dispatchEvent): Stop calling PlatformWebView::dismissAllPopupMenus(). 2017-06-12 Miguel Gomez [GTK][WPE] Enable GStreamer GL on development builds https://bugs.webkit.org/show_bug.cgi?id=173248 Enable GStreamer GL for GTK and WPE. Reviewed by Carlos Garcia Campos. * Scripts/webkitperl/FeatureList.pm: 2017-06-12 Carlos Garcia Campos Unreviewed. Fix GTK+ test /webkit2/WebKitWebView/notification after r216641. Notifications are no longer cleared on page navigation. * TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp: (testWebViewNotification): 2017-06-11 Carlos Garcia Campos Unreviewed. Fix GTK+ test /webkit2/WebKitAutomationSession/request-session after r217831. DBus interface and object path names were updated in r217831. * TestWebKitAPI/Tests/WebKit2Gtk/TestAutomationSession.cpp: 2017-06-10 Dan Bernstein Reverted r218056 because it made the IDE reindex constantly. * ContentExtensionTester/Configurations/DebugRelease.xcconfig: * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: * ImageDiff/cg/Configurations/DebugRelease.xcconfig: * MiniBrowser/Configurations/DebugRelease.xcconfig: * MobileMiniBrowser/Configurations/DebugRelease.xcconfig: * TestWebKitAPI/Configurations/DebugRelease.xcconfig: * WebEditingTester/Configurations/DebugRelease.xcconfig: * WebKitTestRunner/Configurations/DebugRelease.xcconfig: 2017-06-10 Dan Bernstein [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE https://bugs.webkit.org/show_bug.cgi?id=173223 Reviewed by Sam Weinig. The rebuilds were happening due to a difference in the compiler options that the IDE and xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and specify an appropriate path in CLANG_INDEX_STORE_PATH. * ContentExtensionTester/Configurations/DebugRelease.xcconfig: * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: * ImageDiff/cg/Configurations/DebugRelease.xcconfig: * MiniBrowser/Configurations/DebugRelease.xcconfig: * MobileMiniBrowser/Configurations/DebugRelease.xcconfig: * TestWebKitAPI/Configurations/DebugRelease.xcconfig: * WebEditingTester/Configurations/DebugRelease.xcconfig: * WebKitTestRunner/Configurations/DebugRelease.xcconfig: 2017-06-10 Jonathan Bedard webkitpy: Reduce polling in ServerProcess https://bugs.webkit.org/show_bug.cgi?id=173116 Reviewed by Ryosuke Niwa. We should be smarter about polling. We do not need to poll every time a line is read from stdout and stderr since lines are usually read from cached data. We should only poll when extracting that cached data from stdout and stderr. * Scripts/webkitpy/port/driver.py: (Driver._read_block): Rely on output of the ServerProcess to detect a crash or a timeout and on ServerProcess to poll the process if not data is available in stdout and stderr. * Scripts/webkitpy/port/driver_unittest.py: (DriverTest.test_read_block_crashed_process): Test that the Driver will handle a crashing ServerProcess. * Scripts/webkitpy/port/server_process.py: (ServerProcess._read): Allow for data to be read from _output even if the process has crashed. Only poll the process if data needs to be extracted from stdout or stderr. * Scripts/webkitpy/port/server_process_mock.py: (MockServerProcess): Add number_of_times_polled. (MockServerProcess.poll): Increment number_of_times_polled. (MockServerProcess.has_crashed): Poll before returning crash state. (MockServerProcess.read_stdout_line): MockServerProcess should return None if it has crashed, just like a ServerProcess would. (MockServerProcess.read_stdout): Ditto. * Scripts/webkitpy/port/server_process_unittest.py: (TestServerProcess.test_basic): Use stdin.readline() instead of time.sleep() to prevent the process from ending before stdout and stderr are read. This is the reason this test was flakey. (TestServerProcess): (TestServerProcess.test_process_crashing): Test that when a process crashes, data can be read until the processes is polled. (TestServerProcess.test_process_crashing_no_data): Test that when a process which has not output any data to stdout and stderr crashes, ServerProcess._read(...) polls the process to detect the crash. 2017-06-10 Andy Estes [QuickLook] PreviewLoader needs to check if its ResourceLoader has reached the terminal state before calling didReceiveResponse() and friends https://bugs.webkit.org/show_bug.cgi?id=173190 Reviewed by Brady Eidson. Added a release assert that tries to create a proper test failure if the web process crashes. * TestWebKitAPI/Tests/WebKit2Cocoa/QuickLook.mm: (-[QuickLookDecidePolicyDelegate _webViewWebProcessDidCrash:]): 2017-06-09 Wenson Hsieh [iOS DnD] Add a hook to perform two-step drops in editable content https://bugs.webkit.org/show_bug.cgi?id=172992 Reviewed by Tim Horton. Adds 2 new API tests to cover using the injected editing bundle to override performTwoStepDrop. Tests: DataInteractionTests.InjectedBundleOverridePerformTwoStepDrop DataInteractionTests.InjectedBundleAllowPerformTwoStepDrop * TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegatePlugIn.mm: (-[BundleEditingDelegatePlugIn webProcessPlugIn:didCreateBrowserContextController:]): (-[BundleEditingDelegatePlugIn _webProcessPlugInBrowserContextController:performTwoStepDrop:atDestination:isMove:]): Allow the BundleOverridePerformTwoStepDrop bundle parameter to determine whether or not two-step drops should be overridden. Currently, this is overridden to just return true. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::InjectedBundlePage::InjectedBundlePage): 2017-06-09 Zan Dobersek [WPE] Enable ENCRYPTED_MEDIA for build-webkit builds https://bugs.webkit.org/show_bug.cgi?id=173103 Reviewed by Xabier Rodriguez-Calvar. * Scripts/webkitperl/FeatureList.pm: Enable ENCRYPTED_MEDIA flag when building the WPE port through build-webkit. 2017-06-09 Zan Dobersek [WPE] Enable MEDIA_SOURCE for build-webkit builds https://bugs.webkit.org/show_bug.cgi?id=173136 Reviewed by Xabier Rodriguez-Calvar. * Scripts/webkitperl/FeatureList.pm: Enable the MEDIA_SOURCE feature for WPE. 2017-06-08 Carlos Garcia Campos [GTK] Use API::FormClient instead of the C API in WebKitFormClient https://bugs.webkit.org/show_bug.cgi?id=173098 Reviewed by Žan Doberšek. Fix memory leak and runtime warning when running /webkit2/WebKitWebView/submit-form. The web extension is assuming that all tests containing forms define ids for the form elements like /webkit2/WebKitWebExtension/form-controls-associated-signal does. * TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp: (formControlsAssociatedCallback): 2017-06-08 Jonathan Bedard webkitpy: Run sample/spindump on iOS devices https://bugs.webkit.org/show_bug.cgi?id=171881 Reviewed by Daniel Bates. * Scripts/webkitpy/port/darwin.py: (DarwinPort.sample_process): Only add sudo prefix if the platform is Mac, which requires sudo to run spindump. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.look_for_new_samples): Deleted. (IOSDevicePort.sample_process): Deleted. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest): iOS devices use 'ios' and their os_name. (IOSDeviceTest.test_spindump): (IOSDeviceTest.test_sample_process): (IOSDeviceTest.test_sample_process_exception): * Scripts/webkitpy/port/ios_simulator_unittest.py: (IOSSimulatorTest): iOS Simulators run on Mac and use 'mac' as their os_name. 2017-06-08 Keith Miller WebAssembly: We should only create wrappers for functions that can be exported https://bugs.webkit.org/show_bug.cgi?id=173088 Reviewed by Saam Barati. Add quick mode for wasm tests. * Scripts/run-jsc-stress-tests: 2017-06-08 Darin Adler WTF tests have incorrect RefLogger lifetimes making it impossible to test with Address Sanitizer https://bugs.webkit.org/show_bug.cgi?id=173106 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WTF/HashCountedSet.cpp: Define RefLogger objects first, so they are destroyed last. * TestWebKitAPI/Tests/WTF/HashMap.cpp: Ditto. * TestWebKitAPI/Tests/WTF/HashSet.cpp: Ditto. 2017-06-07 Dan Bernstein [Cocoa] additionalReadAccessAllowedURLs doesn’t preserve non-Latin1 paths https://bugs.webkit.org/show_bug.cgi?id=173086 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLs.mm: (TEST): 2017-06-07 Alexey Proskuryakov Add High Sierra support to WebKit tools https://bugs.webkit.org/show_bug.cgi?id=173080 Rubber-stamped by Daniel Bates. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/HighSierra.png: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/HighSierra@2x.png: Added. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css: Added dashboard support. * BuildSlaveSupport/build.webkit.org-config/wkbuild.py: * BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py: Trigger the right build queues on check-in. * Scripts/webkitpy/common/system/platforminfo.py: * Scripts/webkitpy/common/system/platforminfo_unittest.py: * Scripts/webkitpy/layout_tests/models/test_expectations.py: * Scripts/webkitpy/port/mac.py: * Scripts/webkitpy/port/mac_unittest.py: * TestResultServer/static-dashboards/flakiness_dashboard.js: Added cases for Sierra, and updated tests for new baseline search paths. 2017-06-07 Ryan Haddad Unreviewed, rolling out r217902. This change appears to have caused imported/w3c/web-platform- tests/fetch/api/cors tests to fail on El Capitan. Reverted changeset: "Teach run-webkit-tests how to run HTTPS Web Platform Tests" https://bugs.webkit.org/show_bug.cgi?id=172930 http://trac.webkit.org/changeset/217902 2017-06-07 Daniel Bates Teach run-webkit-tests how to run HTTPS Web Platform Tests https://bugs.webkit.org/show_bug.cgi?id=172930 Reviewed by Youenn Fablet. Some web platform tests need to be run from an HTTPS server in order to exercise functionality that is conditioned on the page being delivered over a secure protocol. One example of such a test is LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html. Ideally we should look to use wptrunner to run Web Platform Tests. For now, modify run-webkit-tests to access web platform tests from an HTTPS server when the filename of the test contains ".https.". This makes run-webkit-test match the behavior of wptrunner: . * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (https_base_url): Parses the Web Platform Tests JSON configuration and returns the base URL to the Web Platform Tests HTTPS server. * Scripts/webkitpy/port/base.py: (Port.to.web_platform_test_server_https_base_url): Turns around and calls https_base_url(). * Scripts/webkitpy/port/driver.py: (Driver.__init__): Caches the base URL to the Web Platform Tests HTTPS server. Also rename instance variables web_platform_test_server_doc_root, web_platform_test_server_base_url to _web_platform_test_server_doc_root and _web_platform_test_server_base_url, respectively to indicate that they should be considered private instance variables. (Driver.is_web_platform_test): Update code for renamed instance variables. (Driver): (Driver._web_platform_test_base_url_for_test): Returns the URL to access the specified test. (Driver.test_to_uri): Modified to use Driver._web_platform_test_base_url_for_test() to determine the base URL to use to access the test. (Driver.uri_to_test): Added logic to compute the filesystem local test name from a Web Platform Tests HTTPS URL. Also updated code for renamed instance variables. 2017-06-07 Per Arne Vollan Support removal of authentication data through the Website data store API. https://bugs.webkit.org/show_bug.cgi?id=171217 Reviewed by Brady Eidson. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::removeAllSessionCredentials): (WTR::TestRunner::callDidRemoveAllSessionCredentialsCallback): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): (WTR::TestInvocation::didRemoveAllSessionCredentials): * WebKitTestRunner/TestInvocation.h: * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::removeAllSessionCredentials): 2017-06-07 Charlie Turner Add Charlie Turner as contributor https://bugs.webkit.org/show_bug.cgi?id=173055 Reviewed by Carlos Alberto Lopez Perez. I also ran the Tools/Scripts/validate-committer-lists --canonicalize command at the suggestion of webkit-patch upload, which reordered some fields and removed a newline. * Scripts/webkitpy/common/config/contributors.json: 2017-06-06 Chris Dumez RELEASE_ASSERT(static_cast(enumerationValue) < WTF_ARRAY_LENGTH(values)) hit in convertEnumerationToJS() https://bugs.webkit.org/show_bug.cgi?id=173033 Reviewed by Simon Fraser. Add API test coverage to make sure History's scrollRestoration is properly saved / restored via the WKPageCopySessionState() / WKPageRestoreFromSessionState() C API. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/RestoreSessionState.cpp: Added. (TestWebKitAPI::didFinishLoadForFrame): (TestWebKitAPI::setPageLoaderClient): (TestWebKitAPI::createSessionStateDataContainingScrollRestoration): (TestWebKitAPI::TEST): 2017-06-06 Andy Estes REGRESSION (r199558): WKWebView upload file which name contains Chinese character results in garbled code https://bugs.webkit.org/show_bug.cgi?id=172849 Reviewed by Darin Adler. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/RunOpenPanel.mm: Added. (-[RunOpenPanelUIDelegate webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]): (TestWebKitAPI::TEST): 2017-06-06 Yoav Weiss [preload] Conditional support for media preloading and align media `as` values. https://bugs.webkit.org/show_bug.cgi?id=172501 Reviewed by Dean Jackson. Turn on media preloading preference for tests. * DumpRenderTree/mac/DumpRenderTree.mm: Turn on media preloading preference. * DumpRenderTree/win/DumpRenderTree.cpp: Turn on media preloading preference. * WebKitTestRunner/TestController.cpp: Turn on media preloading preference. 2017-06-06 Jonathan Bedard webkitpy: Return correct process names from SimulatorProcess https://bugs.webkit.org/show_bug.cgi?id=172940 Reviewed by Aakash Jain. * Scripts/webkitpy/port/darwin.py: (DarwinPort.plist_data_from_bundle): Share plist access code for accessing different plist entries. (DarwinPort.app_identifier_from_bundle): Use plist_data_from_bundle. (DarwinPort.app_executable_from_bundle): Access name of app executable from provided app bundle. * Scripts/webkitpy/port/driver.py: (Driver.has_crashed): Use _server_process.process_name() instead of _server_process.name() since _server_process.name() will not return the correct process name for iOS. (Driver._check_for_driver_crash_or_unresponsiveness): Ditto. (Driver._read_block): Ditto. * Scripts/webkitpy/port/driver_unittest.py: (DriverTest.test_check_for_driver_crash.FakeServerProcess.process_name): Update since Driver uses process_name() instead of name(). * Scripts/webkitpy/port/server_process.py: (ServerProcess._start): Use process_name() instead of name(). (ServerProcess.stop): Ditto. (ServerProcess.name): Deleted. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess.process_name): Check the provided bundle for the process name. 2017-06-06 Dean Johnson test-webkitpy: stop forking unsafely from within a spawned process https://bugs.webkit.org/show_bug.cgi?id=172774 Reviewed by Darin Adler. * Scripts/webkitpy/common/net/buildbot/buildbot.py: (Builder.__init__): We don't use mechanize.Browser() as part of testing, so only initialize it when it's going to be used. (Builder.force_build): 2017-06-06 Jonathan Bedard webkitpy: Process crash-logs for iOS devices https://bugs.webkit.org/show_bug.cgi?id=171976 Reviewed by David Kilzer. When running layout tests on an iOS device, crash logs should be processed. Implement crash log searching and parsing for iOS devices. * Scripts/webkitpy/common/system/crashlogs.py: (CrashLogs): Moved process regular expression for Darwin to class variable. (CrashLogs.__init__): Accept optional list of crash logs to ignore. (CrashLogs.find_newest_log): Add iOS as a potential platform. (CrashLogs.find_all_logs): Ditto. (CrashLogs._parse_darwin_crash_log): Share code for parsing of Darwin crash logs. Do not assume that a Darwin crash log starts with the process. (CrashLogs._find_newest_log_darwin): Remove .app in process name for iOS, use shared code for parsing Darwin crash logs. (CrashLogs._find_newest_log_darwin.is_crash_log): Skip crash logs passed into this object so that crash logs already on the system before testing are not parsed. (CrashLogs._find_newest_log_win.is_crash_log): Ditto. (CrashLogs._find_all_logs_darwin.is_crash_log): Ditto. (CrashLogs._find_all_logs_darwin): Use shared code for parsing Darwin crash logs. * Scripts/webkitpy/common/system/crashlogs_unittest.py: (make_mock_crash_report_darwin): Crash logs may not have their process on the first line. * Scripts/webkitpy/common/system/systemhost.py: (SystemHost.symbolicate_crash_log_if_needed): The symbolicated crash log for most systems is just the crashlog, use this behavior by default. * Scripts/webkitpy/common/system/systemhost_mock.py: (MockSystemHost.symbolicate_crash_log_if_needed): The symbolicated crash log for most systems is just the crashlog, use this behavior by default. * Scripts/webkitpy/port/apple.py: (ApplePort): Add a dictionary mapping hosts to a list of crash logs to be skipped. (ApplePort.setup_test_run): Set the list of crash logs to be skipped to the crash logs on the system before testing begins * Scripts/webkitpy/port/base.py: (Port._get_crash_log): Pass optional target host when getting crash logs. * Scripts/webkitpy/port/darwin.py: (DarwinPort._look_for_all_crash_logs_in_log_dir): Pass list of crash logs to be skipped to CrashLogs object. (DarwinPort._get_crash_log): Pass optional target host when getting crash logs, pass list of crash logs to be skipped to CrashLogs object. * Scripts/webkitpy/port/darwin_testcase.py: (DarwinTest.test_get_crash_log): Removed unused local function. (DarwinTest.test_get_crash_log.fake_time_cb): Deleted. * Scripts/webkitpy/port/device.py: (Device.symbolicate_crash_log_if_needed): If the platform device has a function with this name, call it. Otherwise, assume the default behavior and read the file at the provided path. * Scripts/webkitpy/port/driver.py: (Driver._get_crash_log): Pass optional target host when getting crash logs. * Scripts/webkitpy/port/gtk.py: (GtkPort._get_crash_log): Pass optional target host when getting crash logs. * Scripts/webkitpy/port/ios.py: Ditto. (IOSPort.setup_test_run): Each device is treated as an independent host. Set the list of crash logs to be skipped for each host. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.path_to_crash_logs): Consult apple_additions for the path to crash logs. (IOSDevicePort._look_for_all_crash_logs_in_log_dir): Search every connected device for crash logs and pass list of crash logs to ignore to each instance of CrashLogs. (IOSDevicePort._get_crash_log): Search the specified target host for a crash log if a target host is specified. Else, search all connected devices for the specified crash-log. (IOSDevicePort.look_for_new_crash_logs): Deleted. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest.test_crashlog_path): Without apple_additions, an exception should be raised. (IOSDeviceTest.test_get_crash_log): Ditto. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess.process_name): Check the provided bundle for the process name. * Scripts/webkitpy/port/win.py: (WinPort._get_crash_log): Pass optional target host when getting crash logs, pass list of crash logs to be skipped to CrashLogs object. * Scripts/webkitpy/port/wpe.py: (WPEPort._get_crash_log): Pass optional target host when getting crash logs. 2017-06-06 David Kilzer Move WTF_ATTRIBUTE_PRINTF() from implementation to declaration Reviewed by Darin Adler. WTF_ATTRIBUTE_PRINTF() only works outside the current compilation unit if it's on the declaration, not the implementation, of a function or class method. * DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp: * DumpRenderTree/TestNetscapePlugIn/PluginObject.h: * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: - Move WTF_ATTRIBUTE_PRINTF() macro to declaration. * DumpRenderTree/TestNetscapePlugIn/main.cpp: - Remove redundant CRASH() macro definition. Use the one from instead. 2017-06-06 Joseph Pecoraro Move Resource Timing / User Timing from experimental features into main preferences https://bugs.webkit.org/show_bug.cgi?id=172950 Reviewed by Darin Adler. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): (resetWebPreferencesToConsistentValues): * DumpRenderTree/win/DumpRenderTree.cpp: (enableExperimentalFeatures): (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): Move out no longer experimental features to the main list. 2017-06-06 Carlos Alberto Lopez Perez [WPE] Add an install-dependencies script https://bugs.webkit.org/show_bug.cgi?id=172948 Reviewed by Žan Doberšek. It is based on the gtk/install-dependencies script. Includes support for Debian based distrubutions, Fedora and Arch. It has been tested on a minimal Debian 9 chroot. * wpe/install-dependencies: Added. 2017-06-05 Wenson Hsieh Refactor -[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:] to check readable types https://bugs.webkit.org/show_bug.cgi?id=172891 Reviewed by Darin Adler. Adds 2 new API tests to exercise data interaction of HTML data and an attributed string into a rich contenteditable. See WebCore ChangeLog for more details. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-06-05 Daniel Bates webkitpy: Abstract Executive class https://bugs.webkit.org/show_bug.cgi?id=172928 Reviewed by Ryosuke Niwa. Adds an AbstractExecutive class and makes Executive extend AbstractExecutive. This will make it straightforward to create additional derived classes that adhere to the same interface, say for iOS on-device testing. * Scripts/webkitpy/common/system/abstractexecutive.py: Added. (AbstractExecutive): (AbstractExecutive.run_and_throw_if_fail): (AbstractExecutive.cpu_count): (AbstractExecutive.interpreter_for_script): (AbstractExecutive.shell_command_for_script): (AbstractExecutive.kill_process): (AbstractExecutive.check_running_pid): (AbstractExecutive.running_pids): (AbstractExecutive.wait_newest): (AbstractExecutive.wait_limited): (AbstractExecutive.interrupt): (AbstractExecutive.default_error_handler): (AbstractExecutive.ignore_error): (AbstractExecutive._stringify_args): (AbstractExecutive.command_for_printing): (AbstractExecutive.run_command): (AbstractExecutive.popen): (AbstractExecutive.run_in_parallel): * Scripts/webkitpy/common/system/executive.py: (Executive): (Executive.cpu_count): (Executive.running_pids): (Executive.kill_all): (Executive._compute_stdin): (Executive.interpreter_for_script): Deleted. (Executive.shell_command_for_script): Deleted. (Executive.wait_newest): Deleted. (Executive.wait_limited): Deleted. (Executive.default_error_handler): Deleted. (Executive.ignore_error): Deleted. (Executive.command_for_printing): Deleted. 2017-06-05 Jonathan Bedard webkitpy: Add iOS to platform https://bugs.webkit.org/show_bug.cgi?id=172931 Reviewed by Daniel Bates. * Scripts/webkitpy/common/system/platforminfo.py: PlatformInfo.__init__): Use platform_module.release() as the os_version for iOS device. (PlatformInfo.is_ios): Added. (PlatformInfo._determine_os_name): A platform name of 'ios' means that the os name is 'ios'. * Scripts/webkitpy/common/system/platforminfo_mock.py: (MockPlatformInfo.is_ios): Added. 2017-06-05 Carlos Alberto Lopez Perez [WPE][JHBuild] Switch github repository from git:// to https:// https://bugs.webkit.org/show_bug.cgi?id=172921 Reviewed by Alex Christensen. * wpe/jhbuild.modules: 2017-06-05 Tim Horton ASSERTION FAILED: m_currentScriptCallbackID in UIScriptContext::requestUIScriptCompletion(JSStringRef) running fast/events/ios/autocorrect-with-range-selection.html https://bugs.webkit.org/show_bug.cgi?id=172887 Reviewed by Sam Weinig. * WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::applyAutocorrection): applyAutocorrection can call its completion handler synchronously, which makes UIScriptController unhappy (see bug 172884). 2017-06-03 Jonathan Bedard webkitpy: Add contextmanager to disable logging for a block https://bugs.webkit.org/show_bug.cgi?id=172876 Reviewed by Daniel Bates. Add a context manager which will use an OutputCapture object to capture logging in a block and hold it in a variable. * Scripts/webkitpy/common/system/outputcapture.py: (OutputCaptureScope): (OutputCaptureScope.__init__): Construct with OutputCapture object. (OutputCaptureScope.__enter__): Begin capturing output. (OutputCaptureScope.__exit__): Restore output and save captured output to a variable. output and retain the resulting log. * Scripts/webkitpy/common/system/outputcapture_unittest.py: (OutputCaptureTest.test_output_capture_scope): Added. 2017-06-02 Zalan Bujtas Cleanup FrameView::autoSizeIfEnabled. https://bugs.webkit.org/show_bug.cgi?id=172889 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/AutoLayoutIntegration.mm: (-[AutoLayoutWKWebView load:withWidth:expectingContentSize:resettingWidth:]): progression. (TEST): 2017-06-02 Chris Dumez ResourceLoadStatistics are not using unique paths during test runs https://bugs.webkit.org/show_bug.cgi?id=172861 Reviewed by Darin Adler. Make sure WebKitTestRunner sets a temporary path for saving resource load statistics. * WebKitTestRunner/TestController.cpp: (WTR::TestController::generateContextConfiguration): 2017-06-02 Brady Eidson Prevent scheme handlers from handling all built-in URL schemes. and https://bugs.webkit.org/show_bug.cgi?id=172869 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: 2017-06-02 Stephan Szabo [JSCOnly] Build static jsc.exe on Windows https://bugs.webkit.org/show_bug.cgi?id=172833 Reviewed by Konstantin Tokarev. * CMakeLists.txt: * Scripts/build-jsc: 2017-06-02 Zalan Bujtas Disable ViewportSizeForViewportUnits tests on iOS. https://bugs.webkit.org/show_bug.cgi?id=172872 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2/ViewportSizeForViewportUnits.mm: 2017-06-02 Zalan Bujtas Allow clients to override viewport size for CSS viewport units. https://bugs.webkit.org/show_bug.cgi?id=172838 Reviewed by Tim Horton. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/ViewportSizeForViewportUnits.mm: Added. (TEST): 2017-06-02 Simon Fraser Get out of StdLibExtras.h https://bugs.webkit.org/show_bug.cgi?id=172744 Reviewed by Zalan Bujtas. * TestWebKitAPI/Tests/WTF/WorkQueue.cpp: 2017-06-02 Zan Dobersek [WPE] Enable SUBTLE_CRYPTO https://bugs.webkit.org/show_bug.cgi?id=172756 Reviewed by Michael Catanzaro. * Scripts/webkitperl/FeatureList.pm: Set ENABLE_SUBTLE_CRYPTO to 1 for WPE. * wpe/jhbuild.modules: Add libgpg-error and libgcrypt dependencies. * wpe/patches/libgcrypt-use-only-dev-urandom-for-testing.patch: Added. Prevents exhausting entropy when running the crypto layout tests. 2017-06-01 Carlos Garcia Campos [GTK] Bump GTK+ and its dependencies in jhbuild https://bugs.webkit.org/show_bug.cgi?id=171918 Reviewed by Carlos Alberto Lopez Perez. * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp: (WTR::initializeGtkSettings): * gtk/jhbuild.modules: * gtk/patches/gtk+-configure-fix-detecting-CUPS-2.x.patch: Removed. * gtk/patches/librsvg-2.36.1-bump-up-config.guess-to-support-aarch64.patch: Removed. 2017-06-01 Carlos Garcia Campos [GTK] Bump wayland and weston in jhbuild https://bugs.webkit.org/show_bug.cgi?id=171921 Reviewed by Carlos Alberto Lopez Perez. * gtk/jhbuild.modules: * gtk/patches/weston-libweston-include-weston-egl-ext.h-in-drm-x11-and-wa.patch: Added. 2017-06-01 Andy Estes REGRESSION (r217626): ENABLE_APPLE_PAY_SESSION_V3 was disabled by mistake https://bugs.webkit.org/show_bug.cgi?id=172828 Reviewed by Beth Dakin. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-06-01 Jonathan Bedard webkitpy: Remove unneeded simulator teardown https://bugs.webkit.org/show_bug.cgi?id=171891 Reviewed by Aakash Jain. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.clean_up_test_run): Remove FIFO deletion since TCP is used for communication between Python and WebKitTestRunner/DumpRenderTree. 2017-06-01 Keith Miller Undo rollout in r217638 with bug fix https://bugs.webkit.org/show_bug.cgi?id=172824 Unreviewed, reland patch with unused set_state code removed. * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: (runThreadMessageTest): (TEST): 2017-06-01 Jonathan Bedard webkitpy: Do not send 0 or -1 as a pid to kill_process https://bugs.webkit.org/show_bug.cgi?id=172818 Reviewed by Darin Adler. Sending a signal to process 0 will result in all processes in the group receiving the signal. Sending a signal to process -1 will result in all non-system processes receiving the signal. Both Executive.kill_process and Executive.check_running_pid should consider these cases * Scripts/webkitpy/common/system/executive.py: (Executive.kill_process): Throw exception if pid is undefined, 0 or negative. (Executive.check_running_pid): An undefined pid, pid 0 or a negative pid will never be running, although os.kill may succeed. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess.stop): Do not kill process if it is undefined. 2017-05-31 Alexey Proskuryakov JSC EWS bot does not run on WTF only patches https://bugs.webkit.org/show_bug.cgi?id=172777 rdar://problem/32495975 Reviewed by Aakash Jain. * Scripts/webkitpy/tool/steps/checkpatchrelevance.py: (CheckPatchRelevance): Add a missing comma. 2017-05-31 Commit Queue Unreviewed, rolling out r217611 and r217631. https://bugs.webkit.org/show_bug.cgi?id=172785 "caused wasm-hashset-many.html to become flaky." (Requested by keith_miller on #webkit). Reverted changesets: "Reland r216808, underlying lldb bug has been fixed." https://bugs.webkit.org/show_bug.cgi?id=172759 http://trac.webkit.org/changeset/217611 "Use dispatch queues for mach exceptions" https://bugs.webkit.org/show_bug.cgi?id=172775 http://trac.webkit.org/changeset/217631 2017-05-31 Ryan Haddad EWS bots should reboot themselves more frequently https://bugs.webkit.org/show_bug.cgi?id=172402 Reviewed by Alexey Proskuryakov. Instead of rebooting once a day, EWS bots will reboot after running 10 iterations. * EWSTools/start-queue-mac.sh: Remove the restriction placed on the time that the bot will perform a reboot. 2017-05-31 Ryan Haddad Reallocate hardware for iOS bots. https://bugs.webkit.org/show_bug.cgi?id=172657 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/config.json: 2017-05-31 Andy Estes Rename ENABLE_APPLE_PAY_DELEGATE to ENABLE_APPLE_PAY_SESSION_V3 and bump the supported version number https://bugs.webkit.org/show_bug.cgi?id=172366 Reviewed by Daniel Bates. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-05-31 Jiewen Tan Unreviewed, add Jiewen Tan as a reviewer * Scripts/webkitpy/common/config/contributors.json: 2017-05-31 Adrian Perez de Castro [GTK] MiniBrowser's browser_window_get_or_create_web_view_for_automation never creates new windows https://bugs.webkit.org/show_bug.cgi?id=172770 Reviewed by Michael Catanzaro. * MiniBrowser/gtk/BrowserWindow.c: (browser_window_get_or_create_web_view_for_automation): Removed stray semicolon which caused the body of the if-clause to be accidentally empty. 2017-05-31 Keith Miller Reland r216808, underlying lldb bug has been fixed. https://bugs.webkit.org/show_bug.cgi?id=172759 Unreviewed, relanding old patch. See: rdar://problem/31183352 * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: (runThreadMessageTest): (TEST): 2017-05-31 Matt Lewis Unreviewed, rolling out r217603. This patch broke the internal builds. Reverted changeset: "Get out of StdLibExtras.h" https://bugs.webkit.org/show_bug.cgi?id=172744 http://trac.webkit.org/changeset/217603 2017-05-31 Brent Fulgham Make ResourceLoadStatistics testing more reliable https://bugs.webkit.org/show_bug.cgi?id=172730 Reviewed by Andy Estes. When we tell the UIProcess (WebKitTestRunner) to notify the system about statistics update notifications, we also need to tell the WebProcess to do so, too, or else the test system doesn't get messages. * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsNotifyPagesWhenDataRecordsWereScanned): 2017-05-31 Carlos Alberto Lopez Perez [GTK][WPE] run-javascriptcore-tests should use the jhbuild https://bugs.webkit.org/show_bug.cgi?id=172757 Reviewed by Xabier Rodriguez-Calvar. When needed, add the jhbuild wrapper at the beginning of the array that will be invoked to execute the run-jsc-stress-test or testapi commands. * Scripts/run-javascriptcore-tests: (runJSCStressTests): * Scripts/webkitdirs.pm: (shouldUseJhbuild): 2017-05-31 Simon Fraser Get out of StdLibExtras.h https://bugs.webkit.org/show_bug.cgi?id=172744 Reviewed by Saam Barati. * TestWebKitAPI/Tests/WTF/WorkQueue.cpp: 2017-05-30 Tim Horton Keyboard autocorrections do not apply with an active selection (but keyboard acts like they did) https://bugs.webkit.org/show_bug.cgi?id=172735 Reviewed by Enrica Casucci. * DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::applyAutocorrection): * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: * TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::applyAutocorrection): * TestRunnerShared/UIScriptContext/UIScriptController.h: * WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::applyAutocorrection): Expose applyAutocorrection to UIScriptController. Use a WKTesting method because I don't know how to tap the button in the autocorrection bar from a test. 2017-05-30 Daniel Bates Add unit test for WebKit2 C SPI runBeforeUnloadConfirmPanel() https://bugs.webkit.org/show_bug.cgi?id=172671 Reviewed by Alex Christensen. We should add a unit test to ensure we do not regress the WKPageUIClient runBeforeUnloadConfirmPanel() callback. For completeness, the callback runBeforeUnloadConfirmPanel() existed since inception of WKPageUIClient (WKPageUIClientV0). * TestWebKitAPI/Tests/WebKit2/ModalAlertsSPI.cpp: (TestWebKitAPI::analyzeDialogArguments): Test the runBeforeUnloadConfirmPanel() callback last as we need to trigger a navigation to test it. (TestWebKitAPI::runBeforeUnloadConfirmPanel): Added. (TestWebKitAPI::createNewPage): Wire up the runBeforeUnloadConfirmPanel callback. 2017-05-30 Jonathan Bedard webkitpy: Start servers before setting-up for testing https://bugs.webkit.org/show_bug.cgi?id=172176 Reviewed by Alexey Proskuryakov. On-device testing requires that servers are started before ports set-up their test environments. * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: (LayoutTestRunner.__init__): Start servers when initializing LayoutTestRunner. Servers are unconditionally stopped on exit. (LayoutTestRunner.run_tests): Move the starting of servers to the initializer. The Manager now stops servers. (LayoutTestRunner.start_servers): Set flag to indicate servers are running. (LayoutTestRunner.stop_servers): Check flag, only shutdown servers if they are shutdown. * Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager.__init__): Delay construction of the test runner until we can determine if servers need to be started. (Manager.run): Determine if servers need to be started and construct the test runner. Shut servers down when the test run is finished. (Manager._run_tests): Move the determination of servers to run into Manager.run. * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (is_wpt_server_running): Server is not running if no config is found. * Scripts/webkitpy/layout_tests/servers/websocket_server.py: (PyWebSocket.is_running): Check if this WebSocket server is running. * Scripts/webkitpy/port/base.py: (Port.__init__): Define secure WebSocket server. (Port.to.is_websocket_server_running): Check if WebSocket servers are defined. 2017-05-30 Daniel Bates [WK2] Add runBeforeUnloadConfirmPanel WKUIDelegate SPI; support onbeforeunload confirm panel in MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=172603 Reviewed by Brady Eidson. Implement the -_webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler: delegate method in MiniBrowser to show a confirm panel as to whether to allow the unloading of the page when unloading is initiated for a page that registered a onbeforeunload handler. Modify TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm to test that the -_webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler: is called. Also fix style nit; pass YES instead of true to avoid implicit conversion from bool to BOOL when invoking the completion handler in -_webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:. Until we fix the unit test in TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm for -_webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler: is only run on Mac as we do not have the infrastructure to simulate a click/tap on iOS and a click/tap on the page that registered an onbeforeunload handler is required to show a confirm panel when the page will be unloaded. * MiniBrowser/mac/WK2BrowserWindowController.m: (-[WK2BrowserWindowController _webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler:]): * TestWebKitAPI/Tests/WebKit2/modal-alerts-in-new-about-blank-window.html: * TestWebKitAPI/Tests/WebKit2Cocoa/ModalAlerts.mm: (sawDialog): (-[ModalAlertsUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (-[ModalAlertsUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:completionHandler:]): (-[ModalAlertsUIDelegate _webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler:]): 2017-05-30 Alex Christensen Update libwebrtc configuration https://bugs.webkit.org/show_bug.cgi?id=172727 Reviewed by Geoffrey Garen. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-05-30 Fujii Hironori [WinCairo] TestWebKitAPI: ASSERTION FAILED: m_eglDisplay == EGL_NO_DISPLAY https://bugs.webkit.org/show_bug.cgi?id=172702 Reviewed by Alex Christensen. EGL PlatformDisplay needs to be shut down before existing a program on Windows. * TestWebKitAPI/Tests/WebKit/win/ScaleWebView.cpp: (TestWebKitAPI::ScaleWebView::TearDown): Call shutDownWebKit(). * TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp: (TestWebKitAPI::WebViewDestruction::TearDown): Ditto. 2017-05-30 Per Arne Vollan [Win] fast/shadow-dom/fullscreen-in-slot-fullscreenElement.html is flaky. https://bugs.webkit.org/show_bug.cgi?id=172709 Reviewed by Brent Fulgham. Exit fullscreen mode after a fullscreen test. * DumpRenderTree/win/DumpRenderTree.cpp: (resetWebViewToConsistentStateBeforeTesting): 2017-05-30 Antti Koivisto ASSERTION FAILED: !needsLayout() in com.apple.WebCore: WebCore::FrameView::paintContents in fast/events/tabindex-focus-blur-all.html on WK1 https://bugs.webkit.org/show_bug.cgi?id=172713 Reviewed by Zalan Bujtas. * DumpRenderTree/mac/ResourceLoadDelegate.mm: (-[ResourceLoadDelegate webView:plugInFailedWithError:dataSource:]): Remove forced display from plugin resource load delegate. It is testing some long-obsolete Safari WK1 behavior. Forcing display from this resource load delegate will hit the assertion because on Mac WK1 it may get invoked from middle of a layout. Painting code skips out after the assert so it doesn't indicate unsafe access of any sort. 2017-05-30 Carlos Alberto Lopez Perez Add a WPE EWS queue https://bugs.webkit.org/show_bug.cgi?id=172693 Reviewed by Carlos Garcia Campos. * QueueStatusServer/config/queues.py: * QueueStatusServer/model/queues.py: Capitalize the name of the port on the tooltip of the bubbles. Do the same for the GTK port. (Queue.display_name): * Scripts/webkitpy/common/config/ews.json: Update the watcher mail for the GTK+ EWS also. Set for both ports as watcher the alias bugs-noreply@webkitgtk.org that maintainers of both ports follow. * Scripts/webkitpy/common/config/ports.py: (DeprecatedPort.port): (WpePort): (WpePort.build_webkit_command): (WpePort.run_webkit_tests_command): * Scripts/webkitpy/common/config/ports_unittest.py: (DeprecatedPortTest): (DeprecatedPortTest.test_wpe_port): * Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: (test_ews_name): 2017-05-29 Zan Dobersek Unreviewed. Bumping the WPEBackend-mesa dependency version. * wpe/jhbuild.modules: Use the latest version that uses proper GLib priorities for IPC communication. 2017-05-27 Yusuke Suzuki [JSC] Map and Set constructors should have fast path for cloning https://bugs.webkit.org/show_bug.cgi?id=172413 Reviewed by Saam Barati. * TestWebKitAPI/Tests/WTF/MathExtras.cpp: (TestWebKitAPI::TEST): 2017-05-27 Zalan Bujtas enclosingIntRect returns a rect with -1 width/height when the input FloatRect overflows integer. https://bugs.webkit.org/show_bug.cgi?id=172676 Reviewed by Simon Fraser. * TestWebKitAPI/Tests/WebCore/FloatRect.cpp: (TestWebKitAPI::TEST): 2017-05-26 Zalan Bujtas TestWebKitAPI: EnclosingIntRect and RoundedIntRect should use EXPECT_EQ. https://bugs.webkit.org/show_bug.cgi?id=172674 Reviewed by Simon Fraser. * TestWebKitAPI/Tests/WebCore/FloatRect.cpp: (TestWebKitAPI::TEST): 2017-05-26 Wenson Hsieh Add test resources back into TestWebKitAPI Copy Resources phase Rubber-stamped by Beth Dakin. Add two files back into the Copy Resources phase after they were unintentionally removed in r217447 and r217496. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 2017-05-26 Beth Dakin Media documents inside iframes should not get controls in the TouchBar unless the video is playing https://bugs.webkit.org/show_bug.cgi?id=172620 -and corresponding- rdar://problem/32165477 Reviewed by Jon Lee. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/offscreen-iframe-of-media-document.html: Added. 2017-05-25 Joseph Pecoraro _WKUserStyleSheet and WKUserScript leak string data https://bugs.webkit.org/show_bug.cgi?id=172583 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WebKit2Cocoa/UserContentController.mm: We should not have been adopting an autoreleased object. 2017-05-25 Myles C. Maxfield [WK1] iframes in layer-backed NSViews are not cleared between successive draws https://bugs.webkit.org/show_bug.cgi?id=172554 Reviewed by Simon Fraser. Previously, there was no way to make DumpRenderTree's views layer-backed. Unfortunately, simply setting [WebView setWantsLayer:] is insufficient; turning it on and then off again leaves some state around inside the NSWindow which isn't easily cleaned up. Instead, we should just tear down and rebuild the window whenever we need a layer-backed WebView. We can also use the "webkit-test-runner" header comment to trigger this new layer-backed codepath. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): (TestOptions::webViewIsCompatibleWithOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (shouldIgnoreWebCoreNodeLeaks): (allowedFontFamilySet): (-[DRTMockScroller rectForPart:]): (-[DRTMockScroller drawKnob]): (-[DRTMockScroller drawRect:]): (createWebViewAndOffscreenWindow): (initializeGlobalsFromCommandLineOptions): (prepareConsistentTestingEnvironment): (dumpRenderTree): (dumpAudio): (dumpHistoryItem): (dumpBackForwardListForWebView): (resetWebViewToConsistentStateBeforeTesting): (WebThreadLockAfterDelegateCallbacksHaveCompleted): (runTest): 2017-05-25 Sam Weinig [WebIDL] Use the term 'operation' more consistently https://bugs.webkit.org/show_bug.cgi?id=172601 Reviewed by Chris Dumez. We were using the term 'operation', a WebIDL term for function-like constructs, inconsistently in the code generator. Now, when we use 'operation' when referring to the IDL concept (usually the object the parser produces) and 'function' when referring to code being generated. * DumpRenderTree/Bindings/CodeGeneratorDumpRenderTree.pm: * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm: 2017-05-25 Jer Noble Unreviewed build fix after r217447; only run test where JSC's ObjC API is available. * TestWebKitAPI/Tests/mac/MediaPlaybackSleepAssertion.mm: 2017-05-25 Jer Noble System sleeps while playing to wireless target, ending stream. https://bugs.webkit.org/show_bug.cgi?id=172541 Reviewed by Eric Carlson. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/mac/MediaPlaybackSleepAssertion.html: Added. * TestWebKitAPI/Tests/mac/MediaPlaybackSleepAssertion.mm: Added. (-[MediaPlaybackSleepAssertionLoadDelegate webView:didCreateJavaScriptContext:forFrame:]): (-[MediaPlaybackSleepAssertionPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]): (TestWebKitAPI::simulateKeyDown): (TestWebKitAPI::hasAssertionType): (TestWebKitAPI::TEST): 2017-05-25 Commit Queue Unreviewed, rolling out r217423 and r217424. https://bugs.webkit.org/show_bug.cgi?id=172607 These caused an api failure on all testers. (Requested by mlewis13 on #webkit). Reverted changesets: "REGRESSION (r216977): 4 leaks introduced in new WebKit2_WKHTTPCookieStoreWithoutProcessPool_Test" https://bugs.webkit.org/show_bug.cgi?id=172558 http://trac.webkit.org/changeset/217423 "REGRESSION (r217423): Fix last-second typo in 'auto'" http://trac.webkit.org/changeset/217424 2017-05-25 Joanmarie Diggs [ATK] Expose doc-footnote ARIA role with ATK_ROLE_FOOTNOTE https://bugs.webkit.org/show_bug.cgi?id=172355 Reviewed by Chris Fleizach. Add map ATK_ROLE_FOOTNOTE to "AXFootnote" and bump jhbuild minimum versions of atk, at-spi2-core, and at-spi2-atk to 2.25.2 (the earliest releases which support the new platform footnote accessibility role. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: * gtk/jhbuild.modules: 2017-05-25 David Kilzer REGRESSION (r217423): Fix last-second typo in 'auto' * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (WebKit2_WKHTTPCookieStoreWithoutProcessPool_Test): Fix typo. 2017-05-24 David Kilzer REGRESSION (r216977): 4 leaks introduced in new WebKit2_WKHTTPCookieStoreWithoutProcessPool_Test Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (WebKit2_WKHTTPCookieStoreWithoutProcessPool_Test): Fix the leaks. 2017-05-24 Don Olmstead [CMake] Consolidate CMake code related to Cairo https://bugs.webkit.org/show_bug.cgi?id=172568 Reviewed by Alex Christensen. * DumpRenderTree/config.h: * TestWebKitAPI/config.h: 2017-05-24 Wenson Hsieh Plumb additional image metadata to item providers when beginning data interaction on an image https://bugs.webkit.org/show_bug.cgi?id=172536 Reviewed by Beth Dakin. Tweak existing image data interaction tests to check for suggested name and estimated size on the generated source item providers. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkSuggestedNameAndEstimatedSize): (TestWebKitAPI::TEST): 2017-05-24 Per Arne Vollan [Win] Create unique network storage session for each DRT. https://bugs.webkit.org/show_bug.cgi?id=172540 Reviewed by Brent Fulgham. During layout testing, each DRT instance should have its own network storage session. * DumpRenderTree/win/DumpRenderTree.cpp: (prepareConsistentTestingEnvironment): 2017-05-24 Wenson Hsieh Respect image UTIs when writing to item providers when beginning data interaction on an image https://bugs.webkit.org/show_bug.cgi?id=172436 Reviewed by Beth Dakin. Tweaks existing unit tests and adds a new test for image data interaction. See WebCore ChangeLog for more details. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/apple.gif: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/gif-and-file-input.html: Added. Create a new test page containing a GIF and a file input. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkTypeIdentifierIsRegisteredAtIndex): (TestWebKitAPI::TEST): 2017-05-23 Per Arne Vollan [Win] Increase test timeout for slow tests. https://bugs.webkit.org/show_bug.cgi?id=172449 Reviewed by Alexey Proskuryakov. Instead of using a fixed timeout of 30 seconds for all tests, we should use the timeout member in the TestRunner class. * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::setWaitToDump): 2017-05-15 Matt Rajca Replace autoplay events that fire at navigation with a DidAutoplayMediaPastThreshold event. https://bugs.webkit.org/show_bug.cgi?id=172138 Reviewed by Alex Christensen. Added API tests. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/js-autoplay-audio.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/silence-long.m4a: Added. 2017-05-23 Simon Fraser Stop consulting -viewsNeedDisplay when doing layer flushing in WebKit1 https://bugs.webkit.org/show_bug.cgi?id=172522 rdar://problem/31071812 Reviewed by Sam Weinig. Remove NSWindowStyleMaskFullSizeContentView which is no longer referenced in code. We set this in the .xib file now. * MiniBrowser/mac/MiniBrowser_Prefix.pch: 2017-05-22 Simon Fraser Snapshotting via -renderInContext: should do synchronous image decodes https://bugs.webkit.org/show_bug.cgi?id=172485 rdar://problem/32276146 Reviewed by Tim Horton. New API test. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit/ios/SnapshotViaRenderInContext.mm: Added. (-[RenderInContextWebViewDelegate webViewDidFinishLoad:]): (-[RenderInContextWebViewDelegate webView:didFailLoadWithError:]): (TestWebKitAPI::getPixelIndex): (TestWebKitAPI::TEST): 2017-05-23 Myles C. Maxfield Remove dead ENABLE(FONT_LOAD_EVENTS) code https://bugs.webkit.org/show_bug.cgi?id=172517 Rubber-stamped by Simon Fraser. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-05-23 Wenson Hsieh Multiple links should be inserted separately when performing data interaction https://bugs.webkit.org/show_bug.cgi?id=172489 Reviewed by Dan Bernstein. Adds a new test that performs data interaction in a contenteditable with multiple items containing URLs. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-05-23 Tim Horton REGRESSION: API test WebKit2.WKObject is failing https://bugs.webkit.org/show_bug.cgi?id=172497 Reviewed by Geoff Garen. * TestWebKitAPI/Tests/WebKit2Cocoa/WKObject.mm: (TestWebKitAPI::TEST): Add a test that ensures that we pretend to at least be *some* kind of NSString, which my first fix would not have passed. 2017-05-23 youenn fablet There should be an easy way to run HTTP/WPT served tests on a browser https://bugs.webkit.org/show_bug.cgi?id=172068 Reviewed by Sam Weinig. Adding a new script open-layout-test to open a layout-test in a browser and making sure it is served as done through run-webkit-tests. In case tests should be run using a server, detecting whether the server are running. If not, calling run-webkit-httpd to run the servers and open the URL in a browser. Otherwise, open directly the URL. Adding an option in run-webkit-httpd to open an URL after having started the servers. Adding the --no-http-servers option in run-webkit-tests to not start any HTTP server. This allows running run-webkit-httpd once and not having to restart servers everytime a test should be served. Moving most of run-webkit-httpd logic in its own python file to reuse it in open-layout-test script. Adding routines to check whether HTTP and WPT servers are running. * Scripts/open-layout-test: Added. (parse_args): (main): * Scripts/run-webkit-httpd: (main): * Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py: (LayoutTestFinder.find_tests): * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: (LayoutTestRunner.run_tests): * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): * Scripts/webkitpy/layout_tests/servers/http_server_base.py: (HttpServerBase._is_server_running_on_all_ports): (HttpServerBase): (HttpServerBase._is_running_on_port): (HttpServerBase._check_that_all_ports_are_available): (is_http_server_running): * Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: Copied from Tools/Scripts/run-webkit-httpd. (parse_args): (main): (run_server): * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (is_wpt_server_running): * Scripts/webkitpy/port/base.py: (Port.to.is_http_server_running): (Port.to): (Port.to.is_wpt_server_running): (Port.to.start_web_platform_test_server): * Scripts/webkitpy/port/driver.py: (DriverProxy.is_web_platform_test): (DriverProxy): (DriverProxy.is_webkit_specific_web_platform_test): 2017-05-23 Emilio Cobos Álvarez Add a RuntimeEnabledFeature for display: contents, defaulted to false. https://bugs.webkit.org/show_bug.cgi?id=171984 Reviewed by Antti Koivisto. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-05-20 Alex Christensen REGRESSION(r215686): O(n^2) algorithm in CachedRawResource::addDataBuffer https://bugs.webkit.org/show_bug.cgi?id=172406 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp: (TestWebKitAPI::checkBuffer): (TestWebKitAPI::TEST_F): 2017-05-22 Jason Marcell Do not enter Subversion-specific logic when parsing Git-based Trac data. https://bugs.webkit.org/show_bug.cgi?id=172433 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js: (Trac.prototype._convertCommitInfoElementToObject): 2017-05-22 Tim Horton ExplicitSnapshotsChangeUponNavigation API test often fails https://bugs.webkit.org/show_bug.cgi?id=172475 Reviewed by Simon Fraser. * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView _setUpTestWindow:]): Make TestWKWebView's window layer-backed. This is now the default, and it's also easy to accidentally write a test that depends on it (for example, ExplicitSnapshotsChangeUponNavigation adds an NSBox, which becomes layer backed, just like the WKWebView, but with no common layer-backed ancestor). 2017-05-22 youenn fablet Resync web-platform-tests up to 8df7c9c215678328212f232ce0b5270c505a8563 https://bugs.webkit.org/show_bug.cgi?id=172426 Reviewed by Chris Dumez. * Scripts/webkitpy/w3c/test_importer.py: (TestImporter.remove_deleted_files): Outputting warning when trying to delete a file that no longer exists. 2017-05-22 Konstantin Tokarev Unreviewed, change my status to reviewer and fill "expertise" field * Scripts/webkitpy/common/config/contributors.json: 2017-05-22 Tomas Popela Remove some of the EFL port leftovers https://bugs.webkit.org/show_bug.cgi?id=172440 Reviewed by Carlos Garcia Campos. * BuildSlaveSupport/built-product-archive: (archiveBuiltProduct): (extractBuiltProduct): * BuildSlaveSupport/test-result-archive: (archiveTestResults): * ImageDiff/PlatformEfl.cmake: Removed. * Scripts/run-efl-tests: Removed. * Scripts/webkit-build-directory: * Scripts/webkitpy/common/config/contributionareas.py: * Scripts/webkitpy/common/config/watchlist: * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): (_set_up_derived_options): * Scripts/webkitpy/performance_tests/perftestsrunner.py: (PerfTestsRunner.__init__): * Scripts/webkitpy/style/checker.py: * Scripts/webkitpy/style/checker_unittest.py: (GlobalVariablesTest.test_path_rules_specifier): * gtk/manifest.txt.in: * jhbuild/jhbuild-wrapper: 2017-05-22 Carlos Garcia Campos Unreviewed. Do not include WPE files in GTK+ tarballs. * gtk/manifest.txt.in: 2017-05-22 Carlos Garcia Campos [GTK] Add webkit_context_menu_item_new_from_gaction https://bugs.webkit.org/show_bug.cgi?id=159631 Reviewed by Michael Catanzaro. Update context menu tests to check the new GAction API. * TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp: (testContextMenuPopulateMenu): 2017-05-21 Michael Catanzaro [GTK] Remove Firefox user agent quirk for Google domains https://bugs.webkit.org/show_bug.cgi?id=171941 Reviewed by Carlos Garcia Campos. * TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp: (TestWebKitAPI::TEST): (TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk): Deleted. 2017-05-20 Ting-Wei Lan [GTK] gtkdoc-fixxref needs --module argument to work https://bugs.webkit.org/show_bug.cgi?id=172415 Reviewed by Michael Catanzaro. * gtk/gtkdoc.py: (GTKDoc._run_gtkdoc_fixxref): 2017-05-20 Alexey Proskuryakov make-new-script-test should create tests that use js-test.js, not js-test-pre.js https://bugs.webkit.org/show_bug.cgi?id=172416 Reviewed by Daniel Bates. * Scripts/make-new-script-test: 2017-05-19 Fujii Hironori [Win] error LNK2005: WebCore::JSNode::checkSubClassPatchpoint() already defined in WebKit.lib https://bugs.webkit.org/show_bug.cgi?id=172267 Reviewed by Per Arne Vollan. TestWebCoreLib and TestWebKitLib have linked both WebCore and WebKit. TestWebCoreLib should link only with WebCore. And, TestWebKitLib should link only with WebKit. Unfortunately, there is a layer violation at the moment. WebCore::Image::loadPlatformResource needs loadResourceIntoBuffer in WebKit. This change contains a stub of loadResourceIntoBuffer in TestWebCoreLib for the workaround. * TestWebKitAPI/PlatformWin.cmake: Do not link WebKit to TestWebCoreLib. Do not link WebCore to TestWebKitLib. * TestWebKitAPI/win/TestWebCoreStubs.cpp: Added. (loadResourceIntoBuffer): Added a stub. 2017-05-19 Simon Fraser Fix dump-class-layout to handle different file architectures https://bugs.webkit.org/show_bug.cgi?id=172392 Reviewed by Zalan Bujtas. Instead of using lldb.LLDB_ARCH_DEFAULT by default, run 'file' on the binary and use the first architecture reported. Also add a "--architecture" argument to allow the user to specify an architecture. * Scripts/dump-class-layout: (import_lldb): (verify_type_recursive): (get_first_file_architecture): (dump_class): (main): (find_build_directory): Deleted. 2017-05-19 Jonathan Bedard Unreviewed infrastructure fix. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort._create_devices): Ignore failure to open Simulator.app. 2017-05-19 Jonathan Bedard webkitpy: Use simctl boot to run multiple simulators at once https://bugs.webkit.org/show_bug.cgi?id=172374 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/common/system/platforminfo.py: (PlatformInfo.xcode_version): Return the current version of Xcode. * Scripts/webkitpy/common/system/platforminfo_mock.py: (MockPlatformInfo.xcode_version): Return version 8.0 for testing. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.use_multiple_simulator_apps): Return true if we need to run multiple Simulator.app instances. (IOSSimulatorPort._create_simulators): Only copy the simulator app for older versions of Xcode. (IOSSimulatorPort._create_devices): Use 'simctl boot' directly unless using an older version of Xcode. 2017-05-19 Wenson Hsieh Unreviewed, fix the build on the latest internal SDK. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-05-19 Filip Pizlo arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided https://bugs.webkit.org/show_bug.cgi?id=172369 Reviewed by Mark Lam. Because I wrote a test that relies on the NoCJIT config scribbling free cells, I thought it would be a good idea to write this down. * Scripts/run-jsc-stress-tests: 2017-05-19 Jonathan Bedard webkitpy: Layout tests which have no output will succeed https://bugs.webkit.org/show_bug.cgi?id=172322 Reviewed by David Kilzer. * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: (SingleTestRunner._compare_text): Add FailreNotTested to failures if test has no output. * Scripts/webkitpy/layout_tests/models/test_failures.py: (determine_result_type): FailureNotTested means that the test could not be loaded. This is classified as a MISSING failure. (FailureNotTested): Added. (FailureNotTested.message): 2017-05-19 Yusuke Suzuki Add SixSpeed benchmark to PerformanceTests https://bugs.webkit.org/show_bug.cgi?id=172326 Reviewed by Sam Weinig. * Scripts/run-jsc-benchmarks: 2017-05-19 Wenson Hsieh [WK1] MiniBrowser should navigate when handling a dropped URL https://bugs.webkit.org/show_bug.cgi?id=172350 Reviewed by Tim Horton. Allow all drop actions, including URL navigation, for WebKit1 MiniBrowser. * MiniBrowser/mac/WK1BrowserWindowController.m: (-[WK1BrowserWindowController webView:dragDestinationActionMaskForDraggingInfo:]): 2017-05-18 Ryosuke Niwa REGRESSION (r216694 - 216712): Performance test Speedometer/Full.html is failing https://bugs.webkit.org/show_bug.cgi?id=172077 Reviewed by Chris Dumez. Fixed perftest.py by updating the lines to ignore in Speedometer. Also start report the results as "Speedometer" instead of "DoYouEvenBench/Full.html" to perf.webkit.org. * Scripts/webkitpy/performance_tests/perftest.py: (PerfTest._lines_to_ignore_in_parser_result): Updated for Speedometer 2.0. * Scripts/webkitpy/performance_tests/perftestsrunner.py: (PerfTestsRunner._collect_tests): Use "Speedometer" instead of "Speedometer/index.html" as the test name. (_generate_results_dict): Removed the workaround to keep reporting Speedometer as DoYouEvenBench. * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: (MainTest.test_collect_tests_with_index_html_and_resources): Added. 2017-05-18 Andy Estes ENABLE(APPLE_PAY_DELEGATE) should be NO on macOS Sierra and earlier https://bugs.webkit.org/show_bug.cgi?id=172305 Reviewed by Anders Carlsson. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-05-18 Wenson Hsieh Selection around attachment elements should not persist when beginning a drag https://bugs.webkit.org/show_bug.cgi?id=172319 Reviewed by Tim Horton. Tests that temporary selection around an attachment does not persist longer than it needs to. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-05-18 John Wilander Resource Load Statistics: Grandfather domains for existing data records https://bugs.webkit.org/show_bug.cgi?id=172155 Reviewed by Alex Christensen. Adds test infrastructure needed for the added functionality. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsGrandfathered): (WTR::TestRunner::isStatisticsGrandfathered): (WTR::TestRunner::installStatisticsDidScanDataRecordsCallback): (WTR::TestRunner::statisticsDidScanDataRecordsCallback): (WTR::TestRunner::setStatisticsGrandfatheringTime): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsGrandfathered): (WTR::TestController::isStatisticsGrandfathered): (WTR::TestController::setStatisticsGrandfatheringTime): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-05-18 Saam Barati WebAssembly: perform stack checks https://bugs.webkit.org/show_bug.cgi?id=165546 Reviewed by Filip Pizlo. Add some new testing modes for using and not using fast TLS wasm contexts. * Scripts/run-jsc-stress-tests: 2017-05-18 Daniel Bates REGRESSION (r209608): Cross-origin plugin document opened in child window blocked by parent window CSP when object-src 'none' is set https://bugs.webkit.org/show_bug.cgi?id=172038 Reviewed by Andy Estes. Teach the test Netscape plugin to look for a URL that contains plugin-document-alert-and-notify-done.pl. When it sees this URL it will show a JavaScript alert and call testRunner.notifyDone(). * DumpRenderTree/TestNetscapePlugIn/main.cpp: (NPP_New): 2017-05-18 Per Arne Vollan [Win] Many layout tests are failing. https://bugs.webkit.org/show_bug.cgi?id=172286 Reviewed by Brent Fulgham. Add a FIXME comment about unimplemented functions, instead of writing this to the test result file. * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::grantWebNotificationPermission): (TestRunner::denyWebNotificationPermission): (TestRunner::removeAllWebNotificationPermissions): (TestRunner::simulateWebNotificationClick): 2017-05-18 Don Olmstead [Win] Remove usage of _snprintf https://bugs.webkit.org/show_bug.cgi?id=172251 Reviewed by Per Arne Vollan. * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: * MiniBrowser/win/PageLoadTestClient.cpp: (PageLoadTestClient::dumpRunStatistics): 2017-05-17 Ryan Haddad Unreviewed, rolling out r217014. This change caused mac-wk2 LayoutTests to exit early due to crashes. Reverted changeset: "Resource Load Statistics: Grandfather domains for existing data records" https://bugs.webkit.org/show_bug.cgi?id=172155 http://trac.webkit.org/changeset/217014 2017-05-17 John Wilander Resource Load Statistics: Grandfather domains for existing data records https://bugs.webkit.org/show_bug.cgi?id=172155 Reviewed by Alex Christensen. Adds test infrastructure needed for the added functionality. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsGrandfathered): (WTR::TestRunner::isStatisticsGrandfathered): (WTR::TestRunner::installStatisticsDidScanDataRecordsCallback): (WTR::TestRunner::statisticsDidScanDataRecordsCallback): (WTR::TestRunner::setStatisticsGrandfatheringTime): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsGrandfathered): (WTR::TestController::isStatisticsGrandfathered): (WTR::TestController::setStatisticsGrandfatheringTime): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-05-17 Alex Christensen Fix ios-simulator API test after r216977 https://bugs.webkit.org/show_bug.cgi?id=171987 * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): covers the investigation of this, but fixing it is not as urgent as having the rest of this working. Notably the ephemeral part of the test works, so something is just wrong with the persistent part. 2017-05-17 Ryan Haddad Unreviewed, rolling out r216955. This change caused strange behavior with web-platform-tests locally and on EWS. Reverted changeset: "webkitpy: Start servers before setting-up for testing" https://bugs.webkit.org/show_bug.cgi?id=172176 http://trac.webkit.org/changeset/216955 2017-05-17 Wenson Hsieh A URL type is vended for a non-URL plain text string when starting data interaction https://bugs.webkit.org/show_bug.cgi?id=172228 Reviewed by Andy Estes. Adds two new data interaction tests, SinglePlainTextWordTypeIdentifiers and SinglePlainTextURLTypeIdentifiers, to verify that a URL UTI is not vended when beginning a data interaction on a single word, but that a URL is still vended when beginning data interaction on something that resembles a link. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: 2017-05-17 David Kilzer BlobDataFileReference::generateReplacementFile() should use mkstemp() Reviewed by Brent Fulgham. * Scripts/webkitpy/style/checkers/cpp.py: (check_language): Add check for mktemp. (CppChecker): Add 'security/temp_file' category. * Scripts/webkitpy/style/checkers/cpp_unittest.py: (CppStyleTest.test_insecure_temp_file): Add test. 2017-05-17 Devin Rousso Unreviewed, change my email. * Scripts/webkitpy/common/config/contributors.json: 2017-05-17 Matt Lewis Unreviewed, rolling out r216974. Revision caused consistent timeouts on all platforms. Reverted changeset: "Add a RuntimeEnabledFeature for display: contents, defaulted to false." https://bugs.webkit.org/show_bug.cgi?id=171984 http://trac.webkit.org/changeset/216974 2017-05-17 Alex Christensen Interacting with WKHTTPCookieStores before creating WKWebViews and WKProcessPools should affect cookies used https://bugs.webkit.org/show_bug.cgi?id=171987 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (-[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST): 2017-05-17 Emilio Cobos Álvarez Add a RuntimeEnabledFeature for display: contents, defaulted to false. https://bugs.webkit.org/show_bug.cgi?id=171984 Reviewed by Antti Koivisto. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-05-16 Timothy Horton Fix the build * TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm: (TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest): 2017-05-16 Tim Horton PageVisibilityStateWithWindowChanges tests sometimes time out https://bugs.webkit.org/show_bug.cgi?id=172202 Reviewed by Dean Jackson. * TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm: (TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest): Make sure the window is miniaturizable, otherwise, in some cases, miniaturize: will not work. 2017-05-16 Jonathan Bedard webkitpy: Start servers before setting-up for testing https://bugs.webkit.org/show_bug.cgi?id=172176 Reviewed by Alexey Proskuryakov. On-device testing requires that servers are started before ports set-up their test environments. * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: (LayoutTestRunner.__init__): Start servers when initializing LayoutTestRunner. (LayoutTestRunner.run_tests): Move the starting of servers to the initializer. * Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager.__init__): Delay construction of the test runner until we can determine if servers need to be started. (Manager.run): Determine if servers need to be started and construct the test runner. (Manager._run_tests): Move the determination of servers to run into Manager.run. 2017-05-16 Adrian Perez de Castro Unreviewed, adding myself to contributors.json * Scripts/webkitpy/common/config/contributors.json: 2017-05-16 Claudio Saavedra [GTK] Tests that always pass when run alone, but fail in the bots https://bugs.webkit.org/show_bug.cgi?id=168572 Reviewed by Michael Catanzaro. PlatformWebView::viewSupportsOptions() is basically a comparison that checks that the passed options are the ones supported by the web view. There is no reason for them to be implemented for each platform differently. In fact doing so causes issues each time a new option is added, if the corresponding platform implementation is not updated accordingly. A consequence of not updating the viewSupportOptions() implementations when new options are added is that tests that need these options might fail if they are executed after a test that didn't need the option, as the webview will be reused even if the option is not supported. This cannot be spotted when running the tests individually. See bug #165133 for other example of the same problem. Remove the platform implementations and make the comparison a method of the TestOptions structure, so that the check is in one place. For the time being, only include in the comparison the options that were checked in the mac platform, which seem to be the only ones relevant this far (unless newer ones have also been forgotten). * WebKitTestRunner/PlatformWebView.h: (WTR::PlatformWebView::viewSupportsOptions): Use the method defined below. * WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions): Added. * WebKitTestRunner/gtk/PlatformWebViewGtk.cpp: (WTR::PlatformWebView::viewSupportsOptions): Deleted. * WebKitTestRunner/ios/PlatformWebViewIOS.mm: (WTR::PlatformWebView::viewSupportsOptions): Deleted. * WebKitTestRunner/mac/PlatformWebViewMac.mm: (WTR::PlatformWebView::viewSupportsOptions): Deleted. * WebKitTestRunner/wpe/PlatformWebViewWPE.cpp: (WTR::PlatformWebView::viewSupportsOptions): Deleted. 2017-05-15 Yusuke Suzuki [JSC] Build testapi in non Apple ports https://bugs.webkit.org/show_bug.cgi?id=172103 Reviewed by Filip Pizlo. Now testapi is drived in JSCOnly, GTK and WPE ports too. * Scripts/build-jsc: * Scripts/run-javascriptcore-tests: 2017-05-15 Youenn Fablet WPT test importer should not account for slow manual tests https://bugs.webkit.org/show_bug.cgi?id=172127 Reviewed by Ryosuke Niwa. Making sure manual tests are not triggering updating tests-options.json file. * Scripts/webkitpy/w3c/test_importer.py: (TestImporter.find_importable_tests): (TestImporter._already_identified_as_resource_file): (TestImporter.update_tests_options): * Scripts/webkitpy/w3c/test_importer_unittest.py: (test_manual_slow_test): 2017-05-15 Jonathan Bedard webkitpy: Some versions of simctl do not place parenthesis around runtime identifiers https://bugs.webkit.org/show_bug.cgi?id=172142 Reviewed by Tim Horton. * Scripts/webkitpy/xcode/simulator.py: (Simulator._parse_runtimes): Newer versions of simctl output do not put parenthesis around runtime identifiers. * Scripts/webkitpy/xcode/simulator_unittest.py: Add tests for new simctl output. 2017-05-15 Ryosuke Niwa Update ARES-6 plan file to use the latest version https://bugs.webkit.org/show_bug.cgi?id=172139 Reviewed by Keith Miller. Include r216538. * Scripts/webkitpy/benchmark_runner/data/plans/ares6.plan: 2017-05-15 Jeremy Jones Disable Picture In Picture API tests on unsupported platforms. https://bugs.webkit.org/show_bug.cgi?id=172125 rdar://problem/32199477 Reviewed by Simon Fraser. The callbacks and allowing picture-in-picture require new SPI. * TestWebKitAPI/Tests/WebKit2Cocoa/PictureInPictureDelegate.mm: 2017-05-15 Brady Eidson [ios-simulator] API test WKWebView.ClearAppCache is failing. https://bugs.webkit.org/show_bug.cgi?id=172120 Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm: (TEST): ios-sim needs explicit deleting of the app cache paths that I'd removed in 216805. Restoring that code fixes this. 2017-05-15 Timothy Horton Null deref under WebContentReader::readURL when interacting with a file URL https://bugs.webkit.org/show_bug.cgi?id=172045 Reviewed by Wenson Hsieh. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): The text of the file URL is pasted because a textual version of it gets onto the pasteboard. However, this test would have crashed before. Also tests that we don't make an . 2017-05-14 Per Arne Vollan [Win] fast/cookies/local-file-can-set-cookies.html is flaky. https://bugs.webkit.org/show_bug.cgi?id=172071 Reviewed by Alexey Proskuryakov. * DumpRenderTree/win/DumpRenderTree.cpp: (resetWebPreferencesToConsistentValues): 2017-05-14 Chris Dumez Drop PassRefPtr class from WTF https://bugs.webkit.org/show_bug.cgi?id=172091 Reviewed by Alex Christensen. Drop API test coverage. * TestWebKitAPI/Tests/WTF/Ref.cpp: (TestWebKitAPI::TEST): (TestWebKitAPI::passWithPassRefPtr): Deleted. 2017-05-13 Eric Carlson [MediaStream] deviceId constraint doesn't work with getUserMedia https://bugs.webkit.org/show_bug.cgi?id=171877 Reviewed by Jer Noble. The device ID hash salt is now required for getUserMedia to check deviceId constraint, so implement the "checkUserMediaPermission" callback. * TestWebKitAPI/Tests/WebKit2/UserMedia.cpp: (TestWebKitAPI::decidePolicyForUserMediaPermissionRequestCallBack): (TestWebKitAPI::checkUserMediaPermissionCallback): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm: (-[UserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): 2017-05-13 Chris Dumez Stop using RefPtr::release() https://bugs.webkit.org/show_bug.cgi?id=172074 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WTF/RefPtr.cpp: (TestWebKitAPI::TEST): 2017-05-13 Commit Queue Unreviewed, rolling out r216808. https://bugs.webkit.org/show_bug.cgi?id=172075 caused lldb to hang when debugging (Requested by smfr on #webkit). Reverted changeset: "Use Mach exceptions instead of signals where possible" https://bugs.webkit.org/show_bug.cgi?id=171865 http://trac.webkit.org/changeset/216808 2017-05-12 Alex Christensen Rename WKContentExtension to WKContentRuleList https://bugs.webkit.org/show_bug.cgi?id=172053 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKit2Cocoa/WKContentExtensionStore.mm: (WKContentRuleListStoreTest::SetUp): (TEST_F): (-[ContentRuleListDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (WKContentExtensionStoreTest::SetUp): Deleted. (-[ContentExtensionDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Deleted. 2017-05-12 Keith Miller Use Mach exceptions instead of signals where possible https://bugs.webkit.org/show_bug.cgi?id=171865 Reviewed by Mark Lam. * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: (runThreadMessageTest): (TEST): 2017-05-12 Jeremy Jones Add objc version of WK2 UIPageClient setHasVideoInPictureInPicture and rename it to hasVideoInPictureInPictureDidChange. https://bugs.webkit.org/show_bug.cgi?id=172048 rdar://problem/32163054 Reviewed by Simon Fraser. Add a WKWebView test for hasVideoInPictureInPictureDidChange UIDelegate callback. * TestWebKitAPI/Tests/WebKit2Cocoa/PictureInPictureDelegate.html: * TestWebKitAPI/Tests/WebKit2Cocoa/PictureInPictureDelegate.mm: (hasVideoInPictureInPictureDidChange): (-[PictureInPictureUIDelegate _webView:hasVideoInPictureInPictureDidChange:]): (-[PictureInPictureUIDelegate userContentController:didReceiveScriptMessage:]): (TestWebKitAPI::TEST): 2017-05-12 Brady Eidson REGRESSION (r216711): API test WKWebView.ClearAppCache is failing. https://bugs.webkit.org/show_bug.cgi?id=172030 Unreviewed - Test gardening Try to resolve this once and for all by using the WebsiteDataStore API to nuke everything before the test starts. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm: (defaultWebsiteCacheDirectory): (defaultApplicationCacheDirectory): (TEST): (defaultWebsiteDataDirectory): Deleted. 2017-05-12 David Quesada Add SPI for overriding WKWebView's clipping behavior for _visibleContentRect https://bugs.webkit.org/show_bug.cgi?id=172000 rdar://problem/32144756 Reviewed by Simon Fraser. Added API tests to verify that WKWebView provides the expected value for _visibleContentRect in various configurations. (i.e. not inside a scrollview, inside a scrollview but not clipped, clipped by an ancestor scrollview, clipped by the webview's _enclosingViewForExposedRectComputation) * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/VisibleContentRect.mm: Added. (-[TestWKWebViewWithEnclosingView _enclosingViewForExposedRectComputation]): (TestWebKitAPI::TEST): 2017-05-12 Brady Eidson REGRESSION (r216711): API test WKWebView.ClearAppCache is failing. https://bugs.webkit.org/show_bug.cgi?id=172030 Unreviewed - Test gardening, in effect... More exploration as to why this continues to fail on the bots. This change should give us a smoking gun. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm: (TEST): 2017-05-12 Hyungwook Lee [GTK] Fix compile warnings in PlatformImageCairo.cpp https://bugs.webkit.org/show_bug.cgi?id=171850 Reviewed by Michael Catanzaro. * ImageDiff/cairo/PlatformImageCairo.cpp: (ImageDiff::PlatformImage::createFromStdin): (ImageDiff::PlatformImage::writeAsPNGToStdout): 2017-05-12 Jeremy Jones Add UIClient callback for when picture-in-picture is activated. https://bugs.webkit.org/show_bug.cgi?id=172023 Reviewed by Simon Fraser. Added a test for WKPageUIClientV10 setHasVideoInPictureInPicture. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/PictureInPictureDelegate.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/PictureInPictureDelegate.mm: Added. (onLoadedCompletedCallback): (waitUntilOnLoadIsCompleted): (didFinishLoadForFrame): (setHasVideoInPictureInPicture): (TestWebKitAPI::TEST): 2017-05-12 Jonathan Bedard Unreviewed follow-up to r216776. * Scripts/webkitpy/port/base.py: (Port.path_to_crash_logs): Raise not implemented. * Scripts/webkitpy/port/test.py: (TestPort.path_to_crash_logs): Return results directory as the location of crash logs. * Scripts/webkitpy/port/win.py: (WinPort.path_to_crash_logs): Ditto. 2017-05-12 Alexey Proskuryakov Bot watcher's dashboard shows results links twice sometimes https://bugs.webkit.org/show_bug.cgi?id=172043 Reviewed by Tim Horton. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js: (BuildbotTesterQueueView.prototype._presentPopoverForGenericTestFailures): 2017-05-12 Brady Eidson REGRESSION (r216711): API test WKWebView.ClearAppCache is failing. https://bugs.webkit.org/show_bug.cgi?id=172030 Unreviewed - Test gardening, in effect... This failure is only being seen by the bots. I believe this test is utterly broken in the first place; when it checks the .wal file's size that is not actually an indicator that the records were deleted. But that isn't what's coming up as failure on the bots. This patch is an attempt to: 1 - More forcefully clear the Website data directory of leftovers before the test starts. 2 - Give an earlier indication of the failure that the bots are seeing, to possibly reveal more. * TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm: (defaultWebsiteDataDirectory): (defaultApplicationCacheDirectory): (TEST): 2017-05-12 Jonathan Bedard webkitpy: Pass directory with crash logs into CrashLogs https://bugs.webkit.org/show_bug.cgi?id=172033 Reviewed by Daniel Bates. Refactor CrashLogs and the callers of CrashLogs so that the port object owns the location of crash logs. * Scripts/webkitpy/common/system/crashlogs.py: (CrashLogs.__init__): Pass mandatory crash_log_directory when constructing. (CrashLogs._find_newest_log_darwin): Use self._crash_log_directory instead of generating one. (CrashLogs._find_newest_log_win): Use self._crash_log_directory instead of self._results_directory. (CrashLogs._find_all_logs_darwin): Use self._crash_log_directory instead of generating one. (CrashLogs._log_directory_darwin): Moved to port. * Scripts/webkitpy/common/system/crashlogs_unittest.py: Update tests since the path to the crash log is no longer owned by CrashLogs. * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: Use the general directory for uploading crash logs. Note that crash logs are only supported on Mac and Windows. * Scripts/webkitpy/port/apple.py: Remove unneeded CrashLogs import. * Scripts/webkitpy/port/base.py: (Port.path_to_crash_logs): Unless ports declare otherwise, crash logs are assumed to be in the results directory. * Scripts/webkitpy/port/darwin.py: (DarwinPort.path_to_crash_logs): Moved from CrashLogs._log_directory_darwin. (DarwinPort._look_for_all_crash_logs_in_log_dir): Use port specific crash log path. (DarwinPort._get_crash_log): Ditto. * Scripts/webkitpy/port/darwin_testcase.py: (DarwinTest.test_crashlog_path): Test that the Darwin ports are correctly calculating the path to crash logs. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort.path_to_crash_logs): Currently, crash log retrieval is undefined for iOS. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest.test_crashlog_path): Currently, crash log retrieval is undefined for iOS. * Scripts/webkitpy/port/ios_simulator.py: Remove unneeded CrashLogs import. * Scripts/webkitpy/port/mac.py: Ditto. * Scripts/webkitpy/port/test.py: (TestDriver.run_test): Use port specific crash log path when retrieving crash logs. * Scripts/webkitpy/port/win.py: (WinPort._get_crash_log): Ditto. * Scripts/webkitpy/tool/commands/queries.py: (execute): Construct a port object since this is the object which owns the path to crash logs. 2017-05-12 Carlos Garcia Campos Unreviewed. Fix GTK+ test /webkit2/WebKitWebView/create-navigation-data after r216615. In r216615 the custom code for window.open() was removed. The generated code now correctly handles the optional URL parameter using the default value "about:blank" when not provided. * TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp: (testWebViewCreateNavigationData): 2017-05-11 Youenn Fablet Allow WPT server to serve specific WebKit test https://bugs.webkit.org/show_bug.cgi?id=171479 Reviewed by Ryosuke Niwa. Adding a new mount point to WPT server. It points to LayoutTests/http/wpt folder and is triggered on "/WebKit" urls. Updating the webkitpy infrastructure to launch WPT server and do test url mapping for LayoutTests/wpt tests. * Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager.__init__): (Manager._is_http_test): (Manager._needs_web_platform_test): (Manager._run_tests): (Manager._is_web_platform_test): Deleted. * Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py: (build_routes): (main): * Scripts/webkitpy/port/driver.py: (Driver): (Driver.is_webkit_specific_web_platform_test): (Driver.test_to_uri): (Driver._command_from_driver_input): 2017-05-11 Brady Eidson [WKWebsiteDataStore removeDataOfTypes:...] doesn't work for IndexedDB if the data store has a custom IDB path. and https://bugs.webkit.org/show_bug.cgi?id=171994 Reviewed by Andy Estes. Informal review by Maureen Daum. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: (TEST): 2017-05-11 Joseph Pecoraro REGRESSION(r216217): lldb_webkit.py no longer prints out a WTFString, StringImpl needs to handle StringImplShape change https://bugs.webkit.org/show_bug.cgi?id=171989 Reviewed by Brian Burg. * lldb/lldb_webkit.py: (WTFStringImplProvider.get_data8): (WTFStringImplProvider.get_data16): m_data8 and m_data16 are now part of the superclass StringImplShape instead of directly in StringImpl. So first get the shape by getting index 0, and the data properties are the same offset within that. 2017-05-11 Joseph Pecoraro Remove Vibration API https://bugs.webkit.org/show_bug.cgi?id=171766 Rubber-stamped by Alexey Proskuryakov. * Scripts/webkitperl/FeatureList.pm: 2017-05-11 Carlos Alberto Lopez Perez Add WPE release bots https://bugs.webkit.org/show_bug.cgi?id=171973 Reviewed by Žan Doberšek. This adds a WPE Release Build bot (64-bit) and a WPE Release Test bot. It also adds a new WPE buildbot category. * BuildSlaveSupport/build.webkit.org-config/config.json: * BuildSlaveSupport/build.webkit.org-config/master.cfg: (InstallWpeDependencies): (appendCustomBuildFlags): (Factory.__init__): (loadBuilderConfig): * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: * BuildSlaveSupport/build.webkit.org-config/templates/root.html: 2017-05-09 Sam Weinig Remove support for legacy Notifications https://bugs.webkit.org/show_bug.cgi?id=171487 Reviewed by Jon Lee. * DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp: (DRTDesktopNotificationPresenter::checkNotificationPermission): * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Remove use and definition of ENABLE_LEGACY_NOTIFICATIONS. 2017-05-10 Michael Catanzaro Remove user agent quirk for Slack https://bugs.webkit.org/show_bug.cgi?id=171869 Reviewed by Carlos Garcia Campos. Remove the corresponding test. * TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp: (TestWebKitAPI::TEST): 2017-05-10 Commit Queue Unreviewed, rolling out r216578. https://bugs.webkit.org/show_bug.cgi?id=171920 Broke the GTK+ build with Wayland enabled (Requested by KaL on #webkit). Reverted changeset: "[GTK] Bump GTK+ and its dependencies in jhbuild" https://bugs.webkit.org/show_bug.cgi?id=171918 http://trac.webkit.org/changeset/216578 2017-05-10 Carlos Garcia Campos [GTK] Bump GTK+ and its dependencies in jhbuild https://bugs.webkit.org/show_bug.cgi?id=171918 Reviewed by Carlos Alberto Lopez Perez. * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp: (WTR::initializeGtkSettings): * gtk/jhbuild.modules: * gtk/patches/gtk+-configure-fix-detecting-CUPS-2.x.patch: Removed. * gtk/patches/librsvg-2.36.1-bump-up-config.guess-to-support-aarch64.patch: Removed. 2017-05-10 Don Olmstead [Win] Set CMake args in build-webkit https://bugs.webkit.org/show_bug.cgi?id=171436 Reviewed by Per Arne Vollan. * Scripts/build-webkit: 2017-05-10 Carlos Garcia Campos ImageDiff: Add CG implementation for new ImageDiff https://bugs.webkit.org/show_bug.cgi?id=170608 Reviewed Alex Christensen. * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: * DumpRenderTree/win/ImageDiffCairo.cpp: Removed. * DumpRenderTree/win/ImageDiffWin.cpp: Removed. * ImageDiff/CMakeLists.txt: * ImageDiff/Cairo.cmake: * ImageDiff/ImageDiff.cpp: (main): * ImageDiff/ImageDiff.xcodeproj/project.pbxproj: * ImageDiff/PlatformImage.cpp: * ImageDiff/PlatformImage.h: * ImageDiff/cairo/PlatformImageCairo.cpp: * ImageDiff/cg/ImageDiff.cpp: Removed. * ImageDiff/cg/PlatformImageCG.cpp: Added. (ImageDiff::PlatformImage::createFromStdin): (ImageDiff::PlatformImage::createFromDiffData): (ImageDiff::PlatformImage::PlatformImage): (ImageDiff::PlatformImage::~PlatformImage): (ImageDiff::PlatformImage::width): (ImageDiff::PlatformImage::height): (ImageDiff::PlatformImage::rowBytes): (ImageDiff::PlatformImage::hasAlpha): (ImageDiff::PlatformImage::pixels): (ImageDiff::PlatformImage::writeAsPNGToStdout): 2017-05-10 Zan Dobersek Enable FTL JIT by default on AArch64 https://bugs.webkit.org/show_bug.cgi?id=144039 Reviewed by Yusuke Suzuki. * Scripts/build-jsc: Enable the FTL JIT option by default on ARM64. * Scripts/run-jsc-stress-tests: Unmark the ARM64 and Linux combination as an unsupported FTL platform. * Scripts/webkitdirs.pm: (isARM64): Returns 1 if the determined architecture is 'arm64'. * Scripts/webkitperl/FeatureList.pm: Enable FTL_JIT and WEBASSEMBLY on ARM64. 2017-05-09 Jonathan Bedard webkitpy: Remove unneeded crash log retrieval, refactor Darwin crash retrieval https://bugs.webkit.org/show_bug.cgi?id=170857 Reviewed by Aakash Jain. Since LayoutTestRelay has been removed, iOS Simulators and Macs can use the same code to search for crash logs. * Scripts/webkitpy/port/darwin.py: (DarwinPort._get_crash_log): Moved from MacPort. * Scripts/webkitpy/port/darwin_testcase.py: (DarwinTest.test_get_crash_log): Moved from MacTest. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort._get_crash_log): Implement pass-through for iOS device, since iOS devices must search for crash-logs remotely. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort._get_crash_log): Deleted. * Scripts/webkitpy/port/ios_simulator_unittest.py: (IOSSimulatorTest.test_get_crash_log): Deleted. * Scripts/webkitpy/port/mac.py: (MacPort._get_crash_log): Moved to DarwinPort * Scripts/webkitpy/port/mac_unittest.py: (MacTest.test_get_crash_log): Moved to DarwinTest. 2017-05-09 Jonathan Bedard build ImageDiff with host SDK from Make https://bugs.webkit.org/show_bug.cgi?id=171835 Reviewed by Alexey Proskuryakov. ImageDiff should be built for the default SDK and default architecture when the SDKROOT is set to either iOS device or iOS simulator. Check the DO_NOT_BUILD_IMAGE_DIFF flag to skip the ImageDiff build. * ImageDiff/Makefile: Use Mac SDK when building for iOS Simulator or iOS device. * Makefile: Do not build ImageDiff if the DO_NOT_BUILD_IMAGE_DIFF flag is set. 2017-05-09 Matt Lewis Unreviewed, adding myself to contributors.json * Scripts/webkitpy/common/config/contributors.json: 2017-05-09 Jonathan Bedard REGRESSION: ImageDiff not building with make https://bugs.webkit.org/show_bug.cgi?id=171788 Reviewed by Alex Christensen. * Makefile: Build ImageDiff for all platforms. 2017-05-09 Fujii Hironori [Win] ImageDiff isn't built since Bug 168945 https://bugs.webkit.org/show_bug.cgi?id=171847 Reviewed by Alex Christensen. * CMakeLists.txt: Add 'ImageDiff' sub-directory to build if WIN32. * ImageDiff/ImageDiff.cpp: Include some header files to fix compilation errors. * ImageDiff/PlatformWin.cmake: Define USE_CAIRO if WinCairo port. 2017-05-09 Zan Dobersek Upstream the WPE port https://bugs.webkit.org/show_bug.cgi?id=171110 Reviewed by Alex Christensen. webkit-dev thread: https://lists.webkit.org/pipermail/webkit-dev/2017-April/028923.html Add WPE support to various tooling scripts, TestWebKitAPI and WebKitTestRunner. In-file changes removed from this ChangeLog entry for brevity. * BuildSlaveSupport/built-product-archive: * BuildSlaveSupport/test-result-archive: * CMakeLists.txt: * ImageDiff/PlatformWPE.cmake: Added. * Scripts/build-dumprendertree: * Scripts/build-webkit: * Scripts/build-webkittestrunner: * Scripts/update-webkit-libs-jhbuild: * Scripts/update-webkitwpe-libs: Added. * Scripts/webkitdirs.pm: * Scripts/webkitperl/FeatureList.pm: * Scripts/webkitpy/layout_tests/run_webkit_tests.py: * Scripts/webkitpy/port/factory.py: * Scripts/webkitpy/port/wpe.py: Added. * TestWebKitAPI/PlatformWPE.cmake: Added. * TestWebKitAPI/wpe/InjectedBundleControllerWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. * TestWebKitAPI/wpe/PlatformUtilitiesWPE.cpp: Added. * TestWebKitAPI/wpe/main.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. * WebKitTestRunner/InjectedBundle/AccessibilityController.cpp: * WebKitTestRunner/InjectedBundle/AccessibilityController.h: * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/InjectedBundle/wpe/AccessibilityControllerWPE.cpp: Added. * WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp: Added. * WebKitTestRunner/InjectedBundle/wpe/ActivateFontsWPE.cpp: Added. * WebKitTestRunner/InjectedBundle/wpe/InjectedBundleWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. * WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. * WebKitTestRunner/PlatformWPE.cmake: Added. * WebKitTestRunner/PlatformWebView.h: * WebKitTestRunner/TestController.cpp: * WebKitTestRunner/wpe/EventSenderProxyWPE.cpp: Added. * WebKitTestRunner/wpe/HeadlessViewBackend.cpp: Added. * WebKitTestRunner/wpe/HeadlessViewBackend.h: Copied from Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h. * WebKitTestRunner/wpe/PlatformWebViewWPE.cpp: Added. * WebKitTestRunner/wpe/TestControllerWPE.cpp: Added. * WebKitTestRunner/wpe/main.cpp: Copied from Source/WebKit2/Shared/DrawingAreaInfo.h. * jhbuild/jhbuild-wrapper: * wpe/generate-inspector-gresource-manifest.py: Added. * wpe/jhbuild.modules: Added. * wpe/jhbuildrc: Added. * wpe/patches/cairo-egl-device-create-for-egl-surface.patch: Added. * wpe/patches/fontconfig-C-11-requires-a-space-between-literal-and-identifier.patch: Added. * wpe/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Added. * wpe/patches/gdate-suppress-string-format-literal-warning.patch: Added. * wpe/patches/glib-warning-fix.patch: Added. * wpe/patches/gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch: Added. * wpe/patches/gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch: Added. * wpe/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Added. * wpe/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Added. * wpe/patches/gstreamer-typefind-Only-push-a-CAPS-event-downstream-if-the-.patch: Added. 2017-05-08 Jonathan Bedard Implement PlatformWebView::windowSnapshotImage and createBitmapContextFromWebView for iOS devices https://bugs.webkit.org/show_bug.cgi?id=169421 Reviewed by Tim Horton. * DumpRenderTree/ios/PixelDumpSupportIOS.mm: (createBitmapContextFromWebView): Implement for IOSurface. * WebKitTestRunner/ios/PlatformWebViewIOS.mm: (WTR::PlatformWebView::windowSnapshotImage): Use snapshot API for device. 2017-05-08 Jonathan Bedard buildbot: Cleanup simulators after running tests https://bugs.webkit.org/show_bug.cgi?id=171679 Reviewed by Aakash Jain. simctl is partitioned for each user. Since kill-old-processes is run as root, we need to specify the buildbot user when tearing down simulators between steps. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (KillOldProcesses): Pass buildbot user to kill-old-processes. * BuildSlaveSupport/kill-old-processes: (main): Specify the user for simctl if one has been provided. 2017-05-08 Carlos Alberto Lopez Perez REGRESSION(r216179): [GTK] Script install-dependencies misses liborc https://bugs.webkit.org/show_bug.cgi?id=171681 Reviewed by Carlos Garcia Campos. * gtk/install-dependencies: 2017-05-08 Carlos Garcia Campos Unreviewed. Fix GTK+ test /webkit2/WebKitConsoleMessage/network-error after r215556. Glib uses now Unicode quotes in error messages. * TestWebKitAPI/Tests/WebKit2Gtk/TestConsoleMessage.cpp: (testWebKitConsoleMessageNetworkError): 2017-05-08 Carlos Garcia Campos Unreviewed. Fix GTK+ test /webkit2/WebKitWebView/javascript-dialogs after r215404. Sending down+up keys is no longer enough to simulate a real user interaction after r215404, the key events now should be handled by the web process to be considered a user interaction. So, add an input to the HTML and send characters to the input. Also fix typo in the function name. * TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp: (testWebViewJavaScriptDialogs): 2017-05-07 Michael Catanzaro [GTK] Cannot sign in with new Google sign-in page https://bugs.webkit.org/show_bug.cgi?id=171770 Unreviewed. This just adds a test. * TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp: (TestWebKitAPI::TEST): 2017-05-06 Simon Fraser [iOS WK2] Make rotation tests more reliable https://bugs.webkit.org/show_bug.cgi?id=171778 Reviewed by Tim Horton. Switching between "safari-style" rotation and normal rotation left state on the WKWebView that would cause later viewport-sensitive tests to fail. The WKWebView would be left with override layout parameters, and an override orientation, and these caused viewport size to leak into later tests, and WebCore orientation to not get reset correctly. Also, WKWebView was unregistering for UIWindowDidRotateNotification notifications when an override orientation was set, and would never re-register, causing lost orientationchanged events. Fix by exposing WKWebView SPI to clear the various bits of overide state. Also don't unregister from the UIWindowDidRotateNotification notification; it's already ignored anyway if it fires. Also wait for a visible content rect update after resizing the WKWebVeiw between tests, to make sure the WebProcess is caught up before proceeding with the test. * WebKitTestRunner/ios/PlatformWebViewIOS.mm: (-[PlatformWebViewController viewWillTransitionToSize:withTransitionCoordinator:]): * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformResetStateToConsistentValues): (WTR::TestController::platformConfigureViewForTest): 2017-05-06 Csaba Osztrogonác [Mac][cmake] Buildfix after r216047 https://bugs.webkit.org/show_bug.cgi?id=171769 Unreviewed buildfix. * WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: 2017-05-05 Brady Eidson API test WebKit2.WebsiteDataStoreCustomPaths is failing on ios-simulator. and https://bugs.webkit.org/show_bug.cgi?id=171513 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: (TEST): 2017-05-05 Brian Burg [Cocoa] Converting from WebCore::Cookie to NSHTTPCookie always marks cookies as session cookies https://bugs.webkit.org/show_bug.cgi?id=171748 Reviewed by Michael Catanzaro. Remove temporary workaround now that the assertion failure is fixed. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): 2017-05-05 Simon Fraser Make it possible to test rotation in iOS WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=171755 Reviewed by Tim Horton. Add to UIScriptController: void simulateRotation(DeviceOrientation orientation, object callback); void simulateRotationLikeSafari(DeviceOrientation orientation, object callback); The former just does a view resize, as a simple WKWebView app would do. The second does animation more like MobileSafari, using _begin/_endAnimatedResize. and associated override layout size and interface orientation. The two behaviors produce different resize and orientationchange events and sizes, and both need to be tested. Rotation is initiated by a call on UIDevice, and responded to by the root view controller, which is now a custom subclass (PlatformWebViewController). * DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::simulateRotation): (WTR::UIScriptController::simulateRotationLikeSafari): * DumpRenderTree/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::simulateRotation): (WTR::UIScriptController::simulateRotationLikeSafari): * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: * TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::toDeviceOrientation): (WTR::UIScriptController::simulateRotation): (WTR::UIScriptController::simulateRotationLikeSafari): * TestRunnerShared/UIScriptContext/UIScriptController.h: * WebKitTestRunner/cocoa/TestRunnerWKWebView.h: * WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView dealloc]): (-[TestRunnerWKWebView _didEndRotation]): * WebKitTestRunner/ios/PlatformWebViewIOS.mm: (-[PlatformWebViewController viewWillTransitionToSize:withTransitionCoordinator:]): (WTR::PlatformWebView::PlatformWebView): * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformResetStateToConsistentValues): * WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::toUIDeviceOrientation): (WTR::UIScriptController::simulateRotation): (WTR::UIScriptController::simulateRotationLikeSafari): (WTR::UIScriptController::platformClearAllCallbacks): * WebKitTestRunner/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::simulateRotation): (WTR::UIScriptController::simulateRotationLikeSafari): 2017-05-05 Jonathan Bedard Use ImageDiff built by host SDK and remove ImageDiff from DumpRenderTree https://bugs.webkit.org/show_bug.cgi?id=168945 Reviewed by David Kilzer. Use ImageDiff built with the host machine's SDK and stop building ImageDiff with the target SDK. These two changes must happen simultaneously because some archives will clobber the ImageDiff from the host SDK with the ImageDiff from the target SDK. * DumpRenderTree/mac/Configurations/ImageDiff.xcconfig: Remove ImageDiff from project. * DumpRenderTree/PlatformWin.cmake: Remove ImageDiff. Note that the CMakeLists.txt in the tools directory still includes ImageDiff. * DumpRenderTree/cg/ImageDiffCG.cpp: Removed. * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig: Removed. * Scripts/webkitpy/port/darwin.py: (DarwinPort._path_to_image_diff): Return the correct path to ImageDiff when building locally or when running archives. * Scripts/webkitpy/port/image_diff.py: (IOSSimulatorImageDiffer): Deleted. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.diff_image): Deleted. 2017-05-05 Brian Burg API test WebKit2.WKHTTPCookieStore fails due to possible issue with handling non-session cookies https://bugs.webkit.org/show_bug.cgi?id=171748 Unreviewed test gardening. The assertion failure will be investigated separately in order to avoid rolling out the fix for "secure" cookies. This assertion fails even without r216258 applied. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): 2017-05-05 Jonathan Bedard Unreviewed, rolling out r216260. Breaks internal iOS testers Reverted changeset: "Use ImageDiff built by host SDK and remove ImageDiff from DumpRenderTree" https://bugs.webkit.org/show_bug.cgi?id=168945 http://trac.webkit.org/changeset/216260 2017-05-05 Jonathan Bedard Use ImageDiff built by host SDK and remove ImageDiff from DumpRenderTree https://bugs.webkit.org/show_bug.cgi?id=168945 Reviewed by David Kilzer. Use ImageDiff built with the host machine's SDK and stop building ImageDiff with the target SDK. These two changes must happen simultaneously because some archives will clobber the ImageDiff from the host SDK with the ImageDiff from the target SDK. * DumpRenderTree/mac/Configurations/ImageDiff.xcconfig: Remove ImageDiff from project. * DumpRenderTree/PlatformWin.cmake: Remove ImageDiff. Note that the CMakeLists.txt in the tools directory still includes ImageDiff. * DumpRenderTree/cg/ImageDiffCG.cpp: Removed. * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig: Removed. * Scripts/webkitpy/port/darwin.py: (DarwinPort._path_to_image_diff): Return the correct path to ImageDiff when building locally or when running archives. * Scripts/webkitpy/port/image_diff.py: (IOSSimulatorImageDiffer): Deleted. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.diff_image): Deleted. 2017-05-05 Brian Burg [Cocoa] Converting from WebCore::Cookie to NSHTTPCookie always marks cookies as secure https://bugs.webkit.org/show_bug.cgi?id=171700 Reviewed by Brady Eidson. Fix a mistake in the test that should have caught this bug. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): The assertions that were meant to check round-tripping were actually checking the properties of the original cookie objects, not the round-tripped ones. This test now fails without the bugfix and passes when it is applied. 2017-05-05 Daniel Bates Use EXPECT_EQ() when comparing strings in TestWebKitAPI tests https://bugs.webkit.org/show_bug.cgi?id=171698 Reviewed by Darin Adler. We should use EXPECT_EQ() instead of EXPECT_TRUE() to compare WTF::String() objects so that we get pretty diff output when the actual string differs from the expected string as opposed to seeing a boolean result. The former makes makes it straightforward to diagnose a regression without reading the code for the test or instrumenting it to determine the actual string that was compared. * TestWebKitAPI/Tests/WTF/WTFString.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebCore/mac/GPUFunction.mm: (TestWebKitAPI::TEST_F): * TestWebKitAPI/Tests/WebCore/mac/GPULibrary.mm: (TestWebKitAPI::TEST_F): 2017-05-05 Chris Dumez Rename webProcessDidCrashWithReason callback to webProcessDidTerminate and stop calling webProcessDidCrash for client terminations https://bugs.webkit.org/show_bug.cgi?id=171624 Reviewed by Dan Bernstein. Extend API test coverage to cover crashes in addition to terminations requested by the client. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/ProcessDidTerminate.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKit2/ProcessDidCrashWithReason.cpp. (TestWebKitAPI::webProcessWasTerminatedByClient): (TestWebKitAPI::webProcessCrashed): (TestWebKitAPI::TEST): 2017-05-04 Mark Lam DRT's setAudioResultCallback() and IDBRequest::setResult() need to acquire the JSLock. https://bugs.webkit.org/show_bug.cgi?id=171716 Reviewed by Saam Barati. setAudioResultCallback() needs to acquire the JSLock before calling toJS() (which does JS conversion and therefore, potentially JS allocations) and accessing methods of internal JS data structures (which may do JS invocation, etc). * DumpRenderTree/TestRunner.cpp: (setAudioResultCallback): 2017-05-05 Jonathan Bedard buildbot: Cleanup simulators after running tests https://bugs.webkit.org/show_bug.cgi?id=171679 Reviewed by Aakash Jain. We shutdown the simulator process between tests, but in some cases, this is not sufficient. Explicitly shutdown every booted simulator. * BuildSlaveSupport/kill-old-processes: (main): Shutdown all booted simulators. 2017-05-05 Carlos Garcia Campos [GTK] Assertion failure in Inspector::RemoteInspector::setRemoteInspectorClient when disposing WebKitWebContext https://bugs.webkit.org/show_bug.cgi?id=171644 Reviewed by Michael Catanzaro. Check that only one WebKitWebContext can have automation enabled. * TestWebKitAPI/Tests/WebKit2Gtk/TestAutomationSession.cpp: (testAutomationSessionRequestSession): 2017-05-05 Carlos Garcia Campos [GTK] TestController timeout source callback should return G_SOURCE_REMOVE https://bugs.webkit.org/show_bug.cgi?id=171724 Reviewed by Michael Catanzaro. It's currently returning CONTINUE which causes it to be called again even if the run loop has been stopped. * WebKitTestRunner/gtk/TestControllerGtk.cpp: (WTR::timeoutSource): 2017-05-05 Carlos Garcia Campos Unreviewed. Fix wrong assert after r215176. Cairo surface received by computeMD5HashStringForCairoSurface() doesn't need to be ARGB32 since r215176, it could also be RGB24 when created from a web view snapshot. * WebKitTestRunner/cairo/TestInvocationCairo.cpp: (WTR::computeMD5HashStringForCairoSurface): 2017-05-04 Brian Burg lldb_webkit.py should provide a type summary for WebCore::URL https://bugs.webkit.org/show_bug.cgi?id=171670 Reviewed by Jer Noble. Just print out the underlying string using the WTFString provider. * lldb/lldb_webkit.py: (__lldb_init_module): (WebCoreURL_SummaryProvider): (WebCoreURLProvider): (WebCoreURLProvider.__init__): (WebCoreURLProvider.to_string): 2017-05-04 Commit Queue Unreviewed, rolling out r216206. https://bugs.webkit.org/show_bug.cgi?id=171714 Multiple LayoutTests crashing in Document::page() (Requested by ap on #webkit). Reverted changeset: "Remove support for legacy Notifications" https://bugs.webkit.org/show_bug.cgi?id=171487 http://trac.webkit.org/changeset/216206 2017-05-04 Mark Lam API test WTF.StaticStringImpl crashing in TestWebKitAPI::WTF_StaticStringImpl_Test::TestBody() + 3188 https://bugs.webkit.org/show_bug.cgi?id=171702 Reviewed by Filip Pizlo. The test was supposed to use the MAKE_STATIC_STRING_IMPL macro. I had previously changed it to instantiate an automatic StaticStringImpl (i.e. stack allocated) to confirm that the test will detect a regression. Unfortunately, I forgot to change it back to using MAKE_STATIC_STRING_IMPL before I landed the test. This patch fixes that. * TestWebKitAPI/Tests/WTF/StringImpl.cpp: (TestWebKitAPI::neverDestroyedString): 2017-05-04 Ryan Haddad Disable failing API test WebKit2.ResizeWithHiddenContentDoesNotHang. https://bugs.webkit.org/show_bug.cgi?id=170195 Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: (TEST): 2017-05-04 Don Olmstead [Win] Remove redundant macros that are set in the CMake config https://bugs.webkit.org/show_bug.cgi?id=171571 Reviewed by Brent Fulgham. * DumpRenderTree/config.h: * MiniBrowser/win/stdafx.h: * TestWebKitAPI/config.h: 2017-05-04 Said Abou-Hallawa Add testRunner.display() to force displaying the web page for testing https://bugs.webkit.org/show_bug.cgi?id=171694 Reviewed by Simon Fraser. Unlike testRunner.displayAndTrackRepaints(), this new function forces drawing the web page but without track repaints. * DumpRenderTree/TestRunner.cpp: (displayCallback): (TestRunner::staticFunctions): * DumpRenderTree/TestRunner.h: * DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::display): * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::display): * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::display): * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-05-04 Mark Lam NeverDestroyed(ASCIILiteral(...)) is not thread safe. https://bugs.webkit.org/show_bug.cgi?id=171586 Reviewed by Yusuke Suzuki. API test for exercising StaticStringImpl and the MAKE_STATIC_STRING_IMPL macro. * TestWebKitAPI/Tests/WTF/StringImpl.cpp: (TestWebKitAPI::neverDestroyedString): (TestWebKitAPI::getNeverDestroyedStringAtStackDepth): (TestWebKitAPI::TEST): 2017-05-04 Wenson Hsieh [WK2] Add support for keeping the selection in a focused editable element when dragging begins https://bugs.webkit.org/show_bug.cgi?id=171585 Reviewed by Beth Dakin and Zalan Bujtas. Adds 1 new unit test and tweaks existing tests to check that when first responder status is lost after beginning a drag while editing, content is still moved (and not copied) when performing data interaction on a different element. ContentEditableMoveParagraphs checks that content can be shifted within a single element via a move operation rather than a copy. See WebCore ChangeLog for more details. Tests: DataInteractionSimulator.ContentEditableToContentEditable DataInteractionSimulator.ContentEditableToTextarea DataInteractionSimulator.ContentEditableMoveParagraphs DataInteractionSimulator.TextAreaToInput * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/two-paragraph-contenteditable.html: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator initWithWebView:]): (-[DataInteractionSimulator dealloc]): (-[DataInteractionSimulator _advanceProgress]): (-[DataInteractionSimulator waitForInputSession]): (-[DataInteractionSimulator _webView:focusShouldStartInputSession:]): (-[DataInteractionSimulator _webView:didStartInputSession:]): 2017-05-04 Said Abou-Hallawa Rename TestRunner.display() to TestRunner::displayAndTrackRepaints() https://bugs.webkit.org/show_bug.cgi?id=171641 Reviewed by Simon Fraser. The plan is to add back the TestRunner.display() which does the display only without track repaints. * DumpRenderTree/DumpRenderTree.h: * DumpRenderTree/TestRunner.cpp: (displayAndTrackRepaintsCallback): (TestRunner::staticFunctions): (displayCallback): Deleted. (displayInvalidatedRegionCallback): Deleted. * DumpRenderTree/TestRunner.h: * DumpRenderTree/mac/DumpRenderTree.mm: (displayWebView): (displayAndTrackRepaintsWebView): * DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::displayAndTrackRepaints): (TestRunner::display): Deleted. * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::displayAndTrackRepaints): (TestRunner::display): Deleted. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::displayAndTrackRepaints): (WTR::TestRunner::display): Deleted. * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-05-04 Brady Eidson [ios-simulator] API test WebKit2.WebsiteDataStoreCustomPaths is failing. https://bugs.webkit.org/show_bug.cgi?id=171513 Unreviewed gardening. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: (TEST): Skip the failing parts of the test on iOS for now. 2017-05-03 Jonathan Bedard Make ImageDiff stand-alone https://bugs.webkit.org/show_bug.cgi?id=168939 Reviewed by David Kilzer. Create ImageDiff without dependencies on bmalloc and WTF so that it exists as a stand-alone project. Note that this change does not eliminate the ImageDiff inside the DumpRenderTree project. * ImageDiff/ImageDiff.xcodeproj: Added. * ImageDiff/ImageDiff.xcodeproj/project.pbxproj: Added. * ImageDiff/Makefile: Use ImageDiff project. * ImageDiff/PlatformMac.cmake: Added. * ImageDiff/PlatformWin.cmake: Added. * ImageDiff/cg: Added. * ImageDiff/cg/Configurations: Added. * ImageDiff/cg/Configurations/Base.xcconfig: Copied from Tools/DumpRenderTree/mac/Configurations/Base.xcconfig. * ImageDiff/cg/Configurations/DebugRelease.xcconfig: Copied from Tools/DumpRenderTree/mac/Configurations/DebugRelease.xcconfig. * ImageDiff/cg/Configurations/ImageDiff.xcconfig: Copied from Tools/DumpRenderTree/mac/Configurations/ImageDiff.xcconfig. * ImageDiff/cg/ImageDiff.cpp: Copied from Tools/DumpRenderTree/cg/ImageDiffCG.cpp. (createImageFromStdin): Stop using RetainPtr. (createDifferenceImage): Ditto. (main): Ditto. * Scripts/build-imagediff: Stop building WTF and bmalloc. 2017-05-04 Sam Weinig Remove support for legacy Notifications https://bugs.webkit.org/show_bug.cgi?id=171487 Reviewed by Jon Lee. * DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp: (DRTDesktopNotificationPresenter::checkNotificationPermission): * Scripts/webkitperl/FeatureList.pm: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Remove use and definition of ENABLE_LEGACY_NOTIFICATIONS. 2017-05-04 Andy Estes Give +testwebkitapi_configurationWithTestPlugInClassName: a shorter name https://bugs.webkit.org/show_bug.cgi?id=171673 Reviewed by Dan Bernstein. * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLs.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegate.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/CancelFontSubresource.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm: (configurationWithContentFilterSettings): (-[LazilyLoadPlatformFrameworksController init]): * TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptions.mm: (runTestWithWidth): * TestWebKitAPI/Tests/WebKit2Cocoa/UserContentWorld.mm: (TEST): * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/WKWebViewConfigurationExtras.h: * TestWebKitAPI/WKWebViewConfigurationExtras.mm: (+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:]): (+[WKWebViewConfiguration testwebkitapi_configurationWithTestPlugInClassName:]): Renamed to +_test_configurationWithTestPlugInClassName: 2017-05-04 Eric Carlson [MediaStream] Allow host application to enable/disable media capture https://bugs.webkit.org/show_bug.cgi?id=171292 Reviewed by Jer Noble. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm: Added. (-[UserMediaMessageHandler userContentController:didReceiveScriptMessage:]): (-[UserMediaUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]): (-[UserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): (MediaCaptureDisabledTest::SetUp): (MediaCaptureDisabledTest::loadTestAndWaitForMessage): (TEST_F): * TestWebKitAPI/Tests/WebKit2Cocoa/disableGetUserMedia.html: Added. 2017-05-04 Caio Lima Unreviewed, Adding self to contributors.json * Scripts/webkitpy/common/config/contributors.json: Added name. 2017-05-04 Konstantin Tokarev Fix compilation with ICU 59.1 https://bugs.webkit.org/show_bug.cgi?id=171612 Reviewed by Mark Lam. ICU 59.1 has broken source compatibility. Now it defines UChar as char16_t, which does not allow automatic type conversion from unsigned short in C++ code. * TestRunnerShared/UIScriptContext/UIScriptContext.cpp: (UIScriptContext::tryToCompleteUIScriptForCurrentParentCallback): 2017-05-04 Andy Estes [Cocoa] Add an optional width parameter to -[WKWebProcessPlugInNodeHandle renderedImageWithOptions:] https://bugs.webkit.org/show_bug.cgi?id=171646 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptions.mm: (runTestWithWidth): (TEST): (-[RenderedImageWithOptionsObject didRenderImageWithSize:]): Deleted. * TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptionsPlugIn.mm: (-[RenderedImageWithOptionsPlugIn webProcessPlugIn:didCreateBrowserContextController:]): (-[RenderedImageWithOptionsPlugIn webProcessPlugInBrowserContextController:didFinishLoadForFrame:]): (-[RenderedImageWithOptionsPlugIn renderImageWithWidth:completionHandler:]): * TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptionsProtocol.h: 2017-05-04 Adrian Perez de Castro [GTK] Fontconfig 2.11.2 in JHBuild does not build with glibc 2.25+ or gperf 3.1+ https://bugs.webkit.org/show_bug.cgi?id=171649 Reviewed by Carlos Garcia Campos. Add two patches picked from the upstream repository to fix building of the Fontconfig module in JHBuild. Additionally, this needed a patch to add "autogen.sh" as it is not included in release tarballs. Also: building the module with srcdir!=builddir prevents "fcobjshash.gperf" being regenerated (which is needed) so this is disabled for the Fontconfig module. * gtk/jhbuild.modules: * gtk/patches/fontconfig-2.11.1-add-autogen.patch: Added. * gtk/patches/fontconfig-Avoid-conflicts-with-integer-width-macros-from-TS-18661-1-2014.patch: Added. * gtk/patches/fontconfig-Fix-the-build-issue-with-gperf-3.1.patch: Added. 2017-05-04 Commit Queue Unreviewed, rolling out r216172. https://bugs.webkit.org/show_bug.cgi?id=171654 FTBFS for iOS due to missing WebPageProxy::stopMediaCapture() implementation. (Requested by ddkilzer on #webkit). Reverted changeset: "[MediaStream] Allow host application to enable/disable media capture" https://bugs.webkit.org/show_bug.cgi?id=171292 http://trac.webkit.org/changeset/216172 2017-05-04 Carlos Garcia Campos [GTK] Bump GStreamer version to 1.10.4 in jhbuild https://bugs.webkit.org/show_bug.cgi?id=171595 Reviewed by Xabier Rodriguez-Calvar. * gtk/jhbuild.modules: * gtk/patches/gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch: Removed. * gtk/patches/gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch: Removed. * gtk/patches/gst-plugins-good-0001-rtpbin-pipeline-gets-an-EOS-when-any-rtpsources-byes.patch: Removed. * gtk/patches/gst-plugins-good-0002-rtpbin-avoid-generating-errors-when-rtcp-messages-ar.patch: Removed. * gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch: * gtk/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Removed. * gtk/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Removed. 2017-05-03 Saam Barati How we build polymorphic cases is wrong when making a call from Wasm https://bugs.webkit.org/show_bug.cgi?id=171527 Reviewed by JF Bastien. * Scripts/run-jsc-stress-tests: 2017-05-03 Eric Carlson [MediaStream] Allow host application to enable/disable media capture https://bugs.webkit.org/show_bug.cgi?id=171292 Reviewed by Jer Noble. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm: Added. (-[UserMediaMessageHandler userContentController:didReceiveScriptMessage:]): (-[UserMediaUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]): (-[UserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): (MediaCaptureDisabledTest::SetUp): (MediaCaptureDisabledTest::loadTestAndWaitForMessage): (TEST_F): * TestWebKitAPI/Tests/WebKit2Cocoa/disableGetUserMedia.html: Added. 2017-05-03 John Wilander Resource Load Statistics: Remove all statistics for modifiedSince website data removals https://bugs.webkit.org/show_bug.cgi?id=171584 Reviewed by Brent Fulgham. New function to call the clear function that takes a modifiedSince parameter. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-05-03 Commit Queue Unreviewed, rolling out r216160 and r216161. https://bugs.webkit.org/show_bug.cgi?id=171640 These changes broke the iOS build. (Requested by mlewis13 on #webkit). Reverted changesets: "[MediaStream] Allow host application to enable/disable media capture" https://bugs.webkit.org/show_bug.cgi?id=171292 http://trac.webkit.org/changeset/216160 "[MediaStream] Allow host application to enable/disable media capture" https://bugs.webkit.org/show_bug.cgi?id=171292 http://trac.webkit.org/changeset/216161 2017-05-03 Eric Carlson [MediaStream] Allow host application to enable/disable media capture https://bugs.webkit.org/show_bug.cgi?id=171292 Reviewed by Jer Noble. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm: Added. (-[UserMediaMessageHandler userContentController:didReceiveScriptMessage:]): (-[UserMediaUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]): (-[UserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): (MediaCaptureDisabledTest::SetUp): (MediaCaptureDisabledTest::loadTestAndWaitForMessage): (TEST_F): * TestWebKitAPI/Tests/WebKit2Cocoa/disableGetUserMedia.html: Added. 2017-04-26 Jiewen Tan [WebCrypto] Add an api test for testing wrapping/unwrapping serialized crypto keys https://bugs.webkit.org/show_bug.cgi?id=171350 Patched by Brady Eidson. Reviewed by Brent Fulgham. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/NavigationClientDefaultCrypto.cpp: Added. (TestWebKitAPI::runJavaScriptAlert): (TestWebKitAPI::decidePolicyForNavigationAction): (TestWebKitAPI::decidePolicyForNavigationResponse): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2/navigation-client-default-crypto.html: Added. 2017-05-03 Simon Fraser Have WKWebView call _updateVisibleContentRects for the current transaction if possible, rather than always delaying https://bugs.webkit.org/show_bug.cgi?id=171619 https://bugs.webkit.org/show_bug.cgi?id=170195 Reviewed by Tim Horton. Re-enable WebKit2.ResizeWithHiddenContentDoesNotHang. * TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: (TEST): 2017-05-03 Michael Catanzaro YouTube user agent quirk breaks new YouTube https://bugs.webkit.org/show_bug.cgi?id=171603 Reviewed by Carlos Garcia Campos. Remove the YouTube quirk test. * TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp: (TestWebKitAPI::TEST): 2017-05-03 Said Abou-Hallawa Async image decoding should be disabled for snapshots, printing and preview https://bugs.webkit.org/show_bug.cgi?id=171467 Reviewed by Simon Fraser. Add a API test for snapshotting with large images. Ensure the images are drawn correctly which implies they should have been synchronously decoded. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/large-red-square-image.html: Added. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewSnapshot.mm: (TEST): 2017-05-03 Chris Dumez [WK2] Extend processDidCrash delegate to let the client know the reason for the crash https://bugs.webkit.org/show_bug.cgi?id=171565 Reviewed by Sam Weinig. Add API test coverage. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/ProcessDidCrashWithReason.cpp: Added. (TestWebKitAPI::didFinishNavigation): (TestWebKitAPI::didCrashWithReason): (TestWebKitAPI::TEST): 2017-05-02 David Kilzer check-webkit-style should also keep js-test-post[-async].js in sync Reviewed by Joseph Pecoraro. * Scripts/webkitpy/style/checker.py: (_NEVER_SKIPPED_JS_FILES): Add new list that just contains JavaScript files not to be skipped. (_NEVER_SKIPPED_FILES): Update to use _NEVER_SKIPPED_JS_FILES. (CheckerDispatcher._create_checker): Update to use _NEVER_SKIPPED_JS_FILES. * Scripts/webkitpy/style/checkers/jstest.py: (ALL_JS_TEST_FUNCTION_FILES): Rename from ALL_JS_TEST_FILES. This is the list of files containing functions that need to be kept in sync. (KEEP_JS_TEST_FILES_IN_SYNC): Change to list-of-lists format so we can keep more sets of files in sync between LayoutTests/resources and LayoutTests/http/tests/resources. (JSTestChecker.check): Update to use KEEP_JS_TEST_FILES_IN_SYNC as list of lists. Update for ALL_JS_TEST_FUNCTION_FILES rename. (JSTestChecker.check_js_test_files): Add 'file_group' argument for list of files to check instead of using KEEP_JS_TEST_FILES_IN_SYNC. (JSTestChecker.check_js_test_functions): Update for ALL_JS_TEST_FUNCTION_FILES rename. * Scripts/webkitpy/style/checkers/jstest_unittest.py: (JSTestCheckerTestCase): (JSTestCheckerTestCase.test_map_functions_to_dict): - Add test case for map_functions_to_dict() in jstest.py. 2017-05-02 Aakash Jain ews should indicate in logs when it fails to fetch the attachment https://bugs.webkit.org/show_bug.cgi?id=171583 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: (Bugzilla.fetch_attachment): Added log statement. 2017-05-02 David Kilzer Rolling out jstest_unittest.py so it can be reviewed Follow-up fix for: check-webkit-style should keep JavaScript test functions in sync * Scripts/webkitpy/style/checkers/jstest_unittest.py: Remove. 2017-05-02 David Kilzer check-webkit-style should keep JavaScript test functions in sync Reviewed by Joseph Pecoraro. Add a new JSTestChecker for check-webkit-style that keeps these two files in sync: LayoutTests/http/tests/resources/js-test-pre.js LayoutTests/resources/js-test-pre.js And keeps implementations of shouldBe(), shouldNotBe(), shouldNotThrow(), and shouldThrow() in sync across multiple files (with the ability to add more functions later): JSTests/stress/resources/standalone-pre.js LayoutTests/http/tests/resources/js-test-pre.js LayoutTests/resources/js-test-pre.js LayoutTests/resources/js-test.js LayoutTests/resources/standalone-pre.js * Scripts/webkitpy/style/checker.py: Remove unused import. Add import for JSTestChecker. (_NEVER_SKIPPED_FILES): Add array of file names that are never skipped regardless of other rules. (_all_categories): Add JSTestChecker categories. (CheckerDispatcher.should_skip_without_warning): Use _NEVER_SKIPPED_FILES. (CheckerDispatcher._create_checker): Return JSTestChecker for the files to check. * Scripts/webkitpy/style/checkers/jstest.py: Add. (map_functions_to_dict): Parse JavaScript source by splitting on /^function\s+/ regex. This is good enough for the sanity checks to keep function implementations in sync. (strip_blank_lines_and_comments): Strips blank lines and lines with comments from the end of a chunk of text representing a function. (JSTestChecker): New checker. (JSTestChecker.__init__): (JSTestChecker.check): (JSTestChecker.check_js_test_files): Keeps whole files in sync. (JSTestChecker.check_js_test_functions): Keeps individual functions in sync. * Scripts/webkitpy/style/checkers/jstest_unittest.py: Add test case. (JSTestTestCase): (JSTestTestCase.test_map_functions_to_dict): 2017-05-02 Joanmarie Diggs AX: Update implementation of aria-orientation https://bugs.webkit.org/show_bug.cgi?id=171166 Reviewed by Chris Fleizach. Return "AXUnknownOrientation" when ATK_STATE_VERTICAL and ATK_STATE_HORIZONTAL are both absent from the state set. Before we were returning an empty string which was not consistent with what the Mac port does, thus making shared tests harder. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::orientation): 2017-05-01 David Kilzer Stop using sprintf() in JavaScriptCore debugger Reviewed by Keith Miller. * Scripts/webkitpy/style/checker.py: (_PATH_RULES_SPECIFIER): Ignore some formatting checkers since Source/JavaScriptCore/disassembler/udis86/ is generated code. 2017-05-01 Timothy Horton Expose viewport-fit instead of clip-to-safe-area https://bugs.webkit.org/show_bug.cgi?id=171503 Reviewed by Simon Fraser. * DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::setSafeAreaInsets): (WTR::UIScriptController::setObscuredInsets): Deleted. * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: * TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::setSafeAreaInsets): (WTR::UIScriptController::setObscuredInsets): Deleted. * TestRunnerShared/UIScriptContext/UIScriptController.h: * WebKitTestRunner/cocoa/TestRunnerWKWebView.h: * WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView setOverrideSafeAreaInsets:]): (-[TestRunnerWKWebView _safeAreaInsetsForFrame:inSuperview:]): * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformResetStateToConsistentValues): * WebKitTestRunner/ios/UIKitSPI.h: * WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::setSafeAreaInsets): (WTR::UIScriptController::setObscuredInsets): Deleted. Expose a safe area inset setter instead of obscured insets. 2017-05-01 Wenson Hsieh Unreviewed, fix the build on a new internal SDK Replace usages of NSItemProviderRepresentationVisibilityAll with UIItemProviderRepresentationOptionsVisibilityAll. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (-[UIItemProvider registerDataRepresentationForTypeIdentifier:withData:]): (TestWebKitAPI::TEST): 2017-05-01 David Kilzer [Cocoa] Replace uses of [get…Class() alloc] in TestWebKitAPI Reviewed by Dan Bernstein. * TestWebKitAPI/Tests/WebKit/ios/AudioSessionCategoryIOS.mm: Remove UIKit soft-link since TestWebKitAPI links to UIKit.framework. (TestWebKitAPI::WebKit1_AudioSessionCategoryIOS_Test): Use UIWindow and UIWebView classes directly. * TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm: Remove UIKit soft-link since TestWebKitAPI links to UIKit.framework. (RequiresUserActionForPlaybackTest::createWebView): Use UIWindow class directly. 2017-05-01 Brady Eidson Update names in WKURLSchemeHandler/WKURLSchemeHandlerTask APIs. and https://bugs.webkit.org/show_bug.cgi?id=171508 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: (-[SchemeHandler webView:startURLSchemeTask:]): (-[SchemeHandler webView:stopURLSchemeTask:]): (-[SchemeHandler webView:startTask:]): Deleted. (-[SchemeHandler webView:stopTask:]): Deleted. 2017-05-01 Jason Marcell Add a new function for getting the Git hash for a pure git directory. https://bugs.webkit.org/show_bug.cgi?id=171450 Reviewed by David Kilzer. * Scripts/VCSUtils.pm: (gitHashForDirectory): 2017-05-01 Joanmarie Diggs [ATK] Expose values of aria-rowcount, aria-colcount, aria-rowindex, aria-colindex, aria-rowspan, and aria-colspan as object attributes https://bugs.webkit.org/show_bug.cgi?id=171496 Reviewed by Chris Fleizach. Add new attribute names so that the values of the object attributes can be tested. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::numberAttributeValue): 2017-05-01 Beth Dakin On-screen panel for candidate bar is in the wrong place when the caret is at the start of a paragraph https://bugs.webkit.org/show_bug.cgi?id=171453 -and corresponding- rdar://problem/29779764 Reviewed by Tim Horton. This test hard-codes the y-coordinate for the expected candidateRect. * TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm: (TEST): 2017-05-01 David Kilzer check-webkit-style: Enable sprintf(), strcat(), strcpy() and printf() format checks Reviewed by Brent Fulgham. * Scripts/webkitpy/style/checkers/cpp.py: (check_language): Change categories for certain checkers from 'runtime/printf' to 'security/printf' so they are no longer filtered. (CppChecker.categories): Add 'security/printf'. * Scripts/webkitpy/style/checkers/cpp_unittest.py: (CppStyleTest.test_insecure_string_operations): Add new test for sprintf(), strcat() and strcpy(). (CppStyleTest.test_format_strings): Update test results for new 'security/printf' category use. 2017-05-01 Joanmarie Diggs AX: [GTK] Add support to query for aria-current https://bugs.webkit.org/show_bug.cgi?id=149016 Reviewed by Chris Fleizach. Implement support for "AXARIACurrent" string attribute value. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: 2017-05-01 David Kilzer REGRESSION (r216000): test-webkitpy fails after adding new soft-linked class checker Unreviewed. Follow-up fix for: [Cocoa] Have check-webkit-style advise against use of [get…Class() alloc] https://bugs.webkit.org/show_bug.cgi?id=171486 * Scripts/webkitpy/style/checkers/cpp.py: (check_soft_link_class_alloc): Use (\w+) instead of ([^\s]+) to match and capture the function name. The latter also mistakenly matches C-preprocessor directives. (CppChecker.categories): Add 'runtime/soft-linked-alloc', which is a requirement for the CppChecker class. 2017-05-01 Carlos Garcia Campos [GTK] Add automation session API https://bugs.webkit.org/show_bug.cgi?id=171428 Reviewed by Carlos Alberto Lopez Perez. Add an automation mode to MiniBrowser using the new API and add a unit test too. * MiniBrowser/gtk/BrowserWindow.c: (webViewTitleChanged): (webViewDecidePolicy): (newTabCallback): (openPrivateWindow): (browserWindowFinalize): (browser_window_init): (browser_window_get_or_create_web_view_for_automation): * MiniBrowser/gtk/BrowserWindow.h: * MiniBrowser/gtk/main.c: (createBrowserTab): (createWebViewForAutomationCallback): (automationStartedCallback): (main): * TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: * TestWebKitAPI/Tests/WebKit2Gtk/TestAutomationSession.cpp: Added. (testAutomationSessionRequestSession): (beforeAll): (afterAll): 2017-04-30 Dan Bernstein [Cocoa] Have check-webkit-style advise against use of [get…Class() alloc] https://bugs.webkit.org/show_bug.cgi?id=171486 Reviewed by Sam Weinig. * Scripts/webkitpy/style/checkers/cpp.py: (check_soft_link_class_alloc): Added. Looks for [get…Class() alloc] and suggests alloc…Instance() instead. (check_style): Invoke new check. 2017-04-30 Brady Eidson More fixing after r215991 https://bugs.webkit.org/show_bug.cgi?id=171483 * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: (TEST): 2017-04-30 Brady Eidson Updates to _WKWebsiteDataStoreConfiguration cookie storage location SPI. and https://bugs.webkit.org/show_bug.cgi?id=171483 Reviewed by Geoff Garen (and kind of Andy Estes). * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: (TEST): 2017-04-30 Joanmarie Diggs [ATK] Implement support for aria-autocomplete https://bugs.webkit.org/show_bug.cgi?id=171167 Reviewed by Chris Fleizach. Add "AXSupportsAutoCompletion" attribute so the presence of ATK_STATE_SUPPORTS_AUTOCOMPLETION can be tested. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::boolAttributeValue): 2017-04-30 Joanmarie Diggs [ATK] ARIA treegrid role should be exposed as ATK_ROLE_TREE_TABLE; not ATK_ROLE_TABLE https://bugs.webkit.org/show_bug.cgi?id=171170 Reviewed by Chris Fleizach. Add "AXInterfaceTable" attribute to test which elements implement AtkTable. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::boolAttributeValue): 2017-04-30 Joanmarie Diggs [ATK] Emit object:state-changed:busy event when aria-busy value changes https://bugs.webkit.org/show_bug.cgi?id=171181 Reviewed by Chris Fleizach. Add handler for AXElementBusyChanged notifications. * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: 2017-04-29 Aakash Jain Use PEP8 style guide for raising exceptions in webkitpy. https://bugs.webkit.org/show_bug.cgi?id=171439 Reviewed by Daniel Bates. As per https://www.python.org/dev/peps/pep-0008/ "When raising an exception in Python 2, use raise ValueError('message') instead of the older form raise ValueError, 'message'" * Scripts/webkitpy/common/net/irc/ircbot.py: Using new style for raising exceptions. * Scripts/webkitpy/common/thread/messagepump.py: Same. * Scripts/webkitpy/tool/bot/queueengine.py: Same. * Scripts/webkitpy/tool/commands/queues.py: Same. * Scripts/webkitpy/tool/commands/stepsequence.py: Same. * Scripts/webkitpy/tool/multicommandtool.py: Same. * Scripts/webkitpy/tool/steps/abstractstep.py: Same. 2017-04-28 Simon Fraser Add system trace points for Document::updateTouchEventRegions() https://bugs.webkit.org/show_bug.cgi?id=171470 rdar://problem/31901239 Reviewed by Tim Horton. Add trace markers for updateTouchEventRegions. * Tracing/SystemTracePoints.plist: 2017-04-28 Jonathan Bedard webkitpy: Add apple_additions to webkitpy to insert Internal tools https://bugs.webkit.org/show_bug.cgi?id=170461 Reviewed by Daniel Bates. Allow a package to be pulled in by run-webkit-tests which provides an interface to run layout tests on an iOS device. If this package is not available, throw an exception when attempting to run layout tests on an iOS device. * Scripts/webkitpy/port/config.py: (apple_additions): Import apple_additions package. * Scripts/webkitpy/port/device.py: (Device.install_dylibs): Pass a directory with all the frameworks and dylibs to be installed on a device. (Device.prepare_for_testing): Pass a list of ports to forward from the device to the host, the bundle id of the app to be used for testing and a path to the layout test directory to be mounted on the device. (Device.finished_testing): * Scripts/webkitpy/port/factory.py: (platform_options): Add apple_additions platform options if apple_additions exists. * Scripts/webkitpy/port/ios.py: (IOSPort.setup_test_run): Install dylibs and frameworks on the device, pass ports to forward, the bundle ID of the testing app and the layout tests directory to each device. * Scripts/webkitpy/port/ios_device.py: (IOSDevicePort): (IOSDevicePort.default_child_processes): Query apple_additions for the number of child processes to be run. (IOSDevicePort.using_multiple_devices): Always assume multiple devices are used. When a single device is used, it is still accessed through an array. (IOSDevicePort._device_for_worker_number_map): Query apple_additions for the device for worker number map. (IOSDevicePort._driver_class): Query apple_additions for the test driver. (IOSDevicePort.determine_full_port_name): Use class variable over hard-coded string. (IOSDevicePort.check_for_leaks): No implementation for iOSDevicePort. (IOSDevicePort.look_for_new_crash_logs): Ditto. (IOSDevicePort.look_for_new_samples): Ditto. (IOSDevicePort.sample_process): Ditto. (IOSDevicePort._build_driver_flags): Use class variable over hard-coded string. (IOSDevicePort._create_devices): Check that devices are available for testing and check that we have enough devices for each child process. (IOSDevicePort.clean_up_test_run): Have apple_additions preform any needed clean up. * Scripts/webkitpy/port/ios_device_unittest.py: (IOSDeviceTest.test_operating_system): (IOSDeviceTest.test_spindump): Override method from DarwinTest. (IOSDeviceTest.test_sample_process): Ditto. (IOSDeviceTest.test_sample_process_exception): Ditto. 2017-04-28 Wenson Hsieh Fix and re-enable data interaction unit tests https://bugs.webkit.org/show_bug.cgi?id=171446 Reviewed by Tim Horton. Enables all DataInteractionTests, and adjusts file upload tests to no longer write to a temporary file before registering with the UIItemProvider, and instead just register data directly via -registerDataRepresentationForTypeIdentifier:visibility:loadHandler:. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): (temporaryURLForDataInteractionFileLoad): Deleted. (cleanUpDataInteractionTemporaryPath): Deleted. (-[UIItemProvider registerFileRepresentationForTypeIdentifier:withData:filename:]): Deleted. * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: 2017-04-28 Brady Eidson Teach the DatabaseProcess to be fully SessionID aware https://bugs.webkit.org/show_bug.cgi?id=171451 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: 2017-04-28 Jonathan Bedard Unreviewed follow-up to r214705. shut.copytree will fail if given a file as an argument instead of a directory. * Scripts/webkitpy/common/system/filesystem.py: (FileSystem.copy_to_base_host): Use copytree when source is a directory and copyfile when source is a file. (FileSystem.copy_from_base_host): Ditto. 2017-04-28 Chris Dumez Update DOMTokenList.replace() to match the latest DOM specification https://bugs.webkit.org/show_bug.cgi?id=171388 Reviewed by Alex Christensen. Add API test coverage for new Vector API. * TestWebKitAPI/Tests/WTF/Vector.cpp: (TestWebKitAPI::TEST): 2017-04-28 Jonathan Bedard WebKitTestRunner/DumpRenderTree prevent device from sleeping https://bugs.webkit.org/show_bug.cgi?id=170731 Reviewed by Alex Christensen. While running layout tests on a device, the device should not be put asleep. * DumpRenderTree/mac/DumpRenderTree.mm: (dumpRenderTree): Disable idle timer. * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformInitialize): Ditto. 2017-04-28 Brady Eidson Start of support for multiple WebsiteDataStore/SessionIDs per process https://bugs.webkit.org/show_bug.cgi?id=171422 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: (TEST): 2017-04-28 Youenn Fablet Adding a runtime flag specific to MediaDevices https://bugs.webkit.org/show_bug.cgi?id=171433 Reviewed by Geoffrey Garen. Updating WTR and DRT as peer connection and media stream runtime flags are enabled by default. Setting media devices runtime flag to true for WTR and DRT. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): (resetWebPreferencesToConsistentValues): * TestWebKitAPI/Tests/WebKit2/EnumerateMediaDevices.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2/UserMedia.cpp: (TestWebKitAPI::TEST): * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setMediaDevicesEnabled): (WTR::TestRunner::setMediaStreamEnabled): Deleted. (WTR::TestRunner::setPeerConnectionEnabled): Deleted. * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): 2017-04-28 Dean Jackson [WebGPU] Label MTLCommandQueues with a prefix for internal telemetry https://bugs.webkit.org/show_bug.cgi?id=171441 Reviewed by Tim Horton. Add an API test for GPUCommandQueue, exercising creation and setting the label. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebCore/mac/GPUCommandQueue.mm: Added. (TestWebKitAPI::TEST_F): 2017-04-28 Joanmarie Diggs [ATK] aria-modal="true" should be exposed via ATK_STATE_MODAL https://bugs.webkit.org/show_bug.cgi?id=171188 Reviewed by Chris Fleizach. Add "AXModal" attribute string so that we can test the state's exposure. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::boolAttributeValue): 2017-04-28 Joanmarie Diggs [ATK] GridCellRole should implement AtkTableCell (regression?) https://bugs.webkit.org/show_bug.cgi?id=171179 Reviewed by Chris Fleizach. Add new "AXInterfaceTableCell" attribute so that we can test whether or not there is an implementation of AtkTableCell (i.e. without risking false negatives from bugs in the interface's implementation). * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::boolAttributeValue): 2017-04-27 Carlos Garcia Campos Move UUID from WebCore/platform to WTF https://bugs.webkit.org/show_bug.cgi?id=171372 Reviewed by Michael Catanzaro. * WebKitTestRunner/TestController.cpp: 2017-04-27 Alex Christensen Add stub SPI for setting cookie storage path on _WKWebsiteDataStoreConfiguration https://bugs.webkit.org/show_bug.cgi?id=171399 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.html: * TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm: (TEST): 2017-04-27 Ryan Haddad Disable flaky API test WKWebView.SetOverrideContentSecurityPolicyWithEmptyStringForPageWithCSP. https://bugs.webkit.org/show_bug.cgi?id=167914 Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit2Cocoa/OverrideContentSecurityPolicy.mm: (TEST): 2017-04-26 Saam Barati Add some more testing modes for Wasm tests now that we have tier up https://bugs.webkit.org/show_bug.cgi?id=171360 Reviewed by Keith Miller. Lets enable the FTL on all Wasm tests. Let's also run each test with and without CJIT. * Scripts/run-jsc-stress-tests: 2017-04-26 Aakash Jain JSC EWS Patch Relevance skips few JSC scripts https://bugs.webkit.org/show_bug.cgi?id=171351 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/tool/steps/checkpatchrelevance.py: (CheckPatchRelevance): Added few jsc related scripts. 2017-04-26 Youenn Fablet Test importer should delete obsolete files based on w3c-import.log https://bugs.webkit.org/show_bug.cgi?id=171348 Reviewed by Chris Dumez. * Scripts/webkitpy/w3c/test_importer.py: (TestImporter.do_import): Removing dangling -expected.txt files in regular import mode. (TestImporter.remove_deleted_files): Fixing according w3c-import.log current format. * Scripts/webkitpy/w3c/test_importer_unittest.py: (test_remove_obsolete_content): 2017-04-26 Jonathan Bedard REGRESSION (r213926): We're sometimes trying to start WebKitTestRunner without proper DYLD variables Unreviewed infrastructure fix. Some of our iOS Simulator bots are slow and will register crashes due to an incorrect DYLD_FRAMEWORK_PATH when installing an app. * Scripts/webkitpy/port/ios.py: (IOSPort.setup_test_run): Pass DYLD_FRAMEWORK_PATH to app on install. 2017-04-26 Joanmarie Diggs [ATK] Elements with a defined, non-false value for aria-current should expose ATK_STATE_ACTIVE https://bugs.webkit.org/show_bug.cgi?id=171163 Reviewed by Chris Fleizach. Add support for state-change notifications for ATK_STATE_ACTIVE. * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: 2017-04-26 Jonathan Bedard webkitpy: Teardown iOS Simulators on exit if managed Simulators are still running https://bugs.webkit.org/show_bug.cgi?id=171293 Reviewed by Aakash Jain. We should make an effort to teardown simulators which we booted even when an exception is thrown while booting. Make some IOSSimulatorPort functions into static methods and register one of these functions to be run at exit to ensure any devices webkitpy is managing gets torn down. * Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager._set_up_run): Rely on exit handlers to teardown, not exceptions. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort._teardown_managed_simulators): Function run on exit which will kill all iOS simulators and teardown and managed devices. (IOSSimulatorPort._create_simulators): Register teardown function. (IOSSimulatorPort.clean_up_test_run): Move device teardown to _teardown_managed_simulators. (IOSSimulatorPort._remove_device): Deleted. 2017-04-26 Joanmarie Diggs [ATK] Implement support for new ARIA 1.1 values of aria-haspopup https://bugs.webkit.org/show_bug.cgi?id=171164 Reviewed by Chris Fleizach. hasPopup() should return whether or not ATK_STATE_HAS_POPUP is in the AtkStateSet; not what is found in the AtkObject's attributes. * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: (WTR::AccessibilityUIElement::hasPopup): 2017-04-25 Alex Christensen Encoded filename should be decoded for WKContentExtension.identifier https://bugs.webkit.org/show_bug.cgi?id=171316 Reviewed by Andy Estes. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/WKContentExtensionStore.mm: Copied from Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKUserContentExtensionStore.mm. (TEST_F): * TestWebKitAPI/Tests/WebKit2Cocoa/WKUserContentExtensionStore.mm: Removed. 2017-04-25 Alex Christensen REGRESSION(206450): WebKit2PlatformMouseEvent m_modifierFlags not set https://bugs.webkit.org/show_bug.cgi?id=171297 Reviewed by Geoffrey Garen. * TestWebKitAPI/PlatformWebView.h: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/EventModifiers.cpp: Added. (TestWebKitAPI::didFinishLoadForFrame): (TestWebKitAPI::mouseDidMoveOverElement): (TestWebKitAPI::setClients): (TestWebKitAPI::TEST): * TestWebKitAPI/mac/PlatformWebViewMac.mm: (TestWebKitAPI::PlatformWebView::simulateRightClick): (TestWebKitAPI::PlatformWebView::simulateMouseMove): 2017-04-25 Wenson Hsieh Unreviewed, temporarily disable the data interaction unit tests. The API around data interaction will change significantly in the near future, and these tests will begin to fail. These will be reenabled once the bots are on an SDK that supports the updated data interaction API. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: 2017-04-25 Brent Fulgham Limit allowed size of document.title to avoid locking WebKit clients https://bugs.webkit.org/show_bug.cgi?id=165113 Reviewed by Darin Adler. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new files. * TestWebKitAPI/Tests/WebKit2/LimitTitleSize.cpp: Added. * TestWebKitAPI/Tests/WebKit2/set-long-title.html: Added. * TestWebKitAPI/Tests/mac/LimitTitleSize.mm: Added. 2017-04-25 John Wilander Resource Load Statistics: Introduce shorter time-to-live for cookie partition whitelisting https://bugs.webkit.org/show_bug.cgi?id=171295 Reviewed by Brent Fulgham. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsTimeToLiveCookiePartitionFree): (WTR::TestRunner::statisticsFireShouldPartitionCookiesHandler): (WTR::TestRunner::statisticsFireShouldPartitionCookiesHandlerForOneDomain): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsTimeToLiveCookiePartitionFree): (WTR::TestController::statisticsFireShouldPartitionCookiesHandler): (WTR::TestController::statisticsFireShouldPartitionCookiesHandlerForOneDomain): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): 2017-04-25 Tim Horton Try to fix the WKTR build after r215758 * Scripts/build-webkittestrunner: 2017-04-25 Daniel Bates Remove more EFL code https://bugs.webkit.org/show_bug.cgi?id=171288 Rubber-stamped by Simon Fraser. The EFL port is no longer in the WebKit OpenSource Project repository. Remove more code that was part of the EFL port. * CMakeLists.txt: * DumpRenderTree/AccessibilityController.h: * DumpRenderTree/AccessibilityUIElement.cpp: (AccessibilityUIElement::getJSClass): * DumpRenderTree/AccessibilityUIElement.h: * DumpRenderTree/DumpRenderTree.h: * DumpRenderTree/cairo/PixelDumpSupportCairo.h: * ImageDiff/efl/ImageDiff.cpp: Removed. * MiniBrowser/efl/CMakeLists.txt: Removed. * MiniBrowser/efl/main.c: Removed. * Scripts/build-dumprendertree: * Scripts/build-jsc: * Scripts/build-webkit: * Scripts/build-webkittestrunner: * Scripts/run-minibrowser: * Scripts/update-webkit-libs-jhbuild: * Scripts/update-webkitefl-libs: Removed. * Scripts/webkitdirs.pm: (argumentsForConfiguration): (extractNonMacOSHostConfiguration): (executableProductDir): (builtDylibPathForName): (determinePortName): (launcherPath): (launcherName): (getJhbuildPath): (wrapperPrefixIfNeeded): (generateBuildSystemFromCMakeProject): (buildCMakeProjectOrExit): (isEfl): Deleted. * Scripts/webkitperl/FeatureList.pm: * Scripts/webkitperl/webkitdirs_unittest/extractNonMacOSHostConfiguration.pl: * Scripts/webkitpy/common/config/ports.py: (DeprecatedPort.port): (GtkWK2Port.run_webkit_tests_command): (EflWK2Port): Deleted. (EflWK2Port.build_webkit_command): Deleted. * Scripts/webkitpy/port/builders.py: * Scripts/webkitpy/port/efl.py: Removed. * Scripts/webkitpy/port/efl_unittest.py: Removed. * Scripts/webkitpy/port/factory.py: (platform_options): (PortFactory): * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: (TestExpectationsTestCase.test_determine_port_from_expectations_path): * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: (TestRebaselineTest.test_baseline_directory): (TestRebaselineExpectations.test_rebaseline_expectations): * TestWebKitAPI/PlatformEfl.cmake: Removed. * TestWebKitAPI/PlatformWebView.h: * TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp: (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2/efl/WKViewClientWebProcessCallbacks.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/efl/WKViewClientWebProcessCallbacks_Bundle.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/efl/WKViewScrollTo.cpp: Removed. * TestWebKitAPI/Tests/WebKit2/efl/scrollTo.html: Removed. * TestWebKitAPI/efl/InjectedBundleController.cpp: Removed. * TestWebKitAPI/efl/PlatformUtilities.cpp: Removed. * TestWebKitAPI/efl/PlatformWebView.cpp: Removed. * TestWebKitAPI/efl/main.cpp: Removed. * WebKitTestRunner/EventSenderProxy.h: * WebKitTestRunner/InjectedBundle/AccessibilityController.cpp: * WebKitTestRunner/InjectedBundle/AccessibilityController.h: * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: (WTR::EventSendingController::contextClick): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: (WTR::AccessibilityNotificationHandler::setNotificationFunctionCallback): (WTR::AccessibilityNotificationHandler::removeAccessibilityNotificationHandler): * WebKitTestRunner/InjectedBundle/efl/ActivateFontsEfl.cpp: Removed. * WebKitTestRunner/InjectedBundle/efl/FontManagement.cpp: Removed. * WebKitTestRunner/InjectedBundle/efl/FontManagement.h: Removed. * WebKitTestRunner/InjectedBundle/efl/InjectedBundleEfl.cpp: Removed. * WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp: Removed. * WebKitTestRunner/PlatformEfl.cmake: Removed. * WebKitTestRunner/PlatformWebView.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetStateToConsistentValues): * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: Removed. * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: Removed. * WebKitTestRunner/efl/TestControllerEfl.cpp: Removed. * WebKitTestRunner/efl/main.cpp: Removed. * efl/install-dependencies: Removed. * efl/jhbuild-optional.modules: Removed. * efl/jhbuild.modules: Removed. * efl/jhbuildrc: Removed. * efl/patches/evas-fix-build-with-giflib5.patch: Removed. * efl/patches/fontconfig-C-11-requires-a-space-between-literal-and-identifier.patch: Removed. * efl/patches/gst-libav.patch: Removed. * efl/patches/gst-plugins-base-rtp-rtcpbuffer-fix-typo-in-enum.patch: Removed. * efl/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Removed. * efl/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Removed. * efl/patches/openwebrtc-gst-plugins-clang-warning-fix.patch: Removed. * gtk/manifest.txt.in: 2017-04-25 Daniel Bates [Cocoa][Win] Enable of X-Content-Type-Options: nosniff header https://bugs.webkit.org/show_bug.cgi?id=136452 Reviewed by Brent Fulgham. Enable X-Content-Type-Options: nosniff on Mac, iOS and Windows platforms. * Scripts/webkitperl/FeatureList.pm: Also do not enable nosniff on EFL as the EFL port is no longer in the WebKit OpenSource repository. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-04-25 Zan Dobersek Unreviewed follow-up to r215739 and r215740. * gtk/jhbuild.modules: List the libgcrypt patch that has to be applied. This (and r215740) was supposed to land in r215739, but I managed to specify the previous version of the patch. 2017-04-25 Zan Dobersek Unreviewed follow-up to r215739. * gtk/patches/libgcrypt-use-only-dev-urandom-for-testing.patch: Add the missing libgcrypt patch that enforces the use of /dev/urandom. 2017-04-25 Zan Dobersek [GTK] Add libgpg-error, libgcrypt libraries to JHBuild https://bugs.webkit.org/show_bug.cgi?id=171270 Reviewed by Michael Catanzaro. * gtk/jhbuild.modules: Add the latest stable versions of libgpg-error and libgcrypt libraries to the webkitgtk-testing-dependencies metamodule. This will help people that use systems that don't yet provide libgcrypt >= 1.7.0. 2017-04-25 Carlos Alberto Lopez Perez [GTK] Improve an unit test for the JHBuild wrapper. https://bugs.webkit.org/show_bug.cgi?id=168036 Unreviewed follow-up patch after r215727 * Scripts/webkitpy/port/base_unittest.py: (test_jhbuild_wrapper): Improve the unit test by ensuring the directory wasn't there before calling MockFileSystem.maybe_make_directory(), and also that it exists after calling it. 2017-04-25 Carlos Alberto Lopez Perez [GTK] ImageDiff should be run by jhbuild-wrapper in case of using jhbuild https://bugs.webkit.org/show_bug.cgi?id=168036 Reviewed by Michael Catanzaro. Call ImageDiff with the JHBuild wrapper if we should use it. Also add some unit tests for the JHBuild wrapper feature. * Scripts/webkitpy/port/base.py: (Port._should_use_jhbuild): Use self._filesystem instead of os.path to allow mock testing. * Scripts/webkitpy/port/base_unittest.py: (test_jhbuild_wrapper): Add a test for port._should_use_jhbuild() * Scripts/webkitpy/port/image_diff.py: (ImageDiffer._start): The actual fix, use the wrapper if we should. * Scripts/webkitpy/port/image_diff_unittest.py: Removed. This two tests are now integrated in port_testcase * Scripts/webkitpy/port/port_testcase.py: (PortTestCase): (PortTestCase.test_diff_image): Test the command with wrapper and without it. (PortTestCase.test_diff_image_passed): Moved from image_diff_unittest.py (PortTestCase.test_diff_image_failed): Moved from image_diff_unittest.py 2017-04-25 Wenson Hsieh Support reading NSURL titles from the pasteboard when performing data interaction https://bugs.webkit.org/show_bug.cgi?id=171156 Reviewed by Tim Horton. Adds a new unit test, DataInteractionTests.ExternalSourceTitledNSURL. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-04-24 Wenson Hsieh Respect fidelity order when reading web content from item providers https://bugs.webkit.org/show_bug.cgi?id=171155 Reviewed by Tim Horton. Adds a new unit test (DataInteractionTests.RespectsExternalSourceFidelityRankings). See WebCore ChangeLog for more details. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-04-24 Carlos Alberto Lopez Perez SyntaxError fix after r215702. https://bugs.webkit.org/show_bug.cgi?id=168944 Unreviewed "build" fix. * BuildSlaveSupport/built-product-archive: (archiveBuiltProduct): 2017-04-24 Jonathan Bedard Package ImageDiff built with host SDK https://bugs.webkit.org/show_bug.cgi?id=168944 Reviewed by David Kilzer. iOS Simulator and iOS device should archive the ImageDiff built for the host machine. * BuildSlaveSupport/built-product-archive: (determineWebKitBuildDirectories): Add _hostBuildDirectory for iOS. (archiveBuiltProduct): Archive Mac products for iOS so that ImageDiff is included. 2017-04-24 Keith Miller ThreadMessage API tests failing on release bots https://bugs.webkit.org/show_bug.cgi?id=171246 Reviewed by Saam Barati. Need to make sure that C++ doesn't optimize away our spin loop. * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: (runThreadMessageTest): (TEST): 2017-04-24 Alex Christensen Reduce copies and allocations in SharedBuffer::append https://bugs.webkit.org/show_bug.cgi?id=170956 Reviewed by Andreas Kling. * TestWebKitAPI/Tests/WebCore/cocoa/SharedBuffer.mm: (TestWebKitAPI::TEST_F): 2017-04-24 Carlos Garcia Campos [GTK] Switch to use ENABLE_REMOTE_INSPECTOR instead of ENABLE_INSPECTOR_SERVER for the remote inspector https://bugs.webkit.org/show_bug.cgi?id=166680 Reviewed by Michael Catanzaro. Update remote inspector unit tests. * TestWebKitAPI/Tests/WebKit2Gtk/InspectorTestServer.cpp: (main): * TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp: (connectToInspectorServer): (waitUntilInspectorServerIsReady): (startTestServer): (testInspectorServerPageList): (beforeAll): 2017-04-23 Youenn Fablet Add a tool to update expected.txt files from EWS bot results https://bugs.webkit.org/show_bug.cgi?id=169538 Reviewed by Ryosuke Niwa. This script updates expected-txt files from bugzilla posted EWS results. It uses mac-wk2 as the generic baseline and adds platform-specific results if other ports have results different from the generic baseline. * Scripts/update-test-expectations-from-bugzilla: Added. * Scripts/webkitpy/common/net/bugzilla/test_expectation_updater.py: Added. * Scripts/webkitpy/common/net/bugzilla/test_expectation_updater_unittest.py: Added. * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: Adding helper routines. 2017-04-22 Youenn Fablet Add an option to import tip-of-tree WPT tests https://bugs.webkit.org/show_bug.cgi?id=171152 Reviewed by Joseph Pecoraro. Adding a '-t' option to import tip of tree WPT tests. Updating importer based on the fact that csswg-test is no longer a thing. * Scripts/webkitpy/w3c/test_downloader.py: (TestDownloader.download_tests): * Scripts/webkitpy/w3c/test_importer.py: (configure_logging): (TestImporter.do_import): (TestImporter.write_import_log): 2017-04-22 Wenson Hsieh File inputs only accept UTI types that can be inserted into contenteditable areas when dropping https://bugs.webkit.org/show_bug.cgi?id=171177 Reviewed by Andy Estes. Tests uploading a JSON file to a file input. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-04-21 Wenson Hsieh Support writing link titles to the pasteboard when beginning data interaction on a link https://bugs.webkit.org/show_bug.cgi?id=171154 Reviewed by Andy Estes. Augments an existing unit test, DataInteractionTests.LinkToInput, to also check that the fetching the NSURL from the source UIItemProvider generated by performing data interaction results in an NSURL with the _title attribute matching the title of the link. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-04-21 Michael Catanzaro Unreviewed, rolling out r215608. Hundreds of test failures on GTK bot Reverted changeset: "Reduce copies and allocations in SharedBuffer::append" https://bugs.webkit.org/show_bug.cgi?id=170956 http://trac.webkit.org/changeset/215608 2017-04-21 Wenson Hsieh [WK2] Add delegate hooks for overriding unhanded data interaction operations https://bugs.webkit.org/show_bug.cgi?id=171005 Reviewed by Tim Horton. Adds a new API test checking that normal WebKit behavior when vending updated data interaction operations may be overridden, resulting in a data interaction operation being performed when it otherwise would not have. Also adjusts for some changes in WebKit2 (See WebKit2 ChangeLog for more details). New API test: DataInteractionTests.OverrideDataInteractionOperation * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (-[UIItemProvider registerDataRepresentationForTypeIdentifier:withData:]): (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator initWithWebView:]): (-[DataInteractionSimulator dealloc]): (-[DataInteractionSimulator _webView:dataInteractionOperationWasHandled:forSession:itemProviders:]): (-[DataInteractionSimulator _webView:willUpdateDataInteractionOperationToOperation:forSession:]): (-[DataInteractionSimulator webViewDidPerformDataInteractionControllerOperation:]): Deleted. 2017-04-21 Ryan Haddad Temporarily disable two flaky API tests. Unreviewed test gardening. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm: (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm: (TEST): 2017-04-21 Keith Miller Unreviewed, rolling out r215634. underlying build issues should have been fixed Reverted changeset: "Unreviewed, rolling out r215620 and r215623." https://bugs.webkit.org/show_bug.cgi?id=171139 http://trac.webkit.org/changeset/215634 2017-04-21 Aakash Jain Bubbles on dashboard doesn't turn red for test262 failures https://bugs.webkit.org/show_bug.cgi?id=171129 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: Added test262-test. 2017-04-21 Commit Queue Unreviewed, rolling out r215620 and r215623. https://bugs.webkit.org/show_bug.cgi?id=171139 broke arm64 build (Requested by keith_miller on #webkit). Reverted changesets: "Add signaling API" https://bugs.webkit.org/show_bug.cgi?id=170976 http://trac.webkit.org/changeset/215620 "Unreviewed, fix Cloop build." http://trac.webkit.org/changeset/215623 2017-04-20 Keith Miller Add signaling API https://bugs.webkit.org/show_bug.cgi?id=170976 Reviewed by Filip Pizlo. Add tests for ThreadMessages. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp: Added. (runThreadMessageTest): (TEST): 2017-04-20 Conrad Shultz commit-log-editor should respect the git editor if one is set https://bugs.webkit.org/show_bug.cgi?id=171085 Reviewed by Daniel Bates. * Scripts/commit-log-editor: If Git is available, consider GIT_LOG_EDITOR and any global Git editor preference when deciding which editor to present. We examine the global editor preference since that may be set automatically by installers or third-party tools. 2017-04-21 Alex Christensen Reduce copies and allocations in SharedBuffer::append https://bugs.webkit.org/show_bug.cgi?id=170956 Reviewed by Andreas Kling. * TestWebKitAPI/Tests/WebCore/cocoa/SharedBuffer.mm: (TestWebKitAPI::TEST_F): 2017-04-20 Konstantin Tokarev [cmake] Define FORWARDING_HEADERS_DIR in WebKitFS and use it everywhere https://bugs.webkit.org/show_bug.cgi?id=171071 Reviewed by Michael Catanzaro. "${DERIVED_SOURCES_DIR}/ForwardingHeaders" path occurs very often in the build system files. GTK-specifc FORWARDING_HEADERS_DIR variable should be available for all ports. * DumpRenderTree/PlatformMac.cmake: * MiniBrowser/mac/CMakeLists.txt: * MiniBrowser/win/CMakeLists.txt: * TestWebKitAPI/PlatformJSCOnly.cmake: * TestWebKitAPI/PlatformMac.cmake: * TestWebKitAPI/PlatformWin.cmake: * WebKitTestRunner/PlatformMac.cmake: 2017-04-20 Joseph Pecoraro Test262 bot does not go red with failures https://bugs.webkit.org/show_bug.cgi?id=171044 Reviewed by Aakash Jain. The piped output of run-jsc-stress-tests is different from its non-piped output. Switch to parsing the correct output. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (RunTest262Tests.countFailures): Just count the number of lines that start with "FAIL:". * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: (RunTest262TestsTest.test_no_regressions_output): (test_failure_output): (test_failures_output): Updated tests with new sample output produced partially from bots and locally. In cases of failure the return code of run-jsc-stress-tests is still 0 so update the expected return code in the tests. 2017-04-20 Brady Eidson WebContent process becomes unresponsive after returning nil from async version of -webView:createWebViewWithConfiguration:... and https://bugs.webkit.org/show_bug.cgi?id=171090 Reviewed by Andy Estes. * TestWebKitAPI/Tests/WebKit2/open-and-close-window.html: * TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm: (resetToConsistentState): (-[OpenAndCloseWindowUIDelegate webViewDidClose:]): (-[OpenAndCloseWindowUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (TEST): (-[OpenAndCloseWindowUIDelegateAsync _webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:completionHandler:]): 2017-04-20 Wenson Hsieh [ios-simulator] PositionInformationTests API tests are timing out https://bugs.webkit.org/show_bug.cgi?id=171089 Rubber-stamped by Tim Horton. Addresses failures observed in the new position information tests added in r215573 by only running them if the DATA_INTERACTION feature flag is enabled. * TestWebKitAPI/Tests/ios/PositionInformationTests.mm: 2017-04-20 Brady Eidson Skip WebKit2.OpenAndCloseWindowAsyncCallbackException for now. https://bugs.webkit.org/show_bug.cgi?id=171083 Unreviewed. * TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm: 2017-04-20 Brady Eidson Add CompletionHandlerCallChecker to SPI added in r215545. https://bugs.webkit.org/show_bug.cgi?id=171067 Reviewed by Dan Bernstein. * TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm: (TEST): (-[OpenAndCloseWindowUIDelegateAsync _webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:completionHandler:]): 2017-04-20 Wenson Hsieh [WK2] -[WKContentView doAfterPositionInformationUpdate:atPosition:] should be robust against synchronous reentrancy https://bugs.webkit.org/show_bug.cgi?id=170922 Reviewed by Tim Horton. Adds six new unit tests for retrieving interaction information at a given position in the UI process. See WebKit2 ChangeLog for more details. * TestWebKitAPI/Tests/ios/PositionInformationTests.mm: (-[_WKDraggableElementInfo expectToBeLink:image:atPoint:]): (TestWebKitAPI::TEST): (TestWebKitAPI::expectCGPointsToBeEqual): Deleted. 2017-04-20 Xan Lopez [GTK][jhbuild] Update glib and glib-networking to the latest stable versions https://bugs.webkit.org/show_bug.cgi?id=170942 Reviewed by Carlos Garcia Campos. Update glib and glib-networking to the last stable releases. This is needed to get working TLS certificate verification at all at least in Fedora. * gtk/install-dependencies: add libmount, needed for newer glib. * gtk/jhbuild.modules: update glib and glib-networking to last stable releases. 2017-04-20 Joanmarie Diggs [ATK] Implement support for DPub ARIA roles https://bugs.webkit.org/show_bug.cgi?id=170679 Reviewed by Chris Fleizach. Add DPub ARIA landmark roles to roleToString(). * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: 2017-04-19 Joseph Pecoraro Remove WebKitTestRunner code for enabling features that are already enabled by default https://bugs.webkit.org/show_bug.cgi?id=171033 Reviewed by Ryosuke Niwa. * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setShadowDOMEnabled): Deleted. (WTR::TestRunner::setCustomElementsEnabled): Deleted. (WTR::TestRunner::setFetchAPIEnabled): Deleted. (WTR::TestRunner::setDownloadAttributeEnabled): Deleted. * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-04-19 Youenn Fablet [Mac] Allow customizing H264 encoder https://bugs.webkit.org/show_bug.cgi?id=170829 Reviewed by Alex Christensen. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-04-19 Brady Eidson Add asynchronous equivalent of -[ webView:createWebViewWithConfiguration:...]. and https://bugs.webkit.org/show_bug.cgi?id=171018 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm: (TEST): (-[OpenAndCloseWindowUIDelegateAsync webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): (-[OpenAndCloseWindowUIDelegateAsync _webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:completionHandler:]): 2017-04-19 Brady Eidson REGRESSION (r213168): An extra Web Content process is spun up on launch and is never closed. and https://bugs.webkit.org/show_bug.cgi?id=171002 Reviewed by Alex Christensen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/InitialWarmedProcessUsed.mm: Added. 2017-04-19 Brent Fulgham [WK2] Run tests with ResourceLoadStatistics enabled https://bugs.webkit.org/show_bug.cgi?id=170952 Reviewed by Andy Estes. Excercise the load statistics code during tests. * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::initializeWebViewConfiguration): 2017-04-19 Bill Ming close_fds should be set to False on Windows. https://bugs.webkit.org/show_bug.cgi?id=170838 Reviewed by Brent Fulgham. * Scripts/webkitpy/common/system/executive.py: (Executive._should_close_fds): 2017-04-19 David Kilzer Stop using strcpy() in WebKit::EnvironmentUtilities::stripValuesEndingWithString() Reviewed by Brent Fulgham. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: (EnvironmentUtilitiesTest.cpp): Add to TestWebKitAPILibrary target. * TestWebKitAPI/Tests/WebKit2/EnvironmentUtilitiesTest.cpp: Add. (TestWebKitAPI::strip): Helper method to set/get environment variable for testing. (TestWebKitAPI::WebKit2_StripValuesEndingWithString_Test): Add tests. 2017-04-19 JF Bastien WebAssembly: add script which can import GCC torture tests https://bugs.webkit.org/show_bug.cgi?id=170740 Reviewed by Saam Barati. Add a script which can import the GCC torture tests and create a yaml file to run them as part of jsc's WebAssembly regression tests. This patch doesn't commit the tests themselves because they're licensed differently. * Scripts/run-jsc-stress-tests: learn how to run Emscripten-generated .js+.wasm files, and do a bit of cleanup on the options because WebAssembly is enabled by default. * Scripts/update-wasm-gcc-torture.py: Added. (parse_args): (update_lkgr): (untar_torture): (list_js_files): (waterfall_known_failures): (create_yaml): (main): 2017-04-19 Youenn Fablet Import web-platform-tests/tools https://bugs.webkit.org/show_bug.cgi?id=170718 Reviewed by Alex Christensen. * Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py: (main): * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (WebPlatformTestServer.ports_to_forward): (WebPlatformTestServer._prepare_config): (WebPlatformTestServer._install_modules): Deleted. * Scripts/webkitpy/w3c/test_importer.py: (TestImporter.write_html_files_for_templated_js_tests): 2017-04-18 Wenson Hsieh [WK2] Add infrastructure and unit tests for file uploads using data interaction https://bugs.webkit.org/show_bug.cgi?id=170903 Reviewed by Tim Horton. Adds 5 new unit tests covering different cases of uploading files through data interaction, as well as infrastructure for simulating UIItemProviders that load file data. Makes a few adjustments to the DataInteractionSimulator along the way, detailed in the per-method annotations below. See for more details about the change this patch is testing. New tests: DataInteractionTests.ExternalSourceImageToFileInput DataInteractionTests.ExternalSourceHTMLToUploadArea DataInteractionTests.ExternalSourceImageAndHTMLToSingleFileInput DataInteractionTests.ExternalSourceImageAndHTMLToMultipleFileInput DataInteractionTests.ExternalSourceImageAndHTMLToUploadArea * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (testIconImage): (temporaryURLForDataInteractionFileLoad): (cleanUpDataInteractionTemporaryPath): Creates and tears down temporary file directories for testing data interaction. (-[UIItemProvider registerFileRepresentationForTypeIdentifier:withData:filename:]): (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: Make necessary changes to be able to test what happens when data interaction ends over an element with no operation. Previously, we would always simulate performing a data interaction operation when ending the simulation, but this causes us to wait indefinitely for a data operation response to arrive in the UI process. Instead, we need to note whether or not the content view is allowing data interaction, and only perform an operation and wait for the -didPerform call if the operation was allowed. Otherwise, we immediately transition the phase to Cancelled and end the run. (-[DataInteractionSimulator _resetSimulatedState]): (-[DataInteractionSimulator runFrom:to:]): (-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]): (-[DataInteractionSimulator _advanceProgress]): (-[DataInteractionSimulator externalItemProviders]): (-[DataInteractionSimulator setExternalItemProviders:]): Previously, we hard-coded DataInteractionSimulator to only support a single external item provider. In order to test the scenario where multiple files are being "data interacted" into a file-type input, we generalize this to take multiple item providers. (-[DataInteractionSimulator externalItemProvider]): Deleted. (-[DataInteractionSimulator setExternalItemProvider:]): Deleted. 2017-04-18 John Wilander Make WebCore::topPrivatelyControlledDomain() return "localhost" for localhost https://bugs.webkit.org/show_bug.cgi?id=170798 Reviewed by Alex Christensen. * TestWebKitAPI/Tests/mac/PublicSuffix.mm: (TestWebKitAPI::TEST_F): Added two negative test cases for WebCore::isPublicSuffix(). Added test cases with mixed case domains, localhost, and non-ASCII for WebCore::topPrivatelyControlledDomain(). 2017-04-18 Jonathan Bedard Unreviewed, rolling out r215346 and 215361. The problem these changes were fixing was addressed in . Reverted changesets: "webkitpy: Ignore previously launched pid when system is under stress" https://bugs.webkit.org/show_bug.cgi?id=170741 http://trac.webkit.org/changeset/215346 http://trac.webkit.org/changeset/215361 2017-04-17 Alex Christensen Allow Variants of RetainPtrs https://bugs.webkit.org/show_bug.cgi?id=170923 Reviewed by Tim Horton and Sam Weinig. * TestWebKitAPI/Tests/WTF/Variant.cpp: (TestWebKitAPI::TEST): Add tests for RetainPtr and for another class with overloaded operator& to verify such classes can work in Variants. 2017-04-17 Brady Eidson Make WKHTTPCookieStore public. and https://bugs.webkit.org/show_bug.cgi?id=170920 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKit2Cocoa/WKHTTPCookieStore.mm: (TEST): 2017-04-17 Youenn Fablet Disable outdated WritableStream API https://bugs.webkit.org/show_bug.cgi?id=170749 Reviewed by Alex Christensen. Replacing READABLE_STREAM_API, READABLE_BYTE_STREAM_API and WRITABLE_STREAM_API compilation flag by: - A STREAMS_API compilation flag. - A ReadableByteStreamAPI and WritableStreamAPI runtime flags, turned off except for RWT and DRT. * DumpRenderTree/mac/DumpRenderTree.mm: (enableExperimentalFeatures): * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setFetchAPIEnabled): (WTR::TestRunner::setWritableStreamAPIEnabled): (WTR::TestRunner::setReadableByteStreamAPIEnabled): * WebKitTestRunner/InjectedBundle/TestRunner.h: 2017-04-17 Tim Horton Provide a viewport parameter to disable clipping to the safe area https://bugs.webkit.org/show_bug.cgi?id=170766 Reviewed by Beth Dakin. * DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::setObscuredInsets): * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: * TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::setObscuredInsets): * TestRunnerShared/UIScriptContext/UIScriptController.h: * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformResetStateToConsistentValues): * WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::setObscuredInsets): Add a UIScriptController mechanism to install obscured insets on the web view. 2017-04-17 Dan Bernstein [Cocoa] Move isNullFunctionPointer down into WTF https://bugs.webkit.org/show_bug.cgi?id=170892 Reviewed by Sam Weinig. * TestWebKitAPI/Configurations/TestWTF.xcconfig: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/darwin/WeakLinking.cpp: Added. (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-iOS-v2.tbd: Added. * TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-iOS.tbd: Added. * TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-macOS-v2.tbd: Added. * TestWebKitAPI/Tests/WTF/darwin/libTestWTFAlwaysMissing-macOS.tbd: Added. 2017-04-17 Jonathan Bedard webkitpy: Correct poll when killing ServerProcess Unreviewed infrastructure fix. * Scripts/webkitpy/port/server_process.py: (ServerProcess._kill): A polled process equaling 'None' means the process is running. 2017-04-17 Eric Carlson [MediaStream] Enable getUserMedia API test https://bugs.webkit.org/show_bug.cgi?id=170901 Reviewed by Youenn Fablet. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add test. * TestWebKitAPI/Tests/WebKit2/UserMedia.cpp: (TestWebKitAPI::decidePolicyForUserMediaPermissionRequestCallBack): (TestWebKitAPI::TEST): Enable capture with mock devices. * TestWebKitAPI/Tests/WebKit2/getUserMedia.html: Update to mediaDevices.getUserMedia 2017-04-17 Xan Lopez [GTK] Update the Fedora dependencies for WebKitGTK+ https://bugs.webkit.org/show_bug.cgi?id=170590 Reviewed by Carlos Alberto Lopez Perez. * gtk/install-dependencies: add a bunch of modules necessary to get a proper set of GStreamer codecs for WebRTC. 2017-04-16 Sam Weinig [WebIDL] Switch IDLAttributes.txt over to a more structured format so that more information can be added for each attribute https://bugs.webkit.org/show_bug.cgi?id=170843 Reviewed by Chris Dumez. * DumpRenderTree/DerivedSources.make: * WebKitTestRunner/DerivedSources.make: * Scripts/webkitpy/bindings/main.py: (BindingsTests.generate_from_idl): Pass IDLAttributes.json, as it is now mandatory to have one. 2017-04-14 Mark Lam Update architectures in xcconfig files. https://bugs.webkit.org/show_bug.cgi?id=170867 Reviewed by Joseph Pecoraro. * DumpRenderTree/mac/Configurations/Base.xcconfig: * MobileMiniBrowser/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: 2017-04-14 Brady Eidson Fix basic WKURLSchemeHandler bugs. and https://bugs.webkit.org/show_bug.cgi?id=170862 Reviewed by Andy Estes. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm: Added. (-[SchemeHandler initWithData:mimeType:]): (-[SchemeHandler dealloc]): (-[SchemeHandler webView:startTask:]): (-[SchemeHandler webView:stopTask:]): (TEST): 2017-04-14 Bill Ming webkit-patch failed to detect git repository https://bugs.webkit.org/show_bug.cgi?id=170859 Reviewed by Daniel Bates. Windows cmd does not accept single quoted path. So, using double quotes here will provide better platform compatibility. * Scripts/VCSUtils.pm: (isGitDirectory): (isGitSVNDirectory): (svnRevisionForDirectory): (svnInfoForPath): 2017-04-14 Ryan Haddad Unreviewed, rolling out r215374. This change causes LayoutTests to exit early with crashes on Sierra. Reverted changeset: "webkitpy: Ignore previously launched pid when system is under stress" https://bugs.webkit.org/show_bug.cgi?id=170741 http://trac.webkit.org/changeset/215374 2017-04-14 Dan Bernstein [ios-simulator] API test WebKit2.AdditionalReadAccessAllowedURLs is failing https://bugs.webkit.org/show_bug.cgi?id=170856 Disabled the newly-added test in the Simulator, which doesn’t enforce sandboxing. * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLs.mm: 2017-04-14 Jonathan Bedard webkitpy: Ignore previously launched pid when system is under stress https://bugs.webkit.org/show_bug.cgi?id=170741 Unreviewed infrastructure fix. Drivers are destroyed between failing layout tests, which is not necessary and prevents the work-around implemented in https://bugs.webkit.org/show_bug.cgi?id=170741. * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: (Worker._kill_driver): Do not destroy drivers when they are stopped. * Scripts/webkitpy/port/driver.py: (Driver.stop): Reset driver values set in initializer. 2017-04-14 Andy Estes [ios-simulator] API test WebKit2.WKWebProcessPlugInRangeHandle timing out https://bugs.webkit.org/show_bug.cgi?id=167594 Re-enabled this API test now that webkit.org/b/161967 is fixed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm: (TEST): 2017-04-14 Andy Estes [ios-simulator] API test WebKit2.DataDetectionReferenceDate timing out https://bugs.webkit.org/show_bug.cgi?id=161967 Reviewed by Alexey Proskuryakov. * TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm: (TEST): Re-enabled WebKit2.DataDetectionReferenceDate. 2017-04-14 Ryan Haddad Unreviewed, rolling out r215363. This change causes LayoutTests to exit early with crashes. Reverted changeset: "webkitpy: Ignore previously launched pid when system is under stress" https://bugs.webkit.org/show_bug.cgi?id=170741 http://trac.webkit.org/changeset/215363 2017-04-14 Jonathan Bedard webkitpy: Ignore previously launched pid when system is under stress https://bugs.webkit.org/show_bug.cgi?id=170741 Unreviewed infrastructure fix. Drivers are destroyed between failing layout tests, which is not necessary and prevents the work-around implemented in https://bugs.webkit.org/show_bug.cgi?id=170741. * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: (Worker._kill_driver): Do not destroy drivers when they are stopped. 2017-04-14 Jonathan Bedard webkitpy: Ignore previously launched pid when system is under stress https://bugs.webkit.org/show_bug.cgi?id=170741 Unreviewed infrastructure fix. Server processes are destroyed in the driver, which is not necessary and prevents the work-around implemented in https://bugs.webkit.org/show_bug.cgi?id=170741. * Scripts/webkitpy/port/driver.py: (Driver.run_test): Do not destroy server process. (Driver._start): Only create the server process if it is None. (Driver.stop): Do not destroy server process. 2017-04-13 Dan Bernstein [Cocoa] Allow clients to specify in _WKProcessPoolConfiguration additional directory sandbox extensions https://bugs.webkit.org/show_bug.cgi?id=170387 Reviewed by Sam Weinig. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLs.mm: Added. (TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLsPlugin.mm: Added. (-[AdditionalReadAccessAllowedURLsPlugIn webProcessPlugIn:didCreateBrowserContextController:]): (-[AdditionalReadAccessAllowedURLsPlugIn dealloc]): (-[AdditionalReadAccessAllowedURLsPlugIn readStringFromURL:completionHandler:]): * TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLsProtocol.h: Added. 2017-04-13 Jonathan Bedard webkitpy: Ignore previously launched pid when system is under stress https://bugs.webkit.org/show_bug.cgi?id=170741 Reviewed by David Kilzer. We have seen cases where xcrun simctl launch will return a pid of a previous process and the process will appear to be running even though it is crashing. Ensure that the PID that simulator_process is receiving is not the pid of the previously run process. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess._start): Check to make sure we aren't receiving an old PID. 2017-04-13 Jonathan Bedard Build ImageDiff with host SDK https://bugs.webkit.org/show_bug.cgi?id=168531 Reviewed by David Kilzer. ImageDiff should be built and run with the host SDK, not the target SDK. Build ImageDiff twice, once for the target SDK and once for the host as an intermediate step towards building for only the host SDK. * ImageDiff/Makefile: Added. * Makefile: Add ImageDiff to list of targets. * Scripts/build-imagediff: Build bmalloc and WTF for the host. * Scripts/build-webkit: Build ImageDiff for host. * Scripts/webkitdirs.pm: Export extractNonMacOSHostConfiguration. (extractNonMacOSHostConfiguration): Remove non-host configuration data from the array. * Scripts/webkitperl/webkitdirs_unittest/extractNonMacOSHostConfiguration.pl: Added. * Scripts/webkitpy/port/base.py: (Port.check_build): Attempt to build image diff if not found. (Port.check_image_diff): Enable logging flag. (Port._build_image_diff): Allow webkitpy to build image-diff during testing. 2017-04-12 Alex Christensen Clean up SharedBuffer public functions https://bugs.webkit.org/show_bug.cgi?id=170795 Reviewed by Andreas Kling. * TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp: (TestWebKitAPI::TEST_F): 2017-04-12 Dan Bernstein [Mac] Future-proof .xcconfig files https://bugs.webkit.org/show_bug.cgi?id=170802 Reviewed by Tim Horton. * DumpRenderTree/mac/Configurations/Base.xcconfig: * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: * MiniBrowser/Configurations/Base.xcconfig: * MiniBrowser/Configurations/DebugRelease.xcconfig: * TestWebKitAPI/Configurations/Base.xcconfig: * TestWebKitAPI/Configurations/DebugRelease.xcconfig: * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: * WebKitTestRunner/Configurations/Base.xcconfig: * WebKitTestRunner/Configurations/DebugRelease.xcconfig: 2017-04-12 Alex Christensen Remove unused SharedBuffer::wrapCFDataArray https://bugs.webkit.org/show_bug.cgi?id=170794 Reviewed by Brady Eidson. * TestWebKitAPI/Tests/WebCore/cocoa/SharedBuffer.mm: (TestWebKitAPI::TEST_F): 2017-04-12 Yusuke Suzuki [WTF] Introduce Thread class and use RefPtr and align Windows Threading implementation semantics to Pthread one https://bugs.webkit.org/show_bug.cgi?id=170502 Reviewed by Mark Lam. Mechanical change. Use Thread:: APIs. * DumpRenderTree/JavaScriptThreading.cpp: (runJavaScriptThread): (startJavaScriptThreads): (stopJavaScriptThreads): * DumpRenderTree/mac/DumpRenderTree.mm: (testThreadIdentifierMap): * TestWebKitAPI/Tests/WTF/Condition.cpp: * TestWebKitAPI/Tests/WTF/Lock.cpp: (TestWebKitAPI::runLockTest): * TestWebKitAPI/Tests/WTF/ParkingLot.cpp: 2017-04-12 Alex Christensen Modernize vector adoption https://bugs.webkit.org/show_bug.cgi?id=170758 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp: (TestWebKitAPI::TEST_F): 2017-04-11 Dean Jackson Disable outdated WritableStream API https://bugs.webkit.org/show_bug.cgi?id=170749 Reviewed by Tim Horton. The API we implement is no longer accurate. Disable it until we are compatible with the new specification * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-04-11 David Quesada Add SPI for handling geolocation authorization requests https://bugs.webkit.org/show_bug.cgi?id=170362 rdar://problem/17508627 Reviewed by Alex Christensen. Add API tests for the new WKUIDelegate SPI for allowing or denying websites permission to use geolocation. Adopt the new WKProcessPool._coreLocationProvider property to provide a stub object to simulate the various configurations of geolocation permissions: 1. The app doesn't have permission to use geolocation. 2. The app is allowed to use geolocation, but the UI delegate denies the web view permission. 3. The app is allowed to use geolocation, and the UI delegate allows the web view permission. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/Geolocation.mm: Added. (-[TestCoreLocationProvider setListener:]): (-[TestCoreLocationProvider requestGeolocationAuthorization]): (-[TestCoreLocationProvider start]): (-[TestCoreLocationProvider stop]): (-[TestCoreLocationProvider setEnableHighAccuracy:]): (expectException): (-[GeolocationTestUIDelegate _webView:requestGeolocationAuthorizationForURL:frame:decisionHandler:]): (-[GeolocationTestUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2Cocoa/GeolocationGetCurrentPositionResult.html: Added. 2017-04-10 Matt Rajca Change autoplay state to "prevented" when media is paused due to restrictions. https://bugs.webkit.org/show_bug.cgi?id=170686 Reviewed by Alex Christensen. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2/autoplay-muted-with-controls.html: Added test. * TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm: (TEST): 2017-04-11 Yusuke Suzuki [WebCore][JSC] ResourceUsageData.{timeOfNextEdenCollection,timeOfNextFullCollection} should be MonotonicTime https://bugs.webkit.org/show_bug.cgi?id=170725 Reviewed by Sam Weinig. * TestWebKitAPI/Tests/WTF/Time.cpp: (TestWebKitAPI::TEST): 2017-04-10 Alex Christensen Revert r215217 https://bugs.webkit.org/show_bug.cgi?id=170703 * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-04-10 Alex Christensen Continue enabling WebRTC https://bugs.webkit.org/show_bug.cgi?id=170703 Reviewed by Youenn Fablet. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-04-10 Kocsen Chung Have parseRevisionProperty use default repo name as the Buildbot key. https://bugs.webkit.org/show_bug.cgi?id=170696 Reviewed by Daniel Bates. Previously, we needed to set a key and a fallbackKey when addressing Buildbot data for Internal. That is no longer necessary as we can make a safe assumption that the repo name maps exactly to that key for every repository other than WebKit. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: Set `key = repositoryName` and only use fallback keys when dealing with WebKit. 2017-04-10 Aakash Jain Add test262 JavaScriptCore tests to dashboard https://bugs.webkit.org/show_bug.cgi?id=170711 Rubber-stamped by Joseph Pecoraro. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: (WebKitBuildbot): Added test262 JSC tests to dashboard. 2017-04-10 Alex Christensen REGRESSION(r195479) First main resource load in new WebProcess bypasses content extensions https://bugs.webkit.org/show_bug.cgi?id=170707 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/WKUserContentExtensionStore.mm: (-[ContentExtensionDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST_F): * TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm: (-[ContentBlockingWebsitePoliciesDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (-[ContentBlockingWebsitePoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): (TEST): 2017-04-10 Alex Christensen Add API to get available content extension identifiers in a WKContentExtensionStore https://bugs.webkit.org/show_bug.cgi?id=170093 Reviewed by Geoffrey Garen. * TestWebKitAPI/Tests/WebKit2Cocoa/WKUserContentExtensionStore.mm: (TEST_F): 2017-04-10 Wenson Hsieh Refactor DataInteractionTests.UnresponsivePageDoesNotHangUI to not check against a fixed time interval https://bugs.webkit.org/show_bug.cgi?id=170658 Reviewed by Tim Horton. Uses ignoreSynchronousMessagingTimeoutsForTesting to ensure that this test times out if data interaction preparation is synchronous, or passes if it is asynchronous. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/cocoa/TestWKWebView.h: * TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView initWithFrame:]): (-[TestWKWebView initWithFrame:configuration:processPoolConfiguration:]): (-[TestWKWebView _setUpTestWindow:]): 2017-04-10 Brent Fulgham [WK2][macOS] Block access to Apple Events before launch. https://bugs.webkit.org/show_bug.cgi?id=170626 Reviewed by Alexey Proskuryakov. Add a new TestWebKitAPI test that fails if Apple Events are sent. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new files. * TestWebKitAPI/Tests/WebKit2/mac/InjectedBundleAppleEvent.cpp: Added. (TestWebKitAPI::didReceiveMessageFromInjectedBundle): (TestWebKitAPI::didFinishLoadForFrame): (TestWebKitAPI::TEST): * TestWebKitAPI/Tests/WebKit2/mac/InjectedBundleAppleEvent_Bundle.cpp: Added. (TestWebKitAPI::InjectedBundleAppleEventTest::InjectedBundleAppleEventTest): (TestWebKitAPI::InjectedBundleAppleEventTest::didCreatePage): 2017-04-10 Guillaume Emont [JSC] Do not run FTL stress tests on MIPS https://bugs.webkit.org/show_bug.cgi?id=170684 Reviewed by Carlos Alberto Lopez Perez. run-jsc-stress-tests does not correctly detect MIPS platforms, and its logic to detect if the platform supports FTL ignores that MIPS does not support FTL. This adds detection of MIPS (with the magic number determined empirically) and fixes the determination of whether we support FTL. * Scripts/run-jsc-stress-tests: 2017-04-10 Jonathan Bedard webkitpy: Increase estimate for processes run by iOS Simulators https://bugs.webkit.org/show_bug.cgi?id=170678 Reviewed by Aakash Jain. Previously, it was estimated that each simulated iOS device would run about 100 processes. With newer versions of iOS, this is closer to 125. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort): Increase process estimate from 100 to 125. 2017-04-10 Adrian Perez de Castro [GTK] Misplaced right click menu on web page due to deprecated gtk_menu_popup() https://bugs.webkit.org/show_bug.cgi?id=170553 Reviewed by Michael Catanzaro. Use gtk_menu_popup_at_pointer() and gtk_menu_popup_at_rect() when building with GTK+ 3.22 or newer. This allows the Wayland GTK+ backend to properly position popup menus, and also avoids using functions which were deprecated starting at that GTK+ release. * MiniBrowser/gtk/BrowserSearchBar.c: (searchEntryMenuIconPressedCallback): Update MiniBrowser to use gtk_menu_popup_at_pointer(). 2017-04-10 Wenson Hsieh REGRESSION (r214403): fast/events/drag-to-navigate.html and fast/events/only-valid-drop-targets-receive-file-drop.html failing https://bugs.webkit.org/show_bug.cgi?id=170677 Reviewed by Tim Horton. Fixes two drag and drop LayoutTests by introducing and enabling a TestOptions switch (enableDragDestinationActionLoad) to allow dropping URLs to trigger page navigation. * DumpRenderTree/TestOptions.h: * DumpRenderTree/TestOptions.mm: (TestOptions::TestOptions): * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebViewToConsistentStateBeforeTesting): * DumpRenderTree/mac/UIDelegate.h: * DumpRenderTree/mac/UIDelegate.mm: (-[UIDelegate resetToConsistentStateBeforeTesting:]): (-[UIDelegate webView:dragDestinationActionMaskForDraggingInfo:]): 2017-04-10 Fujii Hironori update-webkit-dependency should report $response->message for diagnose https://bugs.webkit.org/show_bug.cgi?id=170666 Reviewed by Alex Christensen. * Scripts/update-webkit-dependency: Print $response->message to STDERR if an error happens. 2017-04-10 Wenson Hsieh Data interaction on an image enclosed by an anchor should vend the anchor's URL https://bugs.webkit.org/show_bug.cgi?id=170660 Reviewed by Tim Horton. Adds two new unit tests covering cases where data interaction is triggered from an image nested underneath an anchor. In one of the tests, the link has an href, and in the other, its href is missing, in which case we should fall back to the image URL instead. Also fixes a related unit test that was trying to check selection rects, but should not be. See WebCore ChangeLog for more details. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/image-in-link-and-input.html: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-04-10 Carlos Garcia Campos [GTK] Remove the GDK dependency from ImageDiff https://bugs.webkit.org/show_bug.cgi?id=85299 Reviewed by Žan Doberšek. Add a cairo only implementation of ImageDiff. We currently have 3 different implementations of ImageDiff: the Gdk based one used by GTK+ port, the cairo based one used by WinCairo and the CG based one. Most of the code is actually common in all of them, but it's duplicated. So, I've taken advantage of this patch to refactor the ImageDiff code to share the common implementation. This patch adds the cross-platform code, and the cairo implementation and enables it in the GTK+ port. In follow up patches we can move WinCairo to this implementation and also add CG implementation. * ImageDiff/CMakeLists.txt: * ImageDiff/Cairo.cmake: Added. * ImageDiff/ImageDiff.cpp: Added. (main): * ImageDiff/PlatformGTK.cmake: * ImageDiff/PlatformImage.cpp: Added. (ImageDiff::PlatformImage::isCompatible): (ImageDiff::PlatformImage::difference): * ImageDiff/PlatformImage.h: Added. * ImageDiff/cairo/PlatformImageCairo.cpp: Added. (ImageDiff::PlatformImage::createFromStdin): (ImageDiff::PlatformImage::createFromDiffData): (ImageDiff::PlatformImage::PlatformImage): (ImageDiff::PlatformImage::~PlatformImage): (ImageDiff::PlatformImage::width): (ImageDiff::PlatformImage::height): (ImageDiff::PlatformImage::rowBytes): (ImageDiff::PlatformImage::hasAlpha): (ImageDiff::PlatformImage::pixels): (ImageDiff::PlatformImage::writeAsPNGToStdout): * ImageDiff/gtk/ImageDiff.cpp: Removed. 2017-04-10 Carlos Garcia Campos REGRESSION(r214426): [GTK] Test media/video-click-dblckick-standalone.html started to fail in the bots after r214426 https://bugs.webkit.org/show_bug.cgi?id=170667 Reviewed by Žan Doberšek. In r214666 we disabled modern media controls runtime feature for the GTK+ port, but layout tests still override that value. * WebKitTestRunner/gtk/TestControllerGtk.cpp: (WTR::TestController::updatePlatformSpecificTestOptionsForTest): Disable modern media controls. 2017-04-10 Carlos Garcia Campos WTR: Avoid conversion from platform image to WKImage and then to platform image again when dumping pixel results https://bugs.webkit.org/show_bug.cgi?id=170653 Reviewed by Tim Horton. When dumping pixels from a web view snapshot, we create a platform image that is then converted to a WKImage, which is a ShareableBitmap, so the image is rendered into a graphics context. Then we immediately extract the platform image back from the WKImage to dump the pixels. We could avoid that conversion by taking the web snapshot from TestInvocation::dumpPixelsAndCompareWithExpected(). * WebKitTestRunner/PlatformWebView.h: Add PlatformImage typedef and use it as return value of windowSnapshotImage(). * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::dumpResults): Pass the WKImage to dumpPixelsAndCompareWithExpected() only when pixel results were created in the web process. * WebKitTestRunner/TestInvocation.h: Make WKImage a default paramater of dumpPixelsAndCompareWithExpected(). * WebKitTestRunner/cairo/TestInvocationCairo.cpp: (WTR::TestInvocation::dumpPixelsAndCompareWithExpected): Create the cairo surface from the given WKimage in case of web contents snapshot, and use PlatformWebView::windowSnapshotImage() in case of web view snapshot. * WebKitTestRunner/cg/TestInvocationCG.cpp: (WTR::createCGContextFromCGImage): Changed to receive a CGImageRef and renamed. (WTR::createCGContextFromImage): Get the CGImageRef from the WKImage and call createCGContextFromCGImage(). (WTR::paintRepaintRectOverlay): It receives now the image size instead of the WKImage. (WTR::TestInvocation::dumpPixelsAndCompareWithExpected): Create the CGContextRef from the WKImage in case of web contents snpashot, and use PlatformWebView::windowSnapshotImage() in case of web view snapshot. * WebKitTestRunner/gtk/PlatformWebViewGtk.cpp: (WTR::PlatformWebView::windowSnapshotImage): Return the cairo surface instead of creating a WKImage. Also use RGB24 format to match what mac does (kCGWindowImageShouldBeOpaque). * WebKitTestRunner/ios/PlatformWebViewIOS.mm: (WTR::PlatformWebView::windowSnapshotImage): Return the CGImageRef instead of creating a WKImage. * WebKitTestRunner/mac/PlatformWebViewMac.mm: (WTR::PlatformWebView::windowSnapshotImage): Ditto. 2017-04-10 Chris Dumez Drop Timer::startOneShot() overload taking a double https://bugs.webkit.org/show_bug.cgi?id=170659 Reviewed by Yusuke Suzuki. Drop Timer::startOneShot() overload taking a double as people should use Seconds type now. * TestWebKitAPI/Tests/WTF/RunLoop.cpp: (TestWebKitAPI::TEST): * WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp: (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): 2017-04-09 Wenson Hsieh [WK2] Add infrastructure to perform actions after an asynchronous position information request finishes https://bugs.webkit.org/show_bug.cgi?id=170658 Reviewed by Tim Horton. Adds a new test verifying that when a web page is unresponsive, the process of preparing for data interaction does not also cause the UI process to spin. We assume here that the call to prepare must be asynchronous, so it should complete before the unresponsiveness timeout is triggered. See WebKit2 ChangeLog for more details. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-04-09 Chris Dumez Drop Timer::startRepeating() overload taking a double https://bugs.webkit.org/show_bug.cgi?id=170656 Reviewed by Yusuke Suzuki. Drop Timer::startRepeating() overload taking a double as people should use Seconds type now. * TestWebKitAPI/Tests/WTF/RunLoop.cpp: (TestWebKitAPI::TEST): 2017-04-09 Youenn Fablet Resync WPT tests up to 23cd07d4685d81024b7440e042f8bbdb33e7ddec https://bugs.webkit.org/show_bug.cgi?id=170647 Reviewed by Sam Weinig. * Scripts/webkitpy/common/checkout/scm/git.py: (Git.fetch): Fetching origin remote in case there is more than one. 2017-04-08 Simon Fraser Update CSSProperties.json with correct fill-and-stroke status, and other cleanup https://bugs.webkit.org/show_bug.cgi?id=170643 Reviewed by Chris Dumez. Update the CSSProperties.json style checker to allow: - comments in codegen_properties - obsolete-category and obsolete-url in specification blocks - renamed "done" to "supported" Fix some references to codegen_properties to be codegen-properties. * Scripts/webkitpy/style/checkers/jsonchecker.py: (JSONCSSPropertiesChecker.validate_status_type): (JSONCSSPropertiesChecker.validate_property_specification): (JSONCSSPropertiesChecker.check_codegen_properties): 2017-04-08 Youenn Fablet WebRTC tests gardening https://bugs.webkit.org/show_bug.cgi?id=170508 Reviewed by Eric Carlson. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-04-07 Keith Miller Add a PriorityQueue class https://bugs.webkit.org/show_bug.cgi?id=170579 Reviewed by Saam Barati. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/PriorityQueue.cpp: Added. (operator _z ): (enqueue): (dequeue): (TEST): (compareMove): 2017-04-07 Ryosuke Niwa Replace ES6SampleBench by ARES-6 in run-benchmark https://bugs.webkit.org/show_bug.cgi?id=170585 Reviewed by Saam Barati. Updated the plan file for ES6SampleBench to run ARES-6 instead. Also increased the number of iterations from 4 to 8 to match teh default, and reduced the number of browser instances to use from 5 to 3. * Scripts/webkitpy/benchmark_runner/data/patches/ARES-6.patch: Renamed from ES6SampleBench.patch. * Scripts/webkitpy/benchmark_runner/data/plans/ares6.plan: Renamed from es6bench.plan. 2017-04-07 Myles C. Maxfield REGRESSION(r211382): Complex text with justification erroneously overflows containers https://bugs.webkit.org/show_bug.cgi?id=170399 Reviewed by Simon Fraser. Check for the invariant that the sum of the advances is equal to m_totalWidth. * TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp: (TestWebKitAPI::TEST_F): 2017-04-07 Ryan Haddad [ios-simulator] API test WebKit2.WKWebProcessPlugInRangeHandle timing out https://bugs.webkit.org/show_bug.cgi?id=167594 Unreviewed test gardening. Disable this test because it is still timing out on the bots. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm: (TEST): 2017-04-07 Jonathan Bedard REGRESSION (r214553): Allow layout-tests to be run from Xcode without re-directing stdout, stdin and stderr https://bugs.webkit.org/show_bug.cgi?id=170601 Reviewed by Simon Fraser. * TestRunnerShared/IOSLayoutTestCommunication.cpp: (setUpIOSLayoutTestCommunication): Skip TCP setup if no port is in the environment. (tearDownIOSLayoutTestCommunication): Only teardown if TCP was used. 2017-04-07 Aakash Jain Add support for test262 JavaScriptCore tests https://bugs.webkit.org/show_bug.cgi?id=170523 Reviewed by Daniel Bates. * BuildSlaveSupport/build.webkit.org-config/config.json: Added bot433 and bot434. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (RunTest262Tests): Added class to run Test262 tests. (RunTest262Tests.start): Added. (RunTest262Tests.countFailures): Method to count the failures. (Test262Factory): Added Test262 factory class. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: (RunTest262TestsTest): Added unit tests. (RunTest262TestsTest.assertResults): Helper method. (RunTest262TestsTest.test_no_regressions_output): Added test case. (test_failure_output): Same. (test_failures_output): Same. 2017-04-07 Caio Lima [JSC] Change --debug option to --debugger https://bugs.webkit.org/show_bug.cgi?id=170587 Reviewed by Keith Miller. * Scripts/run-jsc: This patch is changing the new debugger flag for Tools/Scripts/run-jsc to --debugger to avoid shadowing --debug flag used to run JSC with Debug build. 2017-04-07 Brent Fulgham WebKit should percent encode single quotes in query strings https://bugs.webkit.org/show_bug.cgi?id=170561 Reviewed by Alex Christensen. Add a test case for single-quote in the URL query string. * TestWebKitAPI/Tests/WebCore/URLParser.cpp: 2017-04-06 Myles C. Maxfield Make FontWithFeatures test font pass OTS https://bugs.webkit.org/show_bug.cgi?id=169788 Reviewed by Tim Horton. OTS, or the OpenType Sanitizer, is a check which tells if fonts are properly formed. Previously, our FontWithFeatures test font did not pass this check. This patch updates the font to pass the checks. Now, we can use this font on other platforms, and contribute the font to the W3C for testing the CSS Fonts level 3 spec. * FontWithFeatures/FontWithFeatures/FontCreator.cpp: (Generator::appendCFFTable): (Generator::Feature::operator<): (Generator::appendGSUBTable): (Generator::appendOS2Table): (Generator::appendFormat4CMAPTable): (Generator::appendHEADTable): (Generator::appendHHEATable): (Generator::NameRecord::operator<): (Generator::appendNameSubtable): (Generator::appendNAMETable): 2017-04-06 Alexey Proskuryakov Disable flaky WebKit2.ResizeWithHiddenContentDoesNotHang for https://bugs.webkit.org/show_bug.cgi?id=170195 * TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: 2017-04-06 Ryan Haddad Unreviewed, rolling out r215046. This change broke internal builds. Reverted changeset: "WebRTC tests gardening" https://bugs.webkit.org/show_bug.cgi?id=170508 http://trac.webkit.org/changeset/215046 2017-04-06 Youenn Fablet WebRTC tests gardening https://bugs.webkit.org/show_bug.cgi?id=170508 Reviewed by Eric Carlson. * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: 2017-04-06 Jonathan Bedard REGRESSION: Simulators failing to install after launch_app times out Unreviewed infrastructure fix. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice.launch_app._install_timeout): Raise RuntimeError, not Exception. 2017-04-05 Joseph Pecoraro test262: module test progressions need updated expectations (@@iterator changes) https://bugs.webkit.org/show_bug.cgi?id=170535 Reviewed by Saam Barati. * Scripts/run-jsc-stress-tests: Add :failDueToOutdatedOrBadTest to distinguish between a test failure in JavaScriptCore or an outdated or incorrect test262 test. 2017-04-05 Joseph Pecoraro Remove run-jsc-stress-tests benign warning about otool '-S' switch https://bugs.webkit.org/show_bug.cgi?id=170527 Reviewed by Aakash Jain. * Scripts/run-jsc-stress-tests: The switch is not necessary and produces an error. 2017-04-05 Jonathan Bedard webkitpy: Add pid logging for simulator processes https://bugs.webkit.org/show_bug.cgi?id=170505 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess._start.handler): Add pid to exception. (SimulatorProcess._start): Ditto. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice.launch_app): Log pid when the process fails to launch and when a pid is successfully returned. 2017-04-05 Ryan Haddad Unreviewed, rolling out r214932. This change broke an internal build. Reverted changeset: "[ios-simulator] API test WebKit2.DataDetectionReferenceDate timing out" https://bugs.webkit.org/show_bug.cgi?id=161967 http://trac.webkit.org/changeset/214932 2017-04-05 Ryan Haddad Unreviewed, rolling out r214962. Roll r214937 back in because it wasn't at fault for the build breakage. Reverted changeset: "Unreviewed, rolling out r214937." https://bugs.webkit.org/show_bug.cgi?id=170365 http://trac.webkit.org/changeset/214962 2017-04-05 Ryan Haddad Unreviewed, rolling out r214937. This change broke an internal build. Reverted changeset: "REGRESSION (r202472): Data Detection overwrites existing links in detected ranges" https://bugs.webkit.org/show_bug.cgi?id=170365 http://trac.webkit.org/changeset/214937 2017-04-05 Jonathan Bedard Increase timeouts for simulator testing Unreviewed infrastructure fix. r214895 was not sufficient, increasing timeouts again. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice.install_app): Increase timeout from 3 to 10 seconds. 2017-04-05 Aakash Jain Formatting fix to remove extra space. Unreviewed formatting fix. * Scripts/webkitdirs.pm: (isEmbeddedWebKit): Remove extra space. 2017-04-05 Aakash Jain Rename isIOSLikeWebKit to isEmbeddedWebKit. Rubber-stamped by Alexey Proskuryakov. * Scripts/webkitdirs.pm: (isEmbeddedWebKit): Added (isIOSLikeWebKit): Deleted. 2017-04-05 Alex Christensen Fix CMake build. * TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm: * TestRunnerShared/spi/CoreGraphicsSPI.h: Removed. * TestRunnerShared/spi/CoreGraphicsTestSPI.h: Copied from Tools/TestRunnerShared/spi/CoreGraphicsSPI.h. There is a CoreGraphicsSPI.h in WebCore and the CMake build was finding the wrong one. Since we just inherit the include paths from WebCore in the CMake build and since this SPI is only used for testing, I just renamed CoreGraphicsSPI.h to CoreGraphicsTestSPI.h to avoid any name collisions. * WebKitTestRunner/PlatformMac.cmake: Add some missing files. * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: 2017-04-05 Keith Miller Add debug option to run-jsc script https://bugs.webkit.org/show_bug.cgi?id=170503 Reviewed by Yusuke Suzuki. Adds a new option to the run-jsc script so that when passed "--debug" it will wrap the jsc call with an lldb invocation. If someone wishes to use a different debugger they can set the DEBUGGER environment variable. Additionally, run-jsc now exits with the exit status of the jsc call. * Scripts/run-jsc: 2017-04-05 Andy Estes REGRESSION (r202472): Data Detection overwrites existing links in detected ranges https://bugs.webkit.org/show_bug.cgi?id=170365 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm: (expectLinkCount): Changed to only query links with the x-apple-data-detectors attribute. (TEST): Re-enabled the test, which now passes. 2017-04-05 Andy Estes [ios-simulator] API test WebKit2.WKWebProcessPlugInRangeHandle timing out https://bugs.webkit.org/show_bug.cgi?id=167594 Re-enabled this API test now that webkit.org/b/161967 is fixed. * TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm: (TEST): 2017-04-05 Andy Estes [ios-simulator] API test WebKit2.DataDetectionReferenceDate timing out https://bugs.webkit.org/show_bug.cgi?id=161967 Reviewed by Alexey Proskuryakov. * TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm: (TEST): Re-enabled WebKit2.DataDetectionReferenceDate. 2017-04-04 Simon Fraser Various settings in Minibrowser are off by default, and should be on https://bugs.webkit.org/show_bug.cgi?id=170465 rdar://problem/31421543 Reviewed by Tim Horton. Explicitly set preferences that should be on by default to enabled, if they have not been set previously. * MiniBrowser/mac/SettingsController.m: (-[SettingsController init]): 2017-04-04 JF Bastien Add JF Bastien as reviewer https://bugs.webkit.org/show_bug.cgi?id=170481 Reviewed by Mark Lam. * Scripts/webkitpy/common/config/contributors.json: 2017-04-04 Jonathan Bedard Increase timeouts for simulator testing Unreviewed infrastructure fix. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess._start): Increase timeout from 3 to 6 seconds. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice.install_app): Increase timeout from 1 to 3 seconds. 2017-04-04 Tim Horton [Mac] -[WKWebView findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:] invokes the resultCollector with didWrap = NO even when it wraps https://bugs.webkit.org/show_bug.cgi?id=165801 Reviewed by Wenson Hsieh. * TestWebKitAPI/Tests/WebKit2Cocoa/FindInPage.mm: (TEST): Add some tests for wrapping finds. 2017-04-03 Joseph Pecoraro Add some new patterns to filter-build-webkit https://bugs.webkit.org/show_bug.cgi?id=170429 Reviewed by Alexey Proskuryakov. * Scripts/filter-build-webkit: (setOutputFormatOption): 2017-04-03 Wenson Hsieh Data interaction should register type identifiers in order of priority https://bugs.webkit.org/show_bug.cgi?id=170428 Reviewed by Tim Horton. Augments existing unit tests to check for the existence and priority of type identifiers in the UIItemProviders created upon starting data interaction. Also fixes a race condition in one of the unit tests and adds a new unit test for data interaction from a textarea to an input. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (checkTypeIdentifierPrecedesOtherTypeIdentifier): (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator _advanceProgress]): (-[DataInteractionSimulator sourceItemProviders]): (-[DataInteractionSimulator _webView:showCustomSheetForElement:]): 2017-04-03 Carlos Alberto Lopez Perez [GTK][JHBuild] Update mesa repository url for tarballs https://bugs.webkit.org/show_bug.cgi?id=170431 Reviewed by Michael Catanzaro. * gtk/jhbuild.modules: 2017-04-03 Joseph Pecoraro TestWebKitAPI: Warning: Multiple build commands for Ahem.ttf https://bugs.webkit.org/show_bug.cgi?id=170430 Reviewed by Alexey Proskuryakov. * TestWebKitAPI/Tests/mac/Ahem.ttf: Removed. Eliminate one of the copies of Ahem.ttf. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Once eliminated, there is now only one Ahem.ttf that is copied to the Resources bundle. Drive-by sort the project file. 2017-04-03 Simon Fraser Allow MiniBrowser windows to receive local file drags again https://bugs.webkit.org/show_bug.cgi?id=170422 Reviewed by Wenson Hsieh. Adopt the new UIDelegate SPI to allow drops. * MiniBrowser/mac/WK2BrowserWindowController.m: (-[WK2BrowserWindowController _webView:dragDestinationActionMaskForDraggingInfo:]): 2017-04-03 Carlos Alberto Lopez Perez [GTK][JHBuild] Fetch libvpx from a release tarball instead of git https://bugs.webkit.org/show_bug.cgi?id=170426 Reviewed by Michael Catanzaro. * gtk/jhbuild.modules: 2017-04-03 Nan Wang AX: Expose link children when doing search predication on iOS https://bugs.webkit.org/show_bug.cgi?id=170424 Reviewed by Chris Fleizach. * DumpRenderTree/ios/AccessibilityUIElementIOS.mm: (AccessibilityUIElement::uiElementForSearchPredicate): * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::uiElementForSearchPredicate): 2017-04-03 Brian Burg run-safari should support launching with custom language and locale https://bugs.webkit.org/show_bug.cgi?id=170397 Reviewed by Alexey Proskuryakov. Hook up -AppleLanguages and -AppleLocale to command line options. * Scripts/webkitdirs.pm: (printHelpAndExitForRunAndDebugWebKitAppIfNeeded): (argumentsForRunAndDebugMacWebKitApp): 2017-04-03 Jonathan Bedard webkitpy: Provide option to skip install https://bugs.webkit.org/show_bug.cgi?id=170344 Reviewed by Alexey Proskuryakov. Installing can take time for on device testing. Provide an option to skip install and use whatever driver is currently installed on the device or simulator. * Scripts/webkitpy/port/base.py: (Port.check_build): Do not check driver if skipping install. * Scripts/webkitpy/port/factory.py: (platform_options): Add '--no-install' option. * Scripts/webkitpy/port/ios.py: (IOSPort.setup_test_run): Check install option before installing. 2017-04-03 Keith Miller WebAssembly: Update spec tests https://bugs.webkit.org/show_bug.cgi?id=170361 Rubber-stamped by Saam Barati. Update the runner to know the new wasm spec test harness code. * Scripts/run-jsc-stress-tests: 2017-04-01 Alexey Proskuryakov Rolling back , as it made WebKit2.DataDetectionReferenceDate time out. Was REGRESSION (r202472): Data Detection overwrites existing links in detected ranges https://bugs.webkit.org/show_bug.cgi?id=170365 * TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm: 2017-04-01 Csaba Osztrogonác Mac cmake buildfix after 214586. https://bugs.webkit.org/show_bug.cgi?id=170381 Unreviewed speculative buildfix. * WebKitTestRunner/PlatformMac.cmake: 2017-04-01 Csaba Osztrogonác Unreviewed speculative Mac cmake buildfix after r214586, just for fun. https://bugs.webkit.org/show_bug.cgi?id=161675 * WebKitTestRunner/PlatformMac.cmake: 2017-03-31 Jonathan Bedard webkitpy: Add target host concept https://bugs.webkit.org/show_bug.cgi?id=170186 Reviewed by Alexey Proskuryakov. Adding the idea of a target host. Target hosts are objects conforming to the structure of the SystemHost object in Scripts/webkitpy/common/system/systemhost.py Target hosts are the hosts associated with a worker process. * Scripts/webkitpy/common/system/filesystem.py: (FileSystem.map_base_host_path): Convert a path from an absolute path on the base host to an absolute path on this host. (FileSystem.move_to_base_host): Move file from this host to the base host. (FileSystem.move_from_base_host): Move file from the base host to this host. (FileSystem.copy_to_base_host): Copy file from this host to the base host. (FileSystem.copy_from_base_host): Copy file from the base host to this host. * Scripts/webkitpy/common/system/filesystem_mock.py: (MockFileSystem.map_base_host_path): Convert a path from an absolute path on the base host to an absolute path on this host. (MockFileSystem.move_to_base_host): Move file from this host to the base host. (MockFileSystem.move_from_base_host): Move file from the base host to this host. (MockFileSystem.copy_to_base_host): Copy file from this host to the base host. (MockFileSystem.copy_from_base_host): Copy file from the base host to this host. * Scripts/webkitpy/port/base.py: (Port.target_host): Return host determined by worker number. (Port.abspath_for_test): Accept optional target_host argument to return location of test on a target host. (Port._driver_tempdir): Accept optional target_host argument to return a temporary directory on a target host. (Port.sample_process): Accept optional target_host argument to sample process on a target host. * Scripts/webkitpy/port/darwin.py: (DarwinPort.sample_process): Run sample process on target host. (DarwinPort.sample_file_path): Accept directory for file. (DarwinPort.spindump_file_path): Ditto. * Scripts/webkitpy/port/darwin_testcase.py: (DarwinTest.test_spindump): Check file movement. (DarwinTest.test_sample_process): Ditto. (DarwinTest.test_sample_process_exception): * Scripts/webkitpy/port/driver.py: (Driver.__init__): Add and set self._target_host variable. (Driver._start): Pass target host to _driver_tempdir(). (Driver.stop): Call the target host's rmtree. (Driver._check_for_driver_timeout): Pass target host to sample_process. (Driver._check_for_driver_crash_or_unresponsiveness): Ditto. (Driver._command_from_driver_input): Pass target host to abspath_for_test and map layout test directory to target host. * Scripts/webkitpy/port/ios.py: (IOSPort): (IOSPort.target_host): Replaced device_for_worker_number. (IOSPort.setup_test_run): Replace device_for_worker_number with target_host. (IOSPort.device_for_worker_number): Replaced with target_host. * Scripts/webkitpy/port/server_process.py: (ServerProcess.__init__): Accept target_host instead of worker_number. (ServerProcess._start): Replace _host with _target_host. (ServerProcess._handle_timeout): Ditto. (ServerProcess._kill): Ditto. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess.__init__): Accept target_host instead of worker_number. (SimulatorProcess._start): Replace _device with _target_host. (SimulatorProcess.stop): Ditto. (SimulatorProcess._kill): Deleted. 2017-03-31 Jonathan Bedard Unreviewed fix after r214569 https://bugs.webkit.org/show_bug.cgi?id=170255 Unreviewed infrastructure fix. * Scripts/webkitpy/port/ios.py: (IOSPort.clean_up_test_run): Check if the device is defined before teardown. 2017-03-31 Andy Estes REGRESSION (r202472): Data Detection overwrites existing links in detected ranges https://bugs.webkit.org/show_bug.cgi?id=170365 Reviewed by Tim Horton. * TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm: (expectLinkCount): Changed to only query links with the x-apple-data-detectors attribute. (TEST): Re-enabled the test, which now passes. 2017-03-31 Tim Horton Mail can get stuck underneath FindController::findStringMatches after searching in a long message https://bugs.webkit.org/show_bug.cgi?id=170326 Reviewed by Simon Fraser. * TestWebKitAPI/Tests/WebKit2Cocoa/FindInPage.mm: (TEST): 2017-03-31 Carlos Garcia Campos Unreviewed. Fix WTR crashes in GTK+ port after r214413. Fixes: http/tests/ssl/upgrade-origin-usage.html http/tests/websocket/tests/hybi/network-process-crash-error.html http/tests/websocket/tests/hybi/simple-wss.html * WebKitTestRunner/gtk/TestControllerGtk.cpp: (WTR::TestController::platformContext): Return the context. 2017-03-30 Sam Weinig Expose the WKView SPI, _prepareForMoveToWindow:withCompletionHandler as WKWebView SPI https://bugs.webkit.org/show_bug.cgi?id=170315 Reviewed by Simon Fraser. * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/PrepareForMoveToWindow.mm: Added. Add test showing the completion handler is called. 2017-03-30 Filip Pizlo Air should support linear scan for optLevel<2 https://bugs.webkit.org/show_bug.cgi?id=170161 Reviewed by Saam Barati. This makes us run a bunch of JS tests at optLevel=1 to force testing of this new compiler pipeline. * Scripts/run-jsc-stress-tests: 2017-03-30 Aakash Jain Support tvOS and watchOS in webkitdirs.pm https://bugs.webkit.org/show_bug.cgi?id=170267 Reviewed by Alexey Proskuryakov. * Scripts/webkitdirs.pm: (determineXcodeSDK): Evaluate sdk for tvos and watchos. (xcodeSDKPlatformName): Added support for tvos and watchos. (determinePortName): Same. (isAppleCocoaWebKit): Same. (willUseAppleTVDeviceSDK): Added. (willUseAppleTVSimulatorSDK): Added. (willUseWatchDeviceSDK): Added. (willUseWatchSimulatorSDK): Added. (isTVOSWebKit): Added. (isWATCHOSWebKit): Added. (isIOSLikeWebKit): Added. 2017-03-30 Wenson Hsieh [WK2] Touches should not cancel when showing a custom action sheet while data interaction is active https://bugs.webkit.org/show_bug.cgi?id=170291 Reviewed by Tim Horton. Adds support for testing how the custom action sheet presentation codepath interacts with data interaction, as well as a new unit test. In this case, we force data interaction to fail if touches are canceled on the shared UIApplication, and verify that data interaction completes successfully. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulatorApplication _cancelAllTouches]): (-[DataInteractionSimulator initWithWebView:]): (-[DataInteractionSimulator simulateAllTouchesCanceled:]): (-[DataInteractionSimulator runFrom:to:]): (-[DataInteractionSimulator _advanceProgress]): (-[DataInteractionSimulator _webView:showCustomSheetForElement:]): 2017-03-30 Per Arne Vollan [Win] Pass close_fds = True in Python popen call. https://bugs.webkit.org/show_bug.cgi?id=170172 Reviewed by Brent Fulgham. This was previously not supported on Windows, but in Python 2.7.10 it is. * Scripts/webkitpy/common/system/executive.py: (Executive._should_close_fds): * Scripts/webkitpy/port/server_process.py: (ServerProcess._start): 2017-03-30 Aakash Jain Change my status to be a WebKit reviewer. Unreviewed status update edit. * Scripts/webkitpy/common/config/contributors.json: 2017-03-30 Carlos Alberto Lopez Perez Change my status to be a WebKit reviewer. Unreviewed status update edit. * Scripts/webkitpy/common/config/contributors.json: 2017-03-29 Tim Horton Swipe gesture tests don't work on macOS Sierra https://bugs.webkit.org/show_bug.cgi?id=161675 Reviewed by Darin Adler. * DumpRenderTree/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::platformPlayBackEventStream): (WTR::UIScriptController::beginBackSwipe): (WTR::UIScriptController::completeBackSwipe): * TestRunnerShared/EventSerialization/mac/EventSerializerMac.h: Copied from Tools/DumpRenderTree/mac/UIScriptControllerMac.mm. * TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm: Added. (eventIsOfType): (eventIsOfTypes): (eventIsOfGestureType): (eventIsOfGestureTypes): (+[EventSerializer dictionaryForEvent:relativeToTime:]): (+[EventSerializer createEventForDictionary:inWindow:relativeToTime:]): (+[EventSerializer playEventStream:inWindow:completionHandler:]): * TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.h: Copied from Tools/WebKitTestRunner/mac/UIScriptControllerMac.mm. * TestRunnerShared/EventSerialization/mac/SharedEventStreamsMac.mm: Added. (beginSwipeBackEventStream): (completeSwipeBackEventStream): * TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl: * TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::playBackEventStream): (WTR::UIScriptController::beginBackSwipe): (WTR::UIScriptController::completeBackSwipe): (WTR::UIScriptController::platformPlayBackEventStream): (WTR::UIScriptController::platformClearAllCallbacks): Deleted. * TestRunnerShared/UIScriptContext/UIScriptController.h: * TestRunnerShared/spi/CoreGraphicsSPI.h: Added. * TestRunnerShared/spi/IOKitSPI.h: Renamed from Tools/WebKitTestRunner/ios/IOKitSPI.h. * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: * WebKitTestRunner/mac/UIScriptControllerMac.mm: (WTR::playBackEvents): (WTR::UIScriptController::beginBackSwipe): (WTR::UIScriptController::completeBackSwipe): (WTR::UIScriptController::platformPlayBackEventStream): 2017-03-29 Jonathan Bedard webkitpy: Robust test clean-up https://bugs.webkit.org/show_bug.cgi?id=170255 Reviewed by Alexey Proskuryakov. On-device testing is the motivation for this change. Failure to run clean-up functions can result in zombie processes, residual NFS mounts and other undesirable remnants from a failed test run. Make an effort to clean-up even if exceptions are thrown during set-up or clean-up. * Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager._set_up_run): Clean up test run if set-up fails. * Scripts/webkitpy/port/ios.py: (IOSPort.clean_up_test_run): Continue cleaning up devices even after an exception is thrown. 2017-03-29 Jonathan Bedard Simulator testing stops after the first crash Unreviewed infrastructure fix. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice): (SimulatedDevice.launch_app): Increase timeout when attempting to launch app. 2017-03-29 Jonathan Bedard webkitpy: Standardize web-server port definitions https://bugs.webkit.org/show_bug.cgi?id=170144 Reviewed by Daniel Bates. Default web-server ports should be declared in global variables. Add functions to web-servers which return the ports these servers are using so that other tools can forward them. * Scripts/webkitpy/layout_tests/servers/apache_http_server.py: (LayoutTestApacheHttpd.__init__): Use shared constants in http_server_base.py. * Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py: (TestLayoutTestApacheHttpd.test_start_cmd): Check port_to_forward for expected values. * Scripts/webkitpy/layout_tests/servers/http_server.py: (Lighttpd.__init__): Use shared constants in http_server_base.py. (Lighttpd._prepare_config): Ditto. * Scripts/webkitpy/layout_tests/servers/http_server_base.py: (HttpServerBase): Add default port constants. (HttpServerBase.ports_to_forward): Add function to return ports used for http server. * Scripts/webkitpy/layout_tests/servers/http_server_unittest.py: (TestHttpServer.test_start_cmd): Check port_to_forward for expected values. * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: (WebPlatformTestServer.ports_to_forward): Add function to return ports used for web-platform tests. * Scripts/webkitpy/layout_tests/servers/websocket_server.py: (PyWebSocket): Make default port values public. (PyWebSocket.__init__): Use public default port. (PyWebSocket.ports_to_forward): Return port used in an array. * Scripts/webkitpy/port/base.py: (Port.to.ports_to_forward): Return all ports used the various web-servers managed by the port object. (Port.to.start_websocket_server): Use PyWebSocket port constants. 2017-03-29 Wenson Hsieh Links with empty hrefs should not be drag sources https://bugs.webkit.org/show_bug.cgi?id=170241 Reviewed by Tim Horton. Adds a new API test: DataInteractionTests.LinkWithEmptyHREF. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): * TestWebKitAPI/ios/DataInteractionSimulator.h: Expose the current phase of the data interaction simulator for verifying behaviors in unit tests. * TestWebKitAPI/ios/DataInteractionSimulator.mm: (-[DataInteractionSimulator phase]): 2017-03-29 Jonathan Bedard Use TCP instead of FIFOs for Simulator/Device communication https://bugs.webkit.org/show_bug.cgi?id=169419 Reviewed by Alexey Proskuryakov. Using TCP instead of FIFOs when communicating with devices allows the device being tested to be on a different machine then the one handling the management of the test run. * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: * DumpRenderTree/mac/DumpRenderTree.mm: (dumpRenderTree): Call setUp/tearDownIOSLayoutTestCommunication() instead of using FIFOs. * Scripts/webkitpy/port/device.py: (Device.__init__): Initialize the listening_socket. (Device.listening_port): Return port of listening socket. (Device.prepare_for_testing): Open listening socket on an open port, prepare platform device fro testing. (Device.finished_testing): Close listening socket associated with this device, call the platform device's finished_testing function if it exists. * Scripts/webkitpy/port/ios.py: (IOSPort.setup_test_run): Prepare each device for testing. (IOSPort.clean_up_test_run): Notify each device that testing has completed. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort): Work around device persistence bug. (IOSSimulatorPort.__init__): Ditto. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess): (SimulatorProcess.NonBlockingFileFromSocket): Add to work around shortcomings in Python 2’s makefile. (SimulatorProcess.NonBlockingFileFromSocket.__init__): Initialize file with socket. (SimulatorProcess.ReadFileSocket.close): Close file and then socket; (SimulatorProcess.__init__): Pass TCP port over environment, remove FIFO names. (SimulatorProcess.__getattr__): Expose all file attributes. (SimulatorProcess._accept_connection_create_file): Wait for connection from server and create and return a file-like object from the incoming connection. (SimulatorProcess._start): Use TCP connections instead of FIFOs. (SimulatorProcess._start.handler): Output server port in timeout exception. (SimulatorProcess._reset): Deleted. * TestRunnerShared/IOSLayoutTestCommunication.cpp: Added. (connectToServer): Return socket connected to the provided server address. (setupiOSLayoutTestCommunication): Connect stdin, stdout and stderr as socket to a TCP server running on localhost. (tearDownIOSLayoutTestCommunication): Close stdin, stdout and stderr TCP sockets. * TestRunnerShared/IOSLayoutTestCommunication.h: Added. * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: * WebKitTestRunner/ios/TestControllerIOS.mm: (WTR::TestController::platformInitialize): Call setUpIOSLayoutTestCommunication() instead of using FIFOs. (WTR::TestController::platformDestroy): Call tearDownIOSLayoutTestCommunication(). 2017-03-29 Jonathan Bedard webkitpy: Add IOSDevicePort and IOSPort tests https://bugs.webkit.org/show_bug.cgi?id=170206 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/port/darwin_testcase.py: Removed unused import. * Scripts/webkitpy/port/ios_device_unittest.py: Added. (iosDeviceTest): Contains tests for the IOSDevicePort. (iosDeviceTest.make_port): Creates an IOSDevicePort with arguments. (iosDeviceTest.test_operating_system): Check for the correct operating system. * Scripts/webkitpy/port/ios_simulator_unittest.py: Moved from Tools/Scripts/webkitpy/port/ios_unittest.py. (iosSimulatorTest): Inherit from ios_testcase. (iosSimulatorTest.make_port): Ditto. (iosSimulatorTest.test_get_crash_log): Ditto. * Scripts/webkitpy/port/ios_testcase.py: Added. (iOSTest): Contains shared tests for the IOSDevicePort and IOSSimulatorPort. (iOSTest.test_driver_name): Tests for iOS app driver. (iOSTest.test_baseline_searchpath): Check that ios and ios-wk1 are in the baseline search path. * Scripts/webkitpy/port/ios_unittest.py: Moved to ios_simulator_unittest.py. * Scripts/webkitpy/port/port_testcase.py: (PortTestCase): Rename is_simulator to disable_setup to more accurately describe it's meaning. (PortTestCase.test_diff_image): Use disable_setup instead of is_simulator. (PortTestCase.test_diff_image_crashed): Ditto. 2017-03-28 Jason Marcell Fix `index-expected.txt` for dashboard test results. https://bugs.webkit.org/show_bug.cgi?id=170214 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/index-expected.txt: 2017-03-28 Alexey Proskuryakov Bot watcher's dashboard has separate settings for "mac" and "macos" https://bugs.webkit.org/show_bug.cgi?id=170164 Reviewed by Tim Horton. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js: (Settings.prototype.parsePlatformFamily): Aded a special case for "macos". 2017-03-28 Alexey Proskuryakov Fix dashboard test results on the dashboard https://bugs.webkit.org/show_bug.cgi?id=170158 Reviewed by Tim Horton. Link to result diff instead of stdio. Looking at the diff, I wonder if it can be further improved, as it's not super readable, but stdio is entirely useless in this context. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js: (Buildbot.prototype.dashboardTestResultsURLForIteration): Generate formatted diff link. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: Fixed a typo in step name, so that it's actually treated as productive. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js: (BuildbotTesterQueueView.prototype.appendBuilderQueueStatus): (BuildbotTesterQueueView.prototype.update): (BuildbotTesterQueueView.prototype._presentPopoverForGenericTestFailures): Added special handling for dashboard test results. 2017-03-28 Aakash Jain Fix Dashboard test _presentPopoverForJavaScriptCoreTestRegressions https://bugs.webkit.org/show_bug.cgi?id=170193 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js: Fixed the order of arguments. 2017-03-28 Aakash Jain Dashboard tests fails to fetch the revision from commits https://bugs.webkit.org/show_bug.cgi?id=170191 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockTrac.js: Added recordedCommitIndicesByRevisionNumber. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js: (setup): Populated trac.recordedCommitIndicesByRevisionNumber since the dashboard code uses this variable. 2017-03-28 Timothy Horton Safari crashes when attempting to close tab that is displaying PDF https://bugs.webkit.org/show_bug.cgi?id=170201 Reviewed by Wenson Hsieh. * TestWebKitAPI/Tests/WebKit2Cocoa/DoAfterNextPresentationUpdateAfterCrash.mm: (TEST): Add a test for doAfterNextStablePresentationUpdate just like the existing non-stable one. 2017-03-28 Jonathan Bedard webkitpy: Use host pattern for devices https://bugs.webkit.org/show_bug.cgi?id=170121 Reviewed by Daniel Bates. Devices should be treated like hosts throughout webkitpy so that more code can be re-used. Add the needed properties and use executive over custom implemented polling/killing functions. * Scripts/webkitpy/port/device.py: (Device): (Device.executive): Add optional executive property. (Device.filesystem): Add optional filesystem property. (Device.user): Add optional user property. (Device.platform): Add optional platform property. (Device.workspace): Add optional workspace property. (Device.poll): Deleted. * Scripts/webkitpy/port/simulator_process.py: (SimulatorProcess.Popen.poll): Use the devices executive. (SimulatorProcess.stop): Ditto. (SimulatorProcess._kill): Ditto. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice.__init__): Add executive, filesystem, user, platform and workspace to the platform device. (SimulatedDevice.poll): Deleted. 2017-03-28 Aakash Jain Dashboard test fails with error: latestIterationGetter is not a function https://bugs.webkit.org/show_bug.cgi?id=170167 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js: (this.view._latestProductiveIteration): Configure _latestProductiveIteration in setup. 2017-03-27 Lucas Forschler Another test v8. 2017-03-27 Lucas Forschler Another test v7. 2017-03-27 Lucas Forschler Another test v6. 2017-03-27 Lucas Forschler Another test v5. 2017-03-27 Lucas Forschler Another test v4. 2017-03-27 Lucas Forschler Another test v3. 2017-03-27 Lucas Forschler Another test v2. 2017-03-27 Lucas Forschler Another test. 2017-03-27 Lucas Forschler Update build.webkit.org to use port 16000 for PBChangeSource. Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/master.cfg: 2017-03-27 Jason Marcell Bots should run the dashboard tests https://bugs.webkit.org/show_bug.cgi?id=168994 Reviewed by Daniel Bates and David Kilzer. We pull the `--results-directory` argument value out so that `RunDashboardTests` can override it so that we can separately run the dashboard layout tests. * BuildSlaveSupport/build.webkit.org-config/master.cfg: (RunWebKitTests): Define a class variable called resultDirectory for the `--results-directory` argument so that subclasses can override this if needed. (RunWebKitTests.start): Set the `--results-directory` argument value to the value of self.resultDirectory. (RunDashboardTests): Subclass of RunWebKitTests in which we run the layout tests for the Bot Watcher's Dashboard. (RunDashboardTests.start): Override the `--layout-tests-directory` to point to the dashboard layout tests. (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. (TestFactory.__init__): Update unit tests to account for new RunDashboardTests step. * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: 2017-03-27 Jonathan Bedard webkitpy: Look for 'ios' test expectations for IOSPorts https://bugs.webkit.org/show_bug.cgi?id=169413 Reviewed by Alexey Proskuryakov. Test expectations for iOS tests should include the 'ios' folder. Modify default_baseline_search_path to include 'ios' folder and derivatives for IOSPort. * Scripts/webkitpy/port/ios.py: (IOSPort._generate_all_test_configurations): Moved from IOSSimulatorPort. (IOSPort.default_baseline_search_path): Add ios expectations along with port specific expectations. (IOSPort.test_expectations_file_position): Added for testing. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort._generate_all_test_configurations): Moved to IOSPort. (IOSSimulatorPort.default_baseline_search_path): Moved to IOSPort. 2017-03-27 Jonathan Bedard REGRESSION: Reseting _device_map on each child process Unreviewed infrastructure fix. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort): Add _DEVICE_MAP class variable. (IOSSimulatorPort.__init__): Use shared class variable (IOSSimulatorPort._device_for_worker_number_map): Use _DEVICE_MAP class variable (IOSSimulatorPort._create_devices): Ditto. (IOSSimulatorPort._quit_ios_simulator): Ditto. (IOSSimulatorPort.clean_up_test_run): Ditto. 2017-03-27 Jonathan Bedard REGRESSION: Failing to iterate over Simulator.managed_devices map Unreviewed infrastructure fix. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort._create_devices): Iterate through managed_devices by worker number. 2017-03-27 Alex Christensen Make WebSockets work in network process https://bugs.webkit.org/show_bug.cgi?id=169930 Reviewed by Youenn Fablet. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Add terminateNetworkProcess for the new test http/tests/websocket/tests/hybi/network-process-crash-error.html * WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setAllowsAnySSLCertificate): (WTR::TestRunner::terminateNetworkProcess): * WebKitTestRunner/InjectedBundle/TestRunner.h: * WebKitTestRunner/TestController.cpp: (WTR::TestController::setAllowsAnySSLCertificate): (WTR::TestController::terminateNetworkProcess): * WebKitTestRunner/TestController.h: * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): * WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformContext): * WebKitTestRunner/gtk/TestControllerGtk.cpp: (WTR::TestController::platformContext): (WTR::TestController::platformLibraryPathForTesting): Add some infrastructure for http/tests/websocket/tests/hybi/simple-wss.html which calls testRunner.setAllowsAnySSLCertificate. It used to only be effective for the WebProcess, but SocketStreamHandleImpl::createStreams is now in the NetworkProcess, and we need its call to Settings::allowsAnySSLCertificate to be loosened for this test, which tests that wss works, but our test certificate has an invalid certificate chain. We want production software to not have the ability to have its security weakened, so this is a test code path that is only implemented in WebKitTestRunner. 2017-03-25 Jonathan Bedard webkitpy: Use generalized device instead of platform specific one https://bugs.webkit.org/show_bug.cgi?id=170078 Reviewed by Daniel Bates. SimulatedDevice is re-created each time 'xcrun simctl list' is called. Device should remain persistent. Changing Device to a more explicit interface. SimulatedDevice no longer inherits from Device and IOSSimulator returns Devices wrapping SimulatedDevices. * Scripts/webkitpy/port/device.py: Added. (Device): (Device.__init__): Construct with platform device. (Device.install_app): Install app at app path on platform device. (Device.launch_app): Launch app with bundle ID on platform device. (Device.poll): Poll platform device. (Device.udid): Access platform device UDID. (Device.__nonzero__): Check if instantiated with a valid platform device. (Device.__eq__): Compare by udid. (Device.__ne__): Ditto. (Device.__repr__): Print out platform_device representation. * Scripts/webkitpy/port/ios_simulator.py: (IOSSimulatorPort.__init__): Initialize the _device_map to an empty dictionary. (IOSSimulatorPort._device_for_worker_number_map): Return self._device_map. (IOSSimulatorPort._create_simulators): Call Simulator.managed_devices directly. (IOSSimulatorPort._create_devices): Place Simulator.managed_devices into the device map. (IOSSimulatorPort._quit_ios_simulator): Reset self._device_map. * Scripts/webkitpy/xcode/device.py: Removed. * Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDevice): (SimulatedDevice.__init__): Move host, name and did to SimulatedDevice. (SimulatedDevice.__eq__): Compare two simulated devices. (SimulatedDevice.__ne__): Ditto. (SimulatedDevice.__repr__): Print name and udid. 2017-03-25 Adrian Perez de Castro [GTK] No value returned from PrintCustomWidgetTest::createWebKitPrintOperation() in TestPrinting.cpp https://bugs.webkit.org/show_bug.cgi?id=170059 Reviewed by Carlos Garcia Campos. * TestWebKitAPI/Tests/WebKit2Gtk/TestPrinting.cpp: Use "void" as return type in the declaration, the only use of the method in this same file ignores the returned value anyway. 2017-03-24 Srinivasan Vijayaraghavan webkitpy should be able to run API tests https://bugs.webkit.org/show_bug.cgi?id=170028 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/common/config/ports.py: (DeprecatedPort.run_api_tests_command): Added. * Scripts/webkitpy/port/base.py: (Port.api_results_directory): Added. * Scripts/webkitpy/tool/steps/runtests.py: (RunTests.run): Check if we should be running API tests. (RunTests._run_api_tests): Generate script to run API tests with json output. * Scripts/webkitpy/tool/steps/steps_unittest.py: Unit tests. 2017-03-24 Srinivasan Vijayaraghavan Add JSON results for API tests https://bugs.webkit.org/show_bug.cgi?id=170021 Reviewed by Alexey Proskuryakov. * Scripts/run-api-tests: (runTestsBySuite): Appends failures and timeouts to JSON data. (writeJsonDataIfApplicable): Writes JSON data to a file. 2017-03-24 Lucas Forschler update committer_auth.py to be python 2.7 compliant https://bugs.webkit.org/show_bug.cgi?id=170063 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/committer_auth.py: (CommitterAuth.authenticate): convert e.message to e.args[0] 2017-03-24 Srinivasan Vijayaraghavan webkitpy: Parse JSON results from run-api-tests https://bugs.webkit.org/show_bug.cgi?id=170062 Reviewed by Alexey Proskuryakov. * Scripts/webkitpy/common/net/apitestresults.py: Added. (APITestResults): Structure to represent API test results. (APITestResults.__init__): (APITestResults.intersection): Return the failures common to both sets of results. (APITestResults.results_from_string): Create an APITestResults object from a JSON results string. (APITestResults.equals): Return True if both results were the same. (APITestResults.is_subset): Return True if failing tests are a subset of the other failing tests. (APITestResults.all_passed): Return True if everything passed. (APITestResults.failing_tests): List of tests that didn't pass. (APITestResults.did_exceed_test_failure_limit): Always False. * Scripts/webkitpy/common/net/apitestresults_unittest.py: Added. (APITestResultsTest): Unit tests. * Scripts/webkitpy/tool/bot/apitestresultsreader.py: Added. (APITestResultsReader): Read contents of JSON results file. 2017-03-24 Alex Christensen REGRESSION: Content Blocker: Blocking "a[href*=randomString]" doesn't work https://bugs.webkit.org/show_bug.cgi?id=169167 Reviewed by Simon Fraser. * TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp: (TestWebKitAPI::TEST_F): Test an example of a selector that was incorrectly determined to be invalid. 2017-03-24 Jonathan Bedard Increase timeout for booting simulators. Unreviewed infrastructure fix. * Scripts/webkitpy/xcode/simulator.py: (Simulator.wait_until_device_is_booted): Increase timeout. (Simulator.wait_until_device_is_in_state): Increase timeout. 2017-03-24 Carlos Garcia Campos Unreviewed. Fix GTK+ test /webkit2/WebKitWebView/javascript-dialogs after r214277. Since r214277 beforeunload events are not fired unless there's some user interaction, so we need to simulate it in our unit tests to work. * TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp: (testWebViewJavaScriptDialogs): 2017-03-24 Carlos Garcia Campos [GTK] Add MIMETypeRegistry implementation using xdgmime and remove the GTK+ one https://bugs.webkit.org/show_bug.cgi?id=170001 Reviewed by Michael Catanzaro. Ignore style of xdgmime sources. * Scripts/webkitpy/tool/steps/checkstyle.py: 2017-03-23 Wenson Hsieh Dragging on a large image should not revert to a file icon if data interaction is enabled https://bugs.webkit.org/show_bug.cgi?id=170018 Reviewed by Tim Horton. Add new tests for data interaction. LargeImageToTargetDiv verifies the change made in this patch, while AttachmentElementItemProviders was a test that was previously removed due to . * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKit2Cocoa/large-red-square.png: Added. * TestWebKitAPI/Tests/ios/DataInteractionTests.mm: (TestWebKitAPI::TEST): 2017-03-23 Fujii Hironori Update WinCairoRequirements.zip https://bugs.webkit.org/show_bug.cgi?id=169950 Reviewed by Alex Christensen. * Scripts/update-webkit-wincairo-libs: Replace $winCairoLibsURL. == Rolled over to ChangeLog-2017-03-23 ==