WebKit.git
9 months ago[iOS] fast/forms/contenteditable-font-optical-size.html landed flaky.
repstein@apple.com [Tue, 29 Oct 2019 18:42:15 +0000 (18:42 +0000)]
[iOS] fast/forms/contenteditable-font-optical-size.html landed flaky.
https://bugs.webkit.org/show_bug.cgi?id=203371

Unreviewed Test Gardening.

Patch by Russell Epstein <repstein@apple.com> on 2019-10-29

* platform/ios-wk2/TestExpectations:

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

9 months agoLayout Test http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown...
katherine_cheney@apple.com [Tue, 29 Oct 2019 18:34:05 +0000 (18:34 +0000)]
Layout Test http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html is flaky (183093)
<https://bugs.webkit.org/show_bug.cgi?id=183093>
<rdar://problem/37964600>

Reviewed by John Wilander.

Flakiness no longer reproducible.

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

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

9 months agoImport css/css-sizing WPT
simon.fraser@apple.com [Tue, 29 Oct 2019 18:21:11 +0000 (18:21 +0000)]
Import css/css-sizing WPT
https://bugs.webkit.org/show_bug.cgi?id=203517

Reviewed by Tim Horton.

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/css/css-sizing/META.yml: Added.
* web-platform-tests/css/css-sizing/animation/height-interpolation-expected.txt: Added.
* web-platform-tests/css/css-sizing/animation/height-interpolation.html: Added.
* web-platform-tests/css/css-sizing/animation/max-height-interpolation-expected.txt: Added.
* web-platform-tests/css/css-sizing/animation/max-height-interpolation.html: Added.
* web-platform-tests/css/css-sizing/animation/max-width-interpolation-expected.txt: Added.
* web-platform-tests/css/css-sizing/animation/max-width-interpolation.html: Added.
* web-platform-tests/css/css-sizing/animation/min-height-interpolation-expected.txt: Added.
* web-platform-tests/css/css-sizing/animation/min-height-interpolation.html: Added.
* web-platform-tests/css/css-sizing/animation/min-width-interpolation-expected.txt: Added.
* web-platform-tests/css/css-sizing/animation/min-width-interpolation.html: Added.
* web-platform-tests/css/css-sizing/animation/w3c-import.log: Added.
* web-platform-tests/css/css-sizing/animation/width-interpolation-expected.txt: Added.
* web-platform-tests/css/css-sizing/animation/width-interpolation.html: Added.
* web-platform-tests/css/css-sizing/aspect-ratio-affects-container-width-when-height-changes-expected.txt: Added.
* web-platform-tests/css/css-sizing/aspect-ratio-affects-container-width-when-height-changes.html: Added.
* web-platform-tests/css/css-sizing/auto-scrollbar-inside-stf-abspos-expected.html: Added.
* web-platform-tests/css/css-sizing/auto-scrollbar-inside-stf-abspos.html: Added.
* web-platform-tests/css/css-sizing/block-fit-content-as-initial-expected.html: Added.
* web-platform-tests/css/css-sizing/block-fit-content-as-initial.html: Added.
* web-platform-tests/css/css-sizing/block-image-percentage-max-height-inside-inline-expected.xht: Added.
* web-platform-tests/css/css-sizing/block-image-percentage-max-height-inside-inline.html: Added.
* web-platform-tests/css/css-sizing/button-min-width-expected.txt: Added.
* web-platform-tests/css/css-sizing/button-min-width.html: Added.
* web-platform-tests/css/css-sizing/clone-intrinsic-size-expected.html: Added.
* web-platform-tests/css/css-sizing/clone-intrinsic-size.html: Added.
* web-platform-tests/css/css-sizing/clone-nowrap-intrinsic-size-bidi-expected.html: Added.
* web-platform-tests/css/css-sizing/clone-nowrap-intrinsic-size-bidi.html: Added.
* web-platform-tests/css/css-sizing/clone-nowrap-intrinsic-size-expected.html: Added.
* web-platform-tests/css/css-sizing/clone-nowrap-intrinsic-size.html: Added.
* web-platform-tests/css/css-sizing/dynamic-available-size-iframe-expected.html: Added.
* web-platform-tests/css/css-sizing/dynamic-available-size-iframe.html: Added.
* web-platform-tests/css/css-sizing/fit-content-percentage-padding-expected.txt: Added.
* web-platform-tests/css/css-sizing/fit-content-percentage-padding.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-001-expected.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-001.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-002-expected.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-002.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-003-expected.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-003.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-004-expected.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-004.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-005-expected.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-005.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-006-expected.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-006.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-007-expected.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-007.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-008-expected.html: Added.
* web-platform-tests/css/css-sizing/image-min-max-content-intrinsic-size-change-008.html: Added.
* web-platform-tests/css/css-sizing/image-percentage-max-height-in-anonymous-block-expected.xht: Added.
* web-platform-tests/css/css-sizing/image-percentage-max-height-in-anonymous-block.html: Added.
* web-platform-tests/css/css-sizing/inheritance-001-expected.txt: Added.
* web-platform-tests/css/css-sizing/inheritance-001.html: Added.
* web-platform-tests/css/css-sizing/inheritance-002-expected.txt: Added.
* web-platform-tests/css/css-sizing/inheritance-002.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-001-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-001.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-002-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-002.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-003-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-003.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-004-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-004.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-005-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-non-replaced-005.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-001-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-001.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-002-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-002.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-003-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-003.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-004-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-004.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-005-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-005.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-006-expected.html: Added.
* web-platform-tests/css/css-sizing/intrinsic-percent-replaced-006.html: Added.
* web-platform-tests/css/css-sizing/min-max-content-orthogonal-flow-crash-001-expected.txt: Added.
* web-platform-tests/css/css-sizing/min-max-content-orthogonal-flow-crash-001.html: Added.
* web-platform-tests/css/css-sizing/orthogonal-writing-mode-float-in-inline-expected.xht: Added.
* web-platform-tests/css/css-sizing/orthogonal-writing-mode-float-in-inline.html: Added.
* web-platform-tests/css/css-sizing/parsing/box-sizing-computed-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/box-sizing-computed.html: Added.
* web-platform-tests/css/css-sizing/parsing/box-sizing-invalid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/box-sizing-invalid.html: Added.
* web-platform-tests/css/css-sizing/parsing/box-sizing-valid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/box-sizing-valid.html: Added.
* web-platform-tests/css/css-sizing/parsing/height-invalid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/height-invalid.html: Added.
* web-platform-tests/css/css-sizing/parsing/height-valid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/height-valid.html: Added.
* web-platform-tests/css/css-sizing/parsing/max-height-computed-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/max-height-computed.html: Added.
* web-platform-tests/css/css-sizing/parsing/max-height-invalid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/max-height-invalid.html: Added.
* web-platform-tests/css/css-sizing/parsing/max-height-valid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/max-height-valid.html: Added.
* web-platform-tests/css/css-sizing/parsing/max-width-computed-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/max-width-computed.html: Added.
* web-platform-tests/css/css-sizing/parsing/max-width-invalid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/max-width-invalid.html: Added.
* web-platform-tests/css/css-sizing/parsing/max-width-valid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/max-width-valid.html: Added.
* web-platform-tests/css/css-sizing/parsing/min-height-computed-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/min-height-computed.html: Added.
* web-platform-tests/css/css-sizing/parsing/min-height-invalid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/min-height-invalid.html: Added.
* web-platform-tests/css/css-sizing/parsing/min-height-valid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/min-height-valid.html: Added.
* web-platform-tests/css/css-sizing/parsing/min-width-computed-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/min-width-computed.html: Added.
* web-platform-tests/css/css-sizing/parsing/min-width-invalid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/min-width-invalid.html: Added.
* web-platform-tests/css/css-sizing/parsing/min-width-valid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/min-width-valid.html: Added.
* web-platform-tests/css/css-sizing/parsing/w3c-import.log: Added.
* web-platform-tests/css/css-sizing/parsing/width-invalid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/width-invalid.html: Added.
* web-platform-tests/css/css-sizing/parsing/width-valid-expected.txt: Added.
* web-platform-tests/css/css-sizing/parsing/width-valid.html: Added.
* web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt: Added.
* web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html: Added.
* web-platform-tests/css/css-sizing/percentage-height-replaced-content-in-auto-cb-expected.txt: Added.
* web-platform-tests/css/css-sizing/percentage-height-replaced-content-in-auto-cb.html: Added.
* web-platform-tests/css/css-sizing/percentage-min-width-expected.txt: Added.
* web-platform-tests/css/css-sizing/percentage-min-width.html: Added.
* web-platform-tests/css/css-sizing/range-percent-intrinsic-size-1-expected.html: Added.
* web-platform-tests/css/css-sizing/range-percent-intrinsic-size-1.html: Added.
* web-platform-tests/css/css-sizing/range-percent-intrinsic-size-2-expected.html: Added.
* web-platform-tests/css/css-sizing/range-percent-intrinsic-size-2.html: Added.
* web-platform-tests/css/css-sizing/range-percent-intrinsic-size-2a-expected.html: Added.
* web-platform-tests/css/css-sizing/range-percent-intrinsic-size-2a.html: Added.
* web-platform-tests/css/css-sizing/slice-intrinsic-size-expected.html: Added.
* web-platform-tests/css/css-sizing/slice-intrinsic-size.html: Added.
* web-platform-tests/css/css-sizing/slice-nowrap-intrinsic-size-bidi-expected.html: Added.
* web-platform-tests/css/css-sizing/slice-nowrap-intrinsic-size-bidi.html: Added.
* web-platform-tests/css/css-sizing/slice-nowrap-intrinsic-size-expected.html: Added.
* web-platform-tests/css/css-sizing/slice-nowrap-intrinsic-size.html: Added.
* web-platform-tests/css/css-sizing/support/dynamic-available-size-iframe.html: Added.
* web-platform-tests/css/css-sizing/support/w3c-import.log: Added.
* web-platform-tests/css/css-sizing/table-percentage-max-width-beside-float-expected.txt: Added.
* web-platform-tests/css/css-sizing/table-percentage-max-width-beside-float.html: Added.
* web-platform-tests/css/css-sizing/table-percentage-min-width-below-float-expected.txt: Added.
* web-platform-tests/css/css-sizing/table-percentage-min-width-below-float.html: Added.
* web-platform-tests/css/css-sizing/table-percentage-min-width-beside-float-expected.txt: Added.
* web-platform-tests/css/css-sizing/table-percentage-min-width-beside-float.html: Added.
* web-platform-tests/css/css-sizing/w3c-import.log: Added.
* web-platform-tests/css/css-sizing/whitespace-and-break-expected.xht: Added.
* web-platform-tests/css/css-sizing/whitespace-and-break.html: Added.

LayoutTests:

* TestExpectations:
* platform/ios/TestExpectations:
* platform/ios/imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio-affects-container-width-when-height-changes-expected.txt: Added.
* platform/ios/imported/w3c/web-platform-tests/css/css-sizing/button-min-width-expected.txt: Added.

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

9 months agohttps://bugs.webkit.org/show_bug.cgi?id=203571
simon.fraser@apple.com [Tue, 29 Oct 2019 18:11:18 +0000 (18:11 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=203571
New Layout Test web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-crash.html is Missing Expectations

Unreviewed test gardening.

* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-crash-expected.txt: Added.

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

9 months agoUnreviewed, rolling out r251639.
tsavell@apple.com [Tue, 29 Oct 2019 17:33:43 +0000 (17:33 +0000)]
Unreviewed, rolling out r251639.

Caused flakey API failures for GetDisplayMediaTest.Constraints

Reverted changeset:

"Enforce user gesture for getUserMedia in case a previous
getUserMedia call was denied"
https://bugs.webkit.org/show_bug.cgi?id=203362
https://trac.webkit.org/changeset/251639

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

9 months agoUnreviewed, rolling out r251646.
tsavell@apple.com [Tue, 29 Oct 2019 17:28:50 +0000 (17:28 +0000)]
Unreviewed, rolling out r251646.

Caused flakey API failures for GetDisplayMediaTest.Constraints

Reverted changeset:

"Unreviewed build fix for !ENABLE(MEDIA_STREAM) builds"
https://bugs.webkit.org/show_bug.cgi?id=203362
https://trac.webkit.org/changeset/251646

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

9 months agoUnreviewed, rolling out r251594.
cdumez@apple.com [Tue, 29 Oct 2019 17:04:09 +0000 (17:04 +0000)]
Unreviewed, rolling out r251594.

Caused an API test failure

Reverted changeset:

"mp4 video element broken with service worker"
https://bugs.webkit.org/show_bug.cgi?id=184447
LayoutTests/imported/w3c:

https://trac.webkit.org/changeset/251594

Source/WebCore:

https://trac.webkit.org/changeset/251594

Source/WebKit:

https://trac.webkit.org/changeset/251594

LayoutTests:

https://trac.webkit.org/changeset/251594

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

9 months agoNotification permissions are not remembered for origins without port
cdumez@apple.com [Tue, 29 Oct 2019 16:57:09 +0000 (16:57 +0000)]
Notification permissions are not remembered for origins without port
https://bugs.webkit.org/show_bug.cgi?id=203537
<rdar://problem/55281080>

Reviewed by Brady Eidson.

Source/WebKit:

When WKSecurityOriginCreate() gets called with a port that is invalid, then pass
WTF::nullopt to construct the security origin instead of the invalid port.

The issue is that the port for security origins is optional internally. However,
our API (WKSecurityOriginGetPort() & WKSecurityOrigin.port) will return 0 when
there is no port. As a result, clients such as Safari sometimes pass 0 as port to construct
a new WKSecurityOriginRef().

This was causing issues with regards to notifications because Safari would construct
origins whose string representation looks like "https://www.apple.com:0" and it would
not match the "https://www.apple.com" we expect internally.

* Shared/API/c/WKSecurityOriginRef.cpp:
(WKSecurityOriginCreate):

Tools:

Add API test coverage.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit/WKSecurityOrigin.cpp: Added.
(TestWebKitAPI::TEST):

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

9 months agoUnreviewed, revert r251637 as it caused http/tests/lazyload/scroll-element-removed...
cdumez@apple.com [Tue, 29 Oct 2019 16:56:03 +0000 (16:56 +0000)]
Unreviewed, revert r251637 as it caused http/tests/lazyload/scroll-element-removed-from-document.html to crash
https://bugs.webkit.org/show_bug.cgi?id=203566

LayoutTests/imported/w3c:

* web-platform-tests/loading/lazyload/image-loading-lazy.tentative-expected.txt: Removed.
* web-platform-tests/loading/lazyload/image-loading-lazy.tentative.html:

Source/WebCore:

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
* dom/Document.h:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::didMoveToNewDocument):
* html/HTMLImageElement.h:
* html/HTMLImageElement.idl:
* html/LazyLoadImageObserver.cpp: Removed.
* html/LazyLoadImageObserver.h: Removed.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
* loader/ImageLoader.h:
* loader/cache/CachedImage.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::clientDefersImage const):
(WebCore::CachedResourceLoader::shouldDeferImageLoad const):
(WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
* loader/cache/CachedResourceLoader.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):

LayoutTests:

* TestExpectations:
* http/tests/lazyload/attribute-expected.txt: Removed.
* http/tests/lazyload/attribute.html: Removed.
* http/tests/lazyload/invisible-image-expected.txt: Removed.
* http/tests/lazyload/invisible-image.html: Removed.
* http/tests/lazyload/js-image-expected.txt: Removed.
* http/tests/lazyload/js-image.html: Removed.
* http/tests/lazyload/lazy-expected.txt: Removed.
* http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled-expected.txt: Removed.
* http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled.html: Removed.
* http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled-expected.txt: Removed.
* http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled.html: Removed.
* http/tests/lazyload/lazy.html: Removed.
* http/tests/lazyload/lazy2-expected.txt: Removed.
* http/tests/lazyload/placeholder.js: Removed.
* http/tests/lazyload/resources/lazy-load-in-iframe.html: Removed.
* http/tests/lazyload/scroll-element-moved-from-document-expected.txt: Removed.
* http/tests/lazyload/scroll-element-moved-from-document.html: Removed.
* http/tests/lazyload/scroll-element-removed-from-document-expected.txt: Removed.
* http/tests/lazyload/scroll-element-removed-from-document.html: Removed.
* http/tests/lazyload/scroll-expected.txt: Removed.
* http/tests/lazyload/scroll.html: Removed.
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:

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

9 months ago Removed duplicate email address.
katherine_cheney@apple.com [Tue, 29 Oct 2019 16:19:47 +0000 (16:19 +0000)]
   Removed duplicate email address.

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

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

9 months ago[Web Animations] Optimize blending for CSS Transitions
graouts@webkit.org [Tue, 29 Oct 2019 16:14:58 +0000 (16:14 +0000)]
[Web Animations] Optimize blending for CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=203561

Reviewed by Simon Fraser.

The work performed in KeyframeEffect::setAnimatedPropertiesInStyle() has a level of complexity warranted by the
flexibility of how keyframes can be specified via the Web Animations JS API. However, in the case of CSS Transitions,
we already know that there are only two keyframes, one where offset=0 and one where offset=1, and that only a single
CSS property is specified so we can simplify the process greatly.

To ensure we only perform this quicker blending operation for keyframes computed for a CSS Transition and that no
modification to the keyframes have been applied via the Web Animations JS API after the fact, we now keep track
of whether the blending keyframes (KeyframeList) were generated for a CSS Transition or a CSS Animation and only
use this information to decide whether we're blending for declarative animations.

* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::processKeyframes):
(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):
(WebCore::KeyframeEffect::setTarget):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
* animation/KeyframeEffect.h:

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

9 months agoUnreviewed, add missing platform-specific test expectations after r251686
wenson_hsieh@apple.com [Tue, 29 Oct 2019 16:09:10 +0000 (16:09 +0000)]
Unreviewed, add missing platform-specific test expectations after r251686

LayoutTests/imported/w3c:

Revert changes to these test expectations.

* web-platform-tests/html/dom/idlharness.https-expected.txt:

LayoutTests:

Add mac-wk2-specific baselines.

* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https.html: Removed.

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

9 months agoEdited email address for commiting.
katherine_cheney@apple.com [Tue, 29 Oct 2019 16:00:20 +0000 (16:00 +0000)]
Edited email address for commiting.

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

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

9 months agoUnreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.2 release
aperez@igalia.com [Tue, 29 Oct 2019 15:31:39 +0000 (15:31 +0000)]
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.2 release

.:

* Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

* wpe/NEWS: Add release notes for 2.27.2.

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

9 months agoUnreviewed test gardening; new iOS results for these now passing tests.
simon.fraser@apple.com [Tue, 29 Oct 2019 15:17:00 +0000 (15:17 +0000)]
Unreviewed test gardening; new iOS results for these now passing tests.

* platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt:
* platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt:
* platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt:
* platform/ios/fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt:

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

9 months agoRe-import the css/css-shapes WPT
simon.fraser@apple.com [Tue, 29 Oct 2019 14:50:07 +0000 (14:50 +0000)]
Re-import the css/css-shapes WPT
https://bugs.webkit.org/show_bug.cgi?id=203441

Reviewed by Tim Horton.
LayoutTests/imported/w3c:

Update css-shapes from e68120da0fb52f010f206f3ecc63cfa09885b0f4 (Wed Oct 23 13:18:06 2019 -0700).

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/css/css-shapes/META.yml: Added.
* web-platform-tests/css/css-shapes/OWNERS: Removed.
* web-platform-tests/css/css-shapes/animation/shape-image-threshold-interpolation-expected.txt: Added.
* web-platform-tests/css/css-shapes/animation/shape-image-threshold-interpolation.html: Added.
* web-platform-tests/css/css-shapes/animation/shape-margin-interpolation-expected.txt: Added.
* web-platform-tests/css/css-shapes/animation/shape-margin-interpolation.html: Added.
* web-platform-tests/css/css-shapes/animation/shape-outside-interpolation-expected.txt: Added.
* web-platform-tests/css/css-shapes/animation/shape-outside-interpolation.html: Added.
* web-platform-tests/css/css-shapes/animation/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/formatting-context/w3c-import.log.
* web-platform-tests/css/css-shapes/basic-shape-interpolation-expected.txt: Added.
* web-platform-tests/css/css-shapes/basic-shape-interpolation.html: Added.
* web-platform-tests/css/css-shapes/inheritance-expected.txt: Added.
* web-platform-tests/css/css-shapes/inheritance.html: Added.
* web-platform-tests/css/css-shapes/parsing/shape-image-threshold-computed-expected.txt: Added.
* web-platform-tests/css/css-shapes/parsing/shape-image-threshold-computed.html: Added.
* web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid-expected.txt:
* web-platform-tests/css/css-shapes/parsing/shape-image-threshold-invalid.html:
* web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid-expected.txt:
* web-platform-tests/css/css-shapes/parsing/shape-image-threshold-valid.html:
* web-platform-tests/css/css-shapes/parsing/shape-margin-computed-expected.txt: Added.
* web-platform-tests/css/css-shapes/parsing/shape-margin-computed.html: Added.
* web-platform-tests/css/css-shapes/parsing/shape-margin-invalid.html:
* web-platform-tests/css/css-shapes/parsing/shape-margin-valid.html:
* web-platform-tests/css/css-shapes/parsing/shape-outside-invalid-position.html:
* web-platform-tests/css/css-shapes/parsing/shape-outside-valid-position.html:
* web-platform-tests/css/css-shapes/parsing/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside-invalid-001.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-circle-002.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-circle-003.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-ellipse-001.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-ellipse-002.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-ellipse-003.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-ellipse-004.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-ellipse-005.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-ellipse-006.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-inset-001.html:
* web-platform-tests/css/css-shapes/shape-outside-invalid-inset-002.html:
* web-platform-tests/css/css-shapes/shape-outside/formatting-context/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/shape-box/shape-outside-box-002.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-box/shape-outside-box-003.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-box/shape-outside-box-004.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-box/shape-outside-box-006.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-box/shape-outside-box-007.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-box/shape-outside-box-008.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-box/shape-outside-box-009.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-box/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-002-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-002.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-003-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-003.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-004.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-005-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-005.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-006-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-006.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-007-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-007.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-008-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-008.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-009-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-009.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-010-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-010.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-011-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-011.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-012-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-012.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-013-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-013.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-014-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-014.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-015-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-015.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-016-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-016.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-000-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-000.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-001-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-001.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-002.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-003.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-004-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-004.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-005.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-006-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-006.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-007.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-008.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-009-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-009.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-010-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-010.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-011.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-012-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-012.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-013-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-013.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-014.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-015-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-015.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-016-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-016.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-017.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-018-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-018.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-019-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-019.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-020-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-020.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-021-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-021.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-022-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-022.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-023-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-023.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-024.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-025.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-026-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-026.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-027.html:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/support/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/shape-image/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-013.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-014.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-015.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-016.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-017.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-018.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-019.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-020.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-021.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-022.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-024.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-025.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-026.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-027.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-028.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-029.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-030-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-030.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-031-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-031.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/circle/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-013.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-014.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-015.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-016.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-017.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-018.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-019.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-020.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-021.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-022.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-023.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-024.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-025.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-030-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-030.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-031-expected.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-031.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/ellipse/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-010.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-011.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-012.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-013.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-014.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-015.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-028.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-029.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-030.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-crash-expected.html: Added.
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/shape-outside-inset-crash.html: Added.
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/inset/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-007.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-008.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-009.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-010.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-011.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-012.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-013.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-014.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-015.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-016.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-017.html:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-crash.html: Added.
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/polygon/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-margin-001.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-box-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-001.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-002.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-003.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-004.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-005.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-006.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-007.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-008.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-009.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-010.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-011.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-computed-shape-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-computed-shape-001.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-001.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-002.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-003.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-006.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-007.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-008.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-009.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-010.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-011.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-001.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-0010-expected.html: Added.
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-0010.html: Added.
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-002.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-003.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-004.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-005.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-006.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-007.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-008.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-009.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-polygon-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-polygon-001.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-polygon-002.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-polygon-003.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-polygon-005.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-polygon-006.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-001.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-box-pair-000-expected.txt:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-box-pair-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-inherit-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-initial-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-none-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-shape-notation-000.html:
* web-platform-tests/css/css-shapes/shape-outside/values/support/parsing-utils.js:
(setupFonts): Deleted.
* web-platform-tests/css/css-shapes/shape-outside/values/support/w3c-import.log:
* web-platform-tests/css/css-shapes/shape-outside/values/w3c-import.log:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-001-expected.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-001.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-002-expected.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-002.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-003-expected.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-003.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-004-expected.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-004.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-005-expected.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-005.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-006.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-007-expected.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-007.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-008.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html:
* web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html:
* web-platform-tests/css/css-shapes/spec-examples/support/rounded-triangle.svg:
* web-platform-tests/css/css-shapes/spec-examples/support/w3c-import.log:
* web-platform-tests/css/css-shapes/spec-examples/w3c-import.log:
* web-platform-tests/css/css-shapes/support/w3c-import.log:
* web-platform-tests/css/css-shapes/test-plan/index.html: Added.
* web-platform-tests/css/css-shapes/test-plan/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/values/support/w3c-import.log.
* web-platform-tests/css/css-shapes/w3c-import.log:

LayoutTests:

* TestExpectations:
* platform/ios/TestExpectations:

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

9 months ago[GTK][WPE] Fix non-unified build after r251691
aperez@igalia.com [Tue, 29 Oct 2019 14:36:32 +0000 (14:36 +0000)]
[GTK][WPE] Fix non-unified build after r251691
https://bugs.webkit.org/show_bug.cgi?id=203556

Reviewed by Žan Doberšek.

No new tests needed.

* bindings/js/ScriptModuleLoader.cpp:
(WebCore::rejectPromise): Add missing namespace in call to JSC::JSInternalPromise::create().

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

9 months ago[Picture-in-Picture Web API] Synchronize the attributes and properties of HTMLVideoEl...
commit-queue@webkit.org [Tue, 29 Oct 2019 14:22:47 +0000 (14:22 +0000)]
[Picture-in-Picture Web API] Synchronize the attributes and properties of HTMLVideoElementPictureInPicture
https://bugs.webkit.org/show_bug.cgi?id=203518

Patch by Peng Liu <peng.liu6@apple.com> on 2019-10-29
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/picture-in-picture-api-element-attributes.html

* Modules/pictureinpicture/HTMLVideoElementPictureInPicture.idl:
* html/HTMLAttributeNames.in:

LayoutTests:

* TestExpectations:
* media/picture-in-picture-api-element-attributes-expected.txt: Added.
* media/picture-in-picture-api-element-attributes.html: Added.
* platform/mac-wk2/TestExpectations:

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

9 months ago[SVG2] fill-opacity, stroke-opacity, stop-opacity and flood-opacity doe not support...
commit-queue@webkit.org [Tue, 29 Oct 2019 10:27:35 +0000 (10:27 +0000)]
[SVG2] fill-opacity, stroke-opacity, stop-opacity and flood-opacity doe not support percentage
https://bugs.webkit.org/show_bug.cgi?id=201731

Source/WebCore:

Patch by Dirk Schulze <krit@webkit.org> on 2019-10-29
Reviewed by Simon Fraser.

The CSS properties opacity, fill-opacity, stroke-opacity, stop-opacity, flood-opacity support
percentage in addition to number values.
Add percentage support.

Tests: fast/css/parsing-opacity.html
       fast/svg/parsing-fill-opacity.html
       fast/svg/parsing-flood-opacity.html
       fast/svg/parsing-stop-opacity.html
       fast/svg/parsing-stroke-opacity.html

* css/CSSProperties.json: opacity needs to use Opacity converter now.
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertOpacity): Clamp values to [0,1]
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue): Parse percentage values.

LayoutTests:

Test number and percentage values for opacity, fill-opacity, stroke-opacity, stop-opacity, flood-opacity.

Patch by Dirk Schulze <krit@webkit.org> on 2019-10-29
Reviewed by Simon Fraser.

* fast/css/parsing-opacity-expected.txt: Added.
* fast/css/parsing-opacity.html: Added.
* fast/svg/parsing-fill-opacity-expected.txt: Added.
* fast/svg/parsing-fill-opacity.html: Added.
* fast/svg/parsing-flood-opacity-expected.txt: Added.
* fast/svg/parsing-flood-opacity.html: Added.
* fast/svg/parsing-stop-opacity-expected.txt: Added.
* fast/svg/parsing-stop-opacity.html: Added.
* fast/svg/parsing-stroke-opacity-expected.txt: Added.
* fast/svg/parsing-stroke-opacity.html: Added.

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

9 months agoAdd CSS Masking and SVG 2 to feature list
commit-queue@webkit.org [Tue, 29 Oct 2019 10:15:37 +0000 (10:15 +0000)]
Add CSS Masking and SVG 2 to feature list
https://bugs.webkit.org/show_bug.cgi?id=186155

Patch by Dirk Schulze <krit@webkit.org> on 2019-10-29
Reviewed by Simon Fraser.

Add CSS Masking Level 1 and SVG 2 to feature list.

* features.json:

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

9 months agoRemove unnecessary #include <limits.h> header from Timer.cpp
commit-queue@webkit.org [Tue, 29 Oct 2019 04:08:10 +0000 (04:08 +0000)]
Remove unnecessary #include <limits.h> header from Timer.cpp
https://bugs.webkit.org/show_bug.cgi?id=203504

Patch by Daniel Bates <dabates@apple.com> on 2019-10-28
Reviewed by Alex Christensen.

Timer.cpp includes both <limits> and <limits.h>. The latter was added to fix a build issue in r30193 that
effected GCC 4.3 when Timer.cpp referenced UINT_MAX. Timer.cpp no longer references this constant and instead
uses the C++ std::numeric_limits equivalent. So, remove the #include <limits.h>.

* platform/Timer.cpp:

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

9 months agoReplace InteractionInformationAtPosition.nodeAtPositionIsFocusedElement with an eleme...
wenson_hsieh@apple.com [Tue, 29 Oct 2019 02:34:20 +0000 (02:34 +0000)]
Replace InteractionInformationAtPosition.nodeAtPositionIsFocusedElement with an element context
https://bugs.webkit.org/show_bug.cgi?id=203498

Reviewed by Tim Horton.

Refactors InteractionInformationAtPosition, such that it doesn't need a special flag to indicate whether there
is a focused element at the position. This is a followup to webkit.org/b/203264; no new tests, as there should
be no change in behavior.

* Shared/FocusedElementInformation.cpp:
(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):
* Shared/FocusedElementInformation.h:

Add an elementContext to FocusedElementInformation to represent the focused element; then, instead of checking
whether there is a focused element underneath the request position, simply check that the position information's
element context matches the FocusedElementInformation's element context.

Additionally, rename elementRect in FocusedElementInformation to interactionRect, to draw a distinction between
this rect and the new ElementContext's boundingRect.

* Shared/ios/InteractionInformationAtPosition.h:
* Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

Remove the nodeAtPositionIsFocusedElement flag.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]):
(-[WKContentView _zoomToRevealFocusedElement]):
(-[WKContentView _selectionClipRect]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

In various places that consult nodeAtPositionIsFocusedElement, instead check that the position information's
hit-tested element context is the same as the focused element, via FocusedElementInformation.

(-[WKContentView _didCommitLoadForMainFrame]):

Nuke the cached position information data upon navigation; without this tweak, we will fail when running several
iOS layout tests back-to-back, that tap in exactly the same location.

(rectToRevealWhenZoomingToFocusedElement):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):
(-[WKContentView rectForFocusedFormControlView:]):
(-[WKContentView _didChangeFocusedElementRect:toRect:]): Deleted.

Remove code to invalidate cached position information when changing the focused element rect.

* UIProcess/ios/forms/WKFormPopover.mm:
(-[WKRotatingPopover presentPopoverAnimated:]):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::positionInformation):
(WebKit::WebPage::getFocusedElementInformation):

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

9 months agohttp/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-w* are flaky...
katherine_cheney@apple.com [Tue, 29 Oct 2019 02:25:32 +0000 (02:25 +0000)]
http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-w* are flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=196269
<rdar://problem/49288612>

Reviewed by Alexey Proskuryakov.

Flakiness no longer reproducible.

* platform/ios-simulator-wk2/TestExpectations:
* platform/ios-wk2/TestExpectations:

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

9 months ago[JSC] Remove JSPromiseDeferred
ysuzuki@apple.com [Tue, 29 Oct 2019 01:37:12 +0000 (01:37 +0000)]
[JSC] Remove JSPromiseDeferred
https://bugs.webkit.org/show_bug.cgi?id=203400

Reviewed by Keith Miller.

Source/JavaScriptCore:

This patch optimizes the existing Promise usage in C++. We remove JSPromiseDeferred and JSInternalPromiseDeferred, use JSPromise and JSInternalPromise directly.
JSC now offers first `resolve` and `reject` operations to `JSPromise` without separating `resolve` and `reject` function from `JSPromise`. Then, we do not need
to have a tuple of these functions and promise, and we can just use `JSPromise::resolve` and `JSPromise::reject`. This removes unnecessary function allocations
and cell allocation for JSPromiseDeferred and makes API simple.

* API/JSAPIGlobalObject.mm:
(JSC::JSAPIGlobalObject::moduleLoaderImportModule):
(JSC::JSAPIGlobalObject::moduleLoaderFetch):
(JSC::JSAPIGlobalObject::loadAndEvaluateJSScriptModule):
* API/JSObjectRef.cpp:
(JSObjectMakeDeferredPromise):
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* jsc.cpp:
(GlobalObject::moduleLoaderImportModule):
(GlobalObject::moduleLoaderFetch):
(runJSC):
* runtime/Completion.cpp:
(JSC::rejectPromise):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::newPromiseCapabilityFunction const):
(JSC::JSGlobalObject::resolvePromiseFunction const):
(JSC::JSGlobalObject::rejectPromiseFunction const):
(JSC::JSGlobalObject::numberProtoToStringFunction const):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncImportModule):
* runtime/JSInternalPromise.h:
* runtime/JSInternalPromiseDeferred.cpp: Removed.
* runtime/JSInternalPromiseDeferred.h: Removed.
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::importModule):
(JSC::JSModuleLoader::resolve):
(JSC::JSModuleLoader::fetch):
(JSC::moduleLoaderParseModule):
* runtime/JSPromise.cpp:
(JSC::JSPromise::flags const):
(JSC::JSPromise::isHandled const):
(JSC::JSPromise::createDeferredData):
(JSC::JSPromise::resolvedPromise):
(JSC::callFunction):
(JSC::JSPromise::resolve):
(JSC::JSPromise::reject):
* runtime/JSPromise.h:
* runtime/JSPromiseDeferred.cpp: Removed.
* runtime/JSPromiseDeferred.h: Removed.
* runtime/PromiseTimer.cpp: Renamed from Source/JavaScriptCore/runtime/PromiseDeferredTimer.cpp.
(JSC::PromiseTimer::PromiseTimer):
(JSC::PromiseTimer::doWork):
(JSC::PromiseTimer::runRunLoop):
(JSC::PromiseTimer::addPendingPromise):
(JSC::PromiseTimer::hasPendingPromise):
(JSC::PromiseTimer::hasDependancyInPendingPromise):
(JSC::PromiseTimer::cancelPendingPromise):
(JSC::PromiseTimer::scheduleWorkSoon):
* runtime/PromiseTimer.h: Renamed from Source/JavaScriptCore/runtime/PromiseDeferredTimer.h.
(JSC::PromiseTimer::create):
* runtime/StringRecursionChecker.h:
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
* runtime/VM.h:
* wasm/js/JSWebAssembly.cpp:
(JSC::reject):
(JSC::webAssemblyModuleValidateAsyncInternal):
(JSC::webAssemblyCompileFunc):
(JSC::resolve):
(JSC::JSWebAssembly::webAssemblyModuleValidateAsync):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::JSWebAssembly::instantiate):
(JSC::webAssemblyModuleInstantinateAsyncInternal):
(JSC::JSWebAssembly::webAssemblyModuleInstantinateAsync):
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):
* wasm/js/JSWebAssembly.h:
* wasm/js/JSWebAssemblyCodeBlock.h:

Source/WebCore:

This patch removes PromiseExecutionScope. This assumed that promise operation cannot fail in main thread. But this is
wrong since any JS call can fail due to stack-overflow error. This patch makes things more robust by handling errors correctly.
And we remove JSPromiseDeferred and use JSPromise instead.

* bindings/js/JSCustomElementRegistryCustom.cpp:
(WebCore::whenDefinedPromise):
(WebCore::JSCustomElementRegistry::whenDefined):
* bindings/js/JSDOMConvertPromise.h:
(WebCore::Converter<IDLPromise<T>>::convert):
* bindings/js/JSDOMGlobalObject.cpp:
* bindings/js/JSDOMOperationReturningPromise.h:
(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callStatic):
* bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::promise const):
(WebCore::DeferredPromise::callFunction):
(WebCore::DeferredPromise::whenSettled):
(WebCore::rejectPromiseWithExceptionIfAny):
(WebCore::createDeferredPromise):
* bindings/js/JSDOMPromiseDeferred.h:
(WebCore::DeferredPromise::create):
(WebCore::DeferredPromise::DeferredPromise):
(WebCore::DeferredPromise::deferred const):
(WebCore::DeferredPromise::resolve):
(WebCore::DeferredPromise::reject):
(WebCore::DOMPromiseDeferredBase::DOMPromiseDeferredBase):
(WebCore::DOMPromiseDeferredBase::operator=):
(WebCore::DOMPromiseDeferredBase::reject):
(WebCore::DOMPromiseDeferredBase::rejectType):
(WebCore::DOMPromiseDeferredBase::promise const):
(WebCore::DOMPromiseDeferredBase::whenSettled):
(WebCore::DOMPromiseDeferred::resolve):
(WebCore::DOMPromiseDeferred<void>::resolve):
(WebCore::callPromiseFunction):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderImportModule):
(WebCore::tryAllocate):
(WebCore::isResponseCorrect):
(WebCore::handleResponseOnStreamingAction):
(WebCore::JSDOMWindowBase::compileStreaming):
(WebCore::JSDOMWindowBase::instantiateStreaming):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::fetch):
(WebCore::rejectPromise):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::addTimerSetNotification):
(WebCore::WorkerScriptController::removeTimerSetNotification):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateOperationTrampolineDefinition):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectInstanceFunctionCalculateSecretResult):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodePrototypeFunctionTestWorkerPromise):
(WebCore::jsTestNodePrototypeFunctionCalculateSecretResult):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionCalculateSecretResult):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunction):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgument):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithException):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgument):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunction):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithException):
(WebCore::jsTestObjPrototypeFunctionTestCustomPromiseFunction):
(WebCore::jsTestObjConstructorFunctionTestStaticCustomPromiseFunction):
* workers/WorkerRunLoop.cpp:
* worklets/WorkletScriptController.cpp:

LayoutTests:

* js/dom/promise-stack-overflow-expected.txt: Added.
* js/dom/promise-stack-overflow.html: Added.

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

9 months ago[GTK][WPE] Fix various non-unified build issues introduced since r251436
aperez@igalia.com [Tue, 29 Oct 2019 01:06:26 +0000 (01:06 +0000)]
[GTK][WPE] Fix various non-unified build issues introduced since r251436
https://bugs.webkit.org/show_bug.cgi?id=203492

Reviewed by Alex Christensen and Mark Lam.

Source/JavaScriptCore:

* bytecode/BytecodeIndex.cpp: Add missing inclusion of wtf/PrintStream.h
* bytecode/ICStatusUtils.h: Add missing inclusion if BytecodeIndex.h
* bytecode/InstructionStream.h: Ditto.
* debugger/DebuggerLocation.cpp: Add missing inclusion of JSCellInlines.h
* dfg/DFGLazyJSValue.h: Add missing inclusion of GPRInfo.h
* ftl/FTLOSREntry.h: Add missing inclusion of BytecodeIndex.h
* heap/CompleteSubspaceInlines.h: Add missing inclusions of CompleteSubspace.h and VM.h
* inspector/JavaScriptCallFrame.h:
(Inspector::JavaScriptCallFrame::thisValue const): Prepend namespace to the JSC::VM type.
* jit/JITDisassembler.h: Add missing inclusion of BytecodeIndex.h
* jit/JITWorklist.h: Ditto.
* runtime/JSImmutableButterfly.cpp: Add missing inclusion of ButterflyInlines.h
* runtime/ObjectInitializationScope.h: Add missing inclusion of VM.h
* runtime/StringRecursionChecker.h: Add missing inclusion of GetVM.h
* runtime/VMTraps.cpp: Add missing inclusion of CallFrameInlines.h
* tools/Integrity.cpp: Add missing inclusion of Integrity.h, HeapCellInlines.h, and
JSCellInlines.h
* wasm/WasmOperations.cpp: Add missing inclusion of JSCJSValueInlines.h and
JSGlobalObjectInlines.h
* wasm/WasmOperations.h: Add missing inclusion of IndexingType.h, JSCJSValue.h, and
WasmExceptionType.h; add forward declarations for JSArrray and Wasm::Signature.
* wasm/js/JSWebAssembly.cpp: Add missing inclusion of WasmOperations.h
* wasm/js/JSWebAssemblyHelpers.h: Add missing inclusion of Error.h and JSArrayBufferView.h

Source/WebCore:

No new tests needed.

* Modules/entriesapi/FileSystemEntry.cpp: Add missing inclusion of Document.h
* Modules/entriesapi/FileSystemFileEntry.cpp: Add missing inclusion of File.h
* Modules/fetch/FetchBodyOwner.cpp: Add missing inclusion of Document.h
* bindings/js/ExceptionDetails.h: Add missing inclusion of wtf/text/WTFString.h; remove
unneeded inclusion of wtf/Forward.h.
* css/ElementRuleCollector.cpp: Add missing inclusion of DocumentRuleSets.h and
styleResolver.h
* inspector/agents/page/PageDebuggerAgent.h: Add forward declaration for Frame.
* style/StyleInvalidator.cpp: Add missing inclusion of RuleSet.h
* style/StyleSharingResolver.cpp: Add missing inclusion of StyleResolver.h

Source/WebKit:

* UIProcess/InspectorTargetProxy.h: Add forward declaration of ProvisionalPageProxy.
* UIProcess/Plugins/PluginProcessProxy.cpp: Add missin inclusion of
WebProcessProxyMessages.h
* UIProcess/ProcessThrottler.cpp: Add missing inclusion of wtf/CompletionHandler.h
* UIProcess/ProvisionalPageProxy.h: Add missing inclusion of WebCore/FrameIdentifier.h
* UIProcess/WebPageInspectorController.h: Add missing inclusion of WebCore/PageIdentifier.h
* WebProcess/WebPage/WebPageInspectorTargetController.cpp: Add missing inclusion of
WebPageInspectorTargetFrontendChannel.h

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

9 months agoUpdate css/css-text-decor WPT
simon.fraser@apple.com [Tue, 29 Oct 2019 00:31:01 +0000 (00:31 +0000)]
Update css/css-text-decor WPT
https://bugs.webkit.org/show_bug.cgi?id=203532

Reviewed by Tim Horton.
LayoutTests/imported/w3c:

Import css/css-text-decor at e68120da0fb52f010f206f3ecc63cfa09885b0f4 (Wed Oct 23 13:18:06 2019 -0700)

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/css/css-text-decor/META.yml: Added.
* web-platform-tests/css/css-text-decor/OWNERS: Removed.
* web-platform-tests/css/css-text-decor/inheritance-expected.txt: Added.
* web-platform-tests/css/css-text-decor/inheritance.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-color-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-color-computed.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-color-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-color-invalid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-color-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-color-valid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-computed.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-invalid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-line-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-line-computed.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-line-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-line-invalid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-line-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-line-valid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-shorthand-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-shorthand.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-skip-ink-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-skip-ink-computed.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-skip-ink-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-skip-ink-invalid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-skip-ink-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-skip-ink-valid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-style-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-style-computed.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-style-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-style-invalid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-style-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-style-valid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-decoration-valid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-shadow-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-shadow-computed.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-shadow-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-shadow-invalid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-shadow-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-shadow-valid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-underline-position-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-underline-position-computed.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-underline-position-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-underline-position-invalid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/text-underline-position-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/parsing/text-underline-position-valid.html: Added.
* web-platform-tests/css/css-text-decor/parsing/w3c-import.log: Added.
* web-platform-tests/css/css-text-decor/text-decoration-color.html:
* web-platform-tests/css/css-text-decor/text-decoration-line-010-expected.xht:
* web-platform-tests/css/css-text-decor/text-decoration-line-010.xht:
* web-platform-tests/css/css-text-decor/text-decoration-line-011-expected.xht:
* web-platform-tests/css/css-text-decor/text-decoration-line-011.xht:
* web-platform-tests/css/css-text-decor/text-decoration-line-012-expected.xht:
* web-platform-tests/css/css-text-decor/text-decoration-line-012.xht:
* web-platform-tests/css/css-text-decor/text-decoration-line-013-expected.xht:
* web-platform-tests/css/css-text-decor/text-decoration-line-013.xht:
* web-platform-tests/css/css-text-decor/text-decoration-line-recalc-expected.html:
* web-platform-tests/css/css-text-decor/text-decoration-line-recalc.html:
* web-platform-tests/css/css-text-decor/text-decoration-line.html:
* web-platform-tests/css/css-text-decor/text-decoration-propagation-shadow-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-propagation-shadow.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-serialization.tentative-expected.txt:
* web-platform-tests/css/css-text-decor/text-decoration-serialization.tentative.html:
* web-platform-tests/css/css-text-decor/text-decoration-shorthands-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-shorthands-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-shorthands-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-shorthands-002.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-002.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-003-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-003.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-004-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-004.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-computed.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-initial-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-initial.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-linethrough-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-linethrough-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-overline-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-overline-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-scroll-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-scroll-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-underline-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-underline-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-valid.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-001.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-002.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-underline-position-horizontal-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-underline-position-horizontal.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-underline-position-vertical-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-underline-position-vertical-ja-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-underline-position-vertical-ja.html: Added.
* web-platform-tests/css/css-text-decor/text-decoration-underline-position-vertical.html: Added.
* web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-001-expected.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-001.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-002-expected.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-002.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-001-expected.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-001.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-002-expected.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-002.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-001-expected.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-001.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-002-expected.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-002.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-001-expected.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-001.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-002-expected.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-002.xht:
* web-platform-tests/css/css-text-decor/text-emphasis-style-006-expected.html:
* web-platform-tests/css/css-text-decor/text-emphasis-style-007-expected.html:
* web-platform-tests/css/css-text-decor/text-emphasis-style-008-expected.html:
* web-platform-tests/css/css-text-decor/text-emphasis-style-008.html:
* web-platform-tests/css/css-text-decor/text-emphasis-style-010-expected.html:
* web-platform-tests/css/css-text-decor/text-emphasis-style-021-expected.html:
* web-platform-tests/css/css-text-decor/text-emphasis-unrepresentable-characters-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-emphasis-unrepresentable-characters.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-001.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-002.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-computed-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-computed.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-initial-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-initial.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-invalid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-invalid.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-scroll-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-scroll-001.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-valid-expected.txt: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-valid.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-vertical-001-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-vertical-001.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-vertical-002-expected.html: Added.
* web-platform-tests/css/css-text-decor/text-underline-offset-vertical-002.html: Added.
* web-platform-tests/css/css-text-decor/w3c-import.log:

LayoutTests:

Mark tests as failing.

* TestExpectations:

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

9 months ago[iOS] Fix sandbox violations
pvollan@apple.com [Tue, 29 Oct 2019 00:21:53 +0000 (00:21 +0000)]
[iOS] Fix sandbox violations
https://bugs.webkit.org/show_bug.cgi?id=203505

Reviewed by Brent Fulgham.

Running layout tests shows that allowing mach lookup is needed for a set of services which was previously denied.
This patch add rules for allowing these services again. The service 'com.apple.logd.events' is still denied, since
it has not been observed to be in use.

No new tests, covered by existing tests.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

9 months agoUnreviewed, rolling out r251675.
achristensen@apple.com [Tue, 29 Oct 2019 00:09:41 +0000 (00:09 +0000)]
Unreviewed, rolling out r251675.

Broke some builds

Reverted changeset:

"Remove unused WKWebsiteDataStore setter SPI"
https://bugs.webkit.org/show_bug.cgi?id=203114
https://trac.webkit.org/changeset/251675

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

9 months agoAdd bindings support for the enterkeyhint HTML attribute
wenson_hsieh@apple.com [Mon, 28 Oct 2019 23:56:14 +0000 (23:56 +0000)]
Add bindings support for the enterkeyhint HTML attribute
https://bugs.webkit.org/show_bug.cgi?id=203440

Reviewed by Ryosuke Niwa.

Source/WebCore:

Work towards support for the enterkeyhint attribute. This patch introduces the new attribute to HTMLElement's
IDL; see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-enterkeyhint-attribute
for more information. This version of the spec was last updated October 25, 2019 (at time of writing).

Test: fast/forms/enterkeyhint-attribute-values.html

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* html/EnterKeyHint.cpp: Added.

Add a new helper file that declares a new EnterKeyHint enum type, as well as helper functions to map between
attribute values and EnterKeyHint values.

(WebCore::enterKeyHintForAttributeValue):
(WebCore::attributeValueForEnterKeyHint):
* html/EnterKeyHint.h: Added.
* html/HTMLAttributeNames.in:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::canonicalEnterKeyHint const):

Returns the canonical EnterKeyHint enum value, by inspecting the "enterkeyhint" attribute value.

(WebCore::HTMLElement::enterKeyHint const):
(WebCore::HTMLElement::setEnterKeyHint):

Implement enterKeyHint. Since enterkeyhint is a reflected HTML attribute with enumerated values, the setter sets
the attribute value and the getter returns the "canonicalized" attribute value.

* html/HTMLElement.h:
* html/HTMLElement.idl:

Add the new attribute. Note that this isn't marked as [Reflect] in IDL, since doing so would generate incorrect
bindings code. This is because we don't support reflection for enumerated attributes in our bindings generator
yet, so for now, we just match `HTMLInputElement.type` and `HTMLElement.inputMode`.

* page/Settings.yaml:

Add a new runtime switch to guard the enterkeyhint attribute.

Source/WebKit:

Add a new runtime switch for the enterkeyhint attribute, and enable it by default on macOS and iOS.

* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.h:

LayoutTests:

* fast/forms/enterkeyhint-attribute-values-expected.txt: Added.
* fast/forms/enterkeyhint-attribute-values.html: Added.

Add a new layout test to exercise the new attribute (including case sensitivity, the default value, unknown
values, all known value types, and different types of elements).

* platform/ios-wk2/TestExpectations:
* platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
* platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt: Added.
* platform/ios-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
* platform/mac-wk2/TestExpectations:
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt: Added.
* platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:

Add some new baselines for some existing layout tests.

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

9 months agoCorrecting expectations after r251666
tsavell@apple.com [Mon, 28 Oct 2019 23:55:18 +0000 (23:55 +0000)]
Correcting expectations after r251666
https://bugs.webkit.org/show_bug.cgi?id=203501

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

9 months ago[JSC] Lexer flags should be an OptionSet
ross.kirsling@sony.com [Mon, 28 Oct 2019 23:42:05 +0000 (23:42 +0000)]
[JSC] Lexer flags should be an OptionSet
https://bugs.webkit.org/show_bug.cgi?id=203032

Reviewed by Yusuke Suzuki.

LexerFlags has an annoyingly misspelled value LexexFlagsDontBuildKeywords;
let's use this as an opportunity to modernize this enum.

* parser/ASTBuilder.h:
* parser/Lexer.cpp:
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):
(JSC::Lexer<CharacterType>::parseIdentifierSlowCase):
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
* parser/Lexer.h:
(JSC::Lexer<T>::lexExpectIdentifier):
(JSC::Lexer<T>::lex):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseMemberExpression):
* parser/Parser.h:
(JSC::Parser::next):
(JSC::Parser::nextWithoutClearingLineTerminator):
(JSC::Parser::nextExpectIdentifier):
(JSC::Parser::consume):
* parser/SyntaxChecker.h:

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

9 months agoediting/firstPositionInNode-crash.html in crashing in Debug
cdumez@apple.com [Mon, 28 Oct 2019 23:29:25 +0000 (23:29 +0000)]
editing/firstPositionInNode-crash.html in crashing in Debug
https://bugs.webkit.org/show_bug.cgi?id=203520

Reviewed by Ryosuke Niwa.

If positionInParentBeforeNode / positionInParentAfterNode on a node and editingIgnoresContent()
returns true for this node's parent, keep traversing ancestors until we find one for which
editingIgnoresContent() returns false.

No new tests, covered by editing/firstPositionInNode-crash.html.

* dom/Position.cpp:
(WebCore::positionInParentBeforeNode):
(WebCore::positionInParentAfterNode):
* dom/Position.h:

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

9 months agoWeb Inspector: Right-clicking in color picker should not select color
nvasilyev@apple.com [Mon, 28 Oct 2019 23:24:48 +0000 (23:24 +0000)]
Web Inspector: Right-clicking in color picker should not select color
https://bugs.webkit.org/show_bug.cgi?id=203434

Reviewed by Devin Rousso.

* UserInterface/Views/ColorSquare.js:
(WI.ColorSquare.prototype._handleMousedown):

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

9 months agoHidden framesets should provide default edgeInfo value
zalan@apple.com [Mon, 28 Oct 2019 23:09:39 +0000 (23:09 +0000)]
Hidden framesets should provide default edgeInfo value
https://bugs.webkit.org/show_bug.cgi?id=203506
<rdar://problem/56233726>

Reviewed by Simon Fraser.

Source/WebCore:

The grid information (and certain associated structures e.g. edegeInfo) for a frameset is updated through the layout() call.
When the used height/width computes to zero on a frameset child (frame or nested frameset), we don't run layout on the renderer thus
hidden nested framesets can only provide the default edge info.
This patch changes this behaviour and we now call layout on those hidden renderers the same way we do it on iOS.

Test: fast/frames/hidden-frameset.html

* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::edgeInfo const):

LayoutTests:

* fast/frames/hidden-frameset-expected.txt: Added.
* fast/frames/hidden-frameset.html: Added.

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

9 months agoAdded myself as a committer.
katherine_cheney@apple.com [Mon, 28 Oct 2019 22:41:24 +0000 (22:41 +0000)]
Added myself as a committer.

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

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

9 months agoDrop code for X-Temp-Tablet HTTP header experiment
cdumez@apple.com [Mon, 28 Oct 2019 22:10:19 +0000 (22:10 +0000)]
Drop code for X-Temp-Tablet HTTP header experiment
https://bugs.webkit.org/show_bug.cgi?id=203524
<rdar://problem/55791195>

Reviewed by Ryosuke Niwa.

* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::CachedResourceLoader):
(WebCore::CachedResourceLoader::requestResource):
* loader/cache/CachedResourceLoader.h:

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

9 months agoUpdate html/semantics/forms WPT tests from upstream
cdumez@apple.com [Mon, 28 Oct 2019 22:07:55 +0000 (22:07 +0000)]
Update html/semantics/forms WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=203499

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Re-sync html/semantics/forms WPT tests from upstream 23c1462333cb99f.

* resources/import-expectations.json:
* web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-2-expected.txt: Added.
* web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-2.html: Added.
* web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3-expected.txt: Added.
* web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html: Added.
* web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-expected.txt: Added.
* web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit.html: Added.
* web-platform-tests/html/semantics/forms/form-submission-0/resources/form-submission.py: Added.
(main):
* web-platform-tests/html/semantics/forms/form-submission-0/resources/w3c-import.log:
* web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body.html:
* web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
* web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html:
* web-platform-tests/html/semantics/forms/the-input-element/range-setattribute-value-expected.html: Added.
* web-platform-tests/html/semantics/forms/the-input-element/range-setattribute-value.html: Added.
* web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:

LayoutTests:

* TestExpectations:
Skip new ref-test that is failing.

* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
Baseline existing WPT test.

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

9 months agoRemove unused _WKProcessPoolConfiguration SPI
achristensen@apple.com [Mon, 28 Oct 2019 21:57:39 +0000 (21:57 +0000)]
Remove unused _WKProcessPoolConfiguration SPI
https://bugs.webkit.org/show_bug.cgi?id=203066

Reviewed by Youenn Fablet.

Source/WebKit:

After rdar://problem/56260478 this is not used, so away it goes!

* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const): Deleted.
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* NetworkProcess/cocoa/NetworkSessionCocoa.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::globalCTDataConnectionServiceType): Deleted.
(WebKit::NetworkSessionCocoa::ctDataConnectionServiceType const): Deleted.
(WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType): Deleted.
* NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorCTDataConnectionServiceType):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration suppressesConnectionTerminationOnSystemChange]): Deleted.
(-[_WKProcessPoolConfiguration setSuppressesConnectionTerminationOnSystemChange:]): Deleted.
(-[_WKProcessPoolConfiguration CTDataConnectionServiceType]): Deleted.
(-[_WKProcessPoolConfiguration setCTDataConnectionServiceType:]): Deleted.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::paymentCoordinatorCTDataConnectionServiceType):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm:
(TEST):

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

9 months agoRemove unused WKWebsiteDataStore setter SPI
achristensen@apple.com [Mon, 28 Oct 2019 21:52:07 +0000 (21:52 +0000)]
Remove unused WKWebsiteDataStore setter SPI
https://bugs.webkit.org/show_bug.cgi?id=203114

Reviewed by Anders Carlsson.

They have been replaced by _WKWebsiteDataStoreConfiguration SPI which was adopted in rdar://problem/56349165

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _setBoundInterfaceIdentifier:]): Deleted.
(-[WKWebsiteDataStore _boundInterfaceIdentifier]): Deleted.
(-[WKWebsiteDataStore _setAllowsCellularAccess:]): Deleted.
(-[WKWebsiteDataStore _allowsCellularAccess]): Deleted.
(-[WKWebsiteDataStore _setProxyConfiguration:]): Deleted.
(-[WKWebsiteDataStore _proxyConfiguration]): Deleted.
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::setBoundInterfaceIdentifier): Deleted.
(WebKit::WebsiteDataStore::setAllowsCellularAccess): Deleted.
(WebKit::WebsiteDataStore::setProxyConfiguration): Deleted.

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

9 months agoFix a bug that cannot unhide a platform.
dewei_zhu@apple.com [Mon, 28 Oct 2019 21:46:29 +0000 (21:46 +0000)]
Fix a bug that cannot unhide a platform.
https://bugs.webkit.org/show_bug.cgi?id=203521

Reviewed by Ryosuke Niwa.

Before this change, the there is no value in POST when 'hidden' checkbox is unchecked.
Then the update will fail because platform_hidden cannot be NULL.

* public/admin/platforms.php: Adapted 'update_boolean_field'.
* public/admin/triggerables.php: Adapted 'update_boolean_field'.
* public/include/admin-header.php: Added 'update_boolean_field' helper function to set explict
boolean value for update.

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

9 months agoExpose _printOperationWithPrintInfo: SPI as API
beidson@apple.com [Mon, 28 Oct 2019 21:42:43 +0000 (21:42 +0000)]
Expose _printOperationWithPrintInfo: SPI as API
<rdar://problem/36557179> and https://bugs.webkit.org/show_bug.cgi?id=203496

Reviewed by Andy Estes.

Source/WebKit:

* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView printOperationWithPrintInfo:]):
(-[WKWebView _printOperationWithPrintInfo:]):

Tools:

* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController printWebView:]):

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

9 months agoLayout Test http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated...
katherine_cheney@apple.com [Mon, 28 Oct 2019 21:38:26 +0000 (21:38 +0000)]
Layout Test http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=203491
<rdar://problem/56674176>

Reviewed by Chris Dumez.

No new tests, this change is tested by the existing resourceLoadStatistics
tests.

This test started flaking when a new memory store was being created
between tests to maintain consistency. The call to grandfatherExistingWebsiteData
from populateMemoryStoreFromDisk in the persistent storage was
async, causing a race condition that led to occasional failures.
Adding a completion handler and changing the callsite of
populateMemoryStoreFromDisk should fix this problem.

* NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp:
(WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage):
* NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h:
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
The persistent store in the databaseEnabled case was never being used
and is unnecessary.

(WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk):
Since persistent storage only exists when using the memory store,
populateMemoryStoreFromDisk should check if
m_persistentStorage has been initialized.

* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setUseITPDatabase):
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::recreateResourceLoadStatisticStore):
* NetworkProcess/NetworkSession.h:

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

9 months ago[JSC] Optimize Promise runtime functions
ysuzuki@apple.com [Mon, 28 Oct 2019 21:13:57 +0000 (21:13 +0000)]
[JSC] Optimize Promise runtime functions
https://bugs.webkit.org/show_bug.cgi?id=203454

Reviewed by Keith Miller.

JSTests:

* microbenchmarks/promise-reject.js: Added.
* microbenchmarks/promise-resolve.js: Added.

Source/JavaScriptCore:

This patch optimizes Promise runtime functions a bit.

1. Add fast paths to Promise.resolve / Promise.reject.
2. Remove state check in async-functions. Unlike generators, async-function's next function is not exposed to users.
   It is called by runtime so we can control state perfectly.
3. Add "enqueueJob" name to make sampling profiler work for this function.
4. Make Promise/InternalPromise constructor inlinable size

                                      ToT                     Patched

    promise-creation-many       25.5794+-0.3681     ^     22.5410+-0.3229        ^ definitely 1.1348x faster
    promise-resolve             32.3793+-0.4252     ^      9.4219+-0.1114        ^ definitely 3.4366x faster
    promise-reject             108.5968+-0.7741     ^     36.9383+-0.3770        ^ definitely 2.9400x faster

* builtins/AsyncFunctionPrototype.js:
(globalPrivate.asyncFunctionResume):
* builtins/PromiseConstructor.js:
(reject):
(resolve):
(nakedConstructor.Promise.reject):
(nakedConstructor.Promise):
(nakedConstructor.InternalPromise.reject):
(nakedConstructor.InternalPromise):
(nakedConstructor.Promise.resolve): Deleted.
(nakedConstructor.InternalPromise.resolve): Deleted.
* builtins/PromiseOperations.js:
(globalPrivate.newPromiseCapability.resolve):
(globalPrivate.newPromiseCapability.reject):
(globalPrivate.newPromiseCapability):
(globalPrivate.promiseResolveSlow):
(globalPrivate.promiseRejectSlow):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):

LayoutTests:

* inspector/console/message-stack-trace-expected.txt:

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

9 months agoresults.webkit.org: Show results which are missing expectations
jbedard@apple.com [Mon, 28 Oct 2019 20:50:47 +0000 (20:50 +0000)]
results.webkit.org: Show results which are missing expectations
https://bugs.webkit.org/show_bug.cgi?id=203494
<rdar://problem/56436643>

Reviewed by Aakash Jain.

* resultsdbpy/resultsdbpy/view/static/css/timeline.css:
(.dot.warning): Add warning dot with dark-orange color.
* resultsdbpy/resultsdbpy/view/static/js/expectations.js:
(Expectations.colorMap): Add warning.
(Expectations.failureTypes): Ditto.
(Expectations.failureTypeMap): Ditto.
(Expectations.symbolMap): Ditto.
* resultsdbpy/resultsdbpy/view/static/js/timeline.js:
(Legend): Add warning bubble.

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

9 months ago[JSC] Use FTLOutput::callWithoutSideEffects if operation does not have side effects
ysuzuki@apple.com [Mon, 28 Oct 2019 20:44:03 +0000 (20:44 +0000)]
[JSC] Use FTLOutput::callWithoutSideEffects if operation does not have side effects
https://bugs.webkit.org/show_bug.cgi?id=203485

Reviewed by Mark Lam.

This makes Call's Effect none, and encourages optimizations around it.

* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::jsValueToStrictInt52):

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

9 months agoProperties that take <position> should not accept 3 values
simon.fraser@apple.com [Mon, 28 Oct 2019 20:32:16 +0000 (20:32 +0000)]
Properties that take <position> should not accept 3 values
https://bugs.webkit.org/show_bug.cgi?id=189142
LayoutTests/imported/w3c:

<rdar://problem/44110851>

Reviewed by Antti Koivisto.

New PASS results.

* web-platform-tests/css/css-images/parsing/gradient-position-invalid-expected.txt:
* web-platform-tests/css/css-images/parsing/object-position-invalid-expected.txt:
* web-platform-tests/css/css-shapes/parsing/shape-outside-invalid-position-expected.txt:

Source/WebCore:

Reviewed by Antti Koivisto.

The resolution in https://github.com/w3c/csswg-drafts/issues/2140 changed the syntax for <position>,
disallowing the 3-value syntax. This is used in object-position, gradients and shapes. background-position
continues to use the old syntax.

Fix CSS parsing accordingly.

Tested by css-images WPT, by shapes tests, and object-position tests.

* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumePerspectiveOrigin):
(WebCore::consumeBasicShapeCircle):
(WebCore::consumeBasicShapeEllipse):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeBackgroundPosition):
(WebCore::CSSPropertyParser::consumeBackgroundShorthand):
* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::backgroundPositionFromThreeValues):
(WebCore::CSSPropertyParserHelpers::positionFromFourValues):
(WebCore::CSSPropertyParserHelpers::consumePosition):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):
(WebCore::CSSPropertyParserHelpers::positionFromThreeOrFourValues): Deleted.
* css/parser/CSSPropertyParserHelpers.h:

LayoutTests:

Reviewed by Antti Koivisto.

Land some FAIL results for these shapes tests. They should get removed when
the css/css-shapes WPT are imported (webkit.org/b/203441), though the WPT
haven't been updated for the new syntax either.

* css3/shapes/shape-outside/values/shape-outside-circle-002-expected.txt:
* css3/shapes/shape-outside/values/shape-outside-circle-004-expected.txt:
* css3/shapes/shape-outside/values/shape-outside-ellipse-002-expected.txt:
* css3/shapes/shape-outside/values/shape-outside-ellipse-004-expected.txt:
* fast/css/object-position/parsing-object-position-expected.txt:
* fast/css/object-position/parsing-object-position.html: Remove the invalid position test.
* fast/shapes/parsing/parsing-shape-outside-expected.txt:
* fast/shapes/parsing/parsing-test-utils.js:  Remove the invalid position tests.

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

9 months agodumpSpeculation in SpeculatedType.cpp prints to the wrong stream and has wrong capita...
commit-queue@webkit.org [Mon, 28 Oct 2019 20:21:47 +0000 (20:21 +0000)]
dumpSpeculation in SpeculatedType.cpp prints to the wrong stream and has wrong capitalization for NaN
https://bugs.webkit.org/show_bug.cgi?id=203486

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2019-10-28
Reviewed by Antti Koivisto.

* bytecode/SpeculatedType.cpp:
(JSC::dumpSpeculation):

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

9 months agoTwo imported tests from r251591 are failing
tsavell@apple.com [Mon, 28 Oct 2019 20:09:27 +0000 (20:09 +0000)]
Two imported tests from r251591 are failing
https://bugs.webkit.org/show_bug.cgi?id=203501

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

9 months ago[iOS] 3 editing/pasteboard/smart-paste-paragraph-* tests are flaky
wenson_hsieh@apple.com [Mon, 28 Oct 2019 19:58:02 +0000 (19:58 +0000)]
[iOS] 3 editing/pasteboard/smart-paste-paragraph-* tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=203264
<rdar://problem/56512107>

Reviewed by Tim Horton.

Fixes several flaky layout tests that exercise a corner case in our logic for caching position information
responses in the UI process. When focusing an element via a tap, we send a position information request for the
tap location in -_webTouchEventsRecognized:. After the web process computes the information and hands it back to
the UI process, we cache this in WKContentView's _positionInformation.

However, at the time of computing the request, the tapped element has not been focused yet, so the value of the
position information's nodeAtPositionIsFocusedElement flag is false. After the tap is recognized, we'll then
focus the element, such that if a subsequent position information request were to arrive at the same location,
it would have a nodeAtPositionIsFocusedElement flag set to true.

In this state, if the user taps _exactly_ at the same location again, UIKit (through text interaction gestures)
will ask us for information at the same point; we will end up using the cached information, for which
nodeAtPositionIsFocusedElement is false, causing us to incorrectly prevent the text interaction. In this
particular case, we fail to select text via a double tap gesture.

To address this, we invalidate the cached position information in the UI process whenever the focused element
rect changes (e.g. when the focused element changes); the only exception to this is when the previously cached
position information was not over the focused element, and the new focused element rect is empty, in which case
the value of nodeAtPositionIsFocusedElement is guaranteed to have not changed.

While this may potentially leads to an additional synchronous position information request when tapping at the
same location after focusing an element, this is very difficult to achieve in practice, since the tap location
would need to be _exactly_ at the same location.

No new test, since this is exercised by existing flaky layout tests.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):

Also, add a FIXME about how we clear out surprisingly little of _focusedElementInformation when blurring the
focused element.

(-[WKContentView _didChangeFocusedElementRect:toRect:]):

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

9 months agoFlaky Test: imported/w3c/web-platform-tests/css/css-position/position-absolute-crash...
simon.fraser@apple.com [Mon, 28 Oct 2019 19:52:54 +0000 (19:52 +0000)]
Flaky Test: imported/w3c/web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html
https://bugs.webkit.org/show_bug.cgi?id=203473
https://bugs.webkit.org/show_bug.cgi?id=203474

Unreviewed test gardening.

Add missing results (missing because these tests assert in debug).

* web-platform-tests/css/css-position/position-absolute-container-dynamic-002-expected.txt: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-005-expected.txt: Added.

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

9 months agoStorage Access API: Make the API work with the experimental 3rd-party cookie blocking
wilander@apple.com [Mon, 28 Oct 2019 19:45:03 +0000 (19:45 +0000)]
Storage Access API: Make the API work with the experimental 3rd-party cookie blocking
https://bugs.webkit.org/show_bug.cgi?id=203428
<rdar://problem/56626949>

Reviewed by Alex Christensen.

Source/WebKit:

Tests: http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking.html
       http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking.html
       http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html
       http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie.html

This patch adds Storage Access API support for the experimental 3rd-party cookie blocking that
landed in <https://trac.webkit.org/changeset/251467>.

There are three policies at play because it can be changed with the experimental setting:
1. The underlying cookie policy.
2. Shipping ITP.
3. The off by default, experimental 3rd-party cookie blocking.

To support them all, a CookieAccess enum was added to encode how the API should respond.
The enum has these values:
CannotRequest - This third-party cannot request storage access based on the current policy.
BasedOnCookiePolicy – This third-party should be treated according to the underlying cookie policy.
OnlyIfGranted – This third-party can and must get access through the Storage Access API.

Here's the truth table I used to work through the logic for both
document.hasStorageAccess() and document.requestStorageAccess():

Access  | Is        | User        | Has    | 3rd-party    |        |
granted | prevalent | interaction | cookie | cookie block | RESULT |
-------------------------------------------------------------------
|       |           |             |        |              | false  |
-------------------------------------------------------------------
|       |           |             |        | true         | false  |
-------------------------------------------------------------------
|       |           |             | true   |              | true   |
-------------------------------------------------------------------
|       |           |             | true   | true         | false  |
-------------------------------------------------------------------
|       |           | true        |        |              | false  |
-------------------------------------------------------------------
|       |           | true        |        | true         | false  |
-------------------------------------------------------------------
|       |           | true        | true   |              | true   |
-------------------------------------------------------------------
|       |           | true        | true   | true         | false  |
-------------------------------------------------------------------
|       | true      | !care       | !care  | !care        | false  |
-------------------------------------------------------------------
| true  | !care     | !care       | !care  | !care        | true   |
-------------------------------------------------------------------

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess const):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener):
    Extra checks removed since there's no harm in granting access
    to a third-party that already has access by way of the underlying
    cookie policy. Also, this is a temporary compatibility fix.
* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::cookieAccess const):
(WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener):
    Extra checks removed since there's no harm in granting access
    to a third-party that already has access by way of the underlying
    cookie policy. Also, this is a temporary compatibility fix.
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
(WebKit::ResourceLoadStatisticsStore::setIsThirdPartyCookieBlockingEnabled):
(WebKit::ResourceLoadStatisticsStore::isThirdPartyCookieBlockingEnabled const):
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setIsThirdPartyCookieBlockingEnabled):
    This is now the single path to control this setting in both ITP
    and the network storage session. See comment below.
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting):
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::setIsThirdPartyCookieBlockingEnabled):
    Restructured these so that they are initiated like the rest of the
    parameters and only have a single path for changes so that a
    reset to consistent state resets all the state.
* NetworkProcess/NetworkSession.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

Tools:

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::statisticsCallDidSetShouldDowngradeReferrerCallback):
(WTR::TestRunner::statisticsCallDidSetShouldBlockThirdPartyCookiesCallback):
    Both of these were missing resets of their m_hasSet*Callback booleans.

LayoutTests:

* http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database-expected.txt: Added.
* http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database.html: Added.
* http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-expected.txt: Added.
* http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking.html: Added.
* http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database-expected.txt: Added.
* http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database.html: Added.
* http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-expected.txt: Added.
* http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking.html: Added.
* http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html:
* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database-expected.txt: Added.
* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database.html: Added.
* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-expected.txt: Added.
* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html: Added.
* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-database-expected.txt: Added.
* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-database.html: Added.
* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-expected.txt: Added.
* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie.html: Added.

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

9 months agoAdd support for the Q unit
simon.fraser@apple.com [Mon, 28 Oct 2019 18:56:19 +0000 (18:56 +0000)]
Add support for the Q unit
https://bugs.webkit.org/show_bug.cgi?id=203469

Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:

Add support for the CSS "Q" unit (quater-millimeter):
<https://drafts.csswg.org/css-values-4/#Q>

* web-platform-tests/css/css-values/absolute-length-units-001-expected.txt:
* web-platform-tests/css/css-values/calc-serialization-002-expected.txt:
* web-platform-tests/css/css-values/minmax-length-computed-expected.txt:
* web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt:
* web-platform-tests/css/css-values/minmax-length-percent-serialize-expected.txt:
* web-platform-tests/css/css-values/minmax-length-serialize-expected.txt:

Source/WebCore:

Add support for the CSS "Q" unit (quater-millimeter):
<https://drafts.csswg.org/css-values-4/#Q>

Tested by web platform tests.

* css/CSSCalculationValue.cpp:
(WebCore::unitCategory):
(WebCore::hasDoubleValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::unitCategory):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isLength):
* css/parser/CSSParserToken.cpp:
(WebCore::cssPrimitiveValueUnitFromTrie):
* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeLength):
* editing/cocoa/HTMLConverter.mm:
(floatValueFromPrimitiveValue):

LayoutTests:

More tests now pass.

* TestExpectations:
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-1-expected.txt:
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-2-expected.txt:
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-3-expected.txt:
* fast/dom/HTMLImageElement/sizes/image-sizes-w3c-4-expected.txt:
* platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt:
* platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt:

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

9 months agoresults.webkit.org: Report more descriptive configurations for non-Apple ports
jbedard@apple.com [Mon, 28 Oct 2019 18:43:04 +0000 (18:43 +0000)]
results.webkit.org: Report more descriptive configurations for non-Apple ports
https://bugs.webkit.org/show_bug.cgi?id=203490
<rdar://problem/56658244>

Reviewed by Carlos Alberto Lopez Perez.

* Scripts/webkitpy/port/gtk.py:
(GtkPort):
(GtkPort.configuration_for_upload): Return use GTK as the platform.
* Scripts/webkitpy/port/gtk_unittest.py:
(GtkPortTest):
(GtkPortTest.test_default_upload_configuration):
* Scripts/webkitpy/port/win.py:
(WinCairoPort.configuration_for_upload): Use wincairo as the platform.
* Scripts/webkitpy/port/wpe.py:
(WPEPort):
(WPEPort.configuration_for_upload): Use WPE as the platform.
* Scripts/webkitpy/port/wpe_unittest.py:
(WPEPortTest):
(WPEPortTest.test_default_upload_configuration):

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

9 months agoRemove flaky debug log from WK1 expectations after r251582
achristensen@apple.com [Mon, 28 Oct 2019 18:26:40 +0000 (18:26 +0000)]
Remove flaky debug log from WK1 expectations after r251582
https://bugs.webkit.org/show_bug.cgi?id=203383

* platform/mac-wk1/TestExpectations:
* platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt:
The important part of this test is that there are 3 PASSes, not that the console log is consistent.

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

9 months agoRemove unused NetworkProcessCreationParameters.urlSchemesRegisteredAsCanDisplayOnlyIf...
achristensen@apple.com [Mon, 28 Oct 2019 17:53:56 +0000 (17:53 +0000)]
Remove unused NetworkProcessCreationParameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest
https://bugs.webkit.org/show_bug.cgi?id=203393

Reviewed by Chris Dumez.

Source/WebCore:

* platform/LegacySchemeRegistry.cpp:
(WebCore::canDisplayOnlyIfCanRequestSchemes):
(WebCore::LegacySchemeRegistry::canDisplayOnlyIfCanRequest):
(WebCore::LegacySchemeRegistry::registerAsCanDisplayOnlyIfCanRequest):

Source/WebKit:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::registerURLSchemeAsCanDisplayOnlyIfCanRequest):

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

9 months agoCSS Transitions and CSS Animations properties should treat unitless 0 as an invalid...
graouts@webkit.org [Mon, 28 Oct 2019 17:01:55 +0000 (17:01 +0000)]
CSS Transitions and CSS Animations properties should treat unitless 0 as an invalid value for times
https://bugs.webkit.org/show_bug.cgi?id=203484

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progressions.

* web-platform-tests/css/css-animations/parsing/animation-delay-invalid-expected.txt:
* web-platform-tests/css/css-animations/parsing/animation-duration-invalid-expected.txt:
* web-platform-tests/css/css-transitions/parsing/transition-delay-invalid-expected.txt:

Source/WebCore:

The CSS specification does not allow for "0" as a valid time (https://drafts.csswg.org/css-values-3/#time).
We change the way we parse time values to only allow for "0" if the UnitlessQuirk is set to Allow, which is
only the case for the -webkit-marquee-speed property.

* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeTime):

Source/WebInspectorUI:

Use 0s instead of 0 in places where unitless times were used but shouldn't have been.

* UserInterface/Views/FindBanner.css:
(.no-find-banner-transition:matches(.find-banner, .supports-find-banner)):
* UserInterface/Views/TabBar.css:
(.tab-bar > .item > .close):

LayoutTests:

Use 0s instead of 0 in places where unitless times were used but shouldn't have been.

* animations/fill-mode-forwards-zero-duration.html:
* compositing/animation/keyframe-order.html:
* css1/units/zero-duration-without-units.html:
* legacy-animation-engine/animations/fill-mode-forwards-zero-duration.html:
* legacy-animation-engine/compositing/animation/keyframe-order.html:
* legacy-animation-engine/css1/units/zero-duration-without-units.html:
* legacy-animation-engine/transitions/zero-duration-in-list.html:
* legacy-animation-engine/transitions/zero-duration-without-units.html:
* transitions/zero-duration-in-list.html:
* transitions/zero-duration-without-units.html:
* webanimations/css-animations-expected.txt:
* webanimations/css-animations.html:

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

9 months ago[Web Animations] The easing property for a CSSTransition effect is always "linear"
graouts@webkit.org [Mon, 28 Oct 2019 16:59:08 +0000 (16:59 +0000)]
[Web Animations] The easing property for a CSSTransition effect is always "linear"
https://bugs.webkit.org/show_bug.cgi?id=203476

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

* web-platform-tests/css/css-transitions/AnimationEffect-getComputedTiming.tentative-expected.txt:

Source/WebCore:

While we correctly used the timing function set on the Animation object created while parsing a CSS Transition
for blending, we wouldn't set the timing function on the CSSTransition's AnimationEffect and it would not be
reflected correctly through the JS API. This also means that we shouldn't perform per-keyframe blending for CSS
Transitions.

* animation/CSSTransition.cpp:
(WebCore::CSSTransition::setTimingProperties):
* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):

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

9 months ago[GTK][WPE] Enable CSS typed OM
clopez@igalia.com [Mon, 28 Oct 2019 16:25:17 +0000 (16:25 +0000)]
[GTK][WPE] Enable CSS typed OM
https://bugs.webkit.org/show_bug.cgi?id=192875

Reviewed by Carlos Garcia Campos.

.:

This enables the feature when building with experimental features enabled.

* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:

Source/WebKit:

Enable the runtime feature by default on GTK/WPE when building with
experimental features enabled.

Covered by existing tests.

* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.h:

LayoutTests:

Unskip the tests that now pass.

* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:

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

9 months agoCan't change @font-face descriptors from fontFaceRule.style.setProperty()
simon.fraser@apple.com [Mon, 28 Oct 2019 16:02:53 +0000 (16:02 +0000)]
Can't change @font-face descriptors from fontFaceRule.style.setProperty()
https://bugs.webkit.org/show_bug.cgi?id=177975
<rdar://problem/56648761>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

More passing subtests.

* web-platform-tests/css/css-syntax/urange-parsing-expected.txt:

Source/WebCore:

When parsing properties via PropertySetCSSStyleDeclaration::setProperty() (called from
script as rule.style.setProperty()), CSSPropertyParser::parseValue() needs to know if
we're parsing properties in a @font-face or @viewport rule, since some properties are
only allowed in these contexts.

Achieve this by adding to CSSParserContext an Optional<enclosingRuleType>, which gets set
for font-face and viewport rules. This gets set by StyleRuleCSSStyleDeclaration::cssParserContext()
based on the type of the parent rule.

Moved StyleRule::Type to its own header so CSSParserContext can use it. Added compile-time asserts
that the values match CSSRule::Type (fixing one of them).

Also fix <urange> serialization when start and end values are the same.

Test: web-platform-tests/css/css-syntax/urange-parsing.html

* Headers.cmake:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSKeyframeRule.cpp:
(WebCore::StyleRuleKeyframe::StyleRuleKeyframe):
* css/CSSKeyframesRule.cpp:
(WebCore::StyleRuleKeyframes::StyleRuleKeyframes):
* css/CSSPropertySourceData.h:
(WebCore::CSSRuleSourceData::create):
(WebCore::CSSRuleSourceData::createUnknown):
(WebCore::CSSRuleSourceData::CSSRuleSourceData):
* css/CSSRule.cpp:
* css/CSSUnicodeRangeValue.cpp:
(WebCore::CSSUnicodeRangeValue::customCSSText const):
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::StyleRuleCSSStyleDeclaration::cssParserContext const):
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy const):
(WebCore::StyleRuleBase::createCSSOMWrapper const):
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRulePage::StyleRulePage):
(WebCore::StyleRuleFontFace::StyleRuleFontFace):
(WebCore::StyleRuleGroup::StyleRuleGroup):
(WebCore::StyleRuleMedia::StyleRuleMedia):
(WebCore::StyleRuleSupports::StyleRuleSupports):
(WebCore::StyleRuleViewport::StyleRuleViewport):
(WebCore::StyleRuleCharset::StyleRuleCharset):
(WebCore::StyleRuleNamespace::StyleRuleNamespace):
* css/StyleRule.h:
(WebCore::StyleRuleBase::type const):
(WebCore::StyleRuleBase::isCharsetRule const):
(WebCore::StyleRuleBase::isFontFaceRule const):
(WebCore::StyleRuleBase::isKeyframesRule const):
(WebCore::StyleRuleBase::isKeyframeRule const):
(WebCore::StyleRuleBase::isNamespaceRule const):
(WebCore::StyleRuleBase::isMediaRule const):
(WebCore::StyleRuleBase::isPageRule const):
(WebCore::StyleRuleBase::isStyleRule const):
(WebCore::StyleRuleBase::isSupportsRule const):
(WebCore::StyleRuleBase::isViewportRule const):
(WebCore::StyleRuleBase::isImportRule const):
(WebCore::StyleRuleBase::StyleRuleBase):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::StyleRuleImport):
* css/StyleRuleImport.h:
* css/StyleRuleType.h: Copied from Source/WebCore/css/CSSUnicodeRangeValue.cpp.
* css/StyleSheetContents.cpp:
(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseSubresources const):
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseValueWithVariableReferences):
* css/parser/CSSParserContext.h:
* css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parseValue):
(WebCore::CSSParserImpl::parseInlineStyleDeclaration):
(WebCore::CSSParserImpl::parseDeferredDeclaration):
(WebCore::CSSParserImpl::parseDeclarationList):
(WebCore::CSSParserImpl::supportsDeclaration):
(WebCore::CSSParserImpl::parseDeclarationListForInspector):
(WebCore::CSSParserImpl::consumeImportRule):
(WebCore::CSSParserImpl::consumeMediaRule):
(WebCore::CSSParserImpl::consumeSupportsRule):
(WebCore::CSSParserImpl::consumeViewportRule):
(WebCore::CSSParserImpl::consumeFontFaceRule):
(WebCore::CSSParserImpl::consumeKeyframesRule):
(WebCore::CSSParserImpl::consumePageRule):
(WebCore::CSSParserImpl::consumeKeyframeStyleRule):
(WebCore::observeSelectors):
(WebCore::CSSParserImpl::consumeStyleRule):
(WebCore::CSSParserImpl::consumeDeclarationList):
(WebCore::CSSParserImpl::consumeDeclaration):
(WebCore::CSSParserImpl::consumeDeclarationValue):
* css/parser/CSSParserImpl.h:
* css/parser/CSSParserObserver.h:
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseValue):
* css/parser/CSSPropertyParser.h:
* css/parser/CSSTokenizer.cpp:
(WebCore::CSSTokenizer::letterU):
* inspector/InspectorStyleSheet.cpp:
(flattenSourceData):
(WebCore::StyleSheetHandler::startRuleHeader):
(WebCore::InspectorStyleSheetForInlineStyle::ruleSourceData const):

LayoutTests:

Fix tests for the urange serialization fix.

* fast/text/font-face-javascript-expected.txt:
* fast/text/font-face-javascript.html:
* fast/text/unicode-range-javascript-expected.txt:
* fast/text/unicode-range-javascript.html:

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

9 months agoUnreviewed, rolling out r251651.
commit-queue@webkit.org [Mon, 28 Oct 2019 15:06:07 +0000 (15:06 +0000)]
Unreviewed, rolling out r251651.
https://bugs.webkit.org/show_bug.cgi?id=203488

It's causing crashes in several tests (Requested by KaL on
#webkit).

Reverted changeset:

"ImageDecoders: use a thread safe data buffer for Cairo
backing store"
https://bugs.webkit.org/show_bug.cgi?id=201727
https://trac.webkit.org/changeset/251651

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

9 months ago[ews] Improve summary for CompileWebKit and CompileJSC build step
aakash_jain@apple.com [Mon, 28 Oct 2019 14:57:57 +0000 (14:57 +0000)]
[ews] Improve summary for CompileWebKit and CompileJSC build step
https://bugs.webkit.org/show_bug.cgi?id=203487

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(CompileWebKit.getResultSummary): Method to generate custom status message.
(CompileJSC.getResultSummary): Ditto.
* BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.

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

9 months ago[Windows][Clang] error LNK2001: unresolved external symbol "void * __cdecl JSC::alloc...
Hironori.Fujii@sony.com [Mon, 28 Oct 2019 10:31:19 +0000 (10:31 +0000)]
[Windows][Clang] error LNK2001: unresolved external symbol "void * __cdecl JSC::allocateCell<class JSC::JSGenericTypedArrayView<struct JSC::Float32Adaptor> >(class JSC::Heap &,unsigned __int64)"
https://bugs.webkit.org/show_bug.cgi?id=203483

Unreviewed build fix for clang-cl builds.

* runtime/JSGenericTypedArrayViewInlines.h: Added #include "JSCellInlines.h".

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

9 months agoImageDecoders: use a thread safe data buffer for Cairo backing store
cturner@igalia.com [Mon, 28 Oct 2019 10:12:43 +0000 (10:12 +0000)]
ImageDecoders: use a thread safe data buffer for Cairo backing store
https://bugs.webkit.org/show_bug.cgi?id=201727

Reviewed by Carlos Garcia Campos.

When an image resource gets cached and replaces an existing image,
CachedImage::didReplaceSharedBufferContents is called, which
destroys the decoder in the BitmapImage class. This decoder can be
initialized from any thread via
ImageSource::ensureDecoderAvailable. On GTK/WPE, this dispatches
to a ScalableImageDecoder, which contains a vector of
ScalableImageDecoderFrame's, which contain ImageBackingStore's,
which for reasons related to Cairo, contain a RefCounted
SharedBuffer of pixel data.

The problem is that the CachedImage's decoders can be
created/destroyed on different threads, so a thread-safe buffer
class is required to hold these data, and pass them safely into
cairo_image_surface_create_for_data rather than a SharedBuffer
which must be created/destroyed on the main-thread.

Covered by existing tests.

* platform/graphics/ImageBackingStore.h: Create a small
thread-safe utility class to hold the RGBA pixel data.
(WebCore::ImageBackingStore::setSize):
(WebCore::ImageBackingStore::clear):
(WebCore::ImageBackingStore::pixelAt const):
(WebCore::ImageBackingStore::ThreadSafeRGBAPixelBuffer::create):
(WebCore::ImageBackingStore::ThreadSafeRGBAPixelBuffer::zeroPixelData):
(WebCore::ImageBackingStore::ThreadSafeRGBAPixelBuffer::pixelAt const):
(WebCore::ImageBackingStore::ThreadSafeRGBAPixelBuffer::data const):
(WebCore::ImageBackingStore::ThreadSafeRGBAPixelBuffer::isValid const):
(WebCore::ImageBackingStore::ThreadSafeRGBAPixelBuffer::RGBAPixelBufferThreadSafeRefCounted):
(WebCore::ImageBackingStore::ImageBackingStore):
* platform/image-decoders/cairo/ImageBackingStoreCairo.cpp:
(WebCore::ImageBackingStore::image const):

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

9 months ago[GTK] Simplify the Input Method implementation
carlosgc@webkit.org [Mon, 28 Oct 2019 09:24:57 +0000 (09:24 +0000)]
[GTK] Simplify the Input Method implementation
https://bugs.webkit.org/show_bug.cgi?id=203149

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Remove CompositionResults and remove dead code in PlatformKeyboardEventGtk.

* PlatformGTK.cmake:
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
* platform/gtk/CompositionResults.h: Removed.
* platform/gtk/PlatformKeyboardEventGtk.cpp:
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):

Source/WebKit:

* Shared/NativeWebKeyboardEvent.h: Stop using WebCore::CompositionResults.
(WebKit::NativeWebKeyboardEvent::text const):
(WebKit::NativeWebKeyboardEvent::handledByInputMethod const):
(WebKit::NativeWebKeyboardEvent::fakedForComposition const):
* Shared/gtk/NativeWebKeyboardEventGtk.cpp: Ditto.
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
* Shared/gtk/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebKeyboardEvent): Ditto.
* Shared/gtk/WebEventFactory.h:
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::doneWithKeyEvent): Updated to use the new name.
* UIProcess/API/gtk/WebKitWebViewBase.cpp: Stop using WebCore::CompositionResults.
(webkitWebViewBaseKeyPressEvent):
(webkitWebViewBaseKeyReleaseEvent):
* UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Remove unused function.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setComposition): Use EditingRange instead of two integers and remove replacement range
that is unused.
(WebKit::WebPageProxy::confirmComposition): Remove unused selection range parameters.
* UIProcess/WebPageProxy.h:
* UIProcess/gtk/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::handleKeyboardEvent):
(WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults):
(WebKit::InputMethodFilter::confirmComposition):
(WebKit::InputMethodFilter::updatePreedit):
(WebKit::InputMethodFilter::confirmCurrentComposition):
(WebKit::InputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents):
(WebKit::InputMethodFilter::logHandleKeyboardEventForTesting):
(WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting):
* UIProcess/gtk/InputMethodFilter.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::targetFrameForEditing): Receive a reference instead of a pointer.
(WebKit::WebPage::confirmComposition): Remove the unused code to handle the selection range.
(WebKit::WebPage::setComposition): Remove the unused code to handle the replacement range.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

9 months ago[Web Animations] getKeyframes() doesn't return the right timing function for declarat...
graouts@webkit.org [Mon, 28 Oct 2019 08:08:59 +0000 (08:08 +0000)]
[Web Animations] getKeyframes() doesn't return the right timing function for declarative animations
https://bugs.webkit.org/show_bug.cgi?id=203475

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

* web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
* web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative-expected.txt:

Source/WebCore:

We had two bugs for declarative animations and the "easing" property for keyframes returned by KeyframeEffect::getKeyframes().
First, we should return "linear" for all keyframes for CSS Transitions since the transition-timing-function is set as the "easing"
property of the effect itself, not any indvidual keyframe. Then, we would always return the "easing" of the first keyframe while
iterating over keyframes, which was an oversight.

* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):

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

9 months ago[Web Animations] Update WPT tests related to Web Animations and remove imported Mozil...
graouts@webkit.org [Mon, 28 Oct 2019 07:54:53 +0000 (07:54 +0000)]
[Web Animations] Update WPT tests related to Web Animations and remove imported Mozilla tests
https://bugs.webkit.org/show_bug.cgi?id=203291

Unreviewed test gardening.

* TestExpectations:
* platform/gtk/TestExpectations:

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

9 months agoLayoutTests/imported/w3c:
simon.fraser@apple.com [Mon, 28 Oct 2019 04:49:52 +0000 (04:49 +0000)]
LayoutTests/imported/w3c:
Fix nth-child An+B serialization to match the spc
https://bugs.webkit.org/show_bug.cgi?id=203464

Reviewed by Antti Koivisto.

New passing results.

* web-platform-tests/css/css-syntax/anb-parsing-expected.txt:
* web-platform-tests/css/css-syntax/anb-serialization-expected.txt:
* web-platform-tests/css/cssom/selectorSerialize-expected.txt:
* web-platform-tests/css/selectors/anplusb-selector-parsing-expected.txt:

Source/WebCore:
Fix nth-child An+B serialization to match the spec
https://bugs.webkit.org/show_bug.cgi?id=203464

Reviewed by Antti Koivisto.

The spec says to expand "odd" and "even" to "2n+1" and "2n", and to simplify
things like "1n+1" and "0n"

Tested by existing tests.

* css/CSSSelector.cpp:
(WebCore::outputNthChildAnPlusB):
(WebCore::CSSSelector::selectorText const):

LayoutTests:
Fix nth-child An+B serialization to match the spc
https://bugs.webkit.org/show_bug.cgi?id=203464

Reviewed by Antti Koivisto.

New results. Some tests that assumed that the selectors simply round-trip had to be
fixed to supply test and expected selectors.

* css3/parsing-css3-nthchild-expected.txt:
* css3/parsing-css3-nthchild.html:
* fast/css/css-selector-text-expected.txt:
* fast/css/css-selector-text.html:
* fast/css/css-set-selector-text-expected.txt:
* fast/css/css-set-selector-text.html:
* fast/css/parsing-css-matches-1-expected.txt:
* fast/css/parsing-css-matches-1.html:
* fast/css/parsing-css-matches-2-expected.txt:
* fast/css/parsing-css-matches-2.html:
* fast/css/parsing-css-matches-4-expected.txt:
* fast/css/parsing-css-matches-4.html:
* fast/css/parsing-css-not-1-expected.txt:
* fast/css/parsing-css-not-1.html:
* fast/css/parsing-css-not-2-expected.txt:
* fast/css/parsing-css-not-2.html:
* fast/css/parsing-css-not-4-expected.txt:
* fast/css/parsing-css-not-4.html:
* fast/css/parsing-css-nth-child-expected.txt:
* fast/css/parsing-css-nth-child-of-1-expected.txt:
* fast/css/parsing-css-nth-child-of-1.html:
* fast/css/parsing-css-nth-child-of-2-expected.txt:
* fast/css/parsing-css-nth-child-of-2.html:
* fast/css/parsing-css-nth-child.html:
* fast/css/parsing-css-nth-last-child-of-1-expected.txt:
* fast/css/parsing-css-nth-last-child-of-1.html:
* fast/css/parsing-css-nth-last-child-of-2-expected.txt:
* fast/css/parsing-css-nth-last-child-of-2.html:
* fast/dom/css-selectorText-expected.txt:

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

9 months agoUnreviewed build fix for !ENABLE(MEDIA_STREAM) builds
Hironori.Fujii@sony.com [Mon, 28 Oct 2019 02:48:07 +0000 (02:48 +0000)]
Unreviewed build fix for !ENABLE(MEDIA_STREAM) builds
https://bugs.webkit.org/show_bug.cgi?id=203362
<rdar://problem/56648232>

* UIProcess/UserMediaPermissionRequestProxy.h: Enclosed isUserGesturePriviledged with #if ENABLE(MEDIA_STREAM).

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

9 months ago[WebAuthn] Warn users when multiple NFC tags present
jiewen_tan@apple.com [Sun, 27 Oct 2019 22:53:33 +0000 (22:53 +0000)]
[WebAuthn] Warn users when multiple NFC tags present
https://bugs.webkit.org/show_bug.cgi?id=200932
<rdar://problem/54890736>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by new tests in existing test file.

* testing/MockWebAuthenticationConfiguration.h:
(WebCore::MockWebAuthenticationConfiguration::NfcConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::NfcConfiguration::decode):
* testing/MockWebAuthenticationConfiguration.idl:
Adds a new test option.

Source/WebKit:

This patch utilizes -[_WKWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:] to
inform clients about multiple physical tags are presenting such that clients can instruct users
to select only one of them physically. Given a physical tag could have multiple different
interfaces, which NearField will treat them into different NFTags, the tagID is then used to
identify if there are actually multiple physical tags.

This patch also adds the ability to restart polling of a partiuclar NFReaderSession to NfcConnection
and the ability to restart the whole session to NfcService. The former is used to recover from errors
in the discovery stages, and the latter is used to recover from errors returned from authenticators
in the request stages. For the latter, given NfcConnection is not awared of the syntax of FIDO2/U2F
protocol, and CtapAuthenticator/U2fAuthenticator are not awared the transport of the underneath driver.
A generic restartDiscovery process is added to each service and it is up to the actual service to
implement the actual process such that AuthenticatorManager can arbitrarily call it after exceptions
are returned to restart the whole NFC session. To achieve restartDiscovery, NfcConnection is made
RefCounted as well such that both the NfcService and the CtapNfcDriver could hold it at the same time.
CtapNfcDriver uses the connection to complete requests as before while NfcService has the new capability
to use it to stop the current session when restartDiscovery kicks off.

* Platform/spi/Cocoa/NearFieldSPI.h:
* UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::serviceStatusUpdated):
(WebKit::AuthenticatorManager::respondReceived):
(WebKit::AuthenticatorManager::restartDiscovery):
* UIProcess/WebAuthentication/AuthenticatorManager.h:
* UIProcess/WebAuthentication/AuthenticatorTransportService.cpp:
(WebKit::AuthenticatorTransportService::startDiscovery):
(WebKit::AuthenticatorTransportService::restartDiscovery):
* UIProcess/WebAuthentication/AuthenticatorTransportService.h:
(WebKit::AuthenticatorTransportService::restartDiscoveryInternal):
* UIProcess/WebAuthentication/Cocoa/NfcConnection.h:
* UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:
(WebKit::NfcConnection::create):
(WebKit::NfcConnection::NfcConnection):
(WebKit::NfcConnection::~NfcConnection):
(WebKit::NfcConnection::stop const):
(WebKit::NfcConnection::didDetectTags):
(WebKit::NfcConnection::restartPolling):
(WebKit::NfcConnection::startPolling):
(WebKit::NfcConnection::didDetectTags const): Deleted.
* UIProcess/WebAuthentication/Cocoa/NfcService.h:
* UIProcess/WebAuthentication/Cocoa/NfcService.mm:
(WebKit::NfcService::NfcService):
(WebKit::NfcService::didConnectTag):
(WebKit::NfcService::didDetectMultipleTags const):
(WebKit::NfcService::setConnection):
(WebKit::NfcService::restartDiscoveryInternal):
(WebKit::NfcService::platformStartDiscovery):
(WebKit::NfcService::setDriver): Deleted.
* UIProcess/WebAuthentication/Mock/MockNfcService.h:
* UIProcess/WebAuthentication/Mock/MockNfcService.mm:
(-[WKMockNFTag tagID]):
(-[WKMockNFTag initWithNFTag:]):
(-[WKMockNFTag dealloc]):
(-[WKMockNFTag initWithType:]):
(-[WKMockNFTag initWithType:tagID:]):
(WebKit::MockNfcService::receiveStopPolling):
(WebKit::MockNfcService::receiveStartPolling):
(WebKit::MockNfcService::platformStartDiscovery):
(WebKit::MockNfcService::detectTags):
(WebKit::MockNfcService::detectTags const): Deleted.
* UIProcess/WebAuthentication/fido/CtapNfcDriver.cpp:
(WebKit::CtapNfcDriver::CtapNfcDriver):
* UIProcess/WebAuthentication/fido/CtapNfcDriver.h:
* UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(-[TestWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:]):
(TestWebKitAPI::TEST):
Adds a new test for -[_WKWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:].
* TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-nfc-multiple-tags.html: Added.

LayoutTests:

* http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
* http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:
Adds new tests for multiple physical tags and service restart.

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

9 months agoMove resolving direction and writing mode to PropertyCascade
antti@apple.com [Sun, 27 Oct 2019 22:12:20 +0000 (22:12 +0000)]
Move resolving direction and writing mode to PropertyCascade
https://bugs.webkit.org/show_bug.cgi?id=203471
Reviewed by Zalan Bujtas.

Simplify PropertyCascade call sites.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyPropertyToCurrentStyle):
(WebCore::extractDirectionAndWritingMode): Deleted.
* style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::PropertyCascade):

Add copying constructor that avoids re-resolving directions.

(WebCore::Style::PropertyCascade::buildCascade):

Factor into a function.

(WebCore::Style::PropertyCascade::propertyCascadeForRollback):
(WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode):

The code moves here.

* style/PropertyCascade.h:

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

9 months ago[GTK][WPE] Test PublicSuffix.TopPrivatelyControlledDomain is failing since r250589
csaavedra@igalia.com [Sun, 27 Oct 2019 20:24:29 +0000 (20:24 +0000)]
[GTK][WPE] Test PublicSuffix.TopPrivatelyControlledDomain is failing since r250589
https://bugs.webkit.org/show_bug.cgi?id=203193

Reviewed by Carlos Garcia Campos.

Source/WebCore:

* platform/soup/PublicSuffixSoup.cpp:
(WebCore::topPrivatelyControlledDomain): Skip any leading dots before using libsoup TLD API.

Tools:

* TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:
(TestWebKitAPI::TEST_F): Add a test for a domain consisting only of dots.

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

9 months ago[LFC][IFC] Do not expand runs with collapsed trailing whitespace
zalan@apple.com [Sun, 27 Oct 2019 17:18:58 +0000 (17:18 +0000)]
[LFC][IFC] Do not expand runs with collapsed trailing whitespace
https://bugs.webkit.org/show_bug.cgi?id=203468
<rdar://problem/56653689>

Reviewed by Antti Koivisto.

Runs are supposed to be a continuous chunk of content. Runs with trailing
collapsed whitespace can't accommodate additional trailing content.

* layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::Run::isWhitespace const): Deleted.
(WebCore::Layout::Line::Run::canBeExtended const): Deleted.
* layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::isWhitespace const):
(WebCore::Layout::Line::Run::setIsCollapsed):
(WebCore::Layout::Line::Run::canBeExtended const):
(WebCore::Layout::Line::Run::setCollapsesToZeroAdvanceWidth):

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

9 months agoImport css/css-position WPT
simon.fraser@apple.com [Sun, 27 Oct 2019 16:52:32 +0000 (16:52 +0000)]
Import css/css-position WPT
https://bugs.webkit.org/show_bug.cgi?id=203446

Reviewed by Antti Koivisto.

Import css/css-position from WPT at 5eebc927c57ec8c5e234fef8e4cc480ac339462c (Mon Oct 21 20:23:09 2019 +0100).

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/css/css-position/META.yml: Added.
* web-platform-tests/css/css-position/animation/position-interpolation.html: Added.
* web-platform-tests/css/css-position/animation/w3c-import.log: Added.
* web-platform-tests/css/css-position/animations/bottom-interpolation.html: Added.
* web-platform-tests/css/css-position/animations/left-interpolation.html: Added.
* web-platform-tests/css/css-position/animations/right-interpolation.html: Added.
* web-platform-tests/css/css-position/animations/top-interpolation.html: Added.
* web-platform-tests/css/css-position/animations/w3c-import.log: Added.
* web-platform-tests/css/css-position/fixed-z-index-blend-expected.html: Added.
* web-platform-tests/css/css-position/fixed-z-index-blend.html: Added.
* web-platform-tests/css/css-position/hypothetical-box-scroll-parent-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-box-scroll-parent.html: Added.
* web-platform-tests/css/css-position/hypothetical-box-scroll-viewport-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-box-scroll-viewport.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-001-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-001.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-002-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-002.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-003-expected.html: Added.
* web-platform-tests/css/css-position/hypothetical-dynamic-change-003.html: Added.
* web-platform-tests/css/css-position/inheritance.html: Added.
* web-platform-tests/css/css-position/parsing/bottom-computed.html: Added.
* web-platform-tests/css/css-position/parsing/bottom-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/bottom-valid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-after-computed.html: Added.
* web-platform-tests/css/css-position/parsing/inset-after-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-after-valid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-before-computed.html: Added.
* web-platform-tests/css/css-position/parsing/inset-before-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-before-valid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-end-computed.html: Added.
* web-platform-tests/css/css-position/parsing/inset-end-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-end-valid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-start-computed.html: Added.
* web-platform-tests/css/css-position/parsing/inset-start-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/inset-start-valid.html: Added.
* web-platform-tests/css/css-position/parsing/left-computed.html: Added.
* web-platform-tests/css/css-position/parsing/left-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/left-valid.html: Added.
* web-platform-tests/css/css-position/parsing/position-computed.html: Added.
* web-platform-tests/css/css-position/parsing/position-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/position-valid.html: Added.
* web-platform-tests/css/css-position/parsing/right-computed.html: Added.
* web-platform-tests/css/css-position/parsing/right-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/right-valid.html: Added.
* web-platform-tests/css/css-position/parsing/top-computed.html: Added.
* web-platform-tests/css/css-position/parsing/top-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/top-valid.html: Added.
* web-platform-tests/css/css-position/parsing/w3c-import.log: Added.
* web-platform-tests/css/css-position/parsing/z-index-computed.html: Added.
* web-platform-tests/css/css-position/parsing/z-index-invalid.html: Added.
* web-platform-tests/css/css-position/parsing/z-index-valid.html: Added.
* web-platform-tests/css/css-position/position-absolute-abspos-table-dynamic.html: Added.
* web-platform-tests/css/css-position/position-absolute-chrome-bug-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-chrome-bug-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-container-dynamic-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-container-dynamic.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-003.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-004.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-005.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-006.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-007.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-008.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-009.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-010.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-011.html: Added.
* web-platform-tests/css/css-position/position-absolute-crash-chrome-012.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-list-marker-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-list-marker.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-overflow-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-overflow-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-relayout-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-003.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-floats-004.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002-expected.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-margin-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell-expected.xht: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position-table-cell.html: Added.
* web-platform-tests/css/css-position/position-absolute-dynamic-static-position.html: Added.
* web-platform-tests/css/css-position/position-absolute-fieldset-expected.xht: Added.
* web-platform-tests/css/css-position/position-absolute-fieldset.html: Added.
* web-platform-tests/css/css-position/position-absolute-in-inline-001.html: Added.
* web-platform-tests/css/css-position/position-absolute-in-inline-002.html: Added.
* web-platform-tests/css/css-position/position-absolute-in-inline-crash.html: Added.
* web-platform-tests/css/css-position/position-absolute-percentage-height.html: Added.
* web-platform-tests/css/css-position/position-absolute-replaced-minmax.html: Added.
* web-platform-tests/css/css-position/position-fixed-at-bottom-right-on-viewport.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-left-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-top-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tbody-top.html: Added.
* web-platform-tests/css/css-position/position-relative-table-td-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-td-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-td-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-td-top.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-left-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-top-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tfoot-top.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-left-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-top-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-thead-top.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-left-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-left-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-left.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-top-absolute-child.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-top-expected.html: Added.
* web-platform-tests/css/css-position/position-relative-table-tr-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-change-top-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-change-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-child-multicolumn-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-child-multicolumn.html: Added.
* web-platform-tests/css/css-position/position-sticky-flexbox-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-flexbox.html: Added.
* web-platform-tests/css/css-position/position-sticky-get-bounding-client-rect.html: Added.
* web-platform-tests/css/css-position/position-sticky-grid-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-grid.html: Added.
* web-platform-tests/css/css-position/position-sticky-hyperlink-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-hyperlink.html: Added.
* web-platform-tests/css/css-position/position-sticky-inflow-position.html: Added.
* web-platform-tests/css/css-position/position-sticky-inline-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-inline.html: Added.
* web-platform-tests/css/css-position/position-sticky-input-box-gets-focused-after-scroll.html: Added.
* web-platform-tests/css/css-position/position-sticky-left.html: Added.
* web-platform-tests/css/css-position/position-sticky-margins.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-inline-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-inline.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-left.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-right.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-table-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-table.html: Added.
* web-platform-tests/css/css-position/position-sticky-nested-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-offset-overflow.html: Added.
* web-platform-tests/css/css-position/position-sticky-offset-top-left.html: Added.
* web-platform-tests/css/css-position/position-sticky-overflow-hidden.html: Added.
* web-platform-tests/css/css-position/position-sticky-overflow-padding.html: Added.
* web-platform-tests/css/css-position/position-sticky-parsing.html: Added.
* web-platform-tests/css/css-position/position-sticky-rendering-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-rendering.html: Added.
* web-platform-tests/css/css-position/position-sticky-right.html: Added.
* web-platform-tests/css/css-position/position-sticky-root-scroller.html: Added.
* web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-scroll-with-clip-and-abspos.html: Added.
* web-platform-tests/css/css-position/position-sticky-scrolled-remove-sibling.html: Added.
* web-platform-tests/css/css-position/position-sticky-stacking-context-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-stacking-context.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-parts-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-parts.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tfoot-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-bottom-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-left-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-left.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-right-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-right.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-top-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-th-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-thead-top-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-thead-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tr-bottom-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tr-bottom.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tr-top-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-table-tr-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-top.html: Added.
* web-platform-tests/css/css-position/position-sticky-transforms-translate.html: Added.
* web-platform-tests/css/css-position/position-sticky-transforms.html: Added.
* web-platform-tests/css/css-position/position-sticky-writing-modes-expected.html: Added.
* web-platform-tests/css/css-position/position-sticky-writing-modes.html: Added.
* web-platform-tests/css/css-position/resources/sticky-util.js: Added.
(setupStickyTest):
(setupNestedStickyTest):
* web-platform-tests/css/css-position/resources/w3c-import.log: Added.
* web-platform-tests/css/css-position/static-position/htb-ltr-ltr-expected.html: Added.
* web-platform-tests/css/css-position/static-position/htb-ltr-ltr.html: Added.
* web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/htb-ltr-rtl.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/htb-rtl-ltr.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/htb-rtl-rtl-expected.html: Added.
* web-platform-tests/css/css-position/static-position/htb-rtl-rtl.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-001-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-001.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-002-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-002.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-003-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-003.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-004-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-004.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-005-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-005.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-006-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-006.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-007-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-007.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-008-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-008.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-009-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-009.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-010-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-010.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-011-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-011.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-012-expected.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-012.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013-expected.xht: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-013.html: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014-expected.xht: Added.
* web-platform-tests/css/css-position/static-position/inline-level-absolute-in-block-level-context-014.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-ltr-ltr-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-ltr-ltr.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-ltr-rtl.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-rtl-ltr.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-rtl-rtl-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vlr-rtl-rtl.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-ltr-ltr-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-ltr-ltr.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-ltr-rtl.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-rtl-ltr.tentative.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-rtl-rtl-expected.html: Added.
* web-platform-tests/css/css-position/static-position/vrl-rtl-rtl.html: Added.
* web-platform-tests/css/css-position/static-position/w3c-import.log: Added.
* web-platform-tests/css/css-position/w3c-import.log: Added.
* web-platform-tests/css/css-position/z-index-blend-will-change-overlapping-layers-expected.html: Added.
* web-platform-tests/css/css-position/z-index-blend-will-change-overlapping-layers.html: Added.

LayoutTests:

* TestExpectations:

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

9 months ago[LFC][Painting] Use the dirty rect to decide what to paint
zalan@apple.com [Sun, 27 Oct 2019 16:33:01 +0000 (16:33 +0000)]
[LFC][Painting] Use the dirty rect to decide what to paint
https://bugs.webkit.org/show_bug.cgi?id=203467
<rdar://problem/56653229>

Reviewed by Antti Koivisto.

This is a very basic dirty rect instersect check since we don't yet have layout overflow.
It enables us to not paint the entire content on every paint frame.

* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::paint):
* layout/LayoutContext.h:
* layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::paintBoxDecorationAndChildren):
(WebCore::Display::Painter::paint):
* layout/displaytree/DisplayPainter.h:
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):

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

9 months agoEnforce user gesture for getUserMedia in case a previous getUserMedia call was denied
youenn@apple.com [Sat, 26 Oct 2019 20:50:40 +0000 (20:50 +0000)]
Enforce user gesture for getUserMedia in case a previous getUserMedia call was denied
https://bugs.webkit.org/show_bug.cgi?id=203362

Reviewed by Eric Carlson.

Source/WebCore:

Compute whether a media request is user priviledged or not.
It is priviledged if it is created as part of a user gesture and no request of the same type
has been previously created for the same user gesture.
If getDisplayMedia is called twice as part of a single user gesture, getDisplaMedia will reject for the second call.

Test: fast/mediastream/getUserMedia-deny-persistency5.html and updated test.

* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::computeUserGesturePriviledge):
(WebCore::MediaDevices::getUserMedia):
(WebCore::MediaDevices::getDisplayMedia):
(WebCore::MediaDevices::getUserMedia const): Deleted.
(WebCore::MediaDevices::getDisplayMedia const): Deleted.
* Modules/mediastream/MediaDevices.h:
* platform/mediastream/MediaStreamRequest.h:
(WebCore::MediaStreamRequest::encode const):
(WebCore::MediaStreamRequest::decode):

Source/WebKit:

In case the request has user gesture priviledge, do not look at denied request history.

* UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::getRequestAction):
* UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::isUserGesturePriviledged const):

Tools:

Update test to take into account the ability to reask permission.
* TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
(TestWebKitAPI::TEST_F):

LayoutTests:

* fast/mediastream/getUserMedia-deny-persistency5-expected.txt:
* fast/mediastream/getUserMedia-deny-persistency5.html:
* fast/mediastream/screencapture-user-gesture-expected.txt:
* fast/mediastream/screencapture-user-gesture.html:

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

9 months ago[LFC] Do not layout on every paint frame.
zalan@apple.com [Sat, 26 Oct 2019 19:16:18 +0000 (19:16 +0000)]
[LFC] Do not layout on every paint frame.
https://bugs.webkit.org/show_bug.cgi?id=203462
<rdar://problem/56646779>

Reviewed by Antti Koivisto.

This is in preparation for being able to run layout benchmarks.

* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::runLayoutAndVerify):
(WebCore::Layout::LayoutContext::paint):
(WebCore::Layout::LayoutContext::runLayoutAndPaint): Deleted.
* layout/LayoutContext.h:
* layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::LayoutState):
* layout/LayoutState.h:
* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::printLayoutTreeForLiveDocuments):
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):
* page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):
(WebCore::FrameViewLayoutContext::layout):
(WebCore::layoutUsingFormattingContext): Deleted.
* page/FrameViewLayoutContext.h:
(WebCore::FrameViewLayoutContext::initialLayoutState const):

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

9 months agoMain implementation for lazy image loading
commit-queue@webkit.org [Sat, 26 Oct 2019 17:17:54 +0000 (17:17 +0000)]
Main implementation for lazy image loading
https://bugs.webkit.org/show_bug.cgi?id=200764

Patch by Rob Buis <rbuis@igalia.com> on 2019-10-26
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Set correct test option.

* web-platform-tests/loading/lazyload/image-loading-lazy.tentative-expected.txt: Added.
* web-platform-tests/loading/lazyload/image-loading-lazy.tentative.html:

Source/WebCore:

Implement lazy image loading as specified here [1]. Lazy image loading
is controlled by the loading attribute on <img>. When the loading attribute is
auto or not specified, the behavior is like before this patch, i.e. loading is
eager.

Not all loading=lazy requests will turn into actual lazy image loads, when
scripting is turned off or images are not http(s), they will not be deferred.

This implementation relies on Intersection Observer and hence works on WK2 only.

Deferred images are painted using a simple outline until fully loaded.

[1] https://github.com/whatwg/html/pull/3752/files

Tests: http/tests/lazyload/attribute.html
       http/tests/lazyload/invisible-image.html
       http/tests/lazyload/js-image.html
       http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled.html
       http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled.html
       http/tests/lazyload/lazy.html
       http/tests/lazyload/scroll-element-moved-from-document.html
       http/tests/lazyload/scroll-element-removed-from-document.html
       http/tests/lazyload/scroll.html

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::lazyLoadImageObserver):
* dom/Document.h:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::loadDeferredImage):
(WebCore::HTMLImageElement::didMoveToNewDocument):
(WebCore::HTMLImageElement::loadingForBindings const):
(WebCore::HTMLImageElement::setLoadingForBindings):
(WebCore::HTMLImageElement::isDeferred const):
(WebCore::HTMLImageElement::isLazyLoadable const):
* html/HTMLImageElement.h:
* html/HTMLImageElement.idl:
* html/LazyLoadImageObserver.cpp: Added.
(WebCore::LazyLoadImageObserver::observe):
(WebCore::LazyLoadImageObserver::unobserve):
(WebCore::LazyLoadImageObserver::intersectionObserver):
(WebCore::LazyLoadImageObserver::isObserved const):
* html/LazyLoadImageObserver.h: Added.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::loadDeferredImage):
* loader/ImageLoader.h:
(WebCore::ImageLoader::isDeferred const):
* loader/cache/CachedImage.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::clientDefersImage const):
(WebCore::CachedResourceLoader::shouldDeferImageLoad const):
(WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
* loader/cache/CachedResourceLoader.h:
* rendering/RenderImage.cpp:
(WebCore::isDeferredImage):
(WebCore::RenderImage::paintReplaced):

LayoutTests:

Import relevant tests into http/tests/lazyload.
Skip lazy image load tests for WK1 and windows, which
has IntersectionObserver turned off by default.

* TestExpectations:
* http/tests/lazyload/attribute-expected.txt: Added.
* http/tests/lazyload/attribute.html: Added.
* http/tests/lazyload/invisible-image-expected.txt: Added.
* http/tests/lazyload/invisible-image.html: Added.
* http/tests/lazyload/js-image-expected.txt: Added.
* http/tests/lazyload/js-image.html: Added.
* http/tests/lazyload/lazy-expected.txt: Added.
* http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled-expected.txt: Added.
* http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled.html: Added.
* http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled-expected.txt: Added.
* http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled.html: Added.
* http/tests/lazyload/lazy.html: Added.
* http/tests/lazyload/lazy2-expected.txt: Added.
* http/tests/lazyload/placeholder.js: Added.
(is_image_fully_loaded):
* http/tests/lazyload/resources/lazy-load-in-iframe.html: Added.
* http/tests/lazyload/scroll-element-moved-from-document-expected.txt: Added.
* http/tests/lazyload/scroll-element-moved-from-document.html: Added.
* http/tests/lazyload/scroll-element-removed-from-document-expected.txt: Added.
* http/tests/lazyload/scroll-element-removed-from-document.html: Added.
* http/tests/lazyload/scroll-expected.txt: Added.
* http/tests/lazyload/scroll.html: Added.
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:

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

9 months agoMove StyleResolver::applyProperty to PropertyCascade
antti@apple.com [Sat, 26 Oct 2019 15:15:20 +0000 (15:15 +0000)]
Move StyleResolver::applyProperty to PropertyCascade
https://bugs.webkit.org/show_bug.cgi?id=203458

Reviewed by Zalan Bujtas.

Move the more of the property applying code out of StyleResolver.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyPropertyToCurrentStyle):
(WebCore::isValidVisitedLinkProperty): Deleted.
(WebCore::StyleResolver::applyProperty): Deleted.
(WebCore::StyleResolver::resolvedVariableValue const): Deleted.
* css/StyleResolver.h:
* style/PropertyCascade.cpp:
(WebCore::Style::isValidVisitedLinkProperty):
(WebCore::Style::PropertyCascade::applyCustomProperty):
(WebCore::Style::PropertyCascade::propertyCascadeForRollback):
(WebCore::Style::PropertyCascade::applyProperty):
(WebCore::Style::PropertyCascade::resolveValue):
(WebCore::Style::PropertyCascade::resolvedVariableValue):
* style/PropertyCascade.h:
(WebCore::Style::PropertyCascade::property const):
(WebCore::Style::PropertyCascade::property): Deleted.
(WebCore::Style::PropertyCascade::hasAppliedProperty const): Deleted.

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

9 months agoImport css/css-syntax WPT tests
simon.fraser@apple.com [Sat, 26 Oct 2019 15:10:06 +0000 (15:10 +0000)]
Import css/css-syntax WPT tests
https://bugs.webkit.org/show_bug.cgi?id=203444

Reviewed by Antti Koivisto.

Imported from WPT at 5eebc927c57ec8c5e234fef8e4cc480ac339462c (Mon Oct 21 20:23:09 2019 +0100).

* resources/import-expectations.json:
* resources/resource-files.json:
* web-platform-tests/css/css-syntax/META.yml: Added.
* web-platform-tests/css/css-syntax/anb-parsing-expected.txt: Added.
* web-platform-tests/css/css-syntax/anb-parsing.html: Added.
* web-platform-tests/css/css-syntax/anb-serialization-expected.txt: Added.
* web-platform-tests/css/css-syntax/anb-serialization.html: Added.
* web-platform-tests/css/css-syntax/cdc-vs-ident-tokens-expected.txt: Added.
* web-platform-tests/css/css-syntax/cdc-vs-ident-tokens.html: Added.
* web-platform-tests/css/css-syntax/charset-is-not-a-rule-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset-is-not-a-rule.html: Added.
* web-platform-tests/css/css-syntax/charset/.htaccess: Added.
* web-platform-tests/css/css-syntax/charset/MANIFEST: Added.
* web-platform-tests/css/css-syntax/charset/page-utf16-css-bomless-utf16-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-utf16-css-bomless-utf16.html: Added.
* web-platform-tests/css/css-syntax/charset/page-utf16-css-bomless-utf16be-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-utf16-css-bomless-utf16be.html: Added.
* web-platform-tests/css/css-syntax/charset/page-utf16-css-no-decl-ascii-only-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-utf16-css-no-decl-ascii-only.html: Added.
* web-platform-tests/css/css-syntax/charset/page-utf16-css-no-decl-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-utf16-css-no-decl.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-charset-attribute-bogus-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-charset-attribute-bogus.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-1250-charset-attribute-windows-1253-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-1250-charset-attribute-windows-1253.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-bogus-charset-attribute-windows-1250-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-bogus-charset-attribute-windows-1250.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-bogus-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-bogus.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-utf16-ascii-only-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-utf16-ascii-only.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-utf16-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-utf16.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-utf16be-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-utf16be.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-windows-1250-in-utf16-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-windows-1250-in-utf16.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-windows-1250-in-utf16be-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-at-charset-windows-1250-in-utf16be.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-http-bogus-at-charset-windows-1250-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-http-bogus-at-charset-windows-1250.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-http-bogus-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-http-bogus.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-http-windows-1250-at-charset-windows-1253-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-http-windows-1250-at-charset-windows-1253.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-no-decl-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-no-decl.html: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-utf8-bom-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/page-windows-1251-css-utf8-bom.html: Added.
* web-platform-tests/css/css-syntax/charset/support/MANIFEST: Added.
* web-platform-tests/css/css-syntax/charset/support/at-charset-bogus.css: Added.
(@charset "bogus";):
* web-platform-tests/css/css-syntax/charset/support/at-charset-utf16-ascii-only.css: Added.
(@charset "utf-16";):
* web-platform-tests/css/css-syntax/charset/support/at-charset-utf16.css: Added.
(@charset "utf-16";):
* web-platform-tests/css/css-syntax/charset/support/at-charset-utf16be.css: Added.
(@charset "utf-16be";):
* web-platform-tests/css/css-syntax/charset/support/at-charset-windows-1250-in-utf16.css: Added.
* web-platform-tests/css/css-syntax/charset/support/at-charset-windows-1250-in-utf16be.css: Added.
* web-platform-tests/css/css-syntax/charset/support/at-charset-windows-1250.css: Added.
(@charset "windows-1250";):
* web-platform-tests/css/css-syntax/charset/support/bomless-utf16.css: Added.
* web-platform-tests/css/css-syntax/charset/support/bomless-utf16be.css: Added.
* web-platform-tests/css/css-syntax/charset/support/http-bogus-at-charset-windows-1250.bogus.css: Added.
(@charset "windows-1250";):
* web-platform-tests/css/css-syntax/charset/support/http-bogus-at-charset-windows-1250.bogus.css.headers: Added.
* web-platform-tests/css/css-syntax/charset/support/http-bogus.bogus.css: Added.
(#È):
* web-platform-tests/css/css-syntax/charset/support/http-bogus.bogus.css.headers: Added.
* web-platform-tests/css/css-syntax/charset/support/http-windows-1250-at-charset-windows-1253.windows1250.css: Added.
(@charset "windows-1253";):
* web-platform-tests/css/css-syntax/charset/support/http-windows-1250-at-charset-windows-1253.windows1250.css.headers: Added.
* web-platform-tests/css/css-syntax/charset/support/no-decl-ascii-only.css: Added.
(#foo):
* web-platform-tests/css/css-syntax/charset/support/no-decl.css: Added.
(#È):
* web-platform-tests/css/css-syntax/charset/support/utf8-bom.css: Added.
(#È):
* web-platform-tests/css/css-syntax/charset/support/w3c-import.log: Added.
* web-platform-tests/css/css-syntax/charset/w3c-import.log: Added.
* web-platform-tests/css/css-syntax/charset/xml-stylesheet-page-windows-1251-charset-attribute-windows-1250-expected.txt: Added.
* web-platform-tests/css/css-syntax/charset/xml-stylesheet-page-windows-1251-charset-attribute-windows-1250.xhtml: Added.
* web-platform-tests/css/css-syntax/decimal-points-in-numbers-expected.txt: Added.
* web-platform-tests/css/css-syntax/decimal-points-in-numbers.html: Added.
* web-platform-tests/css/css-syntax/declarations-trim-whitespace-expected.txt: Added.
* web-platform-tests/css/css-syntax/declarations-trim-whitespace.html: Added.
* web-platform-tests/css/css-syntax/escaped-eof-expected.txt: Added.
* web-platform-tests/css/css-syntax/escaped-eof.html: Added.
* web-platform-tests/css/css-syntax/ident-three-code-points-expected.txt: Added.
* web-platform-tests/css/css-syntax/ident-three-code-points.html: Added.
* web-platform-tests/css/css-syntax/inclusive-ranges-expected.txt: Added.
* web-platform-tests/css/css-syntax/inclusive-ranges.html: Added.
* web-platform-tests/css/css-syntax/input-preprocessing-expected.txt: Added.
* web-platform-tests/css/css-syntax/input-preprocessing.html: Added.
* web-platform-tests/css/css-syntax/serialize-consecutive-tokens-expected.txt: Added.
* web-platform-tests/css/css-syntax/serialize-consecutive-tokens.html: Added.
* web-platform-tests/css/css-syntax/unclosed-constructs-expected.txt: Added.
* web-platform-tests/css/css-syntax/unclosed-constructs.html: Added.
* web-platform-tests/css/css-syntax/unclosed-url-at-eof-expected.txt: Added.
* web-platform-tests/css/css-syntax/unclosed-url-at-eof.html: Added.
* web-platform-tests/css/css-syntax/unicode-range-selector-expected.txt: Added.
* web-platform-tests/css/css-syntax/unicode-range-selector.html: Added.
* web-platform-tests/css/css-syntax/urange-parsing-expected.txt: Added.
* web-platform-tests/css/css-syntax/urange-parsing.html: Added.
* web-platform-tests/css/css-syntax/url-whitespace-consumption-expected.txt: Added.
* web-platform-tests/css/css-syntax/url-whitespace-consumption.html: Added.
* web-platform-tests/css/css-syntax/w3c-import.log: Added.
* web-platform-tests/css/css-syntax/whitespace-expected.txt: Added.
* web-platform-tests/css/css-syntax/whitespace.html: Added.

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

9 months agoUpdate css/support directory in WPT
simon.fraser@apple.com [Sat, 26 Oct 2019 14:50:23 +0000 (14:50 +0000)]
Update css/support directory in WPT
https://bugs.webkit.org/show_bug.cgi?id=203452

Reviewed by Antti Koivisto.

Various WPT are relying on new functionality in css/support (e.g. test_shorthand_value).
In addition, the behavior for testing computed style of properties which don't exist has changed,
causing changes in test output.

* resources/import-expectations.json:
* web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
* web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt:
* web-platform-tests/css/css-animations/parsing/animation-timing-function-computed-expected.txt:
* web-platform-tests/css/css-images/inheritance-expected.txt:
* web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt:
* web-platform-tests/css/css-images/parsing/image-rendering-computed-expected.txt:
* web-platform-tests/css/css-images/parsing/object-fit-computed-expected.txt:
* web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt:
* web-platform-tests/css/css-overflow/inheritance-expected.txt:
* web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt:
* web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt:
* web-platform-tests/css/css-shapes/parsing/shape-outside-computed-expected.txt:
* web-platform-tests/css/css-text/inheritance-expected.txt:
* web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt:
* web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt:
* web-platform-tests/css/css-values/clamp-length-computed-expected.txt:
* web-platform-tests/css/css-values/minmax-length-computed-expected.txt:
* web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt:
* web-platform-tests/css/cssom-view/inheritance-expected.txt:
* web-platform-tests/css/support/computed-testcommon.js:
(test_computed_value):
* web-platform-tests/css/support/inheritance-testcommon.js:
(assert_initial):
* web-platform-tests/css/support/parsing-testcommon.js:
* web-platform-tests/css/support/w3c-import.log:

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

9 months ago[LFC][IFC] Completely collapsed runs should not have advance width
zalan@apple.com [Sat, 26 Oct 2019 12:53:00 +0000 (12:53 +0000)]
[LFC][IFC] Completely collapsed runs should not have advance width
https://bugs.webkit.org/show_bug.cgi?id=203457
<rdar://problem/56645024>

Reviewed by Antti Koivisto.

Let's reset the advance width for completely collapsed runs (any a collapsible space immediatelly following another
collapsible space).
https://drafts.csswg.org/css-text-3/#white-space-phase-1

* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
* layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
* layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::canBeExtended const):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::trailingTrimmableWidth const):
(WebCore::Layout::Line::appendTextContent):
* layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::isCollapsedToZeroAdvanceWidth const):
(WebCore::Layout::Line::Run::setCollapsesToZeroAdvanceWidth):
(WebCore::Layout::Line::Run::isVisuallyEmpty const): Deleted.
(WebCore::Layout::Line::Run::setVisuallyIsEmpty): Deleted.

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

9 months agoBuild cascade in PropertyCascade constructor
antti@apple.com [Sat, 26 Oct 2019 12:47:05 +0000 (12:47 +0000)]
Build cascade in PropertyCascade constructor
https://bugs.webkit.org/show_bug.cgi?id=203455

Reviewed by Zalan Bujtas.

Instead of calling addNormalMatches/addImportantMatches several times, clients now simply
pass the desired cascade levels to the constructor.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyPropertyToCurrentStyle):
* style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::PropertyCascade):
(WebCore::Style::PropertyCascade::addMatch):
(WebCore::Style::PropertyCascade::addNormalMatches):

Return if there were any important matches so we may skip the step later.

(WebCore::Style::PropertyCascade::addImportantMatches):
(WebCore::Style::PropertyCascade::applyDeferredProperties):
(WebCore::Style::PropertyCascade::applyPropertiesImpl):
(WebCore::Style::PropertyCascade::propertyCascadeForRollback):
(WebCore::Style::PropertyCascade::applyProperty):
(WebCore::Style::PropertyCascade::Property::apply): Deleted.

Also make this PropertyCascade::applyProperty

* style/PropertyCascade.h:

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

9 months ago[GTK] LayoutTests/inspector tests timeout
yurys@chromium.org [Sat, 26 Oct 2019 07:31:25 +0000 (07:31 +0000)]
[GTK] LayoutTests/inspector tests timeout
https://bugs.webkit.org/show_bug.cgi?id=147518

Unreviewed. Added missing generic test expectation (it was accidentally placed under platform/mac).

* inspector/model/remote-object-dom-expected.txt: Renamed from LayoutTests/platform/mac/inspector/model/remote-object-dom-expected.txt.

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

9 months agoPut OffscreenCanvas behind a build flag
commit-queue@webkit.org [Sat, 26 Oct 2019 07:12:47 +0000 (07:12 +0000)]
Put OffscreenCanvas behind a build flag
https://bugs.webkit.org/show_bug.cgi?id=203146

Patch by Chris Lord <clord@igalia.com> on 2019-10-26
Reviewed by Ryosuke Niwa.

.:

Put OffscreenCanvas behind a build flag and enable building with
experimental features on GTK and WPE.

* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:
* Source/cmake/WebKitFeatures.cmake:

LayoutTests/imported/w3c:

OffscreenCanvas is disabled by default, adjust expectations accordingly.

* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
* web-platform-tests/html/dom/idlharness.https-expected.txt:
* web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt:

PerformanceTests:

* StitchMarker/wtf/FeatureDefines.h:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests. No behavior changes.

* Configurations/FeatureDefines.xcconfig:
* bindings/js/JSEventTargetCustom.cpp:
* bindings/js/JSOffscreenCanvasRenderingContext2DCustom.cpp:
* dom/EventTargetFactory.in:
* html/ImageBitmap.idl:
* html/OffscreenCanvas.cpp:
* html/OffscreenCanvas.h:
* html/OffscreenCanvas.idl:
* html/canvas/CanvasRenderingContext.cpp:
* html/canvas/ImageBitmapRenderingContext.idl:
* html/canvas/OffscreenCanvasRenderingContext2D.cpp:
* html/canvas/OffscreenCanvasRenderingContext2D.h:
* html/canvas/OffscreenCanvasRenderingContext2D.idl:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::canvas):
* html/canvas/WebGLRenderingContextBase.h:
* html/canvas/WebGLRenderingContextBase.idl:
* inspector/agents/InspectorCanvasAgent.cpp:
* page/PageConsoleClient.cpp:
(WebCore::canvasRenderingContext):
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setImageBitmapEnabled):
(WebCore::RuntimeEnabledFeatures::imageBitmapEnabled const):
(WebCore::RuntimeEnabledFeatures::setOffscreenCanvasEnabled):
(WebCore::RuntimeEnabledFeatures::offscreenCanvasEnabled const):
* page/WindowOrWorkerGlobalScope.idl:

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Split the ImageBitmapOffscreenCanvas setting into two separate
settings so OffscreenCanvas can be disabled at build time.

* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::WebInspectorUI):

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/FeatureDefines.h:

Tools:

Put OffscreenCanvas behind a build flag and enable the runtime setting
when running tests on platforms where it's built (GTK and WPE).

* Scripts/webkitperl/FeatureList.pm:
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setOffscreenCanvasEnabled):
* WebKitTestRunner/InjectedBundle/TestRunner.h:

Websites/webkit.org:

Update to reflect split ImageBitmapOffscreenCanvas settings.

* experimental-features.html:

LayoutTests:

OffscreenCanvas is disabled by default except on GTK/WPE. Adjust test
expectations accordingly.

* TestExpectations:
* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt.
* platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt.
* platform/gtk/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt.
* platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
* platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
* platform/wpe/TestExpectations:
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt.
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt.
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt.
* platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt.
* platform/wpe/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt.

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

9 months agoWeb Inspector: remove custom expectations from platform/gtk/inspector-protocol
yurys@chromium.org [Sat, 26 Oct 2019 06:45:21 +0000 (06:45 +0000)]
Web Inspector: remove custom expectations from platform/gtk/inspector-protocol
https://bugs.webkit.org/show_bug.cgi?id=203453

Unreviewed, test expectations cleanup.

* platform/gtk/inspector-protocol/debugger/setBreakpoint-dfg-and-modify-local-expected.txt: Removed.
* platform/gtk/inspector-protocol/debugger/setBreakpoint-dfg-expected.txt: Removed.
* platform/gtk/inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt: Removed.
Removed platform/gtk/inspector-protocol altogether as there is no LayoutTests/inspector-protocol
folder any more. Corresponding tests were either deleted or moved to LayoutTests/inspector a while ago.

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

9 months ago[GTK] Layout test inspector-protocol/debugger/setBreakpoint-dfg-callee-and-examine...
yurys@chromium.org [Sat, 26 Oct 2019 06:12:14 +0000 (06:12 +0000)]
[GTK] Layout test inspector-protocol/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=139359

Reviewed by Devin Rousso.

Renable the test on all platforms. With the current implementation of inspector client in tests
response to Debugger.resume is dispatched in the front-end synchronously and the front-end would
call InspectoTest.log when inspected script execution is not yet resumed.

* inspector/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local-expected.txt:
* inspector/debugger/setBreakpoint-dfg-callee-and-examine-dfg-local.html:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:

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

9 months agoREGRESSION(r251599): Crash in MobileSafari tests (ASSERTION FAILED: m_pendingRequestT...
cdumez@apple.com [Sat, 26 Oct 2019 04:53:33 +0000 (04:53 +0000)]
REGRESSION(r251599): Crash in MobileSafari tests (ASSERTION FAILED: m_pendingRequestToSuspendID)
https://bugs.webkit.org/show_bug.cgi?id=203437
<rdar://problem/56633399>

Reviewed by Geoffrey Garen.

* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::updateAssertionIfNeeded):
Start the timer before sending the PrepareToSuspend IPC. The reason is that if the process has been
terminated, the completion handler may run synchronously and cancel the request to suspend / stop
the timer. Therefore, re-starting the timer after would be a mistake.

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

9 months agoSupport for callbacks for manifest events
eric.carlson@apple.com [Sat, 26 Oct 2019 02:38:39 +0000 (02:38 +0000)]
Support for callbacks for manifest events
https://bugs.webkit.org/show_bug.cgi?id=202101
<rdar://problem/54277362>

Reviewed by Jer Noble.
Source/WebCore:

Use AVPlayerItemMetadataCollector to get manifest based time metadata. Use
AVPlayerItemMetadataOutput to get time metadata instead of listening for a "timedMetadata"
KVO on AVPlayer.

No new tests, existing test updated.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::globalMetadataProcessingQueue):
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::metadataType):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataGroupDidArrive):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
(WebCore::itemKVOProperties):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver metadataOutput:didOutputTimedMetadataGroups:fromPlayerItemTrack:]):
(-[WebCoreAVFMovieObserver metadataCollector:didCollectDateRangeMetadataGroups:indexesOfNewGroups:indexesOfModifiedGroups:]):

Source/WebCore/PAL:

* pal/cocoa/AVFoundationSoftLink.h:
* pal/cocoa/AVFoundationSoftLink.mm:

LayoutTests:

* http/tests/media/resources/hls/metadata/prog_index.m3u8:
* http/tests/media/track-in-band-hls-metadata-expected.txt:
* http/tests/media/track-in-band-hls-metadata.html:

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

9 months ago[iOS WK2] fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta...
wenson_hsieh@apple.com [Sat, 26 Oct 2019 02:36:20 +0000 (02:36 +0000)]
[iOS WK2] fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196298
<rdar://problem/49337021>

Reviewed by Simon Fraser.

* fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt:
* fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html:

Adjust this flaky layout test so that it's more robust:
-   Begin the test after the first visible content rect update following the load event.
-   Add an initial step to the test to sanity check the viewport dimensions when setting the minimum effective
    device width to 0.
-   At each step, instead of waiting for the next visible content rect update and presentation update, simply
    wait for the window width to reach the expected value.

From local testing, this brings the test failure rate down from ~25 failures in 1000 runs to 0 failures.

* platform/ios-simulator-wk2/TestExpectations:
* platform/ios/TestExpectations:

Remove the failing test expectations.

* platform/ipad/fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt:

Adjust the text expectations so that they contain an entry for setMinimumEffectiveWidth(0) as well.

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

9 months agoWeb Inspector: Styles: un-experimentalize showing rule icons
drousso@apple.com [Sat, 26 Oct 2019 01:57:43 +0000 (01:57 +0000)]
Web Inspector: Styles: un-experimentalize showing rule icons
https://bugs.webkit.org/show_bug.cgi?id=203308

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector):

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

9 months ago[Quick Look] Move the QLPreviewConverter delegate into PreviewConverter and vend...
aestes@apple.com [Sat, 26 Oct 2019 01:48:04 +0000 (01:48 +0000)]
[Quick Look] Move the QLPreviewConverter delegate into PreviewConverter and vend a C++ client interface
https://bugs.webkit.org/show_bug.cgi?id=203396

Reviewed by Alex Christensen.

Source/WebCore:

PreviewConverter existed as a thin wrapper around QLPreviewConverter for use by
LegacyPreviewLoader and Quick Look NSData loading in WebKitLegacy. This patch makes two
changes to this arrangement:

1. The QLPreviewConverter delegate and the bulk of the conversion state machine was moved
into PreviewConverter, which now vends a C++ client interface. LegacyPreviewLoader is now a
client of its PreviewConverter, retaining the responsiility of interacting with the
ResourceLoader and LegacyPreviewLoaderClient.

2. The Quick Look NSData loading code for WebKitLegacy now uses QLPreviewConverter API
directly rather than creating a PreviewConverter. This code path does not require a delegate
nor any of the other logic in PreviewConverter.

This change also organizes PreviewConverter into a cross-platform .cpp file and an
iOS-specific .mm file for the direct usage of QLPreviewConverter API. LegacyPreviewConverter
was also organized such that it can be changed from .mm to .cpp in a future patch.

No change in behavior. Covered by existing API and layout tests.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setPreviewConverter):
* loader/DocumentLoader.h: Changed m_previewConverter from std::unique_ptr to RefPtr.

* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse): Used makeUnique directly instead of
LegacyPreviewLoader::create().

* loader/ios/LegacyPreviewLoader.h: Privately inherited from PreviewConverterClient and
PreviewConverterProvider and migrated WebPreviewLoader ivars to member variables.

* loader/ios/LegacyPreviewLoader.mm:
(WebCore::makeClient):
(WebCore::LegacyPreviewLoader::didReceiveBuffer):
(WebCore::LegacyPreviewLoader::didFinishLoading):
(WebCore::LegacyPreviewLoader::didFail):
(WebCore::LegacyPreviewLoader::previewConverterDidStartConverting):
(WebCore::LegacyPreviewLoader::previewConverterDidReceiveData):
(WebCore::LegacyPreviewLoader::previewConverterDidFinishConverting):
(WebCore::LegacyPreviewLoader::previewConverterDidFailUpdating):
(WebCore::LegacyPreviewLoader::previewConverterDidFailConverting):
(WebCore::LegacyPreviewLoader::providePasswordForPreviewConverter):
(WebCore::LegacyPreviewLoader::provideMainResourceForPreviewConverter):
(WebCore::LegacyPreviewLoader::LegacyPreviewLoader):
(WebCore::LegacyPreviewLoader::didReceiveData):
(WebCore::LegacyPreviewLoader::didReceiveResponse):
(testingClient): Deleted.
(emptyClient): Deleted.
(-[WebPreviewLoader initWithResourceLoader:resourceResponse:]): Deleted.
(-[WebPreviewLoader appendDataArray:]): Deleted.
(-[WebPreviewLoader finishedAppending]): Deleted.
(-[WebPreviewLoader failed]): Deleted.
(-[WebPreviewLoader _loadPreviewIfNeeded]): Deleted.
(-[WebPreviewLoader connection:didReceiveData:lengthReceived:]): Deleted.
(-[WebPreviewLoader connectionDidFinishLoading:]): Deleted.
(isQuickLookPasswordError): Deleted.
(-[WebPreviewLoader connection:didFailWithError:]): Deleted.
(WebCore::LegacyPreviewLoader::~LegacyPreviewLoader): Deleted.
(WebCore::LegacyPreviewLoader::create): Deleted.

* platform/PreviewConverter.cpp: Added.
(WebCore::PreviewConverter::supportsMIMEType):
(WebCore::PreviewConverter::previewResponse const):
(WebCore::PreviewConverter::previewError const):
(WebCore::PreviewConverter::previewData const):
(WebCore::PreviewConverter::updateMainResource):
(WebCore::PreviewConverter::appendFromBuffer):
(WebCore::PreviewConverter::finishUpdating):
(WebCore::PreviewConverter::failedUpdating):
(WebCore::PreviewConverter::hasClient const):
(WebCore::PreviewConverter::addClient):
(WebCore::PreviewConverter::removeClient):
(WebCore::sharedPasswordForTesting):
(WebCore::PreviewConverter::passwordForTesting):
(WebCore::PreviewConverter::setPasswordForTesting):
(WebCore::PreviewConverter::iterateClients):
(WebCore::PreviewConverter::didAddClient):
(WebCore::PreviewConverter::didFailConvertingWithError):
(WebCore::PreviewConverter::didFailUpdating):
(WebCore::PreviewConverter::replayToClient):
(WebCore::PreviewConverter::delegateDidReceiveData):
(WebCore::PreviewConverter::delegateDidFinishLoading):
(WebCore::PreviewConverter::delegateDidFailWithError):
* platform/PreviewConverter.h:
(WebCore::PreviewConverter::PreviewConverter): Deleted.
(WebCore::PreviewConverter::platformConverter const): Deleted.
* platform/PreviewConverterClient.h: Copied from Source/WebCore/platform/PreviewConverter.h.
* platform/PreviewConverterProvider.h: Copied from Source/WebCore/platform/PreviewConverter.h.
* platform/ios/PreviewConverterIOS.mm:
(-[WebPreviewConverterDelegate initWithDelegate:]):
(-[WebPreviewConverterDelegate connection:didReceiveData:lengthReceived:]):
(-[WebPreviewConverterDelegate connectionDidFinishLoading:]):
(-[WebPreviewConverterDelegate connection:didFailWithError:]):
(WebCore::PreviewConverter::PreviewConverter):
(WebCore::PreviewConverter::platformSupportedMIMETypes):
(WebCore::PreviewConverter::safeRequest const):
(WebCore::PreviewConverter::platformPreviewResponse const):
(WebCore::PreviewConverter::platformAppend):
(WebCore::PreviewConverter::platformFinishedAppending):
(WebCore::PreviewConverter::platformFailedAppending):
(WebCore::PreviewConverter::isPlatformPasswordError const):
(WebCore::optionsWithPassword):
(WebCore::PreviewConverter::platformUnlockWithPassword):
(WebCore::PreviewConverter::supportsMIMEType): Deleted.
(WebCore::PreviewConverter::previewRequest const): Deleted.
(WebCore::PreviewConverter::previewResponse const): Deleted.

* platform/ios/QuickLook.mm:
(WebCore::registerQLPreviewConverterIfNeeded): Used QLPreviewConverter directly.

Source/WebCore/PAL:

* pal/spi/ios/QuickLookSPI.h:

Source/WTF:

* wtf/FeatureDefines.h: Defined ENABLE_PREVIEW_CONVERTER.

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

9 months agoAdjust a layout test after r251522
wenson_hsieh@apple.com [Sat, 26 Oct 2019 01:40:25 +0000 (01:40 +0000)]
Adjust a layout test after r251522
https://bugs.webkit.org/show_bug.cgi?id=202663

Reviewed by Simon Fraser.

Fix relative file paths when including ui-helper.js and basic-gestures.js.

* fast/events/touch/ios/long-press-on-link.html:

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

9 months ago[GTK] LayoutTests/inspector tests timeout
yurys@chromium.org [Sat, 26 Oct 2019 01:21:30 +0000 (01:21 +0000)]
[GTK] LayoutTests/inspector tests timeout
https://bugs.webkit.org/show_bug.cgi?id=147518

Reviewed by Devin Rousso.

Renable inspector/model tests on GTK.

* TestExpectations: There are two real issues that actually happen on all platforms,
filed separate bugs for each of them.
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:

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

9 months agoWeb Inspector: support emulateUserGesture parameter in Runtime.callFunctionOn
yurys@chromium.org [Sat, 26 Oct 2019 01:10:59 +0000 (01:10 +0000)]
Web Inspector: support emulateUserGesture parameter in Runtime.callFunctionOn
https://bugs.webkit.org/show_bug.cgi?id=200262

Reviewed by Devin Rousso.

Source/JavaScriptCore:

* inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::callFunctionOn):
* inspector/agents/InspectorRuntimeAgent.h:
* inspector/protocol/Runtime.json:

Source/WebCore:

Support emulateUserGesture in Runtime.callFunctionOn

Tests: inspector/runtime/callFunctionOn-emulateUserGesture-userIsInteracting.html
       inspector/runtime/callFunctionOn-emulateUserGesture.html

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* inspector/agents/page/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::evaluateOnCallFrame):
* inspector/agents/page/PageRuntimeAgent.cpp:
(WebCore::asBool):
(WebCore::PageRuntimeAgent::evaluate):
(WebCore::PageRuntimeAgent::callFunctionOn):
* inspector/agents/page/PageRuntimeAgent.h:
* inspector/agents/page/UserGestureEmulationScope.cpp: Added.
(WebCore::UserGestureEmulationScope::UserGestureEmulationScope): Extracted logic
of overriding user gesture into the scope object to share it between evaluate and
callFunctionOn as well as PageDebuggerAgent::evaluateOnCallFrame.
(WebCore::UserGestureEmulationScope::~UserGestureEmulationScope):
* inspector/agents/page/UserGestureEmulationScope.h: Added.

LayoutTests:

Supported emulateUserGesture in Runtime.callFunctionOn protocol command.

* TestExpectations:
* inspector/runtime/callFunctionOn-emulateUserGesture-expected.txt: Added.
* inspector/runtime/callFunctionOn-emulateUserGesture-userIsInteracting-expected.txt: Added.
* inspector/runtime/callFunctionOn-emulateUserGesture-userIsInteracting.html: Added.
* inspector/runtime/callFunctionOn-emulateUserGesture.html: Added.
* platform/wk2/TestExpectations:
Only enable the new test on WK2, as the user interaction state is only supported by WK2.

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

9 months agoFix autoscroll test specifically for iPad
megan_gardner@apple.com [Sat, 26 Oct 2019 01:03:59 +0000 (01:03 +0000)]
Fix autoscroll test specifically for iPad
https://bugs.webkit.org/show_bug.cgi?id=203392
<rdar://problem/51712479>

Reviewed by Wenson Hsieh.

On iPad, we only have one gesture that will set off the magnified caret gesture.
If we touch in the same point as where we touched to focus the element, in the
test environment, nothing resets the positionInformation, which then erroneously
thinks that there is no focused element, which then blocks the caret gesture from
starting. The easiest fix for this is to not have the point to focus the element
be the same point that we use to start the caret gesture.

* fast/events/touch/ios/drag-to-autoscroll-in-single-line-editable.html:

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

9 months agoREGRESSION (r251261?): Flaky Test: inspector/runtime/getProperties.html
sihui_liu@apple.com [Sat, 26 Oct 2019 00:53:17 +0000 (00:53 +0000)]
REGRESSION (r251261?): Flaky Test: inspector/runtime/getProperties.html
https://bugs.webkit.org/show_bug.cgi?id=203271
<rdar://problem/56557216>

Reviewed by Devin Rousso.

r251261 was reverted and the test has become not so flaky, but the previous flakiness showed us a potential bug
in the test: it is possible that the console message for unhandled rejected promise gets dispatched after
dumping the results. To make the test more robust, stop showing that message in console.

* inspector/runtime/getProperties-expected.txt:
* inspector/runtime/getProperties.html:

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

9 months ago[LFC][IFC] Remove redundant LineLayout::LineInput c'tor
zalan@apple.com [Sat, 26 Oct 2019 00:46:07 +0000 (00:46 +0000)]
[LFC][IFC] Remove redundant LineLayout::LineInput c'tor
https://bugs.webkit.org/show_bug.cgi?id=203425
<rdar://problem/56624666>

Reviewed by Antti Koivisto.

Move the SkipAligment paramenter to the LineLayout from LineLayout::LineInput, because it's the property of the layout and not an input to the actual line.

* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
* layout/inlineformatting/InlineLineLayout.cpp:
(WebCore::Layout::LineLayout::LineInput::LineInput):
(WebCore::Layout::LineLayout::LineLayout):
* layout/inlineformatting/InlineLineLayout.h:

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

9 months agoUnused arguments in MESSAGE_CHECK_CONTEXTID() macros
ddkilzer@apple.com [Sat, 26 Oct 2019 00:37:31 +0000 (00:37 +0000)]
Unused arguments in MESSAGE_CHECK_CONTEXTID() macros
<https://webkit.org/b/203389>
<rdar://problem/55935374>

Reviewed by Alex Christensen.

* UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(#define MESSAGE_CHECK_CONTEXTID):
- Rename macro argument from `contextID` to `identifier`
  and change `contextId`to `identifier` in the body of
  the macro so that the argument is always used.
(WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):
(WebKit::PlaybackSessionManagerProxy::currentTimeChanged):
(WebKit::PlaybackSessionManagerProxy::bufferedTimeChanged):
(WebKit::PlaybackSessionManagerProxy::seekableRangesVectorChanged):
(WebKit::PlaybackSessionManagerProxy::canPlayFastReverseChanged):
(WebKit::PlaybackSessionManagerProxy::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionManagerProxy::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionManagerProxy::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionManagerProxy::externalPlaybackPropertiesChanged):
(WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionManagerProxy::mutedChanged):
(WebKit::PlaybackSessionManagerProxy::volumeChanged):
(WebKit::PlaybackSessionManagerProxy::durationChanged):
(WebKit::PlaybackSessionManagerProxy::playbackStartedTimeChanged):
(WebKit::PlaybackSessionManagerProxy::rateChanged):
(WebKit::PlaybackSessionManagerProxy::pictureInPictureSupportedChanged):
(WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::handleControlledElementIDResponse const):
- Change `contextID` to `contextId` to match local variable name
  now that MESSAGE_CHECK_CONTEXTID() doesn't paper over this
  typo for us.

* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(#define MESSAGE_CHECK_CONTEXTID):
- Rename macro argument from `contextID` to `identifier`
  and change `contextId`to `identifier` in the body of
  the macro so that the argument is always used.

* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(#define MESSAGE_CHECK_CONTEXTID):
- Rename macro argument and variable in the body of the
  macro from `id` to `identifier` for consistency.

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

9 months agoREGRESSION: fast/css/paint-order.html and fast/css/paint-order-shadow.html are failing
pvollan@apple.com [Sat, 26 Oct 2019 00:21:39 +0000 (00:21 +0000)]
REGRESSION: fast/css/paint-order.html and fast/css/paint-order-shadow.html are failing
https://bugs.webkit.org/show_bug.cgi?id=203313
<rdar://problem/52557916>

Reviewed by Alexey Proskuryakov.

Catalina introduced a regression, causing these tests to fail. This was not a regression related to the feature these
tests are testing, but a regression related to the rendering position and size of a specific glyph. Given this, the
tests are changed to take this into consideration, making them pass both on Catalina and previous versions of the OS.

* fast/css/paint-order-expected.html:
* fast/css/paint-order-shadow-expected.html:
* fast/css/paint-order-shadow.html:
* fast/css/paint-order.html:
* platform/mac/TestExpectations:

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

9 months agomacCatalyst: Build failures in projects that have both AppKit and WAK headers
timothy_horton@apple.com [Sat, 26 Oct 2019 00:16:00 +0000 (00:16 +0000)]
macCatalyst: Build failures in projects that have both AppKit and WAK headers
https://bugs.webkit.org/show_bug.cgi?id=203429
<rdar://problem/56598370>

Reviewed by Sam Weinig.

* platform/ios/wak/WAKAppKitStubs.h:
Slightly abuse the preprocessor to avoid errors due to redefining AppKit symbols.

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