Timeline



Feb 17, 2020:

11:38 PM Changeset in webkit [256821] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

Selection cannot be modified via text interaction in some areas of the compose body field in Gmail
https://bugs.webkit.org/show_bug.cgi?id=207854
<rdar://problem/59218824>

Reviewed by Tim Horton.

Source/WebCore:

Currently, several codepaths that are consulted when performing text interaction gestures on iOS to make and
modify text selections (e.g. double taps and long presses) rely on Frame::visiblePositionForPoint to map the
touch location to a visible editing position on the page. visiblePositionForPoint uses the hit-testing option
AllowChildFrameContent, which allows it to find and select text within subframes. However, this option also
includes content in hidden ("visibility: hidden;") frames. This means that text selection gestures on iOS are
unable to find otherwise selectable text, if a hidden child frame overlaps the text.

To fix this, we instead use the AllowVisibleChildFrameContentOnly hit-testing option, which will ignore such
hidden subframes.

Test: editing/selection/ios/select-text-under-hidden-subframe.html

  • page/Frame.cpp:

(WebCore::Frame::visiblePositionForPoint const):

Source/WebKit:

Adjusts more call sites in WebKit to ignore child frames that are hidden when hit-testing. See WebCore/ChangeLog
for more details.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::rectForElementAtInteractionLocation const):
(WebKit::WebPage::handleStylusSingleTapAtPoint):
(WebKit::rangeForPointInRootViewCoordinates):
(WebKit::WebPage::setFocusedFrameBeforeSelectingTextAtLocation):
(WebKit::selectionPositionInformation):
(WebKit::textInteractionPositionInformation):
(WebKit::WebPage::positionInformation):

LayoutTests:

Add a new layout test to verify that the hit-testing codepaths exercised by text interaction gestures on iOS
successfully ignore a hidden child frame that covers the page.

  • editing/selection/ios/select-text-under-hidden-subframe-expected.txt: Added.
  • editing/selection/ios/select-text-under-hidden-subframe.html: Added.
10:32 PM Changeset in webkit [256820] by Chris Dumez
  • 38 edits
    2 copies
    8 adds in trunk

[WK2][Cocoa] Implement in-WebProcess cookie cache to avoid sync IPC for document.cookie in most cases
https://bugs.webkit.org/show_bug.cgi?id=207593
<rdar://problem/56027027>

Reviewed by Antti Koivisto.

Source/WebCore:

Implement in-WebProcess DOM cookie cache for serving document.cookie requests from JavaScript.

The first time document.cookie is called for a given host, the WebProcess will pull in all the
non-HTTPOnly cookies for that host from the NetworkProcess (still via sync IPC) and store them
in an in-memory cookie store. Later document.cookie calls for this host from this WebProcess
will then leverage the in-memory cookie store and avoid doing a sync IPC to the NetworkProcess
entirely.

To maintain the in-process cookie store up-to-date, the WebProcess subscribe for cookie-change
notifications from the NetworkProcess, only for the hosts it is interested in.

If the page's JavaScript sets a cookie by setting document.cookie, we will not invalidate the
cache for performance reasons. Instead, we set the cookie in our in-memory cookie before
sending the new cookie to the NetworkProcess.

For compatibility reasons, any sync IPC to a given host will currently invalidate the cookie
cache for this host. This is because this synchronous load may cause cookies to get set
synchronously and the page could access document.cookie right after the sync XHR. This behavior
is covered by the following existing test:

  • http/tests/cookies/sync-xhr-set-cookie-invalidates-cache.html

Another limitation of the current implementation of the cookie cache is that it is currently
only leveraged for first party content. This is suboptimal and could be improved in a later
iteration. However, the default behavior in Safari is that third-party iframes do not have
cookie access unless they request it using the storage access API. We also currently have
a limit of 5 hosts with cached cookies per WebProcess.

Tests: http/tests/cookies/document-cookie-after-showModalDialog.html

http/tests/cookies/document-cookie-during-iframe-parsing.html

  • dom/Document.cpp:

(WebCore::Document::didLoadResourceSynchronously):

  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::didLoadResourceSynchronously):

  • dom/ScriptExecutionContext.h:
  • loader/CookieJar.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::loadResourceSynchronously):

  • page/MemoryRelease.cpp:

(WebCore::releaseCriticalMemory):

  • page/Settings.yaml:
  • platform/network/NetworkStorageSession.h:

(WebCore::CookieChangeObserver::~CookieChangeObserver):

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::cookieStorage const):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::~NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::deleteCookie):
(WebCore::nsCookiesToCookieVector):
(WebCore::NetworkStorageSession::nsCookieStorage const):
(WebCore::createPrivateStorageSession):
(WebCore::NetworkStorageSession::httpCookies const):
(WebCore::NetworkStorageSession::deleteHTTPCookie const):
(WebCore::NetworkStorageSession::setHTTPCookiesForURL const):
(WebCore::NetworkStorageSession::httpCookiesForURL const):
(WebCore::filterCookies):
(WebCore::NetworkStorageSession::cookiesForURL const):
(WebCore::NetworkStorageSession::cookiesForSession const):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::startListeningForCookieChangeNotifications):
(WebCore::NetworkStorageSession::stopListeningForCookieChangeNotifications):
(WebCore::NetworkStorageSession::domCookiesForHost):
(WebCore::NetworkStorageSession::supportsCookieChangeListenerAPI const):

Source/WebCore/PAL:

Add new CFNetwork SPI to CFNetworkSPI.h for open source builds and for using respondsToSelector.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

See WebCore ChangeLog.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::domCookiesForHost):
(WebKit::NetworkConnectionToWebProcess::unsubscribeFromCookieChangeNotifications):
(WebKit::NetworkConnectionToWebProcess::cookiesAdded):
(WebKit::NetworkConnectionToWebProcess::cookiesDeleted):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • Scripts/webkit/messages.py:
  • Shared/WebPreferences.yaml:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::cookiesAdded):
(WebKit::NetworkProcessConnection::cookiesDeleted):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/WebPage/Cocoa/WebCookieCacheCocoa.mm: Copied from Source/WebKit/WebProcess/WebPage/WebCookieJar.h.

(WebKit::WebCookieCache::inMemoryStorageSession):

  • WebProcess/WebPage/WebCookieCache.cpp: Added.

(WebKit::WebCookieCache::isFunctional):
(WebKit::WebCookieCache::cookiesForDOM):
(WebKit::WebCookieCache::setCookiesFromDOM):
(WebKit::WebCookieCache::cookiesAdded):
(WebKit::WebCookieCache::cookiesDeleted):
(WebKit::WebCookieCache::clear):
(WebKit::WebCookieCache::clearForHost):
(WebKit::WebCookieCache::pruneCacheIfNecessary):

  • WebProcess/WebPage/WebCookieCache.h: Copied from Source/WebKit/WebProcess/WebPage/WebCookieJar.h.
  • WebProcess/WebPage/WebCookieJar.cpp:

(WebKit::WebCookieJar::isEligibleForCache const):
(WebKit::WebCookieJar::cookies const):
(WebKit::WebCookieJar::setCookies):
(WebKit::WebCookieJar::cookiesAdded):
(WebKit::WebCookieJar::cookiesDeleted):
(WebKit::WebCookieJar::clearCache):
(WebKit::WebCookieJar::clearCacheForHost):

  • WebProcess/WebPage/WebCookieJar.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::cookieJar):

Source/WTF:

Add build time flags for new feature.

  • wtf/PlatformEnable.h:
  • wtf/PlatformHave.h:

LayoutTests:

Add layout test coverage.

  • http/tests/cookies/document-cookie-after-showModalDialog-expected.txt: Added.
  • http/tests/cookies/document-cookie-after-showModalDialog.html: Added.
  • http/tests/cookies/document-cookie-during-iframe-parsing-expected.txt: Added.
  • http/tests/cookies/document-cookie-during-iframe-parsing.html: Added.
  • http/tests/cookies/resources/close-modal-dialog.html: Added.
  • http/tests/cookies/resources/document-cookie-during-iframe-parsing-iframe.html: Added.
  • http/tests/cookies/resources/set-cookie-and-serve.php: Added.
10:10 PM Changeset in webkit [256819] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256584. rdar://problem/59449390

MediaToolbox may not be available; check before calling MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207733
<rdar://problem/59441647>

Reviewed by Maciej Stachowiak.

  • platform/mac/PlatformScreenMac.mm: (WebCore::setShouldOverrideScreenSupportsHighDynamicRange):

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

10:10 PM Changeset in webkit [256818] by Alan Coon
  • 11 edits in branches/safari-609-branch/Source

Cherry-pick r255881. rdar://problem/59447271

Adopt MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207275
<rdar://problem/58837093>

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm: (WebCore::setShouldOverrideScreenSupportsHighDynamicRange):

Source/WebCore/PAL:

  • pal/cocoa/MediaToolboxSoftLink.cpp:
  • pal/cocoa/MediaToolboxSoftLink.h:

Source/WebKit:

The WebProcess sandbox can block access to the services necessary for MediaToolbox to determine whether
the current display is capable of displaying HDR. Rather than opening up the sandbox, provide the information
gathered by the UIProcess by way of MTOverrideShouldPlayHDRVideo().

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::windowScreenDidChange): (WebKit::WebPage::displayID const):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::setScreenProperties): Deleted.
  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::setScreenProperties): (WebKit::WebProcess::updatePageScreenProperties):

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

10:10 PM Changeset in webkit [256817] by Alan Coon
  • 26 edits in branches/safari-609-branch

Cherry-pick r256632. rdar://problem/59478906

NetworkLoadMetrics should be shared by multiple ResourceResponse instances
https://bugs.webkit.org/show_bug.cgi?id=207747

Reviewed by Keith Miller.

Source/WebCore:

ResourceResponse is value data, and it is copied multiple times in various places, (1) to create a new ResourceResponse
which has slightly different fields, or (1) to hold ResourceResponse even after loading finishes. For example, DocumentLoader
has Vector<ResourceResponse> to replay response dispatching in the case of loading from BackForwardCache. The problem is
that ResourceResponse is very large: 440 bytes.

While we sometimes copy ResourceResponse to modify some part of it, NetworkLoadMetrics is immutable. It is set when response is created,
and is never changed. And NetworkLoadMetrics is large: sizeof(NetworkLoadMetrics) is 184 bytes. Given that we have multiple
copies of ResourceResponse in WebCore, we should share NetworkLoadMetrics by them.

This patch puts Box<NetworkLoadMetrics> in ResourceResponse to share it with all copied ResourceResponses. We do not make NetworkLoadMetrics
RefCounted<> for now since some legit data structures embed NetworkLoadMetrics. This patch adds ArgumentCoder for Box so that we
can encode / decode Box<NetworkLoadMetrics> in ResourceResponse in IPC. To ensure NetworkLoadMetrics in ResourceResponse immutable,
we add ResourceResponse::setDeprecatedNetworkLoadMetrics instead of modifying NetworkLoadMetrics already created in ResourceResponse.

We also attempt to compact ResourceResponse more by using bit-fields. And removing m_isValid field in ParsedContentRange since
this can be represented by the different field. These changes make sizeof(ResourceResponse) from 440 to 248.

No behavior change.

  • inspector/agents/InspectorNetworkAgent.cpp: (WebCore::InspectorNetworkAgent::buildObjectForTiming): (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
  • inspector/agents/InspectorNetworkAgent.h:
  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::loadRequest):
  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didFinishLoading):
  • page/PerformanceTiming.cpp: (WebCore::PerformanceTiming::domainLookupStart const): (WebCore::PerformanceTiming::domainLookupEnd const): (WebCore::PerformanceTiming::connectStart const): (WebCore::PerformanceTiming::connectEnd const): (WebCore::PerformanceTiming::secureConnectionStart const): (WebCore::PerformanceTiming::requestStart const): (WebCore::PerformanceTiming::responseStart const):
  • platform/network/NetworkLoadMetrics.h:
  • platform/network/ParsedContentRange.cpp: (WebCore::areContentRangeValuesValid): (WebCore::parseContentRange): (WebCore::ParsedContentRange::ParsedContentRange): (WebCore::ParsedContentRange::headerValue const):
  • platform/network/ParsedContentRange.h: (WebCore::ParsedContentRange::isValid const): (WebCore::ParsedContentRange::invalidValue): (WebCore::ParsedContentRange::MarkableTraits::isEmptyValue): (WebCore::ParsedContentRange::MarkableTraits::emptyValue): (WebCore::ParsedContentRange::ParsedContentRange): Deleted.
  • platform/network/ResourceHandle.h:
  • platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::ResourceResponseBase): (WebCore::ResourceResponseBase::crossThreadData const): (WebCore::ResourceResponseBase::fromCrossThreadData): (WebCore::ResourceResponseBase::compare):
  • platform/network/ResourceResponseBase.h: (WebCore::ResourceResponseBase::deprecatedNetworkLoadMetricsOrNull const): (WebCore::ResourceResponseBase::setDeprecatedNetworkLoadMetrics): (WebCore::ResourceResponseBase::encode const): (WebCore::ResourceResponseBase::decode): (WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics const): Deleted.
  • platform/network/cf/ResourceResponse.h: (WebCore::ResourceResponse::ResourceResponse):
  • platform/network/cocoa/NetworkLoadMetrics.mm: (WebCore::copyTimingData):
  • platform/network/curl/CurlResourceHandleDelegate.cpp: (WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):
  • platform/network/curl/ResourceResponse.h:
  • platform/network/curl/ResourceResponseCurl.cpp: (WebCore::ResourceResponse::setDeprecatedNetworkLoadMetrics): Deleted.
  • platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::getConnectionTimingData):
  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):

Source/WebKit:

Add ArgumentCoder support for Box<T>.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
  • NetworkProcess/soup/NetworkDataTaskSoup.cpp: (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
  • Platform/IPC/ArgumentCoders.h: (IPC::ArgumentCoder<Box<T>>::encode): (IPC::ArgumentCoder<Box<T>>::decode):

Tools:

  • TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp: (TestWebKitAPI::TEST):

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

10:09 PM Changeset in webkit [256816] by Alan Coon
  • 2 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r256435. rdar://problem/59446986

REGRESSION: (256400) tiled-drawing/scrolling/fixed/fixed-during-rubberband.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207631

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

10:09 PM Changeset in webkit [256815] by Alan Coon
  • 15 edits in branches/safari-609-branch/Source/JavaScriptCore

Apply patch. rdar://problem/59446991

This is a custom patch Yusuke did for the JazzkonE branch which contains content from r255540, r255987, and r256015,
in addition to whatever he saw fit for integration.

10:09 PM Changeset in webkit [256814] by Alan Coon
  • 17 edits
    2 copies in branches/safari-609-branch/Source/WebCore

Cherry-pick r256610. rdar://problem/59478918

[Web Animations] Make all animation event types inherit from the same base class
https://bugs.webkit.org/show_bug.cgi?id=207629

Reviewed by Simon Fraser.

Currently we dispatch events CSS Transitions and CSS Animations events using a dedicated event queue on DeclarativeAnimation, while the events
added by the Web Animations specification (of type AnimationPlaybackEvent) are dispatched using a shared queue on the DocumentTimeline that is
processed during the "update animations and send events procedure". The Web Animations specification dictates that all events should be dispatched
during that procedure, which includes sorting of such events based on their timeline time and associated animation relative composite order.

In this patch, we prepare the work towards spec compliance for animation events dispatch by making all event types (AnimationPlaybackEvent,
TransitionEvent and AnimationEvent) inherit from a single AnimationEventBase interface. This will allow DocumentTimeline to enqueue, sort and
dispatch all such events with a single queue in a future patch.

Due to CSSAnimationController, we must make the "timeline time" and "animation" parameters optional. When we drop support for CSSAnimationController
we'll be able to enforce stronger requirements for these.

No new test since this should not introduce any behavior change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationEventBase.cpp: Added. (WebCore::AnimationEventBase::AnimationEventBase):
  • animation/AnimationEventBase.h: Added. (WebCore::AnimationEventBase::create): (WebCore::AnimationEventBase::isAnimationPlaybackEvent const): (WebCore::AnimationEventBase::isAnimationEvent const): (WebCore::AnimationEventBase::isTransitionEvent const): (WebCore::AnimationEventBase::timelineTime const): (WebCore::AnimationEventBase::animation const):
  • animation/AnimationPlaybackEvent.cpp: (WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent): (WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):
  • animation/AnimationPlaybackEvent.h:
  • animation/CSSAnimation.cpp: (WebCore::CSSAnimation::createEvent):
  • animation/CSSAnimation.h:
  • animation/CSSTransition.cpp: (WebCore::CSSTransition::createEvent):
  • animation/CSSTransition.h:
  • animation/DeclarativeAnimation.cpp: (WebCore::DeclarativeAnimation::enqueueDOMEvent):
  • animation/DeclarativeAnimation.h:
  • animation/WebAnimation.cpp: (WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
  • dom/AnimationEvent.cpp: (WebCore::AnimationEvent::AnimationEvent):
  • dom/AnimationEvent.h:
  • dom/TransitionEvent.cpp: (WebCore::TransitionEvent::TransitionEvent):
  • dom/TransitionEvent.h:
  • page/animation/CSSAnimationController.cpp: (WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):

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

10:09 PM Changeset in webkit [256813] by Alan Coon
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256513. rdar://problem/59446986

REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.

Test: fast/scrolling/programmatic-scroll-to-zero-zero.html

  • page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::setRequestedScrollData):

LayoutTests:

Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.

  • fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
  • fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
  • platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.

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

10:09 PM Changeset in webkit [256812] by Alan Coon
  • 4 edits in branches/safari-609-branch

Cherry-pick r256432. rdar://problem/59446974

WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537

Reviewed by Chris Dumez.

Source/WebKit:

Covered by added API test.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

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

10:09 PM Changeset in webkit [256811] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256400. rdar://problem/59446986

Unreviewed, partial rollout of r255037.
<rdar://problem/59240559>

  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):

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

10:09 PM Changeset in webkit [256810] by Alan Coon
  • 4 edits in branches/safari-609-branch

Cherry-pick r256383. rdar://problem/59446974

Unreviewed, rolling out r256314.
https://bugs.webkit.org/show_bug.cgi?id=207594

It is breaking an API test (Requested by youenn on #webkit).

Reverted changeset:

"WebSWServerConnection::registerServiceWorkerClient is not
sending IPC message to UIProcess when it should"
https://bugs.webkit.org/show_bug.cgi?id=207537
https://trac.webkit.org/changeset/256314

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

10:09 PM Changeset in webkit [256809] by Alan Coon
  • 45 edits
    5 adds in branches/safari-609-branch

Cherry-pick r255037. rdar://problem/59446986

Fixed elements no longer stay fixed with elastic overscroll
https://bugs.webkit.org/show_bug.cgi?id=206227
rdar://problem/58707084

Reviewed by Antti Koivisto.
Source/WebCore:

Intended behavior on iOS and macOS is for position:fixed and sticky elements to maintain
their position relative to the view bounds when rubber-banding ("overscrolling"). This broke
some time back. This change restores the correct behavior with the call to layoutViewportRespectingRubberBanding()
in ScrollingTreeFixedNode::applyLayerPositions() and ScrollingTreeStickyNode::computeLayerPosition().
layoutViewportRespectingRubberBanding() computes a layout viewport without clamping.

The rest of the changes are to support testing. internals.unconstrainedScrollTo()
didn't work for main frame scrolling because of scroll position clamping in various places,
so propagate ScrollClamping in more places (and replace the redundant ScrollPositionClamp with ScrollClamping).

"requested scroll position" updates now carry along both clamping and "is programmatic" data, wrapped in a struct
which is passed around the scrolling tree. This allows us to not clamp the scroll position (for testing) in more places.

Internals::unconstrainedScrollTo() needs one weird hack to trigger a layout (and thus a scrolling tree commit),
because the layout is normally triggered by a layout viewport change, but when rubber-banding we clamp the layoutViewport
used for layout, so those layouts are never triggered.

Tests: tiled-drawing/scrolling/fixed/fixed-during-rubberband.html

tiled-drawing/scrolling/sticky/sticky-during-rubberband.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp: (WebCore::Element::scrollTo):
  • page/DOMWindow.cpp: (WebCore::DOMWindow::scrollTo const):
  • page/FrameView.cpp: (WebCore::FrameView::setScrollPosition): (WebCore::FrameView::requestScrollPositionUpdate):
  • page/FrameView.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.cpp:
  • page/scrolling/ScrollingCoordinator.h: (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
  • page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): (WebCore::ScrollingStateScrollingNode::setRequestedScrollData): (WebCore::ScrollingStateScrollingNode::dumpProperties const): (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition): Deleted.
  • page/scrolling/ScrollingStateScrollingNode.h: (WebCore::RequestedScrollData::operator== const): (WebCore::ScrollingStateScrollingNode::requestedScrollData const): (WebCore::ScrollingStateScrollingNode::requestedScrollPosition const): Deleted. (WebCore::ScrollingStateScrollingNode::requestedScrollPositionRepresentsProgrammaticScroll const): Deleted.
  • page/scrolling/ScrollingTree.h: (WebCore::ScrollingTree::scrollingTreeNodeRequestsScroll):
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp: (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const): (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportRespectingRubberBanding const):
  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren): (WebCore::ScrollingTreeScrollingNode::adjustedScrollPosition const): (WebCore::ScrollingTreeScrollingNode::scrollBy): (WebCore::ScrollingTreeScrollingNode::scrollTo): (WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):
  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren): (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustedScrollPosition const):
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm: (WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateAfterChildren): (WebCore::ScrollingTreeOverflowScrollingNodeMac::adjustedScrollPosition const):
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints):
  • platform/ScrollTypes.cpp: Added. (WebCore::operator<<):
  • platform/ScrollTypes.h:
  • platform/ScrollView.cpp: (WebCore::ScrollView::setContentsScrollPosition): (WebCore::ScrollView::setScrollPosition):
  • platform/ScrollView.h:
  • platform/ScrollableArea.cpp: (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
  • platform/ScrollableArea.h: (WebCore::ScrollableArea::requestScrollPositionUpdate):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset):
  • testing/Internals.cpp: (WebCore::Internals::unconstrainedScrollTo):

Source/WebKit:

Intended behavior on iOS and macOS is for position:fixed and sticky elements to maintain
their position relative to the view bounds when rubber-banding ("overscrolling"). This broke
some time back. This change restores the correct behavior with the call to layoutViewportRespectingRubberBanding()
in ScrollingTreeFixedNode::applyLayerPositions() and ScrollingTreeStickyNode::computeLayerPosition().
layoutViewportRespectingRubberBanding() computes a layout viewport without clamping.

The rest of the changes are to support testing. internals.unconstrainedScrollTo()
didn't work for main frame scrolling because of scroll position clamping in various places,
so propagate ScrollClamping in more places (and replace the redundant ScrollPositionClamp with ScrollClamping).

"requested scroll position" updates now carry along both clamping and "is programmatic" data, wrapped in a struct
which is passed around the scrolling tree. This allows us to not clamp the scroll position (for testing) in more places.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder<ScrollingStateScrollingNode>::encode): (ArgumentCoder<ScrollingStateScrollingNode>::decode): (ArgumentCoder<RequestedScrollData>::encode): (ArgumentCoder<RequestedScrollData>::decode): (WebKit::dump):
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: (WebKit::RemoteScrollingTree::scrollingTreeNodeRequestsScroll):
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm: (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren):
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

LayoutTests:

  • tiled-drawing/scrolling/fixed/fixed-during-rubberband-expected.html: Added.
  • tiled-drawing/scrolling/fixed/fixed-during-rubberband.html: Added.
  • tiled-drawing/scrolling/sticky/sticky-during-rubberband-expected.html: Added.
  • tiled-drawing/scrolling/sticky/sticky-during-rubberband.html: Added.

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

7:12 PM Changeset in webkit [256808] by Chris Dumez
  • 14 edits in trunk

Defer execution of async scripts until until the document is loaded
https://bugs.webkit.org/show_bug.cgi?id=207698
<rdar://problem/57625747>

LayoutTests/imported/w3c:

Reviewed by Antti Koivisto.

Rebaseline WPT test to reflect behavior change. Some tests start passing and some other are now failing because
they rely on specific ordering at network level.

  • web-platform-tests/content-security-policy/script-src/scripthash-changed-1-expected.txt:
  • web-platform-tests/content-security-policy/script-src/scripthash-changed-2-expected.txt:
  • web-platform-tests/content-security-policy/script-src/scriptnonce-changed-1-expected.txt:
  • web-platform-tests/content-security-policy/script-src/scriptnonce-changed-2-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_005-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/085-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-text-modifications-expected.txt:

Source/WebCore:

Reviewed Antti Koivisto.

Defer execution of async scripts until until the document is loaded by default to reduce time
to first paint.

  • dom/ScriptElement.h:
  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::timerFired):
Make sure we do not defer scripts that were not added by the parser and that do not have the
'async' attribute set.

  • page/Settings.yaml:

Source/WebKit:

Reviewed by Antti Koivisto.

Defer execution of async scripts until until the document is loaded by default to reduce time
to first paint.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

7:04 PM Changeset in webkit [256807] by zhifei_fang@apple.com
  • 4 edits in trunk/Tools

[Webkit.css] Adding popover style element
This help to prevent us reinventing the wheel ever again
https://bugs.webkit.org/show_bug.cgi?id=207787

Reviewed by Dean Jackson.

  • resultsdbpy/resultsdbpy/view/static/library/css/docs.yaml:
  • resultsdbpy/resultsdbpy/view/static/library/css/index.html:
  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(.popover):
(.popover>.content):
(.popover.display):
(.popover .arrow):
(.popover .arrow.point-top):
(.popover .arrow.point-bottom):
(.popover .arrow.point-left):
(.popover .arrow.point-right):
(@media (prefers-color-scheme: dark) .popover>.content):
(@media (prefers-color-scheme: dark) .popover.display):
(@media (prefers-color-scheme: dark) .popover .arrow):
(.popover>.content>.section): Deleted.
(.popover:focus>.content, .popover:hover>.content): Deleted.
(.popover.right>.content): Deleted.
(.popover.right :focus>.content, .popover.right:hover>.content): Deleted.
(.popover.left>.content): Deleted.
(.popover.left :focus>.content, .popover.left:hover>.content): Deleted.
(.popover.bottom>.content): Deleted.
(.popover.bottom :focus>.content, .popover.bottom:hover>.content): Deleted.

6:51 PM Changeset in webkit [256806] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
https://bugs.webkit.org/show_bug.cgi?id=207876

Reviewed by Wenson Hsieh.

  • wtf/PlatformHave.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
For symmetry's sake, introduce a HAVE for this gesture.

6:48 PM Changeset in webkit [256805] by youenn@apple.com
  • 4 edits in trunk/Source

Do not call whenReady callbacks in case of network process crash
https://bugs.webkit.org/show_bug.cgi?id=207661

Reviewed by Chris Dumez.

Source/WebCore:

  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::~WorkerSWClientConnection):
The callback is a Function so it is fine not calling it and calling it with a default value is not safe.

Source/WebKit:

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::clear):
The callback is a Function so it is fine not calling it and calling it with a default value is not safe.

6:31 PM Changeset in webkit [256804] by Peng Liu
  • 3 edits in trunk/Source/WebCore

MediaSource.isTypeSupported() says "video/mp4;codecs=\"avc3.42C015\"" is not supported, but it is
https://bugs.webkit.org/show_bug.cgi?id=207622

Reviewed by Eric Carlson.

Revert the behavior change of MediaPlayerPrivateMediaSourceAVFObjC::supportsType() in r253952.

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:

(WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):

6:24 PM Changeset in webkit [256803] by Alan Coon
  • 3 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r255384. rdar://problem/59447276

REGRESSION: (253807) [ macOS iOS ] storage/indexeddb/intversion-long-queue-private.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206965

Unreviewed test gardening.

Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-29

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

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

5:52 PM Changeset in webkit [256802] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Changed results due to ANGLE use
https://bugs.webkit.org/show_bug.cgi?id=207858

Unreviewed test gardening.

Mark fast/canvas/webgl/program-test.html and webgl/1.0.3/conformance/programs/program-test.html as failing.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
5:35 PM Changeset in webkit [256801] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

WebSocketChannelInspector.cpp should include ProgressTracker.h
https://bugs.webkit.org/show_bug.cgi?id=207862

Unreviewed, build fix.

  • Modules/websockets/WebSocketChannelInspector.cpp:
5:21 PM Changeset in webkit [256800] by Russell Epstein
  • 34 edits
    2 adds in branches/safari-609-branch/Source

Apply patch. rdar://problem/59447004

Apply content from rdar://problem/59447004

5:21 PM Changeset in webkit [256799] by Russell Epstein
  • 4 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r256235. rdar://problem/59447276

REGRESSION: (253807) [ macOS iOS ] storage/indexeddb/intversion-long-queue-private.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206965
<rdar://problem/59005652>

Reviewed by Ryosuke Niwa.

Modify a test to make it less flaky. Based on our current implementation, there is no guarantee that Block event on
delete request would be fired before Complete event on transaction from connection2 in this test. The events
sequence we are sure are:

  1. UpgradeNeeded event on openRequest2 -> VersionChange event on connection2 -> Complete event on VersionChange transaction on connection2 -> Success event on openRequest2.
  2. VersionChange event on connection2 -> Block event on delete request. Therefore I am changing the test to ensure sequence 1.
  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • storage/indexeddb/intversion-long-queue-expected.txt:
  • storage/indexeddb/intversion-long-queue-private-expected.txt:
  • storage/indexeddb/resources/intversion-long-queue.js: (connection2Blocked): (connection2UpgradeNeeded): (connection2VersionChangeCallback): (deleteDatabaseBlockedCallback): Deleted.

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

5:21 PM Changeset in webkit [256798] by Russell Epstein
  • 4 edits
    1 add in branches/safari-609-branch

Cherry-pick r256225. rdar://problem/59446983

[watchOS] Notification listener is never unregistered
https://bugs.webkit.org/show_bug.cgi?id=207459
Source/WebKit:

<rdar://problem/58923393>

Reviewed by Maciej Stachowiak.

On watchOS, the backlight changed notification is registered in WebProcessPool::registerNotificationObservers(),
but not unregistered in WebProcessPool::unregisterNotificationObservers().

API test: WebKit.BacklightLevelNotificationCrash

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::unregisterNotificationObservers):

Tools:

Reviewed by Maciej Stachowiak.

Add a test which tests that posting a backlight level change notification will not cause a crash.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/BacklightLevelNotification.mm: Added. (TEST):

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

5:21 PM Changeset in webkit [256797] by Russell Epstein
  • 2 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r256213. rdar://problem/59447008

[ Mac Debug wk2 ] imported/w3c/web-platform-tests/fetch/api/request/destination/fetch-destination-worker.https.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207509

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

5:21 PM Changeset in webkit [256796] by Russell Epstein
  • 29 edits
    4 copies
    6 adds in branches/safari-609-branch

Cherry-pick r256191. rdar://problem/59447003

Disallow setting base URL to a data or JavaScript URL
https://bugs.webkit.org/show_bug.cgi?id=207136

Source/WebCore:

Reviewed by Brent Fulgham.

Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.

Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
discussion in <https://github.com/whatwg/html/issues/2249>.

On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
avoid breaking shipped apps.

For all other ports, this restriction is enabled by default.

Tests: fast/url/relative2.html

fast/url/segments-from-data-url2.html
http/tests/security/allowed-base-url-data-url-via-setting.html
http/tests/security/denied-base-url-data-url.html
http/tests/security/denied-base-url-javascript-url.html

  • dom/Document.cpp: (WebCore::Document::processBaseElement): Condition updating the parsed base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise, do what we do now. If the scheme is disallowed then log a message to the console to explain this to web developers.
  • html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL to updatePredictedBaseURL(). This depends on whether the setting is enabled or not. (WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to whether to apply restrictions. If restrictions are not to be applied do what we do now. Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.
  • html/parser/HTMLPreloadScanner.h:
  • page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.
  • page/SecurityPolicy.h:
  • page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.

Source/WebKit:

Reviewed by Brent Fulgham.

Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKWebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WKWebView _setupPageConfiguration:]): Update settings.
  • UIProcess/Cocoa/VersionChecks.h:

Source/WebKitLegacy/mac:

Reviewed by Brent Fulgham.

Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.

  • Misc/WebKitVersionChecks.h:
  • WebView/WebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.

Source/WTF:

Reviewed by Brent Fulgham.

Add some more macro definitions.

  • wtf/spi/darwin/dyldSPI.h:

LayoutTests:

RReviewed by Brent Fulgham.

Add some tests. Update others to toggle the setting to apply or unapply the new behavior.

The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.

  • fast/url/relative-expected.txt:
  • fast/url/relative.html:
  • fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
  • fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
  • fast/url/resources/utilities.js: (setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching. Otherwise, file URLs could be machine-specific. (canonicalizedPathname): Added. (segments): Modified to optionally call canonicalizedPathname. (canonicalize): Ditto.
  • fast/url/segments-from-data-url-expected.txt:
  • fast/url/segments-from-data-url.html:
  • fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
  • fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
  • fetch/fetch-url-serialization-expected.txt:
  • http/tests/plugins/navigation-during-load-embed.html:
  • http/tests/plugins/navigation-during-load.html:
  • http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
  • http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
  • http/tests/security/denied-base-url-data-url-expected.txt: Added.
  • http/tests/security/denied-base-url-data-url.html: Added.
  • http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
  • http/tests/security/denied-base-url-javascript-url.html: Added.

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

5:21 PM Changeset in webkit [256795] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256426. rdar://problem/59447008

[ Mac Debug wk2 ] ASSERTION FAILED: m_wasConstructedOnMainThread == isMainThread()
https://bugs.webkit.org/show_bug.cgi?id=207509
<rdar://problem/59325466>

Reviewed by Chris Dumez.

Covered by existing tests.

  • NetworkProcess/cache/CacheStorageEngine.cpp: (WebKit::CacheStorage::Engine::writeSizeFile): Make sure completion handler is always called on the main thread. Minor refactoring to make things more efficient.

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

5:21 PM Changeset in webkit [256794] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256314. rdar://problem/59446974

WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537

Reviewed by Chris Dumez.

Source/WebKit:

Covered by added API test.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

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

5:21 PM Changeset in webkit [256793] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/JavaScriptCore/runtime/OptionsList.h

Apply patch. rdar://problem/59447266

5:19 PM Changeset in webkit [256792] by achristensen@apple.com
  • 4 edits in trunk/Source

Ephemeral session data leaks between processes
https://bugs.webkit.org/show_bug.cgi?id=207404

Patch by Alex Christensen <achristensen@webkit.org> and Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-17
Reviewed by Darin Adler.

Source/WebKit:

If two processes with the same bundle identifier create an ephemeral WKWebsiteDataStore, we were calling
_CFURLStorageSessionCreate with the same string, which caused our cookies to be shared. To prevent this,
add a UUID to the identifier to make them truly unique.

We don't have test infrastructure for multiple UI processes at the same time, but I manually verified
that this fixes the bug.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::ensureSession):

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::ensureSession):

5:07 PM Changeset in webkit [256791] by mark.lam@apple.com
  • 62 edits in trunk/Source

getVTablePointer() should return a const void*.
https://bugs.webkit.org/show_bug.cgi?id=207871
<rdar://problem/59525721>

Reviewed by Yusuke Suzuki.

Source/WebCore:

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

Source/WTF:

  • wtf/PointerPreparations.h:

(WTF::getVTablePointer):

4:50 PM Changeset in webkit [256790] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Data detectors do not trigger on macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=207860
<rdar://problem/59038913>

Reviewed by Tim Horton.

The lookup gesture which run data detection needs touch information to function. Allow touches to be sent to the gesture.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):

4:43 PM Changeset in webkit [256789] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

macCatalyst: I-beam is still too aggressive in non-editable content, shows up beyond the end of text
https://bugs.webkit.org/show_bug.cgi?id=207867
<rdar://problem/59528927>

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::populateCaretContext):
Only expand the I-beam region to the end of the line in editable text.
This better matches the macOS behavior.

4:26 PM Changeset in webkit [256788] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Add "outline focused element" debug setting
https://bugs.webkit.org/show_bug.cgi?id=207819
<rdar://problem/59489993>

Reviewed by Timothy Hatcher.

When debugging accessibility issues of Web Inspector, it's helpful
to know what element is focused. Many elements have outline: none
and no clear indication of what's focused.

Add a debug setting to display a bright purple outline for all focused
elements.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/Main.css:

(body.focus-debug *:focus):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createDebugSettingsView):

3:45 PM Changeset in webkit [256787] by youenn@apple.com
  • 7 edits in trunk/Source/WebKit

Fix regression in NSURLSessionWebSocketTask WSS support
https://bugs.webkit.org/show_bug.cgi?id=207855

Reviewed by Alex Christensen.

Covered by http/tests/websocket/tests/hybi/simple-wss.html passing with NSURLSessionWebSocketTask code path.
When having an authentication challenge, we need to get the session from the task.
This was not working for websocket tasks.
Fix this by retrieving the session from the web socket data task, which is retrieved from the task identifier.

  • NetworkProcess/Downloads/DownloadID.h:

(WebKit::DownloadID::operator bool const):
Add operator bool for convenience.

  • NetworkProcess/NetworkSocketChannel.cpp:

(WebKit::NetworkSocketChannel::session):

  • NetworkProcess/NetworkSocketChannel.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate sessionFromTask:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

  • NetworkProcess/cocoa/WebSocketTaskCocoa.h:
  • NetworkProcess/cocoa/WebSocketTaskCocoa.mm:

(WebKit::WebSocketTask::networkSession):

3:21 PM Changeset in webkit [256786] by commit-queue@webkit.org
  • 28 edits
    8 copies
    67 adds
    1 delete 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 2020-02-17
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Set correct test option and import lazyload WPT tests into
semantics/embedded-content/the-img-element while removing
loading/lazyload directory.

  • resources/import-expectations.json:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/below-viewport-image-loading-lazy-load-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/below-viewport-image-loading-lazy-load-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/common.js: Added.

(ElementLoadPromise):
(ElementLoadPromise.prototype.element):
(is_image_fully_loaded):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/disconnected-image-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/disconnected-image-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-eager-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/iframe-loading-eager.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-eager.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/iframe-loading-eager.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-lazy.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/iframe-loading-lazy.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-eager-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/image-loading-eager.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-eager.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/image-loading-eager.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-below-viewport-dynamic-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-below-viewport-dynamic.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-002.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-002.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-script-disabled-iframe-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-script-disabled-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-viewport-dynamic-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-viewport-dynamic.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-load-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-load-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-into-script-disabled-iframe-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-into-script-disabled-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-multicol-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-multicol.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/image-loading-lazy.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invisible-image-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invisible-image.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/move-element-and-scroll-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/move-element-and-scroll.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-below-viewport-image-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-below-viewport-image-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-image-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-image-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-iframe-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/picture-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/picture-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/remove-element-and-scroll-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/remove-element-and-scroll.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-below-viewport-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-in-viewport-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/image.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/resources/image.png.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/newwindow.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/referrer-checker-img.py: Added.

(main):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/subframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/resources/subframe.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/loading/lazyload/resources/w3c-import.log: Removed.
  • web-platform-tests/loading/lazyload/w3c-import.log: Removed.

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
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 they will not be deferred [2].

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://html.spec.whatwg.org/#attr-img-loading
[2] https://html.spec.whatwg.org/#will-lazy-load-image-steps

Tests: http/tests/lazyload/attribute.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
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/below-viewport-image-loading-lazy-load-event.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/disconnected-image-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-eager.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-eager.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-below-viewport-dynamic.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-002.sub.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-script-disabled-iframe.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-viewport-dynamic.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-load-event.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-document.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-into-script-disabled-iframe.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-multicol.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/invisible-image.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/move-element-and-scroll.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-below-viewport-image-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-image-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-iframe.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/picture-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/remove-element-and-scroll.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::lazyLoadImageObserver):

  • dom/Document.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::create):
(WebCore::HTMLImageElement::hasLazyLoadableAttributeValue):
(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:

(WebCore::HTMLImageElement::createdByParser const): Deleted.

  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::didMoveToNewDocument):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::didMoveToNewDocument):

  • html/HTMLTagNames.in:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::didMoveToNewDocument):

  • html/LazyLoadImageObserver.cpp: Added.

(WebCore::LazyLoadImageObserver::observe):
(WebCore::LazyLoadImageObserver::unobserve):
(WebCore::LazyLoadImageObserver::intersectionObserver):
(WebCore::LazyLoadImageObserver::isObserved const):

  • html/LazyLoadImageObserver.h: Added.

(WebCore::LazyLoadImageObserver::create):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::elementDidMoveToNewDocument):
(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):

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::didMoveToNewDocument):

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/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/placeholder.js: Added.

(is_image_fully_loaded):

  • http/tests/lazyload/resources/lazy-load-in-iframe.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
3:19 PM Changeset in webkit [256785] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/do-while-loop-continue.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207864

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:10 PM Changeset in webkit [256784] by dino@apple.com
  • 25 edits
    1 delete in trunk

[WebGL] Enable ANGLE by default for Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=205483
rdar://56925821

Reviewed by Simon Fraser.

Source/WTF:

  • wtf/Platform.h:

LayoutTests:

Rebaseline a bunch of tests and mark expectations.

  • fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt:
  • fast/canvas/webgl/draw-elements-out-of-bounds-uint-index-expected.txt:
  • fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt:
  • fast/canvas/webgl/readPixels-float-expected.txt:
  • fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies-expected.txt:
  • fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html:
  • fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt:
  • fast/canvas/webgl/webgl-drawarrays-crash-2-expected.txt:
  • fast/canvas/webgl/webgl-drawarrays-crash-expected.txt:
  • fast/canvas/webgl/webgl2-texture-upload-enums-expected.txt:
  • platform/ios-device/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/webgl/1.0.3/conformance/extensions/oes-texture-float-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • webgl/1.0.3/conformance/context/context-lost-restored-expected.txt:
  • webgl/1.0.3/conformance/extensions/oes-texture-float-expected.txt:
  • webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt:
  • webgl/1.0.3/conformance/glsl/misc/shader-struct-scope-expected.txt:
  • webgl/1.0.3/conformance/glsl/misc/shaders-with-invariance-expected.txt:
  • webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt:
  • webgl/1.0.3/conformance/misc/webgl-specific-expected.txt:
  • webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt:
  • webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt:
3:05 PM Changeset in webkit [256783] by Alan Coon
  • 1 copy in tags/Safari-609.1.19.1

Tag Safari-609.1.19.1.

3:02 PM Changeset in webkit [256782] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=148405

RUnreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:02 PM Changeset in webkit [256781] by Alan Coon
  • 1 copy in branches/safari-610.1.4-branch

New branch.

3:00 PM Changeset in webkit [256780] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Allow suffixes on com.apple.WebKit.WebContent XPC service name
https://bugs.webkit.org/show_bug.cgi?id=207856
<rdar://problem/59455881>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-17
Reviewed by Chris Dumez.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):

2:58 PM Changeset in webkit [256779] by ysuzuki@apple.com
  • 9 edits
    1 add in trunk

[JSC] JITThunk should be HashSet<Weak<NativeExecutable>> with appropriate GC weakness handling
https://bugs.webkit.org/show_bug.cgi?id=207715

Reviewed by Darin Adler.

JSTests:

  • stress/stress-jitthunks.js: Added.

(let.set newGlobal):
(set catch):

Source/JavaScriptCore:

This patch refines JITThunks GC-aware Weak hash map for NativeExecutable. Previously, we have
HashMap<std::tuple<TaggedNativeFunction, TaggedNativeFunction, String>, Weak<NativeExecutable>> table.
But this is not good because the first tuple's information is already in NativeExecutable.
But we were using this design since Weak<NativeExecutable> can be nullified because of Weak<>. If this
happens, we could have invalid Entry in HashMap which does not have corresponding values. This will
cause crash when rehasing requires hash code for this entry.

But this HashMap is very bad in terms of memory usage. Each entry has 32 bytes, and this table gets enough
large. We identified that this table is consuming much memory in Membuster. So it is worth designing
carefully crafted data structure which only holds Weak<NativeExecutable> by leveraging the deep interaction
with our GC implementation.

This patch implements new design of JITThunks, which uses HashSet<Weak<NativeExecutable>> and carefully crafted
HashTraits / KeyTraits to handle Weak<> well.

  1. Each Weak should have finalizer, and this finalizer should remove dead Weak<NativeExecutable> from HashSet.

This is ensuring that all the keys in HashSet is, even if Weak<> is saying it is Dead, it still has an way
to access content of NativeExecutable if the content is not a JS objects. For example, we can get function
pointer from dead Weak<NativeExecutable> if it is not yet finalized. Since we remove all finalized Weak<>
from the table, this finalizer mechanism allows us to access function pointers etc. from Weak<NativeExecutable>
so long as it is held in this table.

  1. Getting NativeExecutable* from JITThunks should have special protocol.

When getting NativeExecutable* from JITThunks, we do the following,

  1. First, we check we have an Entry in JITThunks. If it does not exist, we should insert it anyway.

1.1. If it exists, we should check whether this Weak<NativeExecutable> is dead or not. It is possible that

dead one is still in the table because "dead" does not mean that it is "finalized". Until finalizing happens (and
it can be delayed by incremental-sweeper), Weak<NativeExecutable> can be dead but still accessible. So the table
is still holding dead one. If we get dead one, we should insert a new one.

1.2. If it is not dead, we return it.

  1. Second, we create a new NativeExecutable and insert it. In that case, it is possible that the table already has Weak<NativeExecutable>, but it is dead. In that case, we need to explicitly replace it with newly created one since old one is holding old content. If we replaced, finalizer of Weak<> will not be invoked since it immediately deallocates Weak<>. So, it does not happen that this newly inserted NativeExecutable* is removed by the finalizer registered by the old Weak<>.

This change makes memory usage of JITThunks table 1/4.

  • heap/Weak.cpp:

(JSC::weakClearSlowCase):

  • heap/Weak.h:

(JSC::Weak::Weak):
(JSC::Weak::isHashTableEmptyValue const):
(JSC::Weak::unsafeImpl const):
(WTF::HashTraits<JSC::Weak<T>>::isEmptyValue):

  • heap/WeakInlines.h:

(JSC::Weak<T>::Weak):

  • jit/JITThunks.cpp:

(JSC::JITThunks::JITThunks):
(JSC::JITThunks::WeakNativeExecutableHash::hash):
(JSC::JITThunks::WeakNativeExecutableHash::equal):
(JSC::JITThunks::HostKeySearcher::hash):
(JSC::JITThunks::HostKeySearcher::equal):
(JSC::JITThunks::NativeExecutableTranslator::hash):
(JSC::JITThunks::NativeExecutableTranslator::equal):
(JSC::JITThunks::NativeExecutableTranslator::translate):
(JSC::JITThunks::finalize):
(JSC::JITThunks::hostFunctionStub):
(JSC::JITThunks::clearHostFunctionStubs): Deleted.

  • jit/JITThunks.h:
  • runtime/NativeExecutable.h:
  • tools/JSDollarVM.cpp:

(JSC::functionGCSweepAsynchronously):
(JSC::functionCreateEmptyFunctionWithName):
(JSC::JSDollarVM::finishCreation):

2:56 PM Changeset in webkit [256778] by Alan Coon
  • 1 copy in tags/Safari-610.1.3.1

Tag Safari-610.1.3.1.

2:54 PM Changeset in webkit [256777] by Brent Fulgham
  • 5 edits
    1 add in trunk/Tools

Update WebKit Tools to issue mach extensions as needed
https://bugs.webkit.org/show_bug.cgi?id=207850
<rdar://problem/59521019>

Reviewed by Per Arne Vollan.

Revise the codesign settings for our testing tools to allow the process to vend mach extensions
to its child processes (WebContent, GPU, Network, etc.) as needed.

  • MiniBrowser/MiniBrowser.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements: Added.
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • WebKitTestRunner/Configurations/WebKitTestRunner.entitlements:
2:53 PM Changeset in webkit [256776] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207861

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:47 PM Changeset in webkit [256775] by Alan Coon
  • 8 edits in branches/safari-610.1.3-branch/Source

Versioning.

2:40 PM Changeset in webkit [256774] by Jon Davis
  • 29 edits
    9 adds in trunk/Source/WebInspectorUI

Update resource, type, and instrument icons for light, dark, and override colors
https://bugs.webkit.org/show_bug.cgi?id=207587

Reviewed by Timothy Hatcher.

  • UserInterface/Images/ApplicationCacheManifest.svg: Added.
  • UserInterface/Images/Beacon.svg:
  • UserInterface/Images/ClippingIcons.svg: Added.
  • UserInterface/Images/Cookie.svg: Added.
  • UserInterface/Images/Database.svg: Added.
  • UserInterface/Images/DocumentIcons.svg: Added.
  • UserInterface/Images/FolderGeneric.svg: Added.
  • UserInterface/Images/InstrumentIcons.svg: Added.
  • UserInterface/Images/Origin.svg:
  • UserInterface/Images/Stopwatch.svg:
  • UserInterface/Images/TableIcons.svg: Added.
  • UserInterface/Images/TypeIcons.svg: Added.
  • UserInterface/Views/AuditTreeElement.css:

(.audit.test-case .icon):
(.audit.test-group .icon):
(.audit.test-case-result .icon):
(.audit.test-group-result .icon):
(@media (prefers-color-scheme: dark) .audit.test-case .icon):
(@media (prefers-color-scheme: dark) .audit.test-group .icon):
(@media (prefers-color-scheme: dark) .audit.test-case-result .icon):
(@media (prefers-color-scheme: dark) .audit.test-group-result .icon):

  • UserInterface/Views/BreakpointTreeElement.css:

(.breakpoint-exception-icon .icon):
(.breakpoint-assertion-icon .icon):
(.breakpoint-microtask-icon .icon):
(.breakpoint-paused-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-exception-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-assertion-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-microtask-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-paused-icon .icon):

  • UserInterface/Views/CallFrameIcons.css:

(.program-icon .icon):
(.function-icon .icon):
(.event-listener-icon .icon):
(.native-icon .icon):
(.tail-deleted .icon):
(@media (prefers-color-scheme: dark) .program-icon .icon):
(@media (prefers-color-scheme: dark) .function-icon .icon):
(@media (prefers-color-scheme: dark) .event-listener-icon .icon):
(@media (prefers-color-scheme: dark) .native-icon .icon):
(@media (prefers-color-scheme: dark) .tail-deleted .icon):

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .icon):
(@media (prefers-color-scheme: dark) .sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .icon):

  • UserInterface/Views/DOMBreakpointTreeElement.css:

(.breakpoint.dom.breakpoint-for-subtree-modified:not(.breakpoint-paused-icon) .icon):
(.breakpoint.dom.breakpoint-for-attribute-modified:not(.breakpoint-paused-icon) .icon):
(.breakpoint.dom.breakpoint-for-node-removed:not(.breakpoint-paused-icon) .icon):
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-subtree-modified:not(.breakpoint-paused-icon) .icon):
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-attribute-modified:not(.breakpoint-paused-icon) .icon):
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-node-removed:not(.breakpoint-paused-icon) .icon):

  • UserInterface/Views/DOMNodeTreeElement.css:

(.tree-outline .item.dom-node .icon):
(@media (prefers-color-scheme: dark) .tree-outline .item.dom-node .icon):

  • UserInterface/Views/FolderIcon.css:

(.folder-icon .icon):
(.tree-outline:focus .folder-icon.selected .icon):
(.origin-icon .icon):
(.tree-outline:focus .origin-icon.selected .icon):
(@media (prefers-color-scheme: dark) .folder-icon .icon):
(@media (prefers-color-scheme: dark) .origin-icon .icon):

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:

(.timeline-overview-graph.heap-allocations > img.snapshot):
(@media (prefers-color-scheme: dark) .timeline-overview-graph.heap-allocations > img.snapshot):

  • UserInterface/Views/HeapAllocationsTimelineView.css:

(.timeline-view.heap-allocations > .data-grid td .icon.heap-snapshot):
(@media (prefers-color-scheme: dark) .timeline-view.heap-allocations > .data-grid td .icon.heap-snapshot):

  • UserInterface/Views/HeapSnapshotInstancesContentView.css:

(.heap-snapshot .icon):
(.heap-snapshot .icon.native):
(.heap-snapshot .icon.boolean):
(.heap-snapshot .icon.function):
(.heap-snapshot .icon.number):
(.heap-snapshot .icon.bigint):
(.heap-snapshot .icon.object):
(.heap-snapshot .icon.node):
(.heap-snapshot .icon.regex):
(.heap-snapshot .icon.string):
(.heap-snapshot .icon.symbol):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.native):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.boolean):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.function):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.number):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.bigint):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.object):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.node):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.regex):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.string):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.symbol):

  • UserInterface/Views/IdleTreeElement.css:

(.details-section.call-stack .idle .icon):
(@media (prefers-color-scheme: dark) .details-section.call-stack .idle .icon):

  • UserInterface/Views/LayerDetailsSidebarPanel.css:

(.panel.details.layer .name-column .icon):
(.panel.details.layer tr.reflection .name-column .icon):
(.panel.details.layer tr.pseudo-element .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer tr.reflection .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer tr.pseudo-element .name-column .icon):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.css:

(.panel.details.layer-tree .name-column .icon):
(.panel.details.layer-tree tr.reflection .name-column .icon):
(.panel.details.layer-tree tr.pseudo-element .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer-tree .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer-tree tr.reflection .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer-tree tr.pseudo-element .name-column .icon):

  • UserInterface/Views/NetworkTableContentView.css:

(.network-table > .table li:not(.selected) .cell:not(.current-session)):
(.network-table > .table .cell.dom-node.name .icon):
(@media (prefers-color-scheme: dark) .breakpoint-assertion-icon .icon):
(@media (prefers-color-scheme: dark) .network-table > .table .cell.dom-node.name .icon):
(.network-table .cell.dom-node.name .icon): Deleted.

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property.boolean > .icon):
(.object-tree-property.function > .icon):
(.object-tree-property.number > .icon):
(.object-tree-property.bigint > .icon):
(.object-tree-property.object > .icon):
(.object-tree-property.object.null > .icon):
(.object-tree-property.object.node > .icon):
(.object-tree-property.regex > .icon):
(.object-tree-property.string > .icon):
(.object-tree-property.symbol > .icon):
(.object-tree-property.accessor > .icon,):
(.object-tree-property.had-error > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.boolean > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.function > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.number > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.bigint > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object.null > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object.node > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.regex > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.string > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.symbol > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.accessor > .icon,):
(@media (prefers-color-scheme: dark) .object-tree-property.had-error > .icon):

  • UserInterface/Views/PathComponentIcons.css:

(.request-icon .icon):
(.response-icon .icon):
(.heap-snapshot-summary-icon .icon):
(.heap-snapshot-instances-icon .icon):
(.heap-snapshot-object-graph-icon .icon):
(.dom-element-icon .icon):
(.dom-pseudo-element-icon .icon):
(.dom-text-node-icon .icon):
(.dom-comment-icon .icon):
(.dom-document-type-icon .icon):
(.dom-document-icon .icon):
(.dom-character-data-icon .icon):
(.dom-node-icon .icon):
(.object-icon .icon):
(.function-icon .icon):
(.native-icon .icon):
(.program-icon .icon):
(.events-icon .icon):
(.call-trees-icon .icon):
(.snapshot-list-icon .icon):
(.snapshot-diff-icon .icon):
(.image-icon .icon):
(.source-icon .icon):
(@media (prefers-color-scheme: dark) .request-icon .icon):
(@media (prefers-color-scheme: dark) .response-icon .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot-summary-icon .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot-instances-icon .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot-object-graph-icon .icon):
(@media (prefers-color-scheme: dark) .dom-element-icon .icon):
(@media (prefers-color-scheme: dark) .dom-pseudo-element-icon .icon):
(@media (prefers-color-scheme: dark) .dom-text-node-icon .icon):
(@media (prefers-color-scheme: dark) .dom-comment-icon .icon):
(@media (prefers-color-scheme: dark) .dom-document-type-icon .icon):
(@media (prefers-color-scheme: dark) .dom-document-icon .icon):
(@media (prefers-color-scheme: dark) .dom-character-data-icon .icon):
(@media (prefers-color-scheme: dark) .dom-node-icon .icon):
(@media (prefers-color-scheme: dark) .object-icon .icon):
(@media (prefers-color-scheme: dark) .function-icon .icon):
(@media (prefers-color-scheme: dark) .native-icon .icon):
(@media (prefers-color-scheme: dark) .program-icon .icon):
(@media (prefers-color-scheme: dark) .events-icon .icon):
(@media (prefers-color-scheme: dark) .call-trees-icon .icon):
(@media (prefers-color-scheme: dark) .snapshot-list-icon .icon):
(@media (prefers-color-scheme: dark) .snapshot-diff-icon .icon):
(@media (prefers-color-scheme: dark) .source-icon .icon):

  • UserInterface/Views/ProfileView.css:

(.profile > .data-grid td .icon.function-icon):
(.profile > .data-grid td .icon.native-icon):
(.profile > .data-grid td .icon.program-icon):
(@media (prefers-color-scheme: dark) .profile > .data-grid td .icon.function-icon):
(@media (prefers-color-scheme: dark) .profile > .data-grid td .icon.native-icon):
(@media (prefers-color-scheme: dark) .profile > .data-grid td .icon.program-icon):

  • UserInterface/Views/ResourceIcons.css:

(.resource-icon .icon):
(.resource-icon.override .icon):
(.resource-icon.resource-type-document .icon):
(.resource-icon.resource-type-document.override .icon):
(.resource-icon.resource-type-image .icon):
(.resource-icon.resource-type-image.override .icon):
(.resource-icon.resource-type-font .icon):
(.resource-icon.resource-type-font.override .icon):
(:matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon):
(:matches(.resource-icon.resource-type-style-sheet.override, .style-sheet-icon.override) .icon):
(.resource-icon.resource-type-script .icon):
(.resource-icon.resource-type-script.override .icon):
(.anonymous-script-icon .icon):
(.source-map-resource.resource-icon .icon):
(.source-map-resource.resource-icon.resource-type-style-sheet .icon):
(.source-map-resource.resource-icon.resource-type-script .icon):
(.script.worker-icon .icon):
(.script.worker-icon.override .icon):
(.resource-icon.resource-type-websocket .icon):
(.resource-icon.resource-type-ping .icon,):
(.resource-icon.resource-type-range .icon):
(@media (prefers-color-scheme: dark) .resource-icon .icon):
(@media (prefers-color-scheme: dark) .resource-icon.override .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-document .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-document.override .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-image .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-image.override .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-font .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-font.override .icon):
(@media (prefers-color-scheme: dark) :matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon):
(@media (prefers-color-scheme: dark) :matches(.resource-icon.resource-type-style-sheet.override, .style-sheet-icon.override) .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-script .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-script.override .icon):
(@media (prefers-color-scheme: dark) .anonymous-script-icon .icon):
(@media (prefers-color-scheme: dark) .source-map-resource.resource-icon .icon):
(@media (prefers-color-scheme: dark) .source-map-resource.resource-icon.resource-type-style-sheet .icon):
(@media (prefers-color-scheme: dark) .source-map-resource.resource-icon.resource-type-script .icon):
(@media (prefers-color-scheme: dark) .script.worker-icon .icon):
(@media (prefers-color-scheme: dark) .script.worker-icon.override .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-websocket .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-ping .icon,):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-range .icon):
(.large .resource-icon .icon): Deleted.
(.large .resource-icon.resource-type-document .icon): Deleted.
(.large .resource-icon.resource-type-image .icon): Deleted.
(.large .resource-icon.resource-type-font .icon): Deleted.
(.large :matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon): Deleted.
(.large .resource-icon.resource-type-script .icon): Deleted.
(.large .anonymous-script-icon .icon): Deleted.
(.large .source-map-resource.resource-icon .icon): Deleted.
(.large .source-map-resource.resource-icon.resource-type-style-sheet .icon): Deleted.
(.large .source-map-resource.resource-icon.resource-type-script .icon): Deleted.
(.large .script.worker-icon .icon): Deleted.
(.large .resource-icon.resource-type-websocket .icon): Deleted.
(.large .resource-icon.resource-type-range .icon): Deleted.

  • UserInterface/Views/SearchIcons.css:

(.dom-match-element-icon .icon):
(.dom-match-text-node-icon .icon):
(.dom-match-comment-icon .icon):
(.dom-match-document-type-icon .icon):
(.dom-match-character-data-icon .icon):
(.dom-match-node-icon .icon):
(.source-code-match .icon):
(@media (prefers-color-scheme: dark) .dom-match-element-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-text-node-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-comment-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-document-type-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-character-data-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-node-icon .icon):
(@media (prefers-color-scheme: dark) .source-code-match .icon):

  • UserInterface/Views/StorageIcons.css:

(.application-cache-manifest .icon):
(.application-cache-frame .icon):
(.cookie-icon .icon):
(.local-storage-icon .icon):
(.session-storage-icon .icon):
(.database-icon .icon):
(.database-table-icon .icon):
(@media (prefers-color-scheme: dark) .application-cache-manifest .icon):
(@media (prefers-color-scheme: dark) .application-cache-frame .icon):
(@media (prefers-color-scheme: dark) .local-storage-icon .icon):
(@media (prefers-color-scheme: dark) .session-storage-icon .icon):
(@media (prefers-color-scheme: dark) .database-icon .icon):
(@media (prefers-color-scheme: dark) .database-table-icon .icon):

  • UserInterface/Views/StyleRuleIcons.css:

(.author-style-rule-icon .icon):
(.author-style-rule-icon.pseudo-selector .icon):
(.user-style-rule-icon .icon):
(.user-style-rule-icon.pseudo-selector .icon):
(.user-agent-style-rule-icon .icon):
(.user-agent-style-rule-icon.pseudo-selector .icon):
(.inspector-style-rule-icon .icon):
(.inspector-style-rule-icon.pseudo-selector .icon):
(.inherited-style-rule-icon .icon):
(.inherited-element-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .author-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .author-style-rule-icon.pseudo-selector .icon):
(@media (prefers-color-scheme: dark) .user-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .user-style-rule-icon.pseudo-selector .icon):
(@media (prefers-color-scheme: dark) .user-agent-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .user-agent-style-rule-icon.pseudo-selector .icon):
(@media (prefers-color-scheme: dark) .inspector-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .inspector-style-rule-icon.pseudo-selector .icon):
(@media (prefers-color-scheme: dark) .inherited-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .inherited-element-style-rule-icon .icon):

  • UserInterface/Views/TimelineIcons.css:

(.network-icon .icon):
(.script-icon .icon):
(.cpu-icon .icon):
(.memory-icon .icon):
(.heap-allocations-icon .icon):
(.layout-icon .icon):
(.rendering-frame-icon .icon):
(.media-icon .icon):
(.stopwatch-icon .icon):
(.style-record .icon):
(.layout-record .icon):
(.paint-record .icon):
(.composite-record .icon):
(.rendering-frame-record .icon):
(.api-record .icon):
(.evaluated-record .icon):
(.event-record .icon):
(.probe-record .icon):
(.console-profile-record .icon):
(.garbage-collection-profile-record .icon):
(.timer-record .icon):
(.animation-frame-record .icon):
(.css-animation-record .icon):
(.css-transition-record .icon):
(.media-element-record .icon):
(.heap-snapshot-record .icon):
(@media (prefers-color-scheme: dark) .network-icon .icon):
(@media (prefers-color-scheme: dark) .script-icon .icon):
(@media (prefers-color-scheme: dark) .cpu-icon .icon):
(@media (prefers-color-scheme: dark) .memory-icon .icon):
(@media (prefers-color-scheme: dark) .heap-allocations-icon .icon):
(@media (prefers-color-scheme: dark) .layout-icon .icon):
(@media (prefers-color-scheme: dark) .rendering-frame-icon .icon):
(@media (prefers-color-scheme: dark) .media-icon .icon):
(@media (prefers-color-scheme: dark) .stopwatch-icon .icon):
(@media (prefers-color-scheme: dark) .style-record .icon):
(@media (prefers-color-scheme: dark) .layout-record .icon):
(@media (prefers-color-scheme: dark) .paint-record .icon):
(@media (prefers-color-scheme: dark) .composite-record .icon):
(@media (prefers-color-scheme: dark) .rendering-frame-record .icon):
(@media (prefers-color-scheme: dark) .api-record .icon):
(@media (prefers-color-scheme: dark) .evaluated-record .icon):
(@media (prefers-color-scheme: dark) .event-record .icon):
(@media (prefers-color-scheme: dark) .probe-record .icon):
(@media (prefers-color-scheme: dark) .console-profile-record .icon):
(@media (prefers-color-scheme: dark) .garbage-collection-profile-record .icon):
(@media (prefers-color-scheme: dark) .timer-record .icon):
(@media (prefers-color-scheme: dark) .animation-frame-record .icon):
(@media (prefers-color-scheme: dark) .css-animation-record .icon):
(@media (prefers-color-scheme: dark) .css-transition-record .icon):
(@media (prefers-color-scheme: dark) .media-element-record .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot-record .icon):

  • UserInterface/Views/URLBreakpointTreeElement.css:

(.breakpoint.url:not(.breakpoint-paused-icon) .icon):
(@media (prefers-color-scheme: dark) .breakpoint.url:not(.breakpoint-paused-icon) .icon):

2:23 PM Changeset in webkit [256773] by Alan Bujtas
  • 5 edits
    4 adds in trunk

Inline boxes for images that represent nothing should collapse to empty.
https://bugs.webkit.org/show_bug.cgi?id=207740
<rdar://problem/57339992>

Reviewed by Darin Adler.

Source/WebCore:

Tests: fast/images/inline-image-box-with-no-alt-should-collapse-no-quirks.html

fast/images/inline-image-box-with-no-alt-should-collapse-quirks.html

Let's collapse inline boxes when we would display a broken image only and

  1. alt attribute is explicitly set to empty and
  2. both height and width are auto or we are in standards mode.

https://html.spec.whatwg.org/multipage/rendering.html#images-3

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::shouldCollapseToEmpty const):
(WebCore::RenderImage::computeReplacedLogicalWidth const):
(WebCore::RenderImage::computeReplacedLogicalHeight const):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::layout):

  • rendering/RenderImage.h:

LayoutTests:

  • fast/images/inline-image-box-with-no-alt-should-collapse-no-quirks-expected.txt: Added.
  • fast/images/inline-image-box-with-no-alt-should-collapse-no-quirks.html: Added.
  • fast/images/inline-image-box-with-no-alt-should-collapse-quirks-expected.txt: Added.
  • fast/images/inline-image-box-with-no-alt-should-collapse-quirks.html: Added.
  • tables/mozilla/bugs/bug56201.html:
2:19 PM Changeset in webkit [256772] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] fast/images/webp-as-image.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=207718

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:00 PM Changeset in webkit [256771] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207859

Unreviewed test gardening

  • platform/mac/TestExpectations:
1:55 PM Changeset in webkit [256770] by Peng Liu
  • 20 edits
    1 move in trunk

Fix check-webkit-style errors related to AVFoundationSPI.h
https://bugs.webkit.org/show_bug.cgi?id=207834

Reviewed by Eric Carlson.

Source/WebCore:

No new tests, no functional change.

This patch fixes check-webkit-style errors, especially the ones related to soft-link headers.
The soft-link headers should be included after other headers.

  • platform/audio/ios/AudioSessionIOS.mm:
  • platform/audio/ios/MediaSessionManagerIOS.mm:
  • platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm:
  • platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

Source/WebCore/PAL:

Move AVFoundationSPI.h from folder "mac" to "cocoa" because it is used by both iOS and Mac.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/AVFoundationSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/AVFoundationSPI.h.

Source/WTF:

Add HAVE_VIDEO_PERFORMANCE_METRICS and USE_AV_SAMPLE_BUFFER_DISPLAY_LAYER to fix check-webkit-style errors.

  • wtf/PlatformHave.h:
  • wtf/PlatformUse.h:

Tools:

We need to use case-insensitive comparison to check whether the headers are alphabetically sorted in each header section.
Soft-link headers can be included as either "file.h" or <file.h>.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_classify_include):
(check_include_line):

1:49 PM Changeset in webkit [256769] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Cherry-pick r255566. rdar://problem/59524417

Unreviewed, disable ResponsivenessTimer test in Debug / ASAN

The ResponsivenessTimer is disabled for those configurations as of r255518.

  • TestWebKitAPI/Tests/WebKit/ResponsivenessTimerCrash.mm:

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

1:45 PM Changeset in webkit [256768] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Unreviewed build fix. rdar://59461287

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1:44 PM Changeset in webkit [256767] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ Mojave wk1 ] fast/canvas/webgl/texImage2D-mse-flipY-false.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207857

Unreviewed test gardening

  • platform/mac-wk1/TestExpectations:
1:24 PM Changeset in webkit [256766] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

[Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849

Reviewed by Mark Lam.

JSTests:

  • wasm/regress/regress-256665.js: Added.

(f):

Source/JavaScriptCore:

When generating the call IC, we should select the callee saves using BoundsChecking mode in order
to obey to the calling conventions described in r256665. Currently, we won't restore the memory size
register when calling the Wasm LLInt through the call IC.

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::calleeSaves const):

1:22 PM Changeset in webkit [256765] by Keith Rollin
  • 2 edits in trunk/Tools

Unreviewed build fix after r256715.

Fix tvOS and watchOS builds.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
1:13 PM Changeset in webkit [256764] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null Ptr Deref @ WebCore::Node::Treescope
https://bugs.webkit.org/show_bug.cgi?id=207748

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-02-17
Reviewed by Darin Adler.

Source/WebCore:

Added a check for isTextField after updateLayoutIgnorePendingStylesheets as that could cause modification of input element type.

Test: editing/selection/ignore-selection-range-on-input-style-change.html

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):

LayoutTests:

Added a regression test provided by Ryosuke Niwa to verify the fix.

  • editing/selection/ignore-selection-range-on-input-style-change-expected.txt: Added.
  • editing/selection/ignore-selection-range-on-input-style-change.html: Added.
1:06 PM Changeset in webkit [256763] by Alan Bujtas
  • 3 edits
    186 copies
    1 add
    1 delete in trunk/LayoutTests

[LFC] Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=207846

Move LFC regression tests under fast/layoutformattingcontext/ and skip them on iOS for now.

  • fast/layoutformattingcontext/block-only/abs-pos-with-border-padding-and-float-child-expected.html: Renamed from LayoutTests/fast/block/block-only/abs-pos-with-border-padding-and-float-child-expected.html.
  • fast/layoutformattingcontext/block-only/abs-pos-with-border-padding-and-float-child.html: Renamed from LayoutTests/fast/block/block-only/abs-pos-with-border-padding-and-float-child.html.
  • fast/layoutformattingcontext/block-only/absolute-auto-with-sibling-margin-bottom-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-auto-with-sibling-margin-bottom-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-auto-with-sibling-margin-bottom.html: Renamed from LayoutTests/fast/block/block-only/absolute-auto-with-sibling-margin-bottom.html.
  • fast/layoutformattingcontext/block-only/absolute-height-stretch-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-height-stretch-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-height-stretch.html: Renamed from LayoutTests/fast/block/block-only/absolute-height-stretch.html.
  • fast/layoutformattingcontext/block-only/absolute-left-auto-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-left-auto-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-left-auto.html: Renamed from LayoutTests/fast/block/block-only/absolute-left-auto.html.
  • fast/layoutformattingcontext/block-only/absolute-left-right-top-bottom-auto-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-left-right-top-bottom-auto-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-left-right-top-bottom-auto.html: Renamed from LayoutTests/fast/block/block-only/absolute-left-right-top-bottom-auto.html.
  • fast/layoutformattingcontext/block-only/absolute-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-nested.html: Renamed from LayoutTests/fast/block/block-only/absolute-nested.html.
  • fast/layoutformattingcontext/block-only/absolute-nested2-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-nested2-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-nested2.html: Renamed from LayoutTests/fast/block/block-only/absolute-nested2.html.
  • fast/layoutformattingcontext/block-only/absolute-position-left-right-margin-expected.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-left-right-margin-expected.html.
  • fast/layoutformattingcontext/block-only/absolute-position-left-right-margin.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-left-right-margin.html.
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-position-min-max-height-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-height.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-min-max-height.html.
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-width-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-position-min-max-width-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-width.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-min-max-width.html.
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context.html.
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html.
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple-expected.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-with-margin-auto-simple-expected.html.
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-with-margin-auto-simple.html.
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple2-expected.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-with-margin-auto-simple2-expected.html.
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple2.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-with-margin-auto-simple2.html.
  • fast/layoutformattingcontext/block-only/absolute-positioned-min-max-percentage-with-parent-padding-expected.html: Renamed from LayoutTests/fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding-expected.html.
  • fast/layoutformattingcontext/block-only/absolute-positioned-min-max-percentage-with-parent-padding.html: Renamed from LayoutTests/fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding.html.
  • fast/layoutformattingcontext/block-only/absolute-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-simple.html: Renamed from LayoutTests/fast/block/block-only/absolute-simple.html.
  • fast/layoutformattingcontext/block-only/absolute-width-shrink-to-fit-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-width-shrink-to-fit-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-width-shrink-to-fit.html: Renamed from LayoutTests/fast/block/block-only/absolute-width-shrink-to-fit.html.
  • fast/layoutformattingcontext/block-only/absolute-width-stretch-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-width-stretch-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-width-stretch.html: Renamed from LayoutTests/fast/block/block-only/absolute-width-stretch.html.
  • fast/layoutformattingcontext/block-only/absolute-with-static-block-position-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-with-static-block-position-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-with-static-block-position-nested.html: Renamed from LayoutTests/fast/block/block-only/absolute-with-static-block-position-nested.html.
  • fast/layoutformattingcontext/block-only/almost-intruding-left-float-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/almost-intruding-left-float-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/almost-intruding-left-float-simple.html: Renamed from LayoutTests/fast/block/block-only/almost-intruding-left-float-simple.html.
  • fast/layoutformattingcontext/block-only/block-replaced-with-vertical-margins-expected.html: Renamed from LayoutTests/fast/block/block-only/block-replaced-with-vertical-margins-expected.html.
  • fast/layoutformattingcontext/block-only/block-replaced-with-vertical-margins.html: Renamed from LayoutTests/fast/block/block-only/block-replaced-with-vertical-margins.html.
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk-expected.txt: Renamed from LayoutTests/fast/block/block-only/body-height-with-auto-html-height-quirk-expected.txt.
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk.html: Renamed from LayoutTests/fast/block/block-only/body-height-with-auto-html-height-quirk.html.
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk2-expected.txt: Renamed from LayoutTests/fast/block/block-only/body-height-with-auto-html-height-quirk2-expected.txt.
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk2.html: Renamed from LayoutTests/fast/block/block-only/body-height-with-auto-html-height-quirk2.html.
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk-expected.txt: Renamed from LayoutTests/fast/block/block-only/body-height-with-non-auto-html-height-quirk-expected.txt.
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk.html: Renamed from LayoutTests/fast/block/block-only/body-height-with-non-auto-html-height-quirk.html.
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk2-expected.txt: Renamed from LayoutTests/fast/block/block-only/body-height-with-non-auto-html-height-quirk2-expected.txt.
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk2.html: Renamed from LayoutTests/fast/block/block-only/body-height-with-non-auto-html-height-quirk2.html.
  • fast/layoutformattingcontext/block-only/border-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/border-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/border-simple.html: Renamed from LayoutTests/fast/block/block-only/border-simple.html.
  • fast/layoutformattingcontext/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/box-sizing-inflow-out-of-flow-simple.html: Renamed from LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html.
  • fast/layoutformattingcontext/block-only/collapsed-margin-with-min-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/collapsed-margin-with-min-height-expected.txt.
  • fast/layoutformattingcontext/block-only/collapsed-margin-with-min-height.html: Renamed from LayoutTests/fast/block/block-only/collapsed-margin-with-min-height.html.
  • fast/layoutformattingcontext/block-only/collapsed-through-siblings-expected.txt: Renamed from LayoutTests/fast/block/block-only/collapsed-through-siblings-expected.txt.
  • fast/layoutformattingcontext/block-only/collapsed-through-siblings.html: Renamed from LayoutTests/fast/block/block-only/collapsed-through-siblings.html.
  • fast/layoutformattingcontext/block-only/collapsed-through-with-parent-expected.txt: Renamed from LayoutTests/fast/block/block-only/collapsed-through-with-parent-expected.txt.
  • fast/layoutformattingcontext/block-only/collapsed-through-with-parent.html: Renamed from LayoutTests/fast/block/block-only/collapsed-through-with-parent.html.
  • fast/layoutformattingcontext/block-only/fixed-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/fixed-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/fixed-nested.html: Renamed from LayoutTests/fast/block/block-only/fixed-nested.html.
  • fast/layoutformattingcontext/block-only/float-and-siblings-with-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-and-siblings-with-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/float-and-siblings-with-margins.html: Renamed from LayoutTests/fast/block/block-only/float-and-siblings-with-margins.html.
  • fast/layoutformattingcontext/block-only/float-avoider-multiple-roots-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-avoider-multiple-roots-expected.txt.
  • fast/layoutformattingcontext/block-only/float-avoider-multiple-roots.html: Renamed from LayoutTests/fast/block/block-only/float-avoider-multiple-roots.html.
  • fast/layoutformattingcontext/block-only/float-avoider-simple-left-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-avoider-simple-left-expected.txt.
  • fast/layoutformattingcontext/block-only/float-avoider-simple-left.html: Renamed from LayoutTests/fast/block/block-only/float-avoider-simple-left.html.
  • fast/layoutformattingcontext/block-only/float-avoider-simple-right-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-avoider-simple-right-expected.txt.
  • fast/layoutformattingcontext/block-only/float-avoider-simple-right.html: Renamed from LayoutTests/fast/block/block-only/float-avoider-simple-right.html.
  • fast/layoutformattingcontext/block-only/float-avoider-with-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-avoider-with-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/float-avoider-with-margins.html: Renamed from LayoutTests/fast/block/block-only/float-avoider-with-margins.html.
  • fast/layoutformattingcontext/block-only/float-left-when-container-has-padding-margin-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-left-when-container-has-padding-margin-expected.txt.
  • fast/layoutformattingcontext/block-only/float-left-when-container-has-padding-margin.html: Renamed from LayoutTests/fast/block/block-only/float-left-when-container-has-padding-margin.html.
  • fast/layoutformattingcontext/block-only/float-min-max-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-min-max-height-expected.txt.
  • fast/layoutformattingcontext/block-only/float-min-max-height.html: Renamed from LayoutTests/fast/block/block-only/float-min-max-height.html.
  • fast/layoutformattingcontext/block-only/float-min-max-width-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-min-max-width-expected.txt.
  • fast/layoutformattingcontext/block-only/float-min-max-width.html: Renamed from LayoutTests/fast/block/block-only/float-min-max-width.html.
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-and-next-previous-inflow-with-margin-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin-with-no-border-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html: Renamed from LayoutTests/fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html.
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin.html: Renamed from LayoutTests/fast/block/block-only/floating-and-next-previous-inflow-with-margin.html.
  • fast/layoutformattingcontext/block-only/floating-box-clear-both-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-clear-both-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-clear-both-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-clear-both-simple.html.
  • fast/layoutformattingcontext/block-only/floating-box-clear-right-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-clear-right-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-clear-right-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-clear-right-simple.html.
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-left-and-right-multiple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple-with-top-offset-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-left-and-right-multiple-with-top-offset-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple-with-top-offset.html: Renamed from LayoutTests/fast/block/block-only/floating-box-left-and-right-multiple-with-top-offset.html.
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-left-and-right-multiple.html.
  • fast/layoutformattingcontext/block-only/floating-box-right-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-right-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-right-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-right-simple.html.
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-siblings-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-with-clear-siblings-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-siblings.html: Renamed from LayoutTests/fast/block/block-only/floating-box-with-clear-siblings.html.
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-with-clear-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-with-clear-simple.html.
  • fast/layoutformattingcontext/block-only/floating-box-with-new-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-with-new-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-with-new-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/floating-box-with-new-formatting-context.html.
  • fast/layoutformattingcontext/block-only/floating-box-with-relative-positioned-sibling-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-with-relative-positioned-sibling-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-with-relative-positioned-sibling.html: Renamed from LayoutTests/fast/block/block-only/floating-box-with-relative-positioned-sibling.html.
  • fast/layoutformattingcontext/block-only/floating-left-and-right-with-clearance-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-left-and-right-with-clearance-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-left-and-right-with-clearance.html: Renamed from LayoutTests/fast/block/block-only/floating-left-and-right-with-clearance.html.
  • fast/layoutformattingcontext/block-only/floating-left-right-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-left-right-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-left-right-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-left-right-simple.html.
  • fast/layoutformattingcontext/block-only/floating-left-right-with-all-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-left-right-with-all-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-left-right-with-all-margins.html: Renamed from LayoutTests/fast/block/block-only/floating-left-right-with-all-margins.html.
  • fast/layoutformattingcontext/block-only/floating-lefts-and-rights-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-lefts-and-rights-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-lefts-and-rights-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-lefts-and-rights-simple.html.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-in-body-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-in-body-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-in-body.html: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-in-body.html.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-multiple-lines-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-multiple-lines-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-multiple-lines.html: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-multiple-lines.html.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts.html: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts.html.
  • fast/layoutformattingcontext/block-only/floating-with-new-block-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-with-new-block-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-with-new-block-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/floating-with-new-block-formatting-context.html.
  • fast/layoutformattingcontext/block-only/floats-and-block-formatting-roots-expected.html: Renamed from LayoutTests/fast/block/block-only/floats-and-block-formatting-roots-expected.html.
  • fast/layoutformattingcontext/block-only/floats-and-block-formatting-roots.html: Renamed from LayoutTests/fast/block/block-only/floats-and-block-formatting-roots.html.
  • fast/layoutformattingcontext/block-only/inflow-min-max-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/inflow-min-max-height-expected.txt.
  • fast/layoutformattingcontext/block-only/inflow-min-max-height.html: Renamed from LayoutTests/fast/block/block-only/inflow-min-max-height.html.
  • fast/layoutformattingcontext/block-only/inflow-min-max-width-expected.txt: Renamed from LayoutTests/fast/block/block-only/inflow-min-max-width-expected.txt.
  • fast/layoutformattingcontext/block-only/inflow-min-max-width.html: Renamed from LayoutTests/fast/block/block-only/inflow-min-max-width.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-bottom-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-bottom-bottom-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-bottom.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-bottom-bottom.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-bottom-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-nested.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-bottom-nested.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-first-last-are-floating-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-first-last-are-floating-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-first-last-are-floating.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-first-last-are-floating.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-simple.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-simple.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-top-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-top-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-top-nested.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-top-nested.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-when-child-has-padding-border-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-when-child-has-padding-border-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-when-child-has-padding-border.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-when-child-has-padding-border.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-block-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-block-formatting-context.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context2-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-block-formatting-context2-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context2.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-block-formatting-context2.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-clearance-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-clearance-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-clearance.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-clearance.html.
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-left-right-sizing-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing-out-of-flow-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-left-right-sizing-out-of-flow-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing-out-of-flow.html: Renamed from LayoutTests/fast/block/block-only/margin-left-right-sizing-out-of-flow.html.
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing.html: Renamed from LayoutTests/fast/block/block-only/margin-left-right-sizing.html.
  • fast/layoutformattingcontext/block-only/margin-propagation-simple-content-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-propagation-simple-content-height-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-propagation-simple-content-height.html: Renamed from LayoutTests/fast/block/block-only/margin-propagation-simple-content-height.html.
  • fast/layoutformattingcontext/block-only/margin-sibling-collapse-propagated-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-sibling-collapse-propagated-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-sibling-collapse-propagated.html: Renamed from LayoutTests/fast/block/block-only/margin-sibling-collapse-propagated.html.
  • fast/layoutformattingcontext/block-only/margin-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-simple.html: Renamed from LayoutTests/fast/block/block-only/margin-simple.html.
  • fast/layoutformattingcontext/block-only/min-max-and-preferred-width-simple-expected.html: Renamed from LayoutTests/fast/block/block-only/min-max-and-preferred-width-simple-expected.html.
  • fast/layoutformattingcontext/block-only/min-max-and-preferred-width-simple.html: Renamed from LayoutTests/fast/block/block-only/min-max-and-preferred-width-simple.html.
  • fast/layoutformattingcontext/block-only/min-max-height-percentage-expected.txt: Renamed from LayoutTests/fast/block/block-only/min-max-height-percentage-expected.txt.
  • fast/layoutformattingcontext/block-only/min-max-height-percentage.html: Renamed from LayoutTests/fast/block/block-only/min-max-height-percentage.html.
  • fast/layoutformattingcontext/block-only/negative-margin-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/negative-margin-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/negative-margin-simple.html: Renamed from LayoutTests/fast/block/block-only/negative-margin-simple.html.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-auto-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-height-with-auto-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-auto-margins.html: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-height-with-auto-margins.html.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-height-with-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-margins.html: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-height-with-margins.html.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow-expected.txt: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow-expected.txt.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow.html: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow.html.
  • fast/layoutformattingcontext/block-only/out-of-flow-is-never-float-box-expected.html: Renamed from LayoutTests/fast/block/block-only/out-of-flow-is-never-float-box-expected.html.
  • fast/layoutformattingcontext/block-only/out-of-flow-is-never-float-box.html: Renamed from LayoutTests/fast/block/block-only/out-of-flow-is-never-float-box.html.
  • fast/layoutformattingcontext/block-only/out-of-flow-with-containing-block-border-padding-expected.txt: Renamed from LayoutTests/fast/block/block-only/out-of-flow-with-containing-block-border-padding-expected.txt.
  • fast/layoutformattingcontext/block-only/out-of-flow-with-containing-block-border-padding.html: Renamed from LayoutTests/fast/block/block-only/out-of-flow-with-containing-block-border-padding.html.
  • fast/layoutformattingcontext/block-only/padding-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/padding-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/padding-nested.html: Renamed from LayoutTests/fast/block/block-only/padding-nested.html.
  • fast/layoutformattingcontext/block-only/padding-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/padding-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/padding-simple.html: Renamed from LayoutTests/fast/block/block-only/padding-simple.html.
  • fast/layoutformattingcontext/block-only/relative-auto-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-auto-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-auto-with-parent-offset-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-auto-with-parent-offset-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-auto-with-parent-offset.html: Renamed from LayoutTests/fast/block/block-only/relative-auto-with-parent-offset.html.
  • fast/layoutformattingcontext/block-only/relative-auto.html: Renamed from LayoutTests/fast/block/block-only/relative-auto.html.
  • fast/layoutformattingcontext/block-only/relative-bottom-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-bottom-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-bottom.html: Renamed from LayoutTests/fast/block/block-only/relative-bottom.html.
  • fast/layoutformattingcontext/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context.html.
  • fast/layoutformattingcontext/block-only/relative-right-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-right-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-right.html: Renamed from LayoutTests/fast/block/block-only/relative-right.html.
  • fast/layoutformattingcontext/block-only/relative-siblings-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-siblings-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-siblings.html: Renamed from LayoutTests/fast/block/block-only/relative-siblings.html.
  • fast/layoutformattingcontext/block-only/relative-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-simple.html: Renamed from LayoutTests/fast/block/block-only/relative-simple.html.
  • fast/layoutformattingcontext/block-only/replaced-intrinsic-width-simple-expected.html: Renamed from LayoutTests/fast/block/block-only/replaced-intrinsic-width-simple-expected.html.
  • fast/layoutformattingcontext/block-only/replaced-intrinsic-width-simple.html: Renamed from LayoutTests/fast/block/block-only/replaced-intrinsic-width-simple.html.
  • platform/ios-wk2/TestExpectations:
12:46 PM Changeset in webkit [256762] by youenn@apple.com
  • 8 edits
    2 adds in trunk/Source

Add WebInspector support to WebKit::WebSocketChannel
https://bugs.webkit.org/show_bug.cgi?id=207794

Reviewed by Darin Adler.

Source/WebCore:

Add a wrapper around Inspector for using it in WebInspector.
This allows getting preliminary support of WebInspector for the new WebSocket path.

  • Modules/websockets/WebSocketChannelInspector.cpp: Added.

(WebCore::WebSocketChannelInspector::WebSocketChannelInspector):
(WebCore::WebSocketChannelInspector::didCreateWebSocket):
(WebCore::WebSocketChannelInspector::willSendWebSocketHandshakeRequest):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketHandshakeResponse):
(WebCore::WebSocketChannelInspector::didCloseWebSocket):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketFrame):
(WebCore::WebSocketChannelInspector::didSendWebSocketFrame):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketFrameError):

  • Modules/websockets/WebSocketChannelInspector.h: Added.
  • Modules/websockets/WebSocketFrame.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Call WebInspector hooks wherever needed.
We do not have access to frames so we make as if a message is part of one frame.
We do not have yet a response so provide an empty one as well.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::notifySendFrame):
(WebKit::WebSocketChannel::createMessageQueue):
(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::connect):
(WebKit::WebSocketChannel::sendMessage):
(WebKit::WebSocketChannel::disconnect):
(WebKit::WebSocketChannel::didConnect):
(WebKit::createWebSocketFrameForWebInspector):
(WebKit::WebSocketChannel::didReceiveText):
(WebKit::WebSocketChannel::didReceiveBinaryData):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::didReceiveMessageError):

  • WebProcess/Network/WebSocketChannel.h:
12:42 PM Changeset in webkit [256761] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Validate scopeURL is valid when reading it from the database
https://bugs.webkit.org/show_bug.cgi?id=207721

Reviewed by Darin Adler.

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):
In case scopeURL is not good, skip the registration, as done for other registration parameters.

12:29 PM Changeset in webkit [256760] by Alan Bujtas
  • 8 edits
    2 adds in trunk

[LFC][Out-of-flow] FormattingContext::computeOutOfFlowHorizontalGeometry needs verticalConstraints
https://bugs.webkit.org/show_bug.cgi?id=207832
<rdar://problem/59499844>

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/layoutformattingcontext/simple-absolute-positioned-replaced-inline-element-with-percentage-height.html

Inline replaced width computation needs the value of the computed content height. In case of percentage value, in order to
resolve it we need the containing block's height. At this point the containing block's vertical values are usually not
computed yet, unless the current box happens to be an out-of-flow.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):

LayoutTests:

  • fast/layoutformattingcontext/simple-absolute-positioned-replaced-inline-element-with-percentage-height-expected.html: Added.
  • fast/layoutformattingcontext/simple-absolute-positioned-replaced-inline-element-with-percentage-height.html: Added.
12:23 PM Changeset in webkit [256759] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] LineLayoutContext::nextContentForLine should be able to handle regular inline boxes
https://bugs.webkit.org/show_bug.cgi?id=207829
<rdar://problem/59498031>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/simple-inline-block.html

Add missing inline box handling.

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::nextContentForLine):

LayoutTests:

  • fast/layoutformattingcontext/simple-inline-block-expected.html: Added.
  • fast/layoutformattingcontext/simple-inline-block.html: Added.
12:08 PM Changeset in webkit [256758] by commit-queue@webkit.org
  • 7 edits
    2 deletes in trunk

ANGLE: Fix object deletion behavior.
https://bugs.webkit.org/show_bug.cgi?id=205610

Source/WebCore:

Fixes WebGL conformance tests object-deletion-behavior.html and vertex-array-object.html.

Patch by James Darpinian <James Darpinian> on 2020-02-17
Reviewed by Dean Jackson.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):

No error when getting attachment name with a null attachment.

  • html/canvas/WebGLObject.cpp:

(WebCore::WebGLObject::deleteObject):

Don't delay deleting objects when using ANGLE, becuase ANGLE handles object
deletion correctly with WebGL semantics. This fixes some conformance tests
including vertex-array-object.html.

  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::checkObjectToBeBound):

Always generate INVALID_OPERATION when the object is deleted.

(WebCore::WebGLRenderingContextBase::validateAndCacheBufferBinding):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindRenderbuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::useProgram):

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

Remove incorrect (out-of-date) test. This correct version of this test is still present in the WebGL
conformance tests.

Patch by James Darpinian <James Darpinian> on 2020-02-17
Reviewed by Dean Jackson.

  • fast/canvas/webgl/object-deletion-behaviour-expected.txt: Removed.
  • fast/canvas/webgl/object-deletion-behaviour.html: Removed.
11:59 AM Changeset in webkit [256757] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] fast/scrolling/latching/scroll-iframe-fragment.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207848

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:50 AM Changeset in webkit [256756] by pvollan@apple.com
  • 20 edits
    4 adds in trunk

Use CF prefs direct mode in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=203420

Reviewed by Brent Fulgham.

Source/WebCore:

Add Internals functions to read preferences.

API tests: Tests added in PreferenceChanges.mm.

  • testing/Internals.cpp:

(WebCore::Internals::readPreferenceInteger):
(WebCore::Internals::encodedPreferenceValue):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/Internals.mm:

(WebCore::Internals::encodedPreferenceValue):

Source/WebCore/PAL:

Add SPI to enable CF prefs direct mode and declare method called when preference are changed.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cf/CFUtilitiesSPI.h:
  • pal/spi/cocoa/NSUserDefaultsSPI.h: Added.

Source/WebKit:

Enable CF prefs direct mode, in order to avoid connecting to the CF prefs daemon in the WebContent process.
In direct mode, the prefs files will be accessed directly, and not through the CF prefs daemon. A preference
observer is added in the UI process, which will notify the WebContent process about preferences changes to a
domain. After a preference change, the WebContent process will set the new preference value for the changed
key/domain.

API tests: Tests added in PreferenceChanges.mm.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):

  • UIProcess/Cocoa/PreferenceObserver.h: Added.

(attribute):

  • UIProcess/Cocoa/PreferenceObserver.mm: Added.

(-[WKUserDefaults _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:]):
(-[WKUserDefaults observeValueForKeyPath:ofObject:change:context:]):
(-[WKUserDefaults initWithSuiteName:]):
(+[WKPreferenceObserver sharedInstance]):
(-[WKPreferenceObserver init]):
(-[WKPreferenceObserver preferenceDidChange:key:encodedValue:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::notifyPreferencesChanged):

  • UIProcess/WebProcessPool.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::notifyPreferencesChanged):

  • WebProcess/com.apple.WebProcess.sb.in:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm: Added.

(TEST):

11:40 AM Changeset in webkit [256755] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS should be able to file Bugzilla bugs
https://bugs.webkit.org/show_bug.cgi?id=207845

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(BugzillaMixin.create_bug): Method to file bugzilla bug using bugzilla REST API.

11:28 AM Changeset in webkit [256754] by Russell Epstein
  • 54 edits
    4 deletes in branches/safari-609.1.19-branch

Revert r256385. rdar://problem/59408870

11:28 AM Changeset in webkit [256753] by Russell Epstein
  • 5 edits in branches/safari-609.1.19-branch/Source/WebKit

Cherry-pick r256396. rdar://problem/59298180

Unreviewed, revert r255662 as it seems to cause blank views in SVC.
https://bugs.webkit.org/show_bug.cgi?id=207144
<rdar://problem/59334011>

  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

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

11:28 AM Changeset in webkit [256752] by Russell Epstein
  • 4 edits in branches/safari-609.1.19-branch

Cherry-pick r256317. rdar://problem/59408870

REGRESSION (r256009): [ Mojave wk2 Debug ] ASSERTION FAILED: Completion handler should always be called under WebKit::WebMDNSRegister::PendingRegistration
https://bugs.webkit.org/show_bug.cgi?id=207521
<rdar://problem/59331313>

Reviewed by Eric Carlson.

Source/WebKit:

Covered by debug assertion not hit in layout tests.

  • WebProcess/Network/webrtc/WebMDNSRegister.cpp: (WebKit::WebMDNSRegister::finishedRegisteringMDNSName): Call completion handler even if the document entry has been cleared, which can happen in suspend/destruction case. If the entry is not there, all MDNS names for the document have been unregistered. We then report a registration error.

LayoutTests:

  • platform/mac-wk2/TestExpectations:

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

11:28 AM Changeset in webkit [256751] by Russell Epstein
  • 2 edits in branches/safari-609.1.19-branch/LayoutTests

Cherry-pick r256231. rdar://problem/59408870

Regression: (r256009?) [ Mojave wk2 Debug ] webrtc/peerconnection-page-cache-long.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=207521

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

11:24 AM Changeset in webkit [256750] by dino@apple.com
  • 3 edits in trunk/LayoutTests

Removing expectations for tests that no longer exist + fixing a typo.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
11:23 AM Changeset in webkit [256749] by youenn@apple.com
  • 12 edits in trunk/Source

Do not send the client URL to network process
https://bugs.webkit.org/show_bug.cgi?id=207803

Reviewed by Darin Adler.

Source/WebCore:

Instead of sending the client URL through threads and IPC, we can retrieve it in NetworkProcess from the client identifier.
Implement this, as this is more efficient and safer.
No change of behavior.

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::unregisterRegistration):

  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):

  • workers/service/WorkerSWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::scheduleUnregisterJob):

  • workers/service/server/SWServer.h:

Source/WebKit:

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::scheduleUnregisterJobInServer):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleUnregisterJobInServer):

  • WebProcess/Storage/WebSWClientConnection.h:
11:17 AM Changeset in webkit [256748] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

11:13 AM Changeset in webkit [256747] by Alan Coon
  • 4 edits in branches/safari-609-branch

Revert r256693. rdar://problem/59478981

10:52 AM Changeset in webkit [256746] by achristensen@apple.com
  • 2 edits in branches/safari-609-branch/Source/WebCore

Fix build after r256689

  • css/StyleProperties.h:

Add missing include that wasn't on the branch.

10:47 AM Changeset in webkit [256745] by commit-queue@webkit.org
  • 16 edits in trunk/Source

a lot gcc warnings because of %{public}s format specifier
https://bugs.webkit.org/show_bug.cgi?id=207478

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-02-17
Reviewed by Darin Adler.

Add PUBLIC_LOG_STRING macro which is defined depending on if
os_log()[1] is used or rather old printf().

OS Logging processes format specifiers for privacy matters, for
example dynamic strings, which demands %{public}s. But these
specifiers are not valid for printf().

Calls to logging with this specifier, if they are not Mac/Darwing
exclusive, use this new macro to avoid gcc warnings.

  1. https://developer.apple.com/documentation/os/logging?language=objc

Source/WebCore:

No new tests. Covered by existing tests.

  • loader/AdClickAttribution.cpp:

(WebCore::AdClickAttribution::parseConversionRequest):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::doReleaseLogging):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::openSQLiteDatabase):

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectTableSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener):
(WebKit::ResourceLoadStatisticsMemoryStore::ensurePrevalentResourcesForDebugMode):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::didReceiveResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
(WebKit::ServiceWorkerFetchTask::didFail):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::logInvalidMessage):

  • UIProcess/ProcessThrottler.h:

(WebKit::ProcessThrottler::Activity::Activity):
(WebKit::ProcessThrottler::Activity::invalidate):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

Source/WTF:

  • wtf/Assertions.h:
  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):

10:33 AM Changeset in webkit [256744] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r256232?) [ Mac wk1 Release ] resize-observer/delete-observers-in-callbacks.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207847

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:31 AM Changeset in webkit [256743] by Russell Epstein
  • 8 edits in branches/safari-609.1.19-branch/Source

Versioning.

10:29 AM Changeset in webkit [256742] by pvollan@apple.com
  • 18 edits in trunk/Source

Mach lookup to com.apple.webinspector should not be allowed in WebKit's WebContent process
https://bugs.webkit.org/show_bug.cgi?id=203214

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

Add static flag in RemoteInspector to indicate whether a sandbox extension is needed. The remote inspector will only be
started if the sandbox extension is not needed. Only the WebContent process will need a sandbox extension, since this
patch removes mach access to 'com.apple.webinspector' for this process. Also add name and domain for the
'Enable Remote Inspector' setting, since this will be used in the UI process.

  • inspector/remote/RemoteInspector.cpp:
  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::singleton):

Source/WebKit:

If the Web inspector is enabled when the WebContent process is started, a sandbox extension is created
for 'com.apple.webinspector' and a message is sent to the WebContent process, where the extension will
be consumed, and the remote Web inspector will be started. The same happens if Web inspector is enabled
by the user while Safari is running. When RemoteInspector::singleton() is called in the UI process there
is no need for an extension, since access to the Web inspector daemon is already allowed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::backlightLevelDidChangeCallback):
(WebKit::WebProcessPool::remoteWebInspectorEnabledCallback):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::enableRemoteInspectorIfNeeded):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::mayBecomeUnresponsive):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::enableRemoteWebInspector):

  • WebProcess/com.apple.WebProcess.sb.in:
10:23 AM Changeset in webkit [256741] by Russell Epstein
  • 1 copy in branches/safari-609.1.19-branch

New branch.

10:18 AM Changeset in webkit [256740] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add telemetry with backtrace for specific rules
https://bugs.webkit.org/show_bug.cgi?id=207494

Reviewed by Brent Fulgham.

For specific sandbox mach lookup rules in the WebContent process, add telemetry with backtrace.

No new tests, no behavior change.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
10:02 AM Changeset in webkit [256739] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] storage/indexeddb/detached-iframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207844

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:44 AM Changeset in webkit [256738] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

IndexedDB: index cursor iteration is slow when there are a lot of index records from different object stores
https://bugs.webkit.org/show_bug.cgi?id=207377
<rdar://problem/59288679>

Reviewed by Brady Eidson.

Make the Index of IndexRecords table include indexID since we always perform search with indexID.
This would let SQLite optimize the index statement in SQLiteCursor with Covering Index and fix the slowness.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::v1IndexRecordsIndexSchema): Deleted.

8:48 AM Changeset in webkit [256737] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS should be able to comment on Bugzilla
https://bugs.webkit.org/show_bug.cgi?id=201927

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(BugzillaMixin.comment_on_bug): Method to comment on bugzilla bug.
(BugzillaMixin.remove_flags_on_patch): Drive-by fix to correctly identify failure based on status code.
(BugzillaMixin.close_bug): Ditto.
(CommentOnBug): Build step to comment on bugzilla bug.

8:45 AM Changeset in webkit [256736] by Antti Koivisto
  • 7 edits in trunk

[macOS] Add trace points for layer flush runloop observer
https://bugs.webkit.org/show_bug.cgi?id=207837

Reviewed by Sam Weinig.

Source/WebKit:

Add trace points to see how much scheduled layer flushes get delayed by timers and other runloop activities.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen):

Also add trace points for layer tree freezing (iOS too).

(WebKit::TiledCoreAnimationDrawingArea::layerFlushRunLoopCallback):
(WebKit::TiledCoreAnimationDrawingArea::invalidateLayerFlushRunLoopObserver):
(WebKit::TiledCoreAnimationDrawingArea::scheduleLayerFlushRunLoopObserver):

Source/WTF:

  • wtf/SystemTracing.h:

Tools:

  • Tracing/SystemTracePoints.plist:
8:40 AM Changeset in webkit [256735] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r256712?) [ iOS wk2 ] fast/block/block-only/floats-and-block-formatting-roots.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=207841

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:16 AM Changeset in webkit [256734] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] webgpu/whlsl/loops-break.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207839

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:03 AM Changeset in webkit [256733] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC] Remove ReplacedBox::m_layoutBox
https://bugs.webkit.org/show_bug.cgi?id=207830
<rdar://problem/59498829>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/simple-absolute-positioned-inline-element.html

This is not needed after r256380 ([LFC] Introduce Layout::ReplacedBox).

  • layout/layouttree/LayoutReplacedBox.cpp:

(WebCore::Layout::ReplacedBox::hasIntrinsicWidth const):
(WebCore::Layout::ReplacedBox::hasIntrinsicHeight const):
(WebCore::Layout::ReplacedBox::intrinsicWidth const):
(WebCore::Layout::ReplacedBox::intrinsicHeight const):
(WebCore::Layout::ReplacedBox::hasAspectRatio const):

  • layout/layouttree/LayoutReplacedBox.h:

LayoutTests:

  • fast/layoutformattingcontext/simple-absolute-positioned-inline-element-expected.html: Added.
  • fast/layoutformattingcontext/simple-absolute-positioned-inline-element.html: Added.
7:53 AM Changeset in webkit [256732] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC] The initial containing block does not necessarily have in-flow content.
https://bugs.webkit.org/show_bug.cgi?id=207833
<rdar://problem/59500650>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/html-is-absolute-positioned.html

When the <html> is out-of-flow positioned, the initial containing block has no in-flow direct children.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

LayoutTests:

  • fast/layoutformattingcontext/html-is-absolute-positioned-expected.html: Added.
  • fast/layoutformattingcontext/html-is-absolute-positioned.html: Added.
7:37 AM Changeset in webkit [256731] by don.olmstead@sony.com
  • 29 edits
    1 add
    1 delete in trunk

[CMake] Use builtin targets
https://bugs.webkit.org/show_bug.cgi?id=205166

Reviewed by Darin Adler.

.:

Add WebKitFindPackage.cmake which wraps CMake's find_package to provide targets
for common libraries.

Rationale:

  1. There are a number of libraries which are found using CMake's internal Find modules that contain targets but not all of them are available in the minimum version of CMake we support, 3.10.
  2. Updating to CMake 3.12 or higher is not possible due to the WebKit GTK's support policy. It looks like the next time we can bump the version is spring 2021.
  3. Apple builds, both Mac and Windows, have libraries that won't be found using the stock CMake modules. AppleWin also has internal builds where all libraries have a DEBUG_SUFFIX of _debug that would not be picked up.

In the implementation of find_package any Apple specific requirements are dealt with
and the expected CMake values are populated. For all other cases CMake's original
find_package is called so there's no behavior change. Afterwards if there is a library
that has a target but the target was not created it is created from the definitions
that are present from the find module at CMake 3.10.

This makes it so all ports consistently have targets across all versions of CMake
above the current minimum.

  • Source/cmake/OptionsAppleWin.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/WebKitCommon.cmake:
  • Source/cmake/WebKitFindPackage.cmake: Added.
  • Source/cmake/target/icu.cmake: Removed.

PerformanceTests:

  • MallocBench/MallocBench/CMakeLists.txt:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • platform/Curl.cmake:
  • platform/FreeType.cmake:
  • platform/ImageDecoders.cmake:

Source/WebCore/PAL:

  • pal/PlatformPlayStation.cmake:

Source/WebKit:

  • PlatformFTW.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:

Source/WebKitLegacy:

  • PlatformFTW.cmake:
  • PlatformWin.cmake:

Source/WTF:

  • wtf/PlatformGTK.cmake:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/PlatformPlayStation.cmake:
  • wtf/PlatformWPE.cmake:

Tools:

  • TestWebKitAPI/PlatformWin.cmake:
7:30 AM Changeset in webkit [256730] by clopez@igalia.com
  • 123 edits
    9 copies
    14 moves
    221 adds
    11 deletes in trunk/LayoutTests

Update WPT tests for encoding
https://bugs.webkit.org/show_bug.cgi?id=207644

Rubber-stamped by Youenn Fablet.

LayoutTests/imported/w3c:

Update from WPT ToT (c8671a2d15)

On top of the automatic import this:

  • removes imported/w3c/web-platform-tests/encoding/reftest.list and moves the -ref.html expectations to -expected.html (see bug 203783)
  • manually fixes the broken imported tests with byte truncated secuences (see bug 207731)
  • manually fixes the test resources of imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode* (see bug 207736)
  • web-platform-tests/encoding/META.yml: Added.
  • web-platform-tests/encoding/OWNERS: Removed.
  • web-platform-tests/encoding/api-basics.any-expected.txt: Added.
  • web-platform-tests/encoding/api-basics.any.html: Added.
  • web-platform-tests/encoding/api-basics.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/api-basics.html.
  • web-platform-tests/encoding/api-basics.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/api-basics.any.worker.html: Added.
  • web-platform-tests/encoding/api-invalid-label.any-expected.txt: Added.
  • web-platform-tests/encoding/api-invalid-label.any.html: Added.
  • web-platform-tests/encoding/api-invalid-label.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/api-invalid-label.html.

(tests.forEach):

  • web-platform-tests/encoding/api-invalid-label.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/api-invalid-label.any.worker.html: Added.
  • web-platform-tests/encoding/api-replacement-encodings.any-expected.txt: Added.
  • web-platform-tests/encoding/api-replacement-encodings.any.html: Added.
  • web-platform-tests/encoding/api-replacement-encodings.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/api-replacement-encodings.html.

(encodings_table.forEach):

  • web-platform-tests/encoding/api-replacement-encodings.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/api-replacement-encodings.any.worker.html: Added.
  • web-platform-tests/encoding/api-surrogates-utf8.any-expected.txt: Added.
  • web-platform-tests/encoding/api-surrogates-utf8.any.html: Added.
  • web-platform-tests/encoding/api-surrogates-utf8.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/api-surrogates-utf8.html.

(badStrings.forEach):

  • web-platform-tests/encoding/api-surrogates-utf8.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/api-surrogates-utf8.any.worker.html: Added.
  • web-platform-tests/encoding/big5-encoder-expected.txt:
  • web-platform-tests/encoding/big5-encoder.html:
  • web-platform-tests/encoding/encodeInto.any-expected.txt: Added.
  • web-platform-tests/encoding/encodeInto.any.html: Added.
  • web-platform-tests/encoding/encodeInto.any.js: Added.

(forEach.testData.forEach.destinationData.string_appeared_here.forEach.arrayBufferOrSharedArrayBuffer.test):
(Float64Array.forEach.view.string_appeared_here.forEach):
(string_appeared_here.forEach):
(test):

  • web-platform-tests/encoding/encodeInto.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/encodeInto.any.worker.html: Added.
  • web-platform-tests/encoding/eof-shift_jis-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/eof-shift_jis-ref.html.
  • web-platform-tests/encoding/eof-utf-8-one-ref.html: Removed.
  • web-platform-tests/encoding/eof-utf-8-three-ref.html: Removed.
  • web-platform-tests/encoding/eof-utf-8-two-ref.html: Removed.
  • web-platform-tests/encoding/gbk-encoder-expected.txt:
  • web-platform-tests/encoding/gbk-encoder.html:
  • web-platform-tests/encoding/idlharness.any-expected.txt: Added.
  • web-platform-tests/encoding/idlharness.any.html: Added.
  • web-platform-tests/encoding/idlharness.any.js: Added.
  • web-platform-tests/encoding/idlharness.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/idlharness.any.worker.html: Added.
  • web-platform-tests/encoding/idlharness.html: Removed.
  • web-platform-tests/encoding/iso-2022-jp-decoder.any-expected.txt: Added.
  • web-platform-tests/encoding/iso-2022-jp-decoder.any.html: Added.
  • web-platform-tests/encoding/iso-2022-jp-decoder.any.js: Added.

(decode):

  • web-platform-tests/encoding/iso-2022-jp-decoder.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/iso-2022-jp-decoder.any.worker.html: Added.
  • web-platform-tests/encoding/iso-2022-jp-decoder.html: Removed.
  • web-platform-tests/encoding/iso-2022-jp-encoder-expected.txt:
  • web-platform-tests/encoding/iso-2022-jp-encoder.html:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decoder.js: Added.

(dec2char):
(eucjpDecoder):

  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encoder.js: Added.

(chars2cps):
(eucjpEncoder):
(convertToHex):
(normalizeStr):

  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-cseucpkdfmtjapanese.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-cseucpkdfmtjapanese.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-x-euc-jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-x-euc-jp.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/jis0208_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/jis0212_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/w3c-import.log: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decoder.js: Added.

(dec2char):
(getIndexPtr):
(iso2022jpDecoder):

  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-stateful-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-stateful.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encoder.js: Added.

(chars2cps):
(iso2022jpEncoder):
(convertToHex):
(normalizeStr):

  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/jis0208_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/w3c-import.log: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decoder.js:

(sjisDecoder):

  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encoder.js:

(sjisEncoder):

  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/w3c-import.log:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decoder.js:

(euckrDecoder):

  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul-expected.txt: Removed.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html: Removed.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers: Removed.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/w3c-import.log:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decoder.js:

(big5Decoder):

  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/w3c-import.log:
  • web-platform-tests/encoding/reftest.list: Removed.
  • web-platform-tests/encoding/remove-only-one-bom-expected.txt: Added.
  • web-platform-tests/encoding/remove-only-one-bom.html: Added.
  • web-platform-tests/encoding/resources/decode-common.js: Added.

(showNodes):

  • web-platform-tests/encoding/resources/encode-form-common.js: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html.

(setup):
(runNext.iframe.onload):

  • web-platform-tests/encoding/resources/encode-href-common.js: Added.

(encode):

  • web-platform-tests/encoding/resources/ranges.js: Added.
  • web-platform-tests/encoding/resources/single-byte-raw.py:

(main):

  • web-platform-tests/encoding/resources/two-boms-utf-16be.html: Added.
  • web-platform-tests/encoding/resources/two-boms-utf-16le.html: Added.
  • web-platform-tests/encoding/resources/two-boms-utf-8.html: Added.
  • web-platform-tests/encoding/resources/utf-32-big-endian-bom.html:
  • web-platform-tests/encoding/resources/utf-32-big-endian-bom.xml:
  • web-platform-tests/encoding/resources/utf-32-big-endian-nobom.html:
  • web-platform-tests/encoding/resources/utf-32-big-endian-nobom.xml:
  • web-platform-tests/encoding/resources/utf-32-little-endian-bom.html:
  • web-platform-tests/encoding/resources/utf-32-little-endian-bom.xml:
  • web-platform-tests/encoding/resources/utf-32-little-endian-nobom.html:
  • web-platform-tests/encoding/resources/utf-32-little-endian-nobom.xml:
  • web-platform-tests/encoding/resources/w3c-import.log:
  • web-platform-tests/encoding/single-byte-decoder.html:
  • web-platform-tests/encoding/sniffing-expected.txt: Added.
  • web-platform-tests/encoding/sniffing.html: Added.
  • web-platform-tests/encoding/streams/backpressure.any.js: Added.

(input.new.Uint8Array):

  • web-platform-tests/encoding/streams/backpressure.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/backpressure.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-attributes.any.js: Added.

(const.label.of.Object.keys):
(null.test):
(null.setting.fatal.to.string_appeared_here.should.set the):
(null.setting.ignoreBOM.to.string_appeared_here.should.set the):
(string_appeared_here.setting.fatal.to.string_appeared_here.should.set the):
(string_appeared_here.setting.ignoreBOM.to.string_appeared_here.should.set the):

  • web-platform-tests/encoding/streams/decode-attributes.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-attributes.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-bad-chunks.any.js: Added.

(const.chunk.of.badChunks.promise_test.async t):

  • web-platform-tests/encoding/streams/decode-bad-chunks.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-bad-chunks.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-ignore-bom.any.js: Added.

(async pipeAndAssemble):

  • web-platform-tests/encoding/streams/decode-ignore-bom.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-ignore-bom.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-incomplete-input.any.js: Added.

(promise_test.async t):

  • web-platform-tests/encoding/streams/decode-incomplete-input.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-incomplete-input.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-non-utf8.any.js: Added.

(const.encoding.of.encodings.promise_test.async const):
(const.encoding.of.encodings.promise_test):
(const.encoding.of.encodings.promise_test.async t):

  • web-platform-tests/encoding/streams/decode-non-utf8.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-non-utf8.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-split-character.any.js: Added.
  • web-platform-tests/encoding/streams/decode-split-character.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-split-character.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-utf8.any.js: Added.

(string_appeared_here.forEach.async promise_test):
(string_appeared_here.forEach):
(async promise_test):

  • web-platform-tests/encoding/streams/decode-utf8.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-utf8.any.worker.html: Added.
  • web-platform-tests/encoding/streams/encode-bad-chunks.any.js: Added.

(promise_test.t.const.writePromise.writer.write.toString):

  • web-platform-tests/encoding/streams/encode-bad-chunks.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/encode-bad-chunks.any.worker.html: Added.
  • web-platform-tests/encoding/streams/encode-utf8.any.js: Added.

(of.testCases.promise_test.async const):
(of.testCases.promise_test):

  • web-platform-tests/encoding/streams/encode-utf8.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/encode-utf8.any.worker.html: Added.
  • web-platform-tests/encoding/streams/readable-writable-properties.any.js: Added.

(test):

  • web-platform-tests/encoding/streams/readable-writable-properties.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/readable-writable-properties.any.worker.html: Added.
  • web-platform-tests/encoding/streams/realms.window-expected.txt: Added.
  • web-platform-tests/encoding/streams/realms.window.html: Added.
  • web-platform-tests/encoding/streams/realms.window.js: Added.

(createRealm):
(async createRealms):
(const.id):
(evalInRealm):
(async evalInRealmAndWait):
(async evalInRealmAndReturn):
(async constructAndStore):
(readInReadRealm):
(writeInWriteRealm):
(window.onload):
(runGenericTests.async promise_test):
(async runTextEncoderStreamTests.async promise_test):
(async runTextEncoderStreamTests):
(async runTextDecoderStreamTests.async promise_test):
(async runTextDecoderStreamTests):

  • web-platform-tests/encoding/streams/resources/readable-stream-from-array.js: Added.

(readableStreamFromArray):

  • web-platform-tests/encoding/streams/resources/readable-stream-to-array.js: Added.

(readableStreamToArray):

  • web-platform-tests/encoding/streams/resources/w3c-import.log: Added.
  • web-platform-tests/encoding/streams/w3c-import.log: Added.
  • web-platform-tests/encoding/textdecoder-byte-order-marks.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-byte-order-marks.any.html: Added.
  • web-platform-tests/encoding/textdecoder-byte-order-marks.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-byte-order-marks.html.

(testCases.forEach):

  • web-platform-tests/encoding/textdecoder-byte-order-marks.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-byte-order-marks.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-copy.any-expected.txt:
  • web-platform-tests/encoding/textdecoder-copy.any.js:

(string_appeared_here.forEach.arrayBufferOrSharedArrayBuffer.test):

  • web-platform-tests/encoding/textdecoder-copy.any.worker-expected.txt:
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.html.

(singleByteEncodings.forEach):

  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal-streaming.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal-streaming.any.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal-streaming.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-streaming.html.

(test):

  • web-platform-tests/encoding/textdecoder-fatal-streaming.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal-streaming.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal.any.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-fatal.html.

(bad.forEach):
(test):

  • web-platform-tests/encoding/textdecoder-fatal.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-ignorebom.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-ignorebom.any.html: Added.
  • web-platform-tests/encoding/textdecoder-ignorebom.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-ignorebom.html.

(cases.forEach):
(test):

  • web-platform-tests/encoding/textdecoder-ignorebom.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-ignorebom.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-labels.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-labels.any.html: Added.
  • web-platform-tests/encoding/textdecoder-labels.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-labels.html.

(encodings_table.forEach):

  • web-platform-tests/encoding/textdecoder-labels.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-labels.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-streaming.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-streaming.any.html: Added.
  • web-platform-tests/encoding/textdecoder-streaming.any.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/encoding/textdecoder-streaming.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-streaming.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-streaming.html: Removed.
  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any.html: Added.
  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-utf16-surrogates.html.

(bad.forEach):

  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any.worker.html: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf.any-expected.txt: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf.any.html: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textencoder-constructor-non-utf.html.

(encodings_table.forEach):

  • web-platform-tests/encoding/textencoder-constructor-non-utf.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf.any.worker.html: Added.
  • web-platform-tests/encoding/textencoder-utf16-surrogates.any-expected.txt: Added.
  • web-platform-tests/encoding/textencoder-utf16-surrogates.any.html: Added.
  • web-platform-tests/encoding/textencoder-utf16-surrogates.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textencoder-utf16-surrogates.html.

(test):

  • web-platform-tests/encoding/textencoder-utf16-surrogates.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textencoder-utf16-surrogates.any.worker.html: Added.
  • web-platform-tests/encoding/utf-32-expected.txt:
  • web-platform-tests/encoding/utf-32-from-win1252-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/utf-32-expected.txt.
  • web-platform-tests/encoding/utf-32-from-win1252.html: Added.
  • web-platform-tests/encoding/utf-32.html:
  • web-platform-tests/encoding/w3c-import.log:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.any-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.any.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.any-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.any.worker-expected.txt: Added.
7:09 AM Changeset in webkit [256729] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] add SetBuildSummary step for Windows EWS
https://bugs.webkit.org/show_bug.cgi?id=207556

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(WindowsFactory.init):
(GTKBuildAndTestFactory.init):

  • BuildSlaveSupport/ews-build/factories_unittest.py:

(TestBuildAndTestsFactory.test_windows_factory): Added unit-test.

6:27 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
4:07 AM Changeset in webkit [256728] by commit-queue@webkit.org
  • 6 edits
    4 adds in trunk/Source/WebCore

[Curl] Use shared single thread for WebSocket connections
https://bugs.webkit.org/show_bug.cgi?id=187984

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2020-02-17
Reviewed by Fujii Hironori.

This patch suppresses invoking worker threads for websocket connections.
CurlStreamScheduler starts up to one worker thread.

No new tests. Covered by existing WebSocket tests.

  • platform/Curl.cmake:
  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlContext::streamScheduler):
(WebCore::CurlHandle::getActiveSocket):
(WebCore::CurlHandle::send):
(WebCore::CurlHandle::receive):
(WebCore::CurlSocketHandle::CurlSocketHandle): Deleted.
(WebCore::CurlSocketHandle::connect): Deleted.
(WebCore::CurlSocketHandle::send): Deleted.
(WebCore::CurlSocketHandle::receive): Deleted.
(WebCore::CurlSocketHandle::wait): Deleted.

  • platform/network/curl/CurlContext.h:
  • platform/network/curl/CurlStream.cpp: Added.

(WebCore::CurlStream::CurlStream):
(WebCore::CurlStream::~CurlStream):
(WebCore::CurlStream::destroyHandle):
(WebCore::CurlStream::send):
(WebCore::CurlStream::appendMonitoringFd):
(WebCore::CurlStream::tryToTransfer):
(WebCore::CurlStream::tryToReceive):
(WebCore::CurlStream::tryToSend):
(WebCore::CurlStream::notifyFailure):

  • platform/network/curl/CurlStream.h: Added.

(WebCore::CurlStream::create):

  • platform/network/curl/CurlStreamScheduler.cpp: Added.

(WebCore::CurlStreamScheduler::CurlStreamScheduler):
(WebCore::CurlStreamScheduler::~CurlStreamScheduler):
(WebCore::CurlStreamScheduler::createStream):
(WebCore::CurlStreamScheduler::destroyStream):
(WebCore::CurlStreamScheduler::send):
(WebCore::CurlStreamScheduler::callOnWorkerThread):
(WebCore::CurlStreamScheduler::callClientOnMainThread):
(WebCore::CurlStreamScheduler::startThreadIfNeeded):
(WebCore::CurlStreamScheduler::stopThreadIfNoMoreJobRunning):
(WebCore::CurlStreamScheduler::executeTasks):
(WebCore::CurlStreamScheduler::workerThread):

  • platform/network/curl/CurlStreamScheduler.h: Added.
  • platform/network/curl/SocketStreamHandleImpl.h:

(WebCore::SocketStreamHandleImpl::isStreamInvalidated):

  • platform/network/curl/SocketStreamHandleImplCurl.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::~SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::platformSendInternal):
(WebCore::SocketStreamHandleImpl::platformClose):
(WebCore::SocketStreamHandleImpl::didOpen):
(WebCore::SocketStreamHandleImpl::didSendData):
(WebCore::SocketStreamHandleImpl::didReceiveData):
(WebCore::SocketStreamHandleImpl::didFail):
(WebCore::SocketStreamHandleImpl::destructStream):
(WebCore::SocketStreamHandleImpl::threadEntryPoint): Deleted.
(WebCore::SocketStreamHandleImpl::handleError): Deleted.
(WebCore::SocketStreamHandleImpl::stopThread): Deleted.
(WebCore::SocketStreamHandleImpl::callOnWorkerThread): Deleted.
(WebCore::SocketStreamHandleImpl::executeTasks): Deleted.

2:54 AM Changeset in webkit [256727] by berto@igalia.com
  • 5 edits in trunk

[WPE] Change the QML plugin install path
https://bugs.webkit.org/show_bug.cgi?id=207761

Reviewed by Philippe Normand.

Source/WebKit:

This way there's no need to set QML2_IMPORT_PATH manually.

  • PlatformWPE.cmake:

Tools:

  • Scripts/run-qt-wpe-minibrowser:
  • glib/api_test_runner.py:

(TestRunner._run_test_qt):

2:13 AM Changeset in webkit [256726] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[WPE] Use custom theme style to render buttons
https://bugs.webkit.org/show_bug.cgi?id=207471

Reviewed by Adrian Perez de Castro.

This includes push, check and radio buttons.

  • platform/wpe/RenderThemeWPE.cpp:

(WebCore::RenderThemeWPE::supportsFocusRing const): Return true for buttons.
(WebCore::RenderThemeWPE::paintMenuList): Move mthe code to Theme and use ThemeWPE::paintButton() +
ThemeWPE::paintFocus().

  • platform/wpe/ThemeWPE.cpp:

(WebCore::ThemeWPE::paintFocus): Moved from RenderThemeWPE, adding the offset as a parameter.
(WebCore::ThemeWPE::paint): Remove part parameter from call to paintButton().
(WebCore::ThemeWPE::paintCheckbox):
(WebCore::ThemeWPE::paintRadio):
(WebCore::ThemeWPE::paintButton):

  • platform/wpe/ThemeWPE.h:
1:37 AM Changeset in webkit [256725] by Carlos Garcia Campos
  • 5 edits
    2 adds in trunk

Search cancel button becomes visible when there's a hover effect in CSS
https://bugs.webkit.org/show_bug.cgi?id=207328

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Use a custom style resolver for search cancel button element to ensure it's always hidden when the input element
is empty.

Test: fast/forms/search-cancel-button-hover.html

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement): Call setHasCustomStyleResolveCallbacks().
(WebCore::SearchFieldCancelButtonElement::resolveCustomStyle): Set the render style visibility depending on
input current value.

  • html/shadow/TextControlInnerElements.h:

LayoutTests:

  • fast/forms/search-cancel-button-hover-expected.html: Added.
  • fast/forms/search-cancel-button-hover.html: Added.
1:07 AM Changeset in webkit [256724] by Carlos Garcia Campos
  • 4 edits
    1 add in trunk/Source/WebCore

[WPE] Use custom theme style to render text fields
https://bugs.webkit.org/show_bug.cgi?id=207379

Reviewed by Adrian Perez de Castro.

This includes text entries, text areas and search fields. The search field icons are rendered using an extra
default style sheet for the theme, using Adwaita svg icons in the CSS.

  • PlatformWPE.cmake:
  • css/themeAdwaita.css: Added.

(input[type="search"]::-webkit-search-results-button,):
(input[type="search"]::-webkit-search-results-button:hover,):
(input[type="search"]::-webkit-search-cancel-button):
(body[dir="rtl"] input[type="search"]::-webkit-search-cancel-button):
(input[type="search"]::-webkit-search-cancel-button:hover):

  • platform/wpe/RenderThemeWPE.cpp:

(WebCore::RenderThemeWPE::supportsFocusRing const): Return true for TextFieldPart, TextAreaPart and SearchFieldPart.
(WebCore::RenderThemeWPE::extraDefaultStyleSheet): Return themeAdwaita.css.
(WebCore::RenderThemeWPE::paintTextField):
(WebCore::RenderThemeWPE::paintTextArea):
(WebCore::RenderThemeWPE::paintSearchField):

  • platform/wpe/RenderThemeWPE.h:
1:03 AM Changeset in webkit [256723] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Simplified Chinese translation
https://bugs.webkit.org/show_bug.cgi?id=207685

Patch by Yuchen Guo <egyc@live.com> on 2020-02-17
Rubber-stamped by Carlos Garcia Campos.

  • zh_CN.po:

Feb 16, 2020:

8:35 PM Changeset in webkit [256722] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] More debug build timeouts gardening
https://bugs.webkit.org/show_bug.cgi?id=207831

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
8:31 PM Changeset in webkit [256721] by Peng Liu
  • 4 edits
    1 delete in trunk/Source/WebCore

Remove class VideoLayerManager since it is not used
https://bugs.webkit.org/show_bug.cgi?id=207800

Reviewed by Eric Carlson.

No behavior change.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/VideoLayerManager.h: Removed.
  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm:

(WebCore::VideoLayerManagerObjC::VideoLayerManagerObjC):

6:49 PM Changeset in webkit [256720] by Fujii Hironori
  • 12 edits in trunk

Remove remaining WTF_EXPORT and WTF_IMPORT by replacing them with WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
https://bugs.webkit.org/show_bug.cgi?id=207746

Reviewed by Don Olmstead.

Source/JavaScriptCore:

  • runtime/JSExportMacros.h:

Source/WebCore:

  • platform/PlatformExportMacros.h:

Source/WebCore/PAL:

Removed unused PAL_TESTSUPPORT_EXPORT.

  • pal/ExportMacros.h:

Source/WebKit:

  • WebProcess/win/WebProcessWin.cpp:

(loadResourceIntoBuffer): Removed WTF_EXPORT. loadResourceIntoBuffer is used from WebCore which is in same DLL.

Source/WTF:

I removed WTF_EXPORT from function declarations in r256420 (Bug 207453).
WTF_EXPORT is still used mostly in *ExportMacros.h. However, there is no
difference between WTF_EXPORT and WTF_EXPORT_DECLARATION.

Removed WTF_EXPORT and WTF_IMPORT by replacing them with
WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION

Removed unused WTF_HIDDEN.

Defined WTF_EXPORT_DECLARATION, WTF_IMPORT_DECLARATION and WTF_HIDDEN_DECLARATION empty
in case of !USE(EXPORT_MACROS) to simplify *ExportMacros.h.

  • wtf/ExportMacros.h:

Tools:

  • MiniBrowser/win/stdafx.h:
6:11 PM Changeset in webkit [256719] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Log WebSocket failure in case of network crash
https://bugs.webkit.org/show_bug.cgi?id=207801

Reviewed by Darin Adler.

Covered by http/tests/websocket/tests/hybi/network-process-crash-error.html.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::didReceiveMessageError):
(WebKit::WebSocketChannel::networkProcessCrashed):
Add a console log message in case of error coming from network process.

6:06 PM Changeset in webkit [256718] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove nonArgGPR1 for ARMv7 and ARM64 (unused)
https://bugs.webkit.org/show_bug.cgi?id=207753

Patch by Paulo Matos <Paulo Matos> on 2020-02-16
Reviewed by Darin Adler.

Cleanup commit - nonArgGPR1 is unused for both ARMv7
and ARM64.

  • jit/GPRInfo.h:
5:54 PM Changeset in webkit [256717] by ap@apple.com
  • 4 edits in trunk/LayoutTests

[ Mac wk2 ] fast/events/keydown-1.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=154297
https://bugs.webkit.org/show_bug.cgi?id=207785
<rdar://problem/59469424>

Reviewed by Wenson Hsieh.

  • fast/events/keydown-1.html: Attempt to deflake by using onload instead of a 200 ms timer.
  • platform/mac-wk1/TestExpectations: Removed flaky expectation.
  • platform/mac-wk2/TestExpectations: Removed flaky expectation. Also corrected a

conflict that was landed in r256656 today.

5:41 PM Changeset in webkit [256716] by Alexey Shvayka
  • 32 edits
    2 adds
    1 delete in trunk

Implement EventTarget constructor
https://bugs.webkit.org/show_bug.cgi?id=174313

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/constructors-expected.txt:
  • web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt:
  • web-platform-tests/dom/events/EventTarget-constructible.any-expected.txt:
  • web-platform-tests/dom/events/EventTarget-constructible.any.worker-expected.txt:
  • web-platform-tests/dom/events/event-global-extra.window-expected.txt:
  • web-platform-tests/dom/idlharness.any.worker-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:

Source/WebCore:

Currently, EventTarget can't be directly constructed or be subclassed in JavaScript.
The spec for EventTarget was updated (https://github.com/whatwg/dom/pull/467) to allow
constructing and subclassing EventTarget. This feature was shipped in Chrome 64 and Firefox 59.

This patch introduces EventTargetConcrete class, a user-constructable version of EventTarget,
exposed as "EventTarget" to JavaScript. We don't use EventTarget directly because it is an abstract
class and making it non-abstract is unfavorable due to size increase of EventTarget and all of its
subclasses with code that is mostly unnecessary for them, resulting in a performance decrease.

To prevent definition of specific to EventTargetConcrete toJS and toJSNewlyCreated functions,
we don't define EventTargetConcrete interface type, but rather tweak make_event_factory.pl to
default to base interface (like it does for Event).

To allow subclassing of all DOM constructors, non-custom ones replace structures of newly created
wrapper objects with ones returned by InternalFunction::createSubclassStructure. Per WebIDL spec [1],
setSubclassStructureIfNeeded helper uses realm of newTarget for default prototypes.

This approach was chosen because a) detecting Construct? with callFrame->newTarget() is
unreliable outside constructor, and b) passing newTarget down to createWrapper via
toJSNewlyCreated is quite awkward and would result in massive code change.

[1] https://heycam.github.io/webidl/#internally-create-a-new-object-implementing-the-interface
(step 3.3.2)

Tests: fast/dom/dom-constructors.html

imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/constructors.html
imported/w3c/web-platform-tests/dom/events/Event-subclasses-constructors.html
imported/w3c/web-platform-tests/dom/events/EventTarget-constructible.any.html
imported/w3c/web-platform-tests/dom/idlharness.window.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWrapperCache.h:

(WebCore::setSubclassStructureIfNeeded):

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition):

  • bindings/scripts/InFilesCompiler.pm:

(generateInterfacesHeader):

  • bindings/scripts/test/JS/*: Adjust bindings expectations.
  • dom/EventTarget.cpp:

(WebCore::EventTarget::create):

  • dom/EventTarget.h:
  • dom/EventTarget.idl:
  • dom/EventTargetConcrete.cpp: Added.
  • dom/EventTargetConcrete.h: Added.
  • dom/make_event_factory.pl:

(generateImplementation):

LayoutTests:

  • fast/dom/dom-constructors-expected.txt:
  • fast/dom/dom-constructors.html:
  • platform/ios/imported/w3c/web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt: Removed.
5:35 PM Changeset in webkit [256715] by beidson@apple.com
  • 29 edits in trunk

Expose "allowsContentJavaScript" on WKWebpagePreferences
<rdar://problem/51534967> and https://bugs.webkit.org/show_bug.cgi?id=207427

Reviewed by Darin Adler.

Source/WebCore:

Covered by new API tests.

  • dom/Document.cpp:

(WebCore::Document::allowsContentJavaScript const):

  • dom/Document.h:
  • dom/ScriptableDocumentParser.cpp:

(WebCore::ScriptableDocumentParser::ScriptableDocumentParser):

  • loader/FrameLoaderClient.h:
  • loader/FrameLoaderTypes.h:
  • page/Settings.yaml:
  • xml/XMLHttpRequest.cpp: Make sure the context document is set BEFORE we parse the document contents.

Source/WebKit:

This utiizes the pre-existing WebCore::Settings::setScriptMarkupEnabled() mechanism.

This also deprecates the global "disable JavaScript" WKPreference as it doesn't make much sense anymore.

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):

  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences encodeWithCoder:]):
(-[WKPreferences initWithCoder:]):
(-[WKPreferences javaScriptEnabled]):
(-[WKPreferences setJavaScriptEnabled:]):

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

(-[WKWebpagePreferences setAllowsContentJavaScript:]):
(-[WKWebpagePreferences allowsContentJavaScript]):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::allowsContentJavaScriptFromMostRecentNavigation const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::didReceivePolicyDecision):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateWebsitePolicies):
(WebKit::WebPage::createDocumentLoader):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::allowsContentJavaScriptFromMostRecentNavigation const):
(WebKit::WebPage::setAllowsContentJavaScriptFromMostRecentNavigation):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[WebsitePoliciesNavigationDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(TEST):
(-[WebsitePoliciesNavigationDelegate _webView:decidePolicyForNavigationAction:preferences:userInfo:decisionHandler:]): Deleted.

  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[TestNavigationDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[TestNavigationDelegate waitForDidFinishNavigationWithPreferences:]):
(-[WKWebView _test_waitForDidFinishNavigationWithPreferences:]):
(-[TestNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView synchronouslyLoadHTMLString:preferences:]):

1:47 PM Changeset in webkit [256714] by Wenson Hsieh
  • 1 edit
    2 adds in trunk/LayoutTests

Add a layout test for <rdar://problem/59090510>
https://bugs.webkit.org/show_bug.cgi?id=207824

Reviewed by Anders Carlsson.

Add a layout test to verify that tapping near the caret rect in a focused input field still dispatches a click
event and brings up the keyboard.

  • fast/events/ios/click-in-autofocused-input-when-tapping-near-caret-expected.txt: Added.
  • fast/events/ios/click-in-autofocused-input-when-tapping-near-caret.html: Added.
12:58 PM Changeset in webkit [256713] by dino@apple.com
  • 2 edits in trunk/LayoutTests

Fix a typo and some merge conflict markers that
were checked in a few days ago.

  • platform/mac-wk2/TestExpectations:
7:43 AM Changeset in webkit [256712] by Alan Bujtas
  • 103 edits in trunk/LayoutTests

[LFC] Enable LFC regression testing on fast/block/block-only
https://bugs.webkit.org/show_bug.cgi?id=207825
<rdar://problem/59491089>

Reviewed by Antti Koivisto.

This helps to catch full LFC regressions while working on the integration part.

  • fast/block/block-only/abs-pos-with-border-padding-and-float-child-expected.html:
  • fast/block/block-only/abs-pos-with-border-padding-and-float-child.html:
  • fast/block/block-only/absolute-auto-with-sibling-margin-bottom.html:
  • fast/block/block-only/absolute-height-stretch.html:
  • fast/block/block-only/absolute-left-auto.html:
  • fast/block/block-only/absolute-left-right-top-bottom-auto.html:
  • fast/block/block-only/absolute-nested.html:
  • fast/block/block-only/absolute-nested2.html:
  • fast/block/block-only/absolute-position-left-right-margin.html:
  • fast/block/block-only/absolute-position-min-max-height.html:
  • fast/block/block-only/absolute-position-min-max-width.html:
  • fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context.html:
  • fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html:
  • fast/block/block-only/absolute-position-with-margin-auto-simple-expected.html:
  • fast/block/block-only/absolute-position-with-margin-auto-simple.html:
  • fast/block/block-only/absolute-position-with-margin-auto-simple2-expected.html:
  • fast/block/block-only/absolute-position-with-margin-auto-simple2.html:
  • fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding-expected.html:
  • fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding.html:
  • fast/block/block-only/absolute-simple.html:
  • fast/block/block-only/absolute-width-shrink-to-fit.html:
  • fast/block/block-only/absolute-width-stretch.html:
  • fast/block/block-only/absolute-with-static-block-position-nested.html:
  • fast/block/block-only/almost-intruding-left-float-simple.html:
  • fast/block/block-only/block-replaced-with-vertical-margins-expected.html:
  • fast/block/block-only/block-replaced-with-vertical-margins.html:
  • fast/block/block-only/body-height-with-auto-html-height-quirk.html:
  • fast/block/block-only/body-height-with-auto-html-height-quirk2.html:
  • fast/block/block-only/body-height-with-non-auto-html-height-quirk.html:
  • fast/block/block-only/body-height-with-non-auto-html-height-quirk2.html:
  • fast/block/block-only/border-simple.html:
  • fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html:
  • fast/block/block-only/collapsed-margin-with-min-height.html:
  • fast/block/block-only/collapsed-through-siblings.html:
  • fast/block/block-only/collapsed-through-with-parent.html:
  • fast/block/block-only/fixed-nested.html:
  • fast/block/block-only/float-and-siblings-with-margins.html:
  • fast/block/block-only/float-avoider-multiple-roots.html:
  • fast/block/block-only/float-avoider-simple-left.html:
  • fast/block/block-only/float-avoider-simple-right.html:
  • fast/block/block-only/float-avoider-with-margins.html:
  • fast/block/block-only/float-left-when-container-has-padding-margin.html:
  • fast/block/block-only/float-min-max-height.html:
  • fast/block/block-only/float-min-max-width.html:
  • fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html:
  • fast/block/block-only/floating-and-next-previous-inflow-with-margin.html:
  • fast/block/block-only/floating-box-clear-both-simple.html:
  • fast/block/block-only/floating-box-clear-right-simple.html:
  • fast/block/block-only/floating-box-left-and-right-multiple-with-top-offset.html:
  • fast/block/block-only/floating-box-left-and-right-multiple.html:
  • fast/block/block-only/floating-box-right-simple.html:
  • fast/block/block-only/floating-box-with-clear-siblings.html:
  • fast/block/block-only/floating-box-with-clear-simple.html:
  • fast/block/block-only/floating-box-with-new-formatting-context.html:
  • fast/block/block-only/floating-box-with-relative-positioned-sibling.html:
  • fast/block/block-only/floating-left-and-right-with-clearance.html:
  • fast/block/block-only/floating-left-right-simple.html:
  • fast/block/block-only/floating-left-right-with-all-margins.html:
  • fast/block/block-only/floating-lefts-and-rights-simple.html:
  • fast/block/block-only/floating-multiple-lefts-in-body.html:
  • fast/block/block-only/floating-multiple-lefts-multiple-lines.html:
  • fast/block/block-only/floating-multiple-lefts.html:
  • fast/block/block-only/floating-with-new-block-formatting-context.html:
  • fast/block/block-only/floats-and-block-formatting-roots-expected.html:
  • fast/block/block-only/floats-and-block-formatting-roots.html:
  • fast/block/block-only/inflow-min-max-height.html:
  • fast/block/block-only/inflow-min-max-width.html:
  • fast/block/block-only/margin-collapse-bottom-bottom.html:
  • fast/block/block-only/margin-collapse-bottom-nested.html:
  • fast/block/block-only/margin-collapse-first-last-are-floating.html:
  • fast/block/block-only/margin-collapse-simple.html:
  • fast/block/block-only/margin-collapse-top-nested.html:
  • fast/block/block-only/margin-collapse-when-child-has-padding-border.html:
  • fast/block/block-only/margin-collapse-with-block-formatting-context.html:
  • fast/block/block-only/margin-collapse-with-block-formatting-context2.html:
  • fast/block/block-only/margin-collapse-with-clearance.html:
  • fast/block/block-only/margin-left-right-sizing-out-of-flow.html:
  • fast/block/block-only/margin-left-right-sizing.html:
  • fast/block/block-only/margin-propagation-simple-content-height.html:
  • fast/block/block-only/margin-sibling-collapse-propagated.html:
  • fast/block/block-only/margin-simple.html:
  • fast/block/block-only/min-max-and-preferred-width-simple-expected.html:
  • fast/block/block-only/min-max-and-preferred-width-simple.html:
  • fast/block/block-only/min-max-height-percentage.html:
  • fast/block/block-only/negative-margin-simple.html:
  • fast/block/block-only/non-auto-top-bottom-height-with-auto-margins.html:
  • fast/block/block-only/non-auto-top-bottom-height-with-margins.html:
  • fast/block/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow.html:
  • fast/block/block-only/out-of-flow-is-never-float-box-expected.html:
  • fast/block/block-only/out-of-flow-is-never-float-box.html:
  • fast/block/block-only/out-of-flow-with-containing-block-border-padding.html:
  • fast/block/block-only/padding-nested.html:
  • fast/block/block-only/padding-simple.html:
  • fast/block/block-only/relative-auto-with-parent-offset.html:
  • fast/block/block-only/relative-auto.html:
  • fast/block/block-only/relative-bottom.html:
  • fast/block/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context.html:
  • fast/block/block-only/relative-right.html:
  • fast/block/block-only/relative-siblings.html:
  • fast/block/block-only/relative-simple.html:
  • fast/block/block-only/replaced-intrinsic-width-simple-expected.html:
  • fast/block/block-only/replaced-intrinsic-width-simple.html:
7:38 AM Changeset in webkit [256711] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Float] Simplify BlockFormattingContext::usedAvailableWidthForFloatAvoider
https://bugs.webkit.org/show_bug.cgi?id=207823
<rdar://problem/59490669>

Reviewed by Antti Koivisto.

The containing block of this float avoider is either a non-avoider or a formatting context root avoider,
so we don't have to map the left position (and now LFC passes fast/block/block-only again).

  • layout/FormattingContext.cpp:

(WebCore::Layout::mapHorizontalPositionToAncestor): Deleted.
(WebCore::Layout::FormattingContext::mapTopToFormattingContextRoot const): Deleted.
(WebCore::Layout::FormattingContext::mapLeftToFormattingContextRoot const): Deleted.
(WebCore::Layout::FormattingContext::mapRightToFormattingContextRoot const): Deleted.

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

7:23 AM Changeset in webkit [256710] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] Formatting context roots position their own relative children
https://bugs.webkit.org/show_bug.cgi?id=207822
<rdar://problem/59490353>

Reviewed by Antti Koivisto.

Since FCs are responsible for positioning their relative positioned children, we
don't have to do it as part of the final positioning.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):

  • layout/blockformatting/BlockFormattingContext.h:
7:18 AM Changeset in webkit [256709] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] A box establishing an independent formatting context is not a float avoider
https://bugs.webkit.org/show_bug.cgi?id=207820
<rdar://problem/59490056>

Reviewed by Antti Koivisto.

Since the independent formatting context does not inherit the parent's floating context,
the box's content essentially ignores the floats and the box itself does not avoid them either
(aka its position is independent of the floats in the same context).

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isFloatAvoider const):

7:14 AM Changeset in webkit [256708] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Floats] FloatingContext::positionForFloat needs the horizontal constrains
https://bugs.webkit.org/show_bug.cgi?id=207818
<rdar://problem/59489777>

Reviewed by Antti Koivisto.

We need to access the containing block's geometry (horizontal constraints) to align a floating positioned
box in an empty floating context.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):

7:09 AM Changeset in webkit [256707] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC] Fix horizontal/verticalConstraintsForAncestor in BlockFormattingContext::precomputeVerticalPositionForAncestors
https://bugs.webkit.org/show_bug.cgi?id=207817
<rdar://problem/59489735>

Reviewed by Antti Koivisto.

horizontalConstraintsForAncestor/verticalConstraintsForAncestor should return the constraints (containing block's content box width etc)
of the ancestor.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForAncestors):

Feb 15, 2020:

2:20 PM Changeset in webkit [256706] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GStreamer] Build failure with Clang/libc++ due to missing WallTime→float for std::isnan()
https://bugs.webkit.org/show_bug.cgi?id=207757

Unreviewed build fix.

No new tests needed.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::dataReceived): Add std:: namespace to overloaded
std::isnan() function call to ensure that the overloaded version for WTF::WallTime
is used.

2:02 PM Changeset in webkit [256705] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix for non-unified builds.

No new tests needed.

  • animation/AnimationEventBase.cpp: Add missing include.
  • animation/DeclarativeAnimation.cpp: Ditto.
2:01 PM Changeset in webkit [256704] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] ConstraintsPair is only needed for the pre-computed vertical position
https://bugs.webkit.org/show_bug.cgi?id=207814
<rdar://problem/59485612>

Reviewed by Antti Koivisto.

After r256099 (Pre-compute vertical position only when we really need it), ConstraintsPair<> is only
needed in few functions.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
1:30 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
1:29 PM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
1:26 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
1:24 PM Changeset in webkit [256703] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[Geoclue] Avoid usage of provider in callbacks after it has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=207420

GeoclueGeolocationProvider was making non-cancelable g_dbus_proxy_call(s) with
bare |this| pointer.

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-15
Reviewed by Carlos Garcia Campos.

  • UIProcess/geoclue/GeoclueGeolocationProvider.cpp:

(WebKit::GeoclueGeolocationProvider::start):
(WebKit::GeoclueGeolocationProvider::stop):
(WebKit::GeoclueGeolocationProvider::setupManager):
(WebKit::GeoclueGeolocationProvider::createClient):
(WebKit::GeoclueGeolocationProvider::startClient):
(WebKit::GeoclueGeolocationProvider::didFail):

  • UIProcess/geoclue/GeoclueGeolocationProvider.h:
7:17 AM Changeset in webkit [256702] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC] Introduce OutOfFlowHorizontalConstraints
https://bugs.webkit.org/show_bug.cgi?id=207805
<rdar://problem/59482286>

Reviewed by Antti Koivisto.

Borders and paddings are resolved against the containing block's content box as if the box was an in-flow box.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForOutOfFlow):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/LayoutUnits.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

6:15 AM Changeset in webkit [256701] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Anonymous inline boxes/line break boxes do not generate Display::Boxes
https://bugs.webkit.org/show_bug.cgi?id=207802
<rdar://problem/59480138>

Reviewed by Antti Koivisto.

  1. Painting should not expect a Display::Box per Layout::Box.
  2. Do not generate empty Display::Boxes for anonymous inline text boxes/line breaks.
  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::displayBox):

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintSubtree):
(WebCore::Display::collectPaintRootsAndContentRect):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

Feb 14, 2020:

10:54 PM Changeset in webkit [256700] by commit-queue@webkit.org
  • 17 edits in trunk

Unreviewed, rolling out r256633.
https://bugs.webkit.org/show_bug.cgi?id=207807

4% memory regression in new Membuster, possibly some leaking
in WebKit Malloc? (Requested by yusukesuzuki on #webkit).

Reverted changeset:

"[Win] Implement NetworkCache::Data by using
FileSystem::MappedFileData"
https://bugs.webkit.org/show_bug.cgi?id=197684
https://trac.webkit.org/changeset/256633

8:25 PM Changeset in webkit [256699] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Layout test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160129

Last timeout was in r251772 and before that in r217571. Updating
expectation to reflect the new flaky crash affecting media tests
tracked in bug198830.

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
7:19 PM Changeset in webkit [256698] by Tadeu Zagallo
  • 3 edits in trunk/JSTests

Unreviewed: fix broken tests added in r256665
https://bugs.webkit.org/show_bug.cgi?id=207727

Our inline WAT doesn't seem to like named blocks/branch targets.

  • wasm/regress/llint-callee-saves-with-fast-memory.js:
  • wasm/regress/llint-callee-saves-without-fast-memory.js:
7:19 PM Changeset in webkit [256697] by jonlee@apple.com
  • 12 edits
    3 adds in trunk

Mask WebGL strings
https://bugs.webkit.org/show_bug.cgi?id=207608

Reviewed by Dean Jackson.

Source/WebCore:

Test: platform/mac/webgl/fingerprinting-strings.html

Add new experimental feature to mask WebGL vendor, renderer, and shading language strings.

  • html/canvas/WebGL2RenderingContext.cpp: Whitespace cleanup also.

(WebCore::WebGL2RenderingContext::getParameter): Check against the runtime feature to return the
old string.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getParameter): Ditto.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setMaskWebGLStringsEnabled):
(WebCore::RuntimeEnabledFeatures::maskWebGLStringsEnabled const):

Source/WebKit:

Test: platform/mac/webgl/fingerprinting-strings.html

  • Shared/WebPreferences.yaml: Add new experimental feature.

Source/WebKitLegacy/mac:

Test: platform/mac/webgl/fingerprinting-strings.html

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

LayoutTests:

  • platform/mac/webgl/fingerprinting-strings-expected.txt: Added.
  • platform/mac/webgl/fingerprinting-strings.html: Added.
7:02 PM Changeset in webkit [256696] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256636. rdar://problem/59478734

[Web Animations] Missing call to DocumentTimeline::resumeAnimations() in Frame::resumeActiveDOMObjectsAndAnimations()
https://bugs.webkit.org/show_bug.cgi?id=207784
<rdar://problem/59251858>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Dean Jackson.

After auditing the code, there was one call to CSSAnimationController::resumeAnimationsForDocument() that missed a matching DocumentTimeline::resumeAnimations()
call should the Web Animations flag be on.

  • page/Frame.cpp: (WebCore::Frame::resumeActiveDOMObjectsAndAnimations):

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

7:02 PM Changeset in webkit [256695] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256629. rdar://problem/59478949

Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
https://bugs.webkit.org/show_bug.cgi?id=207360
<rdar://problem/57825317>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-14
Reviewed by Ryosuke Niwa.

Source/WTF:

  • wtf/URLHelpers.cpp: (WTF::URLHelpers::mapHostName):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm: (TestWebKitAPI::TEST):

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

7:02 PM Changeset in webkit [256694] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256623. rdar://problem/59478938

Ensure animations that lose their effect don't schedule an animation update
https://bugs.webkit.org/show_bug.cgi?id=207713
rdar://59174840

Patch by Sunny He <sunny_he@apple.com> on 2020-02-14
Reviewed by Antoine Quint.

Source/WebCore:
An active animation for which the effect is removed may be considered for
an upcoming animation resolution. However, WebAnimation::timeToNextTick()
expects a valid effect to be available to be able to determine timing.
We now check an animation is relevant before calling timeToNextTick() and
add an ASSERT() in that function to catch cases where an animation effect
might not be available.

Source/WebCore:

Test: webanimations/animation-null-effect.html

  • animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::scheduleNextTick):
  • animation/WebAnimation.cpp: (WebCore::WebAnimation::timeToNextTick const):

LayoutTests:

  • webanimations/animation-null-effect-expected.txt: Added.
  • webanimations/animation-null-effect.html: Added.

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

7:02 PM Changeset in webkit [256693] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256580. rdar://problem/59478981

Dark Mode: In Notes, list item becomes invisible in dark mode after outdenting
https://bugs.webkit.org/show_bug.cgi?id=207676

Reviewed by Wenson Hsieh and Timothy Hatcher.

Source/WebCore:

The bug was caused by EditingStyle::inverseTransformColorIfNeeded converting -apple-system-label to
transparent color in ReplaceSelectionCommand when InsertListCommand invokes moveParagraphs.

This patch fixes the bug in EditingStyle::inverseTransformColorIfNeeded by treating any semantic color
name or semantic RGB color value as if the color was not specified.

It also fixes the bug that removeStyleFromRulesAndContext was incapable of removing superflous semantic
color names that appear in the inline since the context's computed style only contain RGB values by
replacing the inline style's color values with that of the computed style. This fix is necessary to
eliminate -apple-system-label in the pasted content, which can cause issues when such a content is
sync'ed to other devices via iCloud, etc...

Tests: PasteHTML.TransformColorsOfDarkContentButNotSemanticColor

PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent

  • editing/EditingStyle.cpp: (WebCore::EditingStyle::removeStyleFromRulesAndContext): (WebCore::EditingStyle::inverseTransformColorIfNeeded):

Tools:

Added regression tests for pasting content with -apple-system-label and outdenting content.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm: (PasteHTML.TransformColorsOfDarkContentButNotSemanticColor): (PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent):

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

7:02 PM Changeset in webkit [256692] by Russell Epstein
  • 5 edits in branches/safari-609-branch/Source

Cherry-pick r256498. rdar://problem/59478929

[JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
https://bugs.webkit.org/show_bug.cgi?id=207673

Reviewed by Mark Lam.

Source/JavaScriptCore:

While BytecodeIndex is 4 bytes, CodeLocation is 8 bytes. So the tuple of them "JITCodeMap::Entry"
becomes 16 bytes because it adds 4 bytes padding. We should store BytecodeIndex and CodeLocation separately
to avoid this padding.

This patch introduces JITCodeMapBuilder. We use this to build JITCodeMap data structure as a immutable final result.

  • jit/JIT.cpp: (JSC::JIT::link):
  • jit/JITCodeMap.h: (JSC::JITCodeMap::JITCodeMap): (JSC::JITCodeMap::find const): (JSC::JITCodeMap::operator bool const): (JSC::JITCodeMap::codeLocations const): (JSC::JITCodeMap::indexes const): (JSC::JITCodeMapBuilder::append): (JSC::JITCodeMapBuilder::finalize): (JSC::JITCodeMap::Entry::Entry): Deleted. (JSC::JITCodeMap::Entry::bytecodeIndex const): Deleted. (JSC::JITCodeMap::Entry::codeLocation): Deleted. (JSC::JITCodeMap::append): Deleted. (JSC::JITCodeMap::finish): Deleted.

Source/WTF:

  • wtf/MallocPtr.h:

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

7:02 PM Changeset in webkit [256691] by Russell Epstein
  • 16 edits in branches/safari-609-branch/Source

Cherry-pick r256482. rdar://problem/59478881

Shrink CachedResource
https://bugs.webkit.org/show_bug.cgi?id=207618

Reviewed by Mark Lam.

Source/WebCore:

This patch shrinks sizeof(CachedResource) by 80 bytes by aggressively using bit-fields and Markable<>.
For each enum class, we define bitsOfXXX value, which indicates # of bits to represent it. And using
this value for bit-field's width.

No behavior change.

  • loader/FetchOptions.h: (WebCore::FetchOptions::encode const):
  • loader/ResourceLoaderOptions.h: (WebCore::ResourceLoaderOptions::ResourceLoaderOptions): (WebCore::ResourceLoaderOptions::loadedFromOpaqueSource):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::CachedImage): (WebCore::CachedImage::shouldDeferUpdateImageData const): (WebCore::CachedImage::didUpdateImageData):
  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.cpp: (WebCore::CachedResource::CachedResource): (WebCore::CachedResource::load): (WebCore::CachedResource::finish):
  • loader/cache/CachedResource.h: (WebCore::CachedResource::setStatus):
  • page/csp/ContentSecurityPolicyResponseHeaders.h: (WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::isEmptyValue): (WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::emptyValue): (WebCore::ContentSecurityPolicyResponseHeaders::ContentSecurityPolicyResponseHeaders):
  • platform/network/NetworkLoadMetrics.h: (WebCore::NetworkLoadMetrics::isolatedCopy const): (WebCore::NetworkLoadMetrics::clearNonTimingData): (WebCore::NetworkLoadMetrics::operator== const): (WebCore::NetworkLoadMetrics::encode const): (WebCore::NetworkLoadMetrics::decode):
  • platform/network/ResourceLoadPriority.h:
  • platform/network/ResourceRequestBase.h: (WebCore::ResourceRequestBase::ResourceRequestBase):
  • platform/network/ResourceResponseBase.h:
  • platform/network/StoredCredentialsPolicy.h:

Source/WTF:

  • wtf/Markable.h: (WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
  • wtf/ObjectIdentifier.h: (WTF::ObjectIdentifier::MarkableTraits::isEmptyValue): (WTF::ObjectIdentifier::MarkableTraits::emptyValue): (WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.

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

7:02 PM Changeset in webkit [256690] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r256467. rdar://problem/59478994

[JSC] Make RegExpCache small
https://bugs.webkit.org/show_bug.cgi?id=207619

Reviewed by Mark Lam.

We can compact RegExpKey by using PackedRefPtr, so that we can shrink memory consumption of RegExpCache.

  • runtime/RegExpKey.h:

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

7:02 PM Changeset in webkit [256689] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256423. rdar://problem/59478731

Compress ImmutableStyleProperties by using PackedPtr
https://bugs.webkit.org/show_bug.cgi?id=207604

Reviewed by Mark Lam.

ImmutableStyleProperties is kept so long and consumes enough memory.
We already attempted to compact it by storing CSSProperty's members separately.
But we can compact further by using PackedPtr. This patch makes,

  1. Use PackedPtr for CSSValue* in ImmutableStyleProperties so that we can cut some bytes
  2. Reorder CSSValue* and StylePropertyMetadata arrays since StylePropertyMetadata requires alignment while PackedPtr<CSSValue> is not.

No behavior change.

  • css/StyleProperties.cpp: (WebCore::sizeForImmutableStylePropertiesWithPropertyCount): (WebCore::ImmutableStyleProperties::ImmutableStyleProperties): (WebCore::ImmutableStyleProperties::~ImmutableStyleProperties): (WebCore::ImmutableStyleProperties::findCustomPropertyIndex const):
  • css/StyleProperties.h: (WebCore::ImmutableStyleProperties::valueArray const): (WebCore::ImmutableStyleProperties::metadataArray const): (WebCore::ImmutableStyleProperties::propertyAt const):

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

7:02 PM Changeset in webkit [256688] by Russell Epstein
  • 13 edits
    2 adds in branches/safari-609-branch

Cherry-pick r254681. rdar://problem/59474790

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=206299

Reviewed by Brent Fulgham.

.:

This patch has been created by don.olmstead@sony.com and pvollan@apple.com. Add target files for WTF and
JavaScriptCore. Also, to make sure headers are copied to the forwarding headers directory, add the CMake
keywork ALL when adding custom target for copying files.

  • Source/cmake/TargetJavaScriptCore.cmake: Added.
  • Source/cmake/TargetWTF.cmake: Added.
  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

Include required target. Build internal builds with VS2019.

Source/WebCore:

Include required targets. Build internal builds with VS2019.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.proj:

Source/WebKitLegacy:

Include required targets. Build internal builds with VS2019.

  • CMakeLists.txt:
  • WebKitLegacy.vcxproj/WebKitLegacy.proj:

Source/WTF:

Build internal builds with VS2019.

  • WTF.vcxproj/WTF.proj:

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

7:02 PM Changeset in webkit [256687] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source

Cherry-pick r252849. rdar://problem/59446998

Crash in WebCore::ServiceWorkerRegistrationKey::hash() const
https://bugs.webkit.org/show_bug.cgi?id=204497
<rdar://problem/57348603>

Reviewed by Alex Christensen.

Source/WebCore:

Update ServiceWorkerContainer::jobResolvedWithRegistration to handle the case of a
ServiceWorkerContainer that might have a job whose promise is not related to the same context.
In that case, the ServiceWorkerContainer might get stopped, thus its m_ongoingSettledRegistrations be cleared.
But the promise may get settled shortly after since its context is not stopped and will then retrieve an empty registration data key.
This is difficult to test given we do not control when the resolvedWithRegistration task is posted to the client.

  • workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
  • workers/service/ServiceWorkerRegistrationKey.h: (WebCore::ServiceWorkerRegistrationKey::encode const): Add release asserts to make sure we do not store/transfer empty registration keys.

Source/WebKit:

  • WebProcess/Storage/WebSWClientConnection.cpp: (WebKit::WebSWClientConnection::scheduleJobInServer): Add a release assert to be able to further debug the crash.

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

7:02 PM Changeset in webkit [256686] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WTF

Cherry-pick r256203. rdar://problem/59446995

Unreviewed, speculative build fix on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183

  • wtf/HashTable.h: (WTF::HashTableCapacityForSize::capacityForSize):

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

7:02 PM Changeset in webkit [256685] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WTF

Cherry-pick r256194. rdar://problem/59446995

Unreviewed, fix build failure on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183

  • wtf/HashTable.h: (WTF::HashTableCapacityForSize::capacityForSize):

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

7:02 PM Changeset in webkit [256684] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256093. rdar://problem/59446995

[WTF] Try using 75% load factor for HashTable
https://bugs.webkit.org/show_bug.cgi?id=207183

Reviewed by Mark Lam.

Source/WTF:

We know that hash-table is one of the most memory consuming part in WebKit.
By analyzing many production hash-table implementations[1], I found that many
of them are using 75% load-factor while our one is 50%.

This patch changes the load-factor from 50% to 75%. But we pick 75% only for
small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
The collected data is telling that longer probe-length affects on performance if table
size gets larger.

[1]: LLVM DenseMap, Abseil's, rust's, and so on.

  • wtf/HashTable.h: (WTF::HashTableCapacityForSize::shouldExpand): (WTF::HashTableCapacityForSize::capacityForSize): (WTF::HashTable::shouldExpand const): (WTF::KeyTraits>::computeBestTableSize):

Tools:

  • TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):

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

7:02 PM Changeset in webkit [256683] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256011. rdar://problem/59446995

Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
https://bugs.webkit.org/show_bug.cgi?id=207183

Source/WTF:

  • wtf/HashTable.h: (WTF::HashTable::shouldExpand const): (WTF::KeyTraits>::computeBestTableSize): (WTF::HashTable::shouldExpand): Deleted. (WTF::HashTableCapacityForSize::capacityForSize): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):

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

7:02 PM Changeset in webkit [256682] by Russell Epstein
  • 6 edits in branches/safari-609-branch

Cherry-pick r255889. rdar://problem/59446995

[WTF] Try using 75% load factor for HashTable
https://bugs.webkit.org/show_bug.cgi?id=207183

Reviewed by Mark Lam.

Source/WTF:

We know that hash-table is one of the most memory consuming part in WebKit.
By analyzing many production hash-table implementations[1], I found that many
of them are using 75% load-factor while our one is 50%.

A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
JetStream2, while it offers 2~% improvement in Membuster. This means that we are
wasting too much memory for no-performance-improvement.

This patch changes the load-factor from 50% to 75%.

[1]: LLVM DenseMap, Abseil's, rust's, and so on.

  • wtf/HashTable.h: (WTF::HashTable::shouldExpand): (WTF::HashTable::shouldExpand const): (WTF::HashTableCapacityForSize::capacityForSize): (WTF::KeyTraits>::computeBestTableSize):

Tools:

Fix load-factor assumption in existing tests.

  • TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):

LayoutTests:

It seems that this test is relying on hash-table's order.

  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:

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

7:02 PM Changeset in webkit [256681] by Russell Epstein
  • 5 edits in branches/safari-609-branch

Cherry-pick r255611. rdar://problem/59446995

Reduce size of HashMap and HashSet
https://bugs.webkit.org/show_bug.cgi?id=207138

Reviewed by Yusuke Suzuki.

Source/WTF:

This reduces sizeof(HashMap) and sizeof(HashSet) from 24 to 8 on 64-bit systems.
I measured that the overwhelming majority of HashMaps and HashSets never see more than 0 elements,
so I moved the table metadata (tableSize, tableSizeMask, keyCount, deletedCount) to inside the
dynamically allocated memory. This makes another branch in size() for non-empty tables
and an additional read and write when rehashing in exchange for fewer writes in the constructor
and increased cache locality of everything that uses HashMap and HashSet, which is basically everything.

  • wtf/HashTable.h: (WTF::HashTable::~HashTable): (WTF::HashTable::end): (WTF::HashTable::end const): (WTF::HashTable::random): (WTF::HashTable::size const): (WTF::HashTable::capacity const): (WTF::HashTable::isEmpty const): (WTF::HashTable::reserveInitialCapacity): (WTF::HashTable::shouldExpand const): (WTF::HashTable::mustRehashInPlace const): (WTF::HashTable::shouldShrink const): (WTF::HashTable::shrink): (WTF::HashTable::makeIterator): (WTF::HashTable::makeConstIterator const): (WTF::HashTable::makeKnownGoodIterator): (WTF::HashTable::makeKnownGoodConstIterator const): (WTF::HashTable::tableSize const): (WTF::HashTable::setTableSize const): (WTF::HashTable::tableSizeMask const): (WTF::HashTable::setTableSizeMask): (WTF::HashTable::keyCount const): (WTF::HashTable::setKeyCount const): (WTF::HashTable::deletedCount const): (WTF::HashTable::setDeletedCount const): (WTF::KeyTraits>::HashTable): (WTF::KeyTraits>::inlineLookup): (WTF::KeyTraits>::lookupForWriting): (WTF::KeyTraits>::fullLookupForWriting): (WTF::KeyTraits>::addUniqueForInitialization): (WTF::KeyTraits>::add): (WTF::KeyTraits>::addPassingHashCode): (WTF::KeyTraits>::remove): (WTF::KeyTraits>::removeIf): (WTF::KeyTraits>::allocateTable): (WTF::KeyTraits>::deallocateTable): (WTF::KeyTraits>::expand): (WTF::KeyTraits>::shrinkToBestSize): (WTF::KeyTraits>::deleteReleasedWeakBuckets): (WTF::KeyTraits>::rehash): (WTF::KeyTraits>::clear): (WTF::KeyTraits>::swap): (WTF::KeyTraits>::checkTableConsistencyExceptSize const):

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::TEST):

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

7:02 PM Changeset in webkit [256680] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256578. rdar://problem/59447009

Protect WebSWServerConnection::scheduleJobInServer from bad scopeURL
https://bugs.webkit.org/show_bug.cgi?id=207722

Reviewed by Chris Dumez.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::scheduleJobInServer): In case of bad scope, fail the job early on.
  • WebProcess/Storage/WebSWClientConnection.cpp: (WebKit::WebSWClientConnection::scheduleJobInServer): Remove the RELEASE_ASSERT from now since we defend in Network process. We will add it back in ServiceWorkerRegistration::getOrCreate as a follow-up.

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

7:01 PM Changeset in webkit [256679] by Russell Epstein
  • 11 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256494. rdar://problem/59446989

CSSValuePool's constant CSS values should not be allocated dynamically (and same for Vectors)
https://bugs.webkit.org/show_bug.cgi?id=207666

Reviewed by Mark Lam.

r252785 changes contents (CSSValues and Vectors) of CSSValuePool from static ones to
dynamically allocated ones. This was done since we would like to use static CSSValues
even in the other threads (workers etc.) for OffscreenCanvas feature.

But this causes memory regression in Membuster since we allocates many CSSValues and
large Vectors, and they are kept persistently.

This patch removes dynamic allocation part of r252785 to recover memory regression.
The key of this patch is introducing Static CSSValue feature. When incrementing / decrementing
m_refCount of CSSValue, we add / subtract by 0x2. And we put 0x1 as a static-flag. So, even if
this CSSValue is used by multiple threads, we never see that CSSValue gets 0 m_refCount if
it is marked as static (having 0x1). This is the same design to our static StringImpl.

No behavior change.

  • css/CSSInheritedValue.h:
  • css/CSSInitialValue.h:
  • css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
  • css/CSSPrimitiveValue.h:
  • css/CSSRevertValue.h:
  • css/CSSUnsetValue.h:
  • css/CSSValue.cpp:
  • css/CSSValue.h: (WebCore::CSSValue::ref const): (WebCore::CSSValue::hasOneRef const): (WebCore::CSSValue::refCount const): (WebCore::CSSValue::hasAtLeastOneRef const): (WebCore::CSSValue::deref): (WebCore::CSSValue::makeStatic):
  • css/CSSValuePool.cpp: (WebCore::StaticCSSValuePool::StaticCSSValuePool): (WebCore::StaticCSSValuePool::init): (WebCore::CSSValuePool::CSSValuePool): (WebCore::CSSValuePool::singleton): (WebCore::CSSValuePool::createIdentifierValue): (WebCore::CSSValuePool::createColorValue): (WebCore::CSSValuePool::createValue):
  • css/CSSValuePool.h: (WebCore::CSSValuePool::createInheritedValue): (WebCore::CSSValuePool::createImplicitInitialValue): (WebCore::CSSValuePool::createExplicitInitialValue): (WebCore::CSSValuePool::createUnsetValue): (WebCore::CSSValuePool::createRevertValue):

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

7:01 PM Changeset in webkit [256678] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256474. rdar://problem/59446973

Web Inspector: inspector/cpu-profiler/threads.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=207588
<rdar://problem/57458123>

Reviewed by Yusuke Suzuki.

  • page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::ResourceUsageThread::platformCollectCPUData): Use a fence to force Thread to be completely ready for use by other threads prior to storing it. Otherwise, ResourceUsageThread may see it too early.
  • workers/WorkerThread.cpp: (WebCore::WorkerThread::start): Ignore worker threads that are not fully initialized.

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

7:01 PM Changeset in webkit [256677] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256470. rdar://problem/59446998

ServiceWorkerContainer::jobResolvedWithRegistration scopeExit should capture all lambda parameters by value
https://bugs.webkit.org/show_bug.cgi?id=207657

Reviewed by Chris Dumez.

shouldNotifyWhenResolved is captured by reference in the notifyIfExitEarly ScopeExit lambda.
The ScopeExit is not always called synchronously so it is unsafe to capture values by reference here.

  • workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

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

7:01 PM Changeset in webkit [256676] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256452. rdar://problem/59446979

Pages that trigger a redirect will sometimes be left blank
https://bugs.webkit.org/show_bug.cgi?id=207614
rdar://problem/59077740

Reviewed by Tim Horton.

TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
time. However, this sequence of calls had a bug:

setRootCompositingGraphicsLayer() when frozen

-> stash in m_pendingRootLayer

setRootCompositingGraphicsLayer() when not frozen

-> set the root layer

flushLayers()

-> set the root layer to the (old) m_pendingRootLayer

So we need to clear m_pendingRootLayer at step 2.

Very timing dependent, hard to test.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):

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

7:01 PM Changeset in webkit [256675] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256447. rdar://problem/59446998

RELEASE_ASSERT() under WebSWClientConnection::didResolveRegistrationPromise()
https://bugs.webkit.org/show_bug.cgi?id=207637
<rdar://problem/59093490>

Reviewed by Youenn Fablet.

We were capturing data by reference in the notifyIfExitEarly ScopeExit lambda and then capturing it
in the task posted to the event loop, which was unsafe.

  • workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

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

7:01 PM Changeset in webkit [256674] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256427. rdar://problem/59447029

Fix crash due to uninitialized currentStyle in CSSTransition
https://bugs.webkit.org/show_bug.cgi?id=205959
<rdar://57073673>

Patch by Sunny He <sunny_he@apple.com> on 2020-02-12
Reviewed by Antoine Quint.

Source/WebCore:

Test: legacy-animation-engine/transitions/svg-bad-scale-crash.html

  • animation/CSSTransition.cpp: (WebCore::CSSTransition::create): (WebCore::CSSTransition::CSSTransition):
  • animation/CSSTransition.h:

LayoutTests:

Fix crash due to uninitialized currentStyle in CSSTransition

  • legacy-animation-engine/transitions/svg-bad-scale-crash-expected.txt: Added.
  • legacy-animation-engine/transitions/svg-bad-scale-crash.html: Added.

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

7:01 PM Changeset in webkit [256673] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256401. rdar://problem/59447020

WebPage::getFocusedElementInformation should be robust when the focused element changes during layout
https://bugs.webkit.org/show_bug.cgi?id=207582
<rdar://problem/47634344>

Reviewed by Tim Horton.

This is a speculative fix for <rdar://problem/47634344>, wherein the …
getFocusedElementInformation may cause the currently focused element to disappear (or change). In the case where m_focusedElement becomes nil, we end up crashing with a null pointer deref, since the rest of the method assumes that m_focusedElement exists.

To patch this crash, bail early (after the first layout update) if m_focusedElement changed during the layout
pass. Since the rest of the function my trigger even more layout updates that could nuke m_focusedElement, I
also changed the rest of the function to use the locally stored focusedElement variable instead of
m_focusedElement, on WebPage.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getFocusedElementInformation):

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

7:01 PM Changeset in webkit [256672] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256395. rdar://problem/59447024

Bug 207424: Crash in WebCore::ParsedContentType::parseContentType when parsing invalid MIME type
<https://webkit.org/b/207424>
<rdar://problem/59250384>

Patch by Rob Buis <rbuis@igalia.com> and David Kilzer <ddkilzer@apple.com> on 2020-02-11
Reviewed by Rob Buis.

Source/WebCore:

Return StringView directly rather than wrapping
it in Optional, since StringView's can be null tested.

Tests: TestWebKitAPI.ParsedContentType

  • platform/network/ParsedContentType.cpp: (WebCore::parseToken): (WebCore::parseQuotedString): (WebCore::ParsedContentType::parseContentType): Don't set type parameter if parameterName is null string. Remove unneeded parameterName variable; use keyRange.toString() instead.

Tools:

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp: (TestWebKitAPI::TEST): Add more tests.

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

7:01 PM Changeset in webkit [256671] by Russell Epstein
  • 5 edits in branches/safari-609-branch

Cherry-pick r256377. rdar://problem/59446971

Regression: RTCRtpSender.getCapabilities("video") returns null on iOS 13.4 (17E5223h)
https://bugs.webkit.org/show_bug.cgi?id=207325
<rdar://problem/59224810>

Reviewed by Eric Carlson.

Source/WebCore:

Manually tested and covered by API test.

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: (WebCore::LibWebRTCProvider::webRTCAvailable): Return true unconditionally on iOS since libwebrtc.dylib is always available.

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm: (TestWebKitAPI::TEST): Add a test validating that RTCRtpSender.getCapabilities does not return null.
  • TestWebKitAPI/Tests/WebKit/getUserMedia.html:

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

7:01 PM Changeset in webkit [256670] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256346. rdar://problem/59446984

video.currentTime is not being updated in iOS 13.4 Beta
https://bugs.webkit.org/show_bug.cgi?id=207489
<rdar://problem/59322640>

Reviewed by Youenn Fablet.

Source/WebKit:

Allow the Web process and the GPU process to communicate with
'com.apple.coremedia.audiodeviceclock.xpc' because it is necessary to use a
CMTimeBase, which is used by MediaPlayerPrivateMediaStreamAVFObjC for currentTime.

Test: fast/mediastream/media-element-current-time.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

LayoutTests:

  • fast/mediastream/media-element-current-time.html: Added.

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

7:01 PM Changeset in webkit [256669] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore/PAL

Cherry-pick r256320. rdar://problem/59447006

AX: Wrong includes for internal SDK
https://bugs.webkit.org/show_bug.cgi?id=207554

Reviewed by Chris Dumez.

  • pal/spi/mac/HIServicesSPI.h:

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

7:01 PM Changeset in webkit [256668] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256233. rdar://problem/59447027

WebKit::WebProcessPool::initializeClassesForParameterCoding() should keep a copy of CString
<https://webkit.org/b/207519>
<rdar://problem/59043436>

Reviewed by Brent Fulgham.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::initializeClassesForParameterCoding):
  • Change className to keep a copy of the CString object.

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

7:01 PM Changeset in webkit [256667] by Russell Epstein
  • 8 edits in branches/safari-609-branch

Cherry-pick r256207. rdar://problem/59447263

Don't update selection when calling setSelectionRange on a disconnected input element
https://bugs.webkit.org/show_bug.cgi?id=207357

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined the test that progressed a little. The test now passes offset checks but still fails direction check.

  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt:

Source/WebCore:

Don't update FrameSelection when the text form control element is disconnected from document.

  • html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setSelectionRange):

LayoutTests:

Rebaselined the test that has progressed with this change.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:

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

7:01 PM Changeset in webkit [256666] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256187. rdar://problem/59446994

Crash under WebProcessProxy::shouldSendPendingMessage()
https://bugs.webkit.org/show_bug.cgi?id=207464
<rdar://problem/59293825>

Reviewed by Alex Christensen.

I suspect the WebProcessProxy object is getting destroyed as we are iterating over the
pending messages in AuxiliaryProcessProxy::didFinishLaunching(), thus crashing when
calling WebProcessProxy::shouldSendPendingMessage() inside the loop. As a speculative
fix, protect |this| at the beginning of WebProcessProxy::didFinishLaunching().

  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching):

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

6:57 PM Changeset in webkit [256665] by Tadeu Zagallo
  • 9 edits
    2 adds in trunk

[WASM] Wasm interpreter's calling convention doesn't match Wasm JIT's convention.
https://bugs.webkit.org/show_bug.cgi?id=207727

JSTests:

Reviewed by Mark Lam.

  • wasm/regress/llint-callee-saves-with-fast-memory.js: Added.
  • wasm/regress/llint-callee-saves-without-fast-memory.js: Added.

Source/JavaScriptCore:

Reviewed by Mark Lam.

The Wasm JIT has unusual calling conventions, which were further complicated by the addition
of the interpreter, and the interpreter did not correctly follow these conventions (by incorrectly
saving and restoring the callee save registers used for the memory base and size). Here's a summary
of the calling convention:

  • When entering Wasm from JS, the wrapper must:
    • Preserve the base and size when entering LLInt regardless of the mode. (Prior to this patch we only preserved the base in Signaling mode)
    • Preserve the memory base in either mode, and the size for BoundsChecking.
  • Both tiers must preserve every *other* register they use. e.g. the LLInt must preserve PB and wasmInstance, but must *not* preserve memoryBase and memorySize.
  • Changes to memoryBase and memorySize are visible to the caller. This means that:
    • Intra-module calls can assume these registers are up-to-date even if the memory was resized. The only exception here is if the LLInt calls a signaling JIT, in which case the JIT will not update the size register, since it won't be using it.
    • Inter-module and JS calls require the caller to reload these registers. These calls may result in memory changes (e.g. the callee may call memory.grow).
    • A Signaling JIT caller must be aware that the LLInt may trash the size register, since it always bounds checks.
  • llint/WebAssembly.asm:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addCall):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addCall):

  • wasm/WasmCallee.cpp:

(JSC::Wasm::LLIntCallee::calleeSaveRegisters):

  • wasm/WasmCallingConvention.h:
  • wasm/WasmLLIntPlan.cpp:

(JSC::Wasm::LLIntPlan::didCompleteCompilation):

  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::getPinnedRegisters): Deleted.

6:36 PM Changeset in webkit [256664] by youenn@apple.com
  • 20 edits in trunk/Source

Simplify WebProcess handling of unregistering of service workers
https://bugs.webkit.org/show_bug.cgi?id=207669

Reviewed by Chris Dumez.

Source/WebCore:

Instead of creating a job in WebProcess, we now create it at SWServer level.
This allows the ServiceWorkerContainer to only provide the service worker registration identifier
to start the unregistering process.
To simplify things, a completion handler is used to resolve the promise once the unregister job run.

This allows to send less information from ServiceWorkerContainer to SWServer through IPC.

No observable change of behavior.

  • workers/service/SWClientConnection.cpp:

(WebCore::SWClientConnection::unregistrationJobResolvedInServer): Deleted.

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::unregisterRegistration):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::serviceWorkerOrClientIdentifier):
(WebCore::ServiceWorkerJobData::ServiceWorkerJobData):

  • workers/service/ServiceWorkerJobData.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::unregister):

  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):

  • workers/service/WorkerSWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::scheduleUnregisterJob):

  • workers/service/server/SWServer.h:

Source/WebKit:

Use Async Reply IPC for scheduling an unregister job.

Make WebSWServerConnection own a map of CompletionHandler keyed by unregister job identifiers.
WebSWServerConnection then asks SWServer to schedule the unregister job.
When job is run, WebSWServerConnection will call the corresponding completion handler.
The completion handler will trigger an IPC response that will trigger the unregister promise to be resolved.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
(WebKit::WebSWServerConnection::scheduleUnregisterJobInServer):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • Scripts/webkit/messages.py:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleUnregisterJobInServer):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
6:20 PM Changeset in webkit [256663] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source

Versioning.

6:15 PM Changeset in webkit [256662] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Improve NSURLSession WebSocket message handling in case of error
https://bugs.webkit.org/show_bug.cgi?id=207799

Reviewed by Alex Christensen.

Tested by running layout tests with NSURLSession WebSocket code path enabled..

  • NetworkProcess/cocoa/WebSocketTaskCocoa.mm:

(WebKit::WebSocketTask::readNextMessage):
readNextMessage completion handler may be called when the connection is closed or in case of real error.
We discriminate this case by checking closeCode and if not null, we do nothing since the connection is being closed.
Otherwise, we communicate the error to WebProcess and close the connection.
(WebKit::WebSocketTask::sendString):
Add workaround until this gets fixed underneath.
(WebKit::WebSocketTask::sendData):
Add workaround until this gets fixed underneath.

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

[WebAuthn] Make Local Authenticator appear as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=207797
<rdar://problem/59475709>

Reviewed by Brent Fulgham.

  • Shared/WebPreferences.yaml:
5:20 PM Changeset in webkit [256660] by Brent Fulgham
  • 7 edits in trunk/Source/WebKit

Dynamically generate media-related mach connections when not using the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=207743
<rdar://problem/59449750>

Reviewed by Per Arne Vollan.

Stop using permanent sandbox permissions to connect to media-related XPC services. Instead,
create them dynamically in the UIProcess and vend them to the relevant WebContent process
as needed. If all media features are active in the GPU process, do not emit extensions since
they should not be needed in the WebContent process at that point.

Tested by existing media and GPU process tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Remove permanet rules in

preference for dynamic extensions.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Serialize new service connections.
(WebKit::WebProcessCreationParameters::decode): Ditto.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices): Helper function listing needed services.
(WebKit::WebProcessPool::platformInitializeWebProcess): Create service connections when
needed.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess): Consume media-related connections
when needed.

  • WebProcess/com.apple.WebProcess.sb.in: Remove permanet rules in preference for

dynamic extensions.

5:18 PM Changeset in webkit [256659] by commit-queue@webkit.org
  • 26 edits
    2 adds in trunk

new FontFace() should not throw when failing to parse arguments
https://bugs.webkit.org/show_bug.cgi?id=205770

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Myles Maxfield.

Source/WebCore:

Change FontFace constructor to conform to API specification:
https://drafts.csswg.org/css-font-loading/#dom-fontface-fontface.
No longer throws. For parsing failure, now rejects promise, sets
status to error, and sets FontFace members to default string.

Test: http/tests/css/font-face-constructor.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::setErrorState):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::addToFacesLookupTable):
(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::fontFace):

  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSSegmentedFontFace::fontRanges):

  • css/FontFace.cpp:

(WebCore::FontFace::setErrorState):
(WebCore::FontFace::create):
(WebCore::FontFace::family const):
(WebCore::FontFace::style const):
(WebCore::FontFace::weight const):
(WebCore::FontFace::stretch const):
(WebCore::FontFace::unicodeRange const):
(WebCore::FontFace::featureSettings const):
(WebCore::FontFace::display const):
(WebCore::FontFace::fontStateChanged):

  • css/FontFace.h:
  • css/FontFace.idl:

LayoutTests:

Tests that constructor doesn't throw, sets members to corresponding default strings.

  • http/tests/css/font-face-constructor-expected.txt: Added.
  • http/tests/css/font-face-constructor.html: Added.
5:01 PM Changeset in webkit [256658] by youenn@apple.com
  • 10 edits
    1 copy in trunk/Source

Introduce MediaStreamPrivate::forEachTrack
https://bugs.webkit.org/show_bug.cgi?id=207773

Reviewed by Eric Carlson.

Source/WebCore:

Introduce forEachTrack to allow read-only iterating through the tracks.
This is more efficient than copying the tracks.
Add a helper routine to select the tracks to record in MediaRecorderPrivate.
No change of behavior.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState):

  • platform/mediarecorder/MediaRecorderPrivate.cpp: Added.

(WebCore::MediaRecorderPrivate::selectTracks):

  • platform/mediarecorder/MediaRecorderPrivate.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::create):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::forEachTrack const):

  • platform/mediastream/MediaStreamPrivate.h:

Source/WebKit:

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
Use helper routine instead of MediaStreamPrviate::streamTracks().

5:01 PM Changeset in webkit [256657] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Fix flaky tests that scroll before first paint
https://bugs.webkit.org/show_bug.cgi?id=207780

After https://bugs.webkit.org/show_bug.cgi?id=207516, a couple of tests are now flaky. This
is because that patch delays first paint until there is enough content to render, and some
of these tests are issuing scroll events on controls before those controls render. To fix
this, we delay issuing the events until after the page loads.

Patch by Ben Nham <Ben Nham> on 2020-02-14
Reviewed by Simon Fraser.

  • fast/events/scroll-in-scaled-page-with-overflow-hidden.html:
  • fast/scrolling/scroll-container-horizontally.html:
3:51 PM Changeset in webkit [256656] by Truitt Savell
  • 3 edits in trunk/LayoutTests

[ Mac wk2 ] fast/html/marquee-child-wrap.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207793

Unreviewed test fix.

Increased the scrolldelay on this test to stop the flakiness.

  • fast/html/marquee-child-wrap.html:
  • platform/mac-wk2/TestExpectations:
3:45 PM Changeset in webkit [256655] by Jason_Lawrence
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

Need a short description (OOPS!).
Need the bug URL (OOPS!).

Reviewed by NOBODY (OOPS!).

  • platform/mac-wk2/TestExpectations:
3:45 PM Changeset in webkit [256654] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] webrtc/connection-state.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207798

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:23 PM Changeset in webkit [256653] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] fast/box-shadow/hidpi-box-shadow.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207796

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:18 PM Changeset in webkit [256652] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: VoiceOver doesn't read selected panel tab
https://bugs.webkit.org/show_bug.cgi?id=207735
<rdar://problem/59445157>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar):
(WI.NavigationBar.prototype._mouseDown):
(WI.NavigationBar.prototype._mouseUp):
Navigation bar itself shouldn't receive focus - its items should.

  • UserInterface/Views/RadioButtonNavigationItem.js:

(WI.RadioButtonNavigationItem):
"tab" was passed as a label by mistake. VoiceOver read every tab as "tab" instead of it's actual label.

(WI.RadioButtonNavigationItem.prototype.set selected):
When clicking on a tab, focus on it so VoiceOver could read it.

3:17 PM Changeset in webkit [256651] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[Curl] Implement NetworkStorageSession::get/set/deleteCookie
https://bugs.webkit.org/show_bug.cgi?id=207450

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-14
Reviewed by Don Olmstead.

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::CookieJarCurl::getAllCookies const):
(WebCore::CookieJarCurl::setCookie const):
(WebCore::CookieJarCurl::deleteCookie const):

  • platform/network/curl/CookieJarCurl.h:
  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::getAllCookies):

  • platform/network/curl/CookieJarDB.h:
  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::deleteCookie):
(WebCore::NetworkStorageSession::getAllCookies):

3:05 PM Changeset in webkit [256650] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/html/marquee-child-wrap.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207793

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:02 PM Changeset in webkit [256649] by commit-queue@webkit.org
  • 2 edits
    2 moves in trunk/LayoutTests

[css-grid] Move grid-gutters-and-alignment test to WPT folder
https://bugs.webkit.org/show_bug.cgi?id=207751

Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-02-14
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Add grid-gutters-and-alignment test, checked and adapted to WPT, with its expected.txt file.
Imported to WPT with this PR: https://github.com/web-platform-tests/wpt/pull/21717

  • web-platform-tests/css/css-grid/alignment/grid-gutters-and-alignment-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-and-alignment.html:

LayoutTests:

Remove grid-gutters-and-alignment test and its expected.txt file. The test is being replaced
by an adapted test in the corresponding WPT test folder.

  • fast/css-grid-layout/grid-gutters-and-alignment-expected.txt: Removed.
  • fast/css-grid-layout/grid-gutters-and-alignment.html: Removed.
3:01 PM Changeset in webkit [256648] by commit-queue@webkit.org
  • 15 edits in trunk

WebKit support for Apple Pay Buttons with custom corner radii
https://bugs.webkit.org/show_bug.cgi?id=207664
Source/WebCore:

<rdar://problem/43718114>

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.

Added support for border-radius css property for apple pay
button drawing.

Modified old tests to test this new behavior.

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::paintApplePayButton):

Source/WebCore/PAL:

<rdar://problem/43718114>

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.

Added link for PKDrawApplePayButtonWithCornerRadius and
PKApplePayButtonDefaultCornerRadius.

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:
  • pal/spi/cocoa/PassKitSPI.h:

LayoutTests:

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.

Modified both tests to test new functionality for setting custom corner
radii.

  • http/tests/ssl/applepay/ApplePayButton.html:
  • http/tests/ssl/applepay/ApplePayButtonV4.html:
  • platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.png:
  • platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.txt:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt:
  • platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.png:
  • platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.txt:
2:45 PM Changeset in webkit [256647] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Bezier editor popover should be strictly LTR
https://bugs.webkit.org/show_bug.cgi?id=206968
<rdar://problem/59007065>

Reviewed by Timothy Hatcher.

webkitConvertPointFromPageToNode does not work correctly with the zoom level other than 1.
Replace all uses of webkitConvertPointFromPageToNode with getBoundingClientRect.

  • UserInterface/Models/Geometry.js:

(WI.Point.fromEventInElement):

  • UserInterface/Views/ColorSquare.js:

(WI.ColorSquare.prototype._updateColorForMouseEvent):

  • UserInterface/Views/GradientSlider.js:

(WI.GradientSlider.prototype._updateShadowKnob):

  • UserInterface/Views/Slider.js:

(WI.Slider.prototype._localPointForEvent):
(WI.Slider):

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

WKWebView._setResourceLoadDelegate should clear the WebPageProxy's ResourceLoadClient
https://bugs.webkit.org/show_bug.cgi?id=205887

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setResourceLoadDelegate:]):
WebPageProxy::setResourceLoadClient has some special logic to possibly clear a bit in the web process that will reduce IPCs.
This is a small oversight in my original implementation.

2:27 PM Changeset in webkit [256645] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Web Animations] Unflake web-animations/timing-model/timelines/update-and-send-events.html WPT test
https://bugs.webkit.org/show_bug.cgi?id=202109

Unreviewed test gardening.

1:59 PM Changeset in webkit [256644] by Alan Coon
  • 1 copy in tags/Safari-610.1.3

Tag Safari-610.1.3.

1:59 PM Changeset in webkit [256643] by Alan Coon
  • 1 delete in tags/Safari-610.1.3

Delete tag.

1:56 PM Changeset in webkit [256642] by Russell Epstein
  • 1 copy in tags/Safari-609.1.18

Tag Safari-609.1.18.

1:55 PM Changeset in webkit [256641] by Alan Coon
  • 1 copy in tags/Safari-610.1.3

Tag Safari-610.1.3.

1:36 PM Changeset in webkit [256640] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing are all flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=207786

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Fixed the bug number.
1:30 PM Changeset in webkit [256639] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/events/keydown-1.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207785

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:27 PM Changeset in webkit [256638] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] http/tests/misc/form-submit-file-cross-site-redirect.html fails with incomplete form data
https://bugs.webkit.org/show_bug.cgi?id=207016

After bug206517 was fixed, this test has been passing in all GTK bots.

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-14

  • platform/gtk/TestExpectations:
1:22 PM Changeset in webkit [256637] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing are all flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=207786

Updatating expectations for all IndexedDP-private-browsing tests.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:19 PM Changeset in webkit [256636] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Missing call to DocumentTimeline::resumeAnimations() in Frame::resumeActiveDOMObjectsAndAnimations()
https://bugs.webkit.org/show_bug.cgi?id=207784
<rdar://problem/59251858>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Dean Jackson.

After auditing the code, there was one call to CSSAnimationController::resumeAnimationsForDocument() that missed a matching DocumentTimeline::resumeAnimations()
call should the Web Animations flag be on.

  • page/Frame.cpp:

(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):

1:13 PM Changeset in webkit [256635] by Ryan Haddad
  • 3 edits in branches/safari-609-branch/Tools

Cherry-pick r256297. rdar://problem/59442308

[iOS] Non-internal API test runners frequently crash due to Objective-C exceptions
https://bugs.webkit.org/show_bug.cgi?id=207525
<rdar://problem/59110543>

Reviewed by Tim Horton.

After the fix for <rdar://problem/56301207>, some scroll view content offset changes will attempt to call into
CoreAnalytics API to try and report data about scrolling velocities. In the iOS 13.3 simulator, this involves
creating a dictionary, of which one of the keys is the bundle identifier of the application. The value is
unconditionally inserted into the dictionary. Since TestWebKitAPI does not run in the context of a
UIApplication, the bundle identifier (that is, NSBundle.mainBundle.bundleIdentifier) ends up being nil,
causing us to crash upon trying to create the dictionary.

While it would make things easier, we can't just swizzle -bundleIdentifier for the entirely of every test, since
some tests expect the bundle identifier to be nil (or call into system frameworks that expect the bundle
identifier to be nil). These tests fail or time out when -bundleIdentifier is unconditionally swizzled
throughout the test run. To work around this bug for the time being, simply pretend that we have a bundle
identifier when running API tests on iOS, by swizzling -[NSBundle bundleIdentifier] to return a string at the
beginning of each API test.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/cocoa/TestWKWebView.mm: (overrideBundleIdentifier):

Move this to the top of the file, so it can be shared.

(+[WKWebView initialize]):

At the start of each test, force UIKit to cache a fake value for _UIMainBundleIdentifier() by invoking an
internal class method that calls into the internal helper function, with no other side effects.

  • TestWebKitAPI/ios/UIKitSPI.h:

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

1:09 PM Changeset in webkit [256634] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the iOS 13.1 build after r256520

These two methods are not in the internal iOS 13.1 SDK.

  • Platform/spi/ios/UIKitSPI.h:
12:06 PM Changeset in webkit [256633] by chris.reid@sony.com
  • 17 edits in trunk

[Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
https://bugs.webkit.org/show_bug.cgi?id=197684

Reviewed by Fujii Hironori.

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

Ensure that the CacheStorage directory is actually being created.

  • NetworkProcess/cache/NetworkCacheData.cpp:
  • NetworkProcess/cache/NetworkCacheData.h:
  • NetworkProcess/cache/NetworkCacheDataCocoa.mm:
  • NetworkProcess/cache/NetworkCacheDataSoup.cpp:
  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

Use more FileSystem functionality to share code across platforms.

  • NetworkProcess/cache/NetworkCacheDataCurl.cpp:

Use Optional<Vector> for m_buffer since we need to differentiate isEmpty and isNull.

Source/WTF:

  • wtf/FileSystem.cpp:
  • wtf/FileSystem.h:

Added FileAccessPermission flag when opening files.
Remove default argument for the listDirectory filter since the defaut
String() filter doesn't match all files on Mac and Windows.

  • wtf/glib/FileSystemGlib.cpp:
  • wtf/posix/FileSystemPOSIX.cpp:

Added (S_IRUSR | S_IWUSR) file open modes.

  • wtf/win/FileSystemWin.cpp:

Implement getVolumeFreeSpace since some of the tests use it when toggling cache.

  • wtf/win/PathWalker.cpp:

LayoutTests:

  • platform/wincairo/TestExpectations:
11:53 AM Changeset in webkit [256632] by ysuzuki@apple.com
  • 26 edits in trunk

NetworkLoadMetrics should be shared by multiple ResourceResponse instances
https://bugs.webkit.org/show_bug.cgi?id=207747

Reviewed by Keith Miller.

Source/WebCore:

ResourceResponse is value data, and it is copied multiple times in various places, (1) to create a new ResourceResponse
which has slightly different fields, or (1) to hold ResourceResponse even after loading finishes. For example, DocumentLoader
has Vector<ResourceResponse> to replay response dispatching in the case of loading from BackForwardCache. The problem is
that ResourceResponse is very large: 440 bytes.

While we sometimes copy ResourceResponse to modify some part of it, NetworkLoadMetrics is immutable. It is set when response is created,
and is never changed. And NetworkLoadMetrics is large: sizeof(NetworkLoadMetrics) is 184 bytes. Given that we have multiple
copies of ResourceResponse in WebCore, we should share NetworkLoadMetrics by them.

This patch puts Box<NetworkLoadMetrics> in ResourceResponse to share it with all copied ResourceResponses. We do not make NetworkLoadMetrics
RefCounted<> for now since some legit data structures embed NetworkLoadMetrics. This patch adds ArgumentCoder for Box so that we
can encode / decode Box<NetworkLoadMetrics> in ResourceResponse in IPC. To ensure NetworkLoadMetrics in ResourceResponse immutable,
we add ResourceResponse::setDeprecatedNetworkLoadMetrics instead of modifying NetworkLoadMetrics already created in ResourceResponse.

We also attempt to compact ResourceResponse more by using bit-fields. And removing m_isValid field in ParsedContentRange since
this can be represented by the different field. These changes make sizeof(ResourceResponse) from 440 to 248.

No behavior change.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):

  • inspector/agents/InspectorNetworkAgent.h:
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFinishLoading):

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::domainLookupStart const):
(WebCore::PerformanceTiming::domainLookupEnd const):
(WebCore::PerformanceTiming::connectStart const):
(WebCore::PerformanceTiming::connectEnd const):
(WebCore::PerformanceTiming::secureConnectionStart const):
(WebCore::PerformanceTiming::requestStart const):
(WebCore::PerformanceTiming::responseStart const):

  • platform/network/NetworkLoadMetrics.h:
  • platform/network/ParsedContentRange.cpp:

(WebCore::areContentRangeValuesValid):
(WebCore::parseContentRange):
(WebCore::ParsedContentRange::ParsedContentRange):
(WebCore::ParsedContentRange::headerValue const):

  • platform/network/ParsedContentRange.h:

(WebCore::ParsedContentRange::isValid const):
(WebCore::ParsedContentRange::invalidValue):
(WebCore::ParsedContentRange::MarkableTraits::isEmptyValue):
(WebCore::ParsedContentRange::MarkableTraits::emptyValue):
(WebCore::ParsedContentRange::ParsedContentRange): Deleted.

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::crossThreadData const):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::compare):

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::deprecatedNetworkLoadMetricsOrNull const):
(WebCore::ResourceResponseBase::setDeprecatedNetworkLoadMetrics):
(WebCore::ResourceResponseBase::encode const):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics const): Deleted.

  • platform/network/cf/ResourceResponse.h:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::copyTimingData):

  • platform/network/curl/CurlResourceHandleDelegate.cpp:

(WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):

  • platform/network/curl/ResourceResponse.h:
  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::setDeprecatedNetworkLoadMetrics): Deleted.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::getConnectionTimingData):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):

Source/WebKit:

Add ArgumentCoder support for Box<T>.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):

  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<Box<T>>::encode):
(IPC::ArgumentCoder<Box<T>>::decode):

Tools:

  • TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp:

(TestWebKitAPI::TEST):

11:29 AM Changeset in webkit [256631] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

Implementation of AXIsolatedObject::isDescendantOfObject.
https://bugs.webkit.org/show_bug.cgi?id=207697

Reviewed by Chris Fleizach.

  • Moved the implementation of AccessibilityObject::isDescendantOfObject

and isAncestorOfObject to the base class AXCoreObject.

  • Implemented AXIsolatedObject::hasChildren by caching the value from

the associated AXObject. It is used in isDescendantOfObject.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isDescendantOfObject const): MOved to AXCoreObject.
(WebCore::AccessibilityObject::isAncestorOfObject const): Moved to AXCoreObject.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::isDescendantOfObject const):
(WebCore::AXCoreObject::isAncestorOfObject const):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData): Sets the HasChildren attribute.
(WebCore::AXIsolatedObject::hasChildren const): Deleted.
(WebCore::AXIsolatedObject::isDescendantOfObject const): Deleted.
(WebCore::AXIsolatedObject::isAncestorOfObject const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
11:22 AM Changeset in webkit [256630] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

When updating a subtree of the IsolatedTree, first remove the entire subtree, not just the subtree root.
https://bugs.webkit.org/show_bug.cgi?id=207759

Reviewed by Chris Fleizach.

When updating an IsolatedTree subtree, we were removing just the root
of the subtree. Added AXIsolatedTree::removeSubtree that is now used in
updateIsolatedTree.

  • accessibility/AXObjectCache.cpp:

(WebCore::createIsolatedTreeHierarchy): If the wrapper is attached
during creation, set it to null in the NodeChange so that it is not
re-attached on the AX thread.
(WebCore::AXObjectCache::updateIsolatedTree): removeSubtree instead of
removeNode.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::~AXIsolatedObject): When an IsolatedObject
is destroyed, it must have been detached from its wrapper.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::NodeChange::NodeChange): Constructors now
take an IsolatedObject instead of a Ref.
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::applyPendingChanges): Attach wrappers only if
not null. The IsolatedObject refCount must be 2 at that point.

  • accessibility/isolatedtree/AXIsolatedTree.h:
11:09 AM Changeset in webkit [256629] by commit-queue@webkit.org
  • 4 edits in trunk

Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
https://bugs.webkit.org/show_bug.cgi?id=207360
<rdar://problem/57825317>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-14
Reviewed by Ryosuke Niwa.

Source/WTF:

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::mapHostName):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

11:05 AM Changeset in webkit [256628] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

LayoutTests/imported/w3c:
[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Simon Fraser.

Mark Web Platform Tests progressions.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:

Source/WebCore:
[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Simon Fraser.

While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.

To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.

If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.

Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.

  • animation/AnimationTimeline.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/AnimationTimeline.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):

  • animation/CSSAnimation.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during
CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property.
(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::apply):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::unanimatedStyle const):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:
[ macOS wk2 ] webgpu/whlsl/dereference-pointer-should-type-check.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207779

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:00 AM Changeset in webkit [256627] by graouts@webkit.org
  • 15 edits in trunk

[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Mark Web Platform Tests progressions.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:

Source/WebCore:

While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.

To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.

If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.

Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.

  • animation/AnimationTimeline.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/AnimationTimeline.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):

  • animation/CSSAnimation.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during
CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property.
(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::apply):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::unanimatedStyle const):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

Mark that a couple of tests are no longer flaky.

10:54 AM Changeset in webkit [256626] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] http/tests/media/now-playing-info.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206699

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:47 AM Changeset in webkit [256625] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

LayoutTest fast/scrolling/scroll-container-horizontally.html frequently times out & fails
https://bugs.webkit.org/show_bug.cgi?id=158237

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:37 AM Changeset in webkit [256624] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] IndexedDB tests are flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207778

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:29 AM Changeset in webkit [256623] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Ensure animations that lose their effect don't schedule an animation update
https://bugs.webkit.org/show_bug.cgi?id=207713
rdar://59174840

Patch by Sunny He <sunny_he@apple.com> on 2020-02-14
Reviewed by Antoine Quint.

Source/WebCore:
An active animation for which the effect is removed may be considered for
an upcoming animation resolution. However, WebAnimation::timeToNextTick()
expects a valid effect to be available to be able to determine timing.
We now check an animation is relevant before calling timeToNextTick() and
add an ASSERT() in that function to catch cases where an animation effect
might not be available.

Source/WebCore:

Test: webanimations/animation-null-effect.html

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::scheduleNextTick):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timeToNextTick const):

LayoutTests:

  • webanimations/animation-null-effect-expected.txt: Added.
  • webanimations/animation-null-effect.html: Added.
10:23 AM Changeset in webkit [256622] by cturner@igalia.com
  • 2 edits in trunk/LayoutTests

[EME][GStreamer] REGRESSION(r256429): Several encrypted-media tests are crashing or failing
https://bugs.webkit.org/show_bug.cgi?id=207741

Skip WPT encrypted-media tests, in-line with the expectations of
the GTK port until they have been properly triaged.

Unreviewed gardening.

  • platform/wpe/TestExpectations: Skip all WPT encrypted-media

tests. They behave in incompliant ways and need time for correct
triage.

10:08 AM Changeset in webkit [256621] by sihui_liu@apple.com
  • 27 edits in trunk/Source/WebCore

IndexedDB: prefetch cursor records on client side
https://bugs.webkit.org/show_bug.cgi?id=207602
<rdar://problem/58483927>

Reviewed by Brady Eidson.

Cache cursor records on client side and use those records for iterate operations.

This makes cursor continue/advance tests in PerformanceTests/IndexedDB/basics ~3x faster.

  • Headers.cmake:
  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::setGetResult): Record the ID of TransactionOperation that updates cached record.
(WebCore::IDBCursor::iterateWithPrefetchedRecords): IDBCursor uses cached records for iterate opertaions if
there is no write operation between last cached records update and current iteration operation.
(WebCore::IDBCursor::clearPrefetchedRecords):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::prefetchedRecords const):
(WebCore::IDBGetResult::encode const):
(WebCore::IDBGetResult::decode):

  • Modules/indexeddb/IDBRequest.cpp: Record corresponding TransactionOperation ID in request.

(WebCore::IDBRequest::didOpenOrIterateCursor):

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::pendingCursor const):
(WebCore::IDBRequest::setTransactionOperationID):

  • Modules/indexeddb/IDBTransaction.cpp: If a cursor iterate request can be handled with cached records,

IDBClient does not need to send request to IDBServer and wait for response. But requests before that iterate
request may need to wait server to answer, and spec requires to handle requests in order. Therefore, we now keep
all the results in m_transactionOperationResultMap and handle them according to the ordering in
m_transactionOperationsInProgressQueue.
(WebCore::IDBTransaction::abortInProgressOperations):
(WebCore::IDBTransaction::removeRequest): Because result of a cursor request can be answered sooner, it is
possible that in finishedDispatchEventForRequest, m_currentlyCompletingRequest (which is a cursor request) is
set to nullptr, and then it is set back to the same cursor request in handleOperationsCompletedOnServer right
after. This happens in dispatchEvent of the cursor request, where request would remove itself from request list
of transaction at the end.
In this case, when request list becomes empty, transaction may commit automatically. But transaction should not
because that request is still valid as m_currentlyCompletingRequest and should not be removed from list.
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::operationCompletedOnServer):
(WebCore::IDBTransaction::handleOperationsCompletedOnServer): All requests were sent to IDBServer and the
response/result ordering would naturally be the same as request order. Now that results can be created in both
IDBClient and IDBServer, we no longer handle requests using m_completedOnServerQueue.
(WebCore::IDBTransaction::createObjectStore): Mark as write operation to track last write operation.
(WebCore::IDBTransaction::renameObjectStore): Ditto.
(WebCore::IDBTransaction::createIndex): Ditto.
(WebCore::IDBTransaction::renameIndex): Ditto.
(WebCore::IDBTransaction::requestDeleteRecord): Ditto.
(WebCore::IDBTransaction::requestClearObjectStore): Ditto.
(WebCore::IDBTransaction::requestPutOrAdd): Ditto.
(WebCore::IDBTransaction::deleteObjectStore): Ditto.
(WebCore::IDBTransaction::deleteIndex): Ditto.
(WebCore::IDBTransaction::iterateCursorOnServer): Only use cached records if the request does not specify target
key. If cursor is iterated successfully with cache, send a message to IDBServer to notify about the progress.
Otherwise, fall back to depend on IDBServer to answer the request.
(WebCore::IDBTransaction::generateOperationID): TransactionOperation ID is unique in a transaction.

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IndexedDB.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::iterateCursor): Don't track result of TransactionOperation in
IDBConnectionProxy if TransactionOperation does not need a reply from IDBServer.

  • Modules/indexeddb/client/TransactionOperation.cpp:

(WebCore::IDBClient::TransactionOperation::TransactionOperation):

  • Modules/indexeddb/client/TransactionOperation.h: Add ID to TransactionOperation.

(WebCore::IDBClient::TransactionOperation::operationID const):
(WebCore::IDBClient::TransactionOperation::TransactionOperation):

  • Modules/indexeddb/server/IDBBackingStore.h: remove prefetchCursor as it is not used now.
  • Modules/indexeddb/server/MemoryIDBBackingStore.h: Ditto. Also this patch only deals with prefetching in

persistent store.

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor): Only prefetch at when request needs to be answered.
(WebCore::IDBServer::SQLiteIDBBackingStore::prefetchCursor): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::currentData): Provide an option to include prefetched records in result.
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged): Reset count to prefetch when there is a
change. This is used with increaseCountToPrefetch to make prefetch adaptive.
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::prefetchOneRecord):
(WebCore::IDBServer::SQLiteIDBCursor::increaseCountToPrefetch):
(WebCore::IDBServer::SQLiteIDBCursor::prefetch): Count to prefetch is decided by SQLiteCursor now.
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
(WebCore::IDBServer::SQLiteIDBCursor::currentValue const):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor): Move call to prefetch cursor to SQLiteIDBBackingStore.
(WebCore::IDBServer::UniqueIDBDatabase::prefetchCursor): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):

  • Modules/indexeddb/shared/IDBCursorRecord.h: Stop using pointer for IDBValue for easier encoding and decoding.

(WebCore::IDBCursorRecord::size const):
(WebCore::IDBCursorRecord::isolatedCopy const):

  • Modules/indexeddb/shared/IDBIterateCursorData.cpp:

(WebCore::IDBIterateCursorData::isolatedCopy const):

  • Modules/indexeddb/shared/IDBIterateCursorData.h: Add an option to let IDBServer know whether it should answer

the cursor request.
(WebCore::IDBIterateCursorData::encode const):
(WebCore::IDBIterateCursorData::decode):

  • WebCore.xcodeproj/project.pbxproj:
10:05 AM Changeset in webkit [256620] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME] Fix warnings in LOG_DISABLED build
https://bugs.webkit.org/show_bug.cgi?id=207691

Unreviewed build fix.

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp: It would

be nice if the LOG macros could arrange for the VA_ARGS to be
UNUSED_VARIABLE's. Not sure if that is possible, so be ugly with
the ifdef's instead.
(WebCore::CDMProxyClearKey::cencSetCounterVector):
(WebCore::CDMProxyClearKey::cencSetDecryptionKey):
(WebCore::CDMProxyClearKey::cencDecryptFullSample):

9:52 AM Changeset in webkit [256619] by graouts@webkit.org
  • 18 edits in trunk

[Web Animations] Ensure CSS Transition and CSS Animation events are queued, sorted and dispatched by their timeline
https://bugs.webkit.org/show_bug.cgi?id=207364
<rdar://problem/59370413>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

There are some progressions but also some "regressions". The progressions are real, showing the delivery of all animation events at the correct
time. However, the regressions are misleading. The fact that the "style change" tests would work was due to a design issue in the test which would
only wait one frame to detect whether a CSS Transition was started after a change made through the Web Animations API. These would work because
events were queued in the next frame, but delivered later due to the dedicated per-animation queue used, which meant the test was fooled into
thinking the CSS Transition did not start, as expected. Changing those test to use more than one frame to test for the lack of a CSS Transition
would have shown the FAIL results.

However, in order to not regress our WPT score, the issue of "style change" events will be addressed in a follow-up patch.

  • web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
  • web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-expected.txt:

Source/WebCore:

Until now, AnimationPlaybackEvent events, which are new events introduced by the Web Animations spec, were enqueued in a shared queue on the DocumentTimeline
and dispatched during the "update animations and send events" procedure. However, AnimationEvent and TransitionEvent events, dispatched by CSS Animations
and CSS Transitions, were dispatched via a dedicated per-animation queue, which meant typically that those events were dispathed one runloop after the
AnimationPlaybackEvent events.

We now remove the dedicated per-animation queue and enqueue all events in the shared DocumentTimeline queue for dispatch during the "update animations and send
events" procedure. To do this correctly, we need to do a couple of other things that ensure we don't regress tests.

First, we update the DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState() to account for whether there are pending animation events,
guaranteeing that an animation update is scheduled should there be any.

Second, when animation events are enqueued in DocumentTimeline::enqueueAnimationEvent() we schedule an animation update if needed, since we know we now
have pending events that will need to be delivered in an upcoming update. We also maintain a flag between the start of the "update animations and send events"
procedure and the moment when the pending animation events queue is cleared prior to dispatching events so that events enqueued in the meantime do not
prematurely schedule animation resolution. The need for a new animation resolution will be checked at the end of the procedure.

Finally, declarative animations used to have a special suclass of WebAnimation::needsTick() that would check whether they had any pending events, ensuring
they would not be removed prematurely. We now reset a flag to false as WebAnimation::tick() is called (as part of the "update animations and send events"
procedure) and set it to true in case an animation is enqueued. This flag is then used in needsTick() to guarantee the animation is not removed before
the DocumentTimeline has had a chance to dispatch the enqueued event.

Note also that, for clarity, the DocumentTimeline::unscheduleAnimationResolution() was renamed to DocumentTimeline::clearTickScheduleTimer() since it wouldn't
actually cancel a previous animation resolution schedule.

  • animation/CSSTransition.h: Fix a newly found build error due to the missing wtf/MonotonicTime.h header.
  • animation/DeclarativeAnimation.cpp: Remove all code related to the dedicated per-animation queue and instead call the new WebAnimation::enqueueAnimationEvent()

method to enqueue events on the DocumentTimeline.
(WebCore::DeclarativeAnimation::DeclarativeAnimation):
(WebCore::DeclarativeAnimation::tick):
(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/DeclarativeAnimation.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::detachFromDocument): Ensure the pending events queue is cleared when the timeline is detached from a document, ensuring that there no
longer events that would cause a ref-cycle (DocumentTimeline -> AnimationPlaybackEvent -> WebAnimation -> DocumentTimeline).
(WebCore::DocumentTimeline::suspendAnimations):
(WebCore::DocumentTimeline::removeAnimation):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::clearTickScheduleTimer):
(WebCore::DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState const):
(WebCore::DocumentTimeline::updateCurrentTime):
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::scheduleNextTick):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::enqueueAnimationEvent):

  • animation/DocumentTimeline.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
(WebCore::WebAnimation::enqueueAnimationEvent):
(WebCore::WebAnimation::needsTick const):
(WebCore::WebAnimation::tick):

  • animation/WebAnimation.h:

LayoutTests:

Fix a couple of tests that made some incorrect assumptions.

  • TestExpectations: imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html is no longer flaky.
  • compositing/backing/animate-into-view.html: Because the "animationstart" event is now dispatched during the "update animations and send events" procedure, which happens

during page rendering _before_ rAF callbacks are serviced, we must remove the rAF callback used prior to adding the "animationstart" event listener or else we would never
get it and the test would time out.

  • webanimations/css-transition-in-flight-reversal-accelerated.html: We must wait for the initial transition to start and then two frames before reversing the transition,

to be certain that the animation did start. Indeed, the "transitionstart" event will be fired right before the next rAF callback is called, as the animation starts in that
very same frame, and so progress will be 0 and the transition wouldn't be reversable until the next frame when the animation has progress > 0.

9:49 AM Changeset in webkit [256618] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

N[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_advance_index3.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207776

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:39 AM Changeset in webkit [256617] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing/cursor-overloads.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207775

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:22 AM Changeset in webkit [256616] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/third-party-cookie.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207774

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:06 AM Changeset in webkit [256615] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/persistent-importScripts.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207771

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:52 AM Changeset in webkit [256614] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

[ iOS ] http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207647

Updating expectations

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:44 AM Changeset in webkit [256613] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/cache/disk-cache/disk-cache-vary-cookie.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207770

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:43 AM Changeset in webkit [256612] by berto@igalia.com
  • 3 edits in trunk/Source/WebKit

[WPE] WPEQtView.h includes the uninstalled WPEQtViewBackend.h
https://bugs.webkit.org/show_bug.cgi?id=207765

Reviewed by Philippe Normand.

Do a forward declaration instead of including the header.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:
  • UIProcess/API/wpe/qt/WPEQtView.h:
8:35 AM Changeset in webkit [256611] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] crypto/subtle/rsa-indexeddb-non-exportable.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207769

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:34 AM Changeset in webkit [256610] by graouts@webkit.org
  • 17 edits
    2 copies in trunk/Source/WebCore

[Web Animations] Make all animation event types inherit from the same base class
https://bugs.webkit.org/show_bug.cgi?id=207629

Reviewed by Simon Fraser.

Currently we dispatch events CSS Transitions and CSS Animations events using a dedicated event queue on DeclarativeAnimation, while the events
added by the Web Animations specification (of type AnimationPlaybackEvent) are dispatched using a shared queue on the DocumentTimeline that is
processed during the "update animations and send events procedure". The Web Animations specification dictates that all events should be dispatched
during that procedure, which includes sorting of such events based on their timeline time and associated animation relative composite order.

In this patch, we prepare the work towards spec compliance for animation events dispatch by making all event types (AnimationPlaybackEvent,
TransitionEvent and AnimationEvent) inherit from a single AnimationEventBase interface. This will allow DocumentTimeline to enqueue, sort and
dispatch all such events with a single queue in a future patch.

Due to CSSAnimationController, we must make the "timeline time" and "animation" parameters optional. When we drop support for CSSAnimationController
we'll be able to enforce stronger requirements for these.

No new test since this should not introduce any behavior change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationEventBase.cpp: Added.

(WebCore::AnimationEventBase::AnimationEventBase):

  • animation/AnimationEventBase.h: Added.

(WebCore::AnimationEventBase::create):
(WebCore::AnimationEventBase::isAnimationPlaybackEvent const):
(WebCore::AnimationEventBase::isAnimationEvent const):
(WebCore::AnimationEventBase::isTransitionEvent const):
(WebCore::AnimationEventBase::timelineTime const):
(WebCore::AnimationEventBase::animation const):

  • animation/AnimationPlaybackEvent.cpp:

(WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent):
(WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):

  • animation/AnimationPlaybackEvent.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::createEvent):

  • animation/CSSAnimation.h:
  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::createEvent):

  • animation/CSSTransition.h:
  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/DeclarativeAnimation.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):

  • dom/AnimationEvent.cpp:

(WebCore::AnimationEvent::AnimationEvent):

  • dom/AnimationEvent.h:
  • dom/TransitionEvent.cpp:

(WebCore::TransitionEvent::TransitionEvent):

  • dom/TransitionEvent.h:
  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):

8:28 AM Changeset in webkit [256609] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION (r253312): imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies.html is super flaky
https://bugs.webkit.org/show_bug.cgi?id=205216

Correcting typo.

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:22 AM Changeset in webkit [256608] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Gardening more debug timeouts
https://bugs.webkit.org/show_bug.cgi?id=207764

From debug bot build 5916.

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-14

  • platform/gtk/TestExpectations:
8:20 AM Changeset in webkit [256607] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/useragent.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207768

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:18 AM Changeset in webkit [256606] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ WK2 ] Layout Test http/wpt/service-workers/update-service-worker.https.html is a flaky Timeout
https://bugs.webkit.org/show_bug.cgi?id=187766

Set expectations to include failing.

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
8:01 AM Changeset in webkit [256605] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/online.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207767

Unreviewed test gardening.

  • platform/ios/TestExpectations:
7:54 AM Changeset in webkit [256604] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/header-filtering.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207766

Unreviewed test gardening.

  • platform/ios/TestExpectations:
7:27 AM Changeset in webkit [256603] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/file-upload.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207763

Unreviewed test gardening.

  • platform/ios/TestExpectations:
7:20 AM Changeset in webkit [256602] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/check-service-worker-header.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207762

Unreviewed test gardening.

  • platform/ios/TestExpectations:
6:42 AM Changeset in webkit [256601] by don.olmstead@sony.com
  • 6 edits in trunk

[CMake] Add Fontconfig::Fontconfig target
https://bugs.webkit.org/show_bug.cgi?id=207730

Reviewed by Adrian Perez de Castro.

.:

Redo the Fontconfig find module to export a target.

  • Source/cmake/FindFontconfig.cmake:

Source/WebCore:

Use the Fontconfig::Fontconfig target.

  • platform/FreeType.cmake:

Tools:

Use the Fontconfig::Fontconfig target.

  • WebKitTestRunner/PlatformGTK.cmake:
5:27 AM Changeset in webkit [256600] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.26.4

WPE WebKit 2.26.4

5:26 AM Changeset in webkit [256599] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.26.4 release

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.26.4.
2:08 AM Changeset in webkit [256598] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.26.4

WebKitGTK 2.26.4

2:07 AM Changeset in webkit [256597] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.26.4 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.26.4.
1:40 AM Changeset in webkit [256596] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r254301 - REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.
1:40 AM Changeset in webkit [256595] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r253662 - Limit URL to reasonable size
https://bugs.webkit.org/show_bug.cgi?id=203825
<rdar://problem/56878680>

Reviewed by Ryosuke Niwa.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canDisplay const): Place an upper bound on the amount of
memory a URL may consume.

1:40 AM Changeset in webkit [256594] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r254220 - Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>

Reviewed by Brent Fulgham.

Source/WebCore:

Our Font Loading API does not comply with the spec:

If the parsed value is a CSS-wide keyword, return a syntax error.

Rather than crashing, we should return a syntax error.

Test: fast/text/font-loading-global-keyword.html

  • css/CSSFontFaceSet.cpp:

(WebCore::computeFontSelectionRequest):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

LayoutTests:

Test all the entry points to the CSS Font Loading API that accept CSS keywords.

  • fast/text/font-loading-global-keyword-expected.txt: Added.
  • fast/text/font-loading-global-keyword.html: Added.
1:40 AM Changeset in webkit [256593] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r253654 - executeIfJavaScriptURL should check requester's security origin
https://bugs.webkit.org/show_bug.cgi?id=205324

Reviewed by Brent Fulgham.

Don't execute the JavaScript in ScriptController::executeIfJavaScriptURL if the security origin
of the current document is no longer accessible from the request originator's security origin.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL): Added a check.

  • bindings/js/ScriptController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Pass around the security origin of the requester.
(WebCore::FrameLoader::submitForm):

1:40 AM Changeset in webkit [256592] by Carlos Garcia Campos
  • 6 edits
    4 adds in releases/WebKitGTK/webkit-2.26

Merge r253563 - Consider top-level context whose origin is unique as insecure
https://bugs.webkit.org/show_bug.cgi?id=205111
Source/WebCore:

Reviewed by Brent Fulgham.

Tests: http/tests/security/top-level-unique-origin.https.html

http/tests/security/top-level-unique-origin2.https.html

  • dom/Document.cpp:

(WebCore::Document::isSecureContext const):
There is no guarantee that top level unique origin contexts like data URL are SecureContext.
This patch makes them no longer SecureContext.
This helps getting closer to https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy
which identifies all unique origins as "Not Trustworthy".
Child unique origin contexts will stay SecureContext if their parents are.

Tools:

<rdar://problem/57834967>

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:

(TEST):
Disable secure context checks so that loading directly about:blank from the API test
can call DeviceOrientationEvent.requestPermission() successfully.

LayoutTests:

Reviewed by Brent Fulgham.

  • http/tests/security/top-level-unique-origin.https-expected.txt: Added.
  • http/tests/security/top-level-unique-origin.https.html: Added.
  • http/tests/security/top-level-unique-origin2.https-expected.txt: Added.
  • http/tests/security/top-level-unique-origin2.https.html: Added.
  • platform/win/TestExpectations: Skipping second test as timing out in windows.
1:40 AM Changeset in webkit [256591] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r253544 - SecurityOrigin should be unique for null blob URLs that have been unregistered
https://bugs.webkit.org/show_bug.cgi?id=205169

Reviewed by Darin Adler.

Source/WebCore:

In case we cannot retrieve a cached origin for a null origin, just create a unique one.
This is better than having an origin with an empty host and empty scheme.

Test: http/tests/security/blob-null-url-location-origin.html

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::ThreadableBlobRegistry::getCachedOrigin):

LayoutTests:

  • http/tests/security/blob-null-url-location-origin-expected.txt: Added.
  • http/tests/security/blob-null-url-location-origin.html: Added.
  • platform/win/TestExpectations: Skipping test as timing out in windows.
1:39 AM Changeset in webkit [256590] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/ThirdParty/ANGLE

Merge r256491 - Multiple GCC 10 build failures in ANGLE
https://bugs.webkit.org/show_bug.cgi?id=207365

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-12
Reviewed by Carlos Alberto Lopez Perez.

  • changes.diff: Updated.
  • include/platform/Platform.h: Add missing #include to get size_t.
  • src/common/PackedEnums.h: Remove problematic const_casts.
1:39 AM Changeset in webkit [256589] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r255865 - [GTK][WPE] Add more fontconfig paths into the sandbox
https://bugs.webkit.org/show_bug.cgi?id=207293

Reviewed by Michael Catanzaro.

These paths were reported to be used on Debian.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindFonts):

1:39 AM Changeset in webkit [256588] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r255824 - [GTK] Cannot perform most local loads with sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=202071

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-05
Reviewed by Carlos Garcia Campos.

SecurityOrigin::canDisplay is improperly checking whether the target file URL points to a
file on the same "volume" (mount point) as the source file. That can't happen here because
this code is running in the web process, but only the network process has access to the
unsandboxed filesystem. This code can only check whether the target file exists within the
sandbox's mount namespace, but that's not what we want to do because we're not going to load
that file, we're going to ask the network process to load the file with the same path
outside the mount namespace.

We can probably live without this check. But if bringing it back is desired, it has to be
done someplace totally different, in network process code rather than web process code.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canDisplay const):

1:39 AM Changeset in webkit [256587] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r250077 - [GTK] Compilation errors when GL is disabled
https://bugs.webkit.org/show_bug.cgi?id=200223

Fix following compilation error when building with ENABLE_OPENGL=OFF
../../Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp:123:51: error: use of undeclared identifier 'WaylandCompositor'
parameters.waylandCompositorDisplayName = WaylandCompositor::singleton().displayName();


Patch by Yury Semikhatsky <yurys@chromium.org> on 2019-09-18
Reviewed by Philippe Normand.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): only make a call when using EGL, this matches
guards in WaylandCompositor.h. The condition was changed in r245807.

12:40 AM Changeset in webkit [256586] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, several encrypted-media tests are failing or crashing
https://bugs.webkit.org/show_bug.cgi?id=207742

Unreviewed gardening.

  • platform/wpe/TestExpectations:

Feb 13, 2020:

10:50 PM Changeset in webkit [256585] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for WebCore shared library builds.

  • crypto/openssl/SerializedCryptoKeyWrapOpenSSL.cpp: Include "SerializedCryptoKeyWrap.h".
7:48 PM Changeset in webkit [256584] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

MediaToolbox may not be available; check before calling MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207733
<rdar://problem/59441647>

Reviewed by Maciej Stachowiak.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::setShouldOverrideScreenSupportsHighDynamicRange):

7:41 PM Changeset in webkit [256583] by Kate Cheney
  • 29 edits
    5 adds in trunk

Source/WebCore:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>

Reviewed by Chris Dumez.

Tests: http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html

http/tests/resourceLoadStatistics/prevalent-domains-per-page.html

Logs subresource loads in CachedResourceLoader::requestResource, and
redirects in ResourceLoader::willSendRequestInternal,
and reports domains to the Web Process.

  • loader/FrameLoaderClient.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • loader/cache/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

Source/WebKit:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>

Reviewed by Chris Dumez.

Tests: http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html

http/tests/resourceLoadStatistics/prevalent-domains-per-page.html

Added an API to report prevalent domains. The Web Process sends all
new loads to the Network Process, which determines if the resources are
prevalent. When the API is queried, the Web Process reports these
domains to the UI Process.

The WebPage keeps a hash set of previously loaded domains to avoid
spamming IPC with repeat domains.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
(WebKit::NetworkConnectionToWebProcess::reportSubresourceLoadToDomain):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getPrevalentDomainsFor:completionHandler:]):
(-[WKWebsiteDataStore _clearPrevalentDomainsFor:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::addLoadedRegistrableDomain):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setIsSuspended):
(WebKit::WebPage::addLoadedRegistrableDomain):
(WebKit::WebPage::getPrevalentDomains):
(WebKit::WebPage::clearPrevalentDomains):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>

Reviewed by Chris Dumez.

Added WebKitTestRunner functions so this functionality can be tested.
clearPrevalentDomains should be called between tests to reset the
state.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::getPrevalentDomains):
(WTR::TestRunner::callDidReceivePrevalentDomainsCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::getPrevalentDomains):
(WTR::TestController::clearPrevalentDomains):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceivePrevalentDomains):

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::getPrevalentDomains):
(WTR::TestController::clearPrevalentDomains):

LayoutTests:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>

Reviewed by Chris Dumez.

Added 2 new tests for the resource load statistics database and
memory stores. Added a basic iframe that both tests can use to test
if a resource load from a prevalent domain gets reported properly.

  • http/tests/resourceLoadStatistics/prevalent-domains-per-page-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html: Added.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page-expected.txt: Added.
  • http/tests/resourceLoadStatistics/prevalent-domains-per-page.html: Added.
  • http/tests/resourceLoadStatistics/resources/basic-iframe.html: Added.
7:32 PM Changeset in webkit [256582] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Gardening more flaky crashes
https://bugs.webkit.org/show_bug.cgi?id=207738

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-13

  • platform/gtk/TestExpectations:
7:13 PM Changeset in webkit [256581] by Fujii Hironori
  • 3 edits in trunk/Tools

[Win][MiniBrowser] Reimplement the toolbar by using toolbar common control
https://bugs.webkit.org/show_bug.cgi?id=207682

Reviewed by Ross Kirsling.

The toolbar placed button common controls as the toolbar buttons.
However, because these buttons are focusable, shortcut keys don't
work after clicking them.

Added Home button, Add to Bookmarks button, dropdown buttons of
back and forward buttons, but they aren't implemented yet. Just
placeholders at the moment.

  • MiniBrowser/win/MainWindow.cpp:

(MainWindow::createToolbar): Added.
(MainWindow::resizeToolbar): Added.
(MainWindow::rescaleToolbar): Added.
(MainWindow::init):
(MainWindow::resizeSubViews):
(MainWindow::updateDeviceScaleFactor):

  • MiniBrowser/win/MainWindow.h: Added m_toolbarItemsWidth.
6:56 PM Changeset in webkit [256580] by rniwa@webkit.org
  • 4 edits in trunk

Dark Mode: In Notes, list item becomes invisible in dark mode after outdenting
https://bugs.webkit.org/show_bug.cgi?id=207676

Reviewed by Wenson Hsieh and Timothy Hatcher.

Source/WebCore:

The bug was caused by EditingStyle::inverseTransformColorIfNeeded converting -apple-system-label to
transparent color in ReplaceSelectionCommand when InsertListCommand invokes moveParagraphs.

This patch fixes the bug in EditingStyle::inverseTransformColorIfNeeded by treating any semantic color
name or semantic RGB color value as if the color was not specified.

It also fixes the bug that removeStyleFromRulesAndContext was incapable of removing superflous semantic
color names that appear in the inline since the context's computed style only contain RGB values by
replacing the inline style's color values with that of the computed style. This fix is necessary to
eliminate -apple-system-label in the pasted content, which can cause issues when such a content is
sync'ed to other devices via iCloud, etc...

Tests: PasteHTML.TransformColorsOfDarkContentButNotSemanticColor

PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::removeStyleFromRulesAndContext):
(WebCore::EditingStyle::inverseTransformColorIfNeeded):

Tools:

Added regression tests for pasting content with -apple-system-label and outdenting content.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:

(PasteHTML.TransformColorsOfDarkContentButNotSemanticColor):
(PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent):

6:25 PM Changeset in webkit [256579] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/JavaScriptCore

[PlayStation] Make special udis86 C file handling only happen for Visual Studio
https://bugs.webkit.org/show_bug.cgi?id=207729

Reviewed by Don Olmstead.

  • PlatformPlayStation.cmake:
5:54 PM Changeset in webkit [256578] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Protect WebSWServerConnection::scheduleJobInServer from bad scopeURL
https://bugs.webkit.org/show_bug.cgi?id=207722

Reviewed by Chris Dumez.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::scheduleJobInServer):
In case of bad scope, fail the job early on.

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleJobInServer):
Remove the RELEASE_ASSERT from now since we defend in Network process.
We will add it back in ServiceWorkerRegistration::getOrCreate as a follow-up.

5:31 PM Changeset in webkit [256577] by commit-queue@webkit.org
  • 5 edits in trunk

Flash of white can occur if JS forces an early layout
https://bugs.webkit.org/show_bug.cgi?id=207516

This causes us to wait for the first non-empty layout before we paint on Mac, which we
already do on all other platforms.

Patch by Ben Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):

LayoutTests:

  • fast/scrolling/rtl-scrollbars-listbox-scroll.html: Wait for document to load before scrolling.
  • platform/mac/TestExpectations: Skip before-load-001.html as we already do on iOS. This test depends on first paint timing and this patch makes the Mac behave like iOS in terms of first paint.
5:17 PM Changeset in webkit [256576] by Kocsen Chung
  • 4 edits in branches/safari-610.1.3-branch/Source

Cherry-pick r256571. rdar://problem/59443242

REGRESSION (r255961): Default state for data URL handling is incorrect
https://bugs.webkit.org/show_bug.cgi?id=207719
<rdar://problem/59334011>

Reviewed by Chris Dumez.

The default selected in r255961 breaks too many WebKit framework users. Switch from opt-out to opt-in
while we work through compatibility issues.

Source/WebCore:

Tested by existing test cases.

  • page/Settings.yaml:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]):

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

5:13 PM Changeset in webkit [256575] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/scrolling/latching/iframe_in_iframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207732

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:36 PM Changeset in webkit [256574] by Russell Epstein
  • 11 edits in branches/safari-609-branch/Source

Revert r256407. rdar://problem/59299143

4:35 PM Changeset in webkit [256573] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac Release wk2 ] accessibility/press-targets-center-point.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207728

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:35 PM Changeset in webkit [256572] by Alan Coon
  • 1 edit in branches/safari-609.1.17.0-branch/Source/WebCore/rendering/InlineTextBox.cpp

Unreviewed build fix. rdar://problem/59430261

4:12 PM Changeset in webkit [256571] by Brent Fulgham
  • 4 edits in trunk/Source

REGRESSION (r255961): Default state for data URL handling is incorrect
https://bugs.webkit.org/show_bug.cgi?id=207719
<rdar://problem/59334011>

Reviewed by Chris Dumez.

The default selected in r255961 breaks too many WebKit framework users. Switch from opt-out to opt-in
while we work through compatibility issues.

Source/WebCore:

Tested by existing test cases.

  • page/Settings.yaml:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

4:00 PM Changeset in webkit [256570] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebCore/rendering/InlineTextBox.cpp

Unreviewed Build Fix, rdar://problem/59430261

3:53 PM Changeset in webkit [256569] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Add missing call to completionHandler
https://bugs.webkit.org/show_bug.cgi?id=207720
<rdar://problem/59436915>

Reviewed by Chris Dumez.

Bug 179641 (r225702) updated
SubresourceLoader::willSendRequestInternal with a return call without
first calling the completionHandler. Address this by adding the call
to the completionHandler.

No new tests -- it's not possible to control execution into the
affected code path.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

3:51 PM Changeset in webkit [256568] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256564. rdar://problem/59440718

iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>

Reviewed by Simon Fraser.

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm: (WebCore::EventHandler::startSelectionAutoscroll): (WebCore::EventHandler::cancelSelectionAutoscroll): (WebCore::adjustAutoscrollDestinationForInsetEdges): (WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const): (WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted. Make a few small changes to autoscrolling on iOS to make it feel better:
  • Store the autoscrolling position in "unscrolled" coordinates, and do all work in this space, converting back when it's time to actually scroll. This fixes the problem where you have to wiggle your finger to autoscroll, because now when the timer fires, the point actually moves (before, it was all stored in "content" coordinates, so wouldn't actually change until the client pushed a new point).
  • Reintroduce the macOS-style linear scaling of scrolling velocity in (and beyond) the inset region. We scale the fractional distance into the inset region to a 20pt/50ms scroll velocity; when you exit the inset it continues scaling up linearly from there.
  • Only apply insets in the direction that the autoscroll drag is occurring in. This avoids a problem where e.g. horizontally selecting text on the first visible line of a page would cause us to scroll up, as it sat within the top inset. Instead, we only apply an inset in the direction of the drag, and do not allow its magnitude to exceed the currently dragged distance.

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

3:44 PM Changeset in webkit [256567] by Alan Coon
  • 3 edits in branches/safari-609.1.17.0-branch/Source/WebCore

Cherry-pick r256564. rdar://problem/59440718

iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>

Reviewed by Simon Fraser.

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm: (WebCore::EventHandler::startSelectionAutoscroll): (WebCore::EventHandler::cancelSelectionAutoscroll): (WebCore::adjustAutoscrollDestinationForInsetEdges): (WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const): (WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted. Make a few small changes to autoscrolling on iOS to make it feel better:
  • Store the autoscrolling position in "unscrolled" coordinates, and do all work in this space, converting back when it's time to actually scroll. This fixes the problem where you have to wiggle your finger to autoscroll, because now when the timer fires, the point actually moves (before, it was all stored in "content" coordinates, so wouldn't actually change until the client pushed a new point).
  • Reintroduce the macOS-style linear scaling of scrolling velocity in (and beyond) the inset region. We scale the fractional distance into the inset region to a 20pt/50ms scroll velocity; when you exit the inset it continues scaling up linearly from there.
  • Only apply insets in the direction that the autoscroll drag is occurring in. This avoids a problem where e.g. horizontally selecting text on the first visible line of a page would cause us to scroll up, as it sat within the top inset. Instead, we only apply an inset in the direction of the drag, and do not allow its magnitude to exceed the currently dragged distance.

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

3:40 PM Changeset in webkit [256566] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207726

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:35 PM Changeset in webkit [256565] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Unreviewed attempt to fix the TestWebKitAPI build.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
3:23 PM Changeset in webkit [256564] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>

Reviewed by Simon Fraser.

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::startSelectionAutoscroll):
(WebCore::EventHandler::cancelSelectionAutoscroll):
(WebCore::adjustAutoscrollDestinationForInsetEdges):
(WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const):
(WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted.
Make a few small changes to autoscrolling on iOS to make it feel better:

  • Store the autoscrolling position in "unscrolled" coordinates, and do

all work in this space, converting back when it's time to actually scroll.
This fixes the problem where you have to wiggle your finger to autoscroll,
because now when the timer fires, the point actually moves (before, it was
all stored in "content" coordinates, so wouldn't actually change until
the client pushed a new point).

  • Reintroduce the macOS-style linear scaling of scrolling velocity

in (and beyond) the inset region. We scale the fractional distance into
the inset region to a 20pt/50ms scroll velocity; when you exit the inset
it continues scaling up linearly from there.

  • Only apply insets in the direction that the autoscroll drag is occurring

in. This avoids a problem where e.g. horizontally selecting text on the
first visible line of a page would cause us to scroll up, as it sat
within the top inset. Instead, we only apply an inset in the direction of
the drag, and do not allow its magnitude to exceed the currently dragged
distance.

3:21 PM Changeset in webkit [256563] by commit-queue@webkit.org
  • 18 edits in trunk/Source

Unreviewed, rolling out r254557.
https://bugs.webkit.org/show_bug.cgi?id=207725

The assert is correct, but unfortunately it will alwasy fail
since there is an existing bug in
HTMLTextFormControlElement::indexForPosition(). See bug
#207724 for more details. (Requested by dydz on #webkit).

Reverted changeset:

"Enable the offset assertion in
HTMLTextFormControlElement::indexForPosition"
https://bugs.webkit.org/show_bug.cgi?id=205706
https://trac.webkit.org/changeset/254557

3:10 PM Changeset in webkit [256562] by achristensen@apple.com
  • 6 edits in trunk

_WKResourceLoadInfo should conform to NSSecureCoding
https://bugs.webkit.org/show_bug.cgi?id=207667

Reviewed by Brady Eidson.

Source/WebKit:

This makes rdar://problem/57132290 nicer.
Covered by API tests.

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

(+[_WKResourceLoadInfo supportsSecureCoding]):
(-[_WKResourceLoadInfo initWithCoder:]):
(-[_WKResourceLoadInfo encodeWithCoder:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(TEST):

3:08 PM Changeset in webkit [256561] by achristensen@apple.com
  • 6 edits in trunk/Source/WebKit

Deprecate _WKUserContentWorld replaced by WKContentWorld
https://bugs.webkit.org/show_bug.cgi?id=207514

Reviewed by Brady Eidson.

_WKUserContentWorld.contentWorld is not needed,
but WKContentWorld._userContentWorld needs to return an autoreleased object.

  • UIProcess/API/APIContentWorld.cpp:

(API::ContentWorld::fromUserContentWorld): Deleted.

  • UIProcess/API/APIContentWorld.h:
  • UIProcess/API/Cocoa/WKContentWorld.mm:

(-[WKContentWorld _userContentWorld]):

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

(-[_WKUserContentWorld contentWorld]): Deleted.

3:05 PM Changeset in webkit [256560] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac Debug ] http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207723

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:58 PM Changeset in webkit [256559] by Russell Epstein
  • 13 edits in branches/safari-609-branch

Cherry-pick r256520. rdar://problem/59430255

[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>

Reviewed by Tim Horton.

Source/WebKit:

Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.

To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.

Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint

  • Platform/spi/ios/UIKitSPI.h:
  • Scripts/webkit/messages.py:
  • Shared/ios/GestureTypes.h:

Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[UITextInteractionAssistant _wk_hasFloatingCursor]):

Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).

(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):

Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateSelectionWithExtentPoint):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Plumb the RespectsSelectionAnchor flag over to the web process.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateSelectionWithExtentPoint):

Tools:

Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: (-[TestWKWebView updateSelectionWithExtentPoint:]):
  • TestWebKitAPI/ios/UIKitSPI.h:

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

2:57 PM Changeset in webkit [256558] by Russell Epstein
  • 8 edits in branches/safari-609-branch

Cherry-pick r256485. rdar://problem/59430261

Composition highlight rects should be rounded and inset
https://bugs.webkit.org/show_bug.cgi?id=207655
<rdar://problem/59362474>

Reviewed by Tim Horton.

Source/WebCore:

Apply a couple of minor adjustments to the appearance of composition highlight rects that appear behind marked
text, in the case where the client specifies attributed marked text with background colors.

Test: editing/input/composition-highlights.html

  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextBackground): (WebCore::InlineTextBox::paintCompositionBackground):

In the case where custom composition rects are specified, add a half-pixel inset to all sides of the background
rect, and add a slight corner radius around each background rect.

  • rendering/InlineTextBox.h:

Source/WebKit:

Stitch adjacent highlight rects together if they have the same highlight color; this minimizes the number of
composition highlight rects we hand to the web process when changing the marked text.

  • UIProcess/ios/WKContentViewInteraction.mm: (compositionHighlights):

LayoutTests:

Make this existing layout test work with the new composition highlight appearance by covering up the edges of
the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
have a border-radius).

  • editing/input/composition-highlights-expected.html:
  • editing/input/composition-highlights.html:

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

2:57 PM Changeset in webkit [256557] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256433. rdar://problem/59412971

macCatalyst: Unable to grab scrollbar on editable text field
https://bugs.webkit.org/show_bug.cgi?id=207615
<rdar://problem/59212993>

Reviewed by Tim Horton.

In macCatalyst, hovering over the scrollbar (an instance of the internal UIKit class
_UIScrollViewScrollIndicator) is required in order for a click and drag with the mouse to actually move the
scrollbar. This is because UIKit depends on the cursor interaction added to this view to recognize and call its
delegate methods.

However, we override hit-testing in WebKit to skip over all children of scroll views, and instead force hit-
testing to find the scroll view instead. This means that UIKit can never hit-test to the scroll indicator views
embedded directly beneath each WKChildScrollView, so the cursor interactions described earlier will not
recognize. To work around this, special case these scroll indicator views, such that we will allow
-hitTest:withEvent: to find these views.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (WebKit::scrollViewScrollIndicatorClass): (-[UIView _web_findDescendantViewAtPoint:withEvent:]):

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

2:57 PM Changeset in webkit [256556] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256230. rdar://problem/59332513

Adjust the minor version number for the desktop user agent string.
https://bugs.webkit.org/show_bug.cgi?id=207498
<rdar://problem/59274765>

Patch by Keith Rollin <Keith Rollin> on 2020-02-10
Reviewed by Wenson Hsieh.

This helps with Netflix compatibility on the iPad.

No new tests -- no new or changed functionality.

  • platform/ios/UserAgentIOS.mm: (WebCore::standardUserAgentWithApplicationName):

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

2:52 PM Changeset in webkit [256555] by Alan Coon
  • 13 edits in branches/safari-609.1.17.0-branch

Cherry-pick r256520. rdar://problem/59430255

[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>

Reviewed by Tim Horton.

Source/WebKit:

Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.

To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.

Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint

  • Platform/spi/ios/UIKitSPI.h:
  • Scripts/webkit/messages.py:
  • Shared/ios/GestureTypes.h:

Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[UITextInteractionAssistant _wk_hasFloatingCursor]):

Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).

(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):

Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateSelectionWithExtentPoint):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Plumb the RespectsSelectionAnchor flag over to the web process.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateSelectionWithExtentPoint):

Tools:

Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: (-[TestWKWebView updateSelectionWithExtentPoint:]):
  • TestWebKitAPI/ios/UIKitSPI.h:

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

2:52 PM Changeset in webkit [256554] by Alan Coon
  • 8 edits in branches/safari-609.1.17.0-branch

Cherry-pick r256485. rdar://problem/59430261

Composition highlight rects should be rounded and inset
https://bugs.webkit.org/show_bug.cgi?id=207655
<rdar://problem/59362474>

Reviewed by Tim Horton.

Source/WebCore:

Apply a couple of minor adjustments to the appearance of composition highlight rects that appear behind marked
text, in the case where the client specifies attributed marked text with background colors.

Test: editing/input/composition-highlights.html

  • rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextBackground): (WebCore::InlineTextBox::paintCompositionBackground):

In the case where custom composition rects are specified, add a half-pixel inset to all sides of the background
rect, and add a slight corner radius around each background rect.

  • rendering/InlineTextBox.h:

Source/WebKit:

Stitch adjacent highlight rects together if they have the same highlight color; this minimizes the number of
composition highlight rects we hand to the web process when changing the marked text.

  • UIProcess/ios/WKContentViewInteraction.mm: (compositionHighlights):

LayoutTests:

Make this existing layout test work with the new composition highlight appearance by covering up the edges of
the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
have a border-radius).

  • editing/input/composition-highlights-expected.html:
  • editing/input/composition-highlights.html:

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

2:52 PM Changeset in webkit [256553] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r256433. rdar://problem/59412971

macCatalyst: Unable to grab scrollbar on editable text field
https://bugs.webkit.org/show_bug.cgi?id=207615
<rdar://problem/59212993>

Reviewed by Tim Horton.

In macCatalyst, hovering over the scrollbar (an instance of the internal UIKit class
_UIScrollViewScrollIndicator) is required in order for a click and drag with the mouse to actually move the
scrollbar. This is because UIKit depends on the cursor interaction added to this view to recognize and call its
delegate methods.

However, we override hit-testing in WebKit to skip over all children of scroll views, and instead force hit-
testing to find the scroll view instead. This means that UIKit can never hit-test to the scroll indicator views
embedded directly beneath each WKChildScrollView, so the cursor interactions described earlier will not
recognize. To work around this, special case these scroll indicator views, such that we will allow
-hitTest:withEvent: to find these views.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (WebKit::scrollViewScrollIndicatorClass): (-[UIView _web_findDescendantViewAtPoint:withEvent:]):

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

2:52 PM Changeset in webkit [256552] by Alan Coon
  • 6 edits in branches/safari-609.1.17.0-branch/Source

Cherry-pick r256005. rdar://problem/59299335

macCatalyst: Unnecessary I-beam over images in editable areas
https://bugs.webkit.org/show_bug.cgi?id=207370
<rdar://problem/59235429>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • dom/Position.h:

Source/WebKit:

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext): Add a bit indicating whether the forced I-beam for editable contexts should be used or not, based on whether it is adjacent to (or immediately over) a replaced element.

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

2:52 PM Changeset in webkit [256551] by Alan Coon
  • 6 edits
    1 add in branches/safari-609.1.17.0-branch

Cherry-pick r256000. rdar://problem/59299326

WebPage::rangeForGranularityAtPoint always returns null in the case of CharacterGranularity
https://bugs.webkit.org/show_bug.cgi?id=207350
<rdar://problem/59239914>

Reviewed by Tim Horton.

Source/WebKit:

Handle the character granularity case in WebPage::rangeForGranularityAtPoint by just returning a collapsed
Range. Certain internal clients will have a need to place and update the text selection using character
granularity; see radar for more details.

Test: UIWKInteractionViewProtocol.SelectTextWithCharacterGranularity

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView supportsTextSelectionWithCharacterGranularity]):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::rangeForGranularityAtPoint):

Tools:

Add a test to exercise the corner case in the SPI.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: Added.

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

2:52 PM Changeset in webkit [256550] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255879. rdar://problem/59299329

[macCatalyst] Incorrect IBeam cursor when selecting text on Wikipedia
https://bugs.webkit.org/show_bug.cgi?id=207299
<rdar://problem/59200545>

Reviewed by Tim Horton.

After r255827, if EventHandler selects an IBeam cursor at the position information request location, we will
always attempt to show a caret at that location, whose height is the height of the editing caret for that
visible position. However, this means that:

  • It's possible for the caret to be incorrectly sized if the caret is before a large replaced element, such as

a table. Since the request location is also outside of any line rect, it doesn't make sense to use the caret
height for the height of the cursor. Instead, fall back to computed line height. This fixes an issue on
en.wikipedia.org where the line rect would sometimes update to an enormous size when selecting text, since
the caret would temporarily hover over an editing position that is before a large table.

  • This fallback path completely negates certain cursor behaviors; partially restore this behavior by making it

so that in the case where the cursor is in editable content and the line caret first line from the top of
the hit-tested node already contains the request point, don't bother trying to recenter the line rect to be
right over the request point.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext):

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

2:52 PM Changeset in webkit [256549] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255827. rdar://problem/59299345

[macCatalyst] IBeam cursor doesn't show up when hovering over text form controls prior to editing
https://bugs.webkit.org/show_bug.cgi?id=207268
<rdar://problem/59188152>

Reviewed by Tim Horton.

On macCatalyst, when hovering over textareas and input fields that have not been edited yet, the cursor fails to
change to an IBeam and instead falls back to the default style. Even though EventHandler::selectCursor()
returns IBeam, we end up not actually using an IBeam because the position information's lineCaretExtent is
an empty rect, which means the caret height is 0 and, more importantly, the line rect will not contain the
request point.

The line rect is empty in text fields that have not been edited yet because the form control's inner plaintext
contenteditable div (embedded in the shadow root) does not contain any child renderers with a non-zero height.
Even if it did, however, the element may still be much taller than the combined height of the inner div's
children, so the line rect may still not contain the position information request point (this is most easily
noticeable when focusing a textarea, typing a few letters, and then moving the cursor to near the bottom of the
textarea element).

To fix this, add a fallback path for the scenario where we want to show an IBeam, but fail to find line rects
that contain the request point. Instead, we still show an IBeam, but simply fake the lineCaretExtent to be an
element-wide rect that is the height of the caret, and is also vertically centered about the request point.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext):

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

2:52 PM Changeset in webkit [256548] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255710. rdar://problem/59299340

macCatalyst: Shouldn't get text cursor on checkboxes
https://bugs.webkit.org/show_bug.cgi?id=207234
<rdar://problem/59155917>

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::canForceCaretForPosition): (WebKit::populateCaretContext): (WebKit::lineCaretExtent): Deleted. The I-beam forcing code was a bit too aggressive; it should consider the style of the node that it ends up finding after searching, not just assume it wants an I-beam because it's "texty".

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

2:52 PM Changeset in webkit [256547] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255691. rdar://problem/59299315

[macCatalyst] Missing custom cursors in subframes that are offset from the origin of the root view
https://bugs.webkit.org/show_bug.cgi?id=207215
<rdar://problem/59157625>

Reviewed by Tim Horton.

<https://trac.webkit.org/r255046> added support for custom cursor styles when hovering over subframes. However,
we currently try to hit-test content in the subframe using the interaction information request's point, which is
in root view coordinates; as such, we only get the correct custom cursor styles when hovering over elements in a
subframe, if the subframe is also at the origin of the root view.

To fix this, simply convert from root view coordinates to frame coordinates when performing the hit-test.
Unfortunately, this change is currently untestable; see <rdar://problem/59158410>.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::lineCaretExtent):

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

2:52 PM Changeset in webkit [256546] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255664. rdar://problem/59299338

Add a WebKitAdditions hook to provide additional customizations to UIDragInteraction
https://bugs.webkit.org/show_bug.cgi?id=207177
<rdar://problem/59121266>

Reviewed by Tim Horton.

Add a WebKitAdditions extension point that runs immediately after setting up UIDragInteraction and
UIDropInteraction.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupDragAndDropInteractions]):

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

2:52 PM Changeset in webkit [256545] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255658. rdar://problem/59299333

Unreviewed, fix the internal build after <rdar://problem/59132944>

  • UIProcess/ios/WKContentViewInteraction.h: Declare this helper in the header, now that it's consulted by some WebKitAdditions code.

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

2:52 PM Changeset in webkit [256544] by Alan Coon
  • 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit

Cherry-pick r255625. rdar://problem/59299317

Add a WebKitAdditions hook to override the behavior of -[WKContentView gestureRecognizer:shouldReceiveTouch:]
https://bugs.webkit.org/show_bug.cgi?id=207162
<rdar://problem/59129739>

Reviewed by Tim Horton.

Allow an internal implementation of -_allowGestureRecognizer:toReceiveTouch: to prevent touches from being
routed to certain gesture recognizers, if necessary.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizer:shouldReceiveTouch:]):

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

2:52 PM Changeset in webkit [256543] by Alan Coon
  • 6 edits
    2 adds in branches/safari-609.1.17.0-branch

Cherry-pick r255603. rdar://problem/59299321

[iOS 13] Dragging on-screen volume control on a YouTube video selects text around the panel
https://bugs.webkit.org/show_bug.cgi?id=207140
<rdar://problem/58852938>

Reviewed by Tim Horton.

Source/WebKit:

This bug occurs on iPadOS when long pressing the volume controls on the desktop version of YouTube, and then
performing a pan gesture; this activates the highlight text selection gesture recognizer added in iOS 13,
causing text to be selected while adjusting the volume using these custom controls. On macOS, we avoid this
because Node::canStartSelection() returns false, due to a container node having both user-drag: element
and user-select: none; in this scenario, we allow dragging to take precendence over text selection, so the
volume slider can be moved using a mouse without simultaneously selecting text.

This logic is currently absent on iOS, where UIKit text interaction gesture recognizers ask us for information
about the DOM at given locations, and we determine whether to allow text interaction gestures (such as long
pressing) to begin in -textInteractionGesture:shouldBeginAtPoint: and -hasSelectablePositionAtPoint:.
Ideally, we'd want to eventually unify these two codepaths for triggering text selection (and preferably just
have both go through EventHandler); in lieu of this, simply make the iOS codepath behave a little more like
macOS by adding a bit to allow text interaction gestures to bail in the case where at least one container of the
hit-tested element is both draggable and unselectable.

Test: editing/selection/ios/prefer-drag-over-text-selection.html

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

Add the new bit to InteractionInformationAtPosition.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):

Avoid beginning text selection if the bit is set.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::selectionPositionInformation):

Move a comment about the ">= 97% of the document's visible area" heuristic next to the relevant code, and also
leave a FIXME mentioning that we should reconsider whether this is really needed; it seems that this was
originally intended to avoid ending up with an excessively large block selection, but block selection has been
removed entirely since iOS 12. That said, this logic may still be helping avoid situations where the text
selection is too aggressive on iOS and ends up selecting too much text.

LayoutTests:

Add a layout test to verify that we don't allow text selection gestures inside of containers that have both
user-drag: element and user-select: none.

  • editing/selection/ios/prefer-drag-over-text-selection-expected.txt: Added.
  • editing/selection/ios/prefer-drag-over-text-selection.html: Added.

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

2:39 PM Changeset in webkit [256542] by Alan Coon
  • 8 edits in branches/safari-609.1.17.0-branch/Source

Versioning.

1:59 PM Changeset in webkit [256541] by Caio Lima
  • 5 edits
    1 add in trunk

[ESNext][BigInt] We don't support BigInt literal as PropertyName
https://bugs.webkit.org/show_bug.cgi?id=206888

Reviewed by Ross Kirsling.

JSTests:

  • stress/big-int-as-property-name.js: Added.

Source/JavaScriptCore:

According to spec (https://tc39.es/ecma262/#prod-PropertyName),
BigInt literals are valid property names. Given that, we should not
throw a SyntaxError when using BigInt literals on destructuring
pattern, method declaration, object literals, etc.
This patch is adding BigInt literal as a valid syntax to PropertyName.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseInstanceFieldInitializerSourceElements):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):

  • parser/ParserArena.cpp:

(JSC::IdentifierArena::makeBigIntDecimalIdentifier):

  • parser/ParserArena.h:
1:49 PM Changeset in webkit [256540] by Alan Coon
  • 30 edits
    8 deletes in branches/safari-610.1.3-branch

Cherry-pick r256493. rdar://problem/59412867

Unreviewed, rolling out r256010.

Introduced ASan crashes

Reverted changeset:

"[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=206582
https://trac.webkit.org/changeset/r256010

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

1:49 PM Changeset in webkit [256539] by Alan Coon
  • 4 edits in branches/safari-610.1.3-branch

Cherry-pick r256317. rdar://problem/59398474

REGRESSION (r256009): [ Mojave wk2 Debug ] ASSERTION FAILED: Completion handler should always be called under WebKit::WebMDNSRegister::PendingRegistration
https://bugs.webkit.org/show_bug.cgi?id=207521
<rdar://problem/59331313>

Reviewed by Eric Carlson.

Source/WebKit:

Covered by debug assertion not hit in layout tests.

  • WebProcess/Network/webrtc/WebMDNSRegister.cpp: (WebKit::WebMDNSRegister::finishedRegisteringMDNSName): Call completion handler even if the document entry has been cleared, which can happen in suspend/destruction case. If the entry is not there, all MDNS names for the document have been unregistered. We then report a registration error.

LayoutTests:

  • platform/mac-wk2/TestExpectations:

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

1:49 PM Changeset in webkit [256538] by Alan Coon
  • 2 edits in branches/safari-610.1.3-branch/LayoutTests

Cherry-pick r256231. rdar://problem/59398474

Regression: (r256009?) [ Mojave wk2 Debug ] webrtc/peerconnection-page-cache-long.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=207521

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

1:41 PM Changeset in webkit [256537] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION: (256381) [ macOS ] http/tests/workers/service/serviceworkerclients-claim.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207653
<rdar://problem/59396225>

Reviewed by Chris Dumez.

console log message output was flaky.
Make sure to end the fetch and post a message so that the console log message will appear in the expected.txt reliably.

  • http/tests/workers/service/serviceworkerclients-claim.https-expected.txt:
  • http/tests/workers/service/serviceworkerclients-claim.https.html:
1:40 PM Changeset in webkit [256536] by eric.carlson@apple.com
  • 19 edits
    3 moves in trunk/Source

Rename SerializedPlatformRepresentation to SerializedPlatformDataCue
https://bugs.webkit.org/show_bug.cgi?id=207695
<rdar://problem/59422673>

Reviewed by Youenn Fablet.

No new tests, no functional change.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue):
(WebCore::DataCue::cueContentsMatch const):

  • html/track/DataCue.h:
  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::addDataCue):
(WebCore::InbandDataTextTrack::updateDataCue):
(WebCore::InbandDataTextTrack::removeDataCue):
(WebCore::InbandDataTextTrack::removeCue):

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandTextTrack.h:
  • platform/SerializedPlatformDataCue.h: Renamed from Source/WebCore/platform/SerializedPlatformRepresentation.h.
  • platform/graphics/InbandTextTrackPrivateClient.h:
  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:

(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):

  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):

  • platform/mac/SerializedPlatformDataCueMac.h: Renamed from Source/WebCore/platform/mac/SerializedPlatformRepresentationMac.h.

(WebCore::SerializedPlatformDataCueMac::nativeValue const):

  • platform/mac/SerializedPlatformDataCueMac.mm: Renamed from Source/WebCore/platform/mac/SerializedPlatformRepresentationMac.mm.

(WebCore::SerializedPlatformDataCueMac::SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::create):
(WebCore::SerializedPlatformDataCueMac::data const):
(WebCore::SerializedPlatformDataCueMac::deserialize const):
(WebCore::SerializedPlatformDataCueMac::isEqual const):
(WebCore::toSerializedPlatformDataCueMac):
(WebCore::jsValueWithValueInContext):
(WebCore::jsValueWithDataInContext):
(WebCore::jsValueWithArrayInContext):
(WebCore::jsValueWithDictionaryInContext):
(WebCore::jsValueWithAVMetadataItemInContext):

1:26 PM Changeset in webkit [256535] by stephan.szabo@sony.com
  • 6 edits in trunk/Tools

[PlayStation] Add Buildbots for Debug/Release builds
https://bugs.webkit.org/show_bug.cgi?id=199454

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/config.json:

Add PlayStation slaves, builders

  • BuildSlaveSupport/build.webkit.org-config/factories.py:

Use higher timeout for playstation as with win bot

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:

Set PlayStation category for playstation platform

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

Use same path as gtk, wincairo, etc for appendCustomBuildFlags

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

Add PlayStation expectations

1:25 PM Changeset in webkit [256534] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] fast/images/webp-as-image.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=207718

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:21 PM Changeset in webkit [256533] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h

Unreviewed build fix, rdar://problem/59298172

1:11 PM Changeset in webkit [256532] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[GTK] Gardening debug mode timeouts.
https://bugs.webkit.org/show_bug.cgi?id=207714

Also removed obsolete expectations as the tests are just timeouting in
debug mode and have not crashed since 2018.

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-13

  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:22 PM Changeset in webkit [256531] by pvollan@apple.com
  • 13 edits
    1 copy in trunk

[iOS] Check if PIP is supported in the UI process
https://bugs.webkit.org/show_bug.cgi?id=207406

Reviewed by Brent Fulgham.

Source/WebCore:

This is currently being checked in the WebProcess, but since this check is initiating communication with the frontboard
service which will be blocked, this check should be moved to the UI process. In the UI process, this is checked when
starting a new WebContent process, and sent to the WebContent process as part of the process creation parameters. The
WebContent is storing the received value.

API test: WebKit.PictureInPictureSupport

  • platform/PictureInPictureSupport.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(WebCore::setSupportsPictureInPicture):
(WebCore::supportsPictureInPicture):

  • testing/Internals.cpp:

(WebCore::Internals::supportsPictureInPicture):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

When starting a new WebContent process, check if PIP is supported, and pass the results to the newly created
WebContent process.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/PictureInPictureSupport.mm: Added.

(TEST):

11:47 AM Changeset in webkit [256530] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Allow use of proxies in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=207598

For testing purposes, we allow Safari to use a custom HTTP/HTTPS proxy passed through
Source/WebCore:

command line arguments. This gives MiniBrowser the same ability.

$ run-minibrowser --release -WebKit2HTTPProxy "http://127.0.0.1:8080" \

-WebKit2HTTPSProxy "http://127.0.0.1:8080"

Patch by Benjamin Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::MacApplication::isMiniBrowser):
(WebCore::IOSApplication::isMiniBrowser):

Source/WebKit:

command line arguments. This gives MiniBrowser the same ability. Example invocation:

$ run-minibrowser --release -WebKit2HTTPProxy "http://127.0.0.1:8080" \

-WebKit2HTTPSProxy "http://127.0.0.1:8080"

Patch by Benjamin Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

11:43 AM Changeset in webkit [256529] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-currentTime.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207046

Corrected test expectations

Unreviewed test gardening

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
11:42 AM Changeset in webkit [256528] by Jonathan Bedard
  • 3 edits in trunk/Tools

TestWebKitAPI: Conditionalize fullscreen tests on fullscreen API
https://bugs.webkit.org/show_bug.cgi?id=207397
<rdar://problem/59268128>

Reviewed by Jer Noble.

  • TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:
11:23 AM Changeset in webkit [256527] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] svg/custom/animate-initial-pause-unpause.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207710

Unreviewed test gardening

  • platform/mac/TestExpectations:
11:16 AM Changeset in webkit [256526] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

WebP image format is not supported
https://bugs.webkit.org/show_bug.cgi?id=192672

Unreviewed test gardening

  • platform/mac/TestExpectations:
11:10 AM Changeset in webkit [256525] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing/close-in-upgradeneeded.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207709

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
11:05 AM Changeset in webkit [256524] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] LineBreaker should not hold on to the lastWrapOpportunity inline item
https://bugs.webkit.org/show_bug.cgi?id=207707
<rdar://problem/59427376>

Reviewed by Antti Koivisto.

LineBreaker only needs a flag indicating that there's a wrapping opportunity on the line.
LineLayoutContext needs to know what the position is (as an InlineItem) so that it could initiate a revert if needed.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::shouldWrapInlineContent):
(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):
(WebCore::Layout::LineBreaker::wordBreakBehavior const):

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

(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::tryAddingFloatItem):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
(WebCore::Layout::LineLayoutContext::rebuildLine):
(WebCore::Layout::LineLayoutContext::rebuildLineForRevert): Deleted.

  • layout/inlineformatting/LineLayoutContext.h:

(WebCore::Layout::LineLayoutContext::InlineItemRange::size const):

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

TestWebKitAPI: Re-baseline DocumentEditingContext for Catalyst
https://bugs.webkit.org/show_bug.cgi?id=207696

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
10:36 AM Changeset in webkit [256522] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove ApplePayBillingAddress.html from TestExpectations after fix for flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207704

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-13
Reviewed by Wenson Hsieh.

  • platform/mac-wk2/TestExpectations:
10:25 AM Changeset in webkit [256521] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION: [iOS] Layout Test fast/visual-viewport/ios/caret-after-focus-in-fixed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=181821

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
10:10 AM Changeset in webkit [256520] by Wenson Hsieh
  • 13 edits in trunk

[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>

Reviewed by Tim Horton.

Source/WebKit:

Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.

To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.

Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint

  • Platform/spi/ios/UIKitSPI.h:
  • Scripts/webkit/messages.py:
  • Shared/ios/GestureTypes.h:

Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[UITextInteractionAssistant _wk_hasFloatingCursor]):

Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).

(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):

Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::updateSelectionWithExtentPoint):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Plumb the RespectsSelectionAnchor flag over to the web process.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateSelectionWithExtentPoint):

Tools:

Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(-[TestWKWebView updateSelectionWithExtentPoint:]):

  • TestWebKitAPI/ios/UIKitSPI.h:
10:10 AM Changeset in webkit [256519] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

Flaky Test: imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html
https://bugs.webkit.org/show_bug.cgi?id=202003

Unreviewed test gardening

  • platform/ios/TestExpectations:
10:06 AM Changeset in webkit [256518] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.cpp

Revert "Unreviewed build fix. rdar://problem/59298172"

This reverts commit r256393.

9:56 AM Changeset in webkit [256517] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/websocket.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207705

Unreviewed test gardening

  • platform/ios/TestExpectations:
9:48 AM Changeset in webkit [256516] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207703

nreviewed test gardening

  • platform/ios/TestExpectations:
9:35 AM Changeset in webkit [256515] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes.any.serviceworker.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207702

Unreviewed test gardening

  • platform/ios/TestExpectations:
9:24 AM Changeset in webkit [256514] by Adrian Perez de Castro
  • 4 edits in trunk/Source/WebCore

Non-unified build fixes mid February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=207693

Unreviewed build fix.

No new tests needed.

  • html/parser/HTMLPreloadScanner.cpp: Add missing include.
  • platform/wpe/ScrollbarThemeWPE.cpp: Ditto.
  • rendering/InlineTextBox.cpp: Ditto.
9:20 AM Changeset in webkit [256513] by Simon Fraser
  • 4 edits
    2 adds in trunk

REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.

Test: fast/scrolling/programmatic-scroll-to-zero-zero.html

  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::setRequestedScrollData):

LayoutTests:

Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.

  • fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
  • fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
  • platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.
9:11 AM Changeset in webkit [256512] by Said Abou-Hallawa
  • 55 edits
    4 deletes in trunk

Unreviewed, rolling out r255158, 255405 and r255486

Caused test flakiness and PLT regression.

Patch by Said Abou-Hallawa <Said Abou-Hallawa> on 2020-02-13

Source/WebCore:

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::updateThrottlingState):
(WebCore::DocumentTimeline::animationInterval const):

  • animation/DocumentTimeline.h:
  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateLastHandledUserGestureTimestamp):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::throttlingReasonToString):
(WebCore::throttlingReasonsToString):
(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
(WebCore::ScriptedAnimationController::isThrottled const):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::interval const):
(WebCore::ScriptedAnimationController::page const):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const): Deleted.
(WebCore::ScriptedAnimationController::isThrottledRelativeToPage const): Deleted.
(WebCore::ScriptedAnimationController::shouldRescheduleRequestAnimationFrame const): Deleted.

  • dom/ScriptedAnimationController.h:

(WebCore::ScriptedAnimationController::addThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::removeThrottlingReason): Deleted.

  • page/FrameView.cpp:

(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):

  • page/Page.cpp:

(WebCore::m_deviceOrientationUpdateProvider):
(WebCore::Page::isLowPowerModeEnabled const):
(WebCore::Page::setLowPowerModeEnabledOverrideForTesting):
(WebCore::updateScriptedAnimationsThrottlingReason):
(WebCore::Page::setIsVisuallyIdleInternal):
(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::renderingUpdateThrottlingEnabled const): Deleted.
(WebCore::Page::renderingUpdateThrottlingEnabledChanged): Deleted.
(WebCore::Page::isRenderingUpdateThrottled const): Deleted.
(WebCore::Page::preferredRenderingUpdateInterval const): Deleted.

  • page/Page.h:

(WebCore::Page::isLowPowerModeEnabled const): Deleted.
(WebCore::Page::canUpdateThrottlingReason const): Deleted.

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::startTimer):
(WebCore::RenderingUpdateScheduler::adjustFramesPerSecond): Deleted.
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency): Deleted.

  • page/RenderingUpdateScheduler.h:
  • page/Settings.yaml:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::renderingUpdateThrottlingEnabledChanged): Deleted.

  • page/SettingsBase.h:
  • platform/graphics/AnimationFrameRate.h: Removed.
  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):
(WebCore::DisplayRefreshMonitorManager::registerClient):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
(WebCore::DisplayRefreshMonitorManager::monitorForClient): Deleted.
(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond): Deleted.

  • platform/graphics/DisplayRefreshMonitorManager.h:

(WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager):

  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):

  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:

(-[WebDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetRenderingUpdateThrottlingEnabled): Deleted.
(WKPreferencesGetRenderingUpdateThrottlingEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.
(WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond): Deleted.

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences renderingUpdateThrottlingEnabled]): Deleted.
(-[WebPreferences setRenderingUpdateThrottlingEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::renderingUpdateThrottlingEnabled): Deleted.
(WebPreferences::setRenderingUpdateThrottlingEnabled): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • fast/animation/css-animation-throttling-lowPowerMode.html:
  • fast/animation/request-animation-frame-throttle-subframe.html:
  • fast/animation/request-animation-frame-throttling-detached-iframe.html:
  • fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
  • fast/animation/request-animation-frame-throttling-lowPowerMode.html:
  • fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Removed.
  • fast/animation/request-animation-frame-throttling-outside-viewport.html: Removed.
  • fast/animation/resources/frame-with-animation-2.html: Removed.
  • http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
  • platform/mac-wk2/TestExpectations:
9:08 AM Changeset in webkit [256511] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/return-local-variable.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207700

Unreviewed test gardening

  • platform/mac-wk2/TestExpectations:
8:40 AM Changeset in webkit [256510] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac WK2 ] inspector/canvas/updateShader-webgpu-sharedVertexFragment.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206852

Unreviewed test gardening

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
8:28 AM Changeset in webkit [256509] by Jacob Uphoff
  • 1 edit in trunk/LayoutTests/platform/mac-wk1/TestExpectations

Need a short description (OOPS!).
Need the bug URL (OOPS!).

Reviewed by NOBODY (OOPS!).

  • platform/mac-wk1/TestExpectations:
8:27 AM Changeset in webkit [256508] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

http/wpt/css/css-animations/start-animation-001.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207337

Correcting test expectations to include wk2

Unreviewed test gardening

  • platform/mac/TestExpectations:
8:22 AM Changeset in webkit [256507] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] LineCandidateContent can have only one float item
https://bugs.webkit.org/show_bug.cgi?id=207681
<rdar://problem/59413044>

Reviewed by Antti Koivisto.

Floats should not be considered as inline content. They shrink the available space but we never
add them to the line. This patch decouples InlineContent and candidate floats. Also there can only be
one float box per candidate content (since there's always a soft wrap opportunity before/after the float box).

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineCandidate::InlineContent::runs const):
(WebCore::Layout::LineCandidate::InlineContent::logicalWidth const):
(WebCore::Layout::LineCandidate::InlineContent::trailingLineBreak const):
(WebCore::Layout::LineCandidate::InlineContent::appendLineBreak):
(WebCore::Layout::LineCandidate::InlineContent::setTrailingLineBreak):
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineCandidate::reset):
(WebCore::Layout::LineCandidate::InlineContent::reset):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
(WebCore::Layout::LineLayoutContext::tryAddingFloatItem):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
(WebCore::Layout::LineCandidateContent::appendLineBreak): Deleted.
(WebCore::Layout::LineCandidateContent::appendFloat): Deleted.
(WebCore::Layout::LineCandidateContent::hasIntrusiveFloats const): Deleted.
(WebCore::Layout::LineCandidateContent::inlineRuns const): Deleted.
(WebCore::Layout::LineCandidateContent::inlineContentLogicalWidth const): Deleted.
(WebCore::Layout::LineCandidateContent::floats const): Deleted.
(WebCore::Layout::LineCandidateContent::trailingLineBreak const): Deleted.
(WebCore::Layout::LineCandidateContent::setTrailingLineBreak): Deleted.
(WebCore::Layout::LineCandidateContent::appendInlineContent): Deleted.
(WebCore::Layout::LineCandidateContent::reset): Deleted.
(WebCore::Layout::LineLayoutContext::tryAddingFloatItems): Deleted.

  • layout/inlineformatting/LineLayoutContext.h:
8:12 AM Changeset in webkit [256506] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] Layout Test storage/websql/read-transactions-running-concurrently.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=194162

Unreviewed test gardening

  • platform/mac/TestExpectations:
7:51 AM Changeset in webkit [256505] by commit-queue@webkit.org
  • 15 edits in trunk

Implement OffscreenCanvas.copiedImage
https://bugs.webkit.org/show_bug.cgi?id=206220

Patch by Chris Lord <Chris Lord> on 2020-02-13
Reviewed by Žan Doberšek.

Source/WebCore:

No new tests. Covered by existing tests.

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::didDraw):
(WebCore::OffscreenCanvas::copiedImage const):
(WebCore::OffscreenCanvas::clearCopiedImage const):
(WebCore::OffscreenCanvas::takeImageBuffer const):
(WebCore::OffscreenCanvas::reset):

  • html/OffscreenCanvas.h:

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt:
  • platform/gtk/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:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
6:07 AM WebKitGTK/2.28.x edited by clopez@igalia.com
(diff)
6:06 AM WebKitGTK/2.26.x edited by clopez@igalia.com
(diff)
3:14 AM Changeset in webkit [256504] by Diego Pino Garcia
  • 3 edits
    8 adds in trunk/LayoutTests

[GTK] Gardening, update TestExpectations and rebaselines
https://bugs.webkit.org/show_bug.cgi?id=207626

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none-manual.https-expected.txt: Added.
  • platform/gtk/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Added.
Note: See TracTimeline for information about the timeline view.