WebKit-https.git
12 months ago[MotionMark] Update Multiply test
jonlee@apple.com [Tue, 14 Aug 2018 00:58:40 +0000 (00:58 +0000)]
[MotionMark] Update Multiply test
https://bugs.webkit.org/show_bug.cgi?id=188532
<rdar://problem/43252151>

Reviewed by Said Abou-Hallawa.

Update Multiply test to have a larger upper limit of number of particles. Cycle through three
different ways of hiding an element. Add new Multiple suite that isolates those components for
debugging purposes.

* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/dom/multiply.html: Added.
* MotionMark/tests/dom/resources/multiply.js: Added.
* MotionMark/tests/master/resources/multiply.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234832 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[iOS] Crash at -[UIViewController _presentViewController:withAnimationController...
commit-queue@webkit.org [Tue, 14 Aug 2018 00:39:03 +0000 (00:39 +0000)]
[iOS] Crash at -[UIViewController _presentViewController:withAnimationController:completion:]
https://bugs.webkit.org/show_bug.cgi?id=188537
<rdar://problem/41400259>

Patch by James Savage <james.savage@apple.com> on 2018-08-13
Reviewed by Tim Horton.

* platform/ios/ValidationBubbleIOS.mm:
(WebCore::ValidationBubble::show): Avoid hitting a UIKit exception for
presenting an already presented view controller by turning the scenario
into an early return.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234831 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[WPT] Ensure templated tests do set a Content-Type: text/html HTTP header
youenn@apple.com [Mon, 13 Aug 2018 23:45:51 +0000 (23:45 +0000)]
[WPT] Ensure templated tests do set a Content-Type: text/html HTTP header
https://bugs.webkit.org/show_bug.cgi?id=188523

Reviewed by Alexey Proskuryakov.

Importing change made in https://github.com/web-platform-tests/wpt/pull/12450
This helps running WPT tests in more platforms.

* web-platform-tests/tools/serve/serve.py:
(HtmlWrapperHandler):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234827 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoMake CSSSelectorList a little more sane
achristensen@apple.com [Mon, 13 Aug 2018 23:36:09 +0000 (23:36 +0000)]
Make CSSSelectorList a little more sane
https://bugs.webkit.org/show_bug.cgi?id=188539

Reviewed by Simon Fraser.

This patch does four things:
1. Use a UniqueArray<CSSSelector> instead of a raw pointer and manually calling destructors.
2. Use move semantics a little bit better.
3. Add a CSSSelectorList&& to the StyleRule and StyleRulePage because every time we create either
one of those objects we call a setter to give it a CSSSelectorList.  That's what constructor arguments are for.
4. Don't use CSSSelectorList.componentCount(), which iterates all components, to determine if it's empty.
Use first() instead.

* css/CSSPageRule.cpp:
(WebCore::CSSPageRule::setSelectorText):
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::componentCount const):
(WebCore::CSSSelectorList::listSize const):
(WebCore::CSSSelectorList::operator=):
(WebCore::CSSSelectorList::deleteSelectors): Deleted.
* css/CSSSelectorList.h:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::first const):
(WebCore::CSSSelectorList::indexOfNextSelectorAfter const):
(WebCore::CSSSelectorList::~CSSSelectorList): Deleted.
(WebCore::CSSSelectorList::adoptSelectorArray): Deleted.
(WebCore::CSSSelectorList::hasOneSelector const): Deleted.
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::setSelectorText):
* css/StyleRule.cpp:
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRulePage::StyleRulePage):
* css/StyleRule.h:
* css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumePageRule):
(WebCore::CSSParserImpl::consumeStyleRule):
* css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumePseudo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoAllow the substring 'me' in contributor names and email addresses
commit-queue@webkit.org [Mon, 13 Aug 2018 23:15:05 +0000 (23:15 +0000)]
Allow the substring 'me' in contributor names and email addresses
https://bugs.webkit.org/show_bug.cgi?id=188538

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-13
Reviewed by Tim Horton.

A test didn't permit the string "me" in email addresses or names of contributors.

* Scripts/webkitpy/common/config/committers_unittest.py:
(CommittersTest.test_contributors_by_fuzzy_match):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[MotionMark] Update Leaves test
jonlee@apple.com [Mon, 13 Aug 2018 23:02:07 +0000 (23:02 +0000)]
[MotionMark] Update Leaves test
https://bugs.webkit.org/show_bug.cgi?id=188530
<rdar://problem/43251862>

Reviewed by Said Abou-Hallawa.

Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
for debugging purposes.

* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/dom/leaves.html:
* MotionMark/tests/dom/resources/leaves.js:
* MotionMark/tests/master/resources/leaves.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234823 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoWeb Inspector: Table should handle row selection instead of the table delegate
mattbaker@apple.com [Mon, 13 Aug 2018 22:44:18 +0000 (22:44 +0000)]
Web Inspector: Table should handle row selection instead of the table delegate
https://bugs.webkit.org/show_bug.cgi?id=188534
<rdar://problem/43253335>

Reviewed by Joseph Pecoraro.

Row selection should be implemented by Table, rather than its delegate.

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype.tableShouldSelectRow):
(WI.NetworkTableContentView.prototype.tableCellMouseDown): Deleted.
Prevent selection unless the clicked cell belongs to the name column.

* UserInterface/Views/ResourceCookiesContentView.js:
(WI.ResourceCookiesContentView.prototype.tableShouldSelectRow):
Always prevent selection.

* UserInterface/Views/Table.js:
(WI.Table):
(WI.Table.prototype._handleMouseDown):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234822 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[macOS debug] LayoutTest inspector/worker/resources-in-worker.html is a flaky timeout
joepeck@webkit.org [Mon, 13 Aug 2018 22:29:37 +0000 (22:29 +0000)]
[macOS debug] LayoutTest inspector/worker/resources-in-worker.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168091

Reviewed by Devin Rousso.

* inspector/worker/resources-in-worker-expected.txt:
* inspector/worker/resources-in-worker.html:
* inspector/worker/resources/resource-utilities.js:
* inspector/worker/resources/worker-resources.js:
Be a little more careful about proceeding with tests after starting the Worker.
Fix the resource load from the main target to actually load a real resource.

* inspector/dom-debugger/resources/dataXHR.json: Added.
* inspector/dom-debugger/xhr-breakpoints.html:
Load an actual resource.

* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
This test always passes for me in Release and Debug. Reset expectations.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234821 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed, rolling out r234812.
commit-queue@webkit.org [Mon, 13 Aug 2018 22:17:51 +0000 (22:17 +0000)]
Unreviewed, rolling out r234812.
https://bugs.webkit.org/show_bug.cgi?id=188536

broke the build (Requested by ThomasDenney on #webkit).

Reverted changeset:

"Added Thomas Denney to contributors.json."
https://bugs.webkit.org/show_bug.cgi?id=188525
https://trac.webkit.org/changeset/234812

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234820 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoAvoid timeout resulted from calling waitUntilDone when test is not running
sihui_liu@apple.com [Mon, 13 Aug 2018 22:16:39 +0000 (22:16 +0000)]
Avoid timeout resulted from calling waitUntilDone when test is not running
https://bugs.webkit.org/show_bug.cgi?id=188389

Reviewed by Chris Dumez.

If test is not running, we should not set the waitUntilDone flag, or it may cause subsequent tests timeout.

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::waitUntilDone):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234819 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[IntersectionObserver] Validate threshold values
ajuma@chromium.org [Mon, 13 Aug 2018 22:02:45 +0000 (22:02 +0000)]
[IntersectionObserver] Validate threshold values
https://bugs.webkit.org/show_bug.cgi?id=188475

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update expectation for newly passing test case.

* web-platform-tests/intersection-observer/observer-exceptions-expected.txt:
* web-platform-tests/intersection-observer/observer-exceptions.html: Fix typo already fixed upstream.

Source/WebCore:

Throw an exception if any of an IntersectionObserver's thresholds are outside
the range [0, 1].

Tested by: imported/w3c/web-platform-tests/intersection-observer/observer-exceptions.html
           intersection-observer/intersection-observer-interface.html

* page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
* page/IntersectionObserver.h:

LayoutTests:

Add test coverage for interesting floating point threshold values.

* intersection-observer/intersection-observer-interface-expected.txt:
* intersection-observer/intersection-observer-interface.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234818 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoRemove unused CSSSelector::parseNth
commit-queue@webkit.org [Mon, 13 Aug 2018 21:17:10 +0000 (21:17 +0000)]
Remove unused CSSSelector::parseNth
https://bugs.webkit.org/show_bug.cgi?id=188529

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-13
Reviewed by Simon Fraser.

This was conceptually replaced by the call to setNth in CSSSelectorParser::consumePseudo.

* css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::setNth):
(WebCore::CSSSelector::nthA const):
(WebCore::CSSSelector::nthB const):
(WebCore::CSSSelector::parseNth const): Deleted.
(WebCore::CSSSelector::RareData::parseNth): Deleted.
* css/CSSSelector.h:
(WebCore::CSSSelector::CSSSelector):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addNthChildType):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234817 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[WK2] [macOS] Implement a mechanism to test drag and drop
wenson_hsieh@apple.com [Mon, 13 Aug 2018 21:07:55 +0000 (21:07 +0000)]
[WK2] [macOS] Implement a mechanism to test drag and drop
https://bugs.webkit.org/show_bug.cgi?id=181898
<rdar://problem/39181698>

Reviewed by Simon Fraser.

Source/WebKit:

Adds a new SPI method, `-_doAfterProcessingAllPendingMouseEvents:`, to WKWebView. This invokes the given
callback after all queued mouse events have been handled by the web process. See Tools/ChangeLog for more
detail.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/wpe/PageClientImpl.h:
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::processDidExit):

Invoke any outstanding callbacks for processing pending mouse events when the web process is terminated.

(WebKit::WebViewImpl::doAfterProcessingAllPendingMouseEvents):

Either invoke the callback immediately if there are no mouse events to be processed, or insert the callback in
a queue that will be flushed once all mouse events have been handled.

(WebKit::WebViewImpl::didFinishProcessingAllPendingMouseEvents):
(WebKit::WebViewImpl::flushPendingMouseEventCallbacks):
* UIProcess/PageClient.h:
(WebKit::PageClient::pinnedStateWillChange):
(WebKit::PageClient::pinnedStateDidChange):
(WebKit::PageClient::videoControlsManagerDidChange):

Drive-by tweaks: remove unnecessary semicolons after empty implementation stubs.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveEvent):

Notify the page client when there are no remaining mouse events left in the queue.

* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/mac/PageClientImplMac.h:
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::didFinishProcessingAllPendingMouseEvents):

Add some plumbing through PageClient, so that WebPageProxy can tell WebViewImpl when it is finished processing
all mouse events.

* UIProcess/win/PageClientImpl.h:

Tools:

Implements the currently stubbed DragAndDropSimulator on macOS, and introduces a new API test for r227266. See
comments below for more detail.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm: Copied from Tools/TestWebKitAPI/mac/DragAndDropSimulatorMac.mm.

Introduce a file for cross-platform drag and drop tests, currently for iOS and macOS. Additionally add a test
for r227266, which was fixed earlier this year but could not be tested due to a lack of testing mechanism on
macOS in WebKit2.

(TEST):
* TestWebKitAPI/Tests/WebKitCocoa/full-page-dropzone.html: Added.

Minor tweaks to this test page to add "dragover" and "drop" event handlers.

* TestWebKitAPI/Tests/WebKitCocoa/image-in-link-and-input.html:
* TestWebKitAPI/Tests/WebKitCocoa/link-in-iframe-and-input.html: Added.

Add a new test page that includes a link embedded within an iframe below a plain text input.

* TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm: Added.
(TEST):
* TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm: Renamed from Tools/TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm.

Move only existing WebKit2 macOS drag and drop test (DragAndDropPasteboardTests.NumberOfValidItemsForDrop) out
of DragAndDropPasteboardTests.mm and into a new file, DragAndDropTestsMac.mm. Additionally, rename
DragAndDropPasteboardTests to LegacyDragAndDropTests, since it now only contains two legacy WebView tests for
drag and drop.

(+[FrameLoadCompletionListener listenerWithCompletionBlock:]):
(-[FrameLoadCompletionListener initWithCompletionBlock:]):
(-[FrameLoadCompletionListener webView:didFinishLoadForFrame:]):
(-[DragSource draggingSourceOperationMaskForLocal:]):
(-[DragInfo initWithImage:offset:pasteboard:source:destinationWindow:]):
(-[DragInfo lastMousePosition]):
(-[DragInfo setLastMousePosition:]):
(-[DragInfo draggingDestinationWindow]):
(-[DragInfo draggingSourceOperationMask]):
(-[DragInfo draggingLocation]):
(-[DragInfo draggedImageLocation]):
(-[DragInfo draggedImage]):
(-[DragInfo draggingPasteboard]):
(-[DragInfo draggingSource]):
(-[DragInfo draggingSequenceNumber]):
(-[DragInfo slideDraggedImageTo:]):
(-[DragInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[DragInfo draggingFormation]):
(-[DragInfo setDraggingFormation:]):
(-[DragInfo animatesToDestination]):
(-[DragInfo setAnimatesToDestination:]):
(-[DragInfo numberOfValidItemsForDrop]):
(-[DragInfo setNumberOfValidItemsForDrop:]):
(-[DragInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[DragInfo springLoadingHighlight]):
(-[DragInfo resetSpringLoading]):
(TestWebKitAPI::getTestImage):
(TestWebKitAPI::webViewAfterPerformingDragOperation):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/mac/full-page-dropzone.html: Removed.
* TestWebKitAPI/cocoa/DragAndDropSimulator.h:

Flesh out some of the DragAndDropSimulator API for macOS, exposing (among other things) the drag pasteboard,
the current NSDraggingInfo, the initial location of the drag image, and the drag image itself.

* TestWebKitAPI/cocoa/TestWKWebView.h:
* TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView mouseUpAtPoint:]):
(-[TestWKWebView mouseMoveToPoint:withFlags:]):
(-[TestWKWebView sendClicksAtPoint:numberOfClicks:]):
(-[TestWKWebView mouseEnterAtPoint:]):
(-[TestWKWebView mouseExitAtPoint:]):
(-[TestWKWebView mouseDragToPoint:]):
(-[TestWKWebView _mouseEventWithType:atLocation:]):
(-[TestWKWebView _mouseEventWithType:atLocation:flags:timestamp:clickCount:]):

Add TestWKWebView helpers to send MouseMove, MouseEnter and MouseDrag NSEvents to the web view. Additionally,
rename parameter names to these helpers to make it more obvious that these locations are all in NSWindow
coordinates.

(-[TestWKWebView typeCharacter:]):

Drive-by style fix: put this opening brace on the beginning of the next line.

* TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
(-[DragAndDropSimulator initWithWebViewFrame:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator webView]):

Small iOS DragAndDropSimulator adjustments for new DragAndDropSimulator interfaces.

* TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropTestWKWebView initWithFrame:configuration:simulator:]):

Introduce a WKWebView subclass for testing drag and drop that overrides `-dragImage:at:offset:…`, and instead
allows DragAndDropSimulator to take over the drag.

(-[DragAndDropTestWKWebView dragImage:at:offset:event:pasteboard:source:slideBack:]):

Override this entry point into drag and drop code, and instead call out to the DragAndDropSimulator to
coordinate the drag.

(-[DragAndDropTestWKWebView waitForPendingMouseEvents]):

Helper method to wait for the web process to finish handling all in-flight mouse events.

(defaultExternalDragImage):

Set this image as the default drag image when simulating an incoming drag session from outside of the web view.

(-[DragAndDropSimulator initWithWebViewFrame:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator flipAboutXAxisInHostWindow:]):

Helper method to flip a given point about the X axis of the window.

(-[DragAndDropSimulator locationInViewForCurrentProgress]):

Map a progress value (between 0 and 1) to a drag location.

(-[DragAndDropSimulator initialProgressForMouseDrag]):

Determines the initial progress value when initiation a drag in web content. This is the initial progress
required to ensure that the first mouse drag event exceeds the drag distance hysteresis and causes any drag
(if applicable) to begin.

(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):

Helper to coordinate drag updates in both the cases where we're simulating a drag session entering from outside
of the web view, and in the case where we've initiated a drag from the web view itself.

(-[DragAndDropSimulator webView]):
(-[DragAndDropSimulator setExternalDragPasteboard:]):
(-[DragAndDropSimulator externalDragPasteboard]):

Just like its iOS counterpart (setExternalItemProviders:), setting an external drag pasteboard on macOS puts the
DragAndDropSimulator in a mode that simulates a drag coming in from outside the web view, using the given
pasteboard.

(-[DragAndDropSimulator setExternalDragImage:]):
(-[DragAndDropSimulator externalDragImage]):

May be optionally set when specifying an external drag pasteboard to specify the drag image used. If no external
drag image is specified, falls back to the default image returned by `defaultExternalDragImage()`.

(-[DragAndDropSimulator draggingInfo]):
(-[DragAndDropSimulator willEndDraggingHandler]):
(-[DragAndDropSimulator setWillEndDraggingHandler:]):

Hook to allow tests to run logic right before performing the drop (if the current drag operation is not none) or
ending the drag session without performing a drag operation.

(-[DragAndDropSimulator initWithWebView:]): Deleted.
(-[DragAndDropSimulator dealloc]): Deleted.
(-[DragAndDropSimulator phase]): Deleted.
* TestWebKitAPI/mac/TestDraggingInfo.h: Copied from Tools/TestWebKitAPI/mac/DragAndDropSimulatorMac.mm.
* TestWebKitAPI/mac/TestDraggingInfo.mm: Added.

Mock object conforming to NSDraggingInfo that is passed to WKWebView when invoking -draggingUpdated:,
-draggingEntered: and -draggingExited:.

(-[TestDraggingInfo draggingPasteboard]):
(-[TestDraggingInfo setDraggingPasteboard:]):
(-[TestDraggingInfo draggingSource]):
(-[TestDraggingInfo setDraggingSource:]):
(-[TestDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[TestDraggingInfo draggingDestinationWindow]):
(-[TestDraggingInfo draggedImage]):
(-[TestDraggingInfo setDraggedImage:]):
(-[TestDraggingInfo slideDraggedImageTo:]):
(-[TestDraggingInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[TestDraggingInfo resetSpringLoading]):

Empty method stubs, to be implemented in the future as needed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234816 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoRemove unused code in CSSParserSelector/CSSSelector
achristensen@apple.com [Mon, 13 Aug 2018 20:18:05 +0000 (20:18 +0000)]
Remove unused code in CSSParserSelector/CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=188528

Reviewed by Simon Fraser.

* css/CSSSelector.cpp:
* css/CSSSelector.h:
(WebCore::CSSSelector::serializingValue const):
(WebCore::CSSSelector::setAttributeValueMatchingIsCaseInsensitive): Deleted.
* css/parser/CSSParserSelector.h:
(WebCore::CSSParserSelector::setAttributeValueMatchingIsCaseInsensitive): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234815 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoModernize CSSSelectorList a little
achristensen@apple.com [Mon, 13 Aug 2018 20:17:09 +0000 (20:17 +0000)]
Modernize CSSSelectorList a little
https://bugs.webkit.org/show_bug.cgi?id=188527

Reviewed by Simon Fraser.

No change in behavior.  Just use make_unique and move semantics a little more.

* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::adoptSelectorVector): Deleted.
* css/CSSSelectorList.h:
* css/StyleRule.h:
* css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parsePageSelector):
* css/parser/CSSParserSelector.cpp:
(WebCore::CSSParserSelector::adoptSelectorVector):
* css/parser/CSSParserSelector.h:
* css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeCompoundSelectorList):
(WebCore::CSSSelectorParser::consumePseudo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234814 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoFix linux build after r234811
achristensen@apple.com [Mon, 13 Aug 2018 20:01:50 +0000 (20:01 +0000)]
Fix linux build after r234811
https://bugs.webkit.org/show_bug.cgi?id=188501

* UIProcess/API/glib/WebKitWebsiteData.cpp:
(recordContainsSupportedDataTypes):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234813 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoAdded Thomas Denney to contributors.json.
commit-queue@webkit.org [Mon, 13 Aug 2018 19:52:13 +0000 (19:52 +0000)]
Added Thomas Denney to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=188525

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-13
Reviewed by Myles C. Maxfield.

* Scripts/webkitpy/common/config/contributors.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234812 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoMeaning of OptionSet::contains is unclear when used with OptionSet argument
antti@apple.com [Mon, 13 Aug 2018 19:16:10 +0000 (19:16 +0000)]
Meaning of OptionSet::contains is unclear when used with OptionSet argument
https://bugs.webkit.org/show_bug.cgi?id=188501

Reviewed by Anders Carlsson.

Source/WebCore:

* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::possiblyHasMarkers):
* dom/DocumentMarkerController.h:
(WebCore::DocumentMarkerController::hasMarkers const):
* platform/FileSystem.h:
(WebCore::FileSystem::openAndLockFile):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::selectionColor const):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintForegroundForFragments):

Source/WTF:

The existing behavior is "contains any" but it is not very clear from the name.

* wtf/OptionSet.h:
(WTF::OptionSet::contains const):

This is now for testing a single option only.

(WTF::OptionSet::containsAny const):
(WTF::OptionSet::containsAll const):

Add separate functions for OptionSet argument.

Tools:

* TestWebKitAPI/Tests/WTF/OptionSet.cpp:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234811 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed, rolling out r234747.
commit-queue@webkit.org [Mon, 13 Aug 2018 18:42:55 +0000 (18:42 +0000)]
Unreviewed, rolling out r234747.
https://bugs.webkit.org/show_bug.cgi?id=188524

plugin processes crash on launch (Requested by smfr on
#webkit).

Reverted changeset:

"We should cache the compiled sandbox profile in a data vault"
https://bugs.webkit.org/show_bug.cgi?id=184991
https://trac.webkit.org/changeset/234747

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234810 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[iOS] Dragging a non-editable text selection into a plain text input inserts HTML...
wenson_hsieh@apple.com [Mon, 13 Aug 2018 18:33:30 +0000 (18:33 +0000)]
[iOS] Dragging a non-editable text selection into a plain text input inserts HTML markup
https://bugs.webkit.org/show_bug.cgi?id=188485
<rdar://problem/43168784>

Reviewed by Tim Horton.

Source/WebCore:

Before r223678, -typeIdentifiersToLoadForRegisteredTypeIdentifiers:, which is responsible for determining which
type identifiers to load upon performing a drop, returned the following when dropping a rich text selection onto
a textarea:

    "public.plain-text",
    "public.html"

After r223678, we now propagate a custom pasteboard data type when dragging, and the same list now looks like:

    "com.apple.WebKit.custom-pasteboard-data",
    "public.html",
    "public.plain-text"

Subsequently, logic in `-_preLoadedDataConformingToType:…` (responsible for mapping a requested type identifier
to data that has been loaded from an item provider) iterates through the aforementioned list of type identifiers
and selects the data of the first type identifier in the list that conforms to the requested type identifier.
However, this list of type identifiers is currently the result of `-[NSSet allObjects]`, which means that the
type identifiers in the list are in no particular order!

As such, this particular use case only worked by accident prior to r223678, and after that change, this latent
bug was surfaced. The patch here makes two adjustments to pasteboard handling on iOS to fix the bug.

Test: DragAndDropTests.NonEditableTextSelectionToTextarea

* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::read):

When reading plain text from the pasteboard, give "public.plain-text" priority over "public.text". This ensures
that we don't end up reading markup as "plain text" when there's already more relevant plain text data present
in the pasteboard.

* platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentifiers:]):

Refactor existing logic to enforce a consistent ordering of type identifiers to load. First, we use
NSMutableOrderedSet instead of just an NSMutableSet to store type identifiers we've added. Secondly, move all
logic to insert type identifiers into this set to the end of the method, where we iterate over all of the type
identifiers in order and add each type identifier to the set if needed. This ensures that the order of resulting
types is from highest to lowest fidelity.

(-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]):
(-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentfiers:]): Deleted.

Fix a typo in the method name.

Tools:

Add a new API test to verify that dropping selected non-editable rich text into a textarea inserts text as
expected, rather than markup.

It's somewhat interesting to note that this particular use case isn't exercised by any existing tests; the
closest test is DragAndDropTests.ContentEditableToTextarea, which drags a rich text selection from a
contenteditable element to a text area. However, due to logic in `DragController::concludeEditDrag` that handles
drag and drop across editable content differently than drag and drop from non-editable to editable content, the
bug that is fixed here doesn't surface in that existing test.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/selected-text-and-textarea.html: Added.
* TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234809 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUse a 1-byte enum class for TextDirection
commit-queue@webkit.org [Mon, 13 Aug 2018 18:19:03 +0000 (18:19 +0000)]
Use a 1-byte enum class for TextDirection
https://bugs.webkit.org/show_bug.cgi?id=188350

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-13
Reviewed by Simon Fraser.

Source/WebCore:

* Modules/notifications/Notification.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextDirection const):
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::matchAllRules):
* dom/Document.cpp:
(WebCore::Document::updateTitleFromTitleElement):
(WebCore::Document::setTitle):
* dom/Position.cpp:
(WebCore::Position::primaryDirection const):
* dom/Range.cpp:
(WebCore::Range::collectSelectionRectsWithoutUnionInteriorLines const):
* editing/Editing.cpp:
(WebCore::directionOfEnclosingBlock):
* editing/Editor.cpp:
(WebCore::Editor::baseWritingDirectionForSelectionStart const):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::willBeModified):
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::textSelectionIntent):
(WebCore::FrameSelection::modify):
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):
* editing/VisibleUnits.cpp:
(WebCore::visualWordPosition):
(WebCore::leftWordPosition):
(WebCore::rightWordPosition):
(WebCore::leftBoundaryOfLine):
(WebCore::rightBoundaryOfLine):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::directionalityIfhasDirAutoAttribute const):
(WebCore::HTMLElement::directionality const):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setupDateTimeChooserParameters):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::directionForFormData const):
(WebCore::HTMLTextFormControlElement::adjustInnerTextStyle const):
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::computedTextWithDirection):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::toTextDirection const):
(WebCore::CanvasRenderingContext2D::direction const):
(WebCore::CanvasRenderingContext2D::textOffset):
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::layout):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::resolveCustomStyle):
* page/Chrome.cpp:
(WebCore::Chrome::setToolTip):
* page/FrameView.cpp:
(WebCore::paginationModeForRenderStyle):
* page/Settings.yaml:
* platform/RectEdges.h:
(WebCore::RectEdges::start):
(WebCore::RectEdges::end):
(WebCore::RectEdges::start const):
(WebCore::RectEdges::end const):
(WebCore::RectEdges::setStart):
(WebCore::RectEdges::setEnd):
* platform/UserInterfaceLayoutDirection.h:
* platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::computeExpansionOpportunity):
* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::expansionOpportunityCountInternal):
(WebCore::FontCascade::leadingExpansionOpportunity):
(WebCore::FontCascade::trailingExpansionOpportunity):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawBidiText):
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::rtl const):
(WebCore::TextRun::ltr const):
(WebCore::TextRun::setDirection):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator):
* platform/ios/SelectionRect.cpp:
(WebCore::SelectionRect::SelectionRect):
* platform/text/BidiResolver.h:
(WebCore::BidiStatus::BidiStatus):
* platform/text/StringWithDirection.h:
* platform/text/WritingMode.h:
(WebCore::isLeftToRightDirection):
(WebCore::isVerticalWritingMode):
(WebCore::isFlippedWritingMode):
(WebCore::mapLogicalSideToPhysicalSide):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::spellingToolTip const):
(WebCore::HitTestResult::title const):
(WebCore::HitTestResult::innerTextIfTruncated const):
* rendering/InlineBox.h:
(WebCore::InlineBox::direction const):
(WebCore::InlineBox::isLeftToRightDirection const):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintFillLayer):
* rendering/InlineIterator.h:
(WebCore::embedCharFromDirection):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::mirrorRTLSegment):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::determineDirectionality):
(WebCore::RenderBlockFlow::textAlignmentForLine const):
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
(WebCore::RenderBlockFlow::handleTrailingSpaces):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
* rendering/RenderBox.cpp:
(WebCore::computeInlineStaticDistance):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced const):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
* rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::updateLogicalWidth):
(WebCore::RenderFragmentedFlow::updateFragmentsFragmentedFlowPortionRect):
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::shouldPlaceBlockDirectionScrollbarOnLeft const):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::direction const):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle):
(RenderMenuList::clientPaddingLeft const):
(RenderMenuList::clientPaddingRight const):
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::popupInternalPaddingBox const):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMenuListButtonDecorations):
(WebCore::RenderThemeMac::popupInternalPaddingBox const):
(WebCore::RenderThemeMac::setPopupButtonCellState):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::mirrorIfNeeded const):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::layoutBlock):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isLeftToRightDirection const):
(WebCore::RenderStyle::initialDirection):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::systemLayoutDirection):
(WebCore::InternalSettings::setSystemLayoutDirection):
* testing/Internals.h:

Source/WebKit:

* Shared/WebPopupItem.cpp:
(WebKit::WebPopupItem::WebPopupItem):
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView webSelectionRectsForSelectionRects:]):
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::populate):
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
* WebProcess/WebCoreSupport/WebPopupMenu.cpp:
(WebKit::WebPopupMenu::show):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):

Source/WebKitLegacy/ios:

* WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame selectionRectsForCoreRange:]):
* WebCoreSupport/WebVisiblePosition.mm:
(-[WebVisiblePosition textDirection]):
(-[WebVisiblePosition directionIsDownstream:]):
* WebView/WebPDFViewIOS.mm:
(-[WebPDFView _checkPDFTitle]):

Source/WebKitLegacy/mac:

* WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::populate):
(PopupMenuMac::show):
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::transitionToCommittedForNewPage):
* WebView/WebFrame.mm:
(-[WebFrame _dispatchDidReceiveTitle:]):

Tools:

* TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp:
(WebCore::operator<<):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:
(TEST_F):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234808 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed, silence "enumeral and non-enumeral type in conditional expression" warning
mcatanzaro@igalia.com [Mon, 13 Aug 2018 16:46:49 +0000 (16:46 +0000)]
Unreviewed, silence "enumeral and non-enumeral type in conditional expression" warning

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchActivityStateChange):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[iOS] Rebaseline and re-enable svg tests
ryanhaddad@apple.com [Mon, 13 Aug 2018 16:46:07 +0000 (16:46 +0000)]
[iOS] Rebaseline and re-enable svg tests
https://bugs.webkit.org/show_bug.cgi?id=180459

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:
* platform/ios/TestExpectations:
[ truncated ]

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234804 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoFollowup (r234683): Element::getAttribute() should return the first non-null attribut...
commit-queue@webkit.org [Mon, 13 Aug 2018 16:39:14 +0000 (16:39 +0000)]
Followup (r234683): Element::getAttribute() should return the first non-null attribute value
https://bugs.webkit.org/show_bug.cgi?id=188419

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-08-13
Reviewed by Darin Adler.

Source/WebCore:

Element::getAttribute() should return the first non-null attribute value
since an empty string is a legitimate attribute value.

Test: svg/custom/href-svg-namespace-empty.html

* dom/Element.h:
(WebCore::Element::getAttribute const):

LayoutTests:

* svg/custom/href-svg-namespace-empty-expected.txt: Added.
* svg/custom/href-svg-namespace-empty.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234803 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed, since -Wsign-compare warnings in URL.cpp
mcatanzaro@igalia.com [Mon, 13 Aug 2018 16:21:46 +0000 (16:21 +0000)]
Unreviewed, since -Wsign-compare warnings in URL.cpp

This regressed in r233798 when m_schemeEnd changed to a bitfield. The code looks safe to
me, so just silence the warnings with casts.

* platform/URL.cpp:
(WebCore::URL::setHost):
(WebCore::URL::setHostAndPort):
(WebCore::URL::setUser):
(WebCore::URL::setPass):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234802 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUse OptionSet more in editing code
antti@apple.com [Mon, 13 Aug 2018 15:29:23 +0000 (15:29 +0000)]
Use OptionSet more in editing code
https://bugs.webkit.org/show_bug.cgi?id=188500

Reviewed by Wenson Hsieh.

Typesafe flags.

* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/Editor.cpp:
(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::selectComposition):
(WebCore::Editor::changeSelectionAfterCommand):
(WebCore::Editor::respondToChangedSelection):
* editing/Editor.h:
(WebCore::TemporarySelectionChange::TemporarySelectionChange):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::setSelectedRange):
* editing/FrameSelection.h:
(WebCore::FrameSelection::defaultSetSelectionOptions):
* editing/MoveSelectionCommand.cpp:
(WebCore::MoveSelectionCommand::doApply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
* editing/ReplaceSelectionCommand.h:
(WebCore::ReplaceSelectionCommand::create):
* editing/SetSelectionCommand.cpp:
(WebCore::SetSelectionCommand::SetSelectionCommand):
* editing/SetSelectionCommand.h:
(WebCore::SetSelectionCommand::create):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag):
* page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithRange):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234801 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[LFC][Floating] Add basic clearance support
zalan@apple.com [Mon, 13 Aug 2018 14:48:10 +0000 (14:48 +0000)]
[LFC][Floating] Add basic clearance support
https://bugs.webkit.org/show_bug.cgi?id=188492

Reviewed by Antti Koivisto.

Source/WebCore:

Adjust final position of a block level box with clearance when float is present.

Test: fast/block/block-only/floating-left-and-right-with-clearance.html

* layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::toContainingBlock const):
(WebCore::Layout::FloatingContext::computePosition const): Deleted.
* layout/FloatingContext.h:
* layout/FloatingState.cpp:
(WebCore::Layout::FloatingState::bottom const):
* layout/FloatingState.h:
(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):
* layout/Verification.cpp:
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionWithClearance const):
* layout/blockformatting/BlockFormattingContext.h:
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::hasClearance const):
* layout/layouttree/LayoutBox.h:

Tools:

* LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

* fast/block/block-only/floating-left-and-right-with-clearance-expected.txt: Added.
* fast/block/block-only/floating-left-and-right-with-clearance.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoExpose CloseEvent and CustomEvent to workers
yusukesuzuki@slowstart.org [Mon, 13 Aug 2018 13:31:50 +0000 (13:31 +0000)]
Expose CloseEvent and CustomEvent to workers
https://bugs.webkit.org/show_bug.cgi?id=188493

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

* web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:

Source/WebCore:

This patch exposes CloseEvent and CustomEvent to workers.
It is OK since they do not depend on things in the main thread.
For example, we cannot expose FormData right now since it depends
on Page.

We do not expose PromiseRejectionEvent in this patch since it will
be done in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=188265

* Modules/websockets/CloseEvent.idl:
* dom/CustomEvent.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234799 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[css-logical] Implement flow-relative margin, padding, border and sizing properties
commit-queue@webkit.org [Mon, 13 Aug 2018 13:18:20 +0000 (13:18 +0000)]
[css-logical] Implement flow-relative margin, padding, border and sizing properties
https://bugs.webkit.org/show_bug.cgi?id=188386

Patch by Oriol Brufau <obrufau@igalia.com> on 2018-08-13
Reviewed by Manuel Rego Casasnovas.

These properties provide the author with the ability to control margins
through logical, rather than physical, direction and dimension mappings.

Only longhand properties and border shorthands for specific sides are
implemented as part of this patch.

The existing prefixed properties become aliases of the new ones.

LayoutTests/imported/w3c:

The new tests are imported from the WPT test suite for CSS Logical
Properties and Values spec.

The tests still have some failures because sideways writing modes have
not been implemented yet.

* resources/import-expectations.json:
* web-platform-tests/css/css-logical/META.yml: Added.
* web-platform-tests/css/css-logical/animation-001-expected.txt: Added.
* web-platform-tests/css/css-logical/animation-001.html: Added.
* web-platform-tests/css/css-logical/animation-002-expected.txt: Added.
* web-platform-tests/css/css-logical/animation-002.html: Added.
* web-platform-tests/css/css-logical/animation-003.tentative-expected.txt: Added.
* web-platform-tests/css/css-logical/animation-003.tentative.html: Added.
* web-platform-tests/css/css-logical/cascading-001-expected.html: Added.
* web-platform-tests/css/css-logical/cascading-001.html: Added.
* web-platform-tests/css/css-logical/logical-box-border-color-expected.txt: Added.
* web-platform-tests/css/css-logical/logical-box-border-color.html: Added.
* web-platform-tests/css/css-logical/logical-box-border-shorthands-expected.txt: Added.
* web-platform-tests/css/css-logical/logical-box-border-shorthands.html: Added.
* web-platform-tests/css/css-logical/logical-box-border-style-expected.txt: Added.
* web-platform-tests/css/css-logical/logical-box-border-style.html: Added.
* web-platform-tests/css/css-logical/logical-box-border-width-expected.txt: Added.
* web-platform-tests/css/css-logical/logical-box-border-width.html: Added.
* web-platform-tests/css/css-logical/logical-box-inset-expected.txt: Added.
* web-platform-tests/css/css-logical/logical-box-inset.html: Added.
* web-platform-tests/css/css-logical/logical-box-margin-expected.txt: Added.
* web-platform-tests/css/css-logical/logical-box-margin.html: Added.
* web-platform-tests/css/css-logical/logical-box-padding-expected.txt: Added.
* web-platform-tests/css/css-logical/logical-box-padding.html: Added.
* web-platform-tests/css/css-logical/logical-box-size-expected.txt: Added.
* web-platform-tests/css/css-logical/logical-box-size.html: Added.
* web-platform-tests/css/css-logical/logicalprops-block-size-expected.txt: Added.
* web-platform-tests/css/css-logical/logicalprops-block-size-vlr-expected.txt: Added.
* web-platform-tests/css/css-logical/logicalprops-block-size-vlr.html: Added.
* web-platform-tests/css/css-logical/logicalprops-block-size.html: Added.
* web-platform-tests/css/css-logical/logicalprops-inline-size-expected.txt: Added.
* web-platform-tests/css/css-logical/logicalprops-inline-size-vlr-expected.txt: Added.
* web-platform-tests/css/css-logical/logicalprops-inline-size-vlr.html: Added.
* web-platform-tests/css/css-logical/logicalprops-inline-size.html: Added.
* web-platform-tests/css/css-logical/logicalprops-quirklength-expected.txt: Added.
* web-platform-tests/css/css-logical/logicalprops-quirklength.html: Added.
* web-platform-tests/css/css-logical/resources/test-box-properties.js: Added.
(testCSSValues):
(testComputedValues):
(makeDeclaration):
* web-platform-tests/css/css-logical/resources/w3c-import.log: Added.
* web-platform-tests/css/css-logical/w3c-import.log: Added.

Source/WebCore:

The change in WebCore::isLayoutDependent fixes an existing issue that
made getComputedStyle provide an old value for -webkit-logical-height
and -webkit-logical-height (see https://crbug.com/849855).

Tests: imported/w3c/web-platform-tests/css/css-logical/animation-001.html
       imported/w3c/web-platform-tests/css/css-logical/animation-002.html
       imported/w3c/web-platform-tests/css/css-logical/animation-003.tentative.html
       imported/w3c/web-platform-tests/css/css-logical/cascading-001.html
       imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color.html
       imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands.html
       imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style.html
       imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width.html
       imported/w3c/web-platform-tests/css/css-logical/logical-box-inset.html
       imported/w3c/web-platform-tests/css/css-logical/logical-box-margin.html
       imported/w3c/web-platform-tests/css/css-logical/logical-box-padding.html
       imported/w3c/web-platform-tests/css/css-logical/logical-box-size.html
       imported/w3c/web-platform-tests/css/css-logical/logicalprops-block-size-vlr.html
       imported/w3c/web-platform-tests/css/css-logical/logicalprops-block-size.html
       imported/w3c/web-platform-tests/css/css-logical/logicalprops-inline-size-vlr.html
       imported/w3c/web-platform-tests/css/css-logical/logicalprops-inline-size.html
       imported/w3c/web-platform-tests/css/css-logical/logicalprops-quirklength.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
* css/CSSProperties.json:
* css/CSSProperty.cpp:
(WebCore::CSSProperty::resolveDirectionAwareProperty):
(WebCore::CSSProperty::isDirectionAwareProperty):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
* css/parser/CSSParserFastPaths.cpp:
(WebCore::isSimpleLengthPropertyID):
(WebCore::isColorPropertyID):
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computeCollapsedStartBorder const):
(WebCore::RenderTableCell::computeCollapsedEndBorder const):
(WebCore::RenderTableCell::computeCollapsedBeforeBorder const):
(WebCore::RenderTableCell::computeCollapsedAfterBorder const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed WPE gardening. Cleaned up test expectations for tests under
zandobersek@gmail.com [Mon, 13 Aug 2018 11:32:31 +0000 (11:32 +0000)]
Unreviewed WPE gardening. Cleaned up test expectations for tests under
fast/dom/, unskipping all tests and then adding the failure or timeout
test expectations as appropriate. Missing port-specific baselines are
also included.

* platform/wpe/TestExpectations:
* platform/wpe/fast/dom/: Necessary test expectations added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed WPE gardening.
zandobersek@gmail.com [Mon, 13 Aug 2018 09:50:54 +0000 (09:50 +0000)]
Unreviewed WPE gardening.

Removed an unnecessary block of skipped tests that cover WebCrypto API
support for 521-bit EC keys. All these tests pass.

Removed unnecessary pass directives for imported WPT tests. Moved
related flaky or skipped tests into appropriate sections.

Also adjusted a few other expectations, moving them into the appropriate
section or just removing them for being outdated or duplicates.

* platform/wpe/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234796 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed WPE gardening. Adopt test expectation sections similar to the
zandobersek@gmail.com [Mon, 13 Aug 2018 08:45:36 +0000 (08:45 +0000)]
Unreviewed WPE gardening. Adopt test expectation sections similar to the
GTK+ TestExpectations file. Sort some test expectations accordingly,
while the rest of the expectations will follow later.

* platform/wpe/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoWebDriver: do not handle prompts that appear while running scripts
carlosgc@webkit.org [Mon, 13 Aug 2018 06:47:18 +0000 (06:47 +0000)]
WebDriver: do not handle prompts that appear while running scripts
https://bugs.webkit.org/show_bug.cgi?id=188468

Reviewed by Žan Doberšek.

This changed in the spec, we should just finish the script without handling the alert at all.
https://github.com/w3c/webdriver/commit/afb578090bc95718debeab6a6821da8d12b952c8

"If at any point during the algorithm a user prompt appears, abort all subsequent substeps of this algorithm,
and return success with data null."
https://w3c.github.io/webdriver/#dfn-execute-a-function-body

* Session.cpp:
(WebDriver::Session::executeScript):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoCrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::conne...
sihui_liu@apple.com [Mon, 13 Aug 2018 06:33:08 +0000 (06:33 +0000)]
CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient(WebCore::IDBServer::UniqueIDBDatabaseConnection&)
https://bugs.webkit.org/show_bug.cgi?id=188474

Reviewed by Chris Dumez.

UniqueIDBDatabaseConnection is refcounted by UniqueIDBDatabaseTransaction and it refcounts
UniqueIDBDatabaseTransaction. This cycle could make UniqueIDBDatabaseConnection outlives
UniqueIDBDatabase, so its reference to UniqueIDBDatabase may be stale. Calling a function
on a stale object is probably the reason of recent various storage process crashes in
indexedDB.

This patch makes m_database a WeakPtr and adds assertions that could help us debug the
crashes.

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
* Modules/indexeddb/server/UniqueIDBDatabase.h:
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::confirmDidCloseFromServer):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::database):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
* Modules/indexeddb/shared/IDBResultData.cpp:
(WebCore::IDBResultData::openDatabaseSuccess):
(WebCore::IDBResultData::openDatabaseUpgradeNeeded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234791 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed GTK test gardening
mcatanzaro@igalia.com [Mon, 13 Aug 2018 02:48:08 +0000 (02:48 +0000)]
Unreviewed GTK test gardening

WebDriverTests:

* TestExpectations.json:

LayoutTests:

* platform/gtk/TestExpectations:
* platform/gtk/fast/forms/color/input-appearance-color-expected.png:
* platform/gtk/fast/forms/color/input-appearance-color-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234790 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoBreak reference cycle in ErrorEvent by using JSValueInWrappedObject
yusukesuzuki@slowstart.org [Mon, 13 Aug 2018 00:02:19 +0000 (00:02 +0000)]
Break reference cycle in ErrorEvent by using JSValueInWrappedObject
https://bugs.webkit.org/show_bug.cgi?id=188491

Reviewed by Darin Adler.

Source/WebCore:

ErrorEvent should not use Strong<Unkonwn> to hold error JSValue. This patch integrates
JSValueInWrappedObject into ErrorEvent.

* Modules/webvr/VRDisplayEvent.h:
Fix unified build errors due to added JSErrorEventCustom.cpp. It changes the files grouped in unified build.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSErrorEventCustom.cpp: Copied from Source/WebCore/Modules/webvr/VRDisplayEvent.h.
(WebCore::JSErrorEvent::visitAdditionalChildren):
Add custom mark function for JSValueInWrappedObject.

* bindings/js/JSEventListener.h:
* bindings/js/WindowProxy.cpp:
Fix unified build errors due to added JSErrorEventCustom.cpp. It changes the files grouped in unified build.

* dom/ErrorEvent.cpp:
(WebCore::ErrorEvent::ErrorEvent):
(WebCore::ErrorEvent::error):
(WebCore::ErrorEvent::trySerializeError):
Align the implementation to PushStateEvent::trySerializeState.

* dom/ErrorEvent.h:
* dom/ErrorEvent.idl:

LayoutTests:

* fast/dom/reference-cycle-leaks-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[macOS] Color wells should appear pressed when presenting a color picker
akeerthi@apple.com [Sun, 12 Aug 2018 20:19:25 +0000 (20:19 +0000)]
[macOS] Color wells should appear pressed when presenting a color picker
https://bugs.webkit.org/show_bug.cgi?id=188477

Reviewed by Tim Horton.

Source/WebCore:

Currently, when clicking on a color well, the color well loses its pressed
appearance once the mouse is lifted. Because of this behavior, the color well
does not appear to be active when the color picker is displayed.

Added the color-well -webkit-appearance value to control the drawing of the color
well separate from other buttons. Also added a new ControlState, named
PresentingState. A control can be in this state whenever it is presenting some
attached view. In the case of the color well this is the color picker. The
Information as to whether a form control is in the presenting state comes from
isPresentingAttachedView() in HTMLInputElement.

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSProperties.json:
* css/CSSValueKeywords.in:
* css/html.css:
(input[type="color"]::-webkit-color-swatch):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::isPresentingAttachedView const):
(WebCore::ColorInputType::elementDidBlur):
(WebCore::ColorInputType::didEndChooser):
* html/ColorInputType.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isPresentingAttachedView const):
* html/HTMLInputElement.h:
* html/InputType.cpp:
(WebCore::InputType::isPresentingAttachedView const):
* html/InputType.h:
* platform/ControlStates.h:
* platform/ThemeTypes.h:
* platform/mac/ThemeMac.mm:
(WebCore::updateStates):
(WebCore::setUpButtonCell):
(WebCore::paintColorWell):
(WebCore::ThemeMac::minimumControlSize const):
(WebCore::ThemeMac::controlBorder const):
(WebCore::ThemeMac::paint):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::isControlStyled const):
(WebCore::RenderTheme::extractControlStatesForRenderer const):
(WebCore::RenderTheme::isPresenting const):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustRepaintRect):

Source/WebInspectorUI:

Add keyword completion for 'color-well'.

* UserInterface/External/CodeMirror/css.js:
* UserInterface/Models/CSSKeywordCompletions.js:

Source/WebKit:

In order for the color well to accurately reflect the state of the picker, it is
necessary to ensure that the picker is destroyed at the appropriate time.

Added windowWillClose and didClosePopover delegate methods to destroy the picker
it has been closed. Also added a call to WebColorPicker::endPicker in
WebColorPickerMac's implementation of endPicker to ensure that the object is
destroyed. Removed redundant calls to endPicker in the WebPageProxy.

The hitTest method was overridden in WKPopoverColorWell to ensure that AppKit's
view does not block our drawn color well from receiving click events.

* UIProcess/WebColorPicker.cpp:
(WebKit::WebColorPicker::endPicker):
* UIProcess/WebColorPicker.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::endColorPicker):
(WebKit::WebPageProxy::didEndColorPicker):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::closeOverlayedViews):
* UIProcess/mac/WebColorPickerMac.mm:
(WebKit::WebColorPickerMac::~WebColorPickerMac):
(WebKit::WebColorPickerMac::endPicker):
(-[WKPopoverColorWell popoverDidClose:]):
(-[WKPopoverColorWell hitTest:]):
(-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]):
(-[WKColorPopoverMac invalidate]):
(-[WKColorPopoverMac windowWillClose:]):
(-[WKColorPopoverMac didClosePopover]):

LayoutTests:

Rebaseline tests to match new color-well appearance.

* platform/mac/fast/forms/color/input-appearance-color-expected.png:
* platform/mac/fast/forms/color/input-appearance-color-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234788 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoDisable JIT on IA-32 without SSE2
commit-queue@webkit.org [Sun, 12 Aug 2018 16:36:51 +0000 (16:36 +0000)]
Disable JIT on IA-32 without SSE2
https://bugs.webkit.org/show_bug.cgi?id=188476

Patch by Karo Gyoker <karogyoker2+webkit@gmail.com> on 2018-08-12
Reviewed by Michael Catanzaro.

Including missing header (MacroAssembler.h) in case of other
operating systems than Windows too.

* runtime/Options.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[LFC] Float prev/next sibling should prevent top/bottom margin collapsing with parent.
zalan@apple.com [Sun, 12 Aug 2018 15:46:44 +0000 (15:46 +0000)]
[LFC] Float prev/next sibling should prevent top/bottom margin collapsing with parent.
https://bugs.webkit.org/show_bug.cgi?id=188487

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/block/block-only/floating-and-next-previous-inflow-with-margin.html

* layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):

Tools:

* LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

* fast/block/block-only/floating-and-next-previous-inflow-with-margin-expected.txt: Added.
* fast/block/block-only/floating-and-next-previous-inflow-with-margin.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[ews-build] Separate queues for Builders and Testers - iOS
aakash_jain@apple.com [Sun, 12 Aug 2018 04:13:52 +0000 (04:13 +0000)]
[ews-build] Separate queues for Builders and Testers - iOS
https://bugs.webkit.org/show_bug.cgi?id=188396

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/config.json: Splitted iOS queues into builders and testers.
Also added ews121 and ews122 to match with current EWS configuration.
* BuildSlaveSupport/ews-build/factories.py:
(TestsFactory): Base classes for various Test factories.
(TestsFactory.getProduct): Download and extract the archive.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoDisable JIT on IA-32 without SSE2
commit-queue@webkit.org [Sat, 11 Aug 2018 21:04:12 +0000 (21:04 +0000)]
Disable JIT on IA-32 without SSE2
https://bugs.webkit.org/show_bug.cgi?id=188476

Patch by Karo Gyoker <karogyoker2+webkit@gmail.com> on 2018-08-11
Reviewed by Yusuke Suzuki.

On IA-32 CPUs without SSE2 most of the webpages cannot load
if the JIT is turned on.

* runtime/Options.cpp:
(JSC::recomputeDependentOptions):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[l10n] [pt_BR] Updated Brazilian Portuguese translation
mcatanzaro@igalia.com [Sat, 11 Aug 2018 14:04:37 +0000 (14:04 +0000)]
[l10n] [pt_BR] Updated Brazilian Portuguese translation
https://bugs.webkit.org/show_bug.cgi?id=188482

Patch by Rafael Fontenelle <rafaelff@gnome.org> on 2018-08-11
Rubber-stamped by Michael Catanzaro.

* pt_BR.po:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234783 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUse OptionSet for various RenderLayer flags
antti@apple.com [Sat, 11 Aug 2018 06:47:30 +0000 (06:47 +0000)]
Use OptionSet for various RenderLayer flags
https://bugs.webkit.org/show_bug.cgi?id=188472
<rdar://problem/43153059>

Followup, fix some mistakes.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::~RenderLayerBacking):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234782 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[Cocoa] WebKit::PlatformPopupMenuData should use member initialization
ddkilzer@apple.com [Sat, 11 Aug 2018 02:55:23 +0000 (02:55 +0000)]
[Cocoa] WebKit::PlatformPopupMenuData should use member initialization
<https://webkit.org/b/188478>
<rdar://problem/43154363>

Reviewed by Joseph Pecoraro.

* Shared/PlatformPopupMenuData.cpp:
(WebKit::PlatformPopupMenuData::PlatformPopupMenuData): Delete
implementation.  This constructor caused the warning by never
initializing its member variables.
* Shared/PlatformPopupMenuData.h:
(WebKit::PlatformPopupMenuData::PlatformPopupMenuData):
- Use default constructor.
(WebKit::PlatformPopupMenuData::shouldPopOver):
(WebKit::PlatformPopupMenuData::hideArrows):
(WebKit::PlatformPopupMenuData::menuSize):
- Add struct member initialization.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234781 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoWeb Inspector: console.log fires getters for deep properties
commit-queue@webkit.org [Sat, 11 Aug 2018 02:43:47 +0000 (02:43 +0000)]
Web Inspector: console.log fires getters for deep properties
https://bugs.webkit.org/show_bug.cgi?id=187542
<rdar://problem/42873158>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-08-10
Reviewed by Saam Barati.

Source/JavaScriptCore:

* inspector/InjectedScriptSource.js:
(RemoteObject.prototype._isPreviewableObject):
Avoid getters/setters when checking for simple properties to preview.
Here we avoid invoking `object[property]` if it could be a user getter.

LayoutTests:

* inspector/injected-script/avoid-getter-invocation-expected.txt: Added.
* inspector/injected-script/avoid-getter-invocation.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234780 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoLayoutTest inspector/worker/debugger-pause.html is a flaky failure
commit-queue@webkit.org [Sat, 11 Aug 2018 02:21:10 +0000 (02:21 +0000)]
LayoutTest inspector/worker/debugger-pause.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=164833
<rdar://problem/29295404>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-08-10
Reviewed by Brian Burg.

* inspector/worker/debugger-pause.html:
Add a microtask turn to ensure the workerTarget's mainResource is setup.
There were times it might not get setup, but a single turn appears
reliable enough.

* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
This test always passes for me in Release and Debug. Reset expectations.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234779 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[macOS] Multiple third party apps crash due to the thread safety check in TimerBase...
rniwa@webkit.org [Sat, 11 Aug 2018 02:01:24 +0000 (02:01 +0000)]
[macOS] Multiple third party apps crash due to the thread safety check in TimerBase::setNextFireTime
https://bugs.webkit.org/show_bug.cgi?id=188480

Reviewed by Simon Fraser.

Source/WebCore:

Suppress the release assert in WebKit1 on macOS (isInWebProcess is always true in non-Cocoa platforms).

In the future, we should consider throwing Objective-C exceptions when third party apps call WebKit1
or WebKit2 APIs in non-main threads.

* platform/Timer.cpp:
(WebCore::shouldSuppressThreadSafetyCheck): Extracted out of ~TimerBase and setNextFireTime.
(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::setNextFireTime):

Source/WTF:

Added the SDK version for macOS Mojave.

* wtf/spi/darwin/dyldSPI.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234778 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoSlicing an ArrayBuffer with a long number returns an ArrayBuffer with byteLength...
keith_miller@apple.com [Fri, 10 Aug 2018 23:31:50 +0000 (23:31 +0000)]
Slicing an ArrayBuffer with a long number returns an ArrayBuffer with byteLength zero
https://bugs.webkit.org/show_bug.cgi?id=185127

Reviewed by Saam Barati.

JSTests:

Rebaseline the expectations.

* test262/expectations.yaml:

Source/JavaScriptCore:

Previously, we would truncate the indicies passed to slice to an
int. This meant that the value was not getting properly clamped
later.

This patch also removes a non-spec compliant check that slice was
passed at least one argument.

* runtime/ArrayBuffer.cpp:
(JSC::ArrayBuffer::clampValue):
(JSC::ArrayBuffer::clampIndex const):
(JSC::ArrayBuffer::slice const):
* runtime/ArrayBuffer.h:
(JSC::ArrayBuffer::clampValue): Deleted.
(JSC::ArrayBuffer::clampIndex const): Deleted.
* runtime/JSArrayBufferPrototype.cpp:
(JSC::arrayBufferProtoFuncSlice):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234777 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoCrash under NetworkResourceLoader::convertToDownload()
cdumez@apple.com [Fri, 10 Aug 2018 23:03:25 +0000 (23:03 +0000)]
Crash under NetworkResourceLoader::convertToDownload()
https://bugs.webkit.org/show_bug.cgi?id=188479
<rdar://problem/42201724>

Reviewed by Alex Christensen.

Source/WebKit:

In NetworkResourceLoader::convertToDownload(), if m_networkLoad is null then we're trying
to convert a load that came from the disk cache. Since we do not currently support converting
such a load, cancel the current load and start a fresh download.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::convertToDownload):

LayoutTests:

Add layout test coverage which reproduces the crash by:
1. Loading a cacheable plugin while plugins are enabled so that the plugin goes into the disk cache
2. Load the plugin again with plugins disabled so that we try to convert the load to a download

* http/tests/download/convert-cached-load-to-download-expected.txt: Added.
* http/tests/download/convert-cached-load-to-download.html: Added.
* http/tests/plugins/resources/mock-plugin-cacheable.pl: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoCleanup: Remove unnecessary code to resume animations from CachedFrameBase::restore()
dbates@webkit.org [Fri, 10 Aug 2018 21:53:06 +0000 (21:53 +0000)]
Cleanup: Remove unnecessary code to resume animations from CachedFrameBase::restore()
https://bugs.webkit.org/show_bug.cgi?id=188459

Reviewed by Chris Dumez.

It is unnessary for CachedFrameBase::restore() to explicitly resume animations on the
document as it calls Document::resume(), which already does this.

No functionality changed. So, no new tests.

* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agowebkit-patch setup-git-clone should set Git core editor to commit-log-editor
dbates@webkit.org [Fri, 10 Aug 2018 21:48:41 +0000 (21:48 +0000)]
webkit-patch setup-git-clone should set Git core editor to commit-log-editor
https://bugs.webkit.org/show_bug.cgi?id=188473

Reviewed by Ryosuke Niwa.

Have "webkit-patch setup-git-clone" set the Git core editor to "perl Tools/Scripts/commit-log-editor --regenerate-log"
so that the Git commit message is generated from the ChangeLog for developers that manually
generate their ChangeLog using prepare-ChangeLog.

* Scripts/webkitpy/tool/commands/setupgitclone.py:
(SetupGitClone.execute):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234770 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[WinCairo] More unreviewed gardening.
ross.kirsling@sony.com [Fri, 10 Aug 2018 20:29:43 +0000 (20:29 +0000)]
[WinCairo] More unreviewed gardening.

* platform/wincairo/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234769 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUse OptionSet for various RenderLayer flags
antti@apple.com [Fri, 10 Aug 2018 19:51:44 +0000 (19:51 +0000)]
Use OptionSet for various RenderLayer flags
https://bugs.webkit.org/show_bug.cgi?id=188472

Reviewed by Simon Fraser.

Source/WebCore:

Typesafe flags.

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
* page/FrameView.cpp:
(WebCore::updateLayerPositionFlags):
(WebCore::FrameView::paintContents):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterLayout):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::paint):
(WebCore::paintForFixedRootBackground):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContentsAndReflection):
(WebCore::RenderLayer::filterPainter const):
(WebCore::RenderLayer::hasFilterThatIsPainting const):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintLayerContents):
(RenderLayer::paintLayerByApplyingTransform):
(RenderLayer::paintList):
(RenderLayer::updatePaintingInfoForFragments):
(RenderLayer::paintTransformedLayerIntoFragments):
(RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::paintLayerByApplyingTransform): Deleted.
(WebCore::RenderLayer::paintList): Deleted.
(WebCore::RenderLayer::enclosingPaginationLayerInSubtree const): Deleted.
(WebCore::RenderLayer::collectFragments): Deleted.
(WebCore::RenderLayer::updatePaintingInfoForFragments): Deleted.
(WebCore::RenderLayer::paintTransformedLayerIntoFragments): Deleted.
(WebCore::RenderLayer::paintBackgroundForFragments): Deleted.
(WebCore::RenderLayer::paintForegroundForFragments): Deleted.
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): Deleted.
(WebCore::RenderLayer::paintOutlineForFragments): Deleted.
(WebCore::RenderLayer::paintMaskForFragments): Deleted.
(WebCore::RenderLayer::paintChildClippingMaskForFragments): Deleted.
(WebCore::RenderLayer::paintOverflowControlsForFragments): Deleted.
(WebCore::RenderLayer::hitTest): Deleted.
(WebCore::RenderLayer::enclosingElement const): Deleted.
(WebCore::RenderLayer::enclosingFragmentedFlowAncestor const): Deleted.
(WebCore::computeZOffset): Deleted.
(WebCore::RenderLayer::createLocalTransformState const): Deleted.
(WebCore::isHitCandidate): Deleted.
(WebCore::RenderLayer::hitTestLayer): Deleted.
(WebCore::RenderLayer::hitTestContentsForFragments const): Deleted.
(WebCore::RenderLayer::hitTestResizerInFragments const): Deleted.
(WebCore::RenderLayer::hitTestTransformedLayerInFragments): Deleted.
(WebCore::RenderLayer::hitTestLayerByApplyingTransform): Deleted.
(WebCore::RenderLayer::hitTestContents const): Deleted.
(WebCore::RenderLayer::hitTestList): Deleted.
(WebCore::RenderLayer::updateClipRects): Deleted.
(WebCore::RenderLayer::clipRects const): Deleted.
(WebCore::RenderLayer::calculateClipRects const): Deleted.
(WebCore::showLayerTree): Deleted.
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCompositedBounds):
(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
(WebCore::RenderLayerBacking::paintIntoLayer):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
* rendering/RenderLayerCompositor.h:
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::paint):

Source/WTF:

* wtf/MathExtras.h:
(hasOneBitSet):
(hasZeroOrOneBitsSet):
(hasTwoOrMoreBitsSet):

Make constexpr.

* wtf/OptionSet.h:
(WTF::OptionSet::OptionSet):

Always use constexpr, no need for separate debug versions with C++14.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234768 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[LayoutTests] Suppress warning messages generated by the test scripts.
Basuke.Suzuki@sony.com [Fri, 10 Aug 2018 19:35:00 +0000 (19:35 +0000)]
[LayoutTests] Suppress warning messages generated by the test scripts.
https://bugs.webkit.org/show_bug.cgi?id=188455

Reviewed by Fujii Hironori.

The messages such as warnings shouldn't be out on error log if that can be avoidable.

* http/tests/cookies/resources/cookie-utility.php:
* http/tests/xmlhttprequest/resources/access-control-allow-lists.php:
* http/tests/xmlhttprequest/resources/access-control-basic-get-fail-non-simple.cgi:
* http/tests/xmlhttprequest/resources/post-echo.cgi:
* http/tests/xmlhttprequest/web-apps/004-test.cgi:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234767 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoCrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::sched...
sihui_liu@apple.com [Fri, 10 Aug 2018 19:05:45 +0000 (19:05 +0000)]
CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
https://bugs.webkit.org/show_bug.cgi?id=188461
<rdar://problem/33555052>

Reviewed by Chris Dumez.

When we try to schedule shutdown for database, we should cancel the timer so no
scheduleShutdownForClose will be running after this.

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed, rolling out r234749.
tsavell@apple.com [Fri, 10 Aug 2018 18:56:39 +0000 (18:56 +0000)]
Unreviewed, rolling out r234749.

Caused all perf tests to fail in Sierra

Reverted changeset:

"[webkitpy][Win] LayoutTests: test names should be Unix style,
separated by slash not backslash"
https://bugs.webkit.org/show_bug.cgi?id=187973
https://trac.webkit.org/changeset/234749

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234765 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoAdd ability to ignore process prewarming for launch time benchmark
commit-queue@webkit.org [Fri, 10 Aug 2018 18:23:50 +0000 (18:23 +0000)]
Add ability to ignore process prewarming for launch time benchmark
https://bugs.webkit.org/show_bug.cgi?id=188462

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-10
Reviewed by Ryosuke Niwa.

Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.

* LaunchTime/launch_time.py:
(DefaultLaunchTimeHandler):
(DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
(DefaultLaunchTimeHandler.on_receive_stop_signal):
(DefaultLaunchTimeHandler.do_HEAD):
(DefaultLaunchTimeHandler.do_GET):
(DefaultLaunchTimeHandler.do_POST):
(LaunchTimeBenchmark):
(LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
(LaunchTimeBenchmark.open_tab): Added option to open a blank tab
(LaunchTimeBenchmark.run):
* LaunchTime/new_tab.py:
(NewTabBenchmark.initialize):
(NewTabBenchmark.run_iteration):
(NewTabBenchmark.will_parse_arguments):
(NewTabBenchmark.did_parse_arguments):
(NewTabBenchmark.ResponseHandler.Handler.get_test_page):
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(NewTabBenchmark):
* LaunchTime/startup.py:
(StartupBenchmark.ResponseHandler.Handler.get_test_page):
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(StartupBenchmark):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoDate.UTC should not return NaN with only Year param
yusukesuzuki@slowstart.org [Fri, 10 Aug 2018 17:42:32 +0000 (17:42 +0000)]
Date.UTC should not return NaN with only Year param
https://bugs.webkit.org/show_bug.cgi?id=188378

Reviewed by Keith Miller.

JSTests:

* ChakraCore.yaml:
* ChakraCore/test/Date/dateutc.baseline-jsc: Added.
* stress/date-utc-optional.js: Added.
(shouldBe):
* test262/expectations.yaml:

Source/JavaScriptCore:

Date.UTC requires one argument for |year|. But the other ones are optional.
This patch fix this handling.

* runtime/DateConstructor.cpp:
(JSC::millisecondsFromComponents):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234763 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoOnce <object> is hidden, its content won't be displayed again if its URL has fragment...
dbates@webkit.org [Fri, 10 Aug 2018 17:39:53 +0000 (17:39 +0000)]
Once <object> is hidden, its content won't be displayed again if its URL has fragment identifier ("#").
https://bugs.webkit.org/show_bug.cgi?id=187990

Reviewed by Simon Fraser.

Source/WebCore:

Fixes an issue where an HTML object element that behaves like an iframe and references a resource
whose URL contains a fragment would not be repainted when its CSS display property changes.

Rendering of an <object> that behaves like an iframe is handled by a widget (FrameView). When
the CSS display property for an <object> is set to "none" we detach the widget from its renderer
as part of destroying the render tree for the <object>. Subsequently changing the CSS display
to a non-"none"/"contents" value will create a new renderer for <object> R. For an <object> that
behaves like an iframe, we navigate to the resource associated with the <object> reusing the
existing Frame F object created when we first displayed the <object>. Unlike the case where
the URL of the resource does not contain a fragment, navigating to a fragment in the same document
uses a different code path that does not re-associate the FrameView of F with R before it scrolls
the view; => the FrameView of F is not in the view hierarchy. Therefore we do not paint anything
for the content of the <object> and hence the scroll is not observable. Instead we need to ensure
that the FrameView of F installed in the view hierarchy when navigating to an anchor in the same
document.

As a side benefit of this fix we now also repaint an <object> that is programmatically navigated
to a different anchor in the same document.

Tests: fast/repaint/object-as-iframe-hide-and-show-document-at-anchor.html
       fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint.html

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadInSameDocument):

LayoutTests:

Add tests to ensure that we repaint an <object>, whose resource URL contains a fragment, when
its CSS display property changes as well as when its navigated to a different anchor in the same
document.

* fast/repaint/object-as-iframe-hide-and-show-document-at-anchor-expected.txt: Added.
* fast/repaint/object-as-iframe-hide-and-show-document-at-anchor.html: Added.
* fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint-expected.txt: Added.
* fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint.html: Added.
* fast/repaint/resources/red-square-on-top-of-green-square.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234762 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[IntersectionObserver] Implement rootMargin parsing
ajuma@chromium.org [Fri, 10 Aug 2018 17:08:44 +0000 (17:08 +0000)]
[IntersectionObserver] Implement rootMargin parsing
https://bugs.webkit.org/show_bug.cgi?id=188469

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expectations for newly passing test cases.

* web-platform-tests/intersection-observer/observer-attributes-expected.txt:
* web-platform-tests/intersection-observer/observer-exceptions-expected.txt:

Source/WebCore:

Parse IntersectionObserver's rootMargin argument and throw an exception if it's invalid.
Change the stored rootMargin from a String to a LengthBox so that future patches can
use this value in intersection logic.

Tested by: imported/w3c/web-platform-tests/intersection-observer/observer-attributes.html
           imported/w3c/web-platform-tests/intersection-observer/observer-exceptions.html
           intersection-observer/intersection-observer-interface.html

* page/IntersectionObserver.cpp:
(WebCore::parseRootMargin):
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::rootMargin const):
* page/IntersectionObserver.h:
(WebCore::IntersectionObserver::create): Deleted.
(WebCore::IntersectionObserver::rootMargin const): Deleted.
* page/IntersectionObserver.idl:

LayoutTests:

* intersection-observer/intersection-observer-interface-expected.txt:
* intersection-observer/intersection-observer-interface.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234761 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoIncorrect log message in NetworkSession when creating NetworkDataTask
sihui_liu@apple.com [Fri, 10 Aug 2018 16:45:57 +0000 (16:45 +0000)]
Incorrect log message in NetworkSession when creating NetworkDataTask
https://bugs.webkit.org/show_bug.cgi?id=188463

Reviewed by Chris Dumez.

* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234759 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoTimeouts in TestWebKitAPI.PreferredAudioBufferSize.AudioWithWebAudio and TestWebKitAP...
david_fenton@apple.com [Fri, 10 Aug 2018 16:31:51 +0000 (16:31 +0000)]
Timeouts in TestWebKitAPI.PreferredAudioBufferSize.AudioWithWebAudio and TestWebKitAPI.PreferredAudioBufferSize.WebAudio.
https://bugs.webkit.org/show_bug.cgi?id=188470.

Unreviewed test gardening, disabling the tests.

* TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:
(TEST_F):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234758 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed, rolling out r234750.
tsavell@apple.com [Fri, 10 Aug 2018 16:26:13 +0000 (16:26 +0000)]
Unreviewed, rolling out r234750.

Caused 185 perf test failures.

Reverted changeset:

"Add ability to ignore process prewarming for launch time
benchmark"
https://bugs.webkit.org/show_bug.cgi?id=188462
https://trac.webkit.org/changeset/234750

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234757 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoEliminate remaining instances of "ElCapitan" from LayoutTests / Tools
commit-queue@webkit.org [Fri, 10 Aug 2018 16:10:45 +0000 (16:10 +0000)]
Eliminate remaining instances of "ElCapitan" from LayoutTests / Tools
https://bugs.webkit.org/show_bug.cgi?id=188458

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-08-10
Reviewed by Alex Christensen.

Tools:

* Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser):
* TestResultServer/static-dashboards/flakiness_dashboard.js:

LayoutTests:

* platform/mac-wk1/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234756 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[GTK][WPE] WebDriver: do not use default browser arguments when browser binary has...
carlosgc@webkit.org [Fri, 10 Aug 2018 08:17:06 +0000 (08:17 +0000)]
[GTK][WPE] WebDriver: do not use default browser arguments when browser binary has been provided
https://bugs.webkit.org/show_bug.cgi?id=188465

Reviewed by Žan Doberšek.

We only want to use --automation when no options or no browser binary is provided, because we fallback to
MiniBrowser and we know it needs --automation flag.

* glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::launchBrowser): Handle the case of browser arguments being std::nullopt.
* gtk/WebDriverServiceGtk.cpp:
(WebDriver::WebDriverService::platformParseCapabilities const): Initialize browser arguments to std:nullopt if
browser binary was provided.
* wpe/WebDriverServiceWPE.cpp:
(WebDriver::WebDriverService::platformParseCapabilities const): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234753 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[WinCairo] Unreviewed layout test gardening.
ross.kirsling@sony.com [Fri, 10 Aug 2018 07:57:00 +0000 (07:57 +0000)]
[WinCairo] Unreviewed layout test gardening.

* platform/wincairo/TestExpectations:
* platform/wincairo/editing/selection/5057506-expected.png: Added.
* platform/wincairo/editing/selection/caret-ltr-right-expected.txt:
* platform/wincairo/editing/selection/caret-rtl-right-expected.txt:
* platform/wincairo/editing/selection/doubleclick-crash-expected.txt: Added.
* platform/wincairo/editing/selection/editable-links-expected.txt: Added.
* platform/wincairo/editing/selection/extend-by-character-006-expected.txt: Added.
* platform/wincairo/editing/selection/extend-by-sentence-001-expected.txt: Added.
* platform/wincairo/editing/selection/extend-by-word-001-expected.txt: Added.
* platform/wincairo/editing/selection/extend-inside-transforms-backward-expected.txt: Added.
* platform/wincairo/editing/selection/extend-inside-transforms-forward-expected.txt: Added.
* platform/wincairo/editing/selection/extend-selection-bidi-expected.txt: Added.
* platform/wincairo/editing/selection/focus-body-expected.txt: Added.
* platform/wincairo/editing/selection/move-by-line-001-expected.txt: Added.
* platform/wincairo/editing/selection/move-by-word-001-expected.txt: Added.
* platform/wincairo/editing/selection/select-all-001-expected.txt: Added.
* platform/wincairo/editing/selection/select-all-002-expected.txt: Added.
* platform/wincairo/editing/selection/select-all-003-expected.txt: Added.
* platform/wincairo/editing/selection/select-all-004-expected.txt: Added.
* platform/wincairo/editing/selection/unrendered-001-expected.txt: Added.
* platform/wincairo/editing/selection/unrendered-002-expected.txt: Added.
* platform/wincairo/editing/selection/unrendered-003-expected.txt: Added.
* platform/wincairo/editing/selection/unrendered-004-expected.txt: Added.
* platform/wincairo/editing/selection/unrendered-005-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234752 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[LayoutTests] Test case which committed on r175053 was wrong.
Basuke.Suzuki@sony.com [Fri, 10 Aug 2018 05:13:47 +0000 (05:13 +0000)]
[LayoutTests] Test case which committed on r175053 was wrong.
https://bugs.webkit.org/show_bug.cgi?id=188454

Reviewed by Fujii Hironori.

It was originally committed on https://bugs.webkit.org/show_bug.cgi?id=136938 and has kept unchanged,
but the test case uses non-existing redirect.php scripts which was removed a few months before than
this bug. Also result was compared to wrong values.

* http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt:
* http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234751 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoAdd ability to ignore process prewarming for launch time benchmark
commit-queue@webkit.org [Fri, 10 Aug 2018 04:53:42 +0000 (04:53 +0000)]
Add ability to ignore process prewarming for launch time benchmark
https://bugs.webkit.org/show_bug.cgi?id=188462

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-09
Reviewed by Ryosuke Niwa.

Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.

* LaunchTime/launch_time.py:
(DefaultLaunchTimeHandler):
(DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
(DefaultLaunchTimeHandler.on_receive_stop_signal):
(DefaultLaunchTimeHandler.do_HEAD):
(DefaultLaunchTimeHandler.do_GET):
(DefaultLaunchTimeHandler.do_POST):
(LaunchTimeBenchmark):
(LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
(LaunchTimeBenchmark.open_tab): Added option to open a blank tab
(LaunchTimeBenchmark.run):
* LaunchTime/new_tab.py:
(NewTabBenchmark.initialize):
(NewTabBenchmark.run_iteration):
(NewTabBenchmark.will_parse_arguments):
(NewTabBenchmark.did_parse_arguments):
(NewTabBenchmark.ResponseHandler.Handler.get_test_page):
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(NewTabBenchmark):
* LaunchTime/startup.py:
(StartupBenchmark.ResponseHandler.Handler.get_test_page):
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(StartupBenchmark):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234750 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[webkitpy][Win] LayoutTests: test names should be Unix style, separated by slash...
Hironori.Fujii@sony.com [Fri, 10 Aug 2018 02:13:32 +0000 (02:13 +0000)]
[webkitpy][Win] LayoutTests: test names should be Unix style, separated by slash not backslash
https://bugs.webkit.org/show_bug.cgi?id=187973

Reviewed by Alex Christensen.

In LayoutTests, test names have been canonicalized in Unix style
since Bug 63597, for example 'fast/css/001.html'. But, Bug 179219,
Bug 179572, Bug 180660 and Bug 181814 have changed to use
os.path.seq instead of slash if Windows Python is used.

Revert parts of those changes. Change relative_test_filename to
return a slash sperated test name as well as chromium_win.py used
to do.

This change fixes all 41 test-webkitpy failures in WinCairo port.

* Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser._parse_line): Do not convert a test name by using normpath.
* Scripts/webkitpy/port/base.py:
(Port.normalize_test_name): Use TEST_PATH_SEPARATOR instead of os.path.sep.
(Port.relative_test_filename): Replace self.host.filesystem.sep with self.TEST_PATH_SEPARATOR.
(Port.abspath_for_test): Split test_name with TEST_PATH_SEPARATOR.
* Scripts/webkitpy/port/driver.py:
(Driver): Use '/' instead of os.sep.
* Scripts/webkitpy/port/win.py:
(WinCairoPort): Do not override TEST_PATH_SEPARATOR.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234749 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[WHLSL] Add individual test durations to output
commit-queue@webkit.org [Fri, 10 Aug 2018 01:18:06 +0000 (01:18 +0000)]
[WHLSL] Add individual test durations to output
https://bugs.webkit.org/show_bug.cgi?id=188448

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-09
Reviewed by Myles C. Maxfield.

* WebGPUShadingLanguageRI/Test.js: Add timing output.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234748 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoWe should cache the compiled sandbox profile in a data vault
commit-queue@webkit.org [Fri, 10 Aug 2018 00:28:58 +0000 (00:28 +0000)]
We should cache the compiled sandbox profile in a data vault
https://bugs.webkit.org/show_bug.cgi?id=184991

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-09
Reviewed by Ryosuke Niwa.

Source/WebCore:

Added functionality to FileHandle so that it can lock a file while open.
Added a function to FileSystem to delete non empty directories.

* platform/FileHandle.cpp:
(WebCore::FileHandle::FileHandle):
(WebCore::FileHandle::open):
(WebCore::FileHandle::close):
* platform/FileHandle.h:
* platform/FileSystem.h:
* platform/cocoa/FileSystemCocoa.mm:
(WebCore::FileSystem::deleteNonEmptyDirectory):

Source/WebKit:

This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds):
(1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox
    in a process specific data vault on macOS platforms. (ChildProcessMac.mm)
(2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists),
    compile a sandbox, and cache it.
(3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements
    file which contains an entitlement with a process specific "storage class" which ensures that each process
    can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info)
(4) The sandbox entitlements file for the Network, WebContent and Plugin services are loaded dynamically
    through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service.
    The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig.
    The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements
    are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work.

* Configurations/Network-OSX-sandbox.entitlements: Added.
* Configurations/Storage-OSX-sandbox.entitlements: Added.
* Configurations/StorageService.xcconfig:
* Configurations/WebContent-OSX-sandbox.entitlements: Added.
* Configurations/WebKit.xcconfig:
* NetworkProcess/NetworkProcess.h:
* PluginProcess/PluginProcess.h:
* Scripts/process-network-sandbox-entitlements.sh: Added.
* Scripts/process-webcontent-sandbox-entitlements.sh: Added.
* Shared/ChildProcess.h:
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Shared/SandboxInitializationParameters.h:
(WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath):
(WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const):
(WebKit::SandboxInitializationParameters::setSandboxProfile):
(WebKit::SandboxInitializationParameters::sandboxProfile const):
(): Deleted.
* Shared/mac/ChildProcessMac.mm:
(WebKit::SandboxProfileDeleter::operator()):
(WebKit::SandboxParametersDeleter::operator()):
(WebKit::SandboxInfo::SandboxInfo):
(WebKit::fileContents):
(WebKit::processStorageClass):
(WebKit::setAndSerializeSandboxParameters):
(WebKit::sandboxDataVaultParentDirectory):
(WebKit::sandboxDirectory):
(WebKit::sandboxFilePath):
(WebKit::ensureSandboxCacheDirectory):
(WebKit::writeSandboxDataToCacheFile):
(WebKit::compileAndCacheSandboxProfile):
(WebKit::tryApplyCachedSandbox):
(WebKit::webKit2Bundle):
(WebKit::sandboxProfilePath):
(WebKit::compileAndApplySandboxSlowCase):
(WebKit::applySandbox):
(WebKit::initializeSandboxParameters):
(WebKit::ChildProcess::initializeSandbox):
* Shared/mac/SandboxInitialiationParametersMac.mm:
(WebKit::SandboxInitializationParameters::SandboxInitializationParameters):
* StorageProcess/StorageProcess.h:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.h:

Source/WTF:

Added trace points for sandbox initialization and exposed functions needed for sandbox caching

* wtf/SystemTracing.h:
* wtf/spi/darwin/SandboxSPI.h:

Tools:

Added trace points for sandbox initialization

* Tracing/SystemTracePoints.plist:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234747 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoRemove ElCapitan specific layout test expectations
commit-queue@webkit.org [Fri, 10 Aug 2018 00:20:39 +0000 (00:20 +0000)]
Remove ElCapitan specific layout test expectations
https://bugs.webkit.org/show_bug.cgi?id=188457

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-08-09
Reviewed by Alex Christensen.

* platform/mac-wk1/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234746 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Fri, 10 Aug 2018 00:18:52 +0000 (00:18 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188456

Unreviewed test gardening.

Unskip http/xmlhttprequest.

* platform/wincairo/TestExpectations:
* platform/wincairo/http/tests/local/file-url-sent-as-referer-expected.png: Added.
* platform/wincairo/http/tests/multipart/invalid-image-data-expected.png: Added.
* platform/wincairo/http/tests/multipart/invalid-image-data-standalone-expected.png: Added.
* platform/wincairo/http/tests/uri/css-href-expected.png: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234745 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoInputType should not interact with an HTMLInputElement is no longer associated with
cdumez@apple.com [Thu, 9 Aug 2018 23:56:42 +0000 (23:56 +0000)]
InputType should not interact with an HTMLInputElement is no longer associated with
https://bugs.webkit.org/show_bug.cgi?id=188410

Reviewed by Ryosuke Niwa.

Clear InputType::m_element when the InputType is no longer associated with the HTMLInputElement
because the element changed type. We were already dealing with the InputType no longer being
associated with an element because the element died by using a WeakPtr. However, it is conceptually
better (more correct) to also clear this pointer if the element is still alive but associated with
another InputType.

* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
* html/InputType.h:
(WebCore::InputType::detachFromElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234744 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoVideo playback is using more power
jer.noble@apple.com [Thu, 9 Aug 2018 23:49:11 +0000 (23:49 +0000)]
Video playback is using more power
https://bugs.webkit.org/show_bug.cgi?id=188452
Source/WebCore:

<rdar://problem/42298937>

Reviewed by Eric Carlson.

Test: TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm

When the meaning of PlatformMediaSession::Video changed to "video-only", we failed to update
MediaSessionManagerCocoa::updateSessionState() to use the new PlatformMediaSession::VideoAudio
enum, so Video-only sessions were getting the higher audio buffer size (where it's not needed)
and Video-and-Audio sessions were getting the default value.

To enable testing, add a preferredAudioBufferSize property to Internals. Also, the getter for
AudioSession::preferredBufferSize was using the wrong CoreAudio property address, and was
always returning 0.

* platform/audio/AudioSession.h:
* platform/audio/cocoa/MediaSessionManagerCocoa.cpp:
(MediaSessionManagerCocoa::updateSessionState):
* platform/audio/mac/AudioSessionMac.cpp:
(WebCore::AudioSession::preferredBufferSize const):
* testing/Internals.cpp:
(WebCore::Internals::preferredAudioBufferSize const):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

Reviewed by Eric Carlson.

* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setLowPowerVideoAudioBufferSizeEnabled:]):
(-[WKPreferences _lowPowerVideoAudioBufferSizeEnabled]):

Tools:

<rdar://problem/42298937>

Reviewed by Eric Carlson.

* TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:
(PreferredAudioBufferSize::createView):
(PreferredAudioBufferSize::preferredAudioBufferSize const):
(TEST_F):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234743 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoREGRESSION (r234330): 3 legacy-animation-engine/compositing tests are flaky failures
tsavell@apple.com [Thu, 9 Aug 2018 23:30:39 +0000 (23:30 +0000)]
REGRESSION (r234330): 3 legacy-animation-engine/compositing tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=188357

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234742 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoFix URLSchemeHandler.SyncXHR API test after r234735.
achristensen@apple.com [Thu, 9 Aug 2018 23:07:24 +0000 (23:07 +0000)]
Fix URLSchemeHandler.SyncXHR API test after r234735.
https://bugs.webkit.org/show_bug.cgi?id=188358

* UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::didReceiveData):
Return after appending data for synchronous loads.  We used to send unused messages.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234741 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoREGRESSION(234640) Loading stalls in environments without SafariSafeBrowsing framework
achristensen@apple.com [Thu, 9 Aug 2018 22:37:52 +0000 (22:37 +0000)]
REGRESSION(234640) Loading stalls in environments without SafariSafeBrowsing framework
https://bugs.webkit.org/show_bug.cgi?id=188453
<rdar://problem/43102553>

Source/WebKit:

Reviewed by Chris Dumez.

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::beginSafeBrowsingCheck):

Tools:

Reviewed by Chris Dumez

* TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
(TEST):
(+[NullLookupContext sharedLookupContext]):
(TestWebKitAPI::TEST): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234739 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoWeb Inspector: Dark Mode: SourceCodeTextEditor error/warning text widget is too light
nvasilyev@apple.com [Thu, 9 Aug 2018 21:47:00 +0000 (21:47 +0000)]
Web Inspector: Dark Mode: SourceCodeTextEditor error/warning text widget is too light
https://bugs.webkit.org/show_bug.cgi?id=188126
<rdar://problem/42674963>

Reviewed by Matt Baker.

* UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(.source-code.text-editor > .CodeMirror .issue-widget.warning,): Added.
(.source-code.text-editor > .CodeMirror .issue-widget.error,): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234736 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoWKURLSchemeHandler crashes when sent errors with sync XHR
commit-queue@webkit.org [Thu, 9 Aug 2018 21:43:48 +0000 (21:43 +0000)]
WKURLSchemeHandler crashes when sent errors with sync XHR
https://bugs.webkit.org/show_bug.cgi?id=188358

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-09
Reviewed by Chris Dumez.

Source/WebKit:

* UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::didReceiveData):
(WebKit::WebURLSchemeTask::didComplete):
* UIProcess/WebURLSchemeTask.h:

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
(-[SyncErrorScheme webView:startURLSchemeTask:]):
(-[SyncErrorScheme webView:stopURLSchemeTask:]):
(-[SyncErrorScheme webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234735 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoREGRESSION(r234652): fast/scrolling/rtl-scrollbars-animation-property.html is failing
pvollan@apple.com [Thu, 9 Aug 2018 20:43:26 +0000 (20:43 +0000)]
REGRESSION(r234652): fast/scrolling/rtl-scrollbars-animation-property.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188397

Reviewed by Tim Horton.

After r234652, [NSScroller preferredScrollerStyle] is called in the UI process, and we need to set the same
user defaults related to scrollbars in the UI process as we do in the WebProcess.

* WebKitTestRunner/mac/main.mm:
(setDefaultsToConsistentValuesForTesting):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234734 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agomemoryFootprint should return size_t not optional<size_t>
sbarati@apple.com [Thu, 9 Aug 2018 20:13:27 +0000 (20:13 +0000)]
memoryFootprint should return size_t not optional<size_t>
https://bugs.webkit.org/show_bug.cgi?id=188444

Reviewed by Simon Fraser.

Source/WebCore:

* page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::ResourceUsageOverlay::platformDraw):

Source/WTF:

We're now going to return zero instead of returning nullopt on failure.
There was a lot of code dancing around memoryFootprint failing for no
good reason.

Users of this API were previously doing this on failure:
- Treating it as zero (this was the most common user).
- Crashing.
- Bailing out early and not changing our memory pressure state. This change
has the effect that instead of not changing our memory pressure state on
failure, we will go back to thinking we're not under memory pressure. Since
we relied on this API not failing to do anything useful (like kill the process
or release memory), this won't change our behavior here in a meaningful way.

* wtf/MemoryFootprint.h:
* wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::currentMemoryUsagePolicy):
(WTF::MemoryPressureHandler::shrinkOrDie):
(WTF::MemoryPressureHandler::measurementTimerFired):
* wtf/cocoa/MemoryFootprintCocoa.cpp:
(WTF::memoryFootprint):
* wtf/linux/MemoryFootprintLinux.cpp:
(WTF::memoryFootprint):
* wtf/linux/MemoryPressureHandlerLinux.cpp:
(WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
* wtf/win/MemoryFootprintWin.cpp:
(WTF::memoryFootprint):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234733 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUpdate IDL for IntersectionObserverEntry and IntersectionObserverEntryInit
ajuma@chromium.org [Thu, 9 Aug 2018 19:36:38 +0000 (19:36 +0000)]
Update IDL for IntersectionObserverEntry and IntersectionObserverEntryInit
https://bugs.webkit.org/show_bug.cgi?id=188445

Reviewed by Simon Fraser.

Source/WebCore:

Update IntersectionObserverEntry by making rootBounds nullable, and adding an
isIntersecting attribute. Make the same changes to IntersectionObserverEntryInit,
and also add an intersectionRatio attribute.

Tested by intersection-observer/intersection-observer-entry-interface.html

* page/IntersectionObserverEntry.cpp:
(WebCore::IntersectionObserverEntry::IntersectionObserverEntry):
* page/IntersectionObserverEntry.h:
(WebCore::IntersectionObserverEntry::isIntersecting const):
* page/IntersectionObserverEntry.idl:

LayoutTests:

* intersection-observer/intersection-observer-entry-interface-expected.txt:
* intersection-observer/intersection-observer-entry-interface.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[iOS WK2] Rename and refactor DataInteractionTests and DataInteractionSimulator
wenson_hsieh@apple.com [Thu, 9 Aug 2018 19:02:21 +0000 (19:02 +0000)]
[iOS WK2] Rename and refactor DataInteractionTests and DataInteractionSimulator
https://bugs.webkit.org/show_bug.cgi?id=188439

Reviewed by Andy Estes and Megan Gardner.

Refactor DataInteractionSimulator (currently used for drag and drop testing on iOS) so that it exists across
macOS and iOS, and rename it to DragAndDropSimulator. Additionally, rename DataInteractionTests to
DragAndDropTests.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm: Renamed from Tools/TestWebKitAPI/Tests/ios/DataInteractionTests.mm.
(testIconImage):
(testZIPArchive):
(-[UIItemProvider registerDataRepresentationForTypeIdentifier:withData:]):
(-[TestWKWebView editorContainsImageElement]):
(-[TestWKWebView editorValue]):
(makeCGRectValue):
(checkCGRectIsEqualToCGRectWithLogging):
(checkSelectionRectsWithLogging):
(checkRichTextTypePrecedesPlainTextType):
(checkFirstTypeIsPresentAndSecondTypeIsMissing):
(checkTypeIdentifierIsRegisteredAtIndex):
(checkEstimatedSize):
(checkSuggestedNameAndEstimatedSize):
(checkStringArraysAreEqual):
(checkDragCaretRectIsContainedInRect):
(checkJSONWithLogging):
(testIconImageData):
(runTestWithTemporaryTextFile):
(runTestWithTemporaryFolder):
(TestWebKitAPI::TEST):
(TestWebKitAPI::setUpTestWebViewForDataTransferItems):
(TestWebKitAPI::testDragAndDropOntoTargetElements):
(TestWebKitAPI::testIconImageData):
* TestWebKitAPI/cocoa/DragAndDropSimulator.h: Renamed from Tools/TestWebKitAPI/ios/DataInteractionSimulator.h.
* TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm: Renamed from Tools/TestWebKitAPI/ios/DataInteractionSimulator.mm.
(-[WKWebView dropInteractionDelegate]):
(-[WKWebView dragInteractionDelegate]):
(-[WKWebView dropInteraction]):
(-[WKWebView dragInteraction]):
(-[MockDragDropSession initWithItems:location:window:allowMove:]):
(-[MockDragDropSession allowsMoveOperation]):
(-[MockDragDropSession isRestrictedToDraggingApplication]):
(-[MockDragDropSession hasItemsConformingToTypeIdentifiers:]):
(-[MockDragDropSession canLoadObjectsOfClass:]):
(-[MockDragDropSession canLoadObjectsOfClasses:]):
(-[MockDragDropSession items]):
(-[MockDragDropSession setItems:]):
(-[MockDragDropSession addItems:]):
(-[MockDragDropSession locationInView:]):
(-[MockDropSession initWithProviders:location:window:allowMove:]):
(-[MockDropSession isLocal]):
(-[MockDropSession progress]):
(-[MockDropSession setProgressIndicatorStyle:]):
(-[MockDropSession progressIndicatorStyle]):
(-[MockDropSession operationMask]):
(-[MockDropSession localDragSession]):
(-[MockDropSession hasItemsConformingToTypeIdentifier:]):
(-[MockDropSession canCreateItemsOfClass:]):
(-[MockDropSession loadObjectsOfClass:completion:]):
(-[MockDragSession initWithWindow:allowMove:]):
(-[MockDragSession localOperationMask]):
(-[MockDragSession externalOperationMask]):
(-[MockDragSession session]):
(-[MockDragSession localContext]):
(-[MockDragSession setLocalContext:]):
(dragAndDropEventNames):
(-[DragAndDropSimulatorApplication _cancelAllTouches]):
(-[DragAndDropSimulator initWithWebView:]):
(-[DragAndDropSimulator dealloc]):
(-[DragAndDropSimulator _resetSimulatedState]):
(-[DragAndDropSimulator observedEventNames]):
(-[DragAndDropSimulator simulateAllTouchesCanceled:]):
(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator runFrom:to:additionalItemRequestLocations:]):
(-[DragAndDropSimulator finalSelectionRects]):
(-[DragAndDropSimulator _concludeDropAndPerformOperationIfNecessary]):
(-[DragAndDropSimulator _enqueuePendingAdditionalItemRequestLocations]):
(-[DragAndDropSimulator _sendQueuedAdditionalItemRequest]):
(-[DragAndDropSimulator _advanceProgress]):
(-[DragAndDropSimulator _currentLocation]):
(-[DragAndDropSimulator _scheduleAdvanceProgress]):
(-[DragAndDropSimulator sourceItemProviders]):
(-[DragAndDropSimulator externalItemProviders]):
(-[DragAndDropSimulator setExternalItemProviders:]):
(-[DragAndDropSimulator phase]):
(-[DragAndDropSimulator liftPreviews]):
(-[DragAndDropSimulator lastKnownDragCaretRect]):
(-[DragAndDropSimulator waitForInputSession]):
(-[DragAndDropSimulator insertedAttachments]):
(-[DragAndDropSimulator removedAttachments]):
(-[DragAndDropSimulator endDataTransfer]):
(-[DragAndDropSimulator _webView:dataInteractionOperationWasHandled:forSession:itemProviders:]):
(-[DragAndDropSimulator _webView:willUpdateDataInteractionOperationToOperation:forSession:]):
(-[DragAndDropSimulator _webView:adjustedDataInteractionItemProvidersForItemProvider:representingObjects:additionalData:]):
(-[DragAndDropSimulator _webView:showCustomSheetForElement:]):
(-[DragAndDropSimulator _webView:willPerformDropWithSession:]):
(-[DragAndDropSimulator _webView:didInsertAttachment:]):
(-[DragAndDropSimulator _webView:didRemoveAttachment:]):
(-[DragAndDropSimulator _webView:focusShouldStartInputSession:]):
(-[DragAndDropSimulator _webView:didStartInputSession:]):
* TestWebKitAPI/ios/UIKitSPI.h:
* TestWebKitAPI/mac/DragAndDropSimulatorMac.mm: Added.
(-[DragAndDropSimulator initWithWebView:]):
(-[DragAndDropSimulator dealloc]):
(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator insertedAttachments]):
(-[DragAndDropSimulator removedAttachments]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoREGRESSION (r232083): WKWebView loses first-party cookies on iOS
cdumez@apple.com [Thu, 9 Aug 2018 18:48:14 +0000 (18:48 +0000)]
REGRESSION (r232083): WKWebView loses first-party cookies on iOS
https://bugs.webkit.org/show_bug.cgi?id=188443
<rdar://problem/42991584>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-08-09
Reviewed by Chris Dumez.

Source/WebKit:

Revert the change to set sharedCookieStorage for iOS as it is breaking Kayak.

* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Tools:

Skip WebKit.WKHTTPCookieStoreWithoutProcessPool on iOS.

* TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234730 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoArray.prototype.sort should call @toLength instead of ">>> 0"
keith_miller@apple.com [Thu, 9 Aug 2018 18:02:05 +0000 (18:02 +0000)]
Array.prototype.sort should call @toLength instead of ">>> 0"
https://bugs.webkit.org/show_bug.cgi?id=188430

Reviewed by Saam Barati.

JSTests:

* test262/expectations.yaml:

Source/JavaScriptCore:

Also add a new function to $vm that will fetch a private
property. This can be useful for running builtin helper functions.

* builtins/ArrayPrototype.js:
(sort):
* tools/JSDollarVM.cpp:
(JSC::functionGetPrivateProperty):
(JSC::JSDollarVM::finishCreation):

LayoutTests:

Remove invalid conformance test expectations. Array.prototype.sort calls toLength, which
does not truncate integers.

* sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T1.html:
* sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T2.html:
* sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T3.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed follow-up fix for r234720.
ross.kirsling@sony.com [Thu, 9 Aug 2018 17:24:39 +0000 (17:24 +0000)]
Unreviewed follow-up fix for r234720.

* Scripts/webkitpy/bindings/main.py:
(BindingsTests.close_and_remove):
(BindingsTests.main):
Return to the original approach, since this seems to be the simplest cross-platform solution.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234726 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoDisplayRefreshMonitorMac should hold a weak pointer to WebPage.
pvollan@apple.com [Thu, 9 Aug 2018 15:49:13 +0000 (15:49 +0000)]
DisplayRefreshMonitorMac should hold a weak pointer to WebPage.
https://bugs.webkit.org/show_bug.cgi?id=186683

Reviewed by Brent Fulgham.

Instead of DisplayRefreshMonitorMac having a RefPtr to WebPage, it should have a weak pointer.
Having a RefPtr could in theory create reference cycles. This potential problem has not been
observed in practice, but it is safer to use a weak pointer.

* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/DrawingAreaMac.cpp:
(WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::requestRefreshCallback):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234725 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed GTK+ gardening after r234720.
magomez@igalia.com [Thu, 9 Aug 2018 14:01:51 +0000 (14:01 +0000)]
Unreviewed GTK+ gardening after r234720.

* platform/gtk/TestExpectations:
* platform/gtk/http/tests/inspector/network/xhr-response-body-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234724 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoImport WPTs for IntersectionObserver
ajuma@chromium.org [Thu, 9 Aug 2018 13:36:51 +0000 (13:36 +0000)]
Import WPTs for IntersectionObserver
https://bugs.webkit.org/show_bug.cgi?id=188416

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/intersection-observer/META.yml: Added.
* web-platform-tests/intersection-observer/bounding-box-expected.txt: Added.
* web-platform-tests/intersection-observer/bounding-box.html: Added.
* web-platform-tests/intersection-observer/client-rect-expected.txt: Added.
* web-platform-tests/intersection-observer/client-rect.html: Added.
* web-platform-tests/intersection-observer/containing-block-expected.txt: Added.
* web-platform-tests/intersection-observer/containing-block.html: Added.
* web-platform-tests/intersection-observer/cross-origin-iframe-expected.txt: Added.
* web-platform-tests/intersection-observer/cross-origin-iframe.html: Added.
* web-platform-tests/intersection-observer/disconnect-expected.txt: Added.
* web-platform-tests/intersection-observer/disconnect.html: Added.
* web-platform-tests/intersection-observer/display-none-expected.txt: Added.
* web-platform-tests/intersection-observer/display-none.html: Added.
* web-platform-tests/intersection-observer/edge-inclusive-intersection-expected.txt: Added.
* web-platform-tests/intersection-observer/edge-inclusive-intersection.html: Added.
* web-platform-tests/intersection-observer/idlharness.window-expected.txt: Added.
* web-platform-tests/intersection-observer/idlharness.window.html: Added.
* web-platform-tests/intersection-observer/idlharness.window.js: Added.
(idl_array.self.observer.new.IntersectionObserver):
* web-platform-tests/intersection-observer/iframe-no-root-expected.txt: Added.
* web-platform-tests/intersection-observer/iframe-no-root.html: Added.
* web-platform-tests/intersection-observer/inline-client-rect-expected.txt: Added.
* web-platform-tests/intersection-observer/inline-client-rect.html: Added.
* web-platform-tests/intersection-observer/isIntersecting-change-events-expected.txt: Added.
* web-platform-tests/intersection-observer/isIntersecting-change-events.html: Added.
* web-platform-tests/intersection-observer/multiple-targets-expected.txt: Added.
* web-platform-tests/intersection-observer/multiple-targets.html: Added.
* web-platform-tests/intersection-observer/multiple-thresholds-expected.txt: Added.
* web-platform-tests/intersection-observer/multiple-thresholds.html: Added.
* web-platform-tests/intersection-observer/observer-attributes-expected.txt: Added.
* web-platform-tests/intersection-observer/observer-attributes.html: Added.
* web-platform-tests/intersection-observer/observer-exceptions-expected.txt: Added.
* web-platform-tests/intersection-observer/observer-exceptions.html: Added.
* web-platform-tests/intersection-observer/observer-in-iframe.html: Added.
* web-platform-tests/intersection-observer/observer-without-js-reference-expected.txt: Added.
* web-platform-tests/intersection-observer/observer-without-js-reference.html: Added.
* web-platform-tests/intersection-observer/remove-element-expected.txt: Added.
* web-platform-tests/intersection-observer/remove-element.html: Added.
* web-platform-tests/intersection-observer/resources/cross-origin-subframe.html: Added.
* web-platform-tests/intersection-observer/resources/iframe-no-root-subframe.html: Added.
* web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js: Added.
(waitForNotification):
(runTestCycle):
(contentBounds):
(borderBoxBounds):
(clientBounds):
(rectArea):
(checkRect):
(checkLastEntry):
(checkJsonEntry):
(checkJsonEntries):
* web-platform-tests/intersection-observer/resources/observer-in-iframe-subframe.html: Added.
* web-platform-tests/intersection-observer/resources/timestamp-subframe.html: Added.
* web-platform-tests/intersection-observer/resources/w3c-import.log: Added.
* web-platform-tests/intersection-observer/root-margin-expected.txt: Added.
* web-platform-tests/intersection-observer/root-margin.html: Added.
* web-platform-tests/intersection-observer/same-document-no-root-expected.txt: Added.
* web-platform-tests/intersection-observer/same-document-no-root.html: Added.
* web-platform-tests/intersection-observer/same-document-root-expected.txt: Added.
* web-platform-tests/intersection-observer/same-document-root.html: Added.
* web-platform-tests/intersection-observer/same-document-zero-size-target-expected.txt: Added.
* web-platform-tests/intersection-observer/same-document-zero-size-target.html: Added.
* web-platform-tests/intersection-observer/shadow-content-expected.txt: Added.
* web-platform-tests/intersection-observer/shadow-content.html: Added.
* web-platform-tests/intersection-observer/text-target-expected.txt: Added.
* web-platform-tests/intersection-observer/text-target.html: Added.
* web-platform-tests/intersection-observer/timestamp-expected.txt: Added.
* web-platform-tests/intersection-observer/timestamp.html: Added.
* web-platform-tests/intersection-observer/unclipped-root-expected.txt: Added.
* web-platform-tests/intersection-observer/unclipped-root.html: Added.
* web-platform-tests/intersection-observer/w3c-import.log: Added.
* web-platform-tests/intersection-observer/zero-area-element-hidden-expected.txt: Added.
* web-platform-tests/intersection-observer/zero-area-element-hidden.html: Added.
* web-platform-tests/intersection-observer/zero-area-element-visible-expected.txt: Added.
* web-platform-tests/intersection-observer/zero-area-element-visible.html: Added.

Source/WebKit:

Make IntersectionObserver an experimental feature, so that it is enabled in
WebKitTestRunner.

* Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

* WebView/WebPreferencesPrivate.h:

Tools:

Enable IntersectionObserver in DumpRenderTree.

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(setWebPreferencesForTestOptions):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234723 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoUnreviewed GTK+ and WPE gardening. Add a reftest failure expectation.
zandobersek@gmail.com [Thu, 9 Aug 2018 12:00:35 +0000 (12:00 +0000)]
Unreviewed GTK+ and WPE gardening. Add a reftest failure expectation.
Update a WPT EME test baseline for the WPE port.

* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234722 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoFix copyright headers on new ISO parsing class
cturner@igalia.com [Thu, 9 Aug 2018 11:50:49 +0000 (11:50 +0000)]
Fix copyright headers on new ISO parsing class
https://bugs.webkit.org/show_bug.cgi?id=188432

Unreviewed fix.

This was left off from a previous bug by mistake, retrospectively
adding the correct copyright headers.

No tests required.

* platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.cpp:
* platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234721 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agorun-bindings-tests is not Win32-compatible
ross.kirsling@sony.com [Thu, 9 Aug 2018 05:42:42 +0000 (05:42 +0000)]
run-bindings-tests is not Win32-compatible
https://bugs.webkit.org/show_bug.cgi?id=188424

Reviewed by Fujii Hironori.

Source/WebCore:

* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
Ensure that we fall back to cl.exe if CC env var is not set on Windows.

Tools:

* Scripts/webkitpy/bindings/main.py:
(BindingsTests.main):
Stop leaking file descriptors.
(See https://www.logilab.org/blogentry/17873 for details, though the solution here is even simpler.)

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoYet more crashes in MobileSafari under -[WKFormInputSession setSuggestions:]
timothy_horton@apple.com [Thu, 9 Aug 2018 04:36:34 +0000 (04:36 +0000)]
Yet more crashes in MobileSafari under -[WKFormInputSession setSuggestions:]
https://bugs.webkit.org/show_bug.cgi?id=188427
<rdar://problem/43064672>

Reviewed by Wenson Hsieh.

Speculatively fix more crashes seen under setSuggestions.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession isValid]):
(-[WKFormInputSession setSuggestions:]):
(-[WKFormInputSession invalidate]):
Belt-and-suspenders fix: use WeakObjCPtr for WKFormInputSession's WKContentView reference.

(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
Invalidate the WKFormInputSession before replacing it; we theorize that
there is a path in which we get here without having previously called stopAssistingNode.
Most of the code is OK with this, but this leaves WKFormInputSession
with a raw reference to WKContentView which can later become stale.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234719 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoREGRESSION (r228260): Events handled by input method invoke default event handler
rniwa@webkit.org [Thu, 9 Aug 2018 04:32:39 +0000 (04:32 +0000)]
REGRESSION (r228260): Events handled by input method invoke default event handler
https://bugs.webkit.org/show_bug.cgi?id=188370

Reviewed by Wenson Hsieh.

Source/WebCore:

The bug was caused by the default event handler being invoked for the "virtual" keydown events
generated for input methods. Namely, when Japanese or Chinese input methods swallows TAB key,
WebKit should not invoke the default event handler and move the focus during input composition.

Fixed the bug by adding a new boolean on Event indicating whether the default event handler
should be invoked, and restoring the behavior prior to r228260 for these virtual keydown events.

Test: editing/input/press-tab-during-ime-composition.html

* dom/Event.h:
(WebCore::Event::isDefaultEventHandlerIgnored const): Added.
(WebCore::Event::setIsDefaultEventHandlerIgnored): Added.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent): Don't invoke the default event handler if
isDefaultEventHandlerIgnored is set.
* page/EventHandler.cpp:
(WebCore::EventHandler::internalKeyEvent): Set isDefaultEventHandlerIgnored. This restores WebKit's
behavior prior to r228260.

LayoutTests:

Added a regression test. Due to the lack of adequate support of textInputController in WebKitTestRunner,
the test is only enabled in WebKit1. The WTR fix is tracked by https://webkit.org/b/188428.

* editing/input/press-tab-during-ime-composition-expected.txt: Added.
* editing/input/press-tab-during-ime-composition.html: Added.
* platform/ios/TestExpectations:
* platform/wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234718 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoPrevent collectScreenProperties from crashing Base System
commit-queue@webkit.org [Thu, 9 Aug 2018 03:53:18 +0000 (03:53 +0000)]
Prevent collectScreenProperties from crashing Base System
https://bugs.webkit.org/show_bug.cgi?id=188429
<rdar://problem/43075662>

Patch by Justin Fan <justin_fan@apple.com> on 2018-08-08
Reviewed by Simon Fraser.

Adding some error-checking and early returns to further prevent calling CGLDescribeRenderer with invalid parameters.

Existing WebGL tests should cover; no expected change in behavior. Crash happened primarily on Base System.

* platform/mac/PlatformScreenMac.mm:
(WebCore::gpuIDForDisplayMask):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234717 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoArray.prototype.sort should throw TypeError if param is a not callable object
keith_miller@apple.com [Thu, 9 Aug 2018 03:13:20 +0000 (03:13 +0000)]
Array.prototype.sort should throw TypeError if param is a not callable object
https://bugs.webkit.org/show_bug.cgi?id=188382

Reviewed by Saam Barati.

JSTests:

* test262/expectations.yaml:

Source/JavaScriptCore:

Improve spec compatability by checking if the Array.prototype.sort comparator is a function
before doing anything else.

Also, refactor the various helper functions to use let instead of var.

* builtins/ArrayPrototype.js:
(sort.stringComparator):
(sort.compactSparse):
(sort.compactSlow):
(sort.compact):
(sort.merge):
(sort.mergeSort):
(sort.bucketSort):
(sort.comparatorSort):
(sort.stringSort):
(sort):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months ago[Curl] Surface additional NetworkLoadMetrics
don.olmstead@sony.com [Thu, 9 Aug 2018 01:12:05 +0000 (01:12 +0000)]
[Curl] Surface additional NetworkLoadMetrics
https://bugs.webkit.org/show_bug.cgi?id=188391

Reviewed by Joseph Pecoraro.

Source/WebCore:

* platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::getNetworkLoadMetrics):

Source/WebKit:

* NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::curlDidReceiveResponse):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234715 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoFix possible null dereference in WebBackForwardList::restoreFromState
commit-queue@webkit.org [Wed, 8 Aug 2018 22:58:21 +0000 (22:58 +0000)]
Fix possible null dereference in WebBackForwardList::restoreFromState
https://bugs.webkit.org/show_bug.cgi?id=188418
<rdar://problem/42531726>

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-08
Reviewed by Chris Dumez.

Source/WebKit:

* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::restoreFromState):
Null-check m_page like we do everywhere else in this file because it can be set to null when closing the page.

Tools:

* TestWebKitAPI/Tests/WebKit/RestoreSessionState.cpp:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12 months agoYarr JIT should include annotations with dumpDisassembly=true
msaboff@apple.com [Wed, 8 Aug 2018 22:42:30 +0000 (22:42 +0000)]
Yarr JIT should include annotations with dumpDisassembly=true
https://bugs.webkit.org/show_bug.cgi?id=188415

Reviewed by Yusuke Suzuki.

Created a YarrDisassembler class that handles annotations similar to the baseline JIT.
Given that the Yarr creates matching code bu going through the YarrPattern ops forward and
then the backtracking code through the YarrPattern ops in reverse order, the disassembler
needs to do the same think.

Restructured some of the logging code in YarrPattern to eliminate redundent code and factor
out simple methods for what was needed by the YarrDisassembler.

Here is abbreviated sample output after this change.

Generated JIT code for 8-bit regular expression /ab*c/:
    Code at [0x469561c03720, 0x469561c03840):
        0x469561c03720: push %rbp
        0x469561c03721: mov %rsp, %rbp
        ...
        0x469561c03762: sub $0x40, %rsp
     == Matching ==
   0:OpBodyAlternativeBegin minimum size 2
        0x469561c03766: add $0x2, %esi
        0x469561c03769: cmp %edx, %esi
        0x469561c0376b: ja 0x469561c037fa
   1:OpTerm TypePatternCharacter 'a'
        0x469561c03771: movzx -0x2(%rdi,%rsi), %eax
        0x469561c03776: cmp $0x61, %eax
        0x469561c03779: jnz 0x469561c037e9
   2:OpTerm TypePatternCharacter 'b' {0,...} greedy
        0x469561c0377f: xor %r9d, %r9d
        0x469561c03782: cmp %edx, %esi
        0x469561c03784: jz 0x469561c037a2
        ...
        0x469561c0379d: jmp 0x469561c03782
        0x469561c037a2: mov %r9, 0x8(%rsp)
   3:OpTerm TypePatternCharacter 'c'
        0x469561c037a7: movzx -0x1(%rdi,%rsi), %eax
        0x469561c037ac: cmp $0x63, %eax
        0x469561c037af: jnz 0x469561c037d1
   4:OpBodyAlternativeEnd
        0x469561c037b5: add $0x40, %rsp
        ...
        0x469561c037cf: pop %rbp
        0x469561c037d0: ret
     == Backtracking ==
   4:OpBodyAlternativeEnd
   3:OpTerm TypePatternCharacter 'c'
   2:OpTerm TypePatternCharacter 'b' {0,...} greedy
        0x469561c037d1: mov 0x8(%rsp), %r9
        ...
        0x469561c037e4: jmp 0x469561c037a2
   1:OpTerm TypePatternCharacter 'a'
   0:OpBodyAlternativeBegin minimum size 2
        0x469561c037e9: mov %rsi, %rax
        ...
        0x469561c0382f: pop %rbp
        0x469561c03830: ret

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* runtime/RegExp.cpp:
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):
* yarr/YarrDisassembler.cpp: Added.
(JSC::Yarr::YarrDisassembler::indentString):
(JSC::Yarr::YarrDisassembler::YarrDisassembler):
(JSC::Yarr::YarrDisassembler::~YarrDisassembler):
(JSC::Yarr::YarrDisassembler::dump):
(JSC::Yarr::YarrDisassembler::dumpHeader):
(JSC::Yarr::YarrDisassembler::dumpVectorForInstructions):
(JSC::Yarr::YarrDisassembler::dumpForInstructions):
(JSC::Yarr::YarrDisassembler::dumpDisassembly):
* yarr/YarrDisassembler.h: Added.
(JSC::Yarr::YarrJITInfo::~YarrJITInfo):
(JSC::Yarr::YarrDisassembler::setStartOfCode):
(JSC::Yarr::YarrDisassembler::setForGenerate):
(JSC::Yarr::YarrDisassembler::setForBacktrack):
(JSC::Yarr::YarrDisassembler::setEndOfGenerate):
(JSC::Yarr::YarrDisassembler::setEndOfBacktrack):
(JSC::Yarr::YarrDisassembler::setEndOfCode):
(JSC::Yarr::YarrDisassembler::indentString):
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::generate):
(JSC::Yarr::YarrGenerator::backtrack):
(JSC::Yarr::YarrGenerator::YarrGenerator):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::jitCompile):
* yarr/YarrJIT.h:
* yarr/YarrPattern.cpp:
(JSC::Yarr::dumpCharacterClass):
(JSC::Yarr::PatternTerm::dump):
(JSC::Yarr::YarrPattern::dumpPatternString):
(JSC::Yarr::YarrPattern::dumpPattern):
* yarr/YarrPattern.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234713 268f45cc-cd09-0410-ab3c-d52691b4dbfc