Timeline



Oct 27, 2019:

9:49 PM Changeset in webkit [251647] by Simon Fraser
  • 37 edits in trunk

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:
7:48 PM Changeset in webkit [251646] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

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).
3:53 PM Changeset in webkit [251645] by jiewen_tan@apple.com
  • 24 edits
    1 add in trunk

[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.

3:12 PM Changeset in webkit [251644] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

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:
1:24 PM Changeset in webkit [251643] by Claudio Saavedra
  • 4 edits in trunk

[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.

10:18 AM Changeset in webkit [251642] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[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):

9:52 AM Changeset in webkit [251641] by Simon Fraser
  • 7 edits
    346 adds in trunk/LayoutTests

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:

9:33 AM Changeset in webkit [251640] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[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):

Oct 26, 2019:

1:50 PM Changeset in webkit [251639] by youenn@apple.com
  • 12 edits
    2 adds in trunk

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:
12:16 PM Changeset in webkit [251638] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[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):

10:17 AM Changeset in webkit [251637] by commit-queue@webkit.org
  • 21 edits
    26 adds in trunk

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:
8:15 AM Changeset in webkit [251636] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

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.

8:10 AM Changeset in webkit [251635] by Simon Fraser
  • 3 edits
    100 adds in trunk/LayoutTests/imported/w3c

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.
7:50 AM Changeset in webkit [251634] by Simon Fraser
  • 25 edits
    3 adds in trunk/LayoutTests/imported/w3c

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:
5:53 AM Changeset in webkit [251633] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[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.

5:47 AM Changeset in webkit [251632] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

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:
12:31 AM Changeset in webkit [251631] by yurys@chromium.org
  • 1 edit
    1 copy
    1 delete in trunk/LayoutTests

[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.
12:12 AM Changeset in webkit [251630] by commit-queue@webkit.org
  • 63 edits
    11 copies
    5 adds
    2 deletes in trunk

Put OffscreenCanvas behind a build flag
https://bugs.webkit.org/show_bug.cgi?id=203146

Patch by Chris Lord <Chris Lord> 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.

Oct 25, 2019:

11:45 PM Changeset in webkit [251629] by yurys@chromium.org
  • 1 edit
    1 delete in trunk/LayoutTests

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.

11:12 PM Changeset in webkit [251628] by yurys@chromium.org
  • 6 edits in trunk/LayoutTests

[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:
9:53 PM Changeset in webkit [251627] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

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.

7:38 PM Changeset in webkit [251626] by eric.carlson@apple.com
  • 10 edits in trunk

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:
7:36 PM Changeset in webkit [251625] by Wenson Hsieh
  • 6 edits in trunk/LayoutTests

[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.

6:57 PM Changeset in webkit [251624] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

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):

6:48 PM Changeset in webkit [251623] by aestes@apple.com
  • 15 edits
    2 copies
    1 add in trunk/Source

[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.

  1. 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.
6:40 PM Changeset in webkit [251622] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

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:
6:21 PM Changeset in webkit [251621] by yurys@chromium.org
  • 4 edits in trunk/LayoutTests

[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:
6:10 PM Changeset in webkit [251620] by yurys@chromium.org
  • 14 edits
    6 adds in trunk

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.

6:03 PM Changeset in webkit [251619] by Megan Gardner
  • 2 edits in trunk/LayoutTests

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:
5:53 PM Changeset in webkit [251618] by sihui_liu@apple.com
  • 3 edits in trunk/LayoutTests

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:
5:46 PM Changeset in webkit [251617] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[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:
5:37 PM Changeset in webkit [251616] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebKit

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 contextIdto 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 contextIdto 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.
5:21 PM Changeset in webkit [251615] by pvollan@apple.com
  • 6 edits in trunk/LayoutTests

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:
5:16 PM Changeset in webkit [251614] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

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.

5:00 PM Changeset in webkit [251613] by Jonathan Bedard
  • 9 edits in trunk/Tools

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.

5:00 PM Changeset in webkit [251612] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[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:
4:22 PM Changeset in webkit [251611] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

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.

4:16 PM Changeset in webkit [251610] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[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:
4:12 PM Changeset in webkit [251609] by Truitt Savell
  • 2 edits in trunk/LayoutTests

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:
4:00 PM Changeset in webkit [251608] by Jonathan Bedard
  • 5 edits in trunk/Tools

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.

3:41 PM Changeset in webkit [251607] by Dewei Zhu
  • 4 edits in trunk/Websites/perf.webkit.org

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.
3:37 PM Changeset in webkit [251606] by yurys@chromium.org
  • 2 edits in trunk/LayoutTests

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:
3:17 PM Changeset in webkit [251605] by rniwa@webkit.org
  • 11 edits
    4 deletes in trunk

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

3:07 PM Changeset in webkit [251604] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[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.

2:44 PM Changeset in webkit [251603] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

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:
2:28 PM Changeset in webkit [251602] by Matt Lewis
  • 32 edits
    2 deletes in trunk

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:
2:24 PM Changeset in webkit [251601] by Wenson Hsieh
  • 6 edits in trunk

[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:
1:41 PM Changeset in webkit [251600] by rniwa@webkit.org
  • 19 edits
    4 adds in trunk

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:
12:25 PM Changeset in webkit [251599] by Chris Dumez
  • 17 edits in trunk/Source/WebKit

[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:
12:04 PM Changeset in webkit [251598] by youenn@apple.com
  • 7 edits in trunk

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:
11:22 AM Changeset in webkit [251597] by Truitt Savell
  • 4 edits in trunk/LayoutTests

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:
10:47 AM Changeset in webkit [251596] by achristensen@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

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.
10:16 AM Changeset in webkit [251595] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

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):

9:20 AM Changeset in webkit [251594] by youenn@apple.com
  • 21 edits in trunk

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.

9:16 AM Changeset in webkit [251593] by Jonathan Bedard
  • 2 edits in trunk/Tools

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):

8:44 AM Changeset in webkit [251592] by Chris Dumez
  • 11 edits in trunk

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

8:29 AM Changeset in webkit [251591] by graouts@webkit.org
  • 33 edits
    11 copies
    30 moves
    312 adds
    43 deletes in trunk/LayoutTests

[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:
8:12 AM Changeset in webkit [251590] by Alan Bujtas
  • 12 edits
    1 copy in trunk/Source/WebCore

[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:
8:09 AM WebKitGTK/Debugging edited by clopez@igalia.com
(diff)
8:08 AM WebKitGTK/Debugging edited by clopez@igalia.com
(diff)
6:01 AM Changeset in webkit [251589] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[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):

5:09 AM Changeset in webkit [251588] by Ross Kirsling
  • 5 edits in trunk

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.

2:11 AM Changeset in webkit [251587] by Jonathan Bedard
  • 10 edits in trunk/Tools

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.

1:14 AM Changeset in webkit [251586] by Chris Dumez
  • 11 edits in trunk

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.

1:14 AM Changeset in webkit [251585] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

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):

Oct 24, 2019:

11:59 PM Changeset in webkit [251584] by mark.lam@apple.com
  • 33 edits
    4 adds in trunk/Source

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:
10:45 PM Changeset in webkit [251583] by zandobersek@gmail.com
  • 4 edits in trunk/Source/JavaScriptCore

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.

10:05 PM Changeset in webkit [251582] by commit-queue@webkit.org
  • 15 edits in trunk

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:
9:22 PM Changeset in webkit [251581] by Devin Rousso
  • 30 edits in trunk

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:
8:16 PM Changeset in webkit [251580] by Simon Fraser
  • 4 edits in trunk

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.

6:36 PM Changeset in webkit [251579] by jiewen_tan@apple.com
  • 2 edits in trunk/Tools

Unreviewed, a test fix after r251498

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid.html:
6:30 PM Changeset in webkit [251578] by dino@apple.com
  • 17 edits in branches/safari-608-branch

Cherry-pick r251390. rdar://56579651

Dispatch AR event on the originating anchor element
https://bugs.webkit.org/show_bug.cgi?id=203198
<rdar://55743929>

Reviewed by Simon Fraser.

Source/WebCore:

Expose an ElementContext on the SystemPreviewInfo, so that
when something happens in the AR QuickLook an event can be
fired on the originating <a> element.

  • dom/Document.cpp: (WebCore::Document::dispatchSystemPreviewActionEvent): Make sure we dispatch only to the HTMLAnchorElement.
  • dom/Document.h:
  • html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::handleClick):
  • loader/FrameLoaderTypes.h: (WebCore::SystemPreviewInfo::encode const): (WebCore::SystemPreviewInfo::decode):
  • testing/Internals.cpp: (WebCore::Internals::elementIdentifier const):
  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Use the ElementContext on SystemPreviewInfo.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _triggerSystemPreviewActionOnElement:frame:page:]): (-[WKWebView _triggerSystemPreviewActionOnFrame:page:]): Deleted.
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
  • UIProcess/SystemPreviewController.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::systemPreviewActionTriggered):

Tools:

Improve this test, most importantly so that it
actually works :)

Retrieve the ElementIdentifier for the <a> element,
and trigger a system preview action on it.

  • TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm: (-[TestSystemPreviewTriggeredHandler userContentController:didReceiveScriptMessage:]): (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/system-preview-trigger.html:
6:07 PM Changeset in webkit [251577] by Chris Dumez
  • 17 edits in trunk/Source/WebKit

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:
6:00 PM Changeset in webkit [251576] by dino@apple.com
  • 7 edits
    1 add in branches/safari-608-branch/Source

Cherry-pick r251388. rdar://56579651

Move ElementContext from WebKit to WebCore
https://bugs.webkit.org/show_bug.cgi?id=203210
<rdar://problem/56475682>

Reviewed by Simon Fraser.

5:27 PM Changeset in webkit [251575] by zhifei_fang@apple.com
  • 2 edits in trunk/LayoutTests

[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:
5:08 PM Changeset in webkit [251574] by rniwa@webkit.org
  • 23 edits
    8 adds in trunk

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):

4:45 PM Changeset in webkit [251573] by Russell Epstein
  • 32 edits
    9 copies
    21 moves
    45 adds
    65 deletes in trunk/LayoutTests

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

4:07 PM Changeset in webkit [251572] by Alan Coon
  • 3 edits in tags/Safari-609.1.8/Source/WebCore

Cherry-pick r251571. rdar://problem/56560773

Build fix after r251567.

  • page/Page.cpp: (WebCore::Page::collectDocuments):
  • page/Page.h:

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

3:57 PM Changeset in webkit [251571] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Build fix after r251567.

  • page/Page.cpp:

(WebCore::Page::collectDocuments):

  • page/Page.h:
3:54 PM Changeset in webkit [251570] by Alan Coon
  • 9 edits
    2 deletes in tags/Safari-609.1.8

Cherry-pick r251567. rdar://problem/56560773

Unreviewed, rolling out r251269, r251294, and r251328.
https://bugs.webkit.org/show_bug.cgi?id=203384

Probably made many animation tests flaky (Requested by rniwa
on #webkit).

Reverted changesets:

"Integrate resize event with HTML5 event loop"
https://bugs.webkit.org/show_bug.cgi?id=202964
https://trac.webkit.org/changeset/251269

"Flaky Test: fast/events/resize-subframe-in-rendering-
update.html"
https://bugs.webkit.org/show_bug.cgi?id=203140
https://trac.webkit.org/changeset/251294

"Flaky Test: fast/events/resize-subframe-in-rendering-
update.html"
https://bugs.webkit.org/show_bug.cgi?id=203140
https://trac.webkit.org/changeset/251328

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

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

3:51 PM Changeset in webkit [251569] by Matt Lewis
  • 21 edits
    8 deletes in trunk

Unreviewed, rolling out r251558.

This broke internal builds

Reverted changeset:

"Add a mechanism to find and manipulate text by paragraphs"
https://bugs.webkit.org/show_bug.cgi?id=203286
https://trac.webkit.org/changeset/251558

3:48 PM Changeset in webkit [251568] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r251409) Service worker connection should not be established without service worker entitlement
https://bugs.webkit.org/show_bug.cgi?id=203385
<rdar://problem/37790257>

Reviewed by Chris Dumez.

r251409 introduced a new call to establishSWServerConnection that should have an entitlement check.
This was caught by a unit test in CI that is not easy to reproduce in WebKit's test. See the radar.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):

3:40 PM Changeset in webkit [251567] by rniwa@webkit.org
  • 9 edits
    2 deletes in trunk

Unreviewed, rolling out r251269, r251294, and r251328.
https://bugs.webkit.org/show_bug.cgi?id=203384

Probably made many animation tests flaky (Requested by rniwa
on #webkit).

Reverted changesets:

"Integrate resize event with HTML5 event loop"
https://bugs.webkit.org/show_bug.cgi?id=202964
https://trac.webkit.org/changeset/251269

"Flaky Test: fast/events/resize-subframe-in-rendering-
update.html"
https://bugs.webkit.org/show_bug.cgi?id=203140
https://trac.webkit.org/changeset/251294

"Flaky Test: fast/events/resize-subframe-in-rendering-
update.html"
https://bugs.webkit.org/show_bug.cgi?id=203140
https://trac.webkit.org/changeset/251328

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

3:14 PM Changeset in webkit [251566] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Mismatch in com.apple.coremedia.audiodeviceclock declarations
https://bugs.webkit.org/show_bug.cgi?id=203367
<rdar://problem/56581166>

Reviewed by Per Arne Vollan.

The 'common.sb' sandbox allows access to "com.apple.coremedia.audiodeviceclock.xpc", but
the WebContent sandbox blocked access to "com.apple.coremedia.audiodeviceclock". This means
we aren't blocking that endpoint.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:12 PM Changeset in webkit [251565] by sihui_liu@apple.com
  • 6 edits in trunk

[ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
https://bugs.webkit.org/show_bug.cgi?id=203173
<rdar://problem/56424721>

Source/JavaScriptCore:

Hold a strong reference to JSGlobalOjbect in ConsoleMessage so that object is not garbage collected before
WebConsoleAgent::frameWindowDiscarded.

Covered by existing test: inspector/console/webcore-logging.html.

Reviewed by Geoffrey Garen.

  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::clear):

  • inspector/ConsoleMessage.h:

LayoutTests:

Reviewed by Geoffrey Garen.

play() returns a promise and the promise can be rejected by a later pause(). We didn't handle
that case so we could receive a type JavaScript message for the unhandled rejected promise.

  • inspector/console/webcore-logging.html:
  • platform/mac-wk1/TestExpectations:
3:00 PM Changeset in webkit [251564] by Dewei Zhu
  • 34 edits in trunk/Websites/perf.webkit.org

Refactor "builds" table "build_number" row to "build_tag" to fit more generic use cases.
https://bugs.webkit.org/show_bug.cgi?id=203270

Reviewed by Ryosuke Niwa.

Rename "build_number" to "build_tag" to fit more generic use cases.
Add support to be backward compatible to accept reports contain either
"buildNumber" or "buildTag".

  • browser-tests/index.html:
  • init-database.sql:
  • migrate-database.sql: Updated migration sql for this change.
  • public/admin/test-configurations.php:
  • public/api/measurement-set.php:
  • public/api/runs.php:
  • public/api/upload-root.php: Added support for both "buildNumber" and "buildTag".
  • public/include/report-processor.php: Added support for both "buildNumber" and "buildTag".
  • public/v3/models/builder.js:

(Builder.prototype.urlForBuild):
(Builder):
(Build):
(Build.prototype.buildTag):
(Build.prototype.label):
(Build.prototype.url):
(Build.prototype.buildNumber): Deleted.

  • public/v3/models/measurement-adaptor.js:

(MeasurementAdaptor):
(MeasurementAdaptor.prototype.applyTo.return.build):

  • public/v3/pages/chart-pane-status-view.js:
  • public/v3/pages/test-freshness-page.js:

(TestFreshnessPage.prototype._renderTooltip):

  • server-tests/admin-platforms-tests.js:

(reportsForDifferentPlatforms):

  • server-tests/admin-reprocess-report-tests.js:
  • server-tests/api-commits-tests.js:
  • server-tests/api-manifest-tests.js:
  • server-tests/api-measurement-set-tests.js:
  • server-tests/api-report-tests.js: Added unit tests for testing "buildNumber" and "buildTag".

(emptyReport):
(reportWitMismatchingCommitTime):
(reportWithOneSecondCommitTimeDifference):
(emptySlaveReport):
(makeReport):
(reportWithSameSubtestName):

  • server-tests/api-upload-root-tests.js: Added unit tests for testing "buildNumber" and "buildTag".
  • server-tests/privileged-api-add-build-requests-tests.js:
  • server-tests/privileged-api-create-analysis-task-tests.js:
  • server-tests/privileged-api-create-test-group-tests.js:

(createAnalysisTask):

  • server-tests/privileged-api-upate-run-status.js:
  • server-tests/privileged-api-update-test-group-tests.js:

(async.createAnalysisTask):

  • server-tests/resources/mock-data.js:

(MockData.addMockConfiguration):
(MockData.sampleBuildData):
(MockData.finishedBuildData):

  • server-tests/tools-sync-buildbot-integration-tests.js:
  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry.prototype.initialize):
(BuildbotBuildEntry.prototype.buildTag):
(BuildbotBuildEntry.prototype.url):
(BuildbotSyncer.prototype.urlForBuildTag):
(BuildbotBuildEntry.prototype.buildNumber): Deleted.
(BuildbotSyncer.prototype.urlForBuildNumber): Deleted.

  • unit-tests/analysis-task-tests.js:

(measurementCluster):

  • unit-tests/buildbot-syncer-tests.js:
  • unit-tests/measurement-adaptor-tests.js:
  • unit-tests/measurement-set-analyzer-tests.js:
  • unit-tests/measurement-set-tests.js:
  • unit-tests/resources/mock-v3-models.js:
2:42 PM Changeset in webkit [251563] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Mismatch in com.apple.MediaPlayer.RemotePlayerService declarations
https://bugs.webkit.org/show_bug.cgi?id=203368
<rdar://problem/56581152>

Reviewed by Per Arne Vollan.

The 'common.sb' sandbox allows access to the xpc-service-name "com.apple.MediaPlayer.RemotePlayerService",
but we block access to the global-name "com.apple.MediaPlayer.RemoteService". We aren't blocking
the right thing.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:28 PM Changeset in webkit [251562] by jiewen_tan@apple.com
  • 2 edits in trunk/Tools

Unreviewed, a test fix after r251498

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
2:21 PM Changeset in webkit [251561] by Simon Fraser
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening.

Make the test added in r251385 pass in WebKit1.

  • compositing/video/video-border-radius-clipping-expected.html:
  • compositing/video/video-border-radius-clipping.html:
2:17 PM Changeset in webkit [251560] by beidson@apple.com
  • 5 edits in trunk

Expose pageZoom as API.
https://bugs.webkit.org/show_bug.cgi?id=203381

Reviewed by Andy Estes.

Source/WebKit:

No new tests (No behavior change, identical to SPI)

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setPageZoom:]):
(-[WKWebView pageZoom]):
(-[WKWebView _pageZoomFactor]):
(-[WKWebView _setPageZoomFactor:]):

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController toggleZoomMode:]):
(-[WK2BrowserWindowController resetZoom:]):
(-[WK2BrowserWindowController canResetZoom]):
(-[WK2BrowserWindowController currentZoomFactor]):
(-[WK2BrowserWindowController setCurrentZoomFactor:]):

2:11 PM Changeset in webkit [251559] by ysuzuki@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

[JSC] Properly organize wasm operations
https://bugs.webkit.org/show_bug.cgi?id=203360

Reviewed by Keith Miller.

This patch cleans up operation functions called from Wasm.

  1. Properly name these operations with prefix "operation".
  2. Do not use lambda. Define function with JIT_OPERATION.
  3. Consolidate them in WasmOperations.cpp.
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addRefFunc):
(JSC::Wasm::AirIRGenerator::addTableGet):
(JSC::Wasm::AirIRGenerator::addTableSet):
(JSC::Wasm::AirIRGenerator::addTableSize):
(JSC::Wasm::AirIRGenerator::addTableGrow):
(JSC::Wasm::AirIRGenerator::addTableFill):
(JSC::Wasm::AirIRGenerator::addGrowMemory):
(JSC::Wasm::AirIRGenerator::emitWriteBarrierForJSWrapper):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Popcnt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Popcnt>):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addTableGet):
(JSC::Wasm::B3IRGenerator::addTableSet):
(JSC::Wasm::B3IRGenerator::addRefFunc):
(JSC::Wasm::B3IRGenerator::addTableSize):
(JSC::Wasm::B3IRGenerator::addTableGrow):
(JSC::Wasm::B3IRGenerator::addTableFill):
(JSC::Wasm::B3IRGenerator::addGrowMemory):
(JSC::Wasm::B3IRGenerator::emitWriteBarrierForJSWrapper):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32Popcnt>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64Popcnt>):

  • wasm/WasmInstance.cpp:

(JSC::Wasm::getWasmTableElement): Deleted.
(JSC::Wasm::setWasmTableElement): Deleted.
(JSC::Wasm::doWasmTableGrow): Deleted.
(JSC::Wasm::doWasmTableFill): Deleted.
(JSC::Wasm::doWasmRefFunc): Deleted.

  • wasm/WasmInstance.h:
  • wasm/WasmOperations.cpp:

(JSC::Wasm::operationWasmUnwind):
(JSC::Wasm::operationConvertToF64):
(JSC::Wasm::operationConvertToI32):
(JSC::Wasm::operationConvertToF32):
(JSC::Wasm::operationIterateResults):
(JSC::Wasm::operationAllocateResultsArray):
(JSC::Wasm::operationWasmWriteBarrierSlowPath):
(JSC::Wasm::operationPopcount32):
(JSC::Wasm::operationPopcount64):
(JSC::Wasm::operationGrowMemory):
(JSC::Wasm::operationGetWasmTableElement):
(JSC::Wasm::setWasmTableElement):
(JSC::Wasm::operationSetWasmTableElement):
(JSC::Wasm::operationWasmTableGrow):
(JSC::Wasm::operationWasmTableFill):
(JSC::Wasm::operationWasmRefFunc):
(JSC::Wasm::operationGetWasmTableSize):
(JSC::Wasm::operationWasmToJSException):

  • wasm/WasmOperations.h:
  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::marshallJSResult):
(JSC::Wasm::allocateResultsArray): Deleted.

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):
(JSC::Wasm::operationWasmToJSException): Deleted.

  • wasm/js/WasmToJS.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:
2:01 PM Changeset in webkit [251558] by rniwa@webkit.org
  • 21 edits
    8 adds in trunk

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):

1:48 PM Changeset in webkit [251557] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[Web Animations] Fix compositing/backing/transform-transition-from-outside-view.html
https://bugs.webkit.org/show_bug.cgi?id=184566

Patch by Antoine Quint <Antoine Quint> on 2019-10-24
Reviewed by Simon Fraser.

For the most part this is the same fix that Simon Fraser made to address 184611 in r251412 although here I also
changed the setTimeout call to requestAnimationFrame in order to ensure that the backing store bit was set in the
layer dump for WK1.

  • TestExpectations:
  • compositing/backing/transform-transition-from-outside-view.html:
1:27 PM Changeset in webkit [251556] by ysuzuki@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Remove LLInt's Callee size assumption
https://bugs.webkit.org/show_bug.cgi?id=203282

Reviewed by Mark Lam.

LLInt code still assumes that Callee is always allocated in non-LargeAllocation.
This patch removes this assumption by following three changes.

  1. If we can get CodeBlock, we get VM& from CodeBlock.
  2. In nativeCallTrampoline and internalFunctionCallTrampoline, we get VM& from JSGlobalObject. It involves one more pointer-chasing but it is OK since this JSGlobalObject's VM* field will be touched in called native functions anyway. And this code is only used when we are not using JIT.
  3. In exception handling code in LLInt, we get VM& from callee by checking LargeAllocation possibility. This is OK since it is only executed when exception unwinding happens, and which is an expensive operation anyway.
  • heap/LargeAllocation.h:

(JSC::LargeAllocation::headerSize):

  • heap/WeakSet.h:

(JSC::WeakSet::WeakSet):
(JSC::WeakSet::vm const):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::vm const):
(JSC::JSGlobalObject::defaultCodeGenerationMode const):

  • runtime/VM.h:

(JSC::WeakSet::heap const):

1:07 PM Changeset in webkit [251555] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed fix after r251511.

Some syctl names were omitted from the initial checkin.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:04 PM Changeset in webkit [251554] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Add support for partial leading and trailing content
https://bugs.webkit.org/show_bug.cgi?id=203375

Reviewed by Antti Koivisto.

This patch adds support for splitting text content across multiple lines when needed.
It also supports complex cases when the text content spreads across multiple inline level boxes with different word-break values e.g.
<span style="word-break: keep-all">donotsplitthiscontent</span><span style="word-break: break-all">splitthiscontent</span>
would produce something like this with certain constraints.

-> | <- available width

"donotsplitthiscontentsplit
thiscontent"

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::shouldWrapFloatBox):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::LineBreaker::breakingContext): Deleted.
(WebCore::Layout::LineBreaker::breakingContextForFloat): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/InlineLineLayout.cpp:

(WebCore::Layout::LineLayout::LineInput::LineInput):
(WebCore::Layout::LineLayout::layout):
(WebCore::Layout::LineLayout::close):
(WebCore::Layout::LineLayout::placeInlineItem):
(WebCore::Layout::LineLayout::processUncommittedContent):
(WebCore::Layout::LineLayout::shouldProcessUncommittedContent const):
(WebCore::Layout::LineLayout::UncommittedContent::trim):

  • layout/inlineformatting/InlineLineLayout.h:
  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):
(WebCore::Layout::InlineTextItem::split const): Deleted.

  • layout/inlineformatting/InlineTextItem.h:
12:43 PM Changeset in webkit [251553] by beidson@apple.com
  • 9 edits
    2 adds in trunk

Formalize PDF snapshot API.
https://bugs.webkit.org/show_bug.cgi?id=203374

Reviewed by Tim Horton.

Source/WebKit:

Covered by API tests and MiniBrowser usage.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKPDFConfiguration.h: Added.
  • UIProcess/API/Cocoa/WKPDFConfiguration.mm: Added.

(-[WKPDFConfiguration init]):
(-[WKPDFConfiguration copyWithZone:]):

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView createPDFWithConfiguration:completionHandler:]):
(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):

  • UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h: Unified build strikes again.
  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController saveAsPDF:]):

  • TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm:

(TestWebKitAPI::TEST):

12:27 PM Changeset in webkit [251552] by yurys@chromium.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: assertion failure at GeneralStyleDetailsSidebarPanel.js:34:23
https://bugs.webkit.org/show_bug.cgi?id=203376

Reviewed by Devin Rousso.

Use class's prototype instead of class itself when doing instanceof check.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel):

12:12 PM Changeset in webkit [251551] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Remove 'deny' rules that do not have a corresponding 'allow' rule
https://bugs.webkit.org/show_bug.cgi?id=203352

Reviewed by Per Arne Vollan.

Now that we no longer import 'common.sb', and have removed entries that allowed
services that we block, we can remove the 'deny' command. This is safe because
everything is denied by default.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:09 PM Changeset in webkit [251550] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip new tests added in 251509 on Windows

DataTransferItems is not supported on this platform.

  • platform/win/TestExpectations:
12:02 PM Changeset in webkit [251549] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

11:53 AM Changeset in webkit [251548] by yurys@chromium.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CONSOLE ERROR removeEventListener cannot remove blackboxed-urls-changed because it doesn't exist.
https://bugs.webkit.org/show_bug.cgi?id=203372

Reviewed by Devin Rousso.

Avoid console errors when opening source panel.

  • UserInterface/Views/SourceCodeTreeElement.js:

(WI.SourceCodeTreeElement.prototype._updateSourceCode): Only remove listener if it has
been added before.

11:50 AM Changeset in webkit [251547] by achristensen@apple.com
  • 22 edits
    2 adds in trunk/Source

Pass CORS-enabled schemes through WebProcess instead of having them NetworkProcess-global
https://bugs.webkit.org/show_bug.cgi?id=202891

Reviewed by Youenn Fablet.

Source/WebCore:

  • platform/LegacySchemeRegistry.cpp:

(WebCore::LegacySchemeRegistry::registerURLSchemeAsCORSEnabled):
(WebCore::LegacySchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):
(WebCore::LegacySchemeRegistry::allURLSchemesRegisteredAsCORSEnabled):

  • platform/LegacySchemeRegistry.h:

Source/WebKit:

No change in behavior. Now the LegacySchemeRegistry is not used as much in the NetworkProcess, a step towards no use at all.
This functionality is currently only available through the glib API webkit_security_manager_register_uri_scheme_as_cors_enabled
but it has been requested in bug 201180 and bug 199064.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::loadPing):
(WebKit::NetworkConnectionToWebProcess::registerURLSchemesAsCORSEnabled):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::schemeRegistry):

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const):

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const): Deleted.

  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::m_shouldCaptureExtraNetworkLoadMetrics):

  • NetworkProcess/NetworkSchemeRegistry.cpp: Added.

(WebKit::NetworkSchemeRegistry::registerURLSchemeAsCORSEnabled):
(WebKit::NetworkSchemeRegistry::shouldTreatURLSchemeAsCORSEnabled):

  • NetworkProcess/NetworkSchemeRegistry.h: Added.

(WebKit::NetworkSchemeRegistry::create):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):
Use nullptr, indicating that the PingLoad constructor that is used in ad click attribution should not check the custom scheme registry.
This is Ok because ad click attribution is only used for HTTP family schemes.
(WebKit::m_blobFiles):

  • NetworkProcess/PingLoad.h:
  • Sources.txt:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::registerURLSchemeAsCORSEnabled):
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::registerURLSchemeAsCORSEnabled const): Deleted.

  • WebProcess/WebProcess.h:
10:51 AM Changeset in webkit [251546] by aestes@apple.com
  • 5 edits in trunk

[Cocoa] Make it possible to convert SharedBuffer segments and data views to NSData without copying
https://bugs.webkit.org/show_bug.cgi?id=203348

Reviewed by Alex Christensen.

Source/WebCore:

Added an API test.

  • platform/SharedBuffer.h:
  • platform/cocoa/SharedBufferCocoa.mm:

(-[WebCoreSharedBufferData initWithDataSegment:position:]):
(-[WebCoreSharedBufferData length]):
(-[WebCoreSharedBufferData bytes]):
(WebCore::SharedBuffer::createCFData const):
(WebCore::SharedBuffer::createNSDataArray const):
(WebCore::SharedBuffer::DataSegment::createNSData const):
(WebCore::SharedBufferDataView::createNSData const):
(-[WebCoreSharedBufferData initWithSharedBufferDataSegment:]): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/SharedBuffer.mm:

(TestWebKitAPI::TEST_F):

9:57 AM Changeset in webkit [251545] by Chris Dumez
  • 5 edits
    2 adds in trunk

FetchResponse should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203092
<rdar://problem/56554677>

Reviewed by Alex Christensen.

Source/WebCore:

Drop shouldPreventEnteringBackForwardCache_DEPRECATED() in FetchResponse to allow pages to
enter the back/forward cache, even when the fetch response has a blob loader. r251495
already made this safe by updating the FetchBodyOwner parent class to not resolve promises
while in the back/forward cache.

Test: fast/history/page-cache-active-fetch-response-blobReadAsBlob.html

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.

  • Modules/fetch/FetchResponse.h:

LayoutTests:

Add layout test coverage.

  • TestExpectations:
  • fast/history/page-cache-active-fetch-response-blobReadAsBlob-expected.txt: Added.
  • fast/history/page-cache-active-fetch-response-blobReadAsBlob.html: Added.
9:39 AM Changeset in webkit [251544] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Reintroduce ensureGLVideoSinkContext() fix
https://bugs.webkit.org/show_bug.cgi?id=201401

Reviewed by Philippe Normand.

That patch was almost mechanically reverted temporarily along the rest
of the WebKitMediaSrc rework. In theory that should have been OK since
it was supposed to fix a regression of that patch... But actually
the bug was already causing problems before, the WebKitMediaSrc rework
just exposed a more common case.

It has been reported that the same bug arises when adding some CSS
styles to the <video> element, and the patch fixes the issue.

And the patch actually makes sense in any case... since without it
some perfectly valid state transitions are not covered!

So I'm reintroducing it.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):

9:35 AM Changeset in webkit [251543] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[Web Animations] Only process CSS properties affected by a given CSS transition
https://bugs.webkit.org/show_bug.cgi?id=203238

Reviewed by Simon Fraser.

When the "transition" property, or one of its longhands, would change we would iterate over every known CSS property to identify whether the before and after
styles showed reasons to create, modify or cancel a backing CSSTransition object. However, we only need to do this in the case where "transition-property" is
"all", ie. where the Animation object has its animationMode() set to Animation::AnimateAll. In all other cases, we only need to iterate over the CSS properties
specified by "transition-property".

We now compile a list of CSS properties to iterate over by looking at all properties listed in the "transition-property" for the before and after styles.

  • animation/AnimationTimeline.cpp:

(WebCore::compileTransitionPropertiesInStyle):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElement):

  • animation/AnimationTimeline.h:
9:24 AM Changeset in webkit [251542] by youenn@apple.com
  • 5 edits in trunk

XMLHttpRequest.responseXML url should be the HTTP response URL
https://bugs.webkit.org/show_bug.cgi?id=203289

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/xhr-response-url.https-expected.txt:
  • web-platform-tests/xhr/responsexml-document-properties-expected.txt:

Source/WebCore:

Follow https://xhr.spec.whatwg.org/#document-response step 9.
Covered by rebased tests.

  • xml/XMLHttpRequest.cpp:
9:12 AM Changeset in webkit [251541] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Removing expectations for legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html
https://bugs.webkit.org/show_bug.cgi?id=203225

unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:06 AM Changeset in webkit [251540] by Antti Koivisto
  • 5 edits
    2 adds in trunk/Source/WebCore

Move property cascade out of StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=203361

Reviewed by Zalan Bujtas.

Rename StyleResolver::CascadedProperties -> Style::PropertyCascade and move it into a file of its own.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::cascadedPropertiesForRollback):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::applyCascadedPropertiesImpl):
(WebCore::shouldApplyPropertyInParseOrder): Deleted.
(WebCore::isValidMarkerStyleProperty): Deleted.
(WebCore::isValidCueStyleProperty): Deleted.
(WebCore::StyleResolver::CascadedProperties::CascadedProperties): Deleted.
(WebCore::StyleResolver::CascadedProperties::hasProperty const): Deleted.
(WebCore::StyleResolver::CascadedProperties::property): Deleted.
(WebCore::StyleResolver::CascadedProperties::hasCustomProperty const): Deleted.
(WebCore::StyleResolver::CascadedProperties::customProperty const): Deleted.
(WebCore::StyleResolver::CascadedProperties::setPropertyInternal): Deleted.
(WebCore::StyleResolver::CascadedProperties::set): Deleted.
(WebCore::StyleResolver::CascadedProperties::setDeferred): Deleted.
(WebCore::StyleResolver::CascadedProperties::addMatch): Deleted.
(WebCore::declarationsForCascadeLevel): Deleted.
(WebCore::StyleResolver::CascadedProperties::addNormalMatches): Deleted.
(WebCore::hasImportantProperties): Deleted.
(WebCore::StyleResolver::CascadedProperties::addImportantMatches): Deleted.
(WebCore::StyleResolver::CascadedProperties::applyDeferredProperties): Deleted.
(WebCore::StyleResolver::CascadedProperties::Property::apply): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::State::authorRollback const):
(WebCore::StyleResolver::State::userRollback const):
(WebCore::StyleResolver::State::setAuthorRollback):
(WebCore::StyleResolver::State::setUserRollback):
(WebCore::StyleResolver::CascadedProperties::customProperties): Deleted.
(WebCore::StyleResolver::cascadeLevel const): Deleted.
(WebCore::StyleResolver::setCascadeLevel): Deleted.

  • style/PropertyCascade.cpp: Added.

(WebCore::Style::shouldApplyPropertyInParseOrder):
(WebCore::Style::isValidMarkerStyleProperty):
(WebCore::Style::isValidCueStyleProperty):
(WebCore::Style::PropertyCascade::PropertyCascade):
(WebCore::Style::PropertyCascade::setPropertyInternal):
(WebCore::Style::PropertyCascade::set):
(WebCore::Style::PropertyCascade::setDeferred):
(WebCore::Style::PropertyCascade::addMatch):
(WebCore::Style::declarationsForCascadeLevel):
(WebCore::Style::PropertyCascade::addNormalMatches):
(WebCore::Style::hasImportantProperties):
(WebCore::Style::PropertyCascade::addImportantMatches):
(WebCore::Style::PropertyCascade::applyDeferredProperties):
(WebCore::Style::PropertyCascade::Property::apply):

  • style/PropertyCascade.h: Added.

(WebCore::Style::PropertyCascade::customProperties):
(WebCore::Style::PropertyCascade::hasProperty const):
(WebCore::Style::PropertyCascade::property):
(WebCore::Style::PropertyCascade::hasCustomProperty const):
(WebCore::Style::PropertyCascade::customProperty const):

9:02 AM Changeset in webkit [251539] by Kocsen Chung
  • 4 edits in tags/Safari-609.1.8

Cherry-pick r251523. rdar://problem/56553939

WebBackForwardCache::removeEntriesMatching() may re-enter and crash
https://bugs.webkit.org/show_bug.cgi?id=203341
<rdar://problem/56553939>

Reviewed by Geoffrey Garen.

Source/WebKit:

When WebBackForwardCache::removeEntriesMatching() was clearing the WebBackForwardListItem's
WebBackForwardCacheEntry, it could destroyed a SuspendedPageProxy which could shutdown a
WebProcess. Upon shutting down, we would try to remove WebBackForwardCache entries associated
with a given process, re-enter removeEntriesMatching() and crash.

To address the issue, I made WebBackForwardCache::removeEntriesMatching() safe to re-enter.
We now clear the WebBackForwardListItems' WebBackForwardCacheEntries only after we're done
updating m_itemsWithCachedPage.

  • UIProcess/WebBackForwardCache.cpp: (WebKit::WebBackForwardCache::removeEntriesMatching):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

8:52 AM Changeset in webkit [251538] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS ] ( r251015 ) Layout Test fast/text/whitespace/pre-wrap-overflow-selection.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203366

Unreviewed test gardening

  • platform/ios/TestExpectations:
7:39 AM Changeset in webkit [251537] by Chris Dumez
  • 7 edits in trunk

AudioContext should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203102

Reviewed by Geoffrey Garen.

Source/WebCore:

Allow pages with AudioContexts that are rendering in the back/forward cache.
Upon entering the back/forward cache, we suspend rendering and update IsPlaying
state so that the browser no longer shows the "Audio Playing" icon. Upon restoring
from the back/forward cache, we resume rendering and update IsPlaying state again
so that the browser shows the "Audio Playing" icon again. I tested it on:

With regards to events dispatching, the AudioContext class is already using a
GenericEventQueue that properly delays event dispatching while in the back/forward
cache.

No new tests, updated existing test.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::suspendRendering):
(WebCore::AudioContext::resumeRendering):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioContext.idl:

LayoutTests:

Update layout test coverage.

  • fast/history/page-cache-running-audiocontext-expected.txt:
  • fast/history/page-cache-running-audiocontext.html:
6:25 AM Changeset in webkit [251536] by commit-queue@webkit.org
  • 32 edits
    41 copies
    312 adds
    3 deletes in trunk/LayoutTests

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

Patch by Antoine Quint <Antoine Quint> on 2019-10-24
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: Resynced.
  • web-platform-tests/css/css-transitions: Imported.
  • web-platform-tests/web-animations: Resynced.

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/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-wk1/TestExpectations:
  • 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/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:
4:26 AM Changeset in webkit [251535] by clopez@igalia.com
  • 3 edits in trunk/Source/WebKit

[GTK][WPE] Enable runtime setting with experimental features for Server Timing API
https://bugs.webkit.org/show_bug.cgi?id=203295

Reviewed by Carlos Garcia Campos.

Enable the runtime ServerTiming by default when GTK or WPE is built
with experimental features enabled.

No new tests, no change in behaviour for WTR.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
2:06 AM Changeset in webkit [251534] by zandobersek@gmail.com
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Get 32-bit ports back into building order
https://bugs.webkit.org/show_bug.cgi?id=203358

Reviewed by Carlos Garcia Campos.

Get JSC building again on 32-bit architectures after changes in r251468.
Some 32-bit code in LLint and JIT is brought back, and additional casts
around BytecodeIndex construction are added as necessary.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::setCurrentVPC):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITInlines.h:

(JSC::JIT::updateTopCallFrame):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_log_shadow_chicken_tail):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

1:36 AM Changeset in webkit [251533] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Disable pichdr generation on MIPS for return location labels
https://bugs.webkit.org/show_bug.cgi?id=203040

Patch by Paulo Matos <Paulo Matos> on 2019-10-24
Reviewed by Yusuke Suzuki.

Disable generation of pichdr for return location labels generated in
defineOSRExitReturnLabel. Since r250806 (Allow OSR exit to the LLInt),
MIPS was segfaulting since the pichdr after an OSR exit was corruption
the gp register.

  • offlineasm/mips.rb:
1:18 AM Changeset in webkit [251532] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

Move MatchResult and related types out of StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=203252

Reviewed by Zalan Bujtas.

Reverse the dependency between StyleResolver and ElementRuleCollector so that the former depends on the latter.
This makes the code easier to understand and enables further cleanups.

The patch also gets rid of the confusing RuleRange objects in fovor of splitting declarations from different cascade levels to separate vectors.
The desired cascade level is indicated with an enum instead of a range.

There is also some general modernization.

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchResult const):
(WebCore::ElementRuleCollector::addElementStyleProperties):
(WebCore::ElementRuleCollector::transferMatchedRules):
(WebCore::ElementRuleCollector::matchAllRules):
(WebCore::ElementRuleCollector::addMatchedProperties):
(WebCore::ElementRuleCollector::matchedResult): Deleted.

  • css/ElementRuleCollector.h:

(WebCore::PseudoStyleRequest::PseudoStyleRequest):
(WebCore::MatchResult::isEmpty const):
(WebCore::operator==):
(WebCore::operator!=):

  • css/PageRuleCollector.cpp:

(WebCore::PageRuleCollector::matchPageRules):

  • css/PageRuleCollector.h:

(WebCore::PageRuleCollector::matchResult const):
(WebCore::PageRuleCollector::matchedResult): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::sweepMatchedPropertiesCache):
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::computeMatchedPropertiesHash):
(WebCore::StyleResolver::findFromMatchedPropertiesCache):
(WebCore::extractDirectionAndWritingMode):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::cascadedPropertiesForRollback):
(WebCore::StyleResolver::CascadedProperties::addMatch):
(WebCore::declarationsForCascadeLevel):
(WebCore::StyleResolver::CascadedProperties::addNormalMatches):
(WebCore::StyleResolver::CascadedProperties::addImportantMatches):
(WebCore::StyleResolver::MatchResult::addMatchedProperties): Deleted.
(WebCore::operator==): Deleted.
(WebCore::operator!=): Deleted.
(WebCore::cascadeLevelForIndex): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::MatchedPropertiesCacheItem::MatchedPropertiesCacheItem):
(WebCore::PseudoStyleRequest::PseudoStyleRequest): Deleted.
(WebCore::StyleResolver::RuleRange::RuleRange): Deleted.
(WebCore::StyleResolver::MatchRanges::MatchRanges): Deleted.
(WebCore::StyleResolver::MatchRanges::UARuleRange): Deleted.
(WebCore::StyleResolver::MatchRanges::authorRuleRange): Deleted.
(WebCore::StyleResolver::MatchRanges::userRuleRange): Deleted.
(WebCore::StyleResolver::MatchResult::MatchResult): Deleted.
(WebCore::StyleResolver::MatchResult::matchedProperties const): Deleted.
(WebCore::StyleResolver::isRightPage const): Deleted.

Oct 23, 2019:

11:54 PM Changeset in webkit [251531] by Devin Rousso
  • 27 edits
    1 copy
    6 adds in trunk

Web Inspector: provide a way to inject "bootstrap" JavaScript into the page as the first script executed
https://bugs.webkit.org/show_bug.cgi?id=195847
<rdar://problem/48950551>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

When debugging webpages, it's often useful to be able to swizzle various functions in order
to add extra logs for when they're called (e.g. Event.prototype.preventDefault). Sometimes
this can be difficult, such as if the page saves a copy of the function and references that
instead, in which case it would be helpful to have a way to guarantee that the swizzled code
is the first thing evaluated after the context is created.

This change adds support for that concept, which has been named Inspector Bootstrap Script.
Once created, it will be injected as the first user script to every new global object that
is created afterwards. Modifications to the Inspector Bootstrap Script take effect for all
new global objects created _after_ the modification happened.

  • inspector/protocol/Page.json:

Add setBoostrapScript command.

Source/WebCore:

When debugging webpages, it's often useful to be able to swizzle various functions in order
to add extra logs for when they're called (e.g. Event.prototype.preventDefault). Sometimes
this can be difficult, such as if the page saves a copy of the function and references that
instead, in which case it would be helpful to have a way to guarantee that the swizzled code
is the first thing evaluated after the context is created.

This change adds support for that concept, which has been named Inspector Bootstrap Script.
Once created, it will be injected as the first user script to every new global object that
is created afterwards. Modifications to the Inspector Bootstrap Script take effect for all
new global objects created _after_ the modification happened.

Tests: inspector/page/setBootstrapScript-main-frame.html

inspector/page/setBootstrapScript-sub-frame.html

  • inspector/agents/InspectorPageAgent.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::setBootstrapScript): Added.
(WebCore::InspectorPageAgent::didClearWindowObjectInWorld): Added.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):

  • inspector/agents/page/PageDebuggerAgent.h:
  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::didClearWindowObjectInWorld): Added.
(WebCore::PageDebuggerAgent::didClearMainFrameWindowObject): Deleted.

  • inspector/agents/page/PageRuntimeAgent.h:
  • inspector/agents/page/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::didClearWindowObjectInWorld): Added.
(WebCore::PageRuntimeAgent::didCreateMainWorldContext): Deleted.
Rename existing global object creation "notifications" for more consistency between agents.

Source/WebInspectorUI:

When debugging webpages, it's often useful to be able to swizzle various functions in order
to add extra logs for when they're called (e.g. Event.prototype.preventDefault). Sometimes
this can be difficult, such as if the page saves a copy of the function and references that
instead, in which case it would be helpful to have a way to guarantee that the swizzled code
is the first thing evaluated after the context is created.

This change adds support for that concept, which has been named Inspector Bootstrap Script.
Once created, it will be injected as the first user script to every new global object that
is created afterwards. Modifications to the Inspector Bootstrap Script take effect for all
new global objects created _after_ the modification happened.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager):
(WI.NetworkManager.supportsBootstrapScript): Added.
(WI.NetworkManager.get bootstrapScriptURL): Added.
(WI.NetworkManager.get bootstrapScriptSourceObjectStoreKey): Added.
(WI.NetworkManager.prototype.initializeTarget):
(WI.NetworkManager.prototype.get bootstrapScript): Added.
(WI.NetworkManager.prototype.get bootstrapScriptEnabled): Added.
(WI.NetworkManager.prototype.set bootstrapScriptEnabled): Added.
(WI.NetworkManager.prototype.async createBootstrapScript): Added.
(WI.NetworkManager.prototype.destroyBootstrapScript): Added.
(WI.NetworkManager.prototype._processServiceWorkerConfiguration):
(WI.NetworkManager.prototype._handleBootstrapScriptContentDidChange): Added.

  • UserInterface/Models/LocalScript.js:

(WI.LocalScript):
(WI.LocalScript.prototype.get editable): Added.
(WI.LocalScript.prototype.get supportsScriptBlackboxing): Added.
(WI.LocalScript.prototype.requestContentFromBackend):
(WI.LocalScript.prototype.handleCurrentRevisionContentChange): Added.

  • UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView):
(WI.ScriptContentView.prototype._contentWillPopulate):
(WI.ScriptContentView.prototype._contentDidPopulate):
(WI.ScriptContentView.prototype._handleTextEditorContentDidChange): Added.
Support editing of WI.LocalScript that are specifically marked as such.

  • UserInterface/Models/Script.js:

(WI.Script):
(WI.Script.prototype.get displayName):
(WI.Script.prototype.get displayURL):
(WI.Script.prototype.isMainResource):
(WI.Script.prototype._resolveResource):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.customPerformSearch):
(WI.SourceCodeTextEditor.prototype._createTypeTokenAnnotator):
(WI.SourceCodeTextEditor.prototype._createBasicBlockAnnotator):
Allow a WI.Script to not have an associated WI.Target, specifically for WI.LocalScript.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject):
(WI.SourcesNavigationSidebarPanel.prototype.createContentTreeOutline):
(WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements):
(WI.SourcesNavigationSidebarPanel.prototype._addLocalOverride): Added.
(WI.SourcesNavigationSidebarPanel.prototype._removeResourceOverride): Added.
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu):
(WI.SourcesNavigationSidebarPanel.prototype._handleBootstrapScriptCreated): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleBootstrapScriptDestroyed): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleLocalResourceOverrideAdded):
(WI.SourcesNavigationSidebarPanel.prototype._handleLocalResourceOverrideRemoved):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed):
(WI.SourcesNavigationSidebarPanel.prototype._addLocalResourceOverride): Removed.
(WI.SourcesNavigationSidebarPanel.prototype._removeLocalResourceOverride): Removed.
Add an item in the create resource context menu for creating/focusing the bootstrap script.

  • UserInterface/Views/ScriptTreeElement.js:

(WI.ScriptTreeElement):

  • UserInterface/Views/BootstrapScriptTreeElement.js: Added.

(WI.BootstrapScriptTreeElement):
(WI.BootstrapScriptTreeElement.prototype.onattach):
(WI.BootstrapScriptTreeElement.prototype.ondetach):
(WI.BootstrapScriptTreeElement.prototype.ondelete):
(WI.BootstrapScriptTreeElement.prototype.onspace):
(WI.BootstrapScriptTreeElement.prototype.canSelectOnMouseDown):
(WI.BootstrapScriptTreeElement.prototype.populateContextMenu):
(WI.BootstrapScriptTreeElement.prototype.updateStatus):
(WI.BootstrapScriptTreeElement.prototype._handleNetworkManagerBootstrapScriptToggled):

  • UserInterface/Views/BootstrapScriptTreeElement.css: Added.

(.item.script.bootstrap .status > input[type="checkbox"]):

  • UserInterface/Views/LocalResourceOverrideTreeElement.css:

(.item.resource.override .status > input[type="checkbox"]): Added.
(.item.resource.override .status > div): Removed.
Don't show the full bootstrap script URL. Instead, show "Inspector Bootstrap Script".

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype.didPresentDialog):
Show the bootstrap script in the open resource dialog.

  • UserInterface/Base/Utilities.js:

(isWebInspectorBootstrapScript): Added.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.scriptDidFail):

  • UserInterface/Base/ObjectStore.js:

(WI.ObjectStore.static _open):
(WI.ObjectStore.prototype.async get): Added.
Add a generalized object store that can be used for one-off values that need the larger
storage capacity of IndexedDB.

  • .eslintrc:
  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/page/setBootstrapScript-main-frame.html: Added.
  • inspector/page/setBootstrapScript-main-frame-expected.txt: Added.
  • inspector/page/setBootstrapScript-sub-frame.html: Added.
  • inspector/page/setBootstrapScript-sub-frame-expected.txt: Added.
  • inspector/page/resources/bootstrap-iframe.html: Added.
11:34 PM Changeset in webkit [251530] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebCore

[Picture-in-Picture Web API] Implement EnterPictureInPictureEvent support
https://bugs.webkit.org/show_bug.cgi?id=202616

Patch by Peng Liu <Peng Liu> on 2019-10-23
Reviewed by Eric Carlson.

Implement the support for enterpictureinpicture and leavepictureinpicture events.

  • Add a public method schduleEvent() to HTMLMediaElement in order to fire enterpictureinpicture

event which includes properties.

  • In order to notify the observer (HTMLVideoElementPictureInPicture) after entering picture-in-picture

transition is completed and the picture-in-picture window size information is available,
we have to change setVideoFullscreenFrame() to virtual in HTMLMediaElement and implement it in
HTMLVideoElement to track the transition state.

  • The PictureInPictureWindow does not need to ba an ActiveDOMObject, so it is updated accordingly.

With manual tests, the implementation passes LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/enter-picture-in-picture.html
and LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/leave-picture-in-picture.html.

  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:

(WebCore::HTMLVideoElementPictureInPicture::didEnterPictureInPicture):
(WebCore::HTMLVideoElementPictureInPicture::didExitPictureInPicture):
(WebCore::HTMLVideoElementPictureInPicture::pictureInPictureWindowResized):

  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.h:
  • Modules/pictureinpicture/PictureInPictureWindow.cpp:

(WebCore::PictureInPictureWindow::PictureInPictureWindow):
(WebCore::PictureInPictureWindow::activeDOMObjectName const): Deleted.
(WebCore::PictureInPictureWindow::eventTargetInterface const): Deleted.
(WebCore::PictureInPictureWindow::scriptExecutionContext const): Deleted.

  • Modules/pictureinpicture/PictureInPictureWindow.h:
  • Modules/pictureinpicture/PictureInPictureWindow.idl:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleEvent):

  • html/HTMLMediaElement.h:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::fullscreenModeChanged):
(WebCore::HTMLVideoElement::didBecomeFullscreenElement):
(WebCore::HTMLVideoElement::setVideoFullscreenFrame):

  • html/HTMLVideoElement.h:
  • platform/PictureInPictureObserver.h:
10:34 PM Changeset in webkit [251529] by ysuzuki@apple.com
  • 22 edits in trunk/Source

[JSC] Remove wasmAwareLexicalGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=203351

Reviewed by Mark Lam.

Source/JavaScriptCore:

CallFrame::lexicalGlobalObject() is no longer called frequently. We can just make the current wasmAwareLexicalGlobalObject as CallFrame::lexicalGlobalObject,
and remove wasmAwareLexicalGlobalObject function.

  • debugger/Debugger.cpp:

(JSC::Debugger::hasBreakpoint):
(JSC::Debugger::breakProgram):
(JSC::lexicalGlobalObjectForCallFrame):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::deprecatedVMEntryGlobalObject const):
(JSC::DebuggerCallFrame::scope):
(JSC::DebuggerCallFrame::thisValue const):
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):

  • debugger/DebuggerCallFrame.h:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::thisObject const):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::thisValue const):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::lexicalGlobalObjectFromWasmCallee const):
(JSC::CallFrame::wasmAwareLexicalGlobalObject): Deleted.

  • interpreter/CallFrame.h:
  • interpreter/Interpreter.cpp:

(JSC::notifyDebuggerOfUnwinding):
(JSC::Interpreter::debug):

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::createArguments):

  • interpreter/StackVisitor.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::llint_throw_stack_overflow_error):

  • runtime/JSFunction.cpp:

(JSC::RetrieveArgumentsFunctor::RetrieveArgumentsFunctor):
(JSC::RetrieveArgumentsFunctor::operator() const):
(JSC::retrieveArguments):

  • runtime/JSScope.h:

(JSC::CallFrame::lexicalGlobalObject const):

  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

Source/WebCore:

  • bindings/js/CommonVM.cpp:

(WebCore::lexicalFrameFromCommonVM):

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::responsibleDocument):

  • bindings/js/StructuredClone.cpp:

(WebCore::cloneArrayBufferImpl):

  • dom/Document.cpp:

(WebCore::Document::shouldBypassMainWorldContentSecurityPolicy const):

  • testing/Internals.cpp:

(WebCore::Internals::parserMetaData):
(WebCore::Internals::isFromCurrentWorld const):

9:01 PM Changeset in webkit [251528] by Chris Dumez
  • 8 edits
    2 adds
    2 deletes in trunk

Notification should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203099
<rdar://problem/56557479>

Reviewed by Geoffrey Garen.

Source/WebCore:

Notifications currently displayed were preventing a page from entering the back/forward cache.
Instead, we now make sure to close any visible notification upon suspension. Since closing
a notification will fire events, we also schedule tasks on the window event loop to fire those
events, instead of firing these events synchronously. The Window event loop takes care of delaying
those events if the document is suspended.

Test: fast/history/page-cache-notification-showing.html

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification):
(WebCore::Notification::show):
(WebCore::Notification::close):
(WebCore::Notification::document const):
(WebCore::Notification::activeDOMObjectName const):
(WebCore::Notification::stop):
(WebCore::Notification::suspend):
(WebCore::Notification::queueTask):
(WebCore::Notification::dispatchShowEvent):
(WebCore::Notification::dispatchClickEvent):
(WebCore::Notification::dispatchCloseEvent):
(WebCore::Notification::dispatchErrorEvent):

  • Modules/notifications/Notification.h:
  • dom/AbstractEventLoop.h:

LayoutTests:

Add layout test coverage.

  • fast/history/page-cache-notification-non-suspendable-expected.txt: Removed.
  • fast/history/page-cache-notification-non-suspendable.html: Removed.
  • fast/history/page-cache-notification-showing-expected.txt: Added.
  • fast/history/page-cache-notification-showing.html: Added.
8:42 PM Changeset in webkit [251527] by commit-queue@webkit.org
  • 10 edits
    2 deletes in trunk

[SVG2] Fix SVGSVGElement to conform with SVG2
https://bugs.webkit.org/show_bug.cgi?id=203278

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-10-23
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/historical-expected.txt:
  • web-platform-tests/svg/idlharness.window-expected.txt:

Some sub-tests are passing now with this change.

Source/WebCore:

The interface of SVGSVGElement is defined here:

https://www.w3.org/TR/SVG2/struct.html#InterfaceSVGSVGElement

-- Delete the viewport attribute.
-- Delete the attributes contentScriptType and contentStyleType.
-- Delete pixelUnitxxx() and screenPixelxxx() functions.
-- Make the SVGElement argument to checkIntersection() and

checkEnclosure() be non-optional.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::checkIntersection):
(WebCore::SVGSVGElement::checkEnclosure):
(WebCore::SVGSVGElement::contentScriptType const): Deleted.
(WebCore::SVGSVGElement::setContentScriptType): Deleted.
(WebCore::SVGSVGElement::contentStyleType const): Deleted.
(WebCore::SVGSVGElement::setContentStyleType): Deleted.
(WebCore::SVGSVGElement::viewport const): Deleted.
(WebCore::SVGSVGElement::pixelUnitToMillimeterX const): Deleted.
(WebCore::SVGSVGElement::pixelUnitToMillimeterY const): Deleted.
(WebCore::SVGSVGElement::screenPixelToMillimeterX const): Deleted.
(WebCore::SVGSVGElement::screenPixelToMillimeterY const): Deleted.
(WebCore::SVGSVGElement::suspendRedraw): Deleted.
(WebCore::SVGSVGElement::unsuspendRedraw): Deleted.
(WebCore::SVGSVGElement::unsuspendRedrawAll): Deleted.
(WebCore::SVGSVGElement::forceRedraw): Deleted.

  • svg/SVGSVGElement.h:
  • svg/SVGSVGElement.idl:

LayoutTests:

  • svg/custom/immutable-properties-expected.txt:
  • svg/custom/immutable-properties.html:

SVGSVGElement.viewport has to be removed.

  • svg/custom/intersection-list-null-expected.txt: Removed.
  • svg/custom/intersection-list-null.svg: Removed.

The specs state that the SVGElement argument to checkIntersection() and
checkEnclosure() is not optional. This test was testing the argument
optional case.

8:25 PM Changeset in webkit [251526] by Wenson Hsieh
  • 4 edits in trunk

[iOS 13] imported/mozilla/svg/text/textpath-selection.svg is flaky
https://bugs.webkit.org/show_bug.cgi?id=203247
<rdar://problem/52124292>

Reviewed by Tim Horton.

Tools:

Roughly 1 in 3000 runs, this test fails due to an image diff, where only the expectation or test page shows a
native selection view on iOS. Both the test and expectation create DOM selections on the page, which is then
followed by a native selection view on the page at some point in the future.

This "point in the future" depends on both WebKit implementation details (i.e. when the next remote layer tree
commit happens) as well as UIKit implementation details (for example, many methods in UITextSelectionView and
UIWKTextInteractionAssistant will schedule changes to UIView geometry using a runloop timer, instead of applying
the updates immediately). Because of the latter, it's impractical to expect native selection views on iOS to
always appear or not appear after finishing this layout test.

To mitigate this rare source of flakiness, we hide these native text selection views when snapshotting iOS
WKWebViews for the purposes of ref and pixel testing.

Note that we still have a considerable number of layout tests that inspect these native selection views on iOS,
but they work by waiting until the native selection views reach a particular state (e.g. by polling for the
number of ranged selection subviews, or the presence of selection handles, or waiting for a caret selection with
a given geometry, etc.), which ensures that they are robust against subtle changes to the timing of selection
updates in the UI process.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage):

LayoutTests:

Remove the failing test expectation. See Tools/ChangeLog for more details.

  • platform/ios-wk2/TestExpectations:
8:09 PM Changeset in webkit [251525] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

Undo incidental change from BytecodeIndex class patch
https://bugs.webkit.org/show_bug.cgi?id=203339

Reviewed by Mark Lam.

JSTests:

  • stress/error-source-location-assertion.js: Added.

Source/JavaScriptCore:

It's not totally clear why we need to claim our bytecode index is
0 when we can't figure what the true index is. I'd rather unbreak
our build for now, however, and fix the underlying issue in
https://bugs.webkit.org/show_bug.cgi?id=203340

  • runtime/Error.cpp:

(JSC::getBytecodeIndex):

7:31 PM Changeset in webkit [251524] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r251509.

  • Modules/entriesapi/FileSystemDirectoryEntry.cpp:
7:29 PM Changeset in webkit [251523] by Chris Dumez
  • 4 edits in trunk

WebBackForwardCache::removeEntriesMatching() may re-enter and crash
https://bugs.webkit.org/show_bug.cgi?id=203341
<rdar://problem/56553939>

Reviewed by Geoffrey Garen.

Source/WebKit:

When WebBackForwardCache::removeEntriesMatching() was clearing the WebBackForwardListItem's
WebBackForwardCacheEntry, it could destroyed a SuspendedPageProxy which could shutdown a
WebProcess. Upon shutting down, we would try to remove WebBackForwardCache entries associated
with a given process, re-enter removeEntriesMatching() and crash.

To address the issue, I made WebBackForwardCache::removeEntriesMatching() safe to re-enter.
We now clear the WebBackForwardListItems' WebBackForwardCacheEntries only after we're done
updating m_itemsWithCachedPage.

  • UIProcess/WebBackForwardCache.cpp:

(WebKit::WebBackForwardCache::removeEntriesMatching):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
7:22 PM Changeset in webkit [251522] by Megan Gardner
  • 15 edits
    1 move
    1 add
    1 delete in trunk

Rename force-press-related functions to refer to context menus, and fix a former force-press test
https://bugs.webkit.org/show_bug.cgi?id=202663
<rdar://problem/52699530>

Reviewed by Dean Jackson.

Source/WebKit:

Add plumbing for contextMenu tests to function again, and rename all
relevant fuctions to more correctly reflect that this does not specifically
require a force press to activate any longer.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didShowContextMenu]):
(-[WKWebView _didDismissContextMenu]):
(-[WKWebView _didShowForcePressPreview]): Deleted.
(-[WKWebView _didDismissForcePressPreview]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):
(-[WKContentView _previewItemController:didDismissPreview:committing:]):
(-[WKContentView _previewItemControllerDidCancelPreview:]):

Tools:

Rename all relevant fuctions to more correctly reflect that this does not specifically
require a force press to activate any longer.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptContext.h:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::setDidShowContextMenuCallback):
(WTR::UIScriptController::didShowContextMenuCallback const):
(WTR::UIScriptController::setDidDismissContextMenuCallback):
(WTR::UIScriptController::didDismissContextMenuCallback const):
(WTR::UIScriptController::setDidShowForcePressPreviewCallback): Deleted.
(WTR::UIScriptController::didShowForcePressPreviewCallback const): Deleted.
(WTR::UIScriptController::setDidDismissForcePressPreviewCallback): Deleted.
(WTR::UIScriptController::didDismissForcePressPreviewCallback const): Deleted.

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView resetInteractionCallbacks]):
(-[TestRunnerWKWebView _didShowContextMenu]):
(-[TestRunnerWKWebView _didDismissContextMenu]):
(-[TestRunnerWKWebView _didShowForcePressPreview]): Deleted.
(-[TestRunnerWKWebView _didDismissForcePressPreview]): Deleted.

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::setDidShowContextMenuCallback):
(WTR::UIScriptControllerIOS::setDidDismissContextMenuCallback):
(WTR::UIScriptControllerIOS::setDidShowForcePressPreviewCallback): Deleted.
(WTR::UIScriptControllerIOS::setDidDismissForcePressPreviewCallback): Deleted.

LayoutTests:

Move and rename force press test to correctly test context menu functionality.

  • fast/events/touch/ios/long-press-on-link-expected.txt: Renamed from LayoutTests/platform/iphone-7/fast/events/touch/force-press-on-link-expected.txt.
  • fast/events/touch/ios/long-press-on-link.html: Added.
  • platform/iphone-7/fast/events/touch/force-press-on-link.html: Removed.
  • resources/ui-helper.js:

(window.UIHelper.longPressAndGetContextMenuContentAt.return.new.Promise.):
(window.UIHelper.longPressAndGetContextMenuContentAt.return.new.Promise):
(window.UIHelper.longPressAndGetContextMenuContentAt):
(window.UIHelper.waitForInputSessionAt.return.new.Promise.):
(window.UIHelper.waitForInputSessionAt.return.new.Promise):
(window.UIHelper.waitForInputSessionAt):

6:44 PM Changeset in webkit [251521] by Simon Fraser
  • 6 edits
    342 adds in trunk/LayoutTests

Import the css/css-values web platform tests
https://bugs.webkit.org/show_bug.cgi?id=203342

Reviewed by Dean Jackson.
LayoutTests/imported/w3c:

Import wpt revision e68120da0fb52f010f206f3ecc63cfa09885b0f4 (Wed Oct 23 13:18:06 2019 -0700)
css-values tests.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-values/META.yml: Added.
  • web-platform-tests/css/css-values/absolute-length-units-001-expected.txt: Added.
  • web-platform-tests/css/css-values/absolute-length-units-001.html: Added.
  • web-platform-tests/css/css-values/absolute_length_units-expected.txt: Added.
  • web-platform-tests/css/css-values/absolute_length_units.html: Added.
  • web-platform-tests/css/css-values/angle-units-001-expected.xht: Added.
  • web-platform-tests/css/css-values/angle-units-001.html: Added.
  • web-platform-tests/css/css-values/angle-units-002-expected.xht: Added.
  • web-platform-tests/css/css-values/angle-units-002.html: Added.
  • web-platform-tests/css/css-values/angle-units-003-expected.xht: Added.
  • web-platform-tests/css/css-values/angle-units-003.html: Added.
  • web-platform-tests/css/css-values/angle-units-004-expected.xht: Added.
  • web-platform-tests/css/css-values/angle-units-004.html: Added.
  • web-platform-tests/css/css-values/angle-units-005-expected.xht: Added.
  • web-platform-tests/css/css-values/angle-units-005.html: Added.
  • web-platform-tests/css/css-values/attr-color-invalid-cast-expected.html: Added.
  • web-platform-tests/css/css-values/attr-color-invalid-cast.html: Added.
  • web-platform-tests/css/css-values/attr-color-invalid-fallback-expected.html: Added.
  • web-platform-tests/css/css-values/attr-color-invalid-fallback.html: Added.
  • web-platform-tests/css/css-values/attr-color-valid-expected.html: Added.
  • web-platform-tests/css/css-values/attr-color-valid.html: Added.
  • web-platform-tests/css/css-values/attr-in-max-expected.html: Added.
  • web-platform-tests/css/css-values/attr-in-max.html: Added.
  • web-platform-tests/css/css-values/attr-invalid-type-001-expected.html: Added.
  • web-platform-tests/css/css-values/attr-invalid-type-001.html: Added.
  • web-platform-tests/css/css-values/attr-invalid-type-002-expected.html: Added.
  • web-platform-tests/css/css-values/attr-invalid-type-002.html: Added.
  • web-platform-tests/css/css-values/attr-invalid-type-008-expected.xht: Added.
  • web-platform-tests/css/css-values/attr-invalid-type-008.html: Added.
  • web-platform-tests/css/css-values/attr-length-invalid-cast-expected.html: Added.
  • web-platform-tests/css/css-values/attr-length-invalid-cast.html: Added.
  • web-platform-tests/css/css-values/attr-length-invalid-fallback-expected.html: Added.
  • web-platform-tests/css/css-values/attr-length-invalid-fallback.html: Added.
  • web-platform-tests/css/css-values/attr-length-valid-expected.html: Added.
  • web-platform-tests/css/css-values/attr-length-valid-zero-expected.html: Added.
  • web-platform-tests/css/css-values/attr-length-valid-zero-nofallback-expected.html: Added.
  • web-platform-tests/css/css-values/attr-length-valid-zero-nofallback.html: Added.
  • web-platform-tests/css/css-values/attr-length-valid-zero.html: Added.
  • web-platform-tests/css/css-values/attr-length-valid.html: Added.
  • web-platform-tests/css/css-values/attr-px-invalid-cast-expected.html: Added.
  • web-platform-tests/css/css-values/attr-px-invalid-cast.html: Added.
  • web-platform-tests/css/css-values/attr-px-invalid-fallback-expected.html: Added.
  • web-platform-tests/css/css-values/attr-px-invalid-fallback.html: Added.
  • web-platform-tests/css/css-values/attr-px-valid-expected.html: Added.
  • web-platform-tests/css/css-values/attr-px-valid.html: Added.
  • web-platform-tests/css/css-values/calc-angle-values-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-angle-values.html: Added.
  • web-platform-tests/css/css-values/calc-background-position-002-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-background-position-002.html: Added.
  • web-platform-tests/css/css-values/calc-background-position-003-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-background-position-003.html: Added.
  • web-platform-tests/css/css-values/calc-ch-ex-lang-expected.html: Added.
  • web-platform-tests/css/css-values/calc-ch-ex-lang.html: Added.
  • web-platform-tests/css/css-values/calc-in-calc-expected.html: Added.
  • web-platform-tests/css/css-values/calc-in-calc.html: Added.
  • web-platform-tests/css/css-values/calc-in-color-001-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-in-color-001.html: Added.
  • web-platform-tests/css/css-values/calc-in-counter-001-expected.xhtml: Added.
  • web-platform-tests/css/css-values/calc-in-counter-001.xhtml: Added.
  • web-platform-tests/css/css-values/calc-in-font-feature-settings-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-in-font-feature-settings.html: Added.
  • web-platform-tests/css/css-values/calc-in-max-expected.html: Added.
  • web-platform-tests/css/css-values/calc-in-max.html: Added.
  • web-platform-tests/css/css-values/calc-in-media-queries-001-expected.html: Added.
  • web-platform-tests/css/css-values/calc-in-media-queries-001.html: Added.
  • web-platform-tests/css/css-values/calc-in-media-queries-002-expected.html: Added.
  • web-platform-tests/css/css-values/calc-in-media-queries-002.html: Added.
  • web-platform-tests/css/css-values/calc-integer-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-integer.html: Added.
  • web-platform-tests/css/css-values/calc-invalid-range-clamping-expected.html: Added.
  • web-platform-tests/css/css-values/calc-invalid-range-clamping.html: Added.
  • web-platform-tests/css/css-values/calc-letter-spacing-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-letter-spacing.html: Added.
  • web-platform-tests/css/css-values/calc-min-height-expected.xht: Added.
  • web-platform-tests/css/css-values/calc-min-height.html: Added.
  • web-platform-tests/css/css-values/calc-nesting-002-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-nesting-002.html: Added.
  • web-platform-tests/css/css-values/calc-nesting-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-nesting.html: Added.
  • web-platform-tests/css/css-values/calc-parenthesis-stack-expected.html: Added.
  • web-platform-tests/css/css-values/calc-parenthesis-stack.html: Added.
  • web-platform-tests/css/css-values/calc-positive-fraction-001-expected.xht: Added.
  • web-platform-tests/css/css-values/calc-positive-fraction-001.html: Added.
  • web-platform-tests/css/css-values/calc-rem-lang-expected.html: Added.
  • web-platform-tests/css/css-values/calc-rem-lang.html: Added.
  • web-platform-tests/css/css-values/calc-rgb-percent-001-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-rgb-percent-001.html: Added.
  • web-platform-tests/css/css-values/calc-rounding-001-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-rounding-001.html: Added.
  • web-platform-tests/css/css-values/calc-serialization-002-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-serialization-002.html: Added.
  • web-platform-tests/css/css-values/calc-serialization-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-serialization.html: Added.
  • web-platform-tests/css/css-values/calc-time-values-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-time-values.html: Added.
  • web-platform-tests/css/css-values/calc-unit-analysis-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-unit-analysis.html: Added.
  • web-platform-tests/css/css-values/calc-z-index-fractions-001-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-z-index-fractions-001.html: Added.
  • web-platform-tests/css/css-values/calc-zero-percent-height-expected.html: Added.
  • web-platform-tests/css/css-values/calc-zero-percent-height.html: Added.
  • web-platform-tests/css/css-values/ch-unit-001-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-001.html: Added.
  • web-platform-tests/css/css-values/ch-unit-002-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-002.html: Added.
  • web-platform-tests/css/css-values/ch-unit-003-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-003.html: Added.
  • web-platform-tests/css/css-values/ch-unit-004-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-004.html: Added.
  • web-platform-tests/css/css-values/ch-unit-008-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-008.html: Added.
  • web-platform-tests/css/css-values/ch-unit-009-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-009.html: Added.
  • web-platform-tests/css/css-values/ch-unit-010-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-010.html: Added.
  • web-platform-tests/css/css-values/ch-unit-011-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-011.html: Added.
  • web-platform-tests/css/css-values/ch-unit-012-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-012.html: Added.
  • web-platform-tests/css/css-values/ch-unit-013-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-013.html: Added.
  • web-platform-tests/css/css-values/ch-unit-014-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-014.html: Added.
  • web-platform-tests/css/css-values/ch-unit-015-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-015.html: Added.
  • web-platform-tests/css/css-values/ch-unit-016-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-016.html: Added.
  • web-platform-tests/css/css-values/ch-unit-017-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-017.html: Added.
  • web-platform-tests/css/css-values/ch-unit-018-expected.html: Added.
  • web-platform-tests/css/css-values/ch-unit-018.html: Added.
  • web-platform-tests/css/css-values/clamp-length-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/clamp-length-computed.html: Added.
  • web-platform-tests/css/css-values/clamp-length-invalid-expected.txt: Added.
  • web-platform-tests/css/css-values/clamp-length-invalid.html: Added.
  • web-platform-tests/css/css-values/clamp-length-serialize-expected.txt: Added.
  • web-platform-tests/css/css-values/clamp-length-serialize.html: Added.
  • web-platform-tests/css/css-values/ex-calc-expression-001-expected.html: Added.
  • web-platform-tests/css/css-values/ex-calc-expression-001.html: Added.
  • web-platform-tests/css/css-values/ex-unit-001-expected.html: Added.
  • web-platform-tests/css/css-values/ex-unit-001.html: Added.
  • web-platform-tests/css/css-values/ex-unit-002-expected.html: Added.
  • web-platform-tests/css/css-values/ex-unit-002.html: Added.
  • web-platform-tests/css/css-values/ex-unit-003-expected.html: Added.
  • web-platform-tests/css/css-values/ex-unit-003.html: Added.
  • web-platform-tests/css/css-values/getComputedStyle-border-radius-001-expected.txt: Added.
  • web-platform-tests/css/css-values/getComputedStyle-border-radius-001.html: Added.
  • web-platform-tests/css/css-values/getComputedStyle-border-radius-002-expected.txt: Added.
  • web-platform-tests/css/css-values/getComputedStyle-border-radius-002.html: Added.
  • web-platform-tests/css/css-values/getComputedStyle-border-radius-003-expected.txt: Added.
  • web-platform-tests/css/css-values/getComputedStyle-border-radius-003.html: Added.
  • web-platform-tests/css/css-values/ic-unit-001-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-001.html: Added.
  • web-platform-tests/css/css-values/ic-unit-002-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-002.html: Added.
  • web-platform-tests/css/css-values/ic-unit-003-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-003.html: Added.
  • web-platform-tests/css/css-values/ic-unit-004-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-004.html: Added.
  • web-platform-tests/css/css-values/ic-unit-008-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-008.html: Added.
  • web-platform-tests/css/css-values/ic-unit-009-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-009.html: Added.
  • web-platform-tests/css/css-values/ic-unit-010-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-010.html: Added.
  • web-platform-tests/css/css-values/ic-unit-011-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-011.html: Added.
  • web-platform-tests/css/css-values/ic-unit-012-expected.html: Added.
  • web-platform-tests/css/css-values/ic-unit-012.html: Added.
  • web-platform-tests/css/css-values/initial-background-color-expected.html: Added.
  • web-platform-tests/css/css-values/initial-background-color.html: Added.
  • web-platform-tests/css/css-values/lh-rlh-on-root-001-expected.txt: Added.
  • web-platform-tests/css/css-values/lh-rlh-on-root-001.html: Added.
  • web-platform-tests/css/css-values/lh-unit-001-expected.xht: Added.
  • web-platform-tests/css/css-values/lh-unit-001.html: Added.
  • web-platform-tests/css/css-values/lh-unit-002-expected.xht: Added.
  • web-platform-tests/css/css-values/lh-unit-002.html: Added.
  • web-platform-tests/css/css-values/line-break-ch-unit-expected.txt: Added.
  • web-platform-tests/css/css-values/line-break-ch-unit.html: Added.
  • web-platform-tests/css/css-values/max-20-arguments-expected.html: Added.
  • web-platform-tests/css/css-values/max-20-arguments.html: Added.
  • web-platform-tests/css/css-values/max-length-percent-001-expected.html: Added.
  • web-platform-tests/css/css-values/max-length-percent-001.html: Added.
  • web-platform-tests/css/css-values/max-unitless-zero-invalid-expected.html: Added.
  • web-platform-tests/css/css-values/max-unitless-zero-invalid.html: Added.
  • web-platform-tests/css/css-values/min-length-percent-001-expected.html: Added.
  • web-platform-tests/css/css-values/min-length-percent-001.html: Added.
  • web-platform-tests/css/css-values/min-max-percentage-length-interpolation-expected.html: Added.
  • web-platform-tests/css/css-values/min-max-percentage-length-interpolation.html: Added.
  • web-platform-tests/css/css-values/minmax-angle-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-angle-computed.html: Added.
  • web-platform-tests/css/css-values/minmax-angle-invalid-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-angle-invalid.html: Added.
  • web-platform-tests/css/css-values/minmax-angle-serialize-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-angle-serialize.html: Added.
  • web-platform-tests/css/css-values/minmax-integer-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-integer-computed.html: Added.
  • web-platform-tests/css/css-values/minmax-length-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-length-computed.html: Added.
  • web-platform-tests/css/css-values/minmax-length-invalid-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-length-invalid.html: Added.
  • web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-length-percent-computed.html: Added.
  • web-platform-tests/css/css-values/minmax-length-percent-invalid-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-length-percent-invalid.html: Added.
  • web-platform-tests/css/css-values/minmax-length-percent-serialize-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-length-percent-serialize.html: Added.
  • web-platform-tests/css/css-values/minmax-length-serialize-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-length-serialize.html: Added.
  • web-platform-tests/css/css-values/minmax-number-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-number-computed.html: Added.
  • web-platform-tests/css/css-values/minmax-number-invalid-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-number-invalid.html: Added.
  • web-platform-tests/css/css-values/minmax-number-serialize-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-number-serialize.html: Added.
  • web-platform-tests/css/css-values/minmax-percentage-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-percentage-computed.html: Added.
  • web-platform-tests/css/css-values/minmax-percentage-invalid-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-percentage-invalid.html: Added.
  • web-platform-tests/css/css-values/minmax-percentage-serialize-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-percentage-serialize.html: Added.
  • web-platform-tests/css/css-values/minmax-time-computed-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-time-computed.html: Added.
  • web-platform-tests/css/css-values/minmax-time-invalid-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-time-invalid.html: Added.
  • web-platform-tests/css/css-values/minmax-time-serialize-expected.txt: Added.
  • web-platform-tests/css/css-values/minmax-time-serialize.html: Added.
  • web-platform-tests/css/css-values/percentage-rem-low-expected.html: Added.
  • web-platform-tests/css/css-values/percentage-rem-low.html: Added.
  • web-platform-tests/css/css-values/q-unit-case-insensitivity-001-expected.xht: Added.
  • web-platform-tests/css/css-values/q-unit-case-insensitivity-001.html: Added.
  • web-platform-tests/css/css-values/q-unit-case-insensitivity-002-expected.xht: Added.
  • web-platform-tests/css/css-values/q-unit-case-insensitivity-002.html: Added.
  • web-platform-tests/css/css-values/resources/ChTestNoZero.woff: Added.
  • web-platform-tests/css/css-values/resources/ChTestShortZero.woff: Added.
  • web-platform-tests/css/css-values/resources/ChTestZeroWidthZero.woff: Added.
  • web-platform-tests/css/css-values/resources/ExTest.woff: Added.
  • web-platform-tests/css/css-values/resources/w3c-import.log: Added.
  • web-platform-tests/css/css-values/rgba-011-expected.txt: Added.
  • web-platform-tests/css/css-values/rgba-011.html: Added.
  • web-platform-tests/css/css-values/support/1x1-green.png: Added.
  • web-platform-tests/css/css-values/support/1x1-lime.png: Added.
  • web-platform-tests/css/css-values/support/1x1-maroon.png: Added.
  • web-platform-tests/css/css-values/support/1x1-navy.png: Added.
  • web-platform-tests/css/css-values/support/1x1-red.png: Added.
  • web-platform-tests/css/css-values/support/1x1-white.png: Added.
  • web-platform-tests/css/css-values/support/60x60-gg-rr.png: Added.
  • web-platform-tests/css/css-values/support/60x60-green.png: Added.
  • web-platform-tests/css/css-values/support/60x60-red.png: Added.
  • web-platform-tests/css/css-values/support/README: Added.
  • web-platform-tests/css/css-values/support/a-green.css: Added.

(.a):

  • web-platform-tests/css/css-values/support/b-green.css: Added.

(.b):

  • web-platform-tests/css/css-values/support/c-red.css: Added.

(.c):

  • web-platform-tests/css/css-values/support/cat.png: Added.
  • web-platform-tests/css/css-values/support/import-green.css: Added.

(.import):

  • web-platform-tests/css/css-values/support/import-red.css: Added.

(.import):

  • web-platform-tests/css/css-values/support/pattern-grg-rgr-grg.png: Added.
  • web-platform-tests/css/css-values/support/pattern-grg-rrg-rgg.png: Added.
  • web-platform-tests/css/css-values/support/pattern-rgr-grg-rgr.png: Added.
  • web-platform-tests/css/css-values/support/pattern-tr.png: Added.
  • web-platform-tests/css/css-values/support/ruler-h-50%.png: Added.
  • web-platform-tests/css/css-values/support/ruler-h-50px.png: Added.
  • web-platform-tests/css/css-values/support/ruler-v-100px.png: Added.
  • web-platform-tests/css/css-values/support/ruler-v-50px.png: Added.
  • web-platform-tests/css/css-values/support/square-purple.png: Added.
  • web-platform-tests/css/css-values/support/square-teal.png: Added.
  • web-platform-tests/css/css-values/support/square-white.png: Added.
  • web-platform-tests/css/css-values/support/support/README: Added.
  • web-platform-tests/css/css-values/support/support/swatch-green.png: Added.
  • web-platform-tests/css/css-values/support/support/swatch-red.png: Added.
  • web-platform-tests/css/css-values/support/support/w3c-import.log: Added.
  • web-platform-tests/css/css-values/support/swatch-blue.png: Added.
  • web-platform-tests/css/css-values/support/swatch-green.png: Added.
  • web-platform-tests/css/css-values/support/swatch-lime.png: Added.
  • web-platform-tests/css/css-values/support/swatch-orange.png: Added.
  • web-platform-tests/css/css-values/support/swatch-red.png: Added.
  • web-platform-tests/css/css-values/support/swatch-teal.png: Added.
  • web-platform-tests/css/css-values/support/swatch-white.png: Added.
  • web-platform-tests/css/css-values/support/swatch-yellow.png: Added.
  • web-platform-tests/css/css-values/support/test-bl.png: Added.
  • web-platform-tests/css/css-values/support/test-br.png: Added.
  • web-platform-tests/css/css-values/support/test-inner-half-size.png: Added.
  • web-platform-tests/css/css-values/support/test-outer.png: Added.
  • web-platform-tests/css/css-values/support/test-tl.png: Added.
  • web-platform-tests/css/css-values/support/test-tr.png: Added.
  • web-platform-tests/css/css-values/support/vh-support-transform-origin-iframe.html: Added.
  • web-platform-tests/css/css-values/support/vh-support-transform-translate-iframe.html: Added.
  • web-platform-tests/css/css-values/support/vh_not_refreshing_on_chrome_iframe.html: Added.
  • web-platform-tests/css/css-values/support/w3c-import.log: Added.
  • web-platform-tests/css/css-values/unset-value-storage-expected.txt: Added.
  • web-platform-tests/css/css-values/unset-value-storage.html: Added.
  • web-platform-tests/css/css-values/urls/empty-expected.txt: Added.
  • web-platform-tests/css/css-values/urls/empty.html: Added.
  • web-platform-tests/css/css-values/urls/support/empty-urls.css: Added.

(#external-unquoted):
(#external-quoted):

  • web-platform-tests/css/css-values/urls/support/w3c-import.log: Added.
  • web-platform-tests/css/css-values/urls/w3c-import.log: Added.
  • web-platform-tests/css/css-values/vh-calc-support-expected.html: Added.
  • web-platform-tests/css/css-values/vh-calc-support-pct-expected.html: Added.
  • web-platform-tests/css/css-values/vh-calc-support-pct.html: Added.
  • web-platform-tests/css/css-values/vh-calc-support.html: Added.
  • web-platform-tests/css/css-values/vh-em-inherit-expected.html: Added.
  • web-platform-tests/css/css-values/vh-em-inherit.html: Added.
  • web-platform-tests/css/css-values/vh-inherit-expected.html: Added.
  • web-platform-tests/css/css-values/vh-inherit.html: Added.
  • web-platform-tests/css/css-values/vh-interpolate-pct-expected.html: Added.
  • web-platform-tests/css/css-values/vh-interpolate-pct.html: Added.
  • web-platform-tests/css/css-values/vh-interpolate-px-expected.html: Added.
  • web-platform-tests/css/css-values/vh-interpolate-px.html: Added.
  • web-platform-tests/css/css-values/vh-interpolate-vh-expected.html: Added.
  • web-platform-tests/css/css-values/vh-interpolate-vh.html: Added.
  • web-platform-tests/css/css-values/vh-support-atviewport-expected.htm: Added.
  • web-platform-tests/css/css-values/vh-support-atviewport.html: Added.
  • web-platform-tests/css/css-values/vh-support-expected.html: Added.
  • web-platform-tests/css/css-values/vh-support-margin-expected.html: Added.
  • web-platform-tests/css/css-values/vh-support-margin.html: Added.
  • web-platform-tests/css/css-values/vh-support-transform-origin-expected.html: Added.
  • web-platform-tests/css/css-values/vh-support-transform-origin.html: Added.
  • web-platform-tests/css/css-values/vh-support-transform-translate-expected.html: Added.
  • web-platform-tests/css/css-values/vh-support-transform-translate.html: Added.
  • web-platform-tests/css/css-values/vh-support.html: Added.
  • web-platform-tests/css/css-values/vh-zero-support-expected.html: Added.
  • web-platform-tests/css/css-values/vh-zero-support.html: Added.
  • web-platform-tests/css/css-values/vh_not_refreshing_on_chrome-expected.html: Added.
  • web-platform-tests/css/css-values/vh_not_refreshing_on_chrome.html: Added.
  • web-platform-tests/css/css-values/viewport-relative-lengths-scaled-viewport-expected.txt: Added.
  • web-platform-tests/css/css-values/viewport-relative-lengths-scaled-viewport.html: Added.
  • web-platform-tests/css/css-values/viewport-unit-011-expected.html: Added.
  • web-platform-tests/css/css-values/viewport-unit-011.html: Added.
  • web-platform-tests/css/css-values/viewport-units-css2-001-expected.txt: Added.
  • web-platform-tests/css/css-values/viewport-units-css2-001.html: Added.
  • web-platform-tests/css/css-values/w3c-import.log: Added.

LayoutTests:

Import wpt revision e68120da0fb52f010f206f3ecc63cfa09885b0f4 (Wed Oct 23 13:18:06 2019 -0700)
css-values tests.

  • TestExpectations:
  • platform/ios/imported/w3c/web-platform-tests/css/css-values/absolute_length_units-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-values/lh-rlh-on-root-001-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt: Added.
  • tests-options.json:
6:32 PM Changeset in webkit [251520] by Kocsen Chung
  • 10 edits in tags/Safari-609.1.8

Revert r251261. rdar://problem/56387205

6:32 PM Changeset in webkit [251519] by Kocsen Chung
  • 3 edits in tags/Safari-609.1.8/LayoutTests

Cherry-pick r251328. rdar://problem/56415948

Flaky Test: fast/events/resize-subframe-in-rendering-update.html
https://bugs.webkit.org/show_bug.cgi?id=203140
<rdar://problem/56415948>

Reviewed by Wenson Hsieh.

Removed the assertion in setTimeout to avoid flakiness. There isn't a way to deterministically order
callbacks of setTimeout and requestAnimationFrame for this test for now.

  • fast/events/resize-subframe-in-rendering-update-expected.txt:
  • fast/events/resize-subframe-in-rendering-update.html:

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

6:00 PM Changeset in webkit [251518] by ysuzuki@apple.com
  • 46 edits in trunk/Source

[JSC] Figure out missing prepareCallOperation
https://bugs.webkit.org/show_bug.cgi?id=203285

Reviewed by Mark Lam.

Source/JavaScriptCore:

We start using builtin_frame_address to get CallFrame* in JIT operations. For the platform which is not supporting this API (MSVC),
we put frame-pointer to vm.topCallFrame in the caller side. The problem is that all Apple platform is now using
builtin_frame_address,
and we are not testing vm.topCallFrame version at all.

To find missing prepareCallOperation call, we introduce JITOperationPrologueCallFrameTracer. When USE(BUILTIN_FRAME_ADDRESS) is enabled and
if it is debug build, we anyway put frame-pointer to vm.topCallFrame. And after that, we ensure that vm.topCallFrame is the same to the
CallFrame* gained by builtin_frame_address. By doing this, we can find places missing this call in debug build of Apple ports.

We also found that FTL's custom getter calling is putting wrong value to vm.topCallFrame. This patch fixes it too.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::emitRestoreArguments):
(JSC::DFG::operationCompileOSRExit):
(JSC::DFG::OSRExit::compileExit):
(JSC::DFG::operationDebugPrintSpeculationFailure):
(JSC::DFG::OSRExit::compileOSRExit): Deleted.
(JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure): Deleted.

  • dfg/DFGOSRExit.h:
  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::handleExitCounts):
(JSC::DFG::osrWriteBarrier):

  • dfg/DFGOSRExitCompilerCommon.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitThunkGenerator):
(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::callPreflight):
(JSC::FTL::DFG::LowerDFGToB3::callCheck):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):
(JSC::FTL::operationCompileFTLOSRExit):
(JSC::FTL::compileFTLOSRExit): Deleted.

  • ftl/FTLOSRExitCompiler.h:
  • ftl/FTLOperations.cpp:

(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):
(JSC::FTL::operationCompileFTLLazySlowPath):
(JSC::FTL::compileFTLLazySlowPath): Deleted.

  • ftl/FTLOperations.h:
  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::SlowPathCallContext::makeCall):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::osrExitGenerationThunkGenerator):
(JSC::FTL::lazySlowPathGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • ftl/FTLThunks.h:

(JSC::FTL::generateIfNecessary):
(JSC::FTL::Thunks::getSlowPathCallThunk):

  • interpreter/FrameTracers.h:

(JSC::SlowPathFrameTracer::SlowPathFrameTracer):
(JSC::JITOperationPrologueCallFrameTracer::JITOperationPrologueCallFrameTracer):
(JSC::JITOperationPrologueCallFrameTracer::~JITOperationPrologueCallFrameTracer):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::debugCall):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::prepareCallOperation):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::ensureShadowChickenPacket):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareCallOperation): Deleted.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/Repatch.cpp:

(JSC::ftlThunkAwareRepatchCall):

  • jit/ThunkGenerators.cpp:

(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):

  • runtime/AtomicsObject.cpp:

(JSC::operationAtomicsAdd):
(JSC::operationAtomicsAnd):
(JSC::operationAtomicsCompareExchange):
(JSC::operationAtomicsExchange):
(JSC::operationAtomicsIsLockFree):
(JSC::operationAtomicsLoad):
(JSC::operationAtomicsOr):
(JSC::operationAtomicsStore):
(JSC::operationAtomicsSub):
(JSC::operationAtomicsXor):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/StringPrototype.cpp:

(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::operationStringProtoFuncReplaceRegExpString):
(JSC::operationStringProtoFuncReplaceGeneric):

  • tools/JSDollarVM.cpp:

(IGNORE_WARNINGS_BEGIN):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::operationWasmThrowBadI64):
(JSC::Wasm::operationWasmTriggerOSREntryNow):
(JSC::Wasm::operationWasmTriggerTierUpNow):
(JSC::Wasm::operationThrowBadI64): Deleted.
(JSC::Wasm::triggerOSREntryNow): Deleted.
(JSC::Wasm::triggerTierUpNow): Deleted.

  • wasm/WasmOperations.h:
  • wasm/WasmThunks.cpp:

(JSC::Wasm::triggerOMGEntryTierUpThunkGenerator):

  • wasm/js/JSWebAssembly.cpp:

(JSC::instantiate):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::operationWasmToJSException):
(JSC::Wasm::emitThrowWasmToJSException):
(JSC::Wasm::wasmToJSException): Deleted.

  • wasm/js/WasmToJS.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance):

Source/WebCore:

Use JITOperationPrologueCallFrameTracer instead of NativeCallFrameTracer.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOperationDefinition):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionItemWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionHasAttributeWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameWithoutTypeCheck):

  • domjit/DOMJITHelpers.h:

(WebCore::DOMJIT::toWrapperSlow):

Source/WTF:

Enable USE(BUILTIN_FRAME_ADDRESS) regardless of platform is the compilers and architectures match.

  • wtf/Platform.h:
5:55 PM Changeset in webkit [251517] by timothy_horton@apple.com
  • 10 edits in trunk/Source

macCatalyst: Should dispatch contextmenu event on right click
https://bugs.webkit.org/show_bug.cgi?id=203316
<rdar://problem/54617376>

Reviewed by Wenson Hsieh.

Source/WebCore:

macCatalyst does not have ENABLE(CONTEXT_MENUS), because it uses the
iOS-style platform-driven context menu API, but should still dispatch
the contextmenu event on right click, for pages that depend on that.

Separate ENABLE(CONTEXT_MENU_EVENT) out from ENABLE(CONTEXT_MENUS).

In the future, calling preventDefault on the contextmenu event should
block the platform context menu from appearing, but currently they
use entirely different gestures.

  • page/EventHandler.cpp:
  • page/EventHandler.h:
  • replay/UserInputBridge.cpp:
  • replay/UserInputBridge.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::isContextClick):
(WebKit::handleContextMenuEvent):
(WebKit::WebPage::contextMenuForKeyEvent):
(WebKit::handleMouseEvent):

  • WebProcess/WebPage/WebPage.h:

Source/WTF:

  • wtf/FeatureDefines.h:
5:18 PM Changeset in webkit [251516] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[EWS] Multiple builds are triggered for one patch sometimes in new EWS
https://bugs.webkit.org/show_bug.cgi?id=199417

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/fetcher.py:

(BugzillaPatchFetcher.fetch): Set the flag before sending the patch to buildbot. Unset it in case of failure.
Also added additional check for sent_to_buildbot flag before processing patch.

  • BuildSlaveSupport/ews-app/ews/models/patch.py:

(Patch.save_patch): Improved logging.
(Patch.set_sent_to_buildbot): Modified to accept sent_to_buildbot paramater, and set the value accordingly.

5:09 PM Changeset in webkit [251515] by Russell Epstein
  • 18 edits in trunk

Unreviewed, rolling out r251469.

Broke accessibility/ios-simulator/link-with-images-text.html
on iOS

Reverted changeset:

"AX: Implement support for new ARIA roles: code, strong,
emphasis, generic"
https://bugs.webkit.org/show_bug.cgi?id=203257
https://trac.webkit.org/changeset/251469# Please enter the commit message for your changes. Lines starting

5:05 PM Changeset in webkit [251514] by Truitt Savell
  • 10 edits in trunk

Unreviewed, rolling out r251261.

This broke multiple tests

Reverted changeset:

"Using version 1 CFRunloopSource for faster task dispatch"
https://bugs.webkit.org/show_bug.cgi?id=202874
https://trac.webkit.org/changeset/251261

5:04 PM Changeset in webkit [251513] by Truitt Savell
  • 6 edits in trunk

Unreviewed, rolling out r251482.

r251261 broke multiple tests, reverting this as part of that
rollout.

Reverted changeset:

"[ Mac WK1 ] REGRESSION (r251261): Layout Test
inspector/console/webcore-logging.html is consistently
Failing"
https://bugs.webkit.org/show_bug.cgi?id=203173
https://trac.webkit.org/changeset/251482

5:03 PM Changeset in webkit [251512] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a speculative build fix after r251498

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
5:02 PM Changeset in webkit [251511] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Stop including 'common.sb'
https://bugs.webkit.org/show_bug.cgi?id=203318

Reviewed by Per Arne Vollan.

Replace the 'import' of common.sb with the equivalent statements. This is the
first step in a task to remove uneeded sandbox rules.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:37 PM Changeset in webkit [251510] by dino@apple.com
  • 5 edits
    4 moves in trunk/Source/ThirdParty/ANGLE

[ANGLE] Improve compile-time macOS guards and avoid ObjC if possible
https://bugs.webkit.org/show_bug.cgi?id=203343

Reviewed by Simon Fraser.

Use the more official compile-time detection of Apple platforms, so that
it will be easier to differentiate between macOS and iOS. Also move some
.mm files to .cpp where possible.

  • ANGLE.xcodeproj/project.pbxproj:
  • src/gpu_info_util/SystemInfo_mac.cpp: Renamed from Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_mac.mm.

(angle::GetSystemInfo):

  • src/libANGLE/renderer/gl/cgl/DeviceCGL.cpp:
  • src/libANGLE/renderer/gl/cgl/DisplayCGL.mm:
  • src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp: Renamed from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.mm.
  • src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp: Renamed from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.mm.
  • src/libANGLE/renderer/gl/cgl/RendererCGL.cpp: Renamed from Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/RendererCGL.mm.
  • src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm:
4:25 PM Changeset in webkit [251509] by Chris Dumez
  • 8 edits
    4 adds in trunk

FileSystemDirectoryReader / FileSystemEntry should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203090
<rdar://problem/56550805>

Reviewed by Geoffrey Garen.

Source/WebCore:

FileSystemDirectoryReader / FileSystemEntry no longer prevent entering the back/forward cache.
We now dispatch tasks to the window event loop whenever we need to call a JS callback since the
window event loop takes care of suspending tasks while in the back/forward cache.

Tests: editing/pasteboard/entries-api/DirectoryEntry-getFile-back-forward-cache.html

editing/pasteboard/entries-api/DirectoryReader-readEntries-back-forward-cache.html

  • Modules/entriesapi/FileSystemDirectoryEntry.cpp:

(WebCore::FileSystemDirectoryEntry::getEntry):

  • Modules/entriesapi/FileSystemDirectoryReader.cpp:

(WebCore::FileSystemDirectoryReader::document const):
(WebCore::FileSystemDirectoryReader::readEntries):

  • Modules/entriesapi/FileSystemDirectoryReader.h:
  • Modules/entriesapi/FileSystemEntry.cpp:

(WebCore::FileSystemEntry::document const):
(WebCore::FileSystemEntry::getParent):

  • Modules/entriesapi/FileSystemEntry.h:
  • Modules/entriesapi/FileSystemFileEntry.cpp:

(WebCore::FileSystemFileEntry::file):

LayoutTests:

Add layout test coverage.

  • editing/pasteboard/entries-api/DirectoryEntry-getFile-back-forward-cache-expected.txt: Added.
  • editing/pasteboard/entries-api/DirectoryEntry-getFile-back-forward-cache.html: Added.
  • editing/pasteboard/entries-api/DirectoryReader-readEntries-back-forward-cache-expected.txt: Added.
  • editing/pasteboard/entries-api/DirectoryReader-readEntries-back-forward-cache.html: Added.
4:14 PM Changeset in webkit [251508] by mmaxfield@apple.com
  • 6 edits in trunk/Source

[iOS] Remove Hiragino Sans site-specific quirk for Yahoo Japan
https://bugs.webkit.org/show_bug.cgi?id=203345

Reviewed by Simon Fraser.

Source/WebCore:

This iOS-specific quirk made Yahoo Japan stop using the 800-weight
version of Hiragino Sans because it's too heavy. We were using the
800-weight because the site requests 700 but we didn't have a 700-
weight of Hiragino Sans. However, now in iOS 13 we do have a 700-
weight of Hiragino Sans, so we can just delete this quirk.

Also, it turns out that Yahoo Japan modified their content to no
longer hit this quirk anyway, so this patch has 0 behavior change.

Site specific quirks are untestable.

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::fontRangesForFamily):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldLightenJapaneseBoldSansSerif const): Deleted.

  • page/Quirks.h:

Source/WTF:

  • wtf/Platform.h:
4:13 PM Changeset in webkit [251507] by Truitt Savell
  • 2 edits in trunk/LayoutTests

update expectations for inspector/heap/getRemoteObject.html
https://bugs.webkit.org/show_bug.cgi?id=156077

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:02 PM Changeset in webkit [251506] by Chris Dumez
  • 6 edits
    3 adds in trunk

Ignore document.open/write after the active parser has been aborted
https://bugs.webkit.org/show_bug.cgi?id=203028

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window-expected.txt:

Source/WebCore:

Ignore document.open/write after the active parser has been aborted, as per:

Test: imported/blink/fast/loader/document-write-after-location-change.html

  • dom/Document.cpp:

(WebCore::Document::open):
(WebCore::Document::cancelParsing):
(WebCore::Document::implicitOpen):
(WebCore::Document::write):

  • dom/Document.h:

LayoutTests:

Import test from blink.

  • imported/blink/fast/loader/document-write-after-location-change-expected.txt: Added.
  • imported/blink/fast/loader/document-write-after-location-change.html: Added.
  • imported/blink/fast/loader/resources/pass-and-notify-done.html: Added.
3:58 PM November 2019 Meeting edited by Jon Davis
Added talks to the schedule (diff)
3:47 PM Changeset in webkit [251505] by Russell Epstein
  • 2 edits in trunk/LayoutTests

REGRESSION (r250936?) [ iOS ]: Layout Test http/tests/IndexedDB/storage-limit-1.https.html is a Flaky Failure (203275)
https://bugs.webkit.org/show_bug.cgi?id=203275

Unreviewed Test Gardening.

  • platform/ios-wk2/TestExpectations:
3:39 PM Changeset in webkit [251504] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[macOS WK2] Layout Test http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html is a flaky timeout (198670)
https://bugs.webkit.org/show_bug.cgi?id=198670
<rdar://problem/51529251>

Patch by Kate Cheney <Kate Cheney> on 2019-10-23
Reviewed by John Wilander.

Was able to reproduce flaky timeouts extremely rarely accompanied by
the error 'JS ERROR TypeError: null is not an object (evaluating
'document.body.appendChild’)'. Since the frame was being created in
head, the document body was sometimes not finished loading by the time
the appendChild call was being made. Moving the frame load to the body should fix this flakiness.

  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:
  • platform/mac-wk2/TestExpectations:
3:34 PM Changeset in webkit [251503] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Don't try to compile .inc files in ANGLE
https://bugs.webkit.org/show_bug.cgi?id=203315

Reviewed by Simon Fraser.

These are headers, not files we need to compile directly.

  • ANGLE.xcodeproj/project.pbxproj:
3:23 PM Changeset in webkit [251502] by aestes@apple.com
  • 3 edits
    2 moves in trunk/Source/WebCore

[Quick Look] Move PreviewConverter from platform/network/ to platform/
https://bugs.webkit.org/show_bug.cgi?id=203309

Reviewed by Tim Horton.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/PreviewConverter.h: Renamed from Source/WebCore/platform/network/ios/PreviewConverter.h.
  • platform/ios/PreviewConverterIOS.mm: Renamed from Source/WebCore/platform/network/ios/PreviewConverter.mm.
3:06 PM Changeset in webkit [251501] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

Implement dumpResourceLoadStatistics in SQLite ITP Database
https://bugs.webkit.org/show_bug.cgi?id=203224
<rdar://problem/56482165>

Patch by Kate Cheney <Kate Cheney> on 2019-10-23
Reviewed by John Wilander.

Source/WebKit:

This patch implements dumpResourceLoadStatistics() in the ITP database
store. This function required a boolean flag isScheduledForWebsiteDataRemoval that
now must be stored in the database, resulting in a small schema change.

Because of the schema change, this patch also compares any existing
database file against the new schema, and deletes the existing file if the schema is
not current.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

The logic for topFrameLinkDecorationsFromQuery was the opposite
of all other "xyzFrom" queries. When merging data from the memory
store, the load statistic being inserted holds a list of topFrames
which it has been redirected to from. I think it makes more sense
to also organize the table this way.

(WebKit::ObservedDomainsTableSchemaV1):
(WebKit::ObservedDomainsTableSchemaV1Alternate):
For support on both iOS and MacOS, there are two CREATE TABLE queries
to compare to, depending on whether the query result contains quotes
around the table name.

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndDropOldDatabaseIfNecessary):
The code to check for the current schema was adapted from SQLiteIDBBackingStore.cpp

(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertObservedDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensureAndMakeDomainList):
The previous naming of the list parameter in this function was
confusing because it is used by many different relationships not just
subframes under top frames.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
topFrameLinkDecorationsFrom were never inserted into the database.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships):
(WebKit::ResourceLoadStatisticsDatabaseStore::merge):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistic):
Since the statement to get all data for a given domain is now used in
multiple places, I stored the query as a constexpr auto.

(WebKit::ResourceLoadStatisticsDatabaseStore::logCrossSiteLoadWithLinkDecoration):
Matched the memory store functionality, which calls the boolean
"gotLinkDecorationFromPrevalentResource." I thought isScheduledForWebsiteDataRemoval
would be more clear of a name, because this flag gets cleared even when
prevalent top frame link decorations for this domain still exist in the table.

(WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics):
(WebKit::ResourceLoadStatisticsDatabaseStore::setIsScheduledForWebsiteDataRemoval):
(WebKit::ResourceLoadStatisticsDatabaseStore::prevalentDomains): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::domains):
To match memory store functionality, the check for website data to
delete should check all domains, not just prevalent ones.

(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUnexpiredRecentUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllWebsiteDataFor):
This now needs to check if the resource is prevalent, because it is
no longer guaranteed.

(WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllButCookiesFor):
(WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor):
(WebKit::ResourceLoadStatisticsDatabaseStore::getDomainStringFromDomainID):
(WebKit::ResourceLoadStatisticsDatabaseStore::getSubStatisticStatement):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList):
(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString):
This functionality matches the toString function in
ResourceLoadStatistics.cpp.

(WebKit::CompletionHandler<void):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:

LayoutTests:

Migrated tests from the memory store to be used to test dumping
for database store. Both tests are almost identical to the memory
store tests except they set the useITPDatabase flag to true and
log-cross-site-load-with-link-decoration-database.html tests one additional domain
to be sure that listing multiple domains in a category works in the database store.

  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database.html: Added.
  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database.html: Added.
2:58 PM Changeset in webkit [251500] by jiewen_tan@apple.com
  • 24 edits
    1 add in trunk

[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.

2:22 PM Changeset in webkit [251499] by commit-queue@webkit.org
  • 12 edits
    14 deletes in trunk

[SVG2] Fix SVGElement to conform with SVG2
https://bugs.webkit.org/show_bug.cgi?id=203280

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-10-23
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/historical-expected.txt:

Some sub-tests are now passing with this change.

Source/WebCore:

The interface of SVGElement is defined here:

https://www.w3.org/TR/SVG2/types.html#InterfaceSVGElement.

-- Remove SVGElement.getPresentationAttribute.
-- Remove the SVGElement attributes xmllang and xmlspace.
-- Remove the class SVGLangSpace

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • svg/SVGComponentTransferFunctionElement.cpp:

(WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged):
Fix a bug. This function was calling SVGLangSpace::isKnownAttribute()
instead of calling PropertyRegistry::isKnownAttribute().

  • svg/SVGElement.cpp:

(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::parseAttribute):
(WebCore::SVGElement::svgAttributeChanged):
(WebCore::SVGElement::getPresentationAttribute): Deleted.

  • svg/SVGElement.h:
  • svg/SVGElement.idl:
  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
Fix a bug. This function was calling SVGLangSpace::isKnownAttribute()
instead of calling PropertyRegistry::isKnownAttribute().

  • svg/SVGLangSpace.cpp: Removed.
  • svg/SVGLangSpace.h: Removed.
  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::svgAttributeChanged):

LayoutTests:

  • platform/gtk/svg/custom/getPresentationAttribute-expected.png: Removed.
  • platform/gtk/svg/custom/getPresentationAttribute-expected.txt: Removed.
  • platform/ios/svg/custom/getPresentationAttribute-expected.txt: Removed.
  • platform/mac/svg/custom/getPresentationAttribute-expected.png: Removed.
  • platform/mac/svg/custom/getPresentationAttribute-expected.txt: Removed.
  • platform/mac/svg/custom/getPresentationAttribute-modify-expected.png: Removed.
  • platform/win/svg/custom/getPresentationAttribute-expected.txt: Removed.
  • platform/wincairo/svg/custom/getPresentationAttribute-expected.txt: Removed.
  • platform/wpe/svg/custom/getPresentationAttribute-expected.txt: Removed.
  • svg/custom/getPresentationAttribute.svg: Removed.
  • svg/custom/path-getPresentationAttribute-crash-expected.txt: Removed.
  • svg/custom/path-getPresentationAttribute-crash.html: Removed.

SVGElement.getPresentationAttribute has to be removed.

1:59 PM Changeset in webkit [251498] by jiewen_tan@apple.com
  • 17 edits
    1 add in trunk

[WebAuthn] Add more information to _WKWebAuthenticationPanel
https://bugs.webkit.org/show_bug.cgi?id=202561
<rdar://problem/55973910>

Reviewed by Youenn Fablet.

Source/WebCore:

Covered by new tests within existing test files.

  • Modules/webauthn/AuthenticatorCoordinator.cpp:
  • Modules/webauthn/WebAuthenticationConstants.h:

Source/WebKit:

This change adds transports and type to _WKWebAuthenticationPanel such that
clients can know what transport the current ceremony demands and the type of
the current ceremony. These extra information allow clients to give users
more specific instructions to interact with authenticators.

To pass transports to client, the way how them is collected is changed significantly:
1) The timing is moved to runPanel before the client delegate call.
2) NfcService::isAvailable is added for AuthenticatorManager to determine if NFC
is available in the current device.
3) AuthenticatorManager::filterTransports is added to filter transports requested
by RP to ones that are available. This process is handled by each service naturally
before.
4) AuthenticatorManager::startRequest is now being splitted into AuthenticatorManager::handleRequest,
AuthenticatorManager::runPanel and AuthenticatorManager::getTransports.

To pass type to _WKWebAuthenticationPanel, ClientDataType is moved from
WebCore::AuthenticatorCoordinator to WebCore::WebAuthenticationConstants in
order to be reused to indicate the ceremony type.

  • 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):
(-[_WKWebAuthenticationPanel transports]):
(wkWebAuthenticationType):
(-[_WKWebAuthenticationPanel type]):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::WebCore::collectTransports):
(WebKit::WebCore::getClientDataType):
(WebKit::AuthenticatorManager::handleRequest):
(WebKit::AuthenticatorManager::filterTransports const):
(WebKit::AuthenticatorManager::startDiscovery):
(WebKit::AuthenticatorManager::initTimeOutTimer):
(WebKit::AuthenticatorManager::runPanel):
(WebKit::AuthenticatorManager::getTransports const):
(WebKit::AuthenticatorManager::respondReceivedInternal): Deleted.
(WebKit::AuthenticatorManager::startRequest): Deleted.

  • UIProcess/WebAuthentication/AuthenticatorManager.h:

(WebKit::AuthenticatorManager::respondReceivedInternal):

  • UIProcess/WebAuthentication/Cocoa/NfcService.h:
  • UIProcess/WebAuthentication/Cocoa/NfcService.mm:

(WebKit::NfcService::isAvailable):
(WebKit::NfcService::platformStartDiscovery):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp:

(WebKit::MockAuthenticatorManager::filterTransports const):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h:

Tools:

Adds new API tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelUIDelegate _webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:]):
(-[TestWebAuthenticationPanelUIDelegate panel]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-hid.html: Added.
1:47 PM Changeset in webkit [251497] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] iOS-13-Simulator-WK2-Tests-EWS is failing with an KeyError exception
https://bugs.webkit.org/show_bug.cgi?id=203281

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/layout_test_failures.py:

(LayoutTestFailures.results_from_string.get_failing_tests): Gracefully handle the case of missing 'report' key.

1:43 PM Changeset in webkit [251496] by Kocsen Chung
  • 2 edits in tags/Safari-609.1.8/Source/WebInspectorUI

Cherry-pick r251386. rdar://problem/56478513

Web Inspector: REGRESSION(r251227): Uncaught Exception: undefined is not an object (evaluating 'agent.enable')
https://bugs.webkit.org/show_bug.cgi?id=203208

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/AppController.js: (WI.AppController.prototype.activateExtraDomains):

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

1:38 PM Changeset in webkit [251495] by Chris Dumez
  • 8 edits
    6 adds in trunk

FetchRequest should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203091
<rdar://problem/56525333>

Reviewed by Youenn Fablet.

Source/WebCore:

FetchRequest used to prevent the page from entering the back/forward cache while it had a blob
load in progress. We no longer prevent suspension in such case. Instead, if the document is
suspended when the blob load finishes, we post a task to the Window event loop to do the work
and resolve / reject the promise. The Window event loop makes sure not to delays tasks that
are associated with a document that is suspended.

Tests: fast/history/page-cache-active-fetch-request-blobReadAsBlob.html

fast/history/page-cache-active-fetch-request-blobReadAsReadableStream.html
fast/history/page-cache-active-fetch-request-blobReadAsText.html

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::runNetworkTaskWhenPossible):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::blobLoadingFailed):
(WebCore::FetchBodyOwner::blobChunk):
(WebCore::FetchBodyOwner::postSuspendableNetworkTask): Deleted.

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchRequest.cpp:
  • Modules/fetch/FetchRequest.h:
  • dom/AbstractEventLoop.h:

LayoutTests:

Add layout test coverage.

  • TestExpectations:
  • fast/history/page-cache-active-fetch-request-blobReadAsBlob-expected.txt: Added.
  • fast/history/page-cache-active-fetch-request-blobReadAsBlob.html: Added.
  • fast/history/page-cache-active-fetch-request-blobReadAsReadableStream-expected.txt: Added.
  • fast/history/page-cache-active-fetch-request-blobReadAsReadableStream.html: Added.
  • fast/history/page-cache-active-fetch-request-blobReadAsText-expected.txt: Added.
  • fast/history/page-cache-active-fetch-request-blobReadAsText.html: Added.
1:16 PM Changeset in webkit [251494] by yurys@chromium.org
  • 38 edits
    3 adds
    2 deletes in trunk

Web Inspector: notify inspector when provisional page is created, committed and destroyed
https://bugs.webkit.org/show_bug.cgi?id=202704

Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • inspector/InspectorTarget.h: changed InspectorTarget to not require FrontendChannel as

all messages are routed by means of the owning InspectorTargetAgent.

  • inspector/agents/InspectorTargetAgent.cpp:

(Inspector::InspectorTargetAgent::InspectorTargetAgent):
(Inspector::buildTargetInfoObject):
(Inspector::InspectorTargetAgent::targetCreated):
(Inspector::InspectorTargetAgent::targetDestroyed):
(Inspector::InspectorTargetAgent::didCommitProvisionalTarget): this method is used to
notify frontend that corresponding provisional target has committed and replaced previous
target.
(Inspector::InspectorTargetAgent::connectionType const):
(Inspector::InspectorTargetAgent::connectToTargets):
(Inspector::InspectorTargetAgent::disconnectFromTargets):

  • inspector/agents/InspectorTargetAgent.h:
  • inspector/protocol/Target.json: extended TargetInfo with provisional page details and

added event which is fired when provisional page gets committed. If provisional
load fails there will be targetDestroyed event without corresponding commit.

Source/WebCore:

Test: http/tests/inspector/target/target-events-for-proisional-page.html

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::setIsUnderTest): This method may be called several times
when reloading inspected page with opened frontend so the assumption that there are no
connected frontends when this method is called from tests doesn't hold anymore.

Source/WebInspectorUI:

Updated frontend code to understand provisional targets. For now there are
no changes frontend behavior, it will wait for the provisional target to commit
and will not send any commands to it before that.

  • UserInterface/Base/Main.js: Moved a bunch of methods shared between Main.js and Test.js

to TargetManager.js to keep them in sync.

  • UserInterface/Controllers/TargetManager.js:

(WI.TargetManager):
(WI.TargetManager.prototype.removeTarget):
(WI.TargetManager.prototype.createMultiplexingBackendTarget):
(WI.TargetManager.prototype.createDirectBackendTarget):
(WI.TargetManager.prototype.targetCreated):
(WI.TargetManager.prototype.didCommitProvisionalTarget):
(WI.TargetManager.prototype.targetDestroyed):
(WI.TargetManager.prototype.dispatchMessageFromTarget):
(WI.TargetManager.prototype._checkAndHandlePageTargetTransition):
(WI.TargetManager.prototype._checkAndHandlePageTargetTermination):
(WI.TargetManager.prototype._initializeBackendTarget):
(WI.TargetManager.prototype._initializePageTarget):
(WI.TargetManager.prototype._transitionPageTarget):
(WI.TargetManager.prototype._terminatePageTarget):
(WI.TargetManager.prototype._resetMainExecutionContext):
(WI.TargetManager.prototype._redirectGlobalAgentsToConnection):

  • UserInterface/Protocol/Connection.js:

(InspectorBackend.WorkerConnection.sendMessageToBackend):
(InspectorBackend.WorkerConnection):
(InspectorBackend.TargetConnection.sendMessageToBackend):
(InspectorBackend.TargetConnection):

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.destroy): Mark target as destroyed to distinguish expected command errors from
genuine failures.

(WI.Target.prototype.isDestroyed):

  • UserInterface/Protocol/TargetObserver.js: Since the front-end doesn't

send commands to the provisional targets yet, it has to ignore all activities
related to provisional pages. For that reason we need two sets to keep track of

  • provisional pages that were destroyed and never committed
  • old pages which were replaced by committed page and for which following targetDestroyed

event should be ignored
Better support for provisional targets will be added to frontend in a separate change.
(WI.TargetObserver):
(WI.TargetObserver.prototype.targetCreated):
(WI.TargetObserver.prototype.didCommitProvisionalTarget): For now convert the event into a subsequence
of targetDestroyed/targetCreated events which matches previous behavior.

(WI.TargetObserver.prototype.targetDestroyed):
(WI.TargetObserver.prototype.dispatchMessageFromTarget):

  • UserInterface/Test/Test.js:

(WI.transitionPageTarget):
(WI.terminatePageTarget):

Source/WebKit:

Target.targetCreated event is now generated for provisional pages as well as for regular
ones. This is the first step toward reattaching inspector earlier during PSON. In the future
if debugging is in progress the provisional target (page) will be paused until a signal from
inspector frontend. This will enable the frontend configure all agents before navigation starts.

  • Sources.txt:
  • UIProcess/API/APIWebAuthenticationPanel.cpp:

(API::WebAuthenticationPanel::WebAuthenticationPanel): Added explicit namespace specifier
to the constructor's argument as otherwise compilation fails due to conflict between API::String
and WTF::String.

  • UIProcess/InspectorTargetProxy.cpp:

(WebKit::InspectorTargetProxy::create):
(WebKit::InspectorTargetProxy::connect):
(WebKit::InspectorTargetProxy::disconnect):
(WebKit::InspectorTargetProxy::sendMessageToTargetBackend):
(WebKit::InspectorTargetProxy::didCommitProvisionalTarget):
(WebKit::InspectorTargetProxy::isProvisional const):
(WebKit::InspectorTargetProxy::previousTargetID const):

  • UIProcess/InspectorTargetProxy.h: Target proxy can start as a provisional target (with a pointer to

ProvisionalPageProxy) and later either be committed or destroyed.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::didReceiveMessage): Forward inspector messages to parent page's WebPageInspectorController.
Since each WebPage has a unique identifier the target ids will be globally unique and there is no risk of collisions.

  • UIProcess/ProvisionalPageProxy.h:

(WebKit::ProvisionalPageProxy::page const):

  • UIProcess/WebPageInspectorController.cpp:

(WebKit::getTargetID):
(WebKit::WebPageInspectorController::WebPageInspectorController):
(WebKit::WebPageInspectorController::clearTargets):
(WebKit::WebPageInspectorController::createInspectorTarget):
(WebKit::WebPageInspectorController::destroyInspectorTarget):
(WebKit::WebPageInspectorController::didCreateProvisionalPage):
(WebKit::WebPageInspectorController::didDestroyProvisionalPage):
(WebKit::WebPageInspectorController::didCommitProvisionalPage):
(WebKit::WebPageInspectorController::addTarget):

  • UIProcess/WebPageInspectorController.h:
  • UIProcess/WebPageInspectorTargetAgent.cpp: Removed. Merged this agent into InspectorTargetAgent.
  • UIProcess/WebPageInspectorTargetAgent.h: Removed.
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_resetRecentCrashCountTimer):
(WebKit::WebPageProxy::finishAttachingToWebProcess):
(WebKit::WebPageProxy::commitProvisionalPage):

  • UIProcess/WebPageProxy.h: Moved the target management logic into WebPageInspectorController.

WebPageProxy/ProvisionalPageProxy are expected to notifiy it about key lifecycle events and also
forward to it messages from inspector in the inspected WebProcess. How it translates to Target
events is inspector's business.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPageInspectorTarget.cpp:

(WebKit::WebPageInspectorTarget::identifier const):
(WebKit::WebPageInspectorTarget::connect):
(WebKit::WebPageInspectorTarget::disconnect):
(WebKit::WebPageInspectorTarget::toTargetID):

  • WebProcess/WebPage/WebPageInspectorTarget.h: Made the target own frontend channel instance as it's the

only place where the page specific channel is used.

  • WebProcess/WebPage/WebPageInspectorTargetController.cpp:

(WebKit::WebPageInspectorTargetController::removeTarget):
(WebKit::WebPageInspectorTargetController::connectInspector):
(WebKit::WebPageInspectorTargetController::disconnectInspector):

  • WebProcess/WebPage/WebPageInspectorTargetController.h:
  • WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.cpp:

(WebKit::WebPageInspectorTargetFrontendChannel::WebPageInspectorTargetFrontendChannel):
(WebKit::WebPageInspectorTargetFrontendChannel::sendMessageToFrontend):

  • WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.h: The channel's lifetime is managed by owning

target. No need to reference count it.

LayoutTests:

Added new test for Target events during PSON. It is only enabled on WebKit2 as there is
no Target agent in WebKit1.

  • TestExpectations:
  • http/tests/inspector/target/target-events-for-provisional-page-expected.txt: Added.
  • http/tests/inspector/target/target-events-for-provisional-page.html: Added.
  • platform/wk2/TestExpectations:
1:14 PM Changeset in webkit [251493] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Change some image-related CSSValue subclasses to use references
https://bugs.webkit.org/show_bug.cgi?id=203284

Reviewed by Zalan Bujtas.

The fake-virtual CSSValue subclasses all have the same functions, but their types
have diverged. Convert some from pointers to references.

  • css/CSSCanvasValue.cpp:

(WebCore::CSSCanvasValue::fixedSize):
(WebCore::CSSCanvasValue::image):

  • css/CSSCanvasValue.h:
  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::fixedSize):
(WebCore::CSSFilterImageValue::image):

  • css/CSSFilterImageValue.h:
  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::fixedSize):

  • css/CSSNamedImageValue.cpp:

(WebCore::CSSNamedImageValue::image):

  • css/CSSNamedImageValue.h:
1:14 PM Changeset in webkit [251492] by Simon Fraser
  • 3 edits in trunk

wpt/css/css-images/gradient/color-stops-parsing.html fails
https://bugs.webkit.org/show_bug.cgi?id=200211

Reviewed by Dean Jackson.
LayoutTests/imported/w3c:

New result.

  • web-platform-tests/css/css-images/gradient/color-stops-parsing-expected.txt:

Source/WebCore:

CSS gradients allow a single color stop to have multiple positions. In this case
we need to copy the color from the first to subsequent stops.

Tested by web-platform-tests/css/css-images/gradient/color-stops-parsing.html
and imported/w3c/web-platform-tests/css/css-images/multiple-position-color-stop-conic.html.

  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::gradientWithStylesResolved): Copy colors to subsequent stops.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops): Fix the parsing of
stops with multiple positions.

LayoutTests:

Mark the conic gradient test as skipped, then passing on Mojave+.

1:02 PM Changeset in webkit [251491] by Jonathan Bedard
  • 4 edits in trunk/Tools

Python 3: Add support in webkitpy.results
https://bugs.webkit.org/show_bug.cgi?id=202478

Reviewed by Carlos Alberto Lopez Perez.

  • Scripts/test-webkitpy-python3: Add webkitpy.results.
  • Scripts/webkitpy/results/upload.py:

(Upload.Encoder.default): Use range instead of xrange.
(Upload.create_configuration): Support items iteration for Python 3.
(Upload.create_run_stats): Change iteritems to items.
(Upload.create_test_result): Ditto.

  • Scripts/webkitpy/results/upload_unittest.py:

(UploadTest.Options.init): Change iteritems to items.
(UploadTest.normalize): Ditto.

12:41 PM Changeset in webkit [251490] by commit-queue@webkit.org
  • 25 edits
    5 adds
    1 delete in trunk

Be strict on request's Content-Type
https://bugs.webkit.org/show_bug.cgi?id=191356

Patch by Rob Buis <rbuis@igalia.com> on 2019-10-23
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Import some tests and update improved test results.

  • web-platform-tests/cors/304-expected.txt:
  • web-platform-tests/cors/basic-expected.txt:
  • web-platform-tests/cors/client-hint-request-headers-expected.txt:
  • web-platform-tests/cors/cors-safelisted-request-header.any-expected.txt: Added.
  • web-platform-tests/cors/cors-safelisted-request-header.any.html: Added.
  • web-platform-tests/cors/cors-safelisted-request-header.any.js: Added.

(safelist):
(true.forEach):

  • web-platform-tests/cors/cors-safelisted-request-header.any.worker-expected.txt: Added.
  • web-platform-tests/cors/cors-safelisted-request-header.any.worker.html: Added.
  • web-platform-tests/cors/credentials-flag-expected.txt:
  • web-platform-tests/cors/late-upload-events-expected.txt:
  • web-platform-tests/cors/origin-expected.txt:
  • web-platform-tests/cors/preflight-cache-expected.txt:
  • web-platform-tests/cors/preflight-failure-expected.txt:
  • web-platform-tests/cors/redirect-origin-expected.txt:
  • web-platform-tests/cors/redirect-preflight-2-expected.txt:
  • web-platform-tests/cors/redirect-preflight-expected.txt:
  • web-platform-tests/cors/redirect-userinfo-expected.txt:
  • web-platform-tests/cors/request-headers-expected.txt:
  • web-platform-tests/cors/response-headers-expected.txt:
  • web-platform-tests/cors/simple-requests-expected.txt:
  • web-platform-tests/cors/status-async-expected.txt:
  • web-platform-tests/cors/status-expected.txt:
  • web-platform-tests/cors/status-preflight-expected.txt:
  • web-platform-tests/cors/support.js:

Source/WebCore:

Implement steps 1-3 from Content-Type rules defined here:
https://fetch.spec.whatwg.org/#cors-safelisted-request-header

Behavior matches Firefox and Chrome.

Tests: imported/w3c/web-platform-tests/cors/cors-safelisted-request-header.any.html

imported/w3c/web-platform-tests/cors/cors-safelisted-request-header.any.worker.html

  • platform/network/HTTPParsers.cpp:

(WebCore::isCorsUnsafeRequestHeaderByte):
(WebCore::containsCORSUnsafeRequestHeaderBytes):
(WebCore::isCrossOriginSafeRequestHeader):

LayoutTests:

Remove expected results for tests that now pass.

  • TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/cors/client-hint-request-headers-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/cors/late-upload-events-expected.txt: Removed.
12:36 PM Changeset in webkit [251489] by jiewen_tan@apple.com
  • 19 edits in trunk

[WebAuthn] Supply FrameInfo in -[WKUIDelegatePrivate _webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:]
https://bugs.webkit.org/show_bug.cgi?id=202563
<rdar://problem/55973968>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by new test contents within existing tests.

  • Modules/webauthn/AuthenticatorCoordinator.cpp:

(WebCore::AuthenticatorCoordinator::create const):
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):

  • Modules/webauthn/AuthenticatorCoordinatorClient.h:

Source/WebKit:

This patch makes WKFrameInfo available to clients via the above SPI. To do so,
SecuirtyOrigin of the caller document is passed from WebContent Process.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::runWebAuthenticationPanel):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::runWebAuthenticationPanel):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::runPanel):

  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h:

Tools:

Adds new test contents into existing tests.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelUIDelegate init]):
(-[TestWebAuthenticationPanelUIDelegate _webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:]):
(-[TestWebAuthenticationPanelUIDelegate frame]):
(TestWebKitAPI::TEST):

LayoutTests:

  • http/wpt/webauthn/public-key-credential-get-success-hid.https.html:

Imporves the flakiness.

12:34 PM Changeset in webkit [251488] by aestes@apple.com
  • 21 edits
    3 moves in trunk/Source

[Quick Look] Rename PreviewLoader{,Client} to LegacyPreviewLoader{,Client}
https://bugs.webkit.org/show_bug.cgi?id=203306

Reviewed by Tim Horton.

Source/WebCore:

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:
  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • loader/ResourceLoader.cpp:
  • loader/ResourceLoader.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

  • loader/ios/LegacyPreviewLoader.h: Renamed from Source/WebCore/loader/ios/PreviewLoader.h.
  • loader/ios/LegacyPreviewLoader.mm: Renamed from Source/WebCore/loader/ios/PreviewLoader.mm.

(testingClient):
(emptyClient):
(WebCore::LegacyPreviewLoader::LegacyPreviewLoader):
(WebCore::LegacyPreviewLoader::~LegacyPreviewLoader):
(WebCore::LegacyPreviewLoader::create):
(WebCore::LegacyPreviewLoader::didReceiveResponse):
(WebCore::LegacyPreviewLoader::didReceiveData):
(WebCore::LegacyPreviewLoader::didReceiveBuffer):
(WebCore::LegacyPreviewLoader::didFinishLoading):
(WebCore::LegacyPreviewLoader::didFail):
(WebCore::LegacyPreviewLoader::setClientForTesting):

  • platform/network/ios/LegacyPreviewLoaderClient.h: Renamed from Source/WebCore/platform/network/ios/PreviewLoaderClient.h.
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setQuickLookPassword):

  • testing/MockPreviewLoaderClient.h:

Source/WebKit:

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:

(WebKit::WebFrameLoaderClient::createPreviewLoaderClient):

  • WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createPreviewLoaderClient):

  • WebView/WebDataSource.mm:

(-[WebDataSource _quickLookPreviewLoaderClient]):
(-[WebDataSource _setQuickLookPreviewLoaderClient:]):

  • WebView/WebDataSourceInternal.h:
12:25 PM Changeset in webkit [251487] by Nikita Vasilyev
  • 5 edits
    1 move
    1 add
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Replace color wheel with square HSB color picker
https://bugs.webkit.org/show_bug.cgi?id=203169
<rdar://problem/56449832>

Reviewed by Devin Rousso.

Replace the color wheel with a square HSB color picker.

The square HSB color picker provides more precision for choosing saturation,
and it's more familiar to most web developers.

  • UserInterface/Main.html:
  • UserInterface/Views/ColorPicker.css:

(.color-picker):
(.color-picker > .hue):
(body[dir=ltr] .color-picker > .hue):
(body[dir=rtl] .color-picker > .hue):

  • UserInterface/Views/ColorPicker.js:

(WI.ColorPicker):
(WI.ColorPicker.prototype.get colorSquare):
(WI.ColorPicker.prototype.set color):
(WI.ColorPicker.prototype.colorSquareColorDidChange):
(WI.ColorPicker.prototype.sliderValueDidChange):
(WI.ColorPicker.prototype._updateColor):
(WI.ColorPicker.prototype._updateSliders):
Add a hue slider. The new color picker has the hue slider instead of the brightness slider.

  • UserInterface/Views/ColorSquare.css: Renamed from Source/WebInspectorUI/UserInterface/Views/ColorWheel.css.

(.color-square):
(.color-square > .saturation-gradient):
(.color-square > .lightness-gradient):
(.color-square > .fill):
(.color-square > .crosshair):

  • UserInterface/Views/ColorSquare.js: Added.

(WI.ColorSquare):
(WI.ColorSquare.prototype.get element):
(WI.ColorSquare.prototype.set dimension):
(WI.ColorSquare.prototype.get hue):
(WI.ColorSquare.prototype.set hue):
(WI.ColorSquare.prototype.get tintedColor):
(WI.ColorSquare.prototype.set tintedColor):
(WI.ColorSquare.prototype.get rawColor):
(WI.ColorSquare.prototype.handleEvent):
(WI.ColorSquare.prototype.get _saturation):
(WI.ColorSquare.prototype.get _brightness):
(WI.ColorSquare.prototype.get _lightness):
(WI.ColorSquare.prototype._handleMousedown):
(WI.ColorSquare.prototype._handleMousemove):
(WI.ColorSquare.prototype._handleMouseup):
(WI.ColorSquare.prototype._updateColorForMouseEvent):
(WI.ColorSquare.prototype._setCrosshairPosition):
(WI.ColorSquare.prototype._updateBaseColor):

  • UserInterface/Views/ColorWheel.js: Removed.
  • UserInterface/Views/GradientEditor.js:

(WI.GradientEditor):

12:13 PM Changeset in webkit [251486] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

fast/forms/ios/click-should-not-suppress-misspelling.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=203283
<rdar://problem/52701047>

Reviewed by Tim Horton.

This layout test frequently fails on iOS 13, because it assumes that the selectionchange event due to tapping
a misspelled word must occur within one zero-delay timeout after detecting a click event. However, this is not
guaranteed; to fix the test, we simply wait until both click and selectionchange events have occured, and
then check that the entire contents of the text field are selected.

  • fast/forms/ios/click-should-not-suppress-misspelling-expected.txt:
  • fast/forms/ios/click-should-not-suppress-misspelling.html:
12:09 PM Changeset in webkit [251485] by yurys@chromium.org
  • 9 edits in trunk

Web Inspector: frontend tests should clear output before resending results
https://bugs.webkit.org/show_bug.cgi?id=203262

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Inspector front-end tests will clear output log before resending teset results. This avoids
race between InspectorTest.testPageDidLoad event and TestPage.addResult calls that may have
already be sent to the new page after navigation. The latter events otherwise would be added
twice.

  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness):
(FrontendTestHarness.prototype.testPageDidLoad):
(FrontendTestHarness.prototype.reloadPage):
(FrontendTestHarness.prototype.reportUnhandledRejection):
(FrontendTestHarness.prototype.reportUncaughtException):
(FrontendTestHarness.prototype._resendResults): Don't resend the results when the page is loaded
first time.

LayoutTests:

Unflake some of the tests that reload inspected page. This is achieved by waiting for
explicit TestPageDidLoad event. At that point it's known that accumulated so far test
output has been resent to the inspected page and the log lines will not change their
order / appear twice.

  • http/tests/inspector/resources/inspector-test.js:

(TestPage.clearOutput):

  • inspector/debugger/breakpoint-action-eval.html:
  • inspector/debugger/breakpoint-action-log-expected.txt:
  • inspector/debugger/breakpoint-action-log.html:
  • inspector/debugger/probe-manager-add-remove-actions-expected.txt:
  • inspector/debugger/probe-manager-add-remove-actions.html:
11:55 AM WebInspectorDebugging edited by yurys@chromium.org
(diff)
11:49 AM Changeset in webkit [251484] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

[LFC] LayoutState should have out-of-line destructor
https://bugs.webkit.org/show_bug.cgi?id=203307

Reviewed by Zalan Bujtas.

Otherwise instantiating it requires a pile of other headers.

  • layout/LayoutState.cpp:
  • layout/LayoutState.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutTree):

Use makeUnique.

11:45 AM Changeset in webkit [251483] by Ross Kirsling
  • 8 edits
    1 add in trunk

String.prototype.matchAll should throw on non-global regex
https://bugs.webkit.org/show_bug.cgi?id=202838

Reviewed by Keith Miller.

JSTests:

  • stress/string-matchall.js: Added.
  • test262/expectations.yaml:

Mark four test cases as passing.

Source/JavaScriptCore:

  • builtins/StringPrototype.js:

(matchAll):
Implement normative change from https://github.com/tc39/ecma262/pull/1716.

  • builtins/BuiltinNames.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/RegExpConstructor.cpp:

(JSC::esSpecIsRegExp): Added.

  • runtime/RegExpConstructor.h:

Expose isRegExp to builtins. (This differs from @isRegExpObject by first checking for Symbol.match.)

11:29 AM Changeset in webkit [251482] by sihui_liu@apple.com
  • 6 edits in trunk

[ Mac WK1 ] REGRESSION (r251261): Layout Test inspector/console/webcore-logging.html is consistently Failing
https://bugs.webkit.org/show_bug.cgi?id=203173
<rdar://problem/56424721>

Source/JavaScriptCore:

Hold a strong reference to JSGlobalOjbect in ConsoleMessage so that object is not garbage collected before
WebConsoleAgent::frameWindowDiscarded.

Covered by existing test: inspector/console/webcore-logging.html.

Reviewed by Geoffrey Garen.

  • inspector/ConsoleMessage.cpp:

(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::clear):

  • inspector/ConsoleMessage.h:

LayoutTests:

Reviewed by Geoffrey Garen.

play() returns a promise and the promise can be rejected by a later pause(). We didn't handle
that case so we could receive a type JavaScript message for the unhandled rejected promise.

  • inspector/console/webcore-logging.html:
  • platform/mac-wk1/TestExpectations:
11:23 AM Changeset in webkit [251481] by Chris Dumez
  • 8 edits
    4 adds in trunk/LayoutTests

Resync imported/w3c/web-platform-tests/html/webappapis WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=203298

Reviewed by Youenn Fablet.

Resync imported/w3c/web-platform-tests/html/webappapis WPT tests from upstream 32ffb13f7f7fce355bf.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js:

(async_test.t.window.handlers.afterOpen.t.step_func_done):
(async_test.t.window.handlers.afterOpenAsync.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/location-set-and-document-open-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/location-set-and-document-open.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/w3c-import.log:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.serviceworker-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/requires-failure.https.any.serviceworker.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/disallow-crossorigin.html:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/support/promise-access-control.py:

(main):

11:07 AM Changeset in webkit [251480] by Ross Kirsling
  • 61 edits
    52 adds
    1 delete in trunk/JSTests

Update test262 (2019.10.11)
https://bugs.webkit.org/show_bug.cgi?id=202861

Reviewed by Keith Miller.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/harness/:
  • test262/latest-changes-summary.txt:
  • test262/test/:
  • test262/test262-Revision.txt:
10:03 AM Changeset in webkit [251479] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix tvOS and watchOS engineering builds after r251377

-[UIPasteboard itemProviders] is only available on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:

(writeMultipleObjectsToPlatformPasteboard):

9:01 AM EarlyWarningSystem edited by aakash_jain@apple.com
(diff)
8:42 AM Changeset in webkit [251478] by Jonathan Bedard
  • 2 edits in trunk/Tools

Python 3: 2to3 script may not be in a user's path
https://bugs.webkit.org/show_bug.cgi?id=203213

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.init): Remove executive dependencies.
(AutoinstallImportHook._install_beautifulsoup): Use multiprocess because 2to3 sets
Some undesirable global logging state.

12:56 AM Changeset in webkit [251477] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Remove NavigatorBase::serviceWorkerIfExists
https://bugs.webkit.org/show_bug.cgi?id=203241

Reviewed by Chris Dumez.

Remove unused method.
No change of behavior.

  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::serviceWorkerIfExists): Deleted.

  • page/NavigatorBase.h:
12:31 AM Changeset in webkit [251476] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

prepare-ChangeLog should whine about not having tests in WebKit-only patches
https://bugs.webkit.org/show_bug.cgi?id=203027

Reviewed by Ryosuke Niwa.

  • Scripts/prepare-ChangeLog:

(generateNewChangeLogs):
Put the "No new tests" or list of newly added tests in the deeper
of the WebCore or WebKit ChangeLogs, depending on which directories
the patch touches.

This is mostly intended to encourage tests for WebKit-only changes.

Note: See TracTimeline for information about the timeline view.