WebKit.git
7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 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

7 months agoPython 3: Add support in webkitpy.common.checkout
jbedard@apple.com [Sat, 26 Oct 2019 00:00:31 +0000 (00:00 +0000)]
Python 3: Add support in webkitpy.common.checkout
https://bugs.webkit.org/show_bug.cgi?id=201956

Reviewed by Dewei Zhu.

* Scripts/test-webkitpy-python3: Add webkitpy.common.checkout.
* Scripts/webkitpy/common/checkout/changelog.py: Import Python 3 compatible unicdoe.
* Scripts/webkitpy/common/checkout/changelog_unittest.py: Import Python 3 compatible StringIO.
* Scripts/webkitpy/common/checkout/checkout.py: Use Python 3 compatible reduce.
(Checkout._modified_files_matching_predicate): Convert iterators into lists before returning.
(Checkout.suggested_reviewers): Ditto.
* Scripts/webkitpy/common/checkout/checkout_mock.py: Use full import paths.
* Scripts/webkitpy/common/checkout/checkout_unittest.py: Use full import paths, convert
iterators into lists.
* Scripts/webkitpy/common/checkout/diff_parser_unittest.py: Use full import paths, use Python 3
compatible StringIO.
* Scripts/webkitpy/common/config/committers.py:
(Contributor.__hash__): Committers need to be hashable to be inserted into a set.

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

7 months ago[iOS] Fix sandbox violations seen while running layout tests
pvollan@apple.com [Sat, 26 Oct 2019 00:00:31 +0000 (00:00 +0000)]
[iOS] Fix sandbox violations seen while running layout tests
https://bugs.webkit.org/show_bug.cgi?id=203419

Reviewed by Brent Fulgham.

Deny mach lookup to 'com.apple.logd' and 'com.apple.logd.events' and suppress logs, since these are
believed to be unneeded in the WebContent process. Allow sysctl write to 'vm.footprint_suspend'.
Deny mach lookup to 'com.apple.system.notification_center' and suppress logs, since allowing this
is not believed to be needed in the WebContent process.

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@251612 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 months agoMove more cascade related code from StyleResolver to PropertyCascade
antti@apple.com [Fri, 25 Oct 2019 23:22:51 +0000 (23:22 +0000)]
Move more cascade related code from StyleResolver to PropertyCascade
https://bugs.webkit.org/show_bug.cgi?id=203409

Reviewed by Zalan Bujtas.

- Move a bunch of StyleResolver member functions to PropertyCascade.
- Make ApplyCascadedPropertyState part of the PropertyCascade internal state.
- Pass around a reference to the PropertyCascade itself instead of the state object
  The state contained PropertyCascade member already so this is equivalent but simpler.

* css/CSSVariableReferenceValue.cpp:
(WebCore::resolveVariableFallback):
(WebCore::resolveVariableReference):
(WebCore::resolveTokenRange):
(WebCore::CSSVariableReferenceValue::resolveVariableReferences const):
* css/CSSVariableReferenceValue.h:
* css/ElementRuleCollector.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyPropertyToCurrentStyle):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::resolvedVariableValue const):
(WebCore::StyleResolver::cascadedPropertiesForRollback): Deleted.
(WebCore::StyleResolver::applyCascadedCustomProperty): Deleted.
(WebCore::StyleResolver::applyCascadedProperties): Deleted.
(WebCore::StyleResolver::applyCascadedPropertiesImpl): Deleted.

These become PropertyCascade members.

* css/StyleResolver.h:
(WebCore::StyleResolver::State::authorRollback const): Deleted.
(WebCore::StyleResolver::State::userRollback const): Deleted.
(WebCore::StyleResolver::State::setAuthorRollback): Deleted.
(WebCore::StyleResolver::State::setUserRollback): Deleted.

Rollbacks are now owned by PropertyCascade.

* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseValueWithVariableReferences):
* css/parser/CSSParser.h:
* style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::PropertyCascade):
(WebCore::Style::PropertyCascade::set):
(WebCore::Style::PropertyCascade::addNormalMatches):
(WebCore::Style::PropertyCascade::addImportantMatches):
(WebCore::Style::PropertyCascade::applyDeferredProperties):
(WebCore::Style::PropertyCascade::applyProperties):
(WebCore::Style::PropertyCascade::applyPropertiesImpl):
(WebCore::Style::PropertyCascade::applyCustomProperties):
(WebCore::Style::PropertyCascade::applyCustomProperty):
(WebCore::Style::PropertyCascade::propertyCascadeForRollback):
(WebCore::Style::PropertyCascade::Property::apply):
* style/PropertyCascade.h:
(WebCore::Style::PropertyCascade::styleResolver):
(WebCore::Style::PropertyCascade::hasAppliedProperty const):
(WebCore::Style::PropertyCascade::customProperties): Deleted.

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

7 months ago[LFC][IFC] Add support for no-wrap
zalan@apple.com [Fri, 25 Oct 2019 23:16:28 +0000 (23:16 +0000)]
[LFC][IFC] Add support for no-wrap
https://bugs.webkit.org/show_bug.cgi?id=203424
<rdar://problem/56624136>

Reviewed by Antti Koivisto.

Consult the white-space style property about line wrapping when the content overflows and can't be split.

* layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::isContentWrappingAllowed):
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
* layout/inlineformatting/InlineLineBreaker.h:

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

7 months agoAdding expectations for editing/pasteboard/smart-paste-paragraph-003.html
tsavell@apple.com [Fri, 25 Oct 2019 23:12:33 +0000 (23:12 +0000)]
Adding expectations for editing/pasteboard/smart-paste-paragraph-003.html
https://bugs.webkit.org/show_bug.cgi?id=203264

Unreviewed test gardening

* platform/ios-wk2/TestExpectations:

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

7 months agoPython 3: Add support in webkitpy.xcode
jbedard@apple.com [Fri, 25 Oct 2019 23:00:39 +0000 (23:00 +0000)]
Python 3: Add support in webkitpy.xcode
https://bugs.webkit.org/show_bug.cgi?id=203417

Reviewed by Dewei Zhu.

* Scripts/test-webkitpy-python3: Add webkitpy.xcode.
* Scripts/webkitpy/common/system/filesystem_mock.py:
(ReadableBinaryFileObject.seek): Add seek function to mirror actual binary file
behavior and support plistlib.
* Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager._disambiguate_device_type): Use values instead of itervalues.
(SimulatedDeviceManager._get_device_identifier_for_type): Use items instead of iteritems.
(SimulatedDeviceManager.device_count_for_type): Use values instead of itervalues.
* Scripts/webkitpy/xcode/simulated_device_unittest.py:
(SimulatedDeviceTest.mock_host_for_simctl): Use items instead of iteritems.
(change_state_to): Explicitly use bytes to edit a binary file.

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

7 months agoAdd SSL support for peformance dashboard database connection.
dewei_zhu@apple.com [Fri, 25 Oct 2019 22:41:27 +0000 (22:41 +0000)]
Add SSL support for peformance dashboard database connection.
https://bugs.webkit.org/show_bug.cgi?id=203426

Reviewed by Ryosuke Niwa.

Performance dashboard should allow connecting Postgres database with SSL.

* public/include/db.php: Add SSL configuration to connection string if specified.
* tools/js/database.js: Add SSL configuration to connection string if specified.
(Database.prototype._prepareSSLConfig):
(Database.prototype.connect):
* unit-tests/checkconfig.js: Added unit tests for optional ssl fields.

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

7 months agoinspector/heap/getRemoteObject.html is a flaky failure
yurys@chromium.org [Fri, 25 Oct 2019 22:37:46 +0000 (22:37 +0000)]
inspector/heap/getRemoteObject.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=156077
<rdar://problem/25469998>

Unreviewed test gardening. Skip the test on GTK in addition to Mac WK2 as it's
now failing and crashing.

* platform/gtk/TestExpectations:

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

7 months agoUnreviewed, rolling out r251322.
rniwa@webkit.org [Fri, 25 Oct 2019 22:17:59 +0000 (22:17 +0000)]
Unreviewed, rolling out r251322.
https://bugs.webkit.org/show_bug.cgi?id=203430

Causing more test failures after the rollout of resize event
patch (Requested by rniwa on #webkit).

Reverted changeset:

"Integrate media query evaluation into HTML5 event loop"
https://bugs.webkit.org/show_bug.cgi?id=203134
https://trac.webkit.org/changeset/251322

Patch by Commit Queue <commit-queue@webkit.org> on 2019-10-25

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

7 months ago[EWS] Status page should show compiler ERRORS
aakash_jain@apple.com [Fri, 25 Oct 2019 22:07:13 +0000 (22:07 +0000)]
[EWS] Status page should show compiler ERRORS
https://bugs.webkit.org/show_bug.cgi?id=203418

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(BuildLogLineObserver): Class for Analyzing build logs and extracting error logs.
(CompileWebKit.start): Initialize the log observer.
(CompileWebKit):
(CompileWebKit.errorReceived): Add the error to the errors log.

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

7 months agoIntroduce AudioTrackPrivateMediaStreamCocoa::clear()
youenn@apple.com [Fri, 25 Oct 2019 21:44:14 +0000 (21:44 +0000)]
Introduce AudioTrackPrivateMediaStreamCocoa::clear()
https://bugs.webkit.org/show_bug.cgi?id=203369
<rdar://problem/49017262>

Reviewed by Jer Noble.

Introduce the clear method to make sure the AudioTrackPrivteMediaStreamCocoa is in a clean state.
This will help further simplifications.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):
* platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:
(WebCore::AudioTrackPrivateMediaStreamCocoa::~AudioTrackPrivateMediaStreamCocoa):
(WebCore::AudioTrackPrivateMediaStreamCocoa::clear):
* platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.h:

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

7 months agoRolling out r251579,r251162,r251512,r251500, and r251498 for build failures
jlewis3@apple.com [Fri, 25 Oct 2019 21:28:43 +0000 (21:28 +0000)]
Rolling out r251579,r251162,r251512,r251500, and r251498 for build failures
and test failures

Unreviewed rollout.

Source/WebCore:

* Modules/webauthn/AuthenticatorCoordinator.cpp:
* Modules/webauthn/WebAuthenticationConstants.h:
* testing/MockWebAuthenticationConfiguration.h:
(WebCore::MockWebAuthenticationConfiguration::NfcConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::NfcConfiguration::decode):
* testing/MockWebAuthenticationConfiguration.idl:

Source/WebKit:

* Platform/spi/Cocoa/NearFieldSPI.h:
* UIProcess/API/APIWebAuthenticationPanel.cpp:
(API::WebAuthenticationPanel::create):
(API::WebAuthenticationPanel::WebAuthenticationPanel):
* UIProcess/API/APIWebAuthenticationPanel.h:
* UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
* UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(-[_WKWebAuthenticationPanel relyingPartyID]):
(wkWebAuthenticationTransport): Deleted.
(-[_WKWebAuthenticationPanel transports]): Deleted.
(wkWebAuthenticationType): Deleted.
(-[_WKWebAuthenticationPanel type]): Deleted.
* UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::WebCore::collectTransports):
(WebKit::AuthenticatorManager::handleRequest):
(WebKit::AuthenticatorManager::respondReceived):
(WebKit::AuthenticatorManager::respondReceivedInternal):
(WebKit::AuthenticatorManager::startDiscovery):
(WebKit::AuthenticatorManager::initTimeOutTimer):
(WebKit::AuthenticatorManager::runPanel):
(WebKit::AuthenticatorManager::startRequest):
(WebKit::AuthenticatorManager::invokePendingCompletionHandler):
(WebKit::WebCore::getClientDataType): Deleted.
(WebKit::AuthenticatorManager::serviceStatusUpdated): Deleted.
(WebKit::AuthenticatorManager::filterTransports const): Deleted.
(WebKit::AuthenticatorManager::getTransports const): Deleted.
(WebKit::AuthenticatorManager::restartDiscovery): Deleted.
* UIProcess/WebAuthentication/AuthenticatorManager.h:
(WebKit::AuthenticatorManager::respondReceivedInternal): Deleted.
* UIProcess/WebAuthentication/AuthenticatorTransportService.cpp:
(WebKit::AuthenticatorTransportService::startDiscovery):
(WebKit::AuthenticatorTransportService::restartDiscovery): Deleted.
* UIProcess/WebAuthentication/AuthenticatorTransportService.h:
(WebKit::AuthenticatorTransportService::restartDiscoveryInternal): Deleted.
* UIProcess/WebAuthentication/Cocoa/NfcConnection.h:
* UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:
(WebKit::NfcConnection::NfcConnection):
(WebKit::NfcConnection::~NfcConnection):
(WebKit::NfcConnection::didDetectTags const):
(WebKit::NfcConnection::create): Deleted.
(WebKit::NfcConnection::stop const): Deleted.
(WebKit::NfcConnection::didDetectTags): Deleted.
(WebKit::NfcConnection::restartPolling): Deleted.
(WebKit::NfcConnection::startPolling): Deleted.
* UIProcess/WebAuthentication/Cocoa/NfcService.h:
* UIProcess/WebAuthentication/Cocoa/NfcService.mm:
(WebKit::NfcService::NfcService):
(WebKit::NfcService::didConnectTag):
(WebKit::NfcService::setDriver):
(WebKit::NfcService::platformStartDiscovery):
(WebKit::NfcService::isAvailable): Deleted.
(WebKit::NfcService::didDetectMultipleTags const): Deleted.
(WebKit::NfcService::setConnection): Deleted.
(WebKit::NfcService::restartDiscoveryInternal): Deleted.
* UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp:
(WebKit::MockAuthenticatorManager::filterTransports const): Deleted.
* UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h:
* UIProcess/WebAuthentication/Mock/MockNfcService.h:
* UIProcess/WebAuthentication/Mock/MockNfcService.mm:
(-[WKMockNFTag initWithNFTag:]):
(-[WKMockNFTag dealloc]):
(-[WKMockNFTag initWithType:]):
(WebKit::MockNfcService::platformStartDiscovery):
(WebKit::MockNfcService::detectTags const):
(-[WKMockNFTag tagID]): Deleted.
(-[WKMockNFTag initWithType:tagID:]): Deleted.
(WebKit::MockNfcService::receiveStopPolling): Deleted.
(WebKit::MockNfcService::receiveStartPolling): 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:]):
(-[TestWebAuthenticationPanelUIDelegate _webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):
(-[TestWebAuthenticationPanelUIDelegate panel]): Deleted.
* TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-nfc-multiple-tags.html: Removed.
* TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid.html: Removed.

LayoutTests:

* http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
* http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:

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

7 months ago[iOS 13] fast/forms/ios/accessory-bar-navigation.html is a flaky failure
wenson_hsieh@apple.com [Fri, 25 Oct 2019 21:24:46 +0000 (21:24 +0000)]
[iOS 13] fast/forms/ios/accessory-bar-navigation.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=203294
<rdar://problem/54520848>

Reviewed by Tim Horton.

Source/WebKit:

Add an SPI declaration (as well as an internal-SKD-only header import) for UIKeyboardPreferencesController.
See Tools/ChangeLog for more details.

* Platform/spi/ios/UIKitSPI.h:

Tools:

This layout test consistently fails when it is the first test to involve bringing up the keyboard that is run in
a newly created iOS simulator. This is because a software keyboard is presented when focusing the input fields
in the test, and the test expectation (which depends on the visual viewport) requires a hardware keyboard.

WebKitTestRunner already simulates the hardware keyboard being attached using the call to GraphicsServices SPI
in TestController::platformResetStateToConsistentValues. However, this was effectively a no-op in the case where
the simulated device has never (in its lifetime, even through reboots) brought up an input view. This is because
-[UIKeyboardImpl hardwareKeyboardAvailabilityChanged] is never called, due to UIInputResponderController never
having an active instance with an input view set. As a result, the automaticMinimizationEnabled property of
UIKeyboardImpl is never set to its correct initial value (which depends on GSEventIsHardwareKeyboardAttached()).

This leads to UIKeyboardImpl not automatically minimizing itself even though the hardware keyboard is attached
(but only until the next time the keyboard is shown, after a hardware keyboard availability change notification
has been sent, which occurs between every layout test).

To work around this source of flakiness, we ensure that the keyboard preference for enabling automatic
minimization has been set to @YES by the time we attempt to simulate connecting the hardware keyboard by calling
GSEventIsHardwareKeyboardAttached. Note that the extra step of writing the value to com.apple.Preferences is
necessary because logic in TextInput.framework exists that periodically wipes out any cached values for keyboard
preferences on UIInputResponderController, and then attempts to regenerate them by reading defaults in
com.apple.Preferences. However, the same logic also fails to actually update com.apple.Preferences before
reading from it, which results in a software keyboard *very* rarely appearing again when running layout tests
that don't expect to observe a software keyboard.

* WebKitTestRunner/ios/TestControllerIOS.mm:

LayoutTests:

Upstream an iOS 13 layout test result into open source. Note that fast/forms/ios is not currently run in open
automation at all, so this expectation was unused anyways.

* fast/forms/ios/accessory-bar-navigation-expected.txt:

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

7 months agoAdd exclusion rules to text manipulation SPI
rniwa@webkit.org [Fri, 25 Oct 2019 20:41:15 +0000 (20:41 +0000)]
Add exclusion rules to text manipulation SPI
https://bugs.webkit.org/show_bug.cgi?id=203398
<rdar://problem/56567256>

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch adds the ability to define a ordered set of rules to exclude or include content an element of
a certain name or one with a certain attribute value.

Also made completeManipulation return more detailed errors for debugging purposes.

Tests: TextManipulation.StartTextManipulationApplySingleExcluionRuleForElement
       TextManipulation.StartTextManipulationApplyInclusionExclusionRulesForAttributes
       TextManipulation.CompleteTextManipulationFailWhenExclusionIsViolated

* editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::ExclusionRule::match const): Added.
(WebCore::ExclusionRuleMatcher): Added. This class is responsible for figuring out whether a given node
is excluded or included in the text manipulation.
(WebCore::ExclusionRuleMatcher::ExclusionRuleMatcher): Added.
(WebCore::ExclusionRuleMatcher::isExcluded): Added.
(WebCore::ExclusionRuleMatcher::typeForElement): Added.
(WebCore::TextManipulationController::startObservingParagraphs): Added a Vector of ExclusionRule as
an argument.
(WebCore::TextManipulationController::completeManipulation):
(WebCore::TextManipulationController::replace):
* editing/TextManipulationController.h:
(WebCore::TextManipulationController::ExclusionRule): Added.
(WebCore::TextManipulationController::ManipulationResult): Added.
(WebCore::TextManipulationController::ManipulationToken::encode const): Include isExcluded boolean.
(WebCore::TextManipulationController::ManipulationToken::decode): Ditto.
(WebCore::TextManipulationController::ExclusionRule::encode const): Added.
(WebCore::TextManipulationController::ExclusionRule::decode): Added.
(WebCore::TextManipulationController::ExclusionRule::ElementRule::encode const): Added.
(WebCore::TextManipulationController::ExclusionRule::ElementRule::decode): Added.
(WebCore::TextManipulationController::ExclusionRule::AttributeRule::encode const): Added.
(WebCore::TextManipulationController::ExclusionRule::AttributeRule::decode): Added.

Source/WebKit:

Added SPI to specify the configuration for the text manipulation (see r251574), in particular, the set of rules
governing which content should be excluded or included in text manipulations.

Test: TextManipulation.StartTextManipulationExitEarlyWithoutDelegate

* SourcesCocoa.txt:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _startTextManipulationsWithConfiguration:completion:]): Takes _WKTextManipulationConfiguration
as an argument. Also fixed a bug that we weren't calling the completion handler when the delegate was not set.
(-[WKWebView _completeTextManipulation:completion:]):
(-[WKWebView _startTextManipulationsWithCompletionHandler:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/_WKTextManipulationConfiguration.h: Added.
* UIProcess/API/Cocoa/_WKTextManipulationConfiguration.mm: Added.
* UIProcess/API/Cocoa/_WKTextManipulationExclusionRule.h: Added.
* UIProcess/API/Cocoa/_WKTextManipulationExclusionRule.mm: Added.
(-[_WKTextManipulationExclusionRule initExclusion:forElement:]): Added.
(-[_WKTextManipulationExclusionRule initExclusion:forAttribute:value:]): Added.
(-[_WKTextManipulationExclusionRule elementName]): Added.
(-[_WKTextManipulationExclusionRule attributeName]): Added.
(-[_WKTextManipulationExclusionRule attributeValue]): Added.
* UIProcess/API/Cocoa/_WKTextManipulationToken.h: Added excluded boolean property.
* UIProcess/API/Cocoa/_WKTextManipulationToken.mm: Removed the superflous import of RetainPtr.h
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::startTextManipulations):
(WebKit::WebPageProxy::completeTextManipulation):
* UIProcess/WebPageProxy.h:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::startTextManipulations):
(WebKit::WebPage::completeTextManipulation):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Tools:

Added tests for including & excluding content based on element names and attribute values.

Also added a test to make sure _startTextManipulationsWithConfiguration calls the completion handler
even when the _WKTextManipulationDelegate isn't set.

* TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

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

7 months ago[iOS][WK2] Use sendWithAsyncReply() to simplify the prepareToSuspend logic
cdumez@apple.com [Fri, 25 Oct 2019 19:25:29 +0000 (19:25 +0000)]
[iOS][WK2] Use sendWithAsyncReply() to simplify the prepareToSuspend logic
https://bugs.webkit.org/show_bug.cgi?id=203422

Reviewed by Alex Christensen.

Use sendWithAsyncReply() to simplify the prepareToSuspend logic and make it easier to
understand.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::processWillSuspendImminentlyForTestingSync):
(WebKit::NetworkProcess::prepareToSuspend):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processWillSuspendImminentlyForTesting]):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):
(WebKit::NetworkProcessProxy::processReadyToSuspend): Deleted.
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::processReadyToSuspend):
(WebKit::ProcessThrottler::sendPrepareToSuspendIPC):
* UIProcess/ProcessThrottler.h:
* UIProcess/ProcessThrottlerClient.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::sendPrepareToSuspend):
(WebKit::WebProcessProxy::processReadyToSuspend): Deleted.
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::prepareToSuspend):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

7 months agoWebProcess should unregister its interest for a SWServerRegistration when all its...
youenn@apple.com [Fri, 25 Oct 2019 19:04:27 +0000 (19:04 +0000)]
WebProcess should unregister its interest for a SWServerRegistration when all its corresponding ServiceWorkerRegistrations are destroyed
https://bugs.webkit.org/show_bug.cgi?id=203410

Reviewed by Chris Dumez.

Source/WebKit:

A SWServerRegistration is keeping a list of web processes that should be notified of change to its state.
Previously, WebProcesses were registering their interest to a SWServerRegistration on construction of a ServiceWorkerRegistration,
and unregistering their interest on destruction of a ServiceWorkerRegistration.

This does not work in case two ServiceWorkerRegistrations are created for the same SWServerRegistration in the same WebProcess.
In that case, when one of the two ServiceWorkerRegistration is destroyed, the WebProcess will no longer be notified of changes to the SWServerRegistration,
thus breaking the second ServiceWorkerRegistration behavior.

We introduce a map at WebProcess level to keep track of the number of ServiceWorkerRegistration created for a given SWServerRegistration.

Covered by re-enabled tests.

* WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::addServiceWorkerRegistration):
(WebKit::WebProcess::removeServiceWorkerRegistration):
* WebProcess/WebProcess.h:

LayoutTests:

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

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

7 months agoFollowup test gardening after r251591
tsavell@apple.com [Fri, 25 Oct 2019 18:22:37 +0000 (18:22 +0000)]
Followup test gardening after r251591
https://bugs.webkit.org/show_bug.cgi?id=203291

Unreviewed test gardening.

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

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

7 months agoRebase WK1 test after r251582
achristensen@apple.com [Fri, 25 Oct 2019 17:47:08 +0000 (17:47 +0000)]
Rebase WK1 test after r251582
https://bugs.webkit.org/show_bug.cgi?id=203383

* platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1: Added.
* platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element: Added.
* platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module: Added.
* platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt: Added.

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

7 months agoMove code around in CSSCalculationValue.cpp
simon.fraser@apple.com [Fri, 25 Oct 2019 17:16:23 +0000 (17:16 +0000)]
Move code around in CSSCalculationValue.cpp
https://bugs.webkit.org/show_bug.cgi?id=203397

Reviewed by Zalan Bujtas.

Large amounts of code were in inline (but virtual) functions in CSSCalcPrimitiveValue, CSSCalcOperation
and CSSCalcExpressionNodeParser, making it hard to navigate around this file. Move code into
out-of-line functions. No behavior changes.

* css/CSSCalculationValue.cpp:
(WebCore::CSSCalcPrimitiveValue::createCalcExpression const):
(WebCore::CSSCalcPrimitiveValue::doubleValue const):
(WebCore::CSSCalcPrimitiveValue::computeLengthPx const):
(WebCore::CSSCalcPrimitiveValue::collectDirectComputationalDependencies const):
(WebCore::CSSCalcPrimitiveValue::collectDirectRootComputationalDependencies const):
(WebCore::CSSCalcPrimitiveValue::equals const):
(WebCore::CSSCalcOperation::create):
(WebCore::CSSCalcOperation::createMinOrMax):
(WebCore::CSSCalcOperation::createSimplified):
(WebCore::CSSCalcOperation::primitiveType const):
(WebCore::CSSCalcOperation::createCalcExpression const):
(WebCore::CSSCalcOperation::doubleValue const):
(WebCore::CSSCalcOperation::computeLengthPx const):
(WebCore::CSSCalcOperation::collectDirectComputationalDependencies const):
(WebCore::CSSCalcOperation::collectDirectRootComputationalDependencies const):
(WebCore::CSSCalcOperation::buildCssText):
(WebCore::CSSCalcOperation::customCSSText const):
(WebCore::CSSCalcOperation::equals const):
(WebCore::CSSCalcOperation::evaluateOperator):
(WebCore::CSSCalcExpressionNodeParser::parseCalc):
(WebCore::CSSCalcExpressionNodeParser::parseValue):
(WebCore::checkDepthAndIndex):
(WebCore::CSSCalcExpressionNodeParser::parseValueTerm):
(WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
(WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
(WebCore::CSSCalcExpressionNodeParser::parseMinMaxExpression):
(WebCore::CSSCalcExpressionNodeParser::parseValueExpression):
(WebCore::CSSCalcValue::customCSSText const):
(WebCore::CSSCalcValue::equals const):
(WebCore::CSSCalcValue::clampToPermittedRange const):
(WebCore::CSSCalcValue::doubleValue const):
(WebCore::CSSCalcValue::computeLengthPx const):

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

7 months agomp4 video element broken with service worker
youenn@apple.com [Fri, 25 Oct 2019 16:20:22 +0000 (16:20 +0000)]
mp4 video element broken with service worker
https://bugs.webkit.org/show_bug.cgi?id=184447
<rdar://problem/39313155>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/range/sw.https.window-expected.txt:

Source/WebCore:

Update fetch header handling to properly handle range header as per https://fetch.spec.whatwg.org/#headers-class.
In particular, remove thre range header from a Request/Headers object whenever modified.
Add checks so that range responses are not reused for non range requests.
For that purpose, add a range-requested flag to ResourceResponse.
Ass helper routines implementing part of fetch spec.
Covered by enabled test.

* Modules/fetch/FetchHeaders.cpp:
(WebCore::removePrivilegedNoCORSRequestHeaders):
(WebCore::appendToHeaderMap):
(WebCore::FetchHeaders::remove):
(WebCore::FetchHeaders::set):
* Modules/fetch/FetchHeaders.h:
(WebCore::FetchHeaders::setInternalHeaders):
* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::initializeWith):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
* platform/network/HTTPParsers.cpp:
(WebCore::isNoCORSSafelistedRequestHeaderName):
(WebCore::isPriviledgedNoCORSRequestHeaderName):
* platform/network/HTTPParsers.h:
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::crossThreadData const):
(WebCore::ResourceResponseBase::fromCrossThreadData):
* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::isRangeRequested const):
(WebCore::ResourceResponseBase::setAsRangeRequested):
(WebCore::ResourceResponseBase::encode const):
(WebCore::ResourceResponseBase::decode):

Source/WebKit:

Make a response as range-requested as per https://fetch.spec.whatwg.org/#http-network-or-cache-fetch step 15.

* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):
* NetworkProcess/NetworkLoadChecker.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

LayoutTests:

Enable test for WK2, not WK1.

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

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

7 months agoresults.webkit.org: Report the correct flavor for leaks
jbedard@apple.com [Fri, 25 Oct 2019 16:16:59 +0000 (16:16 +0000)]
results.webkit.org: Report the correct flavor for leaks
https://bugs.webkit.org/show_bug.cgi?id=203413

Reviewed by Aakash Jain.

* BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunWebKit1LeakTests.start):

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

7 months agoUnreviewed, rolling out r251586.
cdumez@apple.com [Fri, 25 Oct 2019 15:44:20 +0000 (15:44 +0000)]
Unreviewed, rolling out r251586.

New test is flaky

Reverted changeset:

"DatabaseContext should not prevent entering the back/forward
cache"
https://bugs.webkit.org/show_bug.cgi?id=203103
https://trac.webkit.org/changeset/251586

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

7 months ago[Web Animations] Update WPT tests related to Web Animations and remove imported Mozil...
graouts@webkit.org [Fri, 25 Oct 2019 15:29:54 +0000 (15:29 +0000)]
[Web Animations] Update WPT tests related to Web Animations and remove imported Mozilla tests
https://bugs.webkit.org/show_bug.cgi?id=203291
<rdar://problem/56577481>

Reviewed by Youenn Fablet.

LayoutTests/imported/mozilla:

* css-animations/test_animation-cancel-expected.txt: Removed.
* css-animations/test_animation-cancel.html: Removed.
* css-animations/test_animation-currenttime-expected.txt: Removed.
* css-animations/test_animation-currenttime.html: Removed.
* css-animations/test_animation-finish-expected.txt: Removed.
* css-animations/test_animation-finish.html: Removed.
* css-animations/test_animation-finished-expected.txt: Removed.
* css-animations/test_animation-finished.html: Removed.
* css-animations/test_animation-id.html: Removed.
* css-animations/test_animation-pausing.html: Removed.
* css-animations/test_animation-playstate.html: Removed.
* css-animations/test_animation-ready.html: Removed.
* css-animations/test_animation-reverse-expected.txt: Removed.
* css-animations/test_animation-reverse.html: Removed.
* css-animations/test_animation-starttime-expected.txt: Removed.
* css-animations/test_animation-starttime.html: Removed.
* css-animations/test_animations-dynamic-changes.html: Removed.
* css-animations/test_event-dispatch.html: Removed.
* css-animations/test_event-order-expected.txt: Removed.
* css-animations/test_event-order.html: Removed.
* css-animations/test_setting-effect.html: Removed.
* css-transitions/test_animation-cancel.html: Removed.
* css-transitions/test_animation-currenttime-expected.txt: Removed.
* css-transitions/test_animation-currenttime.html: Removed.
* css-transitions/test_animation-finished-expected.txt: Removed.
* css-transitions/test_animation-finished.html: Removed.
* css-transitions/test_animation-pausing-expected.txt: Removed.
* css-transitions/test_animation-pausing.html: Removed.
* css-transitions/test_animation-ready-expected.txt: Removed.
* css-transitions/test_animation-ready.html: Removed.
* css-transitions/test_animation-starttime-expected.txt: Removed.
* css-transitions/test_animation-starttime.html: Removed.
* css-transitions/test_csstransition-transitionproperty.html: Removed.
* css-transitions/test_document-get-animations-expected.txt: Removed.
* css-transitions/test_document-get-animations.html: Removed.
* css-transitions/test_element-get-animations-expected.txt: Removed.
* css-transitions/test_element-get-animations.html: Removed.
* css-transitions/test_event-dispatch.html: Removed.
* css-transitions/test_keyframeeffect-getkeyframes-expected.txt: Removed.
* css-transitions/test_keyframeeffect-getkeyframes.html: Removed.
* css-transitions/test_setting-effect-expected.txt: Removed.
* css-transitions/test_setting-effect.html: Removed.

LayoutTests/imported/w3c:

* resources/import-expectations.json:
* web-platform-tests/css/css-animations/AnimationEffect-getComputedTiming.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_animation-computed-timing-expected.txt.
* web-platform-tests/css/css-animations/AnimationEffect-getComputedTiming.tentative.html: Renamed from LayoutTests/imported/mozilla/css-animations/test_animation-computed-timing.html.
* web-platform-tests/css/css-animations/CSSAnimation-animationName.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_cssanimation-animationname-expected.txt.
* web-platform-tests/css/css-animations/CSSAnimation-animationName.tentative.html: Renamed from LayoutTests/imported/mozilla/css-animations/test_cssanimation-animationname.html.
* web-platform-tests/css/css-animations/CSSAnimation-canceling.tentative-expected.txt: Added.
* web-platform-tests/css/css-animations/CSSAnimation-canceling.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_setting-effect-expected.txt.
* web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSAnimation-finished.tentative-expected.txt: Added.
* web-platform-tests/css/css-animations/CSSAnimation-finished.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSAnimation-getCurrentTime.tentative-expected.txt: Added.
* web-platform-tests/css/css-animations/CSSAnimation-getCurrentTime.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSAnimation-id.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_animation-id-expected.txt.
* web-platform-tests/css/css-animations/CSSAnimation-id.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_animation-pausing-expected.txt.
* web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSAnimation-playState.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_animation-playstate-expected.txt.
* web-platform-tests/css/css-animations/CSSAnimation-playState.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSAnimation-ready.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_animation-ready-expected.txt.
* web-platform-tests/css/css-animations/CSSAnimation-ready.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSAnimation-startTime.tentative-expected.txt: Added.
* web-platform-tests/css/css-animations/CSSAnimation-startTime.tentative.html: Added.
* web-platform-tests/css/css-animations/CSSPseudoElement-getAnimations.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_pseudoElement-get-animations-expected.txt.
* web-platform-tests/css/css-animations/CSSPseudoElement-getAnimations.tentative.html: Renamed from LayoutTests/imported/mozilla/css-animations/test_pseudoElement-get-animations.html.
* web-platform-tests/css/css-animations/Document-getAnimations.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_document-get-animations-expected.txt.
* web-platform-tests/css/css-animations/Document-getAnimations.tentative.html: Renamed from LayoutTests/imported/mozilla/css-animations/test_document-get-animations.html.
* web-platform-tests/css/css-animations/Element-getAnimations-dynamic-changes.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_animations-dynamic-changes-expected.txt.
* web-platform-tests/css/css-animations/Element-getAnimations-dynamic-changes.tentative.html: Added.
* web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_element-get-animations-expected.txt.
* web-platform-tests/css/css-animations/Element-getAnimations.tentative.html: Renamed from LayoutTests/imported/mozilla/css-animations/test_element-get-animations.html.
* web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_keyframeeffect-getkeyframes-expected.txt.
* web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html: Renamed from LayoutTests/imported/mozilla/css-animations/test_keyframeeffect-getkeyframes.html.
* web-platform-tests/css/css-animations/KeyframeEffect-target.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_effect-target-expected.txt.
* web-platform-tests/css/css-animations/KeyframeEffect-target.tentative.html: Renamed from LayoutTests/imported/mozilla/css-animations/test_effect-target.html.
* web-platform-tests/css/css-animations/META.yml: Added.
* web-platform-tests/css/css-animations/OWNERS: Removed.
* web-platform-tests/css/css-animations/animation-opacity-pause-and-set-time-expected.html: Added.
* web-platform-tests/css/css-animations/animation-opacity-pause-and-set-time.html: Added.
* web-platform-tests/css/css-animations/animation-pseudo-dynamic-001-expected.html: Added.
* web-platform-tests/css/css-animations/animation-pseudo-dynamic-001.html: Added.
* web-platform-tests/css/css-animations/animation-transform-pause-and-set-time-expected.html: Added.
* web-platform-tests/css/css-animations/animation-transform-pause-and-set-time.html: Added.
* web-platform-tests/css/css-animations/animationevent-interface-expected.txt:
* web-platform-tests/css/css-animations/animationevent-interface.js:
(test):
(test.):
* web-platform-tests/css/css-animations/animationevent-marker-pseudoelement-expected.txt: Added.
* web-platform-tests/css/css-animations/animationevent-marker-pseudoelement.html: Added.
* web-platform-tests/css/css-animations/computed-style-animation-parsing-expected.txt: Added.
* web-platform-tests/css/css-animations/computed-style-animation-parsing.html: Added.
* web-platform-tests/css/css-animations/event-dispatch.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-animations/test_event-dispatch-expected.txt.
* web-platform-tests/css/css-animations/event-dispatch.tentative.html: Added.
* web-platform-tests/css/css-animations/event-order.tentative-expected.txt: Added.
* web-platform-tests/css/css-animations/event-order.tentative.html: Added.
* web-platform-tests/css/css-animations/historical-expected.txt: Added.
* web-platform-tests/css/css-animations/historical.html: Added.
* web-platform-tests/css/css-animations/idlharness-expected.txt: Added.
* web-platform-tests/css/css-animations/idlharness.html: Added.
* web-platform-tests/css/css-animations/inheritance-expected.txt: Added.
* web-platform-tests/css/css-animations/inheritance.html: Added.
* web-platform-tests/css/css-animations/keyframes-remove-documentElement-crash-expected.txt: Added.
* web-platform-tests/css/css-animations/keyframes-remove-documentElement-crash.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-delay-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-delay-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-delay-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-delay-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-delay-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-delay-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-direction-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-direction-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-direction-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-direction-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-direction-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-direction-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-duration-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-duration-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-duration-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-duration-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-duration-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-duration-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-fill-mode-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-fill-mode-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-fill-mode-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-fill-mode-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-fill-mode-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-fill-mode-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-iteration-count-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-iteration-count-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-iteration-count-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-iteration-count-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-iteration-count-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-iteration-count-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-name-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-name-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-name-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-name-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-name-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-name-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-play-state-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-play-state-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-play-state-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-play-state-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-play-state-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-play-state-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-shorthand.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-timing-function-computed-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-timing-function-computed.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-timing-function-invalid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-timing-function-invalid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-timing-function-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-timing-function-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/animation-valid-expected.txt: Added.
* web-platform-tests/css/css-animations/parsing/animation-valid.html: Added.
* web-platform-tests/css/css-animations/parsing/w3c-import.log: Added.
* web-platform-tests/css/css-animations/responsive/column-rule-color-001-expected.txt: Added.
* web-platform-tests/css/css-animations/responsive/column-rule-color-001.html: Added.
* web-platform-tests/css/css-animations/responsive/column-width-001-expected.txt: Added.
* web-platform-tests/css/css-animations/responsive/column-width-001.html: Added.
* web-platform-tests/css/css-animations/responsive/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/css/css-animations/style-animation-parsing-expected.txt: Added.
* web-platform-tests/css/css-animations/style-animation-parsing.html: Added.
* web-platform-tests/css/css-animations/support/testcommon.js:
* web-platform-tests/css/css-animations/support/w3c-import.log:
* web-platform-tests/css/css-animations/w3c-import.log:
* web-platform-tests/css/css-transitions/AnimationEffect-getComputedTiming.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-transitions/test_animation-computed-timing-expected.txt.
* web-platform-tests/css/css-transitions/AnimationEffect-getComputedTiming.tentative.html: Renamed from LayoutTests/imported/mozilla/css-transitions/test_animation-computed-timing.html.
* web-platform-tests/css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-transitions/test_pseudoElement-get-animations-expected.txt.
* web-platform-tests/css/css-transitions/CSSPseudoElement-getAnimations.tentative.html: Renamed from LayoutTests/imported/mozilla/css-transitions/test_pseudoElement-get-animations.html.
* web-platform-tests/css/css-transitions/CSSTransition-canceling.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-transitions/test_animation-cancel-expected.txt.
* web-platform-tests/css/css-transitions/CSSTransition-canceling.tentative.html: Added.
* web-platform-tests/css/css-transitions/CSSTransition-currentTime.tentative-expected.txt: Added.
* web-platform-tests/css/css-transitions/CSSTransition-currentTime.tentative.html: Added.
* web-platform-tests/css/css-transitions/CSSTransition-effect.tentative-expected.txt: Added.
* web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html: Added.
* web-platform-tests/css/css-transitions/CSSTransition-finished.tentative-expected.txt: Added.
* web-platform-tests/css/css-transitions/CSSTransition-finished.tentative.html: Added.
* web-platform-tests/css/css-transitions/CSSTransition-ready.tentative-expected.txt: Added.
* web-platform-tests/css/css-transitions/CSSTransition-ready.tentative.html: Added.
* web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative-expected.txt: Added.
* web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html: Added.
* web-platform-tests/css/css-transitions/CSSTransition-transitionProperty.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-transitions/test_csstransition-transitionproperty-expected.txt.
* web-platform-tests/css/css-transitions/CSSTransition-transitionProperty.tentative.html: Added.
* web-platform-tests/css/css-transitions/Document-getAnimations.tentative-expected.txt: Added.
* web-platform-tests/css/css-transitions/Document-getAnimations.tentative.html: Added.
* web-platform-tests/css/css-transitions/Element-getAnimations.tentative-expected.txt: Added.
* web-platform-tests/css/css-transitions/Element-getAnimations.tentative.html: Added.
* web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative-expected.txt: Added.
* web-platform-tests/css/css-transitions/KeyframeEffect-getKeyframes.tentative.html: Added.
* web-platform-tests/css/css-transitions/KeyframeEffect-target.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-transitions/test_effect-target-expected.txt.
* web-platform-tests/css/css-transitions/KeyframeEffect-target.tentative.html: Renamed from LayoutTests/imported/mozilla/css-transitions/test_effect-target.html.
* web-platform-tests/css/css-transitions/META.yml: Added.
* web-platform-tests/css/css-transitions/README.md: Added.
* web-platform-tests/css/css-transitions/before-load-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/before-load-001.html: Added.
* web-platform-tests/css/css-transitions/changing-while-transition-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/changing-while-transition-001.html: Added.
* web-platform-tests/css/css-transitions/changing-while-transition-002-expected.txt: Added.
* web-platform-tests/css/css-transitions/changing-while-transition-002.html: Added.
* web-platform-tests/css/css-transitions/changing-while-transition-003-expected.txt: Added.
* web-platform-tests/css/css-transitions/changing-while-transition-003.html: Added.
* web-platform-tests/css/css-transitions/currentcolor-animation-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/currentcolor-animation-001.html: Added.
* web-platform-tests/css/css-transitions/disconnected-element-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/disconnected-element-001.html: Added.
* web-platform-tests/css/css-transitions/event-dispatch.tentative-expected.txt: Renamed from LayoutTests/imported/mozilla/css-transitions/test_event-dispatch-expected.txt.
* web-platform-tests/css/css-transitions/event-dispatch.tentative.html: Added.
* web-platform-tests/css/css-transitions/events-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/events-001.html: Added.
* web-platform-tests/css/css-transitions/events-002-expected.txt: Added.
* web-platform-tests/css/css-transitions/events-002.html: Added.
* web-platform-tests/css/css-transitions/events-003-expected.txt: Added.
* web-platform-tests/css/css-transitions/events-003.html: Added.
* web-platform-tests/css/css-transitions/events-004-expected.txt: Added.
* web-platform-tests/css/css-transitions/events-004.html: Added.
* web-platform-tests/css/css-transitions/events-005-expected.txt: Added.
* web-platform-tests/css/css-transitions/events-005.html: Added.
* web-platform-tests/css/css-transitions/events-006-expected.txt: Added.
* web-platform-tests/css/css-transitions/events-006.html: Added.
* web-platform-tests/css/css-transitions/events-007-expected.txt: Added.
* web-platform-tests/css/css-transitions/events-007.html: Added.
* web-platform-tests/css/css-transitions/historical-expected.txt: Added.
* web-platform-tests/css/css-transitions/historical.html: Added.
* web-platform-tests/css/css-transitions/idlharness-expected.txt: Added.
* web-platform-tests/css/css-transitions/idlharness.html: Added.
* web-platform-tests/css/css-transitions/inherit-height-transition-expected.txt: Added.
* web-platform-tests/css/css-transitions/inherit-height-transition.html: Added.
* web-platform-tests/css/css-transitions/inheritance-expected.txt: Added.
* web-platform-tests/css/css-transitions/inheritance.html: Added.
* web-platform-tests/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet-expected.html: Added.
* web-platform-tests/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html: Added.
* web-platform-tests/css/css-transitions/non-rendered-element-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/non-rendered-element-001.html: Added.
* web-platform-tests/css/css-transitions/non-rendered-element-002-expected.txt: Added.
* web-platform-tests/css/css-transitions/non-rendered-element-002.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-computed-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-computed.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-delay-computed-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-delay-computed.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-delay-invalid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-delay-invalid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-delay-valid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-delay-valid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-duration-computed-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-duration-computed.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-duration-invalid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-duration-invalid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-duration-valid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-duration-valid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-invalid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-invalid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-property-computed-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-property-computed.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-property-invalid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-property-invalid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-property-valid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-property-valid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-shorthand.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-timing-function-invalid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-timing-function-invalid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-timing-function-valid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-timing-function-valid.html: Added.
* web-platform-tests/css/css-transitions/parsing/transition-valid-expected.txt: Added.
* web-platform-tests/css/css-transitions/parsing/transition-valid.html: Added.
* web-platform-tests/css/css-transitions/parsing/w3c-import.log: Added.
* web-platform-tests/css/css-transitions/properties-value-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/properties-value-001.html: Added.
* web-platform-tests/css/css-transitions/properties-value-002-expected.txt: Added.
* web-platform-tests/css/css-transitions/properties-value-002.html: Added.
* web-platform-tests/css/css-transitions/properties-value-003-expected.txt: Added.
* web-platform-tests/css/css-transitions/properties-value-003.html: Added.
* web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/properties-value-auto-001.html: Added.
* web-platform-tests/css/css-transitions/properties-value-implicit-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/properties-value-implicit-001.html: Added.
* web-platform-tests/css/css-transitions/properties-value-inherit-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/properties-value-inherit-001.html: Added.
* web-platform-tests/css/css-transitions/properties-value-inherit-002-expected.txt: Added.
* web-platform-tests/css/css-transitions/properties-value-inherit-002.html: Added.
* web-platform-tests/css/css-transitions/properties-value-inherit-003-expected.txt: Added.
* web-platform-tests/css/css-transitions/properties-value-inherit-003.html: Added.
* web-platform-tests/css/css-transitions/pseudo-elements-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/pseudo-elements-001.html: Added.
* web-platform-tests/css/css-transitions/pseudo-elements-002-expected.txt: Added.
* web-platform-tests/css/css-transitions/pseudo-elements-002.html: Added.
* web-platform-tests/css/css-transitions/starting-of-transitions-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/starting-of-transitions-001.html: Added.
* web-platform-tests/css/css-transitions/support/1x1-green.png: Added.
* web-platform-tests/css/css-transitions/support/1x1-lime.png: Added.
* web-platform-tests/css/css-transitions/support/1x1-maroon.png: Added.
* web-platform-tests/css/css-transitions/support/1x1-navy.png: Added.
* web-platform-tests/css/css-transitions/support/1x1-red.png: Added.
* web-platform-tests/css/css-transitions/support/1x1-white.png: Added.
* web-platform-tests/css/css-transitions/support/60x60-gg-rr.png: Added.
* web-platform-tests/css/css-transitions/support/60x60-green.png: Added.
* web-platform-tests/css/css-transitions/support/60x60-red.png: Added.
* web-platform-tests/css/css-transitions/support/README: Added.
* web-platform-tests/css/css-transitions/support/a-green-transition.css: Added.
(.a):
* web-platform-tests/css/css-transitions/support/a-green.css: Added.
(.a):
* web-platform-tests/css/css-transitions/support/b-green.css: Added.
(.b):
* web-platform-tests/css/css-transitions/support/c-red.css: Added.
(.c):
* web-platform-tests/css/css-transitions/support/cat.png: Added.
* web-platform-tests/css/css-transitions/support/generalParallelTest.js: Added.
(suite.root.generalParallelTest.setup):
(suite.root.generalParallelTest.data.transition.computedStyle):
(suite.root.generalParallelTest.data.container.computedStyle):
(suite.root.generalParallelTest.data.pseudo.computedStyle):
(suite.root.generalParallelTest._setupDom):
(suite.root.generalParallelTest.):
(suite.root.generalParallelTest._setupEvents):
(suite.root.generalParallelTest.teardown):
(suite.root.generalParallelTest.sliceStart):
(suite.root.generalParallelTest.sliceDone):
(suite.root.generalParallelTest.done):
(suite.root.generalParallelTest.addStyles):
(suite.root.generalParallelTest.getStyle):
(suite.root.generalParallelTest._getStyleFor):
(suite.root.generalParallelTest._addClass):
(suite.root.generalParallelTest._removeClass):
(suite.root.generalParallelTest.startTransition):
(suite.root.generalParallelTest.runLoop):
(suite.root.generalParallelTest.startValueCollection):
(suite.root.generalParallelTest.stopValueCollection):
(suite.root.generalParallelTest.assertExpectedEventsFunc):
(suite.root.generalParallelTest.assertIntermediateValuesFunc):
* web-platform-tests/css/css-transitions/support/helper.js: Added.
(root.setStyle):
(serializeStyles):
(root.computedStyle):
(root.reflow):
(root.extend):
(root.domFixture):
(root.assert_times_equal):
(root.assert_time_equals_literal):
(root.assert_end_events_equal):
(root.assert_end_event_batch_equal):
(root.addDiv):
(root.addStyle):
(root.waitForFrame):
(root.waitForAnimationFrames.return.new.Promise):
(root.waitForAnimationFrames):
(root.frameTimeout):
* web-platform-tests/css/css-transitions/support/import-green.css: Added.
(.import):
* web-platform-tests/css/css-transitions/support/import-red.css: Added.
(.import):
* web-platform-tests/css/css-transitions/support/one.gif: Added.
* web-platform-tests/css/css-transitions/support/pattern-grg-rgr-grg.png: Added.
* web-platform-tests/css/css-transitions/support/pattern-grg-rrg-rgg.png: Added.
* web-platform-tests/css/css-transitions/support/pattern-rgr-grg-rgr.png: Added.
* web-platform-tests/css/css-transitions/support/pattern-tr.png: Added.
* web-platform-tests/css/css-transitions/support/properties.js: Added.
(values.string_appeared_here):
(assemble.):
(assemble):
(root.getPropertyTests):
(root.getMissingPropertyTests):
(root.getUnspecifiedPropertyTests):
(root.getFontSizeRelativePropertyTests):
(root.getAutoPropertyTests):
(root.filterPropertyTests):
* web-platform-tests/css/css-transitions/support/ruler-h-50%.png: Added.
* web-platform-tests/css/css-transitions/support/ruler-h-50px.png: Added.
* web-platform-tests/css/css-transitions/support/ruler-v-100px.png: Added.
* web-platform-tests/css/css-transitions/support/ruler-v-50px.png: Added.
* web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js: Added.
(noop):
(runLoop.concludeSlice):
(root.runParallelAsyncHarness):
* web-platform-tests/css/css-transitions/support/square-purple.png: Added.
* web-platform-tests/css/css-transitions/support/square-teal.png: Added.
* web-platform-tests/css/css-transitions/support/square-white.png: Added.
* web-platform-tests/css/css-transitions/support/support/README: Added.
* web-platform-tests/css/css-transitions/support/support/swatch-green.png: Added.
* web-platform-tests/css/css-transitions/support/support/swatch-red.png: Added.
* web-platform-tests/css/css-transitions/support/support/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/css/css-transitions/support/swatch-blue.png: Added.
* web-platform-tests/css/css-transitions/support/swatch-green.png: Added.
* web-platform-tests/css/css-transitions/support/swatch-lime.png: Added.
* web-platform-tests/css/css-transitions/support/swatch-orange.png: Added.
* web-platform-tests/css/css-transitions/support/swatch-red.png: Added.
* web-platform-tests/css/css-transitions/support/swatch-teal.png: Added.
* web-platform-tests/css/css-transitions/support/swatch-white.png: Added.
* web-platform-tests/css/css-transitions/support/swatch-yellow.png: Added.
* web-platform-tests/css/css-transitions/support/test-bl.png: Added.
* web-platform-tests/css/css-transitions/support/test-br.png: Added.
* web-platform-tests/css/css-transitions/support/test-inner-half-size.png: Added.
* web-platform-tests/css/css-transitions/support/test-outer.png: Added.
* web-platform-tests/css/css-transitions/support/test-tl.png: Added.
* web-platform-tests/css/css-transitions/support/test-tr.png: Added.
* web-platform-tests/css/css-transitions/support/two.gif: Added.
* web-platform-tests/css/css-transitions/support/vendorPrefix.js: Added.
(root.addVendorPrefix):
(root.addValueVendorPrefix):
(root.getVendorPrefix):
(root.getValueVendorPrefix):
* web-platform-tests/css/css-transitions/support/w3c-import.log: Added.
* web-platform-tests/css/css-transitions/transition-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/transition-001.html: Added.
* web-platform-tests/css/css-transitions/transition-background-position-with-edge-offset-expected.txt: Added.
* web-platform-tests/css/css-transitions/transition-background-position-with-edge-offset.html: Added.
* web-platform-tests/css/css-transitions/transition-delay-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/transition-delay-001.html: Added.
* web-platform-tests/css/css-transitions/transition-duration-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/transition-duration-001.html: Added.
* web-platform-tests/css/css-transitions/transition-property-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/transition-property-001.html: Added.
* web-platform-tests/css/css-transitions/transition-property-002-expected.txt: Added.
* web-platform-tests/css/css-transitions/transition-property-002.html: Added.
* web-platform-tests/css/css-transitions/transition-reparented-expected.txt: Added.
* web-platform-tests/css/css-transitions/transition-reparented.html: Added.
* web-platform-tests/css/css-transitions/transition-test-expected.html: Added.
* web-platform-tests/css/css-transitions/transition-test.html: Added.
* web-platform-tests/css/css-transitions/transitioncancel-001-expected.txt: Added.
* web-platform-tests/css/css-transitions/transitioncancel-001.html: Added.
* web-platform-tests/css/css-transitions/transitionevent-interface-expected.txt: Added.
* web-platform-tests/css/css-transitions/transitionevent-interface.html: Added.
* web-platform-tests/css/css-transitions/w3c-import.log: Added.
* web-platform-tests/css/css-transitions/zero-duration-multiple-transition-expected.txt: Added.
* web-platform-tests/css/css-transitions/zero-duration-multiple-transition.html: Added.
* web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/property-types.js:
(const.visibilityType.testAdditionOrAccumulation):
(const.filterListType.testInterpolation):
* web-platform-tests/web-animations/animation-model/animation-types/w3c-import.log: Added.
* web-platform-tests/web-animations/animation-model/combining-effects/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/web-animations/animation-model/keyframe-effects/w3c-import.log: Added.
* web-platform-tests/web-animations/interfaces/Animatable/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/web-animations/interfaces/Animation/idlharness.window-expected.txt: Added.
* web-platform-tests/web-animations/interfaces/Animation/idlharness.window.html: Added.
* web-platform-tests/web-animations/interfaces/Animation/oncancel.html:
* web-platform-tests/web-animations/interfaces/Animation/w3c-import.log: Added.
* web-platform-tests/web-animations/interfaces/AnimationEffect/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.window-expected.txt: Added.
* web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.window.html: Added.
* web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/web-animations/interfaces/Document/getAnimations-expected.txt:
* web-platform-tests/web-animations/interfaces/Document/getAnimations.html:
* web-platform-tests/web-animations/interfaces/Document/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.window-expected.txt: Added.
* web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.window.html: Added.
* web-platform-tests/web-animations/interfaces/DocumentTimeline/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.window-expected.txt: Added.
* web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.window.html: Added.
* web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/w3c-import.log: Added.
* web-platform-tests/web-animations/resources/w3c-import.log: Added.
* web-platform-tests/web-animations/timing-model/animation-effects/w3c-import.log: Added.
* web-platform-tests/web-animations/timing-model/animations/w3c-import.log: Added.
* web-platform-tests/web-animations/timing-model/time-transformations/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/web-animations/timing-model/timelines/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.
* web-platform-tests/web-animations/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-animations/support/w3c-import.log.

LayoutTests:

* TestExpectations:
* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* platform/ios/TestExpectations:
* platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
* platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:
* platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* tests-options.json:

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

7 months ago[LFC][IFC] Add support for preserved new line (pre, pre-wrap, break-spaces, pre-line)
zalan@apple.com [Fri, 25 Oct 2019 15:12:37 +0000 (15:12 +0000)]
[LFC][IFC] Add support for preserved new line (pre, pre-wrap, break-spaces, pre-line)
https://bugs.webkit.org/show_bug.cgi?id=203395
<rdar://problem/56606243>

Reviewed by Antti Koivisto.

<pre>Let's wrap the line
when the inline item's type is forced line break.</pre>

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* layout/LayoutContext.h:
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::collectInlineContent):
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
* layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
* layout/inlineformatting/InlineItem.cpp: Copied from Source/WebCore/layout/tableformatting/TableInvalidation.cpp.
(WebCore::Layout::InlineItem::isForcedLineBreak const):
(WebCore::Layout::InlineItem::isText const):
* layout/inlineformatting/InlineItem.h:
(WebCore::Layout::InlineItem::isBox const):
(WebCore::Layout::InlineItem::isText const): Deleted.
(WebCore::Layout::InlineItem::isHardLineBreak const): Deleted.
(WebCore::Layout::InlineItem::isLineBreak const): Deleted.
* layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::alignContentVertically):
(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendLineBreak):
(WebCore::Layout::Line::adjustBaselineAndLineHeight):
(WebCore::Layout::Line::inlineItemContentHeight const):
(WebCore::Layout::Line::appendHardLineBreak): Deleted.
* layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::isText const):
(WebCore::Layout::Line::Run::isForcedLineBreak const):
(WebCore::Layout::Line::Run::isLineBreak const): Deleted.
* layout/inlineformatting/InlineLineLayout.cpp:
(WebCore::Layout::inlineItemWidth):
(WebCore::Layout::LineLayout::placeInlineItem):
(WebCore::Layout::LineLayout::shouldProcessUncommittedContent const):
* layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::isSegmentBreak const):
* layout/tableformatting/TableInvalidation.cpp:

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

7 months ago[iOS] Regression(r251067) WebProcesses with service workers no longer keep their...
cdumez@apple.com [Fri, 25 Oct 2019 13:01:05 +0000 (13:01 +0000)]
[iOS] Regression(r251067) WebProcesses with service workers no longer keep their network process alive
https://bugs.webkit.org/show_bug.cgi?id=203388
<rdar://problem/56600074>

Reviewed by Geoffrey Garen.

Historically, WebProcessProxy::didSetAssertionState() used to return early for service worker processes
because we did not want service worker processes to prevent the network process from suspending. The
WebProcesses using the service worker process would prevent the network process from suspending when
they are visible, so it would work fine.

However, after r251067, there is no longer a concept of service worker process per se. Service workers
will now sometimes run in regular WebProcesses where we have pages. In such cases, didSetAssertionState()
would still return early and fail to keep its network process alive, even when the page(s) in this process
are visible on screen.

To address the issue, we now only return early if the process has a service worker but no page.
This should restore pre-existing behavior.

Note that this was causing hangs such as <rdar://problem/56245136> because the WebProcess would be
stuck on sync IPC to a suspended network process.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didSetAssertionState):

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

7 months agotest262-runner should be able to pass JSC a feature flag
ross.kirsling@sony.com [Fri, 25 Oct 2019 12:09:06 +0000 (12:09 +0000)]
test262-runner should be able to pass JSC a feature flag
https://bugs.webkit.org/show_bug.cgi?id=203301

Reviewed by Keith Miller.

JSTests:

* test262/config.yaml:
Add feature flag mapping.
Also skip a few forgotten features as well as BigInt TypedArray tests.

* test262/expectations.yaml:
Regenerate expectations.

Tools:

* Scripts/test262/Runner.pm:
Recognize mapping from 262 features to JSC runtime options.

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

7 months agoPython 3: Add support in webkitpy.common.checkout.scm
jbedard@apple.com [Fri, 25 Oct 2019 09:11:32 +0000 (09:11 +0000)]
Python 3: Add support in webkitpy.common.checkout.scm
https://bugs.webkit.org/show_bug.cgi?id=203277

Reviewed by Stephanie Lewis.

* Scripts/test-webkitpy-python3: Add webkitpy.common.checkout.scm, add --all flag.
* Scripts/webkitpy/common/checkout/scm/detection.py: Use full import paths.
* Scripts/webkitpy/common/checkout/scm/detection_unittest.py: Ditto.
* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.revisions_changing_file): Convert filter iterator to list.
(Git.prepend_svn_revision): Patches need to be bytes.
* Scripts/webkitpy/common/checkout/scm/scm.py: Import unicode.
* Scripts/webkitpy/common/checkout/scm/scm_unittest.py: Use full import paths,
differentiate between binary and text files, replace assertItemsEqual with sorted,
list fix regexes on byte arrays.
* Scripts/webkitpy/common/checkout/scm/stub_repository.py: Use full import paths.
* Scripts/webkitpy/common/checkout/scm/stub_repository_unittest.py: Use full import paths.
* Scripts/webkitpy/common/checkout/scm/svn.py: Use full import paths.
(SVN.diff_for_revision): Diff for revision should be byte array.
(SVN.propget): Use Python 3 compatible encoding.

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

7 months agoDatabaseContext should not prevent entering the back/forward cache
cdumez@apple.com [Fri, 25 Oct 2019 08:14:19 +0000 (08:14 +0000)]
DatabaseContext should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203103

Reviewed by Geoffrey Garen.

Source/WebCore:

Let pages with active webdatabase transactions into the back/forward cache. We make sure
to queue tasks that run script to the Window event loop, so that they get delayed when
the document is suspended.

No new tests, updated existing test.

* Modules/webdatabase/Database.cpp:
(WebCore::Database::runTransaction):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
* Modules/webdatabase/DatabaseContext.h:
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabase):
* Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::performPendingCallback):

LayoutTests:

* fast/history/page-cache-webdatabase-pending-transaction-expected.txt:
* fast/history/page-cache-webdatabase-pending-transaction.html:
Update existing test to reflect behavior change.

* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
Unmark test as flaky.

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

7 months agoStandardize "PageID=" vs "pageID =" in release logging
cdumez@apple.com [Fri, 25 Oct 2019 08:14:07 +0000 (08:14 +0000)]
Standardize "PageID=" vs "pageID =" in release logging
https://bugs.webkit.org/show_bug.cgi?id=203002

Reviewed by Geoffrey Garen.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _cancelAnimatedResize]):
(-[WKWebView _didCompleteAnimatedResize]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
* UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::processDidTerminate):
(WebKit::ProvisionalPageProxy::cancel):
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
(WebKit::ProvisionalPageProxy::didCreateMainFrame):
(WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::didReceiveResponse):
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::serviceWorkerDidNotHandle):
(WebKit::WebResourceLoader::didFailResourceLoad):
(WebKit::WebResourceLoader::didBlockAuthenticationChallenge):
(WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):
(WebKit::WebResourceLoader::didReceiveResource):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::freezeLayerTree):
(WebKit::WebPage::unfreezeLayerTree):

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

7 months agoMove JSC::Register inline methods into RegisterInlines.h.
mark.lam@apple.com [Fri, 25 Oct 2019 06:59:36 +0000 (06:59 +0000)]
Move JSC::Register inline methods into RegisterInlines.h.
https://bugs.webkit.org/show_bug.cgi?id=203391

Reviewed by Yusuke Suzuki and Keith Miller.

Source/JavaScriptCore:

We're doing this because:
1. RegisterInlines.h is the canonical place to put inline Register methods.
2. It helps reduce build time.
   e.g. build-jsc went from 208.02 to 196.81 seconds (about a 5% reduction).
3. This enables experimental work to box JSCells in JSValue.

This patch also handles the fallout of this change, which necessitates more
inline methods being moved from <file>.h to their respective <file>Inlines.h.

JSArray.h used to include ButterflyInlines.h and JSCellInlines.h.  This is a
violation of inclusion ordering (.h should not #include Inlines.h).  This
violation has been removed.

* API/JSAPIGlobalObject.mm:
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/CodeBlock.h:
(JSC::CallFrame::r): Deleted.
(JSC::CallFrame::uncheckedR): Deleted.
* bytecode/MetadataTable.cpp:
* ftl/FTLLowerDFGToB3.cpp:
* interpreter/CallFrame.h:
(JSC::CallFrame::guaranteedJSValueCallee const): Deleted.
(JSC::CallFrame::jsCallee const): Deleted.
(JSC::CallFrame::codeBlock const): Deleted.
(JSC::CallFrame::unsafeCodeBlock const): Deleted.
(JSC::CallFrame::scope const): Deleted.
(JSC::CallFrame::topOfFrame): Deleted.
(JSC::CallFrame::setScope): Deleted.
(JSC::CallFrame::setCallee): Deleted.
(JSC::CallFrame::setCodeBlock): Deleted.
* interpreter/CallFrameInlines.h:
(JSC::CallFrame::r):
(JSC::CallFrame::uncheckedR):
(JSC::CallFrame::guaranteedJSValueCallee const):
(JSC::CallFrame::jsCallee const):
(JSC::CallFrame::codeBlock const):
(JSC::CallFrame::unsafeCodeBlock const):
(JSC::CallFrame::lexicalGlobalObject const):
(JSC::CallFrame::setCallee):
(JSC::CallFrame::setCodeBlock):
(JSC::CallFrame::setScope):
(JSC::CallFrame::scope const):
(JSC::CallFrame::topOfFrame):
* interpreter/Interpreter.cpp:
* interpreter/ProtoCallFrame.h:
(JSC::ProtoCallFrame::init): Deleted.
* interpreter/ProtoCallFrameInlines.h: Added.
(JSC::ProtoCallFrame::init):
(JSC::ProtoCallFrame::callee const):
(JSC::ProtoCallFrame::setCallee):
(JSC::ProtoCallFrame::codeBlock const):
(JSC::ProtoCallFrame::setCodeBlock):
* interpreter/Register.h:
(JSC::Register::callFrame const): Deleted.
(JSC::Register::codeBlock const): Deleted.
(JSC::Register::asanUnsafeCodeBlock const): Deleted.
* interpreter/RegisterInlines.h: Added.
(JSC::Register::callFrame const):
(JSC::Register::codeBlock const):
(JSC::Register::asanUnsafeCodeBlock const):
(JSC::Register::object const):
(JSC::Register::operator=):
(JSC::Register::scope const):
* interpreter/StackVisitor.cpp:
* jit/AssemblyHelpers.h:
* llint/LLIntSlowPaths.cpp:
* runtime/ArrayStorage.h:
(JSC::ArrayStorage::optimalVectorLength): Deleted.
* runtime/ArrayStorageInlines.h: Added.
(JSC::ArrayStorage::availableVectorLength):
(JSC::ArrayStorage::optimalVectorLength):
(JSC::ArrayStorage::totalSize const):
* runtime/ButterflyInlines.h:
* runtime/ClassInfo.h:
* runtime/GetVM.h: Added.
* runtime/JSArray.h:
* runtime/JSArrayInlines.h:
* runtime/JSCellInlines.h:
* runtime/JSGlobalObject.h:
* runtime/JSObject.h:
(JSC::Register::object const): Deleted.
(JSC::Register::operator=): Deleted.
* runtime/JSObjectInlines.h:
* runtime/JSScope.h:
(JSC::Register::operator=): Deleted.
(JSC::Register::scope const): Deleted.
(JSC::CallFrame::lexicalGlobalObject const): Deleted.
* runtime/JSString.h:
* runtime/PropertyNameArray.h:
* runtime/PropertySlot.h:
* runtime/VMInlines.h:
* tools/HeapVerifier.cpp:
* wasm/js/WebAssemblyFunction.cpp:

Source/WebCore:

No new tests needed because there is no behavior change.

* platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:

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

7 months agoREGRESSION(r251468): Build, test failures in 32-bit JSC after BytecodeIndex refactoring
zandobersek@gmail.com [Fri, 25 Oct 2019 05:45:03 +0000 (05:45 +0000)]
REGRESSION(r251468): Build, test failures in 32-bit JSC after BytecodeIndex refactoring
https://bugs.webkit.org/show_bug.cgi?id=203290

Reviewed by Keith Miller.

* bytecode/BytecodeIndex.h:
(JSC::BytecodeIndex::BytecodeIndex):
Add a BytecodeIndex(WTF::HashTableDeletedValueType) constructor.
* bytecode/CodeOrigin.h:
(JSC::CodeOrigin::CodeOrigin):
Have the CodeOrigin(WTF::HashTableDeletedValueType) constructor
initialize the BytecodeIndex object accordingly, as a deleted value.
(JSC::CodeOrigin::isHashTableDeletedValue const):
Test BytecodeIndex object's deleted-value condition through the
corresponding BytecodeIndex::isHashTableDeletedValue() method.
* profiler/ProfilerOrigin.h:
(JSC::Profiler::Origin::Origin):
Simplify the m_bytecodeIndex member initialization for a deleted value.
(JSC::Profiler::Origin::operator! const):
Fix the negation operator, returning true if the m_bytecodeIndex is
either empty or deleted.

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

7 months agoAdd more information to SRI failure console messages
commit-queue@webkit.org [Fri, 25 Oct 2019 05:05:54 +0000 (05:05 +0000)]
Add more information to SRI failure console messages
https://bugs.webkit.org/show_bug.cgi?id=203383

Patch by Alex Christensen <achristensen@webkit.org> on 2019-10-24
Reviewed by Geoff Garen.

Source/WebCore:

* bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::notifyFinished):
* dom/LoadableClassicScript.cpp:
(WebCore::LoadableClassicScript::notifyFinished):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::reportIntegrityMetadataError):
* loader/DocumentThreadableLoader.h:
* loader/SubresourceIntegrity.cpp:
(WebCore::integrityMismatchDescription):
* loader/SubresourceIntegrity.h:

LayoutTests:

* http/tests/subresource-integrity/sri-enabled-with-setting-expected.txt:
* http/tests/subresource-integrity/sri-module-expected.txt:
* http/tests/subresource-integrity/sri-script-expected.txt:
* http/tests/subresource-integrity/sri-style-expected.txt:

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

7 months agoAutomate generation of computedProperties
drousso@apple.com [Fri, 25 Oct 2019 04:22:07 +0000 (04:22 +0000)]
Automate generation of computedProperties
https://bugs.webkit.org/show_bug.cgi?id=198680
<rdar://problem/51507834>

Reviewed by Simon Fraser.

Source/WebCore:

A property should be listed as part of a `CSSStyleDeclaration` if:
 - it will not be skipped (`skip-builder`) when generating/building properties
 - it's not `internal-only`
 - it has more than one non-`skip-builder`/non-`internal-only` property in `longhands`
    - if all the `longhands` are `skip-builder`/`internal-only` then the property doesn't
      really "have" any longhand properties
    - if there's only one property in `longhands`, then it's more of an alias than a longhand

* css/makeprop.pl:
(sortWithPrefixedPropertiesLast): Added.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::cssText const):
(WebCore::CSSComputedStyleDeclaration::length const):
(WebCore::CSSComputedStyleDeclaration::item const):
(WebCore::ComputedStyleExtractor::copyPropertiesInSet):
(WebCore::ComputedStyleExtractor::copyProperties):

* css/StyleProperties.h:
* css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::MutableStyleProperties):
(WebCore::StyleProperties::copyPropertiesInSet):
(WebCore::MutableStyleProperties::create):

LayoutTests:

* fast/css/getComputedStyle/computed-style-expected.txt:
* platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt:

* fast/css/getComputedStyle/computed-style-font-family-expected.txt:
* platform/gtk/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
* platform/ios/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
* platform/mac/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
* platform/mac-sierra/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
* platform/wpe/fast/css/getComputedStyle/computed-style-font-family-expected.txt:

* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

* svg/css/getComputedStyle-basic-expected.txt:
* platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
* platform/ios/svg/css/getComputedStyle-basic-expected.txt:
* platform/mac/svg/css/getComputedStyle-basic-expected.txt:
* platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
* platform/wpe/svg/css/getComputedStyle-basic-expected.txt:

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

7 months agoimported/w3c/web-platform-tests/css/css-values/calc-positive-fraction-001.html fails
simon.fraser@apple.com [Fri, 25 Oct 2019 03:16:47 +0000 (03:16 +0000)]
imported/w3c/web-platform-tests/css/css-values/calc-positive-fraction-001.html fails
https://bugs.webkit.org/show_bug.cgi?id=203332

Reviewed by Dean Jackson.
Source/WebCore:

The calc() spec <https://drafts.csswg.org/css-values-4/#calc-range> says that you clamp
and round the result of the clamp computation. Do that, instead of treating non-integral
calc results as invalid for CSS properties that only take integers.

Tests: imported/w3c/web-platform-tests/css/css-values/calc-positive-fraction-001.html

* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeInteger):

LayoutTests:

imported/w3c/web-platform-tests/css/css-values/calc-positive-fraction-001.html passes now.

* TestExpectations:

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

7 months agoUnreviewed, a test fix after r251498
jiewen_tan@apple.com [Fri, 25 Oct 2019 01:36:22 +0000 (01:36 +0000)]
Unreviewed, a test fix after r251498

* TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid.html:

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

7 months agoSimplify ProcessThrottler implementation
cdumez@apple.com [Fri, 25 Oct 2019 01:07:08 +0000 (01:07 +0000)]
Simplify ProcessThrottler implementation
https://bugs.webkit.org/show_bug.cgi?id=203370

Reviewed by Alex Christensen.

Simplify ProcessThrottler implementation by:
- Getting rid of CancelPrepareToSuspend IPC. Instead a regular ProcessDidResume IPC is sent to
  the child process.
- Getting rid of the ProcessWillSuspendImminently IPC and send a regular ProcessDidResume IPC
  with a 'isSuspensionImminent' flag instead.
- Whether the suspension is imminent or not, the child process now always responds with
  a ProcessReadyToSuspend IPC. This simplifies our logic as the idea is that treating imminent
  and non-imminent suspension should share as much of the same logic as possible.
- All PrepareToSuspend IPCs now have an associated identifier and the child process sends back
  this identifier when responding with a ProcessReadyToSuspend IPC. This allows the
  ProcessThrottler to easily ignore outdated requests to suspend, without requiring the
  m_suspendMessageCount data member we had.

This patch also adds more logging to ProcessThrottler and the suspension logic in the child
processes. All ProcessThrottler logging now also shows the child process's PID for clarity.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::processWillSuspendImminentlyForTestingSync):
(WebKit::NetworkProcess::prepareToSuspend):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processWillSuspendImminentlyForTesting]):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):
(WebKit::NetworkProcessProxy::processReadyToSuspend):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/ProcessThrottler.cpp:
(WebKit::generatePrepareToSuspendRequestID):
(WebKit::ProcessThrottler::ProcessThrottler):
(WebKit::m_backgroundCounter):
(WebKit::ProcessThrottler::expectedAssertionState):
(WebKit::ProcessThrottler::updateAssertionStateNow):
(WebKit::ProcessThrottler::setAssertionState):
(WebKit::ProcessThrottler::updateAssertionIfNeeded):
(WebKit::ProcessThrottler::didConnectToProcess):
(WebKit::ProcessThrottler::prepareToSuspendTimeoutTimerFired):
(WebKit::ProcessThrottler::processReadyToSuspend):
(WebKit::ProcessThrottler::clearPendingRequestToSuspend):
(WebKit::ProcessThrottler::sendPrepareToSuspendIPC):
(WebKit::ProcessThrottler::uiAssertionWillExpireImminently):
* UIProcess/ProcessThrottler.h:
* UIProcess/ProcessThrottlerClient.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::sendPrepareToSuspend):
(WebKit::WebProcessProxy::processReadyToSuspend):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::prepareToSuspend):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

7 months ago[jsc test] Skip intl-numberformat.js test
zhifei_fang@apple.com [Fri, 25 Oct 2019 00:27:00 +0000 (00:27 +0000)]
[jsc test] Skip intl-numberformat.js test
https://bugs.webkit.org/show_bug.cgi?id=203279

Reviewed by Yusuke Suzuki.

* js/script-tests/intl-numberformat.js:

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

7 months agoAdd a mechanism to find and manipulate text by paragraphs
rniwa@webkit.org [Fri, 25 Oct 2019 00:08:13 +0000 (00:08 +0000)]
Add a mechanism to find and manipulate text by paragraphs
https://bugs.webkit.org/show_bug.cgi?id=203286

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch introduces TextManipulationController which allows WebKit clients to find and replace
text content in a given document by paragraph boundary. For now, TextManipulationController finds
all paragraphs in the document and invokes the callback for each paragraph. In the future, this
controller will support detecting removal and insertion of new content to the document.

Tests: TextManipulation.StartTextManipulationFindSimpleParagraphs
       TextManipulation.StartTextManipulationFindParagraphsWithMultileTokens
       TextManipulation.CompleteTextManipulationShouldReplaceSimpleParagraphContent
       TextManipulation.CompleteTextManipulationShouldFailWhenContentIsChanged
       TextManipulation.CompleteTextManipulationShouldFailWhenDocumentHasBeenNavigatedAway

* Headers.cmake:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::prepareForDestruction): Clear TextManipulationController. Otherwise m_items
in TextManipulationController may keep a bunch of nodes alive and not let this document destructed.
(WebCore::Document::textManipulationController): Added.
* dom/Document.h:
(WebCore::Document::textManipulationControllerIfExists): Added.
* editing/TextManipulationController.cpp: Added.
(WebCore::TextManipulationController::TextManipulationController): Added.
(WebCore::TextManipulationController::startObservingParagraphs): Finds all pargraphs and invoke
the callback.
(WebCore::TextManipulationController::addItem): Added. A helper for startObservingParagraphs.
(WebCore::TextManipulationController::completeManipulation): Added.
(WebCore::TextManipulationController::replace): Added. A helper for completeManipulation.
* editing/TextManipulationController.h: Added.
(WebCore::TextManipulationController::ManipulationToken::encode const): Added.
(WebCore::TextManipulationController::ManipulationToken::decode): Added.

Source/WebKit:

This patch introduces a new SPI to find paragraphs of text and let client replace the content of each paragraph.
For now, this SPI is limited to find & replace contents of main frame's document.

WKWebView's _startTextManipulationsWithCompletionHandler sends StartTextManipulations message to WebContent process
to find all paragraphs in the main frame. WebContent process will send back DidFindTextManipulationItem message
for each paragraph, which in turn calls back _WKTextManipulationDelegate's _webView: didFindTextManipulationItem:.

Upon receiving this delegate callback, the client can invoke WKWebView's _completeTextManipulation to replace
the content. It will send CompleteTextManipulation to WebContent process, which will invoke completeManipulation
on main frame's document's TextManipulationController.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _textManipulationDelegate]): Aded.
(-[WKWebView _setTextManipulationDelegate:]): Aded.
(-[WKWebView _startTextManipulationsWithCompletionHandler:]):
(-[WKWebView _completeTextManipulation:completion:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/Cocoa/_WKTextManipulationDelegate.h: Added.
* UIProcess/API/Cocoa/_WKTextManipulationItem.h: Added.
* UIProcess/API/Cocoa/_WKTextManipulationItem.mm: Added.
(-[_WKTextManipulationItem initWithIdentifier:tokens:]):
(-[_WKTextManipulationItem identifier]):
(-[_WKTextManipulationItem tokens]):
* UIProcess/API/Cocoa/_WKTextManipulationToken.h: Added.
* UIProcess/API/Cocoa/_WKTextManipulationToken.mm: Added.
(-[_WKTextManipulationToken init]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::startTextManipulations):
(WebKit::WebPageProxy::didFindTextManipulationItem):
(WebKit::WebPageProxy::completeTextManipulation):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::startTextManipulations):
(WebKit::WebPage::completeTextManipulation):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Tools:

Added basic API tests for the new SPI.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm: Added.
(-[TextManipulationDelegate init]):
(-[TextManipulationDelegate _webView:didFindItem:forFrame:]):
(-[TextManipulationDelegate items]):
(TestWebKitAPI::createItem):

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

7 months agoUnreviewed, rolling out r251536.
repstein@apple.com [Thu, 24 Oct 2019 23:45:01 +0000 (23:45 +0000)]
Unreviewed, rolling out r251536.

Landed 3 Broken Tests.

Reverted changeset:

"[Web Animations] Update WPT tests related to Web Animations
and remove imported Mozilla tests"
https://bugs.webkit.org/show_bug.cgi?id=203291
https://trac.webkit.org/changeset/251536

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